Skip to content

Commit

Permalink
Merge .h and .cc files of some more PhysicsTools plugins
Browse files Browse the repository at this point in the history
  • Loading branch information
guitargeek committed Aug 31, 2021
1 parent d13529b commit d363c3b
Show file tree
Hide file tree
Showing 11 changed files with 248 additions and 342 deletions.
49 changes: 34 additions & 15 deletions PhysicsTools/IsolationAlgos/plugins/CandIsoDepositProducer.cc
Original file line number Diff line number Diff line change
@@ -1,26 +1,44 @@
#include "PhysicsTools/IsolationAlgos/plugins/CandIsoDepositProducer.h"

// Framework
#include "DataFormats/Common/interface/AssociationVector.h"
#include "DataFormats/Common/interface/Handle.h"
#include "DataFormats/Common/interface/RefToBaseProd.h"
#include "DataFormats/GsfTrackReco/interface/GsfTrack.h"
#include "DataFormats/MuonReco/interface/Muon.h"
#include "DataFormats/RecoCandidate/interface/IsoDeposit.h"
#include "DataFormats/RecoCandidate/interface/IsoDepositDirection.h"
#include "DataFormats/RecoCandidate/interface/IsoDepositFwd.h"
#include "DataFormats/RecoCandidate/interface/RecoCandidate.h"
#include "DataFormats/TrackReco/interface/Track.h"
#include "FWCore/Framework/interface/ConsumesCollector.h"
#include "FWCore/Framework/interface/EDProducer.h"
#include "FWCore/Framework/interface/ESHandle.h"
#include "FWCore/Framework/interface/Event.h"
#include "FWCore/Framework/interface/EventSetup.h"
#include "DataFormats/Common/interface/Handle.h"
#include "FWCore/Framework/interface/MakerMacros.h"
#include "FWCore/Framework/interface/stream/EDProducer.h"
#include "FWCore/MessageLogger/interface/MessageLogger.h"
#include "FWCore/ParameterSet/interface/ParameterSet.h"
#include "PhysicsTools/IsolationAlgos/interface/IsoDepositExtractor.h"
#include "PhysicsTools/IsolationAlgos/interface/IsoDepositExtractorFactory.h"

#include "FWCore/Framework/interface/ESHandle.h"
#include <string>

#include "DataFormats/RecoCandidate/interface/IsoDeposit.h"
#include "DataFormats/TrackReco/interface/Track.h"
#include "DataFormats/MuonReco/interface/Muon.h"
class CandIsoDepositProducer : public edm::stream::EDProducer<> {
public:
CandIsoDepositProducer(const edm::ParameterSet &);

#include "DataFormats/RecoCandidate/interface/IsoDepositDirection.h"
#include "DataFormats/GsfTrackReco/interface/GsfTrack.h"
~CandIsoDepositProducer() override;

#include "PhysicsTools/IsolationAlgos/interface/IsoDepositExtractor.h"
#include "PhysicsTools/IsolationAlgos/interface/IsoDepositExtractorFactory.h"
void produce(edm::Event &, const edm::EventSetup &) override;

#include "FWCore/MessageLogger/interface/MessageLogger.h"
#include <string>
private:
inline const reco::Track *extractTrack(const reco::Candidate &cand, reco::Track *dummyStorage) const;
enum TrackType { FakeT, BestT, StandAloneMuonT, CombinedMuonT, TrackT, GsfT, CandidateT };
edm::ParameterSet theConfig;
edm::EDGetTokenT<edm::View<reco::Candidate> > theCandCollectionToken;
TrackType theTrackType;
std::vector<std::string> theDepositNames;
bool theMultipleDepositsFlag;
std::unique_ptr<reco::isodeposit::IsoDepositExtractor> theExtractor;
};

using namespace edm;
using namespace reco;
Expand Down Expand Up @@ -177,4 +195,5 @@ void CandIsoDepositProducer::produce(Event &event, const EventSetup &eventSetup)
} //! for(iDep<nDeps)
}

#include "FWCore/Framework/interface/MakerMacros.h"
DEFINE_FWK_MODULE(CandIsoDepositProducer);
42 changes: 0 additions & 42 deletions PhysicsTools/IsolationAlgos/plugins/CandIsoDepositProducer.h

This file was deleted.

67 changes: 52 additions & 15 deletions PhysicsTools/IsolationAlgos/plugins/CandIsolatorFromDeposits.cc
Original file line number Diff line number Diff line change
@@ -1,27 +1,63 @@
#include "PhysicsTools/IsolationAlgos/plugins/CandIsolatorFromDeposits.h"

