Event embedding tasks for PHOS are added (D.Peressounko)
[u/mrichter/AliRoot.git] / PWG4 / UserTasks / PHOS_embedding / AliAnalysisTaskPi0DiffEfficiency.h
1 #ifndef ALIANALYSISTASKPI0DIFFEFFICIENCY_H\r
2 #define ALIANALYSISTASKPI0DIFFEFFICIENCY_H\r
3 \r
4 // example of an analysis task creating a p_t spectrum\r
5 // Authors: Panos Cristakoglou, Jan Fiete Grosse-Oetringhaus, Christian Klein-Boesing\r
6 \r
7 class TObjArray;\r
8 class TH1F;\r
9 class TH2I;\r
10 class TH2F;\r
11 class TH3F;\r
12 class TF1 ;\r
13 class AliStack ;\r
14 class AliESDtrackCuts;\r
15 class AliPHOSGeometry;\r
16 class AliAODEvent ;\r
17 class AliPHOSCalibData;\r
18 class AliAODTrack ;\r
19 class AliAODCaloCluster ;\r
20 \r
21 \r
22 #include "AliAnalysisTaskSE.h"\r
23 \r
24 class AliAnalysisTaskPi0DiffEfficiency : public AliAnalysisTaskSE {\r
25 public:\r
26   AliAnalysisTaskPi0DiffEfficiency(const char *name = "AliAnalysisTaskPi0DiffEfficiency");\r
27   virtual ~AliAnalysisTaskPi0DiffEfficiency() {}\r
28   \r
29   virtual void   UserCreateOutputObjects();\r
30   virtual void   UserExec(Option_t *option);\r
31   virtual void   Terminate(Option_t *);\r
32   void SetPHOSBadMap(Int_t mod,TH2I * h)\r
33   {\r
34     if(fPHOSBadMap[mod]) delete fPHOSBadMap[mod] ;\r
35     fPHOSBadMap[mod]=new TH2I(*h) ;\r
36     printf("Set %s \n",fPHOSBadMap[mod]->GetName());\r
37   }\r
38   \r
39 private:\r
40   AliAnalysisTaskPi0DiffEfficiency(const AliAnalysisTaskPi0DiffEfficiency&); // not implemented\r
41   AliAnalysisTaskPi0DiffEfficiency& operator=(const AliAnalysisTaskPi0DiffEfficiency&); // not implemented\r
42   Bool_t IsSameCluster(AliAODCaloCluster * c1,AliAODCaloCluster * c2)const ;\r
43   Bool_t IsGoodChannel(const char * det, Int_t mod,Int_t ix, Int_t iz); //Use addisional bad map for PHOS\r
44   void FillHistogram(const char * key,Double_t x) const ; //Fill 1D histogram witn name key\r
45   void FillHistogram(const char * key,Double_t x, Double_t y) const ; //Fill 2D histogram witn name key\r
46   void FillHistogram(const char * key,Double_t x, Double_t y, Double_t z) const ; //Fill 3D histogram witn name key\r
47   Bool_t TestLambda(Double_t l1,Double_t l2) ;  //Evaluate Dispersion cuts for photons\r
48   void ProcessMC() ;\r
49  \r
50 private:\r
51   AliStack * fStack ;              //stack of MC tracks\r
52   TList * fOutputContainer;        //final histogram container\r
53   TList * fPHOSEvents[1][10][11] ; //Containers for events with PHOS photons\r
54   TClonesArray * fPHOSEvent1 ;      //PHOS photons in current event\r
55   TClonesArray * fPHOSEvent2 ;      //PHOS photons in current event\r
56   AliPHOSCalibData *fPHOSCalibData; // PHOS calibration object\r
57   TF1 *fNonLinCorr;          // Non-linearity correction\r
58  \r
59   //Reaction plain for v2\r
60   Float_t fRPfull ; //!Reaction plain calculated with full TPC \r
61   Float_t fRPA ;    //!Reaction plain calculated with A-side TPC: eta>0.15 \r
62   Float_t fRPC ;    //!Reaction plain calculated with C-side TPC: eta<-0.15\r
63   Float_t fRPFar ;  //!Reaction plain calculated with TPC: eta>0.6 \r
64   Float_t fRPAFar ; //!Reaction plain calculated with A-side TPC: eta>0.6 \r
65   Float_t fRPCFar ; //!Reaction plain calculated with C-side TPC: eta<-0.6\r
66 \r
67   Float_t fCentrality ; //!Centrality of the currecnt event\r
68 \r
69   Int_t fCenBin ;       //! Current centrality bin\r
70 \r
71   TH2I *fPHOSBadMap[6] ;    //Container for PHOS bad channels map\r
72 \r
73   AliPHOSGeometry  *fPHOSGeo;  //! PHOS geometry\r
74   Int_t fEventCounter;         // number of analyzed events\r
75 \r
76   ClassDef(AliAnalysisTaskPi0DiffEfficiency, 1); // PHOS analysis task\r
77 };\r
78 \r
79 #endif\r