CMS 3D CMS Logo

List of all members | Classes | Public Member Functions | Private Member Functions | Private Attributes
PseudoBayesGrouping Class Reference

#include <PseudoBayesGrouping.h>

Inheritance diagram for PseudoBayesGrouping:
MotherGrouping

Classes

struct  CandPointGreat
 

Public Member Functions

void finish () override
 
void initialise (const edm::EventSetup &iEventSetup) override
 
 PseudoBayesGrouping (const edm::ParameterSet &pset, edm::ConsumesCollector &iC)
 
void run (edm::Event &iEvent, const edm::EventSetup &iEventSetup, const DTDigiCollection &digis, MuonPathPtrs &outMpath) override
 
 ~PseudoBayesGrouping () override
 
- Public Member Functions inherited from MotherGrouping
 MotherGrouping (const edm::ParameterSet &pset, edm::ConsumesCollector &iC)
 
virtual ~MotherGrouping ()
 

Private Member Functions

void CleanDigisByLayer ()
 
void FillDigisByLayer (const DTDigiCollection *digis)
 
void FillMuonPaths (MuonPathPtrs &mpaths)
 
void LoadPattern (std::vector< std::vector< std::vector< int >>>::iterator itPattern)
 
void ReCleanPatternsAndDigis ()
 
void RecognisePatterns (std::vector< DTPrimitive > digisinLDown, std::vector< DTPrimitive > digisinLUp, std::vector< DTPattern * > patterns)
 
void RecognisePatternsByLayerPairs ()
 

Private Attributes

std::vector< DTPrimitivealldigis_
 
std::unique_ptr< dtbayesam::CandidateGroupPtrsallMatches_
 
bool allowDuplicates_
 
int allowedVariance_
 
bool allowUncorrelatedPatterns_
 
std::vector< DTPattern * > allPatterns_
 
bool debug_
 
std::vector< DTPrimitivedigisinL0_
 
std::vector< DTPrimitivedigisinL1_
 
std::vector< DTPrimitivedigisinL2_
 
std::vector< DTPrimitivedigisinL3_
 
std::vector< DTPrimitivedigisinL4_
 
std::vector< DTPrimitivedigisinL5_
 
std::vector< DTPrimitivedigisinL6_
 
std::vector< DTPrimitivedigisinL7_
 
std::unique_ptr< dtbayesam::CandidateGroupPtrsfinalMatches_
 
std::vector< DTPattern * > L0L1Patterns_
 
std::vector< DTPattern * > L0L2Patterns_
 
std::vector< DTPattern * > L0L3Patterns_
 
std::vector< DTPattern * > L0L4Patterns_
 
std::vector< DTPattern * > L0L5Patterns_
 
std::vector< DTPattern * > L0L6Patterns_
 
std::vector< DTPattern * > L0L7Patterns_
 
std::vector< DTPattern * > L1L2Patterns_
 
std::vector< DTPattern * > L1L3Patterns_
 
std::vector< DTPattern * > L1L4Patterns_
 
std::vector< DTPattern * > L1L5Patterns_
 
std::vector< DTPattern * > L1L6Patterns_
 
std::vector< DTPattern * > L1L7Patterns_
 
std::vector< DTPattern * > L2L3Patterns_
 
std::vector< DTPattern * > L2L4Patterns_
 
std::vector< DTPattern * > L2L5Patterns_
 
std::vector< DTPattern * > L2L6Patterns_
 
std::vector< DTPattern * > L2L7Patterns_
 
std::vector< DTPattern * > L3L4Patterns_
 
std::vector< DTPattern * > L3L5Patterns_
 
std::vector< DTPattern * > L3L6Patterns_
 
std::vector< DTPattern * > L3L7Patterns_
 
std::vector< DTPattern * > L4L5Patterns_
 
std::vector< DTPattern * > L4L6Patterns_
 
std::vector< DTPattern * > L4L7Patterns_
 
std::vector< DTPattern * > L5L6Patterns_
 
std::vector< DTPattern * > L5L7Patterns_
 
std::vector< DTPattern * > L6L7Patterns_
 
int minNLayerHits_
 
int minSingleSLHitsMax_
 
int minSingleSLHitsMin_
 
int minUncorrelatedHits_
 
int nPatterns_
 
std::string pattern_filename_
 
int pidx_
 
std::unique_ptr< dtbayesam::CandidateGroupPtrsprelimMatches_
 
bool saveOnPlace_
 
bool setLateralities_
 

Detailed Description

Definition at line 11 of file PseudoBayesGrouping.h.

Constructor & Destructor Documentation

◆ PseudoBayesGrouping()

PseudoBayesGrouping::PseudoBayesGrouping ( const edm::ParameterSet pset,
edm::ConsumesCollector iC 
)

Definition at line 18 of file PseudoBayesGrouping.cc.

19  : MotherGrouping(pset, iC) {
20  // Obtention of parameters
21  debug_ = pset.getUntrackedParameter<bool>("debug");
22  pattern_filename_ = pset.getUntrackedParameter<edm::FileInPath>("pattern_filename").fullPath();
23  minNLayerHits_ = pset.getUntrackedParameter<int>("minNLayerHits");
24  minSingleSLHitsMax_ = pset.getUntrackedParameter<int>("minSingleSLHitsMax");
25  minSingleSLHitsMin_ = pset.getUntrackedParameter<int>("minSingleSLHitsMin");
26  allowedVariance_ = pset.getUntrackedParameter<int>("allowedVariance");
27  allowDuplicates_ = pset.getUntrackedParameter<bool>("allowDuplicates");
28  allowUncorrelatedPatterns_ = pset.getUntrackedParameter<bool>("allowUncorrelatedPatterns");
29  minUncorrelatedHits_ = pset.getUntrackedParameter<int>("minUncorrelatedHits");
30  saveOnPlace_ = pset.getUntrackedParameter<bool>("saveOnPlace");
31  setLateralities_ = pset.getUntrackedParameter<bool>("setLateralities");
32  if (debug_)
33  LogDebug("PseudoBayesGrouping") << "PseudoBayesGrouping:: constructor";
34 }

References allowDuplicates_, allowedVariance_, allowUncorrelatedPatterns_, debug_, contentValuesFiles::fullPath, LogDebug, minNLayerHits_, minSingleSLHitsMax_, minSingleSLHitsMin_, minUncorrelatedHits_, pattern_filename_, muonDTDigis_cfi::pset, saveOnPlace_, and setLateralities_.

◆ ~PseudoBayesGrouping()

PseudoBayesGrouping::~PseudoBayesGrouping ( )
override

Definition at line 36 of file PseudoBayesGrouping.cc.

36  {
37  if (debug_)
38  LogDebug("PseudoBayesGrouping") << "PseudoBayesGrouping:: destructor";
39  for (std::vector<DTPattern*>::iterator pat_it = allPatterns_.begin(); pat_it != allPatterns_.end(); pat_it++) {
40  delete (*pat_it);
41  }
42 }

