]>
Commit | Line | Data |
---|---|---|
6e6f8407 | 1 | #ifndef ALIEMCALPI0CALIBRATION_H |
2 | #define ALIEMCALPI0CALIBRATION_H | |
3 | /* Copyright(c) 1998-2007, ALICE Experiment at CERN, All rights reserved. * | |
4 | * See cxx source for full Copyright notice */ | |
5 | ||
6 | /* $Id: AliEMCALPi0Calibration.h 21465 2007-10-16 14:38:13Z pavlinov $ */ | |
7 | ||
8 | //*-- Authors: Aleksei Pavlinov (WSU) | |
9 | // Pi0 calibration | |
10 | // Tuning parameters of coordinate calculations | |
11 | // May 2008 - move to AliAnalysisTaskSE | |
12 | ||
13 | #include "AliAnalysisTaskSE.h" | |
14 | ||
15 | #include <TObjArray.h> | |
16 | ||
17 | class AliEMCALGeometry; | |
18 | class AliEMCALFolder; | |
19 | class AliRunLoader; | |
20 | class AliEMCALRecPoint; | |
21 | class AliEMCALCellInfo; | |
22 | class AliEMCALCellIndexes; | |
23 | ||
24 | class TList; | |
25 | class TCanvas; | |
26 | class TH1F; | |
27 | class TH2F; | |
28 | class TBrowser; | |
29 | class TChain; | |
30 | class TFolder; | |
31 | class TArrayI; | |
32 | ||
33 | class AliEMCALPi0Calibration : public AliAnalysisTaskSE { | |
34 | public: | |
35 | AliEMCALPi0Calibration(); | |
36 | AliEMCALPi0Calibration(const char* name); | |
394a47b7 | 37 | //AliEMCALPi0Calibration(const AliAnalysisTaskSE& obj); |
38 | //AliEMCALPi0Calibration& operator=(const AliAnalysisTaskSE& other); | |
6e6f8407 | 39 | |
40 | virtual ~AliEMCALPi0Calibration(); | |
41 | ||
42 | virtual void UserExec(const Option_t* opt); | |
43 | // | |
44 | void InitStructure(Int_t it); | |
45 | static TList *DefineHistsOfRP(const char *name="RP", Double_t p=110.0, Int_t keyOpt=0); | |
46 | static TList *DefineHistsOfKineVsRP(const char *name="KineVsRP", Double_t p=110.0, Int_t keyOpt=0); | |
47 | static TList *DefineHistsForShowerProfile(const char *name="ProfY", Double_t p=1.); | |
48 | static void FillHistsOfKineVsRP(TList *l, AliRunLoader* RL, TClonesArray &lvM); | |
49 | static void FillHistsForShowerProfile(TList *l, AliEMCALRecPoint *rp, AliEMCALCellInfo* t); | |
50 | static void EvalLocalPhiPosition(const Double_t wlog, const AliEMCALRecPoint *rp, const AliEMCALCellInfo* t, Double_t &xcog, Int_t &phiSize, AliEMCALCellIndexes &rMax); | |
51 | // | |
52 | TList *GetListKineVsRP() {return fLKineVsRP;} | |
53 | TList *GetListShowerProfile() {return fLShowerProfile;} | |
54 | // static TList *DefineHistsOfTowers(const char *name="towers"); | |
55 | // | |
56 | void FitEffMassHist(); // *MENU* | |
57 | void PrintInfo(); // *MENU* | |
58 | // | |
59 | void SetChain(TChain *chain) {fChain = chain;} | |
60 | TChain* GetChain() {return fChain;} | |
61 | void SetMomentum(Double_t p); | |
62 | Double_t GetMomentum() const {return fPmom;} | |
63 | ||
64 | AliEMCALFolder* CreateEmcalFolder(const Int_t it); | |
65 | void SetEmcalFolder(AliEMCALFolder* folder); | |
66 | void SetEmcalOldFolder(AliEMCALFolder* folder); | |
67 | AliEMCALFolder* GetEmcalOldFolder(const Int_t nsm); | |
68 | AliEMCALCellInfo* GetCellsInfo() {return fCellsInfo;} | |
69 | // | |
70 | void SetStringOfRunOpts(const char *st) {fRunOpts = st;} | |
71 | TObjArray GetOptsArray() const {return fArrOpts;} | |
72 | Int_t GetKeyOptsValue(Int_t key); // *MENU* | |
73 | void CheckRunOpts(); | |
74 | // | |
75 | virtual void Browse(TBrowser* b); | |
76 | virtual Bool_t IsFolder() const; | |
77 | // | |
78 | void Save(Int_t ver=0, const char *optIO="NEW"); // *MENU* | |
79 | static AliEMCALPi0Calibration* ReadSelector(const char* nf = "/home/pavlinov/ALICE/SHISHKEBAB/RF/CALIB/PROF/PROFILE_0.root"); | |
80 | ||
81 | ||
82 | // | |
83 | //// Pictures staf - Jun 26, 2007 | |
84 | // | |
85 | void ReadAllEmcalFolders(); | |
86 | void PictVsIterNumber(const Int_t ind=0, const Int_t nsm=0); | |
87 | // Gamma | |
88 | TH1F* FitHistOfRecPointEnergy(const char *opt="CLONE"); | |
89 | static TCanvas *Linearity(TList *l, Int_t ifun=3); | |
90 | static TCanvas *DrawKineVsRP(TList *l); | |
91 | // Profile | |
92 | static TCanvas *DrawMeanVsLog(TH2F *h2); | |
93 | // Geometry staff | |
94 | TCanvas *DrawPhiEtaAnglesDistribution(const char *gn="SHISH_TRD1_CURRENT_2X2"); // *MENU* | |
95 | // Geometry constants | |
96 | TCanvas *DrawDeffVsEnergy(); // *MENU* | |
97 | TCanvas *DrawDeffVsEnergy2(const char *opt="fit1"); // *MENU* | |
98 | void ReadParsDeffAndW0(const char *dirName="/data/r22b/ALICE/CALIB/FIT/", | |
99 | double *deff=0, double *edeff=0, double *w0=0, double *ew0=0, const Int_t pri=0); | |
100 | TCanvas *DrawSpaceResolution(); | |
101 | // | |
102 | static AliEMCALFolder* GetEmcalFolder() {return fgEMCAL;} | |
103 | static AliEMCALFolder* GetEmcalOldFolder() {return fgEMCALOld;} | |
104 | static void SetFitParameters(Double_t deff, Double_t w0, Double_t slope) | |
105 | { | |
106 | fgDistEff = deff; fgW0 = w0; fgSlopePhiShift = slope; | |
107 | } | |
108 | static void GetFitParameters(Double_t &deff, Double_t &w0, Double_t &slope) | |
109 | { | |
110 | deff = fgDistEff; w0 = fgW0; slope = fgSlopePhiShift; | |
111 | } | |
112 | void ResetAllListOfHists(); | |
113 | void ReloadChain(Long64_t entry=0); | |
114 | void GetInitialParsForFit(const Int_t var, Double_t &deff, Double_t &w0, Double_t &phislope, const int phiCase=0); | |
115 | ||
116 | protected: | |
117 | static AliEMCALFolder* fgEMCAL; // current EMCAL object | |
118 | static AliEMCALFolder* fgEMCALOld; // previous EMCAL object | |
119 | // | |
120 | static Double_t fgDistEff; // effective depth of electromagnetic shower | |
121 | static Double_t fgW0; // parameter of log. methods | |
122 | static Double_t fgSlopePhiShift; // phi shift of cluster = fSlopePhiShift * phi | |
123 | ||
124 | Double_t fPmom; // positive if defined | |
125 | // | |
126 | TChain* fChain; //! chain if ESD files | |
127 | TList* fLofHistsPC; // list of histograms of pseudo clusters | |
128 | TList* fLofHistsRP; // list of histograms of rec.points | |
129 | TList* fLKineVsRP; // list of histograms kinematics vs rec.points | |
130 | TList* fLShowerProfile; // list of histograms for shower profile business | |
131 | // | |
132 | AliEMCALCellInfo *fCellsInfo; // pointer to current cell | |
133 | TFolder* fEmcalPool; // folder of EMCAL objects | |
134 | // | |
135 | // Options - Jul 10, 2007 | |
136 | // | |
137 | TString fRunOpts; // String of running options | |
138 | TObjArray fArrOpts; // Array of options | |
139 | // Options keys | |
140 | TArrayI *fKeyOpts; // optins key; 0-disable, 1-enable | |
141 | // Static parameters | |
142 | private: | |
143 | AliEMCALPi0Calibration(const AliEMCALPi0Calibration&); | |
144 | AliEMCALPi0Calibration& operator=(const AliEMCALPi0Calibration&); | |
145 | // | |
146 | static AliEMCALGeometry* fgEmcalGeo; //! pointer to EMCAL geometry | |
147 | static Int_t fgNmaxCell; //! max number of cells | |
a6e0ebfe | 148 | static const Char_t **fgAnaOpt; //! aray of options |
6e6f8407 | 149 | static Int_t fgNanaOpt; //! number of options |
150 | ||
151 | ClassDef(AliEMCALPi0Calibration, 1); | |
152 | }; | |
153 | #endif |