CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Types | Public Member Functions | Private Attributes
TauDiscriminationAgainstCaloMuon< TauType, TauDiscriminator > Class Template Reference
Inheritance diagram for TauDiscriminationAgainstCaloMuon< TauType, TauDiscriminator >:
TauDiscriminationProducerBase< TauType, TauDiscriminator > edm::EDProducer edm::ProducerBase edm::ProductRegistryHelper

Public Types

typedef std::vector< TauType > TauCollection
 
typedef edm::Ref< TauCollectionTauRef
 
- Public Types inherited from TauDiscriminationProducerBase< TauType, TauDiscriminator >
typedef std::vector< TauType > TauCollection
 
typedef edm::Ref< TauCollectionTauRef
 
typedef edm::RefProd
< TauCollection
TauRefProd
 
- Public Types inherited from edm::EDProducer
typedef EDProducer ModuleType
 
typedef WorkerT< EDProducerWorkerType
 
- Public Types inherited from edm::ProducerBase
typedef
ProductRegistryHelper::TypeLabelList 
TypeLabelList
 

Public Member Functions

void beginEvent (const edm::Event &, const edm::EventSetup &)
 
double discriminate (const TauRef &)
 
 TauDiscriminationAgainstCaloMuon (const edm::ParameterSet &)
 
 ~TauDiscriminationAgainstCaloMuon ()
 
- Public Member Functions inherited from TauDiscriminationProducerBase< TauType, TauDiscriminator >
void produce (edm::Event &, const edm::EventSetup &)
 
 TauDiscriminationProducerBase (const edm::ParameterSet &iConfig)
 
 TauDiscriminationProducerBase ()
 
virtual ~TauDiscriminationProducerBase ()
 
- Public Member Functions inherited from edm::EDProducer
 EDProducer ()
 
virtual ~EDProducer ()
 
- Public Member Functions inherited from edm::ProducerBase
 ProducerBase ()
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
boost::function< void(const
BranchDescription &)> 
registrationCallback () const
 used by the fwk to register list of products More...
 
virtual ~ProducerBase ()
 

Private Attributes

const CaloGeometrycaloGeometry_
 
double drEcal_
 
double drHcal_
 
edm::Handle< EcalRecHitCollectionebRecHits_
 
edm::Handle< EcalRecHitCollectioneeRecHits_
 
edm::Handle< HBHERecHitCollectionhbheRecHits_
 
TauLeadTrackExtractor< TauType > leadTrackExtractor_
 
double maxEnEcal_
 
double maxEnHcal_
 
double maxEnToTrackRatio_
 
double minLeadTrackPt_
 
double minLeadTrackPtFraction_
 
edm::InputTag srcEcalRecHitsBarrel_
 
edm::InputTag srcEcalRecHitsEndcap_
 
edm::InputTag srcHcalRecHits_
 
const TransientTrackBuildertrackBuilder_
 

Additional Inherited Members

- Static Public Member Functions inherited from edm::EDProducer
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
- Protected Member Functions inherited from edm::EDProducer
CurrentProcessingContext const * currentContext () const
 
- Protected Member Functions inherited from edm::ProducerBase
template<class TProducer , class TMethod >
void callWhenNewProductsRegistered (TProducer *iProd, TMethod iMethod)
 
- Protected Attributes inherited from TauDiscriminationProducerBase< TauType, TauDiscriminator >
double prediscriminantFailValue_
 

Detailed Description

template<class TauType, class TauDiscriminator>
class TauDiscriminationAgainstCaloMuon< TauType, TauDiscriminator >

Definition at line 85 of file TauDiscriminationAgainstCaloMuon.cc.

Member Typedef Documentation

template<class TauType , class TauDiscriminator >
typedef std::vector<TauType> TauDiscriminationAgainstCaloMuon< TauType, TauDiscriminator >::TauCollection

Definition at line 89 of file TauDiscriminationAgainstCaloMuon.cc.

