]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG4/CaloCalib/AliAnalysisTaskCaloFilter.h
ec8ce73f742eedeef427ef6dcc17389fbc1cd41b
[u/mrichter/AliRoot.git] / PWG4 / CaloCalib / AliAnalysisTaskCaloFilter.h
1 #ifndef ALIANALYSISTASKCALOFILTER_H
2 #define ALIANALYSISTASKCALOFILTER_H
3
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6
7 /* $Id: AliAnalysisTaskCaloFilter.h  $ */
8
9 //////////////////////////////////////////////////////////
10 // Filter the ESDCaloClusters and ESDCaloCells of EMCAL,
11 // PHOS or both, creating the corresponing AODCaloClusters
12 // and AODCaloCells.
13 // Keep also the AODHeader information and the vertex.
14 // Needed for calorimeter calibration.
15 // Copy of AliAnalysisTaskESDfilter.
16 // Author: Gustavo Conesa Balbastre (INFN - Frascati)
17 //////////////////////////////////////////////////////////
18
19 class TList;
20
21 #include "AliAnalysisTaskSE.h"
22 class AliEMCALRecoUtils;
23 class AliEMCALGeometry;
24 class AliESDtrackCuts;
25
26 class AliAnalysisTaskCaloFilter : public AliAnalysisTaskSE
27 {
28  public:
29   AliAnalysisTaskCaloFilter();
30   AliAnalysisTaskCaloFilter(const char* name);
31   virtual ~AliAnalysisTaskCaloFilter() ;
32   
33 private:
34   AliAnalysisTaskCaloFilter(const AliAnalysisTaskCaloFilter&);
35   AliAnalysisTaskCaloFilter& operator=(const AliAnalysisTaskCaloFilter&);
36   
37 public:
38   virtual void   UserCreateOutputObjects();
39   //virtual void   Init();
40   //virtual void   LocalInit() ;
41   virtual void   UserExec(Option_t *option);
42   virtual void   Terminate(Option_t *option);
43   
44   enum caloFilter {kBoth = 0, kEMCAL = 1, kPHOS=2};
45   void SetCaloFilter(Int_t calo) {fCaloFilter = calo;}
46   TString GetCaloFilter() const  {return fCaloFilter;}
47
48   void SetGeometryName(TString name) { fEMCALGeoName = name ; }
49   TString GeometryName() const       { return fEMCALGeoName ; }
50   
51   void SetEMCALRecoUtils(AliEMCALRecoUtils * ru) {fEMCALRecoUtils = ru;}
52   AliEMCALRecoUtils* GetEMCALRecoUtils() const   {return fEMCALRecoUtils;}
53
54   void SwitchOnClusterCorrection()  {fCorrect = kTRUE ;}
55   void SwitchOffClusterCorrection() {fCorrect = kFALSE;}
56
57   AliESDtrackCuts* GetTrackCuts()          const  { return fESDtrackCuts    ; }
58   void    SetTrackCuts(AliESDtrackCuts * cuts)    { fESDtrackCuts = cuts    ; }           
59   Float_t GetTrackMultiplicityEtaCut()     const  { return fTrackMultEtaCut ; }
60   void    SetTrackMultiplicityEtaCut(Float_t eta) { fTrackMultEtaCut = eta  ; }         
61   
62   
63   void PrintInfo();
64   
65 private:
66   
67   //TList* fCuts ;      //! List with analysis cuts
68   Int_t  fCaloFilter; // Calorimeter to filter
69   Int_t  fCorrect;    // Recalibrate or recalculate different cluster parameters
70   //EMCAL specific
71   AliEMCALGeometry  * fEMCALGeo;       //! EMCAL geometry
72   TString             fEMCALGeoName;   // Name of geometry to use.
73   AliEMCALRecoUtils * fEMCALRecoUtils; // Pointer to EMCAL utilities for clusterization
74
75   AliESDtrackCuts *fESDtrackCuts       ; // Track cut  
76   Float_t          fTrackMultEtaCut    ; // Track multiplicity eta cut
77   
78   
79   ClassDef(AliAnalysisTaskCaloFilter, 3); // Analysis task for standard ESD filtering
80 };
81
82 #endif