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.                  *
 **************************************************************************/


///////////////////////////////////////////////////////////////////////////////
//                                                                           //
// TOF tender: for a description of what this tender does see
//             https://twiki.cern.ch/twiki/bin/viewauth/ALICE/TOF
//             It has to be used on LHC2010 data (and old MC productions)
//             
// Contacts: Pietro.Antonioli@bo.infn.it                                     //
//           Francesco.Noferini@bo.infn.it                                   //
///////////////////////////////////////////////////////////////////////////////
#include <TFile.h>
#include <TChain.h>

#include <TMath.h>
#include <TRandom.h>
#include <AliLog.h>
#include <AliESDEvent.h>
#include <AliESDtrack.h>
#include <AliESDInputHandler.h>
#include <AliAnalysisManager.h>
#include <AliESDpid.h>
#include <AliTender.h>

#include <AliTOFcalib.h>
#include <AliTOFT0maker.h>

#include <AliGeomManager.h>
#include <AliCDBManager.h>
#include <AliCDBEntry.h>

#include <AliOADBContainer.h>
#include <AliTOFPIDParams.h>

#include <AliT0CalibSeasonTimeShift.h>

#include <AliMultiplicity.h>

#include "AliTOFTenderSupply.h"

ClassImp(AliTOFTenderSupply)

Float_t AliTOFTenderSupply::fgT0Aresolution = 75.;
Float_t AliTOFTenderSupply::fgT0Cresolution = 65.;

AliTOFTenderSupply::AliTOFTenderSupply() :
  AliTenderSupply(),
  fESDpid(0x0),
  fTenderNoAction(kTRUE),
  fIsMC(kFALSE),
  fCorrectExpTimes(kTRUE),
  fCorrectTRDBug(kFALSE),
  fLHC10dPatch(kFALSE),
  fT0DetectorAdjust(kFALSE),
  fDebugLevel(0),
  fAutomaticSettings(kTRUE),
  fRecoPass(0),
  fUserRecoPass(0),
  fForceCorrectTRDBug(kFALSE),
  fT0Simulate(kFALSE),
  fTOFPIDParams(0x0),
  fTOFCalib(0x0),
  fTOFT0maker(0x0),
  fT0IntercalibrationShift(0),
  fGeomSet(kFALSE),
  fIsEnteringInTRD(kFALSE),
  fInTRD(kFALSE),
  fIsComingOutTRD(kFALSE),
  fOutTRD(kFALSE),
  fRhoTRDin(288.38), // cm
  fRhoTRDout(366.38), // cm
  fStep(0.5),
  fMagField(0.),
  fCDBkey(0)



{
  //
  // default ctor
  //
  fT0shift[0] = 0;
  fT0shift[1] = 0;
  fT0shift[2] = 0;
  fT0shift[3] = 0;
}

//_____________________________________________________
AliTOFTenderSupply::AliTOFTenderSupply(const char *name, const AliTender *tender) :
  AliTenderSupply(name,tender),
  fESDpid(0x0),
  fTenderNoAction(kTRUE),
  fIsMC(kFALSE),
  fCorrectExpTimes(kTRUE),
  fCorrectTRDBug(kFALSE),
  fLHC10dPatch(kFALSE),
  fT0DetectorAdjust(kFALSE),
  fDebugLevel(0),
  fAutomaticSettings(kTRUE),
  fRecoPass(0),
  fUserRecoPass(0),
  fForceCorrectTRDBug(kFALSE),
  fT0Simulate(kFALSE),
  fTOFPIDParams(0x0),
  fTOFCalib(0x0),
  fTOFT0maker(0x0),
  fT0IntercalibrationShift(0),
  fGeomSet(kFALSE),
  fIsEnteringInTRD(kFALSE),
  fInTRD(kFALSE),
  fIsComingOutTRD(kFALSE),
  fOutTRD(kFALSE),
  fRhoTRDin(288.38), // cm
  fRhoTRDout(366.38), // cm
  fStep(0.5),
  fMagField(0.),
  fCDBkey(0)
 
{
  //
  // named ctor
  //

  fT0shift[0] = 0;
  fT0shift[1] = 0;
  fT0shift[2] = 0;
  fT0shift[3] = 0;
}

