CMS 3D CMS Logo

Public Member Functions | Static Public Member Functions

ZeeKinematicTools Class Reference

#include <ZeeKinematicTools.h>

List of all members.

Public Member Functions

 ZeeKinematicTools ()
 ~ZeeKinematicTools ()

Static Public Member Functions

static float calculateZEta (const std::pair< calib::CalibElectron *, calib::CalibElectron * > &aZCandidate)
static float calculateZMass_noTK (const std::pair< calib::CalibElectron *, calib::CalibElectron * > &aZCandidate)
static float calculateZMass_withTK (const std::pair< calib::CalibElectron *, calib::CalibElectron * > &aZCandidate)
static float calculateZMassWithCorrectedElectrons_noTK (const std::pair< calib::CalibElectron *, calib::CalibElectron * > &aZCandidate, float ele1EnergyCorrection, float ele2EnergyCorrection)
static float calculateZMassWithCorrectedElectrons_withTK (const std::pair< calib::CalibElectron *, calib::CalibElectron * > &aZCandidate, float ele1EnergyCorrection, float ele2EnergyCorrection)
static float calculateZPhi (const std::pair< calib::CalibElectron *, calib::CalibElectron * > &aZCandidate)
static float calculateZPt (const std::pair< calib::CalibElectron *, calib::CalibElectron * > &aZCandidate)
static float calculateZRapidity (const std::pair< calib::CalibElectron *, calib::CalibElectron * > &aZCandidate)
static float calculateZTheta (const std::pair< calib::CalibElectron *, calib::CalibElectron * > &aZCandidate)
static float cosThetaElectrons_SC (const std::pair< calib::CalibElectron *, calib::CalibElectron * > &aZCandidate, float ele1EnergyCorrection, float ele2EnergyCorrection)
static float cosThetaElectrons_TK (const std::pair< calib::CalibElectron *, calib::CalibElectron * > &aZCandidate, float ele1EnergyCorrection, float ele2EnergyCorrection)

Detailed Description

Definition at line 32 of file ZeeKinematicTools.h.


Constructor & Destructor Documentation

ZeeKinematicTools::ZeeKinematicTools ( )

Definition at line 34 of file ZeeKinematicTools.cc.

{}
ZeeKinematicTools::~ZeeKinematicTools ( )

Definition at line 36 of file ZeeKinematicTools.cc.

{}

Member Function Documentation

float ZeeKinematicTools::calculateZEta ( const std::pair< calib::CalibElectron *, calib::CalibElectron * > &  aZCandidate) [static]

Definition at line 138 of file ZeeKinematicTools.cc.

Referenced by ZeePlots::fillZInfo().

{

  TLorentzVector ele1LV( aZCandidate.first->getRecoElectron()->px(), aZCandidate.first->getRecoElectron()->py(), aZCandidate.first->getRecoElectron()->pz(), aZCandidate.first->getRecoElectron()->superCluster()->energy());

  TLorentzVector ele2LV( aZCandidate.second->getRecoElectron()->px(), aZCandidate.second->getRecoElectron()->py(), aZCandidate.second->getRecoElectron()->pz(), aZCandidate.second->getRecoElectron()->superCluster()->energy());
  
  return  (ele1LV + ele2LV).Eta();
  
}
float ZeeKinematicTools::calculateZMass_noTK ( const std::pair< calib::CalibElectron *, calib::CalibElectron * > &  aZCandidate) [static]

Definition at line 106 of file ZeeKinematicTools.cc.

References ZIterativeAlgorithmWithFit::invMassCalc().

{

  return  ZIterativeAlgorithmWithFit::invMassCalc(aZCandidate.first->getRecoElectron()->superCluster()->energy(), aZCandidate.first->getRecoElectron()->superCluster()->eta(), aZCandidate.first->getRecoElectron()->superCluster()->phi(), aZCandidate.second->getRecoElectron()->superCluster()->energy(), aZCandidate.second->getRecoElectron()->superCluster()->eta(), aZCandidate.second->getRecoElectron()->superCluster()->phi());  

}
float ZeeKinematicTools::calculateZMass_withTK ( const std::pair< calib::CalibElectron *, calib::CalibElectron * > &  aZCandidate) [static]

Definition at line 115 of file ZeeKinematicTools.cc.

References ZIterativeAlgorithmWithFit::invMassCalc().

Referenced by ZeeCalibration::duringLoop().

