1 #ifndef ALIANALYSISTASKCALOFILTER_H
2 #define ALIANALYSISTASKCALOFILTER_H
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
7 /* $Id: AliAnalysisTaskCaloFilter.h $ */
9 //////////////////////////////////////////////////////////
10 // Filter the ESDCaloClusters and ESDCaloCells of EMCAL,
11 // PHOS or both, creating the corresponing AODCaloClusters
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 //////////////////////////////////////////////////////////
21 #include "AliAnalysisTaskSE.h"
22 class AliEMCALRecoUtils;
23 class AliEMCALGeometry;
24 class AliESDtrackCuts;
25 class AliTriggerAnalysis;
27 class AliAnalysisTaskCaloFilter : public AliAnalysisTaskSE
30 AliAnalysisTaskCaloFilter();
31 AliAnalysisTaskCaloFilter(const char* name);
32 virtual ~AliAnalysisTaskCaloFilter() ;
35 AliAnalysisTaskCaloFilter(const AliAnalysisTaskCaloFilter&);
36 AliAnalysisTaskCaloFilter& operator=(const AliAnalysisTaskCaloFilter&);
39 //General analysis frame methods
40 virtual void UserCreateOutputObjects();
42 virtual void LocalInit() { Init() ; }
43 virtual void UserExec(Option_t *option);
44 virtual void Terminate(Option_t *option);
47 void SetEMCALGeometryName(TString name) { fEMCALGeoName = name ; }
48 TString EMCALGeometryName() const { return fEMCALGeoName ; }
49 void SwitchOnLoadOwnEMCALGeometryMatrices() { fLoadEMCALMatrices = kTRUE ; }
50 void SwitchOffLoadOwnEMCALGeometryMatrices() { fLoadEMCALMatrices = kFALSE ; }
51 void SetEMCALGeometryMatrixInSM(TGeoHMatrix* m, Int_t i) { fEMCALMatrix[i] = m ; }
52 //void SwitchOnLoadOwnPHOSGeometryMatrices() { fLoadPHOSMatrices = kTRUE ; }
53 //void SwitchOffLoadOwnPHOSGeometryMatrices() { fLoadPHOSMatrices = kFALSE ; }
54 //void SetPHOSGeometryMatrixInSM(TGeoHMatrix* m, Int_t i) { fPHOSMatrix[i] = m ; }
57 void FillAODFile(Bool_t yesno) { fFillAODFile = yesno ; }
58 enum caloFilter {kBoth = 0, kEMCAL = 1, kPHOS=2};
59 void SetCaloFilter(Int_t calo) { fCaloFilter = calo ; }
60 TString GetCaloFilter() const { return fCaloFilter ; }
62 void SetEMCALRecoUtils(AliEMCALRecoUtils * ru) { fEMCALRecoUtils = ru ; }
63 AliEMCALRecoUtils* GetEMCALRecoUtils() const { return fEMCALRecoUtils ; }
65 void SwitchOnClusterCorrection() { fCorrect = kTRUE ; }
66 void SwitchOffClusterCorrection() { fCorrect = kFALSE ; }
69 AliESDtrackCuts* GetTrackCuts() const { return fESDtrackCuts ; }
70 void SetTrackCuts(AliESDtrackCuts * cuts) { fESDtrackCuts = cuts ; }
71 Float_t GetTrackMultiplicityEtaCut() const { return fTrackMultEtaCut ; }
72 void SetTrackMultiplicityEtaCut(Float_t eta) { fTrackMultEtaCut = eta ; }
73 virtual Bool_t CheckForPrimaryVertex();
77 void SetConfigFileName(TString name) { fConfigName = name ; }
81 //TList* fCuts ; //! List with analysis cuts
82 Int_t fCaloFilter; // Calorimeter to filter
83 Int_t fCorrect; // Recalibrate or recalculate different cluster parameters
85 AliEMCALGeometry * fEMCALGeo; //! EMCAL geometry
86 TString fEMCALGeoName; // Name of geometry to use.
87 AliEMCALRecoUtils * fEMCALRecoUtils; // Pointer to EMCAL utilities for clusterization
89 AliESDtrackCuts * fESDtrackCuts; // Track cut
90 AliTriggerAnalysis* fTriggerAnalysis; // Access to trigger selection algorithm for V0AND calculation
91 Float_t fTrackMultEtaCut; // Track multiplicity eta cut
94 Bool_t fLoadEMCALMatrices; // Matrices set from configuration, not get from geometry.root or from ESDs/AODs
95 TGeoHMatrix * fEMCALMatrix[10]; // Geometry matrices with alignments
96 //Bool_t fLoadPHOSMatrices; // Matrices set from configuration, not get from geometry.root or from ESDs/AODs
97 //TGeoHMatrix * fPHOSMatrix[5]; // Geometry matrices with alignments
98 Bool_t fGeoMatrixSet; // Set geometry matrices only once, for the first event.
100 TNtuple * fEventNtuple; // NTuple with event parameters
102 TString fConfigName; // Name of analysis configuration file
103 Bool_t fFillAODFile; // Fill the output AOD file with clusters
105 ClassDef(AliAnalysisTaskCaloFilter, 6); // Analysis task for standard ESD filtering