ATLAS Offline Software
Loading...
Searching...
No Matches
RoiDescriptor Class Reference

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

#include <RoiDescriptor.h>

Inheritance diagram for RoiDescriptor:
Collaboration diagram for RoiDescriptor:

Public Types

typedef std::vector< constIRoiDescriptor * >::const_iterator roi_iterator

Public Member Functions

 RoiDescriptor (bool fullscan=ROI)
 default constructor
 RoiDescriptor (double eta_, double etaMinus_, double etaPlus_, double phi_, double phiMinus_, double phiPlus_, double zed_=0, double zedMinus_=-s_zedWidthDefault, double zedPlus_=s_zedWidthDefault)
 constructor
 RoiDescriptor (double etaMinus_, double etaPlus_, double phiMinus_, double phiPlus_)
 constructor
 RoiDescriptor (const IRoiDescriptor &roi)
 copy constructors
RoiDescriptoroperator= (const IRoiDescriptor &r)
 RoiDescriptor (const RoiDescriptor &roi)
RoiDescriptoroperator= (const RoiDescriptor &r)
virtual ~RoiDescriptor ()
virtual double phi () const override final
 Methods to retrieve data members.
virtual double eta () const override final
virtual double zed () const override final
virtual unsigned int roiId () const override
 these quantities probably don't need to be used any more
virtual unsigned int l1Id () const override
virtual unsigned int roiWord () const override
virtual double zedPlus () const override final
 z at the most forward end of the RoI
virtual double zedMinus () const override final
 z at the most backward end of the RoI
virtual double etaPlus () const override final
 gets eta at zedPlus
virtual double etaMinus () const override final
 gets eta at zMinus
virtual double phiPlus () const override final
 gets phiPlus
virtual double phiMinus () const override final
 gets phiMinus
virtual int version () const override final
 versioning
void version (int v)
virtual operator std::string () const override
 output
virtual bool isFullscan () const override final
 is this a full scan RoI?
virtual bool composite () const override final
 SuperRoI compatability methods.
void setComposite (bool b=true)
bool manageConstituents () const
 always manage constituents ???
void manageConstituents (bool b)
virtual unsigned size () const override final
 number of constituents
virtual const IRoiDescriptorat (int i) const override final
 find an RoiDescriptor constituent
void clear ()
 clear the vector
void reserve (size_t s)
 reserve elements in vector
void push_back (const IRoiDescriptor *roi)
 add a RoiDescriptor
virtual roi_iterator begin () const override final
 iterators
virtual roi_iterator end () const override final
virtual double dzdrMinus () const override final
 return the gradients
virtual double dzdrPlus () const override final
 dz/dr at the front of the RoI
virtual double drdzMinus () const override final
 dr/dz at the rear of the RoI
virtual double drdzPlus () const override final
 dr/dz at the front of the RoI
virtual double zedMin (double r) const override final
 methods to calculate z position at the RoI boundary at a given radius
virtual double zedMax (double r) const override final
virtual double zedOuterPlus () const override final
 z at the most forward end of the RoI
virtual double zedOuterMinus () const override final
 z at the most backward end of the RoI
virtual double rhoMin (double z) const override final
 accessors to calculate r position at position z along the RoI boundaries
virtual double rhoMax (double z) const override final

Static Public Member Functions

static double zedWidthDefault ()
static void zedWidthDefault (double d)
 set default z-width (but only before any RoiDescriptor has been created)

Static Public Attributes

static constexpr bool FULLSCAN = true
 convenient
static constexpr bool ROI = false

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 std::atomic< double > s_zedWidthDefault = 225
 default parameters - there may be better ways, but this will do
static std::atomic< bool > s_firstInstanceCreated = false
 to ensure default width is only set once at job startup

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

Definition at line 40 of file RoiDescriptor.h.

Member Typedef Documentation

◆ roi_iterator

typedef std::vector<constIRoiDescriptor*>::const_iterator IRoiDescriptor::roi_iterator
inherited

