1-New correlation analysis for particle and jet-JETAN correlation; 2-Change GetEntrie...
[u/mrichter/AliRoot.git] / PWG4 / AliAnaGammaDirect.h
CommitLineData
2c8efea8 1#ifndef AliAnaGammaDirect_H
2#define AliAnaGammaDirect_H
f9cea31c 3/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
5/* $Id$ */
6
f9cea31c 7//_________________________________________________________________________
8
bdcfac30 9// Class for the analysis of prompt gamma, isolation cut.
f9cea31c 10//
11// Class created from old AliPHOSGammaJet
12// (see AliRoot versions previous Release 4-09)
13
2c8efea8 14//-- Author: Gustavo Conesa (INFN-LNF)
f9cea31c 15
16// --- ROOT system ---
f9cea31c 17#include <TParticle.h>
2c8efea8 18#include <TClonesArray.h>
2a1d8a29 19#include <TH2F.h>
2c8efea8 20#include <TString.h>
21
22// --- ANALYSIS system ---
c90ac396 23#include "AliAnaPartCorrBaseClass.h"
2c8efea8 24class AliAODParticleCorrelations ;
f9cea31c 25
bdcfac30 26class TList ;
27
c90ac396 28class AliAnaGammaDirect : public AliAnaPartCorrBaseClass {
f9cea31c 29
30public:
31
bdcfac30 32 AliAnaGammaDirect() ; // default ctor
f9cea31c 33 AliAnaGammaDirect(const AliAnaGammaDirect & g) ; // cpy ctor
463ee300 34 AliAnaGammaDirect & operator = (const AliAnaGammaDirect & g) ;//cpy assignment
f9cea31c 35 virtual ~AliAnaGammaDirect() ; //virtual dtor
f9cea31c 36
2c8efea8 37 enum mcTypes {kPrompt, kFragmentation, kPi0Decay, kEtaDecay, kOtherDecay, kPi0, kEta, kElectron, kConversion, kUnknown};
38
39 Bool_t CheckInvMass(const Int_t icalo,const TLorentzVector mom, Double_t *v, TClonesArray * pl);
40 Int_t CheckOrigin(const Int_t label);
41
bdcfac30 42 TList * GetCreateOutputObjects();
2c8efea8 43
44 void MakeAnalysisFillAOD() ;
bdcfac30 45
2c8efea8 46 void MakeAnalysisFillHistograms() ;
47
48 void MakeSeveralICAnalysis(AliAODParticleCorrelation * ph, Double_t v[3]);
bdcfac30 49
f9cea31c 50 void Print(const Option_t * opt)const;
bdcfac30 51
2c8efea8 52 TString GetDetector() const {return fDetector ; }
53 void SetDetector(TString det) {fDetector = det ; }
4b707925 54
bdcfac30 55 Int_t GetNCones() const {return fNCones ; }
2c8efea8 56 Int_t GetNPtThresFrac() const {return fNPtThresFrac ; }
bdcfac30 57 Float_t GetConeSizes(Int_t i) const {return fConeSizes[i] ; }
58 Float_t GetPtThresholds(Int_t i) const {return fPtThresholds[i] ; }
2c8efea8 59 Float_t GetPtFractions(Int_t i) const {return fPtFractions[i] ; }
60
bdcfac30 61 void InitParameters();
62
63 void SetNCones(Int_t ncs) {fNCones = ncs ; }
2c8efea8 64 void SetNPtThresFrac(Int_t npt) {fNPtThresFrac = npt; }
bdcfac30 65 void SetConeSizes(Int_t i, Float_t r) {fConeSizes[i] = r ; }
66 void SetPtThresholds(Int_t i, Float_t pt) {fPtThresholds[i] = pt; }
2c8efea8 67 void SetPtFractions(Int_t i, Float_t pt) {fPtFractions[i] = pt; }
68
69 Bool_t IsIsolationOn() {return fMakeIC ; }
70 void SwitchOnIsolation() { fMakeIC = kTRUE;}
71 void SwitchOffIsolation() { fMakeIC = kFALSE;}
72
73 Bool_t IsReIsolationOn() {return fReMakeIC ; }
74 void SwitchOnReIsolation() { fReMakeIC = kTRUE;}
75 void SwitchOffReIsolation() { fReMakeIC = kFALSE;}
76
77 Bool_t IsSeveralIsolationOn() {return fMakeSeveralIC ; }
78 void SwitchOnSeveralIsolation() { fMakeSeveralIC = kTRUE;}
79 void SwitchOffSeveralIsolation() { fMakeSeveralIC = kFALSE;}
80
81 Bool_t IsInvariantMassOn() {return fMakeInvMass ; }
82 void SwitchOnInvariantMass() { fMakeInvMass = kTRUE;}
83 void SwitchOffInvariantMass() { fMakeInvMass = kFALSE;}
84
85 Bool_t SelectCluster(AliAODCaloCluster * calo, Double_t vertex[3], TLorentzVector & mom);
f9cea31c 86
bdcfac30 87 private:
2c8efea8 88
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
94
f9cea31c 95 //Histograms
5a67f6fd 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
4b707925 100
2c8efea8 101 //Prompt photon analysis data members for multiple cones and pt thresholds
5a67f6fd 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
2c8efea8 107
5a67f6fd 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
2c8efea8 111
112 //MC
5a67f6fd 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
2c8efea8 149
4b707925 150 ClassDef(AliAnaGammaDirect,1)
f9cea31c 151} ;
152
153
2c8efea8 154#endif //AliAnaGammaDirect_H
f9cea31c 155
156
157