CMS 3D CMS Logo

List of all members | Public Member Functions | Protected Attributes | Static Private Member Functions | Private Attributes
VersionedSelector< T > Class Template Reference

cut-flow versioning info in the event provenance More...

#include "PhysicsTools/SelectorUtils/interface/VersionedSelector.h"

Inheritance diagram for VersionedSelector< T >:
Selector< T >

Public Member Functions

const unsigned bitMap () const
 
vid::CutFlowResult cutFlowResult () const
 
const size_t cutFlowSize () const
 
const unsigned howFarInCutFlow () const
 
void initialize (const edm::ParameterSet &)
 
const unsigned char * md55Raw () const
 
const std::string & md5String () const
 
const std::string & name () const
 
bool operator() (const T &ref, pat::strbitset &ret) final
 This provides the interface for base classes to select objects. More...
 
bool operator() (const T &ref, edm::EventBase const &e, pat::strbitset &ret) final
 This provides an alternative signature that includes extra information. More...
 
bool operator() (typename T::value_type const &t)
 
bool operator() (typename T::value_type const &t, edm::EventBase const &e)
 
bool operator() (T const &t) final
 This provides an alternative signature without the second ret. More...
 
bool operator() (T const &t, edm::EventBase const &e) final
 This provides an alternative signature that includes extra information. More...
 
bool operator== (const VersionedSelector &other) const
 
void setConsumes (edm::ConsumesCollector)
 
 VersionedSelector ()
 
 VersionedSelector (const edm::ParameterSet &conf)
 
- Public Member Functions inherited from Selector< T >
void clear (std::string const &s)
 Turn off a given selection cut. More...
 
void clear (index_type const &i)
 
bool considerCut (std::string const &s) const
 consider the cut at index "s" More...
 
bool considerCut (index_type const &i) const
 
int cut (index_type const &i, int val) const
 Access the int cut values at index "s". More...
 
double cut (index_type const &i, double val) const
 Access the double cut values at index "s". More...
 
int cut (std::string s, int val) const
 Access the int cut values at index "s". More...
 
double cut (std::string s, double val) const
 Access the double cut values at index "s". More...
 
pat::strbitset getBitTemplate () const
 Get an empty bitset with the proper names. More...
 
double getPasses (std::string const &s) const
 Return the number of passing cases. More...
 
double getPasses (index_type const &i) const
 
bool ignoreCut (std::string const &s) const
 ignore the cut at index "s" More...
 
bool ignoreCut (index_type const &i) const
 
bool operator[] (std::string const &s) const
 
bool operator[] (index_type const &i) const
 
void passCut (pat::strbitset &ret, std::string const &s)
 Passing cuts. More...
 
void passCut (pat::strbitset &ret, index_type const &i)
 
void print (std::ostream &out) const
 Print the cut flow. More...
 
void printActiveCuts (std::ostream &out) const
 Print the cuts being considered. More...
 
virtual void push_back (std::string const &s)
 This is the registration of an individual cut string. More...
 
virtual void push_back (std::string const &s, int cut)
 This is the registration of an individual cut string, with an int cut value. More...
 
virtual void push_back (std::string const &s, double cut)
 This is the registration of an individual cut string, with a double cut value. More...
 
 Selector ()
 Constructor clears the bits. More...
 
void set (std::string const &s, bool val=true)
 Set a given selection cut, on or off. More...
 
void set (index_type const &i, bool val=true)
 
void set (std::string const &s, int cut, bool val=true)
 Set a given selection cut, on or off, and reset int cut value. More...
 
void set (index_type const &i, int cut, bool val=true)
 
void set (std::string const &s, double cut, bool val=true)
 Set a given selection cut, on or off, and reset int cut value. More...
 
void set (index_type const &i, double cut, bool val=true)
 
void setIgnored (pat::strbitset &ret)
 set ignored bits More...
 
void setIgnoredCuts (std::vector< std::string > const &bitsToIgnore)
 set the bits to ignore from a vector More...
 
virtual ~Selector ()
 

Protected Attributes

unsigned bitmap_
 
std::vector< typename Selector< T >::index_typecut_indices_
 
std::vector< std::shared_ptr< candf::CandidateCut > > cuts_
 
unsigned howfar_
 
bool initialized_
 
std::vector< bool > needs_event_content_
 
std::vector< double > values_
 
- Protected Attributes inherited from Selector< T >
pat::strbitset bits_
 the bitset indexed by strings More...
 