Definition at line 28 of file IRoiDescriptor.h.

Constructor & Destructor Documentation

◆ RoiDescriptor() [1/5]

RoiDescriptor::RoiDescriptor ( bool fullscan = ROI)

default constructor

Parameters
fullscanif 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 ???

Definition at line 41 of file RoiDescriptor.cxx.

42 : m_phi(0), m_eta(0), m_zed(0),
43 m_phiMinus(0), m_phiPlus(0),
44 m_etaMinus(0), m_etaPlus(0),
46 m_dzdrMinus(0), m_dzdrPlus(0),
47 m_drdzMinus(0), m_drdzPlus(0),
49 m_fullscan(fullscan),
50 m_composite(false),
52 m_version(RoiVersion)
53{
59 if ( m_fullscan ) construct( 0, -5, 5, 0, -M_PI, M_PI, 0, -s_zedWidthDefault, s_zedWidthDefault );
60}
#define M_PI
float m_etaPlus
eta of RoI at zedPlus
float m_phi
phi of RoI center
float m_eta
eta of RoI center
float m_dzdrPlus
dz/dr at the front of the RoI
float m_etaMinus
eta of RoI at zedMinus
float m_zedOuterMinus
z at rear of RoI at the outer radius ( = 1100 mm)
int m_version
transient version identifier
float m_zedMinus
z position at most negative position along the beamline
bool m_composite
flag this as a composite RoI
bool m_manageConstituents
flag to determine whether consituents should be managed
float m_dzdrMinus
dz/dr at the rear of the RoI
float m_drdzPlus
dr/dz at the front of the RoI
float m_zed
zed of RoI center
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
static std::atomic< double > s_zedWidthDefault
default parameters - there may be better ways, but this will do
float m_drdzMinus
dr/dz at the rear of the RoI
float m_phiMinus
most negative RoI in azimuthal
bool m_fullscan
flag this as a full detector RoI
float m_phiPlus
most positive RoI in azimuthal
float m_zedPlus
z position at most positive position along the beamline
float m_zedOuterPlus
z at front of RoI at the outer radius ( = 1100 mm)

◆ RoiDescriptor() [2/5]

RoiDescriptor::RoiDescriptor ( double eta_,
double etaMinus_,
double etaPlus_,
double phi_,
double phiMinus_,
double phiPlus_,
double zed_ = 0,
double zedMinus_ = -s_zedWidthDefault,
double zedPlus_ = s_zedWidthDefault )

constructor

Parameters
etaeta of RoI
etaMinuseta at rear of RoI
etaPluseta at front of RoI
phiphi of RoI
phiMinusminimum phi of RoI
phiPlusmaximum phi of RoI
zedzed of RoI
zedMinuszed at rear of RoI
zedPluszed at front of RoI

Definition at line 63 of file RoiDescriptor.cxx.

67 m_phiMinus(0), m_phiPlus(0),
68 m_etaMinus(0), m_etaPlus(0),
69 m_zedMinus(0), m_zedPlus(0),
70 m_dzdrMinus(0), m_dzdrPlus(0),
71 m_drdzMinus(0), m_drdzPlus(0),
73 m_fullscan(false),
74 m_composite(false),
76 m_version(RoiVersion)
77{
78 construct( eta_, etaMinus_, etaPlus_, phi_, phiMinus_, phiPlus_, zed_, zedMinus_, zedPlus_ );
79}
double zedcheck(double zed)
Definition RoiUtil.cxx:141
double etacheck(double eta)
Definition RoiUtil.cxx:133
double phicheck(double phi)
basic range checkers
Definition RoiUtil.cxx:123

◆ RoiDescriptor() [3/5]

RoiDescriptor::RoiDescriptor ( double etaMinus_,
double etaPlus_,
double phiMinus_,
double phiPlus_ )

constructor

