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 
59 // Build anode, cathode, and correlated LCTs in each chamber and fill them
60 // into output collections. Pass collections of wire and comparator digis
61 // to Trigger MotherBoard (TMB) processors, which, in turn, pass them to
62 // ALCT and CLCT processors. Up to 2 anode and 2 cathode LCTs can be found
63 // in each chamber during any bunch crossing. The 2 projections are then
64 // combined into three-dimensional "correlated" LCTs in the TMB. Finally,
65 // MPC processor sorts up to 18 LCTs from 9 TMBs and writes collections of
66 // up to 3 best LCTs per (sub)sector into Event (to be used by the Sector
67 // Receiver).
68  void build(const CSCBadChambers* badChambers,
69  const CSCWireDigiCollection* wiredc,
70  const CSCComparatorDigiCollection* compdc,
71  const GEMPadDigiCollection* gemPads,
72  const GEMPadDigiClusterCollection* gemPadClusters,
73  CSCALCTDigiCollection& oc_alct,
74  CSCCLCTDigiCollection& oc_clct,
75  CSCCLCTPreTriggerDigiCollection& oc_clctpretrigger,
76  CSCCLCTPreTriggerCollection & oc_pretrig,
78  CSCCorrelatedLCTDigiCollection& oc_sorted_lct,
79  GEMCoPadDigiCollection& oc_gemcopad);
80 
85  private:
86 
90  template <class T, class S>
91  void put(const T&, S&, const CSCDetId&, std::string comment);
92 
95  static const int min_endcap; // endcaps
96  static const int max_endcap;
97  static const int min_station; // stations per endcap
98  static const int max_station;
99  static const int min_sector; // trigger sectors per station
100  static const int max_sector;
101  static const int min_subsector; // trigger subsectors per sector
102  static const int max_subsector;
103  static const int min_chamber; // chambers per trigger subsector
104  static const int max_chamber;
105 
106  //debug
107  int infoV;
110 
112  bool isSLHC_;
113 
116 
119 
125 
128 
131 
134 
135  int m_minBX_, m_maxBX_; // min and max BX to sort.
136 
138  std::unique_ptr<CSCMotherboard>
140 
141  // pointers to the geometry
144 
146  std::unique_ptr<CSCMuonPortCard> m_muonportcard;
147 };
148 
149 template <class T, class S>
150 void CSCTriggerPrimitivesBuilder::put(const T& t, S& s, const CSCDetId& detid,
152 {
153  if (!t.empty()) {
154  LogTrace("L1CSCTrigger")
155  << "Put " << t.size() << comment
156  << ((t.size() > 1) ? "s " : " ") << "in collection\n";
157  s.put(std::make_pair(t.begin(),t.end()), detid);
158  }
159 }
160 
161 #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
A container for a generic type of digis indexed by some index, implemented with a map<IndexType...