1 /**************************************************************************
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
7 * Permission to use, copy, modify and distribute this software and its *
8 * documentation strictly for non-commercial purposes is hereby granted *
9 * without fee, provided that the above copyright notice appears in all *
10 * copies and that both the copyright notice and this permission notice *
11 * appear in the supporting documentation. The authors make no claims *
12 * about the suitability of this software for any purpose. It is *
13 * provided "as is" without express or implied warranty. *
14 **************************************************************************/
18 //--------------------------------------------------
19 // CalTrk is used to store Tracks and CaloCells information
21 // Author: alexandre.shabetai@cern.ch & magali.estienne@subatech.in2p3.fr
22 //-------------------------------------------------
24 #include "AliJetCalTrk.h"
26 #include "AliVCaloCells.h"
28 ClassImp(AliJetCalTrkTrack)
30 //////////////////////////////////////////////////////////////////
32 AliJetCalTrkTrack::AliJetCalTrkTrack():
35 fCalTrkCutFlag(kFALSE),
36 fCalTrkSignalFlag(kFALSE),
39 // Default constructor
42 //------------------------------------------------------------------------
43 AliJetCalTrkTrack::AliJetCalTrkTrack(AliVTrack* track, Bool_t cutFlag, Bool_t signalFlag, Float_t ptCorr):
45 fCalTrkTrackRef(track),
46 fCalTrkCutFlag(cutFlag),
47 fCalTrkSignalFlag(signalFlag),
53 //------------------------------------------------------------------------
54 AliJetCalTrkTrack::AliJetCalTrkTrack(AliVParticle* track, Bool_t cutFlag, Bool_t signalFlag, Float_t ptCorr):
56 fCalTrkTrackRef(track),
57 fCalTrkCutFlag(cutFlag),
58 fCalTrkSignalFlag(signalFlag),
64 //------------------------------------------------------------------------
65 AliJetCalTrkTrack::AliJetCalTrkTrack(const AliJetCalTrkTrack& rCalTrk):
67 fCalTrkTrackRef(rCalTrk.fCalTrkTrackRef),
68 fCalTrkCutFlag(rCalTrk.fCalTrkCutFlag),
69 fCalTrkSignalFlag(rCalTrk.fCalTrkSignalFlag),
70 fCalTrkPtCorr(rCalTrk.fCalTrkPtCorr)
75 //------------------------------------------------------------------------
76 AliJetCalTrkTrack& AliJetCalTrkTrack::operator=(const AliJetCalTrkTrack& rhs)
80 TObject::operator=(rhs);
81 fCalTrkTrackRef = rhs.fCalTrkTrackRef;
82 fCalTrkCutFlag = rhs.fCalTrkCutFlag;
83 fCalTrkSignalFlag = rhs.fCalTrkSignalFlag;
84 fCalTrkPtCorr = rhs.fCalTrkPtCorr;
90 //------------------------------------------------------------------------
91 void AliJetCalTrkTrack::Clear(Option_t* /*option*/)
96 fCalTrkSignalFlag = 0;
101 //-----------------------------------------------------------------------
102 void AliJetCalTrkTrack::Print(const Option_t* option)
104 cout << "Track: " << option << ", Pt: " << GetPt() << ", Eta: " << GetEta() << ", Phi: " << GetPhi() << endl;
105 if (!option) TObject::Print();
108 //...........................................................................
109 //***************************************************************************
110 ClassImp(AliJetCalTrkTrackKine)
112 AliJetCalTrkTrackKine::AliJetCalTrkTrackKine():
115 fCalTrkTrackE(-999.),
116 fCalTrkTrackPt(-999.),
119 // Default constructor
122 //------------------------------------------------------------------------
123 AliJetCalTrkTrackKine::AliJetCalTrkTrackKine(AliVParticle* track, Bool_t cutFlag, Bool_t signalFlag, Float_t ptReso) :
124 AliJetCalTrkTrack(track,cutFlag,signalFlag),
125 fCalTrkPtReso(ptReso),
126 fCalTrkTrackE(-999.),
127 fCalTrkTrackPt(-999.),
133 //------------------------------------------------------------------------
134 void AliJetCalTrkTrackKine::Clear(Option_t* option)
138 fCalTrkTrackE = -999;
139 fCalTrkTrackPt = -999;
140 fCalTrkTrackP = -999;
141 AliJetCalTrkTrack::Clear(option);
145 //------------------------------------------------------------------------
146 Float_t AliJetCalTrkTrackKine::GetE()
149 if(fCalTrkTrackE==-999){
150 if ( fCalTrkPtReso != 1 ){
151 fCalTrkTrackE = TMath::Sqrt(GetPx()*GetPx()+GetPy()*GetPy()+GetPz()*GetPz()+GetM()*GetM());
153 else {fCalTrkTrackE = GetParticle()->E(); }
156 return fCalTrkTrackE;
160 //------------------------------------------------------------------------
161 Float_t AliJetCalTrkTrackKine::GetPt()
163 // Particle transverse momentum
164 if(fCalTrkTrackPt==-999){
165 if ( fCalTrkPtReso != 1 ){
166 fCalTrkTrackPt = TMath::Sqrt(GetPx()*GetPx()+GetPy()*GetPy());
168 else {fCalTrkTrackPt = GetParticle()->Pt();}
171 return fCalTrkTrackPt;
175 //------------------------------------------------------------------------
176 Float_t AliJetCalTrkTrackKine::GetP()
179 if(fCalTrkTrackP==-999){
180 if ( fCalTrkPtReso != 1 ){
181 fCalTrkTrackP = TMath::Sqrt(GetPx()*GetPx()+GetPy()*GetPy()+GetPz()*GetPz());
183 else {fCalTrkTrackP = GetParticle()->P(); }
186 return fCalTrkTrackP;
190 //...........................................................................
191 //***************************************************************************
193 ClassImp(AliJetCalTrkEvent)
195 AliJetCalTrkEvent::AliJetCalTrkEvent():
197 fJetCalTrkTrack(0x0),
201 // Default constructor
204 //----------------------------------------------------------------
205 AliJetCalTrkEvent::AliJetCalTrkEvent(Short_t opt,Bool_t kine,Bool_t kIsHighMult):
207 fJetCalTrkTrack(0x0),
213 // Tracks (real or MC)
214 if(opt%2==!0 || opt==0){
215 fJetCalTrkTrack = new TClonesArray("AliJetCalTrkTrack", kIsHighMult*3800+200);
219 fJetCalTrkTrack = new TClonesArray("AliJetCalTrkTrackKine", kIsHighMult*3800+200);
224 //----------------------------------------------------------------
225 AliJetCalTrkEvent::~AliJetCalTrkEvent()
228 if (fJetCalTrkTrack) delete fJetCalTrkTrack;
229 if (fJetCalTrkCell) delete fJetCalTrkCell;
232 //----------------------------------------------------------------
233 AliJetCalTrkEvent::AliJetCalTrkEvent(const AliJetCalTrkEvent& rCalTrkEvent):
235 fJetCalTrkTrack(rCalTrkEvent.fJetCalTrkTrack),
236 fJetCalTrkCell(rCalTrkEvent.fJetCalTrkCell),
237 fNJetCalTrkTrack(rCalTrkEvent.fNJetCalTrkTrack)
242 //----------------------------------------------------------------
243 AliJetCalTrkEvent& AliJetCalTrkEvent::operator=(const AliJetCalTrkEvent& rhs)
247 TObject::operator=(rhs);
248 if (fJetCalTrkTrack) delete fJetCalTrkTrack;
249 if (fJetCalTrkCell) delete fJetCalTrkCell;
250 fJetCalTrkTrack = rhs.fJetCalTrkTrack;
251 fJetCalTrkCell = rhs.fJetCalTrkCell;
252 fNJetCalTrkTrack = rhs.fNJetCalTrkTrack;
259 //----------------------------------------------------------------
260 AliJetCalTrkTrack* AliJetCalTrkEvent::AddCalTrkTrack(AliVTrack* track, Bool_t cutFlag, Bool_t signalFlag, Float_t ptCorr)
262 // Add a track to the CalTrkEvent
263 TClonesArray &tJetCalTrkTrack = *fJetCalTrkTrack ;
264 AliJetCalTrkTrack *n = new(tJetCalTrkTrack[fNJetCalTrkTrack++]) AliJetCalTrkTrack(track, cutFlag, signalFlag, ptCorr) ;
269 //----------------------------------------------------------------
270 AliJetCalTrkTrack* AliJetCalTrkEvent::AddCalTrkTrack(AliVParticle* track, Bool_t cutFlag, Bool_t signalFlag, Float_t ptCorr)
272 // Add a track to the CalTrkEvent
273 TClonesArray &tJetCalTrkTrack = *fJetCalTrkTrack ;
274 AliJetCalTrkTrack *n = new(tJetCalTrkTrack[fNJetCalTrkTrack++]) AliJetCalTrkTrack(track, cutFlag, signalFlag, ptCorr) ;
279 //_________________________________________________________________
280 AliJetCalTrkTrackKine* AliJetCalTrkEvent::AddCalTrkTrackKine(AliVParticle* track, Bool_t cutFlag, Bool_t signalFlag, Float_t ptReso)
282 // Add a track to the CalTrkEvent
283 TClonesArray &tJetCalTrkTrack = *fJetCalTrkTrack ;
284 AliJetCalTrkTrackKine *n = new(tJetCalTrkTrack[fNJetCalTrkTrack++]) AliJetCalTrkTrackKine(track, cutFlag, signalFlag, ptReso) ;
290 //----------------------------------------------------------------
291 AliJetCalTrkTrack* AliJetCalTrkEvent::GetCalTrkTrack(Int_t i)
294 return (AliJetCalTrkTrack*) fJetCalTrkTrack->At(i);
298 //-----------------------------------------------------------------
299 void AliJetCalTrkEvent::Clear(Option_t* /*option*/)
303 if(fJetCalTrkTrack) fJetCalTrkTrack->Clear("C"); // array of Tracks
304 fNJetCalTrkTrack = 0; // Number of tracks
307 //________________________________________________________________
308 void AliJetCalTrkEvent::Print(const Option_t* /*option*/) const
310 // prints event information
311 cout<< "Number of tracks:" << fNJetCalTrkTrack << endl;