cut_flow_map cutFlow_
 map of cut flows in "human" order More...
 
double_map doubleCuts_
 the double-value cut map More...
 
int_map intCuts_
 the int-value cut map More...
 
pat::strbitset retInternal_
 internal ret if users don't care about return bits More...
 

Static Private Member Functions

static void validateParamsAreTracked (const edm::ParameterSet &conf)
 

Private Attributes

unsigned char id_md5_ [EVP_MAX_MD_SIZE]
 
std::string md5_string_
 
std::string name_
 

Additional Inherited Members

- Public Types inherited from Selector< T >
typedef std::pair< index_type, size_t > cut_flow_item
 
typedef std::vector< cut_flow_itemcut_flow_map
 
typedef T data_type
 
typedef std::map< index_type, double > double_map
 
typedef pat::strbitset::index_type index_type
 
typedef std::map< index_type, int > int_map
 

Detailed Description

template<class T>
class VersionedSelector< T >

cut-flow versioning info in the event provenance

class template to implement versioning for IDs that's available in the event provenance or available by hash-code in the event record

Author
Lindsey Gray

Definition at line 46 of file VersionedSelector.h.

Constructor & Destructor Documentation

◆ VersionedSelector() [1/2]

template<class T >
VersionedSelector< T >::VersionedSelector ( )
inline

Definition at line 48 of file VersionedSelector.h.

48 : Selector<T>(), initialized_(false) {}
Functor that operates on <T>
Definition: Selector.h:22

◆ VersionedSelector() [2/2]

template<class T >
VersionedSelector< T >::VersionedSelector ( const edm::ParameterSet conf)
inline

Definition at line 50 of file VersionedSelector.h.

References edm::ParameterSet::dump(), EVP_MD_CTX_free, EVP_MD_CTX_new, Selector< T >::getBitTemplate(), edm::ParameterSet::getParameter(), mps_fire::i, VersionedSelector< T >::id_md5_, VersionedSelector< T >::initialize(), VersionedSelector< T >::md5_string_, VersionedSelector< T >::name_, NULL, cms::openssl_init(), Selector< T >::retInternal_, AlCaHLTBitMon_QueryRunRegistry::string, createJobs::tmp, edm::ParameterSet::trackedPart(), and VersionedSelector< T >::validateParamsAreTracked().

50  : Selector<T>(), initialized_(false) {
52 
53  name_ = conf.getParameter<std::string>("idName");
54 
55  // now setup the md5 and cute accessor functions
57  EVP_MD_CTX* mdctx = EVP_MD_CTX_new();
58  const EVP_MD* md = EVP_get_digestbyname("MD5");
59  unsigned int md_len = 0;
60  std::string tracked(conf.trackedPart().dump());
61 
62  EVP_DigestInit_ex(mdctx, md, NULL);
63  EVP_DigestUpdate(mdctx, tracked.c_str(), tracked.size());
64  EVP_DigestFinal_ex(mdctx, id_md5_, &md_len);
65  EVP_MD_CTX_free(mdctx);
66  id_md5_[md_len] = 0;
67  char tmp[EVP_MAX_MD_SIZE * 2 + 1];
68  for (unsigned int i = 0; i < md_len; i++) {
69  ::sprintf(&tmp[i * 2], "%02x", id_md5_[i]);
70  }
71  tmp[md_len * 2] = 0;
72  md5_string_ = tmp;
73  initialize(conf);
74  this->retInternal_ = this->getBitTemplate();
75  }
void openssl_init()
Definition: openssl_init.cc:5
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
ParameterSet trackedPart() const
#define NULL
Definition: scimark2.h:8
pat::strbitset retInternal_
internal ret if users don&#39;t care about return bits
Definition: Selector.h:242
#define EVP_MD_CTX_free
Definition: openssl_init.h:7
void initialize(const edm::ParameterSet &)
#define EVP_MD_CTX_new
Definition: openssl_init.h:6
Functor that operates on <T>
Definition: Selector.h:22
pat::strbitset getBitTemplate() const
Get an empty bitset with the proper names.
Definition: Selector.h:168
std::string dump(unsigned int indent=0) const
static void validateParamsAreTracked(const edm::ParameterSet &conf)
tmp
align.sh
Definition: createJobs.py:716
unsigned char id_md5_[EVP_MAX_MD_SIZE]

Member Function Documentation

◆ bitMap()

template<class T >
const unsigned VersionedSelector< T >::bitMap ( ) const
inline

