CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Protected Member Functions | Protected Attributes
TtSemiLepHypothesis Class Referenceabstract

#include <TtSemiLepHypothesis.h>

Inheritance diagram for TtSemiLepHypothesis:
edm::EDProducer edm::ProducerBase edm::ProductRegistryHelper TtSemiLepHypGenMatch TtSemiLepHypGeom TtSemiLepHypKinFit TtSemiLepHypMaxSumPtWMass TtSemiLepHypMVADisc TtSemiLepHypWMassDeltaTopMass TtSemiLepHypWMassMaxSumPt

Public Member Functions

 TtSemiLepHypothesis (const edm::ParameterSet &)
 default constructor More...
 
 ~TtSemiLepHypothesis ()
 default destructor More...
 
- Public Member Functions inherited from edm::EDProducer
 EDProducer ()
 
virtual ~EDProducer ()
 
- Public Member Functions inherited from edm::ProducerBase
 ProducerBase ()
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
boost::function< void(const
BranchDescription &)> 
registrationCallback () const
 used by the fwk to register list of products More...
 
virtual ~ProducerBase ()
 

Protected Member Functions

virtual void buildHypo (edm::Event &event, const edm::Handle< edm::View< reco::RecoCandidate > > &lepton, const edm::Handle< std::vector< pat::MET > > &neutrino, const edm::Handle< std::vector< pat::Jet > > &jets, std::vector< int > &jetPartonAssociation, const unsigned int iComb)=0
 build event hypothesis from the reco objects of a semi-leptonic event More...
 
virtual void buildKey ()=0
 build the event hypothesis key More...
 
reco::CompositeCandidate hypo ()
 return event hypothesis More...
 
bool isValid (const int &idx, const edm::Handle< std::vector< pat::Jet > > &jets)
 check if index is in valid range of selected jets More...
 
std::string jetCorrectionLevel (const std::string &quarkType)
 helper function to construct the proper correction level string for corresponding quarkType More...
 
int key () const
 return key More...
 
WDecay::LeptonType leptonType (const reco::RecoCandidate *cand)
 determine lepton type of reco candidate and return a corresponding WDecay::LeptonType; the type is kNone if it is whether a muon nor an electron More...
 
virtual void produce (edm::Event &, const edm::EventSetup &)
 produce the event hypothesis as CompositeCandidate and Key More...
 
void resetCandidates ()
 reset candidate pointers before hypo build process More...
 
template<typename C >
void setCandidate (const edm::Handle< C > &handle, const int &idx, reco::ShallowClonePtrCandidate *&clone)
 use one object in a collection to set a ShallowClonePtrCandidate More...
 
void setCandidate (const edm::Handle< std::vector< pat::Jet > > &handle, const int &idx, reco::ShallowClonePtrCandidate *&clone, const std::string &correctionLevel)
 use one object in a jet collection to set a ShallowClonePtrCandidate with proper jet corrections More...
 
void setNeutrino (const edm::Handle< std::vector< pat::MET > > &met, const edm::Handle< edm::View< reco::RecoCandidate > > &leps, const int &idx, const int &type)
 set neutrino, using mW = 80.4 to calculate the neutrino pz More...
 
- Protected Member Functions inherited from edm::EDProducer
CurrentProcessingContext const * currentContext () const
 
- Protected Member Functions inherited from edm::ProducerBase
template<class TProducer , class TMethod >
void callWhenNewProductsRegistered (TProducer *iProd, TMethod iMethod)
 

Protected Attributes

bool getMatch_
 
reco::ShallowClonePtrCandidatehadronicB_
 
std::string jetCorrectionLevel_
 
edm::InputTag jets_
 input label for all necessary collections More...
 
int key_
 hypothesis key (to be set by the buildKey function) More...
 
edm::InputTag leps_
 
reco::ShallowClonePtrCandidatelepton_
 
reco::ShallowClonePtrCandidateleptonicB_
 
reco::ShallowClonePtrCandidatelightQ_
 
reco::ShallowClonePtrCandidatelightQBar_
 
edm::InputTag match_
 
edm::InputTag mets_
 
reco::ShallowClonePtrCandidateneutrino_
 
int numberOfRealNeutrinoSolutions_
 

Additional Inherited Members

- Public Types inherited from edm::EDProducer
typedef EDProducer ModuleType
 