Parameters
etaMinuseta at rear of RoI
etaPluseta at front of RoI
phiMinusminimum phi of RoI
phiPlusmaximum phi of RoI

Definition at line 82 of file RoiDescriptor.cxx.

84 : m_phi(0), m_eta(0), m_zed(0),
85 m_phiMinus(0), m_phiPlus(0),
86 m_etaMinus(0), m_etaPlus(0),
87 m_zedMinus(0), m_zedPlus(0),
88 m_dzdrMinus(0), m_dzdrPlus(0),
89 m_drdzMinus(0), m_drdzPlus(0),
91 m_fullscan(false),
92 m_composite(false),
94 m_version(RoiVersion)
95{
96 double eta_ = 0.5*(etaMinus_+etaPlus_);
97 double phi_ = 0.5*(phiMinus_+phiPlus_);
98
99 if ( phiMinus_>phiPlus_ ) phi_ += M_PI;
100 if ( phi_<-M_PI ) phi_ += M_2PI;
101 if ( phi_>M_PI ) phi_ -= M_2PI;
102
103 construct( eta_, etaMinus_, etaPlus_, phi_, phiMinus_, phiPlus_, 0, -s_zedWidthDefault, s_zedWidthDefault );
104}
#define M_2PI

◆ RoiDescriptor() [4/5]

RoiDescriptor::RoiDescriptor ( const IRoiDescriptor & roi)

copy constructors

Definition at line 107 of file RoiDescriptor.cxx.

107 :
108 m_phi(roi.phi()), m_eta(roi.eta()), m_zed(roi.zed()),
109 m_phiMinus(0), m_phiPlus(0),
110 m_etaMinus(0), m_etaPlus(0),
111 m_zedMinus(0), m_zedPlus(0),
112 m_dzdrMinus(0), m_dzdrPlus(0),
113 m_drdzMinus(0), m_drdzPlus(0),
115 m_fullscan(roi.isFullscan()),
116 m_composite(roi.composite()),
118 m_version(roi.version()) {
119
121
122}
virtual bool isFullscan() const =0
is this a full detector RoI?
virtual double eta() const =0
virtual int version() const =0
which roi version?
virtual double phi() const =0
Methods to retrieve data members.
virtual double zed() const =0
virtual bool composite() const =0
Super RoI access methods.
RoiDescriptor & operator=(const IRoiDescriptor &r)

◆ RoiDescriptor() [5/5]

RoiDescriptor::RoiDescriptor ( const RoiDescriptor & roi)

Definition at line 124 of file RoiDescriptor.cxx.

124: RoiDescriptor( static_cast<const IRoiDescriptor&>(roi) ) { }
IRoiDescriptor()
default constructor
RoiDescriptor(bool fullscan=ROI)
default constructor

◆ ~RoiDescriptor()

RoiDescriptor::~RoiDescriptor ( )
virtual

Definition at line 155 of file RoiDescriptor.cxx.

155 {
156 if ( manageConstituents() ) for ( roi_iterator itr=begin() ; itr!=end() ; itr++ ) delete *itr;
157}
std::vector< constIRoiDescriptor * >::const_iterator roi_iterator
bool manageConstituents() const
always manage constituents ???
virtual roi_iterator begin() const override final
iterators
virtual roi_iterator end() const override final

Member Function Documentation

◆ at()

virtual const IRoiDescriptor * RoiDescriptor::at ( int i) const
inlinefinaloverridevirtual

find an RoiDescriptor constituent

Implements IRoiDescriptor.

Definition at line 148 of file RoiDescriptor.h.

148{ return m_roiDescriptors.at(i); }
std::vector< const IRoiDescriptor * > m_roiDescriptors
roi constituents

◆ begin()

virtual roi_iterator RoiDescriptor::begin ( ) const
inlinefinaloverridevirtual

iterators

Implements IRoiDescriptor.

Definition at line 160 of file RoiDescriptor.h.

160{ return m_roiDescriptors.begin(); }

◆ clear()

