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