typedef WorkerT< EDProducerWorkerType
 
- Public Types inherited from edm::ProducerBase
typedef
ProductRegistryHelper::TypeLabelList 
TypeLabelList
 
- Static Public Member Functions inherited from edm::EDProducer
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 

Detailed Description

Definition at line 31 of file TtSemiLepHypothesis.h.

Constructor & Destructor Documentation

TtSemiLepHypothesis::TtSemiLepHypothesis ( const edm::ParameterSet cfg)
explicit

default constructor

Definition at line 9 of file TtSemiLepHypothesis.cc.

References edm::ParameterSet::exists(), getMatch_, edm::ParameterSet::getParameter(), jetCorrectionLevel_, and match_.

9  :
10  jets_(cfg.getParameter<edm::InputTag>("jets")),
11  leps_(cfg.getParameter<edm::InputTag>("leps")),
12  mets_(cfg.getParameter<edm::InputTag>("mets")),
14  lightQ_(0), lightQBar_(0), hadronicB_(0),
15  leptonicB_(0), neutrino_(0), lepton_(0)
16 {
17  getMatch_ = false;
18  if( cfg.exists("match") ) {
19  getMatch_ = true;
20  match_ = cfg.getParameter<edm::InputTag>("match");
21  }
22  if( cfg.exists("jetCorrectionLevel") ) {
23  jetCorrectionLevel_ = cfg.getParameter<std::string>("jetCorrectionLevel");
24  }
25  produces<std::vector<std::pair<reco::CompositeCandidate, std::vector<int> > > >();
26  produces<int>("Key");
27  produces<int>("NumberOfRealNeutrinoSolutions");
28 }
std::string jetCorrectionLevel_
T getParameter(std::string const &) const
reco::ShallowClonePtrCandidate * lepton_
reco::ShallowClonePtrCandidate * lightQBar_
bool exists(std::string const &parameterName) const
checks if a parameter exists
reco::ShallowClonePtrCandidate * neutrino_
edm::InputTag jets_
input label for all necessary collections
reco::ShallowClonePtrCandidate * hadronicB_
reco::ShallowClonePtrCandidate * lightQ_
reco::ShallowClonePtrCandidate * leptonicB_
TtSemiLepHypothesis::~TtSemiLepHypothesis ( )

default destructor

Definition at line 31 of file TtSemiLepHypothesis.cc.

References hadronicB_, lepton_, leptonicB_, lightQ_, lightQBar_, and neutrino_.

32 {
33  if( lightQ_ ) delete lightQ_;
34  if( lightQBar_ ) delete lightQBar_;
35  if( hadronicB_ ) delete hadronicB_;
36  if( leptonicB_ ) delete leptonicB_;
37  if( neutrino_ ) delete neutrino_;
38  if( lepton_ ) delete lepton_;
39 }
reco::ShallowClonePtrCandidate * lepton_
reco::ShallowClonePtrCandidate * lightQBar_
reco::ShallowClonePtrCandidate * neutrino_
reco::ShallowClonePtrCandidate * hadronicB_
reco::ShallowClonePtrCandidate * lightQ_
reco::ShallowClonePtrCandidate * leptonicB_

Member Function Documentation

virtual void TtSemiLepHypothesis::buildHypo ( edm::Event event,
const edm::Handle< edm::View< reco::RecoCandidate > > &  lepton,
const edm::Handle< std::vector< pat::MET > > &  neutrino,
const edm::Handle< std::vector< pat::Jet > > &  jets,
std::vector< int > &  jetPartonAssociation,
const unsigned int  iComb 
)
protectedpure virtual

build event hypothesis from the reco objects of a semi-leptonic event

Implemented in TtSemiLepHypGenMatch, TtSemiLepHypGeom, TtSemiLepHypMaxSumPtWMass, TtSemiLepHypMVADisc, TtSemiLepHypWMassDeltaTopMass, TtSemiLepHypWMassMaxSumPt, and TtSemiLepHypKinFit.

Referenced by produce().

virtual void TtSemiLepHypothesis::buildKey ( )
protectedpure virtual
reco::CompositeCandidate TtSemiLepHypothesis::hypo ( )
protected

return event hypothesis

Definition at line 111 of file TtSemiLepHypothesis.cc.

