1 #ifndef ALIANALYSISTASKTAGGEDPHOTONS_H
\r
2 #define ALIANALYSISTASKTAGGEDPHOTONS_H
\r
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
\r
4 * See cxx source for full Copyright notice */
\r
5 //______________________________________________________________________________
\r
6 // Analysis for PHOS Tagged Photons
\r
9 //////////////////////////////////////////////////////////////////////////////
\r
12 #include "AliAnalysisTaskSE.h"
\r
15 class AliESDEvent ;
\r
16 //class AliAODEvent ;
\r
23 class AliPHOSGeoUtils;
\r
25 class AliAODPWG4Particle;
\r
26 class AliCaloTrackReader;
\r
28 class AliAnalysisTaskTaggedPhotons : public AliAnalysisTaskSE {
\r
31 AliAnalysisTaskTaggedPhotons() ;
\r
32 AliAnalysisTaskTaggedPhotons(const char *name) ;
\r
33 AliAnalysisTaskTaggedPhotons(const AliAnalysisTaskTaggedPhotons& ap) ;
\r
34 AliAnalysisTaskTaggedPhotons& operator = (const AliAnalysisTaskTaggedPhotons& ap) ;
\r
35 virtual ~AliAnalysisTaskTaggedPhotons() ;
\r
37 virtual void UserCreateOutputObjects();
\r
38 virtual void Init() ;
\r
39 virtual void LocalInit() { Init() ; }
\r
40 virtual void UserExec(Option_t * opt = "") ;
\r
41 virtual void Terminate(Option_t * opt = "") ;
\r
43 void SetDebugLevel(Int_t level) { fDebug = level ; }
\r
44 void SetPHOS(Bool_t isPHOS=kTRUE){fPHOS=isPHOS ;} //Which calirimeter to analyze
\r
46 void SetPhotonId(Float_t threshold) { fPhotonId = threshold ; }
\r
47 void SetMinEnergyCut(Float_t threshold) { fMinEnergyCut = threshold; }
\r
49 //Parameterization of pi0 peak position
\r
50 void SetPi0MeanParameters(Float_t p0, Float_t p1, Float_t p2, Float_t p3)
\r
51 { fPi0Mean_p0 = p0; fPi0Mean_p1 = p1; fPi0Mean_p2 = p2; fPi0Mean_p3 = p3;}
\r
52 //Parameterization of pi0 peak width
\r
53 void SetPi0SigmaParameters(Float_t p0, Float_t p1, Float_t p2){ fPi0Sigma_p0 = p0; fPi0Sigma_p1 = p1;fPi0Sigma_p2 = p2; }
\r
56 Float_t GetPhotonId() const { return fPhotonId ; }
\r
57 Int_t GetFiducialArea(Float_t * pos) ; //what kind of fiducial area hit the photon
\r
58 Bool_t IsSamePi0(AliAODPWG4Particle *p1, AliAODPWG4Particle *p2); //Check MC genealogy
\r
59 Bool_t IsInPi0Band(Double_t m, Double_t pt); //Check if invariant mass is within pi0 peak
\r
63 AliPHOSGeoUtils *fgeom; //!PHOS/EMCAL geometry
\r
64 AliStack *fStack ; //!Pointer to MC stack
\r
65 Int_t fDebug ; //Debug flag 1-few prints,2-more, 3-all prints
\r
66 Bool_t fPHOS ; //Choose Calorimeter: PHOS/EMCAL
\r
69 Float_t fPhotonId ; // threshold for photon identification (Bayesian)
\r
70 Float_t fMinEnergyCut; // min energy of partner photon
\r
71 Float_t fPi0Mean_p0; // Parameterization of pi0 mass:
\r
72 Float_t fPi0Mean_p1; // m_mean_pi0 = p[0] + p[1]*pt + p[2]*pt^2 + p[3]*pt^3
\r
73 Float_t fPi0Mean_p2; //
\r
74 Float_t fPi0Mean_p3; //
\r
76 Float_t fPi0Sigma_p0; // sigma_m_pi0 = sqrt ( p0*p0/x + p1*p1 + p2*p2/x/x)
\r
77 Float_t fPi0Sigma_p1;
\r
78 Float_t fPi0Sigma_p2;
\r
80 //Fiducial area parameters
\r
86 TList * fOutputList ; //! output data list
\r
87 TList * fEventList ; //! event list for mixed InvMass
\r
90 //Reconstructed spectra
\r
91 TH1D * fhRecAll; // Spectrum of all reconstructed particles
\r
92 TH1D * fhRecAllArea1; // Spectrum of rec particles in Fid. Area 1
\r
93 TH1D * fhRecAllArea2; // Spectrum of rec particles in Fid. Area 2
\r
94 TH1D * fhRecAllArea3; // Spectrum of rec particles in Fid. Area 3
\r
96 //Sort registered particles spectra according MC information
\r
97 TH1D * fhRecPhoton; // Spectrum of rec. with primary==22 and no PID criteria
\r
98 TH1D * fhRecOther; // Spectrum of rec. with primary!=22 and no PID criteria
\r
99 TH1D * fhRecPhotonPID[4]; // Spectrum of rec. with primary==22 and different PID criteria
\r
100 TH1D * fhRecOtherPID[4]; // Spectrum of rec. with primary!=22 and different PID criteria
\r
101 TH1D * fhRecPhotPi0 ; // Spectrum of rec. photons from pi0 decays
\r
102 TH1D * fhRecPhotEta ; // Spectrum of rec. photons from eta decays
\r
103 TH1D * fhRecPhotOmega ; // Spectrum of rec. photons from omega decays
\r
104 TH1D * fhRecPhotEtapr ; // Spectrum of rec. photons from eta prime decays
\r
105 TH1D * fhRecPhotConv ; // Spectrum of rec. photons from conversion
\r
106 TH1D * fhRecPhotHadron ; // Spectrum of rec. photons from hadron-matter interactions
\r
107 TH1D * fhRecPhotDirect ; // Spectrum of rec. photons direct or no primary
\r
108 TH1D * fhRecPhotOther ; // Spectrum of rec. photons from other hadron decays
\r
110 //MC tagging: reasons of partner loss etc.
\r
111 TH1D * fhDecWMCPartner ; //pi0 decay photon which partner should be registered according to MC
\r
112 TH1D * fhDecWMissedPartnerNotPhoton ; //Decay photon with missed non-photon partner
\r
113 TH1D * fhDecWMissedPartnerAll ; //Decay photons with partner missed due to some reason (sum of below)
\r
114 TH1D * fhDecWMissedPartnerEmin; //Decay photons with partner missed due to low energy
\r
115 TH1D * fhDecWMissedPartnerConv; //Decay photons with partner missed due to conversion
\r
116 TH1D * fhDecWMissedPartnerGeom0; //Decay photons with partner missed due geometry
\r
117 TH1D * fhDecWMissedPartnerGeom1; //Decay photons with partner missed due geometry Fid. area. 1
\r
118 TH1D * fhDecWMissedPartnerGeom2; //Decay photons with partner missed due geometry Fid. area. 2
\r
119 TH1D * fhDecWMissedPartnerGeom3; //Decay photons with partner missed due geometry Fid. area. 3
\r
121 //MC tagging: Decay partners spectra
\r
122 TH1D * fhPartnerMCReg ; //Spectrum of decay partners which should be registered (MC)
\r
123 TH1D * fhPartnerMissedEmin ; //Spectrum of decay partners lost due to Emin cut
\r
124 TH1D * fhPartnerMissedConv ; //Spectrum of decay partners lost due to conversion
\r
125 TH1D * fhPartnerMissedGeo ; //Spectrum of decay partners lost due to acceptance
\r
128 TH1D * fhTaggedAll ; //Spectrum of all tagged photons
\r
129 TH1D * fhTaggedArea1 ; //Spectrum of all tagged photons Fid. area1
\r
130 TH1D * fhTaggedArea2 ; //Spectrum of all tagged photons Fid. area2
\r
131 TH1D * fhTaggedArea3 ; //Spectrum of all tagged photons Fid. area3
\r
132 TH1D * fhTaggedPID[4] ; //Spectrum of tagged photons for different PID criteria
\r
133 TH1D * fhTaggedMult ; //Spectrum of multiply tagged photons
\r
135 //Tagging: use MC information if available
\r
136 TH1D * fhTaggedMCTrue ; //Spectrum of correctly tagged pi0 decay photons
\r
137 TH1D * fhMCMissedTagging ; //Spectrum of pi0 decay photons missed tagging due to wrong pair mass
\r
138 TH1D * fhMCFakeTagged ; //Spectrum of photons wrongly tagged according to MC
\r
140 //Invariant mass distributions for fake corrections
\r
141 TH2D * fhInvMassReal ; //Two-photon inv. mass vs first photon pt
\r
142 TH2D * fhInvMassMixed ; //Two-photon inv. mass vs first photon pt
\r
143 TH2D * fhMCMissedTaggingMass ; //Inv mass of pairs missed tagging
\r
145 //Conversion and annihilation radius distributions
\r
146 TH1D * fhConversionRadius ; // Radis of photon production (conversion)
\r
147 TH1D * fhInteractionRadius ; // Radis of photon production (hadron interaction)
\r
149 TH1D * fhEvents; // number of processed Events
\r
151 ClassDef(AliAnalysisTaskTaggedPhotons, 1); // a PHOS photon analysis task
\r
153 #endif // ALIANALYSISTASKTAGGEDPHOTONS_H
\r