CMS 3D CMS Logo

List of all members | Public Member Functions | Private Types | Private Member Functions | Private Attributes
TtEvtBuilder< C > Class Template Reference

Template class to fill the TtEvent structure. More...

#include "TopQuarkAnalysis/TopEventProducers/interface/TtEvtBuilder.h"

Inheritance diagram for TtEvtBuilder< C >:
edm::EDProducer edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Member Functions

 TtEvtBuilder (const edm::ParameterSet &)
 default constructor More...
 
 ~TtEvtBuilder () override
 default destructor More...
 
- Public Member Functions inherited from edm::EDProducer
 EDProducer ()
 
SerialTaskQueueglobalLuminosityBlocksQueue ()
 
SerialTaskQueueglobalRunsQueue ()
 
ModuleDescription const & moduleDescription () const
 
 ~EDProducer () override
 
- Public Member Functions inherited from edm::ProducerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
std::vector< edm::ProductResolverIndex > const & indiciesForPutProducts (BranchType iBranchType) const
 
 ProducerBase ()
 
std::vector< edm::ProductResolverIndex > const & putTokenIndexToProductResolverIndex () const
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
std::function< void(BranchDescription const &)> registrationCallback () const
 used by the fwk to register list of products More...
 
void resolvePutIndicies (BranchType iBranchType, ModuleToResolverIndicies const &iIndicies, std::string const &moduleLabel)
 
 ~ProducerBase () override
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
void convertCurrentProcessAlias (std::string const &processName)
 Convert "@currentProcess" in InputTag process names to the actual current process name. More...
 
 EDConsumerBase ()
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
 EDConsumerBase (EDConsumerBase &&)=default
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector< ProductResolverIndexAndSkipBit > const & itemsToGetFrom (BranchType iType) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
virtual ~EDConsumerBase () noexcept(false)
 

Private Types

typedef std::vector< edm::EDGetTokenT< int > >::const_iterator EventHypoIntToken
 
typedef std::vector< edm::EDGetTokenT< std::vector< TtEvent::HypoCombPair > > >::const_iterator EventHypoToken
 

Private Member Functions

virtual void fillSpecific (C &, const edm::Event &)
 fill data members that are decay-channel specific More...
 
template<>
void fillSpecific (TtFullHadronicEvent &ttEvent, const edm::Event &evt)
 
template<>
void fillSpecific (TtFullLeptonicEvent &ttEvent, const edm::Event &evt)
 
template<>
void fillSpecific (TtSemiLeptonicEvent &ttEvent, const edm::Event &evt)
 
void produce (edm::Event &, const edm::EventSetup &) override
 

Private Attributes

int decayChnTop1_
 
int decayChnTop2_
 
edm::EDGetTokenT< std::vector< double > > discToken_
 
edm::EDGetTokenT< std::vector< double > > fitChi2Token_
 
edm::EDGetTokenT< std::vector< double > > fitProbToken_
 
edm::InputTag genEvt_
 TtGenEvent. More...
 
edm::EDGetTokenT< TtGenEventgenEvtToken_
 
edm::ParameterSet genMatch_
 
edm::ParameterSet hitFit_
 
edm::EDGetTokenT< std::vector< double > > hitFitChi2Token_
 
edm::EDGetTokenT< std::vector< double > > hitFitMTToken_
 
edm::EDGetTokenT< std::vector< double > > hitFitProbToken_
 
edm::EDGetTokenT< std::vector< double > > hitFitSigMTToken_
 
std::vector< edm::EDGetTokenT< int > > hypJetTokens_
 
std::vector< edm::EDGetTokenT< int > > hypKeyTokens_
 vector of hypothesis class names More...
 
std::vector< edm::EDGetTokenT< int > > hypNeutrTokens_
 
std::vector< edm::EDGetTokenT< std::vector< TtEvent::HypoCombPair > > > hypTokens_
 
edm::ParameterSet kinFit_
 
edm::ParameterSet kinSolution_
 
edm::EDGetTokenT< std::string > methToken_
 
edm::ParameterSet mvaDisc_
 
edm::EDGetTokenT< std::vector< double > > solWeightToken_
 
edm::EDGetTokenT< std::vector< double > > sumDRToken_
 
edm::EDGetTokenT< std::vector< double > > sumPtToken_
 
int verbosity_
 vebosity level More...
 
