28#ifndef TIDA_ROIDESCRIPTOR_H
29#define TIDA_ROIDESCRIPTOR_H
156 static double exitpoint(
double tz0,
double teta,
double& zexit,
double& rexit );
166 operator std::string()
const;
199 if (
roiWord() != b.roiWord() )
return false;
200 double epsilon=0.001;
201 if ( std::fabs(
phi() - b.phi()) > epsilon )
return false;
202 if ( std::fabs(
eta() - b.eta()) > epsilon )
return false;
203 if ( std::fabs(
zed() - b.zed()) > epsilon )
return false;
218 virtual double zedMin(
double r)
const {
return 0; }
219 virtual double zedMax(
double r)
const {
return 0; }
221 virtual double rhoMin(
double z)
const {
return 0; }
222 virtual double rhoMax(
double z)
const {
return 0; }
225 virtual double dzdrMinus()
const {
return 0; }
226 virtual double dzdrPlus()
const {
return 0; }
228 virtual double drdzMinus()
const {
return 0; }
229 virtual double drdzPlus()
const {
return 0; }
231 virtual bool contains(
double z0,
double dzdr )
const {
return false; }
232 virtual bool contains_internal(
double z0,
double zouter )
const {
return false; }
235 virtual bool contains(
double _z,
double _r,
double _phi )
const {
return false; }
236 virtual bool containsPhi(
double _phi )
const {
return false; }
237 virtual bool containsZed(
double _z,
double _r )
const {
return false; }
300 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)