Skip to content

Commit

Permalink
Clang-Format
Browse files Browse the repository at this point in the history
  • Loading branch information
cmsbuild committed Jun 26, 2019
1 parent 9ef01ce commit 485ac1c
Show file tree
Hide file tree
Showing 170 changed files with 9,006 additions and 9,964 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,13 @@
#include "FWCore/ParameterSet/interface/ParameterSet.h"
#include <vector>

namespace reco {
namespace reco {
class BeamSpot;
class PreId;
}
class PreId;
} // namespace reco

namespace lowptgsfeleid {

class Features {
public:
// KF track
Expand All @@ -22,7 +22,7 @@ namespace lowptgsfeleid {
// GSF track
float gsf_nhits_ = -1.;
float gsf_chi2red_ = -1.;
// SC
// SC
float sc_E_ = -1.;
float sc_eta_ = -1.;
float sc_etaWidth_ = -1.;
Expand All @@ -43,28 +43,25 @@ namespace lowptgsfeleid {
float rho_ = -1.;
float brem_frac_ = -1.;
float ele_pt_ = -1.;

public:
std::vector<float> get();
void set( const reco::GsfElectronRef& ele, double rho );
void set(const reco::GsfElectronRef& ele, double rho);
};

class HeavyObjectCache {

class HeavyObjectCache {
public:

HeavyObjectCache( const edm::ParameterSet& );
HeavyObjectCache(const edm::ParameterSet&);

std::vector<std::string> modelNames() const { return names_; }

double eval( const std::string& name, const reco::GsfElectronRef&, double rho ) const;

private:
double eval(const std::string& name, const reco::GsfElectronRef&, double rho) const;

private:
std::vector<std::string> names_;
std::vector< std::unique_ptr<const GBRForest> > models_;
std::vector<std::unique_ptr<const GBRForest> > models_;
std::vector<double> thresholds_;

};
}
} // namespace lowptgsfeleid

#endif // RecoEgamma_EgammaElectronProducers_LowPtGsfElectronIDHeavyObjectCache_h
#endif // RecoEgamma_EgammaElectronProducers_LowPtGsfElectronIDHeavyObjectCache_h
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,13 @@
#include "RecoEcal/EgammaCoreTools/interface/EcalClusterLazyTools.h"
#include <vector>

namespace reco {
namespace reco {
class BeamSpot;
class PreId;
}
class PreId;
} // namespace reco

namespace lowptgsfeleseed {

class Features {
public:
float trk_pt_ = -1.;
Expand All @@ -39,38 +39,34 @@ namespace lowptgsfeleseed {
float preid_gsf_dpt_ = -1.;
float preid_trk_gsf_chiratio_ = -1.;
float preid_gsf_chi2red_ = -1.;
float trk_dxy_sig_ = -1.; // must be last (not used by unbiased model)
float trk_dxy_sig_ = -1.; // must be last (not used by unbiased model)
public:
std::vector<float> get();
void set( const reco::PreId& ecal,
const reco::PreId& hcal,
double rho,
const reco::BeamSpot& spot,
noZS::EcalClusterLazyTools& ecalTools );
void set(const reco::PreId& ecal,
const reco::PreId& hcal,
double rho,
const reco::BeamSpot& spot,
noZS::EcalClusterLazyTools& ecalTools);
};

class HeavyObjectCache {

public:

HeavyObjectCache( const edm::ParameterSet& );
HeavyObjectCache(const edm::ParameterSet&);

std::vector<std::string> modelNames() const { return names_; }

bool eval( const std::string& name,
reco::PreId& ecal,
reco::PreId& hcal,
double rho,
const reco::BeamSpot& spot,
noZS::EcalClusterLazyTools& ecalTools ) const;

private:
bool eval(const std::string& name,
reco::PreId& ecal,
reco::PreId& hcal,
double rho,
const reco::BeamSpot& spot,
noZS::EcalClusterLazyTools& ecalTools) const;

private:
std::vector<std::string> names_;
std::vector< std::unique_ptr<const GBRForest> > models_;
std::vector<std::unique_ptr<const GBRForest> > models_;
std::vector<double> thresholds_;

};
}
} // namespace lowptgsfeleseed

#endif // RecoEgamma_EgammaElectronProducers_LowPtGsfElectronSeedHeavyObjectCache_h
#endif // RecoEgamma_EgammaElectronProducers_LowPtGsfElectronSeedHeavyObjectCache_h
174 changes: 78 additions & 96 deletions RecoEgamma/EgammaElectronProducers/plugins/ElectronNHitSeedProducer.cc
Original file line number Diff line number Diff line change
@@ -1,21 +1,19 @@
//******************************************************************************
//
// Part of the refactorisation of of the E/gamma pixel matching for 2017 pixels
// This refactorisation converts the monolithic approach to a series of
// independent producer modules, with each modules performing a specific
// This refactorisation converts the monolithic approach to a series of
// independent producer modules, with each modules performing a specific
// job as recommended by the 2017 tracker framework
//
//
// The module produces the ElectronSeeds, similarly to ElectronSeedProducer
// although with a varible number of required hits
//
//
//
// Author : Sam Harper (RAL), 2017
//
//*******************************************************************************



#include "FWCore/Framework/interface/stream/EDProducer.h"
#include "FWCore/Framework/interface/Event.h"
#include "FWCore/Framework/interface/EventSetup.h"
Expand All @@ -41,139 +39,123 @@

class ElectronNHitSeedProducer : public edm::stream::EDProducer<> {
public:


explicit ElectronNHitSeedProducer( const edm::ParameterSet & ) ;
~ElectronNHitSeedProducer() override =default;

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

explicit ElectronNHitSeedProducer(const edm::ParameterSet&);
~ElectronNHitSeedProducer() override = default;

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

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

private:

TrajSeedMatcher matcher_;
std::vector<edm::EDGetTokenT<std::vector<reco::SuperClusterRef>> > superClustersTokens_;
edm::EDGetTokenT<TrajectorySeedCollection> initialSeedsToken_ ;
edm::EDGetTokenT<std::vector<reco::Vertex> > verticesToken_;
edm::EDGetTokenT<reco::BeamSpot> beamSpotToken_ ;

std::vector<edm::EDGetTokenT<std::vector<reco::SuperClusterRef>>> superClustersTokens_;
edm::EDGetTokenT<TrajectorySeedCollection> initialSeedsToken_;
edm::EDGetTokenT<std::vector<reco::Vertex>> verticesToken_;
edm::EDGetTokenT<reco::BeamSpot> beamSpotToken_;
edm::EDGetTokenT<MeasurementTrackerEvent> measTkEvtToken_;

};

namespace {
template<typename T>
edm::Handle<T> getHandle(const edm::Event& event,const edm::EDGetTokenT<T>& token)
{
template <typename T>
edm::Handle<T> getHandle(const edm::Event& event, const edm::EDGetTokenT<T>& token) {
edm::Handle<T> handle;
event.getByToken(token,handle);
event.getByToken(token, handle);
return handle;
}

template<typename T>
GlobalPoint convertToGP(const T& orgPoint){
return GlobalPoint(orgPoint.x(),orgPoint.y(),orgPoint.z());
template <typename T>
GlobalPoint convertToGP(const T& orgPoint) {
return GlobalPoint(orgPoint.x(), orgPoint.y(), orgPoint.z());
}

int getLayerOrDiskNr(DetId detId,const TrackerTopology& trackerTopo)
{
if(detId.subdetId()==PixelSubdetector::PixelBarrel){
int getLayerOrDiskNr(DetId detId, const TrackerTopology& trackerTopo) {
if (detId.subdetId() == PixelSubdetector::PixelBarrel) {
return trackerTopo.pxbLayer(detId);
}else if(detId.subdetId()==PixelSubdetector::PixelEndcap){
} else if (detId.subdetId() == PixelSubdetector::PixelEndcap) {
return trackerTopo.pxfDisk(detId);
}else return -1;
} else
return -1;
}

reco::ElectronSeed::PMVars
makeSeedPixelVar(const TrajSeedMatcher::MatchInfo& matchInfo,
const TrackerTopology& trackerTopo)
{

int layerOrDisk = getLayerOrDiskNr(matchInfo.detId,trackerTopo);

reco::ElectronSeed::PMVars makeSeedPixelVar(const TrajSeedMatcher::MatchInfo& matchInfo,
const TrackerTopology& trackerTopo) {
int layerOrDisk = getLayerOrDiskNr(matchInfo.detId, trackerTopo);
reco::ElectronSeed::PMVars pmVars;
pmVars.setDet(matchInfo.detId,layerOrDisk);
pmVars.setDPhi(matchInfo.dPhiPos,matchInfo.dPhiNeg);
pmVars.setDRZ(matchInfo.dRZPos,matchInfo.dRZNeg);
pmVars.setDet(matchInfo.detId, layerOrDisk);
pmVars.setDPhi(matchInfo.dPhiPos, matchInfo.dPhiNeg);
pmVars.setDRZ(matchInfo.dRZPos, matchInfo.dRZNeg);

return pmVars;
}
}

}
} // namespace

ElectronNHitSeedProducer::ElectronNHitSeedProducer( const edm::ParameterSet& pset):
matcher_(pset.getParameter<edm::ParameterSet>("matcherConfig")),
initialSeedsToken_(consumes<TrajectorySeedCollection>(pset.getParameter<edm::InputTag>("initialSeeds"))),
verticesToken_(consumes<std::vector<reco::Vertex> >(pset.getParameter<edm::InputTag>("vertices"))),
beamSpotToken_(consumes<reco::BeamSpot>(pset.getParameter<edm::InputTag>("beamSpot"))),
measTkEvtToken_(consumes<MeasurementTrackerEvent>(pset.getParameter<edm::InputTag>("measTkEvt")))
{
const auto superClusTags = pset.getParameter<std::vector<edm::InputTag> >("superClusters");
for(const auto& scTag : superClusTags){
ElectronNHitSeedProducer::ElectronNHitSeedProducer(const edm::ParameterSet& pset)
: matcher_(pset.getParameter<edm::ParameterSet>("matcherConfig")),
initialSeedsToken_(consumes<TrajectorySeedCollection>(pset.getParameter<edm::InputTag>("initialSeeds"))),
verticesToken_(consumes<std::vector<reco::Vertex>>(pset.getParameter<edm::InputTag>("vertices"))),
beamSpotToken_(consumes<reco::BeamSpot>(pset.getParameter<edm::InputTag>("beamSpot"))),
measTkEvtToken_(consumes<MeasurementTrackerEvent>(pset.getParameter<edm::InputTag>("measTkEvt"))) {
const auto superClusTags = pset.getParameter<std::vector<edm::InputTag>>("superClusters");
for (const auto& scTag : superClusTags) {
superClustersTokens_.emplace_back(consumes<std::vector<reco::SuperClusterRef>>(scTag));
}
produces<reco::ElectronSeedCollection>() ;
produces<reco::ElectronSeedCollection>();
}

void ElectronNHitSeedProducer::fillDescriptions(edm::ConfigurationDescriptions& descriptions)
{
void ElectronNHitSeedProducer::fillDescriptions(edm::ConfigurationDescriptions& descriptions) {
edm::ParameterSetDescription desc;
desc.add<edm::InputTag>("initialSeeds",edm::InputTag("hltElePixelSeedsCombined"));
desc.add<edm::InputTag>("vertices",edm::InputTag());
desc.add<edm::InputTag>("beamSpot",edm::InputTag("hltOnlineBeamSpot"));
desc.add<edm::InputTag>("measTkEvt",edm::InputTag("hltSiStripClusters"));
desc.add<std::vector<edm::InputTag> >("superClusters",std::vector<edm::InputTag>{edm::InputTag{"hltEgammaSuperClustersToPixelMatch"}});
desc.add<edm::ParameterSetDescription>("matcherConfig",TrajSeedMatcher::makePSetDescription());

descriptions.add("electronNHitSeedProducer",desc);
desc.add<edm::InputTag>("initialSeeds", edm::InputTag("hltElePixelSeedsCombined"));
desc.add<edm::InputTag>("vertices", edm::InputTag());
desc.add<edm::InputTag>("beamSpot", edm::InputTag("hltOnlineBeamSpot"));
desc.add<edm::InputTag>("measTkEvt", edm::InputTag("hltSiStripClusters"));
desc.add<std::vector<edm::InputTag>>("superClusters",
std::vector<edm::InputTag>{edm::InputTag{"hltEgammaSuperClustersToPixelMatch"}});
desc.add<edm::ParameterSetDescription>("matcherConfig", TrajSeedMatcher::makePSetDescription());

descriptions.add("electronNHitSeedProducer", desc);
}

void ElectronNHitSeedProducer::produce(edm::Event& iEvent, const edm::EventSetup& iSetup)
{
void ElectronNHitSeedProducer::produce(edm::Event& iEvent, const edm::EventSetup& iSetup) {
edm::ESHandle<TrackerTopology> trackerTopoHandle;
iSetup.get<TrackerTopologyRcd>().get(trackerTopoHandle);

matcher_.doEventSetup(iSetup);
matcher_.setMeasTkEvtHandle(getHandle(iEvent,measTkEvtToken_));
matcher_.setMeasTkEvtHandle(getHandle(iEvent, measTkEvtToken_));

auto eleSeeds = std::make_unique<reco::ElectronSeedCollection>();

auto initialSeedsHandle = getHandle(iEvent,initialSeedsToken_);

auto beamSpotHandle = getHandle(iEvent,beamSpotToken_);
GlobalPoint primVtxPos = convertToGP(beamSpotHandle->position());
auto initialSeedsHandle = getHandle(iEvent, initialSeedsToken_);

for(const auto& superClustersToken : superClustersTokens_){
auto superClustersHandle = getHandle(iEvent,superClustersToken);
for(auto& superClusRef : *superClustersHandle){
auto beamSpotHandle = getHandle(iEvent, beamSpotToken_);
GlobalPoint primVtxPos = convertToGP(beamSpotHandle->position());

for (const auto& superClustersToken : superClustersTokens_) {
auto superClustersHandle = getHandle(iEvent, superClustersToken);
for (auto& superClusRef : *superClustersHandle) {
//the eta of the supercluster when mustache clustered is slightly biased due to bending in magnetic field
//the eta of its seed cluster is a better estimate of the orginal position
GlobalPoint caloPosition(GlobalPoint::Polar(superClusRef->seed()->position().theta(), //seed theta
superClusRef->position().phi(), //supercluster phi
superClusRef->position().r())); //supercluster r


const std::vector<TrajSeedMatcher::SeedWithInfo> matchedSeeds =
matcher_.compatibleSeeds(*initialSeedsHandle,caloPosition,
primVtxPos,superClusRef->energy());

for(auto& matchedSeed : matchedSeeds){
reco::ElectronSeed eleSeed(matchedSeed.seed());
reco::ElectronSeed::CaloClusterRef caloClusRef(superClusRef);
eleSeed.setCaloCluster(caloClusRef);
eleSeed.setNrLayersAlongTraj(matchedSeed.nrValidLayers());
for(auto& matchInfo : matchedSeed.matches()){
eleSeed.addHitInfo(makeSeedPixelVar(matchInfo,*trackerTopoHandle));
}
eleSeeds->emplace_back(eleSeed);
GlobalPoint caloPosition(GlobalPoint::Polar(superClusRef->seed()->position().theta(), //seed theta
superClusRef->position().phi(), //supercluster phi
superClusRef->position().r())); //supercluster r

const std::vector<TrajSeedMatcher::SeedWithInfo> matchedSeeds =
matcher_.compatibleSeeds(*initialSeedsHandle, caloPosition, primVtxPos, superClusRef->energy());

for (auto& matchedSeed : matchedSeeds) {
reco::ElectronSeed eleSeed(matchedSeed.seed());
reco::ElectronSeed::CaloClusterRef caloClusRef(superClusRef);
eleSeed.setCaloCluster(caloClusRef);
eleSeed.setNrLayersAlongTraj(matchedSeed.nrValidLayers());
for (auto& matchInfo : matchedSeed.matches()) {
eleSeed.addHitInfo(makeSeedPixelVar(matchInfo, *trackerTopoHandle));
}
eleSeeds->emplace_back(eleSeed);
}
}

}
iEvent.put(std::move(eleSeeds));
}



DEFINE_FWK_MODULE(ElectronNHitSeedProducer);

0 comments on commit 485ac1c

Please sign in to comment.