edm::EDGetTokenT< bool > wrongChargeToken_
 

Additional Inherited Members

- Public Types inherited from edm::EDProducer
typedef EDProducer ModuleType
 
- Public Types inherited from edm::ProducerBase
using ModuleToResolverIndicies = std::unordered_multimap< std::string, std::tuple< edm::TypeID const *, const char *, edm::ProductResolverIndex >>
 
typedef ProductRegistryHelper::TypeLabelList TypeLabelList
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Static Public Member Functions inherited from edm::EDProducer
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
static bool wantsGlobalLuminosityBlocks ()
 
static bool wantsGlobalRuns ()
 
static bool wantsStreamLuminosityBlocks ()
 
static bool wantsStreamRuns ()
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 

Detailed Description

template<typename C>
class TtEvtBuilder< C >

Template class to fill the TtEvent structure.

Template class to fill the TtEvent structure for:

TtSemiLeptonicEvent TtFullLeptonicEvent TtFullHadronicEvent

event hypothesis, genEvent and extra information (if available) are read from the event and contracted into the TtEvent

Definition at line 30 of file TtEvtBuilder.h.

Member Typedef Documentation

template<typename C >
typedef std::vector<edm::EDGetTokenT<int> >::const_iterator TtEvtBuilder< C >::EventHypoIntToken
private

Definition at line 56 of file TtEvtBuilder.h.

template<typename C >
typedef std::vector<edm::EDGetTokenT<std::vector<TtEvent::HypoCombPair> > >::const_iterator TtEvtBuilder< C >::EventHypoToken
private

Definition at line 57 of file TtEvtBuilder.h.

Constructor & Destructor Documentation

template<typename C >
TtEvtBuilder< C >::TtEvtBuilder ( const edm::ParameterSet cfg)
explicit

default constructor

Definition at line 96 of file TtEvtBuilder.h.

References looper::cfg, TtEvtBuilder< C >::decayChnTop1_, TtEvtBuilder< C >::decayChnTop2_, TtEvtBuilder< C >::discToken_, TtEvtBuilder< C >::fitChi2Token_, TtEvtBuilder< C >::fitProbToken_, TtEvtBuilder< C >::genEvt_, TtEvtBuilder< C >::genEvtToken_, TtEvtBuilder< C >::genMatch_, edm::ParameterSet::getParameter(), TtEvtBuilder< C >::hitFit_, TtEvtBuilder< C >::hitFitChi2Token_, TtEvtBuilder< C >::hitFitMTToken_, TtEvtBuilder< C >::hitFitProbToken_, TtEvtBuilder< C >::hitFitSigMTToken_, TtEvtBuilder< C >::hypJetTokens_, TtEvtBuilder< C >::hypNeutrTokens_, TtEvtBuilder< C >::hypTokens_, TtEvtBuilder< C >::kinFit_, TtEvtBuilder< C >::kinSolution_, TtEvtBuilder< C >::methToken_, TtEvtBuilder< C >::mvaDisc_, TtEvtBuilder< C >::solWeightToken_, TtEvtBuilder< C >::sumDRToken_, TtEvtBuilder< C >::sumPtToken_, GlobalPosition_Frontier_DevDB_cff::tag, edm::vector_transform(), and TtEvtBuilder< C >::wrongChargeToken_.

