]>
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 | //___________________________________________________________________________ | |
7 | // Do photon/pi0 analysis for isolation and correlation | |
8 | // at the generator level. Only for kine stack (ESDs) | |
9 | // | |
10 | // | |
11 | //-- Author: Gustavo Conesa (LPSC-CNRS-Grenoble) | |
12 | ||
13 | // --- ROOT --- | |
14 | class TH2F ; | |
15 | class TParticle ; | |
16 | class AliStack ; | |
17 | class TLorentzVector ; | |
18 | ||
19 | // --- ANALYSIS --- | |
20 | #include "AliAnaCaloTrackCorrBaseClass.h" | |
21 | ||
22 | class AliAnaGeneratorKine : public AliAnaCaloTrackCorrBaseClass { | |
23 | ||
24 | public: | |
25 | ||
26 | AliAnaGeneratorKine() ; // default ctor | |
2b341b44 | 27 | virtual ~AliAnaGeneratorKine() { delete fFidCutTrigger ; } //virtual dtor |
7b2086c3 | 28 | |
b94e038e | 29 | Bool_t CorrelateWithPartonOrJet(TLorentzVector trigger, |
30 | Int_t indexTrig, | |
31 | Int_t pdgTrig, | |
32 | Bool_t leading[4], | |
33 | Bool_t isolated[4], | |
2292cf03 | 34 | Int_t & iparton) ; |
7b2086c3 | 35 | |
764ab1f4 | 36 | TList * GetCreateOutputObjects() ; |
7b2086c3 | 37 | |
38 | void GetPartonsAndJets() ; | |
39 | ||
b94e038e | 40 | void GetXE(TLorentzVector trigger, |
41 | Int_t indexTrig, | |
42 | Int_t pdgTrig, | |
43 | Bool_t leading[4], | |
44 | Bool_t isolated[4], | |
45 | Int_t iparton) ; | |
7b2086c3 | 46 | |
47 | void InitParameters() ; | |
48 | ||
b94e038e | 49 | void IsLeadingAndIsolated(TLorentzVector trigger, |
50 | Int_t indexTrig, | |
51 | Int_t pdgTrig, | |
7b2086c3 | 52 | Bool_t leading[4], |
53 | Bool_t isolated[4]) ; | |
229bed7a | 54 | |
55 | void MakeAnalysisFillHistograms() ; | |
56 | ||
57 | void SetTriggerDetector( TString name ) { fTriggerDetector = name ; } | |
58 | void SetCalorimeter ( TString name ) { fCalorimeter = name ; } | |
7b2086c3 | 59 | |
783b974c | 60 | void SetMinChargedPt ( Float_t pt ) { fMinChargedPt = pt ; } |
61 | void SetMinNeutralPt ( Float_t pt ) { fMinNeutralPt = pt ; } | |
7b2086c3 | 62 | |
2b341b44 | 63 | // Detector for trigger particles acceptance |
64 | AliFiducialCut * GetFiducialCutForTrigger() | |
65 | { if(!fFidCutTrigger) fFidCutTrigger = new AliFiducialCut(); return fFidCutTrigger ; } | |
66 | virtual void SetFiducialCut(AliFiducialCut * fc) | |
67 | { delete fFidCutTrigger; fFidCutTrigger = fc ; } | |
68 | ||
69 | ||
7b2086c3 | 70 | private: |
71 | ||
229bed7a | 72 | TString fTriggerDetector; //! trigger detector, for fiducial region |
73 | TString fCalorimeter; //! detector neutral particles, for fiducial region | |
74 | ||
2b341b44 | 75 | AliFiducialCut* fFidCutTrigger; //! fiducial cut for the trigger detector |
76 | ||
783b974c | 77 | Float_t fMinChargedPt; //! Minimum energy for charged particles in correlation |
78 | Float_t fMinNeutralPt; //! Minimum energy for neutral particles in correlation | |
79 | ||
7b2086c3 | 80 | AliStack * fStack; //! access stack |
81 | ||
82 | TParticle * fParton2; //! Initial state Parton | |
83 | TParticle * fParton3; //! Initial state Parton | |
84 | ||
85 | TParticle * fParton6; //! Final state Parton | |
86 | TParticle * fParton7; //! Final state Parton | |
87 | ||
88 | TLorentzVector fJet6; //! Pythia jet close to parton in position 6 | |
89 | TLorentzVector fJet7; //! Pythia jet close to parton in position 7 | |
90 | ||
91 | Float_t fPtHard; //! Generated pT hard | |
92 | ||
93 | TH1F * fhPtHard; //! pt of parton | |
94 | TH1F * fhPtParton; //! pt of parton | |
95 | TH1F * fhPtJet; //! pt of jet | |
96 | ||
97 | TH2F * fhPtPartonPtHard; //! pt of parton divided to pt hard, trigger is photon | |
98 | TH2F * fhPtJetPtHard; //! pt of jet divided to pt hard, trigger is photon | |
99 | TH2F * fhPtJetPtParton; //! pt of parton divided to pt parton, trigger is photon | |
100 | ||
101 | TH1F * fhPtPhoton; //! Input photon | |
102 | TH1F * fhPtPi0; //! Input pi0 | |
103 | ||
dbb79a05 | 104 | // Histograms arrays for 4 isolation options and 2 options on leading or not leading particle |
105 | ||
c76fb00a | 106 | TH1F * fhPtPhotonLeading[4]; //! Leading photon pT |
107 | TH1F * fhPtPi0Leading[4]; //! Leading pi0 pT | |
108 | ||
109 | TH2F * fhPtPhotonLeadingSumPt[4]; //! Leading photon pT vs sum in cone | |
110 | TH2F * fhPtPi0LeadingSumPt[4]; //! Leading pi0 pT vs sum in cone | |
7b2086c3 | 111 | |
112 | TH1F * fhPtPhotonLeadingIsolated[4]; //! Leading photon, isolated | |
113 | TH1F * fhPtPi0LeadingIsolated[4]; //! Leading pi0, isolated | |
114 | ||
dbb79a05 | 115 | TH2F * fhPtPartonTypeNearPhoton[2][4]; //! Leading photon, particle pt versus originating parton type |
116 | TH2F * fhPtPartonTypeNearPi0[2][4]; //! Leading pi0, particle pt versus originating parton type | |
117 | TH2F * fhPtPartonTypeNearPhotonIsolated[2][4]; //! Leading photon, particle pt versus originating parton type | |
118 | TH2F * fhPtPartonTypeNearPi0Isolated[2][4]; //! Leading pi0, particle pt versus originating parton type | |
119 | ||
120 | TH2F * fhPtPartonTypeAwayPhoton[2][4]; //! Leading photon, particle pt versus away side parton type | |
121 | TH2F * fhPtPartonTypeAwayPi0[2][4]; //! Leading pi0, particle pt versus away side parton type | |
122 | TH2F * fhPtPartonTypeAwayPhotonIsolated[2][4]; //! Leading photon, isolated, particle pt versus away side parton type | |
123 | TH2F * fhPtPartonTypeAwayPi0Isolated[2][4]; //! Leading pi0, isolated, particle pt versus away side parton type | |
124 | ||
125 | TH2F * fhZHardPhoton[2][4]; //! Leading photon, zHard | |
126 | TH2F * fhZHardPi0[2][4]; //! Leading pi0, zHard | |
127 | TH2F * fhZHardPhotonIsolated[2][4]; //! Leading photon, isolated, zHard | |
128 | TH2F * fhZHardPi0Isolated[2][4]; //! Leading pi0, isolated, zHard | |
129 | ||
130 | TH2F * fhZPartonPhoton[2][4]; //! Leading photon, zHard | |
131 | TH2F * fhZPartonPi0[2][4]; //! Leading pi0, zHard | |
132 | TH2F * fhZPartonPhotonIsolated[2][4]; //! Leading photon, isolated, zHard | |
133 | TH2F * fhZPartonPi0Isolated[2][4]; //! Leading pi0, isolated, zHard | |
7b2086c3 | 134 | |
dbb79a05 | 135 | TH2F * fhZJetPhoton[2][4]; //! Leading photon, zHard |
136 | TH2F * fhZJetPi0[2][4]; //! Leading pi0, zHard | |
137 | TH2F * fhZJetPhotonIsolated[2][4]; //! Leading photon, isolated, zHard | |
138 | TH2F * fhZJetPi0Isolated[2][4]; //! Leading pi0, isolated, zHard | |
7b2086c3 | 139 | |
dbb79a05 | 140 | TH2F * fhXEPhoton[2][4]; //! Leading photon, xE away side |
141 | TH2F * fhXEPi0[2][4]; //! Leading pi0, xE away side | |
142 | TH2F * fhXEPhotonIsolated[2][4]; //! Leading photon, xE away side | |
143 | TH2F * fhXEPi0Isolated[2][4]; //! Leading pi0, isolated, xE away side | |
7b2086c3 | 144 | |
dbb79a05 | 145 | TH2F * fhXEUEPhoton[2][4]; //! Leading photon, xE away side |
146 | TH2F * fhXEUEPi0[2][4]; //! Leading pi0, xE away side | |
147 | TH2F * fhXEUEPhotonIsolated[2][4]; //! Leading photon, xE away side | |
148 | TH2F * fhXEUEPi0Isolated[2][4]; //! Leading pi0, isolated, xE away side | |
7b2086c3 | 149 | |
150 | AliAnaGeneratorKine (const AliAnaGeneratorKine & gk) ; // cpy ctor | |
151 | AliAnaGeneratorKine & operator = (const AliAnaGeneratorKine & gk) ; // cpy assignment | |
152 | ||
229bed7a | 153 | ClassDef(AliAnaGeneratorKine,3) |
7b2086c3 | 154 | |
155 | } ; | |
156 | ||
157 | ||
158 | #endif //ALIANAGENERATORKINE_H | |
159 | ||
160 | ||
161 |