33 for (
int ist = 1; ist <= 4; ++ist) {
59 scsec = sector > 12 ? sector == 13 ? 4 : 10 : sector;
60 float xcenter = (scsec == 4 || scsec == 10)
61 ? (sector - 12.9) /
abs(sector - 12.9) *
xCenter_[(sector == 10 || sector == 14)]
69 int sector =
id.sector();
77 if (station == 4 && (sector == 4 || sector == 10)) {
81 nbins =
static_cast<int>((max -
min) / step);
93 nbins =
static_cast<int>((max -
min) / step);
99 int wh = trig->
whNum();
100 int sec = trig->
scNum() + 1;
101 int st = trig->
stNum();
104 float phin = (sec - 1) *
Geom::pi() / 6;
109 if (sec == 4 && st == 4) {
113 phicenter = gpos.
phi();
115 }
else if (sec == 10 && st == 4) {
119 phicenter = gpos.
phi();
123 phicenter = gpos.
phi();
127 float deltaphi = phicenter - phin;
128 float x = (
tan(phi / 4096.) -
tan(deltaphi)) *
129 (r *
cos(deltaphi) -
zcn_[st - 1]);
139 int wh = trig->
whNum();
140 int sec = trig->
scNum() + 1;
142 int phib = trig->
phiB();
const DTSuperLayer * superLayer(const DTSuperLayerId &id) const
Return the superlayer corresponding to the given id.
virtual ~DTTrigGeomUtils()
Destructor.
void thetaRange(const DTChamberId &id, float &min, float &max, int &nbins, float step=15)
Compute theta range in local chamber coordinates.
float trigDir(const L1MuDTChambPhDigi *trig)
Return local direction (trigger RF) for a given trigger primitive.
Geom::Phi< T > phi() const
LocalVector localDirection() const override
Local direction in Chamber frame.
float cellWidth() const
Returns the cell width.
LocalPoint toLocal(const GlobalPoint &gp) const
Conversion to the R.F. of the GeomDet.
virtual DTChamberId chamberId() const
The (specific) DetId of the chamber on which the segment resides.
LocalPoint localPosition() const override
Local position in Chamber frame.
const Plane & surface() const
The nominal surface of the GeomDet.
constexpr std::array< uint8_t, layerIndexSize > layer
const uint16_t range(const Frame &aFrame)
const DTTopology & specificTopology() const
DTTrigGeomUtils(edm::ESHandle< DTGeometry > muonGeom, bool dirInDeg=true)
Constructor.
const Surface::PositionType & position() const
The position (origin of the R.F.)
LocalPoint toLocal(const GlobalPoint &gp) const
Cos< T >::type cos(const T &t)
Tan< T >::type tan(const T &t)
Abs< T >::type abs(const T &t)
uint16_t const *__restrict__ x
void phiRange(const DTChamberId &id, float &min, float &max, int &nbins, float step=15)
Compute phi range in local chamber coordinates.
int channels() const
Returns the number of wires in the layer.
bool hasPosRF(int wh, int sec)
Checks id the chamber has positive RF;.
edm::ESHandle< DTGeometry > muonGeom_
float trigPos(const L1MuDTChambPhDigi *trig)
Return local position (trigger RF) for a given trigger primitive.
int station() const
Return the station number.
void computeSCCoordinates(const DTRecSegment4D *track, int &scsec, float &x, float &xdir, float &y, float &ydir)
Compute track coordinates with SC sector numbering.