28#ifndef TIDA_ROIDESCRIPTOR_H
29#define TIDA_ROIDESCRIPTOR_H
158 static double exitpoint(
double tz0,
double teta,
double& zexit,
double& rexit );
168 operator std::string()
const;
201 if (
roiWord() != b.roiWord() )
return false;
202 double epsilon=0.001;
203 if ( std::fabs(
phi() - b.phi()) > epsilon )
return false;
204 if ( std::fabs(
eta() - b.eta()) > epsilon )
return false;
205 if ( std::fabs(
zed() - b.zed()) > epsilon )
return false;
221 virtual double zedMin(
double r)
const {
return 0; }
222 virtual double zedMax(
double r)
const {
return 0; }
224 virtual double rhoMin(
double z)
const {
return 0; }
225 virtual double rhoMax(
double z)
const {
return 0; }
228 virtual double dzdrMinus()
const {
return 0; }
229 virtual double dzdrPlus()
const {
return 0; }
231 virtual double drdzMinus()
const {
return 0; }
232 virtual double drdzPlus()
const {
return 0; }
234 virtual bool contains(
double z0,
double dzdr )
const {
return false; }
235 virtual bool contains_internal(
double z0,
double zouter )
const {
return false; }
238 virtual bool contains(
double _z,
double _r,
double _phi )
const {
return false; }
239 virtual bool containsPhi(
double _phi )
const {
return false; }
240 virtual bool containsZed(
double _z,
double _r )
const {
return false; }
303 return s << (std::string)d;
Scalar eta() const
pseudorapidity method
Scalar phi() const
phi method
std::ostream & operator<<(std::ostream &s, const TIDARoiDescriptor &d)
Class to store the eta, phi, zed, parameters and ranges for the TIDARoiDescriptor class.
Describes the Region of Ineterest geometry It has basically 8 parameters.
double m_rPlusZed
don't save - transient zMinus at radius R
double m_rMinusZed
don't save - transient zPlus at radius R
double zedHalfWidth() const
gets eta half-width
const TIDARoiDescriptor * operator[](int i) const
void set_roiWord(const unsigned int roiWord)
sets RoI word
double m_zedMinusR
don't save - transient zPlus at radius R
void push_back(const TIDARoiDescriptor *roi)
void push_back(const TIDARoiDescriptor &roi)
TIDARoiDescriptor(unsigned roiWord, unsigned l1id, int id, double eta, double etaMinus, double etaPlus, double phi, double phiMinus, double phiPlus, double zed, double zedMinus, double zedPlus)
constructor
TIDARoiParameters m_params
don't save
double m_zedPlusR
cached value -
const TIDARoiParameters & params() const
access the internal parameter class
const TIDARoiDescriptor * at(int i) const
gets phi half-width
double etaHalfWidth() const
gets eta half-width
double m_tanthetaPlus
don't save - transient zMinus at radius R
std::vector< TIDARoiDescriptor > m_rois
void set_l1Id(const unsigned int l1id)
set event number
static const double maxZed
don't save
static double exitpoint(double tz0, double teta, double &zexit, double &rexit)
static const double maxRadius
void set_roiId(const unsigned int id)
set roiId
TIDARoiDescriptor(bool fullscan=false)
default constructor
TIDARoiDescriptor(unsigned l1id, int id, double eta, double etaMinus, double etaPlus, double phi, double phiMinus, double phiPlus, double zed, double zedMinus, double zedPlus)
constructor
bool operator==(const TIDARoiDescriptor &b) const
operators
double zedPlusR() const
full containment methods
TIDARoiDescriptor & operator=(const TIDARoiDescriptor &r)
assignment
bool operator!=(const TIDARoiDescriptor &b) const
virtual ~TIDARoiDescriptor()
double phiHalfWidth() const
unsigned roiId() const
identifier methods
double m_tanthetaMinus
don't save - transient roi edge gradients
double etacheck(double eta)
helper function to check if eta range was violated
double m_dphi
cache flag - these should be mutable
double zedcheck(double zed)
helper function to check if zed range was violated
void reset()
internal parameters
bool composite() const
composite RoI methods
double phicheck(double phi)
helper function to check if phi range was violated
bool contains(const std::string &s, const std::string ®x)
does a string contain the substring
bool containsPhi(const IRoiDescriptor &roi, double phi)
test whether a stub is contained within the roi
bool containsZed(const IRoiDescriptor &roi, double z, double r)