Include time dependent corrections in cluster energy recalculation, move time depende...
[u/mrichter/AliRoot.git] / PWG4 / CaloCalib / AliAnalysisTaskCaloFilter.h
CommitLineData
7a4cf423 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
247abff4 19class TList;
20
7a4cf423 21#include "AliAnalysisTaskSE.h"
247abff4 22class AliEMCALRecoUtils;
23class AliEMCALGeometry;
3a58eee6 24class AliESDtrackCuts;
7a4cf423 25
26class AliAnalysisTaskCaloFilter : public AliAnalysisTaskSE
27{
28 public:
29 AliAnalysisTaskCaloFilter();
30 AliAnalysisTaskCaloFilter(const char* name);
247abff4 31 virtual ~AliAnalysisTaskCaloFilter() ;
7a4cf423 32
247abff4 33private:
34 AliAnalysisTaskCaloFilter(const AliAnalysisTaskCaloFilter&);
35 AliAnalysisTaskCaloFilter& operator=(const AliAnalysisTaskCaloFilter&);
36
37public:
7a4cf423 38 virtual void UserCreateOutputObjects();
247abff4 39 //virtual void Init();
40 //virtual void LocalInit() ;
7a4cf423 41 virtual void UserExec(Option_t *option);
42 virtual void Terminate(Option_t *option);
43
247abff4 44 enum caloFilter {kBoth = 0, kEMCAL = 1, kPHOS=2};
45 void SetCaloFilter(Int_t calo) {fCaloFilter = calo;}
46 TString GetCaloFilter() const {return fCaloFilter;}
7a4cf423 47
3b13c34c 48 void SetEMCALGeometryName(TString name) { fEMCALGeoName = name ; }
49 TString EMCALGeometryName() const { return fEMCALGeoName ; }
50
51 void SwitchOnLoadOwnEMCALGeometryMatrices() { fLoadEMCALMatrices = kTRUE ; }
52 void SwitchOffLoadOwnEMCALGeometryMatrices() { fLoadEMCALMatrices = kFALSE ; }
53 void SetEMCALGeometryMatrixInSM(TGeoHMatrix* m, Int_t i) { fEMCALMatrix[i] = m ; }
54
55 //void SwitchOnLoadOwnPHOSGeometryMatrices() { fLoadPHOSMatrices = kTRUE ; }
56 //void SwitchOffLoadOwnPHOSGeometryMatrices() { fLoadPHOSMatrices = kFALSE ; }
57 //void SetPHOSGeometryMatrixInSM(TGeoHMatrix* m, Int_t i) { fPHOSMatrix[i] = m ; }
7a4cf423 58
247abff4 59 void SetEMCALRecoUtils(AliEMCALRecoUtils * ru) {fEMCALRecoUtils = ru;}
60 AliEMCALRecoUtils* GetEMCALRecoUtils() const {return fEMCALRecoUtils;}
61
62 void SwitchOnClusterCorrection() {fCorrect = kTRUE ;}
63 void SwitchOffClusterCorrection() {fCorrect = kFALSE;}
64
3a58eee6 65 AliESDtrackCuts* GetTrackCuts() const { return fESDtrackCuts ; }
66 void SetTrackCuts(AliESDtrackCuts * cuts) { fESDtrackCuts = cuts ; }
67 Float_t GetTrackMultiplicityEtaCut() const { return fTrackMultEtaCut ; }
68 void SetTrackMultiplicityEtaCut(Float_t eta) { fTrackMultEtaCut = eta ; }
69
5ef94e1b 70 void PrintInfo();
71
247abff4 72private:
7a4cf423 73
247abff4 74 //TList* fCuts ; //! List with analysis cuts
75 Int_t fCaloFilter; // Calorimeter to filter
76 Int_t fCorrect; // Recalibrate or recalculate different cluster parameters
77 //EMCAL specific
78 AliEMCALGeometry * fEMCALGeo; //! EMCAL geometry
79 TString fEMCALGeoName; // Name of geometry to use.
80 AliEMCALRecoUtils * fEMCALRecoUtils; // Pointer to EMCAL utilities for clusterization
81
3a58eee6 82 AliESDtrackCuts *fESDtrackCuts ; // Track cut
83 Float_t fTrackMultEtaCut ; // Track multiplicity eta cut
84
3b13c34c 85 Bool_t fLoadEMCALMatrices; // Matrices set from configuration, not get from geometry.root or from ESDs/AODs
86 TGeoHMatrix * fEMCALMatrix[10]; // Geometry matrices with alignments
87 //Bool_t fLoadPHOSMatrices; // Matrices set from configuration, not get from geometry.root or from ESDs/AODs
88 //TGeoHMatrix * fPHOSMatrix[5]; // Geometry matrices with alignments
89 Bool_t fGeoMatrixSet; // Set geometry matrices only once, for the first event.
3a58eee6 90
3b13c34c 91 ClassDef(AliAnalysisTaskCaloFilter, 4); // Analysis task for standard ESD filtering
7a4cf423 92};
93
94#endif