void RoiDescriptor::clear ( )
inline

clear the vector

Definition at line 151 of file RoiDescriptor.h.

151{ m_roiDescriptors.clear(); } // setComposite(false); }

◆ composite()

virtual bool RoiDescriptor::composite ( ) const
inlinefinaloverridevirtual

SuperRoI compatability methods.

am I a SuperRoi?

Implements IRoiDescriptor.

Definition at line 137 of file RoiDescriptor.h.

137{ return m_composite; }

◆ construct() [1/2]

void RoiDescriptor::construct ( const IRoiDescriptor & _roi)
protected

Definition at line 236 of file RoiDescriptor.cxx.

236 {
237 construct( roi.eta(), roi.etaMinus(), roi.etaPlus(),
238 roi.phi(), roi.phiMinus(), roi.phiPlus(),
239 roi.zed(), roi.zedMinus(), roi.zedPlus() );
240}

◆ construct() [2/2]

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

Definition at line 160 of file RoiDescriptor.cxx.

163{
165
166 m_eta = eta_;
167 m_phi = phi_;
168 m_zed = zed_;
169
170 if ( std::isnan(m_eta) ) throw std::invalid_argument( "RoiDescriptor: eta nan" );
171 if ( std::isnan(m_phi) ) throw std::invalid_argument( "RoiDescriptor: phi nan" );
172 if ( std::isnan(m_zed) ) throw std::invalid_argument( "RoiDescriptor: zed nan" );
173
174
175 m_etaPlus = etaPlus_;
176 m_etaMinus = etaMinus_;
177
178 if ( std::isnan(m_etaPlus) ) throw std::invalid_argument( "RoiDescriptor: etaPlus nan" );
179 if ( std::isnan(m_etaMinus) ) throw std::invalid_argument( "RoiDescriptor: etaMinus nan" );
180
181
182 m_zedMinus = zedMinus_;
183 m_zedPlus = zedPlus_;
184
185 if ( std::isnan(m_zedPlus) ) throw std::invalid_argument( "RoiDescriptor: zedPlus nan" );
186 if ( std::isnan(m_zedMinus) ) throw std::invalid_argument( "RoiDescriptor: zedMinus nan" );
187
188
189 // deal with double -> float M_PI conversion
190
191 m_phiPlus = phiPlus_;
192
193 if ( std::isnan(m_phiPlus) ) throw std::invalid_argument( "RoiDescriptor: phiPlus nan" );
194
195
196 while ( m_phiPlus> M_PIF ) m_phiPlus -= M_2PI;
197 while ( m_phiPlus<-M_PIF ) m_phiPlus += M_2PI;
205 if ( m_phiPlus> M_PI ) m_phiPlus -= 1e-7;
206 if ( m_phiPlus<-M_PI ) m_phiPlus += 1e-7;
207
208
209 m_phiMinus = phiMinus_;
210
211 if ( std::isnan(m_phiMinus) ) throw std::invalid_argument( "RoiDescriptor: phiMinus nan" );
212
213 while ( m_phiMinus<-M_PIF ) m_phiMinus += M_2PI;
214 while ( m_phiMinus> M_PIF ) m_phiMinus -= M_2PI;
216 if ( m_phiMinus> M_PI ) m_phiMinus -= 1e-7;
217 if ( m_phiMinus<-M_PI ) m_phiMinus += 1e-7;
218
219
221
222 m_drdzMinus = std::tan(2*std::atan(std::exp(-etaMinus_)));
223 m_drdzPlus = std::tan(2*std::atan(std::exp(-etaPlus_)));
224
227
228 const double maxR = 1100; // maximum radius of an ID RoI, hmmm should be a configurable parameter?
229
232
233}
static const float M_PIF
static std::atomic< bool > s_firstInstanceCreated
to ensure default width is only set once at job startup

◆ drdzMinus()

virtual double RoiDescriptor::drdzMinus ( ) const
inlinefinaloverridevirtual

