]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWG4/CaloCalib/AliAnalysisTaskEMCALClusterize.h
Add possibility to have at least 2 MC labels in the new cluster (Jocelyn)
[u/mrichter/AliRoot.git] / PWG4 / CaloCalib / AliAnalysisTaskEMCALClusterize.h
index 28935707f6f0aef6280833d44f0c85987aeff4be..1e82e0aa34d32a0d5f6b217f6ef441f3e86032f2 100644 (file)
-#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
-class AliEMCALRecoUtils;\r
-\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&); \r
-  AliAnalysisTaskEMCALClusterize& operator=(const AliAnalysisTaskEMCALClusterize&); // not implemented\r
-  \r
- public:\r
-  virtual void   UserCreateOutputObjects();\r
-  virtual void   UserExec(Option_t *option);\r
-  virtual void   Init();\r
-  virtual void   LocalInit()                                    { Init()                       ; }\r
-  Bool_t         AccessOCDB();\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
-  void SetEMCALRecoUtils(AliEMCALRecoUtils * ru)                { fRecoUtils           = ru    ; }\r
-  AliEMCALRecoUtils* GetRecoUtils()                      const  { return fRecoUtils            ; }\r
-  \r
-  void SetConfigFileName(TString name)                          { fConfigName          = name  ; }\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
-  Int_t                  fRun;              //!run number\r
-  \r
-  AliEMCALRecoUtils*     fRecoUtils;        // Access to factorized reconstruction algorithms\r
-  TString                fConfigName;       // Name of analysis configuration file\r
-  \r
-  Int_t                  fCellLabels[12672];// Array with MC label to be passed to digit. \r
-  \r
-  ClassDef(AliAnalysisTaskEMCALClusterize, 4);\r
-};\r
-\r
-#endif //ALIANALYSISTASKEMCALCLUSTERIZE_H\r
+#ifndef ALIANALYSISTASKEMCALCLUSTERIZE_H
+#define ALIANALYSISTASKEMCALCLUSTERIZE_H
+
+// This analysis provides a new list of clusters to be used in other analysis
+// Author: Gustavo Conesa Balbastre,
+//         Adapted from analysis class from Deepa Thomas
+
+//Root
+class TTree;
+class TClonesArray;
+
+//EMCAL
+class AliEMCALGeometry;
+class AliEMCALCalibData;
+class AliCaloCalibPedestal;
+class AliEMCALClusterizer;
+class AliEMCALAfterBurnerUF;
+class AliEMCALRecParam;
+class AliEMCALRecoUtils;
+
+
+#include "AliAnalysisTaskSE.h"
+
+class AliAnalysisTaskEMCALClusterize : public AliAnalysisTaskSE {
+ public:
+  AliAnalysisTaskEMCALClusterize();
+  AliAnalysisTaskEMCALClusterize(const char *name);
+  virtual ~AliAnalysisTaskEMCALClusterize();
+
+ private:  
+  AliAnalysisTaskEMCALClusterize(const AliAnalysisTaskEMCALClusterize&); 
+  AliAnalysisTaskEMCALClusterize& operator=(const AliAnalysisTaskEMCALClusterize&); // not implemented
+  
+ public:
+  virtual void   UserCreateOutputObjects();
+  virtual void   UserExec(Option_t *option);
+  virtual void   Init();
+  virtual void   LocalInit()                                    { Init()                       ; }
+  Bool_t         AccessOCDB();
+
+  void           SetOCDBPath(const char *path)                  { fOCDBpath = path             ; }
+  
+  //Geometry methods
+  void           SetGeometryName(TString &name)                 { fGeomName = name             ; }
+  TString        GeometryName()                          const  { return fGeomName             ; }  
+  void           SwitchOnLoadOwnGeometryMatrices()              { fLoadGeomMatrices = kTRUE    ; }
+  void           SwitchOffLoadOwnGeometryMatrices()             { fLoadGeomMatrices = kFALSE   ; } 
+  void           SetGeometryMatrixInSM(TGeoHMatrix* m, Int_t i) { fGeomMatrix[i]    = m        ; }
+
+  //AOD methods
+  void           SetAODBranchName(TString &name)                { fOutputAODBranchName = name  ; }
+  void           FillAODFile(Bool_t yesno)                      { fFillAODFile         = yesno ; }
+  
+  //Algorithms settings
+  void           JustUnfold(Bool_t yesno)                       { fJustUnfold          = yesno ; }
+  AliEMCALRecParam * GetRecParam()                       const  { return fRecParam             ; }
+  void           InitClusterization();
+  
+  void SetEMCALRecoUtils(AliEMCALRecoUtils * ru)                { fRecoUtils           = ru    ; }
+  AliEMCALRecoUtils* GetRecoUtils()                      const  { return fRecoUtils            ; }
+  
+  void SetConfigFileName(TString name)                          { fConfigName          = name  ; }
+  
+ private:
+    
+  virtual void  RecPoints2Clusters(TClonesArray *fdigitsArr, TObjArray *fRecPoints, TObjArray *clusArray);
+  
+  //Geometry  
+  AliEMCALGeometry      *fGeom;             // EMCAL geometry
+  TString                fGeomName;         // Name of geometry to use.
+  TGeoHMatrix           *fGeomMatrix[10];   // Geometry matrices with alignments
+  Bool_t                 fGeomMatrixSet;    // Set geometry matrices only once, for the first event.         
+  Bool_t                 fLoadGeomMatrices; // Matrices set from configuration, not get from geometry.root or from ESDs/AODs
+
+  //OCDB
+  AliEMCALCalibData     *fCalibData;        // EMCAL calib data
+  AliCaloCalibPedestal  *fPedestalData;     // EMCAL pedestal
+  TString                fOCDBpath;         // Path with OCDB location
+
+  //Temporal arrays
+  TClonesArray          *fDigitsArr;        //-> Digits array
+  TObjArray             *fClusterArr;       //-> Recpoints array
+  TObjArray             *fCaloClusterArr;   //-> CaloClusters array
+
+  //Clusterizers 
+  AliEMCALRecParam      *fRecParam;         // Reconstruction parameters container
+  AliEMCALClusterizer   *fClusterizer;      //! EMCAL clusterizer
+  AliEMCALAfterBurnerUF *fUnfolder;         //! Unfolding procedure
+  Bool_t                 fJustUnfold;       // Just unfold, do not recluster
+  
+  //AOD
+  TClonesArray          *fOutputAODBranch;  //! AOD Branch with output clusters  
+  TString                fOutputAODBranchName;  // New of output AOD branch
+  Bool_t                 fFillAODFile;      // Fill the output AOD file with the new clusters, 
+                                            // if not they will be only available for the event they were generated
+  Int_t                  fRun;              //!run number
+  
+  AliEMCALRecoUtils*     fRecoUtils;        // Access to factorized reconstruction algorithms
+  TString                fConfigName;       // Name of analysis configuration file
+  
+  Int_t                  fCellLabels[12672];       // Array with MC label to be passed to digit. 
+  Int_t                  fCellSecondLabels[12672]; // Array with Second MC label to be passed to digit. 
+  
+  ClassDef(AliAnalysisTaskEMCALClusterize, 5);
+};
+
+#endif //ALIANALYSISTASKEMCALCLUSTERIZE_H