Event embedding tasks for PHOS are added (D.Peressounko)
[u/mrichter/AliRoot.git] / PWG4 / UserTasks / PHOS_embedding / AliAnalysisTaskPi0Efficiency.h
1 #ifndef ALIANALYSISTASKPI0EFFICIENCY_H\r
2 #define ALIANALYSISTASKPI0EFFICIENCY_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 \r
20 \r
21 #include "AliAnalysisTaskSE.h"\r
22 \r
23 class AliAnalysisTaskPi0Efficiency : public AliAnalysisTaskSE {\r
24 public:\r
25   AliAnalysisTaskPi0Efficiency(const char *name = "AliAnalysisTaskPi0Efficiency");\r
26   virtual ~AliAnalysisTaskPi0Efficiency() {}\r
27   \r
28   virtual void   UserCreateOutputObjects();\r
29   virtual void   UserExec(Option_t *option);\r
30   virtual void   Terminate(Option_t *);\r
31   void SetPHOSBadMap(Int_t mod,TH2I * h)\r
32   {\r
33     if(fPHOSBadMap[mod]) delete fPHOSBadMap[mod] ;\r
34     fPHOSBadMap[mod]=new TH2I(*h) ;\r
35     printf("Set %s \n",fPHOSBadMap[mod]->GetName());\r
36   }\r
37   \r
38 private:\r
39   AliAnalysisTaskPi0Efficiency(const AliAnalysisTaskPi0Efficiency&); // not implemented\r
40   AliAnalysisTaskPi0Efficiency& operator=(const AliAnalysisTaskPi0Efficiency&); // not implemented\r
41   Bool_t IsGoodChannel(const char * det, Int_t mod,Int_t ix, Int_t iz); //Use addisional bad map for PHOS\r
42   void FillHistogram(const char * key,Double_t x) const ; //Fill 1D histogram witn name key\r
43   void FillHistogram(const char * key,Double_t x, Double_t y) const ; //Fill 2D histogram witn name key\r
44   void FillHistogram(const char * key,Double_t x, Double_t y, Double_t z) const ; //Fill 3D histogram witn name key\r
45   Bool_t TestLambda(Double_t l1,Double_t l2) ;  //Evaluate Dispersion cuts for photons\r
46   void ProcessMC() ;\r
47  \r
48 private:\r
49   AliStack * fStack ;\r
50   TList * fOutputContainer;        //final histogram container\r
51   TList * fPHOSEvents[1][10][11] ; //Containers for events with PHOS photons\r
52   TClonesArray * fPHOSEvent ;      //PHOS photons in current event\r
53   AliPHOSCalibData *fPHOSCalibData; // PHOS calibration object\r
54   TF1 *fNonLinCorr;          // Non-linearity correction\r
55  \r
56   //Reaction plain for v2\r
57   Float_t fRPfull ; //!Reaction plain calculated with full TPC \r
58   Float_t fRPA ;    //!Reaction plain calculated with A-side TPC: eta>0.15 \r
59   Float_t fRPC ;    //!Reaction plain calculated with C-side TPC: eta<-0.15\r
60   Float_t fRPFar ;  //!Reaction plain calculated with TPC: eta>0.6 \r
61   Float_t fRPAFar ; //!Reaction plain calculated with A-side TPC: eta>0.6 \r
62   Float_t fRPCFar ; //!Reaction plain calculated with C-side TPC: eta<-0.6\r
63 \r
64   Float_t fCentrality ; //!Centrality of the currecnt event\r
65 \r
66   Int_t fCenBin ;       //! Current centrality bin\r
67 \r
68   TH2I *fPHOSBadMap[6] ;    //Container for PHOS bad channels map\r
69 \r
70   AliPHOSGeometry  *fPHOSGeo;  //! PHOS geometry\r
71   Int_t fEventCounter;         // number of analyzed events\r
72 \r
73   ClassDef(AliAnalysisTaskPi0Efficiency, 1); // PHOS analysis task\r
74 };\r
75 \r
76 #endif\r