CMS 3D CMS Logo

List of all members | Public Member Functions | Private Member Functions | Private Attributes
HGCalTriggerNtupleGenTau Class Reference
Inheritance diagram for HGCalTriggerNtupleGenTau:
HGCalTriggerNtupleBase

Public Member Functions

virtual void fill (const edm::Event &, const edm::EventSetup &) override final
 
 HGCalTriggerNtupleGenTau (const edm::ParameterSet &)
 
virtual void initialize (TTree &, const edm::ParameterSet &, edm::ConsumesCollector &&) override final
 
- Public Member Functions inherited from HGCalTriggerNtupleBase
 HGCalTriggerNtupleBase (const edm::ParameterSet &conf)
 
virtual ~HGCalTriggerNtupleBase ()
 

Private Member Functions

virtual void clear () override final
 
bool isChargedHadron (const reco::GenParticle &daughter) const
 
bool isChargedHadronFromResonance (const reco::GenParticle &daughter) const
 
bool isElectron (const reco::GenParticle &daughter) const
 
bool isGamma (const reco::GenParticle &daughter) const
 
bool isGoodTau (const reco::GenParticle &candidate) const
 
bool isIntermediateResonance (const reco::GenParticle &daughter) const
 
bool isMuon (const reco::GenParticle &daughter) const
 
bool isNeutralPion (const reco::GenParticle &daughter) const
 
bool isNeutralPionFromResonance (const reco::GenParticle &daughter) const
 
bool isStableLepton (const reco::GenParticle &daughter) const
 
bool isStableNeutralHadron (const reco::GenParticle &daughter) const
 

Private Attributes

edm::EDGetToken gen_token_
 
std::vector< int > gentau_decayMode_
 
std::vector< float > gentau_energy_
 
std::vector< float > gentau_eta_
 
std::vector< float > gentau_mass_
 
std::vector< float > gentau_phi_
 
std::vector< std::vector< float > > gentau_products_energy_
 
std::vector< std::vector< float > > gentau_products_eta_
 
std::vector< std::vector< int > > gentau_products_id_
 
std::vector< std::vector< float > > gentau_products_mass_
 
std::vector< std::vector< float > > gentau_products_phi_
 
std::vector< std::vector< float > > gentau_products_pt_
 
std::vector< float > gentau_pt_
 
std::vector< int > gentau_totNcharged_
 
std::vector< int > gentau_totNgamma_
 
std::vector< int > gentau_totNpiZero_
 
std::vector< int > gentau_totNproducts_
 
std::vector< float > gentau_vis_energy_
 
std::vector< float > gentau_vis_eta_
 
std::vector< float > gentau_vis_mass_
 
std::vector< float > gentau_vis_phi_
 
std::vector< float > gentau_vis_pt_
 
bool isPythia8generator_
 

Additional Inherited Members

Detailed Description

Definition at line 9 of file HGCalTriggerNtupleGenTau.cc.

Constructor & Destructor Documentation

HGCalTriggerNtupleGenTau::HGCalTriggerNtupleGenTau ( const edm::ParameterSet conf)

Definition at line 68 of file HGCalTriggerNtupleGenTau.cc.

References initialize().

69 {
70 }
HGCalTriggerNtupleBase(const edm::ParameterSet &conf)

Member Function Documentation

void HGCalTriggerNtupleGenTau::clear ( void  )
finaloverrideprivatevirtual

Implements HGCalTriggerNtupleBase.

Definition at line 323 of file HGCalTriggerNtupleGenTau.cc.

References gentau_decayMode_, gentau_energy_, gentau_eta_, gentau_mass_, gentau_phi_, gentau_products_energy_, gentau_products_eta_, gentau_products_id_, gentau_products_mass_, gentau_products_phi_, gentau_products_pt_, gentau_pt_, gentau_totNcharged_, gentau_totNgamma_, gentau_totNproducts_, gentau_vis_energy_, gentau_vis_eta_, gentau_vis_mass_, gentau_vis_phi_, and gentau_vis_pt_.

Referenced by fill().

