231 bool passed_electron_HLT =
true;
232 bool passed_muon_HLT =
true;
241 int vertex_number = vertexCollection.size();
242 VertexCollection::const_iterator
v = vertexCollection.begin();
243 double vertex_chi2 = v->normalizedChi2();
244 double vertex_d0 =
sqrt(v->x() * v->x() + v->y() * v->y());
246 double vertex_numTrks = v->tracksSize();
247 double vertex_sumTrks = 0.0;
250 vertex_sumTrks += (*vertex_curTrack)->pt();
265 if (electronCollection.
isValid()) {
266 int posEle = 0, negEle = 0;
269 if (passed_electron_HLT) {
270 for (reco::GsfElectronCollection::const_iterator recoElectron = electronCollection->begin();
271 recoElectron != electronCollection->end();
278 if (recoElectron->charge() == 1) {
280 }
else if (recoElectron->charge() == -1) {
292 nEle = posEle + negEle;
298 unsigned int eleCollectionSize = electronCollection->size();
299 for (
unsigned int i = 0;
i < eleCollectionSize;
i++) {
301 double pt = ele.
pt();
303 for (
unsigned int j =
i + 1;
j < eleCollectionSize;
j++) {
305 double pt2 = ele2.
pt();
308 ele.
px() + ele2.
px(), ele.
py() + ele2.
py(), ele.
pz() + ele2.
pz(), ele.
p() + ele2.
p());
322 if (muonCollection.
isValid()) {
324 int posMu = 0, negMu = 0;
325 TLorentzVector m1, m2;
326 if (passed_muon_HLT) {
327 for (reco::MuonCollection::const_iterator
recoMuon = muonCollection->begin();
recoMuon != muonCollection->end();
339 }
else if (
recoMuon->isGlobalMuon()) {
343 }
else if (
recoMuon->isTrackerMuon() &&
348 }
else if (
recoMuon->isStandAloneMuon()) {
355 }
else if (
recoMuon->charge() == -1) {
366 unsigned int muonCollectionSize = muonCollection->size();
367 for (
unsigned int i = 0;
i < muonCollectionSize;
i++) {
368 const Muon&
mu = muonCollection->at(
i);
372 for (
unsigned int j =
i + 1;
j < muonCollectionSize;
j++) {
373 const Muon& mu2 = muonCollection->at(
j);
374 double pt2 = mu2.
pt();
379 mu.
px() + mu2.
px(), mu.
py() + mu2.
py(), mu.
pz() + mu2.
pz(), mu.
p() + mu2.
p());
385 mu.
px() + mu2.
px(), mu.
py() + mu2.
py(), mu.
pz() + mu2.
pz(), mu.
p() + mu2.
p());
391 mu.
px() + mu2.
px(), mu.
py() + mu2.
py(), mu.
pz() + mu2.
pz(), mu.
p() + mu2.
p());
405 if (caloJetCollection.
isValid()) {
410 float jet2_et = -9.0;
413 for (CaloJetCollection::const_iterator i_calojet = caloJetCollection->begin();
414 i_calojet != caloJetCollection->end();
416 float jet_current_et = i_calojet->et();
423 if (jet_current_et < 15)
426 if (jet_current_et > jet_et) {
430 jet_et = i_calojet->et();
434 }
else if (jet_current_et > jet2_et) {
435 jet2_et = i_calojet->et();
451 if (caloMETCollection.
isValid()) {
452 float caloMet = caloMETCollection->begin()->et();
453 float caloMet_phi = caloMETCollection->begin()->phi();
459 if (pfMETCollection.
isValid()) {
460 float pfMet = pfMETCollection->begin()->et();
461 float pfMet_phi = pfMETCollection->begin()->phi();
469 if (nMu + nEle > 2 && nMu + nEle < 10) {
470 if (nMu == 0 && nEle == 3)
472 if (nMu == 0 && nEle == 4)
474 if (nMu == 0 && nEle == 5)
476 if (nMu == 0 && nEle == 6)
478 if (nMu == 0 && nEle == 7)
480 if (nMu == 0 && nEle == 8)
482 if (nMu == 0 && nEle == 9)
484 if (nMu == 1 && nEle == 2)
486 if (nMu == 1 && nEle == 3)
488 if (nMu == 1 && nEle == 4)
490 if (nMu == 1 && nEle == 5)
492 if (nMu == 1 && nEle == 6)
494 if (nMu == 1 && nEle == 7)
496 if (nMu == 1 && nEle == 8)
498 if (nMu == 2 && nEle == 1)
500 if (nMu == 2 && nEle == 2)
502 if (nMu == 2 && nEle == 3)
504 if (nMu == 2 && nEle == 4)
506 if (nMu == 2 && nEle == 5)
508 if (nMu == 2 && nEle == 6)
510 if (nMu == 2 && nEle == 7)
512 if (nMu == 3 && nEle == 0)
514 if (nMu == 3 && nEle == 1)
516 if (nMu == 3 && nEle == 2)
518 if (nMu == 3 && nEle == 3)
520 if (nMu == 3 && nEle == 4)
522 if (nMu == 3 && nEle == 5)
524 if (nMu == 3 && nEle == 6)
526 if (nMu == 4 && nEle == 0)
528 if (nMu == 4 && nEle == 1)
530 if (nMu == 4 && nEle == 2)
532 if (nMu == 4 && nEle == 3)
534 if (nMu == 4 && nEle == 4)
536 if (nMu == 4 && nEle == 5)
538 if (nMu == 5 && nEle == 0)
540 if (nMu == 5 && nEle == 1)
542 if (nMu == 5 && nEle == 2)
544 if (nMu == 5 && nEle == 3)
546 if (nMu == 5 && nEle == 4)
548 if (nMu == 6 && nEle == 0)
550 if (nMu == 6 && nEle == 1)
552 if (nMu == 6 && nEle == 2)
554 if (nMu == 6 && nEle == 3)
556 if (nMu == 7 && nEle == 0)
558 if (nMu == 7 && nEle == 1)
560 if (nMu == 7 && nEle == 2)
562 if (nMu == 8 && nEle == 0)
564 if (nMu == 8 && nEle == 1)
566 if (nMu == 9 && nEle == 0)
569 if ((nMu + nEle) >= 10)
570 LogDebug(
"HiggsDQM") <<
"WARNING: " << nMu + nEle <<
" leptons in this event: run=" <<
e.id().run()
571 <<
", event=" <<
e.id().event() <<
"\n";
edm::EDGetTokenT< reco::CaloMETCollection > theCaloMETCollectionToken_
edm::EDGetTokenT< reco::GsfElectronCollection > theElectronCollectionToken_
MonitorElement * h_mPhi_TM
MonitorElement * h_mPt_TM
MonitorElement * h_vertex_numTrks
MonitorElement * h_mEta_GMTM
double px() const final
x coordinate of momentum vector
MonitorElement * h_mPhi_GM
MonitorElement * h_mEta_TM
edm::EDGetTokenT< reco::VertexCollection > vertexToken_
double pt() const final
transverse momentum
std::vector< Vertex > VertexCollection
collection of Vertex objects
MonitorElement * h_mPt_STAM
MonitorElement * h_vertex_d0
bool isTrackerMuon() const override
MonitorElement * h_dimumass_GMGM
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
MonitorElement * h_jet_count
MonitorElement * h_mPt_GMPT
bool isGlobalMuon() const override
double pz() const final
z coordinate of momentum vector
MonitorElement * h_pfMet_phi
float segmentCompatibility(const reco::Muon &muon, reco::Muon::ArbitrationType arbitrationType=reco::Muon::SegmentAndTrackArbitration)
MonitorElement * h_mPhi_GMPT
edm::EDGetTokenT< reco::CaloJetCollection > theCaloJetCollectionToken_
MonitorElement * h_jet_et
bool isGoodMuon(const reco::Muon &muon, SelectionType type, reco::Muon::ArbitrationType arbitrationType=reco::Muon::SegmentAndTrackArbitration)
main GoodMuon wrapper call
double p() const final
magnitude of momentum vector
T const * product() const
MonitorElement * h_eMultiplicity
MonitorElement * h_vertex_chi2
MonitorElement * h_vertex_number
MonitorElement * h_dimumass_GMTM
double py() const final
y coordinate of momentum vector
MonitorElement * h_mEta_GMPT
MonitorElement * h_vertex_sumTrks
MonitorElement * h_caloMet
MonitorElement * h_mPt_GMTM
MonitorElement * h_caloMet_phi
MonitorElement * h_mPhi_STAM
edm::EDGetTokenT< reco::PFMETCollection > thePfMETCollectionToken_
MonitorElement * h_mEta_STAM
MonitorElement * h_mEta_GM
MonitorElement * h_dielemass
MonitorElement * h_mPt_GM
MonitorElement * h_mPhi_GMTM
std::vector< TrackBaseRef >::const_iterator trackRef_iterator
The iteratator for the vector<TrackRef>
MonitorElement * h_dimumass_TMTM
edm::EDGetTokenT< reco::MuonCollection > theMuonCollectionToken_
MonitorElement * h_lepcounts
MonitorElement * h_mMultiplicity