-#ifndef ALIANALYSISTASKPI0DIFFEFFICIENCY_H\r
-#define ALIANALYSISTASKPI0DIFFEFFICIENCY_H\r
-\r
-// Task calculating effciency of pi0 registration \r
-// as a difference between spectrum after and before \r
-// embedding\r
-\r
-class TClonesArray;\r
-class AliAODCaloCluster ;\r
-\r
-\r
-#include "AliAnalysisTaskPi0Efficiency.h"\r
-\r
-class AliAnalysisTaskPi0DiffEfficiency : public AliAnalysisTaskPi0Efficiency {\r
-public:\r
- AliAnalysisTaskPi0DiffEfficiency(const char *name = "AliAnalysisTaskPi0DiffEfficiency");\r
- virtual ~AliAnalysisTaskPi0DiffEfficiency() {}\r
- \r
- virtual void UserCreateOutputObjects();\r
- virtual void UserExec(Option_t *option);\r
- \r
-private:\r
- Bool_t IsSameCluster(AliAODCaloCluster * c1,AliAODCaloCluster * c2)const ;\r
- \r
-private:\r
- TClonesArray * fPHOSEvent1 ; //!PHOS photons in current event\r
- TClonesArray * fPHOSEvent2 ; //!PHOS photons in current event\r
- \r
- ClassDef(AliAnalysisTaskPi0DiffEfficiency, 2); // PHOS analysis task\r
-};\r
-\r
-#endif\r
+#ifndef ALIANALYSISTASKPI0DIFFEFFICIENCY_H
+#define ALIANALYSISTASKPI0DIFFEFFICIENCY_H
+
+// Task calculating effciency of pi0 registration
+// as a difference between spectrum after and before
+// embedding
+
+class TClonesArray;
+class AliAODCaloCluster ;
+class AliPHOSAodCluster ;
+class AliPHOSCalibData ;
+class AliPHOSGeometry ;
+
+#include "AliAnalysisTaskSE.h"
+
+class AliAnalysisTaskPi0DiffEfficiency : public AliAnalysisTaskSE {
+public:
+ AliAnalysisTaskPi0DiffEfficiency();
+ AliAnalysisTaskPi0DiffEfficiency(const char *name);
+ virtual ~AliAnalysisTaskPi0DiffEfficiency() {}
+
+ virtual void UserCreateOutputObjects();
+ virtual void UserExec(Option_t *option);
+
+ void SetPHOSBadMap(Int_t mod,TH2I * h)
+ {
+ if(fPHOSBadMap[mod]) delete fPHOSBadMap[mod] ;
+ fPHOSBadMap[mod]=new TH2I(*h) ;
+ printf("Set %s \n",fPHOSBadMap[mod]->GetName());
+ }
+
+ protected:
+ AliAnalysisTaskPi0DiffEfficiency(const AliAnalysisTaskPi0DiffEfficiency& a) ;
+ AliAnalysisTaskPi0DiffEfficiency& operator=(const AliAnalysisTaskPi0DiffEfficiency& ){return *this;} // not implemented
+ Bool_t IsGoodChannel(const char * det, Int_t mod,Int_t ix, Int_t iz); //Use addisional bad map for PHOS
+ void FillHistogram(const char * key,Double_t x) const ; //Fill 1D histogram witn name key
+ void FillHistogram(const char * key,Double_t x, Double_t y) const ; //Fill 2D histogram witn name key
+ void FillHistogram(const char * key,Double_t x, Double_t y, Double_t z) const ; //Fill 3D histogram witn name key
+ void FillHistogram(const char * key,Double_t x, Double_t y, Double_t z, Double_t weight) const ; //Fill 3D histogram witn name key
+ Bool_t TestLambda(Double_t e,Double_t l1,Double_t l2) ; //Evaluate Dispersion cuts for photons
+ Bool_t TestLambda2(Double_t e,Double_t l1,Double_t l2) ; //Evaluate Dispersion cuts for photons
+ Double_t TestCPV(Double_t dx, Double_t dz, Double_t pt, Int_t charge);
+ Bool_t TestTOF(Double_t t, Double_t e) ;
+
+ void ProcessMC() ;
+ Double_t CoreEnergy(AliPHOSAodCluster * clu);
+
+private:
+ Bool_t IsSameCluster(AliAODCaloCluster * c1,AliAODCaloCluster * c2)const ;
+ void EvalLambdas(AliAODCaloCluster * clu, Int_t iR,Double_t &m02, Double_t &m20) ;
+ Double_t PrimaryWeight(Double_t x) ;
+
+private:
+ AliStack * fStack ; //! Stack of primary
+ THashList * fOutputContainer; //! final histogram container
+ TList * fPHOSEvents[1][10][11] ; //! Containers for events with PHOS photons
+ TClonesArray * fPHOSEvent ; //!PHOS photons in current event
+ TClonesArray * fPHOSEvent1 ; //!PHOS photons in current event
+ TClonesArray * fPHOSEvent2 ; //!PHOS photons in current event
+ AliPHOSCalibData *fPHOSCalibData; //! PHOS calibration object
+ TF1 *fNonLinCorr; // Non-linearity correction
+
+ //Reaction plane for v2
+ Float_t fRPfull ; //!Reaction plain calculated with full TPC
+ Float_t fRPA ; //!Reaction plain calculated with A-side TPC: eta>0.15
+ Float_t fRPC ; //!Reaction plain calculated with C-side TPC: eta<-0.15
+ Float_t fRPFar ; //!Reaction plain calculated with TPC: eta>0.6
+ Float_t fRPAFar ; //!Reaction plain calculated with A-side TPC: eta>0.6
+ Float_t fRPCFar ; //!Reaction plain calculated with C-side TPC: eta<-0.6
+
+ Float_t fCentrality ; //!Centrality of the currecnt event
+
+ Int_t fCenBin ; //! Current centrality bin
+
+ TH2I *fPHOSBadMap[6] ; //!Container for PHOS bad channels map
+
+ AliPHOSGeometry *fPHOSGeo; //! PHOS geometry
+ Int_t fEventCounter; //! number of analyzed events
+
+ ClassDef(AliAnalysisTaskPi0DiffEfficiency, 2); // PHOS analysis task
+};
+
+#endif