//_____________________________________________________
void AliTOFTenderSupply::Init()
{

  fTenderNoAction = kFALSE;
  // Initialise TOF tender (this is called at each detected run change)
  AliLog::SetClassDebugLevel("AliTOFTenderSupply",10); 

  // Setup PID object, check for MC, set AliTOFcalib and TOFT0 maker conf
  Int_t run = fTender->GetRun();
  if (run == 0) return;                // to skip first init, when we don't have yet a run number

  fGeomSet=kFALSE;                         
  // Even if the user didn't set fIsMC, we force it on if we find the MC handler  
  AliAnalysisManager *mgr=AliAnalysisManager::GetAnalysisManager();
  if (mgr->GetMCtruthEventHandler() && !(fIsMC) ) {
    AliWarning("This ESD is MC, fIsMC found OFF: fIsMC turned ON");
    fIsMC=kTRUE;
  }

  if (fAutomaticSettings) {
    if (!fIsMC) {
      if (fUserRecoPass == 0) DetectRecoPass();
      else fRecoPass = fUserRecoPass;
    }
    if (run<114737) {
      fTenderNoAction = kTRUE;
    }
    else if (run>=114737&&run<=117223) {      //period="LHC10B";
      if (!fIsMC) {
	if (fRecoPass == 2) {
	  fCorrectExpTimes=kTRUE; 
	  fCorrectTRDBug=kFALSE;}
	else if (fRecoPass == 3) {
	  fCorrectExpTimes=kFALSE;
	  fCorrectTRDBug=kTRUE;
	}
	fLHC10dPatch=kFALSE;
	fT0IntercalibrationShift = 0;
	fT0DetectorAdjust=kFALSE;  // previously was true (we acted as a T0 tender)
      } else if (fIsMC) {
	fT0DetectorAdjust=kFALSE;
	fT0Simulate=kTRUE;
	fCorrectExpTimes=kTRUE;
      }
    }
    else if (run>=118503&&run<=121040) { //period="LHC10C";
      if (!fIsMC) {
	if (fRecoPass == 2) {fCorrectExpTimes=kTRUE; fCorrectTRDBug=kFALSE;}
	else if (fRecoPass == 3) {fCorrectExpTimes=kFALSE; fCorrectTRDBug=kTRUE;}
	fLHC10dPatch=kFALSE;
	fT0IntercalibrationShift = 0;
	fT0DetectorAdjust=kFALSE;  // previously was true (we acted as a T0 tender)
      } else if (fIsMC) {
	fT0DetectorAdjust=kFALSE;
	fT0Simulate=kTRUE;       
	fCorrectExpTimes=kTRUE;
      }
    }
    else if (run>=122195&&run<=126437) { //period="LHC10D";
      if (!fIsMC) {
        fCorrectExpTimes=kFALSE;
        fLHC10dPatch=kTRUE;
	fT0DetectorAdjust=kFALSE;  // previously was true (we acted as a T0 tender)
	fT0IntercalibrationShift = 0;
      } else if (fIsMC) {
        fCorrectExpTimes=kTRUE;    // for old MC the expected times bug was there
        fLHC10dPatch=kFALSE;       // but not the fake geometry
	fT0DetectorAdjust=kFALSE;
	fT0Simulate=kTRUE;
      }
    }
    else if (run>=127719&&run<=130850) { //period="LHC10E";
      if (!fIsMC) {
	fCorrectExpTimes=kFALSE;
	fLHC10dPatch=kFALSE;
	fT0DetectorAdjust=kFALSE;            // previously was true (we acted as a T0 tender)
	fT0IntercalibrationShift = 0.;       // this was 30 before, but it is now handled via TOFPIDResponse inside OADB
      } else if (fIsMC) {
	fCorrectExpTimes=kTRUE;    // this is not fully correct for newer productions like LHC11b2 but we live with this
	fT0DetectorAdjust=kFALSE;
	fT0Simulate=kTRUE;
      }
    }
    else if (run>=133004&&run<=135029) { //period="LHC10F";
      fTenderNoAction=kTRUE;
    }
    else if (run>=135654&&run<=136377) { //period="LHC10G";
      fTenderNoAction=kTRUE;
    }
    else if (run>=136851&&run<=139517) { //period="LHC10H" - pass2;
      fCorrectExpTimes=kFALSE;
      fLHC10dPatch=kFALSE;                
      fT0IntercalibrationShift = 0.;
      fT0DetectorAdjust=kFALSE;          // it was kTRUE
    }
    else if (run>=139699) {              //period="LHC11A";
      fTenderNoAction=kTRUE;
    }
  }

  if (fTenderNoAction) {
    AliInfo(" |---------------------------------------------------------------------------|");
    AliInfo(" |                                                                           |");
    AliInfo(Form(" |  TOF tender is not supported for run %d                           |",run));
    AliInfo(" |  TOF tender will do nothing.                                              |");
    AliInfo(" |  Check TOF tender usage for run/periods at:                               |");
    AliInfo(" |  https://twiki.cern.ch/twiki/bin/view/ALICE/TOF.                          |");
    AliInfo(" |---------------------------------------------------------------------------|");
    AliInfo(" ");
    return;
  }


  // Load from OADB TOF resolution
  LoadTOFPIDParams(run);

  // Check if another tender wagon already created the esd pid object
  // if not we create it and set it to the ESD input handler
  fESDpid=fTender->GetESDhandler()->GetESDpid();
  if (!fESDpid) {
    fESDpid=new AliESDpid;
    fTender->GetESDhandler()->SetESDpid(fESDpid);
  }


  // Configure TOF calibration class
  if (!fTOFCalib)fTOFCalib=new AliTOFcalib();  // create if needed
  fTOFCalib->SetRemoveMeanT0(!(fIsMC));        // must be kFALSE on MC (default is kTRUE)
  fTOFCalib->SetCalibrateTOFsignal(!(fIsMC));  // must be kFALSE on MC (no new calibration) (default is kTRUE)
  fTOFCalib->SetCorrectTExp(fCorrectExpTimes); // apply a fine tuning on the expected times at low momenta
                                               // (this is done for LHC10b/LHC10c pass2)

  // Configure TOFT0 maker class
  //  if (!fTOFT0maker) fTOFT0maker = new AliTOFT0maker(fESDpid,fTOFCalib); // create if needed
  if (!fTOFT0maker) fTOFT0maker = new AliTOFT0maker(fESDpid); // without passing AliTOFCalib it uses the diamond
  fTOFT0maker->SetTimeResolution(fTOFPIDParams->GetTOFresolution());     // set TOF resolution for the PID
  fTOFT0maker->SetTOFT0algorithm(2);

  AliInfo("|******************************************************|");
  AliInfo(Form("|    Alice TOF Tender Initialisation (Run %d)  |",fTender->GetRun()));
  AliInfo("|    Settings:                                         |");
  AliInfo(Form("|    Correct Exp Times              :  %d               |",fCorrectExpTimes));
  AliInfo(Form("|    Correct TRD Bug                :  %d               |",fCorrectTRDBug));
  AliInfo(Form("|    LHC10d patch                   :  %d               |",fLHC10dPatch));
  AliInfo(Form("|    TOF resolution for TOFT0 maker :  %5.2f (ps)     |",fTOFPIDParams->GetTOFresolution()));
  AliInfo(Form("|    MC flag (start time added)     :  %d               |",fIsMC));
  AliInfo(Form("|    T0 detector offsets applied    :  %d               |",fT0DetectorAdjust));
  AliInfo(Form("|    T0 signal re-sampled           :  %d               |",fT0Simulate));
  AliInfo(Form("|    TOF/T0 intercalibration shift   :  %5.2f (ps)     |",fT0IntercalibrationShift));
  AliInfo("|******************************************************|");


}

