CMS 3D CMS Logo

GEMClusterProcessor.h
Go to the documentation of this file.
1 #ifndef L1Trigger_CSCTriggerPrimitives_GEMClusterProcessor_h
2 #define L1Trigger_CSCTriggerPrimitives_GEMClusterProcessor_h
3 
16 
17 #include <vector>
18 
20 public:
22  GEMClusterProcessor(int region, unsigned station, unsigned chamber, const edm::ParameterSet& conf);
23 
25  void clear();
26 
28  void run(const GEMPadDigiClusterCollection*);
29 
30  /* Returns clusters for a given BX */
31  std::vector<GEMInternalCluster> getClusters(int bx) const;
32 
33  /* Returns clusters around deltaBX for a given BX */
34  std::vector<GEMInternalCluster> getClusters(int bx, int deltaBX) const;
35 
36  /* Returns coincidence clusters for a given BX */
37  std::vector<GEMInternalCluster> getCoincidenceClusters(int bx) const;
38 
40  std::vector<GEMCoPadDigi> readoutCoPads() const;
41 
43 
44 private:
45  // put coincidence clusters in GEMInternalCluster vector
47 
48  // put single clusters in GEMInternalCluster vector who are not
49  // part of any coincidence cluster
51 
52  // translate the cluster central pad numbers into 1/8-strip number,
53  // and roll numbers into min and max wiregroup numbers
54  // for matching with CSC trigger primitives
56 
58  const int region_;
59  const int station_;
60  const int chamber_;
61  bool isEven_;
62 
63  unsigned int maxDeltaPad_;
64  unsigned int maxDeltaBX_;
65  unsigned int maxDeltaRoll_;
66 
68 
69  // output collection
70  std::vector<GEMInternalCluster> clusters_;
71 
72  // strings to paths of LUTs
73  std::vector<std::string> padToHsME1aFiles_;
74  std::vector<std::string> padToHsME1bFiles_;
75  std::vector<std::string> padToHsME21Files_;
76 
77  std::vector<std::string> padToEsME1aFiles_;
78  std::vector<std::string> padToEsME1bFiles_;
79  std::vector<std::string> padToEsME21Files_;
80 
81  std::vector<std::string> rollToMaxWgME11Files_;
82  std::vector<std::string> rollToMinWgME11Files_;
83  std::vector<std::string> rollToMaxWgME21Files_;
84  std::vector<std::string> rollToMinWgME21Files_;
85 
86  // unique pointers to the luts
87  std::unique_ptr<CSCLUTReader> GEMCSCLUT_pad_hs_ME1a_even_;
88  std::unique_ptr<CSCLUTReader> GEMCSCLUT_pad_hs_ME1a_odd_;
89  std::unique_ptr<CSCLUTReader> GEMCSCLUT_pad_hs_ME1b_even_;
90  std::unique_ptr<CSCLUTReader> GEMCSCLUT_pad_hs_ME1b_odd_;
91  std::unique_ptr<CSCLUTReader> GEMCSCLUT_pad_hs_ME21_even_;
92  std::unique_ptr<CSCLUTReader> GEMCSCLUT_pad_hs_ME21_odd_;
93 
94  std::unique_ptr<CSCLUTReader> GEMCSCLUT_pad_es_ME1a_even_;
95  std::unique_ptr<CSCLUTReader> GEMCSCLUT_pad_es_ME1a_odd_;
96  std::unique_ptr<CSCLUTReader> GEMCSCLUT_pad_es_ME1b_even_;
97  std::unique_ptr<CSCLUTReader> GEMCSCLUT_pad_es_ME1b_odd_;
98  std::unique_ptr<CSCLUTReader> GEMCSCLUT_pad_es_ME21_even_;
99  std::unique_ptr<CSCLUTReader> GEMCSCLUT_pad_es_ME21_odd_;
100 
101  std::unique_ptr<CSCLUTReader> GEMCSCLUT_roll_l1_max_wg_ME11_even_;
102  std::unique_ptr<CSCLUTReader> GEMCSCLUT_roll_l1_max_wg_ME11_odd_;
103  std::unique_ptr<CSCLUTReader> GEMCSCLUT_roll_l1_min_wg_ME11_even_;
104  std::unique_ptr<CSCLUTReader> GEMCSCLUT_roll_l1_min_wg_ME11_odd_;
105  std::unique_ptr<CSCLUTReader> GEMCSCLUT_roll_l1_max_wg_ME21_even_;
106  std::unique_ptr<CSCLUTReader> GEMCSCLUT_roll_l1_max_wg_ME21_odd_;
107  std::unique_ptr<CSCLUTReader> GEMCSCLUT_roll_l1_min_wg_ME21_even_;
108  std::unique_ptr<CSCLUTReader> GEMCSCLUT_roll_l1_min_wg_ME21_odd_;
109 
110  std::unique_ptr<CSCLUTReader> GEMCSCLUT_roll_l2_max_wg_ME11_even_;
111  std::unique_ptr<CSCLUTReader> GEMCSCLUT_roll_l2_max_wg_ME11_odd_;
112  std::unique_ptr<CSCLUTReader> GEMCSCLUT_roll_l2_min_wg_ME11_even_;
113  std::unique_ptr<CSCLUTReader> GEMCSCLUT_roll_l2_min_wg_ME11_odd_;
114  std::unique_ptr<CSCLUTReader> GEMCSCLUT_roll_l2_max_wg_ME21_even_;
115  std::unique_ptr<CSCLUTReader> GEMCSCLUT_roll_l2_max_wg_ME21_odd_;
116  std::unique_ptr<CSCLUTReader> GEMCSCLUT_roll_l2_min_wg_ME21_even_;
117  std::unique_ptr<CSCLUTReader> GEMCSCLUT_roll_l2_min_wg_ME21_odd_;
118 };
119 
120 #endif
GEMClusterProcessor::padToHsME1bFiles_
std::vector< std::string > padToHsME1bFiles_
Definition: GEMClusterProcessor.h:74
GEMClusterProcessor::GEMCSCLUT_roll_l2_max_wg_ME11_even_
std::unique_ptr< CSCLUTReader > GEMCSCLUT_roll_l2_max_wg_ME11_even_
Definition: GEMClusterProcessor.h:110
GEMClusterProcessor::readoutCoPads
std::vector< GEMCoPadDigi > readoutCoPads() const
Definition: GEMClusterProcessor.cc:526
GEMClusterProcessor::GEMCSCLUT_pad_hs_ME1a_even_
std::unique_ptr< CSCLUTReader > GEMCSCLUT_pad_hs_ME1a_even_
Definition: GEMClusterProcessor.h:87
GEMClusterProcessor::rollToMinWgME21Files_
std::vector< std::string > rollToMinWgME21Files_
Definition: GEMClusterProcessor.h:84
GEMClusterProcessor::maxDeltaBX_
unsigned int maxDeltaBX_
Definition: GEMClusterProcessor.h:64
GEMClusterProcessor::GEMCSCLUT_roll_l1_min_wg_ME11_odd_
std::unique_ptr< CSCLUTReader > GEMCSCLUT_roll_l1_min_wg_ME11_odd_
Definition: GEMClusterProcessor.h:104
GEMClusterProcessor::addSingleClusters
void addSingleClusters(const GEMPadDigiClusterCollection *)
Definition: GEMClusterProcessor.cc:207
GEMClusterProcessor::GEMCSCLUT_pad_hs_ME1a_odd_
std::unique_ptr< CSCLUTReader > GEMCSCLUT_pad_hs_ME1a_odd_
Definition: GEMClusterProcessor.h:88
GEMClusterProcessor::GEMCSCLUT_roll_l1_max_wg_ME21_even_
std::unique_ptr< CSCLUTReader > GEMCSCLUT_roll_l1_max_wg_ME21_even_
Definition: GEMClusterProcessor.h:105
GEMClusterProcessor::clear
void clear()
Definition: GEMClusterProcessor.cc:79
GEMClusterProcessor::getClusters
std::vector< GEMInternalCluster > getClusters(int bx) const
Definition: GEMClusterProcessor.cc:95
GEMClusterProcessor
Definition: GEMClusterProcessor.h:19
GEMClusterProcessor::padToEsME21Files_
std::vector< std::string > padToEsME21Files_
Definition: GEMClusterProcessor.h:79
GEMClusterProcessor::GEMCSCLUT_roll_l1_max_wg_ME21_odd_
std::unique_ptr< CSCLUTReader > GEMCSCLUT_roll_l1_max_wg_ME21_odd_
Definition: GEMClusterProcessor.h:106
relativeConstraints.station
station
Definition: relativeConstraints.py:67
GEMClusterProcessor::rollToMinWgME11Files_
std::vector< std::string > rollToMinWgME11Files_
Definition: GEMClusterProcessor.h:82
GEMClusterProcessor::GEMCSCLUT_pad_es_ME1b_odd_
std::unique_ptr< CSCLUTReader > GEMCSCLUT_pad_es_ME1b_odd_
Definition: GEMClusterProcessor.h:97
GEMClusterProcessor::padToHsME21Files_
std::vector< std::string > padToHsME21Files_
Definition: GEMClusterProcessor.h:75
l1GtPatternGenerator_cfi.bx
bx
Definition: l1GtPatternGenerator_cfi.py:18
GEMClusterProcessor::hasGE21Geometry16Partitions
bool hasGE21Geometry16Partitions() const
Definition: GEMClusterProcessor.h:42
GEMClusterProcessor::clusters_
std::vector< GEMInternalCluster > clusters_
Definition: GEMClusterProcessor.h:70
GEMCoPadDigi.h
GEMInternalCluster.h
GEMClusterProcessor::GEMCSCLUT_roll_l2_min_wg_ME11_odd_
std::unique_ptr< CSCLUTReader > GEMCSCLUT_roll_l2_min_wg_ME11_odd_
Definition: GEMClusterProcessor.h:113
GEMClusterProcessor::padToHsME1aFiles_
std::vector< std::string > padToHsME1aFiles_
Definition: GEMClusterProcessor.h:73
GEMClusterProcessor::maxDeltaPad_
unsigned int maxDeltaPad_
Definition: GEMClusterProcessor.h:63
GEMClusterProcessor::run
void run(const GEMPadDigiClusterCollection *)
Definition: GEMClusterProcessor.cc:81
GEMClusterProcessor::GEMCSCLUT_roll_l1_max_wg_ME11_even_
std::unique_ptr< CSCLUTReader > GEMCSCLUT_roll_l1_max_wg_ME11_even_
Definition: GEMClusterProcessor.h:101
GEMPadDigiClusterCollection.h
GEMClusterProcessor::rollToMaxWgME11Files_
std::vector< std::string > rollToMaxWgME11Files_
Definition: GEMClusterProcessor.h:81
GEMClusterProcessor::GEMCSCLUT_roll_l2_min_wg_ME21_even_
std::unique_ptr< CSCLUTReader > GEMCSCLUT_roll_l2_min_wg_ME21_even_
Definition: GEMClusterProcessor.h:116
GEMClusterProcessor::GEMClusterProcessor
GEMClusterProcessor(int region, unsigned station, unsigned chamber, const edm::ParameterSet &conf)
Definition: GEMClusterProcessor.cc:7
GEMClusterProcessor::rollToMaxWgME21Files_
std::vector< std::string > rollToMaxWgME21Files_
Definition: GEMClusterProcessor.h:83
GEMClusterProcessor::GEMCSCLUT_roll_l1_min_wg_ME21_even_
std::unique_ptr< CSCLUTReader > GEMCSCLUT_roll_l1_min_wg_ME21_even_
Definition: GEMClusterProcessor.h:107
GEMClusterProcessor::GEMCSCLUT_pad_hs_ME21_even_
std::unique_ptr< CSCLUTReader > GEMCSCLUT_pad_hs_ME21_even_
Definition: GEMClusterProcessor.h:91
GEMClusterProcessor::GEMCSCLUT_roll_l1_min_wg_ME21_odd_
std::unique_ptr< CSCLUTReader > GEMCSCLUT_roll_l1_min_wg_ME21_odd_
Definition: GEMClusterProcessor.h:108
GEMClusterProcessor::GEMCSCLUT_roll_l2_max_wg_ME21_even_
std::unique_ptr< CSCLUTReader > GEMCSCLUT_roll_l2_max_wg_ME21_even_
Definition: GEMClusterProcessor.h:114
CSCLUTReader.h
GEMPadDigiClusterCollection
GEMClusterProcessor::GEMCSCLUT_pad_es_ME21_odd_
std::unique_ptr< CSCLUTReader > GEMCSCLUT_pad_es_ME21_odd_
Definition: GEMClusterProcessor.h:99
GEMClusterProcessor::GEMCSCLUT_roll_l2_max_wg_ME11_odd_
std::unique_ptr< CSCLUTReader > GEMCSCLUT_roll_l2_max_wg_ME11_odd_
Definition: GEMClusterProcessor.h:111
GEMClusterProcessor::maxDeltaRoll_
unsigned int maxDeltaRoll_
Definition: GEMClusterProcessor.h:65
GEMClusterProcessor::GEMCSCLUT_roll_l1_max_wg_ME11_odd_
std::unique_ptr< CSCLUTReader > GEMCSCLUT_roll_l1_max_wg_ME11_odd_
Definition: GEMClusterProcessor.h:102
edm::ParameterSet
Definition: ParameterSet.h:47
GEMClusterProcessor::GEMCSCLUT_pad_es_ME1a_even_
std::unique_ptr< CSCLUTReader > GEMCSCLUT_pad_es_ME1a_even_
Definition: GEMClusterProcessor.h:94
HLT_FULL_cff.region
region
Definition: HLT_FULL_cff.py:88286
GEMClusterProcessor::GEMCSCLUT_roll_l1_min_wg_ME11_even_
std::unique_ptr< CSCLUTReader > GEMCSCLUT_roll_l1_min_wg_ME11_even_
Definition: GEMClusterProcessor.h:103
GEMClusterProcessor::GEMCSCLUT_pad_es_ME1b_even_
std::unique_ptr< CSCLUTReader > GEMCSCLUT_pad_es_ME1b_even_
Definition: GEMClusterProcessor.h:96
GEMClusterProcessor::GEMCSCLUT_pad_hs_ME1b_odd_
std::unique_ptr< CSCLUTReader > GEMCSCLUT_pad_hs_ME1b_odd_
Definition: GEMClusterProcessor.h:90
GEMClusterProcessor::isEven_
bool isEven_
Definition: GEMClusterProcessor.h:61
GEMClusterProcessor::GEMCSCLUT_roll_l2_min_wg_ME21_odd_
std::unique_ptr< CSCLUTReader > GEMCSCLUT_roll_l2_min_wg_ME21_odd_
Definition: GEMClusterProcessor.h:117
GEMClusterProcessor::GEMCSCLUT_pad_hs_ME21_odd_
std::unique_ptr< CSCLUTReader > GEMCSCLUT_pad_hs_ME21_odd_
Definition: GEMClusterProcessor.h:92
GEMClusterProcessor::GEMCSCLUT_pad_hs_ME1b_even_
std::unique_ptr< CSCLUTReader > GEMCSCLUT_pad_hs_ME1b_even_
Definition: GEMClusterProcessor.h:89
GEMClusterProcessor::GEMCSCLUT_roll_l2_max_wg_ME21_odd_
std::unique_ptr< CSCLUTReader > GEMCSCLUT_roll_l2_max_wg_ME21_odd_
Definition: GEMClusterProcessor.h:115
GEMClusterProcessor::padToEsME1bFiles_
std::vector< std::string > padToEsME1bFiles_
Definition: GEMClusterProcessor.h:78
GEMClusterProcessor::GEMCSCLUT_roll_l2_min_wg_ME11_even_
std::unique_ptr< CSCLUTReader > GEMCSCLUT_roll_l2_min_wg_ME11_even_
Definition: GEMClusterProcessor.h:112
GEMClusterProcessor::doCoordinateConversion
void doCoordinateConversion()
Definition: GEMClusterProcessor.cc:250
GEMClusterProcessor::padToEsME1aFiles_
std::vector< std::string > padToEsME1aFiles_
Definition: GEMClusterProcessor.h:77
GEMClusterProcessor::chamber_
const int chamber_
Definition: GEMClusterProcessor.h:60
GEMPadDigiCollection.h
relativeConstraints.chamber
chamber
Definition: relativeConstraints.py:53
GEMClusterProcessor::region_
const int region_
Definition: GEMClusterProcessor.h:58
GEMClusterProcessor::station_
const int station_
Definition: GEMClusterProcessor.h:59
ParameterSet.h
GEMClusterProcessor::addCoincidenceClusters
void addCoincidenceClusters(const GEMPadDigiClusterCollection *)
Definition: GEMClusterProcessor.cc:134
GEMClusterProcessor::GEMCSCLUT_pad_es_ME21_even_
std::unique_ptr< CSCLUTReader > GEMCSCLUT_pad_es_ME21_even_
Definition: GEMClusterProcessor.h:98
GEMClusterProcessor::hasGE21Geometry16Partitions_
bool hasGE21Geometry16Partitions_
Definition: GEMClusterProcessor.h:67
GEMClusterProcessor::getCoincidenceClusters
std::vector< GEMInternalCluster > getCoincidenceClusters(int bx) const
Definition: GEMClusterProcessor.cc:121
GEMClusterProcessor::GEMCSCLUT_pad_es_ME1a_odd_
std::unique_ptr< CSCLUTReader > GEMCSCLUT_pad_es_ME1a_odd_
Definition: GEMClusterProcessor.h:95