@@ -55,8 +55,10 @@ void PedestalTask::initialize(o2::framework::InitContext& /*ctx*/)
5555 ILOG (Info, Support) << " initialize PedestalTask" << ENDM ; // QcInfoLogger is used. FairMQ logs will go to there as well.
5656
5757 // this is how to get access to custom parameters defined in the config file at qc.tasks.<task_name>.taskParameters
58- if (auto param = mCustomParameters .find (" myOwnKey" ); param != mCustomParameters .end ()) {
59- ILOG (Info, Devel) << " Custom parameter - myOwnKey: " << param->second << ENDM ;
58+ if (auto param = mCustomParameters .find (" minNEventsToUpdatePedestals" ); param != mCustomParameters .end ()) {
59+ ILOG (Info, Devel) << " Custom parameter : minNEventsToUpdatePedestals " << param->second << ENDM ;
60+ mMinNEventsToUpdatePedestals = stoi (param->second );
61+ ILOG (Info, Devel) << " I set minNEventsToUpdatePedestals = " << mMinNEventsToUpdatePedestals << ENDM ;
6062 }
6163 initHistograms ();
6264 mNEventsTotal = 0 ;
@@ -65,15 +67,15 @@ void PedestalTask::initialize(o2::framework::InitContext& /*ctx*/)
6567
6668void PedestalTask::startOfActivity (Activity& activity)
6769{
68- ILOG (Info, Support) << " startOfActivity" << activity.mId << ENDM ;
70+ ILOG (Info, Support) << " startOfActivity() : resetting everything " << activity.mId << ENDM ;
6971 resetHistograms ();
7072 mNEventsTotal = 0 ;
7173 mNEventsFromLastFillHistogramsCall = 0 ;
7274}
7375
7476void PedestalTask::startOfCycle ()
7577{
76- ILOG (Info, Support ) << " startOfCycle" << ENDM ;
78+ ILOG (Info, Devel ) << " startOfCycle" << ENDM ;
7779 // at at the startOfCycle all HistAmplitudes are not updated by definition
7880 for (int i = 0 ; i < kNChannels ; i++)
7981 mIsUpdatedAmplitude [i] = false ;
@@ -114,24 +116,25 @@ void PedestalTask::monitorData(o2::framework::ProcessingContext& ctx)
114116 // 2. Using get("<binding>")
115117 auto digits = ctx.inputs ().get <gsl::span<o2::cpv::Digit>>(" digits" );
116118 mHist1D [H1DNDigitsPerInput]->Fill (digits.size ());
117- for (const auto & digit : digits) {
118- mHist1D [H1DDigitIds]->Fill (digit.getAbsId ());
119- short relId[3 ];
120- mCPVGeometry .absToRelNumbering (digit.getAbsId (), relId);
121- // reminder: relId[3]={Module, phi col, z row} where Module=2..4, phi col=0..127, z row=0..59
122- mHist2D [H2DDigitMapM2 + relId[0 ] - 2 ]->Fill (relId[1 ], relId[2 ]);
123- mHistAmplitudes [digit.getAbsId ()]->Fill (digit.getAmplitude ());
124- mIsUpdatedAmplitude [digit.getAbsId ()] = true ;
125- }
126119
127120 auto digitsTR = ctx.inputs ().get <gsl::span<o2::cpv::TriggerRecord>>(" dtrigrec" );
128121 // mNEventsTotal += digitsTR.size();//number of events in the current input
129122 for (const auto & trigRecord : digitsTR) {
130- ILOG (Info, Devel ) << " monitorData() : trigger record #" << mNEventsTotal
131- << " contains " << trigRecord.getNumberOfObjects () << " objects." << ENDM ;
123+ LOG ( DEBUG ) << " monitorData() : trigger record #" << mNEventsTotal
124+ << " contains " << trigRecord.getNumberOfObjects () << " objects." << ENDM ;
132125 if (trigRecord.getNumberOfObjects () > 0 ) { // at least 1 digit -> pedestal event
133126 mNEventsTotal ++;
134127 mNEventsFromLastFillHistogramsCall ++;
128+ for (int iDig = trigRecord.getFirstEntry (); iDig < trigRecord.getFirstEntry () + trigRecord.getNumberOfObjects (); iDig++) {
129+ mHist1D [H1DDigitIds]->Fill (digits[iDig].getAbsId ());
130+ short relId[3 ];
131+ if (mCPVGeometry .absToRelNumbering (digits[iDig].getAbsId (), relId)) {
132+ // reminder: relId[3]={Module, phi col, z row} where Module=2..4, phi col=0..127, z row=0..59
133+ mHist2D [H2DDigitMapM2 + relId[0 ] - 2 ]->Fill (relId[1 ], relId[2 ]);
134+ mHistAmplitudes [digits[iDig].getAbsId ()]->Fill (digits[iDig].getAmplitude ());
135+ mIsUpdatedAmplitude [digits[iDig].getAbsId ()] = true ;
136+ }
137+ }
135138 }
136139 }
137140 // get the payload of a specific input, which is a char array. "random" is the binding specified in the config file.
@@ -163,20 +166,22 @@ void PedestalTask::monitorData(o2::framework::ProcessingContext& ctx)
163166
164167void PedestalTask::endOfCycle ()
165168{
166- ILOG (Info, Support ) << " endOfCycle. I call fillHistograms()" << ENDM ;
169+ ILOG (Info, Devel ) << " endOfCycle. I call fillHistograms()" << ENDM ;
167170 // fit histograms if have sufficient increment of event number
168- if (mNEventsFromLastFillHistogramsCall > 1000 )
171+ if (mNEventsFromLastFillHistogramsCall >= mMinNEventsToUpdatePedestals ) {
169172 fillHistograms ();
170- mNEventsFromLastFillHistogramsCall = 0 ;
173+ mNEventsFromLastFillHistogramsCall = 0 ;
174+ }
171175}
172176
173177void PedestalTask::endOfActivity (Activity& /* activity*/ )
174178{
175179 ILOG (Info, Support) << " endOfActivity" << ENDM ;
176180 // do a final fill of histograms (if needed)
177- if (mNEventsFromLastFillHistogramsCall )
181+ if (mNEventsFromLastFillHistogramsCall ) {
182+ ILOG (Info, Devel) << " Final call of fillHistograms() " << ENDM ;
178183 fillHistograms ();
179- mNEventsFromLastFillHistogramsCall = 0 ;
184+ }
180185}
181186
182187void PedestalTask::reset ()
@@ -190,15 +195,17 @@ void PedestalTask::reset()
190195
191196void PedestalTask::initHistograms ()
192197{
198+ ILOG (Info, Devel) << " initing histograms" << ENDM ;
199+
193200 // create monitoring histograms (or reset, if they already exist)
194201 for (int i = 0 ; i < kNChannels ; i++) {
195202 if (!mHistAmplitudes [i]) {
196203 mHistAmplitudes [i] =
197204 new TH1F (Form (" HistAmplitude%d" , i), Form (" HistAmplitude%d" , i), 4096 , 0 ., 4096 .);
198205 // publish some of them
199- if (i % 1000 == 0 )
206+ if (i % 1000 == 0 ) {
200207 getObjectsManager ()->startPublishing (mHistAmplitudes [i]);
201-
208+ }
202209 } else {
203210 mHistAmplitudes [i]->Reset ();
204211 }
0 commit comments