]>
Commit | Line | Data |
---|---|---|
2f7259cf | 1 | #ifndef ALIANALYSISTASKEMCALCLUSTERIZEFAST_H |
2 | #define ALIANALYSISTASKEMCALCLUSTERIZEFAST_H | |
3 | ||
4 | // $Id$ | |
5 | ||
6 | class TObjArray; | |
7 | class TClonesArray; | |
8 | class AliAODEvent; | |
9 | class AliESDEvent; | |
10 | class AliEMCALCalibData; | |
11 | class AliCaloCalibPedestal; | |
12 | class AliEMCALClusterizer; | |
13 | class AliEMCALAfterBurnerUF; | |
14 | class AliEMCALRecParam; | |
15 | class AliEMCALRecoUtils; | |
16 | ||
17 | #include "AliAnalysisTaskSE.h" | |
18 | ||
19 | class AliAnalysisTaskEMCALClusterizeFast : public AliAnalysisTaskSE { | |
20 | public: | |
2431b20f | 21 | AliAnalysisTaskEMCALClusterizeFast(); |
22 | AliAnalysisTaskEMCALClusterizeFast(const char *name); | |
2f7259cf | 23 | virtual ~AliAnalysisTaskEMCALClusterizeFast(); |
24 | ||
25 | public: | |
26 | virtual void UserCreateOutputObjects(); | |
27 | virtual void UserExec(Option_t *option); | |
28 | ||
5133b922 | 29 | Bool_t GetAttachClusters() const { return fAttachClusters ; } |
30 | Bool_t GetRecalibrateOnly() const { return fRecalibOnly ; } | |
31 | Bool_t GetSubBackground() const { return fSubBackground ; } | |
32 | const TObjArray *GetClusters() const { return fClusterArr ; } | |
33 | const TClonesArray *GetDigits() const { return fDigitsArr ; } | |
34 | const TString &GeometryName() const { return fGeomName ; } | |
35 | AliEMCALRecParam *GetRecParam() const { return fRecParam ; } | |
36 | AliEMCALRecoUtils *GetRecoUtils() const { return fRecoUtils ; } | |
37 | AliEMCALCalibData *GetCalibData() const { return fCalibData ; } | |
38 | AliCaloCalibPedestal *GetPedData() const { return fPedestalData ; } | |
39 | TGeoHMatrix *GetGeometryMatrix(Int_t i) const { return fGeomMatrix[i] ; } | |
40 | Bool_t GetCreatePattern() const { return fCreatePattern ; } | |
41 | Bool_t GetOverwrite() const { return fOverwrite ; } | |
42 | const TString &GetNewClusterArrayName() const { return fNewClusterArrayName ; } | |
43 | Int_t GetnPhi() const { return fNPhi ; } | |
44 | Int_t GetnEta() const { return fNEta ; } | |
45 | Int_t GetShiftPhi() const { return fShiftPhi ; } | |
46 | Int_t GetShiftEta() const { return fShiftEta ; } | |
47 | Bool_t GetTRUShift() const { return fTRUShift ; } | |
48 | Bool_t GetClusterizeFastORs() const { return fClusterizeFastORs ; } | |
5133b922 | 49 | void JustUnfold(Bool_t yesno) { fJustUnfold = yesno ; } |
50 | void LoadOwnGeometryMatrices(Bool_t b) { fLoadGeomMatrices = b ; } | |
51 | void SetAODBranchName(const char *name) { fOutputAODBrName = name ; } | |
52 | void SetAttachClusters(Bool_t b) { fAttachClusters = b ; } | |
53 | void SetCalibData(AliEMCALCalibData *d) { fCalibData = d ; } | |
54 | void SetEMCALRecoUtils(AliEMCALRecoUtils *ru) { fRecoUtils = ru ; } | |
55 | void SetGeometryMatrix(TGeoHMatrix* m, Int_t i) { fGeomMatrix[i] = m ; } | |
56 | void SetGeometryName(const char *name) { fGeomName = name ; } | |
57 | void SetLoadCalib(Bool_t b) { fLoadCalib = b ; } | |
58 | void SetLoadPed(Bool_t b) { fLoadPed = b ; } | |
59 | void SetOCDBPath(const char *path) { fOCDBpath = path ; } | |
60 | void SetPedestalData(AliCaloCalibPedestal *d) { fPedestalData = d ; } | |
61 | void SetRecalibrateCellsOnly(Bool_t b) { fRecalibOnly = b ; } | |
62 | void SetSubBackground(Bool_t b) { fSubBackground = b ; } | |
e50a444f | 63 | void SetCreatePattern(Bool_t yes) { fCreatePattern = yes ; } |
64 | void SetOverwrite(Bool_t yes) { fOverwrite = yes ; } | |
0a7eb283 | 65 | void SetNewClusterArrayName(const char *name) { fNewClusterArrayName = name ; } |
5133b922 | 66 | void SetnPhi(Int_t n) { fNPhi = n ; } |
67 | void SetnEta(Int_t n) { fNEta = n ; } | |
68 | void SetShiftPhi(Int_t n) { fShiftPhi = n ; } | |
69 | void SetShiftEta(Int_t n) { fShiftEta = n ; } | |
70 | void SetTRUShift(Bool_t yes) { fTRUShift = yes ; } | |
e50a444f | 71 | void SetClusterizeFastORs(Bool_t yes) { fClusterizeFastORs = yes ; } |
0408f54f | 72 | void SetTrackName(const char *n) { fTrackName = n ; } |
2f7259cf | 73 | |
5c5b84d6 | 74 | protected: |
fa2d8807 | 75 | virtual void Clusterize(); |
76 | virtual void FillDigitsArray(); | |
77 | virtual void Init(); | |
78 | virtual void RecPoints2Clusters(TClonesArray *clus); | |
fa2d8807 | 79 | virtual void UpdateCells(); |
80 | virtual void UpdateClusters(); | |
2f7259cf | 81 | |
7a7d5a64 | 82 | Int_t fRun; //!run number |
83 | TClonesArray *fDigitsArr; //!digits array | |
84 | TObjArray *fClusterArr; //!recpoints array | |
85 | AliEMCALRecParam *fRecParam; // reconstruction parameters container | |
86 | AliEMCALClusterizer *fClusterizer; //!clusterizer | |
87 | AliEMCALAfterBurnerUF *fUnfolder; //!unfolding procedure | |
88 | Bool_t fJustUnfold; // just unfold, do not recluster | |
89 | TString fGeomName; // name of geometry to use. | |
90 | Bool_t fGeomMatrixSet; // set geometry matrices only once, for the first event. | |
91 | Bool_t fLoadGeomMatrices; // matrices from configuration, not geometry.root nor ESDs/AODs | |
92 | TGeoHMatrix *fGeomMatrix[12]; // geometry matrices with alignments | |
93 | TString fOCDBpath; // path with OCDB location | |
94 | AliEMCALCalibData *fCalibData; // EMCAL calib data | |
95 | AliCaloCalibPedestal *fPedestalData; // EMCAL pedestal | |
96 | TClonesArray *fOutputAODBranch; //!AOD Branch with output clusters | |
97 | TString fOutputAODBrName; // output AOD branch name (none by default) | |
98 | AliEMCALRecoUtils *fRecoUtils; // access to factorized reconstruction algorithms | |
99 | Bool_t fLoadCalib; // access calib object from OCDB (def=off) | |
100 | Bool_t fLoadPed; // access ped object from OCDB (def=off) | |
101 | Bool_t fAttachClusters; // attach clusters to input event (AOD or ESD) | |
102 | Bool_t fRecalibOnly; // only recalibrate cells if true (def=off) | |
103 | Bool_t fSubBackground; // subtract background if true (def=off) | |
104 | Bool_t fCreatePattern; // removes all cells and creates a cell pattern before running the clusterizer (for debug purposes) | |
105 | Bool_t fOverwrite; // Overwrite existing clusters | |
106 | TString fNewClusterArrayName; // If not overwriting, name of the new cluster array | |
107 | Int_t fNPhi; // nPhi (for FixedWindowsClusterizer) | |
108 | Int_t fNEta; // nEta (for FixedWinoswsClusterizer) | |
0408f54f | 109 | Int_t fShiftPhi; // shift in phi (for FixedWindowsClusterizer) |
110 | Int_t fShiftEta; // shift in eta (for FixedWindowsClusterizer) | |
111 | Bool_t fTRUShift; // shifting inside a TRU (true) or through the whole calorimeter (false) (for FixedWindowsClusterizer) | |
112 | Bool_t fClusterizeFastORs; // if true, clusterize FastORs instead of cells | |
113 | TString fTrackName; // if not null use track collection for track/cluster matching | |
10d33986 | 114 | |
5c5b84d6 | 115 | private: |
116 | AliAnalysisTaskEMCALClusterizeFast(const AliAnalysisTaskEMCALClusterizeFast&); // not implemented | |
117 | AliAnalysisTaskEMCALClusterizeFast &operator=(const AliAnalysisTaskEMCALClusterizeFast&); // not implemented | |
118 | ||
0408f54f | 119 | ClassDef(AliAnalysisTaskEMCALClusterizeFast, 6); |
2f7259cf | 120 | }; |
121 | #endif //ALIANALYSISTASKEMCALCLUSTERIZEFAST_H |