// Framework
#include "FWCore/Framework/interface/EDProducer.h"
#include "FWCore/Framework/interface/Event.h"
#include "FWCore/Framework/interface/EventSetup.h"
#include "CommonTools/Utils/interface/StringObjectFunction.h"
#include "DataFormats/Candidate/interface/CandAssociation.h"
#include "DataFormats/Candidate/interface/Candidate.h"
#include "DataFormats/Common/interface/Handle.h"
#include "FWCore/Framework/interface/MakerMacros.h"

#include "FWCore/Framework/interface/ESHandle.h"

#include "DataFormats/TrackReco/interface/Track.h"
#include "DataFormats/Common/interface/OwnVector.h"
#include "DataFormats/MuonReco/interface/Muon.h"
#include "DataFormats/RecoCandidate/interface/IsoDepositDirection.h"
#include "DataFormats/RecoCandidate/interface/IsoDeposit.h"
#include "DataFormats/RecoCandidate/interface/IsoDepositDirection.h"
#include "DataFormats/RecoCandidate/interface/IsoDepositFwd.h"
#include "DataFormats/RecoCandidate/interface/IsoDepositVetos.h"

#include "DataFormats/Candidate/interface/CandAssociation.h"
#include "DataFormats/TrackReco/interface/Track.h"
#include "FWCore/Framework/interface/ConsumesCollector.h"
#include "FWCore/Framework/interface/EDProducer.h"
#include "FWCore/Framework/interface/ESHandle.h"
#include "FWCore/Framework/interface/Event.h"
#include "FWCore/Framework/interface/EventSetup.h"
#include "FWCore/Framework/interface/stream/EDProducer.h"
#include "FWCore/MessageLogger/interface/MessageLogger.h"
#include "FWCore/ParameterSet/interface/ParameterSet.h"
#include "PhysicsTools/IsolationAlgos/interface/EventDependentAbsVeto.h"
#include "PhysicsTools/IsolationAlgos/interface/IsoDepositVetoFactory.h"

#include <string>
#include <regex>

#include "PhysicsTools/IsolationAlgos/interface/IsoDepositVetoFactory.h"
class CandIsolatorFromDeposits : public edm::stream::EDProducer<> {
public:
typedef edm::ValueMap<double> CandDoubleMap;

enum Mode { Sum, SumRelative, Sum2, Sum2Relative, Max, MaxRelative, Count, NearestDR, MeanDR, SumDR };
CandIsolatorFromDeposits(const edm::ParameterSet &);

~CandIsolatorFromDeposits() override;

void produce(edm::Event &, const edm::EventSetup &) override;

private:
class SingleDeposit {
public:
SingleDeposit(const edm::ParameterSet &, edm::ConsumesCollector &&iC);
void cleanup();
void open(const edm::Event &iEvent, const edm::EventSetup &iSetup);
double compute(const reco::CandidateBaseRef &cand);
const reco::IsoDepositMap &map() { return *hDeps_; }

private:
Mode mode_;
edm::EDGetTokenT<reco::IsoDepositMap> srcToken_;
double deltaR_;
bool usesFunction_;
double weight_;
StringObjectFunction<reco::Candidate> weightExpr_;
reco::isodeposit::AbsVetos vetos_;
reco::isodeposit::EventDependentAbsVetos evdepVetos_; // note: these are a subset of the above. Don't delete twice!
bool skipDefaultVeto_;
edm::Handle<reco::IsoDepositMap> hDeps_; // transient
};
// datamembers
std::vector<SingleDeposit> sources_;
};

using namespace edm;
using namespace reco;
Expand Down Expand Up @@ -193,4 +229,5 @@ void CandIsolatorFromDeposits::produce(Event &event, const EventSetup &eventSetu
event.put(std::move(ret));
}

#include "FWCore/Framework/interface/MakerMacros.h"
DEFINE_FWK_MODULE(CandIsolatorFromDeposits);
62 changes: 0 additions & 62 deletions PhysicsTools/IsolationAlgos/plugins/CandIsolatorFromDeposits.h

This file was deleted.

101 changes: 94 additions & 7 deletions PhysicsTools/IsolationAlgos/plugins/CandViewExtractor.cc
Original file line number Diff line number Diff line change
@@ -1,17 +1,105 @@
#include "CandViewExtractor.h"

#include "DataFormats/RecoCandidate/interface/IsoDepositDirection.h"
#include "DataFormats/Candidate/interface/Candidate.h"
#include "DataFormats/Common/interface/Handle.h"
#include "DataFormats/Math/interface/deltaR.h"
#include "DataFormats/RecoCandidate/interface/IsoDeposit.h"
#include "DataFormats/RecoCandidate/interface/IsoDepositDirection.h"
#include "DataFormats/TrackReco/interface/Track.h"
#include "DataFormats/TrackReco/interface/TrackFwd.h"
#include "FWCore/Framework/interface/ConsumesCollector.h"
#include "FWCore/MessageLogger/interface/MessageLogger.h"
#include "DataFormats/Math/interface/deltaR.h"
#include "PhysicsTools/IsolationAlgos/interface/IsoDepositExtractor.h"

