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 is a class that constructs SDigits out of Hits    //
//   A Summable Digits is the "sum" of all hits in a pad    //
//   Detector response has been simulated via the method    //
//   SimulateDetectorResponse                               //
//                                                          //
//  -- Authors: F. Pierella, A. De Caro                     //
//   Use case: see AliTOFhits2sdigits.C macro in the CVS    //
//__________________________________________________________//

#include <TBenchmark.h>
#include <TClonesArray.h>
#include <TF1.h>
#include <TFile.h>
#include <TParticle.h>
#include <TTree.h>
#include <TRandom.h>
#include <TROOT.h>

#include "AliLoader.h"
#include "AliLog.h"
#include "AliMC.h"
#include "AliRunLoader.h"
#include "AliRun.h"

#include "AliTOFcalib.h"
#include "AliTOFRecoParam.h"
#include "AliTOFGeometry.h"
#include "AliTOFHitMap.h"
#include "AliTOFhitT0.h"
#include "AliTOFhit.h"
#include "AliTOFSDigitizer.h"
#include "AliTOFSDigit.h"
#include "AliTOF.h"

//extern TROOT *gROOT;

ClassImp(AliTOFSDigitizer)

//____________________________________________________________________________ 
AliTOFSDigitizer::AliTOFSDigitizer():
  TNamed("TOFSDigitizer",""),
  fEvent1(-1),
  fEvent2(-1),
  ftail(0x0),
  fHeadersFile(""),
  fRunLoader(0x0),
  fTOFLoader(0x0),
  fSelectedSector(-1), 
  fSelectedPlate(-1),
  fTimeResolution(100.),
  fpadefficiency(0),
  fEdgeEffect(-1),
  fEdgeTails(-1),
  fHparameter(0),
  fH2parameter(0),
  fKparameter(0),
  fK2parameter(0),
  fEffCenter(0),
  fEffBoundary(0),
  fEff2Boundary(0),
  fEff3Boundary(0),
  fAddTRes(0),
  fResCenter(0),
  fResBoundary(0),
  fResSlope(0),
  fTimeWalkCenter(0),
  fTimeWalkBoundary(0),
  fTimeWalkSlope(0),
  fTimeDelayFlag(-1),
  fPulseHeightSlope(0),
  fTimeDelaySlope(0),
  fMinimumCharge(0),
  fChargeSmearing(0),
  fLogChargeSmearing(0),
  fTimeSmearing(0),
  fAverageTimeFlag(-1),
  fAdcBin(0),
  fAdcMean(0),
  fAdcRms(0),
  fCalib(new AliTOFcalib())
{
  // ctor

}

//------------------------------------------------------------------------
AliTOFSDigitizer::AliTOFSDigitizer(const AliTOFSDigitizer &source):
  TNamed(source),
  fEvent1(-1),
  fEvent2(-1),
  ftail(0x0),
  fHeadersFile(""),
  fRunLoader(0x0),
  fTOFLoader(0x0),
  fSelectedSector(-1), 
  fSelectedPlate(-1),
  fTimeResolution(100.),
  fpadefficiency(0),
  fEdgeEffect(-1),
  fEdgeTails(-1),
  fHparameter(0),
  fH2parameter(0),
  fKparameter(0),
  fK2parameter(0),
  fEffCenter(0),
  fEffBoundary(0),
  fEff2Boundary(0),
  fEff3Boundary(0),
  fAddTRes(0),
  fResCenter(0),
  fResBoundary(0),
  fResSlope(0),
  fTimeWalkCenter(0),
  fTimeWalkBoundary(0),
  fTimeWalkSlope(0),
  fTimeDelayFlag(-1),
  fPulseHeightSlope(0),
  fTimeDelaySlope(0),
  fMinimumCharge(0),
  fChargeSmearing(0),
  fLogChargeSmearing(0),
  fTimeSmearing(0),
  fAverageTimeFlag(-1),
  fAdcBin(0),
  fAdcMean(0),
  fAdcRms(0),
  fCalib(new AliTOFcalib())
{
  // copy constructor
  //this->fTOFGeometry=source.fTOFGeometry;

}

//____________________________________________________________________________ 
AliTOFSDigitizer& AliTOFSDigitizer::operator=(const AliTOFSDigitizer &/*source*/)
{
  // ass. op.
  return *this;

}

//____________________________________________________________________________ 
AliTOFSDigitizer::AliTOFSDigitizer(const char* HeaderFile, Int_t evNumber1, Int_t nEvents):
  TNamed("TOFSDigitizer",""),
  fEvent1(-1),
  fEvent2(-1),
  ftail(0x0),
  fHeadersFile(HeaderFile), // input filename (with hits)
  fRunLoader(0x0),
  fTOFLoader(0x0),
  fSelectedSector(-1), // by default we sdigitize all sectors
  fSelectedPlate(-1),  // by default we sdigitize all plates in all sectors
  fTimeResolution(100.),
  fpadefficiency(0),
  fEdgeEffect(-1),
  fEdgeTails(-1),
  fHparameter(0),
  fH2parameter(0),
  fKparameter(0),
  fK2parameter(0),
  fEffCenter(0),
  fEffBoundary(0),
  fEff2Boundary(0),
  fEff3Boundary(0),
  fAddTRes(0),
  fResCenter(0),
  fResBoundary(0),
  fResSlope(0),
  fTimeWalkCenter(0),
  fTimeWalkBoundary(0),
  fTimeWalkSlope(0),
  fTimeDelayFlag(-1),
  fPulseHeightSlope(0),
  fTimeDelaySlope(0),
  fMinimumCharge(0),
  fChargeSmearing(0),
  fLogChargeSmearing(0),
  fTimeSmearing(0),
  fAverageTimeFlag(-1),
  fAdcBin(0),
  fAdcMean(0),
  fAdcRms(0),
  fCalib(new AliTOFcalib())
{
  //ctor, reading from input file 
  
  TFile * file = (TFile*) gROOT->GetFile(fHeadersFile.Data());
  
  //File was not opened yet open file and get alirun object
  if (file == 0) {
    file   = TFile::Open(fHeadersFile.Data(),"update") ;
    gAlice = (AliRun *) file->Get("gAlice") ;
  }
  
  // add Task to //root/Tasks folder
  TString evfoldname = AliConfig::GetDefaultEventFolderName();
  fRunLoader = AliRunLoader::GetRunLoader(evfoldname);
  if (!fRunLoader)
    fRunLoader = AliRunLoader::Open(HeaderFile);//open session and mount on default event folder
  if (fRunLoader == 0x0)
    {
      AliFatal("Event is not loaded. Exiting");
      return;
    }

  /*
  fRunLoader->CdGAFile();
  TDirectory *savedir=gDirectory;
  TFile *in=(TFile*)gFile;

   
// when fTOFGeometry was needed
  if (!in->IsOpen()) {
    AliWarning("Geometry file is not open default TOF geometry will be used");
    fTOFGeometry = new AliTOFGeometry();
  }
  else {
    in->cd();
    fTOFGeometry = (AliTOFGeometry*)in->Get("TOFgeometry");
  }
  
  savedir->cd();
  */
  if (fRunLoader->TreeE() == 0x0) fRunLoader->LoadHeader();
  
  if (evNumber1>=0) fEvent1 = evNumber1;
  else fEvent1=0;
  
  if (nEvents==0) fEvent2 = (Int_t)(fRunLoader->GetNumberOfEvents());
  else if (nEvents>0) fEvent2 = evNumber1+nEvents;
  else fEvent2 = 1;
  
  if (!(fEvent2>fEvent1)) {
    AliError(Form("fEvent2 = %d <= fEvent1 = %d", fEvent2, fEvent1));
    fEvent1 = 0;
    fEvent2 = 1;
    AliError(Form("Correction: fEvent2 = %d <= fEvent1 = %d", fEvent2, fEvent1));
  }
  
  // init parameters for sdigitization
  InitParameters();
  
  fTOFLoader = fRunLoader->GetLoader("TOFLoader");
  if (fTOFLoader == 0x0)
    {
      AliFatal("Can not find TOF loader in event. Exiting.");
      return;
    }
}

//____________________________________________________________________________ 
AliTOFSDigitizer::~AliTOFSDigitizer()
{
  // dtor
  if (fCalib) delete fCalib;

}

//____________________________________________________________________________ 
void AliTOFSDigitizer::InitParameters()
{
  // set parameters for detector simulation
  
  fCalib->Init();

  //fTimeResolution = 80.; //120.; OLD
  AliTOFRecoParam *recoParams = (AliTOFRecoParam*)fCalib->ReadRecParFromCDB("TOF/Calib",fRunLoader->GetRunNumber());
  fTimeResolution = recoParams->GetTimeResolution(); // now from OCDB
  if (fTimeResolution==0.) {
    AliWarning("In OCDB found 0ps for TOF time resolution. It is set to 100ps.");
    fTimeResolution = 100.;
  }
  AliDebug(1,Form(" TOF time resolution read from OCDB = %f ps",fTimeResolution));
  fpadefficiency  = 0.995 ;
  //fEdgeEffect   = 2   ; // edge effects according to test beam results
  fEdgeEffect     = 1   ; // edge effects according to test beam results
                          // but with fixed time resolution, i.e. fTimeResolution
  fEdgeTails      = 0   ;
  fHparameter     = 0.4 ;
  fH2parameter    = 0.15;
  fKparameter     = 0.9 ;
  fK2parameter    = 0.55;
  fEffCenter      = fpadefficiency;
  fEffBoundary    = 0.833;
  fEff2Boundary   = 0.94;
  fEff3Boundary   = 0.1;
  fAddTRes        = 68. ; // \sqrt{2x20^2 + 15^2 + 2x10^2 + 30^2 + 50^2} (p-p)
  //fAddTRes      = 48. ; // \sqrt{2x20^2 + 15^2 + 2x10^2 + 30^2 + 15^2} (Pb-Pb)
  // 30^2+20^2+40^2+50^2+50^2+50^2 = 10400 ps^2 (very old value)
  fResCenter      = 35. ; //50. ; // OLD
  fResBoundary    = 70. ;
  fResSlope       = 37. ; //40. ; // OLD
  fTimeWalkCenter = 0.  ;
  fTimeWalkBoundary=0.  ;
  fTimeWalkSlope  = 0.  ;
  fTimeDelayFlag  = 0   ;
  fPulseHeightSlope=2.0 ;
  fTimeDelaySlope =0.060;
  // was fMinimumCharge = TMath::Exp(fPulseHeightSlope*fKparameter/2.);
  fMinimumCharge = TMath::Exp(-fPulseHeightSlope*fHparameter);
  fChargeSmearing=0.0   ;
  fLogChargeSmearing=0.13;
  fTimeSmearing   =0.022;
  fAverageTimeFlag=0    ;

  fAdcBin   = 0.25;    // 1 ADC bin = 0.25 pC (or 0.03 pC)
  fAdcMean  = 50.;     // ADC distribution mpv value for Landau (in bins)
                       // it corresponds to a mean value of ~100 bins
  fAdcRms   = 25.;     // ADC distribution rms value (in bins)
                       // it corresponds to distribution rms ~50 bins
}

//__________________________________________________________________
Double_t TimeWithTail(const Double_t * const x, const Double_t * const par)
{
  // sigma - par[0], alpha - par[1], part - par[2]
  //  at x<part*sigma - gauss
  //  at x>part*sigma - TMath::Exp(-x/alpha)
  Float_t xx =x[0];
  Double_t f;
  if(xx<par[0]*par[2]) {
    f = TMath::Exp(-xx*xx/(2*par[0]*par[0]));
  } else {
    f = TMath::Exp(-(xx-par[0]*par[2])/par[1]-0.5*par[2]*par[2]);
  }
  return f;
}

