Main Page
Namespaces
Classes
Package Documentation
RecoEgamma
EgammaElectronAlgos
src
ElectronClassification.cc
Go to the documentation of this file.
1
#include "
RecoEgamma/EgammaElectronAlgos/interface/ElectronClassification.h
"
2
3
#include "
DataFormats/EgammaReco/interface/SuperCluster.h
"
4
5
6
#include "
FWCore/MessageLogger/interface/MessageLogger.h
"
7
8
//===================================================================
9
// Author: Federico Ferri - INFN Milano, Bicocca university
10
// 12/2005
11
// See GsfElectron::Classification
12
//===================================================================
13
14
using namespace
reco
;
15
16
void
ElectronClassification::classify
(
GsfElectron
&
electron
)
17
{
18
if
((!electron.
isEB
())&&(!electron.
isEE
()))
19
{
20
edm::LogWarning
(
""
)
21
<<
"ElectronClassification::init(): Undefined electron, eta = "
22
<< electron.
eta
() <<
"!!!!"
;
23
electron.
setClassification
(
GsfElectron::UNKNOWN
) ;
24
return
;
25
}
26
27
if
( electron.
isEBEEGap
() || electron.
isEBEtaGap
() || electron.
isEERingGap
() )
28
{
29
electron.
setClassification
(
GsfElectron::GAP
) ;
30
return
;
31
}
32
33
//float pin = electron.trackMomentumAtVtx().R() ;
34
float
fbrem = electron.
trackFbrem
() ;
35
int
nbrem = electron.
numberOfBrems
() ;
36
37
if
(nbrem == 0 && fbrem < 0.5)
// part (pin - scEnergy)/pin < 0.1 removed - M.D.
38
{ electron.
setClassification
(
GsfElectron::GOLDEN
) ; }
39
else
if
(nbrem == 0 && fbrem >= 0.5)
// part (pin - scEnergy)/pin < 0.1 removed - M.D.
40
{ electron.
setClassification
(
GsfElectron::BIGBREM
) ; }
41
else
42
{ electron.
setClassification
(
GsfElectron::SHOWERING
) ; }
43
44
}
45
46
void
ElectronClassification::refineWithPflow
(
GsfElectron
&
electron
)
47
{
48
if
((!electron.
isEB
())&&(!electron.
isEE
()))
49
{
return
; }
50
51
if
( electron.
isEBEEGap
() || electron.
isEBEtaGap
() || electron.
isEERingGap
() )
52
{
return
; }
53
54
if
((electron.
superClusterFbrem
()-electron.
trackFbrem
())>=0.15)
55
{ electron.
setClassification
(
GsfElectron::BADTRACK
) ; }
56
}
57
reco::GsfElectron::UNKNOWN
Definition:
GsfElectron.h:747
MessageLogger.h
reco::GsfElectron::GOLDEN
Definition:
GsfElectron.h:747
reco::LeafCandidate::eta
double eta() const final
momentum pseudorapidity
Definition:
LeafCandidate.h:137
reco::GsfElectron::BIGBREM
Definition:
GsfElectron.h:747
reco::GsfElectron::isEBEtaGap
bool isEBEtaGap() const
Definition:
GsfElectron.h:357
reco::GsfElectron::isEBEEGap
bool isEBEEGap() const
Definition:
GsfElectron.h:355
reco::GsfElectron
Definition:
GsfElectron.h:37
edm::LogWarning
Definition:
MessageLogger.h:142
reco::GsfElectron::isEERingGap
bool isEERingGap() const
Definition:
GsfElectron.h:361
reco::GsfElectron::BADTRACK
Definition:
GsfElectron.h:747
reco::GsfElectron::GAP
Definition:
GsfElectron.h:747
reco::GsfElectron::superClusterFbrem
float superClusterFbrem() const
Definition:
GsfElectron.h:751
reco::GsfElectron::isEE
bool isEE() const
Definition:
GsfElectron.h:353
reco::GsfElectron::isEB
bool isEB() const
Definition:
GsfElectron.h:352
mathSSE::return
return((rh^lh)&mask)
reco::GsfElectron::trackFbrem
float trackFbrem() const
Definition:
GsfElectron.h:750
reco::GsfElectron::numberOfBrems
int numberOfBrems() const
Definition:
GsfElectron.h:756
ElectronClassification::classify
void classify(reco::GsfElectron &)
Definition:
ElectronClassification.cc:16
metsig::electron
Definition:
SignAlgoResolutions.h:40
reco::GsfElectron::setClassification
void setClassification(Classification myclass)
Definition:
GsfElectron.h:763
ElectronClassification.h
ElectronClassification::refineWithPflow
void refineWithPflow(reco::GsfElectron &)
Definition:
ElectronClassification.cc:46
reco
fixed size matrix
Definition:
AlignmentAlgorithmBase.h:43
reco::GsfElectron::SHOWERING
Definition:
GsfElectron.h:747
SuperCluster.h
Generated for CMSSW Reference Manual by
1.8.11