1 ////////////////////////////////////////////////////////////////////////////////
3 // Author: Artur Szostak
4 // Email: artur@alice.phy.uct.ac.za | artursz@iafrica.com
6 ////////////////////////////////////////////////////////////////////////////////
8 #include "AliRoot/Track.hpp"
12 ClassImp(AliMUONHLT::Track)
18 Track::Track() : TObject()
25 Int_t triggerid, Int_t sign, Float_t momentum, Float_t pt,
26 const Point hits[10], const Region regions[10]
29 if (sign < -1 || +1 < sign)
32 Error("Track", "The particle sign was not one of -1, 0 or +1. Got %d", sign);
34 else if (momentum < pt)
37 Error("Track", "The momentum (%f) must be larger or equal to the pt (%f).",
44 Error("Track", "The pt must be a positive number. Got: %f", pt);
48 fTriggerID = triggerid;
52 for (Int_t i = 0; i < 10; i++)
55 fRegionOfInterest[i] = regions[i];
69 void Track::ParticleSign(Int_t value)
71 if (-1 <= value && value <= +1)
72 fParticleSign = value;
75 "The particle sign must be a value of -1, 0 or +1, but got %d",
81 void Track::P(Float_t value)
87 "Trying to assing momentum (%f) which is smaller than the pt value (%f).",
92 void Track::Pt(Float_t value)
100 "Trying to assign pt (%f) which is larger than the momentum value (%f).",
105 Error("Pt", "Cannot have a negative value pt. Got: %f", value);
109 Point& Track::Hit(UInt_t chamber)
112 return fHit[chamber];
116 "The chamber is out of range. Got: %d, but should be in [0..9].",
124 const Point& Track::Hit(UInt_t chamber) const
127 return fHit[chamber];
131 "The chamber is out of range. Got: %d, but should be in [0..9].",
139 void Track::Hit(UInt_t chamber, const Point& value)
142 fHit[chamber] = value;
145 "The chamber is out of range. Got: %d, but should be in [0..9].",
151 Region& Track::RegionOfInterest(UInt_t chamber)
154 return fRegionOfInterest[chamber];
157 Error("RegionOfInterest",
158 "The chamber is out of range. Got: %d, but should be in [0..9].",
161 return fRegionOfInterest[0];
166 const Region& Track::RegionOfInterest(UInt_t chamber) const
169 return fRegionOfInterest[chamber];
172 Error("RegionOfInterest",
173 "The chamber is out of range. Got: %d, but should be in [0..9].",
176 return fRegionOfInterest[0];
181 void Track::RegionOfInterest(UInt_t chamber, const Region& value)
184 fRegionOfInterest[chamber] = value;
186 Error("RegionOfInterest",
187 "The chamber is out of range. Got: %d, but should be in [0..9].",
193 Bool_t Track::HitsInRegions() const
195 for (Int_t i = 0; i < 10; i++)
197 if ( ! fRegionOfInterest[i].Contains(fHit[i]) )
204 ostream& operator << (ostream& os, const Track& t)
206 os << "{trigid: " << t.fTriggerID << ", sign: " << t.fParticleSign
207 << ", p: " << t.fP << ", pt: " << t.fPt << "}";