#include <RectangularStripTopology.h>
Public Member Functions | |
virtual int | channel (const LocalPoint &) const |
virtual LocalError | localError (float strip, float stripErr2) const |
virtual LocalError | localError (const MeasurementPoint &, const MeasurementError &) const |
virtual float | localPitch (const LocalPoint &) const |
virtual LocalPoint | localPosition (float strip) const |
virtual LocalPoint | localPosition (const MeasurementPoint &) const |
virtual float | localStripLength (const LocalPoint &) const |
virtual MeasurementError | measurementError (const LocalPoint &, const LocalError &) const |
virtual MeasurementPoint | measurementPosition (const LocalPoint &) const |
virtual int | nstrips () const |
virtual float | pitch () const |
RectangularStripTopology (int nstrips, float pitch, float detlength) | |
virtual float | strip (const LocalPoint &) const |
virtual float | stripAngle (float strip) const |
virtual float | stripLength () const |
Private Attributes | |
int | theNumberOfStrips |
float | theOffset |
float | thePitch |
float | theStripLength |
Specialised strip topology for rectangular barrel detectors. The strips are parallel to the local Y axis, so X is the precisely measured coordinate.
Definition at line 11 of file RectangularStripTopology.h.
RectangularStripTopology::RectangularStripTopology | ( | int | nstrips, |
float | pitch, | ||
float | detlength | ||
) |
Definition at line 7 of file RectangularStripTopology.cc.
References gather_cfg::cout, theNumberOfStrips, theOffset, and thePitch.
: thePitch(p), theNumberOfStrips(ns), theStripLength(l) { theOffset = -0.5f*theNumberOfStrips * thePitch; #ifdef VERBOSE cout <<"Constructing RectangularStripTopology with" <<" nstrips = "<<ns <<" pitch = "<<p <<" length = "<<l <<endl; #endif }
int RectangularStripTopology::channel | ( | const LocalPoint & | lp | ) | const [virtual] |
Implements Topology.
Definition at line 68 of file RectangularStripTopology.cc.
References min, strip(), and theNumberOfStrips.
{ return std::min(int(strip(lp)),theNumberOfStrips-1); }
LocalError RectangularStripTopology::localError | ( | float | strip, |
float | stripErr2 | ||
) | const [virtual] |
Implements StripTopology.
Definition at line 31 of file RectangularStripTopology.cc.
References f, thePitch, and theStripLength.
{ return LocalError(stripErr2 * thePitch*thePitch, 0.f, theStripLength*theStripLength*(1.f/12.f)); }
LocalError RectangularStripTopology::localError | ( | const MeasurementPoint & | , |
const MeasurementError & | merr | ||
) | const [virtual] |
Implements Topology.
Definition at line 38 of file RectangularStripTopology.cc.
References thePitch, theStripLength, MeasurementError::uu(), MeasurementError::uv(), and MeasurementError::vv().
{ return LocalError(merr.uu() * thePitch*thePitch, merr.uv() * thePitch*theStripLength, merr.vv() * theStripLength*theStripLength); }
float RectangularStripTopology::localPitch | ( | const LocalPoint & | ) | const [virtual] |
Implements StripTopology.
Definition at line 78 of file RectangularStripTopology.cc.
References thePitch.
{ return thePitch; }
LocalPoint RectangularStripTopology::localPosition | ( | const MeasurementPoint & | mp | ) | const [virtual] |
Implements Topology.
Definition at line 26 of file RectangularStripTopology.cc.
References theOffset, thePitch, theStripLength, PV2DBase< T, PVType, FrameType >::x(), and PV2DBase< T, PVType, FrameType >::y().
{ return LocalPoint( mp.x()*thePitch+theOffset, mp.y()*theStripLength); }
LocalPoint RectangularStripTopology::localPosition | ( | float | strip | ) | const [virtual] |
Implements StripTopology.
Definition at line 21 of file RectangularStripTopology.cc.
References f, theOffset, and thePitch.
Referenced by RPCEfficiency::analyze(), DTSegtoRPC::DTSegtoRPC(), RPCSimAverageNoise::simulateNoise(), RPCSimTriv::simulateNoise(), RPCSimAverage::simulateNoise(), RPCSimSimple::simulateNoise(), RPCSimAverageNoiseEff::simulateNoise(), RPCSimAverageNoiseEffCls::simulateNoise(), RPCSimParam::simulateNoise(), and TracktoRPC::TracktoRPC().
{ return LocalPoint( strip*thePitch + theOffset, 0.0f); }
virtual float RectangularStripTopology::localStripLength | ( | const LocalPoint & | ) | const [inline, virtual] |
Implements StripTopology.
Definition at line 45 of file RectangularStripTopology.h.
References stripLength().
{ return stripLength(); }
MeasurementError RectangularStripTopology::measurementError | ( | const LocalPoint & | , |
const LocalError & | lerr | ||
) | const [virtual] |
Implements Topology.
Definition at line 60 of file RectangularStripTopology.cc.
References thePitch, theStripLength, LocalError::xx(), LocalError::xy(), and LocalError::yy().
{ return MeasurementError(lerr.xx()/(thePitch*thePitch), lerr.xy()/(thePitch*theStripLength), lerr.yy()/(theStripLength*theStripLength)); }
MeasurementPoint RectangularStripTopology::measurementPosition | ( | const LocalPoint & | lp | ) | const [virtual] |
Implements Topology.
Definition at line 54 of file RectangularStripTopology.cc.
References theOffset, thePitch, theStripLength, PV3DBase< T, PVType, FrameType >::x(), and PV3DBase< T, PVType, FrameType >::y().
{ return MeasurementPoint((lp.x()-theOffset)/thePitch, lp.y()/theStripLength); }
int RectangularStripTopology::nstrips | ( | ) | const [virtual] |
Implements StripTopology.
Definition at line 88 of file RectangularStripTopology.cc.
References theNumberOfStrips.
{ return theNumberOfStrips; }
float RectangularStripTopology::pitch | ( | ) | const [virtual] |
Implements StripTopology.
Definition at line 73 of file RectangularStripTopology.cc.
References thePitch.
Referenced by RPCEfficiency::analyze(), and DTSegtoRPC::DTSegtoRPC().
{ return thePitch; }
float RectangularStripTopology::strip | ( | const LocalPoint & | lp | ) | const [virtual] |
Implements StripTopology.
Definition at line 46 of file RectangularStripTopology.cc.
References theNumberOfStrips, theOffset, thePitch, and PV3DBase< T, PVType, FrameType >::x().
Referenced by channel(), and SiClusterTranslator::produce().
{ float aStrip = (lp.x() - theOffset) / thePitch; if (aStrip < 0 ) aStrip = 0; else if (aStrip > theNumberOfStrips) aStrip = theNumberOfStrips; return aStrip; }
float RectangularStripTopology::stripAngle | ( | float | strip | ) | const [virtual] |
virtual float RectangularStripTopology::stripLength | ( | ) | const [inline, virtual] |
Implements StripTopology.
Definition at line 43 of file RectangularStripTopology.h.
References theStripLength.
Referenced by RPCEfficiency::analyze(), DTSegtoRPC::DTSegtoRPC(), RPCSynchronizer::getSimHitBx(), localStripLength(), RPCSimAverageNoise::simulateNoise(), RPCSimTriv::simulateNoise(), RPCSimAverage::simulateNoise(), RPCSimSimple::simulateNoise(), RPCSimAverageNoiseEff::simulateNoise(), RPCSimParam::simulateNoise(), RPCSimAverageNoiseEffCls::simulateNoise(), and TracktoRPC::TracktoRPC().
{return theStripLength;}
int RectangularStripTopology::theNumberOfStrips [private] |
Definition at line 51 of file RectangularStripTopology.h.
Referenced by channel(), nstrips(), RectangularStripTopology(), and strip().
float RectangularStripTopology::theOffset [private] |
Definition at line 53 of file RectangularStripTopology.h.
Referenced by localPosition(), measurementPosition(), RectangularStripTopology(), and strip().
float RectangularStripTopology::thePitch [private] |
Definition at line 50 of file RectangularStripTopology.h.
Referenced by localError(), localPitch(), localPosition(), measurementError(), measurementPosition(), pitch(), RectangularStripTopology(), and strip().
float RectangularStripTopology::theStripLength [private] |
Definition at line 52 of file RectangularStripTopology.h.
Referenced by localError(), localPosition(), measurementError(), measurementPosition(), and stripLength().