324 {
325  gentau_pt_.clear();
326  gentau_eta_.clear();
327  gentau_phi_.clear();
328  gentau_energy_.clear();
329  gentau_mass_.clear();
330  gentau_decayMode_.clear();
331  gentau_vis_pt_.clear();
332  gentau_vis_eta_.clear();
333  gentau_vis_phi_.clear();
334  gentau_vis_energy_.clear();
335  gentau_vis_mass_.clear();
336  gentau_totNproducts_.clear();
337  gentau_totNgamma_.clear();
338  gentau_totNcharged_.clear();
339  gentau_products_pt_.clear();
340  gentau_products_eta_.clear();
341  gentau_products_phi_.clear();
342  gentau_products_energy_.clear();
343  gentau_products_mass_.clear();
344  gentau_products_id_.clear();
345 }
std::vector< std::vector< float > > gentau_products_mass_
std::vector< std::vector< float > > gentau_products_phi_
std::vector< float > gentau_vis_phi_
std::vector< std::vector< float > > gentau_products_pt_
std::vector< std::vector< float > > gentau_products_eta_
std::vector< float > gentau_vis_pt_
std::vector< float > gentau_vis_energy_
std::vector< std::vector< float > > gentau_products_energy_
std::vector< float > gentau_vis_mass_
std::vector< std::vector< int > > gentau_products_id_
std::vector< float > gentau_vis_eta_
std::vector< int > gentau_totNproducts_
std::vector< int > gentau_totNcharged_
std::vector< float > gentau_energy_
void HGCalTriggerNtupleGenTau::fill ( const edm::Event e,
const edm::EventSetup es 
)
finaloverridevirtual

Implements HGCalTriggerNtupleBase.

Definition at line 174 of file HGCalTriggerNtupleGenTau.cc.

References clear(), BPhysicsValidation_cfi::daughters, gen_token_, gentau_decayMode_, gentau_energy_, gentau_eta_, gentau_mass_, gentau_phi_, gentau_products_energy_, gentau_products_eta_, gentau_products_id_, gentau_products_mass_, gentau_products_phi_, gentau_products_pt_, gentau_pt_, gentau_totNcharged_, gentau_totNgamma_, gentau_totNpiZero_, gentau_totNproducts_, gentau_vis_energy_, gentau_vis_eta_, gentau_vis_mass_, gentau_vis_phi_, gentau_vis_pt_, edm::Event::getByToken(), isChargedHadron(), isChargedHadronFromResonance(), isElectron(), isGamma(), isGoodTau(), isIntermediateResonance(), isMuon(), isNeutralPion(), isNeutralPionFromResonance(), isPythia8generator_, isStableLepton(), isStableNeutralHadron(), parseEventContent::prod, and edm::RefVector< C, T, F >::push_back().

Referenced by isStableNeutralHadron().

