forked from cms-sw/cmssw
/
MTDRecHitAlgoBase.h
50 lines (35 loc) · 1.36 KB
/
MTDRecHitAlgoBase.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#ifndef RecoLocalFastTime_FTLCommonAlgos_MTDRecHitAlgoBase_HH
#define RecoLocalFastTime_FTLCommonAlgos_MTDRecHitAlgoBase_HH
/** \class MTDRecHitAlgoBase
* Template algorithm to make rechits from uncalibrated rechits
*
* \author Lindsey Gray
*/
#include "FWCore/ParameterSet/interface/ParameterSet.h"
#include "FWCore/Framework/interface/ConsumesCollector.h"
#include "DataFormats/FTLRecHit/interface/FTLRecHit.h"
#include "DataFormats/FTLRecHit/interface/FTLUncalibratedRecHit.h"
namespace edm {
class Event;
class EventSetup;
}
class MTDRecHitAlgoBase {
public:
/// Constructor
MTDRecHitAlgoBase(const edm::ParameterSet& conf,
edm::ConsumesCollector& sumes):
name_( conf.getParameter<std::string>("algoName") ){ };
/// Destructor
virtual ~MTDRecHitAlgoBase() { };
/// get event and eventsetup information
virtual void getEvent(const edm::Event&) = 0;
virtual void getEventSetup(const edm::EventSetup&) = 0;
/// make rechits from dataframes
virtual FTLRecHit makeRecHit(const FTLUncalibratedRecHit& uRecHit, uint32_t& flags) const = 0;
const std::string& name() const { return name_; }
private:
std::string name_;
};
#include "FWCore/PluginManager/interface/PluginFactory.h"
typedef edmplugin::PluginFactory< MTDRecHitAlgoBase* (const edm::ParameterSet&, edm::ConsumesCollector&) > MTDRecHitAlgoFactory;
#endif