CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
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 {
18  edm::LogInfo("AlignmentCSCBeamHaloSelector")
19  << "Acceptable tracks must have at least " << m_minHitsPerStation << " hits in " << m_minStations << " different CSC stations." << std::endl;
20 }
21 
22 // destructor -----------------------------------------------------------------
23 
25 
26 // do selection ---------------------------------------------------------------
27 
30  Tracks result;
31 
32  for (Tracks::const_iterator track = tracks.begin(); track != tracks.end(); ++track) {
33  std::map<int, unsigned int> station_map;
34 
35  for (trackingRecHit_iterator hit = (*track)->recHitsBegin(); hit != (*track)->recHitsEnd(); ++hit) {
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(); station_iter != station_map.end(); ++station_iter) {
51  if (station_iter->second > m_minHitsPerStation) stations++;
52  }
53  if (stations >= m_minStations) {
54  result.push_back(*track);
55  }
56  } // end loop over tracks
57 
58  return result;
59 }
AlignmentCSCBeamHaloSelector(const edm::ParameterSet &iConfig)
constructor
std::vector< const reco::Track * > Tracks
Tracks select(const Tracks &tracks, const edm::Event &iEvent) const
select tracks
int endcap() const
Definition: CSCDetId.h:95
int iEvent
Definition: GenABIO.cc:243
static const int CSC
Definition: MuonSubdetId.h:15
tuple result
Definition: query.py:137
Definition: DetId.h:20
tuple tracks
Definition: testEve_cfg.py:39
int station() const
Definition: CSCDetId.h:88