Definition at line 152 of file VersionedSelector.h.

References VersionedSelector< T >::bitmap_.

152 { return bitmap_; }

◆ cutFlowResult()

template<class T >
vid::CutFlowResult VersionedSelector< T >::cutFlowResult ( ) const

Definition at line 254 of file VersionedSelector.h.

References heavyIonCSV_trainingSettings::idx, Skims_PA_cff::name, and AlCaHLTBitMon_QueryRunRegistry::string.

254  {
255  std::map<std::string, unsigned> names_to_index;
256  std::map<std::string, unsigned> cut_counter;
257  for (unsigned idx = 0; idx < cuts_.size(); ++idx) {
258  const std::string& name = cuts_[idx]->name();
259  if (!cut_counter.count(name))
260  cut_counter[name] = 0;
261  std::stringstream realname;
262  realname << name << "_" << cut_counter[name];
263  names_to_index.emplace(realname.str(), idx);
264  cut_counter[name]++;
265  }
266  return vid::CutFlowResult(name_, md5_string_, names_to_index, values_, bitmap_);
267 }
std::vector< double > values_
const std::string & name() const
std::vector< std::shared_ptr< candf::CandidateCut > > cuts_

◆ cutFlowSize()

template<class T >
const size_t VersionedSelector< T >::cutFlowSize ( ) const
inline

Definition at line 154 of file VersionedSelector.h.

References VersionedSelector< T >::cuts_.

154 { return cuts_.size(); }
std::vector< std::shared_ptr< candf::CandidateCut > > cuts_

◆ howFarInCutFlow()

template<class T >
const unsigned VersionedSelector< T >::howFarInCutFlow ( ) const
inline

Definition at line 150 of file VersionedSelector.h.

References VersionedSelector< T >::howfar_.

150 { return howfar_; }

◆ initialize()

template<class T >
void VersionedSelector< T >::initialize ( const edm::ParameterSet conf)

Definition at line 200 of file VersionedSelector.h.

References CINT_GUARD, HLT_2022v15_cff::distance, Exception, get, edm::ParameterSet::getParameterSetVector(), Skims_PA_cff::name, push_back(), and AlCaHLTBitMon_QueryRunRegistry::string.

Referenced by VersionedSelector< T >::VersionedSelector().

200  {
201  if (initialized_) {
202  edm::LogWarning("VersionedPatElectronSelector") << "ID was already initialized!";
203  return;
204  }
205  const std::vector<edm::ParameterSet>& cutflow = conf.getParameterSetVector("cutFlow");
206  if (cutflow.empty()) {
207  throw cms::Exception("InvalidCutFlow") << "You have supplied a null/empty cutflow to VersionedIDSelector,"
208  << " please add content to the cuflow and try again.";
209  }
210 
211  // this lets us keep track of cuts without knowing what they are :D
212  std::vector<edm::ParameterSet>::const_iterator cbegin(cutflow.begin()), cend(cutflow.end());
213  std::vector<edm::ParameterSet>::const_iterator icut = cbegin;
214  std::map<std::string, unsigned> cut_counter;
215  std::vector<std::string> ignored_cuts;
216  for (; icut != cend; ++icut) {
217  std::stringstream realname;
218  const std::string& name = icut->getParameter<std::string>("cutName");
219  if (!cut_counter.count(name))
220  cut_counter[name] = 0;
221  realname << name << "_" << cut_counter[name];
222  const bool needsContent = icut->getParameter<bool>("needsAdditionalProducts");
223  const bool ignored = icut->getParameter<bool>("isIgnored");
224  CINT_GUARD(cuts_.emplace_back(CutApplicatorFactory::get()->create(name, *icut)));
225  needs_event_content_.push_back(needsContent);
226  const std::string therealname = realname.str();
227  this->push_back(therealname);
228  this->set(therealname);
229  if (ignored)
230  ignored_cuts.push_back(therealname);
231  cut_counter[name]++;
232  }
233  this->setIgnoredCuts(ignored_cuts);
234 
235  //have to loop again to set cut indices after all are filled
236  icut = cbegin;
237  cut_counter.clear();
238  for (; icut != cend; ++icut) {
239  std::stringstream realname;
240  const std::string& name = cuts_[std::distance(cbegin, icut)]->name();
241  if (!cut_counter.count(name))
242  cut_counter[name] = 0;
243  realname << name << "_" << cut_counter[name];
244  cut_indices_.push_back(typename Selector<T>::index_type(&(this->bits_), realname.str()));
245  cut_counter[name]++;
246  }
247 
248  initialized_ = true;
249 }
const std::string & name() const
std::vector< std::shared_ptr< candf::CandidateCut > > cuts_
std::vector< bool > needs_event_content_
pat::strbitset bits_
the bitset indexed by strings
Definition: Selector.h:241
virtual void push_back(std::string const &s)
This is the registration of an individual cut string.
Definition: Selector.h:42
VParameterSet const & getParameterSetVector(std::string const &name) const
#define CINT_GUARD(CODE)
void setIgnoredCuts(std::vector< std::string > const &bitsToIgnore)
set the bits to ignore from a vector
Definition: Selector.h:131
#define get
Log< level::Warning, false > LogWarning
std::vector< typename Selector< T >::index_type > cut_indices_

