-#ifndef ALIANALYSISTASKTAGGEDPHOTONS_H\r
-#define ALIANALYSISTASKTAGGEDPHOTONS_H\r
-/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *\r
- * See cxx source for full Copyright notice */\r
-//______________________________________________________________________________\r
-// Analysis for PHOS Tagged Photons \r
+#ifndef ALIANALYSISTASKTAGGEDPHOTONS_H
+#define ALIANALYSISTASKTAGGEDPHOTONS_H
+/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
+ * See cxx source for full Copyright notice */
+//______________________________________________________________________________
+// Analysis for PHOS Tagged Photons
// marks photons making pi0 with any other photon
// and calculates necessary corrections for fake pairs and
// decay partners escaped acceptance. If MC info is present
// fills set of controll histograms.
-//\r
-//*-- Dmitry Blau \r
-//////////////////////////////////////////////////////////////////////////////\r
-\r
-#include "AliAnalysisTaskSE.h" \r
-\r
-class AliStack ; \r
-class AliESDEvent ; \r
-//class AliAODEvent ; \r
-class TH1D ; \r
-class TH1I ; \r
-class TH2D ;\r
-class TH2F ;\r
-class TH3D ;\r
-class AliPHOSGeoUtils;\r
-class AliAODPWG4Particle;\r
-\r
-class AliAnalysisTaskTaggedPhotons : public AliAnalysisTaskSE {\r
-\r
-public:\r
- AliAnalysisTaskTaggedPhotons() ;\r
- AliAnalysisTaskTaggedPhotons(const char *name) ;\r
- AliAnalysisTaskTaggedPhotons(const AliAnalysisTaskTaggedPhotons& ap) ; \r
- AliAnalysisTaskTaggedPhotons& operator = (const AliAnalysisTaskTaggedPhotons& ap) ;\r
- virtual ~AliAnalysisTaskTaggedPhotons() ;\r
- \r
- virtual void UserCreateOutputObjects(); \r
- virtual void Init() ; \r
- virtual void LocalInit() { Init() ; }\r
- virtual void UserExec(Option_t * opt = "") ;\r
- virtual void Terminate(Option_t * opt = "") ;\r
-\r
- void SetDebugLevel(Int_t level) { fDebug = level ; }\r
- void SetPHOS(Bool_t isPHOS=kTRUE){fPHOS=isPHOS ;} //Which calirimeter to analyze\r
- \r
- void SetPhotonId(Float_t threshold) { fPhotonId = threshold ; }\r
- void SetMinEnergyCut(Float_t threshold) { fMinEnergyCut = threshold; }\r
-\r
- //Parameterization of pi0 peak position\r
- void SetPi0MeanParameters(Float_t p0, Float_t p1, Float_t p2, Float_t p3)\r
- { fPi0MeanP0 = p0; fPi0MeanP1 = p1; fPi0MeanP2 = p2; fPi0MeanP3 = p3;}\r
- //Parameterization of pi0 peak width \r
- void SetPi0SigmaParameters(Float_t p0, Float_t p1, Float_t p2){ fPi0SigmaP0 = p0; fPi0SigmaP1 = p1;fPi0SigmaP2 = p2; }\r
-\r
-protected:\r
- Float_t GetPhotonId() const { return fPhotonId ; }\r
- Int_t GetFiducialArea(Float_t * pos)const ; //what kind of fiducial area hit the photon\r
- Bool_t IsSamePi0(const AliAODPWG4Particle *p1, const AliAODPWG4Particle *p2) const; //Check MC genealogy\r
- Bool_t IsInPi0Band(Double_t m, Double_t pt)const; //Check if invariant mass is within pi0 peak\r
-\r
-private:\r
-\r
- AliPHOSGeoUtils *fgeom; //!PHOS/EMCAL geometry\r
- AliStack *fStack ; //!Pointer to MC stack\r
- Bool_t fPHOS ; //Choose Calorimeter: PHOS/EMCAL\r
-\r
- // task parameters\r
- Float_t fPhotonId ; // threshold for photon identification (Bayesian)\r
- Float_t fMinEnergyCut; // min energy of partner photon\r
- Float_t fPi0MeanP0; // Parameterization of pi0 mass:\r
- Float_t fPi0MeanP1; // m_mean_pi0 = p[0] + p[1]*pt + p[2]*pt^2 + p[3]*pt^3\r
- Float_t fPi0MeanP2; // m_mean_pi0 = p[0] + p[1]*pt + p[2]*pt^2 + p[3]*pt^3\r
- Float_t fPi0MeanP3; // m_mean_pi0 = p[0] + p[1]*pt + p[2]*pt^2 + p[3]*pt^3\r
-\r
- Float_t fPi0SigmaP0; // sigma_m_pi0 = sqrt ( p0*p0/x + p1*p1 + p2*p2/x/x)\r
- Float_t fPi0SigmaP1;\r // sigma_m_pi0 = sqrt ( p0*p0/x + p1*p1 + p2*p2/x/x)
- Float_t fPi0SigmaP2;\r // sigma_m_pi0 = sqrt ( p0*p0/x + p1*p1 + p2*p2/x/x)
-\r
- //Fiducial area parameters\r
+//
+//*-- Dmitry Blau
+//////////////////////////////////////////////////////////////////////////////
+
+#include "AliAnalysisTaskSE.h"
+
+class AliStack ;
+class AliESDEvent ;
+//class AliAODEvent ;
+class TH1D ;
+class TH1I ;
+class TH2D ;
+class TH2F ;
+class TH3D ;
+class AliPHOSGeoUtils;
+class AliEMCALGeoUtils;
+class AliAODPWG4Particle;
+
+class AliAnalysisTaskTaggedPhotons : public AliAnalysisTaskSE {
+
+public:
+ AliAnalysisTaskTaggedPhotons() ;
+ AliAnalysisTaskTaggedPhotons(const char *name) ;
+ AliAnalysisTaskTaggedPhotons(const AliAnalysisTaskTaggedPhotons& ap) ;
+ AliAnalysisTaskTaggedPhotons& operator = (const AliAnalysisTaskTaggedPhotons& ap) ;
+ virtual ~AliAnalysisTaskTaggedPhotons() ;
+
+ virtual void UserCreateOutputObjects();
+ virtual void Init() ;
+ virtual void LocalInit() { Init() ; }
+ virtual void UserExec(Option_t * opt = "") ;
+ virtual void Terminate(Option_t * opt = "") ;
+
+ void SetDebugLevel(Int_t level) { fDebug = level ; }
+ void SetPHOS(Bool_t isPHOS=kTRUE){fPHOS=isPHOS ;} //Which calirimeter to analyze
+
+ void SetPhotonId(Float_t threshold) { fPhotonId = threshold ; }
+ void SetMinEnergyCut(Float_t threshold) { fMinEnergyCut = threshold; }
+
+ //Parameterization of pi0 peak position
+ void SetPi0MeanParameters(Float_t p0, Float_t p1, Float_t p2, Float_t p3)
+ { fPi0MeanP0 = p0; fPi0MeanP1 = p1; fPi0MeanP2 = p2; fPi0MeanP3 = p3;}
+ //Parameterization of pi0 peak width
+ void SetPi0SigmaParameters(Float_t p0, Float_t p1, Float_t p2){ fPi0SigmaP0 = p0; fPi0SigmaP1 = p1;fPi0SigmaP2 = p2; }
+
+protected:
+ Float_t GetPhotonId() const { return fPhotonId ; }
+ Int_t GetFiducialArea(Float_t * pos)const ; //what kind of fiducial area hit the photon
+ Bool_t IsSamePi0(const AliAODPWG4Particle *p1, const AliAODPWG4Particle *p2) const; //Check MC genealogy
+ Bool_t IsInPi0Band(Double_t m, Double_t pt)const; //Check if invariant mass is within pi0 peak
+ Bool_t TestDisp(Double_t l0, Double_t l1, Double_t e)const ;
+ Bool_t TestTOF(Double_t /*t*/,Double_t /*en*/)const{return kTRUE;}
+ Bool_t TestCharged(Double_t dr,Double_t en)const ;
+ void InitGeometry() ; //read reotation matrixes from ESD/AOD
+
+private:
+
+ AliPHOSGeoUtils *fPHOSgeom; //!PHOS geometry
+ AliEMCALGeoUtils *fEMCALgeom; //!EMCAL geometry
+
+ AliStack *fStack ; //Pointer to MC stack
+ Bool_t fPHOS ; //Choose Calorimeter: PHOS/EMCAL
+
+ // task parameters
+ Float_t fPhotonId ; // threshold for photon identification (Bayesian)
+ Float_t fMinEnergyCut; // min energy of partner photon
+ Float_t fPi0MeanP0; // Parameterization of pi0 mass:
+ Float_t fPi0MeanP1; // m_mean_pi0 = p[0] + p[1]*pt + p[2]*pt^2 + p[3]*pt^3
+ Float_t fPi0MeanP2; // m_mean_pi0 = p[0] + p[1]*pt + p[2]*pt^2 + p[3]*pt^3
+ Float_t fPi0MeanP3; // m_mean_pi0 = p[0] + p[1]*pt + p[2]*pt^2 + p[3]*pt^3
+
+ Float_t fPi0SigmaP0; // sigma_m_pi0 = sqrt ( p0*p0/x + p1*p1 + p2*p2/x/x)
+ Float_t fPi0SigmaP1; // sigma_m_pi0 = sqrt ( p0*p0/x + p1*p1 + p2*p2/x/x)
+ Float_t fPi0SigmaP2; // sigma_m_pi0 = sqrt ( p0*p0/x + p1*p1 + p2*p2/x/x)
+
+ //Fiducial area parameters
Float_t fZmax ; //Rectangular
Float_t fZmin ; //area
Float_t fPhimax ; //covered by
Float_t fPhimin ; //full calorimeter
-\r
- TList * fOutputList ; //! output data list\r
- TList * fEventList ; //! event list for mixed InvMass\r
-\r
- // Histograms\r
- //Reconstructed spectra\r
- TH1D * fhRecAll; // Spectrum of all reconstructed particles\r
- TH1D * fhRecAllArea1; // Spectrum of rec particles in Fid. Area 1\r
- TH1D * fhRecAllArea2; // Spectrum of rec particles in Fid. Area 2\r
- TH1D * fhRecAllArea3; // Spectrum of rec particles in Fid. Area 3\r
-\r
- //Sort registered particles spectra according MC information\r
- TH1D * fhRecPhoton; // Spectrum of rec. with primary==22 and no PID criteria\r
- TH1D * fhRecOther; // Spectrum of rec. with primary!=22 and no PID criteria\r
- TH1D * fhRecPhotonPID[4]; // Spectrum of rec. with primary==22 and different PID criteria\r
- TH1D * fhRecOtherPID[4]; // Spectrum of rec. with primary!=22 and different PID criteria\r
- TH1D * fhRecPhotPi0 ; // Spectrum of rec. photons from pi0 decays\r
- TH1D * fhRecPhotEta ; // Spectrum of rec. photons from eta decays\r
- TH1D * fhRecPhotOmega ; // Spectrum of rec. photons from omega decays\r
- TH1D * fhRecPhotEtapr ; // Spectrum of rec. photons from eta prime decays\r
- TH1D * fhRecPhotConv ; // Spectrum of rec. photons from conversion\r
- TH1D * fhRecPhotHadron ; // Spectrum of rec. photons from hadron-matter interactions\r
- TH1D * fhRecPhotDirect ; // Spectrum of rec. photons direct or no primary\r
- TH1D * fhRecPhotOther ; // Spectrum of rec. photons from other hadron decays\r
-\r
- //MC tagging: reasons of partner loss etc.\r
- TH1D * fhDecWMCPartner ; //pi0 decay photon which partner should be registered according to MC\r
- TH1D * fhDecWMissedPartnerNotPhoton ; //Decay photon with missed non-photon partner\r
- TH1D * fhDecWMissedPartnerAll ; //Decay photons with partner missed due to some reason (sum of below)\r
- TH1D * fhDecWMissedPartnerEmin; //Decay photons with partner missed due to low energy\r
- TH1D * fhDecWMissedPartnerConv; //Decay photons with partner missed due to conversion\r
- TH1D * fhDecWMissedPartnerGeom0; //Decay photons with partner missed due geometry\r
- TH1D * fhDecWMissedPartnerGeom1; //Decay photons with partner missed due geometry Fid. area. 1\r
- TH1D * fhDecWMissedPartnerGeom2; //Decay photons with partner missed due geometry Fid. area. 2\r
- TH1D * fhDecWMissedPartnerGeom3; //Decay photons with partner missed due geometry Fid. area. 3\r
-\r
- //MC tagging: Decay partners spectra\r
- TH1D * fhPartnerMCReg ; //Spectrum of decay partners which should be registered (MC)\r
- TH1D * fhPartnerMissedEmin ; //Spectrum of decay partners lost due to Emin cut \r
- TH1D * fhPartnerMissedConv ; //Spectrum of decay partners lost due to conversion\r
- TH1D * fhPartnerMissedGeo ; //Spectrum of decay partners lost due to acceptance\r
-\r
- //Tagging\r
- TH1D * fhTaggedAll ; //Spectrum of all tagged photons\r
- TH1D * fhTaggedArea1 ; //Spectrum of all tagged photons Fid. area1\r
- TH1D * fhTaggedArea2 ; //Spectrum of all tagged photons Fid. area2\r
- TH1D * fhTaggedArea3 ; //Spectrum of all tagged photons Fid. area3\r
- TH1D * fhTaggedPID[4] ; //Spectrum of tagged photons for different PID criteria\r
- TH1D * fhTaggedMult ; //Spectrum of multiply tagged photons\r
-\r
- //Tagging: use MC information if available\r
- TH1D * fhTaggedMCTrue ; //Spectrum of correctly tagged pi0 decay photons\r
- TH1D * fhMCMissedTagging ; //Spectrum of pi0 decay photons missed tagging due to wrong pair mass\r
- TH1D * fhMCFakeTagged ; //Spectrum of photons wrongly tagged according to MC\r
-\r
- //Invariant mass distributions for fake corrections\r
- TH2D * fhInvMassReal ; //Two-photon inv. mass vs first photon pt\r
- TH2D * fhInvMassMixed ; //Two-photon inv. mass vs first photon pt\r
- TH2D * fhMCMissedTaggingMass ; //Inv mass of pairs missed tagging\r
- \r
- //Conversion and annihilation radius distributions\r
- TH1D * fhConversionRadius ; // Radis of photon production (conversion)\r
- TH1D * fhInteractionRadius ; // Radis of photon production (hadron interaction)\r
-\r
- TH1D * fhEvents; // number of processed Events\r
- \r
- ClassDef(AliAnalysisTaskTaggedPhotons, 1); // a PHOS photon analysis task \r
-};\r
-#endif // ALIANALYSISTASKTAGGEDPHOTONS_H\r
+
+ TList * fOutputList ; // output data list
+ TList * fEventList ; // event list for mixed InvMass
+
+ // Histograms
+ //Reconstructed spectra
+ TH1D * fhRecAll[4]; // Spectrum of all reconstructed particles
+ TH1D * fhRecAllArea1; // Spectrum of rec particles in Fid. Area 1
+ TH1D * fhRecAllArea2; // Spectrum of rec particles in Fid. Area 2
+ TH1D * fhRecAllArea3; // Spectrum of rec particles in Fid. Area 3
+
+ //Sort registered particles spectra according MC information
+ TH1D * fhRecPhoton; // Spectrum of rec. with primary==22 and no PID criteria
+ TH1D * fhRecOther; // Spectrum of rec. with primary!=22 and no PID criteria
+ TH1D * fhRecPhotonPID[4]; // Spectrum of rec. with primary==22 and different PID criteria
+ TH1D * fhRecOtherPID[4]; // Spectrum of rec. with primary!=22 and different PID criteria
+ TH1D * fhRecPhotPi0 ; // Spectrum of rec. photons from pi0 decays
+ TH1D * fhRecPhotEta ; // Spectrum of rec. photons from eta decays
+ TH1D * fhRecPhotOmega ; // Spectrum of rec. photons from omega decays
+ TH1D * fhRecPhotEtapr ; // Spectrum of rec. photons from eta prime decays
+ TH1D * fhRecPhotConv ; // Spectrum of rec. photons from conversion
+ TH1D * fhRecPhotHadron ; // Spectrum of rec. photons from hadron-matter interactions
+ TH1D * fhRecPhotDirect ; // Spectrum of rec. photons direct or no primary
+ TH1D * fhRecPhotOther ; // Spectrum of rec. photons from other hadron decays
+
+ //MC tagging: reasons of partner loss etc.
+ TH1D * fhDecWMCPartner ; //pi0 decay photon which partner should be registered according to MC
+ TH1D * fhDecWMissedPartnerNotPhoton ; //Decay photon with missed non-photon partner
+ TH1D * fhDecWMissedPartnerAll ; //Decay photons with partner missed due to some reason (sum of below)
+ TH1D * fhDecWMissedPartnerEmin; //Decay photons with partner missed due to low energy
+ TH1D * fhDecWMissedPartnerConv; //Decay photons with partner missed due to conversion
+ TH1D * fhDecWMissedPartnerStack; //Decay photons with partner not present in Stack
+ TH1D * fhDecWMissedPartnerGeom0; //Decay photons with partner missed due geometry
+ TH1D * fhDecWMissedPartnerGeom1; //Decay photons with partner missed due geometry Fid. area. 1
+ TH1D * fhDecWMissedPartnerGeom2; //Decay photons with partner missed due geometry Fid. area. 2
+ TH1D * fhDecWMissedPartnerGeom3; //Decay photons with partner missed due geometry Fid. area. 3
+
+ //MC tagging: Decay partners spectra
+ TH1D * fhPartnerMCReg ; //Spectrum of decay partners which should be registered (MC)
+ TH1D * fhPartnerMissedEmin ; //Spectrum of decay partners lost due to Emin cut
+ TH1D * fhPartnerMissedConv ; //Spectrum of decay partners lost due to conversion
+ TH1D * fhPartnerMissedGeo ; //Spectrum of decay partners lost due to acceptance
+
+ //Tagging
+ TH1D * fhTaggedAll ; //Spectrum of all tagged photons
+ TH1D * fhTaggedArea1 ; //Spectrum of all tagged photons Fid. area1
+ TH1D * fhTaggedArea2 ; //Spectrum of all tagged photons Fid. area2
+ TH1D * fhTaggedArea3 ; //Spectrum of all tagged photons Fid. area3
+ TH1D * fhTaggedPID[4] ; //Spectrum of tagged photons for different PID criteria
+ TH1D * fhTaggedMult ; //Spectrum of multiply tagged photons
+
+ //Tagging: use MC information if available
+ TH1D * fhTaggedMCTrue ; //Spectrum of correctly tagged pi0 decay photons
+ TH1D * fhMCMissedTagging ; //Spectrum of pi0 decay photons missed tagging due to wrong pair mass
+ TH1D * fhMCFakeTagged ; //Spectrum of photons wrongly tagged according to MC
+
+ //Invariant mass distributions for fake corrections
+ TH2D * fhInvMassReal[4] ; //Two-photon inv. mass vs first photon pt
+ TH2D * fhInvMassMixed[4] ; //Two-photon inv. mass vs first photon pt
+ TH2D * fhMCMissedTaggingMass ; //Inv mass of pairs missed tagging
+
+ //Conversion and annihilation radius distributions
+ TH1D * fhConversionRadius ; // Radis of photon production (conversion)
+ TH1D * fhInteractionRadius ; // Radis of photon production (hadron interaction)
+
+ TH1D * fhEvents; // number of processed Events
+
+ ClassDef(AliAnalysisTaskTaggedPhotons, 1); // a PHOS photon analysis task
+};
+#endif // ALIANALYSISTASKTAGGEDPHOTONS_H