]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG4/CaloCalib/AliAnalysisTaskEMCALPi0CalibSelection.h
12b4e4332194cbac6e31c081efdf2b5572ee94f4
[u/mrichter/AliRoot.git] / PWG4 / CaloCalib / AliAnalysisTaskEMCALPi0CalibSelection.h
1 #ifndef ALIANALYSISTASKEMCALPI0CALIBSELECTION_H
2 #define ALIANALYSISTASKEMCALPI0CALIBSELECTION_H
3
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6
7 //---------------------------------------------------------------------------// 
8 // Fill histograms with two-cluster invariant mass                           //
9 // using calibration coefficients of the previous iteration.                 //
10 //---------------------------------------------------------------------------//
11
12 // Root includes
13 class TH1F;
14
15 // AliRoot includes
16 #include "AliAnalysisTaskSE.h"
17 class AliEMCALGeometry;
18 class AliAODCaloCluster;
19 class AliAODCaloCells;
20 class AliEMCALCalibData ;
21 #include "AliEMCALGeoParams.h"
22
23 class AliAnalysisTaskEMCALPi0CalibSelection : public AliAnalysisTaskSE
24 {
25 public:
26
27   AliAnalysisTaskEMCALPi0CalibSelection();
28   AliAnalysisTaskEMCALPi0CalibSelection(const char* name);
29   AliAnalysisTaskEMCALPi0CalibSelection(const AliAnalysisTaskEMCALPi0CalibSelection&); 
30   AliAnalysisTaskEMCALPi0CalibSelection& operator=(const AliAnalysisTaskEMCALPi0CalibSelection&); 
31   virtual ~AliAnalysisTaskEMCALPi0CalibSelection();
32
33   // Implementation of interface methods
34   virtual void UserCreateOutputObjects();
35   virtual void UserExec(Option_t * opt);
36   
37   void SetClusterMinEnergy(Float_t emin) {fEmin=emin;}
38   void SetLogWeight(Float_t weight) {fLogWeight=weight;}
39   void SetCalibCorrections(AliEMCALCalibData* const cdata);
40   void CreateAODFromESD();
41   void CreateAODFromAOD();      
42
43   void CopyAOD(Bool_t copy)   { fCopyAOD = copy ; }
44   Bool_t IsAODCopied() const { return fCopyAOD ; }
45         
46   void SetGeometryName(TString name)   { fEMCALGeoName = name ; }
47   TString GeometryName() const { return fEMCALGeoName ; }
48
49   void SetOldData(Bool_t bData) {fOldData = bData;} 
50   Bool_t IsOldData() const {return fOldData;}   
51         
52 private:
53
54   void MaxEnergyCellPos(AliAODCaloCells* const cells, AliAODCaloCluster* const clu, Int_t& maxId);
55
56 private:
57
58   AliEMCALGeometry * fEMCALGeo;   // EMCAL geometry
59   AliEMCALCalibData* fCalibData; // corrections to CC from the previous iteration
60         
61   Float_t fEmin;          // min. cluster energy
62   Float_t fLogWeight;     // log weight used in cluster recalibration
63   Bool_t  fCopyAOD;       // Copy calo information only to AOD?
64   TString fEMCALGeoName;  // Name of geometry to use.
65   Bool_t  fOldData ;      // calibrate digit amplitude, since not done in old ESDs
66                          
67   //Output histograms   
68   TList*  fOutputContainer; //histogram container
69   TH1F*   fHmpi0[AliEMCALGeoParams::fgkEMCALModules][AliEMCALGeoParams::fgkEMCALCols][AliEMCALGeoParams::fgkEMCALRows];// two-cluster inv. mass assigned to each cell.
70   TH1F*   fHmgg;          // two-cluster inv.mass
71
72   ClassDef(AliAnalysisTaskEMCALPi0CalibSelection,1);
73
74 };
75
76 #endif //ALIANALYSISTASKEMCALPI0CALIBSELECTION_H