References reco::CompositeCandidate::addDaughter(), TtSemiLepDaughter::HadB, TtSemiLepDaughter::HadP, TtSemiLepDaughter::HadQ, hadronicB_, TtSemiLepDaughter::HadTop, TtSemiLepDaughter::HadW, TtSemiLepDaughter::Lep, TtSemiLepDaughter::LepB, lepton_, leptonicB_, TtSemiLepDaughter::LepTop, TtSemiLepDaughter::LepW, lightQ_, lightQBar_, neutrino_, TtSemiLepDaughter::Nu, and AddFourMomenta::set().

Referenced by produce().

112 {
113  // check for sanity of the hypothesis
114  if( !lightQ_ || !lightQBar_ || !hadronicB_ ||
115  !leptonicB_ || !neutrino_ || !lepton_ )
116  return reco::CompositeCandidate();
117 
118  // setup transient references
119  reco::CompositeCandidate hyp, hadTop, hadW, lepTop, lepW;
120 
121  AddFourMomenta addFourMomenta;
122  // build up the top branch that decays leptonically
125  addFourMomenta.set( lepW );
126  lepTop.addDaughter( lepW, TtSemiLepDaughter::LepW );
128  addFourMomenta.set( lepTop );
129 
130  // build up the top branch that decays hadronically
133  addFourMomenta.set( hadW );
134  hadTop.addDaughter( hadW, TtSemiLepDaughter::HadW );
136  addFourMomenta.set( hadTop );
137 
138  // build ttbar hypotheses
139  hyp.addDaughter( lepTop, TtSemiLepDaughter::LepTop );
140  hyp.addDaughter( hadTop, TtSemiLepDaughter::HadTop );
141  addFourMomenta.set( hyp );
142 
143  return hyp;
144 }
static const std::string HadB
static const std::string LepTop
static const std::string Lep
static const std::string LepW
reco::ShallowClonePtrCandidate * lepton_
reco::ShallowClonePtrCandidate * lightQBar_
static const std::string HadP
reco::ShallowClonePtrCandidate * neutrino_
static const std::string HadTop
void addDaughter(const Candidate &, const std::string &s="")
add a clone of the passed candidate as daughter
reco::ShallowClonePtrCandidate * hadronicB_
static const std::string HadQ
static const std::string HadW
static const std::string Nu
static const std::string LepB
void set(reco::Candidate &c) const
set up a candidate
reco::ShallowClonePtrCandidate * lightQ_
reco::ShallowClonePtrCandidate * leptonicB_
bool TtSemiLepHypothesis::isValid ( const int &  idx,
const edm::Handle< std::vector< pat::Jet > > &  jets 
)
inlineprotected
std::string TtSemiLepHypothesis::jetCorrectionLevel ( const std::string &  quarkType)
protected

helper function to construct the proper correction level string for corresponding quarkType

helper function to construct the proper correction level string for corresponding quarkType, for unknown quarkTypes an empty string is returned

Definition at line 163 of file TtSemiLepHypothesis.cc.

References jetCorrectionLevel_, and testEve_cfg::level.

Referenced by TtSemiLepHypGenMatch::buildHypo(), TtSemiLepHypWMassMaxSumPt::buildHypo(), TtSemiLepHypWMassDeltaTopMass::buildHypo(), TtSemiLepHypMaxSumPtWMass::buildHypo(), and TtSemiLepHypGeom::buildHypo().

164 {
165  // jetCorrectionLevel was not configured
166  if(jetCorrectionLevel_.empty())
167  throw cms::Exception("Configuration")
168  << "Unconfigured jetCorrectionLevel. Please use an appropriate, non-empty string.\n";
169 
170  // quarkType is unknown
171  if( !(quarkType=="wQuarkMix" ||
172  quarkType=="udsQuark" ||
173  quarkType=="cQuark" ||
174  quarkType=="bQuark") )
175  throw cms::Exception("Configuration")
176  << quarkType << " is unknown as a quarkType for the jetCorrectionLevel.\n";
177 
178  // combine correction level; start with a ':' even if
179  // there is no flavor tag to be added, as it is needed
180  // by setCandidate to disentangle the correction tag
181  // from a potential flavor tag, which can be empty
182  std::string level=jetCorrectionLevel_+":";
183  if( level=="L5Flavor:" || level=="L6UE:" || level=="L7Parton:" ){
184  if(quarkType=="wQuarkMix"){level+="wMix";}
185  if(quarkType=="udsQuark" ){level+="uds";}
186  if(quarkType=="cQuark" ){level+="charm";}
187  if(quarkType=="bQuark" ){level+="bottom";}
188  }
189  else{
190  level+="none";
191  }
192  return level;
193 }
std::string jetCorrectionLevel_
tuple level
Definition: testEve_cfg.py:34
int TtSemiLepHypothesis::key ( ) const
inlineprotected

