]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGGA/PHOSTasks/PHOS_PbPb_MC/AliPHOSHijingEfficiency.h
end-of-line normalization
[u/mrichter/AliRoot.git] / PWGGA / PHOSTasks / PHOS_PbPb_MC / AliPHOSHijingEfficiency.h
1 #ifndef AliPHOSHijingEfficiency_cxx
2 #define AliPHOSHijingEfficiency_cxx
3
4 // example of an analysis task creating a p_t spectrum
5 // Authors: Panos Cristakoglou, Jan Fiete Grosse-Oetringhaus, Christian Klein-Boesing
6
7 class TObjArray;
8 class THashList ;
9 class TH1F;
10 class TH1D ;
11 class TH2I;
12 class TH2F;
13 class TH3F;
14 class TF1 ;
15 class TParticle;
16 class AliStack ;
17 class AliESDtrackCuts;
18 class AliPHOSGeometry;
19 class AliESDEvent ;
20 class AliPHOSCalibData;
21 class AliESDtrack ;
22 class AliESDCaloCluster ;
23 class AliCaloPhoton ;
24
25 #include "AliAnalysisTaskSE.h"
26
27 class AliPHOSHijingEfficiency : public AliAnalysisTaskSE {
28 public:
29   AliPHOSHijingEfficiency(const char *name = "AliPHOSHijingEfficiency");
30   virtual ~AliPHOSHijingEfficiency() {}
31   
32   virtual void   UserCreateOutputObjects();
33   virtual void   UserExec(Option_t *option);
34   virtual void   Terminate(Option_t *);
35   void SetPHOSBadMap(Int_t mod,TH2I * h)
36   {
37     if(fPHOSBadMap[mod]) delete fPHOSBadMap[mod] ;
38     fPHOSBadMap[mod]=new TH2I(*h) ;
39     printf("Set %s \n",fPHOSBadMap[mod]->GetName());
40   }
41   
42 private:
43   AliPHOSHijingEfficiency(const AliPHOSHijingEfficiency&); // not implemented
44   AliPHOSHijingEfficiency& operator=(const AliPHOSHijingEfficiency&); // not implemented
45   Bool_t IsGoodChannel(const char * det, Int_t mod,Int_t ix, Int_t iz); //Use addisional bad map for PHOS
46
47   void FillHistogram(const char * key,Double_t x) const ; //Fill 1D histogram witn name key
48   void FillHistogram(const char * key,Double_t x, Double_t y) const ; //Fill 2D histogram witn name key
49   void FillHistogram(const char * key,Double_t x, Double_t y, Double_t z) const ; //Fill 3D histogram witn name key
50   void FillHistogram(const char * key,Double_t x, Double_t y, Double_t z, Double_t w) const ; //Fill 3D histogram witn name key
51   void FillAllHistograms(const char * key,AliCaloPhoton * ph)const ; //Fill all possible PID combinations for a given photon
52
53   Bool_t TestLambda(Double_t pt,Double_t l1,Double_t l2) ;  //Evaluate Dispersion cuts for photons
54   Bool_t TestLambda2(Double_t pt,Double_t l1,Double_t l2) ;  //Evaluate Dispersion cuts for photons
55   Double_t TestCPV(Double_t dx, Double_t dz, Double_t pt, Int_t charge);
56   Bool_t TestTOF(Double_t t, Double_t e) ;
57   Int_t ConvertRunNumber(Int_t run) ; 
58   void ProcessMC() ;
59   Int_t FindPrimary(AliESDCaloCluster* clu, Bool_t& sure) ;
60
61   void  EvalLambdas(AliESDCaloCluster * clu, Int_t iR,Double_t &m02, Double_t &m20);
62   Double_t CoreEnergy(AliESDCaloCluster * clu); 
63   void    Reclusterize(AliESDCaloCluster * clu) ;
64   Bool_t  AreNeibors(Int_t id1,Int_t id2) ;
65   Double_t PrimaryWeight(Int_t primary);
66   Double_t PrimaryParticleWeight(TParticle * particle);
67   void FillSecondaries() ;
68   Int_t FindCommonParent(Int_t iPart, Int_t jPart) ;
69   Bool_t HaveParent(Int_t iPart, Int_t pdgParent);
70   Bool_t InPi0mass(Double_t m, Double_t pt);
71   
72 private:
73   AliStack * fStack ;             //
74   THashList * fOutputContainer;   //final histogram container
75   TList * fPHOSEvents[1][10][11] ; //Containers for events with PHOS photons
76   TClonesArray * fPHOSEvent ;      //PHOS photons in current event
77   AliPHOSCalibData *fPHOSCalibData; // PHOS calibration object
78  
79   //Reaction plain for v2
80   Float_t fRP ;       //Reaction plane calculated with full TPC 
81   Float_t fRPV0A ;    //Reaction plain calculated with A-side TPC: eta>0.15 
82   Float_t fRPV0C ;    //Reaction plain calculated with C-side TPC: eta<-0.15
83   Bool_t fHaveTPCRP ; // Is TPC RP defined?
84   
85   Int_t fRunNumber ;    //Current run number
86   Float_t fCentrality ; //Centrality of the currecnt event
87
88   Int_t fCenBin ;       // Current centrality bin
89
90   TH2I *fPHOSBadMap[6] ;    //Container for PHOS bad channels map
91
92   AliPHOSGeometry  *fPHOSGeo;  // PHOS geometry
93   Int_t fEventCounter;         // number of analyzed events
94
95   ClassDef(AliPHOSHijingEfficiency, 1); // PHOS analysis task
96 };
97
98 #endif