17 ecalIsolationAlg_(iConfig.getParameter<std::
string>(
"ecalIsolationAlgorithm")),
18 hcalIsolationAlg_(iConfig.getParameter<std::
string>(
"hcalIsolationAlgorithm")),
19 ecalClusteringAlg_(iConfig.getParameter<std::
string>(
"ecalClusteringAlgorithm")),
20 hcalClusteringAlg_(iConfig.getParameter<std::
string>(
"hcalClusteringAlgorithm")),
21 associationRadius_(iConfig.getParameter<double>(
"associationRadius")),
22 simpleClusterRadiusECAL_(iConfig.getParameter<double>(
"simpleClusterRadiusEcal")),
23 simpleClusterRadiusHCAL_(iConfig.getParameter<double>(
"simpleClusterRadiusHcal")),
24 innerConeECAL_(iConfig.getParameter<double>(
"innerConeECAL")),
25 outerConeECAL_(iConfig.getParameter<double>(
"outerConeECAL")),
26 innerConeHCAL_(iConfig.getParameter<double>(
"innerConeHCAL")),
27 outerConeHCAL_(iConfig.getParameter<double>(
"outerConeHCAL")),
28 crystalThresholdE_(iConfig.getParameter<double>(
"crystalThresholdEE")),
29 crystalThresholdB_(iConfig.getParameter<double>(
"crystalThresholdEB")),
30 towerThreshold_(iConfig.getParameter<double>(
"towerThreshold"))
35 produces<L2TauInfoAssociation>();
58 if(l2CaloJets->size()>0)
60 CaloJetCollection::const_iterator jcStart = l2CaloJets->begin();
62 for(CaloJetCollection::const_iterator jc = jcStart ;jc!=l2CaloJets->end();++jc)
117 if(hitsECAL.size()>0)
129 if(clusters.size()>0)
137 if(pfClustersECAL.size()>0)
172 if(hitsHCAL.size()>0)
182 if(clusters.size()>0)
190 if(pfClustersHCAL.size()>0)
196 l2InfoAssoc->insert(jcRef, info);
201 iEvent.
put(l2InfoAssoc);
227 for(
size_t i=0;
i<towers->size();++
i)
233 towers2.push_back(tower);
273 double et = energy *
sin(theta);
277 jetRecHits.push_back(p);
291 double et = energy *
sin(theta);
295 jetRecHits.push_back(p);
298 if(jetRecHits.size()>0)
314 if(clusters->size()>0)
315 for(PFClusterCollection::const_iterator
c = clusters->begin();
c!=clusters->end();++
c)
318 double eta =
c->eta();
319 double phi =
c->phi();
320 double theta =
c->position().theta();
322 double et = energy *
sin(theta);
326 clusters2.push_back(p);
329 if(clusters2.size()>0)
math::PtEtaPhiELorentzVectorCollection clusterize(const math::PtEtaPhiELorentzVectorCollection &)
void setSeedHcalHitEt(double et)
double crystalThresholdB_
Jets made from CaloTowers.
void setEcalClusterShape(const std::vector< double > &shape)
edm::EDGetTokenT< reco::PFClusterCollection > pfClustersECAL_
bool getByToken(EDGetToken token, Handle< PROD > &result) const
virtual void produce(edm::Event &, const edm::EventSetup &) override
math::PtEtaPhiELorentzVectorCollection getPFClusters(const reco::CaloJet &, const edm::Event &, const edm::EDGetTokenT< reco::PFClusterCollection > &)
Sin< T >::type sin(const T &t)
Geom::Phi< T > phi() const
std::vector< EcalRecHit >::const_iterator const_iterator
Geom::Theta< T > theta() const
void setHcalClusterShape(const std::vector< double > &shape)
edm::EDGetTokenT< reco::CaloJetCollection > l2CaloJets_
RecHitPtComparator comparePt
virtual const CaloCellGeometry * getGeometry(const DetId &id) const
Get the cell geometry of a given detector id. Should return false if not found.
static std::string const input
Geom::Theta< T > theta() const
math::PtEtaPhiELorentzVectorCollection getECALHits(const reco::CaloJet &, const edm::Event &, const edm::EventSetup &iSetup)
std::string hcalIsolationAlg_
void setSeedEcalHitEt(double et)
void setEcalIsolEt(double et)
void setNEcalHits(int hits)
double isolatedEt(const math::PtEtaPhiELorentzVectorCollection &, const math::XYZVector &, double innerCone, double outerCone) const
edm::EDGetTokenT< CaloTowerCollection > caloTowers_
std::vector< PtEtaPhiELorentzVector > PtEtaPhiELorentzVectorCollection
OrphanHandle< PROD > put(std::auto_ptr< PROD > product)
Put a new product.
void setHcalIsolEt(double et)
std::string ecalIsolationAlg_
double associationRadius_
math::PtEtaPhiELorentzVectorCollection getHCALHits(const reco::CaloJet &, const edm::Event &)
double crystalThresholdE_
void hitsHCAL(std::vector< DetId > &vdets, edm::Handle< T > &hits, std::vector< typename T::const_iterator > &hitlist, bool debug=false)
PtEtaPhiELorentzVectorD PtEtaPhiELorentzVector
Lorentz vector with cartesian internal representation.
std::string ecalClusteringAlg_
double simpleClusterRadiusECAL_
ESHandle< TrackerGeometry > geometry
int nClustersAnnulus(const math::PtEtaPhiELorentzVectorCollection &, const math::XYZVector &, double innerCone, double outerCone) const
std::vector< double > clusterShape(const math::PtEtaPhiELorentzVectorCollection &, const math::XYZVector &, double innerCone, double outerCone) const
double simpleClusterRadiusHCAL_
edm::EDGetTokenT< EERecHitCollection > EERecHits_
L2TauModularIsolationProducer(const edm::ParameterSet &)
edm::EDGetTokenT< EBRecHitCollection > EBRecHits_
std::vector< PFCluster > PFClusterCollection
collection of PFCluster objects
edm::EDGetTokenT< reco::PFClusterCollection > pfClustersHCAL_
std::string hcalClusteringAlg_
void setNHcalHits(int hits)
const GlobalPoint & getPosition() const
Returns the position of reference for this cell.
virtual const LorentzVector & p4() const
four-momentum Lorentz vector
std::vector< CaloJet > CaloJetCollection
collection of CaloJet objects
~L2TauModularIsolationProducer()