CbmRoot
Loading...
Searching...
No Matches
CbmAnaConversionReco.h
Go to the documentation of this file.
1/* Copyright (C) 2014-2016 Fakultaet fuer Mathematik und Naturwissenschaften, Bergische Universitaet Wuppertal, Wuppertal
2 SPDX-License-Identifier: GPL-3.0-only
3 Authors: Sascha Reinecke [committer], Florian Uhlig */
4
13#ifndef CBM_ANA_CONVERSION_RECO
14#define CBM_ANA_CONVERSION_RECO
15
16// included from ROOT
17#include <TClonesArray.h>
18#include <TH1.h>
19#include <TH2.h>
20#include <TH3.h>
21#include <TStopwatch.h>
22
23// included from CbmRoot
25#include "CbmMCTrack.h"
27#include "CbmVertex.h"
28
29#include <vector>
30
31#include "LmvmKinePar.h"
32
34
35public:
37 virtual ~CbmAnaConversionReco();
38
39 void Init();
40 void InitHistos();
41 void Finish();
42
43 void SetTracklistMC(std::vector<CbmMCTrack*> MCTracklist);
44 void SetTracklistReco(std::vector<CbmMCTrack*> MCTracklist, std::vector<TVector3> RecoTracklist1,
45 std::vector<TVector3> RecoTracklist2, std::vector<int> ids, std::vector<Double_t> chi,
46 std::vector<Int_t> GlobalTrackId);
48 Double_t Invmass_4particles(const CbmMCTrack* mctrack1, const CbmMCTrack* mctrack2, const CbmMCTrack* mctrack3,
49 const CbmMCTrack* mctrack4);
50 Double_t SmearValue(Double_t value);
51 Double_t Invmass_4particlesRECO(const TVector3 part1, const TVector3 part2, const TVector3 part3,
52 const TVector3 part4);
54 void CutEfficiencyStudies(int e1, int e2, int e3, int e4, int motherE1, int motherE2, int motherE3, int motherE4,
55 int IsEta = 0);
56 Int_t NofDaughters(Int_t motherId);
57 Double_t CalculateOpeningAngleReco(TVector3 electron1, TVector3 electron2);
58 Double_t CalculateOpeningAngleMC(CbmMCTrack* mctrack1, CbmMCTrack* mctrack2);
59 Double_t CalculateOpeningAngleBetweenGammasMC(CbmMCTrack* mctrack1, CbmMCTrack* mctrack2, CbmMCTrack* mctrack3,
60 CbmMCTrack* mctrack4);
61 Double_t CalculateOpeningAngleBetweenGammasReco(TVector3 electron1, TVector3 electron2, TVector3 electron3,
62 TVector3 electron4);
63
65 LmvmKinePar CalculateKinematicParamsReco(const TVector3 electron1, const TVector3 electron2);
66 LmvmKinePar CalculateKinematicParams_4particles(const TVector3 part1, const TVector3 part2, const TVector3 part3,
67 const TVector3 part4);
68
69 Bool_t IsRichElectronANN(Int_t globalTrackIndex, Double_t momentum);
70 Double_t ElectronANNvalue(Int_t globalTrackIndex, Double_t momentum);
71 Bool_t IsRichElectronNormal(Int_t globalTrackIndex, Double_t momentum);
72
73
74private:
75 TClonesArray* fMcTracks;
76 TClonesArray* fGlobalTracks;
77 TClonesArray* fRichRings;
78 TClonesArray* fRichHits;
79
80
81 std::vector<CbmMCTrack*> fMCTracklist_all;
82 std::vector<CbmMCTrack*> fRecoTracklistEPEM;
83 std::vector<int> fRecoTracklistEPEM_ids;
84 std::vector<Double_t> fRecoTracklistEPEM_chi;
85 std::vector<Int_t> fRecoTracklistEPEM_gtid; // globalTrack Id
86 std::vector<TVector3> fRecoMomentum;
87 std::vector<TVector3> fRecoRefittedMomentum;
88
89
90 std::vector<TH1*> fHistoList_MC; // list of all histograms generated with MC data
91 std::vector<TH1*> fHistoList_reco; // list of all histograms generated with reconstructed data
92 std::vector<TH1*> fHistoList_reco_mom; // list of all histograms of reconstruction data (used momenta)
93 std::vector<TH1*> fHistoList_gg;
94 std::vector<TH1*> fHistoList_gee;
95 std::vector<TH1*> fHistoList_eeee;
96 std::vector<TH1*> fHistoList_all;
97 std::vector<TH1*> fHistoList_eta;
98
99
107
111
113
115
117
118 TH1D* fhMCtest;
119
120
121 // histograms for procedure "InvariantMassTest_4epem()"
130
137
140
143
147
151
158
161
162
185
193
195
202
205
206
207 // analysis of missing lepton (for the case of only 3 leptons with identified as electron)
216 // analysis of missing lepton (for the case of only 3 leptons with identified as electron) - HERE: same parameters for identified electrons
225
226
227 // histograms for eta analysis
231
232 // timer
233 TStopwatch timer;
234 Double_t fTime;
235
238
239 ClassDef(CbmAnaConversionReco, 1)
240};
241
242#endif
Implementation of the electron identification algorithm in the RICH detector using Artificial Neural ...
std::vector< TH1 * > fHistoList_gee
LmvmKinePar CalculateKinematicParams_4particles(const TVector3 part1, const TVector3 part2, const TVector3 part3, const TVector3 part4)
std::vector< TH1 * > fHistoList_eta
Double_t ElectronANNvalue(Int_t globalTrackIndex, Double_t momentum)
Bool_t IsRichElectronNormal(Int_t globalTrackIndex, Double_t momentum)
void SetTracklistMC(std::vector< CbmMCTrack * > MCTracklist)
std::vector< TVector3 > fRecoRefittedMomentum
void CutEfficiencyStudies(int e1, int e2, int e3, int e4, int motherE1, int motherE2, int motherE3, int motherE4, int IsEta=0)
Double_t CalculateOpeningAngleReco(TVector3 electron1, TVector3 electron2)
Double_t CalculateOpeningAngleBetweenGammasMC(CbmMCTrack *mctrack1, CbmMCTrack *mctrack2, CbmMCTrack *mctrack3, CbmMCTrack *mctrack4)
std::vector< CbmMCTrack * > fRecoTracklistEPEM
std::vector< Int_t > fRecoTracklistEPEM_gtid
Double_t CalculateOpeningAngleMC(CbmMCTrack *mctrack1, CbmMCTrack *mctrack2)
Double_t Invmass_4particles(const CbmMCTrack *mctrack1, const CbmMCTrack *mctrack2, const CbmMCTrack *mctrack3, const CbmMCTrack *mctrack4)
Double_t SmearValue(Double_t value)
std::vector< TVector3 > fRecoMomentum
Int_t NofDaughters(Int_t motherId)
CbmAnaConversionReco(const CbmAnaConversionReco &)
std::vector< Double_t > fRecoTracklistEPEM_chi
std::vector< TH1 * > fHistoList_reco_mom
Double_t CalculateOpeningAngleBetweenGammasReco(TVector3 electron1, TVector3 electron2, TVector3 electron3, TVector3 electron4)
LmvmKinePar CalculateKinematicParamsReco(const TVector3 electron1, const TVector3 electron2)
std::vector< TH1 * > fHistoList_eeee
Bool_t IsRichElectronANN(Int_t globalTrackIndex, Double_t momentum)
std::vector< TH1 * > fHistoList_reco
std::vector< int > fRecoTracklistEPEM_ids
std::vector< CbmMCTrack * > fMCTracklist_all
CbmAnaConversionReco operator=(const CbmAnaConversionReco &)
void SetTracklistReco(std::vector< CbmMCTrack * > MCTracklist, std::vector< TVector3 > RecoTracklist1, std::vector< TVector3 > RecoTracklist2, std::vector< int > ids, std::vector< Double_t > chi, std::vector< Int_t > GlobalTrackId)
std::vector< TH1 * > fHistoList_MC
std::vector< TH1 * > fHistoList_gg
Double_t Invmass_4particlesRECO(const TVector3 part1, const TVector3 part2, const TVector3 part3, const TVector3 part4)
std::vector< TH1 * > fHistoList_all