//____________________________________________________________________________
void AliTOFSDigitizer::Digitize(Option_t *verboseOption) { 
  //execute TOF sdigitization
  if (strstr(verboseOption,"tim") || strstr(verboseOption,"all"))
    gBenchmark->Start("TOFSDigitizer");

  if (fEdgeTails) ftail = new TF1("tail",TimeWithTail,-2,2,3);
  
  Int_t nselectedHits=0;
  Int_t ntotalsdigits=0;
  Int_t ntotalupdates=0;
  Int_t nnoisesdigits=0;
  Int_t nsignalsdigits=0;
  Int_t nHitsFromPrim=0;
  Int_t nHitsFromSec=0;
  Int_t nlargeTofDiff=0;

  Bool_t thereIsNotASelection=(fSelectedSector==-1) && (fSelectedPlate==-1);

  if (fRunLoader->GetAliRun() == 0x0) fRunLoader->LoadgAlice();
  gAlice = fRunLoader->GetAliRun();

  fRunLoader->LoadKinematics();
  
  AliTOF *tof = (AliTOF *) gAlice->GetDetector("TOF");
  
  if (!tof) {
    AliError("TOF not found");
    return;
  }

  fTOFLoader->LoadHits("read");
  fTOFLoader->LoadSDigits("recreate");

  Int_t vol[5]={-1,-1,-1,-1,-1}; // location for a digit
  Int_t digit[2]={0,0};          // TOF digit variables
  
  Int_t nselectedHitsinEv=0;
  Int_t ntotalsdigitsinEv=0;
  Int_t ntotalupdatesinEv=0;
  Int_t nnoisesdigitsinEv=0;
  Int_t nsignalsdigitsinEv=0;

  for (Int_t iEvent=fEvent1; iEvent<fEvent2; iEvent++) {
    //AliInfo(Form("------------------- %s -------------", GetName()));
    //AliInfo(Form("Sdigitizing event %i", iEvent));

    fRunLoader->GetEvent(iEvent);

    TTree *hitTree = fTOFLoader->TreeH();
    if (!hitTree) return;

    if (fTOFLoader->TreeS () == 0) fTOFLoader->MakeTree ("S");
    
    //Make branch for digits
    tof->MakeBranch("S");
    
    // recreate TClonesArray fSDigits - for backward compatibility
    if (tof->SDigits() == 0) {
      tof->CreateSDigitsArray();
    } else {
      tof->RecreateSDigitsArray();
    }

    tof->SetTreeAddress();

    Int_t version=tof->IsVersion();

    nselectedHitsinEv=0;
    ntotalsdigitsinEv=0;
    ntotalupdatesinEv=0;
    nnoisesdigitsinEv=0;
    nsignalsdigitsinEv=0;

    TParticle *particle;
    //AliTOFhit *tofHit;
    TClonesArray *tofHitArray = tof->Hits();

    // create hit map
    //AliTOFHitMap *hitMap = new AliTOFHitMap(tof->SDigits(), fTOFGeometry);
    AliTOFHitMap *hitMap = new AliTOFHitMap(tof->SDigits());

    TBranch * tofHitsBranch = hitTree->GetBranch("TOF");

    Int_t ntracks = static_cast<Int_t>(hitTree->GetEntries());
    for (Int_t track = 0; track < ntracks; track++)
    {
      gAlice->GetMCApp()->ResetHits();
      tofHitsBranch->GetEvent(track);

      AliMC *mcApplication = (AliMC*)gAlice->GetMCApp();

      particle = (TParticle*)mcApplication->Particle(track);
      Int_t nhits = tofHitArray->GetEntriesFast();
      // cleaning all hits of the same track in the same pad volume
      // it is a rare event, however it happens

      Int_t previousTrack =-1;
      Int_t previousSector=-1;
      Int_t previousPlate =-1;
      Int_t previousStrip =-1;
      Int_t previousPadX  =-1;
      Int_t previousPadZ  =-1;

      for (Int_t hit = 0; hit < nhits; hit++) {
	for (Int_t aa=0; aa<5;aa++) vol[aa]=-1;  // location for a digit
	for (Int_t aa=0; aa<2;aa++) digit[aa]=0; // TOF digit variables
	Int_t   tracknum;
	Float_t dxPad;
	Float_t dzPad;
	Float_t geantTime;

	// fp: really sorry for this, it is a temporary trick to have
	// track length too
	if (version<6) { //(version!=6 && version!=7)
	  AliTOFhit *tofHit = (AliTOFhit *) tofHitArray->UncheckedAt(hit);
	  tracknum = tofHit->GetTrack();
	  vol[0] = tofHit->GetSector();
	  vol[1] = tofHit->GetPlate();
	  vol[2] = tofHit->GetStrip();
	  vol[3] = tofHit->GetPadx();
	  vol[4] = tofHit->GetPadz();
	  dxPad = tofHit->GetDx();
	  dzPad = tofHit->GetDz();
	  geantTime = tofHit->GetTof(); // unit [s] // already corrected per event_time smearing
	} else {
	  AliTOFhitT0 *tofHit = (AliTOFhitT0 *) tofHitArray->UncheckedAt(hit);
	  tracknum = tofHit->GetTrack();
	  vol[0] = tofHit->GetSector();
	  vol[1] = tofHit->GetPlate();
	  vol[2] = tofHit->GetStrip();
	  vol[3] = tofHit->GetPadx();
	  vol[4] = tofHit->GetPadz();
	  dxPad = tofHit->GetDx();
	  dzPad = tofHit->GetDz();
	  geantTime = tofHit->GetTof(); // unit [s] // already corrected per event_time_smearing
	}
	
	geantTime *= 1.e+09;  // conversion from [s] to [ns]
	// TOF matching window (~200ns) control
	if (geantTime>=AliTOFGeometry::MatchingWindow()*1E-3) {
	  AliDebug(2,Form("Time measurement (%f) greater than the matching window (%f)",
			  geantTime, AliTOFGeometry::MatchingWindow()*1E-3));
	  continue;
	}

	// selection case for sdigitizing only hits in a given plate of a given sector
	if(thereIsNotASelection || (vol[0]==fSelectedSector && vol[1]==fSelectedPlate)){
	  
	  Bool_t dummy=((tracknum==previousTrack) && (vol[0]==previousSector) && (vol[1]==previousPlate) && (vol[2]==previousStrip));
	  
	  Bool_t isCloneOfThePrevious=dummy && ((vol[3]==previousPadX) && (vol[4]==previousPadZ));
	  
	  Bool_t isNeighOfThePrevious=dummy && ((((vol[3]==previousPadX-1) || (vol[3]==previousPadX+1)) && (vol[4]==previousPadZ)) || ((vol[3]==previousPadX) && ((vol[4]==previousPadZ+1) || (vol[4]==previousPadZ-1))));
	  
	  if(!isCloneOfThePrevious && !isNeighOfThePrevious){
	    // update "previous" values
	    // in fact, we are yet in the future, so the present is past
	    previousTrack=tracknum;
	    previousSector=vol[0];
	    previousPlate=vol[1];
	    previousStrip=vol[2];
	    previousPadX=vol[3];
	    previousPadZ=vol[4];
	    
	    nselectedHits++;
	    nselectedHitsinEv++;
	    if (particle->GetFirstMother() < 0) nHitsFromPrim++; // counts hits due to primary particles
	    
	    Float_t xStrip=AliTOFGeometry::XPad()*(vol[3]+0.5-0.5*AliTOFGeometry::NpadX())+dxPad;
	    Float_t zStrip=AliTOFGeometry::ZPad()*(vol[4]+0.5-0.5*AliTOFGeometry::NpadZ())+dzPad;

	    Int_t nActivatedPads = 0, nFiredPads = 0;
	    Bool_t isFired[4] = {kFALSE, kFALSE, kFALSE, kFALSE};
	    Float_t tofAfterSimul[4] = {0., 0., 0., 0.};
	    Float_t qInduced[4] = {0.,0.,0.,0.};
	    Int_t nPlace[4] = {0, 0, 0, 0};
	    Float_t averageTime = 0.;
	    SimulateDetectorResponse(zStrip,xStrip,geantTime,nActivatedPads,nFiredPads,isFired,nPlace,qInduced,tofAfterSimul,averageTime);
	    if(nFiredPads) {
	      for(Int_t indexOfPad=0; indexOfPad<nActivatedPads; indexOfPad++) {
		if(isFired[indexOfPad]){ // the pad has fired

		  Float_t timediff=geantTime-tofAfterSimul[indexOfPad];

		  // TOF matching window (~200ns) control
		  if (tofAfterSimul[indexOfPad]>=AliTOFGeometry::MatchingWindow()*1E-3) {
		    AliDebug(2,Form("Time measurement (%f) greater than the matching window (%f)",
				    tofAfterSimul[indexOfPad], AliTOFGeometry::MatchingWindow()*1E-3));
		    continue;
		  }

		  if(timediff>=0.2) nlargeTofDiff++; // greater than 200ps
		  
		  digit[0] = TMath::Nint((tofAfterSimul[indexOfPad]*1.e+03)/AliTOFGeometry::TdcBinWidth()); // TDC bin number (each bin -> 24.4 ps)
		  
		  Float_t landauFactor = gRandom->Landau(fAdcMean, fAdcRms); 
		  digit[1] = TMath::Nint(qInduced[indexOfPad] * landauFactor); // ADC bins (each bin -> 0.25 (or 0.03) pC)

		  // recalculate the volume only for neighbouring pads
		  if(indexOfPad){
		    (nPlace[indexOfPad]<=AliTOFGeometry::NpadX()) ? vol[4] = 0 : vol[4] = 1;
		    (nPlace[indexOfPad]<=AliTOFGeometry::NpadX()) ? vol[3] = nPlace[indexOfPad] - 1 : vol[3] = nPlace[indexOfPad] - AliTOFGeometry::NpadX() - 1;
		  }
		  // check if two sdigit are on the same pad;
		  // in that case we sum the two or more sdigits
		  if (hitMap->TestHit(vol) != kEmpty) {
		    AliTOFSDigit *sdig = static_cast<AliTOFSDigit*>(hitMap->GetHit(vol));
		    Int_t tdctime = (Int_t) digit[0];
		    Int_t adccharge = (Int_t) digit[1];
		    sdig->Update(AliTOFGeometry::TdcBinWidth(),tdctime,adccharge,tracknum);
		    ntotalupdatesinEv++;
		    ntotalupdates++;
		  } else {
		    
		    tof->AddSDigit(tracknum, vol, digit);
		    
		    if(indexOfPad){
		      nnoisesdigits++;
		      nnoisesdigitsinEv++;
		    } else {
		      nsignalsdigits++;
		      nsignalsdigitsinEv++;
		    }
		    ntotalsdigitsinEv++;  
		    ntotalsdigits++;
		    hitMap->SetHit(vol);
		  } // if (hitMap->TestHit(vol) != kEmpty)
		} // if(isFired[indexOfPad])
	      } // end loop on nActivatedPads
	    } // if(nFiredPads) i.e. if some pads has fired
	  } // close if(!isCloneOfThePrevious)
	} // close the selection on sector and plate
      } // end loop on hits for the current track
    } // end loop on ntracks
    
    delete hitMap;
    
    fTOFLoader->TreeS()->Reset();
    fTOFLoader->TreeS()->Fill();
    fTOFLoader->WriteSDigits("OVERWRITE");
    
    if (tof->SDigits()) tof->ResetSDigits();
    
    if (strstr(verboseOption,"all") || strstr(verboseOption,"partial")) {
      AliDebug(2,"----------------------------------------");
      AliDebug(2,Form("After sdigitizing %d hits in event %d", nselectedHitsinEv, iEvent));
      //" (" << nHitsFromPrim << " from primaries and " << nHitsFromSec << " from secondaries) TOF hits, " 
      AliDebug(1,Form("%d sdigits have been created", ntotalsdigitsinEv));
      AliDebug(2,Form("(%d due to signals and %d due to border effect)", nsignalsdigitsinEv, nnoisesdigitsinEv));
      AliDebug(2,Form("%d total updates of the hit map have been performed in current event", ntotalupdatesinEv));
      AliDebug(2,"----------------------------------------");
    }

  } //event loop on events

    fTOFLoader->UnloadSDigits();
    fTOFLoader->UnloadHits();
    fRunLoader->UnloadKinematics();
    //fRunLoader->UnloadgAlice();

  // free used memory
  if (ftail){
    delete ftail;
    ftail = 0;
  }
  
  nHitsFromSec=nselectedHits-nHitsFromPrim;
  if (strstr(verboseOption,"all") || strstr(verboseOption,"partial")) {
    AliDebug(2,"----------------------------------------");
    AliDebug(2,Form("After sdigitizing %d hits in %d events ", nselectedHits, fEvent2-fEvent1));
    //" (" << nHitsFromPrim << " from primaries and " << nHitsFromSec << " from secondaries) TOF hits, " 
    AliDebug(2,Form("%d sdigits have been created", ntotalsdigits));
    AliDebug(2,Form("(%d due to signals and %d due to border effect)", nsignalsdigits, nnoisesdigits));
    AliDebug(2,Form("%d total updates of the hit map have been performed", ntotalupdates));
    AliDebug(2,Form("in %d cases the time of flight difference is greater than 200 ps", nlargeTofDiff));
    AliDebug(2,"----------------------------------------");
  }


  if(strstr(verboseOption,"tim") || strstr(verboseOption,"all")){
    gBenchmark->Stop("TOFSDigitizer");
    AliInfo("AliTOFSDigitizer:");
    AliInfo(Form("   took %f seconds in order to make sdigits " 
	 "%f seconds per event", gBenchmark->GetCpuTime("TOFSDigitizer"), gBenchmark->GetCpuTime("TOFSDigitizer")/(fEvent2-fEvent1)));
    AliInfo(" +++++++++++++++++++++++++++++++++++++++++++++++++++ ");
  }

}

//__________________________________________________________________
void AliTOFSDigitizer::Print(Option_t* /*opt*/)const
{
  AliInfo(Form(" ------------------- %s ------------- ", GetName()));
}

//__________________________________________________________________
void AliTOFSDigitizer::SelectSectorAndPlate(Int_t sector, Int_t plate)
{
  //Select sector and plate
  Bool_t isaWrongSelection=(sector < 0) || (sector >= AliTOFGeometry::NSectors()) || (plate < 0) || (plate >= AliTOFGeometry::NPlates());
  if(isaWrongSelection){
    AliError("You have selected an invalid value for sector or plate ");
    AliError(Form("The correct range for sector is [0,%d]", AliTOFGeometry::NSectors()-1));
    AliError(Form("The correct range for plate  is [0,%d]",  AliTOFGeometry::NPlates()-1));
    AliError("By default we continue sdigitizing all hits in all plates of all sectors");
  } else {
    fSelectedSector=sector;
    fSelectedPlate =plate;
    AliInfo(Form("SDigitizing only hits in plate %d of the sector %d", fSelectedPlate, fSelectedSector));
  }
}