//_____________________________________________________
void AliTOFTenderSupply::ProcessEvent()
{
  //
  // Use updated calibrations for TOF and T0, reapply PID information
  // For MC: timeZero sampling and additional smearing for T0

  if (fDebugLevel > 1) AliInfo("process event");

  AliESDEvent *event=fTender->GetEvent();
  if (!event) return;
  if (fDebugLevel > 1) AliInfo("event read");


    
  if (fTender->RunChanged()){ 

    Init();

    if (fTenderNoAction) return;            
    Int_t versionNumber = GetOCDBVersion(fTender->GetRun());
    fTOFCalib->SetRunParamsSpecificVersion(versionNumber);
    fTOFCalib->Init(fTender->GetRun());
    
    if(event->GetT0TOF()){ // read T0 detector correction from OCDB
	// OCDB instance
	if (fT0DetectorAdjust) {
	  AliCDBManager* ocdbMan = AliCDBManager::Instance();
	  ocdbMan->SetRun(fTender->GetRun());    
	  AliCDBEntry *entry = ocdbMan->Get("T0/Calib/TimeAdjust/");
	  if(entry) {
	    AliT0CalibSeasonTimeShift *clb = (AliT0CalibSeasonTimeShift*) entry->GetObject();
	    Float_t *t0means= clb->GetT0Means();
	    //      Float_t *t0sigmas = clb->GetT0Sigmas();
	    fT0shift[0] = t0means[0] + fT0IntercalibrationShift;
	    fT0shift[1] = t0means[1] + fT0IntercalibrationShift;
	    fT0shift[2] = t0means[2] + fT0IntercalibrationShift;
	    fT0shift[3] = t0means[3] + fT0IntercalibrationShift;
	  } else {
	    for (Int_t i=0;i<4;i++) fT0shift[i]=0;
	    AliWarning("TofTender no T0 entry found T0shift set to 0");
	  }
	} else {
	  for (Int_t i=0;i<4;i++) fT0shift[i]=0;
	}
    }
  }

  if (fTenderNoAction) return;

  fTOFCalib->CalibrateESD(event);   //recalculate TOF signal (no harm for MC, see settings inside init)


  // patches for various reconstruction bugs
  if (fLHC10dPatch && !(fIsMC)) RecomputeTExp(event);   // LHC10d pass2: fake full TRD geometry
  if ( (fCorrectTRDBug && !(fIsMC)) || (fForceCorrectTRDBug)) FixTRDBug(event);     // LHC10b,c pass3: wrong TRD dE/dx 

  Double_t startTime = 0.;
  if (fIsMC) startTime = fTOFCalib->TuneForMC(event,fTOFPIDParams->GetTOFresolution());   // this is for old MC when we didn't jitter startTime in MC

  if (fDebugLevel > 1) Printf(" TofTender: startTime %f",startTime);
  if (fDebugLevel > 1) Printf(" TofTender: T0 time (orig) %f %f %f",event->GetT0TOF(0),event->GetT0TOF(1),event->GetT0TOF(2));

  // event by event TO detector treatment  
  if(event->GetT0TOF()){   // protection: we adjust T0 only if it is there....

    if (event->GetT0TOF(0) == 0) event->SetT0TOF(0, 9999999.); // in case no information we set to unknown
    if (event->GetT0TOF(1) == 0) event->SetT0TOF(1, 99999.);
    if (event->GetT0TOF(2) == 0) event->SetT0TOF(2, 99999.);

    if ( (fT0DetectorAdjust) && !(fIsMC) ) {  // DATA: apply shifts to align around T0: this is like a T0 tender!!
	event->SetT0TOF(0,event->GetT0TOF(0) - fT0shift[0]);
	event->SetT0TOF(1,event->GetT0TOF(1) - fT0shift[1]);
	event->SetT0TOF(2,event->GetT0TOF(2) - fT0shift[2]);
    }
    if (fIsMC) {
      if (fT0DetectorAdjust)  { // MC case 1: add an additional contribution to resolution
	// MC: add smearing for realistic T0A and T0C resolution
	Double_t defResolutionT0A = 33.;   // in future we will get this from ESDrun data structure or via OCDB
	Double_t defResolutionT0C = 30.;   // for the moment we don't trust them
	if ( (fgT0Aresolution > defResolutionT0A) && (event->GetT0TOF(1)<90000.) ) { // add smearing only if signal is there
	  Double_t addedSmearingT0A = TMath::Sqrt(fgT0Aresolution*fgT0Aresolution - defResolutionT0A*defResolutionT0A);
	  Double_t smearingT0A = gRandom->Gaus(0.,addedSmearingT0A);
	  event->SetT0TOF(1,event->GetT0TOF(1) + smearingT0A);
	}
	if ( (fgT0Cresolution > defResolutionT0C) && (event->GetT0TOF(2)<90000.) ) { // add smearing only if signal is there
	Double_t addedSmearingT0C = TMath::Sqrt(fgT0Cresolution*fgT0Cresolution - defResolutionT0C*defResolutionT0C);
	Double_t smearingT0C = gRandom->Gaus(0.,addedSmearingT0C);
        event->SetT0TOF(2,event->GetT0TOF(2) + smearingT0C);
	}
	if (event->GetT0TOF(0)<90000.) { // we recompute the AND only if it is already there...
	  Double_t smearedT0AC = (event->GetT0TOF(1)+event->GetT0TOF(2))/2.;
	  event->SetT0TOF(0,smearedT0AC); 
	}
	if (fDebugLevel > 1) Printf(" TofTender: T0 time (postSmear) %f %f %f",event->GetT0TOF(0),event->GetT0TOF(1),event->GetT0TOF(2));
      } 
      else if (fT0Simulate) {  // MC case 2: we completely simulate signal in T0 based on multiplicity in ITS and vtx position
	event->SetT0TOF(0, 9999999.); // we wipe-out whatever is there
	event->SetT0TOF(1, 99999.);
        event->SetT0TOF(2, 99999.);
	if (fDebugLevel > 1) Printf(" TofTender: T0 time (after wipe-out) %f %f %f",event->GetT0TOF(0),event->GetT0TOF(1),event->GetT0TOF(2));
	AliESDVertex *fvtx = (AliESDVertex*)event->GetPrimaryVertex();
	Double_t zvtx = fvtx->GetZ();
	Double_t tracklets[2] = {0.,0.};
	GetTrackletsForT0(event,&tracklets[0],&tracklets[1]);
	if (fDebugLevel > 1) Printf(" TofTender: T0 simul (z vtx tracklets A/C) %f %f %f",zvtx,tracklets[0],tracklets[1]);
	for (Int_t side = 0; side < 2; side ++) {    // side 0 = T0A - side 1 = T0C
	  Double_t signal = SampleT0Signal(side,zvtx,tracklets[side]);  // if not fired we return 99999.
	  event->SetT0TOF(side+1,signal);            // but for the T0 structure we need to add 1...
	}
	if ( (event->GetT0TOF(1) < 1000.) && (event->GetT0TOF(2) < 1000.) ) { // both signals are there
	  Double_t meanT0AC=(event->GetT0TOF(1)+event->GetT0TOF(2))/2.;
	  event->SetT0TOF(0,meanT0AC); 
	}
	if (fDebugLevel > 1) Printf(" TofTender: T0 simul (AC A C) %f %f %f",event->GetT0TOF(0),event->GetT0TOF(1),event->GetT0TOF(2));
      }
      // add the startTime offset also to the T0 detector information
      event->SetT0TOF(0,event->GetT0TOF(0) + startTime);
      event->SetT0TOF(1,event->GetT0TOF(1) + startTime);
      event->SetT0TOF(2,event->GetT0TOF(2) + startTime);  
      if (fDebugLevel > 1) Printf(" TofTender: T0 time (postStart AC A C) %f %f %f",event->GetT0TOF(0),event->GetT0TOF(1),event->GetT0TOF(2));
    }
    // after shifts adjust (data) or smearing+offset (MC) we 'clean' to default if signals not there 
    if(event->GetT0TOF(0) > 900000) event->SetT0TOF(0, 999999.);
    if(event->GetT0TOF(1) > 90000)  event->SetT0TOF(1, 99999.);
    if(event->GetT0TOF(2) > 90000)  event->SetT0TOF(2, 99999.);
  }
  if (fDebugLevel > 1) Printf(" TofTender: T0 time (FINAL) %f %f %f",event->GetT0TOF(0),event->GetT0TOF(1),event->GetT0TOF(2));
  
  //compute timeZero of the event via TOF-TO
  fTOFT0maker->ComputeT0TOF(event);
  fTOFT0maker->WriteInESD(event);

  //  set preferred startTime: this is now done via AliPIDResponseTask
  fESDpid->SetTOFResponse(event, (AliESDpid::EStartTimeType_t)fTOFPIDParams->GetStartTimeMethod());

  // recalculate PID probabilities
  // this is for safety, especially if the user doesn't attach a PID tender after TOF tender  
  Int_t ntracks=event->GetNumberOfTracks();
  //  AliESDtrack *track = NULL;
  //  Float_t tzeroTrack = 0;
  for(Int_t itrack = 0; itrack < ntracks; itrack++){
    //    track = event->GetTrack(itrack);
    //    tzeroTrack = fESDpid->GetTOFResponse().GetStartTime(track->P());
    //    Printf("================> Track # %d mom: %f tzeroTrack %f",itrack,track->P(),tzeroTrack);
    fESDpid->MakeTOFPID(event->GetTrack(itrack),0);   
  }
  
  
}


