Main Page
Namespaces
Classes
Package Documentation
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Pages
RecoEgamma
EgammaTools
interface
ConversionTools.h
Go to the documentation of this file.
1
//--------------------------------------------------------------------------------------------------
2
//
3
// ConversionTools
4
//
5
// Utility to match electrons/photons/tracks to conversions and perform various conversion
6
// selection criteria.
7
//
8
// Matching to photons is by geometrical match with the SuperCluster (defined by angle between
9
// conversion momentum and vector joining conversion vertex to SuperCluster position)
10
//
11
// Matching to tracks and electrons is by reference.
12
//
13
// Also implemented here is a "conversion-safe electron veto" for photons through the
14
// matchedPromptElectron and hasMatchedPromptElectron functions
15
//
16
//
17
// Authors: J.Bendavid
18
//--------------------------------------------------------------------------------------------------
19
20
#ifndef EgammaTools_ConversionTools_h
21
#define EgammaTools_ConversionTools_h
22
23
#include "
DataFormats/TrackReco/interface/Track.h
"
24
#include "
DataFormats/Math/interface/Point3D.h
"
25
#include "
DataFormats/EgammaCandidates/interface/GsfElectron.h
"
26
#include "
DataFormats/EgammaCandidates/interface/GsfElectronFwd.h
"
27
#include "
DataFormats/EgammaCandidates/interface/Photon.h
"
28
#include "
DataFormats/EgammaCandidates/interface/ConversionFwd.h
"
29
#include "
DataFormats/TrackReco/interface/Track.h
"
30
#include "
DataFormats/TrackReco/interface/TrackExtra.h
"
31
#include "
DataFormats/TrackReco/interface/TrackFwd.h
"
32
#include "
DataFormats/Math/interface/Point3D.h
"
33
#include "
MagneticField/Engine/interface/MagneticField.h
"
34
#include "
DataFormats/GsfTrackReco/interface/GsfTrack.h
"
35
#include "
DataFormats/GsfTrackReco/interface/GsfTrackFwd.h
"
36
class
ConversionTools
37
{
38
public
:
39
ConversionTools
() {}
40
41
42
static
bool
isGoodConversion
(
const
reco::Conversion
&
conv
,
const
math::XYZPoint
&
beamspot
,
float
lxyMin=2.0,
float
probMin=1
e
-6,
unsigned
int
nHitsBeforeVtxMax=1);
43
44
static
bool
matchesConversion
(
const
reco::GsfElectron
&ele,
const
reco::Conversion
&
conv
,
bool
allowCkfMatch=
true
,
bool
allowAmbiguousGsfMatch=
false
);
45
static
bool
matchesConversion
(
const
reco::SuperCluster
&sc,
const
reco::Conversion
&
conv
,
float
dRMax
= 0.1,
float
dEtaMax = 999.,
float
dPhiMax = 999.);
46
static
bool
matchesConversion
(
const
edm::RefToBase<reco::Track>
&trk,
const
reco::Conversion
&
conv
);
47
static
bool
matchesConversion
(
const
reco::TrackRef
&trk,
const
reco::Conversion
&
conv
);
48
static
bool
matchesConversion
(
const
reco::GsfTrackRef
&trk,
const
reco::Conversion
&
conv
);
49
50
51
static
bool
hasMatchedConversion
(
const
reco::GsfElectron
&ele,
52
const
edm::Handle<reco::ConversionCollection>
&convCol,
const
math::XYZPoint
&
beamspot
,
bool
allowCkfMatch=
true
,
float
lxyMin=2.0,
float
probMin=1
e
-6,
unsigned
int
nHitsBeforeVtxMax=0);
53
54
static
bool
hasMatchedConversion
(
const
reco::TrackRef
&trk,
55
const
edm::Handle<reco::ConversionCollection>
&convCol,
const
math::XYZPoint
&
beamspot
,
float
lxyMin=2.0,
float
probMin=1
e
-6,
unsigned
int
nHitsBeforeVtxMax=1);
56
57
static
bool
hasMatchedConversion
(
const
reco::SuperCluster
&sc,
58
const
edm::Handle<reco::ConversionCollection>
&convCol,
const
math::XYZPoint
&
beamspot
,
float
dRMax
= 0.1,
float
dEtaMax = 999.,
float
dPhiMax = 999.,
float
lxyMin=2.0,
float
probMin=1
e
-6,
unsigned
int
nHitsBeforeVtxMax=1);
59
60
61
static
reco::ConversionRef
matchedConversion
(
const
reco::GsfElectron
&ele,
62
const
edm::Handle<reco::ConversionCollection>
&convCol,
const
math::XYZPoint
&
beamspot
,
bool
allowCkfMatch=
true
,
float
lxyMin=2.0,
float
probMin=1
e
-6,
unsigned
int
nHitsBeforeVtxMax=0);
63
64
static
reco::ConversionRef
matchedConversion
(
const
reco::TrackRef
&trk,
65
const
edm::Handle<reco::ConversionCollection>
&convCol,
const
math::XYZPoint
&
beamspot
,
float
lxyMin=2.0,
float
probMin=1
e
-6,
unsigned
int
nHitsBeforeVtxMax=1);
66
67
static
reco::ConversionRef
matchedConversion
(
const
reco::SuperCluster
&sc,
68
const
edm::Handle<reco::ConversionCollection>
&convCol,
const
math::XYZPoint
&
beamspot
,
float
dRMax
= 0.1,
float
dEtaMax = 999.,
float
dPhiMax = 999.,
float
lxyMin=2.0,
float
probMin=1
e
-6,
unsigned
int
nHitsBeforeVtxMax=1);
69
70
static
bool
hasMatchedPromptElectron
(
const
reco::SuperClusterRef
&sc,
const
edm::Handle<reco::GsfElectronCollection>
&eleCol,
71
const
edm::Handle<reco::ConversionCollection>
&convCol,
const
math::XYZPoint
&
beamspot
,
bool
allowCkfMatch=
true
,
float
lxyMin=2.0,
float
probMin=1
e
-6,
unsigned
int
nHitsBeforeVtxMax=0);
72
73
74
static
reco::GsfElectronRef
matchedPromptElectron
(
const
reco::SuperClusterRef
&sc,
const
edm::Handle<reco::GsfElectronCollection>
&eleCol,
75
const
edm::Handle<reco::ConversionCollection>
&convCol,
const
math::XYZPoint
&
beamspot
,
bool
allowCkfMatch=
true
,
float
lxyMin=2.0,
float
probMin=1
e
-6,
unsigned
int
nHitsBeforeVtxMax=0);
76
77
};
78
#endif
reco::Conversion
Definition:
Conversion.h:24
ConversionTools::matchesConversion
static bool matchesConversion(const reco::GsfElectron &ele, const reco::Conversion &conv, bool allowCkfMatch=true, bool allowAmbiguousGsfMatch=false)
Definition:
ConversionTools.cc:50
conv
static HepMC::IO_HEPEVT conv
Definition:
BeamHaloProducer.cc:50
edm::Ref
Definition:
AssociativeIterator.h:51
reco::GsfElectron
Definition:
GsfElectron.h:37
edm::Handle< reco::ConversionCollection >
Photon.h
ConversionTools::hasMatchedPromptElectron
static bool hasMatchedPromptElectron(const reco::SuperClusterRef &sc, const edm::Handle< reco::GsfElectronCollection > &eleCol, const edm::Handle< reco::ConversionCollection > &convCol, const math::XYZPoint &beamspot, bool allowCkfMatch=true, float lxyMin=2.0, float probMin=1e-6, unsigned int nHitsBeforeVtxMax=0)
Definition:
ConversionTools.cc:296
TrackFwd.h
Point3D.h
edm::RefToBase< reco::Track >
ConversionTools::ConversionTools
ConversionTools()
Definition:
ConversionTools.h:39
MagneticField.h
ConversionTools
Definition:
ConversionTools.h:36
reco::SuperCluster
Definition:
SuperCluster.h:19
ConversionTools::hasMatchedConversion
static bool hasMatchedConversion(const reco::GsfElectron &ele, const edm::Handle< reco::ConversionCollection > &convCol, const math::XYZPoint &beamspot, bool allowCkfMatch=true, float lxyMin=2.0, float probMin=1e-6, unsigned int nHitsBeforeVtxMax=0)
Definition:
ConversionTools.cc:149
ConversionTools::isGoodConversion
static bool isGoodConversion(const reco::Conversion &conv, const math::XYZPoint &beamspot, float lxyMin=2.0, float probMin=1e-6, unsigned int nHitsBeforeVtxMax=1)
Definition:
ConversionTools.cc:18
HLT_25ns10e33_v2_cff.beamspot
tuple beamspot
Definition:
HLT_25ns10e33_v2_cff.py:6504
GsfElectron.h
HLT_25ns10e33_v2_cff.dRMax
tuple dRMax
Definition:
HLT_25ns10e33_v2_cff.py:4697
GsfTrack.h
GsfElectronFwd.h
TrackExtra.h
math::XYZPoint
XYZPointD XYZPoint
point in space with cartesian internal representation
Definition:
Point3D.h:12
alignCSCRings.e
list e
Definition:
alignCSCRings.py:90
ConversionFwd.h
Track.h
GsfTrackFwd.h
ConversionTools::matchedConversion
static reco::ConversionRef matchedConversion(const reco::GsfElectron &ele, const edm::Handle< reco::ConversionCollection > &convCol, const math::XYZPoint &beamspot, bool allowCkfMatch=true, float lxyMin=2.0, float probMin=1e-6, unsigned int nHitsBeforeVtxMax=0)
Definition:
ConversionTools.cc:211
ConversionTools::matchedPromptElectron
static reco::GsfElectronRef matchedPromptElectron(const reco::SuperClusterRef &sc, const edm::Handle< reco::GsfElectronCollection > &eleCol, const edm::Handle< reco::ConversionCollection > &convCol, const math::XYZPoint &beamspot, bool allowCkfMatch=true, float lxyMin=2.0, float probMin=1e-6, unsigned int nHitsBeforeVtxMax=0)
Definition:
ConversionTools.cc:326
Generated for CMSSW Reference Manual by
1.8.5