eic-smear
1.0.3
A collection of ROOT classes for Monte Carlo events and a fast-smearing code simulating detector effects for the Electron-Ion Collider task force
|
Go to the documentation of this file.
22 struct NoIntersection {
23 bool operator()(
const TVector3& v)
const {
24 return TMath::IsNaN(v.z());
42 double zmin,
double zmax,
43 double Bb,
double nrl,
44 double sigmaRPhi,
double N)
50 , mZMin(std::min(zmin, zmax))
51 , mZMax(std::max(zmin, zmax)) {
58 std::cout << ClassName() <<
" with:" << std::endl <<
63 "\tmagnetic field " <<
mMagField <<
" Tesla\n" <<
65 "\tpoint resolution " <<
mSigmaRPhi * 1.e6 <<
" microns\n" <<
74 TVector3 intersection(0., 0., std::numeric_limits<double>::quiet_NaN());
77 intersection.SetXYZ(radius, 0., z);
87 TVector3 intersection(0., 0., std::numeric_limits<double>::quiet_NaN());
90 intersection.SetXYZ(r, 0., z);
105 std::list<TVector3> xyz;
111 xyz.erase(std::remove_if(xyz.begin(), xyz.end(), NoIntersection()),
117 TVector3 path(0., 0., 0.);
118 if (2 == xyz.size()) {
121 if (xyz.front().Mag() > xyz.back().Mag()) {
122 path = xyz.front() - xyz.back();
124 path = xyz.back() - xyz.front();
147 n = floor(n_float + 0.5);
double mZMin
Lower (most negative) z face.
virtual bool Accepts(const erhic::VirtualParticle &) const
Returns true if the particle falls within the angular acceptance defined via the input parameters.
TVector3 ComputeIntersectionWithPlane(const erhic::VirtualParticle &, double z) const
Compute the intersection point of the particle with an x-y plane at z.
double mInnerRadius
Inner radius (m)
double L(const erhic::VirtualParticle &) const
Returns the path length of the particle through the tracker in metres.
virtual double GetThetaMin() const
Returns the minimum theta of particles accepted by the tracker (radians).
double mOuterRadius
Outer radius (m)
virtual ~RadialTracker()
Destructor.
double mMagField
Magnetic field strength in Tesla.
virtual void Print(Option_t *="") const
Print information about this device to standard output.
RadialTracker()
Default constructor.
TVector3 ComputeIntersectionWithRadius(const erhic::VirtualParticle &, double radius) const
Compute the intersection point of the particle with a radial surface.
A cylindrical tracking detector.
double mSigmaRPhi
Point resolution.
double mNRadLengths
Number of radiation lengths (dimensionless)
TVector3 ComputePath(const erhic::VirtualParticle &) const
Computes the path vector, defined as (v2 - v1), where v1 and v2 are the position vectors of the parti...
double LPrime(const erhic::VirtualParticle &) const
Returns the transverse path length of the particle through the tracker in metres.
Abstract base class for a general particle.
double mNFitPoints
Number of fit points.
virtual TVector3 GetVertex() const =0
Returns the origin point of the particle in cm.
virtual Double_t GetTheta() const =0
Returns the polar angle in the range [0, pi] radians.
virtual int NPoints(const erhic::VirtualParticle &) const
Returns the number of measurement points for the particle.
virtual double GetThetaMax() const
Returns the maximum theta of particles accepted by the tracker (radians).
double mZMax
Upper (most positive) z face.