new task for reclusterization in EMCAL
authorgconesab <gconesab@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 5 Jan 2011 14:06:12 +0000 (14:06 +0000)
committergconesab <gconesab@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 5 Jan 2011 14:06:12 +0000 (14:06 +0000)
PWG4/CaloCalib/AliAnalysisTaskEMCALClusterize.h [new file with mode: 0644]

diff --git a/PWG4/CaloCalib/AliAnalysisTaskEMCALClusterize.h b/PWG4/CaloCalib/AliAnalysisTaskEMCALClusterize.h
new file mode 100644 (file)
index 0000000..b620bfc
--- /dev/null
@@ -0,0 +1,91 @@
+#ifndef ALIANALYSISTASKEMCALCLUSTERIZE_H\r
+#define ALIANALYSISTASKEMCALCLUSTERIZE_H\r
+\r
+// This analysis provides a new list of clusters to be used in other analysis\r
+// Author: Gustavo Conesa Balbastre,\r
+//         Adapted from analysis class from Deepa Thomas\r
+\r
+//Root\r
+class TTree;\r
+class TClonesArray;\r
+\r
+//EMCAL\r
+class AliEMCALGeometry;\r
+class AliEMCALCalibData;\r
+class AliCaloCalibPedestal;\r
+class AliEMCALClusterizer;\r
+class AliEMCALAfterBurnerUF;\r
+class AliEMCALRecParam;\r
+\r
+#include "AliAnalysisTaskSE.h"\r
+\r
+class AliAnalysisTaskEMCALClusterize : public AliAnalysisTaskSE {\r
+ public:\r
+  AliAnalysisTaskEMCALClusterize();\r
+  AliAnalysisTaskEMCALClusterize(const char *name);\r
+  virtual ~AliAnalysisTaskEMCALClusterize();\r
+  \r
+ private:\r
+  AliAnalysisTaskEMCALClusterize(const AliAnalysisTaskEMCALClusterize&); // not implemented\r
+  AliAnalysisTaskEMCALClusterize& operator=(const AliAnalysisTaskEMCALClusterize&); // not implemented\r
+  \r
+ public:\r
+  virtual void   UserCreateOutputObjects();\r
+  virtual void   UserExec(Option_t *option);\r
+  virtual Bool_t UserNotify();\r
+\r
+  void           SetOCDBPath(const char *path)                  { fOCDBpath = path             ; }\r
+  \r
+  //Geometry methods\r
+  void           SetGeometryName(TString &name)                 { fGeomName = name             ; }\r
+  TString        GeometryName() const                           { return fGeomName             ; }  \r
+  void           SwitchOnLoadOwnGeometryMatrices()              { fLoadGeomMatrices = kTRUE    ; }\r
+  void           SwitchOffLoadOwnGeometryMatrices()             { fLoadGeomMatrices = kFALSE   ; }\r
+  void           SetGeometryMatrixInSM(TGeoHMatrix* m, Int_t i) { fGeomMatrix[i]    = m        ; }\r
+\r
+  //AOD methods\r
+  void           SetAODBranchName(TString &name)                { fOutputAODBranchName = name  ; }\r
+  void           FillAODFile(Bool_t yesno)                      { fFillAODFile         = yesno ; }\r
+  \r
+  //Algorithms settings\r
+  void           JustUnfold(Bool_t yesno)                       { fJustUnfold          = yesno ; }\r
+  AliEMCALRecParam * GetRecParam()    const                     { return fRecParam             ; }\r
+  void           InitClusterization();\r
+  \r
+ private:\r
+    \r
+  virtual void  RecPoints2Clusters(TClonesArray *fdigitsArr, TObjArray *fRecPoints, TObjArray *clusArray);\r
+  \r
+  //Geometry  \r
+  AliEMCALGeometry      *fGeom;             //! emcal geometry\r
+  TString                fGeomName;         // Name of geometry to use.\r
+  TGeoHMatrix           *fGeomMatrix[10];   //! Geometry matrices with alignments\r
+  Bool_t                 fGeomMatrixSet;    // Set geometry matrices only once, for the first event.         \r
+  Bool_t                 fLoadGeomMatrices; // Matrices set from configuration, not get from geometry.root or from ESDs/AODs\r
+\r
+  //OCDB\r
+  AliEMCALCalibData     *fCalibData;        //! emcal calib data\r
+  AliCaloCalibPedestal  *fPedestalData;     //! emcal pedestal\r
+  TString                fOCDBpath;         // Path with OCDB location\r
+\r
+  //Temporal arrays\r
+  TClonesArray          *fDigitsArr;        //-> digits array\r
+  TObjArray             *fClusterArr;       //! recpoints array\r
+  TObjArray             *fCaloClusterArr;   //! CaloClusters array\r
+\r
+  //Clusterizers \r
+  AliEMCALRecParam      *fRecParam;         //! reconstruction parameters container\r
+  AliEMCALClusterizer   *fClusterizer;      //! emcal clusterizer\r
+  AliEMCALAfterBurnerUF *fUnfolder;         //! unfolding procedure\r
+  Bool_t                 fJustUnfold;       // Just unfold, do not recluster\r
+  \r
+  //AOD\r
+  TClonesArray          *fOutputAODBranch;  //-> AOD Branch with output clusters  \r
+  TString                fOutputAODBranchName;  // New of output AOD branch\r
+  Bool_t                 fFillAODFile;      // Fill the output AOD file with the new clusters, \r
+                                            // if not they will be only available for the event they were generated\r
+\r
+  ClassDef(AliAnalysisTaskEMCALClusterize, 1);\r
+};\r
+\r
+#endif //ALIANALYSISTASKEMCALCLUSTERIZE_H\r