// function SetElectronArrivalCorrection, the electron-arrival correction is added to the dz calculation.
// End_Html
//
-// Begin_Macro(source)
+// Begin_Macro(source)
// {
// gROOT->SetStyle("Plain"); gStyle->SetPalette(1);
-// TCanvas *c2 = new TCanvas("c2","c2",500,400);
+// TCanvas *c2 = new TCanvas("cAliTPCROCVoltError3D","cAliTPCROCVoltError3D",500,400);
// AliTPCROCVoltError3D roc;
// roc.SetElectronArrivalCorrection(kFALSE); // Correction for electron arrival offset, IROC vs OROC
// roc.SetROCDisplacement(kTRUE); // include the chamber offset in z when calculating the dz
// main input: z alignment of the Read Out chambers
// see InitROCVoltError3D() function
for ( Int_t k = 0 ; k < kNPhi ; k++ ) {
- fLookUpErOverEz[k] = new TMatrixD(kNR,kNZ);
- fLookUpEphiOverEz[k] = new TMatrixD(kNR,kNZ);
- fLookUpDeltaEz[k] = new TMatrixD(kNR,kNZ);
+ fLookUpErOverEz[k] = new TMatrixF(kNR,kNZ);
+ fLookUpEphiOverEz[k] = new TMatrixF(kNR,kNZ);
+ fLookUpDeltaEz[k] = new TMatrixF(kNR,kNZ);
}
fROCDataFileName="$ALICE_ROOT/TPC/Calib/maps/TPCROCdzSurvey.root";
SetROCDataFileName(fROCDataFileName.Data()); // initialization of fdzDataLinFit is included
//
// Calculates the correction due e.g. residual voltage errors on the TPC boundaries
//
-
+ const Double_t kEpsilon=Double_t(FLT_MIN);
if (!fInitLookUp) {
AliInfo("Lookup table was not initialized! Perform the inizialisation now ...");
InitROCVoltError3D();
- return;
+ }
+ static Bool_t forceInit=kTRUE; //temporary needed for back compatibility with old OCDB entries
+ if (forceInit&&fLookUpErOverEz[0]){
+ if (TMath::Abs(fLookUpErOverEz[0]->Sum())<kEpsilon){//temporary needed for back compatibility with old OCDB entries
+ ForceInitROCVoltError3D();
+ }
+ forceInit=kFALSE;
}
+
Int_t order = 1 ; // FIXME: hardcoded? Linear interpolation = 1, Quadratic = 2
- Double_t intEr, intEphi, intDeltaEz;
+ Float_t intEr, intEphi, intDeltaEz;
Double_t r, phi, z ;
Int_t sign;
for ( Int_t k = 0 ; k < kNPhi ; k++ ) {
phi = fgkPhiList[k] ;
- TMatrixD &erOverEz = *fLookUpErOverEz[k] ;
- TMatrixD &ephiOverEz = *fLookUpEphiOverEz[k];
- TMatrixD &deltaEz = *fLookUpDeltaEz[k] ;
+ TMatrixF &erOverEz = *fLookUpErOverEz[k] ;
+ TMatrixF &ephiOverEz = *fLookUpEphiOverEz[k];
+ TMatrixF &deltaEz = *fLookUpDeltaEz[k] ;
for ( Int_t j = 0 ; j < kNZ ; j++ ) {