template<class TauType , class TauDiscriminator >
typedef edm::Ref<TauCollection> TauDiscriminationAgainstCaloMuon< TauType, TauDiscriminator >::TauRef

Definition at line 90 of file TauDiscriminationAgainstCaloMuon.cc.

Constructor & Destructor Documentation

template<class TauType , class TauDiscriminator >
TauDiscriminationAgainstCaloMuon< TauType, TauDiscriminator >::TauDiscriminationAgainstCaloMuon ( const edm::ParameterSet cfg)
explicit

Definition at line 126 of file TauDiscriminationAgainstCaloMuon.cc.

References TauDiscriminationAgainstCaloMuon< TauType, TauDiscriminator >::drEcal_, TauDiscriminationAgainstCaloMuon< TauType, TauDiscriminator >::drHcal_, edm::ParameterSet::getParameter(), TauDiscriminationAgainstCaloMuon< TauType, TauDiscriminator >::maxEnEcal_, TauDiscriminationAgainstCaloMuon< TauType, TauDiscriminator >::maxEnHcal_, TauDiscriminationAgainstCaloMuon< TauType, TauDiscriminator >::maxEnToTrackRatio_, TauDiscriminationAgainstCaloMuon< TauType, TauDiscriminator >::minLeadTrackPt_, TauDiscriminationAgainstCaloMuon< TauType, TauDiscriminator >::minLeadTrackPtFraction_, TauDiscriminationAgainstCaloMuon< TauType, TauDiscriminator >::srcEcalRecHitsBarrel_, TauDiscriminationAgainstCaloMuon< TauType, TauDiscriminator >::srcEcalRecHitsEndcap_, and TauDiscriminationAgainstCaloMuon< TauType, TauDiscriminator >::srcHcalRecHits_.

128 {
129  srcEcalRecHitsBarrel_ = cfg.getParameter<edm::InputTag>("srcEcalRecHitsBarrel");
130  srcEcalRecHitsEndcap_ = cfg.getParameter<edm::InputTag>("srcEcalRecHitsEndcap");
131  srcHcalRecHits_ = cfg.getParameter<edm::InputTag>("srcHcalRecHits");
132 
133  minLeadTrackPt_ = cfg.getParameter<double>("minLeadTrackPt");
134  minLeadTrackPtFraction_ = cfg.getParameter<double>("minLeadTrackPtFraction");
135 
136  drEcal_ = cfg.getParameter<double>("dRecal");
137  drHcal_ = cfg.getParameter<double>("dRhcal");
138 
139  maxEnEcal_ = cfg.getParameter<double>("maxEnEcal");
140  maxEnHcal_ = cfg.getParameter<double>("maxEnHcal");
141 
142  maxEnToTrackRatio_ = cfg.getParameter<double>("maxEnToTrackRatio");
143 }
T getParameter(std::string const &) const
template<class TauType , class TauDiscriminator >
TauDiscriminationAgainstCaloMuon< TauType, TauDiscriminator >::~TauDiscriminationAgainstCaloMuon ( )
inline

Definition at line 93 of file TauDiscriminationAgainstCaloMuon.cc.

93 {}

Member Function Documentation

template<class TauType , class TauDiscriminator >
void TauDiscriminationAgainstCaloMuon< TauType, TauDiscriminator >::beginEvent ( const edm::Event evt,
const edm::EventSetup evtSetup 
)
virtual

Reimplemented from TauDiscriminationProducerBase< TauType, TauDiscriminator >.

Definition at line 146 of file TauDiscriminationAgainstCaloMuon.cc.

References edm::EventSetup::get(), edm::Event::getByLabel(), and edm::ESHandle< class >::product().

