]>
Commit | Line | Data |
---|---|---|
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 --- | |
15 | class TH2F ; | |
16 | class TParticle ; | |
17 | class AliStack ; | |
18 | class TLorentzVector ; | |
19 | ||
20 | // --- ANALYSIS --- | |
21 | #include "AliAnaCaloTrackCorrBaseClass.h" | |
22 | ||
23 | class AliAnaGeneratorKine : public AliAnaCaloTrackCorrBaseClass { | |
24 | ||
25 | public: | |
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 | 75 | private: |
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 |