end-of-line normalization
[u/mrichter/AliRoot.git] / PWGGA / PHOSTasks / PHOSCalib / AliAnalysisTaskPi0Calib.h
1 #ifndef AliAnalysisTaskPi0Calib_cxx
2 #define AliAnalysisTaskPi0Calib_cxx
3
4 // PHOS calibration with pi0
5 // Authors: DP, YK
6
7 class TObjArray;
8 class TH1F;
9 class TH2I;
10 class TH2F;
11 class TH2D;
12 class TH3F;
13 class TF1 ;
14 class AliPHOSGeometry;
15 class AliESDEvent ;
16 #include "AliPHOSCalibData.h"
17 #include "AliCDBManager.h"
18
19 #include "AliAnalysisTaskSE.h"
20
21 class AliAnalysisTaskPi0Calib : public AliAnalysisTaskSE {
22 public:
23   AliAnalysisTaskPi0Calib(const char *name = "PHOS");
24   virtual ~AliAnalysisTaskPi0Calib() ;
25   
26   virtual void   UserCreateOutputObjects();
27   virtual void   UserExec(Option_t *option);
28   virtual void   Terminate(Option_t *);
29   void SetPHOSBadMap(Int_t mod,TH2I * h)
30   {
31     if(fPHOSBadMap[mod]) delete fPHOSBadMap[mod] ;
32     fPHOSBadMap[mod]=new TH2I(*h) ;
33     printf("Set %s \n",fPHOSBadMap[mod]->GetName());
34   }
35
36   void SetPHOSCalib(Int_t mod,TH2D * h)
37   {
38     if(fPHOSAmp[mod]) delete fPHOSAmp[mod] ;
39     fPHOSAmp[mod]=new TH2D(*h) ;
40     printf("Set %s \n",fPHOSAmp[mod]->GetName());
41   }
42   
43   
44 private:
45
46   AliAnalysisTaskPi0Calib(const AliAnalysisTaskPi0Calib&); // not implemented
47   AliAnalysisTaskPi0Calib& operator=(const AliAnalysisTaskPi0Calib&); // not implemented
48   Bool_t IsGoodChannel(const char * det, Int_t mod,Int_t ix, Int_t iz); //Use addisional bad map for PHOS
49   void FillHistogram(const char * key,Double_t x) const ; //Fill 1D histogram witn name key
50   void FillHistogram(const char * key,Double_t x, Double_t y) const ; //Fill 2D histogram witn name key
51   void FillHistogram(const char * key,Double_t x, Double_t y, Double_t z) const ; //Fill 3D histogram witn name key
52   Bool_t TestTOF(Double_t e,Double_t tof) ;  //Evaluate TOF cut
53   Bool_t TestLambda(Double_t pt,Double_t l1,Double_t l2) ;  //Evaluate Dispersion cuts for photons
54   Double_t TestCPV(Double_t dx, Double_t dz, Double_t pt, Int_t charge);
55   Int_t ConvertRunNumber(Int_t run) ; 
56
57 private:
58   TList            * fOutputContainer; //! final histogram container
59   TList            * fPHOSEvents;      //! Containers for events with PHOS photons
60   TClonesArray     * fPHOSEvent ;      //! PHOS photons in current event
61   AliPHOSCalibData * fPHOSCalibData;   //! PHOS calibration object
62   TH2I             * fPHOSBadMap[6] ;  //Container for PHOS bad channels map
63   TH2D             * fPHOSAmp[6] ;     //Container for PHOS bad channels map
64
65   AliPHOSGeometry  * fPHOSGeo;         //! PHOS geometry
66   Int_t              fEventCounter;    // number of analyzed events
67
68   ClassDef(AliAnalysisTaskPi0Calib, 1); // PHOS analysis task
69 };
70
71 #endif