From abf8ed8a35710ddbeb5f9de043ee758734c1ff84 Mon Sep 17 00:00:00 2001 From: mivanov Date: Wed, 5 Nov 2014 16:15:57 +0100 Subject: [PATCH] ATO-17 - correction for crosstalk taking into account missing clusters. Crosstalk calculated in 2 iterrations (argument of function). Crosstalk correction should saturate already after second iteration --- TPC/Rec/AliTPCtracker.cxx | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/TPC/Rec/AliTPCtracker.cxx b/TPC/Rec/AliTPCtracker.cxx index d61293395d9..c40bcf6b74a 100644 --- a/TPC/Rec/AliTPCtracker.cxx +++ b/TPC/Rec/AliTPCtracker.cxx @@ -1413,7 +1413,7 @@ void AliTPCtracker::CalculateXtalkCorrection(){ // // const Int_t nROCs = 72; - + const Int_t nIterations=2; // 0.) reset crosstalk matrix // for (Int_t isector=0; isectorGetCrosstalkCorrectionMissingCharge(); - for (Int_t iter=0; iter<2;iter++){ + for (Int_t iter=0; iter=18) sec=36+isector+18*iside; + if (isector>=18) sec=18+isector+18*iside; for (Int_t row = 0;rowAt(isector); TMatrixD * crossTalkMatrixCache = (TMatrixD*)fCrossTalkSignalArray->At(isector+nROCs*2); if (crossTalkMatrix){ (*crossTalkMatrixCache)*=0; (*crossTalkMatrixCache)+=(*crossTalkMatrix); + (*crossTalkMatrix)*=0; } } } // end of 2 iterations @@ -1510,18 +1511,22 @@ void AliTPCtracker::CalculateXtalkCorrection(){ for (Int_t isector=0; isectorAt(isector); TMatrixD * crossTalkMatrixBelow = (TMatrixD*)fCrossTalkSignalArray->At(isector+nROCs); + TMatrixD * crossTalkMatrixCache = (TMatrixD*)fCrossTalkSignalArray->At(isector+nROCs*2); TVectorD vecAll(crossTalkMatrix->GetNrows()); TVectorD vecBelow(crossTalkMatrix->GetNrows()); + TVectorD vecCache(crossTalkMatrixCache->GetNrows()); // for (Int_t itime=0; itimeGetNcols(); itime++){ for (Int_t iwire=0; iwireGetNrows(); iwire++){ vecAll[iwire]=(*crossTalkMatrix)(iwire,itime); vecBelow[iwire]=(*crossTalkMatrixBelow)(iwire,itime); + vecCache[iwire]=(*crossTalkMatrixCache)(iwire,itime); } (*fDebugStreamer)<<"crosstalkMatrix"<< "sector="<