//_____________________________________________________
void AliTOFTenderSupply::RecomputeTExp(AliESDEvent *event) const
{
  /*
   * calibrate TExp
   */

  
  /* loop over tracks */
  AliESDtrack *track = NULL;
  for (Int_t itrk = 0; itrk < event->GetNumberOfTracks(); itrk++) {
    /* get track and calibrate */
    track = event->GetTrack(itrk);
    RecomputeTExp(track);
  }
  
}

//_____________________________________________________
void AliTOFTenderSupply::RecomputeTExp(AliESDtrack *track) const
{
  /*** 
       THIS METHOD IS BASED ON THEORETICAL EXPECTED TIME COMPUTED
       USING AVERAGE MOMENTUM BETWEEN INNER/OUTER TRACK PARAMS 
       IT IS A ROUGH APPROXIMATION APPLIED TO FIX LHC10d-pass2 DATA
       WHERE A WRONG GEOMETRY (FULL TRD) WAS INSERTED
  ***/

  Double_t texp[AliPID::kSPECIESC];
  if (!track || !(track->GetStatus() & AliESDtrack::kTOFout)) return;


  /* get track params */
  Float_t l = track->GetIntegratedLength();
  Float_t p = track->P();
  if (track->GetInnerParam() && track->GetOuterParam()) {
    Float_t pin = track->GetInnerParam()->P();
    Float_t pout = track->GetOuterParam()->P();
    p = 0.5 * (pin + pout);
  }
  /* loop over particle types and compute expected time */
  for (Int_t ipart = 0; ipart < AliPID::kSPECIES; ipart++)
    texp[ipart] = GetExpTimeTh(AliPID::ParticleMass(ipart), p, l) - 37.; 
  // 37 is a final semiempirical offset to further adjust (calibrations were
  // done with "standard" integratedTimes)

  // in old ESDs like this horridous LHC10d pass2 light nuclei were not supported...
  for (Int_t ipart = AliPID::kProton+1; ipart < AliPID::kSPECIESC; ipart++) texp[ipart]=0.;

  /* set integrated times */
  track->SetIntegratedTimes(texp);

}


//______________________________________________________________________________
void AliTOFTenderSupply::DetectRecoPass()
{
  //
  // Detect reconstruction information
  //
  
  //reset information
  fRecoPass=0;
  
  //Get the current file to check the reconstruction pass (UGLY, but not stored in ESD... )
  AliAnalysisManager *mgr=AliAnalysisManager::GetAnalysisManager();
  AliVEventHandler *inputHandler=mgr->GetInputEventHandler();
  if (!inputHandler) return;
  
  TTree *tree= (TTree*)inputHandler->GetTree();
  TFile *file= (TFile*)tree->GetCurrentFile();
  
  if (!file) {
    AliFatal("Current file not found");
    return; // coverity
  }
  
  //find pass from file name (UGLY, but not stored in ESD... )
  TString fileName(file->GetName());
  if (fileName.Contains("pass1") ) {
    fRecoPass=1;
  } else if (fileName.Contains("pass2") ) {
    fRecoPass=2;
  } else if (fileName.Contains("pass3") ) {
    fRecoPass=3;
  } else if (fileName.Contains("pass4") ) {
    fRecoPass=4;
  } else if (fileName.Contains("pass5") ) {
    fRecoPass=5;
  } else if (fileName.Contains("pass6") ) {
    fRecoPass=6;
  }
  if (fRecoPass == 0) {
    AliInfo(Form("From file name %s reco pass cannot be detected",fileName.Data()));
    AliInfo("Change file name or use SetUserRecoPass method");
    AliFatal("------------- TOF tender cannot run with reco pass unspecified, issuing FATAL error ---------- ");
  }
}


//______________________________________________________________________________
void AliTOFTenderSupply::InitGeom()
{

  if (fGeomSet == kTRUE) return;

  //  Printf("\n \n ----- calling InitGeom to fix TRD Bug ----- \n \n");
  AliCDBManager * man = AliCDBManager::Instance();
  man->SetDefaultStorage("raw://");
  fCDBkey = man->SetLock(kFALSE, fCDBkey);
  Int_t run = fTender->GetRun();
  //  Printf(" ---------> run is %d",run);
  man->SetRun(run);
  AliCDBEntry *entry = (AliCDBEntry*)man->Get("GRP/Geometry/Data");
  if (entry) {
    AliGeomManager::LoadGeometry();
    AliGeomManager::ApplyAlignObjsFromCDB("ITS TPC TRD TOF");
    //    fCDBkey = man->SetLock(kTRUE, fCDBkey);
    //    Printf("\n \n ----- Geometry loaded ------ \n \n");
  }
  fGeomSet=kTRUE;

}


//______________________________________________________________________________
void AliTOFTenderSupply::FixTRDBug(AliESDEvent* event)
//
// recompute texp fixing wrong dE/dx from TRD (LHC10b,c pass3)
//
{

  if (fGeomSet == kFALSE) InitGeom();

  //  Printf("Running FixTRD bug ");
  /* loop over tracks */
  AliESDtrack *track = NULL;
  for (Int_t itrk = 0; itrk < event->GetNumberOfTracks(); itrk++) {
    track = event->GetTrack(itrk);
    FixTRDBug(track);
  }
}