References allPatterns_, debug_, and LogDebug.

Member Function Documentation

◆ CleanDigisByLayer()

void PseudoBayesGrouping::CleanDigisByLayer ( )
private

Definition at line 453 of file PseudoBayesGrouping.cc.

453  {
454  digisinL0_.clear();
455  digisinL1_.clear();
456  digisinL2_.clear();
457  digisinL3_.clear();
458  digisinL4_.clear();
459  digisinL5_.clear();
460  digisinL6_.clear();
461  digisinL7_.clear();
462  alldigis_.clear();
463  allMatches_->clear();
464  prelimMatches_->clear();
465  finalMatches_->clear();
466 }

References alldigis_, allMatches_, digisinL0_, digisinL1_, digisinL2_, digisinL3_, digisinL4_, digisinL5_, digisinL6_, digisinL7_, finalMatches_, and prelimMatches_.

Referenced by run().

◆ FillDigisByLayer()

void PseudoBayesGrouping::FillDigisByLayer ( const DTDigiCollection digis)
private

Definition at line 368 of file PseudoBayesGrouping.cc.

368  {
369  //First we need to have separated lists of digis by layer
370  if (debug_)
371  LogDebug("PseudoBayesGrouping") << "PseudoBayesGrouping::FillDigisByLayer Classifying digis by layer";
372  // for (auto dtDigi_It = digis->begin(); dtDigi_It != digis->end(); dtDigi_It++) {
373  for (const auto& dtDigi_It : *digis) {
374  const DTLayerId dtLId = dtDigi_It.first;
375  //Skip digis in SL theta which we are not interested on for the grouping
376  for (auto digiIt = (dtDigi_It.second).first; digiIt != (dtDigi_It.second).second; digiIt++) {
377  //Need to change notation slightly here
378  if (dtLId.superlayer() == 2)
379  continue;
380  int layer = dtLId.layer() - 1;
381  if (dtLId.superlayer() == 3)
382  layer += 4;
383  //Use the same format as for InitialGrouping to avoid tons of replicating classes, we will have some not used variables
384  DTPrimitive dtpAux = DTPrimitive();
385  dtpAux.setTDCTimeStamp(digiIt->time());
386  dtpAux.setChannelId(digiIt->wire() - 1);
387  dtpAux.setLayerId(layer);
388  dtpAux.setSuperLayerId(dtLId.superlayer());
389  dtpAux.setCameraId(dtLId.rawId());
390  if (debug_)
391  LogDebug("PseudoBayesGrouping") << "Hit in L " << layer << " SL " << dtLId.superlayer() << " WIRE "
392  << digiIt->wire() - 1;
393  if (layer == 0)
394  digisinL0_.push_back(dtpAux);
395  else if (layer == 1)
396  digisinL1_.push_back(dtpAux);
397  else if (layer == 2)
398  digisinL2_.push_back(dtpAux);
399  else if (layer == 3)
400  digisinL3_.push_back(dtpAux);
401  else if (layer == 4)
402  digisinL4_.push_back(dtpAux);
403  else if (layer == 5)
404  digisinL5_.push_back(dtpAux);
405  else if (layer == 6)
406  digisinL6_.push_back(dtpAux);
407  else if (layer == 7)
408  digisinL7_.push_back(dtpAux);
409  alldigis_.push_back(dtpAux);
410  }
411  }
412 }

References alldigis_, debug_, digisinL0_, digisinL1_, digisinL2_, digisinL3_, digisinL4_, digisinL5_, digisinL6_, digisinL7_, DTLayerId::layer(), LogDebug, DetId::rawId(), DTPrimitive::setCameraId(), DTPrimitive::setChannelId(), DTPrimitive::setLayerId(), DTPrimitive::setSuperLayerId(), DTPrimitive::setTDCTimeStamp(), and DTSuperLayerId::superlayer().

Referenced by run().

◆ FillMuonPaths()

void PseudoBayesGrouping::FillMuonPaths ( MuonPathPtrs mpaths)
private

Definition at line 212 of file PseudoBayesGrouping.cc.

212  {
213  //Loop over all selected candidates
214  for (auto itCand = finalMatches_->begin(); itCand != finalMatches_->end(); itCand++) {
215  if (debug_)
216  LogDebug("PseudoBayesGrouping") << "PseudoBayesGrouping::run Create pointers ";
217  DTPrimitivePtrs ptrPrimitive;
218  for (int i = 0; i < 8; i++)
219  ptrPrimitive.push_back(std::make_shared<DTPrimitive>());
220 
221  qualitybits qualityDTP;
222  int intHit = 0;
223  //And for each candidate loop over all grouped hits
224  for (auto& itDTP : (*itCand)->candHits()) {
225  if (debug_)
226  LogDebug("PseudoBayesGrouping") << "PseudoBayesGrouping::run loop over dt hits to fill pointer";
227 
228  int layerHit = (*itDTP).layerId();
229  //Back to the usual basis for SL
230  if (layerHit >= 4) {
231  (*itDTP).setLayerId(layerHit - 4);
232  }
233  qualitybits ref8Hit(std::pow(2, layerHit));
234  //Get the predicted laterality
235  if (setLateralities_) {
236  int predLat = (*itCand)->pattern()->latHitIn(layerHit, (*itDTP).channelId(), allowedVariance_);
237  if (predLat == -10 || predLat == 0) {
238  (*itDTP).setLaterality(NONE);
239  } else if (predLat == -1) {
240  (*itDTP).setLaterality(LEFT);
241  } else if (predLat == +1) {
242  (*itDTP).setLaterality(RIGHT);
243  }
244  }
245  //Only fill the DT primitives pointer if there is not one hit already in the layer
246  if (qualityDTP != (qualityDTP | ref8Hit)) {
247  if (debug_)
248  LogDebug("PseudoBayesGrouping") << "PseudoBayesGrouping::run Adding hit to muon path";
249  qualityDTP = (qualityDTP | ref8Hit);
250  if (saveOnPlace_) {
251  //This will save the primitive in a place of the vector equal to its L position
252  ptrPrimitive.at(layerHit) = std::make_shared<DTPrimitive>((*itDTP));
253  }
254  if (!saveOnPlace_) {
255  //This will save the primitive in order
256  intHit++;
257  ptrPrimitive.at(intHit) = std::make_shared<DTPrimitive>((*itDTP));
258  }
259  }
260  }
261  //Now, if there are empty spaces in the vector fill them full of daylight
262  int ipow = 1;
263  for (int i = 0; i <= 7; i++) {
264  ipow *= 2;
265  if (qualityDTP != (qualityDTP | qualitybits(1 << i))) {
266  ptrPrimitive.at(i) = std::make_shared<DTPrimitive>();
267  }
268  }
269 
270  mpaths.emplace_back(
271  std::make_shared<MuonPath>(ptrPrimitive, (short)(*itCand)->nLayerUp(), (short)(*itCand)->nLayerDown()));
272  }
273 }

