CMS 3D CMS Logo

List of all members | Classes | Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | Friends
CachingVariable Class Reference

#include <CachingVariable.h>

Inheritance diagram for CachingVariable:
ComputedVariable ExpressionVariable< Object, label > HLTBitVariable RazorBox SimpleValueVariable< TYPE > SimpleValueVectorVariable< TYPE > Splitter TwoObjectVariable< LHS, lLHS, RHS, lRHS, Calculator > VariablePower

Classes

struct  CachingVariableFactoryArg
 

Public Types

typedef std::pair< bool, valueTypeevalType
 
typedef double valueType
 
typedef std::map< std::string, const CachingVariable * > vMap
 

Public Member Functions

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 ()
 

Protected Member Functions

evalTypebaseEval (const edm::Event &iEvent) const
 
virtual evalType eval (const edm::Event &iEvent) const
 
bool notSeenThisEventAlready (const edm::Event &iEvent) const
 
void setCache (valueType &v) const
 
void setNotCompute () const
 

Protected Attributes

evalType cache_
 
edm::ParameterSet conf_
 
Description d_
 
edm::Event::CacheIdentifier_t eventCacheID_ = 0
 
std::string holderName_
 
std::string method_
 
std::string name_
 

Friends

class VariableComputer
 

Detailed Description

Definition at line 40 of file CachingVariable.h.

Member Typedef Documentation

◆ evalType

typedef std::pair<bool, valueType> CachingVariable::evalType

Definition at line 44 of file CachingVariable.h.

◆ valueType

Definition at line 43 of file CachingVariable.h.

◆ vMap

typedef std::map<std::string, const CachingVariable*> CachingVariable::vMap

Definition at line 45 of file CachingVariable.h.

Constructor & Destructor Documentation

◆ CachingVariable()

CachingVariable::CachingVariable ( std::string  m,
std::string  n,
const edm::ParameterSet iConfig,
edm::ConsumesCollector iC 
)
inline

Definition at line 55 of file CachingVariable.h.

56  : cache_(std::make_pair(false, 0)), method_(m), name_(n), conf_(iConfig) {}
std::string method_
edm::ParameterSet conf_
std::string name_

◆ ~CachingVariable()

virtual CachingVariable::~CachingVariable ( )
inlinevirtual

Definition at line 58 of file CachingVariable.h.

58 {}

Member Function Documentation

◆ addDescriptionLine()

void CachingVariable::addDescriptionLine ( const std::string &  s)
inline

◆ baseEval()

evalType& CachingVariable::baseEval ( const edm::Event iEvent) const
inlineprotected

Definition at line 90 of file CachingVariable.h.

References cache_, eval(), holderName_, iEvent, LogDebug, name_, and notSeenThisEventAlready().

Referenced by compute(), and operator()().

90  {
92  LogDebug("CachingVariable") << name_ + ":" + holderName_ << " is checking once";
93  cache_ = eval(iEvent);
94  }
95  return cache_;
96  }
std::string holderName_
virtual evalType eval(const edm::Event &iEvent) const
int iEvent
Definition: GenABIO.cc:224
std::string name_
bool notSeenThisEventAlready(const edm::Event &iEvent) const
#define LogDebug(id)

◆ compute()

bool CachingVariable::compute ( const edm::Event iEvent) const
inline

Definition at line 61 of file CachingVariable.h.

References baseEval(), and iEvent.

Referenced by ConfigurableHisto::fill(), and SplittingConfigurableHisto::fill().

61 { return baseEval(iEvent).first; }
int iEvent
Definition: GenABIO.cc:224
evalType & baseEval(const edm::Event &iEvent) const

◆ description()

const Description& CachingVariable::description ( ) const
inline

Definition at line 68 of file CachingVariable.h.

References d_.

Referenced by print().

68 { return d_; }

◆ eval()