return key

Definition at line 55 of file TtSemiLepHypothesis.h.

References key_.

Referenced by produce().

55 { return key_; };
int key_
hypothesis key (to be set by the buildKey function)
WDecay::LeptonType TtSemiLepHypothesis::leptonType ( const reco::RecoCandidate cand)
protected

determine lepton type of reco candidate and return a corresponding WDecay::LeptonType; the type is kNone if it is whether a muon nor an electron

Definition at line 148 of file TtSemiLepHypothesis.cc.

References WDecay::kElec, WDecay::kMuon, and WDecay::kNone.

Referenced by TtSemiLepHypGenMatch::findMatchingLepton(), and setNeutrino().

149 {
150  // check whetherwe are dealing with a reco muon or a reco electron
152  if( dynamic_cast<const reco::Muon*>(cand) ){
153  type = WDecay::kMuon;
154  }
155  else if( dynamic_cast<const reco::GsfElectron*>(cand) ){
156  type = WDecay::kElec;
157  }
158  return type;
159 }
type
Definition: HCALResponse.h:22
void TtSemiLepHypothesis::produce ( edm::Event evt,
const edm::EventSetup setup 
)
protectedvirtual

produce the event hypothesis as CompositeCandidate and Key

Implements edm::EDProducer.

Definition at line 43 of file TtSemiLepHypothesis.cc.

References buildHypo(), buildKey(), edm::Event::getByLabel(), getMatch_, hypo(), i, analyzePatCleaning_cfg::jets, jets_, key(), leps_, match(), match_, mets_, numberOfRealNeutrinoSolutions_, edm::Event::put(), and resetCandidates().

44 {
46  evt.getByLabel(jets_, jets);
47 
49  evt.getByLabel(leps_, leps);
50 
52  evt.getByLabel(mets_, mets);
53 
54  std::vector<std::vector<int> > matchVec;
55  if( getMatch_ ) {
57  evt.getByLabel(match_, matchHandle);
58  matchVec = *matchHandle;
59  }
60  else {
61  std::vector<int> dummyMatch;
62  for(unsigned int i = 0; i < 4; ++i)
63  dummyMatch.push_back( -1 );
64  matchVec.push_back( dummyMatch );
65  }
66 
67  // declare auto_ptr for products
68  std::auto_ptr<std::vector<std::pair<reco::CompositeCandidate, std::vector<int> > > >
69  pOut( new std::vector<std::pair<reco::CompositeCandidate, std::vector<int> > > );
70  std::auto_ptr<int> pKey(new int);
71  std::auto_ptr<int> pNeutrinoSolutions(new int);
72 
73  // go through given vector of jet combinations
74  unsigned int idMatch = 0;
75  typedef std::vector<std::vector<int> >::iterator MatchVecIterator;
76  for(MatchVecIterator match = matchVec.begin(); match != matchVec.end(); ++match) {
77  // reset pointers
79  // build hypothesis
80  buildHypo(evt, leps, mets, jets, *match, idMatch++);
81  pOut->push_back( std::make_pair(hypo(), *match) );
82  }
83  // feed out hyps and matches
84  evt.put(pOut);
85 
86  // build and feed out key
87  buildKey();
88  *pKey=key();
89  evt.put(pKey, "Key");
90 
91  // feed out number of real neutrino solutions
92  *pNeutrinoSolutions=numberOfRealNeutrinoSolutions_;
93  evt.put(pNeutrinoSolutions, "NumberOfRealNeutrinoSolutions");
94 }
int i
Definition: DBlmapReader.cc:9
virtual void buildHypo(edm::Event &event, const edm::Handle< edm::View< reco::RecoCandidate > > &lepton, const edm::Handle< std::vector< pat::MET > > &neutrino, const edm::Handle< std::vector< pat::Jet > > &jets, std::vector< int > &jetPartonAssociation, const unsigned int iComb)=0
build event hypothesis from the reco objects of a semi-leptonic event
OrphanHandle< PROD > put(std::auto_ptr< PROD > product)
Put a new product.
Definition: Event.h:84
void resetCandidates()
reset candidate pointers before hypo build process
edm::InputTag jets_
input label for all necessary collections
virtual void buildKey()=0
build the event hypothesis key
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:355
reco::CompositeCandidate hypo()
return event hypothesis
int key() const
return key
std::pair< typename Association::data_type::first_type, double > match(Reference key, Association association, bool bestMatchByMaxValue)
Generic matching function.
Definition: Utils.h:6
void TtSemiLepHypothesis::resetCandidates ( )
protected

