Skip to content

Commit c6faef6

Browse files
Andreas Mathissawenzel
authored andcommitted
Minor improvements on the common mode classes
o fix for segfault in triggered mode o simplify logic o improve assignment
1 parent e514198 commit c6faef6

File tree

3 files changed

+9
-26
lines changed

3 files changed

+9
-26
lines changed

Detectors/TPC/simulation/include/TPCSimulation/CommonMode.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,8 +56,8 @@ class CommonMode
5656

5757
private:
5858
float mCommonMode = 0.f; ///< Common mode value
59-
TimeBin mTimebin = -1; ///< Time bin
60-
unsigned char mGEMstack = -1; ///< GEM stack
59+
TimeBin mTimebin = 0; ///< Time bin
60+
unsigned char mGEMstack = 0; ///< GEM stack
6161

6262
ClassDefNV(CommonMode, 1);
6363
};

Detectors/TPC/simulation/include/TPCSimulation/DigitTime.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -125,9 +125,8 @@ inline void DigitTime::fillOutputContainer(std::vector<Digit>& output, dataforma
125125
{
126126
static Mapper& mapper = Mapper::instance();
127127
GlobalPadNumber globalPad = 0;
128-
float cm;
129128
for (size_t i = 0; i < mCommonMode.size(); ++i) {
130-
cm = getCommonMode(GEMstack(i));
129+
const float cm = getCommonMode(GEMstack(i));
131130
if (cm > 0.) {
132131
commonModeOutput.push_back({cm, timeBin, static_cast<unsigned char>(i)});
133132
}

Steer/DigitizerWorkflow/src/TPCDigitRootWriterSpec.cxx

Lines changed: 6 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -114,9 +114,8 @@ DataProcessorSpec getTPCDigitRootWriterSpec(int numberofsourcedevices)
114114
if (entries == -1) {
115115
entries = brentries;
116116
} else {
117-
if (brentries != entries) {
118-
LOG(WARNING) << "INCONSISTENT NUMBER OF ENTRIES IN BRANCHES " << entries << " vs " << brentries;
119-
entries = brentries;
117+
if (brentries != entries && !TString(br->GetName()).Contains("CommonMode")) {
118+
LOG(WARNING) << "INCONSISTENT NUMBER OF ENTRIES IN BRANCH " << br->GetName() << ": " << entries << " vs " << brentries;
120119
}
121120
}
122121
}
@@ -307,25 +306,10 @@ DataProcessorSpec getTPCDigitRootWriterSpec(int numberofsourcedevices)
307306
LOG(FATAL) << "CommonMode for sector " << sector << " are received w/o info on grouping in triggers";
308307
}
309308
{
310-
if (trigS.size() == 1) { // just 1 entry (continous mode?), use digits directly
311-
// connect this to a particular branch
312-
auto digC = &commonModeData;
313-
auto br = getOrMakeBranch(*outputtree.get(), "TPCCommonMode", sector, digC);
314-
br->Fill();
315-
br->ResetAddress();
316-
} else { // triggered mode (>1 entrie will be written)
317-
std::vector<o2::tpc::CommonMode> comGroup; // group of digits related to single trigger
318-
auto comGroupPtr = &comGroup;
319-
auto br = getOrMakeBranch(*outputtree.get(), "TPCCommonMode", sector, comGroupPtr);
320-
for (auto grp : trigS) {
321-
comGroup.clear();
322-
for (int i = 0; i < grp.getEntries(); i++) {
323-
comGroup.emplace_back(commonModeData[grp.getFirstEntry() + i]); // fetch digits of given trigger
324-
}
325-
br->Fill();
326-
}
327-
br->ResetAddress();
328-
}
309+
auto digC = &commonModeData;
310+
auto br = getOrMakeBranch(*outputtree.get(), "TPCCommonMode", sector, digC);
311+
br->Fill();
312+
br->ResetAddress();
329313
}
330314
}
331315
} // end common mode case

0 commit comments

Comments
 (0)