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  /* temporary function to check if running on data.
60  * Currently in simulation the central BX is BX6; in data
61  * it is BX8. This mismatch in conventions is expeced to
62  * be resolved in the near future. The member runOnData_
63  * is used in the builder to shift the LCT BX readout
64  * with +2 from [3,9] to [5,11].
65  */
67 
71  void build(const CSCBadChambers* badChambers,
72  const CSCWireDigiCollection* wiredc,
73  const CSCComparatorDigiCollection* compdc,
74  const GEMPadDigiCollection* gemPads,
75  const GEMPadDigiClusterCollection* gemPadClusters,
76  CSCALCTDigiCollection& oc_alct,
77  CSCCLCTDigiCollection& oc_clct,
78  CSCCLCTPreTriggerDigiCollection& oc_clctpretrigger,
79  CSCCLCTPreTriggerCollection & oc_pretrig,
81  CSCCorrelatedLCTDigiCollection& oc_sorted_lct,
82  GEMCoPadDigiCollection& oc_gemcopad);
83 
88  private:
89 
93  template <class T, class S>
94  void put(const T&, S&, const CSCDetId&, std::string comment);
95 
98  static const int min_endcap; // endcaps
99  static const int max_endcap;
100  static const int min_station; // stations per endcap
101  static const int max_station;
102  static const int min_sector; // trigger sectors per station
103  static const int max_sector;
104  static const int min_subsector; // trigger subsectors per sector
105  static const int max_subsector;
106  static const int min_chamber; // chambers per trigger subsector
107  static const int max_chamber;
108 
111 
114 
117 
120 
123 
126 
129 
132 
133  int m_minBX, m_maxBX; // min and max BX to sort.
134 
136  std::unique_ptr<CSCMotherboard>
138 
139  // pointers to the geometry
142 
144  std::unique_ptr<CSCMuonPortCard> m_muonportcard;
145 };
146 
147 template <class T, class S>
148 void CSCTriggerPrimitivesBuilder::put(const T& t, S& s, const CSCDetId& detid,
150 {
151  if (!t.empty()) {
152  LogTrace("L1CSCTrigger")
153  << "Put " << t.size() << comment
154  << ((t.size() > 1) ? "s " : " ") << "in collection\n";
155  s.put(std::make_pair(t.begin(),t.end()), detid);
156  }
157 }
158 
159 #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)
bool runOnData_
temporary flag to run on data
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