|
|
#include <FitTrack.h>
|
void | addInput (MemoryBase *memory, std::string input) override |
|
void | addOutput (MemoryBase *memory, std::string output) override |
|
void | execute () |
|
| FitTrack (std::string name, Settings const &settings, Globals *global, unsigned int iSector) |
|
std::vector< Tracklet * > | orderedMatches (std::vector< FullMatchMemory * > &fullmatch) |
|
void | trackFitChisq (Tracklet *tracklet, std::vector< const Stub * > &, std::vector< std::pair< int, int >> &) |
|
void | trackFitFake (Tracklet *tracklet, std::vector< const Stub * > &, std::vector< std::pair< int, int >> &) |
|
void | trackFitKF (Tracklet *tracklet, std::vector< const Stub * > &trackstublist, std::vector< std::pair< int, int >> &stubidslist) |
|
| ~FitTrack () override=default |
|
unsigned int | getISeed (std::string name) |
|
std::string const & | getName () const |
|
unsigned int | initLayerDisk (unsigned int pos) |
|
void | initLayerDisk (unsigned int pos, int &layer, int &disk) |
|
void | initLayerDisk (unsigned int pos, int &layer, int &disk, int &layerdisk) |
|
void | initLayerDisksandISeed (unsigned int &layerdisk1, unsigned int &layerdisk2, unsigned int &iSeed) |
|
unsigned int | nbits (unsigned int power) |
|
| ProcessBase (std::string name, Settings const &settings, Globals *global, unsigned int iSector) |
|
virtual | ~ProcessBase ()=default |
|
Definition at line 18 of file FitTrack.h.
◆ FitTrack()
FitTrack::FitTrack |
( |
std::string |
name, |
|
|
Settings const & |
settings, |
|
|
Globals * |
global, |
|
|
unsigned int |
iSector |
|
) |
| |
◆ ~FitTrack()
trklet::FitTrack::~FitTrack |
( |
| ) |
|
|
overridedefault |
◆ addInput()
void FitTrack::addInput |
( |
MemoryBase * |
memory, |
|
|
std::string |
input |
|
) |
| |
|
overridevirtual |
Implements trklet::ProcessBase.
Definition at line 32 of file FitTrack.cc.
37 if (
input.substr(0, 4) ==
"tpar") {
38 auto*
tmp = dynamic_cast<TrackletParametersMemory*>(
memory);
43 if (
input.substr(0, 10) ==
"fullmatch1") {
44 auto*
tmp = dynamic_cast<FullMatchMemory*>(
memory);
49 if (
input.substr(0, 10) ==
"fullmatch2") {
50 auto*
tmp = dynamic_cast<FullMatchMemory*>(
memory);
55 if (
input.substr(0, 10) ==
"fullmatch3") {
56 auto*
tmp = dynamic_cast<FullMatchMemory*>(
memory);
61 if (
input.substr(0, 10) ==
"fullmatch4") {
62 auto*
tmp = dynamic_cast<FullMatchMemory*>(
memory);
68 throw cms::Exception(
"BadConfig") << __FILE__ <<
" " << __LINE__ <<
" input = " <<
input <<
" not found";
References cms::cuda::assert(), Exception, fullmatch1_, fullmatch2_, fullmatch3_, fullmatch4_, input, trklet::ProcessBase::name_, seedtracklet_, trklet::ProcessBase::settings_, createJobs::tmp, and trklet::Settings::writetrace().
◆ addOutput()
void FitTrack::addOutput |
( |
MemoryBase * |
memory, |
|
|
std::string |
output |
|
) |
| |
|
overridevirtual |
◆ execute()
void FitTrack::execute |
( |
void |
| ) |
|
Definition at line 862 of file FitTrack.cc.
869 if (
settings_.
debugTracklet() && (matches1.size() + matches2.size() + matches3.size() + matches4.size()) > 0) {
871 edm::LogVerbatim(
"Tracklet") << imatch->getName() <<
" " << imatch->nMatches();
874 << matches2.size() <<
" " << matches3.size() <<
" " << matches4.size();
877 unsigned int indexArray[4];
878 for (
unsigned int i = 0;
i < 4;
i++) {
888 bestTracklet =
nullptr;
890 if (indexArray[0] < matches1.size()) {
891 if (bestTracklet ==
nullptr) {
892 bestTracklet = matches1[indexArray[0]];
894 if (matches1[indexArray[0]]->TCID() < bestTracklet->
TCID())
895 bestTracklet = matches1[indexArray[0]];
899 if (indexArray[1] < matches2.size()) {
900 if (bestTracklet ==
nullptr) {
901 bestTracklet = matches2[indexArray[1]];
903 if (matches2[indexArray[1]]->TCID() < bestTracklet->
TCID())
904 bestTracklet = matches2[indexArray[1]];
908 if (indexArray[2] < matches3.size()) {
909 if (bestTracklet ==
nullptr) {
910 bestTracklet = matches3[indexArray[2]];
912 if (matches3[indexArray[2]]->TCID() < bestTracklet->
TCID())
913 bestTracklet = matches3[indexArray[2]];
917 if (indexArray[3] < matches4.size()) {
918 if (bestTracklet ==
nullptr) {
919 bestTracklet = matches4[indexArray[3]];
921 if (matches4[indexArray[3]]->TCID() < bestTracklet->
TCID())
922 bestTracklet = matches4[indexArray[3]];
926 if (bestTracklet ==
nullptr)
933 int nMatchesUniq = 0;
936 if (indexArray[0] < matches1.size()) {
937 while (matches1[indexArray[0]] == bestTracklet && indexArray[0] < matches1.size()) {
948 if (indexArray[1] < matches2.size()) {
949 while (matches2[indexArray[1]] == bestTracklet && indexArray[1] < matches2.size()) {
960 if (indexArray[2] < matches3.size()) {
961 while (matches3[indexArray[2]] == bestTracklet && indexArray[2] < matches3.size()) {
972 if (indexArray[3] < matches4.size()) {
973 while (matches4[indexArray[3]] == bestTracklet && indexArray[3] < matches4.size()) {
984 edm::LogVerbatim(
"Tracklet") <<
getName() <<
" : nMatches = " << nMatches <<
" nMatchesUniq = " << nMatchesUniq
985 <<
" " << asinh(bestTracklet->
t());
988 std::vector<const Stub*> trackstublist;
989 std::vector<std::pair<int, int>> stubidslist;
990 if ((bestTracklet->
getISeed() >= 8 && nMatchesUniq >= 1) ||
995 trackFitKF(bestTracklet, trackstublist, stubidslist);
1008 }
else if (bestTracklet->
fit()) {
1011 ofstream
fout(
"seeds.txt", ofstream::app);
1020 }
while (bestTracklet !=
nullptr);
References trklet::TrackFitMemory::addStubidsList(), trklet::TrackFitMemory::addStubList(), trklet::TrackFitMemory::addTrack(), cms::cuda::assert(), trklet::Settings::debugTracklet(), trklet::Settings::fakefit(), trklet::Tracklet::fit(), groupFilesInBlocks::fout, fullmatch1_, fullmatch2_, fullmatch3_, fullmatch4_, trklet::Tracklet::getISeed(), trklet::ProcessBase::getName(), trklet::ProcessBase::globals_, mps_fire::i, trklet::ProcessBase::iSector_, match(), trklet::ProcessBase::name_, trklet::Globals::ofstream(), orderedMatches(), trklet::Settings::removalType(), trklet::ProcessBase::settings_, trklet::Tracklet::t(), trklet::Tracklet::TCID(), trackfit_, trackFitChisq(), trackFitFake(), trackFitKF(), and trklet::Settings::writeMonitorData().
◆ orderedMatches()
Definition at line 808 of file FitTrack.cc.
809 std::vector<Tracklet*>
tmp;
811 std::vector<unsigned int> indexArray;
812 for (
auto& imatch : fullmatch) {
814 if (imatch->nMatches() > 1) {
815 for (
unsigned int j = 0;
j < imatch->nMatches() - 1;
j++) {
816 assert(imatch->getTracklet(
j)->TCID() <= imatch->getTracklet(
j + 1)->TCID());
821 edm::LogVerbatim(
"Tracklet") <<
"orderedMatches: " << imatch->getName() <<
" " << imatch->nMatches();
824 indexArray.push_back(0);
829 int bestTCID = (1 << 16);
831 for (
unsigned int i = 0;
i < fullmatch.size();
i++) {
832 if (indexArray[
i] >= fullmatch[
i]->nMatches()) {
836 int TCID = fullmatch[
i]->getTracklet(indexArray[
i])->TCID();
837 if (TCID < bestTCID) {
842 if (bestIndex != -1) {
843 tmp.push_back(fullmatch[bestIndex]->getTracklet(indexArray[bestIndex]));
844 indexArray[bestIndex]++;
846 }
while (bestIndex != -1);
848 for (
unsigned int i = 0;
i <
tmp.size();
i++) {
852 if (
tmp[
i - 1]->TCID() >
tmp[
i]->TCID()) {
References cms::cuda::assert(), trklet::Settings::debugTracklet(), trklet::ProcessBase::getName(), mps_fire::i, dqmiolumiharvest::j, trklet::ProcessBase::settings_, and createJobs::tmp.
Referenced by execute().
◆ trackFitChisq()
void FitTrack::trackFitChisq |
( |
Tracklet * |
tracklet, |
|
|
std::vector< const Stub * > & |
, |
|
|
std::vector< std::pair< int, int >> & |
|
|
) |
| |
Definition at line 138 of file FitTrack.cc.
160 unsigned int ndisks = 0;
178 phiresidexact[
i] = 0.0;
179 zresidexact[
i] = 0.0;
182 std::bitset<N_LAYER> lmatches;
183 std::bitset<N_DISK * 2> dmatches;
187 unsigned int layermask = 0;
188 unsigned int diskmask = 0;
189 unsigned int alphaindex = 0;
190 unsigned int power = 1;
192 double t = tracklet->
t();
197 if (
l == (
unsigned int)tracklet->
layer() ||
l == (
unsigned int)tracklet->
layer() + 1) {
217 for (
unsigned int d = 1;
d <=
N_DISK;
d++) {
218 if (layermask & (1 << (
d - 1)))
228 dmatches.set(2 *
d - 1);
229 diskmask |= (1 << (2 * (
N_DISK -
d) + 1));
236 alphaindex += ialpha * power;
238 dmatches.set(2 * (
N_DISK -
d));
239 diskmask |= (1 << (2 * (
N_DISK -
d)));
257 << lmatches.to_string() <<
" " << dmatches.to_string() <<
" " <<
mult << endl;
263 for (
unsigned int l = 1;
l <= 2;
l++) {
284 if (
d == 5 and layermask & (1 << 4))
290 dmatches.set(2 *
d1 - 1);
291 diskmask |= (1 << (2 * (
N_DISK -
d1) + 1));
301 dmatches.set(2 *
d1 - 1);
302 diskmask |= (1 << (2 * (
N_DISK -
d1) + 1));
309 alphaindex += ialpha * power;
312 diskmask |= (1 << (2 * (
N_DISK -
d1)));
332 for (
unsigned int l = 1;
l <= 2;
l++) {
333 if (
l == (
unsigned int)tracklet->
layer()) {
361 if (
d == tracklet->
disk()) {
363 dmatches.set(2 *
d1 - 1);
364 diskmask |= (1 << (2 * (
N_DISK -
d1) + 1));
374 diskmask |= (1 << (2 * (
N_DISK -
d1) + 1));
376 tmp.set(diskmask, 10);
383 alphaindex += ialpha * power;
386 diskmask |= (1 << (2 * (
N_DISK -
d1)));
388 tmp.set(diskmask, 10);
416 if (derivatives ==
nullptr) {
419 tmpl.
set(layermask, 6);
420 tmpd.
set(diskmask, 10);
421 edm::LogVerbatim(
"Tracklet") <<
"No derivative for layermask, diskmask : " << layermask <<
" " << tmpl.
str()
422 <<
" " << diskmask <<
" " << tmpd.
str() <<
" eta = " << asinh(
t);
466 for (
unsigned i = 0;
i < ndisks;
i++) {
482 settings_,
nlayers,
r, ndisks, z,
alpha,
t,
rinv,
D, iD, MinvDt, iMinvDt, sigma, kfactor);
488 settings_,
nlayers,
r, ndisks, z,
alpha,
t,
rinv,
D, iD, MinvDt, iMinvDt, sigma, kfactor);
491 derivatives->
fill(tracklet->
fpgat().
value(), MinvDtDummy, iMinvDt);
509 double dr = realrstub[
i] -
r[
i];
511 MinvDt[2][2 *
ii + 1] +=
dr * tder;
512 MinvDt[3][2 *
ii + 1] +=
dr * zder;
527 double tseed = tracklet->
tapprox();
528 double z0seed = tracklet->
z0approx();
530 double rinvseedexact = tracklet->
rinv();
531 double phi0seedexact = tracklet->
phi0();
532 double tseedexact = tracklet->
t();
533 double z0seedexact = tracklet->
z0();
535 double chisqseed = 0.0;
536 double chisqseedexact = 0.0;
550 for (
unsigned int i = 0;
i <
n;
i++) {
552 iphiresid[
i] *= (
t / ttabi);
553 phiresid[
i] *= (
t / ttab);
554 phiresidexact[
i] *= (
t / ttab);
557 idelta[
j] = iphiresid[
i];
565 deltaexact[
j++] = phiresidexact[
i];
567 idelta[
j] = izresid[
i];
569 deltaexact[
j++] = zresidexact[
i];
572 chisqseedexact += (deltaexact[
j - 2] * deltaexact[
j - 2] + deltaexact[
j - 1] * deltaexact[
j - 1]);
581 double drinvexact = 0.0;
582 double dphi0exact = 0.0;
583 double dtexact = 0.0;
584 double dz0exact = 0.0;
591 double drinv_cov = 0.0;
592 double dphi0_cov = 0.0;
594 double dz0_cov = 0.0;
596 double drinv_covexact = 0.0;
597 double dphi0_covexact = 0.0;
598 double dt_covexact = 0.0;
599 double dz0_covexact = 0.0;
601 for (
unsigned int j = 0;
j < 2 *
n;
j++) {
602 drinv -= MinvDt[0][
j] *
delta[
j];
603 dphi0 -= MinvDt[1][
j] *
delta[
j];
605 dz0 -= MinvDt[3][
j] *
delta[
j];
612 drinvexact -= MinvDt[0][
j] * deltaexact[
j];
613 dphi0exact -= MinvDt[1][
j] * deltaexact[
j];
614 dtexact -= MinvDt[2][
j] * deltaexact[
j];
615 dz0exact -= MinvDt[3][
j] * deltaexact[
j];
617 drinv_covexact +=
D[0][
j] * deltaexact[
j];
618 dphi0_covexact +=
D[1][
j] * deltaexact[
j];
619 dt_covexact +=
D[2][
j] * deltaexact[
j];
620 dz0_covexact +=
D[3][
j] * deltaexact[
j];
622 idrinv += ((iMinvDt[0][
j] * idelta[
j]));
623 idphi0 += ((iMinvDt[1][
j] * idelta[
j]));
624 idt += ((iMinvDt[2][
j] * idelta[
j]));
625 idz0 += ((iMinvDt[3][
j] * idelta[
j]));
627 if (
false &&
j % 2 == 0) {
629 <<
" " << MinvDt[0][
j] <<
" " <<
delta[
j] * rstub[
j / 2] * 10000 <<
" \n"
637 double deltaChisqexact =
638 drinvexact * drinv_covexact + dphi0exact * dphi0_covexact + dtexact * dt_covexact + dz0exact * dz0_covexact;
653 double rinvfit = rinvseed - drinv;
654 double phi0fit = phi0seed - dphi0;
656 double tfit = tseed -
dt;
657 double z0fit = z0seed - dz0;
659 double rinvfitexact = rinvseedexact - drinvexact;
660 double phi0fitexact = phi0seedexact - dphi0exact;
662 double tfitexact = tseedexact - dtexact;
663 double z0fitexact = z0seedexact - dz0exact;
665 double chisqfitexact = chisqseedexact + deltaChisqexact;
668 bool NewChisqDebug =
false;
669 double chisqfit = 0.0;
680 <<
"drinv/cov = " << drinv <<
"/" << drinv_cov <<
" \n"
681 <<
"dphi0/cov = " << drinv <<
"/" << dphi0_cov <<
" \n"
682 <<
"dt/cov = " << drinv <<
"/" << dt_cov <<
" \n"
683 <<
"dz0/cov = " << drinv <<
"/" << dz0_cov <<
"\n";
685 for (
unsigned int i = 0;
i < 2 *
n;
i++) {
686 myout += std::to_string(
D[0][
i]);
692 for (
unsigned int i = 0;
i <
n;
i++) {
694 phifactor = rstub[
k / 2] *
delta[
k] / sigma[
k] +
D[0][
k] * drinv +
D[1][
k] * dphi0 +
D[2][
k] *
dt +
D[3][
k] * dz0;
696 iD[0][
k] * idrinv - iD[1][
k] * idphi0 - iD[2][
k] * idt - iD[3][
k] * idz0;
700 <<
"sum = " << phifactor -
delta[
k] / sigma[
k] <<
" drinvterm = " <<
D[0][
k] * drinv
701 <<
" dphi0term = " <<
D[1][
k] * dphi0 <<
" dtterm = " <<
D[2][
k] *
dt
702 <<
" dz0term = " <<
D[3][
k] * dz0 <<
"\n phifactor = " << phifactor;
705 chisqfit += phifactor * phifactor;
710 rzfactor =
delta[
k] / sigma[
k] +
D[0][
k] * drinv +
D[1][
k] * dphi0 +
D[2][
k] *
dt +
D[3][
k] * dz0;
712 iD[1][
k] * idphi0 - iD[2][
k] * idt - iD[3][
k] * idz0;
716 <<
"sum = " << rzfactor -
delta[
k] / sigma[
k] <<
" drinvterm = " <<
D[0][
k] * drinv
717 <<
" dphi0term = " <<
D[1][
k] * dphi0 <<
" dtterm = " <<
D[2][
k] *
dt
718 <<
" dz0term = " <<
D[3][
k] * dz0 <<
"\n rzfactor = " << rzfactor;
721 chisqfit += rzfactor * rzfactor;
733 if (ichisqfit >= (1 << 15)) {
735 edm::LogVerbatim(
"Tracklet") <<
"CHISQUARE (" << ichisqfit <<
") LARGER THAN 11 BITS!";
737 ichisqfit = (1 << 15) - 1;
741 ichisqfit = ichisqfit >> 7;
743 if (ichisqfit >= (1 << 8))
744 ichisqfit = (1 << 8) - 1;
746 double phicrit = phi0fit - asin(0.5 *
settings_.
rcrit() * rinvfit);
References funct::abs(), zMuMuMuonUserData::alpha, trklet::Settings::alphaBitsTable(), trklet::Tracklet::alphadisk(), cms::cuda::assert(), trklet::TrackDerTable::calculateDerivatives(), trklet::Settings::chisqphifactbits(), trklet::Settings::chisqzfactbits(), ztail::d, d1, trklet::Settings::debugTracklet(), dumpMFGeometry_cfg::delta, trklet::Tracklet::disk(), alignBH_cfg::disks, flavorHistoryFilter_cfi::dr, dt, MillePedeFileConverter_cfg::e, trklet::Settings::exactderivatives(), trklet::Settings::exactderivativesforfloating(), trklet::TrackDer::fill(), trklet::TrackDerTable::fillTable(), trklet::Settings::fitPatternFile(), trklet::Settings::fitphi0bitshift(), trklet::Settings::fitrinvbitshift(), trklet::Settings::fittbitshift(), trklet::Settings::fitz0bitshift(), trklet::Tracklet::fpgaphi0(), trklet::Tracklet::fpgaphiresid(), trklet::Tracklet::fpgaphiresiddisk(), trklet::Tracklet::fpgarinv(), trklet::Tracklet::fpgarresiddisk(), trklet::Tracklet::fpgat(), trklet::Tracklet::fpgaz0(), trklet::Tracklet::fpgazresid(), trklet::TrackDerTable::getDerivatives(), trklet::TrackDerTable::getEntries(), trklet::ProcessBase::getName(), trklet::ProcessBase::globals_, mps_fire::i, trklet::Tracklet::ialphadisk(), cuy::ii, trklet::Tracklet::innerStub(), createfilelist::int, trklet::Tracklet::isBarrel(), trklet::Tracklet::isDisk(), trklet::Tracklet::isOverlap(), trklet::TrackDer::itdzcorr(), trklet::TrackDer::iz0dzcorr(), dqmiolumiharvest::j, dqmdumpme::k, keep, trklet::Settings::kphi(), trklet::Settings::kr(), trklet::Settings::krinvpars(), trklet::Settings::ktpars(), cmsLHEtoEOSManager::l, trklet::Stub::l1tstub(), trklet::Tracklet::layer(), hgcalTopologyTester_cfi::layers, trklet::Tracklet::match(), trklet::Tracklet::matchdisk(), VarParsing::mult, dqmiodumpmetadata::n, trklet::N_DISK, trklet::N_FITPARAM, trklet::N_FITSTUB, trklet::N_LAYER, trklet::FPGAWord::nbits(), nlayers, trklet::Settings::nrinvBitsTable(), trklet::Globals::ofstream(), trklet::Tracklet::outerStub(), trklet::Tracklet::phi0(), trklet::Tracklet::phi0approx(), trklet::Settings::phicritmax(), trklet::Settings::phicritmin(), trklet::Tracklet::phiresid(), trklet::Tracklet::phiresidapprox(), trklet::Tracklet::phiresidapproxdisk(), trklet::Tracklet::phiresiddisk(), trklet::L1TStub::r(), alignCSCRings::r, trklet::Settings::rcorrbits(), trklet::Settings::rcrit(), trklet::TrackDerTable::readPatternFile(), trklet::rinv(), trklet::Tracklet::rinv(), trklet::Tracklet::rinvapprox(), trklet::Settings::rinvmax(), trklet::Settings::rmean(), trklet::Settings::rPS2S(), trklet::Tracklet::rresidapproxdisk(), trklet::Tracklet::rresiddisk(), trklet::FPGAWord::set(), trklet::Tracklet::setFitPars(), trklet::ProcessBase::settings_, Validation_hcalonly_cfi::sign, trklet::FPGAWord::str(), AlCaHLTBitMon_QueryRunRegistry::string, trklet::Tracklet::stubptr(), OrderedSet::t, trklet::Tracklet::t(), trklet::Tracklet::tapprox(), trklet::TrackDer::tdzcorr(), createJobs::tmp, trklet::TrackDerTable::tpar(), trklet::Globals::trackDerTable(), parallelization::uint, trklet::Tracklet::validResid(), trklet::FPGAWord::value(), trklet::Settings::warnNoDer(), trklet::Settings::writeMonitorData(), trklet::Tracklet::z0(), trklet::Tracklet::z0approx(), trklet::TrackDer::z0dzcorr(), trklet::Settings::zmean(), trklet::Tracklet::zresid(), and trklet::Tracklet::zresidapprox().
Referenced by execute().
◆ trackFitFake()
void FitTrack::trackFitFake |
( |
Tracklet * |
tracklet, |
|
|
std::vector< const Stub * > & |
, |
|
|
std::vector< std::pair< int, int >> & |
|
|
) |
| |
Definition at line 782 of file FitTrack.cc.
References trklet::Tracklet::d0(), trklet::Tracklet::d0approx(), trklet::Tracklet::fpgad0(), trklet::Tracklet::fpgaphi0(), trklet::Tracklet::fpgarinv(), trklet::Tracklet::fpgat(), trklet::Tracklet::fpgaz0(), trklet::Tracklet::phi0(), trklet::Tracklet::phi0approx(), trklet::Tracklet::rinv(), trklet::Tracklet::rinvapprox(), trklet::Tracklet::setFitPars(), trklet::Tracklet::t(), trklet::Tracklet::tapprox(), trklet::FPGAWord::value(), trklet::Tracklet::z0(), and trklet::Tracklet::z0approx().
Referenced by execute().
◆ trackFitKF()
void trklet::FitTrack::trackFitKF |
( |
Tracklet * |
tracklet, |
|
|
std::vector< const Stub * > & |
trackstublist, |
|
|
std::vector< std::pair< int, int >> & |
stubidslist |
|
) |
| |
◆ fullmatch1_
◆ fullmatch2_
◆ fullmatch3_
◆ fullmatch4_
◆ seedtracklet_
◆ trackfit_
bool exactderivatives() const
static void calculateDerivatives(Settings const &settings, unsigned int nlayers, double r[N_LAYER], unsigned int ndisks, double z[N_DISK], double alpha[N_DISK], double t, double rinv, double D[N_FITPARAM][N_FITSTUB *2], int iD[N_FITPARAM][N_FITSTUB *2], double MinvDt[N_FITPARAM][N_FITSTUB *2], int iMinvDt[N_FITPARAM][N_FITSTUB *2], double sigma[N_FITSTUB *2], double kfactor[N_FITSTUB *2])
static const std::string input
void addStubidsList(std::vector< std::pair< int, int >> stubidslist)
const FPGAWord & fpgat() const
int itdzcorr(int i, int j) const
const FPGAWord & fpgaphiresiddisk(int disk)
int fitz0bitshift() const
alpha
zGenParticlesMatch = cms.InputTag(""),
const FPGAWord & fpgazresid(int layer) const
double phiresidapprox(int layer) const
double phiresidapproxdisk(int disk)
int iz0dzcorr(int i, int j) const
void set(int value, int nbits, bool positive=true, int line=-1, const char *file=nullptr)
double rmean(unsigned int iLayer) const
const FPGAWord & fpgad0() const
double rresidapproxdisk(int disk)
Settings const & settings_
double phicritmin() const
double rinvapprox() const
constexpr unsigned int N_FITSTUB
double zresid(int layer) const
double rresiddisk(int disk)
static double tpar(Settings const &settings, int diskmask, int layermask)
std::vector< TrackletParametersMemory * > seedtracklet_
double phiresid(int layer) const
bool validResid(int layer) const
bool exactderivativesforfloating() const
const trklet::Stub * stubptr(int layer) const
std::vector< FullMatchMemory * > fullmatch1_
const L1TStub * innerStub()
double phi0approx() const
double zmean(unsigned int iDisk) const
std::vector< Tracklet * > orderedMatches(std::vector< FullMatchMemory * > &fullmatch)
std::vector< FullMatchMemory * > fullmatch2_
double alphadisk(int disk) const
std::vector< FullMatchMemory * > fullmatch4_
TrackFitMemory * trackfit_
double rinv(double phi1, double phi2, double r1, double r2)
const FPGAWord & fpgarresiddisk(int disk)
constexpr unsigned int N_FITPARAM
std::pair< typename Association::data_type::first_type, double > match(Reference key, Association association, bool bestMatchByMaxValue)
Generic matching function.
const FPGAWord & ialphadisk(int disk) const
const FPGAWord & fpgaphiresid(int layer) const
const TrackDer * getDerivatives(int index) const
const L1TStub * outerStub()
double phiresiddisk(int disk)
double z0dzcorr(int i, int j) const
double phicritmax() const
int chisqphifactbits() const
void trackFitFake(Tracklet *tracklet, std::vector< const Stub * > &, std::vector< std::pair< int, int >> &)
void addTrack(Tracklet *tracklet)
const FPGAWord & fpgaz0() const
int fitrinvbitshift() const
void fill(int t, double MinvDt[N_FITPARAM][N_FITSTUB *2], int iMinvDt[N_FITPARAM][N_FITSTUB *2]) const
bool writeMonitorData(std::string module) const
DecomposeProduct< arg, typename Div::arg > D
std::string removalType() const
int fitphi0bitshift() const
std::vector< FullMatchMemory * > fullmatch3_
std::ofstream & ofstream(std::string fname)
std::string const & fitPatternFile() const
void readPatternFile(std::string fileName)
TrackDerTable *& trackDerTable()
std::string const & getName() const
void setFitPars(double rinvfit, double phi0fit, double d0fit, double tfit, double z0fit, double chisqrphifit, double chisqrzfit, double rinvfitexact, double phi0fitexact, double d0fitexact, double tfitexact, double z0fitexact, double chisqrphifitexact, double chisqrzfitexact, int irinvfit, int iphi0fit, int id0fit, int itfit, int iz0fit, int ichisqrphifit, int ichisqrzfit, int hitpattern, const std::vector< const L1TStub * > &l1stubs=std::vector< const L1TStub * >())
void addStubList(std::vector< const Stub * > stublist)
bool debugTracklet() const
int nrinvBitsTable() const
void trackFitChisq(Tracklet *tracklet, std::vector< const Stub * > &, std::vector< std::pair< int, int >> &)
const FPGAWord & fpgarinv() const
int chisqzfactbits() const
Abs< T >::type abs(const T &t)
double tdzcorr(int i, int j) const
ProcessBase(std::string name, Settings const &settings, Globals *global, unsigned int iSector)
const FPGAWord & fpgaphi0() const
int alphaBitsTable() const
static constexpr float d1
void trackFitKF(Tracklet *tracklet, std::vector< const Stub * > &trackstublist, std::vector< std::pair< int, int >> &stubidslist)
double zresidapprox(int layer) const