21 numPhiSectors_(settings->numPhiSectors()),
22 numPhiNonants_(settings->numPhiNonants()),
24 phiSectorWidth_(2. *
M_PI /
float(numPhiSectors_)),
25 phiNonantWidth_(2. *
M_PI /
float(numPhiNonants_)),
27 chosenRofPhi_(settings->chosenRofPhi()),
30 nbinsPt_((
int)settings->houghNbinsPt()),
31 invPtToDPhi_(settings->invPtToDphi()),
34 fitterName_(fitterName),
35 nHelixParams_(fitTrk->nHelixParam()),
37 nlayers_(fitTrk->numLayers()),
38 iPhiSec_(fitTrk->iPhiSec()),
39 iEtaReg_(fitTrk->iEtaReg()),
40 mBin_(
int(fitTrk->cellLocationHT().
first) - floor(settings_->houghNbinsPt() / 2)),
41 cBin_(
int(fitTrk->cellLocationHT().
second) - floor(settings_->houghNbinsPhi() / 2)),
42 mBinhelix_(
int(fitTrk->cellLocationFit().
first) - floor(settings_->houghNbinsPt() / 2)),
43 cBinhelix_(
int(fitTrk->cellLocationFit().
second) - floor(settings_->houghNbinsPhi() / 2)),
44 hitPattern_(fitTrk->hitPattern()),
45 consistent_(fitTrk->consistentHTcell()),
46 consistentSect_(fitTrk->consistentSector()),
47 accepted_(fitTrk->accepted()),
49 qOverPt_orig_(fitTrk->qOverPt()),
50 oneOver2r_orig_(fitTrk->qOverPt() * invPtToDPhi_),
51 d0_orig_(fitTrk->
d0()),
52 phi0_orig_(fitTrk->phi0()),
53 tanLambda_orig_(fitTrk->tanLambda()),
54 z0_orig_(fitTrk->
z0()),
55 chisquaredRphi_orig_(fitTrk->chi2rphi()),
56 chisquaredRz_orig_(fitTrk->chi2rz()),
59 qOverPt_bcon_orig_(fitTrk->qOverPt_bcon()),
60 oneOver2r_bcon_orig_(fitTrk->qOverPt_bcon() * invPtToDPhi_),
61 phi0_bcon_orig_(fitTrk->phi0_bcon()),
62 chisquaredRphi_bcon_orig_(fitTrk->chi2rphi_bcon()) {
80 bool tpOK = (
tp !=
nullptr);
100 if (fitterName ==
"SimpleLR4") {
118 if (fitterName ==
"KF4ParamsComb" || fitterName ==
"KF5ParamsComb" || fitterName ==
"KF4ParamsCombHLS") {
251 <<
"DigitalTrack: Track oneOver2r is out of assumed digitization range." 256 throw cms::Exception(
"BadConfig") <<
"DigitalTrack: Track phi0rel is out of assumed digitization range." 261 throw cms::Exception(
"BadConfig") <<
"DigitalTrack: Track z0 is out of assumed digitization range." 265 throw cms::Exception(
"BadConfig") <<
"DigitalTrack: Track d0 is out of assumed digitization range." 270 <<
"DigitalTrack: Track tanLambda is out of assumed digitization range." 276 <<
"DigitalTrack: Track chisquaredRphi is out of assumed digitization range." 281 <<
"DigitalTrack: Track chisquaredRz is out of assumed digitization range." 301 constexpr
float smallTA = 0.01, smallTB = 0.001, smallTC = 0.05, smallTD = 0.002, smallTE = 0.05, smallTF = 0.5,
306 <<
"WARNING: DigitalTrack lost precision: " <<
fitterName_ <<
" accepted=" <<
accepted_ <<
" " << TA <<
" " 307 << TB <<
" " << TC <<
" " << TD <<
" " << TE <<
" " << TF <<
" " << TG;
constexpr double deltaPhi(double phi1, double phi2)
double kf_tanlambdaRange() const
unsigned int slr_oneOver2rBits() const
float oneOver2r_bcon_orig_
double kf_phi0Range() const
unsigned int kf_d0Bits() const
float chisquaredRphi_orig_
double slr_phi0Range() const
void checkAccuracy() const
unsigned int kf_oneOver2rBits() const
unsigned int tanLambdaBits_
float chisquaredRphi_bcon_orig_
double kf_z0Range() const
bool other_skipTrackDigi() const
unsigned int iDigi_chisquaredRphi_bcon_
unsigned int kf_phi0Bits() const
unsigned int kf_chisquaredBits() const
U second(std::pair< T, U > const &p)
float chisquaredRphi_bcon_
unsigned int oneOver2rBits_
double slr_z0Range() const
void checkInRange() const
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventID const &, edm::Timestamp const & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
unsigned int numPhiNonants_
unsigned int iDigi_chisquaredRphi_
Abs< T >::type abs(const T &t)
float phi0() const override
unsigned int numPhiSectors_
unsigned int chisquaredBits_
unsigned int slr_chisquaredBits() const
int iDigi_oneOver2r_bcon_
unsigned int nHelixParams_
unsigned int slr_d0Bits() const
double slr_oneOver2rRange() const
static constexpr float d0
unsigned int slr_tanlambdaBits() const
const TP * matchedTP() const override
=== This is the base class for the linearised chi-squared track fit algorithms.
double slr_d0Range() const
double slr_chisquaredRange() const
double slr_tanlambdaRange() const
double kf_oneOver2rRange() const
const Settings * settings_
bool slr_skipTrackDigi() const
unsigned int kf_tanlambdaBits() const
double kf_d0Range() const
double kf_chisquaredRange() const
unsigned int slr_phi0Bits() const
bool kf_skipTrackDigi() const
void loadDigiCfg(const std::string &fitterName)
unsigned int kf_z0Bits() const
unsigned int slr_z0Bits() const
Power< A, B >::type pow(const A &a, const B &b)
unsigned int iDigi_chisquaredRz_