RoiDescriptor Class Reference

Describes the Region of Ineterest geometry It has basically 9 parameters. More...

#include <RoiDescriptor.h>

Inheritance diagram for RoiDescriptor:
IRoiDescriptor TrigRoiDescriptor TrigSuperRoi

List of all members.

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
RoiDescriptoroperator= (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 IRoiDescriptorat (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

Detailed Description

Describes the Region of Ineterest geometry It has basically 9 parameters.

  1. zed : central z position of RoI
  2. zedMinus : most negative z position of the roi
  3. zedPlus : most positive z position of the roi
  4. phi : azimuthal angle (radians) of "centre" of RoI at origin in range from [-pi, pi]
  5. phiMinus : the most clockwise (negative phi direction) phi value for the RoI
  6. phiPlus : the most anti-clockwise (positive phi direction) phi value for the RoI
  7. eta : pseudo-rapidity of "centre" of RoI
  8. etaMinus : pseudo-rapidity at zedMinus
  9. etaPlus : pseudo-rapidity at zedPlus

Constructor & Destructor Documentation

RoiDescriptor::RoiDescriptor ( bool  fullscan = false  ) 

default constructor

Parameters:
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

Parameters:
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

Parameters:
etaMinus eta at rear of RoI
etaPlus eta at front of RoI
phiMinus minimum phi of RoI
phiPlus maximum phi of RoI

Member Function Documentation

virtual bool RoiDescriptor::composite (  )  const [inline, virtual]

SuperRoI compatability methods.

am I a SuperRoi?

Implements IRoiDescriptor.

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

See also:
RoiDescriptor( .... )

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]

Methods to retrieve data members.

directions

Implements IRoiDescriptor.

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

  • they are implemented here only because we had them in the original legacy interface

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.


Member Data Documentation

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


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on 15 Apr 2017 for RootCore Packages by  doxygen 1.6.1