@@ -136,6 +136,10 @@ class MatchITSTPCQC
136136 TH1D* getHisto1OverPtPhysPrimDen (matchType m) const { return m1OverPtPhysPrimDen[m]; }
137137 TEfficiency* getFractionITSTPCmatchPhysPrim1OverPt (matchType m) const { return mFractionITSTPCmatchPhysPrim1OverPt [m]; }
138138
139+ TH3F* getHistoEtaPhiPtNum (matchType m) const { return mEtaPhiPtNum [m]; }
140+ TH3F* getHistoEtaPhiPtDen (matchType m) const { return mEtaPhiPtDen [m]; }
141+ TEfficiency* getFractionITSTPCmatchEtaPhiPt (matchType m) const { return mFractionITSTPCmatchEtaPhiPt [m]; }
142+
139143 TH3F* getHistoK0MassVsPtVsOccpp () const { return mK0MassVsPtVsOccpp ; }
140144 TH3F* getHistoK0MassVsPtVsOccPbPb () const { return mK0MassVsPtVsOccPbPb ; }
141145
@@ -190,6 +194,11 @@ class MatchITSTPCQC
190194 publisher->startPublishing (m1OverPtDen[i]);
191195 publisher->startPublishing (mFractionITSTPCmatch1OverPt [i]);
192196
197+ // 3D eta/phi/pt
198+ publisher->startPublishing (mEtaPhiPtNum [i]);
199+ publisher->startPublishing (mEtaPhiPtDen [i]);
200+ publisher->startPublishing (mFractionITSTPCmatchEtaPhiPt [i]);
201+
193202 if (mUseTrkPID ) { // Vs Tracking PID hypothesis
194203 for (int j = 0 ; j < o2::track::PID::NIDs; ++j) {
195204 // Pt
@@ -271,7 +280,8 @@ class MatchITSTPCQC
271280 // ITS-TPC kinematics
272281 void setPtCut (float v) { mPtCut = v; }
273282 void setMaxPtCut (float v) { mPtMaxCut = v; }
274- void setEtaCut (float v) { mEtaCut = v; } // TODO: define 2 different values for min and max (*)
283+ void setEtaCut (float v) { mEtaCut = v; }
284+ void setEtaNo0Cut (float v) { mEtaNo0Cut = v; }
275285
276286 // K0
277287 void setMaxK0Eta (float v) { mMaxEtaK0 = v; }
@@ -406,17 +416,22 @@ class MatchITSTPCQC
406416 TH1D* m1OverPtPhysPrimNum[matchType::SIZE] = {};
407417 TH1D* m1OverPtPhysPrimDen[matchType::SIZE] = {};
408418 TEfficiency* mFractionITSTPCmatchPhysPrim1OverPt [matchType::SIZE] = {};
419+ // 3D Efficiency in eta/phi/pt
420+ TH3F* mEtaPhiPtNum [matchType::SIZE] = {};
421+ TH3F* mEtaPhiPtDen [matchType::SIZE] = {};
422+ TEfficiency* mFractionITSTPCmatchEtaPhiPt [matchType::SIZE] = {};
409423
410- void setEfficiency (TEfficiency* eff, TH1* hnum, TH1* hden, bool is2D = false );
424+ template <int DIM = 1 , bool DEBUG = false >
425+ void setEfficiency (TEfficiency* eff, TH1* hnum, TH1* hden);
411426
412427 int mNTPCSelectedTracks = 0 ;
413428 int mNITSSelectedTracks = 0 ;
414429 int mNITSTPCSelectedTracks [matchType::SIZE] = {0 , 0 };
415430
416431 // cut values
417432 // ITS track
418- float mPtITSCut = 0 .f; // min pT for ITS track
419- float mEtaITSCut = 1e10f; // eta window for ITS track --> TODO: define 2 different values for min and max (**)
433+ float mPtITSCut = 0 .1f ; // min pT for ITS track
434+ float mEtaITSCut = 1 . 4f ; // eta window for ITS track --> TODO: define 2 different values for min and max (**)
420435 int mMinNClustersITS = 0 ; // min number of ITS clusters
421436 float mMaxChi2PerClusterITS {1e10f}; // max its fit chi2 per ITS cluster
422437 std::vector<std::pair<int8_t , std::set<uint8_t >>> mRequiredITSHits {}; // vector of ITS requirements (minNRequiredHits in specific requiredLayers)
@@ -429,8 +444,9 @@ class MatchITSTPCQC
429444 // ITS-TPC kinematics
430445 float mPtCut = 0 .1f ;
431446 float mPtMaxCut = 1e10f;
432- float mEtaCut = 1e10f; // 1e10f as defaults of Detectors/GlobalTracking/include/GlobalTracking/TrackCuts.h
433- // TODO: define 2 different values for min and max (*)
447+ float mEtaCut = 1 .4f ;
448+ float mEtaNo0Cut = 0 .05f ;
449+ // TODO: define 2 different values for min and max (*)
434450
435451 // for V0s
436452 o2::vertexing::DCAFitterN<2 > mFitterV0 ;
@@ -462,7 +478,7 @@ class MatchITSTPCQC
462478 float mK0MaxDCA = 0.01 ; // max DCA to select the K0
463479 float mK0MinCosPA = 0.995 ; // min cosPA to select the K0
464480
465- ClassDefNV (MatchITSTPCQC, 3 );
481+ ClassDefNV (MatchITSTPCQC, 4 );
466482};
467483} // namespace gloqc
468484} // namespace o2
0 commit comments