X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=T0%2FAliT0Calibrator.cxx;h=be4a7874c8bf8f5da0eb865bfe6582025e9e4a7b;hb=132427f039b9e43eb15f35774837d72d4cd096d4;hp=bc44f3817d0becbdbac422f0caf037d1df1be61f;hpb=7a447934f2dbc4075679259e6e15d8f42d8096db;p=u%2Fmrichter%2FAliRoot.git diff --git a/T0/AliT0Calibrator.cxx b/T0/AliT0Calibrator.cxx index bc44f3817d0..be4a7874c8b 100644 --- a/T0/AliT0Calibrator.cxx +++ b/T0/AliT0Calibrator.cxx @@ -1,3 +1,4 @@ + /************************************************************************** * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * * * @@ -29,30 +30,38 @@ #include "AliLog.h" #include "AliT0Parameters.h" #include "AliT0Calibrator.h" +#include "AliT0Reconstructor.h" +#include "AliT0RecoParam.h" #include #include +#include +#include ClassImp(AliT0Calibrator) //____________________________________________________________________ AliT0Calibrator::AliT0Calibrator():TNamed(), - fChannelWidth(0), - fWalk(0) + fChannelWidth(0), + fWalk(0) + { //constructor + AliT0Parameters* param = AliT0Parameters::Instance(); + param->Init(); + //slewing correcion and equalizing channels - AliT0Parameters* param = AliT0Parameters::Instance(); - param->Init(); - fChannelWidth = param->GetChannelWidth() ; - + // Double_t *grX ; for (Int_t i=0; i<24; i++){ + fMaxValue[i]=0; fTimeDelayCFD[i] = Int_t (param->GetTimeDelayCFD(i)); - TGraph* fu = param ->GetWalk(i); + // TGraph* fu = param ->GetWalk(i); + // fWalk.AddAtAndExpand(fu,i); + TGraph* fu = param ->GetAmpLEDRec(i); fWalk.AddAtAndExpand(fu,i); + } - // } //_____________________________________________________________________________ @@ -82,22 +91,35 @@ AliT0Calibrator &AliT0Calibrator::operator=(const AliT0Calibrator &r) } - //____________________________________________________________________ -Int_t AliT0Calibrator::WalkCorrection(Int_t ipmt, Int_t qt, Int_t time) + +Int_t AliT0Calibrator::WalkCorrection(Int_t refAmp, Int_t ipmt, Int_t qt, Int_t time) + { - //slewing correcion and equalizing channels + // + // referemce amplitude for walk correction now read from RecoParam + + Double_t *grY ; + + Int_t walk=0; Int_t timeEq=0, timeWalk=0; TGraph *fu1=(TGraph*) fWalk.At(ipmt); - Float_t walk=fu1->Eval(Float_t(qt)); - TH1F*hr=fu1->GetHistogram(); - Float_t maxValue=hr->GetMaximum(50); - timeWalk = time + Int_t((maxValue-walk)/fChannelWidth) ; - timeEq= timeWalk - (fTimeDelayCFD[ipmt]-fTimeDelayCFD[0]); - AliDebug(10,Form(" time before %i timeWalk %i , qt %i timeEq %i \n ", - time,timeWalk, qt, timeEq )); - return timeEq; + if(fu1 && fu1->GetN()>0) { + grY = fu1->GetY(); + fMaxValue[ipmt]=grY[refAmp-1]; + // TGraph* fu = param ->GetAmpLEDRec(i); + walk = Int_t (fMaxValue[ipmt]) + Int_t(fu1->Eval(Double_t(qt))); + } + + timeWalk = time - walk ; + timeEq= timeWalk - fTimeDelayCFD[ipmt]; + // printf(" ipmt %i time before %i timeWalk %i , walk %i qt %i fTimeDelayCFD[ipmt] %i timeEq %i \n ", + // ipmt, time,timeWalk, walk, qt,fTimeDelayCFD[ipmt], timeEq ); + // AliDebug(10,Form(" ipmt %i time before %i timeWalk %i , walk %i qt %i timeEq %i \n ", + // ipmt, time,timeWalk, walk, qt, timeEq )); + + return timeEq; }