ATLAS Offline Software
Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Member Functions | Protected Attributes | Static Protected Attributes | Friends | List of all members
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< const IRoiDescriptor * >::const_iterator roi_iterator
 

Public Member Functions

 RoiDescriptor (bool fullscan=ROI)
 default constructor More...
 
 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 More...
 
 RoiDescriptor (double etaMinus_, double etaPlus_, double phiMinus_, double phiPlus_)
 constructor More...
 
 RoiDescriptor (const IRoiDescriptor &roi)
 copy constructors More...
 
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. More...
 
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 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 More...
 
virtual double zedMinus () const override final
 z at the most backward end of the RoI More...
 
virtual double etaPlus () const override final
 gets eta at zedPlus More...
 
virtual double etaMinus () const override final
 gets eta at zMinus More...
 
virtual double phiPlus () const override final
 gets phiPlus More...
 
virtual double phiMinus () const override final
 gets phiMinus More...
 
virtual int version () const override final
 versioning More...
 
void version (int v)
 
virtual operator std::string () const override
 output More...
 
virtual bool isFullscan () const override final
 is this a full scan RoI? More...
 
virtual bool composite () const override final
 SuperRoI compatability methods. More...
 
void setComposite (bool b=true)
 
bool manageConstituents () const
 always manage constituents ??? More...
 
void manageConstituents (bool b)
 
virtual unsigned size () const override final
 number of constituents More...
 
virtual const IRoiDescriptorat (int i) const override final
 find an RoiDescriptor constituent More...
 
void clear ()
 clear the vector More...
 
void reserve (size_t s)
 reserve elements in vector More...
 
void push_back (const IRoiDescriptor *roi)
 add a RoiDescriptor More...
 
virtual roi_iterator begin () const override final
 iterators More...
 
virtual roi_iterator end () const override final
 
virtual double dzdrMinus () const override final
 return the gradients More...
 
virtual double dzdrPlus () const override final
 dz/dr at the front of the RoI More...
 
virtual double drdzMinus () const override final
 dr/dz at the rear of the RoI More...
 
virtual double drdzPlus () const override final
 dr/dz at the front of the RoI More...
 
virtual double zedMin (double r) const override final
 methods to calculate z position at the RoI boundary at a given radius More...
 
virtual double zedMax (double r) const override final
 
virtual double zedOuterPlus () const override final
 z at the most forward end of the RoI More...
 
virtual double zedOuterMinus () const override final
 z at the most backward end of the RoI More...
 
virtual double rhoMin (double z) const override final
 accessors to calculate r position at position z along the RoI boundaries More...
 
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) More...
 

Static Public Attributes

static constexpr bool FULLSCAN = true
 convenient More...
 
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 More...
 
void construct (const IRoiDescriptor &_roi)
 

Protected Attributes

float m_phi
 phi of RoI center More...
 
float m_eta
 eta of RoI center More...
 
float m_zed
 zed of RoI center More...
 
float m_phiMinus
 most negative RoI in azimuthal More...
 
float m_phiPlus
 most positive RoI in azimuthal More...
 
float m_etaMinus
 eta of RoI at zedMinus More...
 
float m_etaPlus
 eta of RoI at zedPlus More...
 
float m_zedMinus
 z position at most negative position along the beamline More...
 
float m_zedPlus
 z position at most positive position along the beamline More...
 
float m_dzdrMinus
 dz/dr at the rear of the RoI More...
 
float m_dzdrPlus
 dz/dr at the front of the RoI More...
 
float m_drdzMinus
 dr/dz at the rear of the RoI More...
 
float m_drdzPlus
 dr/dz at the front of the RoI More...
 
float m_zedOuterMinus
 z at rear of RoI at the outer radius ( = 1100 mm) More...
 
float m_zedOuterPlus
 z at front of RoI at the outer radius ( = 1100 mm) More...
 
bool m_fullscan
 flag this as a full detector RoI More...
 
bool m_composite
 flag this as a composite RoI More...
 
bool m_manageConstituents
 flag to determine whether consituents should be managed More...
 
int m_version
 transient version identifier More...
 
std::vector< const IRoiDescriptor * > m_roiDescriptors
 roi constituents More...
 

Static Protected Attributes

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

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<const IRoiDescriptor*>::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 }

◆ 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 }

◆ 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 }

◆ 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()),
117  m_manageConstituents(true),
118  m_version(roi.version()) {
119 
121 
122 }

