Analysis Software
Documentation for sPHENIX simulation 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 
39  virtual int Integrate() const { return 0; }
40  virtual int Integrate(PHObject* /*obj*/) { return -1; }
41  virtual void CopyFrom(const PHObject *obj);
42 
43  private:
44  ClassDefOverride(PHObject, 0) // no I/O
45 };
46 
47 #endif /* PHOOL_PHOBJECT_H */