//_____________________________________________________
void AliTOFTenderSupply::FixTRDBug(AliESDtrack *track)
{
  // 
  //
  //


    ULong_t status=track->GetStatus();
    if (!( ( (status & AliVTrack::kITSrefit)==AliVTrack::kITSrefit ) &&
	   ( (status & AliVTrack::kTPCrefit)==AliVTrack::kTPCrefit ) &&
	   ( (status & AliVTrack::kTPCout)==AliVTrack::kTPCout ) &&
	   ( (status & AliVTrack::kTOFout)==AliVTrack::kTOFout ) &&
	   ( (status & AliVTrack::kTIME)==AliVTrack::kTIME ) ) ) return;

    fIsEnteringInTRD=kFALSE;
    fInTRD=kFALSE;
    fIsComingOutTRD=kFALSE;
    fOutTRD=kFALSE;

    //    Printf("Track reached TOF %f",track->P());
    Double_t correctionTimes[AliPID::kSPECIES] = {0.,0.,0.,0.,0.}; // to be added to the expected times
    FindTRDFix(track, correctionTimes);
    Double_t expectedTimes[AliPID::kSPECIESC] = {0.,0.,0.,0.,0.,0.,0.,0.,0.}; 
    track->GetIntegratedTimes(expectedTimes,AliPID::kSPECIESC);
    //    Printf("Exp. times: %f %f %f %f %f",
    //	   expectedTimes[0],expectedTimes[1],expectedTimes[2],expectedTimes[3],expectedTimes[4]);
    //    Printf("Corr. times: %f %f %f %f %f",
    //	   correctionTimes[0],correctionTimes[1],correctionTimes[2],correctionTimes[3],correctionTimes[4]);

    for (Int_t jj=0; jj<AliPID::kSPECIES; jj++) expectedTimes[jj]+=correctionTimes[jj];
    // we only correct up to protons, for this horridous LHC10d pass2 light nuclei were not supported
    // so expected times will remain zero
    track->SetIntegratedTimes(expectedTimes);
  
}


//________________________________________________________________________
void AliTOFTenderSupply::FindTRDFix(AliESDtrack *track,Double_t *corrections)
{

  Double_t pT = track->Pt();
  ULong_t status=track->GetStatus();
  Bool_t isTRDout = (status & AliVTrack::kTRDout)==AliVTrack::kTRDout;

  Double_t length = 0.;

  Double_t xyzIN[3]={0.,0.,0.};
  fIsEnteringInTRD = track->GetXYZAt(fRhoTRDin,fMagField,xyzIN);

  Double_t xyzOUT[3]={0.,0.,0.};
  fIsComingOutTRD = track->GetXYZAt(fRhoTRDout,fMagField,xyzOUT);

  if (fIsEnteringInTRD && fIsComingOutTRD) {


    Double_t phiIN = TMath::Pi()+TMath::ATan2(-xyzIN[1],-xyzIN[0]);
    phiIN *= TMath::RadToDeg();
    fInTRD = ( (phiIN>=  0. && phiIN<= 40.) ||
	       (phiIN>=140. && phiIN<=220.) ||
	       (phiIN>=340. && phiIN<=360.) ); // TRD SMs installed @ 2010

    Double_t phiOUT = TMath::Pi()+TMath::ATan2(-xyzOUT[1],-xyzOUT[0]);
    phiOUT *= TMath::RadToDeg();
    fOutTRD = ( (phiOUT>=  0. && phiOUT<= 40.) ||
		(phiOUT>=140. && phiOUT<=220.) ||
		(phiOUT>=340. && phiOUT<=360.) ); // TRD SMs installed @ 2010

    length = 0.;

    if (fInTRD || fOutTRD) {

      if ( ( fInTRD && fOutTRD ) || ( fInTRD && !fOutTRD ) ) {
	length = EstimateLengthInTRD1(track);
      } else if ( !fInTRD && fOutTRD ) {
	length = EstimateLengthInTRD2(track);
      }

    } else { // ( !fInTRD && !fOutTRD )

      length = EstimateLengthOutTRD(track);

    }

  }
  //  Printf("estimated length in TRD %f [isTRDout %d]",length,isTRDout);
  CorrectDeltaTimes(pT,length,isTRDout,corrections);

}

//________________________________________________________________________
void AliTOFTenderSupply::CorrectDeltaTimes(Double_t pT,
						Double_t length,
						Bool_t flagTRDout,
						Double_t *corrections)
{

  corrections[2] = CorrectExpectedPionTime(pT,length,flagTRDout);
  corrections[0] = corrections[2]; // x electrons used pion corrections
  corrections[1] = corrections[2]; // x muons used pion corrections
  corrections[3] = CorrectExpectedKaonTime(pT,length,flagTRDout);
  corrections[4] = CorrectExpectedProtonTime(pT,length,flagTRDout);

}

//________________________________________________________________________
Double_t AliTOFTenderSupply::CorrectExpectedPionTime(Double_t pT,
							  Double_t length,
							  Bool_t isTRDout)
{
  // correction for expected time for pions

  Double_t delta=0.;

  //  Printf("Flags Ent In ComingOut Out %d %d %d %d",fIsEnteringInTRD,fInTRD,fIsComingOutTRD,fOutTRD);
  if (!fIsEnteringInTRD || !fIsComingOutTRD) { // zone 5

    Float_t p[2]={0.,0.};

    if (isTRDout) {

      if (pT<0.30) {
	p[0] = 180.; p[1] = 0.;
      } else if (pT>=0.30 && pT<0.35) {
	p[0] = 740.; p[1] = -1800.;
      } else if (pT>=0.35 && pT<0.40) {
	p[0] = 488.; p[1] =-1080.;
      } else if (pT>=0.40 && pT<0.45) {
	p[0] = 179.; p[1] = -307.;
      } else if (pT>=0.45 && pT<0.50) {
	p[0] =  97.; p[1] = -123.;
      } else { //if (pT>=0.50)
	p[0] = 120.; p[1] = -172.;
      }

    } else {

      if (pT<0.30) {
	p[0] =  70.; p[1] =    0.;
      } else if (pT>=0.30 && pT<0.35) {
	p[0] = 339.; p[1] = -927.;
      } else if (pT>=0.35 && pT<0.40) {
	p[0] =  59.; p[1] = -121.;
      } else if (pT>=0.40 && pT<0.50) {
	p[0] =  21.; p[1] =  -24.;
      } else { //if (pT>=0.50)
	p[0] =  42.; p[1] =  -67.;
      }

    }

    delta = p[0]+p[1]*pT;
    //    Printf("Pion time: %f %f %f %f",p[0],p[1],length,delta);

  } else {

    Float_t p[2] = {0.,0.};

    if ( fInTRD &&  fOutTRD) { // zone 1

      if (isTRDout) {

	if (length<130.) {
	  p[0] = 0.; p[1] = 0.;
	} else if (length>=130. && length<170.) {
	  p[0] = -20.5; p[1] = 0.25;
	} else {//if (length>=170.)
	  p[0] = 22.; p[1] = 0.;
	}

      } else { // !isTRDout

	p[0] = 20.; p[1] = 0.;

      }

    } else if (!fInTRD && !fOutTRD) { // zone 2

      p[0] = 0.; p[1] = 0.;

    } else if ( fInTRD &&  !fOutTRD) { // zone 3

      if (isTRDout) {

	if (length< 75.) {
	  p[0] = 17.; p[1] =  0.;
	} else if (length>= 75. && length< 95.) {
	  p[0] = 81.; p[1] = -0.85;
	} else if (length>= 95. && length<155.) {
	  p[0] =  0.; p[1] =  0.;
	} else {//if (length>=155.)
	  p[0] = 10.; p[1] =  0.;
	}

      } else { // !isTRDout

	p[0] = 0.; p[1] = 0.;

      }

    } else if (!fInTRD &&  fOutTRD) { // zone 4

      if (isTRDout) {

	if (length<80.) {
	  p[0] =  0.; p[1] =  0.;
	} else {//if (length>=80.)
	  p[0] = 10.; p[1] =  0.;
	}

      } else { // !isTRDout

	if (length<30.) {
	  p[0] =  0.; p[1] =  0.;
	} else {//if (length>=30.)
	  p[0] =  6.; p[1] =  0.;
	}

      }

    }

    delta = p[0]+p[1]*length;
    //    Printf("Pion time: %f %f %f %f",p[0],p[1],length,delta);

  }

  return delta;

}