//__________________________________________________________________
void AliTOFSDigitizer::SimulateDetectorResponse(Float_t z0, Float_t x0, Float_t geantTime, Int_t& nActivatedPads, Int_t& nFiredPads, Bool_t* isFired, Int_t* nPlace, Float_t* qInduced, Float_t* tofTime, Float_t& averageTime)
{
  // Description:
  // Input:  z0, x0 - hit position in the strip system (0,0 - center of the strip), cm
  //         geantTime - time generated by Geant, ns
  // Output: nActivatedPads - the number of pads activated by the hit (1 || 2 || 4)
  //         nFiredPads - the number of pads fired (really activated) by the hit (nFiredPads <= nActivatedPads)
  //         qInduced[iPad]- charge induced on pad, arb. units
  //                         this array is initialized at zero by the caller
  //         tofAfterSimul[iPad] - time calculated with edge effect algorithm, ns
  //                                   this array is initialized at zero by the caller
  //         averageTime - time given by pad hited by the Geant track taking into account the times (weighted) given by the pads fired for edge effect also.
  //                       The weight is given by the qInduced[iPad]/qCenterPad
  //                                   this variable is initialized at zero by the caller
  //         nPlace[iPad] - the number of the pad place, iPad = 0, 1, 2, 3
  //                                   this variable is initialized at zero by the caller
  //
  // Description of used variables:
  //         eff[iPad] - efficiency of the pad
  //         res[iPad] - resolution of the pad, ns
  //         timeWalk[iPad] - time walk of the pad, ns
  //         timeDelay[iPad] - time delay for neighbouring pad to hited pad, ns
  //         PadId[iPad] - Pad Identifier
  //                    E | F    -->   PadId[iPad] = 5 | 6
  //                    A | B    -->   PadId[iPad] = 1 | 2
  //                    C | D    -->   PadId[iPad] = 3 | 4
  //         nTail[iPad] - the tail number, = 1 for tailA, = 2 for tailB
  //         qCenterPad - charge extimated for each pad, arb. units
  //         weightsSum - sum of weights extimated for each pad fired, arb. units
  
  const Float_t kSigmaForTail[2] = {AliTOFGeometry::SigmaForTail1(),AliTOFGeometry::SigmaForTail2()}; //for tail                                                   
  Int_t iz = 0, ix = 0;
  Float_t dX = 0., dZ = 0., x = 0., z = 0.;
  Float_t h = fHparameter, h2 = fH2parameter, k = fKparameter, k2 = fK2parameter;
  Float_t effX = 0., effZ = 0., resX = 0., resZ = 0., timeWalkX = 0., timeWalkZ = 0.;
  Float_t logOfqInd = 0.;
  Float_t weightsSum = 0.;
  Int_t nTail[4]  = {0,0,0,0};
  Int_t padId[4]  = {0,0,0,0};
  Float_t eff[4]  = {0.,0.,0.,0.};
  Float_t res[4]  = {0.,0.,0.,0.};
  //  Float_t qCenterPad = fMinimumCharge * fMinimumCharge;
  Float_t qCenterPad = 1.;
  Float_t timeWalk[4]  = {0.,0.,0.,0.};
  Float_t timeDelay[4] = {0.,0.,0.,0.};
  
  nActivatedPads = 0;
  nFiredPads = 0;
  
  (z0 <= 0) ? iz = 0 : iz = 1;
  dZ = z0 + (0.5 * AliTOFGeometry::NpadZ() - iz - 0.5) * AliTOFGeometry::ZPad(); // hit position in the pad frame, (0,0) - center of the pad
  z = 0.5 * AliTOFGeometry::ZPad() - TMath::Abs(dZ);                               // variable for eff., res. and timeWalk. functions
  iz++;                                                                              // z row: 1, ..., AliTOFGeometry::NpadZ = 2
  ix = (Int_t)((x0 + 0.5 * AliTOFGeometry::NpadX() * AliTOFGeometry::XPad()) / AliTOFGeometry::XPad());
  dX = x0 + (0.5 * AliTOFGeometry::NpadX() - ix - 0.5) * AliTOFGeometry::XPad(); // hit position in the pad frame, (0,0) - center of the pad
  x = 0.5 * AliTOFGeometry::XPad() - TMath::Abs(dX);                               // variable for eff., res. and timeWalk. functions;
  ix++;                                                                              // x row: 1, ..., AliTOFGeometry::NpadX = 48
  
  ////// Pad A:
  nActivatedPads++;
  nPlace[nActivatedPads-1] = (iz - 1) * AliTOFGeometry::NpadX() + ix;
  qInduced[nActivatedPads-1] = qCenterPad;
  padId[nActivatedPads-1] = 1;

  switch (fEdgeEffect) {
  case 0:
    eff[nActivatedPads-1] = fEffCenter;
    if (gRandom->Rndm() < eff[nActivatedPads-1]) {
      nFiredPads = 1;
      res[nActivatedPads-1] = 0.001 * TMath::Sqrt(fAddTRes*fAddTRes + fResCenter * fResCenter); // ns
      isFired[nActivatedPads-1] = kTRUE;
      tofTime[nActivatedPads-1] = gRandom->Gaus(geantTime + fTimeWalkCenter, res[0]);
      averageTime = tofTime[nActivatedPads-1];
    }
    break;

  case 1:
    if(z < h) {
      if(z < h2) {
	effZ = fEffBoundary + (fEff2Boundary - fEffBoundary) * z / h2;
      } else {
	effZ = fEff2Boundary + (fEffCenter - fEff2Boundary) * (z - h2) / (h - h2);
      }
      //resZ = fTimeResolution;
      //timeWalkZ = 0.;
      nTail[nActivatedPads-1] = 1;
    } else {
      effZ = fEffCenter;
      //resZ = fTimeResolution;
      //timeWalkZ = 0.;
    }
    
    if(x < h) {
      if(x < h2) {
	effX = fEffBoundary + (fEff2Boundary - fEffBoundary) * x / h2;
      } else {
	effX = fEff2Boundary + (fEffCenter - fEff2Boundary) * (x - h2) / (h - h2);
      }
      //resX = fTimeResolution;
      //timeWalkX = 0.;
      nTail[nActivatedPads-1] = 1;
    } else {
      effX = fEffCenter;
      //resX = fTimeResolution;
      //timeWalkX = 0.;
    }
    
    (effZ<effX) ? eff[nActivatedPads-1] = effZ : eff[nActivatedPads-1] = effX;
    res[nActivatedPads-1] = 0.001 * fTimeResolution; // ns
    timeWalk[nActivatedPads-1] = 0.; // ns


    ////// Pad B:
    if(z < k2) {
      effZ = fEffBoundary - (fEffBoundary - fEff3Boundary) * (z / k2);
    } else {
      effZ = fEff3Boundary * (k - z) / (k - k2);
    }
    //resZ = fTimeResolution;
    //timeWalkZ = 0.;
    
    if(z < k && z > 0) {
      if( (iz == 1 && dZ > 0) || (iz == 2 && dZ < 0) ) {
	nActivatedPads++;
	nPlace[nActivatedPads-1] = nPlace[0] + (3 - 2 * iz) * AliTOFGeometry::NpadX();
	eff[nActivatedPads-1] = effZ;
	res[nActivatedPads-1] = 0.001 * fTimeResolution; // ns 
	timeWalk[nActivatedPads-1] = 0.; // ns
	nTail[nActivatedPads-1] = 2;
	if (fTimeDelayFlag) {
	  qInduced[nActivatedPads-1] = TMath::Exp(-fPulseHeightSlope * z);
	  logOfqInd = gRandom->Gaus(-fPulseHeightSlope * z, fLogChargeSmearing);
	  timeDelay[nActivatedPads-1] = gRandom->Gaus(-fTimeDelaySlope * logOfqInd, fTimeSmearing);
	} else {
	  timeDelay[nActivatedPads-1] = 0.;
	}
	padId[nActivatedPads-1] = 2;
      }
    }

    
    ////// Pad C, D, E, F:
    if(x < k2) {
      effX = fEffBoundary - (fEffBoundary - fEff3Boundary) * (x / k2);
    } else {
      effX = fEff3Boundary * (k - x) / (k - k2);
    }
    //resX = fTimeResolution;
    //timeWalkX = 0.;
    
    if(x < k && x > 0) {
      //   C:
      if(ix > 1 && dX < 0) {
	nActivatedPads++;
	nPlace[nActivatedPads-1] = nPlace[0] - 1;
	eff[nActivatedPads-1] = effX;
	res[nActivatedPads-1] = 0.001 * fTimeResolution; // ns 
	timeWalk[nActivatedPads-1] = 0.; // ns
	nTail[nActivatedPads-1] = 2;
	if (fTimeDelayFlag) {
	  qInduced[nActivatedPads-1] = TMath::Exp(-fPulseHeightSlope * x);
	  logOfqInd = gRandom->Gaus(-fPulseHeightSlope * x, fLogChargeSmearing);
	  timeDelay[nActivatedPads-1] = gRandom->Gaus(-fTimeDelaySlope * logOfqInd, fTimeSmearing);
	} else {
	  timeDelay[nActivatedPads-1] = 0.;
	}
	padId[nActivatedPads-1] = 3;

	//     D:
	if(z < k && z > 0) {
	  if( (iz == 1 && dZ > 0) || (iz == 2 && dZ < 0) ) {
	    nActivatedPads++;
	    nPlace[nActivatedPads-1] = nPlace[0] + (3 - 2 * iz) * AliTOFGeometry::NpadX() - 1;
	    eff[nActivatedPads-1] = effX * effZ;
	    res[nActivatedPads-1] = 0.001 * fTimeResolution; // ns
	    timeWalk[nActivatedPads-1] = 0.; // ns
	    
	    nTail[nActivatedPads-1] = 2;
	    if (fTimeDelayFlag) {
	      if (TMath::Abs(x) < TMath::Abs(z)) {
		qInduced[nActivatedPads-1] = TMath::Exp(-fPulseHeightSlope * z);
		logOfqInd = gRandom->Gaus(-fPulseHeightSlope * z, fLogChargeSmearing);
	      } else {
		qInduced[nActivatedPads-1] = TMath::Exp(-fPulseHeightSlope * x);
		logOfqInd = gRandom->Gaus(-fPulseHeightSlope * x, fLogChargeSmearing);
	      }
	      timeDelay[nActivatedPads-1] = gRandom->Gaus(-fTimeDelaySlope * logOfqInd, fTimeSmearing);
	    } else {
	      timeDelay[nActivatedPads-1] = 0.;
	    }
	    padId[nActivatedPads-1] = 4;
	  }
	}  // end D
      }  // end C
      
      //   E:
      if(ix < AliTOFGeometry::NpadX() && dX > 0) {
	nActivatedPads++;
	nPlace[nActivatedPads-1] = nPlace[0] + 1;
	eff[nActivatedPads-1] = effX;
	res[nActivatedPads-1] = 0.001 * fTimeResolution; // ns
	timeWalk[nActivatedPads-1] = 0.; // ns
	nTail[nActivatedPads-1] = 2;
	if (fTimeDelayFlag) {
	  qInduced[nActivatedPads-1] = TMath::Exp(-fPulseHeightSlope * x);
	  logOfqInd = gRandom->Gaus(-fPulseHeightSlope * x, fLogChargeSmearing);
	  timeDelay[nActivatedPads-1] = gRandom->Gaus(-fTimeDelaySlope * logOfqInd, fTimeSmearing);
	} else {
	  timeDelay[nActivatedPads-1] = 0.;
	}
	padId[nActivatedPads-1] = 5;


	//     F:
	if(z < k && z > 0) {
	  if( (iz == 1 && dZ > 0) || (iz == 2 && dZ < 0) ) {
	    nActivatedPads++;
	    nPlace[nActivatedPads - 1] = nPlace[0] + (3 - 2 * iz) * AliTOFGeometry::NpadX() + 1;
	    eff[nActivatedPads - 1] = effX * effZ;
	    res[nActivatedPads-1] = 0.001 * fTimeResolution; // ns
	    timeWalk[nActivatedPads-1] = 0.; // ns
	    nTail[nActivatedPads-1] = 2;
	    if (fTimeDelayFlag) {
	      if (TMath::Abs(x) < TMath::Abs(z)) {
		qInduced[nActivatedPads-1] = TMath::Exp(-fPulseHeightSlope * z);
		logOfqInd = gRandom->Gaus(-fPulseHeightSlope * z, fLogChargeSmearing);
	      } else {
		qInduced[nActivatedPads-1] = TMath::Exp(-fPulseHeightSlope * x);
		logOfqInd = gRandom->Gaus(-fPulseHeightSlope * x, fLogChargeSmearing);
	      }
	      timeDelay[nActivatedPads-1] = gRandom->Gaus(-fTimeDelaySlope * logOfqInd, fTimeSmearing);
	    } else {
	      timeDelay[nActivatedPads-1] = 0.;
	    }
	    padId[nActivatedPads-1] = 6;
	  }
	}  // end F
      }  // end E
    } // end if(x < k)


    for (Int_t iPad = 0; iPad < nActivatedPads; iPad++) {
      if(gRandom->Rndm() < eff[iPad]) {
	isFired[iPad] = kTRUE;
	nFiredPads++;
	if(fEdgeTails) {
	  if(nTail[iPad] == 0) {
	    tofTime[iPad] = gRandom->Gaus(geantTime + timeWalk[iPad] + timeDelay[iPad], res[iPad]);
	  } else {
	    ftail->SetParameters(res[iPad], 2. * res[iPad], kSigmaForTail[nTail[iPad]-1]);
	    Double_t timeAB = ftail->GetRandom();
	    tofTime[iPad] = geantTime + timeWalk[iPad] + timeDelay[iPad] + timeAB;
	  }
	} else {
	  //AliDebug(1,Form(" ----------------- TOF time resolution = %f",res[iPad]));
	  tofTime[iPad] = gRandom->Gaus(geantTime + timeWalk[iPad] + timeDelay[iPad], res[iPad]);
	}
	if (fAverageTimeFlag) {
	  averageTime += tofTime[iPad] * qInduced[iPad];
	  weightsSum += qInduced[iPad];
	} else {
	  averageTime += tofTime[iPad];
	  weightsSum += 1.;
	}

	AliDebug(1,Form(" Activated pad %d: geantTime=%f, tw=%fns, td=%fns, tofTime=%fns, sigma=%fps",iPad,geantTime,timeWalk[iPad],timeDelay[iPad],tofTime[iPad],1000.*res[iPad]));

      }

    }
    if (weightsSum!=0) averageTime /= weightsSum;
    break;


  case 2:
    if(z < h) {
      if(z < h2) {
	effZ = fEffBoundary + (fEff2Boundary - fEffBoundary) * z / h2;
      } else {
	effZ = fEff2Boundary + (fEffCenter - fEff2Boundary) * (z - h2) / (h - h2);
      }
      resZ = fResBoundary + (fResCenter - fResBoundary) * z / h;
      timeWalkZ = fTimeWalkBoundary + (fTimeWalkCenter - fTimeWalkBoundary) * z / h;
      nTail[nActivatedPads-1] = 1;
    } else {
      effZ = fEffCenter;
      resZ = fResCenter;
      timeWalkZ = fTimeWalkCenter;
    }
    
    if(x < h) {
      if(x < h2) {
	effX = fEffBoundary + (fEff2Boundary - fEffBoundary) * x / h2;
      } else {
	effX = fEff2Boundary + (fEffCenter - fEff2Boundary) * (x - h2) / (h - h2);
      }
      resX = fResBoundary + (fResCenter - fResBoundary) * x / h;
      timeWalkX = fTimeWalkBoundary + (fTimeWalkCenter - fTimeWalkBoundary) * x / h;
      nTail[nActivatedPads-1] = 1;
    } else {
      effX = fEffCenter;
      resX = fResCenter;
      timeWalkX = fTimeWalkCenter;
    }
    
    (effZ<effX) ? eff[nActivatedPads-1] = effZ : eff[nActivatedPads-1] = effX;
    (resZ<resX) ? res[nActivatedPads-1] = 0.001 * TMath::Sqrt(fAddTRes*fAddTRes + resX * resX) : res[nActivatedPads-1] = 0.001 * TMath::Sqrt(fAddTRes*fAddTRes + resZ * resZ); // ns
    (timeWalkZ<timeWalkX) ? timeWalk[nActivatedPads-1] = 0.001 *  timeWalkZ : timeWalk[nActivatedPads-1] = 0.001 * timeWalkX; // ns


    ////// Pad B:
    if(z < k2) {
      effZ = fEffBoundary - (fEffBoundary - fEff3Boundary) * (z / k2);
    } else {
      effZ = fEff3Boundary * (k - z) / (k - k2);
    }
    resZ = fResBoundary + fResSlope * z / k;
    timeWalkZ = fTimeWalkBoundary + fTimeWalkSlope * z / k;
    
    if(z < k && z > 0) {
      if( (iz == 1 && dZ > 0) || (iz == 2 && dZ < 0) ) {
	nActivatedPads++;
	nPlace[nActivatedPads-1] = nPlace[0] + (3 - 2 * iz) * AliTOFGeometry::NpadX();
	eff[nActivatedPads-1] = effZ;
	res[nActivatedPads-1] = 0.001 * TMath::Sqrt(fAddTRes*fAddTRes + resZ * resZ); // ns 
	timeWalk[nActivatedPads-1] = 0.001 * timeWalkZ; // ns
	nTail[nActivatedPads-1] = 2;
	if (fTimeDelayFlag) {
	  qInduced[nActivatedPads-1] = TMath::Exp(-fPulseHeightSlope * z);
	  logOfqInd = gRandom->Gaus(-fPulseHeightSlope * z, fLogChargeSmearing);
	  timeDelay[nActivatedPads-1] = gRandom->Gaus(-fTimeDelaySlope * logOfqInd, fTimeSmearing);
	} else {
	  timeDelay[nActivatedPads-1] = 0.;
	}
	padId[nActivatedPads-1] = 2;
      }
    }

    
    ////// Pad C, D, E, F:
    if(x < k2) {
      effX = fEffBoundary - (fEffBoundary - fEff3Boundary) * (x / k2);
    } else {
      effX = fEff3Boundary * (k - x) / (k - k2);
    }
    resX = fResBoundary + fResSlope*x/k;
    timeWalkX = fTimeWalkBoundary + fTimeWalkSlope*x/k;
    
    if(x < k && x > 0) {
      //   C:
      if(ix > 1 && dX < 0) {
	nActivatedPads++;
	nPlace[nActivatedPads-1] = nPlace[0] - 1;
	eff[nActivatedPads-1] = effX;
	res[nActivatedPads-1] = 0.001 * TMath::Sqrt(fAddTRes*fAddTRes + resX * resX); // ns 
	timeWalk[nActivatedPads-1] = 0.001 * timeWalkX; // ns
	nTail[nActivatedPads-1] = 2;
	if (fTimeDelayFlag) {
	  qInduced[nActivatedPads-1] = TMath::Exp(-fPulseHeightSlope * x);
	  logOfqInd = gRandom->Gaus(-fPulseHeightSlope * x, fLogChargeSmearing);
	  timeDelay[nActivatedPads-1] = gRandom->Gaus(-fTimeDelaySlope * logOfqInd, fTimeSmearing);
	} else {
	  timeDelay[nActivatedPads-1] = 0.;
	}
	padId[nActivatedPads-1] = 3;

	//     D:
	if(z < k && z > 0) {
	  if( (iz == 1 && dZ > 0) || (iz == 2 && dZ < 0) ) {
	    nActivatedPads++;
	    nPlace[nActivatedPads-1] = nPlace[0] + (3 - 2 * iz) * AliTOFGeometry::NpadX() - 1;
	    eff[nActivatedPads-1] = effX * effZ;
	    (resZ<resX) ? res[nActivatedPads-1] = 0.001 * TMath::Sqrt(fAddTRes*fAddTRes + resX * resX) : res[nActivatedPads-1] = 0.001 * TMath::Sqrt(fAddTRes*fAddTRes + resZ * resZ); // ns
	    (timeWalkZ<timeWalkX) ? timeWalk[nActivatedPads-1] = 0.001 * timeWalkZ : timeWalk[nActivatedPads-1] = 0.001 * timeWalkX; // ns
	    
	    nTail[nActivatedPads-1] = 2;
	    if (fTimeDelayFlag) {
	      if (TMath::Abs(x) < TMath::Abs(z)) {
		qInduced[nActivatedPads-1] = TMath::Exp(-fPulseHeightSlope * z);
		logOfqInd = gRandom->Gaus(-fPulseHeightSlope * z, fLogChargeSmearing);
	      } else {
		qInduced[nActivatedPads-1] = TMath::Exp(-fPulseHeightSlope * x);
		logOfqInd = gRandom->Gaus(-fPulseHeightSlope * x, fLogChargeSmearing);
	      }
	      timeDelay[nActivatedPads-1] = gRandom->Gaus(-fTimeDelaySlope * logOfqInd, fTimeSmearing);
	    } else {
	      timeDelay[nActivatedPads-1] = 0.;
	    }
	    padId[nActivatedPads-1] = 4;
	  }
	}  // end D
      }  // end C
      
      //   E:
      if(ix < AliTOFGeometry::NpadX() && dX > 0) {
	nActivatedPads++;
	nPlace[nActivatedPads-1] = nPlace[0] + 1;
	eff[nActivatedPads-1] = effX;
	res[nActivatedPads-1] = 0.001 * (TMath::Sqrt(fAddTRes*fAddTRes + resX * resX)); // ns
	timeWalk[nActivatedPads-1] = 0.001 * timeWalkX; // ns
	nTail[nActivatedPads-1] = 2;
	if (fTimeDelayFlag) {
	  qInduced[nActivatedPads-1] = TMath::Exp(-fPulseHeightSlope * x);
	  logOfqInd = gRandom->Gaus(-fPulseHeightSlope * x, fLogChargeSmearing);
	  timeDelay[nActivatedPads-1] = gRandom->Gaus(-fTimeDelaySlope * logOfqInd, fTimeSmearing);
	} else {
	  timeDelay[nActivatedPads-1] = 0.;
	}
	padId[nActivatedPads-1] = 5;


	//     F:
	if(z < k && z > 0) {
	  if( (iz == 1 && dZ > 0) || (iz == 2 && dZ < 0) ) {
	    nActivatedPads++;
	    nPlace[nActivatedPads - 1] = nPlace[0] + (3 - 2 * iz) * AliTOFGeometry::NpadX() + 1;
	    eff[nActivatedPads - 1] = effX * effZ;
	    (resZ<resX) ? res[nActivatedPads-1] = 0.001 * TMath::Sqrt(fAddTRes*fAddTRes + resX * resX) : res[nActivatedPads-1] = 0.001 * TMath::Sqrt(fAddTRes*fAddTRes + resZ * resZ); // ns
	    (timeWalkZ<timeWalkX) ? timeWalk[nActivatedPads-1] = 0.001 * timeWalkZ : timeWalk[nActivatedPads-1] = 0.001*timeWalkX; // ns
	    nTail[nActivatedPads-1] = 2;
	    if (fTimeDelayFlag) {
	      if (TMath::Abs(x) < TMath::Abs(z)) {
		qInduced[nActivatedPads-1] = TMath::Exp(-fPulseHeightSlope * z);
		logOfqInd = gRandom->Gaus(-fPulseHeightSlope * z, fLogChargeSmearing);
	      } else {
		qInduced[nActivatedPads-1] = TMath::Exp(-fPulseHeightSlope * x);
		logOfqInd = gRandom->Gaus(-fPulseHeightSlope * x, fLogChargeSmearing);
	      }
	      timeDelay[nActivatedPads-1] = gRandom->Gaus(-fTimeDelaySlope * logOfqInd, fTimeSmearing);
	    } else {
	      timeDelay[nActivatedPads-1] = 0.;
	    }
	    padId[nActivatedPads-1] = 6;
	  }
	}  // end F
      }  // end E
    } // end if(x < k)


    for (Int_t iPad = 0; iPad < nActivatedPads; iPad++) {
      if (res[iPad] < fTimeResolution) res[iPad] = fTimeResolution;
      if(gRandom->Rndm() < eff[iPad]) {
	isFired[iPad] = kTRUE;
	nFiredPads++;
	if(fEdgeTails) {
	  if(nTail[iPad] == 0) {
	    tofTime[iPad] = gRandom->Gaus(geantTime + timeWalk[iPad] + timeDelay[iPad], res[iPad]);
	  } else {
	    ftail->SetParameters(res[iPad], 2. * res[iPad], kSigmaForTail[nTail[iPad]-1]);
	    Double_t timeAB = ftail->GetRandom();
	    tofTime[iPad] = geantTime + timeWalk[iPad] + timeDelay[iPad] + timeAB;
	  }
	} else {
	  AliDebug(1,Form(" ----------------- TOF time resolution = %f",res[iPad]));
	  tofTime[iPad] = gRandom->Gaus(geantTime + timeWalk[iPad] + timeDelay[iPad], res[iPad]);
	}
	if (fAverageTimeFlag) {
	  averageTime += tofTime[iPad] * qInduced[iPad];
	  weightsSum += qInduced[iPad];
	} else {
	  averageTime += tofTime[iPad];
	  weightsSum += 1.;
	}
      }
    }
    if (weightsSum!=0) averageTime /= weightsSum;

  } // switch (fEdgeEffect)

}