96  :
97  verbosity_ (cfg.getParameter<int> ("verbosity" )),
98  hypKeyTokens_ (edm::vector_transform(cfg.getParameter<std::vector<edm::InputTag> >("hypotheses" ), [this](edm::InputTag const & tag){return consumes<int>(edm::InputTag(tag.label(), "Key"));})),
99  hypTokens_ (edm::vector_transform(cfg.getParameter<std::vector<edm::InputTag> >("hypotheses" ), [this](edm::InputTag const & tag){return consumes<std::vector<TtEvent::HypoCombPair> >(tag);})),
100  hypNeutrTokens_ (edm::vector_transform(cfg.getParameter<std::vector<edm::InputTag> >("hypotheses" ), [this](edm::InputTag const & tag){return consumes<int>(edm::InputTag(tag.label(), "NumberOfRealNeutrinoSolutions"));})),
101  hypJetTokens_ (edm::vector_transform(cfg.getParameter<std::vector<edm::InputTag> >("hypotheses" ), [this](edm::InputTag const & tag){return consumes<int>(edm::InputTag(tag.label(), "NumberOfConsideredJets"));})),
102  genEvt_ (cfg.getParameter<edm::InputTag> ("genEvent" )),
103  genEvtToken_ (mayConsume<TtGenEvent>(genEvt_)),
104  decayChnTop1_(cfg.getParameter<int> ("decayChannel1")),
105  decayChnTop2_(cfg.getParameter<int> ("decayChannel2"))
106 {
107  // parameter subsets for kKinFit
108  if( cfg.exists("kinFit") ) {
109  kinFit_ = cfg.getParameter<edm::ParameterSet>("kinFit");
110  fitChi2Token_ = mayConsume<std::vector<double> >(kinFit_.getParameter<edm::InputTag>("chi2"));
111  fitProbToken_ = mayConsume<std::vector<double> >(kinFit_.getParameter<edm::InputTag>("prob"));
112  }
113  // parameter subsets for kHitFit
114  if( cfg.exists("hitFit") ) {
115  hitFit_ = cfg.getParameter<edm::ParameterSet>("hitFit");
116  hitFitChi2Token_ = mayConsume<std::vector<double> >(hitFit_.getParameter<edm::InputTag>("chi2"));
117  hitFitProbToken_ = mayConsume<std::vector<double> >(hitFit_.getParameter<edm::InputTag>("prob"));
118  hitFitMTToken_ = mayConsume<std::vector<double> >(hitFit_.getParameter<edm::InputTag>("mt"));
119  hitFitSigMTToken_ = mayConsume<std::vector<double> >(hitFit_.getParameter<edm::InputTag>("sigmt"));
120  }
121  // parameter subsets for kKinSolution
122  if( cfg.exists("kinSolution") ) {
123  kinSolution_ = cfg.getParameter<edm::ParameterSet>("kinSolution");
124  solWeightToken_ = mayConsume<std::vector<double> >(kinSolution_.getParameter<edm::InputTag>("solWeight"));
125  wrongChargeToken_ = mayConsume<bool>(kinSolution_.getParameter<edm::InputTag>("wrongCharge"));
126  }
127  // parameter subsets for kGenMatch
128  if( cfg.exists("genMatch") ) {
129  genMatch_ = cfg.getParameter<edm::ParameterSet>("genMatch");
130  sumPtToken_ = mayConsume<std::vector<double> >(genMatch_.getParameter<edm::InputTag>("sumPt"));
131  sumDRToken_ = mayConsume<std::vector<double> >(genMatch_.getParameter<edm::InputTag>("sumDR"));
132  }
133  // parameter subsets for kMvaDisc
134  if( cfg.exists("mvaDisc") ) {
135  mvaDisc_ = cfg.getParameter<edm::ParameterSet>("mvaDisc");
136  methToken_ = mayConsume<std::string>(mvaDisc_.getParameter<edm::InputTag>("meth"));
137  discToken_ = mayConsume<std::vector<double> >(mvaDisc_.getParameter<edm::InputTag>("disc"));
138  }
139  // produces a TtEventEvent for:
140  // * TtSemiLeptonicEvent
141  // * TtFullLeptonicEvent
142  // * TtFullHadronicEvent
143  // from hypotheses and associated extra information
144  produces<C>();
145 }
edm::EDGetTokenT< std::vector< double > > solWeightToken_
Definition: TtEvtBuilder.h:81
T getParameter(std::string const &) const
edm::EDGetTokenT< std::vector< double > > hitFitMTToken_
Definition: TtEvtBuilder.h:76
edm::EDGetTokenT< std::string > methToken_
Definition: TtEvtBuilder.h:91
edm::InputTag genEvt_
TtGenEvent.
Definition: TtEvtBuilder.h:59
bool exists(std::string const &parameterName) const
checks if a parameter exists
std::vector< edm::EDGetTokenT< std::vector< TtEvent::HypoCombPair > > > hypTokens_
Definition: TtEvtBuilder.h:53
auto vector_transform(std::vector< InputType > const &input, Function predicate) -> std::vector< typename std::remove_cv< typename std::remove_reference< decltype(predicate(input.front()))>::type >::type >
Definition: transform.h:11
edm::ParameterSet genMatch_
Definition: TtEvtBuilder.h:85
std::vector< edm::EDGetTokenT< int > > hypNeutrTokens_
Definition: TtEvtBuilder.h:54
edm::EDGetTokenT< std::vector< double > > sumDRToken_
Definition: TtEvtBuilder.h:87
std::vector< edm::EDGetTokenT< int > > hypKeyTokens_
vector of hypothesis class names
Definition: TtEvtBuilder.h:52
edm::EDGetTokenT< std::vector< double > > discToken_
Definition: TtEvtBuilder.h:92
std::vector< edm::EDGetTokenT< int > > hypJetTokens_
Definition: TtEvtBuilder.h:55
int verbosity_
vebosity level
Definition: TtEvtBuilder.h:50
edm::EDGetTokenT< std::vector< double > > hitFitSigMTToken_
Definition: TtEvtBuilder.h:77
edm::ParameterSet mvaDisc_
Definition: TtEvtBuilder.h:90
edm::EDGetTokenT< bool > wrongChargeToken_
Definition: TtEvtBuilder.h:82
edm::EDGetTokenT< std::vector< double > > fitChi2Token_
Definition: TtEvtBuilder.h:69
edm::ParameterSet kinFit_
Definition: TtEvtBuilder.h:68
edm::ParameterSet kinSolution_
Definition: TtEvtBuilder.h:80
edm::EDGetTokenT< std::vector< double > > hitFitChi2Token_
Definition: TtEvtBuilder.h:74
edm::ParameterSet hitFit_
Definition: TtEvtBuilder.h:73
edm::EDGetTokenT< std::vector< double > > fitProbToken_
Definition: TtEvtBuilder.h:70
edm::EDGetTokenT< std::vector< double > > sumPtToken_
Definition: TtEvtBuilder.h:86
edm::EDGetTokenT< TtGenEvent > genEvtToken_
Definition: TtEvtBuilder.h:60
edm::EDGetTokenT< std::vector< double > > hitFitProbToken_
Definition: TtEvtBuilder.h:75
template<typename C >
TtEvtBuilder< C >::~TtEvtBuilder ( )
inlineoverride

