#include <Alignment/CommonAlignmentProducer/interface/AlignmentCSCBeamHaloSelector.h>
Public Types | |
typedef std::vector< const reco::Track * > | Tracks |
Public Member Functions | |
AlignmentCSCBeamHaloSelector (const edm::ParameterSet &iConfig) | |
constructor | |
Tracks | select (const Tracks &tracks, const edm::Event &iEvent) const |
select tracks | |
~AlignmentCSCBeamHaloSelector () | |
destructor | |
Private Attributes | |
unsigned int | m_minHitsPerStation |
unsigned int | m_minStations |
Definition at line 14 of file AlignmentCSCBeamHaloSelector.h.
typedef std::vector<const reco::Track*> AlignmentCSCBeamHaloSelector::Tracks |
Definition at line 16 of file AlignmentCSCBeamHaloSelector.h.
AlignmentCSCBeamHaloSelector::AlignmentCSCBeamHaloSelector | ( | const edm::ParameterSet & | iConfig | ) |
constructor
Definition at line 14 of file AlignmentCSCBeamHaloSelector.cc.
References lat::endl(), m_minHitsPerStation, and m_minStations.
00015 : m_minStations(iConfig.getParameter<unsigned int>("minStations")) 00016 , m_minHitsPerStation(iConfig.getParameter<unsigned int>("minHitsPerStation")) 00017 { 00018 edm::LogInfo("AlignmentCSCBeamHaloSelector") 00019 << "Acceptable tracks must have at least " << m_minHitsPerStation << " hits in " << m_minStations << " different CSC stations." << std::endl; 00020 }
AlignmentCSCBeamHaloSelector::~AlignmentCSCBeamHaloSelector | ( | ) |
AlignmentCSCBeamHaloSelector::Tracks AlignmentCSCBeamHaloSelector::select | ( | const Tracks & | tracks, | |
const edm::Event & | iEvent | |||
) | const |
select tracks
Definition at line 29 of file AlignmentCSCBeamHaloSelector.cc.
References MuonSubdetId::CSC, CSCDetId::endcap(), m_minHitsPerStation, m_minStations, DetId::Muon, HLT_VtxMuL3::result, CSCDetId::station(), and track.
Referenced by CSCBeamHaloConfigSelector::select().
00029 { 00030 Tracks result; 00031 00032 for (Tracks::const_iterator track = tracks.begin(); track != tracks.end(); ++track) { 00033 std::map<int, unsigned int> station_map; 00034 00035 for (trackingRecHit_iterator hit = (*track)->recHitsBegin(); hit != (*track)->recHitsEnd(); ++hit) { 00036 DetId id = (*hit)->geographicalId(); 00037 if (id.det() == DetId::Muon && id.subdetId() == MuonSubdetId::CSC) { 00038 CSCDetId cscid(id.rawId()); 00039 int station = (cscid.endcap() == 1 ? 1 : -1) * cscid.station(); 00040 00041 std::map<int, unsigned int>::const_iterator station_iter = station_map.find(station); 00042 if (station_iter == station_map.end()) { 00043 station_map[station] = 0; 00044 } 00045 station_map[station]++; 00046 } // end if it's a CSC hit 00047 } // end loop over hits 00048 00049 unsigned int stations = 0; 00050 for (std::map<int, unsigned int>::const_iterator station_iter = station_map.begin(); station_iter != station_map.end(); ++station_iter) { 00051 if (station_iter->second > m_minHitsPerStation) stations++; 00052 } 00053 if (stations >= m_minStations) { 00054 result.push_back(*track); 00055 } 00056 } // end loop over tracks 00057 00058 return result; 00059 }
unsigned int AlignmentCSCBeamHaloSelector::m_minHitsPerStation [private] |
Definition at line 29 of file AlignmentCSCBeamHaloSelector.h.
Referenced by AlignmentCSCBeamHaloSelector(), and select().
unsigned int AlignmentCSCBeamHaloSelector::m_minStations [private] |
Definition at line 28 of file AlignmentCSCBeamHaloSelector.h.
Referenced by AlignmentCSCBeamHaloSelector(), and select().