Describes the Region of Ineterest geometry It has basically 9 parameters. More...
#include <RoiDescriptor.h>
Public Member Functions | |
RoiDescriptor (bool fullscan=false) | |
default constructor | |
RoiDescriptor (double eta_, double etaMinus_, double etaPlus_, double phi_, double phiMinus_, double phiPlus_, double zed_=0, double zedMinus_=-zedWidthDefault, double zedPlus_=zedWidthDefault) | |
constructor | |
RoiDescriptor (double etaMinus_, double etaPlus_, double phiMinus_, double phiPlus_) | |
constructor | |
RoiDescriptor (const IRoiDescriptor &roi) | |
copy constructor | |
RoiDescriptor & | operator= (const IRoiDescriptor &r) |
double | phi () const |
Methods to retrieve data members. | |
double | eta () const |
double | zed () const |
virtual unsigned int | roiId () const |
virtual unsigned int | l1Id () const |
virtual unsigned int | roiWord () const |
double | zedPlus () const |
z at the most forward end of the RoI | |
double | zedMinus () const |
z at the most backward end of the RoI | |
double | etaPlus () const |
gets eta at zedPlus | |
double | etaMinus () const |
gets eta at zMinus | |
double | phiPlus () const |
gets phiPlus | |
double | phiMinus () const |
gets phiMinus | |
int | version () const |
versioning | |
void | version (int v) |
virtual | operator std::string () const |
output | |
bool | isFullscan () const |
is this a full scan RoI? | |
virtual bool | composite () const |
SuperRoI compatability methods. | |
virtual void | setComposite (bool b=true) |
virtual bool | manageConstituents () const |
always manage constituents ??? | |
virtual void | manageConstituents (bool b) |
virtual unsigned | size () const |
number of constituents | |
virtual const IRoiDescriptor * | at (int i) const |
find an RoiDescriptor constituent | |
void | clear () |
clear the vector | |
void | push_back (const IRoiDescriptor *roi) |
add and RoiDescriptor | |
roi_iterator | begin () const |
iterators | |
roi_iterator | end () const |
double | dzdrMinus () const |
methods to determine whether coordinates or stubs are within the RoI | |
double | dzdrPlus () const |
dz/dr at the front of the RoI | |
double | drdzMinus () const |
dr/dz at the rear of the RoI | |
double | drdzPlus () const |
dr/dz at the front of the RoI | |
double | zedMin (const double r) const |
double | zedMax (const double r) const |
double | zedOuterPlus () const |
z at the most forward end of the RoI | |
double | zedOuterMinus () const |
z at the most backward end of the RoI | |
double | rhoMin (const double z) const |
double | rhoMax (const double z) const |
Protected Member Functions | |
void | construct (double eta, double etaMinus, double etaPlus, double phi, double phiMinus, double phiPlus, double zed, double zedMinus, double zedPlus) |
construct RoiDescriptor internals - similar to constructors | |
void | construct (const IRoiDescriptor &_roi) |
Protected Attributes | |
float | m_phi |
phi of RoI center | |
float | m_eta |
eta of RoI center | |
float | m_zed |
zed of RoI center | |
float | m_phiMinus |
most negative RoI in azimuthal | |
float | m_phiPlus |
most positive RoI in azimuthal | |
float | m_etaMinus |
eta of RoI at zedMinus | |
float | m_etaPlus |
eta of RoI at zedPlus | |
float | m_zedMinus |
z position at most negative position along the beamline | |
float | m_zedPlus |
z position at most positive position along the beamline | |
float | m_dzdrMinus |
dz/dr at the rear of the RoI | |
float | m_dzdrPlus |
dz/dr at the front of the RoI | |
float | m_drdzMinus |
dr/dz at the rear of the RoI | |
float | m_drdzPlus |
dr/dz at the front of the RoI | |
float | m_zedOuterMinus |
z at rear of RoI at the outer radius ( = 1100 mm) | |
float | m_zedOuterPlus |
z at front of RoI at the outer radius ( = 1100 mm) | |
bool | m_fullscan |
flag this as a full detector RoI | |
bool | m_composite |
flag this as a composite RoI | |
bool | m_manageConstituents |
flag to determine whether consituents should be managed | |
int | m_version |
transient version identifier | |
std::vector< const IRoiDescriptor * > | m_roiDescriptors |
roi constituents | |
Static Protected Attributes | |
static const double | zedWidthDefault = 225 |
default parameters - there may be better ways, but this will do | |
Friends | |
class | TrigRoiDescriptorCnv_p2 |
class | TrigRoiDescriptorCnv_p3 |
Describes the Region of Ineterest geometry It has basically 9 parameters.
RoiDescriptor::RoiDescriptor | ( | bool | fullscan = false |
) |
default constructor
fullscan | if fullscan is true, this RoI will span the entire detector |
if full scan, give it full detector limits just in case anyone doesn't bother to check whether the fullscan flag is set Fixme: these fullscan limits probably need to be set from somewhere constistently. static class variables ???
RoiDescriptor::RoiDescriptor | ( | double | eta_, | |
double | etaMinus_, | |||
double | etaPlus_, | |||
double | phi_, | |||
double | phiMinus_, | |||
double | phiPlus_, | |||
double | zed_ = 0 , |
|||
double | zedMinus_ = -zedWidthDefault , |
|||
double | zedPlus_ = zedWidthDefault | |||
) |
constructor
eta | eta of RoI | |
etaMinus | eta at rear of RoI | |
etaPlus | eta at front of RoI | |
phi | phi of RoI | |
phiMinus | minimum phi of RoI | |
phiPlus | maximum phi of RoI | |
zed | zed of RoI | |
zedMinus | zed at rear of RoI | |
zedPlus | zed at front of RoI |
RoiDescriptor::RoiDescriptor | ( | double | etaMinus_, | |
double | etaPlus_, | |||
double | phiMinus_, | |||
double | phiPlus_ | |||
) |
constructor
etaMinus | eta at rear of RoI | |
etaPlus | eta at front of RoI | |
phiMinus | minimum phi of RoI | |
phiPlus | maximum phi of RoI |
virtual bool RoiDescriptor::composite | ( | ) | const [inline, virtual] |
void RoiDescriptor::construct | ( | double | eta, | |
double | etaMinus, | |||
double | etaPlus, | |||
double | phi, | |||
double | phiMinus, | |||
double | phiPlus, | |||
double | zed, | |||
double | zedMinus, | |||
double | zedPlus | |||
) | [protected] |
construct RoiDescriptor internals - similar to constructors
NB: deal with float to double issue This is a hack for the region selector - the RS uses double precision for the phi=pi boundary because the RoiDescriptor only uses a float, so pi is represented as 3.14159274 which is > M_PI so we have to subtract 1e-7 a bit to prevent it failing any phi>M_PI conditions
NB: see comment in double RoiDescriptor::phiPlus()
calculate the gradients - very useful these
double RoiDescriptor::dzdrMinus | ( | ) | const [inline, virtual] |
methods to determine whether coordinates or stubs are within the RoI
return the gradients dz/dr at the rear of the RoI
Implements IRoiDescriptor.
RoiDescriptor & RoiDescriptor::operator= | ( | const IRoiDescriptor & | r | ) |
manging it's own constituents, so take a deep copy
these are already managed elsewhere, just copy the pointers
Reimplemented in TrigRoiDescriptor.
double RoiDescriptor::phi | ( | ) | const [inline, virtual] |
double RoiDescriptor::rhoMin | ( | const double | z | ) | const [virtual] |
accessors to calculate r position at position z along the RoI boundaries
Implements IRoiDescriptor.
virtual unsigned int RoiDescriptor::roiId | ( | ) | const [inline, virtual] |
these quantities probably don't need to be used any more
Implements IRoiDescriptor.
Reimplemented in TrigRoiDescriptor.
double RoiDescriptor::zedMin | ( | const double | r | ) | const [virtual] |
methods to calculate z position at the RoI boundary at a given radius
Implements IRoiDescriptor.
const double RoiDescriptor::zedWidthDefault = 225 [static, protected] |
default parameters - there may be better ways, but this will do
This should be set by some static class function during the overall configuration - perhaps by an RoiBuilder class