CMS 3D CMS Logo

List of all members | Public Member Functions | Private Attributes
Rivet::RivetAnalysis Class Reference

#include <RivetAnalysis.h>

Inheritance diagram for Rivet::RivetAnalysis:

Public Member Functions

void analyze (const Event &event) override
 
Jets fatjets () const
 
void finalize () override
 
void init () override
 
Jets jets () const
 
ParticleVector leptons () const
 
Vector3 met () const
 
ParticleVector neutrinos () const
 
ParticleVector photons () const
 
 RivetAnalysis (const edm::ParameterSet &pset)
 
std::string status () const override
 

Private Attributes

bool _excludeNeutrinosFromJetClustering
 
bool _excludePromptLeptonsFromJetClustering
 
double _fatJetConeSize
 
double _fatJetMaxEta
 
double _fatJetMinPt
 
Jets _fatjets
 
double _jetConeSize
 
double _jetMaxEta
 
double _jetMinPt
 
Jets _jets
 
double _lepConeSize
 
double _lepMaxEta
 
double _lepMinPt
 
ParticleVector _leptons
 
Vector3 _met
 
ParticleVector _neutrinos
 
double _particleMaxEta
 
double _particleMinPt
 
ParticleVector _photons
 
bool _usePromptFinalStates
 

Detailed Description

Definition at line 23 of file RivetAnalysis.h.

Constructor & Destructor Documentation

Rivet::RivetAnalysis::RivetAnalysis ( const edm::ParameterSet pset)
inline

Definition at line 48 of file RivetAnalysis.h.

48  : Analysis("RivetAnalysis"),
49  _usePromptFinalStates(pset.getParameter<bool>("usePromptFinalStates")),
50  _excludePromptLeptonsFromJetClustering(pset.getParameter<bool>("excludePromptLeptonsFromJetClustering")),
51  _excludeNeutrinosFromJetClustering(pset.getParameter<bool>("excludeNeutrinosFromJetClustering")),
52 
53  _particleMinPt (pset.getParameter<double>("particleMinPt")),
54  _particleMaxEta (pset.getParameter<double>("particleMaxEta")),
55 
56  _lepConeSize (pset.getParameter<double>("lepConeSize")),
57  _lepMinPt (pset.getParameter<double>("lepMinPt")),
58  _lepMaxEta (pset.getParameter<double>("lepMaxEta")),
59 
60  _jetConeSize (pset.getParameter<double>("jetConeSize")),
61  _jetMinPt (pset.getParameter<double>("jetMinPt")),
62  _jetMaxEta (pset.getParameter<double>("jetMaxEta")),
63 
64  _fatJetConeSize (pset.getParameter<double>("fatJetConeSize")),
65  _fatJetMinPt (pset.getParameter<double>("fatJetMinPt")),
66  _fatJetMaxEta (pset.getParameter<double>("fatJetMaxEta"))
67  {
68  }
T getParameter(std::string const &) const
bool _excludeNeutrinosFromJetClustering
Definition: RivetAnalysis.h:36
bool _excludePromptLeptonsFromJetClustering
Definition: RivetAnalysis.h:35

Member Function Documentation

void Rivet::RivetAnalysis::analyze ( const Event event)
inlineoverride

Definition at line 143 of file RivetAnalysis.h.

References GetRecoTauVFromDQM_MC_cff::cl, MillePedeFileConverter_cfg::e, event(), GeV, AlCaHLTBitMon_ParallelJobs::p, and HadronAndPartonSelector_cfi::particles.

143  {
144  _jets.clear();
145  _fatjets.clear();
146  _leptons.clear();
147  _photons.clear();
148  _neutrinos.clear();
149 
150  // Get analysis objects from projections
151  Cut jet_cut = (Cuts::abseta < _jetMaxEta) and (Cuts::pT > _jetMinPt*GeV);
152  Cut fatjet_cut = (Cuts::abseta < _fatJetMaxEta) and (Cuts::pT > _fatJetMinPt*GeV);
153 
154  _leptons = applyProjection<DressedLeptons>(event, "DressedLeptons").particlesByPt();
155  // search tau ancestors
156  Particles promptleptons = applyProjection<PromptFinalState>(event, "PromptLeptons").particles();
157  for ( auto & lepton : _leptons ) {
158  const auto & cl = lepton.constituents().front(); // this has no ancestors anymore :(
159  for ( auto const & pl : promptleptons ) {
160  if (cl.momentum() == pl.momentum()) {
161  for ( auto & p : pl.ancestors()) {
162  if (p.abspid() == 15) {
163  p.setMomentum(p.momentum()*10e-20);
164  lepton.addConstituent(p, false);
165  }
166  }
167  break;
168  }
169  }
170  }
171 
172  _jets = applyProjection<FastJets>(event, "Jets").jetsByPt(jet_cut);
173  _fatjets = applyProjection<FastJets>(event, "FatJets").jetsByPt(fatjet_cut);
174  _photons = applyProjection<FinalState>(event, "Photons").particlesByPt();
175  _neutrinos = applyProjection<FinalState>(event, "Neutrinos").particlesByPt();
176  _met = applyProjection<MissingMomentum>(event, "MET").missingMomentum().p3();
177  };
const double GeV
Definition: MathUtil.h:16
ParticleVector _photons
Definition: RivetAnalysis.h:43
ParticleVector _leptons
Definition: RivetAnalysis.h:43
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision and the trigger will pass if any such matching triggers are FAIL or EXCEPTION A wildcarded negative criterion that matches more than one trigger in the trigger but the state exists so we define the behavior If all triggers are the negative crieriion will lead to accepting the event(this again matches the behavior of"!*"before the partial wildcard feature was incorporated).The per-event"cost"of each negative criterion with multiple relevant triggers is about the same as!*was in the past
ParticleVector _neutrinos
Definition: RivetAnalysis.h:43
Jets Rivet::RivetAnalysis::fatjets ( ) const
inline

