]>
Commit | Line | Data |
---|---|---|
2cde7444 | 1 | #ifndef AliAnalysisTaskPi0Flow_cxx\r |
2 | #define AliAnalysisTaskPi0Flow_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 TH1F;\r | |
9 | class TH2I;\r | |
10 | class TH2F;\r | |
11 | class TH3F;\r | |
12 | class TF1 ;\r | |
13 | class AliStack ;\r | |
14 | class AliESDtrackCuts;\r | |
15 | class AliPHOSGeometry;\r | |
16 | class AliESDEvent ;\r | |
17 | class AliPHOSCalibData;\r | |
18 | class AliESDtrack ;\r | |
19 | class AliESDCaloCluster ;\r | |
20 | \r | |
21 | #include "AliAnalysisTaskSE.h"\r | |
22 | \r | |
23 | class AliAnalysisTaskPi0Flow : public AliAnalysisTaskSE {\r | |
24 | public:\r | |
25 | AliAnalysisTaskPi0Flow(const char *name = "AliAnalysisTaskPi0Flow");\r | |
26 | virtual ~AliAnalysisTaskPi0Flow() {}\r | |
27 | \r | |
28 | virtual void UserCreateOutputObjects();\r | |
29 | virtual void UserExec(Option_t *option);\r | |
30 | virtual void Terminate(Option_t *);\r | |
31 | void SetPHOSBadMap(Int_t mod,TH2I * h)\r | |
32 | {\r | |
33 | if(fPHOSBadMap[mod]) delete fPHOSBadMap[mod] ;\r | |
34 | fPHOSBadMap[mod]=new TH2I(*h) ;\r | |
35 | printf("Set %s \n",fPHOSBadMap[mod]->GetName());\r | |
36 | }\r | |
37 | \r | |
38 | private:\r | |
39 | AliAnalysisTaskPi0Flow(const AliAnalysisTaskPi0Flow&); // not implemented\r | |
40 | AliAnalysisTaskPi0Flow& operator=(const AliAnalysisTaskPi0Flow&); // not implemented\r | |
41 | Bool_t IsGoodChannel(const char * det, Int_t mod,Int_t ix, Int_t iz); //Use addisional bad map for PHOS\r | |
42 | \r | |
43 | void FillHistogram(const char * key,Double_t x) const ; //Fill 1D histogram witn name key\r | |
44 | void FillHistogram(const char * key,Double_t x, Double_t y) const ; //Fill 2D histogram witn name key\r | |
45 | void FillHistogram(const char * key,Double_t x, Double_t y, Double_t z) const ; //Fill 3D histogram witn name key\r | |
46 | \r | |
47 | Bool_t TestLambda(Double_t pt,Double_t l1,Double_t l2) ; //Evaluate Dispersion cuts for photons\r | |
48 | Bool_t TestLambda2(Double_t pt,Double_t l1,Double_t l2) ; //Evaluate Dispersion cuts for photons\r | |
49 | Double_t TestCPV(Double_t dx, Double_t dz, Double_t pt, Int_t charge);\r | |
50 | Int_t ConvertRunNumber(Int_t run) ; \r | |
51 | \r | |
52 | void OpenInfoCalbration(Int_t run); //V0 calibration\r | |
53 | void EvalV0ReactionPlane(AliESDEvent * event) ;\r | |
54 | Double_t ApplyFlattening(Double_t phi, Double_t c) ; //Apply centrality-dependent flattening\r | |
55 | Double_t ApplyFlatteningV0A(Double_t phi, Double_t c) ; //Apply centrality-dependent flattening\r | |
56 | Double_t ApplyFlatteningV0C(Double_t phi, Double_t c) ; //Apply centrality-dependent flattening\r | |
57 | \r | |
58 | Double_t CoreEnergy(AliESDCaloCluster * clu); \r | |
59 | void Reclusterize(AliESDCaloCluster * clu) ;\r | |
60 | Bool_t AreNeibors(Int_t id1,Int_t id2) ;\r | |
61 | private:\r | |
62 | AliESDtrackCuts *fESDtrackCuts; // Track cut\r | |
63 | AliStack * fStack ;\r | |
64 | TList * fOutputContainer; //final histogram container\r | |
65 | TList * fPHOSEvents[1][10][11] ; //Containers for events with PHOS photons\r | |
66 | TClonesArray * fPHOSEvent ; //PHOS photons in current event\r | |
67 | AliPHOSCalibData *fPHOSCalibData; // PHOS calibration object\r | |
68 | TF1 *fNonLinCorr; // Non-linearity correction\r | |
69 | \r | |
70 | //Reaction plain for v2\r | |
71 | Float_t fRP ; //!Reaction plane calculated with full TPC \r | |
72 | Float_t fRPV0A ; //!Reaction plain calculated with A-side TPC: eta>0.15 \r | |
73 | Float_t fRPV0C ; //!Reaction plain calculated with C-side TPC: eta<-0.15\r | |
74 | Bool_t fHaveTPCRP ; //! Is TPC RP defined?\r | |
75 | \r | |
76 | //V0 calibration\r | |
77 | \r | |
78 | static const Int_t nCentrBinV0 = 9; // # cenrality bins\r | |
79 | \r | |
80 | TProfile *fMultV0; // object containing VZERO calibration information\r | |
81 | \r | |
82 | Float_t fV0Cpol,fV0Apol; // loaded by OADB\r | |
83 | \r | |
84 | Float_t fMeanQ[nCentrBinV0][2][2]; // and recentering\r | |
85 | \r | |
86 | Float_t fWidthQ[nCentrBinV0][2][2]; // ...\r | |
87 | \r | |
88 | \r | |
89 | // TF1 * fRecent[5][12] ;//Recentering corrections\r | |
90 | \r | |
91 | Int_t fRunNumber ; //Current run number\r | |
92 | Float_t fCentrality ; //!Centrality of the currecnt event\r | |
93 | \r | |
94 | Int_t fCenBin ; //! Current centrality bin\r | |
95 | \r | |
96 | TH2I *fPHOSBadMap[6] ; //Container for PHOS bad channels map\r | |
97 | \r | |
98 | AliPHOSGeometry *fPHOSGeo; //! PHOS geometry\r | |
99 | Int_t fEventCounter; // number of analyzed events\r | |
100 | \r | |
101 | ClassDef(AliAnalysisTaskPi0Flow, 1); // PHOS analysis task\r | |
102 | };\r | |
103 | \r | |
104 | #endif\r |