15 DigitalStub::DigitalStub(
const Settings* settings,
double r,
double phi,
double z,
unsigned int iPhiSec)
16 : phiSBits_(settings->phiSBits()),
17 phiSRange_(settings->phiSRange()),
18 rtBits_(settings->rtBits()),
19 rtRange_(settings->rtRange()),
20 zBits_(settings->zBits()),
21 zRange_(settings->
zRange()),
22 phiSMult_(
pow(2, phiSBits_) / phiSRange_),
23 rtMult_(
pow(2, rtBits_) / rtRange_),
24 zMult_(
pow(2, zBits_) / zRange_),
25 numPhiSectors_(settings->numPhiSectors()),
27 phiSectorWidth_(2. *
M_PI / double(numPhiSectors_)),
28 chosenRofPhi_(settings->chosenRofPhi()) {
57 unsigned int mbin_min_orig,
58 unsigned int mbin_max_orig,
60 unsigned int iPhiSec) {
217 throw cms::Exception(
"BadConfig") <<
"DigitalStub: Stub rT is out of assumed digitization range." 220 throw cms::Exception(
"BadConfig") <<
"DigitalStub: Stub z is out of assumed digitization range." 223 throw cms::Exception(
"BadConfig") <<
"DigitalStub: Stub bend is out of assumed digitization range." 243 constexpr double smallTA = 0.001, smallTB = 0.3, smallTC = 0.25, smallTD = 0.01;
245 throw cms::Exception(
"LogicError") <<
"WARNING: DigitalStub lost precision: " << TA <<
" " << TB <<
" " << TC
constexpr double deltaPhi(double phi1, double phi2)
unsigned int phiSectorBits() const
unsigned int numPhiNonants() const
unsigned int phiNBits() const
void digitize(unsigned int iPhiSec)
unsigned int bendBits() const
void checkInRange() const
unsigned int phiSBits() const
unsigned int mbin_min_orig() const
unsigned int houghNbinsPt() const
void setCfgParams(const Settings *settings)
unsigned int mbin_min_orig_
unsigned int iPhiSec_done_
unsigned int zBits() const
unsigned int numPhiNonants_
Abs< T >::type abs(const T &t)
unsigned int iNonant(unsigned int iPhiSec) const
DigitalStub(const Settings *settings, double r, double phi, double z, unsigned int iPhiSec)
double chosenRofPhi() const
unsigned int mbin_max_orig() const
void undigitize(unsigned int iPhiSec)
=== This is the base class for the linearised chi-squared track fit algorithms.
unsigned int mbin_max_orig_
void checkAccuracy() const
unsigned int phiSectorBits_
unsigned int numPhiSectors_
unsigned int rtBits() const
unsigned int numPhiSectors() const
Power< A, B >::type pow(const A &a, const B &b)
bool changePhiSec(unsigned int iPhiSec)