//__________________________________________________________________
void AliTOFSDigitizer::SimulateDetectorResponseOLD(Float_t z0, Float_t x0, Float_t geantTime, Int_t& nActivatedPads, Int_t& nFiredPads, Bool_t* isFired, Int_t* nPlace, Float_t* qInduced, Float_t* tofTime, Float_t& averageTime)
{
  // Description:
  // Input:  z0, x0 - hit position in the strip system (0,0 - center of the strip), cm
  //         geantTime - time generated by Geant, ns
  // Output: nActivatedPads - the number of pads activated by the hit (1 || 2 || 4)
  //         nFiredPads - the number of pads fired (really activated) by the hit (nFiredPads <= nActivatedPads)
  //         qInduced[iPad]- charge induced on pad, arb. units
  //                         this array is initialized at zero by the caller
  //         tofAfterSimul[iPad] - time calculated with edge effect algorithm, ns
  //                                   this array is initialized at zero by the caller
  //         averageTime - time given by pad hited by the Geant track taking into account the times (weighted) given by the pads fired for edge effect also.
  //                       The weight is given by the qInduced[iPad]/qCenterPad
  //                                   this variable is initialized at zero by the caller
  //         nPlace[iPad] - the number of the pad place, iPad = 0, 1, 2, 3
  //                                   this variable is initialized at zero by the caller
  //
  // Description of used variables:
  //         eff[iPad] - efficiency of the pad
  //         res[iPad] - resolution of the pad, ns
  //         timeWalk[iPad] - time walk of the pad, ns
  //         timeDelay[iPad] - time delay for neighbouring pad to hited pad, ns
  //         PadId[iPad] - Pad Identifier
  //                    E | F    -->   PadId[iPad] = 5 | 6
  //                    A | B    -->   PadId[iPad] = 1 | 2
  //                    C | D    -->   PadId[iPad] = 3 | 4
  //         nTail[iPad] - the tail number, = 1 for tailA, = 2 for tailB
  //         qCenterPad - charge extimated for each pad, arb. units
  //         weightsSum - sum of weights extimated for each pad fired, arb. units
  
  const Float_t kSigmaForTail[2] = {AliTOFGeometry::SigmaForTail1(),AliTOFGeometry::SigmaForTail2()}; //for tail                                                   
  Int_t iz = 0, ix = 0;
  Float_t dX = 0., dZ = 0., x = 0., z = 0.;
  Float_t h = fHparameter, h2 = fH2parameter, k = fKparameter, k2 = fK2parameter;
  Float_t effX = 0., effZ = 0., resX = 0., resZ = 0., timeWalkX = 0., timeWalkZ = 0.;
  Float_t logOfqInd = 0.;
  Float_t weightsSum = 0.;
  Int_t nTail[4]  = {0,0,0,0};
  Int_t padId[4]  = {0,0,0,0};
  Float_t eff[4]  = {0.,0.,0.,0.};
  Float_t res[4]  = {0.,0.,0.,0.};
  //  Float_t qCenterPad = fMinimumCharge * fMinimumCharge;
  Float_t qCenterPad = 1.;
  Float_t timeWalk[4]  = {0.,0.,0.,0.};
  Float_t timeDelay[4] = {0.,0.,0.,0.};
  
  nActivatedPads = 0;
  nFiredPads = 0;
  
  (z0 <= 0) ? iz = 0 : iz = 1;
  dZ = z0 + (0.5 * AliTOFGeometry::NpadZ() - iz - 0.5) * AliTOFGeometry::ZPad(); // hit position in the pad frame, (0,0) - center of the pad
  z = 0.5 * AliTOFGeometry::ZPad() - TMath::Abs(dZ);                               // variable for eff., res. and timeWalk. functions
  iz++;                                                                              // z row: 1, ..., AliTOFGeometry::NpadZ = 2
  ix = (Int_t)((x0 + 0.5 * AliTOFGeometry::NpadX() * AliTOFGeometry::XPad()) / AliTOFGeometry::XPad());
  dX = x0 + (0.5 * AliTOFGeometry::NpadX() - ix - 0.5) * AliTOFGeometry::XPad(); // hit position in the pad frame, (0,0) - center of the pad
  x = 0.5 * AliTOFGeometry::XPad() - TMath::Abs(dX);                               // variable for eff., res. and timeWalk. functions;
  ix++;                                                                              // x row: 1, ..., AliTOFGeometry::NpadX = 48
  
  ////// Pad A:
  nActivatedPads++;
  nPlace[nActivatedPads-1] = (iz - 1) * AliTOFGeometry::NpadX() + ix;
  qInduced[nActivatedPads-1] = qCenterPad;
  padId[nActivatedPads-1] = 1;
  
  if (fEdgeEffect == 0) {
    eff[nActivatedPads-1] = fEffCenter;
    if (gRandom->Rndm() < eff[nActivatedPads-1]) {
      nFiredPads = 1;
      res[nActivatedPads-1] = 0.001 * TMath::Sqrt(fAddTRes*fAddTRes + fResCenter * fResCenter); // ns
      isFired[nActivatedPads-1] = kTRUE;
      tofTime[nActivatedPads-1] = gRandom->Gaus(geantTime + fTimeWalkCenter, res[0]);
      averageTime = tofTime[nActivatedPads-1];
    }
  } else { // if (fEdgeEffet!=0)

    if(z < h) {
      if(z < h2) {
	effZ = fEffBoundary + (fEff2Boundary - fEffBoundary) * z / h2;
      } else {
	effZ = fEff2Boundary + (fEffCenter - fEff2Boundary) * (z - h2) / (h - h2);
      }
      if (fEdgeEffect==1)
	resZ = fTimeResolution;
      else if (fEdgeEffect==2)
	resZ = fResBoundary + (fResCenter - fResBoundary) * z / h;
      timeWalkZ = fTimeWalkBoundary + (fTimeWalkCenter - fTimeWalkBoundary) * z / h;
      nTail[nActivatedPads-1] = 1;
    } else {
      effZ = fEffCenter;
      if (fEdgeEffect==1)
	resZ = fTimeResolution;
      else if (fEdgeEffect==2)
	resZ = fResCenter;
      timeWalkZ = fTimeWalkCenter;
    }
    
    if(x < h) {
      if(x < h2) {
	effX = fEffBoundary + (fEff2Boundary - fEffBoundary) * x / h2;
      } else {
	effX = fEff2Boundary + (fEffCenter - fEff2Boundary) * (x - h2) / (h - h2);
      }
      if (fEdgeEffect==1)
	resX = fTimeResolution;
      else if (fEdgeEffect==2)
	resX = fResBoundary + (fResCenter - fResBoundary) * x / h;
      timeWalkX = fTimeWalkBoundary + (fTimeWalkCenter - fTimeWalkBoundary) * x / h;
      nTail[nActivatedPads-1] = 1;
    } else {
      effX = fEffCenter;
      if (fEdgeEffect==1)
	resX = fTimeResolution;
      else if (fEdgeEffect==2)
	resX = fResCenter;
      timeWalkX = fTimeWalkCenter;
    }
    
    (effZ<effX) ? eff[nActivatedPads-1] = effZ : eff[nActivatedPads-1] = effX;
    if (fEdgeEffect==1)
      (resZ<resX) ? res[nActivatedPads-1] = 0.001 * resX : res[nActivatedPads-1] = 0.001 * resZ; // ns
    else
      (resZ<resX) ? res[nActivatedPads-1] = 0.001 * TMath::Sqrt(fAddTRes*fAddTRes + resX * resX) : res[nActivatedPads-1] = 0.001 * TMath::Sqrt(fAddTRes*fAddTRes + resZ * resZ); // ns
    (timeWalkZ<timeWalkX) ? timeWalk[nActivatedPads-1] = 0.001 *  timeWalkZ : timeWalk[nActivatedPads-1] = 0.001 * timeWalkX; // ns


    ////// Pad B:
    if(z < k2) {
      effZ = fEffBoundary - (fEffBoundary - fEff3Boundary) * (z / k2);
    } else {
      effZ = fEff3Boundary * (k - z) / (k - k2);
    }
    if (fEdgeEffect==1)
      resZ = fTimeResolution;
    else if (fEdgeEffect==2)
      resZ = fResBoundary + fResSlope * z / k;
    timeWalkZ = fTimeWalkBoundary + fTimeWalkSlope * z / k;
    
    if(z < k && z > 0) {
      if( (iz == 1 && dZ > 0) || (iz == 2 && dZ < 0) ) {
	nActivatedPads++;
	nPlace[nActivatedPads-1] = nPlace[0] + (3 - 2 * iz) * AliTOFGeometry::NpadX();
	eff[nActivatedPads-1] = effZ;
	if (fEdgeEffect==1)
	  res[nActivatedPads-1] = 0.001 * resZ; // ns 
	else
	  res[nActivatedPads-1] = 0.001 * TMath::Sqrt(fAddTRes*fAddTRes + resZ * resZ); // ns 
	timeWalk[nActivatedPads-1] = 0.001 * timeWalkZ; // ns
	nTail[nActivatedPads-1] = 2;
	if (fTimeDelayFlag) {
	  //	  qInduced[0] = fMinimumCharge * TMath::Exp(fPulseHeightSlope * z / 2.);
	  //	  qInduced[nActivatedPads-1] = fMinimumCharge * TMath::Exp(-fPulseHeightSlope * z / 2.);
	  qInduced[nActivatedPads-1] = TMath::Exp(-fPulseHeightSlope * z);
	  logOfqInd = gRandom->Gaus(-fPulseHeightSlope * z, fLogChargeSmearing);
	  timeDelay[nActivatedPads-1] = gRandom->Gaus(-fTimeDelaySlope * logOfqInd, fTimeSmearing);
	} else {
	  timeDelay[nActivatedPads-1] = 0.;
	}
	padId[nActivatedPads-1] = 2;
      }
    }

    
    ////// Pad C, D, E, F:
    if(x < k2) {
      effX = fEffBoundary - (fEffBoundary - fEff3Boundary) * (x / k2);
    } else {
      effX = fEff3Boundary * (k - x) / (k - k2);
    }
    if (fEdgeEffect==1)
      resX = fTimeResolution;
    else if (fEdgeEffect==2)
      resX = fResBoundary + fResSlope*x/k;
    timeWalkX = fTimeWalkBoundary + fTimeWalkSlope*x/k;
    
    if(x < k && x > 0) {
      //   C:
      if(ix > 1 && dX < 0) {
	nActivatedPads++;
	nPlace[nActivatedPads-1] = nPlace[0] - 1;
	eff[nActivatedPads-1] = effX;
	if (fEdgeEffect==1)
	  res[nActivatedPads-1] = 0.001 * resX; // ns 
	else if (fEdgeEffect==2)
	  res[nActivatedPads-1] = 0.001 * TMath::Sqrt(fAddTRes*fAddTRes + resX * resX); // ns 
	timeWalk[nActivatedPads-1] = 0.001 * timeWalkX; // ns
	nTail[nActivatedPads-1] = 2;
	if (fTimeDelayFlag) {
	  //	  qInduced[0] = fMinimumCharge * TMath::Exp(fPulseHeightSlope * x / 2.);
	  //	  qInduced[nActivatedPads-1] = fMinimumCharge * TMath::Exp(-fPulseHeightSlope * x / 2.);
	  qInduced[nActivatedPads-1] = TMath::Exp(-fPulseHeightSlope * x);
	  logOfqInd = gRandom->Gaus(-fPulseHeightSlope * x, fLogChargeSmearing);
	  timeDelay[nActivatedPads-1] = gRandom->Gaus(-fTimeDelaySlope * logOfqInd, fTimeSmearing);
	} else {
	  timeDelay[nActivatedPads-1] = 0.;
	}
	padId[nActivatedPads-1] = 3;

	//     D:
	if(z < k && z > 0) {
	  if( (iz == 1 && dZ > 0) || (iz == 2 && dZ < 0) ) {
	    nActivatedPads++;
	    nPlace[nActivatedPads-1] = nPlace[0] + (3 - 2 * iz) * AliTOFGeometry::NpadX() - 1;
	    eff[nActivatedPads-1] = effX * effZ;
	    if (fEdgeEffect==1)
	      (resZ<resX) ? res[nActivatedPads-1] = 0.001 * resX : res[nActivatedPads-1] = 0.001 * resZ; // ns
	    else if (fEdgeEffect==2)
	      (resZ<resX) ? res[nActivatedPads-1] = 0.001 * TMath::Sqrt(fAddTRes*fAddTRes + resX * resX) : res[nActivatedPads-1] = 0.001 * TMath::Sqrt(fAddTRes*fAddTRes + resZ * resZ); // ns
	    (timeWalkZ<timeWalkX) ? timeWalk[nActivatedPads-1] = 0.001 * timeWalkZ : timeWalk[nActivatedPads-1] = 0.001 * timeWalkX; // ns
	    
	    nTail[nActivatedPads-1] = 2;
	    if (fTimeDelayFlag) {
	      if (TMath::Abs(x) < TMath::Abs(z)) {
		//		qInduced[0] = fMinimumCharge * TMath::Exp(fPulseHeightSlope * z / 2.);
		//		qInduced[nActivatedPads-1] = fMinimumCharge * TMath::Exp(-fPulseHeightSlope * z / 2.);
		qInduced[nActivatedPads-1] = TMath::Exp(-fPulseHeightSlope * z);
		logOfqInd = gRandom->Gaus(-fPulseHeightSlope * z, fLogChargeSmearing);
	      } else {
		//		qInduced[0] = fMinimumCharge * TMath::Exp(fPulseHeightSlope * x / 2.);
		//		qInduced[nActivatedPads-1] = fMinimumCharge * TMath::Exp(-fPulseHeightSlope * x / 2.);
		qInduced[nActivatedPads-1] = TMath::Exp(-fPulseHeightSlope * x);
		logOfqInd = gRandom->Gaus(-fPulseHeightSlope * x, fLogChargeSmearing);
	      }
	      timeDelay[nActivatedPads-1] = gRandom->Gaus(-fTimeDelaySlope * logOfqInd, fTimeSmearing);
	    } else {
	      timeDelay[nActivatedPads-1] = 0.;
	    }
	    padId[nActivatedPads-1] = 4;
	  }
	}  // end D
      }  // end C
      
      //   E:
      if(ix < AliTOFGeometry::NpadX() && dX > 0) {
	nActivatedPads++;
	nPlace[nActivatedPads-1] = nPlace[0] + 1;
	eff[nActivatedPads-1] = effX;
	if (fEdgeEffect==1)
	  res[nActivatedPads-1] = 0.001 * resX; // ns
	else if (fEdgeEffect==2)
	  res[nActivatedPads-1] = 0.001 * (TMath::Sqrt(fAddTRes*fAddTRes + resX * resX)); // ns
	timeWalk[nActivatedPads-1] = 0.001 * timeWalkX; // ns
	nTail[nActivatedPads-1] = 2;
	if (fTimeDelayFlag) {
	  //	  qInduced[0] = fMinimumCharge * TMath::Exp(fPulseHeightSlope * x / 2.);
	  //	  qInduced[nActivatedPads-1] = fMinimumCharge * TMath::Exp(-fPulseHeightSlope * x / 2.);
	  qInduced[nActivatedPads-1] = TMath::Exp(-fPulseHeightSlope * x);
	  logOfqInd = gRandom->Gaus(-fPulseHeightSlope * x, fLogChargeSmearing);
	  timeDelay[nActivatedPads-1] = gRandom->Gaus(-fTimeDelaySlope * logOfqInd, fTimeSmearing);
	} else {
	  timeDelay[nActivatedPads-1] = 0.;
	}
	padId[nActivatedPads-1] = 5;


	//     F:
	if(z < k && z > 0) {
	  if( (iz == 1 && dZ > 0) || (iz == 2 && dZ < 0) ) {
	    nActivatedPads++;
	    nPlace[nActivatedPads - 1] = nPlace[0] + (3 - 2 * iz) * AliTOFGeometry::NpadX() + 1;
	    eff[nActivatedPads - 1] = effX * effZ;
	    if (fEdgeEffect==1)
	      (resZ<resX) ? res[nActivatedPads-1] = 0.001 * resX : res[nActivatedPads-1] = 0.001 * resZ; // ns
	    else if (fEdgeEffect==2)
	      (resZ<resX) ? res[nActivatedPads-1] = 0.001 * TMath::Sqrt(fAddTRes*fAddTRes + resX * resX) : res[nActivatedPads-1] = 0.001 * TMath::Sqrt(fAddTRes*fAddTRes + resZ * resZ); // ns
	    (timeWalkZ<timeWalkX) ? timeWalk[nActivatedPads-1] = 0.001 * timeWalkZ : timeWalk[nActivatedPads-1] = 0.001*timeWalkX; // ns
	    nTail[nActivatedPads-1] = 2;
	    if (fTimeDelayFlag) {
	      if (TMath::Abs(x) < TMath::Abs(z)) {
		//		qInduced[0] = fMinimumCharge * TMath::Exp(fPulseHeightSlope * z / 2.);
		//		qInduced[nActivatedPads-1] = fMinimumCharge * TMath::Exp(-fPulseHeightSlope * z / 2.);
		qInduced[nActivatedPads-1] = TMath::Exp(-fPulseHeightSlope * z);
		logOfqInd = gRandom->Gaus(-fPulseHeightSlope * z, fLogChargeSmearing);
	      } else {
		//		qInduced[0] = fMinimumCharge * TMath::Exp(fPulseHeightSlope * x / 2.);
		//		qInduced[nActivatedPads-1] = fMinimumCharge * TMath::Exp(-fPulseHeightSlope * x / 2.);
		qInduced[nActivatedPads-1] = TMath::Exp(-fPulseHeightSlope * x);
		logOfqInd = gRandom->Gaus(-fPulseHeightSlope * x, fLogChargeSmearing);
	      }
	      timeDelay[nActivatedPads-1] = gRandom->Gaus(-fTimeDelaySlope * logOfqInd, fTimeSmearing);
	    } else {
	      timeDelay[nActivatedPads-1] = 0.;
	    }
	    padId[nActivatedPads-1] = 6;
	  }
	}  // end F
      }  // end E
    } // end if(x < k)


    for (Int_t iPad = 0; iPad < nActivatedPads; iPad++) {
      if (fEdgeEffect==2 && res[iPad] < fTimeResolution) res[iPad] = fTimeResolution;
      if(gRandom->Rndm() < eff[iPad]) {
	isFired[iPad] = kTRUE;
	nFiredPads++;
	if(fEdgeTails) {
	  if(nTail[iPad] == 0) {
	    tofTime[iPad] = gRandom->Gaus(geantTime + timeWalk[iPad] + timeDelay[iPad], res[iPad]);
	  } else {
	    ftail->SetParameters(res[iPad], 2. * res[iPad], kSigmaForTail[nTail[iPad]-1]);
	    Double_t timeAB = ftail->GetRandom();
	    tofTime[iPad] = geantTime + timeWalk[iPad] + timeDelay[iPad] + timeAB;
	  }
	} else {
	  AliDebug(1,Form(" ----------------- TOF time resolution = %f",res[iPad]));
	  tofTime[iPad] = gRandom->Gaus(geantTime + timeWalk[iPad] + timeDelay[iPad], res[iPad]);
	}
	if (fAverageTimeFlag) {
	  averageTime += tofTime[iPad] * qInduced[iPad];
	  weightsSum += qInduced[iPad];
	} else {
	  averageTime += tofTime[iPad];
	  weightsSum += 1.;
	}
      }
    }
    if (weightsSum!=0) averageTime /= weightsSum;
  } // end else (fEdgeEffect != 0)
}

