4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * * * See cxx source for full Copyright notice */
9 //------------------------------------------------------
10 // CalTrk is used to sore Tracks and CaloCells information
12 // Author: alexandre.shabetai@cern.ch & magali.estienne@subatech.in2p3.fr
13 //------------------------------------------------------
15 #include <Riostream.h>
18 #include <TClonesArray.h>
20 #include "AliVParticle.h"
21 #include "AliVTrack.h"
25 class AliJetCalTrkTrack : public TObject
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() {;}
34 void SetCutFlag(Bool_t cutFlag) {fCalTrkCutFlag = cutFlag;}
35 void SetSignalFlag(Bool_t signalFlag) {fCalTrkSignalFlag = signalFlag;}
36 void SetPtCorr(Float_t ptcorr) {fCalTrkPtCorr = ptcorr;}
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();}
57 void Print(const Option_t* option);
59 virtual void Clear(Option_t* /*option = ""*/);
62 AliJetCalTrkTrack(const AliJetCalTrkTrack& rCalTrk);
63 AliJetCalTrkTrack& operator = (const AliJetCalTrkTrack& rhs);
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
70 ClassDef(AliJetCalTrkTrack,1) // Implementation of AliJetCalTrkTrack
74 //-------------------------------------------------------------
75 class AliJetCalTrkTrackKine : public AliJetCalTrkTrack
78 AliJetCalTrkTrackKine();
79 AliJetCalTrkTrackKine(AliVParticle* track, Bool_t CutFlag, Bool_t SignalFlag, Float_t ptReso);
80 virtual ~AliJetCalTrkTrackKine() {;}
82 Float_t GetPtReso() const {return fCalTrkPtReso;}
85 Float_t GetPx() {return GetPtReso()*GetParticle()->Px();}
86 Float_t GetPy() {return GetPtReso()*GetParticle()->Py();}
87 Float_t GetPz() {return GetPtReso()*GetParticle()->Pz();}
89 void Clear(Option_t* option = "");
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
97 ClassDef(AliJetCalTrkTrackKine,1) // Implementation of AliJetCalTrkTrackKine
100 //-------------------------------------------------------------
101 class AliJetCalTrkEvent : public TObject
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.);
112 AliJetCalTrkTrack* GetCalTrkTrack(Int_t i);
113 Int_t GetNCalTrkTracks() const {return fNJetCalTrkTrack;}
115 void Clear(Option_t* option = "");
116 void Print(const Option_t* = "") const;
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
124 ClassDef(AliJetCalTrkEvent,1) // Implementation of AliJetCalTrkEvent