![]() |
![]() |
#include <TauMassTagInfo.h>
Public Types | |
typedef ClusterTrackAssociationCollection::value_type | ClusterTrackAssociation |
typedef edm::AssociationMap < edm::OneToValue < BasicClusterCollection, float, unsigned short > > | ClusterTrackAssociationCollection |
Public Member Functions | |
virtual TauMassTagInfo * | clone () const |
clone | |
TauMassTagInfo::ClusterTrackAssociationCollection | clusterTrackCollection () const |
float | discriminator () const |
float | discriminator (double matching_cone, double leading_trk_pt, double signal_cone, double cluster_track_cone, double m_cut) const |
double | getInvariantMass (double matching_cone, double leading_trk_pt, double signal_cone, double cluster_track_cone) const |
double | getInvariantMassTrk (double matching_cone, double leading_trk_pt, double signal_cone) const |
const IsolatedTauTagInfoRef & | getIsolatedTauTag () const |
void | setIsolatedTauTag (const IsolatedTauTagInfoRef) |
void | storeClusterTrackCollection (reco::BasicClusterRef clusterRef, float dr) |
TauMassTagInfo () | |
virtual | ~TauMassTagInfo () |
Private Member Functions | |
bool | calculateTrkP4 (double matching_cone, double leading_trk_pt, double signal_cone, math::XYZTLorentzVector &p4) const |
Private Attributes | |
ClusterTrackAssociationCollection | clusterMap |
IsolatedTauTagInfoRef | isolatedTau |
Definition at line 15 of file TauMassTagInfo.h.
Definition at line 21 of file TauMassTagInfo.h.
typedef edm::AssociationMap< edm::OneToValue<BasicClusterCollection, float, unsigned short> > reco::TauMassTagInfo::ClusterTrackAssociationCollection |
Definition at line 19 of file TauMassTagInfo.h.
reco::TauMassTagInfo::TauMassTagInfo | ( | ) | [inline] |
virtual reco::TauMassTagInfo::~TauMassTagInfo | ( | ) | [inline, virtual] |
Definition at line 24 of file TauMassTagInfo.h.
{}
bool reco::TauMassTagInfo::calculateTrkP4 | ( | double | matching_cone, |
double | leading_trk_pt, | ||
double | signal_cone, | ||
math::XYZTLorentzVector & | p4 | ||
) | const [private] |
Definition at line 41 of file TauMassTagInfo.cc.
References edm::RefVector< C, T, F >::begin(), gather_cfg::cout, edm::RefVector< C, T, F >::end(), relval_parameters_module::energy, L1TEmulatorMonitor_cff::p, edm::RefVector< C, T, F >::size(), and mathSSE::sqrt().
{ const TrackRef leadTk= isolatedTau->leadingSignalTrack(matching_cone,leading_trk_pt); if (!leadTk) { std::cout <<" TauMassTagInfo:: No Leading Track !! " << std::endl; return false; } math::XYZVector momentum = (*leadTk).momentum(); const RefVector<TrackCollection> signalTracks = isolatedTau->tracksInCone(momentum,signal_cone,1.0); // if (signalTracks.size() == 0 || signalTracks.size()%2 == 0) return false; if (signalTracks.size() == 0) return false; double px_inv = 0.0; double py_inv = 0.0; double pz_inv = 0.0; double e_inv = 0.0; for (RefVector<TrackCollection>::const_iterator itrack = signalTracks.begin(); itrack != signalTracks.end(); itrack++) { double p = (*itrack)->p(); double energy = sqrt(p*p + 0.139*0.139); // use correct value! px_inv += (*itrack)->px(); py_inv += (*itrack)->py(); pz_inv += (*itrack)->pz(); e_inv += energy; } p4.SetPx(px_inv); p4.SetPy(py_inv); p4.SetPz(pz_inv); p4.SetE(e_inv); return true; }
virtual TauMassTagInfo* reco::TauMassTagInfo::clone | ( | void | ) | const [inline, virtual] |
clone
Reimplemented from reco::JTATagInfo.
Definition at line 26 of file TauMassTagInfo.h.
References TauMassTagInfo().
{ return new TauMassTagInfo( * this ); }
TauMassTagInfo::ClusterTrackAssociationCollection reco::TauMassTagInfo::clusterTrackCollection | ( | ) | const [inline] |
float reco::TauMassTagInfo::discriminator | ( | ) | const [inline] |
Definition at line 29 of file TauMassTagInfo.h.
Referenced by InvariantMassAlgorithm::tag().
{return -1. ;}
float reco::TauMassTagInfo::discriminator | ( | double | matching_cone, |
double | leading_trk_pt, | ||
double | signal_cone, | ||
double | cluster_track_cone, | ||
double | m_cut | ||
) | const |
Definition at line 11 of file TauMassTagInfo.cc.
{ float discriminator = 0.0; double invariantMass = getInvariantMass(matching_cone,leading_trk_pt, signal_cone,cluster_track_cone); if (invariantMass >= 0.0 && invariantMass < m_cut ) discriminator = 1.0; return discriminator; }
double reco::TauMassTagInfo::getInvariantMass | ( | double | matching_cone, |
double | leading_trk_pt, | ||
double | signal_cone, | ||
double | cluster_track_cone | ||
) | const |
Definition at line 91 of file TauMassTagInfo.cc.
References funct::cos(), edm::Ref< C, T, F >::key(), p4, phi, funct::sin(), and theta().
{ math::XYZTLorentzVector totalP4; if (!calculateTrkP4(matching_cone, leading_trk_pt, signal_cone, totalP4)) return -1.0; // Add Clusters away from tracks for (ClusterTrackAssociationCollection::const_iterator mapIter = clusterMap.begin(); mapIter != clusterMap.end(); mapIter++) { const reco::BasicClusterRef & iclus = mapIter->key; float dr = mapIter->val; if (dr > track_cone) { math::XYZVector clus3Vec(iclus->x(), iclus->y(), iclus->z()); double e = iclus->energy(); double theta = clus3Vec.theta(); double phi = clus3Vec.phi(); double px = e * sin(theta) * cos(phi); double py = e * sin(theta) * sin(phi); double pz = e * cos(theta); math::XYZTLorentzVector p4(px,py,pz,e); totalP4 += p4; } } return totalP4.M(); }
double reco::TauMassTagInfo::getInvariantMassTrk | ( | double | matching_cone, |
double | leading_trk_pt, | ||
double | signal_cone | ||
) | const |
Definition at line 81 of file TauMassTagInfo.cc.
{ math::XYZTLorentzVector totalP4; if (!calculateTrkP4(matching_cone,leading_trk_pt, signal_cone, totalP4)) return -1.0; return totalP4.M(); }
const IsolatedTauTagInfoRef & reco::TauMassTagInfo::getIsolatedTauTag | ( | ) | const |
Definition at line 28 of file TauMassTagInfo.cc.
{ return isolatedTau; }
void reco::TauMassTagInfo::setIsolatedTauTag | ( | const IsolatedTauTagInfoRef | isolationRef | ) |
Definition at line 22 of file TauMassTagInfo.cc.
Referenced by InvariantMassAlgorithm::tag().
{ isolatedTau = isolationRef; }
void reco::TauMassTagInfo::storeClusterTrackCollection | ( | reco::BasicClusterRef | clusterRef, |
float | dr | ||
) |
Definition at line 34 of file TauMassTagInfo.cc.
Referenced by InvariantMassAlgorithm::tag().
{ clusterMap.insert(clusterRef, dr); }
Definition at line 51 of file TauMassTagInfo.h.
Referenced by clusterTrackCollection().
IsolatedTauTagInfoRef reco::TauMassTagInfo::isolatedTau [private] |
Definition at line 50 of file TauMassTagInfo.h.