Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-12-17 09:19:37

0001 // Tell emacs that this is a C++ source
0002 //  -*- C++ -*-.
0003 #ifndef FFAOBJECTS_SYNCOBJECT_H
0004 #define FFAOBJECTS_SYNCOBJECT_H
0005 
0006 #include <phool/PHObject.h>
0007 
0008 #include <iostream>
0009 #include <limits>
0010 
0011 ///
0012 class SyncObject : public PHObject
0013 {
0014  public:
0015   /// ctor - daughter class copy ctor needs this
0016   SyncObject() = default;
0017   /// copy ctor daughter class copy ctor needs also this
0018   SyncObject(const SyncObject& source) = default;
0019   /// dtor
0020   ~SyncObject() override = default;
0021   /// Clear Sync
0022   void Reset() override;
0023 
0024   /** identify Function from PHObject
0025       @param os Output Stream
0026    */
0027   void identify(std::ostream& os = std::cout) const override;
0028 
0029   /// isValid returns non zero if object contains valid data
0030   int isValid() const override;
0031 
0032   PHObject* CloneMe() const override;
0033   SyncObject& operator=(const SyncObject& source);
0034   virtual unsigned int Different(const SyncObject* other) const;
0035 
0036   /// set Event Counter
0037   virtual void EventCounter(const int /*ival*/) { return; }
0038 
0039   /// set Event Number
0040   virtual void EventNumber(const int /*ival*/) { return; }
0041 
0042   /// set Segment Number
0043   virtual void SegmentNumber(const int /*ival*/) { return; }
0044 
0045   /// set Run Number
0046   virtual void RunNumber(const int /*ival*/) { return; }
0047 
0048   /// get Event Number
0049   virtual int EventNumber() const { return std::numeric_limits<int>::min(); }
0050 
0051 protected:
0052   /// get Event Counter
0053   virtual int EventCounter() const { return std::numeric_limits<int>::min(); }
0054   /// get Run Number
0055   virtual int RunNumber() const { return std::numeric_limits<int>::min(); }
0056   /// get Segment Number
0057   virtual int SegmentNumber() const { return std::numeric_limits<int>::min(); }
0058 
0059  private:  // prevent doc++ from showing ClassDefOverride
0060   friend class SyncObjectv1;
0061   friend class Fun4AllDstInputManager;
0062   friend class Fun4AllDstPileupInputManager;
0063   friend class DumpSyncObject;
0064   friend class SegmentSelect;
0065 
0066   ClassDefOverride(SyncObject, 1)
0067 };
0068 
0069 #endif