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>
24 #include "AliJetFinderTypes.h"
26 class AliJetUnitArray : public TObject
30 AliJetUnitArray(Int_t absId, Int_t esdId, Float_t eta, Float_t phi, Float_t en, Float_t Deta, Float_t Dphi,
31 AliJetFinderUnitDetectorFlagType_t det, AliJetFinderUnitFlagType_t inout, AliJetFinderUnitCutFlagType_t cut,
32 AliJetFinderUnitCutFlagType_t cut2, AliJetFinderUnitSignalFlagType_t signal, Float_t mass, Int_t clusId);
33 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,
34 Float_t Deta, Float_t Dphi, AliJetFinderUnitDetectorFlagType_t det, AliJetFinderUnitFlagType_t inout,
35 AliJetFinderUnitCutFlagType_t cut, Float_t mass, Int_t clusId);
39 void SetUnitEnergy(Float_t energy) {fUnitEnergy = energy;}
40 void SetUnitEta(Float_t eta) {fUnitEta = eta;}
41 void SetUnitPhi(Float_t phi) {fUnitPhi = phi;}
42 void SetUnitPx(Float_t px) {fUnitPx = px;}
43 void SetUnitPy(Float_t py) {fUnitPy = py;}
44 void SetUnitPz(Float_t pz) {fUnitPz = pz;}
45 void SetUnitDeta(Float_t deta) {fUnitDeta = deta;}
46 void SetUnitDphi(Float_t dphi) {fUnitDphi = dphi;}
47 void SetUnitID(Int_t id) {fUnitID = id;}
48 void SetUnitTrackID(Int_t esdid) {fUnitTrackID = esdid;}
49 void SetUnitEntries(Int_t num) {fUnitNum = num;}
50 void SetUnitClusterID(Int_t id) {fUnitClusterID = id;}
51 void SetUnitFlag(AliJetFinderUnitFlagType_t flag)
55 void SetUnitCutFlag(AliJetFinderUnitCutFlagType_t cutFlag)
57 fUnitCutFlag = cutFlag;
59 void SetUnitCutFlag2(AliJetFinderUnitCutFlagType_t cutFlag)
61 fUnitCutFlag2 = cutFlag;
63 void SetUnitSignalFlag(AliJetFinderUnitSignalFlagType_t signalFlag)
65 fUnitSignalFlag = signalFlag;
67 void SetUnitDetectorFlag(AliJetFinderUnitDetectorFlagType_t detectorflag)
69 fUnitDetectorFlag = detectorflag;
71 void SetUnitPxPyPz(Bool_t init, vector<Float_t> v3);
72 void SetUnitEtN(Bool_t init, Float_t et); // Added for background studies
73 void SetUnitSignalFlagC(Bool_t init, AliJetFinderUnitSignalFlagType_t flag);
74 void SetUnitSignalFlagN(Bool_t init, AliJetFinderUnitSignalFlagType_t flag);
75 void SetUnitMass(Float_t mass) {fUnitMass = mass;}
78 Float_t GetUnitEnergy() const {return fUnitEnergy;}
79 Float_t GetUnitEta() const {return fUnitEta;}
80 Float_t GetUnitPhi() const {return fUnitPhi;}
81 Float_t GetUnitPx() const {return fUnitPx;}
82 Float_t GetUnitPy() const {return fUnitPy;}
83 Float_t GetUnitPz() const {return fUnitPz;}
84 Float_t GetUnitDeta() const {return fUnitDeta;}
85 Float_t GetUnitDphi() const {return fUnitDphi;}
86 Int_t GetUnitID() const {return fUnitID;}
87 Int_t GetUnitTrackID() const {return fUnitTrackID;}
88 Int_t GetUnitEntries() const {return fUnitNum;}
89 Int_t GetUnitClusterID() const {return fUnitClusterID;}
90 Float_t GetUnitMass() const {return fUnitMass;}
91 Bool_t GetUnitPxPyPz(Int_t ind, Float_t &px, Float_t &py, Float_t &pz);
92 Bool_t GetUnitPxPyPzE(Int_t ind, Float_t &px, Float_t &py, Float_t &pz, Float_t &en);
93 Bool_t GetUnitEtN(Int_t ind, Float_t &et); // Added for background studies
94 Bool_t GetUnitSignalFlagC(Int_t ind, AliJetFinderUnitSignalFlagType_t &flagc);
95 Bool_t GetUnitSignalFlagN(Int_t ind, AliJetFinderUnitSignalFlagType_t &flagn);
96 Int_t GetUnitVectorSize() {return fV.size();}
97 Int_t GetUnitVectorSizeC() {return fVc.size();}
98 Int_t GetUnitVectorSizeN() {return fVn.size();}
100 Float_t EtaToTheta(Float_t arg) const;
102 AliJetFinderUnitFlagType_t GetUnitFlag() const
106 AliJetFinderUnitCutFlagType_t GetUnitCutFlag() const
110 AliJetFinderUnitCutFlagType_t GetUnitCutFlag2() const
112 return fUnitCutFlag2;
114 AliJetFinderUnitSignalFlagType_t GetUnitSignalFlag() const
116 return fUnitSignalFlag;
118 AliJetFinderUnitDetectorFlagType_t GetUnitDetectorFlag() const
120 return fUnitDetectorFlag;
124 Bool_t operator> ( AliJetUnitArray unit1) const;
125 Bool_t operator< ( AliJetUnitArray unit1) const;
126 Bool_t operator== ( AliJetUnitArray unit1) const;
128 Float_t fUnitEnergy; // Energy (Pt,et) of the unit
129 Float_t fUnitEta; // Eta of the unit
130 Float_t fUnitPhi; // Phi of the unit
131 Float_t fUnitDeta; // Delta Eta of the unit
132 Float_t fUnitDphi; // Delta Phi of the unit
133 Int_t fUnitID; // ID of the unit
134 Int_t fUnitTrackID; // ID of a given charged track
135 Int_t fUnitNum; // Number of units
136 Int_t fUnitClusterID; // ID for clusters
137 AliJetFinderUnitFlagType_t fUnitFlag; // Flag of the unit
138 AliJetFinderUnitCutFlagType_t fUnitCutFlag; // Cut flag of the unit in the tpc
139 AliJetFinderUnitCutFlagType_t fUnitCutFlag2; // Cut flag of the unit in the emcal
140 AliJetFinderUnitSignalFlagType_t fUnitSignalFlag; // Signal flag of the unit
141 AliJetFinderUnitDetectorFlagType_t fUnitDetectorFlag; // Detector flag of the unit
142 Float_t fUnitPx; // Px of charged track
143 Float_t fUnitPy; // Py of charged track
144 Float_t fUnitPz; // Pz of charged track
145 Float_t fUnitMass; // Mass of particle
146 vector< vector< Float_t > > fV; //|| vector to store part information in each cell
147 vector< AliJetFinderUnitSignalFlagType_t > fVc; //|| added for background studies
148 vector< AliJetFinderUnitSignalFlagType_t > fVn; //|| added for background studies
149 vector< Float_t > fVet; //|| added for background studies
151 ClassDef(AliJetUnitArray,1)