RegressionEnergyPatElectronProducer

Macros

Line Code
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