default destructor

Definition at line 37 of file TtEvtBuilder.h.

References patCaloMETCorrections_cff::C, TtEvtBuilder< C >::fillSpecific(), and TtEvtBuilder< C >::produce().

37 {};

Member Function Documentation

template<typename C >
virtual void TtEvtBuilder< C >::fillSpecific ( C &  ,
const edm::Event  
)
privatevirtual

fill data members that are decay-channel specific

Referenced by TtEvtBuilder< C >::produce(), and TtEvtBuilder< C >::~TtEvtBuilder().

template<>
void TtEvtBuilder< TtFullHadronicEvent >::fillSpecific ( TtFullHadronicEvent ttEvent,
const edm::Event evt 
)
private

Definition at line 244 of file TtEvtBuilder.h.

245 {
246 }
template<>
void TtEvtBuilder< TtFullLeptonicEvent >::fillSpecific ( TtFullLeptonicEvent ttEvent,
const edm::Event evt 
)
private

Definition at line 249 of file TtEvtBuilder.h.

References edm::Event::getByToken(), TtEvent::isHypoAvailable(), TtEvent::kKinSolution, TtFullLeptonicEvent::setSolWeight(), TtFullLeptonicEvent::setWrongCharge(), TtFullLepEvtBuilder_cfi::solWeight, TtEvtBuilder< C >::solWeightToken_, TtFullLepEvtBuilder_cfi::wrongCharge, and TtEvtBuilder< C >::wrongChargeToken_.

250 {
251 
252  // set kKinSolution extras
253  if( ttEvent.isHypoAvailable(TtEvent::kKinSolution) ) {
255  evt.getByToken(solWeightToken_, solWeight);
256  ttEvent.setSolWeight( *solWeight );
257 
259  evt.getByToken(wrongChargeToken_, wrongCharge);
260  ttEvent.setWrongCharge( *wrongCharge );
261  }
262 
263 }
edm::EDGetTokenT< std::vector< double > > solWeightToken_
Definition: TtEvtBuilder.h:81
void setWrongCharge(const bool &val)
set right or wrong charge combination of kKinSolution hypothesis
bool isHypoAvailable(const std::string &key, const unsigned &cmb=0) const
Definition: TtEvent.h:60
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:519
edm::EDGetTokenT< bool > wrongChargeToken_
Definition: TtEvtBuilder.h:82
void setSolWeight(const std::vector< double > &val)
set weight of kKinSolution hypothesis
template<>
void TtEvtBuilder< TtSemiLeptonicEvent >::fillSpecific ( TtSemiLeptonicEvent ttEvent,
const edm::Event evt 
)
private

