CMS 3D CMS Logo

CSCMuonPortCard.h
Go to the documentation of this file.
1 #ifndef L1Trigger_CSCTriggerPrimitives_CSCMuonPortCard_h
2 #define L1Trigger_CSCTriggerPrimitives_CSCMuonPortCard_h
3 
4 //-----------------------------------------------------------------------------
5 //
6 // Class: CSCMuonPortCard
7 //
8 // Description:
9 // Simulates the functionality of the Muon Port Card (MPC). Each MPC
10 // is responsible for 9 Trigger Mother Boards (TMBs). It takes the up to
11 // 18 LCTs (2/TMB) in each (sub)sector every bunch crossing, sorts them,
12 // selects up to three best, and puts them into an output collection.
13 //
14 // Author List: Benn Tannenbaum 30 August 1999.
15 // Based on code by Nick Wisniewski.
16 //
17 //
18 // Modifications: Numerous later improvements by Jason Mumford and
19 // Slava Valuev (see cvs in ORCA).
20 // Porting/reworking from ORCA by L. Gray (UF), June 2006.
21 //
22 // Update for Run-II data taking by Sven Dildick (TAMU), May 2016.
23 // CSC MPC sends all 18 stubs from 9 TMBs. Stubs are no longer sorted by quality
24 // Invalid or low-quality stubs are not removed either.
25 //
26 //-----------------------------------------------------------------------------
27 
33 
34 #include <vector>
35 
37 public:
39 
40  CSCMuonPortCard(unsigned endcap, unsigned station, unsigned sector, const edm::ParameterSet& conf);
41 
43 
44  // clear the stub vector
45  void clear();
46 
47  // Method to load the content of the digi container into a trigger
48  // container. This allows us to sort per BX more easily.
49  void loadLCTs(const CSCCorrelatedLCTDigiCollection& thedigis);
50 
51  // Method to sort all Correlated LCTs generated by the TMB.
52  void sortLCTs();
53 
54  // Method to sort all Correlated LCTs generated by the TMB in a subsector and BX
55  void sortLCTs(const unsigned subsector, const int bx);
56 
57  // Returns a vector of TrackStubs indexed by [sorting]
58  std::vector<csctf::TrackStub> getLCTs() const { return selectedStubs_; }
59 
60 private:
62  unsigned theEndcap;
63  unsigned theStation;
64  unsigned theSector;
65 
66  // internal stubs
68 
69  // selected stubs
70  std::vector<csctf::TrackStub> selectedStubs_;
71 
72  // CSC expert options
76  unsigned max_stubs_;
77 
78  int minBX_, maxBX_; // min and max BX to sort.
79 
81 };
82 
83 #endif
std::vector< csctf::TrackStub > getLCTs() const
void loadLCTs(const CSCCorrelatedLCTDigiCollection &thedigis)
bool drop_low_quality_stubs_
std::string vmeName_
CSCTriggerContainer< csctf::TrackStub > TrackStubList
CSCTriggerContainer< csctf::TrackStub > stubs_
std::vector< csctf::TrackStub > selectedStubs_