Keep track of missing DCS points in DDL maps (flagged by 'x')
[u/mrichter/AliRoot.git] / JETAN / AliJetUnitArray.h
CommitLineData
ee7de0dd 1#ifndef ALIJETUNITARRAY_H
2#define ALIJETUNITARRAY_H
4a01bb2c 3
4/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * * * See cxx source for full Copyright notice */
6
8838ab7a 7/* $Id$ */
ee7de0dd 8
8838ab7a 9// Class description : Unit red as input by jet finder algorithm to store
10// the physical characteristics of a particle
11//
12// Author: magali.estienne@subatech.in2p3.fr
13//
14// Unit used by jet finder algorithm
15//
16//
17
be6e5811 18#include <Riostream.h>
4a01bb2c 19#include <TObject.h>
be6e5811 20#include <TRefArray.h>
21#include <TMath.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"
4a01bb2c 29#include "AliJetFinderTypes.h"
30
be6e5811 31class TList;
32class TVector3;
33
4a01bb2c 34class AliJetUnitArray : public TObject
35{
36 public:
37 AliJetUnitArray();
8838ab7a 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);
4a01bb2c 44 ~AliJetUnitArray();
45
46 // Setter
47 void SetUnitEnergy(Float_t energy) {fUnitEnergy = energy;}
48 void SetUnitEta(Float_t eta) {fUnitEta = eta;}
49 void SetUnitPhi(Float_t phi) {fUnitPhi = phi;}
8838ab7a 50 void SetUnitPx(Float_t px) {fUnitPx = px;}
51 void SetUnitPy(Float_t py) {fUnitPy = py;}
52 void SetUnitPz(Float_t pz) {fUnitPz = pz;}
4a01bb2c 53 void SetUnitDeta(Float_t deta) {fUnitDeta = deta;}
54 void SetUnitDphi(Float_t dphi) {fUnitDphi = dphi;}
55 void SetUnitID(Int_t id) {fUnitID = id;}
ee7de0dd 56 void SetUnitTrackID(Int_t esdid) {fUnitTrackID = esdid;}
4a01bb2c 57 void SetUnitEntries(Int_t num) {fUnitNum = num;}
58 void SetUnitClusterID(Int_t id) {fUnitClusterID = id;}
59 void SetUnitFlag(AliJetFinderUnitFlagType_t flag)
60 {
61 fUnitFlag = flag;
62 }
63 void SetUnitCutFlag(AliJetFinderUnitCutFlagType_t cutFlag)
64 {
65 fUnitCutFlag = cutFlag;
66 }
8838ab7a 67 void SetUnitCutFlag2(AliJetFinderUnitCutFlagType_t cutFlag)
68 {
69 fUnitCutFlag2 = cutFlag;
70 }
4a01bb2c 71 void SetUnitSignalFlag(AliJetFinderUnitSignalFlagType_t signalFlag)
72 {
73 fUnitSignalFlag = signalFlag;
74 }
75 void SetUnitDetectorFlag(AliJetFinderUnitDetectorFlagType_t detectorflag)
76 {
77 fUnitDetectorFlag = detectorflag;
78 }
8838ab7a 79 void SetUnitSignalFlagC(Bool_t init, AliJetFinderUnitSignalFlagType_t flag);
80 void SetUnitSignalFlagN(Bool_t init, AliJetFinderUnitSignalFlagType_t flag);
ee7de0dd 81 void SetUnitMass(Float_t mass) {fUnitMass = mass;}
be6e5811 82 void SetUnitTrackRef(TRefArray* trackref) {fUnitTrackRef = trackref;}
83 void SetUnitCellRef(TRefArray* cellref) {fUnitCellRef = cellref;}
84 void SetUnitClusterRef(TRefArray* clusterref) {fUnitClusterRef = clusterref;}
4a01bb2c 85
86 // Getter
be6e5811 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;}
105
106 Float_t EtaToTheta(Float_t arg) const;
107 void ClearUnitTrackRef();
108 void ClearUnitCellRef();
ee7de0dd 109
4a01bb2c 110 AliJetFinderUnitFlagType_t GetUnitFlag() const
111 {
112 return fUnitFlag;
113 }
114 AliJetFinderUnitCutFlagType_t GetUnitCutFlag() const
115 {
116 return fUnitCutFlag;
117 }
8838ab7a 118 AliJetFinderUnitCutFlagType_t GetUnitCutFlag2() const
119 {
120 return fUnitCutFlag2;
121 }
4a01bb2c 122 AliJetFinderUnitSignalFlagType_t GetUnitSignalFlag() const
123 {
124 return fUnitSignalFlag;
125 }
126 AliJetFinderUnitDetectorFlagType_t GetUnitDetectorFlag() const
127 {
128 return fUnitDetectorFlag;
129 }
130
4a01bb2c 131 protected:
be6e5811 132 AliJetUnitArray(const AliJetUnitArray& rUnit);
133 AliJetUnitArray& operator = (const AliJetUnitArray& rhs);
8838ab7a 134 Bool_t operator> ( AliJetUnitArray unit1) const;
135 Bool_t operator< ( AliJetUnitArray unit1) const;
136 Bool_t operator== ( AliJetUnitArray unit1) const;
137
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
ee7de0dd 147 AliJetFinderUnitFlagType_t fUnitFlag; // Flag of the unit
8838ab7a 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
ee7de0dd 151 AliJetFinderUnitDetectorFlagType_t fUnitDetectorFlag; // Detector flag of the unit
8838ab7a 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
8838ab7a 156 vector< AliJetFinderUnitSignalFlagType_t > fVc; //|| added for background studies
157 vector< AliJetFinderUnitSignalFlagType_t > fVn; //|| added for background studies
be6e5811 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
a1fa3a77 161
ee7de0dd 162 ClassDef(AliJetUnitArray,1)
8838ab7a 163
4a01bb2c 164};
165
166#endif
167