Skip to content

Commit

Permalink
Scouting calo jets can now store b-tag information
Browse files Browse the repository at this point in the history
  • Loading branch information
Dustin committed Apr 25, 2016
1 parent 5be967d commit 25ea639
Show file tree
Hide file tree
Showing 3 changed files with 37 additions and 6 deletions.
8 changes: 5 additions & 3 deletions DataFormats/Scouting/interface/ScoutingCaloJet.h
Original file line number Diff line number Diff line change
Expand Up @@ -13,18 +13,18 @@ class ScoutingCaloJet
float jetArea, float maxEInEmTowers, float maxEInHadTowers,
float hadEnergyInHB, float hadEnergyInHE, float hadEnergyInHF,
float emEnergyInEB, float emEnergyInEE, float emEnergyInHF,
float towersArea, float mvaDiscriminator):
float towersArea, float mvaDiscriminator, float btagDiscriminator):
pt_(pt), eta_(eta), phi_(phi), m_(m),
jetArea_(jetArea), maxEInEmTowers_(maxEInEmTowers), maxEInHadTowers_(maxEInHadTowers),
hadEnergyInHB_(hadEnergyInHB), hadEnergyInHE_(hadEnergyInHE), hadEnergyInHF_(hadEnergyInHF),
emEnergyInEB_(emEnergyInEB), emEnergyInEE_(emEnergyInEE), emEnergyInHF_(emEnergyInHF),
towersArea_(towersArea), mvaDiscriminator_(mvaDiscriminator){ }
towersArea_(towersArea), mvaDiscriminator_(mvaDiscriminator), btagDiscriminator_(btagDiscriminator) { }
//default constructor
ScoutingCaloJet():pt_(0), eta_(0), phi_(0), m_(0),
jetArea_(0), maxEInEmTowers_(0), maxEInHadTowers_(0),
hadEnergyInHB_(0), hadEnergyInHE_(0), hadEnergyInHF_(0),
emEnergyInEB_(0), emEnergyInEE_(0), emEnergyInHF_(0),
towersArea_(0), mvaDiscriminator_(0) { }
towersArea_(0), mvaDiscriminator_(0), btagDiscriminator_(0) { }

//accessor functions
float pt() const { return pt_; }
Expand All @@ -42,6 +42,7 @@ class ScoutingCaloJet
float emEnergyInHF() const { return emEnergyInHF_; }
float towersArea() const { return towersArea_; }
float mvaDiscriminator() const { return mvaDiscriminator_; }
float btagDiscriminator() const { return btagDiscriminator_; }

private:
float pt_;
Expand All @@ -59,6 +60,7 @@ class ScoutingCaloJet
float emEnergyInHF_;
float towersArea_;
float mvaDiscriminator_;
float btagDiscriminator_;
};

typedef std::vector<ScoutingCaloJet> ScoutingCaloJetCollection;
Expand Down
3 changes: 2 additions & 1 deletion DataFormats/Scouting/src/classes_def.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
<lcgdict>
<class name="ScoutingCaloJet" ClassVersion="2">
<class name="ScoutingCaloJet" ClassVersion="3">
<version ClassVersion="2" checksum="2705685116"/>
<version ClassVersion="3" checksum="631496401"/>
</class>
<class name="ScoutingPFJet" ClassVersion="2">
<version ClassVersion="2" checksum="2507658732"/>
Expand Down
32 changes: 30 additions & 2 deletions HLTrigger/JetMET/plugins/HLTScoutingCaloProducer.cc
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,13 @@ Description: Producer for ScoutingCaloJets from reco::CaloJet objects
#include "DataFormats/VertexReco/interface/VertexFwd.h"
#include "DataFormats/METReco/interface/CaloMETCollection.h"
#include "DataFormats/METReco/interface/CaloMET.h"
#include "DataFormats/BTauReco/interface/JetTag.h"

#include "DataFormats/Scouting/interface/ScoutingCaloJet.h"
#include "DataFormats/Scouting/interface/ScoutingVertex.h"

#include "DataFormats/Math/interface/deltaR.h"