Definition at line 266 of file TtEvtBuilder.h.

References edm::Event::getByToken(), TtEvtBuilder< C >::hypJetTokens_, TtEvtBuilder< C >::hypKeyTokens_, TtEvtBuilder< C >::hypNeutrTokens_, crabWrapper::key, TtEvent::setNumberOfConsideredJets(), and TtSemiLeptonicEvent::setNumberOfRealNeutrinoSolutions().

267 {
268 
269  EventHypoIntToken hKey = hypKeyTokens_.begin();
270  EventHypoIntToken hNeutr = hypNeutrTokens_.begin();
271  EventHypoIntToken hJet = hypJetTokens_.begin();
272  for( ; hKey != hypKeyTokens_.end(); ++hKey, ++hNeutr, ++hJet){
274  evt.getByToken(*hKey, key);
275 
276  // set number of real neutrino solutions for all hypotheses
277  edm::Handle<int> numberOfRealNeutrinoSolutions;
278  evt.getByToken(*hNeutr, numberOfRealNeutrinoSolutions);
279  ttEvent.setNumberOfRealNeutrinoSolutions((TtEvent::HypoClassKey&)*key, *numberOfRealNeutrinoSolutions);
280 
281  // set number of considered jets for all hypotheses
282  edm::Handle<int> numberOfConsideredJets;
283  evt.getByToken(*hJet, numberOfConsideredJets);
284  ttEvent.setNumberOfConsideredJets((TtEvent::HypoClassKey&)*key, *numberOfConsideredJets);
285  }
286 
287 }
HypoClassKey
supported classes of event hypotheses
Definition: TtEvent.h:31
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:519
void setNumberOfRealNeutrinoSolutions(const HypoClassKey &key, const int &nr)
set number of real neutrino solutions for a given hypo class
std::vector< edm::EDGetTokenT< int > >::const_iterator EventHypoIntToken
Definition: TtEvtBuilder.h:56
std::vector< edm::EDGetTokenT< int > > hypNeutrTokens_
Definition: TtEvtBuilder.h:54
std::vector< edm::EDGetTokenT< int > > hypKeyTokens_
vector of hypothesis class names
Definition: TtEvtBuilder.h:52
std::vector< edm::EDGetTokenT< int > > hypJetTokens_
Definition: TtEvtBuilder.h:55
void setNumberOfConsideredJets(const HypoClassKey &key, const unsigned int nJets)
set number of jets considered when building a given hypothesis
Definition: TtEvent.h:123
template<typename C >
void TtEvtBuilder< C >::produce ( edm::Event evt,
const edm::EventSetup setup 
)
overrideprivate

produce function (this one is not even accessible for derived classes)

Definition at line 149 of file TtEvtBuilder.h.

References patCaloMETCorrections_cff::C, TtEvtBuilder< C >::decayChnTop1_, TtEvtBuilder< C >::decayChnTop2_, TtSemiLepEvtBuilder_cfi::disc, TtEvtBuilder< C >::discToken_, TtEvtBuilder< C >::fillSpecific(), fitChi2(), TtEvtBuilder< C >::fitChi2Token_, TtEvtBuilder< C >::fitProbToken_, TtGenEvtProducer_cfi::genEvt, TtEvtBuilder< C >::genEvt_, TtEvtBuilder< C >::genEvtToken_, edm::Event::getByToken(), h, TtEvtBuilder< C >::hitFitChi2Token_, TtEvtBuilder< C >::hitFitMTToken_, TtEvtBuilder< C >::hitFitProbToken_, TtEvtBuilder< C >::hitFitSigMTToken_, TtEvtBuilder< C >::hypKeyTokens_, TtEvtBuilder< C >::hypTokens_, crabWrapper::key, TtEvent::kGenMatch, TtEvent::kHitFit, TtEvent::kKinFit, TtEvent::kMVADisc, edm::InputTag::label(), TtSemiLepEvtBuilder_cfi::meth, TtEvtBuilder< C >::methToken_, eostools::move(), edm::Event::put(), TtFullHadEvtBuilder_cfi::sumDR, TtEvtBuilder< C >::sumDRToken_, TtFullHadEvtBuilder_cfi::sumPt, TtEvtBuilder< C >::sumPtToken_, and TtEvtBuilder< C >::verbosity_.

