Belle II Software  release-05-02-19
PathElement.h
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2012 - 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 <memory>
14 #include <list>
15 #include <string>
16 
17 namespace Belle2 {
23  class Module;
24 
29  class PathElement {
30  public:
32  PathElement() { }
33 
35  virtual ~PathElement() { }
36 
38  virtual std::string getPathString() const = 0;
39 
41  virtual std::shared_ptr<PathElement> clone() const = 0;
42 
44  virtual std::list<std::shared_ptr<Module> > getModules() const = 0;
45  };
47 } // end namespace Belle2
Belle2::PathElement::PathElement
PathElement()
Constructor.
Definition: PathElement.h:40
Belle2::PathElement::~PathElement
virtual ~PathElement()
Destructor.
Definition: PathElement.h:43
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::PathElement::clone
virtual std::shared_ptr< PathElement > clone() const =0
Create an independent copy of this element.
Belle2::PathElement::getPathString
virtual std::string getPathString() const =0
Return a string representation of the Modules in this path.
Belle2::PathElement::getModules
virtual std::list< std::shared_ptr< Module > > getModules() const =0
Returns a sequential list of Modules in this path element.