+Float_t AliTPCClusterParam::QnormPos(Int_t ipad,Bool_t isMax, Float_t pad, Float_t time, Float_t z, Float_t sy2, Float_t sz2, Float_t qm, Float_t qt){
+ //
+ // Make Q normalization as function of following parameters
+ // Fit parameters to be used in corresponding correction function extracted in the AliTPCclaibTracksGain - Taylor expansion
+ // 1 - dp - relative pad position
+ // 2 - dt - relative time position
+ // 3 - di - drift length (norm to 1);
+ // 4 - dq0 - Tot/Max charge
+ // 5 - dq1 - Max/Tot charge
+ // 6 - sy - sigma y - shape
+ // 7 - sz - sigma z - shape
+ //
+
+ //The results can be visualized using the debug streamer information of the AliTPCcalibTracksGain -
+ // Following variable used - correspondance to the our variable conventions
+ //chain0->SetAlias("dp","((Cl.fPad-int(Cl.fPad)-0.5)/0.5)");
+ Double_t dp = ((pad-int(pad)-0.5)*2.);
+ //chain0->SetAlias("dt","((Cl.fTimeBin-int(Cl.fTimeBin)-0.5)/0.5)");
+ Double_t dt = ((time-int(time)-0.5)*2.);
+ //chain0->SetAlias("di","(sqrt(1.-abs(Cl.fZ)/250.))");
+ Double_t di = TMath::Sqrt(1-TMath::Abs(z)/250.);
+ //chain0->SetAlias("dq0","(0.2*(Cl.fQ+2)/(Cl.fMax+2))");
+ Double_t dq0 = 0.2*(qt+2.)/(qm+2.);
+ //chain0->SetAlias("dq1","(5*(Cl.fMax+2)/(Cl.fQ+2))");
+ Double_t dq1 = 5.*(qm+2.)/(qt+2.);
+ //chain0->SetAlias("sy","(0.32/sqrt(0.01^2+Cl.fSigmaY2))");
+ Double_t sy = 0.32/TMath::Sqrt(0.01*0.01+sy2);
+ //chain0->SetAlias("sz","(0.32/sqrt(0.01^2+Cl.fSigmaZ2))");
+ Double_t sz = 0.32/TMath::Sqrt(0.01*0.01+sz2);
+ //
+ //
+ //
+ TVectorD * pvec = 0;
+ if (isMax){
+ pvec = fPosQMnorm[ipad];
+ }else{
+ pvec = fPosQTnorm[ipad];
+ }
+ TVectorD ¶m = *pvec;
+ //
+ // Eval part - in correspondance with fit part from debug streamer
+ //
+ Double_t result=param[0];
+ Int_t index =1;
+ //
+ result+=dp*param[index++]; //1
+ result+=dt*param[index++]; //2
+ result+=dp*dp*param[index++]; //3
+ result+=dt*dt*param[index++]; //4
+ result+=dt*dt*dt*param[index++]; //5
+ result+=dp*dt*param[index++]; //6
+ result+=dp*dt*dt*param[index++]; //7
+ result+=(dq0)*param[index++]; //8
+ result+=(dq1)*param[index++]; //9
+ //
+ //
+ result+=dp*dp*(di)*param[index++]; //10
+ result+=dt*dt*(di)*param[index++]; //11
+ result+=dp*dp*sy*param[index++]; //12
+ result+=dt*sz*param[index++]; //13
+ result+=dt*dt*sz*param[index++]; //14
+ result+=dt*dt*dt*sz*param[index++]; //15
+ //
+ result+=dp*dp*1*sy*sz*param[index++]; //16
+ result+=dt*sy*sz*param[index++]; //17
+ result+=dt*dt*sy*sz*param[index++]; //18
+ result+=dt*dt*dt*sy*sz*param[index++]; //19
+ //
+ result+=dp*dp*(dq0)*param[index++]; //20
+ result+=dt*1*(dq0)*param[index++]; //21
+ result+=dt*dt*(dq0)*param[index++]; //22
+ result+=dt*dt*dt*(dq0)*param[index++]; //23
+ //
+ result+=dp*dp*(dq1)*param[index++]; //24
+ result+=dt*(dq1)*param[index++]; //25
+ result+=dt*dt*(dq1)*param[index++]; //26
+ result+=dt*dt*dt*(dq1)*param[index++]; //27
+
+ if (result<0.75) result=0.75;
+ if (result>1.25) result=1.25;
+
+ return result;
+
+}