References allowedVariance_, debug_, finalMatches_, mps_fire::i, cmsdt::LEFT, LogDebug, NONE, funct::pow(), cmsdt::RIGHT, saveOnPlace_, and setLateralities_.

Referenced by run().

◆ finish()

void PseudoBayesGrouping::finish ( )
overridevirtual

Reimplemented from MotherGrouping.

Definition at line 468 of file PseudoBayesGrouping.cc.

468  {
469  if (debug_)
470  LogDebug("PseudoBayesGrouping") << "PseudoBayesGrouping: finish";
471 };

References debug_, and LogDebug.

Referenced by progressbar.ProgressBar::__next__().

◆ initialise()

void PseudoBayesGrouping::initialise ( const edm::EventSetup iEventSetup)
overridevirtual

Reimplemented from MotherGrouping.

Definition at line 47 of file PseudoBayesGrouping.cc.

47  {
48  if (debug_)
49  LogDebug("PseudoBayesGrouping") << "PseudoBayesGrouping::initialiase";
50  if (debug_)
51  LogDebug("PseudoBayesGrouping") << "PseudoBayesGrouping::initialiase using patterns file " << pattern_filename_;
52  nPatterns_ = 0;
53  //Load patterns from pattern root file with expected hits information
54  TFile* f = TFile::Open(TString(pattern_filename_), "READ");
55  std::vector<std::vector<std::vector<int>>>* pattern_reader =
56  (std::vector<std::vector<std::vector<int>>>*)f->Get("allPatterns");
57  for (std::vector<std::vector<std::vector<int>>>::iterator itPattern = (*pattern_reader).begin();
58  itPattern != (*pattern_reader).end();
59  ++itPattern) {
60  //Loops over all patterns in the loop and constructs the Pattern object for each one
61  LoadPattern(itPattern);
62  }
63  if (debug_)
64  LogDebug("PseudoBayesGrouping") << "PseudoBayesGrouping::initialiase Total number of loaded patterns: "
65  << nPatterns_;
66  f->Close();
67  delete f;
68 
69  prelimMatches_ = std::make_unique<CandidateGroupPtrs>();
70  allMatches_ = std::make_unique<CandidateGroupPtrs>();
71  finalMatches_ = std::make_unique<CandidateGroupPtrs>();
72 }

References allMatches_, debug_, f, finalMatches_, LoadPattern(), LogDebug, nPatterns_, pattern_filename_, prelimMatches_, and trackerHitRTTI::vector.

◆ LoadPattern()

void PseudoBayesGrouping::LoadPattern ( std::vector< std::vector< std::vector< int >>>::iterator  itPattern)
private

Definition at line 74 of file PseudoBayesGrouping.cc.

74  {
75  if (debug_)
76  LogDebug("PseudoBayesGrouping") << "PseudoBayesGrouping::LoadPattern Loading patterns seeded by: "
77  << itPattern->at(0).at(0) << ", " << itPattern->at(0).at(1) << ", "
78  << itPattern->at(0).at(2) << ", ";
79 
80  DTPattern p;
81  // for (auto itHits = itPattern->begin(); itHits != itPattern->end(); ++itHits) {
82  bool is_seed = true;
83  for (const auto& itHits : *itPattern) {
84  //First entry is the seeding information
85  if (is_seed) {
86  p = DTPattern(itHits.at(0), itHits.at(1), itHits.at(2));
87  is_seed = false;
88  }
89  //Other entries are the hits information
90  else {
91  if (itHits.begin() == itHits.end())
92  continue;
93  //We need to correct the geometry from pattern generation to reconstruction as they use slightly displaced basis
94  else if (itHits.at(0) % 2 == 0) {
95  p.addHit(std::make_tuple(itHits.at(0), itHits.at(1), itHits.at(2)));
96  } else if (itHits.at(0) % 2 == 1) {
97  p.addHit(std::make_tuple(itHits.at(0), itHits.at(1) - 1, itHits.at(2)));
98  }
99  }
100  }
101  //Classified by seeding layers for optimized search later
102  //TODO::This can be vastly improved using std::bitset<8>, for example
103  if (p.sl1() == 0) {
104  if (p.sl2() == 7)
105  L0L7Patterns_.push_back(&p);
106  if (p.sl2() == 6)
107  L0L6Patterns_.push_back(&p);
108  if (p.sl2() == 5)
109  L0L5Patterns_.push_back(&p);
110  if (p.sl2() == 4)
111  L0L4Patterns_.push_back(&p);
112  if (p.sl2() == 3)
113  L0L3Patterns_.push_back(&p);
114  if (p.sl2() == 2)
115  L0L2Patterns_.push_back(&p);
116  if (p.sl2() == 1)
117  L0L1Patterns_.push_back(&p);
118  }
119  if (p.sl1() == 1) {
120  if (p.sl2() == 7)
121  L1L7Patterns_.push_back(&p);
122  if (p.sl2() == 6)
123  L1L6Patterns_.push_back(&p);
124  if (p.sl2() == 5)
125  L1L5Patterns_.push_back(&p);
126  if (p.sl2() == 4)
127  L1L4Patterns_.push_back(&p);
128  if (p.sl2() == 3)
129  L1L3Patterns_.push_back(&p);
130  if (p.sl2() == 2)
131  L1L2Patterns_.push_back(&p);
132  }
133  if (p.sl1() == 2) {
134  if (p.sl2() == 7)
135  L2L7Patterns_.push_back(&p);
136  if (p.sl2() == 6)
137  L2L6Patterns_.push_back(&p);
138  if (p.sl2() == 5)
139  L2L5Patterns_.push_back(&p);
140  if (p.sl2() == 4)
141  L2L4Patterns_.push_back(&p);
142  if (p.sl2() == 3)
143  L2L3Patterns_.push_back(&p);
144  }
145  if (p.sl1() == 3) {
146  if (p.sl2() == 7)
147  L3L7Patterns_.push_back(&p);
148  if (p.sl2() == 6)
149  L3L6Patterns_.push_back(&p);
150  if (p.sl2() == 5)
151  L3L5Patterns_.push_back(&p);
152  if (p.sl2() == 4)
153  L3L4Patterns_.push_back(&p);
154  }
155 
156  if (p.sl1() == 4) {
157  if (p.sl2() == 7)
158  L4L7Patterns_.push_back(&p);
159  if (p.sl2() == 6)
160  L4L6Patterns_.push_back(&p);
161  if (p.sl2() == 5)
162  L4L5Patterns_.push_back(&p);
163  }
164  if (p.sl1() == 5) {
165  if (p.sl2() == 7)
166  L5L7Patterns_.push_back(&p);
167  if (p.sl2() == 6)
168  L5L6Patterns_.push_back(&p);
169  }
170  if (p.sl1() == 6) {
171  if (p.sl2() == 7)
172  L6L7Patterns_.push_back(&p);
173  }
174  //Also creating a list of all patterns, needed later for deleting and avoid a memory leak
175  allPatterns_.push_back(&p);
176  nPatterns_++;
177 }

