#include <Riostream.h>
#include <TMath.h>
#include <TMatrixD.h>
+#include <TClonesArray.h>
+using std::endl;
+using std::cout;
/// \cond CLASSIMP
ClassImp(AliMUONTrackReconstructorK) // Class implementation in ROOT context
/// \endcond
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
// 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;
}
}
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();
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--;
}
}
// 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
}
// 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"
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();
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),