-
-//__________________________________________________________________
-
-TGraph *AliT0Parameters::GetSlew(Int_t ipmt) const
-{
- if (!fCalibentry) {
- return (TGraph*)fSlewingLED.At(ipmt);
- }
- return fgCalibData -> GetSlew(ipmt) ;
-}
-
-//__________________________________________________________________
-
-
-void
-AliT0Parameters::SetSlewingRec(Int_t ipmt)
-{
- // Set Slweing Correction for LED channel
- Float_t mv[23] = {25, 30, 40,60, 80,100,150,200,250,300,
- 400,500,600,800,1000,1500, 2000, 3000, 4000, 5500,
- 6000, 7000,8000};
- Float_t y[23] = {5044, 4719, 3835, 3224, 2847, 2691,2327, 2067, 1937, 1781,
- 1560, 1456 ,1339, 1163.5, 1027, 819, 650, 520, 370.5, 234,
- 156, 78, 0};
- Float_t y1[23], mv1[23];
- for (Int_t i=0; i<23; i++){
- y1[i] = y[22-i]; mv1[i] = mv[22-i];}
-
- TGraph* gr = new TGraph(23,y1,mv1);
- fSlewingRec.AddAtAndExpand(gr,ipmt);
-
-}
-//__________________________________________________________________
-
-Float_t AliT0Parameters::GetSlewingRec(Int_t ipmt, Float_t mv) const
-{
- if (!fCalibentry) {
- return ((TGraph*)fSlewingRec.At(ipmt))->Eval(mv);
- }
- return fgCalibData -> GetSlewingRec(ipmt, mv) ;
-}
-
-//__________________________________________________________________
-
-TGraph *AliT0Parameters::GetSlewRec(Int_t ipmt) const
-{
- if (!fCalibentry) {
- return (TGraph*)fSlewingRec.At(ipmt);
- }
- return fgCalibData -> GetSlewRec(ipmt) ;
-}
-
-
-//________________________________________________________________
-void AliT0Parameters::SetWalk(Int_t ipmt)
-{
-
- Int_t mv, ps;
- Int_t x[70000], y[70000], index[70000];
- Float_t time[10000],amplitude[10000];
- string buffer;
- Bool_t down=false;
-
- const char * filename = gSystem->ExpandPathName("$ALICE_ROOT/T0/data/CFD-Amp.txt");
- ifstream inFile(filename);
- // if(!inFile) AliError(Form("Cannot open file %s !",filename));
-
- Int_t i=0;
- while(getline(inFile,buffer)){
- inFile >> ps >> mv;
-
- x[i]=ps; y[i]=mv;
- i++;
- }
- inFile.close();
-
- TMath::Sort(i, y, index,down);
- Int_t amp=0, iin=0, isum=0, sum=0;
- Int_t ind=0;
- for (Int_t ii=0; ii<i; ii++)
- {
- ind=index[ii];
- if(y[ind] == amp)
- {
- sum +=x[ind];
- iin++;
- }
- else
- {
- if(iin>0)
- time[isum] = Float_t (sum/(iin));
- else
- time[isum] =Float_t (x[ind]);
- amplitude[isum] = Float_t (amp);
- amp=y[ind];
- // cout<<ii<<" "<<ind<<" "<<y[ind]<<" "<<x[ind]<<" iin "<<iin<<" mean "<<time[isum]<<" amp "<< amplitude[isum]<<" "<<isum<<endl;
- iin=0;
- isum++;
- sum=0;
- }
-
-
- }
-
- inFile.close();
-
- TGraph* gr = new TGraph(isum, amplitude, time);
- fWalk.AddAtAndExpand(gr,ipmt);
-
-
-}