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