Referenced by TtEvtBuilder< C >::~TtEvtBuilder().

150 {
151  C ttEvent;
152 
153  // set leptonic decay channels
155 
156  // set genEvent (if available)
158  if ( !genEvt_.label().empty() )
159  if( evt.getByToken(genEvtToken_, genEvt) )
160  ttEvent.setGenEvent(genEvt);
161 
162  // add event hypotheses for all given
163  // hypothesis classes to the TtEvent
164  EventHypoIntToken hKey = hypKeyTokens_.begin();
165  EventHypoToken h = hypTokens_.begin();
166  for( ; hKey != hypKeyTokens_.end(); ++hKey, ++h){
168  evt.getByToken(*hKey, key);
169 
171  evt.getByToken(*h, hypMatchVec);
172 
173  typedef std::vector<TtEvent::HypoCombPair>::const_iterator HypMatch;
174  for(HypMatch hm=hypMatchVec->begin(); hm != hypMatchVec->end(); ++hm){
175  ttEvent.addEventHypo((TtEvent::HypoClassKey&)*key, *hm);
176  }
177  }
178 
179  // set kKinFit extras
180  if( ttEvent.isHypoAvailable(TtEvent::kKinFit) ) {
182  evt.getByToken(fitChi2Token_, fitChi2);
183  ttEvent.setFitChi2( *fitChi2 );
184 
186  evt.getByToken(fitProbToken_, fitProb);
187  ttEvent.setFitProb( *fitProb );
188  }
189 
190  // set kHitFit extras
191  if( ttEvent.isHypoAvailable(TtEvent::kHitFit) ) {
192  edm::Handle<std::vector<double> > hitFitChi2;
193  evt.getByToken(hitFitChi2Token_, hitFitChi2);
194  ttEvent.setHitFitChi2( *hitFitChi2 );
195 
196  edm::Handle<std::vector<double> > hitFitProb;
197  evt.getByToken(hitFitProbToken_, hitFitProb);
198  ttEvent.setHitFitProb( *hitFitProb );
199 
201  evt.getByToken(hitFitMTToken_, hitFitMT);
202  ttEvent.setHitFitMT( *hitFitMT );
203 
204  edm::Handle<std::vector<double> > hitFitSigMT;
205  evt.getByToken(hitFitSigMTToken_, hitFitSigMT);
206  ttEvent.setHitFitSigMT( *hitFitSigMT );
207  }
208 
209  // set kGenMatch extras
210  if( ttEvent.isHypoAvailable(TtEvent::kGenMatch) ) {
212  evt.getByToken(sumPtToken_, sumPt);
213  ttEvent.setGenMatchSumPt( *sumPt );
214 
216  evt.getByToken(sumDRToken_, sumDR);
217  ttEvent.setGenMatchSumDR( *sumDR );
218  }
219 
220  // set kMvaDisc extras
221  if( ttEvent.isHypoAvailable(TtEvent::kMVADisc) ) {
223  evt.getByToken(methToken_, meth);
224  ttEvent.setMvaMethod( *meth );
225 
227  evt.getByToken(discToken_, disc);
228  ttEvent.setMvaDiscriminators( *disc );
229  }
230 
231  // fill data members that are decay-channel specific
232  fillSpecific(ttEvent, evt);
233 
234  // print summary via MessageLogger if verbosity_>0
235  ttEvent.print(verbosity_);
236 
237  // write object into the edm::Event
238  std::unique_ptr<C> pOut(new C);
239  *pOut=ttEvent;
240  evt.put(std::move(pOut));
241 }
HypoClassKey
supported classes of event hypotheses
Definition: TtEvent.h:31
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
Definition: Event.h:136
FWCore Framework interface EventSetupRecordImplementation h
Helper function to determine trigger accepts.
edm::EDGetTokenT< std::vector< double > > hitFitMTToken_
Definition: TtEvtBuilder.h:76
edm::EDGetTokenT< std::string > methToken_
Definition: TtEvtBuilder.h:91
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:519
edm::InputTag genEvt_
TtGenEvent.
Definition: TtEvtBuilder.h:59
std::vector< edm::EDGetTokenT< std::vector< TtEvent::HypoCombPair > > > hypTokens_
Definition: TtEvtBuilder.h:53
std::vector< edm::EDGetTokenT< int > >::const_iterator EventHypoIntToken
Definition: TtEvtBuilder.h:56
static double fitChi2(const CachingVertex< 5 > &vtx)
edm::EDGetTokenT< std::vector< double > > sumDRToken_
Definition: TtEvtBuilder.h:87
std::vector< edm::EDGetTokenT< int > > hypKeyTokens_
vector of hypothesis class names
Definition: TtEvtBuilder.h:52
virtual void fillSpecific(C &, const edm::Event &)
fill data members that are decay-channel specific
edm::EDGetTokenT< std::vector< double > > discToken_
Definition: TtEvtBuilder.h:92
int verbosity_
vebosity level
Definition: TtEvtBuilder.h:50
edm::EDGetTokenT< std::vector< double > > hitFitSigMTToken_
Definition: TtEvtBuilder.h:77
edm::EDGetTokenT< std::vector< double > > fitChi2Token_
Definition: TtEvtBuilder.h:69
edm::EDGetTokenT< std::vector< double > > hitFitChi2Token_
Definition: TtEvtBuilder.h:74
std::vector< edm::EDGetTokenT< std::vector< TtEvent::HypoCombPair > > >::const_iterator EventHypoToken
Definition: TtEvtBuilder.h:57
edm::EDGetTokenT< std::vector< double > > fitProbToken_
Definition: TtEvtBuilder.h:70
std::string const & label() const
Definition: InputTag.h:36
edm::EDGetTokenT< std::vector< double > > sumPtToken_
Definition: TtEvtBuilder.h:86
edm::EDGetTokenT< TtGenEvent > genEvtToken_
Definition: TtEvtBuilder.h:60
edm::EDGetTokenT< std::vector< double > > hitFitProbToken_
Definition: TtEvtBuilder.h:75
def move(src, dest)
Definition: eostools.py:510

