CMS 3D CMS Logo

GEMCSCSegmentBuilder.h
Go to the documentation of this file.
1 #ifndef GEMCSCSegment_GEMCSCSegmentBuilder_h
2 #define GEMCSCSegment_GEMCSCSegmentBuilder_h
3 
19 
22 
24 
31 
33 public:
35  CSCStationIndex(int region, int station, int ring, int chamber, int layer)
38 
39  int region() const { return _region; }
40  int station() const { return _station; }
41  int ring() const { return _ring; }
42  int chamber() const { return _chamber; }
43  int layer() const { return _layer; }
44 
45  bool operator<(const CSCStationIndex& cscind) const {
46  if (cscind.region() != this->region())
47  return cscind.region() < this->region();
48  else if (cscind.station() != this->station())
49  return cscind.station() < this->station();
50  else if (cscind.ring() != this->ring())
51  return cscind.ring() < this->ring();
52  else if (cscind.chamber() != this->chamber())
53  return cscind.chamber() < this->chamber();
54  else if (cscind.layer() != this->layer())
55  return cscind.layer() < this->layer();
56  return false;
57  }
58 
59 private:
60  int _region;
61  int _station;
62  int _ring;
63  int _chamber;
64  int _layer;
65 };
66 
68 
70 public:
71  explicit GEMCSCSegmentBuilder(const edm::ParameterSet&);
73  void build(const GEMRecHitCollection* rechits, const CSCSegmentCollection* cscsegments, GEMCSCSegmentCollection& oc);
74 
75  void setGeometry(const GEMGeometry* gemgeom, const CSCGeometry* cscgeom);
76  void LinkGEMRollsToCSCChamberIndex(const GEMGeometry* gemgeom, const CSCGeometry* cscgeom);
77 
78 protected:
79  std::map<CSCStationIndex, std::set<GEMDetId> > rollstoreCSC;
80 
81 private:
82  std::unique_ptr<GEMCSCSegmentAlgorithm> algo;
83  const bool enable_me21_ge21_;
86 };
87 
88 #endif
bool operator<(const CSCStationIndex &cscind) const
void LinkGEMRollsToCSCChamberIndex(const GEMGeometry *gemgeom, const CSCGeometry *cscgeom)
const CSCGeometry * cscgeom_
std::unique_ptr< GEMCSCSegmentAlgorithm > algo
GEMCSCSegmentBuilder(const edm::ParameterSet &)
std::map< CSCStationIndex, std::set< GEMDetId > > rollstoreCSC
void build(const GEMRecHitCollection *rechits, const CSCSegmentCollection *cscsegments, GEMCSCSegmentCollection &oc)
const GEMGeometry * gemgeom_
void setGeometry(const GEMGeometry *gemgeom, const CSCGeometry *cscgeom)
CSCStationIndex(int region, int station, int ring, int chamber, int layer)