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 
35 
37 class CSCMotherboard;
38 class CSCMuonPortCard;
39 class CSCGeometry;
40 class GEMGeometry;
42 public:
48 
50 
52  void setConfigParameters(const CSCDBL1TPParameters* conf);
53 
55  void setCSCGeometry(const CSCGeometry* g) { csc_g = g; }
56  void setGEMGeometry(const GEMGeometry* g) { gem_g = g; }
57 
58  // Build anode, cathode, and correlated LCTs in each chamber and fill them
59  // into output collections. Pass collections of wire and comparator digis
60  // to Trigger MotherBoard (TMB) processors, which, in turn, pass them to
61  // ALCT and CLCT processors. Up to 2 anode and 2 cathode LCTs can be found
62  // in each chamber during any bunch crossing. The 2 projections are then
63  // combined into three-dimensional "correlated" LCTs in the TMB. Finally,
64  // MPC processor sorts up to 18 LCTs from 9 TMBs and writes collections of
65  // up to 3 best LCTs per (sub)sector into Event (to be used by the Sector
66  // Receiver).
67  void build(const CSCBadChambers* badChambers,
68  const CSCWireDigiCollection* wiredc,
69  const CSCComparatorDigiCollection* compdc,
70  const GEMPadDigiClusterCollection* gemPadClusters,
71  CSCALCTDigiCollection& oc_alct,
72  CSCCLCTDigiCollection& oc_clct,
73  CSCALCTPreTriggerDigiCollection& oc_alctpretrigger,
74  CSCCLCTPreTriggerDigiCollection& oc_clctpretrigger,
75  CSCCLCTPreTriggerCollection& oc_pretrig,
77  CSCCorrelatedLCTDigiCollection& oc_sorted_lct,
78  CSCShowerDigiCollection& oc_shower,
79  CSCShowerDigiCollection& oc_shower_anode,
80  GEMCoPadDigiCollection& oc_gemcopad);
81 
85 
86 private:
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;
108 
111 
114 
117 
121 
124 
127 
129  std::unique_ptr<CSCMotherboard> tmb_[MAX_ENDCAPS][MAX_STATIONS][MAX_SECTORS][MAX_SUBSECTORS][MAX_CHAMBERS];
130 
132  std::unique_ptr<CSCMuonPortCard> mpc_[MAX_ENDCAPS][MAX_STATIONS][MAX_SECTORS];
133 
134  // pointers to the geometry
137 };
138 
139 template <class T, class S>
140 void CSCTriggerPrimitivesBuilder::put(const T& t, S& s, const CSCDetId& detid, std::string comment) {
141  if (!t.empty()) {
142  LogTrace("L1CSCTrigger") << "Put " << t.size() << comment << ((t.size() > 1) ? "s " : " ") << "in collection\n";
143  s.put(std::make_pair(t.begin(), t.end()), detid);
144  }
145 }
146 
147 #endif
CSCCLCTPreTriggerCollection
CSCTriggerPrimitivesBuilder::max_sector
static const int max_sector
Definition: CSCTriggerPrimitivesBuilder.h:100
CSCDBL1TPParameters
Definition: CSCDBL1TPParameters.h:14
CSCCorrelatedLCTDigiCollection.h
CSCTriggerPrimitivesBuilder::tmb_
std::unique_ptr< CSCMotherboard > tmb_[MAX_ENDCAPS][MAX_STATIONS][MAX_SECTORS][MAX_SUBSECTORS][MAX_CHAMBERS]
Definition: CSCTriggerPrimitivesBuilder.h:129
CSCTriggerPrimitivesBuilder::max_endcap
static const int max_endcap
Definition: CSCTriggerPrimitivesBuilder.h:96
GEMCoPadDigiCollection
MessageLogger.h
CSCTriggerPrimitivesBuilder::max_chamber
static const int max_chamber
Definition: CSCTriggerPrimitivesBuilder.h:104
CSCTriggerPrimitivesBuilder::put
void put(const T &, S &, const CSCDetId &, std::string comment)
Definition: CSCTriggerPrimitivesBuilder.h:140
CSCTriggerPrimitivesBuilder::checkBadChambers_
bool checkBadChambers_
a flag whether to skip chambers from the bad chambers map
Definition: CSCTriggerPrimitivesBuilder.h:110
CSCTriggerPrimitivesBuilder::min_subsector
static const int min_subsector
Definition: CSCTriggerPrimitivesBuilder.h:101
MuonDigiCollection
A container for a generic type of digis indexed by some index, implemented with a map<IndexType,...
Definition: MuonDigiCollection.h:87
CSCTriggerPrimitivesBuilder::max_subsector
static const int max_subsector
Definition: CSCTriggerPrimitivesBuilder.h:102
CSCTriggerPrimitivesBuilder::mpc_
std::unique_ptr< CSCMuonPortCard > mpc_[MAX_ENDCAPS][MAX_STATIONS][MAX_SECTORS]
Definition: CSCTriggerPrimitivesBuilder.h:132
GEMCoPadDigiCollection.h
CSCCLCTPreTriggerCollection.h
CSCMotherboard
Definition: CSCMotherboard.h:47
CSCTriggerPrimitivesBuilder::MAX_ENDCAPS
Definition: CSCTriggerPrimitivesBuilder.h:84
CSCBadChambers
Definition: CSCBadChambers.h:9
CSCMuonPortCard
Definition: CSCMuonPortCard.h:36
CSCCLCTPreTriggerDigiCollection.h
CSCGeometry
Definition: CSCGeometry.h:24
CSCTriggerPrimitivesBuilder::setConfigParameters
void setConfigParameters(const CSCDBL1TPParameters *conf)
Definition: CSCTriggerPrimitivesBuilder.cc:81
GEMPadDigiClusterCollection.h
alignCSCRings.s
s
Definition: alignCSCRings.py:92
CSCTriggerPrimitivesBuilder::runME21Up_
bool runME21Up_
Definition: CSCTriggerPrimitivesBuilder.h:120
CSCTriggerPrimitivesBuilder::MAX_SUBSECTORS
Definition: CSCTriggerPrimitivesBuilder.h:84
CSCTriggerPrimitivesBuilder::min_sector
static const int min_sector
Definition: CSCTriggerPrimitivesBuilder.h:99
CSCTriggerPrimitivesBuilder::infoV
int infoV
Definition: CSCTriggerPrimitivesBuilder.h:107
GEMPadDigiClusterCollection
CSCTriggerPrimitivesBuilder::~CSCTriggerPrimitivesBuilder
~CSCTriggerPrimitivesBuilder()
Definition: CSCTriggerPrimitivesBuilder.cc:79
CSCTriggerPrimitivesBuilder::MAX_CHAMBERS
Definition: CSCTriggerPrimitivesBuilder.h:84
CSCTriggerPrimitivesBuilder::disableME42_
bool disableME42_
Definition: CSCTriggerPrimitivesBuilder.h:116
edm::ParameterSet
Definition: ParameterSet.h:47
CSCTriggerPrimitivesBuilder::build
void build(const CSCBadChambers *badChambers, const CSCWireDigiCollection *wiredc, const CSCComparatorDigiCollection *compdc, const GEMPadDigiClusterCollection *gemPadClusters, CSCALCTDigiCollection &oc_alct, CSCCLCTDigiCollection &oc_clct, CSCALCTPreTriggerDigiCollection &oc_alctpretrigger, CSCCLCTPreTriggerDigiCollection &oc_clctpretrigger, CSCCLCTPreTriggerCollection &oc_pretrig, CSCCorrelatedLCTDigiCollection &oc_lct, CSCCorrelatedLCTDigiCollection &oc_sorted_lct, CSCShowerDigiCollection &oc_shower, CSCShowerDigiCollection &oc_shower_anode, GEMCoPadDigiCollection &oc_gemcopad)
Definition: CSCTriggerPrimitivesBuilder.cc:98
CSCTriggerPrimitivesBuilder
Definition: CSCTriggerPrimitivesBuilder.h:41
CSCTriggerPrimitivesBuilder::gem_g
const GEMGeometry * gem_g
Definition: CSCTriggerPrimitivesBuilder.h:136
CSCDetId
Definition: CSCDetId.h:26
CSCTriggerPrimitivesBuilder::CSCTriggerPrimitivesBuilder
CSCTriggerPrimitivesBuilder(const edm::ParameterSet &)
Definition: CSCTriggerPrimitivesBuilder.cc:20
CSCALCTDigiCollection
CSCTriggerPrimitivesBuilder::MAX_SECTORS
Definition: CSCTriggerPrimitivesBuilder.h:84
CSCComparatorDigiCollection
CSCCorrelatedLCTDigiCollection
AlCaHLTBitMon_QueryRunRegistry.string
string string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
CSCTriggerPrimitivesBuilder::trig_cscs
trig_cscs
Definition: CSCTriggerPrimitivesBuilder.h:84
CSCTriggerPrimitivesBuilder::runME11Up_
bool runME11Up_
Definition: CSCTriggerPrimitivesBuilder.h:119
CSCTriggerPrimitivesBuilder::MAX_STATIONS
Definition: CSCTriggerPrimitivesBuilder.h:84
CSCWireDigiCollection
CSCTriggerPrimitivesBuilder::min_chamber
static const int min_chamber
Definition: CSCTriggerPrimitivesBuilder.h:103
CSCALCTPreTriggerDigiCollection.h
CSCTriggerPrimitivesBuilder::csc_g
const CSCGeometry * csc_g
Definition: CSCTriggerPrimitivesBuilder.h:135
T
long double T
Definition: Basic3DVectorLD.h:48
CSCCLCTDigiCollection
CSCTriggerPrimitivesBuilder::runPhase2_
bool runPhase2_
Definition: CSCTriggerPrimitivesBuilder.h:113
CSCTriggerPrimitivesBuilder::min_station
static const int min_station
Definition: CSCTriggerPrimitivesBuilder.h:97
CSCComparatorDigiCollection.h
CSCALCTPreTriggerDigiCollection
S
Definition: CSCDBL1TPParametersExtended.h:16
CSCWireDigiCollection.h
GEMGeometry
Definition: GEMGeometry.h:24
CSCTriggerPrimitivesBuilder::setGEMGeometry
void setGEMGeometry(const GEMGeometry *g)
Definition: CSCTriggerPrimitivesBuilder.h:56
CSCTriggerPrimitivesBuilder::min_endcap
static const int min_endcap
Definition: CSCTriggerPrimitivesBuilder.h:95
CSCALCTDigiCollection.h
LogTrace
#define LogTrace(id)
Definition: MessageLogger.h:234
ParameterSet.h
CSCCLCTDigiCollection.h
CSCTriggerPrimitivesBuilder::setCSCGeometry
void setCSCGeometry(const CSCGeometry *g)
set CSC and GEM geometries for the matching needs
Definition: CSCTriggerPrimitivesBuilder.h:55
CSCTriggerPrimitivesBuilder::max_station
static const int max_station
Definition: CSCTriggerPrimitivesBuilder.h:98
submitPVValidationJobs.t
string t
Definition: submitPVValidationJobs.py:644
CSCTriggerPrimitivesBuilder::runME21ILT_
bool runME21ILT_
Definition: CSCTriggerPrimitivesBuilder.h:126
CSCBadChambers.h
g
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
CSCTriggerPrimitivesBuilder::runME11ILT_
bool runME11ILT_
Definition: CSCTriggerPrimitivesBuilder.h:123
CSCShowerDigiCollection.h