Member Data Documentation

template<typename C >
int TtEvtBuilder< C >::decayChnTop1_
private

decay channels of the two top decay branches; to be filled according to WDecay::LeptonTypes in TtGenEvent

Definition at line 63 of file TtEvtBuilder.h.

Referenced by TtEvtBuilder< C >::produce(), and TtEvtBuilder< C >::TtEvtBuilder().

template<typename C >
int TtEvtBuilder< C >::decayChnTop2_
private

Definition at line 64 of file TtEvtBuilder.h.

Referenced by TtEvtBuilder< C >::produce(), and TtEvtBuilder< C >::TtEvtBuilder().

template<typename C >
edm::EDGetTokenT<std::vector<double> > TtEvtBuilder< C >::discToken_
private

Definition at line 92 of file TtEvtBuilder.h.

Referenced by TtEvtBuilder< C >::produce(), and TtEvtBuilder< C >::TtEvtBuilder().

template<typename C >
edm::EDGetTokenT<std::vector<double> > TtEvtBuilder< C >::fitChi2Token_
private

Definition at line 69 of file TtEvtBuilder.h.

Referenced by TtEvtBuilder< C >::produce(), and TtEvtBuilder< C >::TtEvtBuilder().

template<typename C >
edm::EDGetTokenT<std::vector<double> > TtEvtBuilder< C >::fitProbToken_
private

Definition at line 70 of file TtEvtBuilder.h.

Referenced by TtEvtBuilder< C >::produce(), and TtEvtBuilder< C >::TtEvtBuilder().

template<typename C >
edm::InputTag TtEvtBuilder< C >::genEvt_
private
template<typename C >
edm::EDGetTokenT<TtGenEvent> TtEvtBuilder< C >::genEvtToken_
private

Definition at line 60 of file TtEvtBuilder.h.

Referenced by TtEvtBuilder< C >::produce(), and TtEvtBuilder< C >::TtEvtBuilder().

template<typename C >
edm::ParameterSet TtEvtBuilder< C >::genMatch_
private

input parameters for the kGenMatch hypothesis class extras

Definition at line 85 of file TtEvtBuilder.h.

Referenced by TtEvtBuilder< C >::TtEvtBuilder().

template<typename C >
edm::ParameterSet TtEvtBuilder< C >::hitFit_
private

input parameters for the kHitFit hypothesis class extras

Definition at line 73 of file TtEvtBuilder.h.

Referenced by TtEvtBuilder< C >::TtEvtBuilder().