175 {
177  e.getByToken(gen_token_, gen_particles_h);
178  const reco::GenParticleCollection& gen_particles = *gen_particles_h;
179 
180  clear();
181 
182  for(const auto& particle : gen_particles)
183  {
184  /* select good taus */
185  if( isGoodTau( particle ) ){
186  LorentzVector tau_p4vis(0.,0.,0.,0.);
187  gentau_pt_.emplace_back( particle.pt() );
188  gentau_eta_.emplace_back( particle.eta() );
189  gentau_phi_.emplace_back( particle.phi() );
190  gentau_energy_.emplace_back( particle.energy() );
191  gentau_mass_.emplace_back( particle.mass() );
192 
193  int n_pi=0;
194  int n_piZero=0;
195  int n_gamma=0;
196  int n_ele=0;
197  int n_mu=0;
198 
199  std::vector<float> tau_products_pt;
200  std::vector<float> tau_products_eta;
201  std::vector<float> tau_products_phi;
202  std::vector<float> tau_products_energy;
203  std::vector<float> tau_products_mass;
204  std::vector< int > tau_products_id;
205 
206  /* loop over tau daughters */
207  const reco::GenParticleRefVector& daughters = particle.daughterRefVector();
208 
209  for( const auto& daughter : daughters ){
210 
211  reco::GenParticleRefVector finalProds;
212 
213  if( isStableLepton( *daughter ) ){
214  if( isElectron( *daughter ) ){
215  n_ele++;
216  }
217  else if( isMuon( *daughter ) ){
218  n_mu++;
219  }
220  tau_p4vis+=(daughter->p4());
221  finalProds.push_back( daughter );
222  }
223 
224  else if( isChargedHadron( *daughter ) ){
225  n_pi++;
226  tau_p4vis+=(daughter->p4());
227  finalProds.push_back( daughter );
228  }
229 
230  else if( isNeutralPion( *daughter ) ){
231  n_piZero++;
232  const reco::GenParticleRefVector& grandaughters = daughter->daughterRefVector();
233  for( const auto& grandaughter : grandaughters ){
234  if( isGamma( *grandaughter ) ){
235  n_gamma++;
236  tau_p4vis+=(grandaughter->p4());
237  finalProds.push_back( daughter );
238  }
239  }
240  }
241 
242  else if( isStableNeutralHadron( *daughter ) ){
243  tau_p4vis+=(daughter->p4());
244  finalProds.push_back( daughter );
245  }
246  /* Here the selection of the decay product according to the Pythia6 decayTree */
247  if( !isPythia8generator_ ){
248  if( isIntermediateResonance( *daughter ) ){
249  const reco::GenParticleRefVector& grandaughters = daughter->daughterRefVector();
250  for( const auto& grandaughter : grandaughters ){
251  if( isChargedHadron( *grandaughter ) || isChargedHadronFromResonance( *grandaughter ) ){
252  n_pi++;
253  tau_p4vis+=(grandaughter->p4());
254  finalProds.push_back( daughter );
255  }
256  else if( isNeutralPion( *grandaughter ) || isNeutralPionFromResonance( *grandaughter ) ){
257  n_piZero++;
258  const reco::GenParticleRefVector& descendants = grandaughter->daughterRefVector();
259  for( const auto& descendant : descendants ){
260  if( isGamma( *descendant ) ){
261  n_gamma++;
262  tau_p4vis+=(descendant->p4());
263  finalProds.push_back( daughter );
264  }
265  }
266  }
267  }
268  }
269  }
270 
271  /* Fill daughter informations */
272  for( const auto& prod : finalProds ){
273  tau_products_pt.emplace_back( prod->pt() );
274  tau_products_eta.emplace_back( prod->eta() );
275  tau_products_phi.emplace_back( prod->phi() );
276  tau_products_energy.emplace_back( prod->energy() );
277  tau_products_mass.emplace_back( prod->mass() );
278  tau_products_id.emplace_back( prod->pdgId() );
279  }
280 
281  }
282 
283  /* assign the tau-variables */
284  gentau_vis_pt_.emplace_back(tau_p4vis.Pt());
285  gentau_vis_eta_.emplace_back(tau_p4vis.Eta());
286  gentau_vis_phi_.emplace_back(tau_p4vis.Phi());
287  gentau_vis_energy_.emplace_back(tau_p4vis.E());
288  gentau_vis_mass_.emplace_back(tau_p4vis.M());
289  gentau_totNproducts_.emplace_back(n_pi + n_gamma);
290  gentau_totNgamma_.emplace_back(n_gamma);
291  gentau_totNpiZero_.emplace_back(n_piZero);
292  gentau_totNcharged_.emplace_back(n_pi);
293 
294  gentau_products_pt_.emplace_back(tau_products_pt);
295  gentau_products_eta_.emplace_back(tau_products_eta);
296  gentau_products_phi_.emplace_back(tau_products_phi);
297  gentau_products_energy_.emplace_back(tau_products_energy);
298  gentau_products_mass_.emplace_back(tau_products_mass);
299  gentau_products_id_.emplace_back(tau_products_id);
300 
301  /* leptonic tau decays */
302  if( n_pi == 0 && n_piZero == 0 && n_ele==1 ){ gentau_decayMode_.emplace_back(11); }
303  else if( n_pi == 0 && n_piZero == 0 && n_mu==1 ){ gentau_decayMode_.emplace_back(13); }
304  /* 1-prong */
305  else if( n_pi == 1 && n_piZero == 0 ){ gentau_decayMode_.emplace_back(0); }
306  /* 1-prong + pi0s */
307  else if( n_pi == 1 && n_piZero >= 1 ){ gentau_decayMode_.emplace_back(1); }
308  /* 3-prongs */
309  else if( n_pi == 3 && n_piZero == 0 ){ gentau_decayMode_.emplace_back(4); }
310  /* 3-prongs + pi0s */
311  else if( n_pi == 3 && n_piZero >= 1 ){ gentau_decayMode_.emplace_back(5); }
312  /* other decays */
313  else{ gentau_decayMode_.emplace_back(-1); }
314 
315  }
316  }
317 
318 }
std::vector< GenParticle > GenParticleCollection
collection of GenParticles
bool isNeutralPionFromResonance(const reco::GenParticle &daughter) const
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:460
std::vector< std::vector< float > > gentau_products_mass_
bool isChargedHadronFromResonance(const reco::GenParticle &daughter) const
std::vector< std::vector< float > > gentau_products_phi_
virtual void clear() override final
std::vector< float > gentau_vis_phi_
bool isGamma(const reco::GenParticle &daughter) const
std::vector< std::vector< float > > gentau_products_pt_
bool isStableLepton(const reco::GenParticle &daughter) const
bool isIntermediateResonance(const reco::GenParticle &daughter) const
bool isGoodTau(const reco::GenParticle &candidate) const
std::vector< std::vector< float > > gentau_products_eta_
std::vector< float > gentau_vis_pt_
math::XYZTLorentzVector LorentzVector
bool isMuon(const reco::GenParticle &daughter) const
std::vector< float > gentau_vis_energy_
bool isElectron(const reco::GenParticle &daughter) const
std::vector< std::vector< float > > gentau_products_energy_
std::vector< float > gentau_vis_mass_
std::vector< std::vector< int > > gentau_products_id_
std::vector< float > gentau_vis_eta_
std::vector< int > gentau_totNproducts_
bool isNeutralPion(const reco::GenParticle &daughter) const
std::vector< int > gentau_totNcharged_
bool isStableNeutralHadron(const reco::GenParticle &daughter) const
void push_back(value_type const &ref)
Add a Ref<C, T> to the RefVector.
Definition: RefVector.h:69
std::vector< float > gentau_energy_
bool isChargedHadron(const reco::GenParticle &daughter) const
void HGCalTriggerNtupleGenTau::initialize ( TTree &  tree,
const edm::ParameterSet conf,
edm::ConsumesCollector &&  collector 
)
finaloverridevirtual