147 {
151 
152  edm::ESHandle<TransientTrackBuilder> trackBuilderHandle;
153  evtSetup.get<TransientTrackRecord>().get("TransientTrackBuilder", trackBuilderHandle);
154  trackBuilder_ = trackBuilderHandle.product();
155  if ( !trackBuilder_ ) {
156  edm::LogError ("TauDiscriminationAgainstCaloMuon::discriminate")
157  << " Failed to access TransientTrackBuilder !!";
158  }
159 
160  edm::ESHandle<CaloGeometry> caloGeometryHandle;
161  evtSetup.get<CaloGeometryRecord>().get(caloGeometryHandle);
162  caloGeometry_ = caloGeometryHandle.product();
163  if ( !caloGeometry_ ) {
164  edm::LogError ("TauDiscriminationAgainstCaloMuon::discriminate")
165  << " Failed to access CaloGeometry !!";
166  }
167 }
edm::Handle< HBHERecHitCollection > hbheRecHits_
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:359
edm::Handle< EcalRecHitCollection > eeRecHits_
const T & get() const
Definition: EventSetup.h:55
T const * product() const
Definition: ESHandle.h:62
edm::Handle< EcalRecHitCollection > ebRecHits_
template<class TauType , class TauDiscriminator >
double TauDiscriminationAgainstCaloMuon< TauType, TauDiscriminator >::discriminate ( const TauRef tau)
virtual

Implements TauDiscriminationProducerBase< TauType, TauDiscriminator >.

Definition at line 245 of file TauDiscriminationAgainstCaloMuon.cc.

References compEcalEnergySum(), compHcalEnergySum(), DetId::Ecal, EcalBarrel, EcalEndcap, DetId::Hcal, HcalBarrel, HcalEndcap, edm::Ref< C, T, F >::isAvailable(), edm::Ref< C, T, F >::isNonnull(), and edm::Ref< C, T, F >::isTransient().

246 {
247  if ( !(trackBuilder_ && caloGeometry_) ) return 0.;
248 
253 
254  TrackRef leadTrackRef = leadTrackExtractor_.getLeadTrack(*tau);
255 
256  if ( (leadTrackRef.isAvailable() || leadTrackRef.isTransient()) && leadTrackRef.isNonnull() ) {
257  double leadTrackPt = leadTrackRef->pt();
258  double trackPtSum = leadTrackExtractor_.getTrackPtSum(*tau);
259 
260  double leadTrackPtFraction = ( trackPtSum > 0. ) ? (leadTrackPt/trackPtSum) : -1.;
261 
262  if ( leadTrackPt > minLeadTrackPt_ && leadTrackPtFraction > minLeadTrackPtFraction_ ) {
263  reco::TransientTrack transientTrack = trackBuilder_->build(leadTrackRef);
264 
265  double ebEnergySum = compEcalEnergySum(*ebRecHits_, ebGeometry, transientTrack, drEcal_);
266  double eeEnergySum = compEcalEnergySum(*eeRecHits_, eeGeometry, transientTrack, drEcal_);
267  double ecalEnergySum = ebEnergySum + eeEnergySum;
268 
269  double hbheEnergySum = compHcalEnergySum(*hbheRecHits_, hbGeometry, heGeometry, transientTrack, drHcal_);
270 
271  double caloEnergySum = ecalEnergySum + hbheEnergySum;
272 
273  if ( ecalEnergySum < maxEnEcal_ &&
274  hbheEnergySum < maxEnHcal_ &&
275  caloEnergySum < (maxEnToTrackRatio_*leadTrackPt) ) return 0.;
276  }
277  }
278 
279  return 1.;
280 }
const CaloSubdetectorGeometry * getSubdetectorGeometry(const DetId &id) const
access the subdetector geometry for the given subdetector directly
Definition: CaloGeometry.cc:43
TauLeadTrackExtractor< TauType > leadTrackExtractor_
edm::Handle< HBHERecHitCollection > hbheRecHits_
double compHcalEnergySum(const HBHERecHitCollection &hcalRecHits, const CaloSubdetectorGeometry *hbGeometry, const CaloSubdetectorGeometry *heGeometry, const reco::TransientTrack &transientTrack, double dR)
reco::TransientTrack build(const reco::Track *p) const
bool isAvailable() const
Definition: Ref.h:278
double compEcalEnergySum(const EcalRecHitCollection &ecalRecHits, const CaloSubdetectorGeometry *detGeometry, const reco::TransientTrack &transientTrack, double dR)
bool isNonnull() const
Checks for non-null.
Definition: Ref.h:248
edm::Handle< EcalRecHitCollection > eeRecHits_
double getTrackPtSum(const T &tau) const
reco::TrackRef getLeadTrack(const T &tau) const
edm::Handle< EcalRecHitCollection > ebRecHits_
bool isTransient() const
Checks if this ref is transient (i.e. not persistable).
Definition: Ref.h:281

