]>
Commit | Line | Data |
---|---|---|
1 | #ifndef ALIANALYSISTASKEMCALCLUSTERIZE_H\r | |
2 | #define ALIANALYSISTASKEMCALCLUSTERIZE_H\r | |
3 | \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 | |
7 | \r | |
8 | //Root\r | |
9 | class TTree;\r | |
10 | class TClonesArray;\r | |
11 | \r | |
12 | //EMCAL\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 | |
20 | \r | |
21 | \r | |
22 | #include "AliAnalysisTaskSE.h"\r | |
23 | \r | |
24 | class AliAnalysisTaskEMCALClusterize : public AliAnalysisTaskSE {\r | |
25 | public:\r | |
26 | AliAnalysisTaskEMCALClusterize();\r | |
27 | AliAnalysisTaskEMCALClusterize(const char *name);\r | |
28 | virtual ~AliAnalysisTaskEMCALClusterize();\r | |
29 | \r | |
30 | private: \r | |
31 | AliAnalysisTaskEMCALClusterize(const AliAnalysisTaskEMCALClusterize&); \r | |
32 | AliAnalysisTaskEMCALClusterize& operator=(const AliAnalysisTaskEMCALClusterize&); // not implemented\r | |
33 | \r | |
34 | public:\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 | |
40 | \r | |
41 | void SetOCDBPath(const char *path) { fOCDBpath = path ; }\r | |
42 | \r | |
43 | //Geometry methods\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 | |
49 | \r | |
50 | //AOD methods\r | |
51 | void SetAODBranchName(TString &name) { fOutputAODBranchName = name ; }\r | |
52 | void FillAODFile(Bool_t yesno) { fFillAODFile = yesno ; }\r | |
53 | \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 | |
58 | \r | |
59 | void SetEMCALRecoUtils(AliEMCALRecoUtils * ru) { fRecoUtils = ru ; }\r | |
60 | AliEMCALRecoUtils* GetRecoUtils() const { return fRecoUtils ; }\r | |
61 | \r | |
62 | void SetConfigFileName(TString name) { fConfigName = name ; }\r | |
63 | \r | |
64 | private:\r | |
65 | \r | |
66 | virtual void RecPoints2Clusters(TClonesArray *fdigitsArr, TObjArray *fRecPoints, TObjArray *clusArray);\r | |
67 | \r | |
68 | //Geometry \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 | |
74 | \r | |
75 | //OCDB\r | |
76 | AliEMCALCalibData *fCalibData; // EMCAL calib data\r | |
77 | AliCaloCalibPedestal *fPedestalData; // EMCAL pedestal\r | |
78 | TString fOCDBpath; // Path with OCDB location\r | |
79 | \r | |
80 | //Temporal arrays\r | |
81 | TClonesArray *fDigitsArr; //-> Digits array\r | |
82 | TObjArray *fClusterArr; //-> Recpoints array\r | |
83 | TObjArray *fCaloClusterArr; //-> CaloClusters array\r | |
84 | \r | |
85 | //Clusterizers \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 | |
90 | \r | |
91 | //AOD\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 | |
97 | \r | |
98 | AliEMCALRecoUtils* fRecoUtils; // Access to factorized reconstruction algorithms\r | |
99 | TString fConfigName; // Name of analysis configuration file\r | |
100 | \r | |
101 | ClassDef(AliAnalysisTaskEMCALClusterize, 3);\r | |
102 | };\r | |
103 | \r | |
104 | #endif //ALIANALYSISTASKEMCALCLUSTERIZE_H\r |