Implements HGCalTriggerNtupleBase.

Definition at line 74 of file HGCalTriggerNtupleGenTau.cc.

References gen_token_, gentau_decayMode_, gentau_energy_, gentau_eta_, gentau_mass_, gentau_phi_, gentau_products_energy_, gentau_products_eta_, gentau_products_id_, gentau_products_mass_, gentau_products_phi_, gentau_products_pt_, gentau_pt_, gentau_totNcharged_, gentau_totNgamma_, gentau_totNpiZero_, gentau_totNproducts_, gentau_vis_energy_, gentau_vis_eta_, gentau_vis_mass_, gentau_vis_phi_, gentau_vis_pt_, edm::ParameterSet::getParameter(), and isPythia8generator_.

Referenced by HGCalTriggerNtupleGenTau().

75 {
76 
77  gen_token_ = collector.consumes<reco::GenParticleCollection>(conf.getParameter<edm::InputTag>("GenParticles"));
78  isPythia8generator_ = conf.getParameter<bool>("isPythia8");
79 
80  tree.Branch("gentau_pt", &gentau_pt_);
81  tree.Branch("gentau_eta", &gentau_eta_);
82  tree.Branch("gentau_phi", &gentau_phi_);
83  tree.Branch("gentau_energy", &gentau_energy_);
84  tree.Branch("gentau_mass", &gentau_mass_);
85  tree.Branch("gentau_vis_pt", &gentau_vis_pt_);
86  tree.Branch("gentau_vis_eta", &gentau_vis_eta_);
87  tree.Branch("gentau_vis_phi", &gentau_vis_phi_);
88  tree.Branch("gentau_vis_energy", &gentau_vis_energy_);
89  tree.Branch("gentau_vis_mass", &gentau_vis_mass_);
90  tree.Branch("gentau_products_pt", &gentau_products_pt_);
91  tree.Branch("gentau_products_eta", &gentau_products_eta_);
92  tree.Branch("gentau_products_phi", &gentau_products_phi_);
93  tree.Branch("gentau_products_energy", &gentau_products_energy_);
94  tree.Branch("gentau_products_mass", &gentau_products_mass_);
95  tree.Branch("gentau_products_id", &gentau_products_id_);
96  tree.Branch("gentau_decayMode", &gentau_decayMode_);
97  tree.Branch("gentau_totNproducts", &gentau_totNproducts_);
98  tree.Branch("gentau_totNgamma", &gentau_totNgamma_);
99  tree.Branch("gentau_totNpiZero", &gentau_totNpiZero_);
100  tree.Branch("gentau_totNcharged", &gentau_totNcharged_);
101 
102 }
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
std::vector< GenParticle > GenParticleCollection
collection of GenParticles
T getParameter(std::string const &) const
std::vector< std::vector< float > > gentau_products_mass_
std::vector< std::vector< float > > gentau_products_phi_
std::vector< float > gentau_vis_phi_
std::vector< std::vector< float > > gentau_products_pt_
std::vector< std::vector< float > > gentau_products_eta_
std::vector< float > gentau_vis_pt_
std::vector< float > gentau_vis_energy_
std::vector< std::vector< float > > gentau_products_energy_
std::vector< float > gentau_vis_mass_
std::vector< std::vector< int > > gentau_products_id_
std::vector< float > gentau_vis_eta_
std::vector< int > gentau_totNproducts_
std::vector< int > gentau_totNcharged_
Definition: tree.py:1
std::vector< float > gentau_energy_
bool HGCalTriggerNtupleGenTau::isChargedHadron ( const reco::GenParticle daughter) const
private

