DAS  3.0
Das Analysis System
AnonymousWeightableObjectabstract

Description

Abstract class for any object that carries its own weights. A std::vector is used to carry the scale factor and all its variations.

#include <GenericObject.h>

+ Inheritance diagram for AnonymousWeightableObject:
+ Collaboration diagram for AnonymousWeightableObject:

Public Member Functions

virtual double Weight (const Variation &v) const
 
virtual void Clear ()
 
bool operator== (const AnonymousWeightableObject &that) const
 
virtual double Weight (const Variation &v) const
 
virtual void Clear ()
 
bool operator== (const AnonymousWeightableObject &that) const
 

Public Attributes

Weights weights = {{1.,0}}
 

Protected Member Functions

virtual std::string_view WeightGroup () const =0
 
 AnonymousWeightableObject ()=default
 
virtual ~AnonymousWeightableObject ()=default
 
virtual std::string_view WeightGroup () const =0
 
 AnonymousWeightableObject ()=default
 
virtual ~AnonymousWeightableObject ()=default
 
- Protected Member Functions inherited from WeightedObject
virtual ~WeightedObject ()=default
 
virtual ~WeightedObject ()=default
 

Constructor & Destructor Documentation

◆ AnonymousWeightableObject() [1/2]

AnonymousWeightableObject ( )
protecteddefault

◆ ~AnonymousWeightableObject() [1/2]

virtual ~AnonymousWeightableObject ( )
protectedvirtualdefault

◆ AnonymousWeightableObject() [2/2]

AnonymousWeightableObject ( )
protecteddefault

◆ ~AnonymousWeightableObject() [2/2]

virtual ~AnonymousWeightableObject ( )
protectedvirtualdefault

Member Function Documentation

◆ Clear() [1/2]

virtual void Clear ( )
inlinevirtual

Reimplemented in AnonymousFinalStateObject, AnonymousFinalStateObject, RecPV, RecPV, GenPV, GenPV, RecEvent, and RecEvent.

63  {
64  weights = {{1.,0}};
65  }

◆ Clear() [2/2]

virtual void Clear ( )
inlinevirtual

Reimplemented in AnonymousFinalStateObject, AnonymousFinalStateObject, RecPV, RecPV, GenPV, GenPV, RecEvent, and RecEvent.

63  {
64  weights = {{1.,0}};
65  }

◆ operator==() [1/2]

bool operator== ( const AnonymousWeightableObject that) const
inline
68  {
69  return this->weights == that.weights;
70  }

◆ operator==() [2/2]

bool operator== ( const AnonymousWeightableObject that) const
inline
68  {
69  return this->weights == that.weights;
70  }

◆ Weight() [1/2]

virtual double Weight ( const Variation v) const
inlinevirtual

Implements WeightedObject.

48  {
49  if (v.Group() == WeightGroup()) {
50  const struct Weight& w = weights.at(v.Index());
51  if (w.i == v.Bit()) return w;
52  }
53  return weights.at(0);
54  }
55  catch (std::out_of_range& e) {
56  std::stringstream s;
57  s << e.what() << '\n'
58  << v.Group() << ' ' << v.Name() << " is not available.";
59  throw std::out_of_range(s.str());
60  }

◆ Weight() [2/2]

virtual double Weight ( const Variation v) const
inlinevirtual

Implements WeightedObject.

48  {
49  if (v.Group() == WeightGroup()) {
50  const struct Weight& w = weights.at(v.Index());
51  if (w.i == v.Bit()) return w;
52  }
53  return weights.at(0);
54  }
55  catch (std::out_of_range& e) {
56  std::stringstream s;
57  s << e.what() << '\n'
58  << v.Group() << ' ' << v.Name() << " is not available.";
59  throw std::out_of_range(s.str());
60  }

◆ WeightGroup() [1/2]

virtual std::string_view WeightGroup ( ) const
protectedpure virtual

◆ WeightGroup() [2/2]

virtual std::string_view WeightGroup ( ) const
protectedpure virtual

Member Data Documentation

◆ weights

Weights weights = {{1.,0}}

e.g. cross section normalisation


The documentation for this class was generated from the following file:
Darwin::Physics::AnonymousWeightableObject::Weight
virtual double Weight(const Variation &v) const
Definition: GenericObject.h:47
DAS::JetEnergy::w
static const float w
Definition: common.h:53
Darwin::Physics::AnonymousWeightableObject::weights
Weights weights
e.g. cross section normalisation
Definition: GenericObject.h:45
Darwin::Physics::AnonymousWeightableObject::WeightGroup
virtual std::string_view WeightGroup() const =0