CMS 3D CMS Logo

PseudoBayesGrouping.h
Go to the documentation of this file.
1 #ifndef Phase2L1Trigger_DTTrigger_PseudoBayesGrouping_h
2 #define Phase2L1Trigger_DTTrigger_PseudoBayesGrouping_h
3 
7 
8 // ===============================================================================
9 // Class declarations
10 // ===============================================================================
12 public:
13  // Constructors and destructor
15  ~PseudoBayesGrouping() override;
16 
17  // Main methods
18  void initialise(const edm::EventSetup& iEventSetup) override;
19  void run(edm::Event& iEvent,
20  const edm::EventSetup& iEventSetup,
21  const DTDigiCollection& digis,
22  MuonPathPtrs& outMpath) override;
23  void finish() override;
24 
25  // Other public methods
26 
27  // Public attributes
28 
29 private:
30  // Private methods
31  void LoadPattern(std::vector<std::vector<std::vector<int>>>::iterator itPattern);
32  void FillDigisByLayer(const DTDigiCollection* digis);
33  void CleanDigisByLayer();
35  void RecognisePatterns(std::vector<DTPrimitive> digisinLDown,
36  std::vector<DTPrimitive> digisinLUp,
37  std::vector<DTPattern*> patterns);
39  void FillMuonPaths(MuonPathPtrs& mpaths);
40 
41  //Comparator for pointer mode
42  struct CandPointGreat {
44  };
45 
46  // Private attributes
47  // Config variables
48  bool debug_;
50  int pidx_;
60 
61  //Classified digis
62  std::vector<DTPrimitive> alldigis_;
63 
64  std::vector<DTPrimitive> digisinL0_;
65  std::vector<DTPrimitive> digisinL1_;
66  std::vector<DTPrimitive> digisinL2_;
67  std::vector<DTPrimitive> digisinL3_;
68  std::vector<DTPrimitive> digisinL4_;
69  std::vector<DTPrimitive> digisinL5_;
70  std::vector<DTPrimitive> digisinL6_;
71  std::vector<DTPrimitive> digisinL7_;
72 
73  //Preliminary matches, those can grow quite big so better not to rely on the stack
74  std::unique_ptr<dtbayesam::CandidateGroupPtrs> prelimMatches_;
75  std::unique_ptr<dtbayesam::CandidateGroupPtrs> allMatches_;
76  std::unique_ptr<dtbayesam::CandidateGroupPtrs> finalMatches_;
77 
78  //Pattern related info
80  std::vector<DTPattern*> allPatterns_;
81 
82  std::vector<DTPattern*> L0L7Patterns_;
83  std::vector<DTPattern*> L1L7Patterns_;
84  std::vector<DTPattern*> L2L7Patterns_;
85  std::vector<DTPattern*> L3L7Patterns_;
86  std::vector<DTPattern*> L4L7Patterns_;
87  std::vector<DTPattern*> L5L7Patterns_;
88  std::vector<DTPattern*> L6L7Patterns_;
89 
90  std::vector<DTPattern*> L0L6Patterns_;
91  std::vector<DTPattern*> L1L6Patterns_;
92  std::vector<DTPattern*> L2L6Patterns_;
93  std::vector<DTPattern*> L3L6Patterns_;
94  std::vector<DTPattern*> L4L6Patterns_;
95  std::vector<DTPattern*> L5L6Patterns_;
96 
97  std::vector<DTPattern*> L0L5Patterns_;
98  std::vector<DTPattern*> L1L5Patterns_;
99  std::vector<DTPattern*> L2L5Patterns_;
100  std::vector<DTPattern*> L3L5Patterns_;
101  std::vector<DTPattern*> L4L5Patterns_;
102 
103  std::vector<DTPattern*> L0L4Patterns_;
104  std::vector<DTPattern*> L1L4Patterns_;
105  std::vector<DTPattern*> L2L4Patterns_;
106  std::vector<DTPattern*> L3L4Patterns_;
107 
108  std::vector<DTPattern*> L0L3Patterns_;
109  std::vector<DTPattern*> L1L3Patterns_;
110  std::vector<DTPattern*> L2L3Patterns_;
111 
112  std::vector<DTPattern*> L0L2Patterns_;
113  std::vector<DTPattern*> L1L2Patterns_;
114 
115  std::vector<DTPattern*> L0L1Patterns_;
116 };
117 
118 #endif
PseudoBayesGrouping::finish
void finish() override
Definition: PseudoBayesGrouping.cc:468
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
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
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
PseudoBayesGrouping
Definition: PseudoBayesGrouping.h:11
PseudoBayesGrouping::allMatches_
std::unique_ptr< dtbayesam::CandidateGroupPtrs > allMatches_
Definition: PseudoBayesGrouping.h:75
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
PseudoBayesGrouping::run
void run(edm::Event &iEvent, const edm::EventSetup &iEventSetup, const DTDigiCollection &digis, MuonPathPtrs &outMpath) override
Definition: PseudoBayesGrouping.cc:179
MuonPathPtrs
std::vector< MuonPathPtr > MuonPathPtrs
Definition: MuonPath.h:122
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
PseudoBayesGrouping::L1L4Patterns_
std::vector< DTPattern * > L1L4Patterns_
Definition: PseudoBayesGrouping.h:104
PseudoBayesGrouping::minSingleSLHitsMin_
int minSingleSLHitsMin_
Definition: PseudoBayesGrouping.h:58
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
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
MotherGrouping
Definition: MotherGrouping.h:29
PseudoBayesGrouping::debug_
bool debug_
Definition: PseudoBayesGrouping.h:48
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
PseudoBayesGrouping::allPatterns_
std::vector< DTPattern * > allPatterns_
Definition: PseudoBayesGrouping.h:80
PseudoBayesGrouping::alldigis_
std::vector< DTPrimitive > alldigis_
Definition: PseudoBayesGrouping.h:62
PseudoBayesGrouping::L0L6Patterns_
std::vector< DTPattern * > L0L6Patterns_
Definition: PseudoBayesGrouping.h:90
PseudoBayesGrouping::digisinL5_
std::vector< DTPrimitive > digisinL5_
Definition: PseudoBayesGrouping.h:69
CandidateGroup.h
PseudoBayesGrouping::L4L6Patterns_
std::vector< DTPattern * > L4L6Patterns_
Definition: PseudoBayesGrouping.h:94
edm::ParameterSet
Definition: ParameterSet.h:47
PseudoBayesGrouping::L3L4Patterns_
std::vector< DTPattern * > L3L4Patterns_
Definition: PseudoBayesGrouping.h:106
PseudoBayesGrouping::allowUncorrelatedPatterns_
bool allowUncorrelatedPatterns_
Definition: PseudoBayesGrouping.h:54
DTDigiCollection
PseudoBayesGrouping::L0L5Patterns_
std::vector< DTPattern * > L0L5Patterns_
Definition: PseudoBayesGrouping.h:97
PseudoBayesGrouping::L1L6Patterns_
std::vector< DTPattern * > L1L6Patterns_
Definition: PseudoBayesGrouping.h:91
iEvent
int iEvent
Definition: GenABIO.cc:224
alignmentValidation.c1
c1
do drawing
Definition: alignmentValidation.py:1025
PseudoBayesGrouping::CandPointGreat::operator()
bool operator()(dtbayesam::CandidateGroupPtr c1, dtbayesam::CandidateGroupPtr c2)
Definition: PseudoBayesGrouping.h:43
trackerHitRTTI::vector
Definition: trackerHitRTTI.h:21
PseudoBayesGrouping::~PseudoBayesGrouping
~PseudoBayesGrouping() override
Definition: PseudoBayesGrouping.cc:36
edm::EventSetup
Definition: EventSetup.h:57
PseudoBayesGrouping::allowDuplicates_
bool allowDuplicates_
Definition: PseudoBayesGrouping.h:53
DTPattern.h
PseudoBayesGrouping::L0L1Patterns_
std::vector< DTPattern * > L0L1Patterns_
Definition: PseudoBayesGrouping.h:115
PseudoBayesGrouping::PseudoBayesGrouping
PseudoBayesGrouping(const edm::ParameterSet &pset, edm::ConsumesCollector &iC)
Definition: PseudoBayesGrouping.cc:18
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
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
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
PseudoBayesGrouping::CandPointGreat
Definition: PseudoBayesGrouping.h:42
dtbayesam::CandidateGroupPtr
std::shared_ptr< CandidateGroup > CandidateGroupPtr
Definition: CandidateGroup.h:58
PseudoBayesGrouping::initialise
void initialise(const edm::EventSetup &iEventSetup) override
Definition: PseudoBayesGrouping.cc:47
PseudoBayesGrouping::prelimMatches_
std::unique_ptr< dtbayesam::CandidateGroupPtrs > prelimMatches_
Definition: PseudoBayesGrouping.h:74
edm::Event
Definition: Event.h:73
MotherGrouping.h
PseudoBayesGrouping::digisinL2_
std::vector< DTPrimitive > digisinL2_
Definition: PseudoBayesGrouping.h:66
edm::ConsumesCollector
Definition: ConsumesCollector.h:45
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
PseudoBayesGrouping::L0L3Patterns_
std::vector< DTPattern * > L0L3Patterns_
Definition: PseudoBayesGrouping.h:108