dr/dz at the rear of the RoI

Implements IRoiDescriptor.

Definition at line 167 of file RoiDescriptor.h.

◆ drdzPlus()

virtual double RoiDescriptor::drdzPlus ( ) const
inlinefinaloverridevirtual

dr/dz at the front of the RoI

Implements IRoiDescriptor.

Definition at line 168 of file RoiDescriptor.h.

◆ dzdrMinus()

virtual double RoiDescriptor::dzdrMinus ( ) const
inlinefinaloverridevirtual

return the gradients

dz/dr at the rear of the RoI

Implements IRoiDescriptor.

Definition at line 164 of file RoiDescriptor.h.

◆ dzdrPlus()

virtual double RoiDescriptor::dzdrPlus ( ) const
inlinefinaloverridevirtual

dz/dr at the front of the RoI

Implements IRoiDescriptor.

Definition at line 165 of file RoiDescriptor.h.

◆ end()

virtual roi_iterator RoiDescriptor::end ( ) const
inlinefinaloverridevirtual

Implements IRoiDescriptor.

Definition at line 161 of file RoiDescriptor.h.

161{ return m_roiDescriptors.end(); }

◆ eta()

virtual double RoiDescriptor::eta ( ) const
inlinefinaloverridevirtual

Implements IRoiDescriptor.

Definition at line 101 of file RoiDescriptor.h.

101{ return m_eta; }

◆ etaMinus()

virtual double RoiDescriptor::etaMinus ( ) const
inlinefinaloverridevirtual

gets eta at zMinus

Implements IRoiDescriptor.

Definition at line 116 of file RoiDescriptor.h.

◆ etaPlus()

virtual double RoiDescriptor::etaPlus ( ) const
inlinefinaloverridevirtual

gets eta at zedPlus

Implements IRoiDescriptor.

Definition at line 115 of file RoiDescriptor.h.

◆ isFullscan()

virtual bool RoiDescriptor::isFullscan ( ) const
inlinefinaloverridevirtual

is this a full scan RoI?

Implements IRoiDescriptor.

Definition at line 132 of file RoiDescriptor.h.

132{ return m_fullscan; }

◆ l1Id()

virtual unsigned int RoiDescriptor::l1Id ( ) const
inlineoverridevirtual

Implements IRoiDescriptor.

Reimplemented in TrigRoiDescriptor.

Definition at line 109 of file RoiDescriptor.h.

109{ return 0; }

◆ manageConstituents() [1/2]

bool RoiDescriptor::manageConstituents ( ) const
inline

always manage constituents ???

Definition at line 141 of file RoiDescriptor.h.

141{ return m_manageConstituents; }

◆ manageConstituents() [2/2]

void RoiDescriptor::manageConstituents ( bool b)
inline

Definition at line 142 of file RoiDescriptor.h.

◆ operator std::string()

RoiDescriptor::operator std::string ( ) const
overridevirtual

output

Implements IRoiDescriptor.

Reimplemented in TrigRoiDescriptor.

Definition at line 255 of file RoiDescriptor.cxx.

255 {
256 std::stringstream ss;
257 ss << " z: " << zed() << " (" << zedMinus() << " - " << zedPlus() << ")"
258 << " eta: " << eta() << " (" << etaMinus() << " - " << etaPlus() << ")"
259 << " phi: " << phi() << " (" << phiMinus() << " - " << phiPlus() << ")"
260 << ( isFullscan() ? " - fullscan": "" );
261 if ( composite() ) {
262 ss << "\t : components: " << size() << "\n";
263 for ( unsigned i=0 ; i<size() ; i++ ) ss << "\t\t" << i << " " << at(i) << " " << *at(i) << "\n";
264 }
265 return ss.str();
266}
static Double_t ss
virtual double etaMinus() const override final
gets eta at zMinus
virtual double etaPlus() const override final
gets eta at zedPlus
virtual double zed() const override final
virtual bool isFullscan() const override final
is this a full scan RoI?
virtual double phi() const override final
Methods to retrieve data members.
virtual double phiMinus() const override final
gets phiMinus
virtual double zedPlus() const override final
z at the most forward end of the RoI
virtual double zedMinus() const override final
z at the most backward end of the RoI
virtual const IRoiDescriptor * at(int i) const override final
find an RoiDescriptor constituent
virtual unsigned size() const override final
number of constituents
virtual double eta() const override final
virtual bool composite() const override final
SuperRoI compatability methods.
virtual double phiPlus() const override final
gets phiPlus

