]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGGA/CaloTrackCorrelations/AliAnaGeneratorKine.h
Merge branch 'master' of https://git.cern.ch/reps/AliRoot
[u/mrichter/AliRoot.git] / PWGGA / CaloTrackCorrelations / AliAnaGeneratorKine.h
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
27   virtual ~AliAnaGeneratorKine() { delete fFidCutTrigger ; } //virtual dtor
28   
29   Bool_t CorrelateWithPartonOrJet(Int_t   indexTrig,
30                                   Int_t   pdgTrig,
31                                   Bool_t  leading[4],
32                                   Bool_t  isolated[4],
33                                   Int_t & iparton) ; 
34   
35   TList * GetCreateOutputObjects() ;
36   
37   void    GetPartonsAndJets() ;
38     
39   void    GetXE(Int_t   indexTrig,
40                 Int_t   pdgTrig,
41                 Bool_t  leading[4],
42                 Bool_t  isolated[4],
43                 Int_t   iparton) ;
44   
45   void    InitParameters() ;
46   
47   void    IsLeadingAndIsolated(Int_t  indexTrig,
48                                Int_t  pdgTrig,
49                                Bool_t leading[4],     
50                                Bool_t isolated[4]) ;
51     
52   void    MakeAnalysisFillHistograms() ;
53   
54   void    SetTriggerDetector( TString & det ) ;
55   void    SetTriggerDetector( Int_t  det )    ;
56   
57   void    SetMinChargedPt   ( Float_t pt )   { fMinChargedPt    = pt   ; }
58   void    SetMinNeutralPt   ( Float_t pt )   { fMinNeutralPt    = pt   ; }
59   
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      ; }
65   
66 private:
67
68   Int_t       fTriggerDetector ;            // Detector : EMCAL, PHOS, CTS
69   TString     fTriggerDetectorString ;      // Detector : EMCAL, PHOS, CTS
70
71   AliFiducialCut* fFidCutTrigger;           //! fiducial cut for the trigger detector
72   
73   Float_t     fMinChargedPt;                //! Minimum energy for charged particles in correlation
74   Float_t     fMinNeutralPt;                //! Minimum energy for neutral particles in correlation
75   
76   AliStack  * fStack;                       //! access stack
77   
78   TParticle * fParton2;                     //! Initial state Parton
79   TParticle * fParton3;                     //! Initial state Parton
80   
81   TParticle * fParton6;                     //! Final state Parton
82   TParticle * fParton7;                     //! Final state Parton
83   
84   TLorentzVector fJet6;                     //! Pythia jet close to parton in position 6
85   TLorentzVector fJet7;                     //! Pythia jet close to parton in position 7
86
87   TLorentzVector fTrigger;                  //! Trigger momentum, avoid generating TLorentzVectors per event
88   TLorentzVector fLVTmp;                    //! momentum, avoid generating TLorentzVectors per event
89   
90   Float_t     fPtHard;                      //! Generated pT hard
91
92   TH1F      * fhPtHard;                     //! pt of parton 
93   TH1F      * fhPtParton;                   //! pt of parton  
94   TH1F      * fhPtJet;                      //! pt of jet 
95   
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 
99
100   TH1F      * fhPtPhoton;                   //! Input photon
101   TH1F      * fhPtPi0;                      //! Input pi0
102   
103   // Histograms arrays for 4 isolation options and 2 options on leading or not leading particle
104   
105   TH1F      * fhPtPhotonLeading[4];         //! Leading photon pT
106   TH1F      * fhPtPi0Leading[4];            //! Leading pi0 pT
107
108   TH2F      * fhPtPhotonLeadingSumPt[4];    //! Leading photon pT vs sum in cone
109   TH2F      * fhPtPi0LeadingSumPt[4];       //! Leading pi0 pT vs sum in cone
110   
111   TH1F      * fhPtPhotonLeadingIsolated[4]; //! Leading photon, isolated
112   TH1F      * fhPtPi0LeadingIsolated[4];    //! Leading pi0, isolated
113
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
118   
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
123   
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
128   
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
133
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
138   
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
143   
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
148   
149   AliAnaGeneratorKine              (const AliAnaGeneratorKine & gk) ; // cpy ctor
150   AliAnaGeneratorKine & operator = (const AliAnaGeneratorKine & gk) ; // cpy assignment
151   
152   ClassDef(AliAnaGeneratorKine,4)
153   
154 } ;
155
156
157 #endif //ALIANAGENERATORKINE_H
158
159
160