Go to the documentation of this file.
17 #include "CbmTofHit.h"
30 : FairTask(
"CbmAnaJpsiTask")
36 , fStsTrackMatches(NULL)
40 , fRichRingMatches(NULL)
44 , fTrdTrackMatches(NULL)
47 , fTofHitsMatches(NULL)
49 , fJpsiCandidates(NULL)
70 FairRootManager* ioman = FairRootManager::Instance();
72 Fatal(
"CbmAnaJpsiTask::Init",
"RootManager not instantised!");
75 fMcTracks = (TClonesArray*) ioman->GetObject(
"MCTrack");
77 Fatal(
"CbmAnaJpsiTask::Init",
"No MCtrack Array! ");
80 fStsPoints = (TClonesArray*) ioman->GetObject(
"StsPoint");
82 Fatal(
"CbmAnaJpsiTask::Init",
"No StsPoint Array! ");
85 fStsHits = (TClonesArray*) ioman->GetObject(
"StsHit");
86 if (NULL ==
fStsHits) { Fatal(
"CbmAnaJpsiTask::Init",
"No StsHit Array! "); }
88 fStsTracks = (TClonesArray*) ioman->GetObject(
"StsTrack");
90 Fatal(
"CbmAnaJpsiTask::Init",
"No StsTracks Array! ");
95 Fatal(
"CbmAnaJpsiTask::Init",
"No StsTrackMatches Array!");
98 fRichHits = (TClonesArray*) ioman->GetObject(
"RichHit");
100 Fatal(
"CbmAnaJpsiTask::Init",
"No RichHits Array! ");
103 fRichPoints = (TClonesArray*) ioman->GetObject(
"RichPoint");
105 Fatal(
"CbmAnaJpsiTask::Init",
"No RichPoint Array! ");
108 fRichRings = (TClonesArray*) ioman->GetObject(
"RichRing");
110 Fatal(
"CbmAnaJpsiTask::Init",
"No RichRings Array! ");
115 Fatal(
"CbmAnaJpsiTask::Init",
"No RichRingMatch array!");
119 fTrdHits = (TClonesArray*) ioman->GetObject(
"TrdHit");
121 Fatal(
"CbmAnaJpsiTask::Init",
"No TrdHits Array! ");
124 fTrdPoints = (TClonesArray*) ioman->GetObject(
"TrdPoint");
126 Fatal(
"CbmAnaJpsiTask::Init",
"No TrdPoint Array! ");
131 Fatal(
"CbmAnaDielectronTask::Init",
"No TrdTrackMatch array!");
134 fTrdTracks = (TClonesArray*) ioman->GetObject(
"TrdTrack");
136 Fatal(
"CbmAnaJpsiTask::Init",
"No TrdTracks Array!");
140 fTofHits = (TClonesArray*) ioman->GetObject(
"TofHit");
141 if (NULL ==
fTofHits) { Fatal(
"CbmAnaJpsiTask::Init",
"No TofHits Array! "); }
145 Fatal(
"CbmAnaJpsiTask::Init",
"No TofHitMatch Array! ");
148 fTofPoints = (TClonesArray*) ioman->GetObject(
"TofPoint");
150 Fatal(
"CbmAnaJpsiTask::Init",
"No TofPoint Array! ");
153 fGlobalTracks = (TClonesArray*) ioman->GetObject(
"GlobalTrack");
155 Fatal(
"CbmAnaJpsiTask::Init",
"No GlobalTracks Array!");
166 if (
nullptr ==
fPrimVertex) { LOG(fatal) <<
"No PrimaryVertex array!"; }
169 ioman->Register(
"JpsiCandidates",
172 IsOutputBranchPersistent(
"JpsiCandidates"));
189 hname, hname +
";" + axisX +
";" + axisY, nBins,
min,
max);
206 hname +
";" + axisX +
";" + axisY +
";" + axisZ,
225 hname, hname +
";" + axisX +
";" + axisY, nBins,
min,
max);
243 hname +
";" + axisX +
";" + axisY +
";" + axisZ,
262 hname1, hname1 +
";" + axisX +
";" + axisY, nBins,
min,
max);
265 hname2, hname2 +
";" + axisX +
";" + axisY, nBins,
min,
max);
268 hname3, hname3 +
";" + axisX +
";" + axisY, nBins,
min,
max);
271 hname4, hname4 +
";" + axisX +
";" + axisY, nBins,
min,
max);
274 hname5, hname5 +
";" + axisX +
";" + axisY, nBins,
min,
max);
277 hname6, hname6 +
";" + axisX +
";" + axisY, nBins,
min,
max);
280 hname7, hname7 +
";" + axisX +
";" + axisY, nBins,
min,
max);
283 hname8, hname8 +
";" + axisX +
";" + axisY, nBins,
min,
max);
286 hname9, hname9 +
";" + axisX +
";" + axisY, nBins,
min,
max);
295 "fh_event_number",
"fh_event_number;a.u.;Number of events", 1, 0, 1.);
311 "fh_track_chi2prim",
"#chi^{2}_{prim}",
"particles/event", 200, 0., 20.);
313 "fh_track_mom",
"P [GeV/c]",
"particles/event", 160, 0., 16.);
315 "fh_track_chi2sts",
"#chi^{2}_{STS}",
"particles/event", 80, 0., 8.);
317 "fh_track_rapidity",
"Rapidity",
"particles/event", 40, 0., 4.);
319 "fh_track_pt",
"P_{t} [GeV/c]",
"particles/event", 40, 0., 4.);
321 "fh_track_rich_ann",
"RICH ANN output",
"particles/event", 120, -1.2, 1.2);
323 "fh_track_trd_ann",
"TRD ANN output",
"particles/event", 120, -1.2, 1.2);
326 "m^{2} [GeV/c^{2}]^{2}",
337 "fh_vertex_el_gamma_xz;Z [cm];X [cm];Counter per event",
345 "fh_vertex_el_gamma_yz;Z [cm];Y [cm];Counter per event",
353 "fh_vertex_el_gamma_xy;X [cm];Y [cm];Counter per event",
361 "fh_vertex_el_gamma_rz",
362 "fh_vertex_el_gamma_rz;Z [cm];#sqrt{X^{2}+Y^{2}} [cm];Counter per event",
373 "fh_nof_bg_tracks;Analysis steps;Number of BG particles/event",
379 "fh_nof_el_tracks;Analysis steps;Number of signal particles/event",
384 "fh_source_tracks;Analysis steps;Particle",
394 "fh_signal_minv",
"M_{ee} [GeV/c^{2}]",
"particles/event", 4000, 0, 4.);
396 "fh_bg_minv",
"M_{ee} [GeV/c^{2}]",
"particles/event", 4000, 0., 4.);
398 "fh_pi0_minv",
"M_{ee} [GeV/c^{2}]",
"particles/event", 4000, 0., 4.);
400 "fh_gamma_minv",
"M_{ee} [GeV/c^{2}]",
"particles/event", 4000, 0., 4.);
404 "M_{ee} [GeV/c^{2}]",
410 "M_{ee} [GeV/c^{2}]",
416 "M_{ee} [GeV/c^{2}]",
422 "M_{ee} [GeV/c^{2}]",
430 "M_{ee} [GeV/c^{2}]",
442 "fh_signal_mom",
"P [GeV/c]",
"particles/event", 250, 0., 25.);
457 "fh_nof_mismatches;Analysis steps;particles/event",
462 "fh_nof_mismatches_rich;Analysis steps;particles/event",
467 "fh_nof_mismatches_trd;Analysis steps;particles/event",
472 "fh_nof_mismatches_tof;Analysis steps;particles/event",
479 "fh_track_el_mom",
"P [GeV/c]",
"particles/event", 250, 0., 25.);
481 "fh_track_el_mom_mc_rec;P_{mc};P_{rec};Entries",
490 "fh_bg_participants_minv",
"m_{inv}",
"particles/event", 4000, 0., 4.);
493 "fh_PdgCode_of Others_BG",
"PDGCode",
"particles/event", 500, -0.5, 499.5);
496 "fh_ee_signal_minv_diff_ptcuts_0",
497 "fh_ee_signal_minv_diff_ptcuts_0;M_{ee} [GeV/c^{2}];particles/event",
502 "fh_ee_signal_minv_diff_ptcuts_1",
503 "fh_ee_signal_minv_diff_ptcuts_1;M_{ee} [GeV/c^{2}];particles/event",
508 "fh_ee_signal_minv_diff_ptcuts_2",
509 "fh_ee_signal_minv_diff_ptcuts_2;M_{ee} [GeV/c^{2}];particles/event",
514 "fh_ee_signal_minv_diff_ptcuts_3",
515 "fh_ee_signal_minv_diff_ptcuts_3;M_{ee} [GeV/c^{2}];particles/event",
520 "fh_ee_signal_minv_diff_ptcuts_4",
521 "fh_ee_signal_minv_diff_ptcuts_4;M_{ee} [GeV/c^{2}];particles/event",
526 "fh_ee_signal_minv_diff_ptcuts_5",
527 "fh_ee_signal_minv_diff_ptcuts_5;M_{ee} [GeV/c^{2}];particles/event",
532 "fh_ee_signal_minv_diff_ptcuts_6",
533 "fh_ee_signal_minv_diff_ptcuts_6;M_{ee} [GeV/c^{2}];particles/event",
538 "fh_ee_signal_minv_diff_ptcuts_7",
539 "fh_ee_signal_minv_diff_ptcuts_7;M_{ee} [GeV/c^{2}];particles/event",
549 fHM->
H1(
"fh_event_number")->Fill(0.5);
552 cout <<
"CbmAnaJpsiTask, event No. " <<
fEventNum << endl;
557 Fatal(
"CbmAnaJpsiTask::Exec",
"No PrimaryVertex array!");
563 Fatal(
"CbmAnaDielectronTask::Exec",
"No PrimaryVertex array!");
589 Int_t nofRichHits =
fRichHits->GetEntriesFast();
590 for (Int_t iHit = 0; iHit < nofRichHits; iHit++) {
592 if (NULL == hit)
continue;
595 if (iPoint < 0)
continue;
597 FairMCPoint* point =
static_cast<FairMCPoint*
>(
fRichPoints->At(iPoint));
598 if (NULL == point)
continue;
600 Int_t iMCTrack = point->GetTrackID();
602 if (NULL == track)
continue;
605 if (iMother == -1)
continue;
612 Int_t nMcTracks =
fMcTracks->GetEntries();
613 for (Int_t
i = 0;
i < nMcTracks;
i++) {
615 Bool_t isMcGammaElectron =
617 if (isMcGammaElectron) {
620 fHM->
H2(
"fh_vertex_el_gamma_xz")->Fill(
v.Z(),
v.X());
621 fHM->
H2(
"fh_vertex_el_gamma_yz")->Fill(
v.Z(),
v.Y());
622 fHM->
H2(
"fh_vertex_el_gamma_xy")->Fill(
v.X(),
v.Y());
623 fHM->
H2(
"fh_vertex_el_gamma_rz")
624 ->Fill(
v.Z(),
sqrt(
v.X() *
v.X() +
v.Y() *
v.Y()));
633 for (Int_t iGTrack = 0; iGTrack < nofGlobalTracks; iGTrack++) {
639 if (NULL == globalTrack)
continue;
643 if (cand.
fStsInd < 0)
continue;
645 if (NULL == stsTrack)
continue;
655 if (NULL == richRing)
continue;
661 if (cand.
fTrdInd < 0)
continue;
663 if (trdTrack == NULL)
continue;
668 if (cand.
fTofInd < 0)
continue;
670 if (tofHit == NULL)
continue;
683 for (
int i = 0;
i < nCand;
i++) {
692 if (stsMatch == NULL)
continue;
697 if (mcTrack1 == NULL)
continue;
711 if (richMatch == NULL)
continue;
720 if (trdMatch == NULL)
continue;
726 if (tofInd < 0)
continue;
728 if (tofHit == NULL)
continue;
730 if (tofHitMatch == NULL) {
continue; }
732 if (tofPointIndex < 0)
continue;
733 FairMCPoint* tofPoint = (FairMCPoint*)
fTofPoints->At(tofPointIndex);
734 if (tofPoint == NULL)
continue;
744 for (Int_t
i = 0;
i < nCand;
i++) {
832 for (Int_t
i = 0;
i < nCand;
i++) {
869 if (tr == NULL)
return false;
893 bool nTofHitsGreaterZero =
false;
894 if (tofHit == NULL) {
897 nTofHitsGreaterZero =
true;
899 if ((nMvdHits +
nStsHits) >= 4 && nRichHits >= 7 && nTrdHits >= 6
900 && nTofHitsGreaterZero)
905 Int_t nMcTracks =
fMcTracks->GetEntries();
906 for (Int_t
i = 0;
i < nMcTracks;
i++) {
909 double_t mom = mctrack->
GetP();
923 Int_t nMcTracks =
fMcTracks->GetEntries();
924 for (Int_t iP = 0; iP < nMcTracks; iP++) {
927 if (!isMcSignalElectronP)
continue;
930 for (Int_t iM = 0; iM < nMcTracks; iM++) {
931 if (iP == iM)
continue;
933 Bool_t isMcSignalElectronM =
935 if (!isMcSignalElectronM)
continue;
942 if (isMcSignalElectronM && isMcSignalElectronP) {
952 if (isAccP && isAccM) {
974 Double_t weight = 1.;
983 ->Fill(parRec->
fMinv, weight);
988 ->Fill(parRec->
fMinv, weight);
993 ->Fill(parRec->
fMinv, weight);
995 ->Fill((
double) candP->
fMcPdg - 0.5);
1002 ->Fill(parRec->
fMinv, weight);
1007 ->Fill(parRec->
fMinv, weight);
1012 ->Fill(parRec->
fMinv, weight);
1014 ->Fill((
double) candP->
fMcPdg - 0.5);
1018 ->Fill((
double) candM->
fMcPdg - 0.5);
1023 ->Fill(parRec->
fMinv, weight);
1028 ->Fill(parRec->
fMinv, weight);
1033 ->Fill(parRec->
fMinv, weight);
1035 ->Fill((
double) candP->
fMcPdg - 0.5);
1045 int binNum = (double) step + 0.5;
1054 if (mcCand != NULL) {
1058 fHM->
H2(
"fh_track_el_mom_mc_rec")
1062 fHM->
H1(
"fh_nof_bg_tracks")->Fill(binNum);
1066 fHM->
H1(
"fh_nof_mismatches_rich")->Fill(binNum);
1068 fHM->
H1(
"fh_nof_mismatches_trd")->Fill(binNum);
1070 fHM->
H1(
"fh_nof_mismatches_tof")->Fill(binNum);
1074 fHM->
H2(
"fh_source_tracks")->Fill(binNum, 0.5);
1076 fHM->
H2(
"fh_source_tracks")->Fill(binNum, 1.5);
1077 }
else if (pdg == 211 || pdg == -211) {
1078 fHM->
H2(
"fh_source_tracks")->Fill(binNum, 2.5);
1079 }
else if (pdg == 2212) {
1080 fHM->
H2(
"fh_source_tracks")->Fill(binNum, 3.5);
1081 }
else if (pdg == 321 || pdg == -321) {
1082 fHM->
H2(
"fh_source_tracks")->Fill(binNum, 4.5);
1085 fHM->
H2(
"fh_source_tracks")->Fill(binNum, 5.5);
1087 fHM->
H2(
"fh_source_tracks")->Fill(binNum, 6.5);
1125 ->Fill(parRec->
fMinv);
1131 ->Fill(parRec->
fMinv);
1134 ->Fill(parRec->
fMinv);
1135 if (isBG && isMismatch)
1137 ->Fill(parRec->
fMinv);
1138 if (isBG && !isMismatch) {
1140 ->Fill(parRec->
fMinv);
1143 ->Fill(parRec->
fMinv);
1146 ->Fill(parRec->
fMinv);
1154 for (Int_t
i = 0;
i < ncand;
i++) {
1159 if (NULL != mcTrack) pdg = mcTrack->
GetPdgCode();
1169 if (isChi2Prim && isEl && isPtCut)
1173 for (Int_t iM = 0; iM < ncand; iM++) {
1179 for (Int_t iP = 0; iP < ncand; iP++) {
1184 if (iM == iP)
continue;
1187 if (mctrackP != NULL && mctrackM != NULL)
1201 Bool_t isSignal = (
fCandidates[iP].fIsMcSignalElectron
1209 if (isChiPrimary && isEl) {
1213 if (isChiPrimary && isEl && isPtCut) {
1218 if (isSignal && isChiPrimary && isEl && pRec.
fPt < 0.4) {
1221 if (isSignal && isChiPrimary && isEl && pRec.
fPt >= 0.4
1222 && pRec.
fPt < 0.8) {
1225 if (isSignal && isChiPrimary && isEl && pRec.
fPt >= 0.8
1226 && pRec.
fPt < 1.2) {
1229 if (isSignal && isChiPrimary && isEl && pRec.
fPt >= 1.2
1230 && pRec.
fPt < 1.6) {
1233 if (isSignal && isChiPrimary && isEl && pRec.
fPt >= 1.6
1234 && pRec.
fPt < 2.0) {
1237 if (isSignal && isChiPrimary && isEl && pRec.
fPt >= 2.0
1238 && pRec.
fPt < 2.4) {
1241 if (isSignal && isChiPrimary && isEl && pRec.
fPt >= 2.4
1242 && pRec.
fPt < 3.0) {
1245 if (isSignal && isChiPrimary && isEl && pRec.
fPt >= 3.0
1246 && pRec.
fPt < 6.0) {
1258 globalTrackIndex, momentum);
1260 globalTrackIndex, momentum);
1263 globalTrackIndex, momentum);
1268 globalTrackIndex, momentum);
1279 Bool_t IsTrdMcTrackId =
1291 Int_t nofRichHits =
fRichHits->GetEntriesFast();
1292 for (Int_t
i = 0;
i < nofRichHits;
i++) {
1295 if (NULL == richHit)
continue;
1296 Int_t PointInd = richHit->
GetRefId();
1297 if (PointInd < 0)
continue;
1301 if (NULL == richMcPoint)
continue;
1304 Int_t photonMcTrackId = richMcPoint->GetTrackID();
1305 if (photonMcTrackId == -1)
continue;
1307 if (NULL == photonMcTrack)
continue;
1310 Int_t photonMotherId = photonMcTrack->
GetMotherId();
1311 if (photonMotherId == -1)
continue;
1314 if (NULL == photonMotherMcTrack)
continue;
1316 Bool_t isMcSignalElectron =
1318 Bool_t isMcGammaElectron =
1320 Bool_t isMcPi0Electron =
1322 if (isMcSignalElectron) {
1327 ->Fill(richHit->
GetX(), richHit->
GetY());
1329 if (isMcGammaElectron)
1331 ->Fill(richHit->
GetX(), richHit->
GetY());
1332 if (isMcPi0Electron)
1334 ->Fill(richHit->
GetX(), richHit->
GetY());
1346 TDirectory* oldir = gDirectory;
1347 TFile* outFile = FairRootManager::Instance()->GetOutFile();
1348 if (outFile != NULL) {
1352 gDirectory->cd(oldir->GetPath());
Int_t GetMotherId() const
const CbmLink & GetMatchedLink() const
static void CalculateAndSetTrackParamsToCandidate(CbmAnaJpsiCandidate *cand, CbmStsTrack *stsTrack, CbmKFVertex &kfVertex)
void IsElectron(Int_t globalTrackIndex, Double_t momentum, CbmAnaJpsiCandidate *cand)
Identifies particle as Electron (or not)
TClonesArray * fStsTrackMatches
void CreateSourceTypesH1(const string &name, const string &axisX, const string &axisY, double nBins, double min, double max)
void WriteToFile()
Write all histograms to current opened file.
Bool_t fIsMcGammaElectron
virtual Int_t GetNofHits() const
static CbmAnaJpsiKinematicParams KinematicParamsWithMcTracks(const CbmMCTrack *mctrackP, const CbmMCTrack *mctrackM)
void CreateAnalysisStepsH1(const string &name, const string &axisX, const string &axisY, double nBins, double min, double max)
friend F32vec4 sqrt(const F32vec4 &a)
static Bool_t IsMcGammaElectron(CbmMCTrack *mctrack, TClonesArray *mcTracks)
CbmAnaJpsiTask()
Standard constructor.
void PairMcAndAcceptance()
Fill histograms for MC and Acc pairs.
void Create2(const std::string &name, const std::string &title, Int_t nofBinsX, Double_t minBinX, Double_t maxBinX, Int_t nofBinsY, Double_t minBinY, Double_t maxBinY)
Helper function for creation of 2-dimensional histograms and profiles. Template argument is a real ob...
void FillPairHists(CbmAnaJpsiCandidate *candP, CbmAnaJpsiCandidate *candM, CbmAnaJpsiKinematicParams *parMc, CbmAnaJpsiKinematicParams *parRec, CbmAnaJpsiAnalysisSteps step)
std::map< Int_t, Int_t > fNofHitsInRingMap
Int_t GetRichRingIndex() const
void CreateAnaStepsPairSourceH1(const string &name, const string &axisX, const string &axisY, double nBins, double min, double max)
TH2 * H2(const std::string &name) const
Return pointer to TH2 histogram.
Double_t GetRichAnn(Int_t globalTrackIndex, Double_t momentum)
Identify electron in RICH detector.
Bool_t IsTrdElectron(Int_t globalTrackindex, Double_t momentum)
Identify electron in RICH detector.
@ kMvd
Micro-Vertex Detector.
Double_t GetTrdAnn(Int_t globalTrackindex, Double_t momentum)
Return ANN value for electron Identification in the TRD detector.
TClonesArray * fTrdPoints
@ kTof
Time-of-flight Detector.
Helper functions for drawing 1D and 2D histograms and graphs.
TClonesArray * fStsPoints
static const std::vector< std::string > fAnaSteps
virtual Int_t GetNofHits() const
std::vector< CbmAnaJpsiCandidate > fCandidates
virtual void Exec(Option_t *option)
Inherited from FairTask.
friend F32vec4 min(const F32vec4 &a, const F32vec4 &b)
Bool_t IsRichElectron(Int_t globalTrackIndex, Double_t momentum)
Identify electron in RICH detector.
virtual void Finish()
Inherited from FairTask.
Int_t GetNofMvdHits() const
static CbmAnaJpsiKinematicParams KinematicParamsWithCandidates(const CbmAnaJpsiCandidate *candP, const CbmAnaJpsiCandidate *candM)
Bool_t IsMcTrackAccepted(Int_t mcTrackInd)
Return true if MC track is in detector acceptance.
Data class for STS tracks.
Int_t GetStsTrackIndex() const
void DifferenceSignalAndBg()
Fill histograms for signal and BG electrons.
void IsRecoTrackAccepted(CbmAnaJpsiCandidate *cand)
TClonesArray * fStsTracks
static const std::vector< std::string > fSourceTypes
Int_t GetNPoints(ECbmModuleId detId) const
void PairSource(CbmAnaJpsiCandidate *candP, CbmAnaJpsiCandidate *candM, CbmAnaJpsiAnalysisSteps step, CbmAnaJpsiKinematicParams *parRec)
Int_t GetTrdTrackIndex() const
void Create1(const std::string &name, const std::string &title, Int_t nofBins, Double_t minBin, Double_t maxBin)
Helper function for creation of 1-dimensional histograms and profiles. Template argument is a real ob...
TClonesArray * fRichRingMatches
virtual InitStatus Init()
Inherited from FairTask.
void FillRichRingNofHits()
void SingleParticleAcceptance()
Class for hits in TRD detector.
ClassImp(CbmConverterManager) InitStatus CbmConverterManager
TClonesArray * fTrdTracks
void GetStartVertex(TVector3 &vertex) const
TClonesArray * fRichRings
TH1 * H1(const std::string &name) const
Return pointer to TH1 histogram.
TClonesArray * fTofPoints
virtual ~CbmAnaJpsiTask()
Standard destructor.
void IsMismatch(CbmAnaJpsiCandidate *cand)
Bool_t IsTofElectron(Int_t globalTrackIndex, Double_t momentum)
Identify electron in RICH detector.
@ kTrd
Transition Radiation Detector.
static const int fNofSourceTypes
void CopyCandidatesToOutputArray()
static Bool_t IsMcSignalElectron(CbmMCTrack *mctrack)
TClonesArray * fTrdTrackMatches
void CreateSourceTypesH2(const string &name, const string &axisX, const string &axisY, const string &axisZ, double nBinsX, double minX, double maxX, double nBinsY, double minY, double maxY)
void AssignMcToCandidates()
Assign MC info to the candidates.
void CreateAnalysisStepsH2(const string &name, const string &axisX, const string &axisY, const string &axisZ, double nBinsX, double minX, double maxX, double nBinsY, double minY, double maxY)
Bool_t fIsMcSignalElectron
void TrackSource(CbmAnaJpsiCandidate *cand, CbmAnaJpsiAnalysisSteps step, Int_t pdg)
TClonesArray * fJpsiCandidates
Int_t GetTofHitIndex() const
static const int fNofAnaSteps
friend F32vec4 max(const F32vec4 &a, const F32vec4 &b)
static Bool_t IsMcPi0Electron(CbmMCTrack *mctrack, TClonesArray *mcTracks)
@ kSts
Silicon Tracking System.
Bool_t fIsRecoTrackAccepted
TClonesArray * fRichPoints
static CbmLitGlobalElectronId & GetInstance()
TClonesArray * fTofHitsMatches
void FillCandidates()
Fill fCandidates array with JPsiCandidates. Candidate should have STS, RICH, TRD, TOF local segments.
TClonesArray * fGlobalTracks
Data class for a reconstructed hit in the STS.