]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGGA/EMCALTasks/AliAnalysisTaskEMCALClusterizeFast.h
changes in AddAnalysisTaskPIDFluctuation.C for only one output file in analysis train...
[u/mrichter/AliRoot.git] / PWGGA / EMCALTasks / AliAnalysisTaskEMCALClusterizeFast.h
CommitLineData
2f7259cf 1#ifndef ALIANALYSISTASKEMCALCLUSTERIZEFAST_H
2#define ALIANALYSISTASKEMCALCLUSTERIZEFAST_H
3
4// $Id$
5
6class TObjArray;
7class TClonesArray;
8class AliAODEvent;
9class AliESDEvent;
10class AliEMCALCalibData;
11class AliCaloCalibPedestal;
12class AliEMCALClusterizer;
13class AliEMCALAfterBurnerUF;
14class AliEMCALRecParam;
15class AliEMCALRecoUtils;
16
17#include "AliAnalysisTaskSE.h"
18
19class 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