// ------------------------------------------------------------------------- // ----- CbmSttFitTracks source file ----- // ----- Created 18/02/05 by V. Friese ----- // ------------------------------------------------------------------------- #include "iostream.h" #include "TClonesArray.h" #include "CbmRootManager.h" #include "CbmSttFitTracks.h" #include "CbmSttTrackFitter.h" #include "CbmSttTrack.h" // ----- Default constructor ------------------------------------------- CbmSttFitVertices::CbmSttFitTracks() { fFitter = NULL; fVertexArray = NULL; fNofVertices = 0; } // ------------------------------------------------------------------------- // ----- Standard constructor ------------------------------------------ CbmSttFitVertices::CbmSttFitTracks(const char* name, const char* title, CbmSttVertexFitter* fitter) : CbmTask(name) { fFitter = fitter; fVertexArray = NULL; fNofVertices = 0; } // ------------------------------------------------------------------------- // ----- Destructor ---------------------------------------------------- CbmSttFitVertices::~CbmSttFitTracks() { } // ------------------------------------------------------------------------- // ----- Public method Init (abstract in base class) -------------------- InitStatus CbmSttFitVertices::Init() { // Check for vertex fitter if (! fFitter) { cout << "-E- CbmSttFitVertex: No vertex fitter selected!" << endl; return kERROR; } // Get and check CbmRootManager CbmRootManager *ioman = CbmRootManager::Instance(); if (! ioman) { cout << "-E- CbmSttFitVertex::Init: " << "RootManager not instantised!" << endl; return kFATAL; } // Get STTVertex array fVertexArray = (TClonesArray*) ioman->GetObject("STTVertex"); if (! fVertexArray) { cout << "-E- CbmSttFitVertex::Init: No STTVertex array!" << endl; return kERROR; } // Call the Init method of the track fitter fFitter->Init(); return kSUCCESS; } // ------------------------------------------------------------------------- // ----- Public method Exec -------------------------------------------- void CbmSttFitVertices::Exec(Option_t* opt) { if (! fVertexArray) return; Int_t nVertices = fVertexArray->GetEntriesFast(); for (Int_t iVertex = 0; iVertex < nVertices; iVertex++) { CbmSttVertex* pVertex = (CbmSttVertex *)fVertexArray->At(iVertex); fFitter->DoFit(pVertex); } } // ------------------------------------------------------------------------- // ----- Public method Finish ------------------------------------------ void CbmSttFitVertices::Finish() { } // ------------------------------------------------------------------------- ClassImp(CbmSttFitVertex)