]> git.uio.no Git - u/mrichter/AliRoot.git/blame - EMCAL/AliEMCALFolder.h
EMCAL e-by-e reconstruction methods from Cvetan
[u/mrichter/AliRoot.git] / EMCAL / AliEMCALFolder.h
CommitLineData
16d3c94d 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 */
5
6/* $log:$ */
7
8//_________________________________________________________________________
9// Top EMCAL folder - keep everyrhing for calibration task
10//
11//*-- Author: Aleksei Pavlinov (WSU, Detroit, USA)
12
13// --- ROOT system ---
14
15#include <TObjectSet.h>
16#include <TString.h>
17
18class AliEMCALGeometry;
19class AliEMCALSuperModule;
20class AliEMCALCell;
21class AliESDCaloCluster;
22class AliEMCALPi0SelectionParam;
23class pi0SelectionParam;
24class AliEMCALCalibData;
25class AliEMCALCalibCoefs;
26class AliEMCALRecPoint;
27
28class TList;
29class TNtuple;
30
31class AliEMCALFolder : public TObjectSet {
32
33 public:
34
35 AliEMCALFolder();
36 AliEMCALFolder(const char* name, const char* title="Top EMCAL folder", Bool_t putToBrowser=kFALSE);
37 AliEMCALFolder(const Int_t it, const char* title="Top EMCAL folder", Bool_t putToBrowser=kFALSE);
38
39 virtual ~AliEMCALFolder();
40
41 void Init(Bool_t putToBrowser=kFALSE);
42 // Get methods
43 Int_t GetIterationNumber() const {return fCounter;}
44 AliEMCALSuperModule* GetSuperModule(const Int_t nm);
45 TList* GetHists() {return fLhists;}
46 AliEMCALCell** GetListOfCells() {return fLofCells;}
47 AliEMCALCell* GetCell(const Int_t absId);
48 void SetCell(AliEMCALCell *cell, const Int_t absId);
49 AliEMCALPi0SelectionParam* GetPi0SelectionPar() {return fPi0SelPar;}
50 pi0SelectionParam* GetPi0SelectionParRow(Int_t nrow);
51
52 void FillPi0Candidate(const Double_t mgg, AliESDCaloCluster* cl1, AliESDCaloCluster* cl2);
53 void FillPi0Candidate(const Double_t mgg, Int_t absIdMax, Int_t nm);
54 // Define CC
55 void FitAllSMs(); // SM0 now
56 // Service routine
57 AliEMCALCalibCoefs* GetCCTable(const char* name);
58 AliEMCALCalibCoefs* GetCCFirst() {return GetCCTable(fgkCCFirstName.Data());}
59 AliEMCALCalibCoefs* GetCCIn() {return GetCCTable(fgkCCinName.Data());}
60 AliEMCALCalibCoefs* GetCCOut(){return GetCCTable(fgkCCoutName.Data());}
61 Int_t GetSMNumber(AliESDCaloCluster* cl);
62 // Recalibration staf - Jun 18,2007
63 static AliEMCALRecPoint *GetRecPoint(AliESDCaloCluster *cl,AliEMCALCalibCoefs *tOld,AliEMCALCalibCoefs *tNew, TList *l=0);
64 // MENU
65 void Save(const char *fn = "EMCALFOLDER.root", const char *opt="RECREATE"); // *MENU*
66 static AliEMCALFolder* Read(const char *fn = "EMCALFOLDER.root", const char *opt="READ");
67 void InitAfterRead(); // *MENU*
68 void DrawQA(const int nsm=0); // *MENU*
69 void CreateCellNtuple(); // *MENU*
70 void CreateAndFillAdditionalHists(); // *MENU*
71
72 protected:
73 TList* BookHists();
74 Int_t fCounter; // Coonter of iteration
75 //
76 AliEMCALGeometry *fGeometry; //
77 //
78 Int_t fNumOfCell; // number of cells as in geometry
79
80 TList* fLhists; //! for speed
81 AliEMCALCell** fLofCells; //! unifrom array of cells for fast access; invisible from browser
82 AliEMCALPi0SelectionParam* fPi0SelPar; // pi0 selection parameters
83 AliEMCALCalibData *fCalibData; //!
84 //
85 TNtuple *fCellNtuple; //! for quick cell anaylsis
86
87 public:
88 static const TString fgkBaseFolderName; // base name of EMCAL Folder
89 static const TString fgkCCFirstName; // name of first calib.table
90 static const TString fgkCCinName; // name of initial calib.coefs. table
91 static const TString fgkCCoutName; // name of out calib.coefs. table
92
93 void TestSMStruct();
94
95 ClassDef(AliEMCALFolder,2) // EMCAL folder
96
97};
98
99#endif // ALIEMCALFOLDER_H