Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:09:37

0001 #ifndef DQMOFFLINE_LUMI_ELECTRONIDENTIFIER_H
0002 #define DQMOFFLINE_LUMI_ELECTRONIDENTIFIER_H
0003 
0004 #include "FWCore/Framework/interface/MakerMacros.h"   // definitions for declaring plug-in modules
0005 #include "FWCore/Framework/interface/Frameworkfwd.h"  // declaration of EDM types
0006 #include "FWCore/Framework/interface/ConsumesCollector.h"
0007 #include "FWCore/ParameterSet/interface/ParameterSet.h"  // Parameters
0008 #include "FWCore/Utilities/interface/InputTag.h"
0009 
0010 #include <string>  // string class
0011 #include <TMath.h>
0012 #include <cassert>
0013 
0014 #include "DataFormats/EgammaCandidates/interface/ElectronFwd.h"
0015 #include "DataFormats/EgammaReco/interface/SuperClusterFwd.h"
0016 #include "DataFormats/EgammaCandidates/interface/GsfElectronFwd.h"
0017 #include "DataFormats/EgammaCandidates/interface/GsfElectron.h"
0018 #include "DataFormats/EgammaCandidates/interface/ConversionFwd.h"
0019 #include "DataFormats/EgammaCandidates/interface/Conversion.h"
0020 #include "DataFormats/EgammaCandidates/interface/GsfElectron.h"
0021 
0022 #include "PhysicsTools/SelectorUtils/interface/CutApplicatorBase.h"
0023 
0024 #include "CommonTools/Egamma/interface/EffectiveAreas.h"
0025 #include "DataFormats/BeamSpot/interface/BeamSpot.h"
0026 
0027 enum EleIDCutNames {
0028   SIGMAIETA,
0029   DETAINSEED,
0030   DPHIIN,
0031   HOVERE,
0032   ISO,
0033   ONEOVERE,
0034   MISSINGHITS,
0035   CONVERSION,
0036 };
0037 enum EleIDWorkingPoints { VETO, MEDIUM, LOOSE, TIGHT };
0038 enum EleIDEtaBins { BARREL, ENDCAP };
0039 class ElectronIdentifier {
0040 public:
0041   ElectronIdentifier(const edm::ParameterSet& c);
0042   float dEtaInSeed(const reco::GsfElectronPtr& ele);
0043   bool passID(const reco::GsfElectronPtr& ele,
0044               edm::Handle<reco::BeamSpot> beamspot,
0045               edm::Handle<reco::ConversionCollection> conversions);
0046   float isolation(const reco::GsfElectronPtr& ele);
0047 
0048   void setID(std::string ID);
0049   void setRho(double rho);
0050 
0051 private:
0052   double rho_;
0053   int ID_;
0054   std::array<std::array<std::array<double, 2>, 4>, 8> cuts_;
0055   // Effective area constants
0056   EffectiveAreas _effectiveAreas;
0057 };
0058 
0059 #endif