◆ md55Raw()

template<class T >
const unsigned char* VersionedSelector< T >::md55Raw ( ) const
inline

Definition at line 141 of file VersionedSelector.h.

References VersionedSelector< T >::id_md5_.

141 { return id_md5_; }
unsigned char id_md5_[EVP_MAX_MD_SIZE]

◆ md5String()

template<class T >
const std::string& VersionedSelector< T >::md5String ( ) const
inline

Definition at line 146 of file VersionedSelector.h.

References VersionedSelector< T >::md5_string_.

Referenced by VIDSelectorBase.VIDSelectorBase::initialize().

146 { return md5_string_; }

◆ name()

template<class T >
const std::string& VersionedSelector< T >::name ( void  ) const
inline

◆ operator()() [1/6]

template<class T >
bool VersionedSelector< T >::operator() ( const T t,
pat::strbitset ret 
)
inlinefinalvirtual

This provides the interface for base classes to select objects.

Implements Selector< T >.

Definition at line 77 of file VersionedSelector.h.

References VersionedSelector< T >::bitmap_, VersionedSelector< T >::cut_indices_, VersionedSelector< T >::cuts_, Exception, runEdmFileComparison::failed, VersionedSelector< T >::howfar_, mps_fire::i, Selector< T >::ignoreCut(), VersionedSelector< T >::initialized_, Selector< T >::passCut(), mps_fire::result, runTheMatrix::ret, Selector< T >::setIgnored(), groupFilesInBlocks::temp, relativeConstraints::value, and VersionedSelector< T >::values_.

Referenced by VersionedSelector< T >::operator()().

77  {
78  howfar_ = 0;
79  bitmap_ = 0;
80  values_.clear();
81  bool failed = false;
82  if (!initialized_) {
83  throw cms::Exception("CutNotInitialized") << "VersionedGsfElectronSelector not initialized!" << std::endl;
84  }
85  for (unsigned i = 0; i < cuts_.size(); ++i) {
87  const bool result = (*cuts_[i])(temp);
88  values_.push_back(cuts_[i]->value(temp));
89  if (result || this->ignoreCut(cut_indices_[i])) {
90  this->passCut(ret, cut_indices_[i]);
91  bitmap_ |= 1 << i;
92  if (!failed)
93  ++howfar_;
94  } else {
95  failed = true;
96  }
97  }
98  this->setIgnored(ret);
99  return (bool)ret;
100  }
bool ignoreCut(std::string const &s) const
ignore the cut at index "s"
Definition: Selector.h:127
std::vector< double > values_
ret
prodAgent to be discontinued
void setIgnored(pat::strbitset &ret)
set ignored bits
Definition: Selector.h:181
std::vector< std::shared_ptr< candf::CandidateCut > > cuts_
void passCut(pat::strbitset &ret, std::string const &s)
Passing cuts.
Definition: Selector.h:142
std::vector< typename Selector< T >::index_type > cut_indices_

◆ operator()() [2/6]

template<class T >
bool VersionedSelector< T >::operator() ( const T t,
edm::EventBase const &  e,
pat::strbitset ret 
)
inlinefinalvirtual

This provides an alternative signature that includes extra information.

Reimplemented from Selector< T >.

Definition at line 102 of file VersionedSelector.h.

References VersionedSelector< T >::cuts_, MillePedeFileConverter_cfg::e, CutApplicatorWithEventContentBase::getEventContent(), mps_fire::i, VersionedSelector< T >::needs_event_content_, VersionedSelector< T >::operator()(), and runTheMatrix::ret.

