Belle II Software  release-05-02-19
Mergeable.h
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2014 - Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: Christian Pulvermacher *
7  * *
8  * This software is provided "as is" without any warranty. *
9  **************************************************************************/
10 
11 #pragma once
12 
13 #include <TObject.h>
14 
15 class TCollection;
16 class TDirectory;
17 
18 namespace Belle2 {
33  class Mergeable : public TObject {
34  public:
35  Mergeable() { }
36  virtual ~Mergeable() { }
37 
45  virtual void merge(const Mergeable* other) = 0;
46 
53  virtual void clear() = 0;
54 
60  virtual void removeSideEffects() {}
61 
66  virtual Long64_t Merge(TCollection* hlist);
68  virtual void Reset() {clear();}
70  virtual void SetDirectory(TDirectory*) {}
71  private:
72  ClassDef(Mergeable, 0);
73  };
75 }
Belle2::Mergeable::Merge
virtual Long64_t Merge(TCollection *hlist)
Allow merging using TFileMerger if saved directly to a file.
Definition: Mergeable.cc:7
Belle2::Mergeable::removeSideEffects
virtual void removeSideEffects()
An ugly little method that is called before event() for input and worker processes.
Definition: Mergeable.h:60
Belle2::Mergeable::Reset
virtual void Reset()
Root-like Reset function for "template compatibility" with ROOT objects.
Definition: Mergeable.h:68
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::Mergeable::SetDirectory
virtual void SetDirectory(TDirectory *)
Root-like SetDirectory function for "template compatibility" with ROOT objects.
Definition: Mergeable.h:70
Belle2::Mergeable::merge
virtual void merge(const Mergeable *other)=0
Merge object 'other' into this one.
Belle2::Mergeable::clear
virtual void clear()=0
Clear content of this object (e.g.
Belle2::Mergeable::ClassDef
ClassDef(Mergeable, 0)
Abstract base class for objects that can be merged.
Belle2::Mergeable
Abstract base class for objects that can be merged.
Definition: Mergeable.h:33