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 // ===============================================================================
11 // using namespace dtbayesam;
12 
14 public:
15  // Constructors and destructor
17  ~PseudoBayesGrouping() override;
18 
19  // Main methods
20  void initialise(const edm::EventSetup& iEventSetup) override;
21  void run(edm::Event& iEvent,
22  const edm::EventSetup& iEventSetup,
23  const DTDigiCollection& digis,
24  MuonPathPtrs& outMpath) override;
25  void finish() override;
26 
27  // Other public methods
28 
29  // Public attributes
30 
31 private:
32  // Private methods
33  void LoadPattern(TString pattern_file_name, int MB_number_input, int SL_shift);
34  void FillDigisByLayer(const DTDigiCollection* digis);
35  void CleanDigisByLayer();
37  void RecognisePatterns(std::vector<DTPrimitive> digisinLDown,
38  std::vector<DTPrimitive> digisinLUp,
39  dtbayesam::DTPatternPtrs patterns);
41  void FillMuonPaths(MuonPathPtrs& mpaths);
42 
43  //Comparator for pointer mode
44  struct CandPointGreat {
46  };
47 
48  // Private attributes
49  // Config variables
50  bool debug_;
52  int pidx_;
63 
64  //Classified digis
65  std::vector<DTPrimitive> alldigis_;
66 
67  std::vector<DTPrimitive> digisinL0_;
68  std::vector<DTPrimitive> digisinL1_;
69  std::vector<DTPrimitive> digisinL2_;
70  std::vector<DTPrimitive> digisinL3_;
71  std::vector<DTPrimitive> digisinL4_;
72  std::vector<DTPrimitive> digisinL5_;
73  std::vector<DTPrimitive> digisinL6_;
74  std::vector<DTPrimitive> digisinL7_;
75 
76  //Preliminary matches, those can grow quite big so better not to rely on the stack
77  std::unique_ptr<dtbayesam::CandidateGroupPtrs> prelimMatches_;
78  std::unique_ptr<dtbayesam::CandidateGroupPtrs> allMatches_;
79  std::unique_ptr<dtbayesam::CandidateGroupPtrs> finalMatches_;
80 
81  //Pattern related info
83 
84  // One vector per MB and per shift of SL3 wrt SL1
85  // shift = (0, 1, 2) --> (left, nothing, right)
87 
95 
102 
108 
113 
117 
120 
122 };
123 
124 #endif
PseudoBayesGrouping::finish
void finish() override
Definition: PseudoBayesGrouping.cc:605
PseudoBayesGrouping::L2L4Patterns_
dtbayesam::DTPatternPtrs L2L4Patterns_[4][3]
Definition: PseudoBayesGrouping.h:111
PseudoBayesGrouping::nPatterns_
int nPatterns_
Definition: PseudoBayesGrouping.h:82
PseudoBayesGrouping::minNLayerHits_
int minNLayerHits_
Definition: PseudoBayesGrouping.h:53
PseudoBayesGrouping::minSingleSLHitsMax_
int minSingleSLHitsMax_
Definition: PseudoBayesGrouping.h:59
PseudoBayesGrouping::L1L4Patterns_
dtbayesam::DTPatternPtrs L1L4Patterns_[4][3]
Definition: PseudoBayesGrouping.h:110
PseudoBayesGrouping::CleanDigisByLayer
void CleanDigisByLayer()
Definition: PseudoBayesGrouping.cc:590
PseudoBayesGrouping::digisinL4_
std::vector< DTPrimitive > digisinL4_
Definition: PseudoBayesGrouping.h:71
PseudoBayesGrouping::L4L7Patterns_
dtbayesam::DTPatternPtrs L4L7Patterns_[4][3]
Definition: PseudoBayesGrouping.h:92
PseudoBayesGrouping::FillMuonPaths
void FillMuonPaths(MuonPathPtrs &mpaths)
Definition: PseudoBayesGrouping.cc:238
PseudoBayesGrouping
Definition: PseudoBayesGrouping.h:13
PseudoBayesGrouping::allMatches_
std::unique_ptr< dtbayesam::CandidateGroupPtrs > allMatches_
Definition: PseudoBayesGrouping.h:78
PseudoBayesGrouping::L0L3Patterns_
dtbayesam::DTPatternPtrs L0L3Patterns_[4][3]
Definition: PseudoBayesGrouping.h:114
PseudoBayesGrouping::digisinL6_
std::vector< DTPrimitive > digisinL6_
Definition: PseudoBayesGrouping.h:73
PseudoBayesGrouping::minUncorrelatedHits_
int minUncorrelatedHits_
Definition: PseudoBayesGrouping.h:61
PseudoBayesGrouping::L1L2Patterns_
dtbayesam::DTPatternPtrs L1L2Patterns_[4][3]
Definition: PseudoBayesGrouping.h:119
PseudoBayesGrouping::RecognisePatterns
void RecognisePatterns(std::vector< DTPrimitive > digisinLDown, std::vector< DTPrimitive > digisinLUp, dtbayesam::DTPatternPtrs patterns)
Definition: PseudoBayesGrouping.cc:454
PseudoBayesGrouping::maxPathsPerMatch_
uint maxPathsPerMatch_
Definition: PseudoBayesGrouping.h:62
PseudoBayesGrouping::run
void run(edm::Event &iEvent, const edm::EventSetup &iEventSetup, const DTDigiCollection &digis, MuonPathPtrs &outMpath) override
Definition: PseudoBayesGrouping.cc:193
PseudoBayesGrouping::L3L5Patterns_
dtbayesam::DTPatternPtrs L3L5Patterns_[4][3]
Definition: PseudoBayesGrouping.h:106
parallelization.uint
uint
Definition: parallelization.py:124
MuonPathPtrs
std::vector< MuonPathPtr > MuonPathPtrs
Definition: MuonPath.h:128
PseudoBayesGrouping::digisinL3_
std::vector< DTPrimitive > digisinL3_
Definition: PseudoBayesGrouping.h:70
PseudoBayesGrouping::L4L5Patterns_
dtbayesam::DTPatternPtrs L4L5Patterns_[4][3]
Definition: PseudoBayesGrouping.h:107
PseudoBayesGrouping::L3L4Patterns_
dtbayesam::DTPatternPtrs L3L4Patterns_[4][3]
Definition: PseudoBayesGrouping.h:112
PseudoBayesGrouping::minSingleSLHitsMin_
int minSingleSLHitsMin_
Definition: PseudoBayesGrouping.h:60
PseudoBayesGrouping::pattern_filename_
std::string pattern_filename_
Definition: PseudoBayesGrouping.h:51
PseudoBayesGrouping::ReCleanPatternsAndDigis
void ReCleanPatternsAndDigis()
Definition: PseudoBayesGrouping.cc:551
PseudoBayesGrouping::L0L5Patterns_
dtbayesam::DTPatternPtrs L0L5Patterns_[4][3]
Definition: PseudoBayesGrouping.h:103
PseudoBayesGrouping::digisinL7_
std::vector< DTPrimitive > digisinL7_
Definition: PseudoBayesGrouping.h:74
PseudoBayesGrouping::L3L7Patterns_
dtbayesam::DTPatternPtrs L3L7Patterns_[4][3]
Definition: PseudoBayesGrouping.h:91
PseudoBayesGrouping::finalMatches_
std::unique_ptr< dtbayesam::CandidateGroupPtrs > finalMatches_
Definition: PseudoBayesGrouping.h:79
MotherGrouping
Definition: MotherGrouping.h:29
PseudoBayesGrouping::debug_
bool debug_
Definition: PseudoBayesGrouping.h:50
PseudoBayesGrouping::L2L5Patterns_
dtbayesam::DTPatternPtrs L2L5Patterns_[4][3]
Definition: PseudoBayesGrouping.h:105
PseudoBayesGrouping::LoadPattern
void LoadPattern(TString pattern_file_name, int MB_number_input, int SL_shift)
Definition: PseudoBayesGrouping.cc:73
PseudoBayesGrouping::alldigis_
std::vector< DTPrimitive > alldigis_
Definition: PseudoBayesGrouping.h:65
PseudoBayesGrouping::digisinL5_
std::vector< DTPrimitive > digisinL5_
Definition: PseudoBayesGrouping.h:72
CandidateGroup.h
edm::ParameterSet
Definition: ParameterSet.h:47
PseudoBayesGrouping::L0L7Patterns_
dtbayesam::DTPatternPtrs L0L7Patterns_[4][3]
Definition: PseudoBayesGrouping.h:88
PseudoBayesGrouping::L1L3Patterns_
dtbayesam::DTPatternPtrs L1L3Patterns_[4][3]
Definition: PseudoBayesGrouping.h:115
PseudoBayesGrouping::RecognisePatternsByLayerPairs
void RecognisePatternsByLayerPairs(DTChamberId chamber_ID)
Definition: PseudoBayesGrouping.cc:345
PseudoBayesGrouping::allowUncorrelatedPatterns_
bool allowUncorrelatedPatterns_
Definition: PseudoBayesGrouping.h:56
DTDigiCollection
PseudoBayesGrouping::L6L7Patterns_
dtbayesam::DTPatternPtrs L6L7Patterns_[4][3]
Definition: PseudoBayesGrouping.h:94
PseudoBayesGrouping::L3L6Patterns_
dtbayesam::DTPatternPtrs L3L6Patterns_[4][3]
Definition: PseudoBayesGrouping.h:99
PseudoBayesGrouping::L2L7Patterns_
dtbayesam::DTPatternPtrs L2L7Patterns_[4][3]
Definition: PseudoBayesGrouping.h:90
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:45
PseudoBayesGrouping::~PseudoBayesGrouping
~PseudoBayesGrouping() override
Definition: PseudoBayesGrouping.cc:37
edm::EventSetup
Definition: EventSetup.h:58
PseudoBayesGrouping::L1L6Patterns_
dtbayesam::DTPatternPtrs L1L6Patterns_[4][3]
Definition: PseudoBayesGrouping.h:97
PseudoBayesGrouping::L2L3Patterns_
dtbayesam::DTPatternPtrs L2L3Patterns_[4][3]
Definition: PseudoBayesGrouping.h:116
PseudoBayesGrouping::allowDuplicates_
bool allowDuplicates_
Definition: PseudoBayesGrouping.h:55
DTPattern.h
PseudoBayesGrouping::L5L6Patterns_
dtbayesam::DTPatternPtrs L5L6Patterns_[4][3]
Definition: PseudoBayesGrouping.h:101
AlCaHLTBitMon_QueryRunRegistry.string
string string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
PseudoBayesGrouping::PseudoBayesGrouping
PseudoBayesGrouping(const edm::ParameterSet &pset, edm::ConsumesCollector &iC)
Definition: PseudoBayesGrouping.cc:18
PseudoBayesGrouping::L2L6Patterns_
dtbayesam::DTPatternPtrs L2L6Patterns_[4][3]
Definition: PseudoBayesGrouping.h:98
PseudoBayesGrouping::digisinL0_
std::vector< DTPrimitive > digisinL0_
Definition: PseudoBayesGrouping.h:67
PseudoBayesGrouping::digisinL1_
std::vector< DTPrimitive > digisinL1_
Definition: PseudoBayesGrouping.h:68
PseudoBayesGrouping::allowedVariance_
int allowedVariance_
Definition: PseudoBayesGrouping.h:54
PseudoBayesGrouping::L4L6Patterns_
dtbayesam::DTPatternPtrs L4L6Patterns_[4][3]
Definition: PseudoBayesGrouping.h:100
PseudoBayesGrouping::L0L2Patterns_
dtbayesam::DTPatternPtrs L0L2Patterns_[4][3]
Definition: PseudoBayesGrouping.h:118
PseudoBayesGrouping::pidx_
int pidx_
Definition: PseudoBayesGrouping.h:52
PseudoBayesGrouping::saveOnPlace_
bool saveOnPlace_
Definition: PseudoBayesGrouping.h:58
dtbayesam::DTPatternPtrs
std::vector< DTPatternPtr > DTPatternPtrs
Definition: CandidateGroup.h:18
PseudoBayesGrouping::L1L7Patterns_
dtbayesam::DTPatternPtrs L1L7Patterns_[4][3]
Definition: PseudoBayesGrouping.h:89
PseudoBayesGrouping::setLateralities_
bool setLateralities_
Definition: PseudoBayesGrouping.h:57
DTChamberId
Definition: DTChamberId.h:14
PseudoBayesGrouping::CandPointGreat
Definition: PseudoBayesGrouping.h:44
PseudoBayesGrouping::L0L4Patterns_
dtbayesam::DTPatternPtrs L0L4Patterns_[4][3]
Definition: PseudoBayesGrouping.h:109
dtbayesam::CandidateGroupPtr
std::shared_ptr< CandidateGroup > CandidateGroupPtr
Definition: CandidateGroup.h:61
PseudoBayesGrouping::L5L7Patterns_
dtbayesam::DTPatternPtrs L5L7Patterns_[4][3]
Definition: PseudoBayesGrouping.h:93
PseudoBayesGrouping::initialise
void initialise(const edm::EventSetup &iEventSetup) override
Definition: PseudoBayesGrouping.cc:45
PseudoBayesGrouping::prelimMatches_
std::unique_ptr< dtbayesam::CandidateGroupPtrs > prelimMatches_
Definition: PseudoBayesGrouping.h:77
edm::Event
Definition: Event.h:73
MotherGrouping.h
PseudoBayesGrouping::digisinL2_
std::vector< DTPrimitive > digisinL2_
Definition: PseudoBayesGrouping.h:69
edm::ConsumesCollector
Definition: ConsumesCollector.h:45
PseudoBayesGrouping::FillDigisByLayer
void FillDigisByLayer(const DTDigiCollection *digis)
Definition: PseudoBayesGrouping.cc:505
PseudoBayesGrouping::allPatterns_
dtbayesam::DTPatternPtrs allPatterns_[4][3]
Definition: PseudoBayesGrouping.h:86
PseudoBayesGrouping::L1L5Patterns_
dtbayesam::DTPatternPtrs L1L5Patterns_[4][3]
Definition: PseudoBayesGrouping.h:104
muonDTDigis_cfi.pset
pset
Definition: muonDTDigis_cfi.py:27
PseudoBayesGrouping::L0L1Patterns_
dtbayesam::DTPatternPtrs L0L1Patterns_[4][3]
Definition: PseudoBayesGrouping.h:121
PseudoBayesGrouping::L0L6Patterns_
dtbayesam::DTPatternPtrs L0L6Patterns_[4][3]
Definition: PseudoBayesGrouping.h:96