References allPatterns_, debug_, L0L1Patterns_, L0L2Patterns_, L0L3Patterns_, L0L4Patterns_, L0L5Patterns_, L0L6Patterns_, L0L7Patterns_, L1L2Patterns_, L1L3Patterns_, L1L4Patterns_, L1L5Patterns_, L1L6Patterns_, L1L7Patterns_, L2L3Patterns_, L2L4Patterns_, L2L5Patterns_, L2L6Patterns_, L2L7Patterns_, L3L4Patterns_, L3L5Patterns_, L3L6Patterns_, L3L7Patterns_, L4L5Patterns_, L4L6Patterns_, L4L7Patterns_, L5L6Patterns_, L5L7Patterns_, L6L7Patterns_, LogDebug, nPatterns_, and AlCaHLTBitMon_ParallelJobs::p.

Referenced by initialise().

◆ ReCleanPatternsAndDigis()

void PseudoBayesGrouping::ReCleanPatternsAndDigis ( )
private

Definition at line 414 of file PseudoBayesGrouping.cc.

414  {
415  //GhostbustPatterns that share hits and are of lower quality
416  if (prelimMatches_->empty()) {
417  return;
418  };
419  while ((prelimMatches_->at(0)->nLayerhits() >= minNLayerHits_ &&
420  (prelimMatches_->at(0)->nLayerUp() >= minSingleSLHitsMax_ ||
421  prelimMatches_->at(0)->nLayerDown() >= minSingleSLHitsMax_) &&
422  (prelimMatches_->at(0)->nLayerUp() >= minSingleSLHitsMin_ &&
423  prelimMatches_->at(0)->nLayerDown() >= minSingleSLHitsMin_)) ||
425  ((prelimMatches_->at(0)->nLayerUp() >= minUncorrelatedHits_ && prelimMatches_->at(0)->nLayerDown() == 0) ||
426  (prelimMatches_->at(0)->nLayerDown() >= minUncorrelatedHits_ && prelimMatches_->at(0)->nLayerUp() == 0)))) {
427  finalMatches_->push_back(prelimMatches_->at(0));
428  auto itSel = finalMatches_->end() - 1;
429  prelimMatches_->erase(prelimMatches_->begin());
430  if (prelimMatches_->empty()) {
431  return;
432  };
433  for (auto cand_it = prelimMatches_->begin(); cand_it != prelimMatches_->end(); cand_it++) {
434  if (*(*cand_it) == *(*itSel) && allowDuplicates_)
435  continue;
436  for (const auto& dt_it : (*itSel)->candHits()) { //.begin(); dt_it != (*itSel)->candHits().end(); dt_it++) {
437  (*cand_it)->removeHit((*dt_it));
438  }
439  }
440 
441  std::sort(prelimMatches_->begin(), prelimMatches_->end(), CandPointGreat());
442  if (debug_) {
443  LogDebug("PseudoBayesGrouping") << "Pattern qualities: ";
444  for (const auto& cand_it : *prelimMatches_) {
445  LogDebug("PseudoBayesGrouping") << cand_it->nLayerhits() << ", " << cand_it->nisGood() << ", "
446  << cand_it->nhits() << ", " << cand_it->quality() << ", " << cand_it->candId()
447  << "\n";
448  }
449  }
450  }
451 }

References allowDuplicates_, allowUncorrelatedPatterns_, debug_, finalMatches_, LogDebug, minNLayerHits_, minSingleSLHitsMax_, minSingleSLHitsMin_, minUncorrelatedHits_, and prelimMatches_.

Referenced by run().

◆ RecognisePatterns()

void PseudoBayesGrouping::RecognisePatterns ( std::vector< DTPrimitive digisinLDown,
std::vector< DTPrimitive digisinLUp,
std::vector< DTPattern * >  patterns 
)
private

Definition at line 317 of file PseudoBayesGrouping.cc.

319  {
320  //Loop over all hits and search for matching patterns (there will be four
321  // amongst ~60, accounting for possible lateralities)
322  for (auto dtPD_it = digisinLDown.begin(); dtPD_it != digisinLDown.end(); dtPD_it++) {
323  int LDown = dtPD_it->layerId();
324  int wireDown = dtPD_it->channelId();
325  for (auto dtPU_it = digisinLUp.begin(); dtPU_it != digisinLUp.end(); dtPU_it++) {
326  int LUp = dtPU_it->layerId();
327  int wireUp = dtPU_it->channelId();
328  int diff = wireUp - wireDown;
329  for (auto pat_it = patterns.begin(); pat_it != patterns.end(); pat_it++) {
330  //For each pair of hits in the layers search for the seeded patterns
331  if ((*pat_it)->sl1() != (LDown) || (*pat_it)->sl2() != (LUp) || (*pat_it)->diff() != diff)
332  continue;
333  //If we are here a pattern was found and we can start comparing
334  (*pat_it)->setHitDown(wireDown);
335  auto cand = std::make_shared<CandidateGroup>(*pat_it);
336  for (auto dtTest_it = alldigis_.begin(); dtTest_it != alldigis_.end(); dtTest_it++) {
337  //Find hits matching to the pattern
338  if (((*pat_it)->latHitIn(dtTest_it->layerId(), dtTest_it->channelId(), allowedVariance_)) != -999) {
339  if (((*pat_it)->latHitIn(dtTest_it->layerId(), dtTest_it->channelId(), allowedVariance_)) == -10)
340  cand->addHit((*dtTest_it), dtTest_it->layerId(), false);
341  else
342  cand->addHit((*dtTest_it), dtTest_it->layerId(), true);
343  }
344  }
345  if ((cand->nhits() >= minNLayerHits_ &&
346  (cand->nLayerUp() >= minSingleSLHitsMax_ || cand->nLayerDown() >= minSingleSLHitsMax_) &&
347  (cand->nLayerUp() >= minSingleSLHitsMin_ && cand->nLayerDown() >= minSingleSLHitsMin_)) ||
348  (allowUncorrelatedPatterns_ && ((cand->nLayerUp() >= minUncorrelatedHits_ && cand->nLayerDown() == 0) ||
349  (cand->nLayerDown() >= minUncorrelatedHits_ && cand->nLayerUp() == 0)))) {
350  if (debug_) {
351  LogDebug("PseudoBayesGrouping") << "PseudoBayesGrouping::RecognisePatterns Pattern found for pair in "
352  << LDown << " ," << wireDown << " ," << LUp << " ," << wireUp;
353  LogDebug("PseudoBayesGrouping")
354  << "Candidate has " << cand->nhits() << " hits with quality " << cand->quality();
355  LogDebug("PseudoBayesGrouping") << *(*pat_it);
356  }
357  //We currently save everything at this level, might want to be more restrictive
358  pidx_++;
359  cand->setCandId(pidx_);
360  prelimMatches_->push_back(std::move(cand));
361  allMatches_->push_back(std::move(cand));
362  }
363  }
364  }
365  }
366 }

