1 #ifndef ALIANALYSISTASKPI0DIFFEFFICIENCY_H
2 #define ALIANALYSISTASKPI0DIFFEFFICIENCY_H
4 // Task calculating effciency of pi0 registration
5 // as a difference between spectrum after and before
9 class AliAODCaloCluster ;
10 class AliPHOSAodCluster ;
11 class AliPHOSCalibData ;
12 class AliPHOSGeometry ;
14 #include "AliAnalysisTaskSE.h"
16 class AliAnalysisTaskPi0DiffEfficiency : public AliAnalysisTaskSE {
18 AliAnalysisTaskPi0DiffEfficiency();
19 AliAnalysisTaskPi0DiffEfficiency(const char *name);
20 virtual ~AliAnalysisTaskPi0DiffEfficiency() {}
22 virtual void UserCreateOutputObjects();
23 virtual void UserExec(Option_t *option);
25 void SetPHOSBadMap(Int_t mod,TH2I * h)
27 if(fPHOSBadMap[mod]) delete fPHOSBadMap[mod] ;
28 fPHOSBadMap[mod]=new TH2I(*h) ;
29 printf("Set %s \n",fPHOSBadMap[mod]->GetName());
33 AliAnalysisTaskPi0DiffEfficiency(const AliAnalysisTaskPi0DiffEfficiency& a) ;
34 AliAnalysisTaskPi0DiffEfficiency& operator=(const AliAnalysisTaskPi0DiffEfficiency& ){return *this;} // not implemented
35 Bool_t IsGoodChannel(const char * det, Int_t mod,Int_t ix, Int_t iz); //Use addisional bad map for PHOS
36 void FillHistogram(const char * key,Double_t x) const ; //Fill 1D histogram witn name key
37 void FillHistogram(const char * key,Double_t x, Double_t y) const ; //Fill 2D histogram witn name key
38 void FillHistogram(const char * key,Double_t x, Double_t y, Double_t z) const ; //Fill 3D histogram witn name key
39 void FillHistogram(const char * key,Double_t x, Double_t y, Double_t z, Double_t weight) const ; //Fill 3D histogram witn name key
40 Bool_t TestLambda(Double_t e,Double_t l1,Double_t l2) ; //Evaluate Dispersion cuts for photons
41 Bool_t TestLambda2(Double_t e,Double_t l1,Double_t l2) ; //Evaluate Dispersion cuts for photons
42 Double_t TestCPV(Double_t dx, Double_t dz, Double_t pt, Int_t charge);
43 Bool_t TestTOF(Double_t t, Double_t e) ;
46 Double_t CoreEnergy(AliPHOSAodCluster * clu);
49 Bool_t IsSameCluster(AliAODCaloCluster * c1,AliAODCaloCluster * c2)const ;
50 void EvalLambdas(AliAODCaloCluster * clu, Int_t iR,Double_t &m02, Double_t &m20) ;
51 Double_t PrimaryWeight(Double_t x) ;
54 AliStack * fStack ; //! Stack of primary
55 THashList * fOutputContainer; //! final histogram container
56 TList * fPHOSEvents[1][10][11] ; //! Containers for events with PHOS photons
57 TClonesArray * fPHOSEvent ; //!PHOS photons in current event
58 TClonesArray * fPHOSEvent1 ; //!PHOS photons in current event
59 TClonesArray * fPHOSEvent2 ; //!PHOS photons in current event
60 AliPHOSCalibData *fPHOSCalibData; //! PHOS calibration object
61 TF1 *fNonLinCorr; // Non-linearity correction
63 //Reaction plane for v2
64 Float_t fRPfull ; //!Reaction plain calculated with full TPC
65 Float_t fRPA ; //!Reaction plain calculated with A-side TPC: eta>0.15
66 Float_t fRPC ; //!Reaction plain calculated with C-side TPC: eta<-0.15
67 Float_t fRPFar ; //!Reaction plain calculated with TPC: eta>0.6
68 Float_t fRPAFar ; //!Reaction plain calculated with A-side TPC: eta>0.6
69 Float_t fRPCFar ; //!Reaction plain calculated with C-side TPC: eta<-0.6
71 Float_t fCentrality ; //!Centrality of the currecnt event
73 Int_t fCenBin ; //! Current centrality bin
75 TH2I *fPHOSBadMap[6] ; //!Container for PHOS bad channels map
77 AliPHOSGeometry *fPHOSGeo; //! PHOS geometry
78 Int_t fEventCounter; //! number of analyzed events
80 ClassDef(AliAnalysisTaskPi0DiffEfficiency, 2); // PHOS analysis task