CMS 3D CMS Logo

AlignmentCSCBeamHaloSelector.cc
Go to the documentation of this file.
2 
5 
11 
12 // constructor ----------------------------------------------------------------
13 
15  : m_minStations(iConfig.getParameter<unsigned int>("minStations")),
16  m_minHitsPerStation(iConfig.getParameter<unsigned int>("minHitsPerStation")) {
17  edm::LogInfo("AlignmentCSCBeamHaloSelector")
18  << "Acceptable tracks must have at least " << m_minHitsPerStation << " hits in " << m_minStations
19  << " different CSC stations." << std::endl;
20 }
21 
22 // destructor -----------------------------------------------------------------
23 
25 
26 // do selection ---------------------------------------------------------------
27 
29  const edm::Event &iEvent) const {
30  Tracks result;
31 
32  for (auto const &track : tracks) {
33  std::map<int, unsigned int> station_map;
34 
35  for (auto const &hit : track->recHits()) {
36  DetId id = hit->geographicalId();
37  if (id.det() == DetId::Muon && id.subdetId() == MuonSubdetId::CSC) {
38  CSCDetId cscid(id.rawId());
39  int station = (cscid.endcap() == 1 ? 1 : -1) * cscid.station();
40 
41  std::map<int, unsigned int>::const_iterator station_iter = station_map.find(station);
42  if (station_iter == station_map.end()) {
43  station_map[station] = 0;
44  }
45  station_map[station]++;
46  } // end if it's a CSC hit
47  } // end loop over hits
48 
49  unsigned int stations = 0;
50  for (std::map<int, unsigned int>::const_iterator station_iter = station_map.begin();
51  station_iter != station_map.end();
52  ++station_iter) {
53  if (station_iter->second > m_minHitsPerStation)
54  stations++;
55  }
56  if (stations >= m_minStations) {
57  result.push_back(track);
58  }
59  } // end loop over tracks
60 
61  return result;
62 }
Tracks select(const Tracks &tracks, const edm::Event &iEvent) const
select tracks
int endcap() const
Definition: CSCDetId.h:93
int iEvent
Definition: GenABIO.cc:224
Definition: DetId.h:18
int station() const
Definition: CSCDetId.h:86
static constexpr int CSC
Definition: MuonSubdetId.h:13
AlignmentCSCBeamHaloSelector(const edm::ParameterSet &iConfig, edm::ConsumesCollector &iC)
constructor
std::vector< const reco::Track * > Tracks