ROOT logo

/**************************************************************************
 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 *                                                                        *
 * Author: The ALICE Off-line Project.                                    *
 * Contributors are mentioned in the code where appropriate.              *
 *                                                                        *
 * Permission to use, copy, modify and distribute this software and its   *
 * documentation strictly for non-commercial purposes is hereby granted   *
 * without fee, provided that the above copyright notice appears in all   *
 * copies and that both the copyright notice and this permission notice   *
 * appear in the supporting documentation. The authors make no claims     *
 * about the suitability of this software for any purpose. It is          *
 * provided "as is" without express or implied warranty.                  *
 **************************************************************************/

/* $Id$ */
/***********************************************************************
 *      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 "AliT0Reconstructor.h"
#include "AliT0RecoParam.h"
#include "AliCDBEntry.h"
#include "AliCDBManager.h"

#include <TGraph.h>
#include <TH1F.h>
#include <TMath.h>
#include <Riostream.h>

ClassImp(AliT0Calibrator)

//____________________________________________________________________
  AliT0Calibrator::AliT0Calibrator():TNamed(),
				     fChannelWidth(0),  
				     fWalk(0),
				     fEqualized(0)
				     
{
  //constructor
   printf(" AliT0Calibrator ::: AliT0RecoParam GetEq() %i\n", fEqualized);
   AliT0Parameters* param = AliT0Parameters::Instance();
   param->Init();
   //slewing correcion and equalizing channels

  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);
    // fWalk.AddAtAndExpand(fu,i);
    //TGraph* fu = param ->GetAmpLEDRec(i);
    fWalk.AddAtAndExpand(fu,i);
  }
  
}
//_____________________________________________________________________________

AliT0Calibrator::AliT0Calibrator(const AliT0Calibrator &r): TNamed(),
							    fChannelWidth(0),  
							    fWalk(0), 
							    fEqualized(0)

{
  //
  // AliT0calibartor copy constructor
  //

  ((AliT0Calibrator &) r).Copy(*this);

}

//_____________________________________________________________________________
AliT0Calibrator &AliT0Calibrator::operator=(const AliT0Calibrator &r)
{
  //
  // Assignment operator
  //

  if (this != &r) ((AliT0Calibrator &) r).Copy(*this);
  return *this;

}


//____________________________________________________________________

Int_t  AliT0Calibrator::WalkCorrection(Int_t refAmp,  Int_t ipmt, Int_t qt, Int_t time) 

{
  //
  // referemce amplitude for walk correction now read from RecoParam

   Int_t walk=0;
  Int_t timeEq=0, timeWalk=0;  
  TGraph *fu1=(TGraph*) fWalk.At(ipmt);
  if(fu1 && fu1->GetN()>0) {
    walk = Int_t(fu1->Eval(Double_t(qt)));
  }
  
  if (fEqualized == 0)
    timeEq= time - fTimeDelayCFD[ipmt]-walk;
  else 
    timeEq = time - walk -  refAmp;

  //   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(2,Form(" fEqualized %i ipmt %i refAmp %i time before %i timeWalk %i , walk %i  qt %i timeEq %i, diff %i \n ",
		     fEqualized,   ipmt, refAmp, time,timeWalk, walk, qt, timeEq , fTimeDelayCFD[ipmt]));
  
   return timeEq;
}



 AliT0Calibrator.cxx:1
 AliT0Calibrator.cxx:2
 AliT0Calibrator.cxx:3
 AliT0Calibrator.cxx:4
 AliT0Calibrator.cxx:5
 AliT0Calibrator.cxx:6
 AliT0Calibrator.cxx:7
 AliT0Calibrator.cxx:8
 AliT0Calibrator.cxx:9
 AliT0Calibrator.cxx:10
 AliT0Calibrator.cxx:11
 AliT0Calibrator.cxx:12
 AliT0Calibrator.cxx:13
 AliT0Calibrator.cxx:14
 AliT0Calibrator.cxx:15
 AliT0Calibrator.cxx:16
 AliT0Calibrator.cxx:17
 AliT0Calibrator.cxx:18
 AliT0Calibrator.cxx:19
 AliT0Calibrator.cxx:20
 AliT0Calibrator.cxx:21
 AliT0Calibrator.cxx:22
 AliT0Calibrator.cxx:23
 AliT0Calibrator.cxx:24
 AliT0Calibrator.cxx:25
 AliT0Calibrator.cxx:26
 AliT0Calibrator.cxx:27
 AliT0Calibrator.cxx:28
 AliT0Calibrator.cxx:29
 AliT0Calibrator.cxx:30
 AliT0Calibrator.cxx:31
 AliT0Calibrator.cxx:32
 AliT0Calibrator.cxx:33
 AliT0Calibrator.cxx:34
 AliT0Calibrator.cxx:35
 AliT0Calibrator.cxx:36
 AliT0Calibrator.cxx:37
 AliT0Calibrator.cxx:38
 AliT0Calibrator.cxx:39
 AliT0Calibrator.cxx:40
 AliT0Calibrator.cxx:41
 AliT0Calibrator.cxx:42
 AliT0Calibrator.cxx:43
 AliT0Calibrator.cxx:44
 AliT0Calibrator.cxx:45
 AliT0Calibrator.cxx:46
 AliT0Calibrator.cxx:47
 AliT0Calibrator.cxx:48
 AliT0Calibrator.cxx:49
 AliT0Calibrator.cxx:50
 AliT0Calibrator.cxx:51
 AliT0Calibrator.cxx:52
 AliT0Calibrator.cxx:53
 AliT0Calibrator.cxx:54
 AliT0Calibrator.cxx:55
 AliT0Calibrator.cxx:56
 AliT0Calibrator.cxx:57
 AliT0Calibrator.cxx:58
 AliT0Calibrator.cxx:59
 AliT0Calibrator.cxx:60
 AliT0Calibrator.cxx:61
 AliT0Calibrator.cxx:62
 AliT0Calibrator.cxx:63
 AliT0Calibrator.cxx:64
 AliT0Calibrator.cxx:65
 AliT0Calibrator.cxx:66
 AliT0Calibrator.cxx:67
 AliT0Calibrator.cxx:68
 AliT0Calibrator.cxx:69
 AliT0Calibrator.cxx:70
 AliT0Calibrator.cxx:71
 AliT0Calibrator.cxx:72
 AliT0Calibrator.cxx:73
 AliT0Calibrator.cxx:74
 AliT0Calibrator.cxx:75
 AliT0Calibrator.cxx:76
 AliT0Calibrator.cxx:77
 AliT0Calibrator.cxx:78
 AliT0Calibrator.cxx:79
 AliT0Calibrator.cxx:80
 AliT0Calibrator.cxx:81
 AliT0Calibrator.cxx:82
 AliT0Calibrator.cxx:83
 AliT0Calibrator.cxx:84
 AliT0Calibrator.cxx:85
 AliT0Calibrator.cxx:86
 AliT0Calibrator.cxx:87
 AliT0Calibrator.cxx:88
 AliT0Calibrator.cxx:89
 AliT0Calibrator.cxx:90
 AliT0Calibrator.cxx:91
 AliT0Calibrator.cxx:92
 AliT0Calibrator.cxx:93
 AliT0Calibrator.cxx:94
 AliT0Calibrator.cxx:95
 AliT0Calibrator.cxx:96
 AliT0Calibrator.cxx:97
 AliT0Calibrator.cxx:98
 AliT0Calibrator.cxx:99
 AliT0Calibrator.cxx:100
 AliT0Calibrator.cxx:101
 AliT0Calibrator.cxx:102
 AliT0Calibrator.cxx:103
 AliT0Calibrator.cxx:104
 AliT0Calibrator.cxx:105
 AliT0Calibrator.cxx:106
 AliT0Calibrator.cxx:107
 AliT0Calibrator.cxx:108
 AliT0Calibrator.cxx:109
 AliT0Calibrator.cxx:110
 AliT0Calibrator.cxx:111
 AliT0Calibrator.cxx:112
 AliT0Calibrator.cxx:113
 AliT0Calibrator.cxx:114
 AliT0Calibrator.cxx:115
 AliT0Calibrator.cxx:116
 AliT0Calibrator.cxx:117
 AliT0Calibrator.cxx:118
 AliT0Calibrator.cxx:119
 AliT0Calibrator.cxx:120
 AliT0Calibrator.cxx:121
 AliT0Calibrator.cxx:122
 AliT0Calibrator.cxx:123
 AliT0Calibrator.cxx:124
 AliT0Calibrator.cxx:125
 AliT0Calibrator.cxx:126
 AliT0Calibrator.cxx:127
 AliT0Calibrator.cxx:128