{

  return  ZIterativeAlgorithmWithFit::invMassCalc(aZCandidate.first->getRecoElectron()->superCluster()->energy(), aZCandidate.first->getRecoElectron()->eta(), aZCandidate.first->getRecoElectron()->phi(), aZCandidate.second->getRecoElectron()->superCluster()->energy(), aZCandidate.second->getRecoElectron()->eta(), aZCandidate.second->getRecoElectron()->phi());  

}
float ZeeKinematicTools::calculateZMassWithCorrectedElectrons_noTK ( const std::pair< calib::CalibElectron *, calib::CalibElectron * > &  aZCandidate,
float  ele1EnergyCorrection,
float  ele2EnergyCorrection 
) [static]

Definition at line 90 of file ZeeKinematicTools.cc.

References ZIterativeAlgorithmWithFit::invMassCalc().

{
  return ZIterativeAlgorithmWithFit::invMassCalc(aZCandidate.first->getRecoElectron()->superCluster()->energy() / ele1EnergyCorrection, aZCandidate.first->getRecoElectron()->superCluster()->eta(), aZCandidate.first->getRecoElectron()->superCluster()->phi(), aZCandidate.second->getRecoElectron()->superCluster()->energy() / ele2EnergyCorrection, aZCandidate.second->getRecoElectron()->superCluster()->eta(), aZCandidate.second->getRecoElectron()->superCluster()->phi());

}
float ZeeKinematicTools::calculateZMassWithCorrectedElectrons_withTK ( const std::pair< calib::CalibElectron *, calib::CalibElectron * > &  aZCandidate,
float  ele1EnergyCorrection,
float  ele2EnergyCorrection 
) [static]

Definition at line 98 of file ZeeKinematicTools.cc.

References ZIterativeAlgorithmWithFit::invMassCalc().

Referenced by ZeeCalibration::duringLoop().

{
  return ZIterativeAlgorithmWithFit::invMassCalc(aZCandidate.first->getRecoElectron()->superCluster()->energy() / ele1EnergyCorrection, aZCandidate.first->getRecoElectron()->eta(), aZCandidate.first->getRecoElectron()->phi(), aZCandidate.second->getRecoElectron()->superCluster()->energy() / ele2EnergyCorrection, aZCandidate.second->getRecoElectron()->eta(), aZCandidate.second->getRecoElectron()->phi());

}
float ZeeKinematicTools::calculateZPhi ( const std::pair< calib::CalibElectron *, calib::CalibElectron * > &  aZCandidate) [static]

Definition at line 164 of file ZeeKinematicTools.cc.

Referenced by ZeePlots::fillZInfo().

{

  TLorentzVector ele1LV( aZCandidate.first->getRecoElectron()->px(), aZCandidate.first->getRecoElectron()->py(), aZCandidate.first->getRecoElectron()->pz(), aZCandidate.first->getRecoElectron()->superCluster()->energy());

  TLorentzVector ele2LV( aZCandidate.second->getRecoElectron()->px(), aZCandidate.second->getRecoElectron()->py(), aZCandidate.second->getRecoElectron()->pz(), aZCandidate.second->getRecoElectron()->superCluster()->energy());
  
  return  (ele1LV + ele2LV).Phi();

}
float ZeeKinematicTools::calculateZPt ( const std::pair< calib::CalibElectron *, calib::CalibElectron * > &  aZCandidate) [static]

Definition at line 177 of file ZeeKinematicTools.cc.

Referenced by ZeePlots::fillZInfo().

{

  TLorentzVector ele1LV( aZCandidate.first->getRecoElectron()->px(), aZCandidate.first->getRecoElectron()->py(), aZCandidate.first->getRecoElectron()->pz(), aZCandidate.first->getRecoElectron()->superCluster()->energy());

  TLorentzVector ele2LV( aZCandidate.second->getRecoElectron()->px(), aZCandidate.second->getRecoElectron()->py(), aZCandidate.second->getRecoElectron()->pz(), aZCandidate.second->getRecoElectron()->superCluster()->energy());
  
  return  (ele1LV + ele2LV).Pt();

}
float ZeeKinematicTools::calculateZRapidity ( const std::pair< calib::CalibElectron *, calib::CalibElectron * > &  aZCandidate) [static]

Definition at line 124 of file ZeeKinematicTools.cc.

Referenced by ZeePlots::fillZInfo().

{

  TLorentzVector ele1LV( aZCandidate.first->getRecoElectron()->px(), aZCandidate.first->getRecoElectron()->py(), aZCandidate.first->getRecoElectron()->pz(), aZCandidate.first->getRecoElectron()->superCluster()->energy());

  TLorentzVector ele2LV( aZCandidate.second->getRecoElectron()->px(), aZCandidate.second->getRecoElectron()->py(), aZCandidate.second->getRecoElectron()->pz(), aZCandidate.second->getRecoElectron()->superCluster()->energy());
  

  return  (ele1LV + ele2LV).Rapidity();

}
float ZeeKinematicTools::calculateZTheta ( const std::pair< calib::CalibElectron *, calib::CalibElectron * > &  aZCandidate) [static]

