CMS 3D CMS Logo

CSCTriggerPrimitivesBuilder.h
Go to the documentation of this file.
1 #ifndef L1Trigger_CSCTriggerPrimitives_CSCTriggerPrimitivesBuilder_h
2 #define L1Trigger_CSCTriggerPrimitives_CSCTriggerPrimitivesBuilder_h
3 
34 
36 class CSCMotherboard;
37 class CSCMuonPortCard;
38 class CSCGeometry;
39 class GEMGeometry;
41 {
42  public:
43 
49 
51 
53  void setConfigParameters(const CSCDBL1TPParameters* conf);
54 
56  void setCSCGeometry(const CSCGeometry *g) { csc_g = g; }
57  void setGEMGeometry(const GEMGeometry *g) { gem_g = g; }
58 
62  void build(const CSCBadChambers* badChambers,
63  const CSCWireDigiCollection* wiredc,
64  const CSCComparatorDigiCollection* compdc,
65  const GEMPadDigiCollection* gemPads,
66  const GEMPadDigiClusterCollection* gemPadClusters,
67  CSCALCTDigiCollection& oc_alct,
68  CSCCLCTDigiCollection& oc_clct,
69  CSCCLCTPreTriggerDigiCollection& oc_clctpretrigger,
70  CSCCLCTPreTriggerCollection & oc_pretrig,
72  CSCCorrelatedLCTDigiCollection& oc_sorted_lct,
73  GEMCoPadDigiCollection& oc_gemcopad);
74 
79  private:
80 
84  template <class T, class S>
85  void put(const T&, S&, const CSCDetId&, std::string comment);
86 
89  static const int min_endcap; // endcaps
90  static const int max_endcap;
91  static const int min_station; // stations per endcap
92  static const int max_station;
93  static const int min_sector; // trigger sectors per station
94  static const int max_sector;
95  static const int min_subsector; // trigger subsectors per sector
96  static const int max_subsector;
97  static const int min_chamber; // chambers per trigger subsector
98  static const int max_chamber;
99 
102 
105 
108 
111 
114 
117 
120 
121  int m_minBX, m_maxBX; // min and max BX to sort.
122 
124  std::unique_ptr<CSCMotherboard>
126 
127  // pointers to the geometry
130 
132  std::unique_ptr<CSCMuonPortCard> m_muonportcard;
133 };
134 
135 template <class T, class S>
136 void CSCTriggerPrimitivesBuilder::put(const T& t, S& s, const CSCDetId& detid,
138 {
139  if (!t.empty()) {
140  LogTrace("L1CSCTrigger")
141  << "Put " << t.size() << comment
142  << ((t.size() > 1) ? "s " : " ") << "in collection\n";
143  s.put(std::make_pair(t.begin(),t.end()), detid);
144  }
145 }
146 
147 #endif
std::unique_ptr< CSCMotherboard > tmb_[MAX_ENDCAPS][MAX_STATIONS][MAX_SECTORS][MAX_SUBSECTORS][MAX_CHAMBERS]
void setGEMGeometry(const GEMGeometry *g)
void setCSCGeometry(const CSCGeometry *g)
set CSC and GEM geometries for the matching needs
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e g
Definition: Activities.doc:4
void setConfigParameters(const CSCDBL1TPParameters *conf)
void build(const CSCBadChambers *badChambers, const CSCWireDigiCollection *wiredc, const CSCComparatorDigiCollection *compdc, const GEMPadDigiCollection *gemPads, const GEMPadDigiClusterCollection *gemPadClusters, CSCALCTDigiCollection &oc_alct, CSCCLCTDigiCollection &oc_clct, CSCCLCTPreTriggerDigiCollection &oc_clctpretrigger, CSCCLCTPreTriggerCollection &oc_pretrig, CSCCorrelatedLCTDigiCollection &oc_lct, CSCCorrelatedLCTDigiCollection &oc_sorted_lct, GEMCoPadDigiCollection &oc_gemcopad)
CSCTriggerPrimitivesBuilder(const edm::ParameterSet &)
#define LogTrace(id)
void put(const T &, S &, const CSCDetId &, std::string comment)
bool checkBadChambers_
a flag whether to skip chambers from the bad chambers map
std::unique_ptr< CSCMuonPortCard > m_muonportcard
long double T
#define comment(par)
Definition: vmac.h:163