ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
PHObject.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file PHObject.h
1 #ifndef PHOOL_PHOBJECT_H
2 #define PHOOL_PHOBJECT_H
3 
4 // Declaration of class PHObject
5 // Purpose: Tiny layer between TObject and output objects and
6 // enforce some standards
7 // Author: Chris Pinkenburg
8 
9 #include <TObject.h>
10 
11 #include <iostream>
12 
13 class PHObject : public TObject
14 {
15  public:
17  PHObject() {}
18 
20  ~PHObject() override {}
22  virtual PHObject* CloneMe() const;
23 
24  virtual PHObject* clone() const final;
25  PHObject *Clone(const char *newname = "") const final;
26  void Copy(TObject &object) const final;
27 
31  virtual void identify(std::ostream& os = std::cout) const;
32 
34  virtual void Reset();
35 
37  virtual int isValid() const;
38  virtual int isValid(const float) const;
39  virtual int isValid(const double) const;
40  virtual int isValid(const int) const;
41  virtual int isValid(const unsigned int) const;
42 
43  virtual int isImplemented(const float f) const;
44  virtual int isImplemented(const double f) const;
45  virtual int isImplemented(const int i) const;
46  virtual int isImplemented(const unsigned int i) const;
47 
48  virtual int Integrate() const { return 0; }
49  virtual int Integrate(PHObject* /*obj*/) { return -1; }
50  virtual void CopyFrom(const PHObject *obj);
51 
52  private:
53  ClassDefOverride(PHObject, 0) // no I/O
54 };
55 
56 #endif /* PHOOL_PHOBJECT_H */