CMS 3D CMS Logo

Public Types | Public Member Functions | Private Member Functions | Private Attributes

reco::TauMassTagInfo Class Reference

#include <TauMassTagInfo.h>

Inheritance diagram for reco::TauMassTagInfo:
reco::JTATagInfo reco::BaseTagInfo

List of all members.

Public Types

typedef
ClusterTrackAssociationCollection::value_type 
ClusterTrackAssociation
typedef edm::AssociationMap
< edm::OneToValue
< BasicClusterCollection,
float, unsigned short > > 
ClusterTrackAssociationCollection

Public Member Functions

virtual TauMassTagInfoclone () 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

Detailed Description

Definition at line 15 of file TauMassTagInfo.h.


Member Typedef Documentation

Definition at line 21 of file TauMassTagInfo.h.

Definition at line 19 of file TauMassTagInfo.h.


Constructor & Destructor Documentation

reco::TauMassTagInfo::TauMassTagInfo ( ) [inline]

Definition at line 23 of file TauMassTagInfo.h.

Referenced by clone().

{}
virtual reco::TauMassTagInfo::~TauMassTagInfo ( ) [inline, virtual]

Definition at line 24 of file TauMassTagInfo.h.

{}

Member Function Documentation

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]

Definition at line 39 of file TauMassTagInfo.h.

References clusterMap.

{ return clusterMap;}
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);
}

Member Data Documentation

Definition at line 51 of file TauMassTagInfo.h.

Referenced by clusterTrackCollection().

IsolatedTauTagInfoRef reco::TauMassTagInfo::isolatedTau [private]

Definition at line 50 of file TauMassTagInfo.h.