EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
EventHeader.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file EventHeader.h
1 // Tell emacs that this is a C++ source
2 // -*- C++ -*-.
3 #ifndef FFAOBJECTS_EVENTHEADER_H
4 #define FFAOBJECTS_EVENTHEADER_H
5 
6 #include <phool/PHObject.h>
7 
8 #include <cmath>
9 #include <cstdint> // for int64_t
10 #include <ctime>
11 #include <iostream> // for cout, ostream
12 #include <string> // for string
13 
15 class EventHeader : public PHObject
16 {
17  public:
19  ~EventHeader() override = default;
20 
22  void Reset() override;
23 
24  /*
25  * identify Function from PHObject
26  * @param os Output Stream
27  */
28  void identify(std::ostream &os = std::cout) const override;
29 
31  int isValid() const override;
32 
34  virtual int get_RunNumber() const { return 0; }
36  virtual void set_RunNumber(const int /*run*/) { return; }
37 
39  virtual int get_EvtSequence() const { return 0; }
41  virtual void set_EvtSequence(const int /*ival*/) { return; }
42 
44  virtual void set_BunchCrossing(int64_t bcr) { set_intval("bcr", bcr); }
45 
47  virtual int64_t get_BunchCrossing() const { return get_intval("bcr"); }
48 
49  virtual void set_floatval(const std::string &/*name*/, const float /*fval*/) { return; }
50  virtual float get_floatval(const std::string &/*name*/) const { return NAN; }
51 
52  virtual void set_intval(const std::string &/*name*/, const int64_t /*ival*/) { return; }
53  virtual int64_t get_intval(const std::string &/*name*/) const { return -999999; }
54 
56  int get_EvtType() const { return get_intval("type"); }
58  void set_EvtType(const int ival) { set_intval("type", ival); }
59 
60  void set_ImpactParameter(const double rval) { set_floatval("bimp", rval); }
61  float get_ImpactParameter() const { return get_floatval("bimp"); }
62 
63  void set_EventPlaneAngle(const double rval) { set_floatval("rplane", rval); }
64  float get_EventPlaneAngle() const { return get_floatval("rplane"); }
65 
66  void set_eccentricity(const double rval) { set_floatval("ecc", rval); }
67  float get_eccentricity() const { return get_floatval("ecc"); }
68 
69  void set_ncoll(const int ival) { set_intval("ncoll", ival); }
70  int get_ncoll() const { return get_intval("ncoll"); }
71 
72  void set_npart(const int ival) { set_intval("npart", ival); }
73  int get_npart() const { return get_intval("npart"); }
74 
75  void set_TimeStamp(const time_t tval) { set_intval("time", tval); }
76  time_t get_TimeStamp() const { return get_intval("time"); }
77 
78  private: // prevent doc++ from showing ClassDefOverride
79  ClassDefOverride(EventHeader, 1)
80 };
81 
82 #endif