Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
SyncObject.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file SyncObject.h
1 // Tell emacs that this is a C++ source
2 // -*- C++ -*-.
3 #ifndef FFAOBJECTS_SYNCOBJECT_H
4 #define FFAOBJECTS_SYNCOBJECT_H
5 
6 #include <phool/PHObject.h>
7 
8 #include <iostream>
9 
11 class SyncObject : public PHObject
12 {
13  public:
15  SyncObject() = default;
17  SyncObject(const SyncObject& source) = default;
19  ~SyncObject() override {}
21  void Reset() override;
22 
26  void identify(std::ostream& os = std::cout) const override;
27 
29  int isValid() const override;
30 
31  PHObject* CloneMe() const override;
32  SyncObject& operator=(const SyncObject& source);
33  virtual int Different(const SyncObject* other) const;
34 
36  virtual void EventCounter(const int /*ival*/) { return; }
37 
39  virtual void EventNumber(const int /*ival*/) { return; }
40 
42  virtual void SegmentNumber(const int /*ival*/) { return; }
43 
45  virtual void RunNumber(const int /*ival*/) { return; }
46 
47  protected:
49  virtual int EventNumber() const { return -9999; }
51  virtual int EventCounter() const { return -9999; }
53  virtual int RunNumber() const { return -9999; }
55  virtual int SegmentNumber() const { return -9999; }
56 
57  private: // prevent doc++ from showing ClassDefOverride
58  friend class SyncObjectv1;
59  friend class Fun4AllDstInputManager;
61  friend class DumpSyncObject;
62  friend class SegmentSelect;
63 
64  ClassDefOverride(SyncObject, 1)
65 };
66 
67 #endif