1 #ifndef AliPHOSHijingEfficiency_cxx
\r
2 #define AliPHOSHijingEfficiency_cxx
\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
17 class AliESDtrackCuts;
\r
18 class AliPHOSGeometry;
\r
20 class AliPHOSCalibData;
\r
22 class AliESDCaloCluster ;
\r
23 class AliCaloPhoton ;
\r
25 #include "AliAnalysisTaskSE.h"
\r
27 class AliPHOSHijingEfficiency : public AliAnalysisTaskSE {
\r
29 AliPHOSHijingEfficiency(const char *name = "AliPHOSHijingEfficiency");
\r
30 virtual ~AliPHOSHijingEfficiency() {}
\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
37 if(fPHOSBadMap[mod]) delete fPHOSBadMap[mod] ;
\r
38 fPHOSBadMap[mod]=new TH2I(*h) ;
\r
39 printf("Set %s \n",fPHOSBadMap[mod]->GetName());
\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
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
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
59 Int_t FindPrimary(AliESDCaloCluster* clu, Bool_t& sure) ;
\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
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
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
85 Int_t fRunNumber ; //Current run number
\r
86 Float_t fCentrality ; //Centrality of the currecnt event
\r
88 Int_t fCenBin ; // Current centrality bin
\r
90 TH2I *fPHOSBadMap[6] ; //Container for PHOS bad channels map
\r
92 AliPHOSGeometry *fPHOSGeo; // PHOS geometry
\r
93 Int_t fEventCounter; // number of analyzed events
\r
95 ClassDef(AliPHOSHijingEfficiency, 1); // PHOS analysis task
\r