CMS 3D CMS Logo

SoftLepton.h
Go to the documentation of this file.
1 #ifndef RecoBTag_SoftLepton_SoftLepton_h
2 #define RecoBTag_SoftLepton_SoftLepton_h
3 
4 // -*- C++ -*-
5 //
6 // Package: SoftLepton
7 // Class: SoftLepton
8 //
16 //
17 // Original Author: fwyzard
18 // Created: Wed Oct 18 18:02:07 CEST 2006
19 //
20 
21 // system include files
22 #include <memory>
23 #include <map>
24 
25 // user include files
47 
48 
50 
52 public:
53  explicit SoftLepton(const edm::ParameterSet& iConfig);
54  ~SoftLepton() override;
55  static void fillDescriptions(edm::ConfigurationDescriptions & descriptions);
56 
57  struct TrackCompare :
58  public std::binary_function<edm::RefToBase<reco::Track>,
59  edm::RefToBase<reco::Track>, bool> {
61  const edm::RefToBase<reco::Track> &t2) const
62  { return t1.key() < t2.key();}
63  };
64 
65  typedef std::map<unsigned int, float> LeptonIds;
66  typedef std::map<edm::RefToBase<reco::Track>, LeptonIds, TrackCompare> Leptons;
67 
68  // generic interface, using a TrackRefVector for lepton tracks
72  const Leptons & leptons,
74  ) const;
75 
76 protected:
77  // generic interface, using a TrackRefVector for lepton tracks
78 
83  ) const;
84 
85  static double relativeEta(
86  const math::XYZVector& vector,
87  const math::XYZVector& axis
88  );
89 
90  static double boostedPPar(
91  const math::XYZVector& vector,
92  const math::XYZVector& axis
93  );
94 
95 private:
96  void produce(edm::Event & event, const edm::EventSetup & setup) override;
97 
98  // configuration
113 
114  // service used to make transient tracks from tracks
116 
117  // algorithm configuration
118  unsigned int m_refineJetAxis;
119  double m_deltaRCut;
120  double m_chi2Cut;
121 
122  // specific for reco::Muons
124 
125  // nominal beam spot position
127 };
128 
129 #endif // RecoBTag_SoftLepton_SoftLepton_h
const edm::EDGetTokenT< reco::PFCandidateCollection > token_pfElectrons
Definition: SoftLepton.h:106
const edm::EDGetTokenT< edm::ValueMap< float > > token_leptonCands
Definition: SoftLepton.h:110
def setup(process, global_tag, zero_tesla=False)
Definition: GeneralSetup.py:1
const edm::EDGetTokenT< edm::ValueMap< float > > token_leptonId
Definition: SoftLepton.h:112
const edm::EDGetTokenT< edm::View< reco::Muon > > token_muons
Definition: SoftLepton.h:107
const edm::EDGetTokenT< edm::View< reco::Electron > > token_electrons
Definition: SoftLepton.h:105
double m_chi2Cut
Definition: SoftLepton.h:120
const edm::EDGetTokenT< edm::View< reco::GsfElectron > > token_gsfElectrons
Definition: SoftLepton.h:104
SelectionType
Selector type.
Definition: MuonSelectors.h:17
void produce(edm::Event &event, const edm::EventSetup &setup) override
Definition: SoftLepton.cc:96
bool operator()(const edm::RefToBase< reco::Track > &t1, const edm::RefToBase< reco::Track > &t2) const
Definition: SoftLepton.h:60
const edm::InputTag m_leptons
Definition: SoftLepton.h:103
size_t key() const
Definition: RefToBase.h:250
static double relativeEta(const math::XYZVector &vector, const math::XYZVector &axis)
Definition: SoftLepton.cc:391
GlobalVector refineJetAxis(const edm::RefToBase< reco::Jet > &jet, const reco::TrackRefVector &tracks, const edm::RefToBase< reco::Track > &exclude=edm::RefToBase< reco::Track >()) const
Definition: SoftLepton.cc:315
const edm::EDGetTokenT< reco::VertexCollection > token_primaryVertex
Definition: SoftLepton.h:102
~SoftLepton() override
Definition: SoftLepton.cc:91
const edm::InputTag m_leptonId
Definition: SoftLepton.h:111
double m_deltaRCut
Definition: SoftLepton.h:119
const edm::InputTag m_leptonCands
Definition: SoftLepton.h:109
unsigned int m_refineJetAxis
Definition: SoftLepton.h:118
reco::SoftLeptonTagInfo tag(const edm::RefToBase< reco::Jet > &jet, const reco::TrackRefVector &tracks, const Leptons &leptons, const reco::Vertex &primaryVertex) const
Definition: SoftLepton.cc:268
const edm::EDGetTokenT< edm::View< reco::Jet > > token_jets
Definition: SoftLepton.h:101
XYZVectorD XYZVector
spatial vector with cartesian internal representation
Definition: Vector3D.h:30
SoftLepton(const edm::ParameterSet &iConfig)
Definition: SoftLepton.cc:66
std::map< unsigned int, float > LeptonIds
Definition: SoftLepton.h:65
static const reco::Vertex s_nominalBeamSpot
Definition: SoftLepton.h:126
muon::SelectionType m_muonSelection
Definition: SoftLepton.h:123
std::map< edm::RefToBase< reco::Track >, LeptonIds, TrackCompare > Leptons
Definition: SoftLepton.h:66
const edm::InputTag m_jets
Definition: SoftLepton.h:99
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
Definition: SoftLepton.cc:409
const TransientTrackBuilder * m_transientTrackBuilder
Definition: SoftLepton.h:115
const edm::EDGetTokenT< edm::View< reco::Track > > token_tracks
Definition: SoftLepton.h:108
const edm::EDGetTokenT< reco::JetTracksAssociationCollection > token_jtas
Definition: SoftLepton.h:100
Definition: event.py:1
static double boostedPPar(const math::XYZVector &vector, const math::XYZVector &axis)
Definition: SoftLepton.cc:398