CbmRoot
Loading...
Searching...
No Matches
CbmAnaConversionTest.h
Go to the documentation of this file.
1/* Copyright (C) 2015-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_TEST
14#define CBM_ANA_CONVERSION_TEST
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
24#include "CbmGlobalTrack.h"
25#include "CbmKFVertex.h"
27#include "CbmMCTrack.h"
28#include "CbmVertex.h"
29
30#include <vector>
31
32#include "LmvmKinePar.h"
33
35
36public:
38 virtual ~CbmAnaConversionTest();
39
40 void Init();
41 void InitHistos();
42 void Finish();
43
44 void Exec();
45
47 Double_t CalcInvMass(Int_t e1, Int_t e2, Int_t e3, Int_t e4);
48
49 void DoSTSonlyAnalysis();
51 void CombinePhotons();
53 LmvmKinePar CalculateKinematicParamsReco(const TVector3 electron1, const TVector3 electron2);
54 Double_t Invmass_4particlesRECO(const TVector3 part1, const TVector3 part2, const TVector3 part3,
55 const TVector3 part4);
56
59
60 Bool_t HasRichInd(Int_t gtIndex, Int_t arrayIndex);
61
62 void MixedEventTest_3p1();
64 Double_t ElectronANNvalue(Int_t globalTrackIndex, Double_t momentum);
65
66
67private:
68 TClonesArray* fRichPoints;
69 TClonesArray* fRichRings;
70 TClonesArray* fRichRingMatches;
71 TClonesArray* fMcTracks;
72 TClonesArray* fStsTracks;
73 TClonesArray* fStsTrackMatches;
74 TClonesArray* fGlobalTracks;
77
78 std::vector<TH1*> fHistoList_test; // list of all histograms related to rich rings
79
80 std::vector<int> fElectrons_gtid;
81 std::vector<int> fElectrons_mcid;
82 std::vector<int> fElectrons_richInd;
83 std::vector<int> fElectrons_pi0mcid;
84 std::vector<int> fElectrons_same;
85
88
90
91
92 // histograms for STS only analysis
101
102 // arrays for CombinePhotons_STSonly()
108
114
117
118 // array with all refitted momenta
119 std::vector<TVector3> fVector_AllMomenta;
120
121
122 // arrays for STS only analysis (i.e. signal only in STS is required, not necessarily in RICH)
123 std::vector<CbmGlobalTrack*> fVector_gt;
124 std::vector<TVector3> fVector_momenta;
125 std::vector<double> fVector_chi;
126 std::vector<int> fVector_gtIndex;
127 std::vector<int> fVector_richIndex;
128 std::vector<int> fVector_mcIndex;
129 std::vector<bool> fVector_withRichSignal;
130 std::vector<std::vector<int>> fVector_reconstructedPhotons_FromSTSandRICH;
131
132 // arrays for electrons, that have been identified in RICH as electrons
133 std::vector<CbmGlobalTrack*> fVector_electronRICH_gt;
136 std::vector<TVector3> fVector_electronRICH_momenta;
137 std::vector<std::vector<int>> fVector_electronRICH_reconstructedPhotons;
138
139 // additional arrays, for CombineElectrons_STSonly() and CombinePhotons_STSonly()
140 std::vector<std::vector<int>> fVector_reconstructedPhotons_STSonly;
141
142
143 // EVENT MIXING
145 // for STS only mixed events creation
146 // TH1D * fhTest_eventMixing_RICHindex0;
147 // TH1D * fhTest_eventMixing_RICHindex1;
148 // TH1D * fhTest_eventMixing_RICHindex2;
149 // TH1D * fhTest_eventMixing_RICHindex3;
150 // TH1D * fhTest_eventMixing_RICHindex4;
151 std::vector<std::vector<TVector3>> fMixedTest_STSonly_photons;
153 std::vector<std::vector<bool>> fMixedTest_STSonly_hasRichInd;
157
158 // for other event mixing (3 + 1)
159 std::vector<std::vector<TVector3>> fMixedTest_3p1_photons;
160 std::vector<int> fMixedTest_3p1_eventno;
161 std::vector<int> fMixedTest_3p1_combined;
162 std::vector<std::vector<Double_t>> fMixedTest_3p1_ann;
167
168
171
172 ClassDef(CbmAnaConversionTest, 1)
173};
174
175#endif
std::vector< std::vector< int > > fVector_electronRICH_reconstructedPhotons
std::vector< int > fVector_electronRICH_mcIndex
std::vector< int > fMixedTest_3p1_eventno
LmvmKinePar CalculateKinematicParamsReco(const TVector3 electron1, const TVector3 electron2)
std::vector< int > fMixedTest_3p1_combined
std::vector< std::vector< int > > fVector_reconstructedPhotons_FromSTSandRICH
std::vector< double > fVector_chi
std::vector< int > fVector_electronRICH_gtIndex
std::vector< int > fElectrons_gtid
std::vector< int > fVector_richIndex
std::vector< int > fElectrons_pi0mcid
std::vector< CbmGlobalTrack * > fVector_electronRICH_gt
std::vector< TVector3 > fVector_AllMomenta
std::vector< std::vector< int > > fVector_reconstructedPhotons_STSonly
std::vector< std::vector< bool > > fMixedTest_STSonly_hasRichInd
Double_t Invmass_4particlesRECO(const TVector3 part1, const TVector3 part2, const TVector3 part3, const TVector3 part4)
std::vector< int > fElectrons_same
std::vector< std::vector< TVector3 > > fMixedTest_STSonly_photons
TClonesArray * fStsTrackMatches
std::vector< int > fVector_gtIndex
std::vector< int > fMixedTest_STSonly_eventno
std::vector< std::vector< TVector3 > > fMixedTest_3p1_photons
Double_t ElectronANNvalue(Int_t globalTrackIndex, Double_t momentum)
std::vector< CbmGlobalTrack * > fVector_gt
std::vector< bool > fVector_withRichSignal
std::vector< int > fVector_mcIndex
Bool_t HasRichInd(Int_t gtIndex, Int_t arrayIndex)
std::vector< TH1 * > fHistoList_test
CbmAnaConversionTest(const CbmAnaConversionTest &)
CbmAnaConversionTest operator=(const CbmAnaConversionTest &)
std::vector< std::vector< Double_t > > fMixedTest_3p1_ann
std::vector< int > fElectrons_richInd
std::vector< int > fElectrons_mcid
Double_t CalcInvMass(Int_t e1, Int_t e2, Int_t e3, Int_t e4)
std::vector< TVector3 > fVector_momenta
TClonesArray * fRichRingMatches
std::vector< TVector3 > fVector_electronRICH_momenta