X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=MUON%2FAliMUONTrackReconstructorK.cxx;h=9788dc08f6dcfee4be89eb661c2333b381decd56;hb=d78f01ff1adf84d01f94ac918af31932d610c773;hp=cf9a3719226a62e13c54df038764c7778c702c99;hpb=37a615ac2824b1f478cd4d9f5ae7ae126ced11ca;p=u%2Fmrichter%2FAliRoot.git diff --git a/MUON/AliMUONTrackReconstructorK.cxx b/MUON/AliMUONTrackReconstructorK.cxx index cf9a3719226..9788dc08f6d 100644 --- a/MUON/AliMUONTrackReconstructorK.cxx +++ b/MUON/AliMUONTrackReconstructorK.cxx @@ -46,7 +46,10 @@ #include #include #include +#include +using std::endl; +using std::cout; /// \cond CLASSIMP ClassImp(AliMUONTrackReconstructorK) // Class implementation in ROOT context /// \endcond @@ -122,21 +125,17 @@ Bool_t AliMUONTrackReconstructorK::MakeTrackCandidates(AliMUONVClusterStore& clu fNRecTracks--; } else if (fNRecTracks > GetRecoParam()->GetMaxTrackCandidates()) { AliError(Form("Too many track candidates (%d tracks). Stop tracking.", fNRecTracks)); - delete segments; return kFALSE; } } else { if ((fNRecTracks + segments->GetEntriesFast() - iSegment - 1) > GetRecoParam()->GetMaxTrackCandidates()) { AliError(Form("Too many track candidates (%d tracks). Stop tracking.", fNRecTracks + segments->GetEntriesFast() - iSegment - 1)); - delete segments; return kFALSE; } } } - // delete the array of segments - delete segments; } // Keep all different tracks if required @@ -226,14 +225,11 @@ Bool_t AliMUONTrackReconstructorK::MakeMoreTrackCandidates(AliMUONVClusterStore& // abort tracking if there are too many candidates if ((fNRecTracks + segments->GetEntriesFast() - iSegment - 1) > GetRecoParam()->GetMaxTrackCandidates()) { AliError(Form("Too many track candidates (%d tracks). Stop tracking.", fNRecTracks + segments->GetEntriesFast() - iSegment - 1)); - delete segments; return kFALSE; } } - // delete the array of segments - delete segments; } } @@ -370,7 +366,7 @@ Bool_t AliMUONTrackReconstructorK::RetracePartialTrack(AliMUONTrack &trackCandid trackParamAtCluster->SetCovariances(startingTrackParam->GetCovariances()); // add MCS effect - AliMUONTrackExtrap::AddMCSEffect(trackParamAtCluster,AliMUONConstants::ChamberThicknessInX0(),-1.); + AliMUONTrackExtrap::AddMCSEffect(trackParamAtCluster,AliMUONConstants::ChamberThicknessInX0(expectedChamber+1),-1.); // reset propagator for smoother if (GetRecoParam()->UseSmoother()) trackParamAtCluster->ResetPropagator(); @@ -382,7 +378,7 @@ Bool_t AliMUONTrackReconstructorK::RetracePartialTrack(AliMUONTrack &trackCandid if (!AliMUONTrackExtrap::ExtrapToZCov(trackParamAtCluster, AliMUONConstants::DefaultChamberZ(expectedChamber), GetRecoParam()->UseSmoother())) extrapStatus = kFALSE; // add MCS effect - AliMUONTrackExtrap::AddMCSEffect(trackParamAtCluster,AliMUONConstants::ChamberThicknessInX0(),-1.); + AliMUONTrackExtrap::AddMCSEffect(trackParamAtCluster,AliMUONConstants::ChamberThicknessInX0(expectedChamber),-1.); expectedChamber--; } @@ -533,20 +529,20 @@ Bool_t AliMUONTrackReconstructorK::FollowTrackInChamber(AliMUONTrack &trackCandi } // Add MCS effect - AliMUONTrackExtrap::AddMCSEffect(&extrapTrackParamAtCh,AliMUONConstants::ChamberThicknessInX0(),-1.); + Int_t currentChamber = extrapTrackParamAtCh.GetClusterPtr()->GetChamberId(); + AliMUONTrackExtrap::AddMCSEffect(&extrapTrackParamAtCh,AliMUONConstants::ChamberThicknessInX0(currentChamber),-1.); // reset propagator for smoother if (GetRecoParam()->UseSmoother()) extrapTrackParamAtCh.ResetPropagator(); // Add MCS in the missing chamber(s) if any - Int_t currentChamber = extrapTrackParamAtCh.GetClusterPtr()->GetChamberId(); while (currentChamber > nextChamber + 1) { // extrapolation to the missing chamber currentChamber--; if (!AliMUONTrackExtrap::ExtrapToZCov(&extrapTrackParamAtCh, AliMUONConstants::DefaultChamberZ(currentChamber), GetRecoParam()->UseSmoother())) return kFALSE; // add MCS effect - AliMUONTrackExtrap::AddMCSEffect(&extrapTrackParamAtCh,AliMUONConstants::ChamberThicknessInX0(),-1.); + AliMUONTrackExtrap::AddMCSEffect(&extrapTrackParamAtCh,AliMUONConstants::ChamberThicknessInX0(currentChamber),-1.); } //Extrapolate trackCandidate to chamber @@ -712,20 +708,20 @@ Bool_t AliMUONTrackReconstructorK::FollowTrackInStation(AliMUONTrack &trackCandi } // Add MCS effect - AliMUONTrackExtrap::AddMCSEffect(&extrapTrackParamAtCh,AliMUONConstants::ChamberThicknessInX0(),-1.); + Int_t currentChamber = extrapTrackParamAtCh.GetClusterPtr()->GetChamberId(); + AliMUONTrackExtrap::AddMCSEffect(&extrapTrackParamAtCh,AliMUONConstants::ChamberThicknessInX0(currentChamber),-1.); // reset propagator for smoother if (GetRecoParam()->UseSmoother()) extrapTrackParamAtCh.ResetPropagator(); // Add MCS in the missing chamber(s) if any - Int_t currentChamber = extrapTrackParamAtCh.GetClusterPtr()->GetChamberId(); while (ch1 < ch2 && currentChamber > ch2 + 1) { // extrapolation to the missing chamber currentChamber--; if (!AliMUONTrackExtrap::ExtrapToZCov(&extrapTrackParamAtCh, AliMUONConstants::DefaultChamberZ(currentChamber), GetRecoParam()->UseSmoother())) return kFALSE; // add MCS effect - AliMUONTrackExtrap::AddMCSEffect(&extrapTrackParamAtCh,AliMUONConstants::ChamberThicknessInX0(),-1.); + AliMUONTrackExtrap::AddMCSEffect(&extrapTrackParamAtCh,AliMUONConstants::ChamberThicknessInX0(currentChamber),-1.); } //Extrapolate trackCandidate to chamber "ch2" @@ -798,7 +794,7 @@ Bool_t AliMUONTrackReconstructorK::FollowTrackInStation(AliMUONTrack &trackCandi extrapTrackParam = extrapTrackParamAtCluster2; // add MCS effect - AliMUONTrackExtrap::AddMCSEffect(&extrapTrackParam,AliMUONConstants::ChamberThicknessInX0(),-1.); + AliMUONTrackExtrap::AddMCSEffect(&extrapTrackParam,AliMUONConstants::ChamberThicknessInX0(ch2),-1.); // reset propagator for smoother if (GetRecoParam()->UseSmoother()) extrapTrackParam.ResetPropagator(); @@ -913,7 +909,7 @@ Bool_t AliMUONTrackReconstructorK::FollowTrackInStation(AliMUONTrack &trackCandi if (GetRecoParam()->TrackAllTracks() || !foundTwoClusters) { // add MCS effect for next step - AliMUONTrackExtrap::AddMCSEffect(&extrapTrackParamAtCh,AliMUONConstants::ChamberThicknessInX0(),-1.); + AliMUONTrackExtrap::AddMCSEffect(&extrapTrackParamAtCh,AliMUONConstants::ChamberThicknessInX0(ch2),-1.); //Extrapolate trackCandidate to chamber "ch1" Bool_t normalExtrap = AliMUONTrackExtrap::ExtrapToZCov(&extrapTrackParamAtCh, AliMUONConstants::DefaultChamberZ(ch1),