◆ operator=() [1/2]

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

Definition at line 127 of file RoiDescriptor.cxx.

127 {
128
129 if ( this==&roi ) return *this;
130 construct( roi );
131 m_fullscan = roi.isFullscan();
132 m_composite = roi.composite();
134 m_version = roi.version();
135
136 if ( roi.size()>0 ) {
137 if ( m_manageConstituents ) {
139 for ( unsigned i=0 ; i<roi.size() ; i++ ) push_back( new RoiDescriptor( *roi.at(i) ) );
140 }
141 else {
143 for ( unsigned i=0 ; i<roi.size() ; i++ ) push_back( roi.at(i) );
144 }
145 }
146
147 return *this;
148}
void push_back(const IRoiDescriptor *roi)
add a RoiDescriptor

◆ operator=() [2/2]

RoiDescriptor & RoiDescriptor::operator= ( const RoiDescriptor & r)

Definition at line 151 of file RoiDescriptor.cxx.

151{ return operator=( static_cast<const IRoiDescriptor&>(roi) ); }

◆ phi()

virtual double RoiDescriptor::phi ( ) const
inlinefinaloverridevirtual

Methods to retrieve data members.

directions

Implements IRoiDescriptor.

Definition at line 100 of file RoiDescriptor.h.

100{ return m_phi; }

◆ phiMinus()

virtual double RoiDescriptor::phiMinus ( ) const
inlinefinaloverridevirtual

gets phiMinus

Implements IRoiDescriptor.

Definition at line 119 of file RoiDescriptor.h.

◆ phiPlus()

virtual double RoiDescriptor::phiPlus ( ) const
inlinefinaloverridevirtual

gets phiPlus

Implements IRoiDescriptor.

Definition at line 118 of file RoiDescriptor.h.

◆ push_back()

void RoiDescriptor::push_back ( const IRoiDescriptor * roi)
inline

add a RoiDescriptor

Definition at line 157 of file RoiDescriptor.h.

157{ m_roiDescriptors.push_back(roi); setComposite(true); }
void setComposite(bool b=true)

◆ reserve()

void RoiDescriptor::reserve ( size_t s)
inline

reserve elements in vector

Definition at line 154 of file RoiDescriptor.h.

154{ m_roiDescriptors.reserve(s); }

◆ rhoMax()

double RoiDescriptor::rhoMax ( double z) const
finaloverridevirtual

Implements IRoiDescriptor.

Definition at line 248 of file RoiDescriptor.cxx.

248{ return (z-m_zedPlus)*m_drdzPlus ; }
#define z

◆ rhoMin()

double RoiDescriptor::rhoMin ( double z) const
finaloverridevirtual

accessors to calculate r position at position z along the RoI boundaries

Implements IRoiDescriptor.

Definition at line 247 of file RoiDescriptor.cxx.

247{ return (z-m_zedMinus)*m_drdzMinus; }

◆ roiId()

virtual unsigned int RoiDescriptor::roiId ( ) const
inlineoverridevirtual

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.

Definition at line 108 of file RoiDescriptor.h.

108{ return 0; }

◆ roiWord()

virtual unsigned int RoiDescriptor::roiWord ( ) const
inlineoverridevirtual

Implements IRoiDescriptor.

Reimplemented in TrigRoiDescriptor.

Definition at line 110 of file RoiDescriptor.h.