102  {
103  // setup isolation needs
104  for (size_t i = 0, cutssize = cuts_.size(); i < cutssize; ++i) {
105  if (needs_event_content_[i]) {
107  needsEvent->getEventContent(e);
108  }
109  }
110  return this->operator()(ref, ret);
111  }
ret
prodAgent to be discontinued
std::vector< std::shared_ptr< candf::CandidateCut > > cuts_
std::vector< bool > needs_event_content_
virtual void getEventContent(const edm::EventBase &)=0
bool operator()(const T &ref, pat::strbitset &ret) final
This provides the interface for base classes to select objects.

◆ operator()() [3/6]

template<class T >
bool VersionedSelector< T >::operator() ( typename T::value_type const &  t)
inline

Definition at line 117 of file VersionedSelector.h.

References VersionedSelector< T >::operator()(), submitPVValidationJobs::t, and groupFilesInBlocks::temp.

117  {
118  const T temp(&t, 0); // assuming T is edm::Ptr
119  return this->operator()(temp);
120  }
long double T
bool operator()(const T &ref, pat::strbitset &ret) final
This provides the interface for base classes to select objects.

◆ operator()() [4/6]

template<class T >
bool VersionedSelector< T >::operator() ( typename T::value_type const &  t,
edm::EventBase const &  e 
)
inline

Definition at line 122 of file VersionedSelector.h.

References MillePedeFileConverter_cfg::e, VersionedSelector< T >::operator()(), submitPVValidationJobs::t, and groupFilesInBlocks::temp.

122  {
123  const T temp(&t, 0);
124  return this->operator()(temp, e);
125  }
long double T
bool operator()(const T &ref, pat::strbitset &ret) final
This provides the interface for base classes to select objects.

◆ operator()() [5/6]

template<class T >
bool VersionedSelector< T >::operator() ( T const &  t)
inlinefinalvirtual

This provides an alternative signature without the second ret.

Reimplemented from Selector< T >.

Definition at line 127 of file VersionedSelector.h.

References VersionedSelector< T >::operator()(), Selector< T >::retInternal_, pat::strbitset::set(), Selector< T >::setIgnored(), and submitPVValidationJobs::t.

127  {
128  this->retInternal_.set(false);
129  this->operator()(t, this->retInternal_);
130  this->setIgnored(this->retInternal_);
131  return (bool)this->retInternal_;
132  }
void setIgnored(pat::strbitset &ret)
set ignored bits
Definition: Selector.h:181
pat::strbitset retInternal_
internal ret if users don&#39;t care about return bits
Definition: Selector.h:242
strbitset & set(bool val=true)
set method of all bits
Definition: strbitset.h:126
bool operator()(const T &ref, pat::strbitset &ret) final
This provides the interface for base classes to select objects.

◆ operator()() [6/6]

template<class T >
bool VersionedSelector< T >::operator() ( T const &  t,
edm::EventBase const &  e 
)
inlinefinalvirtual

This provides an alternative signature that includes extra information.

Reimplemented from Selector< T >.

Definition at line 134 of file VersionedSelector.h.

References MillePedeFileConverter_cfg::e, VersionedSelector< T >::operator()(), Selector< T >::retInternal_, pat::strbitset::set(), Selector< T >::setIgnored(), and submitPVValidationJobs::t.

134  {
135  this->retInternal_.set(false);
136  this->operator()(t, e, this->retInternal_);
137  this->setIgnored(this->retInternal_);
138  return (bool)this->retInternal_;
139  }
void setIgnored(pat::strbitset &ret)
set ignored bits
Definition: Selector.h:181
pat::strbitset retInternal_
internal ret if users don&#39;t care about return bits
Definition: Selector.h:242
strbitset & set(bool val=true)
set method of all bits
Definition: strbitset.h:126
bool operator()(const T &ref, pat::strbitset &ret) final
This provides the interface for base classes to select objects.

◆ operator==()

template<class T >
bool VersionedSelector< T >::operator== ( const VersionedSelector< T > &  other) const
inline

Definition at line 142 of file VersionedSelector.h.

References VersionedSelector< T >::id_md5_, and trackingPlots::other.

142  {
143  constexpr unsigned length = EVP_MAX_MD_SIZE;
144  return (0 == memcmp(id_md5_, other.id_md5_, length * sizeof(unsigned char)));
145  }
unsigned char id_md5_[EVP_MAX_MD_SIZE]

◆ setConsumes()

template<class T >
void VersionedSelector< T >::setConsumes ( edm::ConsumesCollector  cc)

