DAS  3.0
Das Analysis System
Event.h
Go to the documentation of this file.
1 #pragma once
2 
3 // STD
4 #include <vector>
5 
6 // Darwin
7 #include <GenericObject.h>
8 #include <Variation.h>
9 #include <Weight.h>
10 
11 // ROOT
12 #include <TRandom3.h>
13 #include <Math/Point3D.h>
14 
15 namespace Darwin::Physics {
16 
20 
21  std::string_view WeightGroup () const override { return WeightVar; }
22 
23 public:
24  static inline const char * const WeightVar = "GenEvtWgts"; //< Name of gen weights in variations
25 
26  GenEvent () = default;
27  virtual ~GenEvent () = default;
28 };
29 
33 
34  std::string_view WeightGroup () const override { return WeightVar; }
35 
36 public:
37  static inline const char * const WeightVar = "RecEvtWgts"; //< Name of rec weights in variations
38 
39  int fill = 0,
40  runNo = 0,
41  lumi = 0;
42  unsigned long long evtNo = 0;
43 
44  RecEvent () = default;
45  virtual ~RecEvent () = default;
46 
47  void Clear () override
48  {
49  fill = 0;
50  runNo = 0;
51  lumi = 0;
52  evtNo = 0;
54  }
55 };
56 
60 
61  std::string_view WeightGroup () const override { return WeightVar; }
62 
63 public:
64  static inline const char * const WeightVar = "GenVtxWgts"; //< Name of gen weights in variations
65 
66  ROOT::Math::RhoZPhiPointF location = ROOT::Math::RhoZPhiPointF(std::nan("rho"), std::nan("z"), std::nan("phi"));
67 
68  GenPV () = default;
69  virtual ~GenPV () = default;
70 
71  void Clear () override
72  {
74  location.SetCoordinates(std::nan("rho"), std::nan("z"), std::nan("phi"));
75  }
76 };
77 
80 class RecPV : public GenPV {
81 
82  std::string_view WeightGroup () const override { return WeightVar; }
83 
84 public:
85  static inline const char * const WeightVar = "RecVtxWgts"; //< Name of gen weights in variations
86 
87  float chi2 = std::nan("chi2");
88  int ndf = -1;
89 
90  RecPV () = default;
91  virtual ~RecPV () = default;
92 
93  void Clear () override
94  {
95  GenPV::Clear();
96  chi2 = std::nan("chi2");
97  ndf = -1;
98  }
99 };
100 
101 } // end of Darwin::Physics
102 
103 inline std::ostream& operator<< (std::ostream& s, const Darwin::Physics::GenPV& pv)
104 {
105  return s << '(' << pv.location.rho() << ','
106  << pv.location.z () << ','
107  << pv.location.phi() << ')';
108 }
109 
110 inline std::ostream& operator<< (std::ostream& s, const Darwin::Physics::RecEvent& event)
111 {
112  return s << event.fill << ' ' << event.runNo << ' ' << event.lumi << ' ' << event.evtNo;
113 }
Darwin::Physics::RecEvent::~RecEvent
virtual ~RecEvent()=default
Darwin::Physics::GenPV
Generic generator-level primary vertex.
Definition: Event.h:59
Darwin::Physics::GenPV::WeightGroup
std::string_view WeightGroup() const override
Definition: Event.h:61
Darwin::Physics::RecPV::chi2
float chi2
figure of merit of the vertex fit
Definition: Event.h:87
Darwin::Physics::GenEvent::GenEvent
GenEvent()=default
Darwin::Physics::GenPV::Clear
void Clear() override
Definition: Event.h:71
Darwin::Physics::GenEvent::WeightVar
static const char *const WeightVar
Definition: Event.h:24
Darwin::Physics::RecPV::Clear
void Clear() override
Definition: Event.h:93
Darwin::Physics::RecEvent::evtNo
unsigned long long evtNo
event number
Definition: Event.h:42
Darwin::Physics::RecPV::ndf
int ndf
number of degrees of freedom in vertex fit
Definition: Event.h:88
Darwin::Physics::RecPV::WeightGroup
std::string_view WeightGroup() const override
Definition: Event.h:82
Weight.h
Darwin::Physics::RecEvent::runNo
int runNo
at LHC, typically a 6-digit run number
Definition: Event.h:40
Darwin::Physics::GenPV::WeightVar
static const char *const WeightVar
Definition: Event.h:64
Darwin::Physics::RecEvent::WeightGroup
std::string_view WeightGroup() const override
Definition: Event.h:34
Darwin::Physics::GenPV::GenPV
GenPV()=default
Variation.h
operator<<
std::ostream & operator<<(std::ostream &s, const Darwin::Physics::GenPV &pv)
Definition: Event.h:103
Darwin::Physics::AnonymousWeightableObject
Abstract class for any object that carries its own weights. A std::vector is used to carry the scale ...
Definition: GenericObject.h:36
Darwin::Physics::GenEvent
Generic generator-level event.
Definition: Event.h:19
Darwin::Physics::RecPV::WeightVar
static const char *const WeightVar
Definition: Event.h:85
Darwin::Physics::RecPV::~RecPV
virtual ~RecPV()=default
Darwin::Physics::RecPV
Generic detector-level primary vertex.
Definition: Event.h:80
Darwin::Physics::GenPV::location
ROOT::Math::RhoZPhiPointF location
Definition: Event.h:66
Darwin::Physics::RecEvent
Generic detector-level event.
Definition: Event.h:32
Darwin::Physics::RecEvent::WeightVar
static const char *const WeightVar
Definition: Event.h:37
Darwin::Physics::GenEvent::~GenEvent
virtual ~GenEvent()=default
Darwin::Physics::GenPV::~GenPV
virtual ~GenPV()=default
Darwin::Physics::AnonymousWeightableObject::Clear
virtual void Clear()
Definition: GenericObject.h:62
Darwin::Physics::RecEvent::fill
int fill
at LHC, typically a 4- or 5-digit number
Definition: Event.h:39
GenericObject.h
Darwin::Physics::RecEvent::lumi
int lumi
lumi section (shortest unit time in LHC jargon)
Definition: Event.h:41
Darwin::Physics
Everything what concerns physics analysis directly.
Definition: darwin.h:26
Darwin::Physics::GenEvent::WeightGroup
std::string_view WeightGroup() const override
Definition: Event.h:21
Darwin::Physics::RecEvent::RecEvent
RecEvent()=default
Darwin::Physics::RecEvent::Clear
void Clear() override
< to clear for each new event in n-tupliser
Definition: Event.h:47
Darwin::Physics::RecPV::RecPV
RecPV()=default