References alldigis_, allMatches_, allowedVariance_, allowUncorrelatedPatterns_, debug_, change_name::diff, LogDebug, minNLayerHits_, minSingleSLHitsMax_, minSingleSLHitsMin_, minUncorrelatedHits_, eostools::move(), pidx_, and prelimMatches_.

Referenced by RecognisePatternsByLayerPairs().

◆ RecognisePatternsByLayerPairs()

void PseudoBayesGrouping::RecognisePatternsByLayerPairs ( )
private

Definition at line 275 of file PseudoBayesGrouping.cc.

275  {
276  //Separated from main run function for clarity. Do all pattern recognition steps
277  pidx_ = 0;
278  //Compare L0-L7
280  //Compare L0-L6 and L1-L7
283  //Compare L0-L5, L1-L6, L2-L7
287  //L0-L4, L1-L5, L2-L6, L3-L7
292  //L1-L4, L2-L5, L3-L6
296  //L2-L4, L3-L5
299  //L3-L4
301  //Uncorrelated SL1
308  //Uncorrelated SL3
315 }

References digisinL0_, digisinL1_, digisinL2_, digisinL3_, digisinL4_, digisinL5_, digisinL6_, digisinL7_, L0L1Patterns_, L0L2Patterns_, L0L3Patterns_, L0L4Patterns_, L0L5Patterns_, L0L6Patterns_, L0L7Patterns_, L1L2Patterns_, L1L3Patterns_, L1L4Patterns_, L1L5Patterns_, L1L6Patterns_, L1L7Patterns_, L2L3Patterns_, L2L4Patterns_, L2L5Patterns_, L2L6Patterns_, L2L7Patterns_, L3L4Patterns_, L3L5Patterns_, L3L6Patterns_, L3L7Patterns_, L4L5Patterns_, L4L6Patterns_, L4L7Patterns_, L5L6Patterns_, L5L7Patterns_, L6L7Patterns_, pidx_, and RecognisePatterns().

Referenced by run().

◆ run()

void PseudoBayesGrouping::run ( edm::Event iEvent,
const edm::EventSetup iEventSetup,
const DTDigiCollection digis,
MuonPathPtrs outMpath 
)
overridevirtual

Reimplemented from MotherGrouping.

Definition at line 179 of file PseudoBayesGrouping.cc.

182  {
183  //Takes dt digis collection and does the grouping for correlated hits, it is saved in a vector of up to 8 (or 4) correlated hits
184  if (debug_)
185  LogDebug("PseudoBayesGrouping") << "PseudoBayesGrouping::run";
186  //Do initial cleaning
188  //Sort digis by layer
189  FillDigisByLayer(&digis);
190  //Sarch for patterns
192  //Now sort patterns by qualities
193  std::sort(prelimMatches_->begin(), prelimMatches_->end(), CandPointGreat());
194  if (debug_ && !prelimMatches_->empty()) {
195  LogDebug("PseudoBayesGrouping") << "PseudoBayesGrouping::run Pattern qualities before cleaning: ";
196  for (const auto& cand_it : *prelimMatches_) {
197  LogDebug("PseudoBayesGrouping") << cand_it->nLayerhits() << ", " << cand_it->nisGood() << ", " << cand_it->nhits()
198  << ", " << cand_it->quality() << ", " << cand_it->candId();
199  }
200  }
201  //And ghostbust patterns to retain higher quality ones
203  if (debug_)
204  LogDebug("PseudoBayesGrouping") << "PseudoBayesGrouping::run Number of found patterns: " << finalMatches_->size();
205 
206  //Last organize candidates information into muonpaths to finalize the grouping
207  FillMuonPaths(mpaths);
208  if (debug_)
209  LogDebug("PseudoBayesGrouping") << "PseudoBayesGrouping::run ended run";
210 }

References CleanDigisByLayer(), debug_, FillDigisByLayer(), FillMuonPaths(), finalMatches_, LogDebug, prelimMatches_, ReCleanPatternsAndDigis(), and RecognisePatternsByLayerPairs().

Member Data Documentation

◆ alldigis_

std::vector<DTPrimitive> PseudoBayesGrouping::alldigis_
private

Definition at line 62 of file PseudoBayesGrouping.h.

Referenced by CleanDigisByLayer(), FillDigisByLayer(), and RecognisePatterns().

◆ allMatches_

std::unique_ptr<dtbayesam::CandidateGroupPtrs> PseudoBayesGrouping::allMatches_
private

Definition at line 75 of file PseudoBayesGrouping.h.

Referenced by CleanDigisByLayer(), initialise(), and RecognisePatterns().

◆ allowDuplicates_

bool PseudoBayesGrouping::allowDuplicates_
private

Definition at line 53 of file PseudoBayesGrouping.h.

Referenced by PseudoBayesGrouping(), and ReCleanPatternsAndDigis().

◆ allowedVariance_

int PseudoBayesGrouping::allowedVariance_
private

Definition at line 52 of file PseudoBayesGrouping.h.

Referenced by FillMuonPaths(), PseudoBayesGrouping(), and RecognisePatterns().

◆ allowUncorrelatedPatterns_

bool PseudoBayesGrouping::allowUncorrelatedPatterns_
private

◆ allPatterns_

std::vector<DTPattern*> PseudoBayesGrouping::allPatterns_
private

Definition at line 80 of file PseudoBayesGrouping.h.

Referenced by LoadPattern(), and ~PseudoBayesGrouping().

◆ debug_

bool PseudoBayesGrouping::debug_
private

◆ digisinL0_

std::vector<DTPrimitive> PseudoBayesGrouping::digisinL0_
private

◆ digisinL1_

std::vector<DTPrimitive> PseudoBayesGrouping::digisinL1_
private

◆ digisinL2_

std::vector<DTPrimitive> PseudoBayesGrouping::digisinL2_
private

◆ digisinL3_

std::vector<DTPrimitive> PseudoBayesGrouping::digisinL3_
private

◆ digisinL4_

std::vector<DTPrimitive> PseudoBayesGrouping::digisinL4_
private

◆ digisinL5_

std::vector<DTPrimitive> PseudoBayesGrouping::digisinL5_
private

◆ digisinL6_

std::vector<DTPrimitive> PseudoBayesGrouping::digisinL6_
private

◆ digisinL7_

std::vector<DTPrimitive> PseudoBayesGrouping::digisinL7_
private

◆ finalMatches_

std::unique_ptr<dtbayesam::CandidateGroupPtrs> PseudoBayesGrouping::finalMatches_
private

◆ L0L1Patterns_

std::vector<DTPattern*> PseudoBayesGrouping::L0L1Patterns_
private

