CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Classes | Public Member Functions | Private Attributes
TwoObjectVariable< LHS, lLHS, RHS, lRHS, Calculator > Class Template Reference

#include <CachingVariable.h>

Inheritance diagram for TwoObjectVariable< LHS, lLHS, RHS, lRHS, Calculator >:
CachingVariable

Classes

class  getObject
 

Public Member Functions

virtual CachingVariable::valueType calculate (getObject &o) const
 
CachingVariable::evalType eval (const edm::Event &iEvent) const
 
getObject objects (const edm::Event &iEvent) const
 
 TwoObjectVariable (const CachingVariableFactoryArg &arg, edm::ConsumesCollector &iC)
 
- Public Member Functions inherited from CachingVariable
void addDescriptionLine (const std::string &s)
 
 CachingVariable (std::string m, std::string n, const edm::ParameterSet &iConfig, edm::ConsumesCollector &iC)
 
bool compute (const edm::Event &iEvent) const
 
const Descriptiondescription () const
 
const std::string & holderName () const
 
const std::string & method () const
 
const std::string & name () const
 
valueType operator() (const edm::Event &iEvent) const
 
void print () const
 
void setHolder (std::string hn) const
 
virtual ~CachingVariable ()
 

Private Attributes

unsigned int indexLhs_
 
unsigned int indexRhs_
 
edm::EDGetTokenT< std::vector
< LHS > > 
srcLhs_
 
edm::InputTag srcLhsTag_
 
edm::EDGetTokenT< std::vector
< RHS > > 
srcRhs_
 
edm::InputTag srcRhsTag_
 

Additional Inherited Members

- Public Types inherited from CachingVariable
typedef std::pair< bool,
valueType
evalType
 
typedef double valueType
 
typedef std::map< std::string,
const CachingVariable * > 
vMap
 
- Protected Member Functions inherited from CachingVariable
evalTypebaseEval (const edm::Event &iEvent) const
 
bool notSeenThisEventAlready (const edm::Event &iEvent) const
 
void setCache (valueType &v) const
 
void setNotCompute () const
 
- Protected Attributes inherited from CachingVariable
evalType cache_
 
edm::ParameterSet conf_
 
Description d_
 
edm::Event::CacheIdentifier_t eventCacheID_ =0
 
std::string holderName_
 
std::string method_
 
std::string name_
 

Detailed Description

template<typename LHS, const char * lLHS, typename RHS, const char * lRHS, typename Calculator>
class TwoObjectVariable< LHS, lLHS, RHS, lRHS, Calculator >

Definition at line 432 of file CachingVariable.h.

Constructor & Destructor Documentation

template<typename LHS , const char * lLHS, typename RHS , const char * lRHS, typename Calculator >
TwoObjectVariable< LHS, lLHS, RHS, lRHS, Calculator >::TwoObjectVariable ( const CachingVariableFactoryArg arg,
edm::ConsumesCollector iC 
)
inline

Definition at line 434 of file CachingVariable.h.

References CachingVariable::addDescriptionLine(), idDealer::description, TwoObjectVariable< LHS, lLHS, RHS, lRHS, Calculator >::indexLhs_, TwoObjectVariable< LHS, lLHS, RHS, lRHS, Calculator >::indexRhs_, CachingVariable::CachingVariableFactoryArg::m, CachingVariable::CachingVariableFactoryArg::n, TwoObjectVariable< LHS, lLHS, RHS, lRHS, Calculator >::srcLhs_, TwoObjectVariable< LHS, lLHS, RHS, lRHS, Calculator >::srcRhs_, and contentValuesCheck::ss.

434  :
435  CachingVariable(Calculator::calculationType()+std::string(lLHS)+std::string(lRHS),arg.n,arg.iConfig,iC),
436  srcLhsTag_(edm::Service<InputTagDistributorService>()->retrieve("srcLhs",arg.iConfig)),
437  srcLhs_(iC.consumes<std::vector<LHS> >(srcLhsTag_)),
438  indexLhs_(arg.iConfig.getParameter<unsigned int>("indexLhs")),
439  srcRhsTag_(edm::Service<InputTagDistributorService>()->retrieve("srcRhs",arg.iConfig)),
440  srcRhs_(iC.consumes<std::vector<RHS> >(srcRhsTag_)),
441  indexRhs_(arg.iConfig.getParameter<unsigned int>("indexRhs"))
442  {
443  std::stringstream ss;
445  ss<<"with Obj1 at index: "<<indexLhs_<<" of: "<<srcLhs_;
446  addDescriptionLine(ss.str()); ss.str("");
447  ss<<"with Obj2 at index: "<<indexRhs_<<" of: "<<srcRhs_;
448  addDescriptionLine(ss.str()); ss.str("");
449  arg.m[arg.n]=this;
450  }
CachingVariable(std::string m, std::string n, const edm::ParameterSet &iConfig, edm::ConsumesCollector &iC)
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
edm::EDGetTokenT< std::vector< LHS > > srcLhs_
A arg
Definition: Factorize.h:36
edm::InputTag srcLhsTag_
unsigned int indexLhs_
void addDescriptionLine(const std::string &s)
edm::InputTag srcRhsTag_
tuple description
Definition: idDealer.py:66
unsigned int indexRhs_
edm::EDGetTokenT< std::vector< RHS > > srcRhs_

Member Function Documentation

template<typename LHS , const char * lLHS, typename RHS , const char * lRHS, typename Calculator >
virtual CachingVariable::valueType TwoObjectVariable< LHS, lLHS, RHS, lRHS, Calculator >::calculate ( getObject o) const
inlinevirtual
template<typename LHS , const char * lLHS, typename RHS , const char * lRHS, typename Calculator >
CachingVariable::evalType TwoObjectVariable< LHS, lLHS, RHS, lRHS, Calculator >::eval ( const edm::Event iEvent) const
inlinevirtual

