Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

EleEAData2012 #2376

Merged
merged 3 commits into from Feb 27, 2014
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
17 changes: 11 additions & 6 deletions EgammaAnalysis/ElectronTools/interface/EGammaCutBasedEleId.h
Expand Up @@ -14,6 +14,7 @@
#include "DataFormats/VertexReco/interface/Vertex.h"
#include "DataFormats/VertexReco/interface/VertexFwd.h"
#endif
#include "EgammaAnalysis/ElectronTools/interface/ElectronEffectiveArea.h"

#include <vector>

Expand Down Expand Up @@ -79,7 +80,8 @@ bool PassWP(const WorkingPoint workingPoint,
const double &iso_ch,
const double &iso_em,
const double &iso_nh,
const double &rho);
const double &rho,
ElectronEffectiveArea::ElectronEffectiveAreaTarget EAtarget);


bool PassWP(const WorkingPoint workingPoint,
Expand All @@ -90,7 +92,8 @@ bool PassWP(const WorkingPoint workingPoint,
const double &iso_ch,
const double &iso_em,
const double &iso_nh,
const double &rho);
const double &rho,
ElectronEffectiveArea::ElectronEffectiveAreaTarget EAtarget);


bool PassTriggerCuts(const TriggerWorkingPoint triggerWorkingPoint, const reco::GsfElectronRef &ele);
Expand All @@ -109,7 +112,8 @@ unsigned int TestWP(const WorkingPoint workingPoint,
const double &iso_ch,
const double &iso_em,
const double &iso_nh,
const double &rho);
const double &rho,
ElectronEffectiveArea::ElectronEffectiveAreaTarget EAtarget);

unsigned int TestWP(const WorkingPoint workingPoint,
const reco::GsfElectron &ele,
Expand All @@ -119,7 +123,8 @@ unsigned int TestWP(const WorkingPoint workingPoint,
const double &iso_ch,
const double &iso_em,
const double &iso_nh,
const double &rho);
const double &rho,
ElectronEffectiveArea::ElectronEffectiveAreaTarget EAtarget);

#endif

Expand All @@ -132,7 +137,7 @@ unsigned int TestWP(const WorkingPoint workingPoint,
bool PassWP(WorkingPoint workingPoint, const bool isEB, const float pt, const float eta,
const float dEtaIn, const float dPhiIn, const float sigmaIEtaIEta, const float hoe,
const float ooemoop, const float d0vtx, const float dzvtx, const float iso_ch, const float iso_em, const float iso_nh,
const bool vtxFitConversion, const unsigned int mHits, const double rho);
const bool vtxFitConversion, const unsigned int mHits, const double rho, ElectronEffectiveArea::ElectronEffectiveAreaTarget EAtarget);

bool PassTriggerCuts(const TriggerWorkingPoint triggerWorkingPoint, const bool isEB, const float pt,
const float dEtaIn, const float dPhiIn, const float sigmaIEtaIEta, const float hoe,
Expand All @@ -143,7 +148,7 @@ bool PassEoverPCuts(const float eta, const float eopin, const float fbrem);
unsigned int TestWP(WorkingPoint workingPoint, const bool isEB, const float pt, const float eta,
const float dEtaIn, const float dPhiIn, const float sigmaIEtaIEta, const float hoe,
const float ooemoop, const float d0vtx, const float dzvtx, const float iso_ch, const float iso_em, const float iso_nh,
const bool vtxFitConversion, const unsigned int mHits, const double rho);
const bool vtxFitConversion, const unsigned int mHits, const double rho, ElectronEffectiveArea::ElectronEffectiveAreaTarget EAtarget);

// print the bit mask
void PrintDebug(unsigned int mask);
Expand Down
Expand Up @@ -20,7 +20,7 @@
#ifndef STANDALONE
#endif

using namespace std;
//using namespace std;

class ElectronEffectiveArea{
public:
Expand Down
28 changes: 16 additions & 12 deletions EgammaAnalysis/ElectronTools/src/EGammaCutBasedEleId.cc
Expand Up @@ -14,11 +14,12 @@ bool EgammaCutBasedEleId::PassWP(WorkingPoint workingPoint,
const double &iso_ch,
const double &iso_em,
const double &iso_nh,
const double &rho)
const double &rho,
ElectronEffectiveArea::ElectronEffectiveAreaTarget EAtarget)
{

// get the mask
unsigned int mask = TestWP(workingPoint, ele, conversions, beamspot, vtxs, iso_ch, iso_em, iso_nh, rho);
unsigned int mask = TestWP(workingPoint, ele, conversions, beamspot, vtxs, iso_ch, iso_em, iso_nh, rho, EAtarget);

// check if the desired WP passed
if ((mask & PassAll) == PassAll) return true;
Expand All @@ -33,9 +34,10 @@ bool EgammaCutBasedEleId::PassWP(WorkingPoint workingPoint,
const double &iso_ch,
const double &iso_em,
const double &iso_nh,
const double &rho)
const double &rho,
ElectronEffectiveArea::ElectronEffectiveAreaTarget EAtarget)
{
return PassWP(workingPoint,*ele,conversions,beamspot,vtxs,iso_ch,iso_em,iso_nh,rho);
return PassWP(workingPoint,*ele,conversions,beamspot,vtxs,iso_ch,iso_em,iso_nh,rho, EAtarget);
}