Definition at line 115 of file PseudoBayesGrouping.h.

Referenced by LoadPattern(), and RecognisePatternsByLayerPairs().

◆ L0L2Patterns_

std::vector<DTPattern*> PseudoBayesGrouping::L0L2Patterns_
private

Definition at line 112 of file PseudoBayesGrouping.h.

Referenced by LoadPattern(), and RecognisePatternsByLayerPairs().

◆ L0L3Patterns_

std::vector<DTPattern*> PseudoBayesGrouping::L0L3Patterns_
private

Definition at line 108 of file PseudoBayesGrouping.h.

Referenced by LoadPattern(), and RecognisePatternsByLayerPairs().

◆ L0L4Patterns_

std::vector<DTPattern*> PseudoBayesGrouping::L0L4Patterns_
private

Definition at line 103 of file PseudoBayesGrouping.h.

Referenced by LoadPattern(), and RecognisePatternsByLayerPairs().

◆ L0L5Patterns_

std::vector<DTPattern*> PseudoBayesGrouping::L0L5Patterns_
private

Definition at line 97 of file PseudoBayesGrouping.h.

Referenced by LoadPattern(), and RecognisePatternsByLayerPairs().

◆ L0L6Patterns_

std::vector<DTPattern*> PseudoBayesGrouping::L0L6Patterns_
private

Definition at line 90 of file PseudoBayesGrouping.h.

Referenced by LoadPattern(), and RecognisePatternsByLayerPairs().

◆ L0L7Patterns_

std::vector<DTPattern*> PseudoBayesGrouping::L0L7Patterns_
private

Definition at line 82 of file PseudoBayesGrouping.h.

Referenced by LoadPattern(), and RecognisePatternsByLayerPairs().

◆ L1L2Patterns_

std::vector<DTPattern*> PseudoBayesGrouping::L1L2Patterns_
private

Definition at line 113 of file PseudoBayesGrouping.h.

Referenced by LoadPattern(), and RecognisePatternsByLayerPairs().

◆ L1L3Patterns_

std::vector<DTPattern*> PseudoBayesGrouping::L1L3Patterns_
private

Definition at line 109 of file PseudoBayesGrouping.h.

Referenced by LoadPattern(), and RecognisePatternsByLayerPairs().

◆ L1L4Patterns_

std::vector<DTPattern*> PseudoBayesGrouping::L1L4Patterns_
private

Definition at line 104 of file PseudoBayesGrouping.h.

Referenced by LoadPattern(), and RecognisePatternsByLayerPairs().

◆ L1L5Patterns_

std::vector<DTPattern*> PseudoBayesGrouping::L1L5Patterns_
private

Definition at line 98 of file PseudoBayesGrouping.h.

Referenced by LoadPattern(), and RecognisePatternsByLayerPairs().

◆ L1L6Patterns_

std::vector<DTPattern*> PseudoBayesGrouping::L1L6Patterns_
private

Definition at line 91 of file PseudoBayesGrouping.h.

Referenced by LoadPattern(), and RecognisePatternsByLayerPairs().

◆ L1L7Patterns_

std::vector<DTPattern*> PseudoBayesGrouping::L1L7Patterns_
private

Definition at line 83 of file PseudoBayesGrouping.h.

Referenced by LoadPattern(), and RecognisePatternsByLayerPairs().

◆ L2L3Patterns_

std::vector<DTPattern*> PseudoBayesGrouping::L2L3Patterns_
private

Definition at line 110 of file PseudoBayesGrouping.h.

Referenced by LoadPattern(), and RecognisePatternsByLayerPairs().

◆ L2L4Patterns_

std::vector<DTPattern*> PseudoBayesGrouping::L2L4Patterns_
private

Definition at line 105 of file PseudoBayesGrouping.h.

Referenced by LoadPattern(), and RecognisePatternsByLayerPairs().

◆ L2L5Patterns_

std::vector<DTPattern*> PseudoBayesGrouping::L2L5Patterns_
private

Definition at line 99 of file PseudoBayesGrouping.h.

Referenced by LoadPattern(), and RecognisePatternsByLayerPairs().

◆ L2L6Patterns_

std::vector<DTPattern*> PseudoBayesGrouping::L2L6Patterns_
private

Definition at line 92 of file PseudoBayesGrouping.h.

Referenced by LoadPattern(), and RecognisePatternsByLayerPairs().

◆ L2L7Patterns_

std::vector<DTPattern*> PseudoBayesGrouping::L2L7Patterns_
private

Definition at line 84 of file PseudoBayesGrouping.h.

Referenced by LoadPattern(), and RecognisePatternsByLayerPairs().

◆ L3L4Patterns_

std::vector<DTPattern*> PseudoBayesGrouping::L3L4Patterns_
private

Definition at line 106 of file PseudoBayesGrouping.h.

Referenced by LoadPattern(), and RecognisePatternsByLayerPairs().

◆ L3L5Patterns_

std::vector<DTPattern*> PseudoBayesGrouping::L3L5Patterns_
private

Definition at line 100 of file PseudoBayesGrouping.h.

Referenced by LoadPattern(), and RecognisePatternsByLayerPairs().

◆ L3L6Patterns_

std::vector<DTPattern*> PseudoBayesGrouping::L3L6Patterns_
private

Definition at line 93 of file PseudoBayesGrouping.h.

Referenced by LoadPattern(), and RecognisePatternsByLayerPairs().

◆ L3L7Patterns_

std::vector<DTPattern*> PseudoBayesGrouping::L3L7Patterns_
private

Definition at line 85 of file PseudoBayesGrouping.h.

Referenced by LoadPattern(), and RecognisePatternsByLayerPairs().

◆ L4L5Patterns_

std::vector<DTPattern*> PseudoBayesGrouping::L4L5Patterns_
private

Definition at line 101 of file PseudoBayesGrouping.h.

Referenced by LoadPattern(), and RecognisePatternsByLayerPairs().

◆ L4L6Patterns_

std::vector<DTPattern*> PseudoBayesGrouping::L4L6Patterns_
private

Definition at line 94 of file PseudoBayesGrouping.h.

Referenced by LoadPattern(), and RecognisePatternsByLayerPairs().

◆ L4L7Patterns_

std::vector<DTPattern*> PseudoBayesGrouping::L4L7Patterns_
private

Definition at line 86 of file PseudoBayesGrouping.h.

Referenced by LoadPattern(), and RecognisePatternsByLayerPairs().

◆ L5L6Patterns_

std::vector<DTPattern*> PseudoBayesGrouping::L5L6Patterns_
private

Definition at line 95 of file PseudoBayesGrouping.h.

Referenced by LoadPattern(), and RecognisePatternsByLayerPairs().

◆ L5L7Patterns_

std::vector<DTPattern*> PseudoBayesGrouping::L5L7Patterns_
private

Definition at line 87 of file PseudoBayesGrouping.h.