//________________________________________________________________________
Double_t AliTOFTenderSupply::CorrectExpectedKaonTime(Double_t pT,
							  Double_t length,
							  Bool_t isTRDout)
{
  // correction for expected time for kaons

  Double_t delta=0.;
  //  Printf("Flags Ent In ComingOut Out %d %d %d %d",fIsEnteringInTRD,fInTRD,fIsComingOutTRD,fOutTRD);

  if (!fIsEnteringInTRD || !fIsComingOutTRD) { // zone 5

    Float_t p[2]={0.,0.};

    if (isTRDout) {

      if (pT<0.4) {
	p[0] =  900.; p[1] = 0.;
      } else if (pT>=0.40 && pT<0.45) {
	p[0] = 3100.; p[1] = -6000.;
      } else if (pT>=0.45 && pT<0.50) {
	p[0] = 1660.; p[1] = -2800.;
      } else if (pT>=0.50 && pT<0.55) {
	p[0] =  860.; p[1] = -1200.;
      } else { //if (pT>=0.55)
	p[0] =  200.; p[1] = 0.;
      }

    } else {

      if (pT<0.30) {
	p[0] =   0.; p[1] =    0.;
      } else if (pT>=0.30 && pT<0.32) {
	p[0] = 570.; p[1] =    0.;
      } else if (pT>=0.32 && pT<0.35) {
	p[0] = 3171.; p[1] = -8133.;
      } else if (pT>=0.35 && pT<0.40) {
	p[0] = 1815.; p[1] = -4260.;
      } else if (pT>=0.40 && pT<0.45) {
	p[0] =  715.; p[1] =  -1471.;
      } else if (pT>=0.45 && pT<0.50) {
	p[0] =  233.; p[1] =  -407.;
      } else if (pT>=0.50 && pT<0.55) {
	p[0] =  408.; p[1] =  -752.;
      } else { //if (pT>=0.55)
	p[0] =  408.-752.*0.55; p[1] = 0.;
      }

    }

    delta = p[0]+p[1]*pT;
    //    Printf("Kaon time: %f %f %f %f",p[0],p[1],length,delta);

  } else {

    Float_t p[2] = {0.,0.};

    if ( fInTRD &&  fOutTRD) { // zone 1

      if (isTRDout) {

	if (length<95.) {
	  p[0] = 20.; p[1] = 0.;
	} else if (length>=95. && length<195.) {
	  p[0] = -24.0; p[1] = 0.10+0.0041*length;
	} else {//if (length>=195.)
	  p[0] =  150.; p[1] = 0.;
	}

      } else { // !isTRDout

	p[0] = 40.; p[1] = 0.;

      }

    } else if (!fInTRD && !fOutTRD) { // zone 2

      p[0] = 0.; p[1] = 0.;

    } else if ( fInTRD &&  !fOutTRD) { // zone 3

      if (isTRDout) {

	if (length< 15.) {
	  p[0] = 180.; p[1] =  0.;
	} else if (length>= 15. && length< 55.) {
	  p[0] = 215.; p[1] = -2.5;
	} else {//if (length>=55.)
	  p[0] = 78.; p[1] =  0.;
	}

      } else { // !isTRDout

	p[0] = 0.; p[1] = 0.;

      }

    } else if (!fInTRD &&  fOutTRD) { // zone 4

      if (isTRDout) {

	if (length< 55.) {
	  p[0] =  0.; p[1] =  0.;
	} else if (length>= 55. && length<115.) {
	  p[0] = -85.; p[1] = 1.9;
	} else {//if (length>=115.)
	  p[0] = 100.; p[1] =  0.;
	}

      } else { // !isTRDout

	p[0] =  0.; p[1] =  0.;

      }

    }

    delta = p[0]+p[1]*length;
    //    Printf("Kaon time: %f %f %f %f",p[0],p[1],length,delta);

  }

  return delta;

}

