Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:24:47

0001 #include "RecoEgamma/EgammaElectronAlgos/interface/ElectronClassification.h"
0002 #include "DataFormats/EgammaReco/interface/SuperCluster.h"
0003 #include "FWCore/MessageLogger/interface/MessageLogger.h"
0004 
0005 //===================================================================
0006 // Author: Federico Ferri - INFN Milano, Bicocca university
0007 // 12/2005
0008 // See GsfElectron::Classification
0009 //===================================================================
0010 
0011 using namespace reco;
0012 
0013 GsfElectron::Classification egamma::classifyElectron(GsfElectron const& electron) {
0014   if (!electron.isEB() && !electron.isEE()) {
0015     edm::LogWarning("") << "ElectronClassification::init(): Undefined electron, eta = " << electron.eta() << "!!!!";
0016     return GsfElectron::UNKNOWN;
0017   }
0018 
0019   if (electron.isEBEEGap() || electron.isEBEtaGap() || electron.isEERingGap()) {
0020     return GsfElectron::GAP;
0021   }
0022 
0023   float fbrem = electron.trackFbrem();
0024   int nbrem = electron.numberOfBrems();
0025 
0026   if (electron.superClusterFbrem() - fbrem >= 0.15) {
0027     return GsfElectron::BADTRACK;
0028   }
0029 
0030   if (nbrem == 0 && fbrem < 0.5) {
0031     return GsfElectron::GOLDEN;
0032   }
0033   if (nbrem == 0 && fbrem >= 0.5) {
0034     return GsfElectron::BIGBREM;
0035   }
0036   return GsfElectron::SHOWERING;
0037 }