#include <L2TauNarrowConeIsolationProducer.h>
Definition at line 52 of file L2TauNarrowConeIsolationProducer.h.
Definition at line 54 of file L2TauNarrowConeIsolationProducer.h.
Definition at line 55 of file L2TauNarrowConeIsolationProducer.h.
L2TauNarrowConeIsolationProducer::L2TauNarrowConeIsolationProducer | ( | const edm::ParameterSet & | iConfig | ) | [explicit] |
Definition at line 8 of file L2TauNarrowConeIsolationProducer.cc.
References ECALClustering_clusterRadius_, ECALClustering_run_, ECALIsolation_innerCone_, ECALIsolation_outerCone_, ECALIsolation_run_, edm::ParameterSet::getParameter(), TowerIsolation_innerCone_, TowerIsolation_outerCone_, and TowerIsolation_run_.
: l2CaloJets_(iConfig.getParameter<edm::InputTag>("L2TauJetCollection")), EBRecHits_(iConfig.getParameter<edm::InputTag>("EBRecHits")), EERecHits_(iConfig.getParameter<edm::InputTag>("EERecHits")), CaloTowers_(iConfig.getParameter<edm::InputTag>("CaloTowers")), associationRadius_(iConfig.getParameter<double>("associationRadius")), crystalThresholdE_(iConfig.getParameter<double>("crystalThresholdEE")), crystalThresholdB_(iConfig.getParameter<double>("crystalThresholdEB")), towerThreshold_(iConfig.getParameter<double>("towerThreshold")) { //ECAL Isolation edm::ParameterSet ECALIsolParams = iConfig.getParameter<edm::ParameterSet>("ECALIsolation") ; ECALIsolation_innerCone_ = ECALIsolParams.getParameter<double>( "innerCone" ); ECALIsolation_outerCone_ = ECALIsolParams.getParameter<double>( "outerCone" ); ECALIsolation_run_ = ECALIsolParams.getParameter<bool>( "runAlgorithm" ); //ECAL Clustering edm::ParameterSet ECALClusterParams = iConfig.getParameter<edm::ParameterSet>("ECALClustering") ; ECALClustering_run_ = ECALClusterParams.getParameter<bool>( "runAlgorithm" ); ECALClustering_clusterRadius_ = ECALClusterParams.getParameter<double>( "clusterRadius" ); //Tower Isolation edm::ParameterSet TowerIsolParams = iConfig.getParameter<edm::ParameterSet>("TowerIsolation") ; TowerIsolation_innerCone_ = TowerIsolParams.getParameter<double>( "innerCone" ); TowerIsolation_outerCone_ = TowerIsolParams.getParameter<double>( "outerCone" ); TowerIsolation_run_ = TowerIsolParams.getParameter<bool>( "runAlgorithm" ); //Add the products produces<L2TauInfoAssociation>(); }
L2TauNarrowConeIsolationProducer::~L2TauNarrowConeIsolationProducer | ( | ) |
Definition at line 43 of file L2TauNarrowConeIsolationProducer.cc.
{
//Destruction
}
void L2TauNarrowConeIsolationProducer::beginJob | ( | void | ) | [private, virtual] |
Reimplemented from edm::EDProducer.
Definition at line 119 of file L2TauNarrowConeIsolationProducer.cc.
{ }
void L2TauNarrowConeIsolationProducer::endJob | ( | void | ) | [private, virtual] |
Reimplemented from edm::EDProducer.
Definition at line 125 of file L2TauNarrowConeIsolationProducer.cc.
{ }
math::PtEtaPhiELorentzVectorCollection L2TauNarrowConeIsolationProducer::getECALHits | ( | const CaloJet & | jet, |
const edm::Event & | iEvent, | ||
const edm::EventSetup & | iSetup | ||
) | [private] |
Definition at line 156 of file L2TauNarrowConeIsolationProducer.cc.
References associationRadius_, comparePt, crystalThresholdB_, crystalThresholdE_, egHLT::errCodes::EBRecHits, EBRecHits_, DetId::Ecal, EcalBarrel, EcalEndcap, egHLT::errCodes::EERecHits, EERecHits_, relval_parameters_module::energy, ExpressReco_HICollisions_FallBack::et, eta(), PV3DBase< T, PVType, FrameType >::eta(), geometry, edm::EventSetup::get(), edm::Event::getByLabel(), CaloSubdetectorGeometry::getGeometry(), CaloCellGeometry::getPosition(), M_PI, L1TEmulatorMonitor_cff::p, reco::LeafCandidate::p4(), PV3DBase< T, PVType, FrameType >::phi(), phi, funct::sin(), python::multivaluedict::sort(), theta(), and PV3DBase< T, PVType, FrameType >::theta().
Referenced by produce().
{ //Init Geometry edm::ESHandle<CaloGeometry> geometry; iSetup.get<CaloGeometryRecord>().get(geometry); //Create ECAL Geometry const CaloSubdetectorGeometry* EB = geometry->getSubdetectorGeometry(DetId::Ecal,EcalBarrel); const CaloSubdetectorGeometry* EE = geometry->getSubdetectorGeometry(DetId::Ecal,EcalEndcap); //Handle To the ECAL edm::Handle<EBRecHitCollection> EBRecHits; edm::Handle<EERecHitCollection> EERecHits; //Create a container for the hits math::PtEtaPhiELorentzVectorCollection jetRecHits; //Loop on the barrel hits if(iEvent.getByLabel( EBRecHits_, EBRecHits)) for(EBRecHitCollection::const_iterator hit = EBRecHits->begin();hit!=EBRecHits->end();++hit) { //get Detector Geometry const CaloCellGeometry* this_cell = EB->getGeometry(hit->detid()); GlobalPoint posi = this_cell->getPosition(); double energy = hit->energy(); double eta = posi.eta(); double phi = posi.phi(); double theta = posi.theta(); if(theta > M_PI) theta = 2 * M_PI- theta; double et = energy * sin(theta); math::PtEtaPhiELorentzVector p(et, eta, phi, energy); if(ROOT::Math::VectorUtil::DeltaR(p,jet.p4()) <associationRadius_) if(p.energy()>crystalThresholdB_) jetRecHits.push_back(p); } if(iEvent.getByLabel( EERecHits_, EERecHits)) for(EERecHitCollection::const_iterator hit = EERecHits->begin();hit!=EERecHits->end();++hit) { //get Detector Geometry const CaloCellGeometry* this_cell = EE->getGeometry(hit->detid()); GlobalPoint posi = this_cell->getPosition(); double energy = hit->energy(); double eta = posi.eta(); double phi = posi.phi(); double theta = posi.theta(); if(theta > M_PI) theta = 2 * M_PI- theta; double et = energy * sin(theta); math::PtEtaPhiELorentzVector p(et, eta, phi, energy); if(ROOT::Math::VectorUtil::DeltaR(p,jet.p4()) < associationRadius_) if(p.energy()>crystalThresholdE_) jetRecHits.push_back(p); } std::sort(jetRecHits.begin(),jetRecHits.end(),comparePt); return jetRecHits; }
math::PtEtaPhiELorentzVectorCollection L2TauNarrowConeIsolationProducer::getHCALHits | ( | const CaloJet & | jet, |
const edm::Event & | iEvent | ||
) | [private] |
Definition at line 131 of file L2TauNarrowConeIsolationProducer.cc.
References associationRadius_, CaloTowers_, comparePt, relval_parameters_module::energy, ExpressReco_HICollisions_FallBack::et, eta(), edm::Event::getByLabel(), i, reco::LeafCandidate::p4(), phi, python::multivaluedict::sort(), and towerThreshold_.
Referenced by produce().
{ edm::Handle<CaloTowerCollection> towers; math::PtEtaPhiELorentzVectorCollection towers2; if(iEvent.getByLabel(CaloTowers_,towers)) for(size_t i=0;i<towers->size();++i) { math::PtEtaPhiELorentzVector tower((*towers)[i].et(),(*towers)[i].eta(),(*towers)[i].phi(),(*towers)[i].energy()); if(ROOT::Math::VectorUtil::DeltaR(tower,jet.p4()) <associationRadius_) { if(tower.energy()>towerThreshold_) towers2.push_back(tower); } } std::sort(towers2.begin(),towers2.end(),comparePt); return towers2; }
void L2TauNarrowConeIsolationProducer::produce | ( | edm::Event & | iEvent, |
const edm::EventSetup & | iSetup | ||
) | [private, virtual] |
Implements edm::EDProducer.
Definition at line 52 of file L2TauNarrowConeIsolationProducer.cc.
References L2TauSimpleClustering::clusterize(), L2TauIsolationAlgs::clusterShape(), ECALClustering_clusterRadius_, ECALClustering_run_, ECALIsolation_innerCone_, ECALIsolation_outerCone_, ECALIsolation_run_, edm::Event::getByLabel(), getECALHits(), getHCALHits(), spr::hitsHCAL(), info, L2TauIsolationAlgs::isolatedEt(), l2CaloJets_, edm::Event::put(), reco::L2TauIsolationInfo::setEcalClusterShape(), reco::L2TauIsolationInfo::setEcalIsolEt(), reco::L2TauIsolationInfo::setHcalIsolEt(), reco::L2TauIsolationInfo::setNEcalHits(), reco::L2TauIsolationInfo::setSeedEcalHitEt(), reco::L2TauIsolationInfo::setSeedHcalHitEt(), TowerIsolation_innerCone_, TowerIsolation_outerCone_, and TowerIsolation_run_.
{ edm::Handle<CaloJetCollection> l2CaloJets; //Handle to the input (L2TauCaloJets); iEvent.getByLabel(l2CaloJets_ ,l2CaloJets);//get the handle //Create the Association std::auto_ptr<L2TauInfoAssociation> l2InfoAssoc( new L2TauInfoAssociation); //If the JetCrystalsAssociation exists -> RUN The Producer if(l2CaloJets->size()>0) { CaloJetCollection::const_iterator jcStart = l2CaloJets->begin(); //Loop on Jets for(CaloJetCollection::const_iterator jc = jcStart ;jc!=l2CaloJets->end();++jc) { //Create Algorithm Object L2TauIsolationAlgs alg; //Create Info Object L2TauIsolationInfo info; //get Hits math::PtEtaPhiELorentzVectorCollection hitsECAL = getECALHits(*jc,iEvent,iSetup); math::PtEtaPhiELorentzVectorCollection hitsHCAL = getHCALHits(*jc,iEvent); //Run ECALIsolation if(ECALIsolation_run_) { info.setEcalIsolEt( alg.isolatedEt(hitsECAL , jc->p4().Vect(), ECALIsolation_innerCone_,ECALIsolation_outerCone_) ); if(hitsECAL.size()>0) info.setSeedEcalHitEt(hitsECAL[0].pt()); } //Run ECALClustering if(ECALClustering_run_) { //load simple clustering algorithm L2TauSimpleClustering clustering(ECALClustering_clusterRadius_); math::PtEtaPhiELorentzVectorCollection clusters = clustering.clusterize(hitsECAL); info.setEcalClusterShape(alg.clusterShape(clusters,jc->p4().Vect(),0,0.5) ); info.setNEcalHits(clusters.size()); } //Run CaloTower Isolation if(TowerIsolation_run_) { info.setHcalIsolEt( alg.isolatedEt(hitsHCAL , jc->p4().Vect(), TowerIsolation_innerCone_,TowerIsolation_outerCone_) ); if(hitsHCAL.size()>0) info.setSeedHcalHitEt(hitsHCAL[0].pt()); } //Store the info Class edm::Ref<CaloJetCollection> jcRef(l2CaloJets,jc-jcStart); l2InfoAssoc->insert(jcRef, info); } } //end of if(*jetCrystalsObj) iEvent.put(l2InfoAssoc); }
double L2TauNarrowConeIsolationProducer::associationRadius_ [private] |
Definition at line 74 of file L2TauNarrowConeIsolationProducer.h.
Referenced by getECALHits(), and getHCALHits().
Definition at line 72 of file L2TauNarrowConeIsolationProducer.h.
Referenced by getHCALHits().
Definition at line 107 of file L2TauNarrowConeIsolationProducer.h.
Referenced by getECALHits(), and getHCALHits().
double L2TauNarrowConeIsolationProducer::crystalThresholdB_ [private] |
Definition at line 78 of file L2TauNarrowConeIsolationProducer.h.
Referenced by getECALHits().
double L2TauNarrowConeIsolationProducer::crystalThresholdE_ [private] |
Definition at line 77 of file L2TauNarrowConeIsolationProducer.h.
Referenced by getECALHits().
Definition at line 70 of file L2TauNarrowConeIsolationProducer.h.
Referenced by getECALHits().
double L2TauNarrowConeIsolationProducer::ECALClustering_clusterRadius_ [private] |
Definition at line 97 of file L2TauNarrowConeIsolationProducer.h.
Referenced by L2TauNarrowConeIsolationProducer(), and produce().
bool L2TauNarrowConeIsolationProducer::ECALClustering_run_ [private] |
Definition at line 96 of file L2TauNarrowConeIsolationProducer.h.
Referenced by L2TauNarrowConeIsolationProducer(), and produce().
double L2TauNarrowConeIsolationProducer::ECALIsolation_innerCone_ [private] |
Definition at line 86 of file L2TauNarrowConeIsolationProducer.h.
Referenced by L2TauNarrowConeIsolationProducer(), and produce().
double L2TauNarrowConeIsolationProducer::ECALIsolation_outerCone_ [private] |
Definition at line 87 of file L2TauNarrowConeIsolationProducer.h.
Referenced by L2TauNarrowConeIsolationProducer(), and produce().
bool L2TauNarrowConeIsolationProducer::ECALIsolation_run_ [private] |
Definition at line 84 of file L2TauNarrowConeIsolationProducer.h.
Referenced by L2TauNarrowConeIsolationProducer(), and produce().
Definition at line 71 of file L2TauNarrowConeIsolationProducer.h.
Referenced by getECALHits().
Definition at line 69 of file L2TauNarrowConeIsolationProducer.h.
Referenced by produce().
double L2TauNarrowConeIsolationProducer::TowerIsolation_innerCone_ [private] |
Definition at line 92 of file L2TauNarrowConeIsolationProducer.h.
Referenced by L2TauNarrowConeIsolationProducer(), and produce().
double L2TauNarrowConeIsolationProducer::TowerIsolation_outerCone_ [private] |
Definition at line 93 of file L2TauNarrowConeIsolationProducer.h.
Referenced by L2TauNarrowConeIsolationProducer(), and produce().
bool L2TauNarrowConeIsolationProducer::TowerIsolation_run_ [private] |
Definition at line 90 of file L2TauNarrowConeIsolationProducer.h.
Referenced by L2TauNarrowConeIsolationProducer(), and produce().
double L2TauNarrowConeIsolationProducer::towerThreshold_ [private] |
Definition at line 79 of file L2TauNarrowConeIsolationProducer.h.
Referenced by getHCALHits().