|
|
#include <HoughGrouping.h>
Definition at line 35 of file HoughGrouping.h.
◆ HoughGrouping()
Definition at line 54 of file HoughGrouping.cc.
56 debug_ =
pset.getUntrackedParameter<
bool>(
"debug");
58 LogDebug(
"HoughGrouping") <<
"HoughGrouping: constructor";
References allowUncorrelatedPatterns_, anglebinwidth_, angletan_, edm::BeginRun, debug_, dtGeomH, edm::ConsumesCollector::esConsumes(), createfilelist::int, LogDebug, lowerNumber_, maxdeltaAngDeg_, maxdeltaPos_, maxDistanceToWire_, minNLayerHits_, minSingleSLHitsMax_, minSingleSLHitsMin_, minUncorrelatedHits_, posbinwidth_, muonDTDigis_cfi::pset, and upperNumber_.
◆ ~HoughGrouping()
HoughGrouping::~HoughGrouping |
( |
| ) |
|
|
override |
◆ areThereEnoughHits()
bool HoughGrouping::areThereEnoughHits |
( |
const ProtoCand & |
tupl | ) |
|
|
private |
Definition at line 875 of file HoughGrouping.cc.
877 LogDebug(
"HoughGrouping") <<
"areThereEnoughHits";
878 unsigned short int numhitssl1 = 0;
879 unsigned short int numhitssl3 = 0;
880 for (
unsigned short int lay = 0; lay < 8; lay++) {
881 if ((tupl.
dtHits_[lay].channelId() > 0) && (lay < 4))
883 else if (tupl.
dtHits_[lay].channelId() > 0)
888 LogDebug(
"HoughGrouping") <<
"areThereEnoughHits - Hits in SL1: " << numhitssl1;
890 LogDebug(
"HoughGrouping") <<
"areThereEnoughHits - Hits in SL3: " << numhitssl3;
892 if ((numhitssl1 != 0) && (numhitssl3 != 0)) {
894 if (numhitssl1 > numhitssl3) {
896 }
else if (numhitssl3 > numhitssl1) {
References ProtoCand::dtHits_, and LogDebug.
◆ associateHits()
Definition at line 552 of file HoughGrouping.cc.
554 LogDebug(
"HoughGrouping") <<
"associateHits";
555 LocalPoint tmpLocal, AWireLocal, AWireLocalCh, tmpLocalCh, thepoint;
559 double distright = 0;
560 unsigned short int tmpwire = 0;
561 unsigned short int abslay = 0;
564 bool isright =
false;
575 LogDebug(
"HoughGrouping") <<
"associateHits - Beginning SL loop";
576 for (
unsigned short int sl = 1; sl < 3 + 1; sl++) {
580 LogDebug(
"HoughGrouping") <<
"associateHits - SL: " << sl;
582 for (
unsigned short int l = 1;
l < 4 + 1;
l++) {
584 LogDebug(
"HoughGrouping") <<
"associateHits - L: " <<
l;
599 AWireLocalCh = thechamb->
toLocal(AWireGlobal);
600 tmpx = (AWireLocalCh.
z() -
n) /
m;
610 LogDebug(
"HoughGrouping") <<
"associateHits - Wire number: " << tmpwire;
612 LogDebug(
"HoughGrouping") <<
"associateHits - First channel in layer: "
618 tmpLocalCh = thechamb->
toLocal(tmpGlobal);
622 if ((tmpLocalCh.
x() - thepoint.
x()) > 0)
634 else if (lat ==
RIGHT)
639 returnPC.
dtHits_[abslay].setLaterality(lat);
642 LogDebug(
"HoughGrouping") <<
"associateHits - No hit in the crossing cell";
648 LogDebug(
"HoughGrouping") <<
"associateHits - There is in the left: " << (
int)isleft;
650 LogDebug(
"HoughGrouping") <<
"associateHits - There is in the right: " << (
int)isright;
652 if ((isleft) && (!isright)) {
655 tmpLocalCh = thechamb->
toLocal(tmpGlobal);
664 }
else if ((!isleft) && (isright)) {
667 tmpLocalCh = thechamb->
toLocal(tmpGlobal);
675 }
else if ((isleft) && (isright)) {
686 distleft =
std::abs(thepoint.
x() - tmpLocalCh_l.
x());
687 distright =
std::abs(thepoint.
x() - tmpLocalCh_r.
x());
697 if (distleft < distright) {
715 LogDebug(
"HoughGrouping") <<
"associateHits - Finishing with the candidate. We have found the following of it:";
717 for (
unsigned short int lay = 0; lay < 8; lay++) {
718 LogDebug(
"HoughGrouping") <<
"associateHits - For absolute layer: " << lay;
722 LogDebug(
"HoughGrouping") <<
"associateHits - Abs. diff. between SL1 and SL3 hits: " << returnPC.
nHitsDiff_;
723 for (
unsigned short int lay = 0; lay < 8; lay++) {
724 LogDebug(
"HoughGrouping") <<
"associateHits - For absolute layer: " << lay;
References funct::abs(), DTTopology::channel(), submitPVResolutionJobs::count, ProtoCand::dtHits_, DTTopology::firstChannel(), createfilelist::int, ProtoCand::isThereHitInLayer_, ProtoCand::isThereNeighBourHitInLayer_, cmsLHEtoEOSManager::l, DTSuperLayer::layer(), cmsdt::LEFT, LogDebug, visualization-live-secondInstance_cfg::m, dqmiodumpmetadata::n, ProtoCand::nHitsDiff_, ProtoCand::nLayersWithHits_, NONE, cmsdt::NUM_LAYERS_2SL, cmsdt::RIGHT, DTLayer::specificTopology(), DTChamber::superLayer(), GeomDet::toGlobal(), GeomDet::toLocal(), DTTopology::wirePosition(), PV3DBase< T, PVType, FrameType >::x(), ProtoCand::xDistToPattern_, and PV3DBase< T, PVType, FrameType >::z().
◆ doHoughTransform()
void HoughGrouping::doHoughTransform |
( |
| ) |
|
|
private |
◆ findTheMaxima()
Definition at line 437 of file HoughGrouping.cc.
439 LogDebug(
"HoughGrouping") <<
"findTheMaxima";
440 bool fullyreduced =
false;
441 unsigned short int ind = 0;
443 std::vector<unsigned short int> chosenvec;
448 LogDebug(
"HoughGrouping") <<
"findTheMaxima - prewhile";
449 while (!fullyreduced) {
451 LogDebug(
"HoughGrouping") <<
"\nHoughGrouping::findTheMaxima - New iteration";
452 LogDebug(
"HoughGrouping") <<
"findTheMaxima - inputvec size: " << inputvec.size();
453 LogDebug(
"HoughGrouping") <<
"findTheMaxima - ind: " << ind;
460 LogDebug(
"HoughGrouping") <<
"findTheMaxima - Ours have " << get<2>(inputvec.at(ind))
461 <<
" entries, ang.: " << get<0>(inputvec.at(ind))
462 <<
" and pos.: " << get<1>(inputvec.at(ind));
464 for (
unsigned short int j = ind + 1;
j < inputvec.size();
j++) {
467 chosenvec.push_back(
j);
469 LogDebug(
"HoughGrouping") <<
"findTheMaxima - - Adding num. " <<
j
472 <<
" and with " << get<2>(inputvec.at(
j))
473 <<
" entries, ang.: " << get<0>(inputvec.at(
j))
474 <<
" and pos.: " << get<1>(inputvec.at(
j));
476 LogDebug(
"HoughGrouping") <<
"findTheMaxima - - Ignoring num. " <<
j
479 <<
" and with " << get<2>(inputvec.at(
j)) <<
" entries.";
483 LogDebug(
"HoughGrouping") <<
"findTheMaxima - chosenvecsize: " << chosenvec.size();
485 if (chosenvec.empty()) {
486 if (ind + 1 >= (
unsigned short int)inputvec.size())
489 resultvec.push_back({get<0>(inputvec.at(ind)), get<1>(inputvec.at(ind))});
491 LogDebug(
"HoughGrouping") <<
"findTheMaxima - - Candidate dropped due to an excess in angle";
500 inputvec.erase(inputvec.begin() + ind);
501 for (
short int j = chosenvec.size() - 1;
j > -1;
j--) {
503 LogDebug(
"HoughGrouping") <<
"findTheMaxima - erasing index: " << chosenvec.at(
j) - 1;
504 inputvec.erase(inputvec.begin() + chosenvec.at(
j) - 1);
508 LogDebug(
"HoughGrouping") <<
"findTheMaxima - inputvec size: " << inputvec.size();
512 resultvec.push_back(finalpair);
514 LogDebug(
"HoughGrouping") <<
"findTheMaxima - - Candidate dropped due to an excess in angle";
516 if (ind + 1 >= (
unsigned short int)inputvec.size())
519 LogDebug(
"HoughGrouping") <<
"findTheMaxima - iteration ends";
523 LogDebug(
"HoughGrouping") <<
"findTheMaxima - postwhile";
References dqmdumpme::first, dqmiolumiharvest::j, LogDebug, M_PI, and edm::second().
◆ finish()
void HoughGrouping::finish |
( |
| ) |
|
|
overridevirtual |
◆ getAveragePoint()
PointInPlane HoughGrouping::getAveragePoint |
( |
const PointTuples & |
inputvec, |
|
|
unsigned short int |
firstindex, |
|
|
const std::vector< unsigned short int > & |
indexlist |
|
) |
| |
|
private |
◆ getMaximaVector()
Definition at line 391 of file HoughGrouping.cc.
393 LogDebug(
"HoughGrouping") <<
"getMaximaVector";
396 bool flagsearched =
false;
399 while (!flagsearched) {
400 for (
unsigned short int ab = 0; ab <
anglebins_; ab++) {
401 for (
unsigned short int sb = 0; sb <
spacebins_; sb++) {
406 if (((numbertolookat - 1) <
lowerNumber_) || (!tmpvec.empty()))
412 if (tmpvec.empty()) {
414 LogDebug(
"HoughGrouping") <<
"GetMaximaVector - No maxima could be found";
421 for (
unsigned short int i = 0;
i < finalvec.size();
i++)
References mps_fire::i, and LogDebug.
◆ getTwoDelta()
◆ initialise()
◆ obtainGeometricalBorders()
void HoughGrouping::obtainGeometricalBorders |
( |
const DTLayer * |
lay | ) |
|
|
private |
Definition at line 308 of file HoughGrouping.cc.
310 LogDebug(
"HoughGrouping") <<
"ObtainGeometricalBorders";
326 unsigned short int upsl =
thestation_ == 4 ? 3 : 3;
328 LogDebug(
"HoughGrouping") <<
"ObtainGeometricalBorders - uppersuperlayer: " << upsl;
References funct::abs(), DTTopology::cellHeight(), DTTopology::cellWidth(), DTLayer::chamber(), DTTopology::firstChannel(), DTTopology::lastChannel(), DTSuperLayer::layer(), LogDebug, DTLayer::specificTopology(), DTChamber::superLayer(), GeomDet::toGlobal(), GeomDet::toLocal(), DTTopology::wirePosition(), PV3DBase< T, PVType, FrameType >::x(), and PV3DBase< T, PVType, FrameType >::z().
◆ orderAndFilter()
Definition at line 750 of file HoughGrouping.cc.
752 LogDebug(
"HoughGrouping") <<
"orderAndFilter";
760 std::vector<unsigned short int> elstoremove;
763 LogDebug(
"HoughGrouping") <<
"orderAndFilter - First ordering";
764 std::sort(invector.begin(), invector.end(), HoughOrdering);
767 unsigned short int ind = 0;
770 LogDebug(
"HoughGrouping") <<
"orderAndFilter - Entering while";
773 LogDebug(
"HoughGrouping") <<
"\nHoughGrouping::orderAndFilter - New iteration with ind: " << ind;
775 for (
unsigned short int i = ind + 1;
i < invector.size();
i++) {
777 LogDebug(
"HoughGrouping") <<
"orderAndFilter - Checking index: " <<
i;
778 for (
unsigned short int lay = 0; lay < 8; lay++) {
780 LogDebug(
"HoughGrouping") <<
"orderAndFilter - Checking layer number: " << lay;
781 if (invector.at(
i).dtHits_[lay].channelId() == invector.at(ind).dtHits_[lay].channelId() &&
782 invector.at(ind).dtHits_[lay].channelId() != -1) {
783 invector.at(
i).nLayersWithHits_--;
784 invector.at(
i).isThereHitInLayer_[lay] =
false;
785 invector.at(
i).isThereNeighBourHitInLayer_[lay] =
false;
788 if (invector.at(
i).dtHits_[lay].laterality() != invector.at(ind).dtHits_[lay].laterality())
789 invector.at(ind).dtHits_[lay].setLaterality(
NONE);
796 <<
"orderAndFilter - Finished checking all the layers, now seeing if we should remove the "
801 LogDebug(
"HoughGrouping") <<
"orderAndFilter - This candidate shall be removed!";
802 elstoremove.push_back((
unsigned short int)
i);
807 LogDebug(
"HoughGrouping") <<
"orderAndFilter - We are gonna erase " << elstoremove.size() <<
" elements";
809 for (
short int el = (elstoremove.size() - 1); el > -1; el--) {
810 invector.erase(invector.begin() + elstoremove.at(el));
813 if (ind + 1 == (
unsigned short int)invector.size())
816 std::sort(invector.begin() + ind + 1, invector.end(), HoughOrdering);
821 for (
short int el = (invector.size() - 1); el > -1; el--) {
823 invector.erase(invector.begin() + el);
827 if (invector.empty()) {
829 LogDebug(
"HoughGrouping") <<
"OrderAndFilter - We do not have candidates with the minimum hits required.";
832 LogDebug(
"HoughGrouping") <<
"OrderAndFilter - At the end, we have only " << invector.size() <<
" good paths!";
835 for (
unsigned short int i = 0;
i < invector.size();
i++) {
837 unsigned short int tmplowfill = 0;
838 unsigned short int tmpupfill = 0;
839 for (
unsigned short int lay = 0; lay < 8; lay++) {
840 auto dtAux = std::make_shared<DTPrimitive>(invector.at(
i).dtHits_[lay]);
841 ptrPrimitive.push_back(
std::move(dtAux));
843 LogDebug(
"HoughGrouping") <<
"\nHoughGrouping::OrderAndFilter - cameraid: " << ptrPrimitive[lay]->cameraId();
844 LogDebug(
"HoughGrouping") <<
"OrderAndFilter - channelid (GOOD): " << ptrPrimitive[lay]->channelId();
845 LogDebug(
"HoughGrouping") <<
"OrderAndFilter - channelid (AM): " << ptrPrimitive[lay]->channelId() - 1;
848 if (ptrPrimitive[lay]->channelId() != -1)
849 ptrPrimitive[lay]->setChannelId(ptrPrimitive[lay]->channelId() - 1);
851 if (ptrPrimitive[lay]->cameraId() > 0) {
859 auto ptrMuonPath = std::make_shared<MuonPath>(ptrPrimitive, tmplowfill, tmpupfill);
860 outMuonPath.push_back(ptrMuonPath);
862 for (
unsigned short int lay = 0; lay < 8; lay++) {
863 LogDebug(
"HoughGrouping") <<
"OrderAndFilter - Final cameraID: "
864 << outMuonPath.back()->primitive(lay)->cameraId();
865 LogDebug(
"HoughGrouping") <<
"OrderAndFilter - Final channelID: "
866 << outMuonPath.back()->primitive(lay)->channelId();
867 LogDebug(
"HoughGrouping") <<
"OrderAndFilter - Final time: "
868 << outMuonPath.back()->primitive(lay)->tdcTimeStamp();
References filtered(), mps_fire::i, LogDebug, eostools::move(), and NONE.
◆ resetAttributes()
void HoughGrouping::resetAttributes |
( |
| ) |
|
|
private |
◆ resetPosElementsOfLinespace()
void HoughGrouping::resetPosElementsOfLinespace |
( |
| ) |
|
|
private |
◆ run()
Reimplemented from MotherGrouping.
Definition at line 136 of file HoughGrouping.cc.
141 LogDebug(
"HoughGrouping") <<
"\nHoughGrouping::run";
146 LogDebug(
"HoughGrouping") <<
"run - Beginning digis' loop...";
152 digiIt != ((*dtLayerIdIt).second).second;
155 LogDebug(
"HoughGrouping") <<
"\nHoughGrouping::run - Digi number " <<
idigi_;
156 LogDebug(
"HoughGrouping") <<
"run - Wheel: " << (*dtLayerIdIt).first.wheel();
157 LogDebug(
"HoughGrouping") <<
"run - Chamber: " << (*dtLayerIdIt).first.station();
158 LogDebug(
"HoughGrouping") <<
"run - Sector: " << (*dtLayerIdIt).first.sector();
159 LogDebug(
"HoughGrouping") <<
"run - Superlayer: " << (*dtLayerIdIt).first.superLayer();
160 LogDebug(
"HoughGrouping") <<
"run - Layer: " << (*dtLayerIdIt).first.layer();
161 LogDebug(
"HoughGrouping") <<
"run - Wire: " << (*digiIt).wire();
164 LogDebug(
"HoughGrouping") <<
"run - First wire x: "
166 LogDebug(
"HoughGrouping") <<
"run - Last wire x: "
171 if ((*dtLayerIdIt).first.superLayer() == 2)
175 wirePosGlob = lay->
toGlobal(wirePosInLay);
178 if ((*dtLayerIdIt).first.superLayer() == 3) {
180 digimap_[(*dtLayerIdIt).first.layer() + 3][(*digiIt).wire()].setTDCTimeStamp((*digiIt).time());
181 digimap_[(*dtLayerIdIt).first.layer() + 3][(*digiIt).wire()].setChannelId((*digiIt).wire());
182 digimap_[(*dtLayerIdIt).first.layer() + 3][(*digiIt).wire()].setLayerId((*dtLayerIdIt).first.layer());
183 digimap_[(*dtLayerIdIt).first.layer() + 3][(*digiIt).wire()].setSuperLayerId((*dtLayerIdIt).first.superLayer());
184 digimap_[(*dtLayerIdIt).first.layer() + 3][(*digiIt).wire()].setCameraId((*dtLayerIdIt).first.rawId());
187 digimap_[(*dtLayerIdIt).first.layer() - 1][(*digiIt).wire()].setTDCTimeStamp((*digiIt).time());
188 digimap_[(*dtLayerIdIt).first.layer() - 1][(*digiIt).wire()].setChannelId((*digiIt).wire());
189 digimap_[(*dtLayerIdIt).first.layer() - 1][(*digiIt).wire()].setLayerId((*dtLayerIdIt).first.layer());
190 digimap_[(*dtLayerIdIt).first.layer() - 1][(*digiIt).wire()].setSuperLayerId((*dtLayerIdIt).first.superLayer());
191 digimap_[(*dtLayerIdIt).first.layer() - 1][(*digiIt).wire()].setCameraId((*dtLayerIdIt).first.rawId());
196 thewheel_ = (*dtLayerIdIt).first.wheel();
203 LogDebug(
"HoughGrouping") <<
"run - X position of the cell (chamber frame of reference): "
204 << wirePosInChamber.
x();
205 LogDebug(
"HoughGrouping") <<
"run - Y position of the cell (chamber frame of reference): "
206 << wirePosInChamber.
y();
207 LogDebug(
"HoughGrouping") <<
"run - Z position of the cell (chamber frame of reference): "
208 << wirePosInChamber.
z();
211 hitvec_.push_back({wirePosInChamber.
x() - 1.05, wirePosInChamber.
z()});
212 hitvec_.push_back({wirePosInChamber.
x() + 1.05, wirePosInChamber.
z()});
220 LogDebug(
"HoughGrouping") <<
"\nHoughGrouping::run - nhits: " <<
nhits_;
226 LogDebug(
"HoughGrouping") <<
"run - No digis present in this chamber.";
239 LogDebug(
"HoughGrouping") <<
"run - No good maxima found in this event.";
245 std::vector<ProtoCand>
cands;
247 for (
unsigned short int ican = 0; ican <
maxima_.size(); ican++) {
249 LogDebug(
"HoughGrouping") <<
"\nHoughGrouping::run - Candidate number: " << ican;
256 LogDebug(
"HoughGrouping") <<
"run - now we have our muonpaths! It has " << outMpath.size() <<
" elements";
References HLT_FULL_cff::cands, DTTopology::cellHeight(), DTTopology::cellWidth(), DTLayer::chamber(), DTTopology::firstChannel(), DTTopology::lastChannel(), LogDebug, DTLayer::specificTopology(), GeomDet::toGlobal(), GeomDet::toLocal(), DTTopology::wirePosition(), PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().
◆ setDifferenceBetweenSL()
void HoughGrouping::setDifferenceBetweenSL |
( |
ProtoCand & |
tupl | ) |
|
|
private |
◆ transformPair()
◆ allowUncorrelatedPatterns_
bool HoughGrouping::allowUncorrelatedPatterns_ |
|
private |
◆ anglebins_
unsigned short int HoughGrouping::anglebins_ |
|
private |
◆ anglebinwidth_
double HoughGrouping::anglebinwidth_ |
|
private |
◆ anglemap_
◆ angletan_
double HoughGrouping::angletan_ |
|
private |
◆ debug_
bool HoughGrouping::debug_ |
|
private |
◆ digimap_
std::map<unsigned short int, DTPrimitive> HoughGrouping::digimap_[8] |
|
private |
◆ dtGeo_
◆ dtGeomH
◆ halfanglebins_
unsigned short int HoughGrouping::halfanglebins_ |
|
private |
◆ hitvec_
◆ idigi_
unsigned short int HoughGrouping::idigi_ |
|
private |
◆ linespace_
std::vector<std::vector<unsigned short int> > HoughGrouping::linespace_ |
|
private |
◆ lowerNumber_
unsigned short int HoughGrouping::lowerNumber_ |
|
private |
◆ maxdeltaAng_
double HoughGrouping::maxdeltaAng_ |
|
private |
◆ maxdeltaAngDeg_
double HoughGrouping::maxdeltaAngDeg_ |
|
private |
◆ maxdeltaPos_
double HoughGrouping::maxdeltaPos_ |
|
private |
◆ maxDistanceToWire_
double HoughGrouping::maxDistanceToWire_ |
|
private |
◆ maxima_
◆ maxrads_
double HoughGrouping::maxrads_ |
|
private |
◆ minangle_
double HoughGrouping::minangle_ |
|
private |
◆ minNLayerHits_
unsigned short int HoughGrouping::minNLayerHits_ |
|
private |
◆ minSingleSLHitsMax_
unsigned short int HoughGrouping::minSingleSLHitsMax_ |
|
private |
◆ minSingleSLHitsMin_
unsigned short int HoughGrouping::minSingleSLHitsMin_ |
|
private |
◆ minUncorrelatedHits_
unsigned short int HoughGrouping::minUncorrelatedHits_ |
|
private |
◆ nhits_
unsigned short int HoughGrouping::nhits_ |
|
private |
◆ oneanglebin_
double HoughGrouping::oneanglebin_ |
|
private |
◆ posbinwidth_
double HoughGrouping::posbinwidth_ |
|
private |
◆ posmap_
◆ spacebins_
unsigned short int HoughGrouping::spacebins_ |
|
private |
◆ TheChambId
◆ thesector_
unsigned short int HoughGrouping::thesector_ |
|
private |
◆ thestation_
unsigned short int HoughGrouping::thestation_ |
|
private |
◆ thewheel_
short int HoughGrouping::thewheel_ |
|
private |
◆ upperNumber_
unsigned short int HoughGrouping::upperNumber_ |
|
private |
◆ xhighlim_
double HoughGrouping::xhighlim_ |
|
private |
◆ xlowlim_
double HoughGrouping::xlowlim_ |
|
private |
◆ zhighlim_
double HoughGrouping::zhighlim_ |
|
private |
◆ zlowlim_
double HoughGrouping::zlowlim_ |
|
private |
void obtainGeometricalBorders(const DTLayer *lay)
int channel(const LocalPoint &p) const override
PointsInPlane getMaximaVector()
unsigned short int minNLayerHits_
bool allowUncorrelatedPatterns_
unsigned short int anglebins_
unsigned short int nhits_
constexpr long double convertDegToRad(NumType degrees)
U second(std::pair< T, U > const &p)
unsigned short int minSingleSLHitsMin_
unsigned short int halfanglebins_
Point3DBase< Scalar, LocalTag > LocalPoint
PointInPlane transformPair(const PointInPlane &inputpair)
bool areThereEnoughHits(const ProtoCand &tupl)
float cellWidth() const
Returns the cell width.
std::vector< double > xDistToPattern_
std::vector< DigiType >::const_iterator const_iterator
const DTChamber * chamber(const DTChamberId &id) const
Return a DTChamber given its id.
std::map< unsigned short int, DTPrimitive > digimap_[8]
unsigned short int minUncorrelatedHits_
Sin< T >::type sin(const T &t)
PointInPlane getTwoDelta(const PointTuple &pair1, const PointTuple &pair2)
float wirePosition(int wireNumber) const
Returns the x position in the layer of a given wire number.
DTGeometry const * dtGeo_
Cos< T >::type cos(const T &t)
ProtoCand associateHits(const DTChamber *thechamb, double m, double n)
int firstChannel() const
Returns the wire number of the first wire.
unsigned short int nLayersWithHits_
unsigned short int thesector_
unsigned short int lowerNumber_
std::vector< std::vector< unsigned short int > > linespace_
unsigned short int idigi_
LocalPoint toLocal(const GlobalPoint &gp) const
Conversion to the R.F. of the GeomDet.
unsigned short int thestation_
GlobalPoint toGlobal(const Local2DPoint &lp) const
Conversion to the global R.F. from the R.F. of the GeomDet.
const DTLayer * layer(const DTLayerId &id) const
Return a layer given its id.
void clear(HadCaloObj &c)
edm::ESGetToken< DTGeometry, MuonGeometryRecord > dtGeomH
double maxDistanceToWire_
std::vector< bool > isThereHitInLayer_
unsigned short int minSingleSLHitsMax_
Tan< T >::type tan(const T &t)
std::vector< PointInPlane > PointsInPlane
void orderAndFilter(std::vector< ProtoCand > &invector, MuonPathPtrs &outMuonPath)
std::pair< double, double > PointInPlane
PointsInPlane findTheMaxima(PointTuples &inputvec)
std::vector< PointTuple > PointTuples
std::vector< bool > isThereNeighBourHitInLayer_
int lastChannel() const
Returns the wire number of the last wire.
float cellHeight() const
Returns the cell height.
const DTChamber * chamber() const
unsigned short int upperNumber_
constexpr int NUM_LAYERS_2SL
PointInPlane getAveragePoint(const PointTuples &inputvec, unsigned short int firstindex, const std::vector< unsigned short int > &indexlist)
const DTLayer * layer(const DTLayerId &id) const
Return the layer corresponding to the given id.
const DTTopology & specificTopology() const
void setDifferenceBetweenSL(ProtoCand &tupl)
Abs< T >::type abs(const T &t)
void resetPosElementsOfLinespace()
const DTSuperLayer * superLayer(const DTSuperLayerId &id) const
Return the superlayer corresponding to the given id.
std::vector< DTPrimitivePtr > DTPrimitivePtrs
unsigned short int spacebins_
unsigned short int nHitsDiff_
MotherGrouping(const edm::ParameterSet &pset, edm::ConsumesCollector &iC)