CMS 3D CMS Logo

PFCPositionCalculatorBase.h
Go to the documentation of this file.
1 #ifndef __PFCPositionCalculatorBase_H__
2 #define __PFCPositionCalculatorBase_H__
3 
8 
9 #include <string>
10 
11 namespace edm {
12  class EventSetup;
13 }
14 
17 
18 public:
20  : _minFractionInCalc(conf.getParameter<double>("minFractionInCalc")),
21  _algoName(conf.getParameter<std::string>("algoName")) {}
22  virtual ~PFCPositionCalculatorBase() = default;
23  //get rid of things we should never use
24  PFCPositionCalculatorBase(const PosCalc&) = delete;
25  PosCalc& operator=(const PosCalc&) = delete;
26 
27  virtual void update(const edm::EventSetup&) {}
28 
29  // here we transform one PFCluster to use the new position calculation
30  virtual void calculateAndSetPosition(reco::PFCluster&) = 0;
31  // here you call a loop inside to transform the whole vector
33 
34  const std::string& name() const { return _algoName; }
35 
36 protected:
37  const float _minFractionInCalc;
38 
39 private:
41 };
42 
43 // define the factory for this base class
47 
48 #endif
PFCPositionCalculatorBase(const edm::ParameterSet &conf, edm::ConsumesCollector &cc)
Particle flow cluster, see clustering algorithm in PFClusterAlgo.
Definition: PFCluster.h:42
uint32_t cc[maxCellsPerHit]
Definition: gpuFishbone.h:49
PosCalc & operator=(const PosCalc &)=delete
const std::string & name() const
virtual void update(const edm::EventSetup &)
virtual void calculateAndSetPositions(reco::PFClusterCollection &)=0
PFCPositionCalculatorBase PosCalc
virtual ~PFCPositionCalculatorBase()=default
virtual void calculateAndSetPosition(reco::PFCluster &)=0
HLT enums.
std::vector< PFCluster > PFClusterCollection
collection of PFCluster objects
Definition: PFClusterFwd.h:9
edmplugin::PluginFactory< PFCPositionCalculatorBase *(const edm::ParameterSet &, edm::ConsumesCollector &)> PFCPositionCalculatorFactory