1 #ifndef ALIEMCALFOLDER_H
2 #define ALIEMCALFOLDER_H
3 /* Copyright(c) 1998-2007, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
6 /* History of cvs commits:
9 * Revision 1.3 2007/10/16 14:36:39 pavlinov
10 * fixed code violation (almost)
12 * Revision 1.2 2007/09/11 19:38:15 pavlinov
13 * added pi0 calibration, linearity, shower profile
17 //_________________________________________________________________________
18 // Top EMCAL folder - keep everyrhing for calibration task
19 // Initial version was created with TDataSet staf
20 // TObjectSet -> TFolder; Sep 5, 2007
22 //*-- Author: Aleksei Pavlinov (WSU, Detroit, USA)
24 // --- ROOT system ---
29 class AliEMCALGeometry;
30 class AliEMCALSuperModule;
32 class AliESDCaloCluster;
33 class AliEMCALPi0SelectionParam;
34 class AliEMCALPi0SelectionParRec;
35 class AliEMCALCalibData;
36 class AliEMCALCalibCoefs;
37 class AliEMCALRecPoint;
42 class AliEMCALFolder : public TFolder {
47 AliEMCALFolder(const char* name, const char* title="Top EMCAL folder", Bool_t putToBrowser=kFALSE);
48 AliEMCALFolder(const Int_t it, const char* title="Top EMCAL folder", Bool_t putToBrowser=kFALSE);
50 virtual ~AliEMCALFolder();
52 void Init(Bool_t putToBrowser=kFALSE);
54 Int_t GetIterationNumber() const {return fCounter;}
55 AliEMCALSuperModule* GetSuperModule(const Int_t nm);
56 TList* GetHists() {return fLhists;}
57 AliEMCALCell** GetListOfCells() {return fLofCells;}
58 AliEMCALCell* GetCell(const Int_t absId);
59 void SetCell(AliEMCALCell *cell, const Int_t absId);
60 AliEMCALPi0SelectionParam* GetPi0SelectionPar() {return fPi0SelPar;}
61 AliEMCALPi0SelectionParRec* GetPi0SelectionParRow(Int_t nrow);
63 void FillPi0Candidate(const Double_t mgg, AliESDCaloCluster* cl1, AliESDCaloCluster* cl2);
64 void FillPi0Candidate(const Double_t mgg, Int_t absIdMax, Int_t nm);
66 void FitAllSMs(); // SM0 now
68 AliEMCALCalibCoefs* GetCCTable(const char* name) const;
69 AliEMCALCalibCoefs* GetCCFirst() {return GetCCTable(fgkCCFirstName.Data());}
70 AliEMCALCalibCoefs* GetCCIn() {return GetCCTable(fgkCCinName.Data());}
71 AliEMCALCalibCoefs* GetCCOut(){return GetCCTable(fgkCCoutName.Data());}
72 Int_t GetSMNumber(AliESDCaloCluster* cl);
73 // Recalibration staf - Jun 18,2007
74 static AliEMCALRecPoint *GetRecPoint(AliESDCaloCluster *cl,AliEMCALCalibCoefs *tOld,AliEMCALCalibCoefs *tNew,
75 TList *l=0, Double_t deff=-1., Double_t w0=-1., Double_t phiSlope=0.0);
77 void Save(const char *fn = "EMCALFOLDER.root", const char *opt="RECREATE"); // *MENU*
78 static AliEMCALFolder* ReadFolder(const char *fn = "EMCALFOLDER.root", const char *opt="READ");
79 void InitAfterRead(); // *MENU*
80 void DrawQA(const int nsm=0); // *MENU*
81 void CreateCellNtuple(); // *MENU*
82 void CreateAndFillAdditionalHists(); // *MENU*
84 static const TString GetBaseFolderName() {return fgkBaseFolderName;}
85 static const TString GetCCinName() {return fgkCCinName;}
88 Int_t fCounter; // Counter of iteration
90 AliEMCALGeometry *fGeometry; // pointer to EMCAL geometry
92 Int_t fNumOfCell; // number of cells as in geometry
94 TList* fLhists; //! for speed
95 AliEMCALCell** fLofCells; //! unifrom array of cells for fast access; invisible from browser
96 AliEMCALPi0SelectionParam* fPi0SelPar; // pi0 selection parameters
97 AliEMCALCalibData *fCalibData; //!
99 TNtuple *fCellNtuple; //! for quick cell anaylsis
101 static const TString fgkBaseFolderName; // base name of EMCAL Folder
102 static const TString fgkCCFirstName; // name of first calib.table
103 static const TString fgkCCinName; // name of initial calib.coefs. table
104 static const TString fgkCCoutName; // name of out calib.coefs. table
105 static const TString fgkDirOfRootFiles; // name of directory for saving EMCAL folder
107 TList *fLobj; // list of all objects
109 void TestSMStruct(); // *MENU*
111 ClassDef(AliEMCALFolder,3) // EMCAL folder
115 #endif // ALIEMCALFOLDER_H