CbmRoot
Loading...
Searching...
No Matches
CbmKresEtaMCAnalysis.h
Go to the documentation of this file.
1/* Copyright (C) 2020 GSI Helmholtzzentrum fuer Schwerionenforschung, Darmstadt
2 SPDX-License-Identifier: GPL-3.0-only
3 Authors: Florian Uhlig [committer] */
4
5#ifndef CBM_KRES_ETA_MC_ANALYSIS
6#define CBM_KRES_ETA_MC_ANALYSIS
7
8class TH1;
9class TH1D;
10class TH2D;
11
12#include "CbmMCTrack.h"
13
14#include <TClonesArray.h>
15
16#include <vector>
17
18using namespace std;
19
21
22public:
23 //***** brief Standard constructor.
25 //***** brief Standard destructor.
26 virtual ~CbmKresEtaMCAnalysis();
27
28
29 void Init();
30 void InitHistograms();
31 void Finish();
32
33 void Exec(int Event, double OpeningAngleCut, double GammaInvMassCut);
34
35 Double_t CalculateOpeningAngleBetweenGammas_MC(CbmMCTrack* mctrack1, CbmMCTrack* mctrack2, CbmMCTrack* mctrack3,
36 CbmMCTrack* mctrack4);
37 Double_t CalculateOpeningAngleBetweenGammas_Reco(TVector3 electron1, TVector3 electron2, TVector3 electron3,
38 TVector3 electron4);
39
40 void EtaDoubleGammaAnalysis(vector<TVector3> RefMom, vector<CbmMCTrack*> MC, vector<Int_t> Id, vector<TH1*> gg);
41
42 void EtaChargedPionsGammaAnalysis(vector<TVector3> RefMomPion, vector<CbmMCTrack*> MCPion, vector<Int_t> IdPion,
43 vector<TVector3> RefMomEl, vector<CbmMCTrack*> MCEl, vector<Int_t> IdEl,
44 vector<TH1*> ppg);
45
46 void EtaPosNegNeutralPionsAnalysis(vector<TVector3> RefMomNeutral, vector<CbmMCTrack*> MCNeutral,
47 vector<Int_t> IdNeutral, vector<TVector3> RefMomPion, vector<CbmMCTrack*> MCPion,
48 vector<Int_t> IdPion, vector<TH1*> ppp);
49
50
51 void EtaDoubleGammaAnalysis_plusBG(double OpeningAngleCut, double GammaInvMassCut, int Event, vector<TVector3> RefMom,
52 vector<CbmMCTrack*> MC, vector<Int_t> Id, vector<TH1*> gg);
53 void EtaChargedPionsGammaAnalysis_plusBG(double OpeningAngleCut, double GammaInvMassCut, int Event,
54 vector<TVector3> RefMomPion, vector<CbmMCTrack*> MCPion,
55 vector<Int_t> IdPion, vector<TVector3> RefMomEl, vector<CbmMCTrack*> MCEl,
56 vector<Int_t> IdEl, vector<TH1*> ppg, vector<TH1*> ppp);
57
58 void Mixing_gg();
59 void Mixing_ppg();
60 void Mixing_three_body();
61
62
63private:
64 TClonesArray* fMcTracks;
65 TClonesArray* fGlobalTracks;
66 TClonesArray* fStsTracks;
67 TClonesArray* fStsTrackMatches;
68
69 vector<TVector3> El_Photon_Eta_refmomentum;
70 vector<CbmMCTrack*> El_Photon_Eta_MCtrack;
71 vector<int> El_Photon_Eta_Id;
72
74 vector<CbmMCTrack*> El_Photon_Pion_Eta_MCtrack;
76
77 vector<TVector3> Pion_Eta_refmomentum;
78 vector<CbmMCTrack*> Pion_Eta_MCtrack;
79 vector<int> Pion_Eta_Id;
80
81 vector<TVector3> All_El_refmomentum;
82 vector<CbmMCTrack*> All_El_MCtrack;
83 vector<int> All_El_Id;
84
85 vector<TVector3> All_Pion_refmomentum;
86 vector<CbmMCTrack*> All_Pion_MCtrack;
87 vector<int> All_Pion_Id;
88
89
90 vector<TVector3> frefmomenta;
91 vector<CbmMCTrack*> fMCtracks;
92 vector<int> fMCId;
93
94 std::vector<std::vector<TVector3>> EDGA_RefMom;
95 std::vector<std::vector<CbmMCTrack*>> EDGA_MC;
96 std::vector<std::vector<int>> EDGA_Id;
97
98 std::vector<std::vector<TVector3>> ECPGA_leptons_RefMom;
99 std::vector<std::vector<CbmMCTrack*>> ECPGA_leptons_MC;
100 std::vector<std::vector<int>> ECPGA_leptons_Id;
101
102 std::vector<std::vector<TVector3>> ECPGA_pions_RefMom;
103 std::vector<std::vector<CbmMCTrack*>> ECPGA_pions_MC;
104
105
106 vector<TH1*> fHistoList_eta_gg;
121
122
123 vector<TH1*> fHistoList_eta_ppg;
144
145
146 vector<TH1*> fHistoList_eta_ppp;
153
154
155 // EMT for gg channel
156 std::vector<int> EMT_gg_Event;
157 std::vector<std::vector<TVector3>> EMT_gg_pair_momenta;
158
159 // EMT for ppg channel
160 std::vector<int> EMT_ppg_ee_Event;
161 std::vector<std::vector<TVector3>> EMT_ppg_ee_pair_momenta;
162 std::vector<int> EMT_ppg_pp_Event;
163 std::vector<std::vector<TVector3>> EMT_ppg_pp_pair_momenta;
164
165 // EMT for 3 body ==> completely uncorrelated bg
167 std::vector<TVector3> EMT_ppg_positive_pion_momenta;
169 std::vector<TVector3> EMT_ppg_negative_pion_momenta;
170
171
172 //***** brief Copy constructor.
174
175 //***** brief Assignment operator.
177
178
179 ClassDef(CbmKresEtaMCAnalysis, 1)
180};
181
182#endif
vector< TH1 * > fHistoList_eta_gg
CbmKresEtaMCAnalysis operator=(const CbmKresEtaMCAnalysis &)
vector< CbmMCTrack * > El_Photon_Pion_Eta_MCtrack
Double_t CalculateOpeningAngleBetweenGammas_Reco(TVector3 electron1, TVector3 electron2, TVector3 electron3, TVector3 electron4)
Double_t CalculateOpeningAngleBetweenGammas_MC(CbmMCTrack *mctrack1, CbmMCTrack *mctrack2, CbmMCTrack *mctrack3, CbmMCTrack *mctrack4)
std::vector< std::vector< TVector3 > > EMT_ppg_pp_pair_momenta
vector< TVector3 > El_Photon_Eta_refmomentum
vector< CbmMCTrack * > fMCtracks
vector< CbmMCTrack * > All_El_MCtrack
void EtaChargedPionsGammaAnalysis(vector< TVector3 > RefMomPion, vector< CbmMCTrack * > MCPion, vector< Int_t > IdPion, vector< TVector3 > RefMomEl, vector< CbmMCTrack * > MCEl, vector< Int_t > IdEl, vector< TH1 * > ppg)
TClonesArray * fStsTrackMatches
std::vector< int > EMT_ppg_pp_Event
vector< TVector3 > Pion_Eta_refmomentum
void EtaChargedPionsGammaAnalysis_plusBG(double OpeningAngleCut, double GammaInvMassCut, int Event, vector< TVector3 > RefMomPion, vector< CbmMCTrack * > MCPion, vector< Int_t > IdPion, vector< TVector3 > RefMomEl, vector< CbmMCTrack * > MCEl, vector< Int_t > IdEl, vector< TH1 * > ppg, vector< TH1 * > ppp)
void Exec(int Event, double OpeningAngleCut, double GammaInvMassCut)
std::vector< std::vector< TVector3 > > ECPGA_pions_RefMom
std::vector< std::vector< CbmMCTrack * > > ECPGA_leptons_MC
std::vector< int > EMT_ppg_positive_pion_Event
std::vector< TVector3 > EMT_ppg_positive_pion_momenta
CbmKresEtaMCAnalysis(const CbmKresEtaMCAnalysis &)
vector< CbmMCTrack * > Pion_Eta_MCtrack
std::vector< std::vector< CbmMCTrack * > > EDGA_MC
std::vector< int > EMT_gg_Event
void EtaPosNegNeutralPionsAnalysis(vector< TVector3 > RefMomNeutral, vector< CbmMCTrack * > MCNeutral, vector< Int_t > IdNeutral, vector< TVector3 > RefMomPion, vector< CbmMCTrack * > MCPion, vector< Int_t > IdPion, vector< TH1 * > ppp)
std::vector< std::vector< int > > EDGA_Id
std::vector< std::vector< TVector3 > > EMT_ppg_ee_pair_momenta
vector< TVector3 > frefmomenta
void EtaDoubleGammaAnalysis(vector< TVector3 > RefMom, vector< CbmMCTrack * > MC, vector< Int_t > Id, vector< TH1 * > gg)
vector< TVector3 > El_Photon_Pion_Eta_refmomentum
std::vector< std::vector< TVector3 > > ECPGA_leptons_RefMom
std::vector< std::vector< TVector3 > > EMT_gg_pair_momenta
TH1D * OA_betweenPions_fromEta_reco_wrongcombinations
std::vector< std::vector< CbmMCTrack * > > ECPGA_pions_MC
vector< TVector3 > All_El_refmomentum
void EtaDoubleGammaAnalysis_plusBG(double OpeningAngleCut, double GammaInvMassCut, int Event, vector< TVector3 > RefMom, vector< CbmMCTrack * > MC, vector< Int_t > Id, vector< TH1 * > gg)
std::vector< TVector3 > EMT_ppg_negative_pion_momenta
vector< CbmMCTrack * > All_Pion_MCtrack
std::vector< std::vector< TVector3 > > EDGA_RefMom
vector< TH1 * > fHistoList_eta_ppg
std::vector< int > EMT_ppg_ee_Event
vector< TH1 * > fHistoList_eta_ppp
vector< CbmMCTrack * > El_Photon_Eta_MCtrack
std::vector< int > EMT_ppg_negative_pion_Event
vector< int > El_Photon_Pion_Eta_Id
vector< TVector3 > All_Pion_refmomentum
std::vector< std::vector< int > > ECPGA_leptons_Id
Hash for CbmL1LinkKey.