Referenced by LoadPattern(), and RecognisePatternsByLayerPairs().

◆ L6L7Patterns_

std::vector<DTPattern*> PseudoBayesGrouping::L6L7Patterns_
private

Definition at line 88 of file PseudoBayesGrouping.h.

Referenced by LoadPattern(), and RecognisePatternsByLayerPairs().

◆ minNLayerHits_

int PseudoBayesGrouping::minNLayerHits_
private

◆ minSingleSLHitsMax_

int PseudoBayesGrouping::minSingleSLHitsMax_
private

◆ minSingleSLHitsMin_

int PseudoBayesGrouping::minSingleSLHitsMin_
private

◆ minUncorrelatedHits_

int PseudoBayesGrouping::minUncorrelatedHits_
private

◆ nPatterns_

int PseudoBayesGrouping::nPatterns_
private

Definition at line 79 of file PseudoBayesGrouping.h.

Referenced by initialise(), and LoadPattern().

◆ pattern_filename_

std::string PseudoBayesGrouping::pattern_filename_
private

Definition at line 49 of file PseudoBayesGrouping.h.

Referenced by initialise(), and PseudoBayesGrouping().

◆ pidx_

int PseudoBayesGrouping::pidx_
private

Definition at line 50 of file PseudoBayesGrouping.h.

Referenced by RecognisePatterns(), and RecognisePatternsByLayerPairs().

◆ prelimMatches_

std::unique_ptr<dtbayesam::CandidateGroupPtrs> PseudoBayesGrouping::prelimMatches_
private

◆ saveOnPlace_

bool PseudoBayesGrouping::saveOnPlace_
private

Definition at line 56 of file PseudoBayesGrouping.h.

Referenced by FillMuonPaths(), and PseudoBayesGrouping().

◆ setLateralities_

bool PseudoBayesGrouping::setLateralities_
private

Definition at line 55 of file PseudoBayesGrouping.h.

Referenced by FillMuonPaths(), and PseudoBayesGrouping().