Reimplemented from CachingVariable.

Definition at line 493 of file CachingVariable.h.

References TwoObjectVariable< LHS, lLHS, RHS, lRHS, Calculator >::calculate(), python.connectstrParser::o, TwoObjectVariable< LHS, lLHS, RHS, lRHS, Calculator >::objects(), and TwoObjectVariable< LHS, lLHS, RHS, lRHS, Calculator >::getObject::test.

493  {
494  getObject o=objects(iEvent);
495  if (!o.test) return std::make_pair(false,0);
496  return std::make_pair(true,calculate(o));
497  }
TObject * getObject(TDirectory *fDir, const std::vector< std::string > &fObjectName)
Definition: compareHists.cc:44
getObject objects(const edm::Event &iEvent) const
virtual CachingVariable::valueType calculate(getObject &o) const
template<typename LHS , const char * lLHS, typename RHS , const char * lRHS, typename Calculator >
getObject TwoObjectVariable< LHS, lLHS, RHS, lRHS, Calculator >::objects ( const edm::Event iEvent) const
inline

Definition at line 459 of file CachingVariable.h.

References edm::HandleBase::failedToGet(), edm::Event::getByToken(), TwoObjectVariable< LHS, lLHS, RHS, lRHS, Calculator >::indexLhs_, TwoObjectVariable< LHS, lLHS, RHS, lRHS, Calculator >::indexRhs_, TwoObjectVariable< LHS, lLHS, RHS, lRHS, Calculator >::getObject::lhs, LogDebug, CachingVariable::name(), TwoObjectVariable< LHS, lLHS, RHS, lRHS, Calculator >::getObject::rhs, TwoObjectVariable< LHS, lLHS, RHS, lRHS, Calculator >::srcLhs_, TwoObjectVariable< LHS, lLHS, RHS, lRHS, Calculator >::srcLhsTag_, TwoObjectVariable< LHS, lLHS, RHS, lRHS, Calculator >::srcRhs_, TwoObjectVariable< LHS, lLHS, RHS, lRHS, Calculator >::srcRhsTag_, and TwoObjectVariable< LHS, lLHS, RHS, lRHS, Calculator >::getObject::test.

Referenced by TwoObjectVariable< LHS, lLHS, RHS, lRHS, Calculator >::eval().

459  {
460  getObject failed;
462  iEvent.getByToken(srcLhs_, lhsH);
463  if (lhsH.failedToGet()){
464  LogDebug("TwoObjectVariable")<<name()<<" could not get a collection with label: "<<srcLhsTag_;
465  return failed;}
466  if (indexLhs_>=lhsH->size()){
467  LogDebug("TwoObjectVariable")<<name()<<" tries to access index: "<<indexLhs_<<" of: "<<srcLhsTag_<<" with: "<<lhsH->size()<<" entries.";
468  return failed;}
469  const LHS & lhs = (*lhsH)[indexLhs_];
470 
472  iEvent.getByToken(srcRhs_, rhsH);
473  if (rhsH.failedToGet()){
474  LogDebug("TwoObjectVariable")<<name()<<" could not get a collection with label: "<<srcLhsTag_;
475  return failed;}
476 
477  if (indexRhs_>=rhsH->size()){
478  LogDebug("TwoObjectVariable")<<name()<<" tries to access index: "<<indexRhs_<<" of: "<<srcRhsTag_<<" with: "<<rhsH->size()<<" entries.";
479  return failed;}
480  const RHS & rhs = (*rhsH)[indexRhs_];
481 
482  failed.test=true;
483  failed.lhs=&lhs;
484  failed.rhs=&rhs;
485  return failed;
486  }
#define LogDebug(id)
TObject * getObject(TDirectory *fDir, const std::vector< std::string > &fObjectName)
Definition: compareHists.cc:44
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:464
edm::EDGetTokenT< std::vector< LHS > > srcLhs_
edm::InputTag srcLhsTag_
unsigned int indexLhs_
edm::InputTag srcRhsTag_
bool failedToGet() const
Definition: HandleBase.h:79
unsigned int indexRhs_
const std::string & name() const
edm::EDGetTokenT< std::vector< RHS > > srcRhs_

Member Data Documentation

template<typename LHS , const char * lLHS, typename RHS , const char * lRHS, typename Calculator >
unsigned int TwoObjectVariable< LHS, lLHS, RHS, lRHS, Calculator >::indexLhs_
private
template<typename LHS , const char * lLHS, typename RHS , const char * lRHS, typename Calculator >
unsigned int TwoObjectVariable< LHS, lLHS, RHS, lRHS, Calculator >::indexRhs_
private
template<typename LHS , const char * lLHS, typename RHS , const char * lRHS, typename Calculator >
edm::EDGetTokenT<std::vector<LHS> > TwoObjectVariable< LHS, lLHS, RHS, lRHS, Calculator >::srcLhs_
private
template<typename LHS , const char * lLHS, typename RHS , const char * lRHS, typename Calculator >
edm::InputTag TwoObjectVariable< LHS, lLHS, RHS, lRHS, Calculator >::srcLhsTag_
private
template<typename LHS , const char * lLHS, typename RHS , const char * lRHS, typename Calculator >
edm::EDGetTokenT<std::vector<RHS> > TwoObjectVariable< LHS, lLHS, RHS, lRHS, Calculator >::srcRhs_
private
template<typename LHS , const char * lLHS, typename RHS , const char * lRHS, typename Calculator >
edm::InputTag TwoObjectVariable< LHS, lLHS, RHS, lRHS, Calculator >::srcRhsTag_
private