28#ifndef TIDA_ROIDESCRIPTOR_H
29#define TIDA_ROIDESCRIPTOR_H
162 static double exitpoint(
double tz0,
double teta,
double& zexit,
double& rexit );
172 operator std::string()
const;
205 if (
roiWord() != b.roiWord() )
return false;
206 double epsilon=0.001;
207 if ( std::fabs(
phi() - b.phi()) > epsilon )
return false;
208 if ( std::fabs(
eta() - b.eta()) > epsilon )
return false;
209 if ( std::fabs(
zed() - b.zed()) > epsilon )
return false;
224 virtual double zedMin(
double r)
const {
return 0; }
225 virtual double zedMax(
double r)
const {
return 0; }
227 virtual double rhoMin(
double z)
const {
return 0; }
228 virtual double rhoMax(
double z)
const {
return 0; }
231 virtual double dzdrMinus()
const {
return 0; }
232 virtual double dzdrPlus()
const {
return 0; }
234 virtual double drdzMinus()
const {
return 0; }
235 virtual double drdzPlus()
const {
return 0; }
237 virtual bool contains(
double z0,
double dzdr )
const {
return false; }
238 virtual bool contains_internal(
double z0,
double zouter )
const {
return false; }
241 virtual bool contains(
double _z,
double _r,
double _phi )
const {
return false; }
242 virtual bool containsPhi(
double _phi )
const {
return false; }
243 virtual bool containsZed(
double _z,
double _r )
const {
return false; }
306 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 Interest 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)
copy 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)