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

Removes vector api from RecoCaloTools/Selectors (callbacks are used instead). #3017

Merged
merged 1 commit into from Mar 29, 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
8 changes: 4 additions & 4 deletions RecoCaloTools/Selectors/interface/CaloConeSelector.h
Expand Up @@ -14,11 +14,11 @@
template <class T>
class CaloConeSelector {
public:
CaloConeSelector(double dR, const CaloGeometry* geom);
CaloConeSelector(double dR, const CaloGeometry* geom, DetId::Detector detector, int subdet=0);
CaloConeSelector(double dR, const CaloGeometry* geom) :
geom_(geom),deltaR_(dR),detector_(DetId::Detector(0)),subdet_(0) {}

std::auto_ptr<edm::SortedCollection<T> > select(double eta, double phi, const edm::SortedCollection<T>& inputCollection);
std::auto_ptr<edm::SortedCollection<T> > select(const GlobalPoint& p, const edm::SortedCollection<T>& inputCollection);
CaloConeSelector(double dR, const CaloGeometry* geom, DetId::Detector detector, int subdet=0) :
geom_(geom),deltaR_(dR),detector_(detector),subdet_(subdet) {}

void inline selectCallback(double eta, double phi, const edm::SortedCollection<T>& inputCollection, std::function<void(const T&)> callback) {
GlobalPoint p(GlobalPoint::Cylindrical(1,phi,tanh(eta)));
Expand Down
10 changes: 5 additions & 5 deletions RecoCaloTools/Selectors/interface/CaloDualConeSelector.h
Expand Up @@ -13,11 +13,11 @@
template <class T>
class CaloDualConeSelector {
public:
CaloDualConeSelector(double dRmin, double dRmax, const CaloGeometry* geom);
CaloDualConeSelector(double dRmin, double dRmax, const CaloGeometry* geom, DetId::Detector detector, int subdet=0);

std::auto_ptr<edm::SortedCollection<T> > select(double eta, double phi, const edm::SortedCollection<T>& inputCollection);
std::auto_ptr<edm::SortedCollection<T> > select(const GlobalPoint& p, const edm::SortedCollection<T>& inputCollection);
CaloDualConeSelector(double dRmin, double dRmax, const CaloGeometry* geom) :
geom_(geom),deltaRmin_(dRmin),deltaRmax_(dRmax),detector_(DetId::Detector(0)),subdet_(0) {}
CaloDualConeSelector(double dRmin, double dRmax, const CaloGeometry* geom, DetId::Detector detector, int subdet=0) :
geom_(geom),deltaRmin_(dRmin),deltaRmax_(dRmax),detector_(detector),subdet_(subdet) {}

void inline selectCallback(double eta, double phi, const edm::SortedCollection<T>& inputCollection, std::function<void(const T&)> callback) {
GlobalPoint p(GlobalPoint::Cylindrical(1,phi,tanh(eta)));
Expand Down
37 changes: 0 additions & 37 deletions RecoCaloTools/Selectors/src/CaloConeSelector.cc

This file was deleted.

37 changes: 0 additions & 37 deletions RecoCaloTools/Selectors/src/CaloDualConeSelector.cc

This file was deleted.

19 changes: 9 additions & 10 deletions RecoCaloTools/Selectors/test/TestCaloSelectors.cc
Expand Up @@ -45,18 +45,17 @@ void TestCaloSelectors::analyze(const edm::Event& evt, const edm::EventSetup& c)
CaloConeSelector<HBHERecHit> sel(0.3, pG.product(), DetId::Hcal);
CaloDualConeSelector<HBHERecHit> sel2(0.3, 0.5, pG.product(), DetId::Hcal);

std::auto_ptr<HBHERecHitCollection> chosen = sel.select(pMax, mhbhe);
std::auto_ptr<HBHERecHitCollection> chosen2 = sel2.select(pMax, mhbhe);
std::cout << "Center at " << pMax.eta() << "," << pMax.phi() << " (ET=" << maxEt << ")" << std::endl;

sel.selectCallback(pMax, mhbhe, [&](const HBHERecHit& i) {
std::cout << HcalDetId(i.detid()) << " : " << i << std::endl;
});

std::cout << "Center at " << pMax.eta() << "," << pMax.phi() << " (ET=" << maxEt << ") I had " << mhbhe.size() << " and I kept " << chosen->size() << std::endl;

for (HBHERecHitCollection::const_iterator i=chosen->begin(); i!=chosen->end(); i++) {
std::cout << HcalDetId(i->detid()) << " : " << (*i) << std::endl;
}
std::cout << "Dual cone\n";
for (HBHERecHitCollection::const_iterator i=chosen2->begin(); i!=chosen2->end(); i++) {
std::cout << HcalDetId(i->detid()) << " : " << (*i) << std::endl;
}

sel2.selectCallback(pMax, mhbhe, [&](const HBHERecHit& i) {
std::cout << HcalDetId(i.detid()) << " : " << i << std::endl;
});

std::cout << std::endl;
}
Expand Down
Expand Up @@ -115,35 +115,31 @@ EleIsoDetIdCollectionProducer::produce (edm::Event& iEvent, const edm::EventSetu
if(emObj->et() < etCandCut_) continue; //don't calculate if object hasn't enough energy

GlobalPoint pclu (emObj->caloPosition().x(),emObj->caloPosition().y(),emObj->caloPosition().z());
std::auto_ptr<EcalRecHitCollection> chosen = doubleConeSel_->select(pclu,*recHitsH);
doubleConeSel_->selectCallback(pclu, *recHitsH, [&](const EcalRecHit& recIt) {
if (recIt.energy() < energyCut_)
return; //dont fill if below E noise value

EcalRecHitCollection::const_iterator recIt;
for (recIt = chosen->begin(); recIt!= chosen->end () ; ++recIt) { // Select RecHits

if (recIt->energy() < energyCut_)
continue; //dont fill if below E noise value

double et = recIt->energy() *
caloGeom->getPosition(recIt->detid()).perp() /
caloGeom->getPosition(recIt->detid()).mag();
double et = recIt.energy() *
caloGeom->getPosition(recIt.detid()).perp() /
caloGeom->getPosition(recIt.detid()).mag();

bool isBarrel = false;
if (fabs(caloGeom->getPosition(recIt->detid()).eta() < 1.479))
if (fabs(caloGeom->getPosition(recIt.detid()).eta() < 1.479))
isBarrel = true;

if (et < etCut_)
continue; //dont fill if below ET noise value
return; //dont fill if below ET noise value

std::vector<int>::const_iterator sit;
int severityFlag = sevLevel->severityLevel(recIt->detid(), *recHitsH);
int severityFlag = sevLevel->severityLevel(recIt.detid(), *recHitsH);
if (isBarrel) {
sit = std::find(severitiesexclEB_.begin(), severitiesexclEB_.end(), severityFlag);
if (sit != severitiesexclEB_.end())
continue;
return;
} else {
sit = std::find(severitiesexclEE_.begin(), severitiesexclEE_.end(), severityFlag);
if (sit != severitiesexclEE_.end())
continue;
return;
}

std::vector<int>::const_iterator vit;
Expand All @@ -152,26 +148,26 @@ EleIsoDetIdCollectionProducer::produce (edm::Event& iEvent, const edm::EventSetu
//vit = std::find(flagsexclEB_.begin(), flagsexclEB_.end(), ((EcalRecHit*)(&*recIt))->recoFlag());
//if (vit != flagsexclEB_.end())
// continue;
if (!((EcalRecHit*)(&*recIt))->checkFlag(EcalRecHit::kGood)) {
if (((EcalRecHit*)(&*recIt))->checkFlags(flagsexclEB_)) {
continue;
if (!(recIt.checkFlag(EcalRecHit::kGood))) {
if (recIt.checkFlags(flagsexclEB_)) {
return;
}
}
} else {
// new rechit flag checks
//vit = std::find(flagsexclEE_.begin(), flagsexclEE_.end(), ((EcalRecHit*)(&*recIt))->recoFlag());
//if (vit != flagsexclEE_.end())
// continue;
if (!((EcalRecHit*)(&*recIt))->checkFlag(EcalRecHit::kGood)) {
if (((EcalRecHit*)(&*recIt))->checkFlags(flagsexclEE_)) {
continue;
if (!(recIt.checkFlag(EcalRecHit::kGood))) {
if (recIt.checkFlags(flagsexclEE_)) {
return;
}
}
}

if(std::find(detIdCollection->begin(),detIdCollection->end(),recIt->detid()) == detIdCollection->end())
detIdCollection->push_back(recIt->detid());
} //end rechits
if (std::find(detIdCollection->begin(),detIdCollection->end(),recIt.detid()) == detIdCollection->end())
detIdCollection->push_back(recIt.detid());
}); //end rechits

} //end candidates

Expand Down