class HLTScoutingCaloProducer : public edm::global::EDProducer<> {
public:
explicit HLTScoutingCaloProducer(const edm::ParameterSet&);
Expand All @@ -44,6 +47,7 @@ class HLTScoutingCaloProducer : public edm::global::EDProducer<> {
virtual void produce(edm::StreamID sid, edm::Event & iEvent, edm::EventSetup const & setup) const override final;

const edm::EDGetTokenT<reco::CaloJetCollection> caloJetCollection_;
const edm::EDGetTokenT<reco::JetTagCollection> caloJetTagCollection_;
const edm::EDGetTokenT<reco::VertexCollection> vertexCollection_;
const edm::EDGetTokenT<reco::CaloMETCollection> metCollection_;
const edm::EDGetTokenT<double> rho_;
Expand All @@ -52,19 +56,22 @@ class HLTScoutingCaloProducer : public edm::global::EDProducer<> {
const double caloJetEtaCut;

const bool doMet;
const bool doJetTags;
};

//
// constructors and destructor
//
HLTScoutingCaloProducer::HLTScoutingCaloProducer(const edm::ParameterSet& iConfig):
caloJetCollection_(consumes<reco::CaloJetCollection>(iConfig.getParameter<edm::InputTag>("caloJetCollection"))),
caloJetTagCollection_(consumes<reco::JetTagCollection>(iConfig.getParameter<edm::InputTag>("caloJetTagCollection"))),
vertexCollection_(consumes<reco::VertexCollection>(iConfig.getParameter<edm::InputTag>("vertexCollection"))),
metCollection_(consumes<reco::CaloMETCollection>(iConfig.getParameter<edm::InputTag>("metCollection"))),
rho_(consumes<double>(iConfig.getParameter<edm::InputTag>("rho"))),
caloJetPtCut(iConfig.getParameter<double>("caloJetPtCut")),
caloJetEtaCut(iConfig.getParameter<double>("caloJetEtaCut")),
doMet(iConfig.getParameter<bool>("doMet"))
doMet(iConfig.getParameter<bool>("doMet")),
doJetTags(iConfig.getParameter<bool>("doJetTags"))
{
//register products
produces<ScoutingCaloJetCollection>();
Expand All @@ -87,14 +94,33 @@ HLTScoutingCaloProducer::produce(edm::StreamID sid, edm::Event & iEvent, edm::Ev
Handle<reco::CaloJetCollection> caloJetCollection;
std::auto_ptr<ScoutingCaloJetCollection> outCaloJets(new ScoutingCaloJetCollection());
if(iEvent.getByToken(caloJetCollection_, caloJetCollection)){
//get jet tags
Handle<reco::JetTagCollection> caloJetTagCollection;
bool haveJetTags = false;
if(doJetTags && iEvent.getByToken(caloJetTagCollection_, caloJetTagCollection)){
haveJetTags = true;
}

for(auto &jet : *caloJetCollection){
if(jet.pt() > caloJetPtCut && fabs(jet.eta()) < caloJetEtaCut){
//find the jet tag corresponding to the jet
float tagValue = -20;
float minDR2 = 0.01;
if(haveJetTags){
for(auto &tag : *caloJetTagCollection){
float dR2 = reco::deltaR2(jet, *(tag.first));
if(dR2 < minDR2){
minDR2 = dR2;
tagValue = tag.second;
}
}
}
outCaloJets->emplace_back(
jet.pt(), jet.eta(), jet.phi(), jet.mass(),
jet.jetArea(), jet.maxEInEmTowers(), jet.maxEInHadTowers(),
jet.hadEnergyInHB(), jet.hadEnergyInHE(), jet.hadEnergyInHF(),
jet.emEnergyInEB(), jet.emEnergyInEE(), jet.emEnergyInHF(),
jet.towersArea(), 0.0
jet.towersArea(), 0.0, tagValue
);
}
}
Expand Down Expand Up @@ -141,12 +167,14 @@ void
HLTScoutingCaloProducer::fillDescriptions(edm::ConfigurationDescriptions& descriptions) {
edm::ParameterSetDescription desc;
desc.add<edm::InputTag>("caloJetCollection",edm::InputTag("hltAK4CaloJets"));
desc.add<edm::InputTag>("caloJetTagCollection",edm::InputTag("hltCombinedSecondaryVertexBJetTagsCalo"));
desc.add<edm::InputTag>("vertexCollection", edm::InputTag("hltPixelVertices"));
desc.add<edm::InputTag>("metCollection", edm::InputTag("hltMet"));
desc.add<edm::InputTag>("rho", edm::InputTag("hltFixedGridRhoFastjetAllCalo"));
desc.add<double>("caloJetPtCut", 20.0);
desc.add<double>("caloJetEtaCut", 3.0);
desc.add<bool>("doMet", true);
desc.add<bool>("doJetTags", false);
descriptions.add("hltScoutingCaloProducer", desc);
}

Expand Down

0 comments on commit 25ea639

Please sign in to comment.