1 #ifndef ALIANALYSISTASKEMCALCLUSTERIZEFAST_H
2 #define ALIANALYSISTASKEMCALCLUSTERIZEFAST_H
10 class AliEMCALCalibData;
11 class AliCaloCalibPedestal;
12 class AliEMCALClusterizer;
13 class AliEMCALAfterBurnerUF;
14 class AliEMCALRecParam;
15 class AliEMCALRecoUtils;
17 #include "AliAnalysisTaskSE.h"
19 class AliAnalysisTaskEMCALClusterizeFast : public AliAnalysisTaskSE {
21 AliAnalysisTaskEMCALClusterizeFast();
22 AliAnalysisTaskEMCALClusterizeFast(const char *name);
23 virtual ~AliAnalysisTaskEMCALClusterizeFast();
26 virtual void UserCreateOutputObjects();
27 virtual void UserExec(Option_t *option);
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 TString &GeometryName() const { return fGeomName ; }
34 AliEMCALRecParam *GetRecParam() const { return fRecParam ; }
35 AliEMCALRecoUtils *GetRecoUtils() const { return fRecoUtils ; }
36 AliEMCALCalibData *GetCalibData() const { return fCalibData ; }
37 AliCaloCalibPedestal *GetPedData() const { return fPedestalData ; }
38 TGeoHMatrix *GetGeometryMatrix(Int_t i) const { return fGeomMatrix[i] ; }
39 void JustUnfold(Bool_t yesno) { fJustUnfold = yesno ; }
40 void LoadOwnGeometryMatrices(Bool_t b) { fLoadGeomMatrices = b ; }
41 void SetAODBranchName(const char *name) { fOutputAODBrName = name ; }
42 void SetAttachClusters(Bool_t b) { fAttachClusters = b ; }
43 void SetCalibData(AliEMCALCalibData *d) { fCalibData = d ; }
44 void SetEMCALRecoUtils(AliEMCALRecoUtils *ru) { fRecoUtils = ru ; }
45 void SetGeometryMatrix(TGeoHMatrix* m, Int_t i) { fGeomMatrix[i] = m ; }
46 void SetGeometryName(const char *name) { fGeomName = name ; }
47 void SetLoadCalib(Bool_t b) { fLoadCalib = b ; }
48 void SetLoadPed(Bool_t b) { fLoadPed = b ; }
49 void SetOCDBPath(const char *path) { fOCDBpath = path ; }
50 void SetPedestalData(AliCaloCalibPedestal *d) { fPedestalData = d ; }
51 void SetRecalibrateCellsOnly(Bool_t b) { fRecalibOnly = b ; }
52 void SetSubBackground(Bool_t b) { fSubBackground = b ; }
55 virtual void Clusterize();
56 virtual void FillDigitsArray();
58 virtual void RecPoints2Clusters(TClonesArray *clus);
59 virtual void UpdateCells();
60 virtual void UpdateClusters();
62 Int_t fRun; //!run number
63 TClonesArray *fDigitsArr; //!digits array
64 TObjArray *fClusterArr; //!recpoints array
65 AliEMCALRecParam *fRecParam; // reconstruction parameters container
66 AliEMCALClusterizer *fClusterizer; //!clusterizer
67 AliEMCALAfterBurnerUF *fUnfolder; //!unfolding procedure
68 Bool_t fJustUnfold; // just unfold, do not recluster
69 TString fGeomName; // name of geometry to use.
70 Bool_t fGeomMatrixSet; // set geometry matrices only once, for the first event.
71 Bool_t fLoadGeomMatrices; // matrices from configuration, not geometry.root nor ESDs/AODs
72 TGeoHMatrix *fGeomMatrix[12]; // geometry matrices with alignments
73 TString fOCDBpath; // path with OCDB location
74 AliEMCALCalibData *fCalibData; // EMCAL calib data
75 AliCaloCalibPedestal *fPedestalData; // EMCAL pedestal
76 TClonesArray *fOutputAODBranch; //!AOD Branch with output clusters
77 TString fOutputAODBrName; // output AOD branch name (none by default)
78 AliEMCALRecoUtils *fRecoUtils; // access to factorized reconstruction algorithms
79 Bool_t fLoadCalib; // access calib object from OCDB (def=off)
80 Bool_t fLoadPed; // access ped object from OCDB (def=off)
81 Bool_t fAttachClusters; // attach clusters to input event (AOD or ESD)
82 Bool_t fRecalibOnly; // only recalibrate cells if true (def=off)
83 Bool_t fSubBackground; // subtract background if true (def=off)
86 AliAnalysisTaskEMCALClusterizeFast(const AliAnalysisTaskEMCALClusterizeFast&); // not implemented
87 AliAnalysisTaskEMCALClusterizeFast &operator=(const AliAnalysisTaskEMCALClusterizeFast&); // not implemented
89 ClassDef(AliAnalysisTaskEMCALClusterizeFast, 5);
91 #endif //ALIANALYSISTASKEMCALCLUSTERIZEFAST_H