]>
Commit | Line | Data |
---|---|---|
d89b8229 | 1 | #ifndef ALIJETCALTRK_H |
2 | #define ALIJETCALTRK_H | |
3 | ||
4 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
5 | * * * See cxx source for full Copyright notice */ | |
6 | ||
7 | /* $Id$ */ | |
8 | ||
9 | //------------------------------------------------------ | |
10 | // CalTrk is used to sore Tracks and CaloCells information | |
11 | // | |
12 | // Author: alexandre.shabetai@cern.ch & magali.estienne@subatech.in2p3.fr | |
13 | //------------------------------------------------------ | |
14 | ||
15 | #include <Riostream.h> | |
16 | #include <TObject.h> | |
17 | #include <TRef.h> | |
18 | #include <TClonesArray.h> | |
19 | ||
20 | #include "AliVParticle.h" | |
21 | #include "AliVTrack.h" | |
22 | ||
23 | class AliVCaloCells; | |
24 | ||
25 | class AliJetCalTrkTrack : public TObject | |
26 | { | |
27 | public: | |
28 | AliJetCalTrkTrack(); | |
29 | AliJetCalTrkTrack(AliVParticle* track, Bool_t CutFlag, Bool_t SignalFlag, Float_t PtCorr = 1.); | |
30 | AliJetCalTrkTrack(AliVTrack* track, Bool_t CutFlag, Bool_t SignalFlag, Float_t PtCorr = 1.); | |
31 | virtual ~AliJetCalTrkTrack() {;} | |
32 | ||
33 | // Setter | |
34 | void SetCutFlag(Bool_t cutFlag) {fCalTrkCutFlag = cutFlag;} | |
35 | void SetSignalFlag(Bool_t signalFlag) {fCalTrkSignalFlag = signalFlag;} | |
36 | void SetPtCorr(Float_t ptcorr) {fCalTrkPtCorr = ptcorr;} | |
37 | ||
38 | // Getter | |
39 | AliVParticle* GetParticle() const {return ((AliVParticle*)fCalTrkTrackRef.GetObject());} | |
40 | AliVTrack* GetTrack() const {return ((AliVTrack*)fCalTrkTrackRef.GetObject());} | |
41 | TRef GetTrackRef() const {return fCalTrkTrackRef;} | |
42 | TObject* GetTrackObject() const {return fCalTrkTrackRef.GetObject();} | |
43 | Bool_t GetCutFlag() const {return fCalTrkCutFlag;} | |
44 | Bool_t GetSignalFlag() const {return fCalTrkSignalFlag;} | |
45 | Float_t GetPtCorr() const {return fCalTrkPtCorr;} | |
46 | Float_t GetEta() const {return GetParticle()->Eta();} | |
47 | Float_t GetPhi() const {return GetParticle()->Phi();} | |
48 | virtual Float_t GetE() {return GetParticle()->E();} | |
49 | virtual Float_t GetPt() {return GetParticle()->Pt();} | |
50 | virtual Float_t GetPx() {return GetParticle()->Px();} | |
51 | virtual Float_t GetPy() {return GetParticle()->Py();} | |
52 | virtual Float_t GetPz() {return GetParticle()->Pz();} | |
53 | virtual Float_t GetP() {return GetParticle()->P();} | |
54 | Int_t GetID() const {return GetTrack()->GetID();} | |
55 | Float_t GetM() const {return GetParticle()->M();} | |
56 | using TObject::Print; | |
57 | void Print(const Option_t* option); | |
58 | ||
59 | virtual void Clear(Option_t* /*option = ""*/); | |
60 | ||
61 | private: | |
62 | AliJetCalTrkTrack(const AliJetCalTrkTrack& rCalTrk); | |
63 | AliJetCalTrkTrack& operator = (const AliJetCalTrkTrack& rhs); | |
64 | ||
65 | TRef fCalTrkTrackRef; //! Reference to a track | |
66 | Bool_t fCalTrkCutFlag; // Cut flag of the track in the tpc | |
67 | Bool_t fCalTrkSignalFlag; // Signal flag of the track | |
68 | Float_t fCalTrkPtCorr; // Correction factor | |
69 | ||
70 | ClassDef(AliJetCalTrkTrack,1) // Implementation of AliJetCalTrkTrack | |
71 | ||
72 | }; | |
73 | ||
74 | //------------------------------------------------------------- | |
75 | class AliJetCalTrkTrackKine : public AliJetCalTrkTrack | |
76 | { | |
77 | public: | |
78 | AliJetCalTrkTrackKine(); | |
79 | AliJetCalTrkTrackKine(AliVParticle* track, Bool_t CutFlag, Bool_t SignalFlag, Float_t ptReso); | |
80 | virtual ~AliJetCalTrkTrackKine() {;} | |
81 | ||
82 | Float_t GetPtReso() const {return fCalTrkPtReso;} | |
83 | Float_t GetE(); | |
84 | Float_t GetPt(); | |
85 | Float_t GetPx() {return GetPtReso()*GetParticle()->Px();} | |
86 | Float_t GetPy() {return GetPtReso()*GetParticle()->Py();} | |
87 | Float_t GetPz() {return GetPtReso()*GetParticle()->Pz();} | |
88 | Float_t GetP(); | |
89 | void Clear(Option_t* option = ""); | |
90 | ||
91 | private: | |
92 | Float_t fCalTrkPtReso; // Pt resolution rescaling (AliJetFillCalTrkTrackKine::FillKine()) | |
93 | Float_t fCalTrkTrackE; // Particle energy | |
94 | Float_t fCalTrkTrackPt; // Particle Pt | |
95 | Float_t fCalTrkTrackP; // Particle P | |
96 | ||
97 | ClassDef(AliJetCalTrkTrackKine,1) // Implementation of AliJetCalTrkTrackKine | |
98 | }; | |
99 | ||
100 | //------------------------------------------------------------- | |
101 | class AliJetCalTrkEvent : public TObject | |
102 | { | |
103 | public: | |
104 | AliJetCalTrkEvent(); //default constructor | |
105 | AliJetCalTrkEvent(Short_t opt,Bool_t kine,Bool_t kIsHighMult=kFALSE); // constructor 2 | |
106 | virtual ~AliJetCalTrkEvent(); | |
107 | AliJetCalTrkEvent(const AliJetCalTrkEvent& rCalTrkEvent); | |
108 | AliJetCalTrkTrack* AddCalTrkTrack(AliVTrack* track, Bool_t cutFlag, Bool_t signalFlag, Float_t ptCorr = 1.); | |
109 | AliJetCalTrkTrack* AddCalTrkTrack(AliVParticle* track, Bool_t cutFlag, Bool_t signalFlag, Float_t ptCorr = 1.); | |
110 | AliJetCalTrkTrackKine* AddCalTrkTrackKine(AliVParticle* track, Bool_t cutFlag, Bool_t signalFlag, Float_t ptReso = 1.); | |
111 | ||
112 | AliJetCalTrkTrack* GetCalTrkTrack(Int_t i); | |
113 | Int_t GetNCalTrkTracks() const {return fNJetCalTrkTrack;} | |
114 | ||
115 | void Clear(Option_t* option = ""); | |
116 | void Print(const Option_t* /*option*/) const; | |
117 | ||
118 | private: | |
119 | AliJetCalTrkEvent& operator = (const AliJetCalTrkEvent& rhs); | |
120 | TClonesArray* fJetCalTrkTrack; //! Array of Tracks | |
121 | TClonesArray* fJetCalTrkCell; //! Array of Cells | |
122 | Int_t fNJetCalTrkTrack; // Number of tracks | |
123 | ||
124 | ClassDef(AliJetCalTrkEvent,1) // Implementation of AliJetCalTrkEvent | |
125 | ||
126 | }; | |
127 | ||
128 | #endif | |
129 |