Definition at line 30 of file RivetAnalysis.h.

References _fatjets.

Referenced by ParticleLevelProducer::produce().

30 {return _fatjets;}
void Rivet::RivetAnalysis::finalize ( void  )
inlineoverride

Definition at line 180 of file RivetAnalysis.h.

180 {};
void Rivet::RivetAnalysis::init ( void  )
inlineoverride

Definition at line 71 of file RivetAnalysis.h.

References GeV, neutrinos(), pat::PHOTON, and photons().

71  {
72  // Cuts
73  Cut particle_cut = (Cuts::abseta < _particleMaxEta) and (Cuts::pT > _particleMinPt*GeV);
74  Cut lepton_cut = (Cuts::abseta < _lepMaxEta) and (Cuts::pT > _lepMinPt*GeV);
75 
76  // Generic final state
77  FinalState fs(particle_cut);
78 
79  // Dressed leptons
80  ChargedLeptons charged_leptons(fs);
81  IdentifiedFinalState photons(fs);
82  photons.acceptIdPair(PID::PHOTON);
83 
84  PromptFinalState prompt_leptons(charged_leptons);
85  prompt_leptons.acceptMuonDecays(true);
86  prompt_leptons.acceptTauDecays(true);
87  addProjection(prompt_leptons, "PromptLeptons");
88 
89  PromptFinalState prompt_photons(photons);
90  prompt_photons.acceptMuonDecays(true);
91  prompt_photons.acceptTauDecays(true);
92 
93  // useDecayPhotons=true allows for photons with tau ancestor,
94  // photons from hadrons are vetoed by the PromptFinalState;
95  // will be default DressedLeptons behaviour for Rivet >= 2.5.4
96  DressedLeptons dressed_leptons(prompt_photons, prompt_leptons, _lepConeSize,
97  lepton_cut, /*useDecayPhotons*/ true);
98  if (not _usePromptFinalStates)
99  dressed_leptons = DressedLeptons(photons, charged_leptons, _lepConeSize,
100  lepton_cut, /*useDecayPhotons*/ true);
101  addProjection(dressed_leptons, "DressedLeptons");
102 
103  // Photons
104  if (_usePromptFinalStates) {
105  // We remove the photons used up for lepton dressing in this case
106  VetoedFinalState vetoed_prompt_photons(prompt_photons);
107  vetoed_prompt_photons.addVetoOnThisFinalState(dressed_leptons);
108  addProjection(vetoed_prompt_photons, "Photons");
109  }
110  else
111  addProjection(photons, "Photons");
112 
113  // Jets
114  VetoedFinalState fsForJets(fs);
115  if (_usePromptFinalStates and _excludePromptLeptonsFromJetClustering)
116  fsForJets.addVetoOnThisFinalState(dressed_leptons);
117  JetAlg::InvisiblesStrategy invisiblesStrategy = JetAlg::DECAY_INVISIBLES;
119  invisiblesStrategy = JetAlg::NO_INVISIBLES;
120  addProjection(FastJets(fsForJets, FastJets::ANTIKT, _jetConeSize,
121  JetAlg::ALL_MUONS, invisiblesStrategy), "Jets");
122 
123  // FatJets
124  addProjection(FastJets(fsForJets, FastJets::ANTIKT, _fatJetConeSize), "FatJets");
125 
126  // Neutrinos
127  IdentifiedFinalState neutrinos(fs);
128  neutrinos.acceptNeutrinos();
129  if (_usePromptFinalStates) {
130  PromptFinalState prompt_neutrinos(neutrinos);
131  prompt_neutrinos.acceptMuonDecays(true);
132  prompt_neutrinos.acceptTauDecays(true);
133  addProjection(prompt_neutrinos, "Neutrinos");
134  }
135  else
136  addProjection(neutrinos, "Neutrinos");
137 
138  // MET
139  addProjection(MissingMomentum(fs), "MET");
140  };
const double GeV
Definition: MathUtil.h:16
ParticleVector neutrinos() const
Definition: RivetAnalysis.h:28
ParticleVector photons() const
Definition: RivetAnalysis.h:27
bool _excludeNeutrinosFromJetClustering
Definition: RivetAnalysis.h:36
bool _excludePromptLeptonsFromJetClustering
Definition: RivetAnalysis.h:35
Jets Rivet::RivetAnalysis::jets ( ) const
inline

