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 
104  bool isSLHC_;
105 
108 
111 
114 
117 
120 
123 
124  int m_minBX_, m_maxBX_; // min and max BX to sort.
125 
127  std::unique_ptr<CSCMotherboard>
129 
130  // pointers to the geometry
133 
135  std::unique_ptr<CSCMuonPortCard> m_muonportcard;
136 };
137 
138 template <class T, class S>
139 void CSCTriggerPrimitivesBuilder::put(const T& t, S& s, const CSCDetId& detid,
141 {
142  if (!t.empty()) {
143  LogTrace("L1CSCTrigger")
144  << "Put " << t.size() << comment
145  << ((t.size() > 1) ? "s " : " ") << "in collection\n";
146  s.put(std::make_pair(t.begin(),t.end()), detid);
147  }
148 }
149 
150 #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