//________________________________________________________________________
Double_t AliTOFTenderSupply::CorrectExpectedProtonTime(Double_t pT,
							    Double_t length,
							    Bool_t isTRDout)
{
  // correction for expected time for protons

  Double_t delta=0.;
  //  Printf("Flags Ent In ComingOut Out %d %d %d %d",fIsEnteringInTRD,fInTRD,fIsComingOutTRD,fOutTRD);

  if (!fIsEnteringInTRD || !fIsComingOutTRD) { // zone 5
    Float_t p[2]={0.,0.};


    if (isTRDout) {

      if (pT<0.375) {
	p[0] = 1000.; p[1] = 0.;
      }	else if (pT>=0.375 && pT<0.45) {
	p[0] = 1500.; p[1] = 0.;
      } else if (pT>=0.45 && pT<0.50) {
	p[0] = 4650.; p[1] = -7000.;
      } else if (pT>=0.50 && pT<0.55) {
	p[0] = 3150.; p[1] = -4000.;
      } else { //if (pT>=0.55)
	p[0] = 3150. -4000.*0.55; p[1] = 0.;
      }

    } else {

      if (pT<0.32) {
	p[0] = 2963.-5670.*0.032; p[1] = 0.;
      } else if (pT>=0.32 && pT<0.35) {
	p[0] = 2963.; p[1] =  -5670.;
      } else if (pT>=0.35 && pT<0.40) {
	p[0] = 4270.; p[1] =  -9400.;
      } else if (pT>=0.40 && pT<0.45) {
	p[0] = 1550.; p[1] =  -2600.;
      } else if (pT>=0.45 && pT<0.50) {
	p[0] = 1946.; p[1] =  -3480.;
      } else if (pT>=0.50 && pT<0.55) {
	p[0] = 1193.; p[1] =  -1974.;
      } else { //if (pT>=0.55)
	p[0] = 1193.-1974.*0.55; p[1] = 0.;
      }

    }

    delta = p[0]+p[1]*pT;
    //    Printf("Proton time: %f %f %f %f",p[0],p[1],length,delta);

  } else {

    Float_t p[2] = {0.,0.};

    if ( fInTRD &&  fOutTRD) { // zone 1

      if (isTRDout) {

	if (length<90.) {
	  p[0] = 0.; p[1] = 0.;
	} else if (length>=90. && length<200.) {
	  p[0] = 1063.; p[1] = -32.+0.30*length-0.00072*length*length;
	} else {//if (length>=200.)
	  p[0] =  900.; p[1] = 0.;
	}

      } else { // !isTRDout

	p[0] = 80.; p[1] = 0.;

      }

    } else if (!fInTRD && !fOutTRD) { // zone 2

      if (isTRDout) {
	p[0] = 0.; p[1] = 0.;
      } else {
	if (length<125.) {
	  p[0] = 0.; p[1] = 0.;
	} else if (length>=125. && length<180.) {
	  p[0] = -132.; p[1] = 1.3;
	} else {
	  p[0] = 100.; p[1] = 0.;
	}

      }

    } else if ( fInTRD &&  !fOutTRD) { // zone 3

      if (isTRDout) {

	if (length< 30.) {
	  p[0] = 670.; p[1] =  0.;
	} else if (length>= 30. && length<155.) {
	  p[0] = 944.; p[1] = -11.+0.064*length;
	} else {//if (length>=155.)
	  p[0] = 780.; p[1] =  0.;
	}

      } else { // !isTRDout

	if (length< 30.) {
	  p[0] = 140.; p[1] = -4.5;
	} else {
	  p[0] = 0.; p[1] = 0.;
	}
      
      }

    } else if (!fInTRD &&  fOutTRD) { // zone 4

      if (isTRDout) {

	if (length< 45.) {
	  p[0] = 130.; p[1] =  0.;
	} else if (length>= 45. && length<120.) {
	  p[0] = -190.; p[1] = 6.5;
	} else {//if (length>=120.)
	  p[0] = 750.; p[1] =  0.;
	}

      } else { // !isTRDout

	if (length<75.5) {
	  p[0] =    0.; p[1] =  0.;
	} else if (length>= 75.5 && length<90.) {
	  p[0] = -830.; p[1] = 11.;
	} else {
	  p[0] =  160.; p[1] =  0.;
	}

      }

    }

    delta = p[0]+p[1]*length;
    //    Printf("Proton time: %f %f %f %f",p[0],p[1],length,delta);

  }

  return delta;

}

//________________________________________________________________________
Double_t AliTOFTenderSupply::EstimateLengthInTRD1(AliESDtrack *track)
{

  Double_t xyz0[3]={0.,0.,0.};
  Bool_t stayInTRD = track->GetXYZAt(fRhoTRDin,fMagField,xyz0);

  Double_t phi0 = TMath::Pi()+TMath::ATan2(-xyz0[1],-xyz0[0]);
  phi0 *= TMath::RadToDeg();
  stayInTRD = stayInTRD && ( (phi0>=  0. && phi0<= 40.) ||
			     (phi0>=140. && phi0<=220.) ||
			     (phi0>=340. && phi0<=360.) );

  Double_t trackLengthInTRD = 0.;
  Int_t iStep=0;

  Double_t b[3];track->GetBxByBz(b);

  Double_t xyz1[3]={0.,0.,0.};
  Double_t rho = fRhoTRDin;
  while (stayInTRD && rho<=fRhoTRDout) {
    iStep++;
    rho += fStep;

    for (Int_t ii=0; ii<3; ii++) xyz1[ii]=0.;
    stayInTRD = track->GetXYZAt(rho,fMagField,xyz1);
    Double_t phi1 = TMath::Pi()+TMath::ATan2(-xyz1[1],-xyz1[0]);
    phi1 *= TMath::RadToDeg();
    stayInTRD = stayInTRD && ( (phi1>=  0. && phi1<= 40.) ||
			       (phi1>=140. && phi1<=220.) ||
			       (phi1>=340. && phi1<=360.) );

    Double_t l2  = TMath::Sqrt((xyz1[0]-xyz0[0])*(xyz1[0]-xyz0[0]) +
			       (xyz1[1]-xyz0[1])*(xyz1[1]-xyz0[1]) +
			       (xyz1[2]-xyz0[2])*(xyz1[2]-xyz0[2]));
    trackLengthInTRD += l2;

    for (Int_t ii=0; ii<3; ii++) xyz0[ii]=xyz1[ii];
  }

  return trackLengthInTRD;

}

//________________________________________________________________________
Double_t AliTOFTenderSupply::EstimateLengthInTRD2(AliESDtrack *track)
{

  Double_t xyz0[3]={0.,0.,0.};
  Bool_t stayInTRD = track->GetXYZAt(fRhoTRDout,fMagField,xyz0);

  Double_t phi0 = TMath::Pi()+TMath::ATan2(-xyz0[1],-xyz0[0]);
  phi0 *= TMath::RadToDeg();
  stayInTRD = stayInTRD && ( (phi0>=  0. && phi0<= 40.) ||
			     (phi0>=140. && phi0<=220.) ||
			     (phi0>=340. && phi0<=360.) );

  Double_t trackLengthInTRD = 0.;
  Int_t iStep=0;

  Double_t b[3];track->GetBxByBz(b);

  Double_t xyz1[3]={0.,0.,0.};
  Double_t rho = fRhoTRDout;
  while (stayInTRD && rho>=fRhoTRDin) {
    iStep++;
    rho -= fStep;

    for (Int_t ii=0; ii<3; ii++) xyz1[ii]=0.;
    stayInTRD = track->GetXYZAt(rho,fMagField,xyz1);
    Double_t phi1 = TMath::Pi()+TMath::ATan2(-xyz1[1],-xyz1[0]);
    phi1 *= TMath::RadToDeg();
    stayInTRD = stayInTRD && ( (phi1>=  0. && phi1<= 40.) ||
			       (phi1>=140. && phi1<=220.) ||
			       (phi1>=340. && phi1<=360.) );

    Double_t l2  = TMath::Sqrt((xyz0[0]-xyz1[0])*(xyz0[0]-xyz1[0]) +
			       (xyz0[1]-xyz1[1])*(xyz0[1]-xyz1[1]) +
			       (xyz0[2]-xyz1[2])*(xyz0[2]-xyz1[2]));
    trackLengthInTRD += l2;

    for (Int_t ii=0; ii<3; ii++) xyz0[ii]=xyz1[ii];
  }

  return trackLengthInTRD;

}

