// ------------------------------------------------------------------------- // ----- CbmLitTrackFinderSeed source file ----- // ----- Created 13/11/07 by A. Lebedev ----- // ------------------------------------------------------------------------- #include #include "CbmLitTrackFinderSeed.h" #include "CbmLitTrackPropagator.h" // ----------------------- Default constructor --------------------------- CbmLitTrackFinderSeed::CbmLitTrackFinderSeed() { } // ----------------------------------------------------------------------- // --------------------------- Destructor -------------------------------- CbmLitTrackFinderSeed::~CbmLitTrackFinderSeed() { } // ----------------------------------------------------------------------- //void CbmLitTrackFinderSeed::Init() //{ //} //Int_t CbmLitTrackFinderSeed::DoFind(TClonesArray* hitArray, // TClonesArray* trackArray) //{ // return 0; //} // ------------Set iteration parameters----------------------------------- void CbmLitTrackFinderSeed::SetIterPar( Double_t SigmaCoef, Int_t beginStation, Int_t endStation, Int_t maxNofMissingHitsInStation) { fSigmaCoef = SigmaCoef; fBeginStation = beginStation; fEndStation= endStation; fMaxNofMissingHitsInStation = maxNofMissingHitsInStation; } // ----------------------------------------------------------------------- void CbmLitTrackFinderSeed::ReadDetectorGeometry() { } // --------------Creates tracks from seed tracks----------------------- void CbmLitTrackFinderSeed::CreateTracksFromSeeds() { // Now must be implemented in the derived class. } // ----------------------------------------------------------------------- // --------------------extrapolate tracks to detector---------- void CbmLitTrackFinderSeed::ExtrapolateToDetector() { //Double_t Ze = fHits[0][0]->GetZ(); Double_t Ze = fLayerZPos[0]; for (std::vector::iterator iTrack = fTracksS.begin(); iTrack != fTracksS.end(); iTrack++) { fPropagatorToDet->Propagate((*iTrack)->GetParamLast(), Ze); (*iTrack)->SetParamFirst((*iTrack)->GetParamLast()); (*iTrack)->SetChi2( 0.0 ); } if (fVerbose > 1) { std::cout << "-I- CbmLitTrackFinderSeed::ExtrapolateToDetectro() : " << "Extrapolation to detector finished " << std::endl; } } // ----------------------------------------------------------------------- // ----------------------------------------------------------------------- void CbmLitTrackFinderSeed::InitTracks() { for (std::vector::iterator iTrack = fTracksS.begin(); iTrack != fTracksS.end(); iTrack++) { if (fSeedsIdSet.find((*iTrack)->GetPreviousTrackId()) != fSeedsIdSet.end()) continue; CbmLitTrack* track = new CbmLitTrack(*(*iTrack)); fTracks.push_back(track); track = NULL; } // extrapolate to the begin layer for the tracking Int_t beginLayer = 0; if (fBeginStation > 0) { for(Int_t i = 0; i < fBeginStation; i++) beginLayer += fNofLayersPerStation[i]; //Double_t Ze = fHits[beginLayer][0]->GetZ(); Double_t Ze = fLayerZPos[beginLayer]; for (std::vector::iterator iTrack = fTracks.begin(); iTrack != fTracks.end(); iTrack++) { fPropagator->Propagate((*iTrack)->GetParamLast(), Ze); } } } // ----------------------------------------------------------------------- ClassImp(CbmLitTrackFinderSeed);