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
51
52
53
54
55
56
57
58
59
|
#ifndef RegressionEnergyPatElectronProducer_h
#define RegressionEnergyPatElectronProducer_h
#include "DataFormats/Common/interface/Handle.h"
#include "FWCore/Framework/interface/stream/EDProducer.h"
#include "FWCore/Framework/interface/Event.h"
#include "FWCore/Framework/interface/EventSetup.h"
#include "Geometry/CaloTopology/interface/CaloSubdetectorTopology.h"
#include "Geometry/CaloGeometry/interface/CaloGeometry.h"
#include "EgammaAnalysis/ElectronTools/interface/ElectronEnergyRegressionEvaluate.h"
#include "DataFormats/PatCandidates/interface/Electron.h"
#include "DataFormats/VertexReco/interface/VertexFwd.h"
#include "DataFormats/VertexReco/interface/Vertex.h"
class CaloTopologyRecord;
class CaloGeometryRecord;
class RegressionEnergyPatElectronProducer : public edm::stream::EDProducer<> {
public:
explicit RegressionEnergyPatElectronProducer(const edm::ParameterSet &);
~RegressionEnergyPatElectronProducer() override;
void produce(edm::Event &, const edm::EventSetup &) override;
private:
// input collections
edm::EDGetTokenT<reco::GsfElectronCollection> inputGsfElectronsToken_;
edm::EDGetTokenT<pat::ElectronCollection> inputPatElectronsToken_;
edm::EDGetTokenT<double> rhoInputToken_;
edm::EDGetTokenT<reco::VertexCollection> verticesInputToken_;
edm::EDGetTokenT<EcalRecHitCollection> recHitCollectionEBToken_;
edm::EDGetTokenT<EcalRecHitCollection> recHitCollectionEEToken_;
edm::ESGetToken<CaloTopology, CaloTopologyRecord> ecalTopoToken_;
edm::ESGetToken<CaloGeometry, CaloGeometryRecord> caloGeomToken_;
//
bool useReducedRecHits_;
//output collection
// std::string outputCollection_;
std::string nameEnergyReg_;
std::string nameEnergyErrorReg_;
uint32_t energyRegressionType_;
uint32_t inputCollectionType_;
std::string regressionInputFile_;
bool debug_;
ElectronEnergyRegressionEvaluate *regressionEvaluator_;
bool geomInitialized_;
bool producePatElectrons_;
bool produceValueMaps_;
const CaloTopology *ecalTopology_;
const CaloGeometry *caloGeometry_;
unsigned nElectrons_;
};
#endif
|