Definition at line 109 of file HGCalTriggerNtupleGenTau.cc.

References funct::abs(), reco::GenParticle::isDirectPromptTauDecayProductFinalState(), reco::GenParticle::isLastCopy(), reco::LeafCandidate::pdgId(), and reco::LeafCandidate::status().

Referenced by fill(), and isStableNeutralHadron().

109  {
110  return ( (std::abs(candidate.pdgId()) == 211 || std::abs(candidate.pdgId()) == 321 ) && candidate.status()==1
111  && candidate.isDirectPromptTauDecayProductFinalState() && candidate.isLastCopy() );
112 }
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
bool HGCalTriggerNtupleGenTau::isChargedHadronFromResonance ( const reco::GenParticle daughter) const
private

Definition at line 114 of file HGCalTriggerNtupleGenTau.cc.

References funct::abs(), reco::GenParticle::isLastCopy(), reco::LeafCandidate::pdgId(), and reco::LeafCandidate::status().

Referenced by fill().

114  {
115  return ( (std::abs(candidate.pdgId()) == 211 || std::abs(candidate.pdgId()) == 321 ) && candidate.status()==1
116  && candidate.isLastCopy() );
117 }
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
bool HGCalTriggerNtupleGenTau::isElectron ( const reco::GenParticle daughter) const
private

Definition at line 127 of file HGCalTriggerNtupleGenTau.cc.

References funct::abs(), reco::GenParticle::isDirectPromptTauDecayProductFinalState(), reco::GenParticle::isLastCopy(), and reco::LeafCandidate::pdgId().

Referenced by fill().

128 {
129  return ( std::abs(candidate.pdgId()) == 11 && candidate.isDirectPromptTauDecayProductFinalState() && candidate.isLastCopy() );
130 }
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
bool HGCalTriggerNtupleGenTau::isGamma ( const reco::GenParticle daughter) const
private

Definition at line 152 of file HGCalTriggerNtupleGenTau.cc.

References funct::abs(), reco::GenParticle::isDirectPromptTauDecayProductFinalState(), reco::GenParticle::isLastCopy(), reco::GenStatusFlags::isTauDecayProduct(), reco::LeafCandidate::pdgId(), reco::LeafCandidate::status(), and reco::GenParticle::statusFlags().

Referenced by fill().

153 {
154  return ( std::abs(candidate.pdgId()) == 22 && candidate.status()==1 && candidate.statusFlags().isTauDecayProduct()
155  && !candidate.isDirectPromptTauDecayProductFinalState() && candidate.isLastCopy() );
156 }
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
bool HGCalTriggerNtupleGenTau::isGoodTau ( const reco::GenParticle candidate) const
private

Definition at line 104 of file HGCalTriggerNtupleGenTau.cc.

References funct::abs(), reco::LeafCandidate::pdgId(), and reco::LeafCandidate::status().

Referenced by fill().

104  {
105  return ( std::abs( candidate.pdgId() ) == 15 && candidate.status() == 2 );
106 }
virtual int status() const final
status word
virtual int pdgId() const final
PDG identifier.
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
bool HGCalTriggerNtupleGenTau::isIntermediateResonance ( const reco::GenParticle daughter) const
private

Definition at line 158 of file HGCalTriggerNtupleGenTau.cc.

