ECCE @ EIC 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() override {}
16 
18  void Reset() override;
19 
23  void identify(std::ostream& os = std::cout) const override;
24 
26  int isValid() const override;
27 
28  PHObject* CloneMe() const override;
29  virtual SyncObject& operator=(const SyncObject& source);
30  virtual int Different(const SyncObject* other) const;
31 
33  virtual void EventCounter(const int /*ival*/) { return; }
34 
36  virtual void EventNumber(const int /*ival*/) { return; }
37 
39  virtual void SegmentNumber(const int /*ival*/) { return; }
40 
42  virtual void RunNumber(const int /*ival*/) { return; }
43 
44  protected:
46  virtual int EventNumber() const { return -9999; }
48  virtual int EventCounter() const { return -9999; }
50  virtual int RunNumber() const { return -9999; }
52  virtual int SegmentNumber() const { return -9999; }
53 
54  private: // prevent doc++ from showing ClassDefOverride
55  friend class SyncObjectv1;
56  friend class Fun4AllDstInputManager;
58  friend class DumpSyncObject;
59  friend class SegmentSelect;
60 
61  ClassDefOverride(SyncObject, 1)
62 };
63 
64 #endif