1 #ifndef ALIANALYSISTASKEMCALCLUSTERIZE_H
\r
2 #define ALIANALYSISTASKEMCALCLUSTERIZE_H
\r
4 // This analysis provides a new list of clusters to be used in other analysis
\r
5 // Author: Gustavo Conesa Balbastre,
\r
6 // Adapted from analysis class from Deepa Thomas
\r
13 class AliEMCALGeometry;
\r
14 class AliEMCALCalibData;
\r
15 class AliCaloCalibPedestal;
\r
16 class AliEMCALClusterizer;
\r
17 class AliEMCALAfterBurnerUF;
\r
18 class AliEMCALRecParam;
\r
19 class AliEMCALRecoUtils;
\r
22 #include "AliAnalysisTaskSE.h"
\r
24 class AliAnalysisTaskEMCALClusterize : public AliAnalysisTaskSE {
\r
26 AliAnalysisTaskEMCALClusterize();
\r
27 AliAnalysisTaskEMCALClusterize(const char *name);
\r
28 virtual ~AliAnalysisTaskEMCALClusterize();
\r
31 AliAnalysisTaskEMCALClusterize(const AliAnalysisTaskEMCALClusterize&);
\r
32 AliAnalysisTaskEMCALClusterize& operator=(const AliAnalysisTaskEMCALClusterize&); // not implemented
\r
35 virtual void UserCreateOutputObjects();
\r
36 virtual void UserExec(Option_t *option);
\r
37 virtual void Init();
\r
38 virtual void LocalInit() { Init() ; }
\r
39 Bool_t AccessOCDB();
\r
41 void SetOCDBPath(const char *path) { fOCDBpath = path ; }
\r
44 void SetGeometryName(TString &name) { fGeomName = name ; }
\r
45 TString GeometryName() const { return fGeomName ; }
\r
46 void SwitchOnLoadOwnGeometryMatrices() { fLoadGeomMatrices = kTRUE ; }
\r
47 void SwitchOffLoadOwnGeometryMatrices() { fLoadGeomMatrices = kFALSE ; }
\r
48 void SetGeometryMatrixInSM(TGeoHMatrix* m, Int_t i) { fGeomMatrix[i] = m ; }
\r
51 void SetAODBranchName(TString &name) { fOutputAODBranchName = name ; }
\r
52 void FillAODFile(Bool_t yesno) { fFillAODFile = yesno ; }
\r
54 //Algorithms settings
\r
55 void JustUnfold(Bool_t yesno) { fJustUnfold = yesno ; }
\r
56 AliEMCALRecParam * GetRecParam() const { return fRecParam ; }
\r
57 void InitClusterization();
\r
59 void SetEMCALRecoUtils(AliEMCALRecoUtils * ru) { fRecoUtils = ru ; }
\r
60 AliEMCALRecoUtils* GetRecoUtils() const { return fRecoUtils ; }
\r
62 void SetConfigFileName(TString name) { fConfigName = name ; }
\r
66 virtual void RecPoints2Clusters(TClonesArray *fdigitsArr, TObjArray *fRecPoints, TObjArray *clusArray);
\r
69 AliEMCALGeometry *fGeom; // EMCAL geometry
\r
70 TString fGeomName; // Name of geometry to use.
\r
71 TGeoHMatrix *fGeomMatrix[10]; // Geometry matrices with alignments
\r
72 Bool_t fGeomMatrixSet; // Set geometry matrices only once, for the first event.
\r
73 Bool_t fLoadGeomMatrices; // Matrices set from configuration, not get from geometry.root or from ESDs/AODs
\r
76 AliEMCALCalibData *fCalibData; // EMCAL calib data
\r
77 AliCaloCalibPedestal *fPedestalData; // EMCAL pedestal
\r
78 TString fOCDBpath; // Path with OCDB location
\r
81 TClonesArray *fDigitsArr; //-> Digits array
\r
82 TObjArray *fClusterArr; //-> Recpoints array
\r
83 TObjArray *fCaloClusterArr; //-> CaloClusters array
\r
86 AliEMCALRecParam *fRecParam; // Reconstruction parameters container
\r
87 AliEMCALClusterizer *fClusterizer; //! EMCAL clusterizer
\r
88 AliEMCALAfterBurnerUF *fUnfolder; //! Unfolding procedure
\r
89 Bool_t fJustUnfold; // Just unfold, do not recluster
\r
92 TClonesArray *fOutputAODBranch; //! AOD Branch with output clusters
\r
93 TString fOutputAODBranchName; // New of output AOD branch
\r
94 Bool_t fFillAODFile; // Fill the output AOD file with the new clusters,
\r
95 // if not they will be only available for the event they were generated
\r
96 Int_t fRun; //!run number
\r
98 AliEMCALRecoUtils* fRecoUtils; // Access to factorized reconstruction algorithms
\r
99 TString fConfigName; // Name of analysis configuration file
\r
101 ClassDef(AliAnalysisTaskEMCALClusterize, 3);
\r
104 #endif //ALIANALYSISTASKEMCALCLUSTERIZE_H
\r