Main Page
Namespaces
Classes
Package Documentation
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Pages
src
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,
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,
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:51
reco::GsfElectron
Definition:
GsfElectron.h:37
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, float lxyMin=2.0, float probMin=1e-6, unsigned int nHitsBeforeVtxMax=0)
Definition:
ConversionTools.cc:296
TrackFwd.h
edm::RefToBase< reco::Track >
edm::Handle< reco::ConversionCollection >
Point3D.h
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
GsfElectron.h
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, float lxyMin=2.0, float probMin=1e-6, unsigned int nHitsBeforeVtxMax=0)
Definition:
ConversionTools.cc:326
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
edm::Ref
Definition:
AssociativeIterator.h:51
Generated for CMSSW Reference Manual by
1.8.5