template<typename C >
edm::EDGetTokenT<std::vector<double> > TtEvtBuilder< C >::hitFitChi2Token_
private

Definition at line 74 of file TtEvtBuilder.h.

Referenced by TtEvtBuilder< C >::produce(), and TtEvtBuilder< C >::TtEvtBuilder().

template<typename C >
edm::EDGetTokenT<std::vector<double> > TtEvtBuilder< C >::hitFitMTToken_
private

Definition at line 76 of file TtEvtBuilder.h.

Referenced by TtEvtBuilder< C >::produce(), and TtEvtBuilder< C >::TtEvtBuilder().

template<typename C >
edm::EDGetTokenT<std::vector<double> > TtEvtBuilder< C >::hitFitProbToken_
private

Definition at line 75 of file TtEvtBuilder.h.

Referenced by TtEvtBuilder< C >::produce(), and TtEvtBuilder< C >::TtEvtBuilder().

template<typename C >
edm::EDGetTokenT<std::vector<double> > TtEvtBuilder< C >::hitFitSigMTToken_
private

Definition at line 77 of file TtEvtBuilder.h.

Referenced by TtEvtBuilder< C >::produce(), and TtEvtBuilder< C >::TtEvtBuilder().

template<typename C >
std::vector<edm::EDGetTokenT<int> > TtEvtBuilder< C >::hypJetTokens_
private
template<typename C >
std::vector<edm::EDGetTokenT<int> > TtEvtBuilder< C >::hypKeyTokens_
private

vector of hypothesis class names

Definition at line 52 of file TtEvtBuilder.h.

Referenced by TtEvtBuilder< C >::fillSpecific(), and TtEvtBuilder< C >::produce().

template<typename C >
std::vector<edm::EDGetTokenT<int> > TtEvtBuilder< C >::hypNeutrTokens_
private
template<typename C >
std::vector<edm::EDGetTokenT<std::vector<TtEvent::HypoCombPair> > > TtEvtBuilder< C >::hypTokens_
private

Definition at line 53 of file TtEvtBuilder.h.

Referenced by TtEvtBuilder< C >::produce(), and TtEvtBuilder< C >::TtEvtBuilder().

template<typename C >
edm::ParameterSet TtEvtBuilder< C >::kinFit_
private

input parameters for the kKinFit hypothesis class extras

Definition at line 68 of file TtEvtBuilder.h.

Referenced by TtEvtBuilder< C >::TtEvtBuilder().

template<typename C >
edm::ParameterSet TtEvtBuilder< C >::kinSolution_
private

input parameters for the kKinSolution hypothesis class extras

Definition at line 80 of file TtEvtBuilder.h.

Referenced by TtEvtBuilder< C >::TtEvtBuilder().

template<typename C >
edm::EDGetTokenT<std::string> TtEvtBuilder< C >::methToken_
private

Definition at line 91 of file TtEvtBuilder.h.

Referenced by TtEvtBuilder< C >::produce(), and TtEvtBuilder< C >::TtEvtBuilder().

template<typename C >
edm::ParameterSet TtEvtBuilder< C >::mvaDisc_
private

input parameters for the kMVADisc hypothesis class extras

Definition at line 90 of file TtEvtBuilder.h.

Referenced by TtEvtBuilder< C >::TtEvtBuilder().

template<typename C >
edm::EDGetTokenT<std::vector<double> > TtEvtBuilder< C >::solWeightToken_
private
template<typename C >
edm::EDGetTokenT<std::vector<double> > TtEvtBuilder< C >::sumDRToken_
private

Definition at line 87 of file TtEvtBuilder.h.

Referenced by TtEvtBuilder< C >::produce(), and TtEvtBuilder< C >::TtEvtBuilder().

template<typename C >
edm::EDGetTokenT<std::vector<double> > TtEvtBuilder< C >::sumPtToken_
private

Definition at line 86 of file TtEvtBuilder.h.

Referenced by TtEvtBuilder< C >::produce(), and TtEvtBuilder< C >::TtEvtBuilder().

template<typename C >
int TtEvtBuilder< C >::verbosity_
private

vebosity level

Definition at line 50 of file TtEvtBuilder.h.

Referenced by TtEvtBuilder< C >::produce().

template<typename C >
edm::EDGetTokenT<bool> TtEvtBuilder< C >::wrongChargeToken_
private