Belle II Software  release-05-02-19
SegmentRelationFilterFactory.h
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2015 - Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: Oliver Frost *
7  * *
8  * This software is provided "as is" without any warranty. *
9  **************************************************************************/
10 #pragma once
11 
12 #include <tracking/trackFindingCDC/filters/segmentRelation/BaseSegmentRelationFilter.h>
13 
14 #include <tracking/trackFindingCDC/filters/base/FilterFactory.dcl.h>
15 
16 #include <map>
17 #include <string>
18 #include <memory>
19 
20 namespace Belle2 {
25  namespace TrackFindingCDC {
26  // Guard to prevent repeated instantiations
27  extern template class FilterFactory<BaseSegmentRelationFilter>;
28 
30  class SegmentRelationFilterFactory : public FilterFactory<BaseSegmentRelationFilter> {
31 
32  private:
34  using Super = FilterFactory<BaseSegmentRelationFilter>;
35 
36  public:
38  explicit SegmentRelationFilterFactory(const std::string& defaultFilterName = "realistic");
39 
41  std::string getIdentifier() const override;
42 
44  std::string getFilterPurpose() const override;
45 
47  std::map<std::string, std::string> getValidFilterNamesAndDescriptions() const override;
48 
50  std::unique_ptr<BaseSegmentRelationFilter> create(const std::string& filterName) const override;
51  };
52  }
54 }
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::TrackFindingCDC::SegmentRelationFilterFactory
Factory that can create appropriate segment relation filters from associated names.
Definition: SegmentRelationFilterFactory.h:38