Skip to content

Commit e7ed962

Browse files
committed
Multiple fixes in FDD
1 parent 84ed23d commit e7ed962

File tree

10 files changed

+44
-23
lines changed

10 files changed

+44
-23
lines changed

Detectors/FIT/FDD/simulation/include/FDDSimulation/Digits2Raw.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,10 @@ class Digits2Raw
4848
void setFilePerLink(bool v) { mOutputPerLink = v; }
4949
bool getFilePerLink() const { return mOutputPerLink; }
5050

51+
int carryOverMethod(const header::RDHAny* rdh, const gsl::span<char> data,
52+
const char* ptr, int maxSize, int splitID,
53+
std::vector<char>& trailer, std::vector<char>& header) const;
54+
5155
private:
5256
static constexpr uint32_t sTcmLink = 2;
5357
static constexpr uint16_t sCruId = 0;

Detectors/FIT/FDD/simulation/src/Digits2Raw.cxx

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ ClassImp(Digits2Raw);
2323
void Digits2Raw::readDigits(const std::string& outDir, const std::string& fileDigitsName)
2424
{
2525
LOG(INFO) << "==============FDD: Digits2Raw::convertDigits" << std::endl;
26+
mWriter.setCarryOverCallBack(this);
2627
LookUpTable lut(true);
2728

2829
std::string outd = outDir;
@@ -171,3 +172,11 @@ void Digits2Raw::fillSecondHalfWordAndAddData(int iChannelPerLink, int prevPmLin
171172
LOG(DEBUG) << " Switch prevPmLink: " << prevPmLink << ". Save data with nGBTWords="
172173
<< nGBTWords << " in header. Last channel: " << iChannelPerLink;
173174
}
175+
176+
//_____________________________________________________________________________________
177+
int Digits2Raw::carryOverMethod(const header::RDHAny* rdh, const gsl::span<char> data,
178+
const char* ptr, int maxSize, int splitID,
179+
std::vector<char>& trailer, std::vector<char>& header) const
180+
{
181+
return 0; // do not split, always start new CRU page
182+
}

Detectors/FIT/FDD/workflow/CMakeLists.txt

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,8 @@ o2_add_library(FDDWorkflow
3232
o2_add_executable(reco-workflow
3333
COMPONENT_NAME fdd
3434
SOURCES src/fdd-reco-workflow.cxx
35-
PUBLIC_LINK_LIBRARIES O2::FDDWorkflow)
35+
PUBLIC_LINK_LIBRARIES O2::FDDWorkflow
36+
TARGETVARNAME fddrecoexe)
3637

3738
o2_add_executable(entropy-encoder-workflow
3839
SOURCES src/entropy-encoder-workflow.cxx
@@ -49,3 +50,9 @@ o2_add_executable(flp-dpl-workflow
4950
SOURCES src/fdd-flp-workflow.cxx
5051
PUBLIC_LINK_LIBRARIES O2::FDDWorkflow
5152
TARGETVARNAME fddflpexe)
53+
54+
if(NOT APPLE)
55+
56+
set_property(TARGET ${fddrecoexe} PROPERTY LINK_WHAT_YOU_USE ON)
57+
58+
endif()

Detectors/FIT/FDD/workflow/include/FDDWorkflow/DigitReaderSpec.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@ class DigitReader : public Task
3737
void run(ProcessingContext& pc) final;
3838

3939
private:
40-
bool mFinished = false;
4140
bool mUseMC = true; // use MC truth
4241
o2::header::DataOrigin mOrigin = o2::header::gDataOriginFDD;
4342

Detectors/FIT/FDD/workflow/include/FDDWorkflow/RecoWorkflow.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ namespace o2
1919
{
2020
namespace fdd
2121
{
22-
framework::WorkflowSpec getRecoWorkflow(bool useMC);
22+
framework::WorkflowSpec getRecoWorkflow(bool useMC, bool disableRootInp, bool disableRootOut);
2323
} // namespace fdd
2424
} // namespace o2
2525
#endif

Detectors/FIT/FDD/workflow/src/DigitReaderSpec.cxx

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -42,10 +42,6 @@ void DigitReader::init(InitContext& ic)
4242

4343
void DigitReader::run(ProcessingContext& pc)
4444
{
45-
if (mFinished) {
46-
return;
47-
}
48-
4945
std::vector<o2::fdd::Digit>* digitsBC = nullptr;
5046
std::vector<o2::fdd::ChannelData>* digitsCh = nullptr;
5147
o2::dataformats::IOMCTruthContainerView* mcTruthRootBuffer = nullptr;
@@ -89,7 +85,7 @@ void DigitReader::run(ProcessingContext& pc)
8985
pc.outputs().snapshot(Output{mOrigin, "DIGITLBL", 0, Lifetime::Timeframe}, mcTruth);
9086
}
9187

92-
mFinished = true;
88+
pc.services().get<ControlService>().endOfStream();
9389
pc.services().get<ControlService>().readyToQuit(QuitRequest::Me);
9490
}
9591

Detectors/FIT/FDD/workflow/src/EntropyDecoderSpec.cxx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,8 +64,8 @@ void EntropyDecoderSpec::endOfStream(EndOfStreamContext& ec)
6464
DataProcessorSpec getEntropyDecoderSpec()
6565
{
6666
std::vector<OutputSpec> outputs{
67-
OutputSpec{{"digits"}, "FDD", "FDDDigit", 0, Lifetime::Timeframe},
68-
OutputSpec{{"channels"}, "FDD", "FDDDigitCh", 0, Lifetime::Timeframe}};
67+
OutputSpec{{"digits"}, "FDD", "DIGITSBC", 0, Lifetime::Timeframe},
68+
OutputSpec{{"channels"}, "FDD", "DIGITSCH", 0, Lifetime::Timeframe}};
6969

7070
return DataProcessorSpec{
7171
"fdd-entropy-decoder",

Detectors/FIT/FDD/workflow/src/EntropyEncoderSpec.cxx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,8 +63,8 @@ void EntropyEncoderSpec::endOfStream(EndOfStreamContext& ec)
6363
DataProcessorSpec getEntropyEncoderSpec()
6464
{
6565
std::vector<InputSpec> inputs;
66-
inputs.emplace_back("digits", "FDD", "FDDDigit", 0, Lifetime::Timeframe);
67-
inputs.emplace_back("channels", "FDD", "FDDDigitCh", 0, Lifetime::Timeframe);
66+
inputs.emplace_back("digits", "FDD", "DIGITSBC", 0, Lifetime::Timeframe);
67+
inputs.emplace_back("channels", "FDD", "DIGITSCH", 0, Lifetime::Timeframe);
6868

6969
return DataProcessorSpec{
7070
"fdd-entropy-encoder",

Detectors/FIT/FDD/workflow/src/RecoWorkflow.cxx

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,17 @@ namespace o2
2121
namespace fdd
2222
{
2323

24-
framework::WorkflowSpec getRecoWorkflow(bool useMC)
24+
framework::WorkflowSpec getRecoWorkflow(bool useMC, bool disableRootInp, bool disableRootOut)
2525
{
2626
framework::WorkflowSpec specs;
2727

28-
specs.emplace_back(o2::fdd::getFDDRecPointWriterSpec(useMC));
28+
if (!disableRootInp) {
29+
specs.emplace_back(o2::fdd::getFDDRecPointWriterSpec(useMC));
30+
}
2931
specs.emplace_back(o2::fdd::getFDDReconstructorSpec(useMC));
30-
specs.emplace_back(o2::fdd::getFDDDigitReaderSpec(useMC));
32+
if (!disableRootOut) {
33+
specs.emplace_back(o2::fdd::getFDDDigitReaderSpec(useMC));
34+
}
3135

3236
return specs;
3337
}

Detectors/FIT/FDD/workflow/src/fdd-reco-workflow.cxx

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,13 @@ using namespace o2::framework;
2020
void customize(std::vector<o2::framework::ConfigParamSpec>& workflowOptions)
2121
{
2222
// option allowing to set parameters
23-
std::vector<o2::framework::ConfigParamSpec> options{
24-
{"disable-mc", o2::framework::VariantType::Bool, false, {"disable MC propagation even if available"}}};
25-
26-
std::swap(workflowOptions, options);
27-
28-
std::string keyvaluehelp("Semicolon separated key=value strings (e.g.: 'ITSDigitizerParam.roFrameLength=6000.;...')");
29-
23+
workflowOptions.push_back(ConfigParamSpec{
24+
"disable-mc", o2::framework::VariantType::Bool, false, {"disable MC propagation even if available"}});
25+
workflowOptions.push_back(ConfigParamSpec{
26+
"disable-root-input", o2::framework::VariantType::Bool, false, {"disable root-files input readers"}});
27+
workflowOptions.push_back(ConfigParamSpec{
28+
"disable-root-output", o2::framework::VariantType::Bool, false, {"disable root-files output writers"}});
29+
std::string keyvaluehelp("Semicolon separated key=value strings ...");
3030
workflowOptions.push_back(ConfigParamSpec{"configKeyValues", VariantType::String, "", {keyvaluehelp}});
3131
}
3232

@@ -42,6 +42,8 @@ WorkflowSpec defineDataProcessing(ConfigContext const& configcontext)
4242
o2::conf::ConfigurableParam::writeINI("o2tpcits-match-recoflow_configuration.ini");
4343

4444
auto useMC = !configcontext.options().get<bool>("disable-mc");
45+
auto disableRootInp = configcontext.options().get<bool>("disable-root-input");
46+
auto disableRootOut = configcontext.options().get<bool>("disable-root-output");
4547

46-
return std::move(o2::fdd::getRecoWorkflow(useMC));
48+
return std::move(o2::fdd::getRecoWorkflow(useMC, disableRootInp, disableRootOut));
4749
}

0 commit comments

Comments
 (0)