@@ -45,13 +45,20 @@ namespace o2::quality_control_modules::tof
4545
4646TOFMatchedTracks::~TOFMatchedTracks ()
4747{
48+ if (mUseMC ) {
49+ delete mDeltaTwMC ;
50+ }
51+
4852 for (int i = 0 ; i < matchType::SIZE; ++i) {
4953 delete mMatchedTracksPt [i];
5054 delete mMatchedTracksEta [i];
5155 delete mMatchedTracks2DPtEta [i];
5256 if (mUseMC ) {
5357 delete mFakeMatchedTracksPt [i];
5458 delete mFakeMatchedTracksEta [i];
59+ delete mExpTimesPiMC [i];
60+ delete mExpTimesKaMC [i];
61+ delete mExpTimesPrMC [i];
5562 }
5663 delete mInTracksPt [i];
5764 delete mInTracksEta [i];
@@ -142,6 +149,11 @@ void TOFMatchedTracks::initialize(o2::framework::InitContext& /*ctx*/)
142149 }
143150
144151 std::array<std::string, 3 > title{ " TPC" , " ITSTPC-ITSTPCTRD" , " TPCTRD" };
152+
153+ if (mUseMC ) {
154+ mDeltaTwMC = new TH1F (" mDeltaTwMC" , " all types;t_{TOF} - t^{0}_{MC} - t_{geant} (ps)" , 100 , -500 , 500 );
155+ }
156+
145157 for (int i = 0 ; i < matchType::SIZE; ++i) {
146158 mInTracksPt [i] = new TH1F (Form (" mInTracksPt_%s" , title[i].c_str ()), Form (" mInTracksPt (matchType: %s); #it{p}_{T}; counts" , title[i].c_str ()), 100 , 0 .f , 20 .f );
147159 mInTracksEta [i] = new TH1F (Form (" mInTracksEta_%s" , title[i].c_str ()), Form (" mInTracksEta (matchType: %s); #eta; counts" , title[i].c_str ()), 100 , -1 .0f , 1 .0f );
@@ -154,6 +166,9 @@ void TOFMatchedTracks::initialize(o2::framework::InitContext& /*ctx*/)
154166 mFakeMatchedTracksEta [i] = new TH1F (Form (" mFakeMatchedTracksEta_%s" , title[i].c_str ()), Form (" mFakeMatchedTracksEta (matchType: %s); #eta; counts" , title[i].c_str ()), 100 , -1 .0f , 1 .0f );
155167 mFakeFractionTracksPt [i] = new TEfficiency (Form (" mFakeFractionPt_%s" , title[i].c_str ()), Form (" Fraction of fake matches vs Pt (matchType: %s); #it{p}_{T}; Eff" , title[i].c_str ()), 100 , 0 .f , 20 .f );
156168 mFakeFractionTracksEta [i] = new TEfficiency (Form (" mFakeFractionEta_%s" , title[i].c_str ()), Form (" Fraction of fake matches vs Eta (matchType: %s); #eta; Eff" , title[i].c_str ()), 100 , -1 .0f , 1 .0f );
169+ mExpTimesPiMC [i] = new TH2F (Form (" mExpTimesPiMC_%s" , title[i].c_str ()), " ;p_{T} (GeV/c);t_{geant} - t_{exp}^{#pi} (ps)" , 10 , 0 , 2 , 100 , -1000 , 1000 );
170+ mExpTimesKaMC [i] = new TH2F (Form (" mExpTimesKaMC_%s" , title[i].c_str ()), " ;p_{T} (GeV/c);t_{geant} - t_{exp}^{K} (ps)" , 10 , 0 , 2 , 100 , -1000 , 1000 );
171+ mExpTimesPrMC [i] = new TH2F (Form (" mExpTimesPrMC_%s" , title[i].c_str ()), " ;p_{T} (GeV/c);t_{geant} - t_{exp}^{p} (ps)" , 10 , 0 , 2 , 100 , -1000 , 1000 );
157172 }
158173 mEffPt [i] = new TEfficiency (Form (" mEffPt_%s" , title[i].c_str ()), Form (" Efficiency vs Pt (matchType: %s); #it{p}_{T}; Eff" , title[i].c_str ()), 100 , 0 .f , 20 .f );
159174 mEffEta [i] = new TEfficiency (Form (" mEffEta_%s" , title[i].c_str ()), Form (" Efficiency vs Eta (matchType: %s); #eta; Eff" , title[i].c_str ()), 100 , -1 .f , 1 .f );
@@ -181,6 +196,10 @@ void TOFMatchedTracks::initialize(o2::framework::InitContext& /*ctx*/)
181196 }
182197 }
183198
199+ if (mUseMC ) {
200+ getObjectsManager ()->startPublishing (mDeltaTwMC );
201+ }
202+
184203 if (mSrc [GID::Source::TPCTOF] == 1 ) {
185204 getObjectsManager ()->startPublishing (mInTracksPt [matchType::TPC]);
186205 getObjectsManager ()->startPublishing (mInTracksEta [matchType::TPC]);
@@ -193,6 +212,9 @@ void TOFMatchedTracks::initialize(o2::framework::InitContext& /*ctx*/)
193212 getObjectsManager ()->startPublishing (mFakeMatchedTracksEta [matchType::TPC]);
194213 getObjectsManager ()->startPublishing (mFakeFractionTracksPt [matchType::TPC]);
195214 getObjectsManager ()->startPublishing (mFakeFractionTracksEta [matchType::TPC]);
215+ getObjectsManager ()->startPublishing (mExpTimesPiMC [matchType::TPC]);
216+ getObjectsManager ()->startPublishing (mExpTimesKaMC [matchType::TPC]);
217+ getObjectsManager ()->startPublishing (mExpTimesPrMC [matchType::TPC]);
196218 }
197219 getObjectsManager ()->startPublishing (mEffPt [matchType::TPC]);
198220 getObjectsManager ()->startPublishing (mEffEta [matchType::TPC]);
@@ -219,6 +241,9 @@ void TOFMatchedTracks::initialize(o2::framework::InitContext& /*ctx*/)
219241 getObjectsManager ()->startPublishing (mFakeMatchedTracksEta [matchType::TPCTRD]);
220242 getObjectsManager ()->startPublishing (mFakeFractionTracksPt [matchType::TPCTRD]);
221243 getObjectsManager ()->startPublishing (mFakeFractionTracksEta [matchType::TPCTRD]);
244+ getObjectsManager ()->startPublishing (mExpTimesPiMC [matchType::TPCTRD]);
245+ getObjectsManager ()->startPublishing (mExpTimesKaMC [matchType::TPCTRD]);
246+ getObjectsManager ()->startPublishing (mExpTimesPrMC [matchType::TPCTRD]);
222247 }
223248 getObjectsManager ()->startPublishing (mEffPt [matchType::TPCTRD]);
224249 getObjectsManager ()->startPublishing (mEffEta [matchType::TPCTRD]);
@@ -245,6 +270,9 @@ void TOFMatchedTracks::initialize(o2::framework::InitContext& /*ctx*/)
245270 getObjectsManager ()->startPublishing (mFakeMatchedTracksEta [matchType::ITSTPC_ITSTPCTRD]);
246271 getObjectsManager ()->startPublishing (mFakeFractionTracksPt [matchType::ITSTPC_ITSTPCTRD]);
247272 getObjectsManager ()->startPublishing (mFakeFractionTracksEta [matchType::ITSTPC_ITSTPCTRD]);
273+ getObjectsManager ()->startPublishing (mExpTimesPiMC [matchType::ITSTPC_ITSTPCTRD]);
274+ getObjectsManager ()->startPublishing (mExpTimesKaMC [matchType::ITSTPC_ITSTPCTRD]);
275+ getObjectsManager ()->startPublishing (mExpTimesPrMC [matchType::ITSTPC_ITSTPCTRD]);
248276 }
249277 getObjectsManager ()->startPublishing (mEffPt [matchType::ITSTPC_ITSTPCTRD]);
250278 getObjectsManager ()->startPublishing (mEffEta [matchType::ITSTPC_ITSTPCTRD]);
@@ -356,6 +384,11 @@ void TOFMatchedTracks::monitorData(o2::framework::ProcessingContext& ctx)
356384 if (lbl.isFake ()) {
357385 mFakeMatchedTracksPt [matchType::TPC]->Fill (trk.getPt ());
358386 mFakeMatchedTracksEta [matchType::TPC]->Fill (trk.getEta ());
387+ } else {
388+ mDeltaTwMC ->Fill (matchTOF.getSignal () - matchTOF.getT0true () - matchTOF.getTgeant () * 1E3 );
389+ mExpTimesPiMC [matchType::TPC]->Fill (trk.getPt (), matchTOF.getTgeant () * 1E3 - matchTOF.getLTIntegralOut ().getTOF (2 ));
390+ mExpTimesKaMC [matchType::TPC]->Fill (trk.getPt (), matchTOF.getTgeant () * 1E3 - matchTOF.getLTIntegralOut ().getTOF (3 ));
391+ mExpTimesPrMC [matchType::TPC]->Fill (trk.getPt (), matchTOF.getTgeant () * 1E3 - matchTOF.getLTIntegralOut ().getTOF (4 ));
359392 }
360393 }
361394 }
@@ -418,6 +451,11 @@ void TOFMatchedTracks::monitorData(o2::framework::ProcessingContext& ctx)
418451 if (lbl.isFake ()) {
419452 mFakeMatchedTracksPt [matchType::ITSTPC_ITSTPCTRD]->Fill (trkTPC.getPt ());
420453 mFakeMatchedTracksEta [matchType::ITSTPC_ITSTPCTRD]->Fill (trkTPC.getEta ());
454+ } else {
455+ mDeltaTwMC ->Fill (matchTOF.getSignal () - matchTOF.getT0true () - matchTOF.getTgeant () * 1E3 );
456+ mExpTimesPiMC [matchType::ITSTPC_ITSTPCTRD]->Fill (trkTPC.getPt (), matchTOF.getTgeant () * 1E3 - matchTOF.getLTIntegralOut ().getTOF (2 ));
457+ mExpTimesKaMC [matchType::ITSTPC_ITSTPCTRD]->Fill (trkTPC.getPt (), matchTOF.getTgeant () * 1E3 - matchTOF.getLTIntegralOut ().getTOF (3 ));
458+ mExpTimesPrMC [matchType::ITSTPC_ITSTPCTRD]->Fill (trkTPC.getPt (), matchTOF.getTgeant () * 1E3 - matchTOF.getLTIntegralOut ().getTOF (4 ));
421459 }
422460 }
423461 }
@@ -458,6 +496,11 @@ void TOFMatchedTracks::monitorData(o2::framework::ProcessingContext& ctx)
458496 if (lbl.isFake ()) {
459497 mFakeMatchedTracksPt [matchType::TPCTRD]->Fill (trk.getPt ());
460498 mFakeMatchedTracksEta [matchType::TPCTRD]->Fill (trk.getEta ());
499+ } else {
500+ mDeltaTwMC ->Fill (matchTOF.getSignal () - matchTOF.getT0true () - matchTOF.getTgeant () * 1E3 );
501+ mExpTimesPiMC [matchType::TPCTRD]->Fill (trk.getPt (), matchTOF.getTgeant () * 1E3 - matchTOF.getLTIntegralOut ().getTOF (2 ));
502+ mExpTimesKaMC [matchType::TPCTRD]->Fill (trk.getPt (), matchTOF.getTgeant () * 1E3 - matchTOF.getLTIntegralOut ().getTOF (3 ));
503+ mExpTimesPrMC [matchType::TPCTRD]->Fill (trk.getPt (), matchTOF.getTgeant () * 1E3 - matchTOF.getLTIntegralOut ().getTOF (4 ));
461504 }
462505 }
463506 }
@@ -522,6 +565,11 @@ void TOFMatchedTracks::monitorData(o2::framework::ProcessingContext& ctx)
522565 if (lbl.isFake ()) {
523566 mFakeMatchedTracksPt [matchType::ITSTPC_ITSTPCTRD]->Fill (trkTPC.getPt ());
524567 mFakeMatchedTracksEta [matchType::ITSTPC_ITSTPCTRD]->Fill (trkTPC.getEta ());
568+ } else {
569+ mDeltaTwMC ->Fill (matchTOF.getSignal () - matchTOF.getT0true () - matchTOF.getTgeant () * 1E3 );
570+ mExpTimesPiMC [matchType::ITSTPC_ITSTPCTRD]->Fill (trkTPC.getPt (), matchTOF.getTgeant () * 1E3 - matchTOF.getLTIntegralOut ().getTOF (2 ));
571+ mExpTimesKaMC [matchType::ITSTPC_ITSTPCTRD]->Fill (trkTPC.getPt (), matchTOF.getTgeant () * 1E3 - matchTOF.getLTIntegralOut ().getTOF (3 ));
572+ mExpTimesPrMC [matchType::ITSTPC_ITSTPCTRD]->Fill (trkTPC.getPt (), matchTOF.getTgeant () * 1E3 - matchTOF.getLTIntegralOut ().getTOF (4 ));
525573 }
526574 }
527575 }
@@ -839,6 +887,10 @@ void TOFMatchedTracks::reset()
839887{
840888 // clean all the monitor objects here
841889
890+ if (mUseMC ) {
891+ mDeltaTwMC ->Reset ();
892+ }
893+
842894 ILOG (Debug, Devel) << " Resetting the histograms" << ENDM;
843895 for (int i = 0 ; i < matchType::SIZE; ++i) {
844896 mMatchedTracksPt [i]->Reset ();
@@ -847,6 +899,9 @@ void TOFMatchedTracks::reset()
847899 if (mUseMC ) {
848900 mFakeMatchedTracksPt [i]->Reset ();
849901 mFakeMatchedTracksEta [i]->Reset ();
902+ mExpTimesPiMC [i]->Reset ();
903+ mExpTimesKaMC [i]->Reset ();
904+ mExpTimesPrMC [i]->Reset ();
850905 }
851906 mInTracksPt [i]->Reset ();
852907 mInTracksEta [i]->Reset ();
0 commit comments