]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGGA/CaloTrackCorrelations/AliAnaGeneratorKine.h
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGGA / CaloTrackCorrelations / AliAnaGeneratorKine.h
CommitLineData
7b2086c3 1#ifndef ALIANAGENERATORKINE_H
2#define ALIANAGENERATORKINE_H
3/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
5
6//___________________________________________________________________________
11fa11c2 7// Do direct photon/decay photon (eta, pi0, other)/pi0/eta isolation
8// and correlation with partons/jets/hadrons analysis at the generator level.
9// For MC kinematics at ESD and AOD level
10// Jets only considered in the case of Pythia, check what to do with others.//
7b2086c3 11//
12//-- Author: Gustavo Conesa (LPSC-CNRS-Grenoble)
13
14// --- ROOT ---
15class TH2F ;
16class TParticle ;
17class AliStack ;
18class TLorentzVector ;
19
20// --- ANALYSIS ---
21#include "AliAnaCaloTrackCorrBaseClass.h"
22
23class AliAnaGeneratorKine : public AliAnaCaloTrackCorrBaseClass {
24
25public:
26
27 AliAnaGeneratorKine() ; // default ctor
1b55d56b 28
2b341b44 29 virtual ~AliAnaGeneratorKine() { delete fFidCutTrigger ; } //virtual dtor
7b2086c3 30
1b55d56b 31 enum mcPrimTypes { kmcPrimPhoton = 0, kmcPrimPi0Decay = 1, kmcPrimEtaDecay = 2, kmcPrimOtherDecay = 3,
32 kmcPrimPi0 = 4, kmcPrimEta = 5 } ;
33
34 static const Int_t fgkNmcPrimTypes = 6;
35 static const Int_t fgkNLead = 2;
36 static const Int_t fgkNIso = 4;
37
7d409bf9 38 Bool_t CorrelateWithPartonOrJet(Int_t indexTrig,
b94e038e 39 Int_t pdgTrig,
1b55d56b 40 Bool_t leading [fgkNIso],
41 Bool_t isolated[fgkNIso],
2292cf03 42 Int_t & iparton) ;
7b2086c3 43
764ab1f4 44 TList * GetCreateOutputObjects() ;
7b2086c3 45
46 void GetPartonsAndJets() ;
47
7d409bf9 48 void GetXE(Int_t indexTrig,
b94e038e 49 Int_t pdgTrig,
1b55d56b 50 Bool_t leading [fgkNIso],
51 Bool_t isolated[fgkNIso],
b94e038e 52 Int_t iparton) ;
7b2086c3 53
54 void InitParameters() ;
55
7d409bf9 56 void IsLeadingAndIsolated(Int_t indexTrig,
b94e038e 57 Int_t pdgTrig,
1b55d56b 58 Bool_t leading [fgkNIso],
59 Bool_t isolated[fgkNIso]) ;
229bed7a 60
61 void MakeAnalysisFillHistograms() ;
62
7d409bf9 63 void SetTriggerDetector( TString & det ) ;
64 void SetTriggerDetector( Int_t det ) ;
7b2086c3 65
783b974c 66 void SetMinChargedPt ( Float_t pt ) { fMinChargedPt = pt ; }
67 void SetMinNeutralPt ( Float_t pt ) { fMinNeutralPt = pt ; }
7b2086c3 68
2b341b44 69 // Detector for trigger particles acceptance
70 AliFiducialCut * GetFiducialCutForTrigger()
71 { if(!fFidCutTrigger) fFidCutTrigger = new AliFiducialCut(); return fFidCutTrigger ; }
72 virtual void SetFiducialCut(AliFiducialCut * fc)
73 { delete fFidCutTrigger; fFidCutTrigger = fc ; }
2b341b44 74
7b2086c3 75private:
7d409bf9 76
b5426ac3 77 Int_t fTriggerDetector ; // Detector : EMCAL, PHOS, CTS
78 TString fTriggerDetectorString ; // Detector : EMCAL, PHOS, CTS
1290eee4 79
b5426ac3 80 AliFiducialCut * fFidCutTrigger; //! fiducial cut for the trigger detector
2b341b44 81
b5426ac3 82 Float_t fMinChargedPt; //! Minimum energy for charged particles in correlation
83 Float_t fMinNeutralPt; //! Minimum energy for neutral particles in correlation
783b974c 84
b5426ac3 85 AliStack * fStack; //! access ESD stack
86 TClonesArray * fAODMCparticles ; //! access AOD stack
87
88// TParticle * fParton2; //! Initial state Parton
89// TParticle * fParton3; //! Initial state Parton
7b2086c3 90
d2b28257 91 TLorentzVector fParton6; //! Final state Parton
92 TLorentzVector fParton7; //! Final state Parton
93
94 Int_t fParton6PDG; //! Final state Parton PDG
95 Int_t fParton7PDG; //! Final state Parton PDG
7b2086c3 96
b5426ac3 97 TLorentzVector fJet6; //! Pythia jet close to parton in position 6
98 TLorentzVector fJet7; //! Pythia jet close to parton in position 7
7b2086c3 99
b5426ac3 100 TLorentzVector fTrigger; //! Trigger momentum, avoid generating TLorentzVectors per event
101 TLorentzVector fLVTmp; //! momentum, avoid generating TLorentzVectors per event
7b2086c3 102
b5426ac3 103 Int_t fNPrimaries; //! N primaries
104 Float_t fPtHard; //! Generated pT hard
1b55d56b 105
106 // Histograms
107
108 TH1F * fhPtHard; //! pt of parton
7b2086c3 109 TH1F * fhPtParton; //! pt of parton
110 TH1F * fhPtJet; //! pt of jet
111
112 TH2F * fhPtPartonPtHard; //! pt of parton divided to pt hard, trigger is photon
113 TH2F * fhPtJetPtHard; //! pt of jet divided to pt hard, trigger is photon
114 TH2F * fhPtJetPtParton; //! pt of parton divided to pt parton, trigger is photon
115
1b55d56b 116 TH1F * fhPt[fgkNmcPrimTypes]; //! Input particle
7b2086c3 117
dbb79a05 118 // Histograms arrays for 4 isolation options and 2 options on leading or not leading particle
1b55d56b 119
120 TH2F * fhPtAcceptedGammaJet [fgkNLead][fgkNIso]; //! gamma-jet pair in acceptance (jet in good eta window)
121
dbb79a05 122
1b55d56b 123 TH1F * fhPtLeading [fgkNmcPrimTypes] [fgkNIso]; //! pT
c76fb00a 124
1b55d56b 125 TH2F * fhPtLeadingSumPt [fgkNmcPrimTypes] [fgkNIso]; //! pT vs sum in cone
7b2086c3 126
1b55d56b 127 TH1F * fhPtLeadingIsolated [fgkNmcPrimTypes] [fgkNIso]; //! isolated
7b2086c3 128
1b55d56b 129 TH2F * fhPtPartonTypeNear [fgkNmcPrimTypes][fgkNLead][fgkNIso]; //! particle pt versus originating parton type
dbb79a05 130
1b55d56b 131 TH2F * fhPtPartonTypeNearIsolated[fgkNmcPrimTypes][fgkNLead][fgkNIso]; //! pt versus originating parton type
132
133 TH2F * fhPtPartonTypeAway [fgkNmcPrimTypes][fgkNLead][fgkNIso]; //! pt versus away side parton type
134
135 TH2F * fhPtPartonTypeAwayIsolated[fgkNmcPrimTypes][fgkNLead][fgkNIso]; //! isolated, particle pt versus away side parton type
dbb79a05 136
1b55d56b 137 TH2F * fhZHard [fgkNmcPrimTypes][fgkNLead][fgkNIso]; //! zHard
138
139 TH2F * fhZHardIsolated [fgkNmcPrimTypes][fgkNLead][fgkNIso]; //! isolated, zHard
dbb79a05 140
1b55d56b 141 TH2F * fhZParton [fgkNmcPrimTypes][fgkNLead][fgkNIso]; //! zHard
142
143 TH2F * fhZPartonIsolated [fgkNmcPrimTypes][fgkNLead][fgkNIso]; //! isolated, zHard
7b2086c3 144
1b55d56b 145 TH2F * fhZJet [fgkNmcPrimTypes][fgkNLead][fgkNIso]; //! zHard
146
147 TH2F * fhZJetIsolated [fgkNmcPrimTypes][fgkNLead][fgkNIso]; //! isolated, zHard
7b2086c3 148
1b55d56b 149 TH2F * fhXE [fgkNmcPrimTypes][fgkNLead][fgkNIso]; //! xE away side
150
151 TH2F * fhXEIsolated [fgkNmcPrimTypes][fgkNLead][fgkNIso]; //! xE away side
7b2086c3 152
1b55d56b 153 TH2F * fhXEUE [fgkNmcPrimTypes][fgkNLead][fgkNIso]; //! xE away side
154
155 TH2F * fhXEUEIsolated [fgkNmcPrimTypes][fgkNLead][fgkNIso]; //! xE away side
657c0643 156
7b2086c3 157
158 AliAnaGeneratorKine (const AliAnaGeneratorKine & gk) ; // cpy ctor
159 AliAnaGeneratorKine & operator = (const AliAnaGeneratorKine & gk) ; // cpy assignment
160
b5426ac3 161 ClassDef(AliAnaGeneratorKine,6)
7b2086c3 162
163} ;
164
165
166#endif //ALIANAGENERATORKINE_H
167
168
169