References funct::abs(), reco::LeafCandidate::pdgId(), and reco::LeafCandidate::status().

Referenced by fill().

159 {
160  return ( ( std::abs(candidate.pdgId()) == 213 || std::abs(candidate.pdgId()) == 20213 || std::abs(candidate.pdgId()) == 24 )
161  && candidate.status() == 2 );
162 }
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
bool HGCalTriggerNtupleGenTau::isMuon ( const reco::GenParticle daughter) const
private

Definition at line 133 of file HGCalTriggerNtupleGenTau.cc.

References funct::abs(), reco::GenParticle::isDirectPromptTauDecayProductFinalState(), reco::GenParticle::isLastCopy(), and reco::LeafCandidate::pdgId().

Referenced by fill().

134 {
135  return ( std::abs(candidate.pdgId()) == 13 && candidate.isDirectPromptTauDecayProductFinalState() && candidate.isLastCopy() );
136 }
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
bool HGCalTriggerNtupleGenTau::isNeutralPion ( const reco::GenParticle daughter) const
private

Definition at line 139 of file HGCalTriggerNtupleGenTau.cc.

References funct::abs(), reco::GenParticle::isDirectPromptTauDecayProductFinalState(), reco::GenStatusFlags::isTauDecayProduct(), reco::LeafCandidate::pdgId(), reco::LeafCandidate::status(), and reco::GenParticle::statusFlags().

Referenced by fill().

140 {
141  return ( std::abs(candidate.pdgId()) == 111 && candidate.status()==2 && candidate.statusFlags().isTauDecayProduct()
142  && !candidate.isDirectPromptTauDecayProductFinalState() );
143 }
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
bool HGCalTriggerNtupleGenTau::isNeutralPionFromResonance ( const reco::GenParticle daughter) const
private

Definition at line 146 of file HGCalTriggerNtupleGenTau.cc.

References funct::abs(), reco::GenStatusFlags::isTauDecayProduct(), reco::LeafCandidate::pdgId(), reco::LeafCandidate::status(), and reco::GenParticle::statusFlags().

Referenced by fill().

147 {
148  return ( std::abs(candidate.pdgId()) == 111 && candidate.status()==2 && candidate.statusFlags().isTauDecayProduct() );
149 }
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
bool HGCalTriggerNtupleGenTau::isStableLepton ( const reco::GenParticle daughter) const
private

Definition at line 120 of file HGCalTriggerNtupleGenTau.cc.

References funct::abs(), reco::GenParticle::isDirectPromptTauDecayProductFinalState(), reco::GenParticle::isLastCopy(), reco::LeafCandidate::pdgId(), and reco::LeafCandidate::status().

Referenced by fill().

121 {
122  return ( (std::abs(candidate.pdgId()) == 11 || std::abs(candidate.pdgId()) == 13) && candidate.status()==1
123  && candidate.isDirectPromptTauDecayProductFinalState() && candidate.isLastCopy() );
124 }
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
bool HGCalTriggerNtupleGenTau::isStableNeutralHadron ( const reco::GenParticle daughter) const
private

Definition at line 165 of file HGCalTriggerNtupleGenTau.cc.

References funct::abs(), fill(), isChargedHadron(), reco::GenParticle::isDirectPromptTauDecayProductFinalState(), reco::LeafCandidate::pdgId(), and reco::LeafCandidate::status().

Referenced by fill().

166 {
167  return ( !( std::abs(candidate.pdgId())>10 && std::abs(candidate.pdgId())<17) && !isChargedHadron(candidate)
168  && candidate.isDirectPromptTauDecayProductFinalState() && candidate.status() == 1 );
169 }
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
bool isChargedHadron(const reco::GenParticle &daughter) const

Member Data Documentation

edm::EDGetToken HGCalTriggerNtupleGenTau::gen_token_
private

Definition at line 33 of file HGCalTriggerNtupleGenTau.cc.

Referenced by fill(), and initialize().

std::vector<int> HGCalTriggerNtupleGenTau::gentau_decayMode_
private

Definition at line 47 of file HGCalTriggerNtupleGenTau.cc.

Referenced by clear(), fill(), and initialize().

std::vector<float> HGCalTriggerNtupleGenTau::gentau_energy_
private

Definition at line 39 of file HGCalTriggerNtupleGenTau.cc.

Referenced by clear(), fill(), and initialize().