Definition at line 151 of file ZeeKinematicTools.cc.

Referenced by ZeePlots::fillZInfo().

{

  TLorentzVector ele1LV( aZCandidate.first->getRecoElectron()->px(), aZCandidate.first->getRecoElectron()->py(), aZCandidate.first->getRecoElectron()->pz(), aZCandidate.first->getRecoElectron()->superCluster()->energy());

  TLorentzVector ele2LV( aZCandidate.second->getRecoElectron()->px(), aZCandidate.second->getRecoElectron()->py(), aZCandidate.second->getRecoElectron()->pz(), aZCandidate.second->getRecoElectron()->superCluster()->energy());
  
  return  (ele1LV + ele2LV).Theta();
  
}
float ZeeKinematicTools::cosThetaElectrons_SC ( const std::pair< calib::CalibElectron *, calib::CalibElectron * > &  aZCandidate,
float  ele1EnergyCorrection,
float  ele2EnergyCorrection 
) [static]

Definition at line 42 of file ZeeKinematicTools.cc.

References funct::cos(), funct::exp(), funct::sin(), and mathSSE::sqrt().

Referenced by ZeeCalibration::duringLoop().

                                                                                                                                                                           {
  
  float theta1 = 2. * atan( exp(- aZCandidate.first->getRecoElectron()->superCluster()->eta()) );
  float phi1 = aZCandidate.first->getRecoElectron()->superCluster()->phi();

  float x1 = aZCandidate.first->getRecoElectron()->superCluster()->energy() * sin(theta1) * cos ( phi1 );
  float y1 = aZCandidate.first->getRecoElectron()->superCluster()->energy() * sin(theta1) * sin ( phi1 );
  float z1 = aZCandidate.first->getRecoElectron()->superCluster()->energy() * cos(theta1);
  float mod1 = sqrt( x1*x1 + y1*y1 + z1*z1 );

  float theta2 = 2. * atan( exp(- aZCandidate.second->getRecoElectron()->superCluster()->eta()) );
  float phi2 = aZCandidate.second->getRecoElectron()->superCluster()->phi();

  float x2 = aZCandidate.second->getRecoElectron()->superCluster()->energy() * sin(theta2) * cos ( phi2 );
  float y2 = aZCandidate.second->getRecoElectron()->superCluster()->energy() * sin(theta2) * sin ( phi2 );
  float z2 = aZCandidate.second->getRecoElectron()->superCluster()->energy() * cos(theta2);
  float mod2 = sqrt( x2*x2 + y2*y2 + z2*z2 );

  return (x1*x2 + y1*y2 + z1*z2)/( mod1* mod2 );

  
}
float ZeeKinematicTools::cosThetaElectrons_TK ( const std::pair< calib::CalibElectron *, calib::CalibElectron * > &  aZCandidate,
float  ele1EnergyCorrection,
float  ele2EnergyCorrection 
) [static]

Definition at line 67 of file ZeeKinematicTools.cc.

References funct::cos(), funct::exp(), funct::sin(), and mathSSE::sqrt().

Referenced by ZeeCalibration::duringLoop().

                                                                                                                                                                           {
  
  float theta1 = 2. * atan( exp(- aZCandidate.first->getRecoElectron()->eta()) );
  float phi1 = aZCandidate.first->getRecoElectron()->phi();
  
  float x1 = aZCandidate.first->getRecoElectron()->superCluster()->energy() * sin(theta1) * cos ( phi1 ); 
  float y1 = aZCandidate.first->getRecoElectron()->superCluster()->energy() * sin(theta1) * sin ( phi1 );
  float z1 = aZCandidate.first->getRecoElectron()->superCluster()->energy() * cos(theta1);
  float mod1 = sqrt( x1*x1 + y1*y1 + z1*z1 );

  float theta2 = 2. * atan( exp(- aZCandidate.second->getRecoElectron()->eta()) );
  float phi2 = aZCandidate.second->getRecoElectron()->phi();

  float x2 = aZCandidate.second->getRecoElectron()->superCluster()->energy() * sin(theta2) * cos ( phi2 );
  float y2 = aZCandidate.second->getRecoElectron()->superCluster()->energy() * sin(theta2) * sin ( phi2 );
  float z2 = aZCandidate.second->getRecoElectron()->superCluster()->energy() * cos(theta2);
  float mod2 = sqrt( x2*x2 + y2*y2 + z2*z2 );

  return (x1*x2 + y1*y2 + z1*z2)/( mod1* mod2 );
}