Main Page   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members   File Members  

Atlfast::TrackSmearer Class Reference

#include <TrackSmearer.h>

Collaboration diagram for Atlfast::TrackSmearer:

Collaboration graph
[legend]
List of all members.

Public Methods

 TrackSmearer (const string &, int, MsgStream &)
 ~TrackSmearer ()
Track smear (const Track &track) const

Private Attributes

MsgStream & m_log
string m_muConfig
IMatrixManagerm_electronMatrixManager
 1

IMatrixManagerm_muonMatrixManager
 1

IMatrixManagerm_pionMatrixManager
 1


Constructor & Destructor Documentation

Atlfast::TrackSmearer::TrackSmearer const string &   ,
int   ,
MsgStream &   
 

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   }
  

Atlfast::TrackSmearer::~TrackSmearer  
 

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   }

Member Function Documentation

Track Atlfast::TrackSmearer::smear const Track &    track const
 

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   }

Member Data Documentation

MsgStream& Atlfast::TrackSmearer::m_log [private]
 

Definition at line 73 of file TrackSmearer.h.

string Atlfast::TrackSmearer::m_muConfig [private]
 

Definition at line 74 of file TrackSmearer.h.

Referenced by TrackSmearer().

IMatrixManager* Atlfast::TrackSmearer::m_electronMatrixManager [private]
 

1

Definition at line 78 of file TrackSmearer.h.

Referenced by TrackSmearer(), and ~TrackSmearer().

IMatrixManager* Atlfast::TrackSmearer::m_muonMatrixManager [private]
 

1

Definition at line 83 of file TrackSmearer.h.

Referenced by TrackSmearer(), and ~TrackSmearer().

IMatrixManager* Atlfast::TrackSmearer::m_pionMatrixManager [private]
 

1

Definition at line 88 of file TrackSmearer.h.

Referenced by TrackSmearer(), and ~TrackSmearer().


The documentation for this class was generated from the following files:
Generated on Tue Mar 18 11:19:01 2003 for AtlfastAlgs by doxygen1.3-rc1