reset candidate pointers before hypo build process

Definition at line 98 of file TtSemiLepHypothesis.cc.

References hadronicB_, lepton_, leptonicB_, lightQ_, lightQBar_, neutrino_, and numberOfRealNeutrinoSolutions_.

Referenced by produce().

99 {
101  lightQ_ = 0;
102  lightQBar_ = 0;
103  hadronicB_ = 0;
104  leptonicB_ = 0;
105  neutrino_ = 0;
106  lepton_ = 0;
107 }
reco::ShallowClonePtrCandidate * lepton_
reco::ShallowClonePtrCandidate * lightQBar_
reco::ShallowClonePtrCandidate * neutrino_
reco::ShallowClonePtrCandidate * hadronicB_
reco::ShallowClonePtrCandidate * lightQ_
reco::ShallowClonePtrCandidate * leptonicB_
template<typename C >
void TtSemiLepHypothesis::setCandidate ( const edm::Handle< C > &  handle,
const int &  idx,
reco::ShallowClonePtrCandidate *&  clone 
)
protected

use one object in a collection to set a ShallowClonePtrCandidate

Definition at line 109 of file TtSemiLepHypothesis.h.

References patZpeak::handle.

Referenced by TtSemiLepHypKinFit::buildHypo(), TtSemiLepHypWMassMaxSumPt::buildHypo(), TtSemiLepHypWMassDeltaTopMass::buildHypo(), TtSemiLepHypMVADisc::buildHypo(), TtSemiLepHypMaxSumPtWMass::buildHypo(), TtSemiLepHypGenMatch::buildHypo(), and TtSemiLepHypGeom::buildHypo().

109  {
110  typedef typename C::value_type O;
111  edm::Ptr<O> ptr = edm::Ptr<O>(handle, idx);
112  clone = new reco::ShallowClonePtrCandidate( ptr, ptr->charge(), ptr->p4(), ptr->vertex() );
113 }
tuple handle
Definition: patZpeak.py:22
Container::value_type value_type
void TtSemiLepHypothesis::setCandidate ( const edm::Handle< std::vector< pat::Jet > > &  handle,
const int &  idx,
reco::ShallowClonePtrCandidate *&  clone,
const std::string &  correctionLevel 
)
protected

use one object in a jet collection to set a ShallowClonePtrCandidate with proper jet corrections

Definition at line 197 of file TtSemiLepHypothesis.cc.

References patZpeak::handle, and launcher::step.

199 {
201  // disentangle the correction from the potential flavor tag
202  // by the separating ':'; the flavor tag can be empty though
203  std::string step = correctionLevel.substr(0,correctionLevel.find(":"));
204  std::string flavor = correctionLevel.substr(1+correctionLevel.find(":"));
205  float corrFactor = 1.;
206  if(flavor=="wMix")
207  corrFactor = 0.75*ptr->jecFactor(step, "uds") + 0.25*ptr->jecFactor(step, "charm");
208  else
209  corrFactor = ptr->jecFactor(step, flavor);
210  clone = new reco::ShallowClonePtrCandidate( ptr, ptr->charge(), ptr->p4()*corrFactor, ptr->vertex() );
211 }
list step
Definition: launcher.py:15
tuple handle
Definition: patZpeak.py:22
void TtSemiLepHypothesis::setNeutrino ( const edm::Handle< std::vector< pat::MET > > &  met,
const edm::Handle< edm::View< reco::RecoCandidate > > &  leps,
const int &  idx,
const int &  type 
)
protected

set neutrino, using mW = 80.4 to calculate the neutrino pz

