#include <TrackSmearer.h>
Collaboration diagram for Atlfast::TrackSmearer:
Public Methods | |
TrackSmearer (const string &, int, MsgStream &) | |
~TrackSmearer () | |
Track | smear (const Track &track) const |
Private Attributes | |
MsgStream & | m_log |
string | m_muConfig |
IMatrixManager * | m_electronMatrixManager |
1 | |
IMatrixManager * | m_muonMatrixManager |
1 | |
IMatrixManager * | m_pionMatrixManager |
1 |
|
Definition at line 16 of file TrackSmearer.cxx. References m_electronMatrixManager, m_muConfig, m_muonMatrixManager, and m_pionMatrixManager.
00018 : 00019 m_log(log), m_muConfig(config){ 00020 m_electronMatrixManager = new ElectronMatrixManager(randSeed, log); 00021 m_muonMatrixManager = new MuonMatrixManager(m_muConfig, randSeed, log); 00022 m_pionMatrixManager = new PionMatrixManager(randSeed, log); 00023 log << MSG::INFO << "TrackSmearer constructed"<<endreq; 00024 } |
|
Definition at line 31 of file TrackSmearer.cxx. References m_electronMatrixManager, m_muonMatrixManager, and m_pionMatrixManager.
00031 { 00032 if (m_pionMatrixManager) delete m_pionMatrixManager; 00033 if (m_electronMatrixManager) delete m_electronMatrixManager; 00034 if (m_muonMatrixManager) delete m_muonMatrixManager; 00035 } |
|
Definition at line 40 of file TrackSmearer.cxx. References Atlfast::IMatrixManager::getVariables(). Referenced by Atlfast::TrackMaker::create().
00040 { 00041 vector<double> smearVariables ; // Vector of correlated gaussian variables 00042 // IF to determine which manager to use ie. electron/muon/pion 00043 IMatrixManager* correctManager = NULL; 00044 int pdg = abs( track.pdg_id() ); 00045 00046 if (pdg == 11) {correctManager = m_electronMatrixManager;} 00047 if (pdg == 13) {correctManager = m_muonMatrixManager;} 00048 if (pdg == 211) {correctManager = m_pionMatrixManager;} 00049 if(correctManager == NULL) { 00050 correctManager = m_pionMatrixManager; 00051 } 00052 //End IF 00053 TrackTrajectory originalTrajectory = track.trajectory(); 00054 HepMatrix sigma; // smear matrix for track 00055 TrackParameters parameters = originalTrajectory.parameters(); 00056 smearVariables = correctManager->getVariables(originalTrajectory, sigma); 00057 // smear parameters with gaussian variables 00058 00059 double impactParameter = parameters.impactParameter() + smearVariables[0] ; 00060 double zPerigee = parameters.zPerigee() + smearVariables[1] ; 00061 Phi phi = parameters.phi() + smearVariables[2] ; 00062 double cotTheta = parameters.cotTheta() + smearVariables[3] ; 00063 double invPtCharge = parameters.invPtCharge() + smearVariables[4]; 00064 00065 double curvature = originalTrajectory.curvature(); 00066 double pT = abs( 1. / invPtCharge ) ; 00067 Hep3Vector vec; 00068 vec.setX( pT*cos(phi) ); 00069 vec.setY( pT*sin(phi) ); 00070 vec.setZ( pT*cotTheta ); 00071 // Convert results to object 00072 TrackTrajectory smearedTrajectory( TrackParameters(vec.pseudoRapidity(), 00073 phi, pT, impactParameter, 00074 zPerigee, cotTheta, 00075 invPtCharge), 00076 originalTrajectory.startPoint(), 00077 curvature 00078 ) ; 00079 00080 00081 //PS - tracks should always have the 4-vector 00082 // Track newTrack; 00083 00084 // if (track.truth()) { 00085 Track newTrack(originalTrajectory, smearedTrajectory, track.truth(), sigma); 00086 // } 00087 // else { 00088 // newTrack = Track(originalTrajectory, smearedTrajectory, sigma, track.pdg_id()); 00089 // } 00090 return newTrack ; 00091 00092 } |
|
Definition at line 73 of file TrackSmearer.h. |
|
Definition at line 74 of file TrackSmearer.h. Referenced by TrackSmearer(). |
|
1
Definition at line 78 of file TrackSmearer.h. Referenced by TrackSmearer(), and ~TrackSmearer(). |
|
1
Definition at line 83 of file TrackSmearer.h. Referenced by TrackSmearer(), and ~TrackSmearer(). |
|
1
Definition at line 88 of file TrackSmearer.h. Referenced by TrackSmearer(), and ~TrackSmearer(). |