Member Data Documentation

template<class TauType , class TauDiscriminator >
const CaloGeometry* TauDiscriminationAgainstCaloMuon< TauType, TauDiscriminator >::caloGeometry_
private

Definition at line 109 of file TauDiscriminationAgainstCaloMuon.cc.

template<class TauType , class TauDiscriminator >
double TauDiscriminationAgainstCaloMuon< TauType, TauDiscriminator >::drEcal_
private
template<class TauType , class TauDiscriminator >
double TauDiscriminationAgainstCaloMuon< TauType, TauDiscriminator >::drHcal_
private
template<class TauType , class TauDiscriminator >
edm::Handle<EcalRecHitCollection> TauDiscriminationAgainstCaloMuon< TauType, TauDiscriminator >::ebRecHits_
private

Definition at line 102 of file TauDiscriminationAgainstCaloMuon.cc.

template<class TauType , class TauDiscriminator >
edm::Handle<EcalRecHitCollection> TauDiscriminationAgainstCaloMuon< TauType, TauDiscriminator >::eeRecHits_
private

Definition at line 104 of file TauDiscriminationAgainstCaloMuon.cc.

template<class TauType , class TauDiscriminator >
edm::Handle<HBHERecHitCollection> TauDiscriminationAgainstCaloMuon< TauType, TauDiscriminator >::hbheRecHits_
private

Definition at line 106 of file TauDiscriminationAgainstCaloMuon.cc.

template<class TauType , class TauDiscriminator >
TauLeadTrackExtractor<TauType> TauDiscriminationAgainstCaloMuon< TauType, TauDiscriminator >::leadTrackExtractor_
private

Definition at line 111 of file TauDiscriminationAgainstCaloMuon.cc.

template<class TauType , class TauDiscriminator >
double TauDiscriminationAgainstCaloMuon< TauType, TauDiscriminator >::maxEnEcal_
private
template<class TauType , class TauDiscriminator >
double TauDiscriminationAgainstCaloMuon< TauType, TauDiscriminator >::maxEnHcal_
private
template<class TauType , class TauDiscriminator >
double TauDiscriminationAgainstCaloMuon< TauType, TauDiscriminator >::maxEnToTrackRatio_
private
template<class TauType , class TauDiscriminator >
double TauDiscriminationAgainstCaloMuon< TauType, TauDiscriminator >::minLeadTrackPt_
private
template<class TauType , class TauDiscriminator >
double TauDiscriminationAgainstCaloMuon< TauType, TauDiscriminator >::minLeadTrackPtFraction_
private
template<class TauType , class TauDiscriminator >
edm::InputTag TauDiscriminationAgainstCaloMuon< TauType, TauDiscriminator >::srcEcalRecHitsBarrel_
private
template<class TauType , class TauDiscriminator >
edm::InputTag TauDiscriminationAgainstCaloMuon< TauType, TauDiscriminator >::srcEcalRecHitsEndcap_
private
template<class TauType , class TauDiscriminator >
edm::InputTag TauDiscriminationAgainstCaloMuon< TauType, TauDiscriminator >::srcHcalRecHits_
private
template<class TauType , class TauDiscriminator >
const TransientTrackBuilder* TauDiscriminationAgainstCaloMuon< TauType, TauDiscriminator >::trackBuilder_
private

Definition at line 108 of file TauDiscriminationAgainstCaloMuon.cc.