DAS  3.0
Das Analysis System
Di< Obj1, Obj2 >

Description

template<typename Obj1, typename Obj2>
class Darwin::Physics::Di< Obj1, Obj2 >

Generic template class to store of a system of 2 objects and facilitate the handling of the variations as well as the calculation of frequent variables.

Obj1 and Obj2 are expected to be either derivated from GenericObjects or other specialisations of Di<> itself. Such nesting allows for complex objects such as Z+jets or ttbar systems.

The components of the system are not stored directly but are pointers to existing objects to avoid redundancy / inconsistencies and keep the object light.

To obtain variations of the composite system, an instance of Darwin::Physics::Variation may be given as argument of all relevant methods. This object is passed over to the components of the system.

#include <Di.h>

+ Inheritance diagram for Di< Obj1, Obj2 >:
+ Collaboration diagram for Di< Obj1, Obj2 >:

Public Member Functions

 operator bool () const
 
void clear ()
 
FourVector CorrP4 (const Variation &v=nominal) const override
 
float CorrPt (const Variation &v=nominal) const override
 
float Rapidity (const Variation &v=nominal) const
 
float AbsRap (const Variation &v=nominal) const
 
float DeltaEta (const Variation &v=nominal) const
 
float DeltaPhi (const Variation &v=nominal) const
 
float DeltaR (const Variation &v=nominal) const
 
float Yboost (const Variation &v=nominal) const
 
float Ystar (const Variation &v=nominal) const
 
float Ymax (const Variation &v=nominal) const
 
float HT (const Variation &v=nominal) const
 
double Weight (const Variation &v=nominal) const override
 
 operator bool () const
 
void clear ()
 
FourVector CorrP4 (const Variation &v=nominal) const override
 
float CorrPt (const Variation &v=nominal) const override
 
float Rapidity (const Variation &v=nominal) const
 
float AbsRap (const Variation &v=nominal) const
 
float DeltaEta (const Variation &v=nominal) const
 
float DeltaPhi (const Variation &v=nominal) const
 
float DeltaR (const Variation &v=nominal) const
 
float Yboost (const Variation &v=nominal) const
 
float Ystar (const Variation &v=nominal) const
 
float Ymax (const Variation &v=nominal) const
 
float HT (const Variation &v=nominal) const
 
double Weight (const Variation &v=nominal) const override
 
- Public Member Functions inherited from AbstractGenericObject
 AbstractGenericObject ()=default
 
virtual ~AbstractGenericObject ()=default
 
 AbstractGenericObject ()=default
 
virtual ~AbstractGenericObject ()=default
 

Member Function Documentation

◆ AbsRap() [1/2]

float AbsRap ( const Variation v = nominal) const
inline
52 { return std::abs(Rapidity(v)); }

◆ AbsRap() [2/2]

float AbsRap ( const Variation v = nominal) const
inline
52 { return std::abs(Rapidity(v)); }

◆ clear() [1/2]

void clear ( )
inline
46 { first = nullptr; second = nullptr; }

◆ clear() [2/2]

void clear ( )
inline
46 { first = nullptr; second = nullptr; }

◆ CorrP4() [1/2]

FourVector CorrP4 ( const Variation v = nominal) const
inlineoverridevirtual

Implements AbstractGenericObject.

48 { return first->CorrP4(v) + second->CorrP4(v); }

◆ CorrP4() [2/2]

FourVector CorrP4 ( const Variation v = nominal) const
inlineoverridevirtual

Implements AbstractGenericObject.

48 { return first->CorrP4(v) + second->CorrP4(v); }

◆ CorrPt() [1/2]

float CorrPt ( const Variation v = nominal) const
inlineoverridevirtual

Implements AbstractGenericObject.

49 { return CorrP4(v).Pt(); }

◆ CorrPt() [2/2]

float CorrPt ( const Variation v = nominal) const
inlineoverridevirtual

Implements AbstractGenericObject.

49 { return CorrP4(v).Pt(); }