//__________________________________________________________________
void AliTOFSDigitizer::PrintParameters()const
{
  //
  // Print parameters used for sdigitization
  //
  AliInfo(Form(" ------------------- %s -------------", GetName()));
  AliInfo(" Parameters used for TOF SDigitization ");
  //  Printing the parameters
  
  AliInfo(Form(" Number of events:                       %i ", (fEvent2-fEvent1)));
  AliInfo(Form(" from event %i to event %i", fEvent1, (fEvent2-1)));
  AliInfo(Form(" Time Resolution (ps) %f  Pad Efficiency: %f ", fTimeResolution, fpadefficiency));
  AliInfo(Form(" Edge Effect option:  %d", fEdgeEffect));

  AliInfo(" Boundary Effect Simulation Parameters ");
  AliInfo(Form(" Hparameter: %f  H2parameter: %f  Kparameter: %f  K2parameter: %f", fHparameter, fH2parameter, fKparameter, fK2parameter));
  AliInfo(Form(" Efficiency in the central region of the pad: %f", fEffCenter));
  AliInfo(Form(" Efficiency at the boundary region of the pad: %f", fEffBoundary));
  AliInfo(Form(" Efficiency value at H2parameter %f", fEff2Boundary));
  AliInfo(Form(" Efficiency value at K2parameter %f", fEff3Boundary));
  AliInfo(Form(" Resolution (ps) in the central region of the pad: %f", fResCenter));
  AliInfo(Form(" Resolution (ps) at the boundary of the pad      : %f", fResBoundary));
  AliInfo(Form(" Slope (ps/K) for neighbouring pad               : %f", fResSlope));
  AliInfo(Form(" Time walk (ps) in the central region of the pad : %f", fTimeWalkCenter));
  AliInfo(Form(" Time walk (ps) at the boundary of the pad       : %f", fTimeWalkBoundary));
  AliInfo(Form(" Slope (ps/K) for neighbouring pad               : %f", fTimeWalkSlope));
  AliInfo(" Pulse Heigth Simulation Parameters ");
  AliInfo(Form(" Flag for delay due to the PulseHeightEffect  : %d", fTimeDelayFlag));
  AliInfo(Form(" Pulse Height Slope                           : %f", fPulseHeightSlope));
  AliInfo(Form(" Time Delay Slope                             : %f", fTimeDelaySlope));
  AliInfo(Form(" Minimum charge amount which could be induced : %f", fMinimumCharge));
  AliInfo(Form(" Smearing in charge in (q1/q2) vs x plot      : %f", fChargeSmearing));
  AliInfo(Form(" Smearing in log of charge ratio              : %f", fLogChargeSmearing));
  AliInfo(Form(" Smearing in time in time vs log(q1/q2) plot  : %f", fTimeSmearing));
  AliInfo(Form(" Flag for average time                        : %d", fAverageTimeFlag));
  AliInfo(Form(" Edge tails option                            : %d", fEdgeTails));
  
}
 AliTOFSDigitizer.cxx:1
 AliTOFSDigitizer.cxx:2
 AliTOFSDigitizer.cxx:3
 AliTOFSDigitizer.cxx:4
 AliTOFSDigitizer.cxx:5
 AliTOFSDigitizer.cxx:6
 AliTOFSDigitizer.cxx:7
 AliTOFSDigitizer.cxx:8
 AliTOFSDigitizer.cxx:9
 AliTOFSDigitizer.cxx:10
 AliTOFSDigitizer.cxx:11
 AliTOFSDigitizer.cxx:12
 AliTOFSDigitizer.cxx:13
 AliTOFSDigitizer.cxx:14
 AliTOFSDigitizer.cxx:15
 AliTOFSDigitizer.cxx:16
 AliTOFSDigitizer.cxx:17
 AliTOFSDigitizer.cxx:18
 AliTOFSDigitizer.cxx:19
 AliTOFSDigitizer.cxx:20
 AliTOFSDigitizer.cxx:21
 AliTOFSDigitizer.cxx:22
 AliTOFSDigitizer.cxx:23
 AliTOFSDigitizer.cxx:24
 AliTOFSDigitizer.cxx:25
 AliTOFSDigitizer.cxx:26
 AliTOFSDigitizer.cxx:27
 AliTOFSDigitizer.cxx:28
 AliTOFSDigitizer.cxx:29
 AliTOFSDigitizer.cxx:30
 AliTOFSDigitizer.cxx:31
 AliTOFSDigitizer.cxx:32
 AliTOFSDigitizer.cxx:33
 AliTOFSDigitizer.cxx:34
 AliTOFSDigitizer.cxx:35
 AliTOFSDigitizer.cxx:36
 AliTOFSDigitizer.cxx:37
 AliTOFSDigitizer.cxx:38
 AliTOFSDigitizer.cxx:39
 AliTOFSDigitizer.cxx:40
 AliTOFSDigitizer.cxx:41
 AliTOFSDigitizer.cxx:42
 AliTOFSDigitizer.cxx:43
 AliTOFSDigitizer.cxx:44
 AliTOFSDigitizer.cxx:45
 AliTOFSDigitizer.cxx:46
 AliTOFSDigitizer.cxx:47
 AliTOFSDigitizer.cxx:48
 AliTOFSDigitizer.cxx:49
 AliTOFSDigitizer.cxx:50
 AliTOFSDigitizer.cxx:51
 AliTOFSDigitizer.cxx:52
 AliTOFSDigitizer.cxx:53
 AliTOFSDigitizer.cxx:54
 AliTOFSDigitizer.cxx:55
 AliTOFSDigitizer.cxx:56
 AliTOFSDigitizer.cxx:57
 AliTOFSDigitizer.cxx:58
 AliTOFSDigitizer.cxx:59
 AliTOFSDigitizer.cxx:60
 AliTOFSDigitizer.cxx:61
 AliTOFSDigitizer.cxx:62
 AliTOFSDigitizer.cxx:63
 AliTOFSDigitizer.cxx:64
 AliTOFSDigitizer.cxx:65
 AliTOFSDigitizer.cxx:66
 AliTOFSDigitizer.cxx:67
 AliTOFSDigitizer.cxx:68
 AliTOFSDigitizer.cxx:69
 AliTOFSDigitizer.cxx:70
 AliTOFSDigitizer.cxx:71
 AliTOFSDigitizer.cxx:72
 AliTOFSDigitizer.cxx:73
 AliTOFSDigitizer.cxx:74
 AliTOFSDigitizer.cxx:75
 AliTOFSDigitizer.cxx:76
 AliTOFSDigitizer.cxx:77
 AliTOFSDigitizer.cxx:78
 AliTOFSDigitizer.cxx:79
 AliTOFSDigitizer.cxx:80
 AliTOFSDigitizer.cxx:81
 AliTOFSDigitizer.cxx:82
 AliTOFSDigitizer.cxx:83
 AliTOFSDigitizer.cxx:84
 AliTOFSDigitizer.cxx:85
 AliTOFSDigitizer.cxx:86
 AliTOFSDigitizer.cxx:87
 AliTOFSDigitizer.cxx:88
 AliTOFSDigitizer.cxx:89
 AliTOFSDigitizer.cxx:90
 AliTOFSDigitizer.cxx:91
 AliTOFSDigitizer.cxx:92
 AliTOFSDigitizer.cxx:93
 AliTOFSDigitizer.cxx:94
 AliTOFSDigitizer.cxx:95
 AliTOFSDigitizer.cxx:96
 AliTOFSDigitizer.cxx:97
 AliTOFSDigitizer.cxx:98
 AliTOFSDigitizer.cxx:99
 AliTOFSDigitizer.cxx:100
 AliTOFSDigitizer.cxx:101
 AliTOFSDigitizer.cxx:102
 AliTOFSDigitizer.cxx:103
 AliTOFSDigitizer.cxx:104
 AliTOFSDigitizer.cxx:105
 AliTOFSDigitizer.cxx:106
 AliTOFSDigitizer.cxx:107
 AliTOFSDigitizer.cxx:108
 AliTOFSDigitizer.cxx:109
 AliTOFSDigitizer.cxx:110
 AliTOFSDigitizer.cxx:111
 AliTOFSDigitizer.cxx:112
 AliTOFSDigitizer.cxx:113
 AliTOFSDigitizer.cxx:114
 AliTOFSDigitizer.cxx:115
 AliTOFSDigitizer.cxx:116
 AliTOFSDigitizer.cxx:117
 AliTOFSDigitizer.cxx:118
 AliTOFSDigitizer.cxx:119
 AliTOFSDigitizer.cxx:120
 AliTOFSDigitizer.cxx:121
 AliTOFSDigitizer.cxx:122
 AliTOFSDigitizer.cxx:123
 AliTOFSDigitizer.cxx:124
 AliTOFSDigitizer.cxx:125
 AliTOFSDigitizer.cxx:126
 AliTOFSDigitizer.cxx:127
 AliTOFSDigitizer.cxx:128
 AliTOFSDigitizer.cxx:129
 AliTOFSDigitizer.cxx:130
 AliTOFSDigitizer.cxx:131
 AliTOFSDigitizer.cxx:132
 AliTOFSDigitizer.cxx:133
 AliTOFSDigitizer.cxx:134
 AliTOFSDigitizer.cxx:135
 AliTOFSDigitizer.cxx:136
 AliTOFSDigitizer.cxx:137
 AliTOFSDigitizer.cxx:138
 AliTOFSDigitizer.cxx:139
 AliTOFSDigitizer.cxx:140
 AliTOFSDigitizer.cxx:141
 AliTOFSDigitizer.cxx:142
 AliTOFSDigitizer.cxx:143
 AliTOFSDigitizer.cxx:144
 AliTOFSDigitizer.cxx:145
 AliTOFSDigitizer.cxx:146
 AliTOFSDigitizer.cxx:147
 AliTOFSDigitizer.cxx:148
 AliTOFSDigitizer.cxx:149
 AliTOFSDigitizer.cxx:150
 AliTOFSDigitizer.cxx:151
 AliTOFSDigitizer.cxx:152
 AliTOFSDigitizer.cxx:153
 AliTOFSDigitizer.cxx:154
 AliTOFSDigitizer.cxx:155
 AliTOFSDigitizer.cxx:156
 AliTOFSDigitizer.cxx:157
 AliTOFSDigitizer.cxx:158
 AliTOFSDigitizer.cxx:159
 AliTOFSDigitizer.cxx:160
 AliTOFSDigitizer.cxx:161
 AliTOFSDigitizer.cxx:162
 AliTOFSDigitizer.cxx:163
 AliTOFSDigitizer.cxx:164
 AliTOFSDigitizer.cxx:165
 AliTOFSDigitizer.cxx:166
 AliTOFSDigitizer.cxx:167
 AliTOFSDigitizer.cxx:168
 AliTOFSDigitizer.cxx:169
 AliTOFSDigitizer.cxx:170
 AliTOFSDigitizer.cxx:171
 AliTOFSDigitizer.cxx:172
 AliTOFSDigitizer.cxx:173
 AliTOFSDigitizer.cxx:174
 AliTOFSDigitizer.cxx:175
 AliTOFSDigitizer.cxx:176
 AliTOFSDigitizer.cxx:177
 AliTOFSDigitizer.cxx:178
 AliTOFSDigitizer.cxx:179
 AliTOFSDigitizer.cxx:180
 AliTOFSDigitizer.cxx:181
 AliTOFSDigitizer.cxx:182
 AliTOFSDigitizer.cxx:183
 AliTOFSDigitizer.cxx:184
 AliTOFSDigitizer.cxx:185
 AliTOFSDigitizer.cxx:186
 AliTOFSDigitizer.cxx:187
 AliTOFSDigitizer.cxx:188
 AliTOFSDigitizer.cxx:189
 AliTOFSDigitizer.cxx:190
 AliTOFSDigitizer.cxx:191
 AliTOFSDigitizer.cxx:192
 AliTOFSDigitizer.cxx:193
 AliTOFSDigitizer.cxx:194
 AliTOFSDigitizer.cxx:195
 AliTOFSDigitizer.cxx:196
 AliTOFSDigitizer.cxx:197
 AliTOFSDigitizer.cxx:198
 AliTOFSDigitizer.cxx:199
 AliTOFSDigitizer.cxx:200
 AliTOFSDigitizer.cxx:201
 AliTOFSDigitizer.cxx:202
 AliTOFSDigitizer.cxx:203
 AliTOFSDigitizer.cxx:204
 AliTOFSDigitizer.cxx:205
 AliTOFSDigitizer.cxx:206
 AliTOFSDigitizer.cxx:207
 AliTOFSDigitizer.cxx:208
 AliTOFSDigitizer.cxx:209
 AliTOFSDigitizer.cxx:210
 AliTOFSDigitizer.cxx:211
 AliTOFSDigitizer.cxx:212
 AliTOFSDigitizer.cxx:213
 AliTOFSDigitizer.cxx:214
 AliTOFSDigitizer.cxx:215
 AliTOFSDigitizer.cxx:216
 AliTOFSDigitizer.cxx:217
 AliTOFSDigitizer.cxx:218
 AliTOFSDigitizer.cxx:219
 AliTOFSDigitizer.cxx:220
 AliTOFSDigitizer.cxx:221
 AliTOFSDigitizer.cxx:222
 AliTOFSDigitizer.cxx:223
 AliTOFSDigitizer.cxx:224
 AliTOFSDigitizer.cxx:225
 AliTOFSDigitizer.cxx:226
 AliTOFSDigitizer.cxx:227
 AliTOFSDigitizer.cxx:228
 AliTOFSDigitizer.cxx:229
 AliTOFSDigitizer.cxx:230
 AliTOFSDigitizer.cxx:231
 AliTOFSDigitizer.cxx:232
 AliTOFSDigitizer.cxx:233
 AliTOFSDigitizer.cxx:234
 AliTOFSDigitizer.cxx:235
 AliTOFSDigitizer.cxx:236
 AliTOFSDigitizer.cxx:237
 AliTOFSDigitizer.cxx:238
 AliTOFSDigitizer.cxx:239
 AliTOFSDigitizer.cxx:240
 AliTOFSDigitizer.cxx:241
 AliTOFSDigitizer.cxx:242
 AliTOFSDigitizer.cxx:243
 AliTOFSDigitizer.cxx:244
 AliTOFSDigitizer.cxx:245
 AliTOFSDigitizer.cxx:246
 AliTOFSDigitizer.cxx:247
 AliTOFSDigitizer.cxx:248
 AliTOFSDigitizer.cxx:249
 AliTOFSDigitizer.cxx:250
 AliTOFSDigitizer.cxx:251
 AliTOFSDigitizer.cxx:252
 AliTOFSDigitizer.cxx:253
 AliTOFSDigitizer.cxx:254
 AliTOFSDigitizer.cxx:255
 AliTOFSDigitizer.cxx:256
 AliTOFSDigitizer.cxx:257
 AliTOFSDigitizer.cxx:258
 AliTOFSDigitizer.cxx:259
 AliTOFSDigitizer.cxx:260
 AliTOFSDigitizer.cxx:261
 AliTOFSDigitizer.cxx:262
 AliTOFSDigitizer.cxx:263
 AliTOFSDigitizer.cxx:264
 AliTOFSDigitizer.cxx:265
 AliTOFSDigitizer.cxx:266
 AliTOFSDigitizer.cxx:267
 AliTOFSDigitizer.cxx:268
 AliTOFSDigitizer.cxx:269
 AliTOFSDigitizer.cxx:270
 AliTOFSDigitizer.cxx:271
 AliTOFSDigitizer.cxx:272
 AliTOFSDigitizer.cxx:273
 AliTOFSDigitizer.cxx:274
 AliTOFSDigitizer.cxx:275
 AliTOFSDigitizer.cxx:276
 AliTOFSDigitizer.cxx:277
 AliTOFSDigitizer.cxx:278
 AliTOFSDigitizer.cxx:279
 AliTOFSDigitizer.cxx:280
 AliTOFSDigitizer.cxx:281
 AliTOFSDigitizer.cxx:282
 AliTOFSDigitizer.cxx:283
 AliTOFSDigitizer.cxx:284
 AliTOFSDigitizer.cxx:285
 AliTOFSDigitizer.cxx:286
 AliTOFSDigitizer.cxx:287
 AliTOFSDigitizer.cxx:288
 AliTOFSDigitizer.cxx:289
 AliTOFSDigitizer.cxx:290
 AliTOFSDigitizer.cxx:291
 AliTOFSDigitizer.cxx:292
 AliTOFSDigitizer.cxx:293
 AliTOFSDigitizer.cxx:294
 AliTOFSDigitizer.cxx:295
 AliTOFSDigitizer.cxx:296
 AliTOFSDigitizer.cxx:297
 AliTOFSDigitizer.cxx:298
 AliTOFSDigitizer.cxx:299
 AliTOFSDigitizer.cxx:300
 AliTOFSDigitizer.cxx:301
 AliTOFSDigitizer.cxx:302
 AliTOFSDigitizer.cxx:303
 AliTOFSDigitizer.cxx:304
 AliTOFSDigitizer.cxx:305
 AliTOFSDigitizer.cxx:306
 AliTOFSDigitizer.cxx:307
 AliTOFSDigitizer.cxx:308
 AliTOFSDigitizer.cxx:309
 AliTOFSDigitizer.cxx:310
 AliTOFSDigitizer.cxx:311
 AliTOFSDigitizer.cxx:312
 AliTOFSDigitizer.cxx:313
 AliTOFSDigitizer.cxx:314
 AliTOFSDigitizer.cxx:315
 AliTOFSDigitizer.cxx:316
 AliTOFSDigitizer.cxx:317
 AliTOFSDigitizer.cxx:318
 AliTOFSDigitizer.cxx:319
 AliTOFSDigitizer.cxx:320
 AliTOFSDigitizer.cxx:321
 AliTOFSDigitizer.cxx:322
 AliTOFSDigitizer.cxx:323
 AliTOFSDigitizer.cxx:324
 AliTOFSDigitizer.cxx:325
 AliTOFSDigitizer.cxx:326
 AliTOFSDigitizer.cxx:327
 AliTOFSDigitizer.cxx:328
 AliTOFSDigitizer.cxx:329
 AliTOFSDigitizer.cxx:330
 AliTOFSDigitizer.cxx:331
 AliTOFSDigitizer.cxx:332
 AliTOFSDigitizer.cxx:333
 AliTOFSDigitizer.cxx:334
 AliTOFSDigitizer.cxx:335
 AliTOFSDigitizer.cxx:336
 AliTOFSDigitizer.cxx:337
 AliTOFSDigitizer.cxx:338
 AliTOFSDigitizer.cxx:339
 AliTOFSDigitizer.cxx:340
 AliTOFSDigitizer.cxx:341
 AliTOFSDigitizer.cxx:342
 AliTOFSDigitizer.cxx:343
 AliTOFSDigitizer.cxx:344
 AliTOFSDigitizer.cxx:345
 AliTOFSDigitizer.cxx:346
 AliTOFSDigitizer.cxx:347
 AliTOFSDigitizer.cxx:348
 AliTOFSDigitizer.cxx:349
 AliTOFSDigitizer.cxx:350
 AliTOFSDigitizer.cxx:351
 AliTOFSDigitizer.cxx:352
 AliTOFSDigitizer.cxx:353
 AliTOFSDigitizer.cxx:354
 AliTOFSDigitizer.cxx:355
 AliTOFSDigitizer.cxx:356
 AliTOFSDigitizer.cxx:357
 AliTOFSDigitizer.cxx:358
 AliTOFSDigitizer.cxx:359
 AliTOFSDigitizer.cxx:360
 AliTOFSDigitizer.cxx:361
 AliTOFSDigitizer.cxx:362
 AliTOFSDigitizer.cxx:363
 AliTOFSDigitizer.cxx:364
 AliTOFSDigitizer.cxx:365
 AliTOFSDigitizer.cxx:366
 AliTOFSDigitizer.cxx:367
 AliTOFSDigitizer.cxx:368
 AliTOFSDigitizer.cxx:369
 AliTOFSDigitizer.cxx:370
 AliTOFSDigitizer.cxx:371
 AliTOFSDigitizer.cxx:372
 AliTOFSDigitizer.cxx:373
 AliTOFSDigitizer.cxx:374
 AliTOFSDigitizer.cxx:375
 AliTOFSDigitizer.cxx:376
 AliTOFSDigitizer.cxx:377
 AliTOFSDigitizer.cxx:378
 AliTOFSDigitizer.cxx:379
 AliTOFSDigitizer.cxx:380
 AliTOFSDigitizer.cxx:381
 AliTOFSDigitizer.cxx:382
 AliTOFSDigitizer.cxx:383
 AliTOFSDigitizer.cxx:384
 AliTOFSDigitizer.cxx:385
 AliTOFSDigitizer.cxx:386
 AliTOFSDigitizer.cxx:387
 AliTOFSDigitizer.cxx:388
 AliTOFSDigitizer.cxx:389
 AliTOFSDigitizer.cxx:390
 AliTOFSDigitizer.cxx:391
 AliTOFSDigitizer.cxx:392
 AliTOFSDigitizer.cxx:393
 AliTOFSDigitizer.cxx:394
 AliTOFSDigitizer.cxx:395
 AliTOFSDigitizer.cxx:396
 AliTOFSDigitizer.cxx:397
 AliTOFSDigitizer.cxx:398
 AliTOFSDigitizer.cxx:399
 AliTOFSDigitizer.cxx:400
 AliTOFSDigitizer.cxx:401
 AliTOFSDigitizer.cxx:402
 AliTOFSDigitizer.cxx:403
 AliTOFSDigitizer.cxx:404
 AliTOFSDigitizer.cxx:405
 AliTOFSDigitizer.cxx:406
 AliTOFSDigitizer.cxx:407
 AliTOFSDigitizer.cxx:408
 AliTOFSDigitizer.cxx:409
 AliTOFSDigitizer.cxx:410
 AliTOFSDigitizer.cxx:411
 AliTOFSDigitizer.cxx:412
 AliTOFSDigitizer.cxx:413
 AliTOFSDigitizer.cxx:414
 AliTOFSDigitizer.cxx:415
 AliTOFSDigitizer.cxx:416
 AliTOFSDigitizer.cxx:417
 AliTOFSDigitizer.cxx:418
 AliTOFSDigitizer.cxx:419
 AliTOFSDigitizer.cxx:420
 AliTOFSDigitizer.cxx:421
 AliTOFSDigitizer.cxx:422
 AliTOFSDigitizer.cxx:423
 AliTOFSDigitizer.cxx:424
 AliTOFSDigitizer.cxx:425
 AliTOFSDigitizer.cxx:426
 AliTOFSDigitizer.cxx:427
 AliTOFSDigitizer.cxx:428
 AliTOFSDigitizer.cxx:429
 AliTOFSDigitizer.cxx:430
 AliTOFSDigitizer.cxx:431
 AliTOFSDigitizer.cxx:432
 AliTOFSDigitizer.cxx:433
 AliTOFSDigitizer.cxx:434
 AliTOFSDigitizer.cxx:435
 AliTOFSDigitizer.cxx:436
 AliTOFSDigitizer.cxx:437
 AliTOFSDigitizer.cxx:438
 AliTOFSDigitizer.cxx:439
 AliTOFSDigitizer.cxx:440
 AliTOFSDigitizer.cxx:441
 AliTOFSDigitizer.cxx:442
 AliTOFSDigitizer.cxx:443
 AliTOFSDigitizer.cxx:444
 AliTOFSDigitizer.cxx:445
 AliTOFSDigitizer.cxx:446
 AliTOFSDigitizer.cxx:447
 AliTOFSDigitizer.cxx:448
 AliTOFSDigitizer.cxx:449
 AliTOFSDigitizer.cxx:450
 AliTOFSDigitizer.cxx:451
 AliTOFSDigitizer.cxx:452
 AliTOFSDigitizer.cxx:453
 AliTOFSDigitizer.cxx:454
 AliTOFSDigitizer.cxx:455
 AliTOFSDigitizer.cxx:456
 AliTOFSDigitizer.cxx:457
 AliTOFSDigitizer.cxx:458
 AliTOFSDigitizer.cxx:459
 AliTOFSDigitizer.cxx:460
 AliTOFSDigitizer.cxx:461
 AliTOFSDigitizer.cxx:462
 AliTOFSDigitizer.cxx:463
 AliTOFSDigitizer.cxx:464
 AliTOFSDigitizer.cxx:465
 AliTOFSDigitizer.cxx:466
 AliTOFSDigitizer.cxx:467
 AliTOFSDigitizer.cxx:468
 AliTOFSDigitizer.cxx:469
 AliTOFSDigitizer.cxx:470
 AliTOFSDigitizer.cxx:471
 AliTOFSDigitizer.cxx:472
 AliTOFSDigitizer.cxx:473
 AliTOFSDigitizer.cxx:474
 AliTOFSDigitizer.cxx:475
 AliTOFSDigitizer.cxx:476
 AliTOFSDigitizer.cxx:477
 AliTOFSDigitizer.cxx:478
 AliTOFSDigitizer.cxx:479
 AliTOFSDigitizer.cxx:480
 AliTOFSDigitizer.cxx:481
 AliTOFSDigitizer.cxx:482
 AliTOFSDigitizer.cxx:483
 AliTOFSDigitizer.cxx:484
 AliTOFSDigitizer.cxx:485
 AliTOFSDigitizer.cxx:486
 AliTOFSDigitizer.cxx:487
 AliTOFSDigitizer.cxx:488
 AliTOFSDigitizer.cxx:489
 AliTOFSDigitizer.cxx:490
 AliTOFSDigitizer.cxx:491
 AliTOFSDigitizer.cxx:492
 AliTOFSDigitizer.cxx:493
 AliTOFSDigitizer.cxx:494
 AliTOFSDigitizer.cxx:495
 AliTOFSDigitizer.cxx:496
 AliTOFSDigitizer.cxx:497
 AliTOFSDigitizer.cxx:498
 AliTOFSDigitizer.cxx:499
 AliTOFSDigitizer.cxx:500
 AliTOFSDigitizer.cxx:501
 AliTOFSDigitizer.cxx:502
 AliTOFSDigitizer.cxx:503
 AliTOFSDigitizer.cxx:504
 AliTOFSDigitizer.cxx:505
 AliTOFSDigitizer.cxx:506
 AliTOFSDigitizer.cxx:507
 AliTOFSDigitizer.cxx:508
 AliTOFSDigitizer.cxx:509
 AliTOFSDigitizer.cxx:510
 AliTOFSDigitizer.cxx:511
 AliTOFSDigitizer.cxx:512
 AliTOFSDigitizer.cxx:513
 AliTOFSDigitizer.cxx:514
 AliTOFSDigitizer.cxx:515
 AliTOFSDigitizer.cxx:516
 AliTOFSDigitizer.cxx:517
 AliTOFSDigitizer.cxx:518
 AliTOFSDigitizer.cxx:519
 AliTOFSDigitizer.cxx:520
 AliTOFSDigitizer.cxx:521
 AliTOFSDigitizer.cxx:522
 AliTOFSDigitizer.cxx:523
 AliTOFSDigitizer.cxx:524
 AliTOFSDigitizer.cxx:525
 AliTOFSDigitizer.cxx:526
 AliTOFSDigitizer.cxx:527
 AliTOFSDigitizer.cxx:528
 AliTOFSDigitizer.cxx:529
 AliTOFSDigitizer.cxx:530
 AliTOFSDigitizer.cxx:531
 AliTOFSDigitizer.cxx:532
 AliTOFSDigitizer.cxx:533
 AliTOFSDigitizer.cxx:534
 AliTOFSDigitizer.cxx:535
 AliTOFSDigitizer.cxx:536
 AliTOFSDigitizer.cxx:537
 AliTOFSDigitizer.cxx:538
 AliTOFSDigitizer.cxx:539
 AliTOFSDigitizer.cxx:540
 AliTOFSDigitizer.cxx:541
 AliTOFSDigitizer.cxx:542
 AliTOFSDigitizer.cxx:543
 AliTOFSDigitizer.cxx:544
 AliTOFSDigitizer.cxx:545
 AliTOFSDigitizer.cxx:546
 AliTOFSDigitizer.cxx:547
 AliTOFSDigitizer.cxx:548
 AliTOFSDigitizer.cxx:549
 AliTOFSDigitizer.cxx:550
 AliTOFSDigitizer.cxx:551
 AliTOFSDigitizer.cxx:552
 AliTOFSDigitizer.cxx:553
 AliTOFSDigitizer.cxx:554
 AliTOFSDigitizer.cxx:555
 AliTOFSDigitizer.cxx:556
 AliTOFSDigitizer.cxx:557
 AliTOFSDigitizer.cxx:558
 AliTOFSDigitizer.cxx:559
 AliTOFSDigitizer.cxx:560
 AliTOFSDigitizer.cxx:561
 AliTOFSDigitizer.cxx:562
 AliTOFSDigitizer.cxx:563
 AliTOFSDigitizer.cxx:564
 AliTOFSDigitizer.cxx:565
 AliTOFSDigitizer.cxx:566
 AliTOFSDigitizer.cxx:567
 AliTOFSDigitizer.cxx:568
 AliTOFSDigitizer.cxx:569
 AliTOFSDigitizer.cxx:570
 AliTOFSDigitizer.cxx:571
 AliTOFSDigitizer.cxx:572
 AliTOFSDigitizer.cxx:573
 AliTOFSDigitizer.cxx:574
 AliTOFSDigitizer.cxx:575
 AliTOFSDigitizer.cxx:576
 AliTOFSDigitizer.cxx:577
 AliTOFSDigitizer.cxx:578
 AliTOFSDigitizer.cxx:579
 AliTOFSDigitizer.cxx:580
 AliTOFSDigitizer.cxx:581
 AliTOFSDigitizer.cxx:582
 AliTOFSDigitizer.cxx:583
 AliTOFSDigitizer.cxx:584
 AliTOFSDigitizer.cxx:585
 AliTOFSDigitizer.cxx:586
 AliTOFSDigitizer.cxx:587
 AliTOFSDigitizer.cxx:588
 AliTOFSDigitizer.cxx:589
 AliTOFSDigitizer.cxx:590
 AliTOFSDigitizer.cxx:591
 AliTOFSDigitizer.cxx:592
 AliTOFSDigitizer.cxx:593
 AliTOFSDigitizer.cxx:594
 AliTOFSDigitizer.cxx:595
 AliTOFSDigitizer.cxx:596
 AliTOFSDigitizer.cxx:597
 AliTOFSDigitizer.cxx:598
 AliTOFSDigitizer.cxx:599
 AliTOFSDigitizer.cxx:600
 AliTOFSDigitizer.cxx:601
 AliTOFSDigitizer.cxx:602
 AliTOFSDigitizer.cxx:603
 AliTOFSDigitizer.cxx:604
 AliTOFSDigitizer.cxx:605
 AliTOFSDigitizer.cxx:606
 AliTOFSDigitizer.cxx:607
 AliTOFSDigitizer.cxx:608
 AliTOFSDigitizer.cxx:609
 AliTOFSDigitizer.cxx:610
 AliTOFSDigitizer.cxx:611
 AliTOFSDigitizer.cxx:612
 AliTOFSDigitizer.cxx:613
 AliTOFSDigitizer.cxx:614
 AliTOFSDigitizer.cxx:615
 AliTOFSDigitizer.cxx:616
 AliTOFSDigitizer.cxx:617
 AliTOFSDigitizer.cxx:618
 AliTOFSDigitizer.cxx:619
 AliTOFSDigitizer.cxx:620
 AliTOFSDigitizer.cxx:621
 AliTOFSDigitizer.cxx:622
 AliTOFSDigitizer.cxx:623
 AliTOFSDigitizer.cxx:624
 AliTOFSDigitizer.cxx:625
 AliTOFSDigitizer.cxx:626
 AliTOFSDigitizer.cxx:627
 AliTOFSDigitizer.cxx:628
 AliTOFSDigitizer.cxx:629
 AliTOFSDigitizer.cxx:630
 AliTOFSDigitizer.cxx:631
 AliTOFSDigitizer.cxx:632
 AliTOFSDigitizer.cxx:633
 AliTOFSDigitizer.cxx:634
 AliTOFSDigitizer.cxx:635
 AliTOFSDigitizer.cxx:636
 AliTOFSDigitizer.cxx:637
 AliTOFSDigitizer.cxx:638
 AliTOFSDigitizer.cxx:639
 AliTOFSDigitizer.cxx:640
 AliTOFSDigitizer.cxx:641
 AliTOFSDigitizer.cxx:642
 AliTOFSDigitizer.cxx:643
 AliTOFSDigitizer.cxx:644
 AliTOFSDigitizer.cxx:645
 AliTOFSDigitizer.cxx:646
 AliTOFSDigitizer.cxx:647
 AliTOFSDigitizer.cxx:648
 AliTOFSDigitizer.cxx:649
 AliTOFSDigitizer.cxx:650
 AliTOFSDigitizer.cxx:651
 AliTOFSDigitizer.cxx:652
 AliTOFSDigitizer.cxx:653
 AliTOFSDigitizer.cxx:654
 AliTOFSDigitizer.cxx:655
 AliTOFSDigitizer.cxx:656
 AliTOFSDigitizer.cxx:657
 AliTOFSDigitizer.cxx:658
 AliTOFSDigitizer.cxx:659
 AliTOFSDigitizer.cxx:660
 AliTOFSDigitizer.cxx:661
 AliTOFSDigitizer.cxx:662
 AliTOFSDigitizer.cxx:663
 AliTOFSDigitizer.cxx:664
 AliTOFSDigitizer.cxx:665
 AliTOFSDigitizer.cxx:666
 AliTOFSDigitizer.cxx:667
 AliTOFSDigitizer.cxx:668
 AliTOFSDigitizer.cxx:669
 AliTOFSDigitizer.cxx:670
 AliTOFSDigitizer.cxx:671
 AliTOFSDigitizer.cxx:672
 AliTOFSDigitizer.cxx:673
 AliTOFSDigitizer.cxx:674
 AliTOFSDigitizer.cxx:675
 AliTOFSDigitizer.cxx:676
 AliTOFSDigitizer.cxx:677
 AliTOFSDigitizer.cxx:678
 AliTOFSDigitizer.cxx:679
 AliTOFSDigitizer.cxx:680
 AliTOFSDigitizer.cxx:681
 AliTOFSDigitizer.cxx:682
 AliTOFSDigitizer.cxx:683
 AliTOFSDigitizer.cxx:684
 AliTOFSDigitizer.cxx:685
 AliTOFSDigitizer.cxx:686
 AliTOFSDigitizer.cxx:687
 AliTOFSDigitizer.cxx:688
 AliTOFSDigitizer.cxx:689
 AliTOFSDigitizer.cxx:690
 AliTOFSDigitizer.cxx:691
 AliTOFSDigitizer.cxx:692
 AliTOFSDigitizer.cxx:693
 AliTOFSDigitizer.cxx:694
 AliTOFSDigitizer.cxx:695
 AliTOFSDigitizer.cxx:696
 AliTOFSDigitizer.cxx:697
 AliTOFSDigitizer.cxx:698
 AliTOFSDigitizer.cxx:699
 AliTOFSDigitizer.cxx:700
 AliTOFSDigitizer.cxx:701
 AliTOFSDigitizer.cxx:702
 AliTOFSDigitizer.cxx:703
 AliTOFSDigitizer.cxx:704
 AliTOFSDigitizer.cxx:705
 AliTOFSDigitizer.cxx:706
 AliTOFSDigitizer.cxx:707
 AliTOFSDigitizer.cxx:708
 AliTOFSDigitizer.cxx:709
 AliTOFSDigitizer.cxx:710
 AliTOFSDigitizer.cxx:711
 AliTOFSDigitizer.cxx:712
 AliTOFSDigitizer.cxx:713
 AliTOFSDigitizer.cxx:714
 AliTOFSDigitizer.cxx:715
 AliTOFSDigitizer.cxx:716
 AliTOFSDigitizer.cxx:717
 AliTOFSDigitizer.cxx:718
 AliTOFSDigitizer.cxx:719
 AliTOFSDigitizer.cxx:720
 AliTOFSDigitizer.cxx:721
 AliTOFSDigitizer.cxx:722
 AliTOFSDigitizer.cxx:723
 AliTOFSDigitizer.cxx:724
 AliTOFSDigitizer.cxx:725
 AliTOFSDigitizer.cxx:726
 AliTOFSDigitizer.cxx:727
 AliTOFSDigitizer.cxx:728
 AliTOFSDigitizer.cxx:729
 AliTOFSDigitizer.cxx:730
 AliTOFSDigitizer.cxx:731
 AliTOFSDigitizer.cxx:732
 AliTOFSDigitizer.cxx:733
 AliTOFSDigitizer.cxx:734
 AliTOFSDigitizer.cxx:735
 AliTOFSDigitizer.cxx:736
 AliTOFSDigitizer.cxx:737
 AliTOFSDigitizer.cxx:738
 AliTOFSDigitizer.cxx:739
 AliTOFSDigitizer.cxx:740
 AliTOFSDigitizer.cxx:741
 AliTOFSDigitizer.cxx:742
 AliTOFSDigitizer.cxx:743
 AliTOFSDigitizer.cxx:744
 AliTOFSDigitizer.cxx:745
 AliTOFSDigitizer.cxx:746
 AliTOFSDigitizer.cxx:747
 AliTOFSDigitizer.cxx:748
 AliTOFSDigitizer.cxx:749
 AliTOFSDigitizer.cxx:750
 AliTOFSDigitizer.cxx:751
 AliTOFSDigitizer.cxx:752
 AliTOFSDigitizer.cxx:753
 AliTOFSDigitizer.cxx:754
 AliTOFSDigitizer.cxx:755
 AliTOFSDigitizer.cxx:756
 AliTOFSDigitizer.cxx:757
 AliTOFSDigitizer.cxx:758
 AliTOFSDigitizer.cxx:759
 AliTOFSDigitizer.cxx:760
 AliTOFSDigitizer.cxx:761
 AliTOFSDigitizer.cxx:762
 AliTOFSDigitizer.cxx:763
 AliTOFSDigitizer.cxx:764
 AliTOFSDigitizer.cxx:765
 AliTOFSDigitizer.cxx:766
 AliTOFSDigitizer.cxx:767
 AliTOFSDigitizer.cxx:768
 AliTOFSDigitizer.cxx:769
 AliTOFSDigitizer.cxx:770
 AliTOFSDigitizer.cxx:771
 AliTOFSDigitizer.cxx:772
 AliTOFSDigitizer.cxx:773
 AliTOFSDigitizer.cxx:774
 AliTOFSDigitizer.cxx:775
 AliTOFSDigitizer.cxx:776
 AliTOFSDigitizer.cxx:777
 AliTOFSDigitizer.cxx:778
 AliTOFSDigitizer.cxx:779
 AliTOFSDigitizer.cxx:780
 AliTOFSDigitizer.cxx:781
 AliTOFSDigitizer.cxx:782
 AliTOFSDigitizer.cxx:783
 AliTOFSDigitizer.cxx:784
 AliTOFSDigitizer.cxx:785
 AliTOFSDigitizer.cxx:786
 AliTOFSDigitizer.cxx:787
 AliTOFSDigitizer.cxx:788
 AliTOFSDigitizer.cxx:789
 AliTOFSDigitizer.cxx:790
 AliTOFSDigitizer.cxx:791
 AliTOFSDigitizer.cxx:792
 AliTOFSDigitizer.cxx:793
 AliTOFSDigitizer.cxx:794
 AliTOFSDigitizer.cxx:795
 AliTOFSDigitizer.cxx:796
 AliTOFSDigitizer.cxx:797
 AliTOFSDigitizer.cxx:798
 AliTOFSDigitizer.cxx:799
 AliTOFSDigitizer.cxx:800
 AliTOFSDigitizer.cxx:801
 AliTOFSDigitizer.cxx:802
 AliTOFSDigitizer.cxx:803
 AliTOFSDigitizer.cxx:804
 AliTOFSDigitizer.cxx:805
 AliTOFSDigitizer.cxx:806
 AliTOFSDigitizer.cxx:807
 AliTOFSDigitizer.cxx:808
 AliTOFSDigitizer.cxx:809
 AliTOFSDigitizer.cxx:810
 AliTOFSDigitizer.cxx:811
 AliTOFSDigitizer.cxx:812
 AliTOFSDigitizer.cxx:813
 AliTOFSDigitizer.cxx:814
 AliTOFSDigitizer.cxx:815
 AliTOFSDigitizer.cxx:816
 AliTOFSDigitizer.cxx:817
 AliTOFSDigitizer.cxx:818
 AliTOFSDigitizer.cxx:819
 AliTOFSDigitizer.cxx:820
 AliTOFSDigitizer.cxx:821
 AliTOFSDigitizer.cxx:822
 AliTOFSDigitizer.cxx:823
 AliTOFSDigitizer.cxx:824
 AliTOFSDigitizer.cxx:825
 AliTOFSDigitizer.cxx:826
 AliTOFSDigitizer.cxx:827
 AliTOFSDigitizer.cxx:828
 AliTOFSDigitizer.cxx:829
 AliTOFSDigitizer.cxx:830
 AliTOFSDigitizer.cxx:831
 AliTOFSDigitizer.cxx:832
 AliTOFSDigitizer.cxx:833
 AliTOFSDigitizer.cxx:834
 AliTOFSDigitizer.cxx:835
 AliTOFSDigitizer.cxx:836
 AliTOFSDigitizer.cxx:837
 AliTOFSDigitizer.cxx:838
 AliTOFSDigitizer.cxx:839
 AliTOFSDigitizer.cxx:840
 AliTOFSDigitizer.cxx:841
 AliTOFSDigitizer.cxx:842
 AliTOFSDigitizer.cxx:843
 AliTOFSDigitizer.cxx:844
 AliTOFSDigitizer.cxx:845
 AliTOFSDigitizer.cxx:846
 AliTOFSDigitizer.cxx:847
 AliTOFSDigitizer.cxx:848
 AliTOFSDigitizer.cxx:849
 AliTOFSDigitizer.cxx:850
 AliTOFSDigitizer.cxx:851
 AliTOFSDigitizer.cxx:852
 AliTOFSDigitizer.cxx:853
 AliTOFSDigitizer.cxx:854
 AliTOFSDigitizer.cxx:855
 AliTOFSDigitizer.cxx:856
 AliTOFSDigitizer.cxx:857
 AliTOFSDigitizer.cxx:858
 AliTOFSDigitizer.cxx:859
 AliTOFSDigitizer.cxx:860
 AliTOFSDigitizer.cxx:861
 AliTOFSDigitizer.cxx:862
 AliTOFSDigitizer.cxx:863
 AliTOFSDigitizer.cxx:864
 AliTOFSDigitizer.cxx:865
 AliTOFSDigitizer.cxx:866
 AliTOFSDigitizer.cxx:867
 AliTOFSDigitizer.cxx:868
 AliTOFSDigitizer.cxx:869
 AliTOFSDigitizer.cxx:870
 AliTOFSDigitizer.cxx:871
 AliTOFSDigitizer.cxx:872
 AliTOFSDigitizer.cxx:873
 AliTOFSDigitizer.cxx:874
 AliTOFSDigitizer.cxx:875
 AliTOFSDigitizer.cxx:876
 AliTOFSDigitizer.cxx:877
 AliTOFSDigitizer.cxx:878
 AliTOFSDigitizer.cxx:879
 AliTOFSDigitizer.cxx:880
 AliTOFSDigitizer.cxx:881
 AliTOFSDigitizer.cxx:882
 AliTOFSDigitizer.cxx:883
 AliTOFSDigitizer.cxx:884
 AliTOFSDigitizer.cxx:885
 AliTOFSDigitizer.cxx:886
 AliTOFSDigitizer.cxx:887
 AliTOFSDigitizer.cxx:888
 AliTOFSDigitizer.cxx:889
 AliTOFSDigitizer.cxx:890
 AliTOFSDigitizer.cxx:891
 AliTOFSDigitizer.cxx:892
 AliTOFSDigitizer.cxx:893
 AliTOFSDigitizer.cxx:894
 AliTOFSDigitizer.cxx:895
 AliTOFSDigitizer.cxx:896
 AliTOFSDigitizer.cxx:897
 AliTOFSDigitizer.cxx:898
 AliTOFSDigitizer.cxx:899
 AliTOFSDigitizer.cxx:900
 AliTOFSDigitizer.cxx:901
 AliTOFSDigitizer.cxx:902
 AliTOFSDigitizer.cxx:903
 AliTOFSDigitizer.cxx:904
 AliTOFSDigitizer.cxx:905
 AliTOFSDigitizer.cxx:906
 AliTOFSDigitizer.cxx:907
 AliTOFSDigitizer.cxx:908
 AliTOFSDigitizer.cxx:909
 AliTOFSDigitizer.cxx:910
 AliTOFSDigitizer.cxx:911
 AliTOFSDigitizer.cxx:912
 AliTOFSDigitizer.cxx:913
 AliTOFSDigitizer.cxx:914
 AliTOFSDigitizer.cxx:915
 AliTOFSDigitizer.cxx:916
 AliTOFSDigitizer.cxx:917
 AliTOFSDigitizer.cxx:918
 AliTOFSDigitizer.cxx:919
 AliTOFSDigitizer.cxx:920
 AliTOFSDigitizer.cxx:921
 AliTOFSDigitizer.cxx:922
 AliTOFSDigitizer.cxx:923
 AliTOFSDigitizer.cxx:924
 AliTOFSDigitizer.cxx:925
 AliTOFSDigitizer.cxx:926
 AliTOFSDigitizer.cxx:927
 AliTOFSDigitizer.cxx:928
 AliTOFSDigitizer.cxx:929
 AliTOFSDigitizer.cxx:930
 AliTOFSDigitizer.cxx:931
 AliTOFSDigitizer.cxx:932
 AliTOFSDigitizer.cxx:933
 AliTOFSDigitizer.cxx:934
 AliTOFSDigitizer.cxx:935
 AliTOFSDigitizer.cxx:936
 AliTOFSDigitizer.cxx:937
 AliTOFSDigitizer.cxx:938
 AliTOFSDigitizer.cxx:939
 AliTOFSDigitizer.cxx:940
 AliTOFSDigitizer.cxx:941
 AliTOFSDigitizer.cxx:942
 AliTOFSDigitizer.cxx:943
 AliTOFSDigitizer.cxx:944
 AliTOFSDigitizer.cxx:945
 AliTOFSDigitizer.cxx:946
 AliTOFSDigitizer.cxx:947
 AliTOFSDigitizer.cxx:948
 AliTOFSDigitizer.cxx:949
 AliTOFSDigitizer.cxx:950
 AliTOFSDigitizer.cxx:951
 AliTOFSDigitizer.cxx:952
 AliTOFSDigitizer.cxx:953
 AliTOFSDigitizer.cxx:954
 AliTOFSDigitizer.cxx:955
 AliTOFSDigitizer.cxx:956
 AliTOFSDigitizer.cxx:957
 AliTOFSDigitizer.cxx:958
 AliTOFSDigitizer.cxx:959
 AliTOFSDigitizer.cxx:960
 AliTOFSDigitizer.cxx:961
 AliTOFSDigitizer.cxx:962
 AliTOFSDigitizer.cxx:963
 AliTOFSDigitizer.cxx:964
 AliTOFSDigitizer.cxx:965
 AliTOFSDigitizer.cxx:966
 AliTOFSDigitizer.cxx:967
 AliTOFSDigitizer.cxx:968
 AliTOFSDigitizer.cxx:969
 AliTOFSDigitizer.cxx:970
 AliTOFSDigitizer.cxx:971
 AliTOFSDigitizer.cxx:972
 AliTOFSDigitizer.cxx:973
 AliTOFSDigitizer.cxx:974
 AliTOFSDigitizer.cxx:975
 AliTOFSDigitizer.cxx:976
 AliTOFSDigitizer.cxx:977
 AliTOFSDigitizer.cxx:978
 AliTOFSDigitizer.cxx:979
 AliTOFSDigitizer.cxx:980
 AliTOFSDigitizer.cxx:981
 AliTOFSDigitizer.cxx:982
 AliTOFSDigitizer.cxx:983
 AliTOFSDigitizer.cxx:984
 AliTOFSDigitizer.cxx:985
 AliTOFSDigitizer.cxx:986
 AliTOFSDigitizer.cxx:987
 AliTOFSDigitizer.cxx:988
 AliTOFSDigitizer.cxx:989
 AliTOFSDigitizer.cxx:990
 AliTOFSDigitizer.cxx:991
 AliTOFSDigitizer.cxx:992
 AliTOFSDigitizer.cxx:993
 AliTOFSDigitizer.cxx:994
 AliTOFSDigitizer.cxx:995
 AliTOFSDigitizer.cxx:996
 AliTOFSDigitizer.cxx:997
 AliTOFSDigitizer.cxx:998
 AliTOFSDigitizer.cxx:999
 AliTOFSDigitizer.cxx:1000
 AliTOFSDigitizer.cxx:1001
 AliTOFSDigitizer.cxx:1002
 AliTOFSDigitizer.cxx:1003
 AliTOFSDigitizer.cxx:1004
 AliTOFSDigitizer.cxx:1005
 AliTOFSDigitizer.cxx:1006
 AliTOFSDigitizer.cxx:1007
 AliTOFSDigitizer.cxx:1008
 AliTOFSDigitizer.cxx:1009
 AliTOFSDigitizer.cxx:1010
 AliTOFSDigitizer.cxx:1011
 AliTOFSDigitizer.cxx:1012
 AliTOFSDigitizer.cxx:1013
 AliTOFSDigitizer.cxx:1014
 AliTOFSDigitizer.cxx:1015
 AliTOFSDigitizer.cxx:1016
 AliTOFSDigitizer.cxx:1017
 AliTOFSDigitizer.cxx:1018
 AliTOFSDigitizer.cxx:1019
 AliTOFSDigitizer.cxx:1020
 AliTOFSDigitizer.cxx:1021
 AliTOFSDigitizer.cxx:1022
 AliTOFSDigitizer.cxx:1023
 AliTOFSDigitizer.cxx:1024
 AliTOFSDigitizer.cxx:1025
 AliTOFSDigitizer.cxx:1026
 AliTOFSDigitizer.cxx:1027
 AliTOFSDigitizer.cxx:1028
 AliTOFSDigitizer.cxx:1029
 AliTOFSDigitizer.cxx:1030
 AliTOFSDigitizer.cxx:1031
 AliTOFSDigitizer.cxx:1032
 AliTOFSDigitizer.cxx:1033
 AliTOFSDigitizer.cxx:1034
 AliTOFSDigitizer.cxx:1035
 AliTOFSDigitizer.cxx:1036
 AliTOFSDigitizer.cxx:1037
 AliTOFSDigitizer.cxx:1038
 AliTOFSDigitizer.cxx:1039
 AliTOFSDigitizer.cxx:1040
 AliTOFSDigitizer.cxx:1041
 AliTOFSDigitizer.cxx:1042
 AliTOFSDigitizer.cxx:1043
 AliTOFSDigitizer.cxx:1044
 AliTOFSDigitizer.cxx:1045
 AliTOFSDigitizer.cxx:1046
 AliTOFSDigitizer.cxx:1047
 AliTOFSDigitizer.cxx:1048
 AliTOFSDigitizer.cxx:1049
 AliTOFSDigitizer.cxx:1050
 AliTOFSDigitizer.cxx:1051
 AliTOFSDigitizer.cxx:1052
 AliTOFSDigitizer.cxx:1053
 AliTOFSDigitizer.cxx:1054
 AliTOFSDigitizer.cxx:1055
 AliTOFSDigitizer.cxx:1056
 AliTOFSDigitizer.cxx:1057
 AliTOFSDigitizer.cxx:1058
 AliTOFSDigitizer.cxx:1059
 AliTOFSDigitizer.cxx:1060
 AliTOFSDigitizer.cxx:1061
 AliTOFSDigitizer.cxx:1062
 AliTOFSDigitizer.cxx:1063
 AliTOFSDigitizer.cxx:1064
 AliTOFSDigitizer.cxx:1065
 AliTOFSDigitizer.cxx:1066
 AliTOFSDigitizer.cxx:1067
 AliTOFSDigitizer.cxx:1068
 AliTOFSDigitizer.cxx:1069
 AliTOFSDigitizer.cxx:1070
 AliTOFSDigitizer.cxx:1071
 AliTOFSDigitizer.cxx:1072
 AliTOFSDigitizer.cxx:1073
 AliTOFSDigitizer.cxx:1074
 AliTOFSDigitizer.cxx:1075
 AliTOFSDigitizer.cxx:1076
 AliTOFSDigitizer.cxx:1077
 AliTOFSDigitizer.cxx:1078
 AliTOFSDigitizer.cxx:1079
 AliTOFSDigitizer.cxx:1080
 AliTOFSDigitizer.cxx:1081
 AliTOFSDigitizer.cxx:1082
 AliTOFSDigitizer.cxx:1083
 AliTOFSDigitizer.cxx:1084
 AliTOFSDigitizer.cxx:1085
 AliTOFSDigitizer.cxx:1086
 AliTOFSDigitizer.cxx:1087
 AliTOFSDigitizer.cxx:1088
 AliTOFSDigitizer.cxx:1089
 AliTOFSDigitizer.cxx:1090
 AliTOFSDigitizer.cxx:1091
 AliTOFSDigitizer.cxx:1092
 AliTOFSDigitizer.cxx:1093
 AliTOFSDigitizer.cxx:1094
 AliTOFSDigitizer.cxx:1095
 AliTOFSDigitizer.cxx:1096
 AliTOFSDigitizer.cxx:1097
 AliTOFSDigitizer.cxx:1098
 AliTOFSDigitizer.cxx:1099
 AliTOFSDigitizer.cxx:1100
 AliTOFSDigitizer.cxx:1101
 AliTOFSDigitizer.cxx:1102
 AliTOFSDigitizer.cxx:1103
 AliTOFSDigitizer.cxx:1104
 AliTOFSDigitizer.cxx:1105
 AliTOFSDigitizer.cxx:1106
 AliTOFSDigitizer.cxx:1107
 AliTOFSDigitizer.cxx:1108
 AliTOFSDigitizer.cxx:1109
 AliTOFSDigitizer.cxx:1110
 AliTOFSDigitizer.cxx:1111
 AliTOFSDigitizer.cxx:1112
 AliTOFSDigitizer.cxx:1113
 AliTOFSDigitizer.cxx:1114
 AliTOFSDigitizer.cxx:1115
 AliTOFSDigitizer.cxx:1116
 AliTOFSDigitizer.cxx:1117
 AliTOFSDigitizer.cxx:1118
 AliTOFSDigitizer.cxx:1119
 AliTOFSDigitizer.cxx:1120
 AliTOFSDigitizer.cxx:1121
 AliTOFSDigitizer.cxx:1122
 AliTOFSDigitizer.cxx:1123
 AliTOFSDigitizer.cxx:1124
 AliTOFSDigitizer.cxx:1125
 AliTOFSDigitizer.cxx:1126
 AliTOFSDigitizer.cxx:1127
 AliTOFSDigitizer.cxx:1128
 AliTOFSDigitizer.cxx:1129
 AliTOFSDigitizer.cxx:1130
 AliTOFSDigitizer.cxx:1131
 AliTOFSDigitizer.cxx:1132
 AliTOFSDigitizer.cxx:1133
 AliTOFSDigitizer.cxx:1134
 AliTOFSDigitizer.cxx:1135
 AliTOFSDigitizer.cxx:1136
 AliTOFSDigitizer.cxx:1137
 AliTOFSDigitizer.cxx:1138
 AliTOFSDigitizer.cxx:1139
 AliTOFSDigitizer.cxx:1140
 AliTOFSDigitizer.cxx:1141
 AliTOFSDigitizer.cxx:1142
 AliTOFSDigitizer.cxx:1143
 AliTOFSDigitizer.cxx:1144
 AliTOFSDigitizer.cxx:1145
 AliTOFSDigitizer.cxx:1146
 AliTOFSDigitizer.cxx:1147
 AliTOFSDigitizer.cxx:1148
 AliTOFSDigitizer.cxx:1149
 AliTOFSDigitizer.cxx:1150
 AliTOFSDigitizer.cxx:1151
 AliTOFSDigitizer.cxx:1152
 AliTOFSDigitizer.cxx:1153
 AliTOFSDigitizer.cxx:1154
 AliTOFSDigitizer.cxx:1155
 AliTOFSDigitizer.cxx:1156
 AliTOFSDigitizer.cxx:1157
 AliTOFSDigitizer.cxx:1158
 AliTOFSDigitizer.cxx:1159
 AliTOFSDigitizer.cxx:1160
 AliTOFSDigitizer.cxx:1161
 AliTOFSDigitizer.cxx:1162
 AliTOFSDigitizer.cxx:1163
 AliTOFSDigitizer.cxx:1164
 AliTOFSDigitizer.cxx:1165
 AliTOFSDigitizer.cxx:1166
 AliTOFSDigitizer.cxx:1167
 AliTOFSDigitizer.cxx:1168
 AliTOFSDigitizer.cxx:1169
 AliTOFSDigitizer.cxx:1170
 AliTOFSDigitizer.cxx:1171
 AliTOFSDigitizer.cxx:1172
 AliTOFSDigitizer.cxx:1173
 AliTOFSDigitizer.cxx:1174
 AliTOFSDigitizer.cxx:1175
 AliTOFSDigitizer.cxx:1176
 AliTOFSDigitizer.cxx:1177
 AliTOFSDigitizer.cxx:1178
 AliTOFSDigitizer.cxx:1179
 AliTOFSDigitizer.cxx:1180
 AliTOFSDigitizer.cxx:1181
 AliTOFSDigitizer.cxx:1182
 AliTOFSDigitizer.cxx:1183
 AliTOFSDigitizer.cxx:1184
 AliTOFSDigitizer.cxx:1185
 AliTOFSDigitizer.cxx:1186
 AliTOFSDigitizer.cxx:1187
 AliTOFSDigitizer.cxx:1188
 AliTOFSDigitizer.cxx:1189
 AliTOFSDigitizer.cxx:1190
 AliTOFSDigitizer.cxx:1191
 AliTOFSDigitizer.cxx:1192
 AliTOFSDigitizer.cxx:1193
 AliTOFSDigitizer.cxx:1194
 AliTOFSDigitizer.cxx:1195
 AliTOFSDigitizer.cxx:1196
 AliTOFSDigitizer.cxx:1197
 AliTOFSDigitizer.cxx:1198
 AliTOFSDigitizer.cxx:1199
 AliTOFSDigitizer.cxx:1200
 AliTOFSDigitizer.cxx:1201
 AliTOFSDigitizer.cxx:1202
 AliTOFSDigitizer.cxx:1203
 AliTOFSDigitizer.cxx:1204
 AliTOFSDigitizer.cxx:1205
 AliTOFSDigitizer.cxx:1206
 AliTOFSDigitizer.cxx:1207
 AliTOFSDigitizer.cxx:1208
 AliTOFSDigitizer.cxx:1209
 AliTOFSDigitizer.cxx:1210
 AliTOFSDigitizer.cxx:1211
 AliTOFSDigitizer.cxx:1212
 AliTOFSDigitizer.cxx:1213
 AliTOFSDigitizer.cxx:1214
 AliTOFSDigitizer.cxx:1215
 AliTOFSDigitizer.cxx:1216
 AliTOFSDigitizer.cxx:1217
 AliTOFSDigitizer.cxx:1218
 AliTOFSDigitizer.cxx:1219
 AliTOFSDigitizer.cxx:1220
 AliTOFSDigitizer.cxx:1221
 AliTOFSDigitizer.cxx:1222
 AliTOFSDigitizer.cxx:1223
 AliTOFSDigitizer.cxx:1224
 AliTOFSDigitizer.cxx:1225
 AliTOFSDigitizer.cxx:1226
 AliTOFSDigitizer.cxx:1227
 AliTOFSDigitizer.cxx:1228
 AliTOFSDigitizer.cxx:1229
 AliTOFSDigitizer.cxx:1230
 AliTOFSDigitizer.cxx:1231
 AliTOFSDigitizer.cxx:1232
 AliTOFSDigitizer.cxx:1233
 AliTOFSDigitizer.cxx:1234
 AliTOFSDigitizer.cxx:1235
 AliTOFSDigitizer.cxx:1236
 AliTOFSDigitizer.cxx:1237
 AliTOFSDigitizer.cxx:1238
 AliTOFSDigitizer.cxx:1239
 AliTOFSDigitizer.cxx:1240
 AliTOFSDigitizer.cxx:1241
 AliTOFSDigitizer.cxx:1242
 AliTOFSDigitizer.cxx:1243
 AliTOFSDigitizer.cxx:1244
 AliTOFSDigitizer.cxx:1245
 AliTOFSDigitizer.cxx:1246
 AliTOFSDigitizer.cxx:1247
 AliTOFSDigitizer.cxx:1248
 AliTOFSDigitizer.cxx:1249
 AliTOFSDigitizer.cxx:1250
 AliTOFSDigitizer.cxx:1251
 AliTOFSDigitizer.cxx:1252
 AliTOFSDigitizer.cxx:1253
 AliTOFSDigitizer.cxx:1254
 AliTOFSDigitizer.cxx:1255
 AliTOFSDigitizer.cxx:1256
 AliTOFSDigitizer.cxx:1257
 AliTOFSDigitizer.cxx:1258
 AliTOFSDigitizer.cxx:1259
 AliTOFSDigitizer.cxx:1260
 AliTOFSDigitizer.cxx:1261
 AliTOFSDigitizer.cxx:1262
 AliTOFSDigitizer.cxx:1263
 AliTOFSDigitizer.cxx:1264
 AliTOFSDigitizer.cxx:1265
 AliTOFSDigitizer.cxx:1266
 AliTOFSDigitizer.cxx:1267
 AliTOFSDigitizer.cxx:1268
 AliTOFSDigitizer.cxx:1269
 AliTOFSDigitizer.cxx:1270
 AliTOFSDigitizer.cxx:1271
 AliTOFSDigitizer.cxx:1272
 AliTOFSDigitizer.cxx:1273
 AliTOFSDigitizer.cxx:1274
 AliTOFSDigitizer.cxx:1275
 AliTOFSDigitizer.cxx:1276
 AliTOFSDigitizer.cxx:1277
 AliTOFSDigitizer.cxx:1278
 AliTOFSDigitizer.cxx:1279
 AliTOFSDigitizer.cxx:1280
 AliTOFSDigitizer.cxx:1281
 AliTOFSDigitizer.cxx:1282
 AliTOFSDigitizer.cxx:1283
 AliTOFSDigitizer.cxx:1284
 AliTOFSDigitizer.cxx:1285
 AliTOFSDigitizer.cxx:1286
 AliTOFSDigitizer.cxx:1287
 AliTOFSDigitizer.cxx:1288
 AliTOFSDigitizer.cxx:1289
 AliTOFSDigitizer.cxx:1290
 AliTOFSDigitizer.cxx:1291
 AliTOFSDigitizer.cxx:1292
 AliTOFSDigitizer.cxx:1293
 AliTOFSDigitizer.cxx:1294
 AliTOFSDigitizer.cxx:1295
 AliTOFSDigitizer.cxx:1296
 AliTOFSDigitizer.cxx:1297
 AliTOFSDigitizer.cxx:1298
 AliTOFSDigitizer.cxx:1299
 AliTOFSDigitizer.cxx:1300
 AliTOFSDigitizer.cxx:1301
 AliTOFSDigitizer.cxx:1302
 AliTOFSDigitizer.cxx:1303
 AliTOFSDigitizer.cxx:1304
 AliTOFSDigitizer.cxx:1305
 AliTOFSDigitizer.cxx:1306
 AliTOFSDigitizer.cxx:1307
 AliTOFSDigitizer.cxx:1308
 AliTOFSDigitizer.cxx:1309
 AliTOFSDigitizer.cxx:1310
 AliTOFSDigitizer.cxx:1311
 AliTOFSDigitizer.cxx:1312
 AliTOFSDigitizer.cxx:1313
 AliTOFSDigitizer.cxx:1314
 AliTOFSDigitizer.cxx:1315
 AliTOFSDigitizer.cxx:1316
 AliTOFSDigitizer.cxx:1317
 AliTOFSDigitizer.cxx:1318
 AliTOFSDigitizer.cxx:1319
 AliTOFSDigitizer.cxx:1320
 AliTOFSDigitizer.cxx:1321
 AliTOFSDigitizer.cxx:1322
 AliTOFSDigitizer.cxx:1323
 AliTOFSDigitizer.cxx:1324
 AliTOFSDigitizer.cxx:1325
 AliTOFSDigitizer.cxx:1326
 AliTOFSDigitizer.cxx:1327
 AliTOFSDigitizer.cxx:1328
 AliTOFSDigitizer.cxx:1329
 AliTOFSDigitizer.cxx:1330
 AliTOFSDigitizer.cxx:1331
 AliTOFSDigitizer.cxx:1332
 AliTOFSDigitizer.cxx:1333
 AliTOFSDigitizer.cxx:1334
 AliTOFSDigitizer.cxx:1335
 AliTOFSDigitizer.cxx:1336
 AliTOFSDigitizer.cxx:1337
 AliTOFSDigitizer.cxx:1338
 AliTOFSDigitizer.cxx:1339
 AliTOFSDigitizer.cxx:1340
 AliTOFSDigitizer.cxx:1341
 AliTOFSDigitizer.cxx:1342
 AliTOFSDigitizer.cxx:1343
 AliTOFSDigitizer.cxx:1344
 AliTOFSDigitizer.cxx:1345
 AliTOFSDigitizer.cxx:1346
 AliTOFSDigitizer.cxx:1347
 AliTOFSDigitizer.cxx:1348
 AliTOFSDigitizer.cxx:1349
 AliTOFSDigitizer.cxx:1350
 AliTOFSDigitizer.cxx:1351
 AliTOFSDigitizer.cxx:1352
 AliTOFSDigitizer.cxx:1353
 AliTOFSDigitizer.cxx:1354
 AliTOFSDigitizer.cxx:1355
 AliTOFSDigitizer.cxx:1356
 AliTOFSDigitizer.cxx:1357
 AliTOFSDigitizer.cxx:1358
 AliTOFSDigitizer.cxx:1359
 AliTOFSDigitizer.cxx:1360
 AliTOFSDigitizer.cxx:1361
 AliTOFSDigitizer.cxx:1362
 AliTOFSDigitizer.cxx:1363
 AliTOFSDigitizer.cxx:1364
 AliTOFSDigitizer.cxx:1365
 AliTOFSDigitizer.cxx:1366
 AliTOFSDigitizer.cxx:1367
 AliTOFSDigitizer.cxx:1368
 AliTOFSDigitizer.cxx:1369
 AliTOFSDigitizer.cxx:1370
 AliTOFSDigitizer.cxx:1371
 AliTOFSDigitizer.cxx:1372
 AliTOFSDigitizer.cxx:1373
 AliTOFSDigitizer.cxx:1374
 AliTOFSDigitizer.cxx:1375
 AliTOFSDigitizer.cxx:1376
 AliTOFSDigitizer.cxx:1377
 AliTOFSDigitizer.cxx:1378
 AliTOFSDigitizer.cxx:1379
 AliTOFSDigitizer.cxx:1380
 AliTOFSDigitizer.cxx:1381
 AliTOFSDigitizer.cxx:1382
 AliTOFSDigitizer.cxx:1383
 AliTOFSDigitizer.cxx:1384
 AliTOFSDigitizer.cxx:1385
 AliTOFSDigitizer.cxx:1386
 AliTOFSDigitizer.cxx:1387
 AliTOFSDigitizer.cxx:1388
 AliTOFSDigitizer.cxx:1389
 AliTOFSDigitizer.cxx:1390
 AliTOFSDigitizer.cxx:1391
 AliTOFSDigitizer.cxx:1392
 AliTOFSDigitizer.cxx:1393
 AliTOFSDigitizer.cxx:1394
 AliTOFSDigitizer.cxx:1395
 AliTOFSDigitizer.cxx:1396
 AliTOFSDigitizer.cxx:1397
 AliTOFSDigitizer.cxx:1398
 AliTOFSDigitizer.cxx:1399
 AliTOFSDigitizer.cxx:1400
 AliTOFSDigitizer.cxx:1401
 AliTOFSDigitizer.cxx:1402
 AliTOFSDigitizer.cxx:1403
 AliTOFSDigitizer.cxx:1404
 AliTOFSDigitizer.cxx:1405
 AliTOFSDigitizer.cxx:1406
 AliTOFSDigitizer.cxx:1407
 AliTOFSDigitizer.cxx:1408
 AliTOFSDigitizer.cxx:1409
 AliTOFSDigitizer.cxx:1410
 AliTOFSDigitizer.cxx:1411
 AliTOFSDigitizer.cxx:1412
 AliTOFSDigitizer.cxx:1413
 AliTOFSDigitizer.cxx:1414
 AliTOFSDigitizer.cxx:1415
 AliTOFSDigitizer.cxx:1416
 AliTOFSDigitizer.cxx:1417
 AliTOFSDigitizer.cxx:1418
 AliTOFSDigitizer.cxx:1419
 AliTOFSDigitizer.cxx:1420
 AliTOFSDigitizer.cxx:1421
 AliTOFSDigitizer.cxx:1422
 AliTOFSDigitizer.cxx:1423
 AliTOFSDigitizer.cxx:1424
 AliTOFSDigitizer.cxx:1425
 AliTOFSDigitizer.cxx:1426
 AliTOFSDigitizer.cxx:1427
 AliTOFSDigitizer.cxx:1428
 AliTOFSDigitizer.cxx:1429
 AliTOFSDigitizer.cxx:1430
 AliTOFSDigitizer.cxx:1431
 AliTOFSDigitizer.cxx:1432
 AliTOFSDigitizer.cxx:1433
 AliTOFSDigitizer.cxx:1434
 AliTOFSDigitizer.cxx:1435
 AliTOFSDigitizer.cxx:1436
 AliTOFSDigitizer.cxx:1437
 AliTOFSDigitizer.cxx:1438
 AliTOFSDigitizer.cxx:1439
 AliTOFSDigitizer.cxx:1440
 AliTOFSDigitizer.cxx:1441
 AliTOFSDigitizer.cxx:1442
 AliTOFSDigitizer.cxx:1443
 AliTOFSDigitizer.cxx:1444
 AliTOFSDigitizer.cxx:1445
 AliTOFSDigitizer.cxx:1446
 AliTOFSDigitizer.cxx:1447
 AliTOFSDigitizer.cxx:1448
 AliTOFSDigitizer.cxx:1449
 AliTOFSDigitizer.cxx:1450
 AliTOFSDigitizer.cxx:1451
 AliTOFSDigitizer.cxx:1452
 AliTOFSDigitizer.cxx:1453
 AliTOFSDigitizer.cxx:1454
 AliTOFSDigitizer.cxx:1455
 AliTOFSDigitizer.cxx:1456
 AliTOFSDigitizer.cxx:1457
 AliTOFSDigitizer.cxx:1458
 AliTOFSDigitizer.cxx:1459
 AliTOFSDigitizer.cxx:1460
 AliTOFSDigitizer.cxx:1461
 AliTOFSDigitizer.cxx:1462
 AliTOFSDigitizer.cxx:1463
 AliTOFSDigitizer.cxx:1464
 AliTOFSDigitizer.cxx:1465
 AliTOFSDigitizer.cxx:1466
 AliTOFSDigitizer.cxx:1467
 AliTOFSDigitizer.cxx:1468
 AliTOFSDigitizer.cxx:1469
 AliTOFSDigitizer.cxx:1470
 AliTOFSDigitizer.cxx:1471
 AliTOFSDigitizer.cxx:1472
 AliTOFSDigitizer.cxx:1473
 AliTOFSDigitizer.cxx:1474
 AliTOFSDigitizer.cxx:1475
 AliTOFSDigitizer.cxx:1476
 AliTOFSDigitizer.cxx:1477
 AliTOFSDigitizer.cxx:1478
 AliTOFSDigitizer.cxx:1479
 AliTOFSDigitizer.cxx:1480
 AliTOFSDigitizer.cxx:1481
 AliTOFSDigitizer.cxx:1482
 AliTOFSDigitizer.cxx:1483
 AliTOFSDigitizer.cxx:1484
 AliTOFSDigitizer.cxx:1485
 AliTOFSDigitizer.cxx:1486
 AliTOFSDigitizer.cxx:1487
 AliTOFSDigitizer.cxx:1488
 AliTOFSDigitizer.cxx:1489
 AliTOFSDigitizer.cxx:1490
 AliTOFSDigitizer.cxx:1491