◆ RoiDescriptor() [5/5]

RoiDescriptor::RoiDescriptor ( const RoiDescriptor roi)

Definition at line 124 of file RoiDescriptor.cxx.

124 : RoiDescriptor( static_cast<const IRoiDescriptor&>(roi) ) { }

◆ ~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 }

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); }

◆ 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 {
164  s_firstInstanceCreated = true;
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 }

◆ 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 }

◆ 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();
133  m_manageConstituents = true;
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 }

◆ 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); }

◆ 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 ; }

◆ 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.

124 { m_version = v; }

◆ 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; }

◆ 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]

static 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 }

Friends And Related Function Documentation

◆ 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

constexpr 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

constexpr 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:
IRoiDescriptor::phi
virtual double phi() const =0
Methods to retrieve data members.
beamspotman.r
def r
Definition: beamspotman.py:676
RoiUtil::phicheck
double phicheck(double phi)
basic range checkers
Definition: RoiUtil.cxx:123
RoiDescriptor::m_composite
bool m_composite
flag this as a composite RoI
Definition: RoiDescriptor.h:233
python.SystemOfUnits.s
int s
Definition: SystemOfUnits.py:131
PowhegControl_ttHplus_NLO.ss
ss
Definition: PowhegControl_ttHplus_NLO.py:83
RoiDescriptor::zedMinus
virtual double zedMinus() const override final
z at the most backward end of the RoI
Definition: RoiDescriptor.h:113
IRoiDescriptor::roi_iterator
std::vector< const IRoiDescriptor * >::const_iterator roi_iterator
Definition: IRoiDescriptor.h:28
RoiDescriptor::m_eta
float m_eta
eta of RoI center
Definition: RoiDescriptor.h:213
hist_file_dump.d
d
Definition: hist_file_dump.py:137
RoiDescriptor::m_etaMinus
float m_etaMinus
eta of RoI at zedMinus
Definition: RoiDescriptor.h:218
M_PI
#define M_PI
Definition: ActiveFraction.h:11
RoiDescriptor::composite
virtual bool composite() const override final
SuperRoI compatability methods.
Definition: RoiDescriptor.h:137
RoiDescriptor::size
virtual unsigned size() const override final
number of constituents
Definition: RoiDescriptor.h:145
RoiDescriptor::m_manageConstituents
bool m_manageConstituents
flag to determine whether consituents should be managed
Definition: RoiDescriptor.h:234
RoiDescriptor::operator=
RoiDescriptor & operator=(const IRoiDescriptor &r)
Definition: RoiDescriptor.cxx:127
drawFromPickle.exp
exp
Definition: drawFromPickle.py:36
RoiDescriptor::m_zedOuterPlus
float m_zedOuterPlus
z at front of RoI at the outer radius ( = 1100 mm)
Definition: RoiDescriptor.h:230
drawFromPickle.atan
atan
Definition: drawFromPickle.py:36
IRoiDescriptor::eta
virtual double eta() const =0
RoiDescriptor::push_back
void push_back(const IRoiDescriptor *roi)
add a RoiDescriptor
Definition: RoiDescriptor.h:157
RoiDescriptor::m_zedPlus
float m_zedPlus
z position at most positive position along the beamline
Definition: RoiDescriptor.h:221
RoiDescriptor::s_zedWidthDefault
static std::atomic< double > s_zedWidthDefault
default parameters - there may be better ways, but this will do
Definition: RoiDescriptor.h:206
RoiDescriptor::at
virtual const IRoiDescriptor * at(int i) const override final
find an RoiDescriptor constituent
Definition: RoiDescriptor.h:148
lumiFormat.i
int i
Definition: lumiFormat.py:92
z
#define z
IRoiDescriptor
Describes the API of the Region of Ineterest geometry.
Definition: IRoiDescriptor.h:23
RoiUtil::zedcheck
double zedcheck(double zed)
Definition: RoiUtil.cxx:141
RoiDescriptor::m_zedOuterMinus
float m_zedOuterMinus
z at rear of RoI at the outer radius ( = 1100 mm)
Definition: RoiDescriptor.h:229
RoiDescriptor::m_phiPlus
float m_phiPlus
most positive RoI in azimuthal
Definition: RoiDescriptor.h:217
RoiDescriptor::end
virtual roi_iterator end() const override final
Definition: RoiDescriptor.h:161
drawFromPickle.tan
tan
Definition: drawFromPickle.py:36
RoiDescriptor::m_drdzMinus
float m_drdzMinus
dr/dz at the rear of the RoI
Definition: RoiDescriptor.h:226
RoiDescriptor::m_dzdrMinus
float m_dzdrMinus
dz/dr at the rear of the RoI
Definition: RoiDescriptor.h:223
RoiDescriptor::m_drdzPlus
float m_drdzPlus
dr/dz at the front of the RoI
Definition: RoiDescriptor.h:227
RoiDescriptor::m_zedMinus
float m_zedMinus
z position at most negative position along the beamline
Definition: RoiDescriptor.h:220
RoiDescriptor::m_roiDescriptors
std::vector< const IRoiDescriptor * > m_roiDescriptors
roi constituents
Definition: RoiDescriptor.h:238
RoiDescriptor::RoiDescriptor
RoiDescriptor(bool fullscan=ROI)
default constructor
Definition: RoiDescriptor.cxx:41
RoiDescriptor::zed
virtual double zed() const override final
Definition: RoiDescriptor.h:102
plotBeamSpotMon.b
b
Definition: plotBeamSpotMon.py:77
RoiDescriptor::m_dzdrPlus
float m_dzdrPlus
dz/dr at the front of the RoI
Definition: RoiDescriptor.h:224
python.PyAthena.v
v
Definition: PyAthena.py:157
RoiDescriptor::etaPlus
virtual double etaPlus() const override final
gets eta at zedPlus
Definition: RoiDescriptor.h:115
DiTauMassTools::MaxHistStrategyV2::e
e
Definition: PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:26
RoiDescriptor::m_zed
float m_zed
zed of RoI center
Definition: RoiDescriptor.h:214
RoiDescriptor::phi
virtual double phi() const override final
Methods to retrieve data members.
Definition: RoiDescriptor.h:100
RoiDescriptor::s_firstInstanceCreated
static std::atomic< bool > s_firstInstanceCreated
to ensure default width is only set once at job startup
Definition: RoiDescriptor.h:208
IRoiDescriptor::isFullscan
virtual bool isFullscan() const =0
is this a full detector RoI?
RoiDescriptor::isFullscan
virtual bool isFullscan() const override final
is this a full scan RoI?
Definition: RoiDescriptor.h:132
RoiDescriptor::begin
virtual roi_iterator begin() const override final
iterators
Definition: RoiDescriptor.h:160
RoiDescriptor::eta
virtual double eta() const override final
Definition: RoiDescriptor.h:101
IRoiDescriptor::zed
virtual double zed() const =0
RoiDescriptor::m_fullscan
bool m_fullscan
flag this as a full detector RoI
Definition: RoiDescriptor.h:232
RoiDescriptor::setComposite
void setComposite(bool b=true)
Definition: RoiDescriptor.h:138
RoiDescriptor::manageConstituents
bool manageConstituents() const
always manage constituents ???
Definition: RoiDescriptor.h:141
M_2PI
#define M_2PI
Definition: CaloGpuGeneral_fnc.cxx:8
RoiDescriptor::phiPlus
virtual double phiPlus() const override final
gets phiPlus
Definition: RoiDescriptor.h:118
RoiDescriptor::etaMinus
virtual double etaMinus() const override final
gets eta at zMinus
Definition: RoiDescriptor.h:116
RoiDescriptor::m_phiMinus
float m_phiMinus
most negative RoI in azimuthal
Definition: RoiDescriptor.h:216
RoiDescriptor::m_phi
float m_phi
phi of RoI center
Definition: RoiDescriptor.h:212
RoiUtil::etacheck
double etacheck(double eta)
Definition: RoiUtil.cxx:133
RoiDescriptor::phiMinus
virtual double phiMinus() const override final
gets phiMinus
Definition: RoiDescriptor.h:119
IRoiDescriptor::version
virtual int version() const =0
which roi version?
RoiDescriptor::m_etaPlus
float m_etaPlus
eta of RoI at zedPlus
Definition: RoiDescriptor.h:219
IRoiDescriptor::composite
virtual bool composite() const =0
Super RoI access methods.
RoiDescriptor::m_version
int m_version
transient version identifier
Definition: RoiDescriptor.h:236
RoiDescriptor::construct
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
Definition: RoiDescriptor.cxx:160
RoiDescriptor::zedPlus
virtual double zedPlus() const override final
z at the most forward end of the RoI
Definition: RoiDescriptor.h:112