]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGGA/PHOSTasks/PHOS_embedding/AliAnalysisTaskPi0DiffEfficiency.h
end-of-line normalization
[u/mrichter/AliRoot.git] / PWGGA / PHOSTasks / PHOS_embedding / AliAnalysisTaskPi0DiffEfficiency.h
1 #ifndef ALIANALYSISTASKPI0DIFFEFFICIENCY_H
2 #define ALIANALYSISTASKPI0DIFFEFFICIENCY_H
3
4 // Task calculating effciency of pi0 registration 
5 // as a difference between spectrum after and before 
6 // embedding
7
8 class TClonesArray;
9 class AliAODCaloCluster ;
10 class AliPHOSAodCluster ;
11 class AliPHOSCalibData ;
12 class AliPHOSGeometry ;
13
14 #include "AliAnalysisTaskSE.h"
15
16 class AliAnalysisTaskPi0DiffEfficiency : public AliAnalysisTaskSE {
17 public:
18   AliAnalysisTaskPi0DiffEfficiency();
19   AliAnalysisTaskPi0DiffEfficiency(const char *name);
20   virtual ~AliAnalysisTaskPi0DiffEfficiency() {}
21   
22   virtual void   UserCreateOutputObjects();
23   virtual void   UserExec(Option_t *option);
24
25   void SetPHOSBadMap(Int_t mod,TH2I * h)
26   {
27     if(fPHOSBadMap[mod]) delete fPHOSBadMap[mod] ;
28     fPHOSBadMap[mod]=new TH2I(*h) ;
29     printf("Set %s \n",fPHOSBadMap[mod]->GetName());
30   }
31
32   protected:
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) ;
44   
45   void ProcessMC() ;
46   Double_t CoreEnergy(AliPHOSAodCluster * clu); 
47    
48 private:
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) ;
52  
53 private:
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
62  
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
70
71   Float_t fCentrality ; //!Centrality of the currecnt event
72
73   Int_t fCenBin ;       //! Current centrality bin
74
75   TH2I *fPHOSBadMap[6] ;    //!Container for PHOS bad channels map
76
77   AliPHOSGeometry  *fPHOSGeo;  //! PHOS geometry
78   Int_t fEventCounter;         //! number of analyzed events
79  
80   ClassDef(AliAnalysisTaskPi0DiffEfficiency, 2); // PHOS analysis task
81 };
82
83 #endif