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

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

Definition at line 44 of file CachingVariable.h.

Definition at line 43 of file CachingVariable.h.

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

Definition at line 45 of file CachingVariable.h.

Constructor & Destructor Documentation

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

Definition at line 55 of file CachingVariable.h.

virtual CachingVariable::~CachingVariable ( )
inlinevirtual

Definition at line 58 of file CachingVariable.h.

58 {}

Member Function Documentation

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

Definition at line 69 of file CachingVariable.h.

69 { d_.addLine(s); }
void addLine(const std::string &l)
evalType& CachingVariable::baseEval ( const edm::Event iEvent) const
inlineprotected

Definition at line 90 of file CachingVariable.h.

References LogDebug.

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

Definition at line 61 of file CachingVariable.h.

Referenced by VarSplitter::eval(), VariablePower::eval(), SplittingConfigurableHisto::fill(), VariableFormulaEventSelector::select(), and VariableEventSelector::select().

61 { return baseEval(iEvent).first; }
evalType & baseEval(const edm::Event &iEvent) const
const Description& CachingVariable::description ( ) const
inline

Definition at line 68 of file CachingVariable.h.

68 { return d_; }
virtual evalType CachingVariable::eval ( const edm::Event iEvent) const
inlineprotectedvirtual
const std::string& CachingVariable::holderName ( ) const
inline

Definition at line 70 of file CachingVariable.h.

70 { return holderName_; }
std::string holderName_
const std::string& CachingVariable::method ( ) const
inline

Definition at line 67 of file CachingVariable.h.

67 { return method_; }
std::string method_
const std::string& CachingVariable::name ( void  ) const
inline
bool CachingVariable::notSeenThisEventAlready ( const edm::Event iEvent) const
inlineprotected

Definition at line 97 of file CachingVariable.h.

References edm::Event::cacheIdentifier(), and SiStripPI::max.

97  {
99  eventCacheID_ != iEvent.cacheIdentifier());
100  if (retValue) {
101  eventCacheID_ = iEvent.cacheIdentifier();
102  }
103  return retValue;
104  }
edm::Event::CacheIdentifier_t eventCacheID_
CacheIdentifier_t cacheIdentifier() const
Definition: Event.cc:33
valueType CachingVariable::operator() ( const edm::Event iEvent) const
inline

Definition at line 64 of file CachingVariable.h.

64 { return baseEval(iEvent).second; }
evalType & baseEval(const edm::Event &iEvent) const
void CachingVariable::print ( void  ) const
inline

Definition at line 73 of file CachingVariable.h.

References edmLumisInFiles::description, and Skims_PA_cff::name.

73 { edm::LogVerbatim("CachingVariable") << name() << "\n" << description().text(); }
const Description & description() const
std::string text() const
const std::string & name() const
void CachingVariable::setCache ( valueType v) const
inlineprotected

Definition at line 82 of file CachingVariable.h.

References findQualityFiles::v.

82  {
83  cache_.first = true;
84  cache_.second = v;
85  }
void CachingVariable::setHolder ( std::string  hn) const
inline

Definition at line 71 of file CachingVariable.h.

71 { holderName_ = hn; }
std::string holderName_
void CachingVariable::setNotCompute ( ) const
inlineprotected

Definition at line 86 of file CachingVariable.h.

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

Friends And Related Function Documentation

friend class VariableComputer
friend

Definition at line 111 of file CachingVariable.h.

Member Data Documentation

evalType CachingVariable::cache_
mutableprotected

Definition at line 76 of file CachingVariable.h.

edm::ParameterSet CachingVariable::conf_
protected

Definition at line 110 of file CachingVariable.h.

Description CachingVariable::d_
protected

Definition at line 107 of file CachingVariable.h.

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

Definition at line 77 of file CachingVariable.h.

std::string CachingVariable::holderName_
mutableprotected

Definition at line 81 of file CachingVariable.h.

std::string CachingVariable::method_
protected

Definition at line 79 of file CachingVariable.h.

std::string CachingVariable::name_
protected

Definition at line 80 of file CachingVariable.h.