//________________________________________________________________________
Double_t AliTOFTenderSupply::EstimateLengthOutTRD(AliESDtrack *track)
{

  Double_t xyz0[3]={0.,0.,0.};
  Bool_t stayInTRD = track->GetXYZAt(fRhoTRDin,fMagField,xyz0);

  Double_t phi0 = TMath::Pi()+TMath::ATan2(-xyz0[1],-xyz0[0]);
  phi0 *= TMath::RadToDeg();
  stayInTRD = stayInTRD && !( (phi0>=  0. && phi0<= 40.) ||
			      (phi0>=140. && phi0<=220.) ||
			      (phi0>=340. && phi0<=360.) );

  Double_t trackLengthInTRD = 0.;
  Int_t iStep=0;

  Double_t b[3];track->GetBxByBz(b);

  Double_t xyz1[3]={0.,0.,0.};
  Double_t rho = fRhoTRDin;
  while (stayInTRD && rho<=fRhoTRDout) {
    iStep++;
    rho += fStep;

    for (Int_t ii=0; ii<3; ii++) xyz1[ii]=0.;
    stayInTRD = track->GetXYZAt(rho,fMagField,xyz1);
    Double_t phi1 = TMath::Pi()+TMath::ATan2(-xyz1[1],-xyz1[0]);
    phi1 *= TMath::RadToDeg();
    stayInTRD = stayInTRD && !( (phi1>=  0. && phi1<= 40.) ||
				(phi1>=140. && phi1<=220.) ||
				(phi1>=340. && phi1<=360.) );

    Double_t l2  = TMath::Sqrt((xyz1[0]-xyz0[0])*(xyz1[0]-xyz0[0]) +
			       (xyz1[1]-xyz0[1])*(xyz1[1]-xyz0[1]) +
			       (xyz1[2]-xyz0[2])*(xyz1[2]-xyz0[2]));
    trackLengthInTRD += l2;

    for (Int_t ii=0; ii<3; ii++) xyz0[ii]=xyz1[ii];
  }

  return trackLengthInTRD;

}

//________________________________________________________________________
Int_t AliTOFTenderSupply::GetOCDBVersion(Int_t runNo)
{
  Int_t verNo = -1;
  if ( (runNo>=118503 && runNo <=121040) )  { // LHC10C
    if (fRecoPass == 2) {                     // on pass2
      if (runNo >= 119159 && runNo <= 119163) verNo=3;
      else if (runNo >= 119837 && runNo <= 119934) verNo=4;
      else if (runNo >= 120067 && runNo <= 120244) verNo=4;
      else if (runNo >= 120503 && runNo <= 120505) verNo=4;
      else if (runNo >= 120616 && runNo <= 120671) verNo=4;
      else if (runNo >= 120741 && runNo <= 120829) verNo=4;
    }
  }
  return verNo;
}


//__________________________________________________________________________
void AliTOFTenderSupply::LoadTOFPIDParams(Int_t runNumber)
{
  //
  // Load the TOF pid params from the OADB
  //

  if (fTOFPIDParams) delete fTOFPIDParams;
  fTOFPIDParams=0x0;
  
  TFile *oadbf = new TFile("$ALICE_ROOT/OADB/COMMON/PID/data/TOFPIDParams.root");
  if (oadbf && oadbf->IsOpen()) {
    AliInfo("Loading TOF Params from $ALICE_ROOT/OADB/COMMON/PID/data/TOFPIDParams.root");
    AliOADBContainer *oadbc = (AliOADBContainer *)oadbf->Get("TOFoadb");
    if (oadbc) fTOFPIDParams = dynamic_cast<AliTOFPIDParams *>(oadbc->GetObject(runNumber,"TOFparams"));
    oadbf->Close();
    delete oadbc;
  }
  delete oadbf;

  if (!fTOFPIDParams) {
    AliError("TOFPIDParams.root not found in $ALICE_ROOT/OADB/COMMON/PID/data !!");
    fTOFPIDParams = new AliTOFPIDParams;
    fTOFPIDParams->SetTOFresolution(90.);
    fTOFPIDParams->SetStartTimeMethod(AliESDpid::kTOF_T0);
  }  
}


//__________________________________________________________________________
Double_t AliTOFTenderSupply::SampleT0Signal(Int_t side, Double_t zvertex, Double_t tracklets) const
{
  Double_t p = 0.;
  Double_t signal = 99999.;
  if (TMath::Abs(zvertex) > 10.) return signal;
  Double_t resolution[2] = {75.,65.};
  if (side == 0) {
    if (zvertex >= 5. && zvertex <= 10.) {
//      p = 0.84 - exp(-1.03 - 0.31*tracklets);
        p = 0.88 - exp(-1.1 - 0.32*tracklets);
    }
    else if (zvertex >=-10. && zvertex <5.) {
//      p = 0.82 - exp(-0.81 - 0.25*tracklets);
        p = 0.77 - exp(-0.88 - 0.25*tracklets);    
   }
  } else if (side == 1) {
    if (zvertex >= -10. && zvertex < -5.) {
      p = 0.99 - exp(-0.74 - 0.34*tracklets);
    }
    else if (zvertex >=-5. && zvertex <10.) {
      p = 0.96 - exp(-0.51 - 0.27*tracklets);
    }
  } else {
    return signal;
  }
  Double_t pu = gRandom->Rndm();
  if (fDebugLevel > 1) {
    printf(" TofTender: T0 simul [side %d zvt %f track %f] %f [pu: %f]",side,zvertex,tracklets,p,pu);
    if (pu<p) printf(" --> signal will be generated: ");
    else printf(" --> signal wil not be generated: ");
  }
  if (pu < p) signal = gRandom->Gaus(0.,resolution[side]);
  if (fDebugLevel >1) Printf(" %f ",signal);
  return signal;
}

void AliTOFTenderSupply::GetTrackletsForT0(AliESDEvent* event, Double_t *trkA, Double_t *trkC) const
{
  Double_t minetaA = 0.7;
  Double_t maxetaA = 1.4;
  Double_t minetaC = -1.4;
  Double_t maxetaC = -0.7; 
  AliMultiplicity *alimult = (AliMultiplicity *)event->GetMultiplicity(); 
  Int_t nTr=alimult->GetNumberOfTracklets();
  if (fDebugLevel > 1) Printf(" TofTender: T0 simul number of tracklets %d",nTr);
  Int_t nTrackletsA=0, nTrackletsC=0;
  for(Int_t iTr=0; iTr<nTr; iTr++){
    Double_t eta=alimult->GetEta(iTr);
    if(eta>minetaA && eta<maxetaA) nTrackletsA++;
    if(eta>minetaC && eta<maxetaC) nTrackletsC++;
    if (fDebugLevel > 1) Printf(" TofTender: T0 simul [tracklet # %d] ETA: %f %d %d",nTr,eta,nTrackletsA,nTrackletsC);
  }
  *trkA=(Double_t)nTrackletsA;
  *trkC=(Double_t)nTrackletsC;
}


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