HLTScoutingMuonProducer

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 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77
#ifndef HLTScoutingMuonProducer_h
#define HLTScoutingMuonProducer_h

// -*- C++ -*-
//
// Package:    HLTrigger/Muon
// Class:      HLTScoutingMuonProducer
//
/**\class HLTScoutingMuonProducer HLTScoutingMuonProducer.h HLTScoutingMuonProducer.h

Description: Producer for Run3ScoutingMuon

*/
//
// Original Author:  David G. Sheffield (Rutgers)
//         Created:  Fri, 31 Jul 2015
//
//

// 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/ParameterSet/interface/ParameterSet.h"

#include "DataFormats/Common/interface/AssociationMap.h"
#include "DataFormats/Common/interface/getRef.h"
#include "DataFormats/Common/interface/ValueMap.h"
#include "DataFormats/RecoCandidate/interface/RecoChargedCandidate.h"
#include "DataFormats/RecoCandidate/interface/RecoChargedCandidateFwd.h"
#include "DataFormats/TrackReco/interface/HitPattern.h"
#include "DataFormats/TrackReco/interface/Track.h"
#include "DataFormats/TrackReco/interface/TrackFwd.h"

#include "DataFormats/VertexReco/interface/Vertex.h"
#include "DataFormats/VertexReco/interface/VertexFwd.h"

#include "DataFormats/Scouting/interface/Run3ScoutingHitPatternPOD.h"
#include "DataFormats/Scouting/interface/Run3ScoutingMuon.h"
#include "DataFormats/Scouting/interface/Run3ScoutingVertex.h"

#include "DataFormats/MuonReco/interface/MuonTrackLinks.h"
#include "DataFormats/MuonReco/interface/Muon.h"
#include "DataFormats/MuonReco/interface/MuonFwd.h"

class HLTScoutingMuonProducer : public edm::global::EDProducer<> {
  typedef edm::AssociationMap<edm::OneToValue<std::vector<reco::RecoChargedCandidate>, float, unsigned int>>
      RecoChargedCandMap;

public:
  explicit HLTScoutingMuonProducer(const edm::ParameterSet&);
  ~HLTScoutingMuonProducer() override;

  static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);

private:
  void produce(edm::StreamID sid, edm::Event& iEvent, edm::EventSetup const& setup) const final;

  const edm::EDGetTokenT<reco::RecoChargedCandidateCollection> ChargedCandidateCollection_;
  const edm::EDGetTokenT<reco::VertexCollection> displacedvertexCollection_;
  const edm::EDGetTokenT<reco::MuonCollection> MuonCollection_;
  const edm::EDGetTokenT<reco::MuonTrackLinksCollection> linkToken_;
  const edm::EDGetTokenT<reco::TrackCollection> TrackCollection_;
  const edm::EDGetTokenT<RecoChargedCandMap> EcalPFClusterIsoMap_;
  const edm::EDGetTokenT<RecoChargedCandMap> HcalPFClusterIsoMap_;
  const edm::EDGetTokenT<edm::ValueMap<double>> TrackIsoMap_;

  const double muonPtCut;
  const double muonEtaCut;
  const double minVtxProbCut;
};

#endif