1 #ifndef AliAnaGammaDirect_H
2 #define AliAnaGammaDirect_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
7 //_________________________________________________________________________
9 // Class for the analysis of prompt gamma, isolation cut.
11 // Class created from old AliPHOSGammaJet
12 // (see AliRoot versions previous Release 4-09)
14 //-- Author: Gustavo Conesa (INFN-LNF)
16 // --- ROOT system ---
17 #include <TParticle.h>
18 #include <TClonesArray.h>
22 // --- ANALYSIS system ---
23 #include "AliAnaPartCorrBaseClass.h"
24 class AliAODParticleCorrelations ;
28 class AliAnaGammaDirect : public AliAnaPartCorrBaseClass {
32 AliAnaGammaDirect() ; // default ctor
33 AliAnaGammaDirect(const AliAnaGammaDirect & g) ; // cpy ctor
34 AliAnaGammaDirect & operator = (const AliAnaGammaDirect & g) ;//cpy assignment
35 virtual ~AliAnaGammaDirect() ; //virtual dtor
37 enum mcTypes {kPrompt, kFragmentation, kPi0Decay, kEtaDecay, kOtherDecay, kPi0, kEta, kElectron, kConversion, kUnknown};
39 Bool_t CheckInvMass(const Int_t icalo,const TLorentzVector mom, Double_t *v, TClonesArray * pl);
40 Int_t CheckOrigin(const Int_t label);
42 TList * GetCreateOutputObjects();
44 void MakeAnalysisFillAOD() ;
46 void MakeAnalysisFillHistograms() ;
48 void MakeSeveralICAnalysis(AliAODParticleCorrelation * ph, Double_t v[3]);
50 void Print(const Option_t * opt)const;
52 TString GetDetector() const {return fDetector ; }
53 void SetDetector(TString det) {fDetector = det ; }
55 Int_t GetNCones() const {return fNCones ; }
56 Int_t GetNPtThresFrac() const {return fNPtThresFrac ; }
57 Float_t GetConeSizes(Int_t i) const {return fConeSizes[i] ; }
58 Float_t GetPtThresholds(Int_t i) const {return fPtThresholds[i] ; }
59 Float_t GetPtFractions(Int_t i) const {return fPtFractions[i] ; }
61 void InitParameters();
63 void SetNCones(Int_t ncs) {fNCones = ncs ; }
64 void SetNPtThresFrac(Int_t npt) {fNPtThresFrac = npt; }
65 void SetConeSizes(Int_t i, Float_t r) {fConeSizes[i] = r ; }
66 void SetPtThresholds(Int_t i, Float_t pt) {fPtThresholds[i] = pt; }
67 void SetPtFractions(Int_t i, Float_t pt) {fPtFractions[i] = pt; }
69 Bool_t IsIsolationOn() {return fMakeIC ; }
70 void SwitchOnIsolation() { fMakeIC = kTRUE;}
71 void SwitchOffIsolation() { fMakeIC = kFALSE;}
73 Bool_t IsReIsolationOn() {return fReMakeIC ; }
74 void SwitchOnReIsolation() { fReMakeIC = kTRUE;}
75 void SwitchOffReIsolation() { fReMakeIC = kFALSE;}
77 Bool_t IsSeveralIsolationOn() {return fMakeSeveralIC ; }
78 void SwitchOnSeveralIsolation() { fMakeSeveralIC = kTRUE;}
79 void SwitchOffSeveralIsolation() { fMakeSeveralIC = kFALSE;}
81 Bool_t IsInvariantMassOn() {return fMakeInvMass ; }
82 void SwitchOnInvariantMass() { fMakeInvMass = kTRUE;}
83 void SwitchOffInvariantMass() { fMakeInvMass = kFALSE;}
85 Bool_t SelectCluster(AliAODCaloCluster * calo, Double_t vertex[3], TLorentzVector & mom);
89 TString fDetector ; // Detector where the gamma is searched;
90 Bool_t fMakeIC ; //Do isolation analysis
91 Bool_t fReMakeIC ; //Do isolation analysis
92 Bool_t fMakeSeveralIC ; //Do analysis for different IC
93 Bool_t fMakeInvMass; //Select candidate if no pair from decay
96 TH1F * fhPtGamma ; //!Number of identified (isolated) gamma
97 TH2F * fhPhiGamma ; //! Phi of identified (isolated) gamma
98 TH2F * fhEtaGamma ; //! eta of identified (isolated) gamma
99 TH2F * fhConeSumPt ; //! Sum Pt in the cone
101 //Prompt photon analysis data members for multiple cones and pt thresholds
102 Int_t fNCones ; //!Number of cone sizes to test
103 Int_t fNPtThresFrac ; //!Number of ptThres and ptFrac to test
104 Float_t fConeSizes[5] ; //! Array with cones to test
105 Float_t fPtThresholds[5] ; //! Array with pt thresholds to test
106 Float_t fPtFractions[5] ; //! Array with pt thresholds to test
108 TH1F* fhPtThresIsolated[5][5]; //! Isolated gamma with pt threshold
109 TH1F* fhPtFracIsolated[5][5]; //! Isolated gamma with pt threshold
110 TH2F* fhPtSumIsolated[5] ; //! Isolated gamma with threshold on cone pt sume
113 TH1F * fhPtPrompt; //!Number of identified (isolated) prompt gamma
114 TH2F * fhPhiPrompt; //! Phi of identified (isolated) prompt gamma
115 TH2F * fhEtaPrompt; //! eta of identified (isolated) prompt gamma
116 TH1F * fhPtThresIsolatedPrompt[5][5]; //! Isolated prompt gamma with pt threshold
117 TH1F * fhPtFracIsolatedPrompt[5][5]; //! Isolated prompt gamma with pt frac
118 TH2F * fhPtSumIsolatedPrompt[5]; //! Isolated prompt gamma with threshold on cone pt sume
119 TH1F * fhPtFragmentation; //!Number of identified (isolated) fragmentation gamma
120 TH2F * fhPhiFragmentation; //! Phi of identified (isolated) fragmentation gamma
121 TH2F * fhEtaFragmentation; //! eta of identified (isolated) fragmentation gamma
122 TH1F * fhPtThresIsolatedFragmentation[5][5]; //! Isolated fragmentation gamma with pt threshold
123 TH1F * fhPtFracIsolatedFragmentation[5][5]; //! Isolated fragmentation gamma with pt frac
124 TH2F * fhPtSumIsolatedFragmentation[5]; //! Isolated fragmentation gamma with threshold on cone pt sume
125 TH1F * fhPtPi0Decay; //!Number of identified (isolated) Pi0Decay gamma
126 TH2F * fhPhiPi0Decay; //! Phi of identified (isolated) Pi0Decay gamma
127 TH2F * fhEtaPi0Decay; //! eta of identified (isolated) Pi0Decay gamma
128 TH1F * fhPtThresIsolatedPi0Decay[5][5]; //! Isolated Pi0Decay gamma with pt threshold
129 TH1F * fhPtFracIsolatedPi0Decay[5][5]; //! Isolated Pi0Decay gamma with pt frac
130 TH2F * fhPtSumIsolatedPi0Decay[5]; //! Isolated Pi0Decay gamma with threshold on cone pt sume
131 TH1F * fhPtOtherDecay; //!Number of identified (isolated) OtherDecay gamma
132 TH2F * fhPhiOtherDecay; //! Phi of identified (isolated) OtherDecay gamma
133 TH2F * fhEtaOtherDecay; //! eta of identified (isolated) OtherDecay gamma
134 TH1F * fhPtThresIsolatedOtherDecay[5][5]; //! Isolated OtherDecay gamma with pt threshold
135 TH1F * fhPtFracIsolatedOtherDecay[5][5]; //! Isolated OtherDecay gamma with pt frac
136 TH2F * fhPtSumIsolatedOtherDecay[5]; //! Isolated OtherDecay gamma with threshold on cone pt sume
137 TH1F * fhPtConversion; //!Number of identified (isolated) Conversion gamma
138 TH2F * fhPhiConversion; //! Phi of identified (isolated) Conversion gamma
139 TH2F * fhEtaConversion; //! eta of identified (isolated) Conversion gamma
140 TH1F * fhPtThresIsolatedConversion[5][5]; //! Isolated Conversion gamma with pt threshold
141 TH1F * fhPtFracIsolatedConversion[5][5]; //! Isolated Conversion gamma with pt frac
142 TH2F * fhPtSumIsolatedConversion[5]; //! Isolated Conversion gamma with threshold on cone pt sume
143 TH1F * fhPtUnknown; //!Number of identified (isolated) Unknown gamma
144 TH2F * fhPhiUnknown; //! Phi of identified (isolated) Unknown gamma
145 TH2F * fhEtaUnknown; //! eta of identified (isolated) Unknown gamma
146 TH1F * fhPtThresIsolatedUnknown[5][5]; //! Isolated Unknown gamma with pt threshold
147 TH1F * fhPtFracIsolatedUnknown[5][5]; //! Isolated Unknown gamma with pt frac
148 TH2F * fhPtSumIsolatedUnknown[5]; //! Isolated Unknown gamma with threshold on cone pt sume
150 ClassDef(AliAnaGammaDirect,1)
154 #endif //AliAnaGammaDirect_H