virtual evalType CachingVariable::eval ( const edm::Event iEvent) const
inlineprotectedvirtual

◆ holderName()

const std::string& CachingVariable::holderName ( ) const
inline

Definition at line 70 of file CachingVariable.h.

References holderName_.

70 { return holderName_; }
std::string holderName_

◆ method()

const std::string& CachingVariable::method ( ) const
inline

Definition at line 67 of file CachingVariable.h.

References method_.

Referenced by ExpressionVariable< Object, label >::eval().

67 { return method_; }
std::string method_

◆ name()

const std::string& CachingVariable::name ( void  ) const
inline

◆ notSeenThisEventAlready()

bool CachingVariable::notSeenThisEventAlready ( const edm::Event iEvent) const
inlineprotected

Definition at line 97 of file CachingVariable.h.

References eventCacheID_, iEvent, and WZElectronSkims53X_cff::max.

Referenced by baseEval().

97  {
99  eventCacheID_ != iEvent.cacheIdentifier());
100  if (retValue) {
101  eventCacheID_ = iEvent.cacheIdentifier();
102  }
103  return retValue;
104  }
edm::Event::CacheIdentifier_t eventCacheID_
int iEvent
Definition: GenABIO.cc:224

◆ operator()()

valueType CachingVariable::operator() ( const edm::Event iEvent) const
inline

Definition at line 64 of file CachingVariable.h.

References baseEval(), and iEvent.

64 { return baseEval(iEvent).second; }
int iEvent
Definition: GenABIO.cc:224
evalType & baseEval(const edm::Event &iEvent) const

◆ print()

void CachingVariable::print ( void  ) const
inline

Definition at line 73 of file CachingVariable.h.

References description(), name(), and Description::text().

73 { edm::LogVerbatim("CachingVariable") << name() << "\n" << description().text(); }
Log< level::Info, true > LogVerbatim
const Description & description() const
std::string text() const
const std::string & name() const

◆ setCache()

void CachingVariable::setCache ( valueType v) const
inlineprotected

Definition at line 82 of file CachingVariable.h.

References cache_, and findQualityFiles::v.

82  {
83  cache_.first = true;
84  cache_.second = v;
85  }

◆ setHolder()

void CachingVariable::setHolder ( std::string  hn) const
inline

Definition at line 71 of file CachingVariable.h.

References holderName_.

71 { holderName_ = hn; }
std::string holderName_

◆ setNotCompute()

void CachingVariable::setNotCompute ( ) const
inlineprotected

Definition at line 86 of file CachingVariable.h.

References cache_.

86  {
87  cache_.first = false;
88  cache_.second = 0;
89  }

Friends And Related Function Documentation

◆ VariableComputer

friend class VariableComputer
friend

Definition at line 111 of file CachingVariable.h.

Member Data Documentation

◆ cache_

evalType CachingVariable::cache_
mutableprotected

Definition at line 76 of file CachingVariable.h.

Referenced by baseEval(), ComputedVariable::eval(), setCache(), and setNotCompute().

◆ conf_

edm::ParameterSet CachingVariable::conf_
protected

◆ d_

Description CachingVariable::d_
protected

Definition at line 107 of file CachingVariable.h.

Referenced by addDescriptionLine(), and description().

◆ eventCacheID_

edm::Event::CacheIdentifier_t CachingVariable::eventCacheID_ = 0
mutableprotected

Definition at line 77 of file CachingVariable.h.

Referenced by notSeenThisEventAlready().

◆ holderName_

std::string CachingVariable::holderName_
mutableprotected

Definition at line 81 of file CachingVariable.h.

Referenced by baseEval(), holderName(), and setHolder().

◆ method_

std::string CachingVariable::method_
protected

Definition at line 79 of file CachingVariable.h.

Referenced by method().

◆ name_

std::string CachingVariable::name_
protected

Definition at line 80 of file CachingVariable.h.

Referenced by baseEval(), and name().