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"
34 class AliJetUnitArray : public TObject
38 AliJetUnitArray(Int_t absId, Int_t esdId, Float_t eta, Float_t phi, Float_t en, Float_t Deta, Float_t Dphi,
39 AliJetFinderUnitDetectorFlagType_t det, AliJetFinderUnitFlagType_t inout, AliJetFinderUnitCutFlagType_t cut,
40 AliJetFinderUnitCutFlagType_t cut2, AliJetFinderUnitSignalFlagType_t signal, Float_t mass, Int_t clusId);
41 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,
42 Float_t Deta, Float_t Dphi, AliJetFinderUnitDetectorFlagType_t det, AliJetFinderUnitFlagType_t inout,
43 AliJetFinderUnitCutFlagType_t cut, Float_t mass, Int_t clusId);
47 void SetUnitEnergy(Float_t energy) {fUnitEnergy = energy;}
48 void SetUnitEta(Float_t eta) {fUnitEta = eta;}
49 void SetUnitPhi(Float_t phi) {fUnitPhi = phi;}
50 void SetUnitPx(Float_t px) {fUnitPx = px;}
51 void SetUnitPy(Float_t py) {fUnitPy = py;}
52 void SetUnitPz(Float_t pz) {fUnitPz = pz;}
53 void SetUnitDeta(Float_t deta) {fUnitDeta = deta;}
54 void SetUnitDphi(Float_t dphi) {fUnitDphi = dphi;}
55 void SetUnitID(Int_t id) {fUnitID = id;}
56 void SetUnitTrackID(Int_t esdid) {fUnitTrackID = esdid;}
57 void SetUnitEntries(Int_t num) {fUnitNum = num;}
58 void SetUnitClusterID(Int_t id) {fUnitClusterID = id;}
59 void SetUnitFlag(AliJetFinderUnitFlagType_t flag)
63 void SetUnitCutFlag(AliJetFinderUnitCutFlagType_t cutFlag)
65 fUnitCutFlag = cutFlag;
67 void SetUnitCutFlag2(AliJetFinderUnitCutFlagType_t cutFlag)
69 fUnitCutFlag2 = cutFlag;
71 void SetUnitSignalFlag(AliJetFinderUnitSignalFlagType_t signalFlag)
73 fUnitSignalFlag = signalFlag;
75 void SetUnitDetectorFlag(AliJetFinderUnitDetectorFlagType_t detectorflag)
77 fUnitDetectorFlag = detectorflag;
79 void SetUnitSignalFlagC(Bool_t init, AliJetFinderUnitSignalFlagType_t flag);
80 void SetUnitSignalFlagN(Bool_t init, AliJetFinderUnitSignalFlagType_t flag);
81 void SetUnitMass(Float_t mass) {fUnitMass = mass;}
82 void SetUnitTrackRef(TRefArray* trackref) {fUnitTrackRef = trackref;}
83 void SetUnitCellRef(TRefArray* cellref) {fUnitCellRef = cellref;}
84 void SetUnitClusterRef(TRefArray* clusterref) {fUnitClusterRef = clusterref;}
87 Float_t GetUnitEnergy() const {return fUnitEnergy;}
88 Float_t GetUnitEta() const {return fUnitEta;}
89 Float_t GetUnitPhi() const {return fUnitPhi;}
90 Float_t GetUnitPx() const {return fUnitPx;}
91 Float_t GetUnitPy() const {return fUnitPy;}
92 Float_t GetUnitPz() const {return fUnitPz;}
93 Float_t GetUnitDeta() const {return fUnitDeta;}
94 Float_t GetUnitDphi() const {return fUnitDphi;}
95 Int_t GetUnitID() const {return fUnitID;}
96 Int_t GetUnitTrackID() const {return fUnitTrackID;}
97 Int_t GetUnitEntries() const {return fUnitNum;}
98 Int_t GetUnitClusterID() const {return fUnitClusterID;}
99 Float_t GetUnitMass() const {return fUnitMass;}
100 Bool_t GetUnitSignalFlagC(Int_t ind, AliJetFinderUnitSignalFlagType_t &flagc);
101 Bool_t GetUnitSignalFlagN(Int_t ind, AliJetFinderUnitSignalFlagType_t &flagn);
102 TRefArray* GetUnitTrackRef() const {return fUnitTrackRef;}
103 TRefArray* GetUnitCellRef() const {return fUnitCellRef;}
104 TRefArray* GetUnitClusterRef() const {return fUnitClusterRef;}
106 Float_t EtaToTheta(Float_t arg) const;
107 void ClearUnitTrackRef();
108 void ClearUnitCellRef();
110 AliJetFinderUnitFlagType_t GetUnitFlag() const
114 AliJetFinderUnitCutFlagType_t GetUnitCutFlag() const
118 AliJetFinderUnitCutFlagType_t GetUnitCutFlag2() const
120 return fUnitCutFlag2;
122 AliJetFinderUnitSignalFlagType_t GetUnitSignalFlag() const
124 return fUnitSignalFlag;
126 AliJetFinderUnitDetectorFlagType_t GetUnitDetectorFlag() const
128 return fUnitDetectorFlag;
132 AliJetUnitArray(const AliJetUnitArray& rUnit);
133 AliJetUnitArray& operator = (const AliJetUnitArray& rhs);
134 Bool_t operator> ( AliJetUnitArray* unit1) const;
135 Bool_t operator< ( AliJetUnitArray* unit1) const;
136 Bool_t operator== ( AliJetUnitArray* unit1) const;
138 Float_t fUnitEnergy; // Energy (Pt,et) of the unit
139 Float_t fUnitEta; // Eta of the unit
140 Float_t fUnitPhi; // Phi of the unit
141 Float_t fUnitDeta; // Delta Eta of the unit
142 Float_t fUnitDphi; // Delta Phi of the unit
143 Int_t fUnitID; // ID of the unit
144 Int_t fUnitTrackID; // ID of a given charged track
145 Int_t fUnitNum; // Number of units
146 Int_t fUnitClusterID; // ID for clusters
147 AliJetFinderUnitFlagType_t fUnitFlag; // Flag of the unit
148 AliJetFinderUnitCutFlagType_t fUnitCutFlag; // Cut flag of the unit in the tpc
149 AliJetFinderUnitCutFlagType_t fUnitCutFlag2; // Cut flag of the unit in the emcal
150 AliJetFinderUnitSignalFlagType_t fUnitSignalFlag; // Signal flag of the unit
151 AliJetFinderUnitDetectorFlagType_t fUnitDetectorFlag; // Detector flag of the unit
152 Float_t fUnitPx; // Px of charged track
153 Float_t fUnitPy; // Py of charged track
154 Float_t fUnitPz; // Pz of charged track
155 Float_t fUnitMass; // Mass of particle
156 vector< AliJetFinderUnitSignalFlagType_t > fVc; //|| added for background studies
157 vector< AliJetFinderUnitSignalFlagType_t > fVn; //|| added for background studies
158 TRefArray* fUnitTrackRef; //! pointer to array of references to esd tracks
159 TRefArray* fUnitCellRef; //! pointer to array of references to esd cells
160 TRefArray* fUnitClusterRef; //! pointer to array of references to esd clusters
162 ClassDef(AliJetUnitArray,1)