+
+ // here we analyse doubled read channels
+
+ AliTRDCalROC *rocMeand = GetCalRocMeand(idet,kTRUE);
+ AliTRDCalROC *rocRMSd = GetCalRocRMSd(idet,kTRUE);
+
+ Int_t nrows = rocMeand->GetNrows();
+ Int_t shift = 144*nrows;
+ Int_t total = shift+3*8*nrows;
+
+ for (Int_t iChannel=shift; iChannel<total; iChannel++){
+ Int_t offset = (nbinsAdc+2)*(iChannel+1)+1;
+ Double_t ret = AliMathBase::FitGaus(array_hP+offset,nbinsAdc,fAdcMin,fAdcMax,¶m,&dummy);
+ // if the fitting failed set noise and pedestal to 0
+ if ((ret==-4) || (ret==-1) || (ret==-2)) {
+ param[1]=0.0;
+ param[2]=0.0;
+ }
+ if((param[1]/10.0) > 65534.0) param[1] = 0.0;
+ if((param[2]/10.0) > 65534.0) param[2] = 0.0;
+
+ // here we have to recalculate backward
+ Int_t nb = iChannel-shift;
+ Int_t row = nb%nrows;
+ Int_t j = (Int_t)(nb/nrows);
+ Int_t imcm = j%8;
+ Int_t icol = (Int_t)(j/8);
+
+ Int_t finalcol = 18*imcm;
+ if(icol > 0) icol += 17;
+ else icol = -1;
+ finalcol += icol;
+
+ Int_t channel = row+finalcol*nrows;
+
+ //printf("iChannel %d, nrows %d, finalcol %d, row %d, channel %d\n",iChannel,nrows,finalcol,row,channel);
+ if((finalcol < 0) || (finalcol >= 144)) continue;
+
+ rocMeand->SetValue(channel,param[1]/10.0);
+ rocRMSd->SetValue(channel,param[2]/10.0);
+ }
+