Get the analysis.
112 VertexCollection::const_iterator privtx;
114 if (privtxs->begin() != privtxs->end()) {
115 privtx = privtxs->begin();
116 RefVtx = privtx->position();
118 RefVtx.SetXYZ(0., 0., 0.);
122 for (MuonCollection::const_iterator recoMu1 = muons->begin();
123 recoMu1 != muons->end(); ++recoMu1) {
125 if (recoMu1->isGlobalMuon() || recoMu1->isTrackerMuon() ||
126 recoMu1->isStandAloneMuon()) {
127 for (MuonCollection::const_iterator recoMu2 = recoMu1 + 1;
128 recoMu2 != muons->end(); ++recoMu2) {
131 if (recoMu1->isGlobalMuon() && recoMu2->isGlobalMuon()) {
137 if (((*recoMu1).charge() * (*recoMu2).charge()) < 0) {
159 if (recoMu1->isStandAloneMuon() && recoMu2->isStandAloneMuon() &&
160 fabs(recoMu1->outerTrack()->d0()) < 5 &&
161 fabs(recoMu1->outerTrack()->dz()) < 30 &&
162 fabs(recoMu2->outerTrack()->d0()) < 5 &&
163 fabs(recoMu2->outerTrack()->dz()) < 30) {
169 if (((*recoMu1).charge() * (*recoMu2).charge()) < 0) {
188 if (recoMu1->isTrackerMuon() && recoMu2->isTrackerMuon() &&
196 if (((*recoMu1).charge() * (*recoMu2).charge()) < 0) {
bool selGlobalMuon(const reco::Muon &recoMu)
bool getByToken(EDGetToken token, Handle< PROD > &result) const
edm::EDGetTokenT< reco::VertexCollection > vertex_
MonitorElement * global_background
MonitorElement * tracker_background
MonitorElement * diMuonMass_global
MonitorElement * glbSigCut
MonitorElement * diMuonMass_standalone
MonitorElement * trkSigCut
MonitorElement * standalone_background
MonitorElement * staBkgNoCut
std::vector< double > vec1
edm::EDGetTokenT< reco::MuonCollection > theMuonCollectionLabel_
MonitorElement * staSigNoCut
bool isGoodMuon(const reco::Muon &muon, SelectionType type, reco::Muon::ArbitrationType arbitrationType=reco::Muon::SegmentAndTrackArbitration)
main GoodMuon wrapper call
XYZVectorD XYZVector
spatial vector with cartesian internal representation
MonitorElement * trkBkgNoCut
MonitorElement * glbBkgNoCut
MonitorElement * diMuonMass_tracker
bool selTrackerMuon(const reco::Muon &recoMu)
float computeMass(const math::XYZVector &vec1, const math::XYZVector &vec2)
MonitorElement * trkSigNoCut
MonitorElement * glbSigNoCut