Definition at line 271 of file VersionedSelector.h.

References Exception, mps_fire::i, Skims_PA_cff::name, and CutApplicatorWithEventContentBase::setConsumes().

271  {
272  for (size_t i = 0, cutssize = cuts_.size(); i < cutssize; ++i) {
273  if (needs_event_content_[i]) {
274  CutApplicatorWithEventContentBase* needsEvent = dynamic_cast<CutApplicatorWithEventContentBase*>(cuts_[i].get());
275  if (nullptr != needsEvent) {
276  needsEvent->setConsumes(cc);
277  } else {
278  throw cms::Exception("InvalidCutConfiguration") << "Cut: " << ((CutApplicatorBase*)cuts_[i].get())->name()
279  << " configured to consume event products but does not "
280  << " inherit from CutApplicatorWithEventContenBase "
281  << " please correct either your python or C++!";
282  }
283  }
284  }
285 }
const std::string & name() const
std::vector< std::shared_ptr< candf::CandidateCut > > cuts_
std::vector< bool > needs_event_content_
virtual void setConsumes(edm::ConsumesCollector &)=0

◆ validateParamsAreTracked()

template<class T >
static void VersionedSelector< T >::validateParamsAreTracked ( const edm::ParameterSet conf)
inlinestaticprivate

Definition at line 170 of file VersionedSelector.h.

References edm::ParameterSet::copyFrom(), edm::ParameterSet::dump(), Exception, edm::ParameterSet::existsAs(), edm::ParameterSet::getParameterNames(), AlCaHLTBitMon_QueryRunRegistry::string, edm::ParameterSet::trackedPart(), and Types::untracked.

Referenced by VersionedSelector< T >::VersionedSelector().

170  {
171  edm::ParameterSet trackedPart = conf.trackedPart();
172  edm::ParameterSet confWithoutIsPOGApproved;
173  for (auto& paraName : conf.getParameterNames()) {
174  if (paraName != "isPOGApproved")
175  confWithoutIsPOGApproved.copyFrom(conf, paraName);
176  else if (conf.existsAs<bool>(paraName, true))
177  confWithoutIsPOGApproved.copyFrom(conf, paraName); //adding isPOGApproved if its a tracked bool
178  }
179  std::string tracked(conf.trackedPart().dump()), untracked(confWithoutIsPOGApproved.dump());
180  if (tracked != untracked) {
181  throw cms::Exception("InvalidConfiguration") << "VersionedSelector does not allow untracked parameters"
182  << " in the cutflow ParameterSet!";
183  }
184  }
untracked
Definition: Types.py:34
ParameterSet trackedPart() const
bool existsAs(std::string const &parameterName, bool trackiness=true) const
checks if a parameter exists as a given type
Definition: ParameterSet.h:171
void copyFrom(ParameterSet const &from, std::string const &name)
std::string dump(unsigned int indent=0) const
std::vector< std::string > getParameterNames() const

Member Data Documentation

◆ bitmap_

template<class T >
unsigned VersionedSelector< T >::bitmap_
protected

◆ cut_indices_

template<class T >
std::vector<typename Selector<T>::index_type> VersionedSelector< T >::cut_indices_
protected

Definition at line 190 of file VersionedSelector.h.

Referenced by VersionedSelector< T >::operator()().

◆ cuts_

template<class T >
std::vector<std::shared_ptr< candf::CandidateCut > > VersionedSelector< T >::cuts_
protected

◆ howfar_

template<class T >
unsigned VersionedSelector< T >::howfar_
protected

◆ id_md5_

template<class T >
unsigned char VersionedSelector< T >::id_md5_[EVP_MAX_MD_SIZE]
private

◆ initialized_

template<class T >
bool VersionedSelector< T >::initialized_
protected

Definition at line 187 of file VersionedSelector.h.

Referenced by VersionedSelector< T >::operator()().

◆ md5_string_

template<class T >
std::string VersionedSelector< T >::md5_string_
private

◆ name_

template<class T >
std::string VersionedSelector< T >::name_
private

◆ needs_event_content_

template<class T >
std::vector<bool> VersionedSelector< T >::needs_event_content_
protected

Definition at line 189 of file VersionedSelector.h.

Referenced by VersionedSelector< T >::operator()().

◆ values_

template<class T >
std::vector<double> VersionedSelector< T >::values_
protected

Definition at line 192 of file VersionedSelector.h.

Referenced by VersionedSelector< T >::operator()().