change_name.diff
diff
Definition: change_name.py:13
PseudoBayesGrouping::nPatterns_
int nPatterns_
Definition: PseudoBayesGrouping.h:79
PseudoBayesGrouping::L1L2Patterns_
std::vector< DTPattern * > L1L2Patterns_
Definition: PseudoBayesGrouping.h:113
PseudoBayesGrouping::minNLayerHits_
int minNLayerHits_
Definition: PseudoBayesGrouping.h:51
PseudoBayesGrouping::minSingleSLHitsMax_
int minSingleSLHitsMax_
Definition: PseudoBayesGrouping.h:57
mps_fire.i
i
Definition: mps_fire.py:428
dtbayesam::qualitybits
std::bitset< 8 > qualitybits
Definition: CandidateGroup.h:15
PseudoBayesGrouping::CleanDigisByLayer
void CleanDigisByLayer()
Definition: PseudoBayesGrouping.cc:453
PseudoBayesGrouping::digisinL4_
std::vector< DTPrimitive > digisinL4_
Definition: PseudoBayesGrouping.h:68
PseudoBayesGrouping::L2L7Patterns_
std::vector< DTPattern * > L2L7Patterns_
Definition: PseudoBayesGrouping.h:84
PseudoBayesGrouping::L2L6Patterns_
std::vector< DTPattern * > L2L6Patterns_
Definition: PseudoBayesGrouping.h:92
f
double f[11][100]
Definition: MuScleFitUtils.cc:78
PseudoBayesGrouping::L5L7Patterns_
std::vector< DTPattern * > L5L7Patterns_
Definition: PseudoBayesGrouping.h:87
PseudoBayesGrouping::L4L7Patterns_
std::vector< DTPattern * > L4L7Patterns_
Definition: PseudoBayesGrouping.h:86
PseudoBayesGrouping::FillMuonPaths
void FillMuonPaths(MuonPathPtrs &mpaths)
Definition: PseudoBayesGrouping.cc:212
contentValuesFiles.fullPath
fullPath
Definition: contentValuesFiles.py:64
AlCaHLTBitMon_ParallelJobs.p
p
Definition: AlCaHLTBitMon_ParallelJobs.py:153
PseudoBayesGrouping::allMatches_
std::unique_ptr< dtbayesam::CandidateGroupPtrs > allMatches_
Definition: PseudoBayesGrouping.h:75
cmsdt::LEFT
Definition: constants.h:44
PseudoBayesGrouping::digisinL6_
std::vector< DTPrimitive > digisinL6_
Definition: PseudoBayesGrouping.h:70
PseudoBayesGrouping::minUncorrelatedHits_
int minUncorrelatedHits_
Definition: PseudoBayesGrouping.h:59
PseudoBayesGrouping::RecognisePatternsByLayerPairs
void RecognisePatternsByLayerPairs()
Definition: PseudoBayesGrouping.cc:275
PseudoBayesGrouping::L2L5Patterns_
std::vector< DTPattern * > L2L5Patterns_
Definition: PseudoBayesGrouping.h:99
DTPrimitive::setChannelId
void setChannelId(int channel)
Definition: DTprimitive.h:23
DTSuperLayerId::superlayer
int superlayer() const
Return the superlayer number (deprecated method name)
Definition: DTSuperLayerId.h:42
PseudoBayesGrouping::L2L4Patterns_
std::vector< DTPattern * > L2L4Patterns_
Definition: PseudoBayesGrouping.h:105
PseudoBayesGrouping::L1L3Patterns_
std::vector< DTPattern * > L1L3Patterns_
Definition: PseudoBayesGrouping.h:109
PseudoBayesGrouping::digisinL3_
std::vector< DTPrimitive > digisinL3_
Definition: PseudoBayesGrouping.h:67
DTPrimitive::setLayerId
void setLayerId(int layer)
Definition: DTprimitive.h:24
PseudoBayesGrouping::L1L4Patterns_
std::vector< DTPattern * > L1L4Patterns_
Definition: PseudoBayesGrouping.h:104
PseudoBayesGrouping::minSingleSLHitsMin_
int minSingleSLHitsMin_
Definition: PseudoBayesGrouping.h:58
edm::FileInPath
Definition: FileInPath.h:64
PseudoBayesGrouping::LoadPattern
void LoadPattern(std::vector< std::vector< std::vector< int >>>::iterator itPattern)
Definition: PseudoBayesGrouping.cc:74
PseudoBayesGrouping::pattern_filename_
std::string pattern_filename_
Definition: PseudoBayesGrouping.h:49
DTPattern
Definition: DTPattern.h:15
PseudoBayesGrouping::L1L7Patterns_
std::vector< DTPattern * > L1L7Patterns_
Definition: PseudoBayesGrouping.h:83
PseudoBayesGrouping::ReCleanPatternsAndDigis
void ReCleanPatternsAndDigis()
Definition: PseudoBayesGrouping.cc:414
PseudoBayesGrouping::L4L5Patterns_
std::vector< DTPattern * > L4L5Patterns_
Definition: PseudoBayesGrouping.h:101
PseudoBayesGrouping::L5L6Patterns_
std::vector< DTPattern * > L5L6Patterns_
Definition: PseudoBayesGrouping.h:95
PseudoBayesGrouping::digisinL7_
std::vector< DTPrimitive > digisinL7_
Definition: PseudoBayesGrouping.h:71
PseudoBayesGrouping::L3L7Patterns_
std::vector< DTPattern * > L3L7Patterns_
Definition: PseudoBayesGrouping.h:85
PseudoBayesGrouping::finalMatches_
std::unique_ptr< dtbayesam::CandidateGroupPtrs > finalMatches_
Definition: PseudoBayesGrouping.h:76
PseudoBayesGrouping::debug_
bool debug_
Definition: PseudoBayesGrouping.h:48
DTLayerId
Definition: DTLayerId.h:12
PseudoBayesGrouping::allPatterns_
std::vector< DTPattern * > allPatterns_
Definition: PseudoBayesGrouping.h:80
PseudoBayesGrouping::alldigis_
std::vector< DTPrimitive > alldigis_
Definition: PseudoBayesGrouping.h:62
DTPrimitive
Definition: DTprimitive.h:9
PseudoBayesGrouping::L0L6Patterns_
std::vector< DTPattern * > L0L6Patterns_
Definition: PseudoBayesGrouping.h:90
PseudoBayesGrouping::digisinL5_
std::vector< DTPrimitive > digisinL5_
Definition: PseudoBayesGrouping.h:69
PseudoBayesGrouping::L4L6Patterns_
std::vector< DTPattern * > L4L6Patterns_
Definition: PseudoBayesGrouping.h:94
LogDebug
#define LogDebug(id)
Definition: MessageLogger.h:223
DTPrimitive::setTDCTimeStamp
void setTDCTimeStamp(int tstamp)
Definition: DTprimitive.h:20
PseudoBayesGrouping::L3L4Patterns_
std::vector< DTPattern * > L3L4Patterns_
Definition: PseudoBayesGrouping.h:106
PseudoBayesGrouping::allowUncorrelatedPatterns_
bool allowUncorrelatedPatterns_
Definition: PseudoBayesGrouping.h:54
PseudoBayesGrouping::L0L5Patterns_
std::vector< DTPattern * > L0L5Patterns_
Definition: PseudoBayesGrouping.h:97
cmsdt::RIGHT
Definition: constants.h:44
PseudoBayesGrouping::L1L6Patterns_
std::vector< DTPattern * > L1L6Patterns_
Definition: PseudoBayesGrouping.h:91
cand
Definition: decayParser.h:32
trackerHitRTTI::vector
Definition: trackerHitRTTI.h:21
PseudoBayesGrouping::allowDuplicates_
bool allowDuplicates_
Definition: PseudoBayesGrouping.h:53
DTPrimitive::setSuperLayerId
void setSuperLayerId(int lay)
Definition: DTprimitive.h:26
DTPrimitive::setCameraId
void setCameraId(int camera)
Definition: DTprimitive.h:25
PseudoBayesGrouping::L0L1Patterns_
std::vector< DTPattern * > L0L1Patterns_
Definition: PseudoBayesGrouping.h:115
PseudoBayesGrouping::RecognisePatterns
void RecognisePatterns(std::vector< DTPrimitive > digisinLDown, std::vector< DTPrimitive > digisinLUp, std::vector< DTPattern * > patterns)
Definition: PseudoBayesGrouping.cc:317
PseudoBayesGrouping::L1L5Patterns_
std::vector< DTPattern * > L1L5Patterns_
Definition: PseudoBayesGrouping.h:98
PseudoBayesGrouping::digisinL0_
std::vector< DTPrimitive > digisinL0_
Definition: PseudoBayesGrouping.h:64
PseudoBayesGrouping::L6L7Patterns_
std::vector< DTPattern * > L6L7Patterns_
Definition: PseudoBayesGrouping.h:88
PseudoBayesGrouping::digisinL1_
std::vector< DTPrimitive > digisinL1_
Definition: PseudoBayesGrouping.h:65
PseudoBayesGrouping::allowedVariance_
int allowedVariance_
Definition: PseudoBayesGrouping.h:52
eostools.move
def move(src, dest)
Definition: eostools.py:511
DetId::rawId
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:57
PseudoBayesGrouping::pidx_
int pidx_
Definition: PseudoBayesGrouping.h:50
PseudoBayesGrouping::saveOnPlace_
bool saveOnPlace_
Definition: PseudoBayesGrouping.h:56
PseudoBayesGrouping::L0L2Patterns_
std::vector< DTPattern * > L0L2Patterns_
Definition: PseudoBayesGrouping.h:112
PseudoBayesGrouping::L3L5Patterns_
std::vector< DTPattern * > L3L5Patterns_
Definition: PseudoBayesGrouping.h:100
NONE
Definition: TkAlStyle.cc:47
funct::pow
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:29
PseudoBayesGrouping::L0L7Patterns_
std::vector< DTPattern * > L0L7Patterns_
Definition: PseudoBayesGrouping.h:82
PseudoBayesGrouping::L2L3Patterns_
std::vector< DTPattern * > L2L3Patterns_
Definition: PseudoBayesGrouping.h:110
PseudoBayesGrouping::setLateralities_
bool setLateralities_
Definition: PseudoBayesGrouping.h:55
PseudoBayesGrouping::L3L6Patterns_
std::vector< DTPattern * > L3L6Patterns_
Definition: PseudoBayesGrouping.h:93
DTPrimitivePtrs
std::vector< DTPrimitivePtr > DTPrimitivePtrs
Definition: DTprimitive.h:55
PseudoBayesGrouping::prelimMatches_
std::unique_ptr< dtbayesam::CandidateGroupPtrs > prelimMatches_
Definition: PseudoBayesGrouping.h:74
DTLayerId::layer
int layer() const
Return the layer number.
Definition: DTLayerId.h:42
PseudoBayesGrouping::digisinL2_
std::vector< DTPrimitive > digisinL2_
Definition: PseudoBayesGrouping.h:66
PseudoBayesGrouping::L0L4Patterns_
std::vector< DTPattern * > L0L4Patterns_
Definition: PseudoBayesGrouping.h:103
PseudoBayesGrouping::FillDigisByLayer
void FillDigisByLayer(const DTDigiCollection *digis)
Definition: PseudoBayesGrouping.cc:368
muonDTDigis_cfi.pset
pset
Definition: muonDTDigis_cfi.py:27
MotherGrouping::MotherGrouping
MotherGrouping(const edm::ParameterSet &pset, edm::ConsumesCollector &iC)
Definition: MotherGrouping.cc:10
PseudoBayesGrouping::L0L3Patterns_
std::vector< DTPattern * > L0L3Patterns_
Definition: PseudoBayesGrouping.h:108