Public Member Functions | |
void | beginEvent (const edm::Event &event, const edm::EventSetup &eventSetup) |
CaloRecoTauDiscriminationAgainstElectron (const edm::ParameterSet &iConfig) | |
double | discriminate (const CaloTauRef &theCaloTauRef) |
~CaloRecoTauDiscriminationAgainstElectron () | |
Private Attributes | |
bool | ApplyCut_leadTrackavoidsECALcrack_ |
bool | ApplyCut_maxleadTrackHCAL3x3hottesthitDEta_ |
edm::InputTag | CaloTauProducer_ |
double | leadTrack_HCAL3x3hitsEtSumOverPt_minvalue_ |
double | maxleadTrackHCAL3x3hottesthitDEta_ |
edm::ESHandle< MagneticField > | theMagneticField |
Definition at line 16 of file CaloRecoTauDiscriminationAgainstElectron.cc.
CaloRecoTauDiscriminationAgainstElectron::CaloRecoTauDiscriminationAgainstElectron | ( | const edm::ParameterSet & | iConfig | ) | [inline, explicit] |
Definition at line 18 of file CaloRecoTauDiscriminationAgainstElectron.cc.
References edm::ParameterSet::getParameter().
:CaloTauDiscriminationProducerBase(iConfig){ CaloTauProducer_ = iConfig.getParameter<edm::InputTag>("CaloTauProducer"); leadTrack_HCAL3x3hitsEtSumOverPt_minvalue_ = iConfig.getParameter<double>("leadTrack_HCAL3x3hitsEtSumOverPt_minvalue"); ApplyCut_maxleadTrackHCAL3x3hottesthitDEta_ = iConfig.getParameter<bool>("ApplyCut_maxleadTrackHCAL3x3hottesthitDEta"); maxleadTrackHCAL3x3hottesthitDEta_ = iConfig.getParameter<double>("maxleadTrackHCAL3x3hottesthitDEta"); ApplyCut_leadTrackavoidsECALcrack_ = iConfig.getParameter<bool>("ApplyCut_leadTrackavoidsECALcrack"); }
CaloRecoTauDiscriminationAgainstElectron::~CaloRecoTauDiscriminationAgainstElectron | ( | ) | [inline] |
Definition at line 25 of file CaloRecoTauDiscriminationAgainstElectron.cc.
{}
void CaloRecoTauDiscriminationAgainstElectron::beginEvent | ( | const edm::Event & | event, |
const edm::EventSetup & | eventSetup | ||
) | [virtual] |
Reimplemented from TauDiscriminationProducerBase< TauType, TauDiscriminator >.
Definition at line 37 of file CaloRecoTauDiscriminationAgainstElectron.cc.
References edm::EventSetup::get().
{ if (ApplyCut_leadTrackavoidsECALcrack_) { // get the magnetic field, if we need it eventSetup.get<IdealMagneticFieldRecord>().get(theMagneticField); } }
double CaloRecoTauDiscriminationAgainstElectron::discriminate | ( | const CaloTauRef & | theCaloTauRef | ) | [virtual] |
Implements TauDiscriminationProducerBase< TauType, TauDiscriminator >.
Definition at line 47 of file CaloRecoTauDiscriminationAgainstElectron.cc.
References ECALBounds::crack_absEtaIntervalA(), ECALBounds::crack_absEtaIntervalB(), ECALBounds::crack_absEtaIntervalC(), ECALBounds::crack_absEtaIntervalD(), ECALBounds::crack_absEtaIntervalE(), edm::detail::isnan(), and TauTagTools::propagTrackECALSurfContactPoint().
{ if (ApplyCut_maxleadTrackHCAL3x3hottesthitDEta_){ // optional selection : ask for small |deta| between direction of propag. leading Track - ECAL inner surf. contact point and direction of highest Et hit among HCAL hits inside a 3x3 calo. tower matrix centered on direction of propag. leading Track - ECAL inner surf. contact point if (std::isnan((*theCaloTauRef).leadTrackHCAL3x3hottesthitDEta()) || (*theCaloTauRef).leadTrackHCAL3x3hottesthitDEta()>maxleadTrackHCAL3x3hottesthitDEta_) return 0.; } if (ApplyCut_leadTrackavoidsECALcrack_){ // optional selection : ask that leading track - ECAL inner surface contact point does not fall inside any ECAL eta crack math::XYZPoint thepropagleadTrackECALSurfContactPoint = TauTagTools::propagTrackECALSurfContactPoint(theMagneticField.product(),(*theCaloTauRef).leadTrack()); if(thepropagleadTrackECALSurfContactPoint.R()==0. || fabs(thepropagleadTrackECALSurfContactPoint.eta())<ECALBounds::crack_absEtaIntervalA().second || (fabs(thepropagleadTrackECALSurfContactPoint.eta())>ECALBounds::crack_absEtaIntervalB().first && fabs(thepropagleadTrackECALSurfContactPoint.eta())<ECALBounds::crack_absEtaIntervalB().second) || (fabs(thepropagleadTrackECALSurfContactPoint.eta())>ECALBounds::crack_absEtaIntervalC().first && fabs(thepropagleadTrackECALSurfContactPoint.eta())<ECALBounds::crack_absEtaIntervalC().second) || (fabs(thepropagleadTrackECALSurfContactPoint.eta())>ECALBounds::crack_absEtaIntervalD().first && fabs(thepropagleadTrackECALSurfContactPoint.eta())<ECALBounds::crack_absEtaIntervalD().second) || (fabs(thepropagleadTrackECALSurfContactPoint.eta())>ECALBounds::crack_absEtaIntervalE().first && fabs(thepropagleadTrackECALSurfContactPoint.eta())<ECALBounds::crack_absEtaIntervalE().second)) { return 0.; } } if (std::isnan((*theCaloTauRef).leadTrackHCAL3x3hitsEtSum())) { return 0.; } else { if ((*theCaloTauRef).leadTrackHCAL3x3hitsEtSum()/(*theCaloTauRef).leadTrack()->pt()<=leadTrack_HCAL3x3hitsEtSumOverPt_minvalue_) return 0.; else return 1.; } }
Definition at line 34 of file CaloRecoTauDiscriminationAgainstElectron.cc.
bool CaloRecoTauDiscriminationAgainstElectron::ApplyCut_maxleadTrackHCAL3x3hottesthitDEta_ [private] |
Definition at line 32 of file CaloRecoTauDiscriminationAgainstElectron.cc.
Definition at line 30 of file CaloRecoTauDiscriminationAgainstElectron.cc.
double CaloRecoTauDiscriminationAgainstElectron::leadTrack_HCAL3x3hitsEtSumOverPt_minvalue_ [private] |
Definition at line 31 of file CaloRecoTauDiscriminationAgainstElectron.cc.
Definition at line 33 of file CaloRecoTauDiscriminationAgainstElectron.cc.
Definition at line 29 of file CaloRecoTauDiscriminationAgainstElectron.cc.