#include "TClonesArray.h"
#include "THaTrackingDetector.h"
#include "THaPIDinfo.h"
#include "THaTrack.h"
#include "THaSpectrometer.h"
#include "TError.h"
ClassImp(THaTrackingDetector)
THaTrackingDetector::THaTrackingDetector( const char* name,
const char* description,
THaApparatus* apparatus )
: THaSpectrometerDetector(name,description,apparatus)
{
}
THaTrackingDetector::THaTrackingDetector( )
: THaSpectrometerDetector( )
{
}
THaTrackingDetector::~THaTrackingDetector()
{
}
THaTrack* THaTrackingDetector::AddTrack( TClonesArray& tracks,
Double_t x, Double_t y,
Double_t theta, Double_t phi,
THaTrackID* ID )
{
Int_t i = tracks.GetLast()+1;
THaPIDinfo* pid = 0;
THaSpectrometer* spect = static_cast<THaSpectrometer*>( GetApparatus() );
if( spect ) {
UInt_t ndet = spect->GetNpidDetectors();
UInt_t npart = spect->GetNpidParticles();
TClonesArray& c = *spect->GetTrackPID();
if( i > c.GetLast() || !c.At(i) ) new( c[i] ) THaPIDinfo( ndet, npart );
pid = static_cast<THaPIDinfo*>( c.At(i) );
} else if( fDebug>0 ) {
::Warning("THaTrackingDetector::AddTrack", "No spectrometer defined for "
"detector %s. Track has no PID and vertex info.", GetName());
}
return new( tracks[i] ) THaTrack( x, y, theta, phi, this, ID, pid );
}
Last change: Sat Nov 7 21:26:53 2009
Last generated: 2009-11-07 21:26
This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.