◆ DeltaEta() [1/2]

float DeltaEta ( const Variation v = nominal) const
inline
54 { return second->CorrP4(v).Eta() - first->CorrP4(v).Eta(); }

◆ DeltaEta() [2/2]

float DeltaEta ( const Variation v = nominal) const
inline
54 { return second->CorrP4(v).Eta() - first->CorrP4(v).Eta(); }

◆ DeltaPhi() [1/2]

float DeltaPhi ( const Variation v = nominal) const
inline
55  { return ROOT::Math::VectorUtil::DeltaPhi(first->CorrP4(v),
56  second->CorrP4(v)); }

◆ DeltaPhi() [2/2]

float DeltaPhi ( const Variation v = nominal) const
inline
55  { return ROOT::Math::VectorUtil::DeltaPhi(first->CorrP4(v),
56  second->CorrP4(v)); }

◆ DeltaR() [1/2]

float DeltaR ( const Variation v = nominal) const
inline
57  { return ROOT::Math::VectorUtil::DeltaR (first->CorrP4(v),
58  second->CorrP4(v)); }

◆ DeltaR() [2/2]

float DeltaR ( const Variation v = nominal) const
inline
57  { return ROOT::Math::VectorUtil::DeltaR (first->CorrP4(v),
58  second->CorrP4(v)); }

◆ HT() [1/2]

float HT ( const Variation v = nominal) const
inline
64 { return (first->CorrPt(v) + second->CorrPt(v))/2; }

◆ HT() [2/2]

float HT ( const Variation v = nominal) const
inline
64 { return (first->CorrPt(v) + second->CorrPt(v))/2; }

◆ operator bool() [1/2]

operator bool ( ) const
inlineexplicit

< Second particle in the pair (field imported from std::pair)

44 { return first && second; }

◆ operator bool() [2/2]

operator bool ( ) const
inlineexplicit

< Second particle in the pair (field imported from std::pair)

44 { return first && second; }

◆ Rapidity() [1/2]

float Rapidity ( const Variation v = nominal) const
inline
51 { return CorrP4(v).Rapidity(); }

◆ Rapidity() [2/2]

float Rapidity ( const Variation v = nominal) const
inline
51 { return CorrP4(v).Rapidity(); }

◆ Weight() [1/2]

double Weight ( const Variation v = nominal) const
inlineoverridevirtual

Implements AbstractGenericObject.

66 { return first->Weight(v) * second->Weight(v); }

◆ Weight() [2/2]

double Weight ( const Variation v = nominal) const
inlineoverridevirtual

Implements AbstractGenericObject.

66 { return first->Weight(v) * second->Weight(v); }

◆ Yboost() [1/2]

float Yboost ( const Variation v = nominal) const
inline
60 { return (first->Rapidity(v) + second->Rapidity(v))/2; }

◆ Yboost() [2/2]

float Yboost ( const Variation v = nominal) const
inline
60 { return (first->Rapidity(v) + second->Rapidity(v))/2; }

◆ Ymax() [1/2]

float Ymax ( const Variation v = nominal) const
inline
63 { return std::max(first->AbsRap(v), second->AbsRap(v)); }

◆ Ymax() [2/2]

float Ymax ( const Variation v = nominal) const
inline
63 { return std::max(first->AbsRap(v), second->AbsRap(v)); }

◆ Ystar() [1/2]

float Ystar ( const Variation v = nominal) const
inline
61 { return (first->Rapidity(v) - second->Rapidity(v))/2; }

◆ Ystar() [2/2]

float Ystar ( const Variation v = nominal) const
inline
61 { return (first->Rapidity(v) - second->Rapidity(v))/2; }

The documentation for this class was generated from the following file:
Darwin::Physics::Di::CorrP4
FourVector CorrP4(const Variation &v=nominal) const override
Definition: Di.h:48
Darwin::Physics::Di::Rapidity
float Rapidity(const Variation &v=nominal) const
Definition: Di.h:51