AlCaElectronTracksReducer

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
#ifndef _ALCAELECTRONTRACKSREDUCER_H
#define _ALCAELECTRONTRACKSREDUCER_H

// -*- C++ -*-
//
// Package:    AlCaElectronTracksReducer
// Class:      AlCaElectronTracksReducer
//
/**\class AlCaECALRecHitReducer AlCaECALRecHitReducer.cc Calibration/EcalAlCaRecoProducers/src/AlCaECALRecHitReducer.cc

 Description: This plugin saves tracks and trackExtras that are associated to an electron creating two new track and track extra collections

*/
//
// Original Author:  Shervin Nourbakhsh
//         Created:  Sat Feb 23 10:07:01 CEST 2013
// $Id: AlCaElectronTracksReducer.h,v 1.00 2013/02/23 10:10:34 shervin Exp $
//

// system include files
#include <memory>

// user include files
#include "FWCore/Framework/interface/Frameworkfwd.h"
#include "FWCore/Framework/interface/global/EDProducer.h"

#include "FWCore/Framework/interface/Event.h"
#include "FWCore/Framework/interface/MakerMacros.h"
#include "FWCore/Utilities/interface/InputTag.h"
#include "FWCore/ParameterSet/interface/ParameterSet.h"

// input collections
#include "DataFormats/EgammaCandidates/interface/GsfElectronFwd.h"
#include "DataFormats/TrackReco/interface/TrackFwd.h"
#include "DataFormats/TrackReco/interface/TrackExtraFwd.h"

class AlCaElectronTracksReducer : public edm::global::EDProducer<> {
public:
  explicit AlCaElectronTracksReducer(const edm::ParameterSet &);

  void produce(edm::StreamID, edm::Event &, const edm::EventSetup &) const override;

private:
  // ----------member data ---------------------------
  // input collections
  edm::EDGetTokenT<reco::GsfElectronCollection> electronToken_;
  edm::EDGetTokenT<reco::TrackCollection> generalTracksToken_;
  edm::EDGetTokenT<reco::TrackExtraCollection> generalTracksExtraToken_;

  // output collection' names
  std::string alcaTrackCollection_;
  std::string alcaTrackExtraCollection_;
};

#endif