Definition at line 214 of file TtSemiLepHypothesis.cc.

References edm::hlt::Exception, WDecay::kElec, WDecay::kMuon, leptonType(), CaloMET_cfi::met, neutrino_, numberOfRealNeutrinoSolutions_, p4, and mathSSE::sqrt().

Referenced by TtSemiLepHypGenMatch::buildHypo(), TtSemiLepHypWMassMaxSumPt::buildHypo(), TtSemiLepHypWMassDeltaTopMass::buildHypo(), TtSemiLepHypMaxSumPtWMass::buildHypo(), and TtSemiLepHypGeom::buildHypo().

216 {
218  MEzCalculator mez;
219  mez.SetMET( *(met->begin()) );
220  if( leptonType( &(leps->front()) ) == WDecay::kMuon )
221  mez.SetLepton( (*leps)[idx], true );
222  else if( leptonType( &(leps->front()) ) == WDecay::kElec )
223  mez.SetLepton( (*leps)[idx], false );
224  else
225  throw cms::Exception("UnimplementedFeature") << "Type of lepton given together with MET for solving neutrino kinematics is neither muon nor electron.\n";
226  double pz = mez.Calculate(type);
227  numberOfRealNeutrinoSolutions_ = mez.IsComplex() ? 0 : 2;
228  const math::XYZTLorentzVector p4( ptr->px(), ptr->py(), pz, sqrt(ptr->px()*ptr->px() + ptr->py()*ptr->py() + pz*pz) );
229  neutrino_ = new reco::ShallowClonePtrCandidate( ptr, ptr->charge(), p4, ptr->vertex() );
230 }
type
Definition: HCALResponse.h:22
WDecay::LeptonType leptonType(const reco::RecoCandidate *cand)
determine lepton type of reco candidate and return a corresponding WDecay::LeptonType; the type is kN...
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
Definition: LorentzVector.h:30
reco::ShallowClonePtrCandidate * neutrino_
T sqrt(T t)
Definition: SSEVec.h:28
double p4[4]
Definition: TauolaWrapper.h:92

Member Data Documentation

bool TtSemiLepHypothesis::getMatch_
protected

internal check whether the match information exists or not, if false a blind dummy match vector will be used internally

Definition at line 81 of file TtSemiLepHypothesis.h.

Referenced by produce(), and TtSemiLepHypothesis().

reco::ShallowClonePtrCandidate* TtSemiLepHypothesis::hadronicB_
protected
std::string TtSemiLepHypothesis::jetCorrectionLevel_
protected

specify the desired jet correction level (the default should be L3Absolute-'abs')

Definition at line 89 of file TtSemiLepHypothesis.h.

Referenced by jetCorrectionLevel(), and TtSemiLepHypothesis().

edm::InputTag TtSemiLepHypothesis::jets_
protected

input label for all necessary collections

Definition at line 83 of file TtSemiLepHypothesis.h.

Referenced by produce().

int TtSemiLepHypothesis::key_
protected
edm::InputTag TtSemiLepHypothesis::leps_
protected

Definition at line 84 of file TtSemiLepHypothesis.h.

Referenced by produce().

reco::ShallowClonePtrCandidate* TtSemiLepHypothesis::lepton_
protected
reco::ShallowClonePtrCandidate* TtSemiLepHypothesis::leptonicB_
protected
reco::ShallowClonePtrCandidate* TtSemiLepHypothesis::lightQ_
protected
reco::ShallowClonePtrCandidate* TtSemiLepHypothesis::lightQBar_
protected
edm::InputTag TtSemiLepHypothesis::match_
protected

Definition at line 86 of file TtSemiLepHypothesis.h.

Referenced by produce(), and TtSemiLepHypothesis().

edm::InputTag TtSemiLepHypothesis::mets_
protected

Definition at line 85 of file TtSemiLepHypothesis.h.

Referenced by produce().

reco::ShallowClonePtrCandidate* TtSemiLepHypothesis::neutrino_
protected
int TtSemiLepHypothesis::numberOfRealNeutrinoSolutions_
protected

number of real neutrino solutions: -1 if not determined, 0 if only complex, 2 if two real solutions

Definition at line 94 of file TtSemiLepHypothesis.h.

Referenced by produce(), resetCandidates(), and setNeutrino().