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 */
6 //___________________________________________________________________________
7 // Do photon/pi0 analysis for isolation and correlation
8 // at the generator level. Only for kine stack (ESDs)
11 //-- Author: Gustavo Conesa (LPSC-CNRS-Grenoble)
17 class TLorentzVector ;
20 #include "AliAnaCaloTrackCorrBaseClass.h"
22 class AliAnaGeneratorKine : public AliAnaCaloTrackCorrBaseClass {
26 AliAnaGeneratorKine() ; // default ctor
27 virtual ~AliAnaGeneratorKine() { delete fFidCutTrigger ; } //virtual dtor
29 Bool_t CorrelateWithPartonOrJet(Int_t indexTrig,
35 TList * GetCreateOutputObjects() ;
37 void GetPartonsAndJets() ;
39 void GetXE(Int_t indexTrig,
45 void InitParameters() ;
47 void IsLeadingAndIsolated(Int_t indexTrig,
52 void MakeAnalysisFillHistograms() ;
54 void SetTriggerDetector( TString & det ) ;
55 void SetTriggerDetector( Int_t det ) ;
57 void SetMinChargedPt ( Float_t pt ) { fMinChargedPt = pt ; }
58 void SetMinNeutralPt ( Float_t pt ) { fMinNeutralPt = pt ; }
60 // Detector for trigger particles acceptance
61 AliFiducialCut * GetFiducialCutForTrigger()
62 { if(!fFidCutTrigger) fFidCutTrigger = new AliFiducialCut(); return fFidCutTrigger ; }
63 virtual void SetFiducialCut(AliFiducialCut * fc)
64 { delete fFidCutTrigger; fFidCutTrigger = fc ; }
68 Int_t fTriggerDetector ; // Detector : EMCAL, PHOS, CTS
69 TString fTriggerDetectorString ; // Detector : EMCAL, PHOS, CTS
71 AliFiducialCut* fFidCutTrigger; //! fiducial cut for the trigger detector
73 Float_t fMinChargedPt; //! Minimum energy for charged particles in correlation
74 Float_t fMinNeutralPt; //! Minimum energy for neutral particles in correlation
76 AliStack * fStack; //! access stack
78 TParticle * fParton2; //! Initial state Parton
79 TParticle * fParton3; //! Initial state Parton
81 TParticle * fParton6; //! Final state Parton
82 TParticle * fParton7; //! Final state Parton
84 TLorentzVector fJet6; //! Pythia jet close to parton in position 6
85 TLorentzVector fJet7; //! Pythia jet close to parton in position 7
87 TLorentzVector fTrigger; //! Trigger momentum, avoid generating TLorentzVectors per event
88 TLorentzVector fLVTmp; //! momentum, avoid generating TLorentzVectors per event
90 Float_t fPtHard; //! Generated pT hard
92 TH1F * fhPtHard; //! pt of parton
93 TH1F * fhPtParton; //! pt of parton
94 TH1F * fhPtJet; //! pt of jet
96 TH2F * fhPtPartonPtHard; //! pt of parton divided to pt hard, trigger is photon
97 TH2F * fhPtJetPtHard; //! pt of jet divided to pt hard, trigger is photon
98 TH2F * fhPtJetPtParton; //! pt of parton divided to pt parton, trigger is photon
100 TH1F * fhPtPhoton; //! Input photon
101 TH1F * fhPtPi0; //! Input pi0
103 // Histograms arrays for 4 isolation options and 2 options on leading or not leading particle
105 TH1F * fhPtPhotonLeading[4]; //! Leading photon pT
106 TH1F * fhPtPi0Leading[4]; //! Leading pi0 pT
108 TH2F * fhPtPhotonLeadingSumPt[4]; //! Leading photon pT vs sum in cone
109 TH2F * fhPtPi0LeadingSumPt[4]; //! Leading pi0 pT vs sum in cone
111 TH1F * fhPtPhotonLeadingIsolated[4]; //! Leading photon, isolated
112 TH1F * fhPtPi0LeadingIsolated[4]; //! Leading pi0, isolated
114 TH2F * fhPtPartonTypeNearPhoton[2][4]; //! Leading photon, particle pt versus originating parton type
115 TH2F * fhPtPartonTypeNearPi0[2][4]; //! Leading pi0, particle pt versus originating parton type
116 TH2F * fhPtPartonTypeNearPhotonIsolated[2][4]; //! Leading photon, particle pt versus originating parton type
117 TH2F * fhPtPartonTypeNearPi0Isolated[2][4]; //! Leading pi0, particle pt versus originating parton type
119 TH2F * fhPtPartonTypeAwayPhoton[2][4]; //! Leading photon, particle pt versus away side parton type
120 TH2F * fhPtPartonTypeAwayPi0[2][4]; //! Leading pi0, particle pt versus away side parton type
121 TH2F * fhPtPartonTypeAwayPhotonIsolated[2][4]; //! Leading photon, isolated, particle pt versus away side parton type
122 TH2F * fhPtPartonTypeAwayPi0Isolated[2][4]; //! Leading pi0, isolated, particle pt versus away side parton type
124 TH2F * fhZHardPhoton[2][4]; //! Leading photon, zHard
125 TH2F * fhZHardPi0[2][4]; //! Leading pi0, zHard
126 TH2F * fhZHardPhotonIsolated[2][4]; //! Leading photon, isolated, zHard
127 TH2F * fhZHardPi0Isolated[2][4]; //! Leading pi0, isolated, zHard
129 TH2F * fhZPartonPhoton[2][4]; //! Leading photon, zHard
130 TH2F * fhZPartonPi0[2][4]; //! Leading pi0, zHard
131 TH2F * fhZPartonPhotonIsolated[2][4]; //! Leading photon, isolated, zHard
132 TH2F * fhZPartonPi0Isolated[2][4]; //! Leading pi0, isolated, zHard
134 TH2F * fhZJetPhoton[2][4]; //! Leading photon, zHard
135 TH2F * fhZJetPi0[2][4]; //! Leading pi0, zHard
136 TH2F * fhZJetPhotonIsolated[2][4]; //! Leading photon, isolated, zHard
137 TH2F * fhZJetPi0Isolated[2][4]; //! Leading pi0, isolated, zHard
139 TH2F * fhXEPhoton[2][4]; //! Leading photon, xE away side
140 TH2F * fhXEPi0[2][4]; //! Leading pi0, xE away side
141 TH2F * fhXEPhotonIsolated[2][4]; //! Leading photon, xE away side
142 TH2F * fhXEPi0Isolated[2][4]; //! Leading pi0, isolated, xE away side
144 TH2F * fhXEUEPhoton[2][4]; //! Leading photon, xE away side
145 TH2F * fhXEUEPi0[2][4]; //! Leading pi0, xE away side
146 TH2F * fhXEUEPhotonIsolated[2][4]; //! Leading photon, xE away side
147 TH2F * fhXEUEPi0Isolated[2][4]; //! Leading pi0, isolated, xE away side
149 AliAnaGeneratorKine (const AliAnaGeneratorKine & gk) ; // cpy ctor
150 AliAnaGeneratorKine & operator = (const AliAnaGeneratorKine & gk) ; // cpy assignment
152 ClassDef(AliAnaGeneratorKine,4)
157 #endif //ALIANAGENERATORKINE_H