rivet is hosted by Hepforge, IPPP Durham

Rivet analyses reference

ATLAS_2011_I897002

1-lepton and 2-lepton search for first or second generation leptoquarks
Experiment: ATLAS (LHC)
Inspire ID: 897002
Status: OBSOLETE
Authors:
  • Angela Chen
References: Beams: p+ p+
Beam energies: (3500.0, 3500.0) GeV
Run details:
  • BSM signal events at 7000 GeV.

Single and dilepton search for first and second generation scalar leptoquarks by ATLAS at 7 TeV. Event counts in four signal regions (single lepton and dilepton for first and second generation) are implemented as one-bin histograms. Histograms for event transverse energy are implemented for dilepton signal regions and histograms for leptoquark mass are implemented for single lepton signal regions. Histograms for observables in six control regions are implemented.

Source code: ATLAS_2011_I897002.cc
  1// -*- C++ -*-
  2#include "Rivet/Analysis.hh"
  3#include "Rivet/Projections/FinalState.hh"
  4#include "Rivet/Projections/ChargedFinalState.hh"
  5#include "Rivet/Projections/VisibleFinalState.hh"
  6#include "Rivet/Projections/IdentifiedFinalState.hh"
  7#include "Rivet/Projections/VetoedFinalState.hh"
  8#include "Rivet/Projections/FastJets.hh"
  9
 10namespace Rivet {
 11
 12
 13  /// 1-lepton and 2-lepton search for first or second generation leptoquarks
 14  class ATLAS_2011_I897002 : public Analysis {
 15  public:
 16
 17    /// Constructor
 18    ATLAS_2011_I897002()
 19      : Analysis("ATLAS_2011_I897002"),
 20        // DEBUG
 21        count(0), vetoe(0), Njetscut(0), //dilept(0),
 22        candmumujj(0), candeejj(0), //onelept(0),
 23        eTmisscut(0), candmvjj(0), candevjj(0),
 24        mumujj(0), eejj(0),
 25        mTonelept(0), MLQonelept(0), MtLQonelept(0), Stvonelept(0),
 26        mTev(0), MLQev(0), MtLQev(0), Stvev(0),
 27        muvjj(0), evjj(0), emuvjj(0),
 28        cande(0), candmu(0),
 29        tmpe(0), tmpmu(0),
 30        mumuZCR(0), eeZCR(0),
 31        munuW2CR(0), munuttCR(0),
 32        enuW2CR(0), enuttCR(0)
 33    {    }
 34
 35
 36    /// Book histograms and initialize projections before the run
 37    void init() {
 38
 39      // projection to find the electrons
 40      IdentifiedFinalState elecs(Cuts::abseta < 2.47 && Cuts::pT > 20*GeV);
 41      elecs.acceptIdPair(PID::ELECTRON);
 42      declare(elecs, "elecs");
 43
 44      // veto region electrons
 45      Cut vetocut = Cuts::absetaIn(1.35, 1.52);
 46      IdentifiedFinalState veto_elecs(vetocut && Cuts::pT > 10*GeV);
 47      veto_elecs.acceptIdPair(PID::ELECTRON);
 48      declare(veto_elecs, "veto_elecs");
 49
 50      /// @todo Clean up DEBUG
 51      // projection to find all leptons
 52      IdentifiedFinalState all_mu_e;
 53      all_mu_e.acceptIdPair(PID::MUON);
 54      all_mu_e.acceptIdPair(PID::ELECTRON);
 55      declare(all_mu_e, "all_mu_e"); //debug
 56
 57      // projection to find the muons
 58      IdentifiedFinalState muons(Cuts::abseta < 2.4 && Cuts::pT > 20*GeV);
 59      muons.acceptIdPair(PID::MUON);
 60      declare(muons, "muons");
 61
 62      // Jet finder
 63      VetoedFinalState vfs;
 64      vfs.addVetoPairDetail(PID::MUON, 20*GeV, 7000*GeV);
 65      vfs.addVetoPairDetail(PID::ELECTRON, 20*GeV, 7000*GeV);
 66      declare(FastJets(vfs, JetAlg::ANTIKT, 0.4), "AntiKtJets04");
 67
 68      // all tracks (to do deltaR with leptons)
 69      declare(ChargedFinalState(Cuts::abseta < 3 && Cuts::pT > 0.5*GeV), "cfs");
 70
 71      // for pTmiss
 72      declare(VisibleFinalState(Cuts::abseta < 4.9), "vfs");
 73
 74      /// Book histograms
 75      book(_count_mumujj ,"count_2muons_dijet", 1, 0., 1.);
 76      book(_count_eejj   ,"count_2elecs_dijet", 1, 0., 1.);
 77      book(_count_muvjj  ,"count_muon_neutrino_dijet", 1, 0., 1.);
 78      book(_count_evjj   ,"count_elec_neutrino_dijet", 1, 0., 1.);
 79
 80      book(_hist_St_mumu ,"hist_mumujj_St", 10, 450., 1650.);
 81      book(_hist_St_ee   ,"hist_eejj_St", 10, 450., 1650.);
 82      book(_hist_MLQ_muv ,"hist_munujj_MLQ", 9, 150., 600.);
 83      book(_hist_MLQ_ev  ,"hist_enujj_MLQ", 9, 150., 600.);
 84
 85      book(_hist_St_mumu_ZCR   ,"CR_Zjets_St_mumu", 40, 0., 800.);
 86      book(_hist_St_ee_ZCR     ,"CR_Zjets_Stee", 40, 0., 800.);
 87      book(_hist_MLQ_munu_W2CR ,"CR_W2jets_MLQ_munu", 20, 0., 400.);
 88      book(_hist_MLQ_enu_W2CR  ,"CR_W2jets_MLQ_enu", 20, 0., 400.);
 89      book(_hist_MLQ_munu_ttCR ,"CR_tt_MLQ_munu", 35, 0., 700.);
 90      book(_hist_MLQ_enu_ttCR  ,"CR_tt_MLQ_enu", 35, 0., 700.);
 91
 92    }
 93
 94
 95
 96    /// Perform the per-event analysis
 97    void analyze(const Event& event) {
 98
 99
100      ///DEBUG
101      count +=1; //cerr<< "Event " << count << '\n';
102      // debug
103
104      Particles veto_e = apply<IdentifiedFinalState>(event, "veto_elecs").particles();
105      if ( ! veto_e.empty() ) {
106        MSG_DEBUG("electrons in veto region");
107        vetoEvent;
108      }
109      ++vetoe;
110
111      Jets cand_jets = apply<FastJets>(event, "AntiKtJets04").jetsByPt(Cuts::pT > 20*GeV && Cuts::abseta < 2.8);
112
113      Particles candtemp_e = apply<IdentifiedFinalState>(event, "elecs").particlesByPt();
114      Particles candtemp_mu = apply<IdentifiedFinalState>(event,"muons").particlesByPt();
115      Particles cand_mu;
116      Particles cand_e;
117      Particles vfs_particles = apply<VisibleFinalState>(event, "vfs").particles();
118
119
120      // pTcone around muon track
121      for ( const Particle & mu : candtemp_mu ) {
122        ++tmpmu;
123        double pTinCone = -mu.pT();
124        for ( const Particle & track : vfs_particles ) {
125          if ( deltaR(mu.momentum(),track.momentum()) < 0.2 )
126            pTinCone += track.pT();
127        }
128        if ( pTinCone/mu.pT() < 0.25 )
129          ++candmu;
130        cand_mu.push_back(mu);
131      }
132
133      // pTcone around electron
134      for ( const Particle & e : candtemp_e ) {
135        ++tmpe;
136        double pTinCone = -e.pT();
137        for ( const Particle & track : vfs_particles ) {
138          if ( deltaR(e.momentum(),track.momentum()) < 0.2 )
139            pTinCone += track.pT();
140        }
141        if ( pTinCone/e.pT() < 0.2 )
142          ++cande;
143        cand_e.push_back(e);
144      }
145
146      if ( cand_e.empty() && cand_mu.empty() ) {
147        //cerr<<" ->Event vetoed. No candidate lept"<<'\n';
148        vetoEvent;
149      }
150
151
152      //DEBUG
153      // else{
154      // for (const Particle & mu,  cand_mu) {
155      //   cerr << "cand mu: " << "Id " << mu.pid() << "      eta " << mu.eta() << "      pT " << mu.pT() << '\n';
156      // }
157      // for (const Particle & lepton,  cand_e) {
158      //   cerr << "cand e: " << "Id " << lepton.pid() << "      eta " << lepton.eta() << "      pT " << lepton.pT() << '\n';
159      // }} // debug
160
161
162
163      // pTmiss
164      FourMomentum pTmiss;
165      for ( const Particle & p : vfs_particles ) {
166        pTmiss -= p.momentum();
167      }
168      double eTmiss = pTmiss.pT();
169
170
171      // discard jets that overlap with leptons
172      Jets recon_jets;
173      for ( const Jet& jet : cand_jets ) {
174        bool away_from_lept = true;
175        for ( const Particle & e : cand_e ) {
176          if ( deltaR(e.momentum(),jet.momentum()) <= 0.5 ) {
177            away_from_lept = false;
178            break;
179          }
180        }
181        for ( const Particle & mu : cand_mu ) {
182          if ( deltaR(mu.momentum(),jet.momentum()) <= 0.5 ) {
183            away_from_lept = false;
184            break;
185          }
186        }
187        if ( away_from_lept )
188          recon_jets.push_back( jet );
189      }
190
191
192
193      //DEBUG
194      // cerr << " Num of recon jets: " << recon_jets.size() << '\n';
195      // cerr << " Num of cand e: " << cand_e.size() << '\n';
196      // cerr << " Num of cand mu: " << cand_mu.size() << '\n';
197      //debug
198
199
200
201      // ================ OBSERVABLES ================
202
203
204      // At least 2 hard jets
205      if ( recon_jets.size() < 2 ) {
206        //cerr << " ->Event vetoed. Not enough hard jets." << '\n';
207        vetoEvent;
208      }
209      ++Njetscut;
210
211
212      // Initialize variables for observables
213      double M_ll=0., M_LQ=0., St_ll=0., Mt_LQ=0., St_v=0., mT=0.;
214      FourMomentum p_l, p_l1, p_l2, p_j[2];
215      p_j[0] = recon_jets[0].momentum();
216      p_j[1] = recon_jets[1].momentum();
217
218      Particles dilept_pair;
219      bool single_lept = false;
220
221      if ( cand_mu.size() == 2 && cand_e.empty() ) {
222        ++candmumujj;
223        for ( const Particle& mu : cand_mu )
224          dilept_pair.push_back(mu);
225      }
226      else if ( cand_e.size() == 2 && cand_mu.empty() ) {
227        ++candeejj;
228        for ( const Particle& e : cand_e )
229          dilept_pair.push_back(e);
230      }
231      else if ( cand_mu.size() == 1 && cand_e.empty() ) {
232        ++candmvjj;
233        p_l = cand_mu[0].momentum();
234        single_lept = true;
235      }
236      else if ( cand_e.size() == 1 && cand_mu.empty() ) {
237        ++candevjj;
238        p_l = cand_e[0].momentum();
239        single_lept = true;
240      }
241
242      // Dilepton channel observables
243      if ( ! dilept_pair.empty() ) {
244
245        double E_l1, E_l2, E_j1, E_j2;
246        double tmpM_LQ1[2], tmpM_LQ2[2], M_LQDiff1, M_LQDiff2;
247
248        p_l1 = dilept_pair[0].momentum();
249        p_l2 = dilept_pair[1].momentum();
250        E_l1 = p_l1.E();
251        E_l2 = p_l2.E();
252
253        E_j1 = p_j[0].E();
254        E_j2 = p_j[1].E();
255
256        // Calculate possible leptoquark mass M_LQ and reconstruct average M_LQ
257
258        tmpM_LQ1[0] = E_l1 + E_j1;
259        tmpM_LQ1[1] = E_l2 + E_j2;
260        M_LQDiff1 = abs( tmpM_LQ1[0] - tmpM_LQ1[1] );
261
262        tmpM_LQ2[0] = E_l1 + E_j2;
263        tmpM_LQ2[1] = E_l2 + E_j1;
264        M_LQDiff2 = abs( tmpM_LQ2[0] - tmpM_LQ2[1] );
265
266        if ( M_LQDiff1 > M_LQDiff2 )
267          M_LQ = ( tmpM_LQ2[0] + tmpM_LQ2[1] ) / 2;
268        else
269          M_LQ = ( tmpM_LQ1[0] + tmpM_LQ1[1] ) / 2;
270
271        // Calculate event transverse energy St
272        St_ll = p_l1.pT() + p_l2.pT() + p_j[0].pT() + p_j[1].pT();
273
274        // Dilept pair invariant mass M_ll
275        M_ll = E_l1 + E_l2;
276
277      }
278
279      // 1-lepton channel observables
280      else if ( single_lept ) {
281
282        double tmpM_LQ[2], tmpMt_LQ[2], dPhi_j[2], M_LQDiff1, M_LQDiff2;
283
284        // List of possible M_LQ, Mt_LQ pairings
285
286        for ( int i = 0; i < 2; ++i ) {
287          tmpM_LQ[i] = p_l.E() + p_j[i].E();
288          dPhi_j[1-i] = deltaPhi( p_j[1-i].phi(), pTmiss.phi() );
289          tmpMt_LQ[i] = sqrt( 2 * p_j[1-i].pT() * eTmiss * (1 - cos( dPhi_j[1-i] )) );
290        }
291
292        // Choose pairing that gives smallest absolute difference
293
294        M_LQDiff1 = abs( tmpM_LQ[0] - tmpMt_LQ[0] );
295        M_LQDiff2 = abs( tmpM_LQ[1] - tmpMt_LQ[1] );
296
297        if ( M_LQDiff1 > M_LQDiff2 ) {
298          M_LQ = tmpM_LQ[1];
299          Mt_LQ = tmpMt_LQ[1];
300        }
301        else {
302          M_LQ = tmpM_LQ[0];
303          Mt_LQ = tmpMt_LQ[0];
304        }
305
306        // Event transverse energy
307        St_v = p_l.pT() + eTmiss + p_j[0].pT() + p_j[1].pT();
308
309        // Transverse mass mT
310        double dPhi_l = deltaPhi( p_l.phi(), pTmiss.phi());
311        mT = sqrt( 2 * p_l.pT() * eTmiss * (1 - cos(dPhi_l)) );
312
313      }
314
315
316      // ============== CONTROL REGIONS ===============
317
318      // mumujj, Z control region
319      if ( cand_mu.size() == 2 ) {
320        if ( M_ll >= 81*GeV && M_ll <= 101*GeV ) {
321          ++mumuZCR;
322          _hist_St_mumu_ZCR->fill(St_ll);
323        }
324      }
325      // eejj, Z control region
326      else if ( cand_e.size() == 2 ) {
327        if ( M_ll >= 81*GeV && M_ll <= 101*GeV ) {
328          ++eeZCR;
329          _hist_St_ee_ZCR->fill(St_ll);
330
331        }
332      }
333
334      if ( cand_mu.size() == 1 ) {
335        // munujj, W+2jets control region
336        if ( recon_jets.size() == 2 &&
337             mT >= 40*GeV && mT <= 150*GeV ) {
338          ++munuW2CR;
339          _hist_MLQ_munu_W2CR->fill(M_LQ);
340        }
341        // munujj, tt control region
342        if ( recon_jets.size() >= 4 &&
343             recon_jets[0].pT() > 50*GeV && recon_jets[1].pT() > 40*GeV && recon_jets[2].pT() > 30*GeV ) {
344          ++munuttCR;
345          _hist_MLQ_munu_ttCR->fill(M_LQ);
346        }
347      }
348      if ( cand_e.size() == 1 ) {
349        // enujj, W+2jets control region
350        if ( recon_jets.size() == 2 &&
351             mT >= 40*GeV && mT <= 150*GeV ) {
352          ++enuW2CR;
353          _hist_MLQ_enu_W2CR->fill(M_LQ);
354        }
355        // enujj, tt control region
356        if ( recon_jets.size() >= 4 &&
357             recon_jets[0].pT() > 50*GeV && recon_jets[1].pT() > 40*GeV && recon_jets[2].pT() > 30*GeV ) {
358          ++enuttCR;
359          _hist_MLQ_enu_ttCR->fill(M_LQ);
360        }
361      }
362
363
364
365
366      // ========= PRESELECTION =======================
367
368
369
370      // Single lepton channel cuts
371      if ( single_lept ) {
372
373        if ( eTmiss <= 25*GeV ) {
374          //cerr << " ->Event vetoed. eTmiss=" << eTmiss << '\n';
375          vetoEvent;
376        }
377        ++eTmisscut;
378
379        if ( mT <= 40*GeV )
380          vetoEvent;
381
382        //++mTcut;
383
384        // enujj channel
385        if ( cand_e.size() == 1 && cand_mu.empty() ) {
386
387          // Triangle cut
388          double dPhi_jet1 = deltaPhi( recon_jets[0].phi(), pTmiss.phi() );
389          double dPhi_jet2 = deltaPhi( recon_jets[1].phi(), pTmiss.phi() );
390
391          if ( dPhi_jet1 <= 1.5 * (1 - eTmiss/45) ||
392               dPhi_jet2 <= 1.5 * (1 - eTmiss/45) ) {
393            ++emuvjj;
394            vetoEvent;
395          }
396        }
397      }
398
399      // ==================== FILL ====================
400
401
402      // mumujj channel
403      if ( cand_mu.size() == 2 ) {
404        if ( M_ll <= 120*GeV ||
405             M_LQ <= 150*GeV ||
406             p_l1.pT() <= 30*GeV || p_l2.pT() <= 30*GeV ||
407             p_j[0].pT() <= 30*GeV || p_j[1].pT() <= 30*GeV ||
408             St_ll <= 450*GeV ) {
409          //cerr<<" ->Dilept event vetoed. Table 4 cuts." << '\n';
410          vetoEvent;
411        }
412        else {
413
414
415          ++mumujj;
416          // cerr<< " ->MUMUJJ event selected." << '\n';
417          _hist_St_mumu->fill(St_ll);
418          _count_mumujj->fill(0.5);
419
420        }
421      }
422      // eejj channel
423      else if ( cand_e.size() == 2 ) {
424        if ( M_ll <= 120*GeV ||
425             M_LQ <= 150*GeV ||
426             p_l1.pT() <= 30*GeV || p_l2.pT() <= 30*GeV ||
427             p_j[0].pT() <= 30*GeV || p_j[1].pT() <= 30*GeV ||
428             St_ll <= 450*GeV ) {
429          //cerr<<" ->Dilept event vetoed. Table 4 cuts." << '\n';
430          vetoEvent;
431        }
432        else {
433
434          ++eejj;
435          //cerr<< " ->EEJJ event selected." << '\n';
436          _hist_St_ee->fill(St_ll);
437          _count_eejj->fill(0.5);
438
439        }
440      }
441
442
443      // muvjj channel
444      else if ( cand_mu.size() == 1 ) {
445
446
447
448        if (M_LQ<=150*GeV) {
449          //cerr<<" ->muvjj event vetoed. Not enough M_LQ: " << M_LQ<< '\n';
450          vetoEvent;
451        }
452        ++MLQonelept;
453        if (Mt_LQ<=150*GeV) {
454          //cerr<<" ->muvjj event vetoed. Not enough Mt_LQ: " << Mt_LQ<< '\n';
455          vetoEvent;
456        }
457        ++MtLQonelept;
458        if (St_v<=400*GeV) {
459          //cerr<<" ->muvjj event vetoed. Not enough St_v: " << St_v<< '\n';
460          vetoEvent;
461        }
462        ++Stvonelept;
463        if (mT<=160*GeV) {
464          //cerr<<" ->muvjj event vetoed. Not enough mT: " << mT<<'\n';
465          vetoEvent;
466        }
467        ++mTonelept;
468        //else {
469        ++muvjj;
470        //cerr<< " ->MUVJJ event selected." << '\n';
471        _hist_MLQ_muv->fill(M_LQ);
472        _count_muvjj->fill(0.5);
473
474        //}
475      }
476
477      // evjj channel
478      else if ( cand_e.size() == 1 ) {
479
480        if (M_LQ<=180*GeV) {
481          //cerr<<" ->evjj event vetoed. Not enough M_LQ: " << M_LQ<< '\n';
482          vetoEvent;
483        }
484        ++MLQev;
485        if (Mt_LQ<=180*GeV) {
486          //cerr<<" ->evjj event vetoed. Not enough Mt_LQ: " << Mt_LQ<< '\n';
487          vetoEvent;
488        }
489        ++MtLQev;
490        if (St_v<=410*GeV) {
491          //cerr<<" ->evjj event vetoed. Not enough St_v: " << St_v<< '\n';
492          vetoEvent;
493        }
494        ++Stvev;
495        if (mT<=200*GeV) {
496          //cerr<<" ->evjj event vetoed. Not enough mT: " << mT<<'\n';
497          vetoEvent;
498        }
499        ++mTev;
500        //else {
501        ++evjj;
502        //cerr<< " ->EVJJ event selected." << '\n';
503        _hist_MLQ_ev->fill(M_LQ);
504        _count_evjj->fill(0.5);
505
506
507
508        //      if ( mT <= 200*GeV ||
509        //              M_LQ <= 180*GeV ||
510        //              Mt_LQ <= 180*GeV ||
511        //              St_v <= 410*GeV ) {
512        // cerr<<" ->evjj event vetoed. Doesn't pass table 4 cuts." << '\n';
513        //        vetoEvent;
514        //      }
515        //      else {
516        // ++evjj;
517        // cerr<< " ->EVJJ event selected." << '\n';
518        // _hist_MLQ_ev->fill(M_LQ);
519        //          _count_evjj->fill(0.5);
520
521        //      }
522
523
524      }
525
526
527    }
528
529
530    void finalize() {
531      // cerr << '\n' << "Of " << count << " events, saw "
532      // << vetoe << " (after veto region cut), "
533      // << Njetscut << " (after 2jet req). "
534      // << '\n'
535      // << "For " << dilept << " dilept events: "
536      // << candmumujj << " cand mumujj events, "
537      // << candeejj << " cand eejj events."
538      // << '\n'
539      // << "For " << onelept << " onelept events: "
540      // << candmvjj << " preselected mvjj events, "
541      // << candevjj << " preselected evjj events; "
542      // << eTmisscut << " (eTmiss req); "
543      // << emuvjj << " leftover; "
544      // << MLQonelept << " (muvjj M_LQ cut), "
545      // << MtLQonelept << " (muvjj Mt_LQ cut), "
546      // << Stvonelept << " (muvjj St_v cut), "
547      // << mTonelept << " (muvjj mT cut); "
548      // << MLQev << " (evjj M_LQ cut), "
549      // << MtLQev << " (evjj Mt_LQ cut), "
550      // << Stvev << " (evjj St_v cut), "
551      // << mTev << " (evjj mT cut). "
552      // << '\n'<<'\n'
553      // ;
554      // cerr << "CR - " << "mumu Z: " << mumuZCR << " ee Z: " << eeZCR << "
555      // munu W+2jets: " << munuW2CR << " munu tt: " << munuttCR << " enu
556      // W+2jets: " << enuW2CR << " enu tt: " << enuttCR << '\n';
557      // cerr << "mumujj: " << mumujj << " eejj: " << eejj << " muvjj: " <<
558      // muvjj << " evjj: " << evjj << '\n';
559
560      scale( _hist_St_ee, 120. * 35. * crossSection()/picobarn/sumOfWeights() );
561      scale( _hist_St_mumu, 120. * 35. * crossSection()/picobarn/sumOfWeights() );
562      scale( _hist_MLQ_muv, 50. * 35. * crossSection()/picobarn/sumOfWeights() );
563      scale( _hist_MLQ_ev, 50. * 35. * crossSection()/picobarn/sumOfWeights() );
564
565      scale( _hist_St_mumu_ZCR, 20. * 35. * crossSection()/picobarn/sumOfWeights() );
566      scale( _hist_St_ee_ZCR, 20. * 35. * crossSection()/picobarn/sumOfWeights() );
567      scale( _hist_MLQ_munu_W2CR, 20. * 35. * crossSection()/picobarn/sumOfWeights() );
568      scale( _hist_MLQ_enu_W2CR, 20. * 35. * crossSection()/picobarn/sumOfWeights() );
569      scale( _hist_MLQ_munu_ttCR, 20. * 35. * crossSection()/picobarn/sumOfWeights() );
570      scale( _hist_MLQ_enu_ttCR, 20. * 35. * crossSection()/picobarn/sumOfWeights() );
571
572      // scale( _hist_eTmiss_mu, binwidth*luminosity* crossSection()/picobarn/sumOfWeights() );
573
574    }
575
576
577  private:
578
579    /// @name Histograms
580    /// @{
581    Histo1DPtr _count_mumujj;
582    Histo1DPtr _count_eejj;
583    Histo1DPtr _count_muvjj;
584    Histo1DPtr _count_evjj;
585
586    Histo1DPtr _hist_St_mumu;
587    Histo1DPtr _hist_St_ee;
588    Histo1DPtr _hist_MLQ_muv;
589    Histo1DPtr _hist_MLQ_ev;
590
591    Histo1DPtr _hist_St_mumu_ZCR;
592    Histo1DPtr _hist_St_ee_ZCR;
593    Histo1DPtr _hist_MLQ_munu_W2CR;
594    Histo1DPtr _hist_MLQ_enu_W2CR;
595    Histo1DPtr _hist_MLQ_munu_ttCR;
596    Histo1DPtr _hist_MLQ_enu_ttCR;
597    /// @}
598
599
600    // DEBUG VARIABLES
601    int count, vetoe, Njetscut;
602    int candmumujj, candeejj, eTmisscut, candmvjj, candevjj, mumujj, eejj;
603    int mTonelept, MLQonelept, MtLQonelept, Stvonelept;
604    int mTev, MLQev, MtLQev, Stvev;
605    int muvjj, evjj, emuvjj, cande, candmu, tmpe, tmpmu;
606    int mumuZCR, eeZCR, munuW2CR, munuttCR, enuW2CR, enuttCR;
607
608  };
609
610
611  RIVET_DECLARE_ALIASED_PLUGIN(ATLAS_2011_I897002, ATLAS_2011_S9041966);
612
613}