1 #ifndef ALIJETUNITARRAY_H
2 #define ALIJETUNITARRAY_H
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * * * See cxx source for full Copyright notice */
9 // Class description : Unit red as input by jet finder algorithm to store
10 // the physical characteristics of a particle
12 // Author: magali.estienne@subatech.in2p3.fr
14 // Unit used by jet finder algorithm
18 #include <Riostream.h>
20 #include <TRefArray.h>
22 #include "AliESDtrack.h"
23 #include "AliAODTrack.h"
24 #include "AliVParticle.h"
25 #include "AliESDCaloCells.h"
26 #include "AliAODCaloCells.h"
27 #include "AliESDCaloCluster.h"
28 #include "AliAODCaloCluster.h"
29 #include "AliJetFinderTypes.h"
36 class AliJetUnitArray : public TObject
40 AliJetUnitArray(Int_t absId, Int_t esdId, Float_t eta, Float_t phi, Float_t en, Float_t Deta, Float_t Dphi,
41 AliJetFinderUnitDetectorFlagType_t det, AliJetFinderUnitFlagType_t inout, AliJetFinderUnitCutFlagType_t cut,
42 AliJetFinderUnitCutFlagType_t cut2, AliJetFinderUnitSignalFlagType_t signal, Float_t mass, Int_t clusId);
43 AliJetUnitArray(Int_t absId, Int_t esdId, Float_t eta, Float_t phi, Float_t en, Float_t px, Float_t py, Float_t pz,
44 Float_t Deta, Float_t Dphi, AliJetFinderUnitDetectorFlagType_t det, AliJetFinderUnitFlagType_t inout,
45 AliJetFinderUnitCutFlagType_t cut, Float_t mass, Int_t clusId);
49 void SetUnitEnergy(Float_t energy) {fUnitEnergy = energy;}
50 void SetUnitEta(Float_t eta) {fUnitEta = eta;}
51 void SetUnitPhi(Float_t phi) {fUnitPhi = phi;}
52 void SetUnitPx(Float_t px) {fUnitPx = px;}
53 void SetUnitPy(Float_t py) {fUnitPy = py;}
54 void SetUnitPz(Float_t pz) {fUnitPz = pz;}
55 void SetUnitDeta(Float_t deta) {fUnitDeta = deta;}
56 void SetUnitDphi(Float_t dphi) {fUnitDphi = dphi;}
57 void SetUnitID(Int_t id) {fUnitID = id;}
58 void SetUnitTrackID(Int_t esdid) {fUnitTrackID = esdid;}
59 void SetUnitEntries(Int_t num) {fUnitNum = num;}
60 void SetUnitClusterID(Int_t id) {fUnitClusterID = id;}
61 void SetUnitFlag(AliJetFinderUnitFlagType_t flag)
65 void SetUnitCutFlag(AliJetFinderUnitCutFlagType_t cutFlag)
67 fUnitCutFlag = cutFlag;
69 void SetUnitCutFlag2(AliJetFinderUnitCutFlagType_t cutFlag)
71 fUnitCutFlag2 = cutFlag;
73 void SetUnitSignalFlag(AliJetFinderUnitSignalFlagType_t signalFlag)
75 fUnitSignalFlag = signalFlag;
77 void SetUnitDetectorFlag(AliJetFinderUnitDetectorFlagType_t detectorflag)
79 fUnitDetectorFlag = detectorflag;
81 void SetUnitSignalFlagC(Bool_t init, AliJetFinderUnitSignalFlagType_t flag);
82 void SetUnitSignalFlagN(Bool_t init, AliJetFinderUnitSignalFlagType_t flag);
83 void SetUnitMass(Float_t mass) {fUnitMass = mass;}
84 void SetUnitTrackRef(TRefArray* trackref) {fUnitTrackRef = trackref;}
85 void SetUnitCellRef(TRefArray* cellref) {fUnitCellRef = cellref;}
86 void SetUnitClusterRef(TRefArray* clusterref) {fUnitClusterRef = clusterref;}
89 Float_t GetUnitEnergy() const {return fUnitEnergy;}
90 Float_t GetUnitEta() const {return fUnitEta;}
91 Float_t GetUnitPhi() const {return fUnitPhi;}
92 Float_t GetUnitPx() const {return fUnitPx;}
93 Float_t GetUnitPy() const {return fUnitPy;}
94 Float_t GetUnitPz() const {return fUnitPz;}
95 Float_t GetUnitDeta() const {return fUnitDeta;}
96 Float_t GetUnitDphi() const {return fUnitDphi;}
97 Int_t GetUnitID() const {return fUnitID;}
98 Int_t GetUnitTrackID() const {return fUnitTrackID;}
99 Int_t GetUnitEntries() const {return fUnitNum;}
100 Int_t GetUnitClusterID() const {return fUnitClusterID;}
101 Float_t GetUnitMass() const {return fUnitMass;}
102 Bool_t GetUnitSignalFlagC(Int_t ind, AliJetFinderUnitSignalFlagType_t &flagc);
103 Bool_t GetUnitSignalFlagN(Int_t ind, AliJetFinderUnitSignalFlagType_t &flagn);
104 TRefArray* GetUnitTrackRef() const {return fUnitTrackRef;}
105 TRefArray* GetUnitCellRef() const {return fUnitCellRef;}
106 TRefArray* GetUnitClusterRef() const {return fUnitClusterRef;}
108 Float_t EtaToTheta(Float_t arg) const;
109 void ClearUnitTrackRef();
110 void ClearUnitCellRef();
112 AliJetFinderUnitFlagType_t GetUnitFlag() const
116 AliJetFinderUnitCutFlagType_t GetUnitCutFlag() const
120 AliJetFinderUnitCutFlagType_t GetUnitCutFlag2() const
122 return fUnitCutFlag2;
124 AliJetFinderUnitSignalFlagType_t GetUnitSignalFlag() const
126 return fUnitSignalFlag;
128 AliJetFinderUnitDetectorFlagType_t GetUnitDetectorFlag() const
130 return fUnitDetectorFlag;
134 AliJetUnitArray(const AliJetUnitArray& rUnit);
135 AliJetUnitArray& operator = (const AliJetUnitArray& rhs);
136 Bool_t operator> (const AliJetUnitArray* unit1) const;
137 Bool_t operator< (const AliJetUnitArray* unit1) const;
138 Bool_t operator== (const AliJetUnitArray* unit1) const;
140 Float_t fUnitEnergy; // Energy (Pt,et) of the unit
141 Float_t fUnitEta; // Eta of the unit
142 Float_t fUnitPhi; // Phi of the unit
143 Float_t fUnitDeta; // Delta Eta of the unit
144 Float_t fUnitDphi; // Delta Phi of the unit
145 Int_t fUnitID; // ID of the unit
146 Int_t fUnitTrackID; // ID of a given charged track
147 Int_t fUnitNum; // Number of units
148 Int_t fUnitClusterID; // ID for clusters
149 AliJetFinderUnitFlagType_t fUnitFlag; // Flag of the unit
150 AliJetFinderUnitCutFlagType_t fUnitCutFlag; // Cut flag of the unit in the tpc
151 AliJetFinderUnitCutFlagType_t fUnitCutFlag2; // Cut flag of the unit in the emcal
152 AliJetFinderUnitSignalFlagType_t fUnitSignalFlag; // Signal flag of the unit
153 AliJetFinderUnitDetectorFlagType_t fUnitDetectorFlag; // Detector flag of the unit
154 Float_t fUnitPx; // Px of charged track
155 Float_t fUnitPy; // Py of charged track
156 Float_t fUnitPz; // Pz of charged track
157 Float_t fUnitMass; // Mass of particle
158 vector< AliJetFinderUnitSignalFlagType_t > fVc; //|| added for background studies
159 vector< AliJetFinderUnitSignalFlagType_t > fVn; //|| added for background studies
160 TRefArray* fUnitTrackRef; //! pointer to array of references to esd tracks
161 TRefArray* fUnitCellRef; //! pointer to array of references to esd cells
162 TRefArray* fUnitClusterRef; //! pointer to array of references to esd clusters
164 ClassDef(AliJetUnitArray,2)