173 const int N_TriggerPaths =
hltPaths_.size();
177 bool Fired_Signal_Trigger[100] = {
false};
178 bool Fired_Control_Trigger[100] = {
false};
184 double DilepMass = 0.;
186 double vertex_X = 100.;
187 double vertex_Y = 100.;
188 double vertex_Z = 100.;
206 if (!fake && numberTracks > 3) {
221 int N_Triggers = trigResults->
size();
225 for (
int i_Trig = 0; i_Trig < N_Triggers; ++i_Trig) {
229 for (
int i = 0;
i < N_TriggerPaths;
i++) {
238 for (
int j = 0;
j < N_SignalPaths; ++
j) {
240 Fired_Signal_Trigger[
j] =
true;
243 for (
int k = 0;
k < N_ControlPaths; ++
k) {
245 Fired_Control_Trigger[
k] =
true;
258 reco::MuonCollection::const_iterator
muon;
260 if (!
muons.failedToGet()) {
263 N_leptons = N_leptons +
muons->size();
266 float N_muons =
muons->size();
267 float Q_muon =
muon->charge();
271 double track_X = 100.;
272 double track_Y = 100.;
273 double track_Z = 100.;
275 if (
muon->isGlobalMuon()) {
278 track_X =
track->vx();
279 track_Y =
track->vy();
280 track_Z =
track->vz();
301 double muonCombRelIso = 1.;
303 if (
muon->pt() != 0.)
329 reco::GsfElectronCollection::const_iterator elec;
331 if (!
elecs.failedToGet()) {
334 N_leptons = N_leptons +
elecs->size();
336 for (elec =
elecs->begin(); elec !=
elecs->end(); ++elec) {
337 float N_elecs =
elecs->size();
338 float Q_elec = elec->charge();
339 float HoverE = elec->hcalOverEcal();
345 double track_X = 100.;
346 double track_Y = 100.;
347 double track_Z = 100.;
351 track_X =
track->vx();
352 track_Y =
track->vy();
353 track_Z =
track->vz();
372 double elecCombRelIso = 1.;
374 if (elec->et() != 0.)
401 reco::MuonCollection::const_reference mu1 =
muons->at(0);
402 reco::MuonCollection::const_reference mu2 =
muons->at(1);
404 DilepMass =
sqrt((mu1.energy() + mu2.energy()) * (mu1.energy() + mu2.energy()) -
405 (mu1.px() + mu2.px()) * (mu1.px() + mu2.px()) - (mu1.py() + mu2.py()) * (mu1.py() + mu2.py()) -
406 (mu1.pz() + mu2.pz()) * (mu1.pz() + mu2.pz()));
410 if (mu1.charge() * mu2.charge() < 0.) {
427 for (
int k = 0;
k < N_SignalPaths; ++
k) {
428 if (Fired_Signal_Trigger[
k] && Fired_Control_Trigger[
k])
431 if (Fired_Control_Trigger[
k])
445 if (mu1.charge() * mu2.charge() > 0.) {
457 if (N_iso_el > 0 && N_iso_mu > 0) {
465 reco::MuonCollection::const_reference mu1 =
muons->at(0);
466 reco::GsfElectronCollection::const_reference el1 =
elecs->at(0);
468 DilepMass =
sqrt((mu1.energy() + el1.energy()) * (mu1.energy() + el1.energy()) -
469 (mu1.px() + el1.px()) * (mu1.px() + el1.px()) - (mu1.py() + el1.py()) * (mu1.py() + el1.py()) -
470 (mu1.pz() + el1.pz()) * (mu1.pz() + el1.pz()));
474 if (mu1.charge() * el1.charge() < 0.) {
486 for (elec =
elecs->begin(); elec !=
elecs->end(); ++elec) {
497 for (
int k = 0;
k < N_SignalPaths; ++
k) {
498 if (Fired_Signal_Trigger[
k] && Fired_Control_Trigger[
k])
501 if (Fired_Control_Trigger[
k])
515 if (mu1.charge() * el1.charge() > 0.) {
535 reco::GsfElectronCollection::const_reference el1 =
elecs->at(0);
536 reco::GsfElectronCollection::const_reference el2 =
elecs->at(1);
538 DilepMass =
sqrt((el1.energy() + el2.energy()) * (el1.energy() + el2.energy()) -
539 (el1.px() + el2.px()) * (el1.px() + el2.px()) - (el1.py() + el2.py()) * (el1.py() + el2.py()) -
540 (el1.pz() + el2.pz()) * (el1.pz() + el2.pz()));
544 if (el1.charge() * el2.charge() < 0.) {
550 for (elec =
elecs->begin(); elec !=
elecs->end(); ++elec) {
561 for (
int k = 0;
k < N_SignalPaths; ++
k) {
562 if (Fired_Signal_Trigger[
k] && Fired_Control_Trigger[
k])
565 if (Fired_Control_Trigger[
k])
579 if (el1.charge() * el2.charge() > 0.) {
bool accept() const
Has at least one path accepted the event?
MonitorElement * Nelecs_charge_
std::array< float, 7 > hcalRecHitSumEt
MonitorElement * dimassRC_
edm::TriggerNames const & triggerNames(edm::TriggerResults const &triggerResults) const override
MonitorElement * D_phi_muons_
MonitorElement * D_phi_lepts_
MonitorElement * dimassWC_LOG10_
float sumPt
sum-pt of tracks
MonitorElement * HoverE_elecs_
MonitorElement * D_eta_muons_
MonitorElement * D_phi_elecs_
std::vector< std::string > hltPaths_trig_
edm::EDGetTokenT< reco::GsfElectronCollection > elecs_
MonitorElement * phi_elecs_
MonitorElement * Nmuons_charge_
edm::EDGetTokenT< reco::VertexCollection > vertex_
MonitorElement * MuIso_sumPt03_
MonitorElement * eta_muons_
T const * product() const
MonitorElement * ElecIso_cal_
bool getByToken(EDGetToken token, Handle< PROD > &result) const
MonitorElement * MuIso_nTracks03_
MonitorElement * eta_elecs_
edm::EDGetTokenT< reco::MuonCollection > muons_
muons
the two sets of parameters below are mutually exclusive, depending if RECO or ALCARECO is used the us...
MonitorElement * dimassRC_LOGX_
MonitorElement * D_eta_elecs_
MonitorElement * TriggerEff_
MonitorElement * MuIso_hoEt03_
unsigned int size() const
Get number of paths stored.
MonitorElement * Ntracks_
MonitorElement * phi_muons_
int nJets
number of jets in the cone
Abs< T >::type abs(const T &t)
MonitorElement * D_eta_lepts_
MonitorElement * Nmuons_iso_
MonitorElement * VxVy_muons_
virtual void setBinLabel(int bin, const std::string &label, int axis=1)
set bin label for x, y or z axis (axis=1, 2, 3 respectively)
MonitorElement * ElecIso_trk_
int nTracks
number of tracks in the cone (excluding veto region)
MonitorElement * pT_elecs_
MonitorElement * Vz_muons_
virtual void setBinContent(int binx, double content)
set content of bin (1-D)
MonitorElement * ElecIso_CombRelIso_
std::vector< std::string > hltPaths_
MonitorElement * dimassWC_
MonitorElement * dimassWC_LOGX_
edm::EDGetTokenT< edm::TriggerResults > triggerResults_
MonitorElement * MuIso_nJets03_
std::vector< std::string > hltPaths_sig_
MonitorElement * dimassRC_LOG10_
MonitorElement * MuIso_emEt03_
MonitorElement * pT_muons_
primaryVertex
hltOfflineBeamSpot for HLTMON
MonitorElement * Nelecs_iso_
MonitorElement * MuIso_hadEt03_
MonitorElement * MuIso_CombRelIso03_