Updates provided by Magali Estienne
[u/mrichter/AliRoot.git] / JETAN / AliJetFillUnitArray.h
CommitLineData
be6e5811 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
29class Riostream;
30
31class AliEMCALGeometry;
32class AliJetReader;
33class AliJetESDReader;
34
35class 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