1 #ifndef ALIEMCALRECPOINTSQAESDSELECTOR_H
2 #define ALIEMCALRECPOINTSQAESDSELECTOR_H
3 /* Copyright(c) 1998-2007, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
8 //*-- Authors: Aleksei Pavlinov (WSU)
10 #include "AliSelector.h"
12 #include <TObjArray.h>
16 class AliEMCALRecPoint;
17 class AliEMCALCellInfo;
29 class AliEMCALRecPointsQaESDSelector : public AliSelector {
31 AliEMCALRecPointsQaESDSelector();
32 virtual ~AliEMCALRecPointsQaESDSelector();
34 virtual void Begin(TTree*);
35 virtual void SlaveBegin(TTree* tree);
36 virtual void Init(TTree *tree);
37 virtual Bool_t Notify();
38 virtual Bool_t Process(Long64_t entry);
39 virtual void SlaveTerminate();
40 virtual void Terminate();
42 void InitStructure(Int_t it);
43 static TList *DefineHistsOfRP(const char *name="RP", Double_t p=110.0, Int_t keyOpt=0);
44 static TList *DefineHistsOfKineVsRP(const char *name="KineVsRP", Double_t p=110.0, Int_t keyOpt=0);
45 static TList *DefineHistsForShowerProfile(const char *name="ProfY", Double_t p=1.);
46 static void FillHistsOfKineVsRP(TList *l, AliRunLoader* RL, TClonesArray &lvM);
47 static void FillHistsForShowerProfile(TList *l, AliEMCALRecPoint *rp, AliEMCALCellInfo* t);
48 static void EvalLocalPhiPosition(const Double_t wlog, const AliEMCALRecPoint *rp, const AliEMCALCellInfo* t, Double_t &xcog, Int_t &phiSize, cellInfo &rMax);
50 TList *GetListKineVsRP() {return fLKineVsRP;}
51 TList *GetListShowerProfile() {return fLShowerProfile;}
52 // static TList *DefineHistsOfTowers(const char *name="towers");
54 void FitEffMassHist(); // *MENU*
55 void PrintInfo(); // *MENU*
57 void SetChain(TChain *chain) {fChain = chain;}
58 TChain* GetChain() {return fChain;}
59 void SetMomentum(Double_t p);
60 Double_t GetMomentum() {return fPmom;}
62 AliEMCALFolder* CreateEmcalFolder(const Int_t it);
63 void SetEmcalFolder(AliEMCALFolder* folder);
64 void SetEmcalOldFolder(AliEMCALFolder* folder);
65 AliEMCALFolder* GetEmcalOldFolder(const Int_t nsm);
66 AliEMCALCellInfo* GetCellsInfo() {return fCellsInfo;}
68 void SetStringOfRunOpts(const char *st) {fRunOpts = st;}
69 TObjArray GetOptsArray() const {return fArrOpts;}
70 Int_t GetKeyOptsValue(Int_t key); // *MENU*
73 virtual void Browse(TBrowser* b);
74 virtual Bool_t IsFolder() const;
76 void Save(Int_t ver=0, const char *optIO="NEW"); // *MENU*
77 static AliEMCALRecPointsQaESDSelector* ReadSelector(const char* nf = "/home/pavlinov/ALICE/SHISHKEBAB/RF/CALIB/PROF/PROFILE_0.root");
81 //// Pictures staf - Jun 26, 2007
83 void ReadAllEmcalFolders();
84 void PictVsIterNumber(const Int_t ind=0, const Int_t nsm=0);
86 TH1F* FitHistOfRecPointEnergy(const char *opt="CLONE");
87 static TCanvas *Linearity(TList *l, Int_t ifun=3);
88 static TCanvas *DrawKineVsRP(TList *l);
90 static TCanvas *DrawMeanVsLog(TH2F *h2);
92 TCanvas *DrawPhiEtaAnglesDistribution(const char *gn="SHISH_TRD1_CURRENT_2X2"); // *MENU*
94 TCanvas *DrawDeffVsEnergy(); // *MENU*
95 TCanvas *DrawDeffVsEnergy2(const char *opt="fit1"); // *MENU*
96 void ReadParsDeffAndW0(const char *dirName="/data/r22b/ALICE/CALIB/FIT/",
97 double *deff=0, double *edeff=0, double *w0=0, double *ew0=0, const Int_t pri=0);
98 TCanvas *DrawSpaceResolution();
100 Double_t fPmom; // positive if defined
102 TChain* fChain; //! chain if ESD files
103 TList* fLofHistsPC; // list of histograms of pseudo clusters
104 TList* fLofHistsRP; // list of histograms of rec.points
105 TList* fLKineVsRP; // list of histograms kinematics vs rec.points
106 TList* fLShowerProfile; // list of histograms for shower profile business
108 AliEMCALCellInfo *fCellsInfo; //
109 TFolder* fEmcalPool; //
111 // Options - Jul 10, 2007
113 TString fRunOpts; // String of running options
114 TObjArray fArrOpts; // Array of options
119 static AliEMCALFolder* GetEmcalFolder() {return fEMCAL;}
120 static AliEMCALFolder* GetEmcalOldFolder() {return fEMCALOld;}
121 static AliEMCALFolder* fEMCAL; // current EMCAL object
122 static AliEMCALFolder* fEMCALOld; // previous EMCAL object
124 static Double_t fDistEff; // effective depth of electromagnetic shower
125 static Double_t fW0; //
126 static Double_t fSlopePhiShift; // phi shift of cluster = fSlopePhiShift * phi
127 static void SetFitParameters(Double_t deff, Double_t w0, Double_t slope)
129 fDistEff = deff; fW0 = w0; fSlopePhiShift = slope;
131 static void GetFitParameters(Double_t &deff, Double_t &w0, Double_t &slope)
133 deff = fDistEff; w0 = fW0; slope = fSlopePhiShift;
135 void ResetAllListOfHists();
136 void ReloadChain(Long64_t entry=0);
137 void GetInitialParsForFit(const Int_t var, Double_t &deff, Double_t &w0, Double_t &phislope, const int phiCase=0);
140 AliEMCALRecPointsQaESDSelector(const AliEMCALRecPointsQaESDSelector&);
141 AliEMCALRecPointsQaESDSelector& operator=(const AliEMCALRecPointsQaESDSelector&);
143 ClassDef(AliEMCALRecPointsQaESDSelector, 1);