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
0056 EffectiveAreas _effectiveAreas;
0057 };
0058
0059 #endif