Definition at line 29 of file RivetAnalysis.h.

References _jets.

Referenced by ParticleLevelProducer::produce().

29 {return _jets;}
ParticleVector Rivet::RivetAnalysis::leptons ( void  ) const
inline

Definition at line 26 of file RivetAnalysis.h.

References _leptons.

Referenced by ParticleLevelProducer::produce().

26 {return _leptons;}
ParticleVector _leptons
Definition: RivetAnalysis.h:43
Vector3 Rivet::RivetAnalysis::met ( ) const
inline

Definition at line 31 of file RivetAnalysis.h.

References _met.

Referenced by ParticleLevelProducer::produce().

31 {return _met;}
ParticleVector Rivet::RivetAnalysis::neutrinos ( ) const
inline

Definition at line 28 of file RivetAnalysis.h.

References _neutrinos.

Referenced by init(), and ParticleLevelProducer::produce().

28 {return _neutrinos;}
ParticleVector _neutrinos
Definition: RivetAnalysis.h:43
ParticleVector Rivet::RivetAnalysis::photons ( ) const
inline

Definition at line 27 of file RivetAnalysis.h.

References _photons.

Referenced by init(), and ParticleLevelProducer::produce().

27 {return _photons;}
ParticleVector _photons
Definition: RivetAnalysis.h:43
std::string Rivet::RivetAnalysis::status ( void  ) const
inlineoverride

Definition at line 182 of file RivetAnalysis.h.

182 { return "VALIDATED"; }

Member Data Documentation

bool Rivet::RivetAnalysis::_excludeNeutrinosFromJetClustering
private

Definition at line 36 of file RivetAnalysis.h.

bool Rivet::RivetAnalysis::_excludePromptLeptonsFromJetClustering
private

Definition at line 35 of file RivetAnalysis.h.

double Rivet::RivetAnalysis::_fatJetConeSize
private

Definition at line 41 of file RivetAnalysis.h.

double Rivet::RivetAnalysis::_fatJetMaxEta
private

Definition at line 41 of file RivetAnalysis.h.

double Rivet::RivetAnalysis::_fatJetMinPt
private

Definition at line 41 of file RivetAnalysis.h.

Jets Rivet::RivetAnalysis::_fatjets
private

Definition at line 44 of file RivetAnalysis.h.

Referenced by fatjets().

double Rivet::RivetAnalysis::_jetConeSize
private

Definition at line 40 of file RivetAnalysis.h.

double Rivet::RivetAnalysis::_jetMaxEta
private

Definition at line 40 of file RivetAnalysis.h.

double Rivet::RivetAnalysis::_jetMinPt
private

Definition at line 40 of file RivetAnalysis.h.

Jets Rivet::RivetAnalysis::_jets
private

Definition at line 44 of file RivetAnalysis.h.

Referenced by jets().

double Rivet::RivetAnalysis::_lepConeSize
private

Definition at line 39 of file RivetAnalysis.h.

double Rivet::RivetAnalysis::_lepMaxEta
private

Definition at line 39 of file RivetAnalysis.h.

double Rivet::RivetAnalysis::_lepMinPt
private

Definition at line 39 of file RivetAnalysis.h.

ParticleVector Rivet::RivetAnalysis::_leptons
private

Definition at line 43 of file RivetAnalysis.h.

Referenced by leptons().

Vector3 Rivet::RivetAnalysis::_met
private

Definition at line 45 of file RivetAnalysis.h.

Referenced by met().

ParticleVector Rivet::RivetAnalysis::_neutrinos
private

Definition at line 43 of file RivetAnalysis.h.

Referenced by neutrinos().

double Rivet::RivetAnalysis::_particleMaxEta
private

Definition at line 38 of file RivetAnalysis.h.

double Rivet::RivetAnalysis::_particleMinPt
private

Definition at line 38 of file RivetAnalysis.h.

ParticleVector Rivet::RivetAnalysis::_photons
private

Definition at line 43 of file RivetAnalysis.h.

Referenced by photons().

bool Rivet::RivetAnalysis::_usePromptFinalStates
private

Definition at line 34 of file RivetAnalysis.h.