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  const 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(const edm::ParameterSet &pset, edm::ConsumesCollector &iC)
dtbayesam::DTPatternPtrs L3L4Patterns_[4][3]
dtbayesam::DTPatternPtrs L1L3Patterns_[4][3]
dtbayesam::DTPatternPtrs L4L6Patterns_[4][3]
dtbayesam::DTPatternPtrs L0L2Patterns_[4][3]
dtbayesam::DTPatternPtrs L3L6Patterns_[4][3]
std::vector< MuonPathPtr > MuonPathPtrs
Definition: MuonPath.h:128
void LoadPattern(TString pattern_file_name, int MB_number_input, int SL_shift)
bool operator()(dtbayesam::CandidateGroupPtr c1, dtbayesam::CandidateGroupPtr c2)
std::vector< DTPrimitive > alldigis_
std::vector< DTPrimitive > digisinL5_
dtbayesam::DTPatternPtrs L0L7Patterns_[4][3]
std::unique_ptr< dtbayesam::CandidateGroupPtrs > allMatches_
void RecognisePatternsByLayerPairs(DTChamberId chamber_ID)
std::vector< DTPrimitive > digisinL6_
dtbayesam::DTPatternPtrs L3L7Patterns_[4][3]
dtbayesam::DTPatternPtrs L1L4Patterns_[4][3]
dtbayesam::DTPatternPtrs L2L5Patterns_[4][3]
int iEvent
Definition: GenABIO.cc:224
std::vector< DTPrimitive > digisinL0_
std::vector< DTPrimitive > digisinL1_
dtbayesam::DTPatternPtrs L4L7Patterns_[4][3]
void FillDigisByLayer(const DTDigiCollection *digis)
dtbayesam::DTPatternPtrs allPatterns_[4][3]
dtbayesam::DTPatternPtrs L6L7Patterns_[4][3]
dtbayesam::DTPatternPtrs L2L7Patterns_[4][3]
dtbayesam::DTPatternPtrs L0L1Patterns_[4][3]
dtbayesam::DTPatternPtrs L1L7Patterns_[4][3]
dtbayesam::DTPatternPtrs L2L4Patterns_[4][3]
dtbayesam::DTPatternPtrs L2L3Patterns_[4][3]
std::vector< DTPrimitive > digisinL4_
std::vector< DTPatternPtr > DTPatternPtrs
dtbayesam::DTPatternPtrs L0L4Patterns_[4][3]
dtbayesam::DTPatternPtrs L2L6Patterns_[4][3]
std::vector< DTPrimitive > digisinL3_
std::vector< DTPrimitive > digisinL2_
void FillMuonPaths(MuonPathPtrs &mpaths)
dtbayesam::DTPatternPtrs L1L2Patterns_[4][3]
std::shared_ptr< CandidateGroup > CandidateGroupPtr
std::vector< DTPrimitive > digisinL7_
dtbayesam::DTPatternPtrs L5L7Patterns_[4][3]
void initialise(const edm::EventSetup &iEventSetup) override
std::unique_ptr< dtbayesam::CandidateGroupPtrs > prelimMatches_
dtbayesam::DTPatternPtrs L4L5Patterns_[4][3]
dtbayesam::DTPatternPtrs L1L5Patterns_[4][3]
dtbayesam::DTPatternPtrs L0L3Patterns_[4][3]
dtbayesam::DTPatternPtrs L0L6Patterns_[4][3]
dtbayesam::DTPatternPtrs L0L5Patterns_[4][3]
void RecognisePatterns(std::vector< DTPrimitive > digisinLDown, std::vector< DTPrimitive > digisinLUp, dtbayesam::DTPatternPtrs patterns)
std::unique_ptr< dtbayesam::CandidateGroupPtrs > finalMatches_
void run(edm::Event &iEvent, const edm::EventSetup &iEventSetup, const DTDigiCollection &digis, MuonPathPtrs &outMpath) override
dtbayesam::DTPatternPtrs L1L6Patterns_[4][3]
dtbayesam::DTPatternPtrs L3L5Patterns_[4][3]
dtbayesam::DTPatternPtrs L5L6Patterns_[4][3]