|
ATLAS Offline Software
|
Describes the Region of Ineterest geometry It has basically 9 parameters.
More...
#include <RoiDescriptor.h>
|
| 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...
|
|
RoiDescriptor & | operator= (const IRoiDescriptor &r) |
|
| RoiDescriptor (const RoiDescriptor &roi) |
|
RoiDescriptor & | operator= (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 IRoiDescriptor * | at (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 constexpr bool | FULLSCAN = true |
| convenient More...
|
|
static constexpr bool | ROI = false |
|
Describes the Region of Ineterest geometry It has basically 9 parameters.
- zed : central z position of RoI
- zedMinus : most negative z position of the roi
- zedPlus : most positive z position of the roi
- phi : azimuthal angle (radians) of "centre" of RoI at origin in range from [-pi, pi]
- phiMinus : the most clockwise (negative phi direction) phi value for the RoI
- phiPlus : the most anti-clockwise (positive phi direction) phi value for the RoI
- eta : pseudo-rapidity of "centre" of RoI
- etaMinus : pseudo-rapidity at zedMinus
- etaPlus : pseudo-rapidity at zedPlus
Definition at line 40 of file RoiDescriptor.h.
◆ roi_iterator
◆ RoiDescriptor() [1/5]
RoiDescriptor::RoiDescriptor |
( |
bool |
fullscan = ROI | ) |
|
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 ???
Definition at line 41 of file RoiDescriptor.cxx.
◆ 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
-
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 |
Definition at line 63 of file RoiDescriptor.cxx.
78 construct( eta_, etaMinus_, etaPlus_, phi_, phiMinus_, phiPlus_, zed_, zedMinus_, zedPlus_ );
◆ RoiDescriptor() [3/5]
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 |
Definition at line 82 of file RoiDescriptor.cxx.
96 double eta_ = 0.5*(etaMinus_+etaPlus_);
97 double phi_ = 0.5*(phiMinus_+phiPlus_);
99 if ( phiMinus_>phiPlus_ ) phi_ +=
M_PI;
◆ RoiDescriptor() [4/5]
◆ RoiDescriptor() [5/5]
◆ ~RoiDescriptor()
RoiDescriptor::~RoiDescriptor |
( |
| ) |
|
|
virtual |
◆ at()
|
inlinefinaloverridevirtual |
◆ begin()
|
inlinefinaloverridevirtual |
◆ clear()
void RoiDescriptor::clear |
( |
| ) |
|
|
inline |
◆ composite()
virtual bool RoiDescriptor::composite |
( |
| ) |
const |
|
inlinefinaloverridevirtual |
◆ construct() [1/2]
Definition at line 236 of file RoiDescriptor.cxx.
237 construct( roi.eta(), roi.etaMinus(), roi.etaPlus(),
238 roi.phi(), roi.phiMinus(), roi.phiPlus(),
239 roi.zed(), roi.zedMinus(), roi.zedPlus() );
◆ 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.
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" );
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" );
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" );
193 if ( std::isnan(
m_phiPlus) )
throw std::invalid_argument(
"RoiDescriptor: phiPlus nan" );
211 if ( std::isnan(
m_phiMinus) )
throw std::invalid_argument(
"RoiDescriptor: phiMinus nan" );
228 const double maxR = 1100;
◆ drdzMinus()
virtual double RoiDescriptor::drdzMinus |
( |
| ) |
const |
|
inlinefinaloverridevirtual |
◆ drdzPlus()
virtual double RoiDescriptor::drdzPlus |
( |
| ) |
const |
|
inlinefinaloverridevirtual |
◆ dzdrMinus()
virtual double RoiDescriptor::dzdrMinus |
( |
| ) |
const |
|
inlinefinaloverridevirtual |
◆ dzdrPlus()
virtual double RoiDescriptor::dzdrPlus |
( |
| ) |
const |
|
inlinefinaloverridevirtual |
◆ end()
|
inlinefinaloverridevirtual |
◆ eta()
virtual double RoiDescriptor::eta |
( |
| ) |
const |
|
inlinefinaloverridevirtual |
◆ etaMinus()
virtual double RoiDescriptor::etaMinus |
( |
| ) |
const |
|
inlinefinaloverridevirtual |
◆ etaPlus()
virtual double RoiDescriptor::etaPlus |
( |
| ) |
const |
|
inlinefinaloverridevirtual |
◆ isFullscan()
virtual bool RoiDescriptor::isFullscan |
( |
| ) |
const |
|
inlinefinaloverridevirtual |
◆ l1Id()
virtual unsigned int RoiDescriptor::l1Id |
( |
| ) |
const |
|
inlineoverridevirtual |
◆ manageConstituents() [1/2]
bool RoiDescriptor::manageConstituents |
( |
| ) |
const |
|
inline |
◆ manageConstituents() [2/2]
void RoiDescriptor::manageConstituents |
( |
bool |
b | ) |
|
|
inline |
◆ operator std::string()
RoiDescriptor::operator std::string |
( |
| ) |
const |
|
overridevirtual |
◆ operator=() [1/2]
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.
129 if (
this==&roi )
return *
this;
136 if ( roi.size()>0 ) {
143 for (
unsigned i=0 ;
i<roi.size() ;
i++ )
push_back( roi.at(
i) );
◆ operator=() [2/2]
◆ phi()
virtual double RoiDescriptor::phi |
( |
| ) |
const |
|
inlinefinaloverridevirtual |
◆ phiMinus()
virtual double RoiDescriptor::phiMinus |
( |
| ) |
const |
|
inlinefinaloverridevirtual |
◆ phiPlus()
virtual double RoiDescriptor::phiPlus |
( |
| ) |
const |
|
inlinefinaloverridevirtual |
◆ push_back()
◆ reserve()
void RoiDescriptor::reserve |
( |
size_t |
s | ) |
|
|
inline |
◆ rhoMax()
double RoiDescriptor::rhoMax |
( |
double |
z | ) |
const |
|
finaloverridevirtual |
◆ rhoMin()
double RoiDescriptor::rhoMin |
( |
double |
z | ) |
const |
|
finaloverridevirtual |
◆ 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.
◆ roiWord()
virtual unsigned int RoiDescriptor::roiWord |
( |
| ) |
const |
|
inlineoverridevirtual |
◆ setComposite()
void RoiDescriptor::setComposite |
( |
bool |
b = true | ) |
|
|
inline |
◆ size()
virtual unsigned RoiDescriptor::size |
( |
| ) |
const |
|
inlinefinaloverridevirtual |
◆ version() [1/2]
virtual int RoiDescriptor::version |
( |
| ) |
const |
|
inlinefinaloverridevirtual |
◆ version() [2/2]
void RoiDescriptor::version |
( |
int |
v | ) |
|
|
inline |
◆ zed()
virtual double RoiDescriptor::zed |
( |
| ) |
const |
|
inlinefinaloverridevirtual |
◆ zedMax()
double RoiDescriptor::zedMax |
( |
double |
r | ) |
const |
|
finaloverridevirtual |
◆ zedMin()
double RoiDescriptor::zedMin |
( |
double |
r | ) |
const |
|
finaloverridevirtual |
◆ zedMinus()
virtual double RoiDescriptor::zedMinus |
( |
| ) |
const |
|
inlinefinaloverridevirtual |
◆ zedOuterMinus()
virtual double RoiDescriptor::zedOuterMinus |
( |
| ) |
const |
|
inlinefinaloverridevirtual |
◆ zedOuterPlus()
virtual double RoiDescriptor::zedOuterPlus |
( |
| ) |
const |
|
inlinefinaloverridevirtual |
◆ zedPlus()
virtual double RoiDescriptor::zedPlus |
( |
| ) |
const |
|
inlinefinaloverridevirtual |
◆ zedWidthDefault() [1/2]
static double RoiDescriptor::zedWidthDefault |
( |
| ) |
|
|
inlinestatic |
◆ 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.
36 throw std::runtime_error(
"Cannot set default z-width because a RoiDescriptor has already been created");
◆ TrigRoiDescriptorCnv_p2
◆ TrigRoiDescriptorCnv_p3
◆ FULLSCAN
constexpr bool RoiDescriptor::FULLSCAN = true |
|
staticconstexpr |
◆ m_composite
bool RoiDescriptor::m_composite |
|
protected |
◆ m_drdzMinus
float RoiDescriptor::m_drdzMinus |
|
protected |
◆ m_drdzPlus
float RoiDescriptor::m_drdzPlus |
|
protected |
◆ m_dzdrMinus
float RoiDescriptor::m_dzdrMinus |
|
protected |
◆ m_dzdrPlus
float RoiDescriptor::m_dzdrPlus |
|
protected |
◆ m_eta
float RoiDescriptor::m_eta |
|
protected |
◆ m_etaMinus
float RoiDescriptor::m_etaMinus |
|
protected |
◆ m_etaPlus
float RoiDescriptor::m_etaPlus |
|
protected |
◆ m_fullscan
bool RoiDescriptor::m_fullscan |
|
protected |
◆ 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 |
◆ m_phiMinus
float RoiDescriptor::m_phiMinus |
|
protected |
◆ m_phiPlus
float RoiDescriptor::m_phiPlus |
|
protected |
◆ m_roiDescriptors
◆ m_version
int RoiDescriptor::m_version |
|
protected |
◆ m_zed
float RoiDescriptor::m_zed |
|
protected |
◆ 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 |
◆ 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:
virtual double phi() const =0
Methods to retrieve data members.
double phicheck(double phi)
basic range checkers
bool m_composite
flag this as a composite RoI
virtual double zedMinus() const override final
z at the most backward end of the RoI
std::vector< const IRoiDescriptor * >::const_iterator roi_iterator
float m_eta
eta of RoI center
float m_etaMinus
eta of RoI at zedMinus
virtual bool composite() const override final
SuperRoI compatability methods.
virtual unsigned size() const override final
number of constituents
bool m_manageConstituents
flag to determine whether consituents should be managed
RoiDescriptor & operator=(const IRoiDescriptor &r)
float m_zedOuterPlus
z at front of RoI at the outer radius ( = 1100 mm)
virtual double eta() const =0
void push_back(const IRoiDescriptor *roi)
add a RoiDescriptor
float m_zedPlus
z position at most positive position along the beamline
static std::atomic< double > s_zedWidthDefault
default parameters - there may be better ways, but this will do
virtual const IRoiDescriptor * at(int i) const override final
find an RoiDescriptor constituent
Describes the API of the Region of Ineterest geometry.
double zedcheck(double zed)
float m_zedOuterMinus
z at rear of RoI at the outer radius ( = 1100 mm)
float m_phiPlus
most positive RoI in azimuthal
virtual roi_iterator end() const override final
float m_drdzMinus
dr/dz at the rear of the RoI
float m_dzdrMinus
dz/dr at the rear of the RoI
float m_drdzPlus
dr/dz at the front of the RoI
float m_zedMinus
z position at most negative position along the beamline
std::vector< const IRoiDescriptor * > m_roiDescriptors
roi constituents
RoiDescriptor(bool fullscan=ROI)
default constructor
virtual double zed() const override final
float m_dzdrPlus
dz/dr at the front of the RoI
virtual double etaPlus() const override final
gets eta at zedPlus
float m_zed
zed of RoI center
virtual double phi() const override final
Methods to retrieve data members.
static std::atomic< bool > s_firstInstanceCreated
to ensure default width is only set once at job startup
virtual bool isFullscan() const =0
is this a full detector RoI?
virtual bool isFullscan() const override final
is this a full scan RoI?
virtual roi_iterator begin() const override final
iterators
virtual double eta() const override final
virtual double zed() const =0
bool m_fullscan
flag this as a full detector RoI
void setComposite(bool b=true)
bool manageConstituents() const
always manage constituents ???
virtual double phiPlus() const override final
gets phiPlus
virtual double etaMinus() const override final
gets eta at zMinus
float m_phiMinus
most negative RoI in azimuthal
float m_phi
phi of RoI center
double etacheck(double eta)
virtual double phiMinus() const override final
gets phiMinus
virtual int version() const =0
which roi version?
float m_etaPlus
eta of RoI at zedPlus
virtual bool composite() const =0
Super RoI access methods.
int m_version
transient version identifier
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
virtual double zedPlus() const override final
z at the most forward end of the RoI