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
20 #include "AliAnalysisTaskSE.h"
\r
22 class AliAnalysisTaskEMCALClusterize : public AliAnalysisTaskSE {
\r
24 AliAnalysisTaskEMCALClusterize();
\r
25 AliAnalysisTaskEMCALClusterize(const char *name);
\r
26 virtual ~AliAnalysisTaskEMCALClusterize();
\r
29 AliAnalysisTaskEMCALClusterize(const AliAnalysisTaskEMCALClusterize&); // not implemented
\r
30 AliAnalysisTaskEMCALClusterize& operator=(const AliAnalysisTaskEMCALClusterize&); // not implemented
\r
33 virtual void UserCreateOutputObjects();
\r
34 virtual void UserExec(Option_t *option);
\r
35 Bool_t AccessOCDB();
\r
37 void SetOCDBPath(const char *path) { fOCDBpath = path ; }
\r
40 void SetGeometryName(TString &name) { fGeomName = name ; }
\r
41 TString GeometryName() const { return fGeomName ; }
\r
42 void SwitchOnLoadOwnGeometryMatrices() { fLoadGeomMatrices = kTRUE ; }
\r
43 void SwitchOffLoadOwnGeometryMatrices() { fLoadGeomMatrices = kFALSE ; }
\r
44 void SetGeometryMatrixInSM(TGeoHMatrix* m, Int_t i) { fGeomMatrix[i] = m ; }
\r
47 void SetAODBranchName(TString &name) { fOutputAODBranchName = name ; }
\r
48 void FillAODFile(Bool_t yesno) { fFillAODFile = yesno ; }
\r
50 //Algorithms settings
\r
51 void JustUnfold(Bool_t yesno) { fJustUnfold = yesno ; }
\r
52 AliEMCALRecParam * GetRecParam() const { return fRecParam ; }
\r
53 void InitClusterization();
\r
57 virtual void RecPoints2Clusters(TClonesArray *fdigitsArr, TObjArray *fRecPoints, TObjArray *clusArray);
\r
60 AliEMCALGeometry *fGeom; // EMCAL geometry
\r
61 TString fGeomName; // Name of geometry to use.
\r
62 TGeoHMatrix *fGeomMatrix[10]; // Geometry matrices with alignments
\r
63 Bool_t fGeomMatrixSet; // Set geometry matrices only once, for the first event.
\r
64 Bool_t fLoadGeomMatrices; // Matrices set from configuration, not get from geometry.root or from ESDs/AODs
\r
67 AliEMCALCalibData *fCalibData; // EMCAL calib data
\r
68 AliCaloCalibPedestal *fPedestalData; // EMCAL pedestal
\r
69 TString fOCDBpath; // Path with OCDB location
\r
72 TClonesArray *fDigitsArr; //-> Digits array
\r
73 TObjArray *fClusterArr; //-> Recpoints array
\r
74 TObjArray *fCaloClusterArr; //-> CaloClusters array
\r
77 AliEMCALRecParam *fRecParam; // Reconstruction parameters container
\r
78 AliEMCALClusterizer *fClusterizer; //! EMCAL clusterizer
\r
79 AliEMCALAfterBurnerUF *fUnfolder; //! Unfolding procedure
\r
80 Bool_t fJustUnfold; // Just unfold, do not recluster
\r
83 TClonesArray *fOutputAODBranch; //! AOD Branch with output clusters
\r
84 TString fOutputAODBranchName; // New of output AOD branch
\r
85 Bool_t fFillAODFile; // Fill the output AOD file with the new clusters,
\r
86 // if not they will be only available for the event they were generated
\r
87 Int_t fRun; //!run number
\r
88 ClassDef(AliAnalysisTaskEMCALClusterize, 1);
\r
91 #endif //ALIANALYSISTASKEMCALCLUSTERIZE_H
\r