110{ return 0; }

◆ setComposite()

void RoiDescriptor::setComposite ( bool b = true)
inline

Definition at line 138 of file RoiDescriptor.h.

138{ m_composite=b; }

◆ size()

virtual unsigned RoiDescriptor::size ( ) const
inlinefinaloverridevirtual

number of constituents

Implements IRoiDescriptor.

Definition at line 145 of file RoiDescriptor.h.

145{ return m_roiDescriptors.size(); }

◆ version() [1/2]

virtual int RoiDescriptor::version ( ) const
inlinefinaloverridevirtual

versioning

Implements IRoiDescriptor.

Definition at line 123 of file RoiDescriptor.h.

123{ return m_version; }

◆ version() [2/2]

void RoiDescriptor::version ( int v)
inline

Definition at line 124 of file RoiDescriptor.h.

◆ zed()

virtual double RoiDescriptor::zed ( ) const
inlinefinaloverridevirtual

Implements IRoiDescriptor.

Definition at line 102 of file RoiDescriptor.h.

102{ return m_zed; }

◆ zedMax()

double RoiDescriptor::zedMax ( double r) const
finaloverridevirtual

Implements IRoiDescriptor.

Definition at line 245 of file RoiDescriptor.cxx.

245{ return r*m_dzdrPlus+m_zedPlus; }
int r
Definition globals.cxx:22

◆ zedMin()

double RoiDescriptor::zedMin ( double r) const
finaloverridevirtual

methods to calculate z position at the RoI boundary at a given radius

Implements IRoiDescriptor.

Definition at line 244 of file RoiDescriptor.cxx.

244{ return r*m_dzdrMinus+m_zedMinus; }

◆ zedMinus()

virtual double RoiDescriptor::zedMinus ( ) const
inlinefinaloverridevirtual

z at the most backward end of the RoI

Implements IRoiDescriptor.

Definition at line 113 of file RoiDescriptor.h.

◆ zedOuterMinus()

virtual double RoiDescriptor::zedOuterMinus ( ) const
inlinefinaloverridevirtual

z at the most backward end of the RoI

Implements IRoiDescriptor.

Definition at line 176 of file RoiDescriptor.h.

◆ zedOuterPlus()

virtual double RoiDescriptor::zedOuterPlus ( ) const
inlinefinaloverridevirtual

z at the most forward end of the RoI

Implements IRoiDescriptor.

Definition at line 175 of file RoiDescriptor.h.

◆ zedPlus()

virtual double RoiDescriptor::zedPlus ( ) const
inlinefinaloverridevirtual

z at the most forward end of the RoI

Implements IRoiDescriptor.

Definition at line 112 of file RoiDescriptor.h.

◆ zedWidthDefault() [1/2]

double RoiDescriptor::zedWidthDefault ( )
inlinestatic

Definition at line 183 of file RoiDescriptor.h.

183{ return s_zedWidthDefault; }

◆ zedWidthDefault() [2/2]

void RoiDescriptor::zedWidthDefault ( double d)
static

set default z-width (but only before any RoiDescriptor has been created)

Definition at line 33 of file RoiDescriptor.cxx.

34{
36 throw std::runtime_error("Cannot set default z-width because a RoiDescriptor has already been created");
37 }
39}

◆ TrigRoiDescriptorCnv_p2

friend class TrigRoiDescriptorCnv_p2
friend

Definition at line 190 of file RoiDescriptor.h.

◆ TrigRoiDescriptorCnv_p3

friend class TrigRoiDescriptorCnv_p3
friend

Definition at line 191 of file RoiDescriptor.h.

Member Data Documentation

◆ FULLSCAN

bool RoiDescriptor::FULLSCAN = true
staticconstexpr

convenient

Definition at line 45 of file RoiDescriptor.h.

◆ m_composite

bool RoiDescriptor::m_composite
protected

flag this as a composite RoI

Definition at line 233 of file RoiDescriptor.h.