#include <string>
#include <vector>

namespace muonisolation {

class CandViewExtractor : public reco::isodeposit::IsoDepositExtractor {
public:
CandViewExtractor(){};
CandViewExtractor(const edm::ParameterSet& par, edm::ConsumesCollector&& iC);

~CandViewExtractor() override {}

void fillVetos(const edm::Event& ev, const edm::EventSetup& evSetup, const reco::TrackCollection& cand) override {}

/* virtual reco::IsoDeposit::Vetos vetos(const edm::Event & ev,
const edm::EventSetup & evSetup, const reco::Candidate & cand) const;
virtual reco::IsoDeposit::Vetos vetos(const edm::Event & ev,
const edm::EventSetup & evSetup, const reco::Track & cand) const;
*/

void initEvent(const edm::Event& ev, const edm::EventSetup& evSetup) override;

reco::IsoDeposit deposit(const edm::Event& ev,
const edm::EventSetup& evSetup,
const reco::Track& muon) const override {
return depositFromObject(ev, evSetup, muon);
}

reco::IsoDeposit deposit(const edm::Event& ev,
const edm::EventSetup& evSetup,
const reco::Candidate& muon) const override {
return depositFromObject(ev, evSetup, muon);
}

private:
reco::IsoDeposit::Veto veto(const reco::IsoDeposit::Direction& dir) const;

template <typename T>
reco::IsoDeposit depositFromObject(const edm::Event& ev, const edm::EventSetup& evSetup, const T& cand) const;

// Parameter set
edm::EDGetTokenT<edm::View<reco::Candidate> > theCandViewToken; // Track Collection Label
std::string theDepositLabel; // name for deposit
edm::Handle<edm::View<reco::Candidate> > theCandViewH; //cached handle
edm::Event::CacheIdentifier_t theCacheID; //event cacheID
double theDiff_r; // transverse distance to vertex
double theDiff_z; // z distance to vertex
double theDR_Max; // Maximum cone angle for deposits
double theDR_Veto; // Veto cone angle
};

} // namespace muonisolation

using namespace edm;
using namespace reco;
using namespace muonisolation;

#include "CandViewExtractor.icc"
template <typename T>
IsoDeposit CandViewExtractor::depositFromObject(const Event& event, const EventSetup& eventSetup, const T& cand) const {
static const std::string metname = "MuonIsolation|CandViewExtractor";

reco::isodeposit::Direction candDir(cand.eta(), cand.phi());
IsoDeposit deposit(candDir);
deposit.setVeto(veto(candDir));
deposit.addCandEnergy(cand.pt());

Handle<View<Candidate> > candViewH;
if (theCacheID != event.cacheIdentifier()) {
event.getByToken(theCandViewToken, candViewH);
} else {
candViewH = theCandViewH;
}

double eta = cand.eta(), phi = cand.phi();
const reco::Particle::Point& vtx = cand.vertex();
LogDebug(metname) << "cand eta=" << eta << " phi=" << phi << " vtx=" << vtx;
for (View<Candidate>::const_iterator it = candViewH->begin(), ed = candViewH->end(); it != ed; ++it) {
double dR = deltaR(it->eta(), it->phi(), eta, phi);
LogDebug(metname) << "pdgid=" << it->pdgId() << " vtx=" << it->vertex() << " dR=" << dR
<< " dvz=" << it->vz() - cand.vz() << " drho=" << (it->vertex() - vtx).Rho();
if ((dR < theDR_Max) && (dR > theDR_Veto) && (std::abs(it->vz() - cand.vz()) < theDiff_z) &&
((it->vertex() - vtx).Rho() < theDiff_r)) {
// ok
reco::isodeposit::Direction dirTrk(it->eta(), it->phi());
deposit.addDeposit(dirTrk, it->pt());
LogDebug(metname) << "pt=" << it->pt();
}
}

return deposit;
}

CandViewExtractor::CandViewExtractor(const ParameterSet& par, edm::ConsumesCollector&& iC)
: theCandViewToken(iC.consumes<View<Candidate> >(par.getParameter<edm::InputTag>("inputCandView"))),
Expand Down Expand Up @@ -46,5 +134,4 @@ void CandViewExtractor::initEvent(const edm::Event& ev, const edm::EventSetup& e

#include "PhysicsTools/IsolationAlgos/interface/IsoDepositExtractor.h"
#include "PhysicsTools/IsolationAlgos/interface/IsoDepositExtractorFactory.h"
#include "CandViewExtractor.h"
DEFINE_EDM_PLUGIN(IsoDepositExtractorFactory, muonisolation::CandViewExtractor, "CandViewExtractor");
Loading

0 comments on commit d363c3b

Please sign in to comment.