CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
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
46 
47 
49 
51 public:
52  explicit SoftLepton(const edm::ParameterSet& iConfig);
53  ~SoftLepton();
54 
55  struct TrackCompare :
56  public std::binary_function<edm::RefToBase<reco::Track>,
57  edm::RefToBase<reco::Track>, bool> {
59  const edm::RefToBase<reco::Track> &t2) const
60  { return t1.key() < t2.key();}
61  };
62 
63  typedef std::map<unsigned int, float> LeptonIds;
64  typedef std::map<edm::RefToBase<reco::Track>, LeptonIds, TrackCompare> Leptons;
65 
66  // generic interface, using a TrackRefVector for lepton tracks
70  const Leptons & leptons,
72  ) const;
73 
74 protected:
75  // generic interface, using a TrackRefVector for lepton tracks
76 
81  ) const;
82 
83  static double relativeEta(
84  const math::XYZVector& vector,
85  const math::XYZVector& axis
86  );
87 
88  static double boostedPPar(
89  const math::XYZVector& vector,
90  const math::XYZVector& axis
91  );
92 
93 private:
94  virtual void produce(edm::Event & event, const edm::EventSetup & setup);
95 
96  // configuration
111 
112  // service used to make transient tracks from tracks
114 
115  // algorithm configuration
116  unsigned int m_refineJetAxis;
117  double m_deltaRCut;
118  double m_chi2Cut;
119 
120  // specific for reco::Muons
122 
123  // nominal beam spot position
125 };
126 
127 #endif // RecoBTag_SoftLepton_SoftLepton_h
const edm::EDGetTokenT< reco::PFCandidateCollection > token_pfElectrons
Definition: SoftLepton.h:104
const edm::EDGetTokenT< edm::ValueMap< float > > token_leptonCands
Definition: SoftLepton.h:108
const edm::EDGetTokenT< edm::ValueMap< float > > token_leptonId
Definition: SoftLepton.h:110
const edm::EDGetTokenT< edm::View< reco::Muon > > token_muons
Definition: SoftLepton.h:105
const edm::EDGetTokenT< edm::View< reco::Electron > > token_electrons
Definition: SoftLepton.h:103
double m_chi2Cut
Definition: SoftLepton.h:118
const edm::EDGetTokenT< edm::View< reco::GsfElectron > > token_gsfElectrons
Definition: SoftLepton.h:102
SelectionType
Selector type.
Definition: MuonSelectors.h:17
bool operator()(const edm::RefToBase< reco::Track > &t1, const edm::RefToBase< reco::Track > &t2) const
Definition: SoftLepton.h:58
const edm::InputTag m_leptons
Definition: SoftLepton.h:101
size_t key() const
Definition: RefToBase.h:229
static double relativeEta(const math::XYZVector &vector, const math::XYZVector &axis)
Definition: SoftLepton.cc:386
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:310
const edm::EDGetTokenT< reco::VertexCollection > token_primaryVertex
Definition: SoftLepton.h:100
const edm::InputTag m_leptonId
Definition: SoftLepton.h:109
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision and the trigger will pass if any such matching triggers are FAIL or EXCEPTION A wildcarded negative criterion that matches more than one trigger in the trigger but the state exists so we define the behavior If all triggers are the negative crieriion will lead to accepting the event(this again matches the behavior of"!*"before the partial wildcard feature was incorporated).The per-event"cost"of each negative criterion with multiple relevant triggers is about the same as!*was in the past
double m_deltaRCut
Definition: SoftLepton.h:117
const edm::InputTag m_leptonCands
Definition: SoftLepton.h:107
unsigned int m_refineJetAxis
Definition: SoftLepton.h:116
reco::SoftLeptonTagInfo tag(const edm::RefToBase< reco::Jet > &jet, const reco::TrackRefVector &tracks, const Leptons &leptons, const reco::Vertex &primaryVertex) const
Definition: SoftLepton.cc:267
const edm::EDGetTokenT< edm::View< reco::Jet > > token_jets
Definition: SoftLepton.h:99
tuple tracks
Definition: testEve_cfg.py:39
XYZVectorD XYZVector
spatial vector with cartesian internal representation
Definition: Vector3D.h:30
SoftLepton(const edm::ParameterSet &iConfig)
Definition: SoftLepton.cc:65
std::map< unsigned int, float > LeptonIds
Definition: SoftLepton.h:63
static const reco::Vertex s_nominalBeamSpot
Definition: SoftLepton.h:124
muon::SelectionType m_muonSelection
Definition: SoftLepton.h:121
std::map< edm::RefToBase< reco::Track >, LeptonIds, TrackCompare > Leptons
Definition: SoftLepton.h:64
const edm::InputTag m_jets
Definition: SoftLepton.h:97
const TransientTrackBuilder * m_transientTrackBuilder
Definition: SoftLepton.h:113
const edm::EDGetTokenT< edm::View< reco::Track > > token_tracks
Definition: SoftLepton.h:106
virtual void produce(edm::Event &event, const edm::EventSetup &setup)
Definition: SoftLepton.cc:95
void setup(std::vector< TH2F > &depth, std::string name, std::string units="")
const edm::EDGetTokenT< reco::JetTracksAssociationCollection > token_jtas
Definition: SoftLepton.h:98
static double boostedPPar(const math::XYZVector &vector, const math::XYZVector &axis)
Definition: SoftLepton.cc:393