std::vector<float> HGCalTriggerNtupleGenTau::gentau_eta_
private

Definition at line 37 of file HGCalTriggerNtupleGenTau.cc.

Referenced by clear(), fill(), and initialize().

std::vector<float> HGCalTriggerNtupleGenTau::gentau_mass_
private

Definition at line 40 of file HGCalTriggerNtupleGenTau.cc.

Referenced by clear(), fill(), and initialize().

std::vector<float> HGCalTriggerNtupleGenTau::gentau_phi_
private

Definition at line 38 of file HGCalTriggerNtupleGenTau.cc.

Referenced by clear(), fill(), and initialize().

std::vector<std::vector<float> > HGCalTriggerNtupleGenTau::gentau_products_energy_
private

Definition at line 56 of file HGCalTriggerNtupleGenTau.cc.

Referenced by clear(), fill(), and initialize().

std::vector<std::vector<float> > HGCalTriggerNtupleGenTau::gentau_products_eta_
private

Definition at line 54 of file HGCalTriggerNtupleGenTau.cc.

Referenced by clear(), fill(), and initialize().

std::vector<std::vector< int > > HGCalTriggerNtupleGenTau::gentau_products_id_
private

Definition at line 58 of file HGCalTriggerNtupleGenTau.cc.

Referenced by clear(), fill(), and initialize().

std::vector<std::vector<float> > HGCalTriggerNtupleGenTau::gentau_products_mass_
private

Definition at line 57 of file HGCalTriggerNtupleGenTau.cc.

Referenced by clear(), fill(), and initialize().

std::vector<std::vector<float> > HGCalTriggerNtupleGenTau::gentau_products_phi_
private

Definition at line 55 of file HGCalTriggerNtupleGenTau.cc.

Referenced by clear(), fill(), and initialize().

std::vector<std::vector<float> > HGCalTriggerNtupleGenTau::gentau_products_pt_
private

Definition at line 53 of file HGCalTriggerNtupleGenTau.cc.

Referenced by clear(), fill(), and initialize().

std::vector<float> HGCalTriggerNtupleGenTau::gentau_pt_
private

Definition at line 36 of file HGCalTriggerNtupleGenTau.cc.

Referenced by clear(), fill(), and initialize().

std::vector<int> HGCalTriggerNtupleGenTau::gentau_totNcharged_
private

Definition at line 51 of file HGCalTriggerNtupleGenTau.cc.

Referenced by clear(), fill(), and initialize().

std::vector<int> HGCalTriggerNtupleGenTau::gentau_totNgamma_
private

Definition at line 49 of file HGCalTriggerNtupleGenTau.cc.

Referenced by clear(), fill(), and initialize().

std::vector<int> HGCalTriggerNtupleGenTau::gentau_totNpiZero_
private

Definition at line 50 of file HGCalTriggerNtupleGenTau.cc.

Referenced by fill(), and initialize().

std::vector<int> HGCalTriggerNtupleGenTau::gentau_totNproducts_
private

Definition at line 48 of file HGCalTriggerNtupleGenTau.cc.

Referenced by clear(), fill(), and initialize().

std::vector<float> HGCalTriggerNtupleGenTau::gentau_vis_energy_
private

Definition at line 45 of file HGCalTriggerNtupleGenTau.cc.

Referenced by clear(), fill(), and initialize().

std::vector<float> HGCalTriggerNtupleGenTau::gentau_vis_eta_
private

Definition at line 43 of file HGCalTriggerNtupleGenTau.cc.

Referenced by clear(), fill(), and initialize().

std::vector<float> HGCalTriggerNtupleGenTau::gentau_vis_mass_
private

Definition at line 46 of file HGCalTriggerNtupleGenTau.cc.

Referenced by clear(), fill(), and initialize().

std::vector<float> HGCalTriggerNtupleGenTau::gentau_vis_phi_
private

Definition at line 44 of file HGCalTriggerNtupleGenTau.cc.

Referenced by clear(), fill(), and initialize().

std::vector<float> HGCalTriggerNtupleGenTau::gentau_vis_pt_
private

Definition at line 42 of file HGCalTriggerNtupleGenTau.cc.

Referenced by clear(), fill(), and initialize().

bool HGCalTriggerNtupleGenTau::isPythia8generator_
private

Definition at line 34 of file HGCalTriggerNtupleGenTau.cc.

Referenced by fill(), and initialize().