bool EgammaCutBasedEleId::PassTriggerCuts(TriggerWorkingPoint triggerWorkingPoint, const reco::GsfElectron &ele)
Expand Down Expand Up @@ -88,7 +90,8 @@ unsigned int EgammaCutBasedEleId::TestWP(WorkingPoint workingPoint,
const double &iso_ch,
const double &iso_em,
const double &iso_nh,
const double &rho)
const double &rho,
ElectronEffectiveArea::ElectronEffectiveAreaTarget EAtarget)
{

// get the ID variables from the electron object
Expand Down Expand Up @@ -123,7 +126,7 @@ unsigned int EgammaCutBasedEleId::TestWP(WorkingPoint workingPoint,

// get the mask value
unsigned int mask = EgammaCutBasedEleId::TestWP(workingPoint, isEB, pt, eta, dEtaIn, dPhiIn,
sigmaIEtaIEta, hoe, ooemoop, d0vtx, dzvtx, iso_ch, iso_em, iso_nh, vtxFitConversion, mHits, rho);
sigmaIEtaIEta, hoe, ooemoop, d0vtx, dzvtx, iso_ch, iso_em, iso_nh, vtxFitConversion, mHits, rho, EAtarget);

// return the mask value
return mask;
Expand All @@ -138,8 +141,9 @@ unsigned int EgammaCutBasedEleId::TestWP(WorkingPoint workingPoint,
const double &iso_ch,
const double &iso_em,
const double &iso_nh,
const double &rho) {
return TestWP(workingPoint,*ele,conversions,beamspot,vtxs,iso_ch,iso_em,iso_nh,rho);
const double &rho,
ElectronEffectiveArea::ElectronEffectiveAreaTarget EAtarget) {
return TestWP(workingPoint,*ele,conversions,beamspot,vtxs,iso_ch,iso_em,iso_nh,rho, EAtarget);
}


Expand All @@ -148,10 +152,10 @@ unsigned int EgammaCutBasedEleId::TestWP(WorkingPoint workingPoint,
bool EgammaCutBasedEleId::PassWP(WorkingPoint workingPoint, const bool isEB, const float pt, const float eta,
const float dEtaIn, const float dPhiIn, const float sigmaIEtaIEta, const float hoe,
const float ooemoop, const float d0vtx, const float dzvtx, const float iso_ch, const float iso_em, const float iso_nh,
const bool vtxFitConversion, const unsigned int mHits, const double rho)
const bool vtxFitConversion, const unsigned int mHits, const double rho, ElectronEffectiveArea::ElectronEffectiveAreaTarget EAtarget)
{
unsigned int mask = EgammaCutBasedEleId::TestWP(workingPoint, isEB, pt, eta, dEtaIn, dPhiIn,
sigmaIEtaIEta, hoe, ooemoop, d0vtx, dzvtx, iso_ch, iso_em, iso_nh, vtxFitConversion, mHits, rho);
sigmaIEtaIEta, hoe, ooemoop, d0vtx, dzvtx, iso_ch, iso_em, iso_nh, vtxFitConversion, mHits, rho, EAtarget);

if ((mask & PassAll) == PassAll) return true;
return false;
Expand Down Expand Up @@ -216,7 +220,7 @@ bool EgammaCutBasedEleId::PassEoverPCuts(const float eta, const float eopin, con
unsigned int EgammaCutBasedEleId::TestWP(WorkingPoint workingPoint, const bool isEB, const float pt, const float eta,
const float dEtaIn, const float dPhiIn, const float sigmaIEtaIEta, const float hoe,
const float ooemoop, const float d0vtx, const float dzvtx, const float iso_ch, const float iso_em, const float iso_nh,
const bool vtxFitConversion, const unsigned int mHits, const double rho)
const bool vtxFitConversion, const unsigned int mHits, const double rho, ElectronEffectiveArea::ElectronEffectiveAreaTarget EAtarget)
{

unsigned int mask = 0;
Expand Down Expand Up @@ -302,7 +306,7 @@ unsigned int EgammaCutBasedEleId::TestWP(WorkingPoint workingPoint, const bool i
unsigned int idx = isEB ? 0 : 1;

// effective area for isolation
float AEff = ElectronEffectiveArea::GetElectronEffectiveArea(ElectronEffectiveArea::kEleGammaAndNeutralHadronIso03, eta, ElectronEffectiveArea::kEleEAData2011);
float AEff = ElectronEffectiveArea::GetElectronEffectiveArea(ElectronEffectiveArea::kEleGammaAndNeutralHadronIso03, eta, EAtarget);

// apply to neutrals
double rhoPrime = std::max(rho, 0.0);
Expand Down
24 changes: 20 additions & 4 deletions EgammaAnalysis/ElectronTools/src/EGammaCutBasedEleIdAnalyzer.cc
Expand Up @@ -35,6 +35,7 @@ Description: [one line class summary]
#include "DataFormats/Common/interface/ValueMap.h"
#include "DataFormats/RecoCandidate/interface/IsoDeposit.h"
#include "EgammaAnalysis/ElectronTools/interface/EGammaCutBasedEleId.h"
#include "EgammaAnalysis/ElectronTools/interface/ElectronEffectiveArea.h"
#include "FWCore/ServiceRegistry/interface/Service.h"
#include "CommonTools/UtilAlgos/interface/TFileService.h"

Expand All @@ -52,6 +53,7 @@ class EGammaCutBasedEleIdAnalyzer : public edm::EDAnalyzer {

static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);

ElectronEffectiveArea::ElectronEffectiveAreaTarget EAtarget;

private:
virtual void beginJob() ;
Expand All @@ -73,6 +75,7 @@ class EGammaCutBasedEleIdAnalyzer : public edm::EDAnalyzer {
edm::InputTag primaryVertexInputTag_;
std::vector<edm::InputTag> isoValInputTags_;

std::string EAtargetToken_;
// debug
bool printDebug_;

Expand Down Expand Up @@ -112,6 +115,7 @@ EGammaCutBasedEleIdAnalyzer::EGammaCutBasedEleIdAnalyzer(const edm::ParameterSet
primaryVertexInputTag_ = iConfig.getParameter<edm::InputTag>("primaryVertexInputTag");
isoValInputTags_ = iConfig.getParameter<std::vector<edm::InputTag> >("isoValInputTags");

EAtargetToken_ = iConfig.getParameter<std::string>("EAtarget");//EleEANoCorr, EleEAData2011, EleEASummer11MC,EleEAFall11MC, EleEAData2012/
// debug
printDebug_ = iConfig.getParameter<bool>("printDebug");

Expand Down Expand Up @@ -194,10 +198,10 @@ EGammaCutBasedEleIdAnalyzer::analyze(const edm::Event& iEvent, const edm::EventS
//

// working points
bool veto = EgammaCutBasedEleId::PassWP(EgammaCutBasedEleId::VETO, ele, conversions_h, beamSpot, vtx_h, iso_ch, iso_em, iso_nh, rhoIso);
bool loose = EgammaCutBasedEleId::PassWP(EgammaCutBasedEleId::LOOSE, ele, conversions_h, beamSpot, vtx_h, iso_ch, iso_em, iso_nh, rhoIso);
bool medium = EgammaCutBasedEleId::PassWP(EgammaCutBasedEleId::MEDIUM, ele, conversions_h, beamSpot, vtx_h, iso_ch, iso_em, iso_nh, rhoIso);
bool tight = EgammaCutBasedEleId::PassWP(EgammaCutBasedEleId::TIGHT, ele, conversions_h, beamSpot, vtx_h, iso_ch, iso_em, iso_nh, rhoIso);
bool veto = EgammaCutBasedEleId::PassWP(EgammaCutBasedEleId::VETO, ele, conversions_h, beamSpot, vtx_h, iso_ch, iso_em, iso_nh, rhoIso, EAtarget);
bool loose = EgammaCutBasedEleId::PassWP(EgammaCutBasedEleId::LOOSE, ele, conversions_h, beamSpot, vtx_h, iso_ch, iso_em, iso_nh, rhoIso, EAtarget);
bool medium = EgammaCutBasedEleId::PassWP(EgammaCutBasedEleId::MEDIUM, ele, conversions_h, beamSpot, vtx_h, iso_ch, iso_em, iso_nh, rhoIso, EAtarget);
bool tight = EgammaCutBasedEleId::PassWP(EgammaCutBasedEleId::TIGHT, ele, conversions_h, beamSpot, vtx_h, iso_ch, iso_em, iso_nh, rhoIso, EAtarget);

// eop/fbrem cuts for extra tight ID
bool fbremeopin = EgammaCutBasedEleId::PassEoverPCuts(ele);
Expand Down Expand Up @@ -244,6 +248,18 @@ EGammaCutBasedEleIdAnalyzer::analyze(const edm::Event& iEvent, const edm::EventS
void
EGammaCutBasedEleIdAnalyzer::beginJob()
{
if( EAtargetToken_ == "EleEANoCorr")
EAtarget =ElectronEffectiveArea::kEleEANoCorr;
else if( EAtargetToken_ == "EleEAData2011")
EAtarget =ElectronEffectiveArea::kEleEAData2011;
else if( EAtargetToken_ == "EleEASummer11MC")
EAtarget =ElectronEffectiveArea::kEleEASummer11MC;
else if( EAtargetToken_ == "EleEAFall11MC")
EAtarget =ElectronEffectiveArea::kEleEAFall11MC;
else if( EAtargetToken_ == "EleEAData2012")
EAtarget =ElectronEffectiveArea::kEleEAData2012;
else
EAtarget =ElectronEffectiveArea::kEleEAData2012;
}

// ------------ method called once each job just after ending the event loop ------------
Expand Down