**************************************************************************/
/* $Id$ */
-
-#include <Riostream.h>
+/***********************************************************************
+ * this class doing calibration during reconstruction
+ * 2 steps:
+ * - equalizing channels
+ * - applying walk corrections
+ *
+ * Alla.Maevskaya@cern.ch
+ *
+ **********************************************************************/
+
+//#include <Riostream.h>
#include "AliLog.h"
#include "AliT0Parameters.h"
#include "AliT0Calibrator.h"
-#include <TArrayI.h>
#include <TGraph.h>
#include <TH1F.h>
+//#include "iostream.h"
ClassImp(AliT0Calibrator)
fChannelWidth(0),
fWalk(0)
{
+ //constructor
+
AliT0Parameters* param = AliT0Parameters::Instance();
param->Init();
fTimeDelayCFD[i] = Int_t (param->GetTimeDelayCFD(i));
TGraph* fu = param ->GetWalk(i);
fWalk.AddAtAndExpand(fu,i);
-
}
//
//____________________________________________________________________
-Int_t AliT0Calibrator::WalkCorrection(Int_t ipmt, Int_t qt, Int_t time)
+Int_t AliT0Calibrator::WalkCorrection(Int_t ipmt, Int_t qt, Int_t time, TString option)
{
//slewing correcion and equalizing channels
- Int_t timeEq=0, timeWalk=0;
+ Float_t walk=0;
+ Float_t maxValue=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 ));
+ if(fu1){
+ walk=fu1->Eval(Float_t(qt));
+ TH1F*hr=fu1->GetHistogram();
+ maxValue=hr->GetMaximum(50);
+ }
+ if (option == "pdc") {
+ timeWalk = time + Int_t((maxValue-walk)/fChannelWidth) ;
+ timeEq= timeWalk - (fTimeDelayCFD[ipmt]-fTimeDelayCFD[0]);
+ }
+ if (option == "cosmic") {
+ timeWalk = time + Int_t((maxValue-walk)) ;
+ if (ipmt<12) timeEq= timeWalk - (fTimeDelayCFD[ipmt]-fTimeDelayCFD[0]);
+ if (ipmt>11) timeEq= timeWalk - (fTimeDelayCFD[ipmt]-fTimeDelayCFD[12]);
+ }
+ AliDebug(10,Form(" ipmt %i time before %i timeWalk %i , qt %i timeEq %i \n ",
+ ipmt, time,timeWalk, qt, timeEq ));
return timeEq;
}