◆ m_drdzMinus

float RoiDescriptor::m_drdzMinus
protected

dr/dz at the rear of the RoI

Definition at line 226 of file RoiDescriptor.h.

◆ m_drdzPlus

float RoiDescriptor::m_drdzPlus
protected

dr/dz at the front of the RoI

Definition at line 227 of file RoiDescriptor.h.

◆ m_dzdrMinus

float RoiDescriptor::m_dzdrMinus
protected

dz/dr at the rear of the RoI

Definition at line 223 of file RoiDescriptor.h.

◆ m_dzdrPlus

float RoiDescriptor::m_dzdrPlus
protected

dz/dr at the front of the RoI

Definition at line 224 of file RoiDescriptor.h.

◆ m_eta

float RoiDescriptor::m_eta
protected

eta of RoI center

Definition at line 213 of file RoiDescriptor.h.

◆ m_etaMinus

float RoiDescriptor::m_etaMinus
protected

eta of RoI at zedMinus

Definition at line 218 of file RoiDescriptor.h.

◆ m_etaPlus

float RoiDescriptor::m_etaPlus
protected

eta of RoI at zedPlus

Definition at line 219 of file RoiDescriptor.h.

◆ m_fullscan

bool RoiDescriptor::m_fullscan
protected

flag this as a full detector RoI

Definition at line 232 of file RoiDescriptor.h.

◆ m_manageConstituents

bool RoiDescriptor::m_manageConstituents
protected

flag to determine whether consituents should be managed

Definition at line 234 of file RoiDescriptor.h.

◆ m_phi

float RoiDescriptor::m_phi
protected

phi of RoI center

Definition at line 212 of file RoiDescriptor.h.

◆ m_phiMinus

float RoiDescriptor::m_phiMinus
protected

most negative RoI in azimuthal

Definition at line 216 of file RoiDescriptor.h.

◆ m_phiPlus

float RoiDescriptor::m_phiPlus
protected

most positive RoI in azimuthal

Definition at line 217 of file RoiDescriptor.h.

◆ m_roiDescriptors

std::vector<const IRoiDescriptor*> RoiDescriptor::m_roiDescriptors
protected

roi constituents

Definition at line 238 of file RoiDescriptor.h.

◆ m_version

int RoiDescriptor::m_version
protected

transient version identifier

Definition at line 236 of file RoiDescriptor.h.

◆ m_zed

float RoiDescriptor::m_zed
protected

zed of RoI center

Definition at line 214 of file RoiDescriptor.h.

◆ m_zedMinus

float RoiDescriptor::m_zedMinus
protected

z position at most negative position along the beamline

Definition at line 220 of file RoiDescriptor.h.

◆ m_zedOuterMinus

float RoiDescriptor::m_zedOuterMinus
protected

z at rear of RoI at the outer radius ( = 1100 mm)

Definition at line 229 of file RoiDescriptor.h.

◆ m_zedOuterPlus

float RoiDescriptor::m_zedOuterPlus
protected

z at front of RoI at the outer radius ( = 1100 mm)

Definition at line 230 of file RoiDescriptor.h.

◆ m_zedPlus

float RoiDescriptor::m_zedPlus
protected

z position at most positive position along the beamline

Definition at line 221 of file RoiDescriptor.h.

◆ ROI

bool RoiDescriptor::ROI = false
staticconstexpr

Definition at line 46 of file RoiDescriptor.h.

◆ s_firstInstanceCreated

std::atomic< bool > RoiDescriptor::s_firstInstanceCreated = false
staticprotected

to ensure default width is only set once at job startup

Definition at line 208 of file RoiDescriptor.h.

◆ s_zedWidthDefault

std::atomic< double > RoiDescriptor::s_zedWidthDefault = 225
staticprotected

default parameters - there may be better ways, but this will do

Definition at line 206 of file RoiDescriptor.h.


The documentation for this class was generated from the following files: