Skip to content

Commit e24faa2

Browse files
committed
add comparison with MC truth for TOF
1 parent 7b6a2f2 commit e24faa2

File tree

2 files changed

+59
-0
lines changed

2 files changed

+59
-0
lines changed

Modules/TOF/include/TOF/TOFMatchedTracks.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,10 @@ class TOFMatchedTracks final : public TaskInterface
125125
TH2F* mDTimeTrk[18] = {};
126126
TH2F* mDTimeTrkTPC[18] = {};
127127
TH2F* mDTimeTrkTRD[18] = {};
128+
TH1F* mDeltaTwMC;
129+
TH2F* mExpTimesPiMC[matchType::SIZE] = {};
130+
TH2F* mExpTimesKaMC[matchType::SIZE] = {};
131+
TH2F* mExpTimesPrMC[matchType::SIZE] = {};
128132

129133
TEfficiency* mEffPt[matchType::SIZE] = {};
130134
TEfficiency* mEffEta[matchType::SIZE] = {};

Modules/TOF/src/TOFMatchedTracks.cxx

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,13 +45,20 @@ namespace o2::quality_control_modules::tof
4545

4646
TOFMatchedTracks::~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

Comments
 (0)