]> git.uio.no Git - u/mrichter/AliRoot.git/blob - JETAN/AliJetFillUnitArray.h
Updates for background calculation. (Elena Bruna)
[u/mrichter/AliRoot.git] / JETAN / AliJetFillUnitArray.h
1 #ifndef ALIJETFILLUNITARRAY_H
2 #define ALIJETFILLUNITARRAY_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 // Base class used to fill Unit Array 
9 // Called by ESD Reader for jet analysis
10 // Author: Magali Estienne (magali.estienne@subatech.in2p3.fr)
11 //---------------------------------------------------------------------
12
13 //#include <Riostream.h>
14 #include <TMath.h>
15 #include <TTask.h>
16
17 #include <TArrayD.h>
18 #include <TRefArray.h>
19 #include <TClonesArray.h>
20
21 #include "AliJetReaderHeader.h"
22 #include "AliJetAODReaderHeader.h"
23 #include "AliJetDummyGeo.h"
24 #include "AliJetGrid.h"
25 #include "AliESDEvent.h"
26 #include "AliAODEvent.h"
27 #include "AliJetHadronCorrection.h"
28
29 class Riostream;
30
31 class AliEMCALGeometry;
32 class AliJetReader;
33 class AliJetESDReader;
34
35 class AliJetFillUnitArray : public TTask
36 {
37  public: 
38   AliJetFillUnitArray();
39   virtual ~AliJetFillUnitArray();
40   AliJetFillUnitArray(const AliJetFillUnitArray &det);
41   AliJetFillUnitArray &operator=(const AliJetFillUnitArray &det);
42   
43   // Setter
44   virtual void SetReaderHeader(AliJetReaderHeader* const readerHeader) {fReaderHeader = readerHeader;}
45   virtual void SetGeom(AliJetDummyGeo* const geom)                     {fGeom = geom;}
46   virtual void SetMomentumArray(TClonesArray* const momentumArray)     {fMomentumArray = momentumArray;}
47   virtual void SetUnitArray(TClonesArray* const unitArray)             {fUnitArray = unitArray;}
48   virtual void SetRefArray(TRefArray* const refArray)                  {fRefArray = refArray;}
49   virtual void SetTPCGrid(AliJetGrid* const grid)                      {fTPCGrid = grid;}
50   virtual void SetEMCalGrid(AliJetGrid* const grid)                    {fEMCalGrid = grid;}
51   virtual void SetProcId(Bool_t id)                              {fProcId = id;}
52   virtual void SetGrid0(AliJetGrid */*grid0*/)                    {;}
53   virtual void SetGrid1(AliJetGrid */*grid1*/)                    {;}
54   virtual void SetGrid2(AliJetGrid */*grid2*/)                    {;}
55   virtual void SetGrid3(AliJetGrid */*grid3*/)                    {;}
56   virtual void SetGrid4(AliJetGrid */*grid4*/)                    {;}
57   virtual void SetHadCorrector(AliJetHadronCorrection* /*corr*/)  {;}
58   virtual void SetApplyMIPCorrection(Bool_t /*val*/)              {;}
59   virtual void SetESD(AliESDEvent */*esd*/)                       {;}
60   virtual void SetAOD(AliAODEvent */*aod*/)                       {;}
61   virtual void SetApplyElectronCorrection(Int_t /*flag*/)         {;}
62   virtual void SetApplyFractionHadronicCorrection(Bool_t /*val*/) {;}
63   virtual void SetFractionHadronicCorrection(Double_t /*val*/)    {;}
64   virtual void SetInitMult(Int_t /*mult*/)                        {;}
65   virtual void SetInitMultCut(Int_t /*multcut*/)                  {;}
66
67   // Getter
68   virtual TClonesArray* GetUnitArray() const {return fUnitArray;}
69   virtual TRefArray*    GetRefArray() const {return fRefArray;}
70   virtual void          GetEtaPhiFromIndex(Int_t index,Float_t &eta,Float_t &phi);
71   virtual Int_t         GetNeta() const {return fNeta;}
72   virtual Int_t         GetNphi() const {return fNphi;}
73   virtual Int_t         GetMult() const {return 0;} // To be checked
74   virtual Int_t         GetMultCut() const {return 0;} // To be checked
75   virtual Bool_t        GetProcId() const {return fProcId;}
76
77   // Other
78   virtual void          Exec(Option_t* const /*option*/) {;}
79   virtual Float_t       EtaToTheta(Float_t arg);
80   virtual void          InitParameters() {;}
81
82  protected:
83   Int_t                 fNTracks;         // Number of tracks stored in UnitArray
84   Int_t                 fNTracksCut;      // Number of tracks stored in UnitArray with a pt cut 
85   Int_t                 fOpt;             // Detector to be used for jet reconstruction
86   Bool_t                fDZ;              // Use or not dead zones
87   Int_t                 fDebug;           // Debug option
88
89   AliJetReaderHeader   *fReaderHeader;    // ReaderHeader
90   TClonesArray         *fMomentumArray;   // MomentumArray
91   TClonesArray         *fUnitArray;       // UnitArray
92   TRefArray            *fRefArray;        // UnitArray
93   Bool_t                fProcId;          // Bool_t for TProcessID synchronization  
94   AliJetGrid           *fTPCGrid;         // Define filled grid
95   AliJetGrid           *fEMCalGrid;       // Define filled grid
96   AliJetDummyGeo       *fGeom;            // Define EMCal geometry
97
98   Int_t                 fNphi;            // number of points in the grid:   phi
99   Int_t                 fNeta;            //               "                 eta
100   Int_t                 fGrid;            // Select the grid acceptance you want to fill
101                                           // 0 = TPC acceptance, 1 = TPC-EMCal acceptance
102   TArrayD              *fPhi2;            // grid points in phi
103   TArrayD              *fEta2;            // grid points in eta
104   TMatrixD             *fIndex;           // grid points in (phi,eta) 
105   TMatrixD             *fParams;          // matrix of parameters in the grid points  
106   Float_t               fPhiMin;          // EMCal acceptance
107   Float_t               fPhiMax;          // EMCal acceptance
108   Float_t               fEtaMin;          // EMCal acceptance
109   Float_t               fEtaMax;          // EMCal acceptance
110   Int_t                 fEtaBinInTPCAcc;  // Number of bins in Eta in TPC acceptance
111   Int_t                 fPhiBinInTPCAcc;  // Number of bins in phi in TPC acceptance
112   Int_t                 fEtaBinInEMCalAcc;// Number of bins in Eta in EMCal acceptance
113   Int_t                 fPhiBinInEMCalAcc;// Number of bins in phi in EMCal acceptance
114   Int_t                 fNbinPhi;         // Number of phi bins
115
116  private:
117
118
119   ClassDef(AliJetFillUnitArray,1) // Fill Unit Array with tpc and/or emcal information
120 };
121
122 #endif