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


//#include <Riostream.h>
//#include <stdio.h>
//#include <stdlib.h>

#include <TFile.h>
#include <TH2S.h>
#include <TH1F.h>
#include <TCanvas.h>
#include <TMath.h>
#include <TObjArray.h>
#include <TObjString.h>
#include <TTimeStamp.h>

#include "AliCDBMetaData.h"
#include "AliCDBEntry.h"
#include "AliLog.h"
#include "AliTOFChannelOnlineArray.h"
#include "AliTOFChannelOnlineStatusArray.h"
#include "AliTOFDataDCS.h"
#include "AliTOFDCSmaps.h"
#include "AliTOFLvHvDataPoints.h"
#include "AliTOFGeometry.h"
#include "AliTOFPreprocessor.h"
#include "AliTOFFEEReader.h"
#include "AliTOFRawStream.h"
#include "AliTOFCableLengthMap.h"
#include "AliTOFcalibHisto.h"
#include "AliTOFFEEDump.h"
#include "TChain.h"
#include "AliTOFDeltaBCOffset.h"
#include "AliTOFCTPLatency.h"
#include "AliTOFRunParams.h"
#include "AliTOFT0FillOnlineCalib.h"
#include "AliTOFHitField.h"
#include "AliTOFChannelOffline.h"
#include "TF1.h"
#include "TGeoManager.h"
#include "AliGeomManager.h"
#include "AliTOFReadoutInfo.h"

// TOF preprocessor class.
// It takes data from DCS and passes them to the class AliTOFDataDCS, which
// processes them. The result is then written to the CDB.
// Analogously, it takes data form DAQ (both at Run level and inclusive - 
// of all the runs - level, processes them, and stores both Reference Data
// and Online Calibration files in the CDB. 
// Processing of Pulser/Noise Run data and of TOF FEE DCS map included also.

// return codes:
// return=0 : all ok
// return=1 : no DCS input data Map
// return=2 : no DCS input data processing
// return=3 : no DCS processed data was stored in Ref Data
// return=4 : no DAQ input for Ref Data
// return=5 : failed to store DAQ Ref Data
// return=6 : failed to retrieve DAQ data for calibration 
// return=7 : problems in processing histos in the input DAQ file 
// return=8 : failed to store Online Delays
// return=9 : failed to store Reference Data for Pulser
// return=10: failed to retrieve Pulser data 
// return=11: failed to store Pulser map in OCDB
// return=12: failed to store Reference Data for Noise
// return=13: failed to retrieve Noise data 
// return=14: failed to store Noise map in OCDB
// return=15: failed to retrieve FEE data from FXS
// return=16: failed to retrieve FEE data from OCDB
// return=17: failed to store FEE data in OCDB
// return=18: failed to store FEE reference data in OCDB
// return=20: failed in retrieving status variable
// return=100 : no DCS input data Map (HV and LV status)
// return=200 : no DCS input data processing (HV and LV status)
// return=300 : no DCS processed data was stored in Ref Data (HV and LV status)

ClassImp(AliTOFPreprocessor)

const Int_t    AliTOFPreprocessor::fgkBinRangeAve = 13;    // number of bins where to calculate the mean 
const Double_t AliTOFPreprocessor::fgkIntegralThr = 100;   // min number of entries to perform computation of delay per channel 
const Double_t AliTOFPreprocessor::fgkThrPar      = 0.013; // parameter used to trigger the calculation of the delay

//_____________________________________________________________________________

AliTOFPreprocessor::AliTOFPreprocessor(AliShuttleInterface* shuttle) :
  AliPreprocessor("TOF", shuttle),
  fData(0),
  fHVLVmaps(0),
  fCal(0),
  fNChannels(0),
  fStoreRefData(kTRUE),
  fFDRFlag(kFALSE),
  fStatus(0),
  fMatchingWindow(0),
  fLatencyWindow(0),
  fIsStatusMapChanged(0)
{
  // constructor
  AddRunType("PHYSICS");
  AddRunType("PULSER");
  AddRunType("NOISE");

}

//_____________________________________________________________________________

AliTOFPreprocessor::~AliTOFPreprocessor()
{
  // destructor
}

//______________________________________________________________________________
void AliTOFPreprocessor::Initialize(Int_t run, UInt_t startTime,
	UInt_t endTime)
{
  // Creates AliTOFDataDCS object

  AliPreprocessor::Initialize(run, startTime, endTime);

	AliInfo(Form("\n\tRun %d \n\tStartTime %s \n\tEndTime %s \n\tStartTime DCS Query %s \n\tEndTime DCS Query %s", run,
		TTimeStamp(startTime).AsString(),
		TTimeStamp(endTime).AsString(), ((TTimeStamp)GetStartTimeDCSQuery()).AsString(), ((TTimeStamp)GetEndTimeDCSQuery()).AsString()));

	fData = new AliTOFDataDCS(fRun, fStartTime, fEndTime, GetStartTimeDCSQuery(), GetEndTimeDCSQuery());
	fHVLVmaps = new AliTOFLvHvDataPoints(fRun, fStartTime, fEndTime, GetStartTimeDCSQuery(), GetEndTimeDCSQuery());
	fNChannels = AliTOFGeometry::NSectors()*(2*(AliTOFGeometry::NStripC()+AliTOFGeometry::NStripB())+AliTOFGeometry::NStripA())*AliTOFGeometry::NpadZ()*AliTOFGeometry::NpadX();
}
//_____________________________________________________________________________
Bool_t AliTOFPreprocessor::ProcessDCS(){

  // check whether DCS should be processed or not...

  TString runType = GetRunType();
  Log(Form("RunType %s",runType.Data()));

  if (runType != "PHYSICS"){
    return kFALSE;
  }

  return kTRUE;
}
//_____________________________________________________________________________

UInt_t AliTOFPreprocessor::ProcessDCSDataPoints(TMap *dcsAliasMap)
{
  // Fills data into a AliTOFDataDCS object


  Log("Processing DCS DP");
  TH1::AddDirectory(0);

  Bool_t resultDCSMap=kFALSE;
  Bool_t resultDCSStore=kFALSE;

  // processing DCS

  if (!dcsAliasMap){
    Log("No DCS map found: TOF exiting from Shuttle");
    if (fData) {
	    delete fData;
	    fData = 0;
    }
    return 1;// return error Code for DCS input data not found 
  }
  else {

    if (!fData) {
	Log("No DCSdata map initialized: TOF exiting from Shuttle");
	return 0;// return error Code for DCS data map not initialized
    }

    fData->SetFDRFlag(fFDRFlag);
  
    // The processing of the DCS input data is forwarded to AliTOFDataDCS
    resultDCSMap=fData->ProcessData(*dcsAliasMap);
    if(!resultDCSMap){
      Log("Some problems occurred while processing DCS data, TOF exiting from Shuttle");
      if (fData) {
	      delete fData;
	      fData = 0;
      }
      return 2;// return error Code for processed DCS data not stored 
    }
    else{
      AliCDBMetaData metaDataDCS;
      metaDataDCS.SetBeamPeriod(0);
      metaDataDCS.SetResponsible("Chiara Zampolli");
      metaDataDCS.SetComment("This preprocessor fills an AliTOFDataDCS object.");
      AliInfo("Storing DCS Data");
      resultDCSStore = StoreReferenceData("Calib","DCSData",fData, &metaDataDCS);
      if (!resultDCSStore){
	Log("Some problems occurred while storing DCS data results in Reference Data, TOF exiting from Shuttle");
	if (fData){
		delete fData;
		fData = 0;
	}
	return 3;// return error Code for processed DCS data not stored 
	         // in reference data
	
      }
    }
  }
  if (fData){
	  delete fData;
	  fData = 0;
  }
  
  return 0;
}
//_____________________________________________________________________________

UInt_t AliTOFPreprocessor::ProcessHVandLVdps(TMap *dcsAliasMap)
{
  //
  //Fills data into a AliTOFLvHvDataPoints object
  // Merges fStatus object with LV and HV status at SOR
  // Updates fStatus object with LV and HV status
  //    at EOR in case of correct end of run
  //    at last but two value in case of end-of-run caused by TOF detector.
  //

  Log("Processing HV and LV DCS DPs");
  TH1::AddDirectory(0);

  Bool_t resultDCSMap=kFALSE;

  // processing DCS HV and LV data points

  if (!dcsAliasMap){
    Log("No DCS map found: TOF exiting from Shuttle");
    if (fHVLVmaps){
      delete fHVLVmaps;
      fHVLVmaps = 0;
    }
    return 100;// return error Code for DCS input data not found 
  }
  else {

    if (!fHVLVmaps) {
	Log("No HVLVdata map initialized: TOF exiting from Shuttle");
	return 200;// return error Code for HVLV data map not initialized
    }

    fHVLVmaps->SetFDRFlag(fFDRFlag);
  
    // The processing of the DCS input data is forwarded to AliTOFDataDCS
 
    resultDCSMap = fHVLVmaps->ProcessData(*dcsAliasMap);
    if (!resultDCSMap) {
      Log("Some problems occurred while processing DCS data for HV and LV, TOF exiting from Shuttle");
      if (fHVLVmaps) {
	delete fHVLVmaps;
	fHVLVmaps = 0;
      }
      return 200;// return error Code for processed DCS data not stored 
    }
    else {

      // check with plots. Start...
      /*
      TH1F *hROsor = new TH1F("hROsor","RO status map at SOR",91*96*18,-0.5,91*96*18-0.5);
      for (Int_t ii=1; ii<=91*96*18; ii++) hROsor->SetBinContent(ii,-1);
      for (Int_t ii=0; ii<91*96*18; ii++) {
	if (fStatus->GetHWStatus(ii)==AliTOFChannelOnlineStatusArray::kTOFHWBad)
	  hROsor->SetBinContent(ii+1,0);
	else if (fStatus->GetHWStatus(ii)==AliTOFChannelOnlineStatusArray::kTOFHWOk)
	  hROsor->SetBinContent(ii+1,1);
      }

      TH1F *hROandHVandLVsor = new TH1F("hROandHVandLVsor","RO.and.HV.andLV status map at SOR",91*96*18,-0.5,91*96*18-0.5);
      for (Int_t ii=1; ii<=91*96*18; ii++) hROandHVandLVsor->SetBinContent(ii,-1);
      TH1F *hROandHVandLVeor = new TH1F("hROandHVandLVeor","RO.and.HV.andLV status map at EOR",91*96*18,-0.5,91*96*18-0.5);
      for (Int_t ii=1; ii<=91*96*18; ii++) hROandHVandLVeor->SetBinContent(ii,-1);
      */

      AliTOFDCSmaps * lvANDhvMap = (AliTOFDCSmaps*)fHVLVmaps->GetHVandLVmapAtSOR(); // Get LV.and.HV status map at SOR
      for (Int_t index=0; index<fNChannels; index++) {
	if ( ( lvANDhvMap->GetCellValue(index)==0 &&
	       fStatus->GetHWStatus(index) != AliTOFChannelOnlineStatusArray::kTOFHWBad ) ||
	     ( lvANDhvMap->GetCellValue(index)==1 &&
	       fStatus->GetHWStatus(index) != AliTOFChannelOnlineStatusArray::kTOFHWOk ) ) {
	  fStatus->SetHWStatus(index, AliTOFChannelOnlineStatusArray::kTOFHWBad);
	  fIsStatusMapChanged=kTRUE;
	}
      }
      
      // check with plots. Start...
      /*
      for (Int_t ii=0; ii<91*96*18; ii++) {
	if (fStatus->GetHWStatus(ii)==AliTOFChannelOnlineStatusArray::kTOFHWBad)
	  hROandHVandLVsor->SetBinContent(ii+1,0);
	else if (fStatus->GetHWStatus(ii)==AliTOFChannelOnlineStatusArray::kTOFHWOk)
	  hROandHVandLVsor->SetBinContent(ii+1,1);
      }
      */

      lvANDhvMap = (AliTOFDCSmaps*)fHVLVmaps->GetHVandLVmapAtEOR(); // Get LV.and.HV status map at EOR
      for (Int_t index=0; index<fNChannels; index++) {
	if ( ( lvANDhvMap->GetCellValue(index)==0 &&
	       fStatus->GetHWStatus(index)!=AliTOFChannelOnlineStatusArray::kTOFHWBad ) ||
	     ( lvANDhvMap->GetCellValue(index)==1 &&
	       fStatus->GetHWStatus(index) != AliTOFChannelOnlineStatusArray::kTOFHWOk ) ) {
	  fStatus->SetHWStatus(index, AliTOFChannelOnlineStatusArray::kTOFHWBad);
	  fIsStatusMapChanged=kTRUE;
	}
      }

      // check with plots. Start...
      /*
      for (Int_t ii=0; ii<91*96*18; ii++) {
	if (fStatus->GetHWStatus(ii)==AliTOFChannelOnlineStatusArray::kTOFHWBad)
	  hROandHVandLVeor->SetBinContent(ii+1,0);
	else if (fStatus->GetHWStatus(ii)==AliTOFChannelOnlineStatusArray::kTOFHWOk)
	  hROandHVandLVeor->SetBinContent(ii+1,1);
      }

      TCanvas *canvas = new TCanvas("canvas","",10,10,1000,1000);
      canvas->SetFillColor(0);
      canvas->Divide(2,2);
      canvas->cd(1);
      hROsor->SetLineWidth(2);
      hROsor->Draw();
      canvas->cd(2);
      hROandHVandLVsor->SetLineWidth(2);
      hROandHVandLVsor->Draw();
      canvas->cd(3);
      hROandHVandLVeor->SetLineWidth(2);
      hROandHVandLVeor->Draw();
      canvas->cd();
      */

    }

  }


  /* check whether we don't need to update OCDB.
   * in this case we can return without errors. */

  if (!fIsStatusMapChanged) {
    AliInfo("TOF HW status config has not changed. Do not overwrite stored file.");
    return 0; // return ok
  }

  TString runType = GetRunType();
  if (runType != "PHYSICS") {
    AliInfo(Form("Run Type = %s, waiting to store status map",GetRunType()));
    return 0; // return ok
  }

  // update the OCDB with the current FEE.and.HV.and.LV
  // since even a little difference has been detected.

  AliCDBMetaData metaData;
  metaData.SetBeamPeriod(0);
  metaData.SetResponsible("Roberto Preghenella");
  metaData.SetComment("This preprocessor fills an AliTOFChannelOnlineStatusArray object from FEE.and.HV.and.LV data.");
  AliInfo("Storing Status data from current run. Collected RO.and.HV.and.LV infos @ EOR");
  // store TOF channel status
  if (!Store("Calib", "Status", fStatus, &metaData, 0, kTRUE)) {
    // failed
    Log("problems while storing RO.and.HV.and.LV Status data object");
    if (fStatus){
      delete fStatus;
      fStatus = 0;
    }
    if (fHVLVmaps) {
      delete fHVLVmaps;
      fHVLVmaps = 0;
    }
    return 17; // return error code for problems while TOF channel status
  }

  // everything fine. return

  if (fStatus){
    delete fStatus;
    fStatus = 0;
  }

  if (fHVLVmaps) {
    delete fHVLVmaps;
    fHVLVmaps = 0;
  }
  
  return 0;
}

//_____________________________________________________________________________

UInt_t AliTOFPreprocessor::ProcessOnlineDelays()
{
  // Processing data from DAQ for online calibration 

  Bool_t updateOCDB = kFALSE;
  Log("Processing DAQ delays");

  // reading configuration map 
  TString compDelays = "kFALSE";
  Int_t deltaStartingRun = fRun;
  Int_t startingRun = fRun-deltaStartingRun;
  Int_t binRangeAve = fgkBinRangeAve;
  Double_t integralThr = fgkIntegralThr;
  Double_t thrPar = fgkThrPar;

  AliCDBEntry *cdbEntry = GetFromOCDB("Calib","Config");
  if (!cdbEntry) {
	  Log(Form("No Configuration entry found in CDB, using default values: ComputingDelays = %s, StartingRun = %i",compDelays.Data(), startingRun));
  }
  else {
	  TMap *configMap = (TMap*)cdbEntry->GetObject();
	  if (!configMap){
		  Log(Form("No map found in Config entry in CDB, using default values: ComputingDelays = %s, StartingRun = %i",compDelays.Data(), startingRun));
	  }
	  else{
		  TObjString *strDelays = (TObjString*)configMap->GetValue("ComputingDelays");
		  if (strDelays) {
			  compDelays = (TString) strDelays->GetString();
		  }
		  else {
			  Log(Form("No ComputingDelays value found in Map from Config entry in CDB, using default value: ComputingDelays =  %s",compDelays.Data()));
		  }
		  TObjString *strRun = (TObjString*)configMap->GetValue("StartingRun");
		  if (strRun) {
			  TString tmpstr = strRun->GetString();
			  startingRun = tmpstr.Atoi();
			  deltaStartingRun = fRun - startingRun;
		  }
		  else {
			  Log(Form("No StartingRun value found in Map from Config entry in CDB, using default value: StartingRun = %i",startingRun));
		  }
		  TObjString *strBinRangeAve = (TObjString*)configMap->GetValue("BinRangeAve");
		  if (strBinRangeAve) {
			  TString tmpstr = strBinRangeAve->GetString();
			  binRangeAve = tmpstr.Atoi();
		  }
		  else {
			  Log(Form("No BinRangeAve value found in Map from Config entry in CDB, using default value: BinRangeAve = %i",binRangeAve));
		  }
		  TObjString *strIntegralThr = (TObjString*)configMap->GetValue("IntegralThr");
		  if (strIntegralThr) {
			  TString tmpstr = strIntegralThr->GetString();
			  integralThr = tmpstr.Atof();
		  }
		  else {
			  Log(Form("No IntegralThr value found in Map from Config entry in CDB, using default value: IntegralThr = %f",integralThr));
		  }
		  TObjString *strThrPar = (TObjString*)configMap->GetValue("ThrPar");
		  if (strThrPar) {
			  TString tmpstr = strThrPar->GetString();
			  thrPar = tmpstr.Atof();
		  }
		  else {
			  Log(Form("No ThrPar value found in Map from Config entry in CDB, using default value: ThrPar = %f",thrPar));
		  }
	  }
  }
  if (compDelays == "kTRUE") fFDRFlag = kFALSE;
  else fFDRFlag = kTRUE;

  delete cdbEntry;
  cdbEntry = 0x0;

  Log(Form("ComputingDelays = %s, StartingRun = %i",compDelays.Data(),startingRun));

  /* init array with current calibration, if any */
  fCal = new AliTOFChannelOnlineArray(fNChannels);  
  AliTOFChannelOnlineArray *curCal = NULL;

  AliCDBEntry *cdbEntry2 = GetFromOCDB("Calib","ParOnlineDelay");
  if (!cdbEntry2 || !cdbEntry2->GetObject()) {
    /* no CDB entry found. set update flag */
    Log("     ************ WARNING ************");
    Log("No CDB ParOnlineDelay entry found, creating a new one!");
    Log("     *********************************");
    updateOCDB = kTRUE;
  }
  else {
    Log("Found previous ParOnlineDelay entry. Using it to init calibration");
    curCal = (AliTOFChannelOnlineArray *)cdbEntry2->GetObject();
    for (Int_t i = 0; i < fNChannels; i++)
      fCal->SetDelay(i, curCal->GetDelay(i));
  }
 

  TH1::AddDirectory(0);

  Bool_t resultDAQRef=kFALSE;
  Bool_t resultTOFPP=kFALSE;
  TH2S *h2 = 0x0;
  // processing DAQ
  
  TFile * daqFile=0x0;
  
  if(fStoreRefData){
    //retrieving data at Run level
	  TList* list = GetFileSources(kDAQ, "RUNLevel");
	  if (list !=0x0 && list->GetEntries()!=0)
		  {
			  AliInfo("The following sources produced files with the id RUNLevel");
			  list->Print();
			  for (Int_t jj=0;jj<list->GetEntries();jj++){
				  TObjString * str = dynamic_cast<TObjString*> (list->At(jj));
				  if (!str) {
				    AliError("dynamic_cast returned NULL");
				    return 4;
				  }
				  AliInfo(Form("found source %s", str->String().Data()));
				  // file to be stored run per run
				  TString fileNameRun = GetFile(kDAQ, "RUNLevel", str->GetName());
				  if (fileNameRun.Length()>0){
					  AliInfo(Form("Got the file %s, now we can store the Reference Data for the current Run.", fileNameRun.Data()));
					  daqFile = new TFile(fileNameRun.Data(),"READ");
					  h2 = (TH2S*) daqFile->Get("htof");
					  AliCDBMetaData metaDataHisto;
					  metaDataHisto.SetBeamPeriod(0);
					  metaDataHisto.SetResponsible("Chiara Zampolli");
					  metaDataHisto.SetComment("This preprocessor stores the array of histos object as Reference Data.");
					  AliInfo("Storing Reference Data");
					  resultDAQRef = StoreReferenceData("Calib","DAQData",h2, &metaDataHisto);
					  if (!resultDAQRef){
						  Log("some problems occurred::No Reference Data stored, TOF exiting from Shuttle");
						  delete h2;
						  delete list;
						  delete fCal;
						  fCal=0x0;
						  return 5;//return error code for failure in storing Ref Data 
					  }
					  daqFile->Close();
					  delete daqFile;
				  }
				  
				  else{
					  Log("The input data file from DAQ (run-level) was not found, TOF exiting from Shuttle "); 
					  delete list;
					  delete fCal;
					  fCal=0x0;
					  return 4;//return error code for failure in retrieving Ref Data 
				  }
			  }
			  delete list;
		  }
	  else{
		  Log("The input data file list from DAQ (run-level) was not found, TOF exiting from Shuttle "); 
		  delete fCal;
		  fCal=0x0;
		  return 4;//return error code for failure in retrieving Ref Data 
	  }	
  }


  //Total files, with cumulative histos
  
  TList* listTot = GetFileSources(kDAQ, "DELAYS");
  if (listTot !=0x0 && listTot->GetEntries()!=0)
	  {
		  AliInfo("The following sources produced files with the id DELAYS");
		  listTot->Print();
		  for (Int_t jj=0;jj<listTot->GetEntries();jj++){
		    TObjString * str = dynamic_cast<TObjString*> (listTot->At(jj));
		    if (!str) {
		      AliError("dynamic_cast returned NULL");
				    return 4;
			  }
			  AliInfo(Form("found source %s", str->String().Data()));
			  
			  // file with summed histos, to extract calib params
			  TString fileName = GetFile(kDAQ, "DELAYS", str->GetName());
			  if (fileName.Length()>0){
				  AliInfo(Form("Got the file %s, now we can extract some values.", fileName.Data()));
				  
				  daqFile = new TFile(fileName.Data(),"READ");
				  if (h2) delete h2;
				  h2 = (TH2S*) daqFile->Get("htoftot");
				  if (!h2){
					  Log("some problems occurred:: No histo retrieved, TOF exiting from Shuttle");
					  delete listTot;
					  delete daqFile;
					  delete fCal;
					  fCal=0x0;
					  return 7; //return error code for histograms not existing/junky
				  }
				  else {
					  static const Int_t kSize=h2->GetNbinsX();
					  static const Int_t kNBins=h2->GetNbinsY();
					  static const Double_t kXBinmin=h2->GetYaxis()->GetBinLowEdge(1);
					  if (kSize != fNChannels){
						  Log(" number of bins along x different from number of pads, found only a subset of the histograms, TOF exiting from Shuttle");
						  delete listTot;
						  delete h2;
						  delete daqFile;
						  delete fCal;
						  fCal=0x0;
						  return 7; //return error code for histograms not existing/junky
					  }
					  Int_t nNotStatistics = 0; // number of channel with not enough statistics

					  /* FDR flag set. do not compute delays, use nominal cable delays */
					  if (fFDRFlag) {

					    Log(" Not computing delays according to flag set in Config entry in OCDB!");
					    FillWithCosmicCalibration(fCal);

					    /* check whether the new calibration is different from the previous one */
					    if (curCal) { /* well, check also whether we have a previous calibration */
					      for (Int_t i = 0; i < fNChannels; i++) {
						if (fCal->GetDelay(i) != curCal->GetDelay(i)) {
						  updateOCDB = kTRUE;
						  break;
						}
					      }
					    }
					    else /* otherwise update OCDB */
					      updateOCDB = kTRUE;

					  }

					  else {  // computing delays if not in FDR runs

					    updateOCDB = kTRUE; /* always update OCDB when computing delays */

						  for (Int_t ich=0;ich<kSize;ich++){
							  /* check whether channel has been read out during current run.
							   * if the status is bad it means it has not been read out.
							   * in this case skip channel in order to not affect the mean */ 
							  if (fStatus->GetHWStatus(ich) == AliTOFChannelOnlineStatusArray::kTOFHWBad){
								  AliDebug(2,Form(" Channel %i found bad according to FEEmap, (HW status = %i), skipping from delay computing",ich, (Int_t)fStatus->GetHWStatus(ich)));
								  continue;
							  }
							  AliDebug(2,Form(" Channel %i found ok according to FEEmap, starting delay computing",ich));
							  TH1S *h1 = new TH1S("h1","h1",kNBins,kXBinmin-0.5,kNBins*1.+kXBinmin-0.5);
							  for (Int_t ibin=0;ibin<kNBins;ibin++){
								  h1->SetBinContent(ibin+1,h2->GetBinContent(ich+1,ibin+1));
							  }
							  if(h1->Integral()<integralThr) {
								  nNotStatistics++;
								  Log(Form(" Not enough statistics for bin %i, skipping this channel",ich));  // printing message only if not in FDR runs
								  delete h1;
								  h1=0x0;
								  continue;
							  }
							  Bool_t found=kFALSE; 
							  Float_t minContent=h1->Integral()*thrPar; 
							  Int_t nbinsX = h1->GetNbinsX();
							  Int_t startBin=1;
							  for (Int_t j=1; j<=nbinsX; j++){
								  if ((
								       h1->GetBinContent(j) +     
								       h1->GetBinContent(j+1)+
								       h1->GetBinContent(j+2)+ 
								       h1->GetBinContent(j+3))>minContent){
									  found=kTRUE;
									  startBin=j;
									  break;
								  }
							  }
							  if(!found) AliInfo(Form("WARNING!!! no start of fit found for histo # %i",ich));
							  // Now calculate the mean over the interval. 
							  Double_t mean = 0;
							  Double_t sumw2 = 0;
							  Double_t nent = 0;
							  for(Int_t k=0;k<binRangeAve;k++){
								  mean=mean+h1->GetBinCenter(startBin+k)*h1->GetBinContent(startBin+k);                 
								  nent=nent+h1->GetBinContent(startBin+k);                 
								  sumw2=sumw2+(h1->GetBinCenter(startBin+k))*(h1->GetBinCenter(startBin+k))*(h1->GetBinContent(startBin+k));
							  }
							  mean= mean/nent; //<x>
							  sumw2=sumw2/nent; //<x^2>
							  //Double_t rmsmean= 0;  // not used for the time being
							  //rmsmean = TMath::Sqrt((sumw2-mean*mean)/nent);
							  if (ich<fNChannels) {
								  Float_t delay = mean*AliTOFGeometry::TdcBinWidth()*1.E-3; // delay in ns
								  fCal->SetDelay(ich,delay);  // delay in ns
								  AliDebug(2,Form("Setting delay %f (ns) for channel %i",delay,ich));
							  }
							  delete h1;
							  h1=0x0;
						  }
					  }
					  if (nNotStatistics!=0) Log(Form("Too little statistics for %d channels!",nNotStatistics)); 
				  }
				  delete h2;
				  daqFile->Close();
				  delete daqFile;
			  }
			  else{
				  Log("The Cumulative data file from DAQ does not exist, TOF exiting from Shuttle"); 
				  delete listTot;
				  delete fCal;
				  fCal=0x0;
				  return 6;//return error code for problems in retrieving DAQ data 
			  }
		  }
		  delete listTot;
	  }
  else{
    Log("Problem: no list for Cumulative data file from DAQ was found, TOF exiting from Shuttle");
    delete fCal;
    fCal=0x0;
    return 6; //return error code for problems in retrieving DAQ data 
  }

  /* check whether we don't need to update OCDB.
   * in this case we can return without errors and
   * the current FEE is stored in the fStatus object. */
  if (!updateOCDB) {
    AliInfo("update OCDB flag not set. Do not overwrite stored file.");
    return 0; /* return ok */
  }
  
  daqFile=0;
  AliCDBMetaData metaData;
  metaData.SetBeamPeriod(0);
  metaData.SetResponsible("Chiara Zampolli");
  metaData.SetComment("This preprocessor fills an AliTOFChannelOnlineArray object for online calibration - delays.");
  AliInfo("Storing Calibration Data");
  resultTOFPP = Store("Calib","ParOnlineDelay",fCal, &metaData,deltaStartingRun,kTRUE);
  if(!resultTOFPP){
    Log("Some problems occurred while storing online object resulting from DAQ data processing");
    delete fCal;
    fCal=0x0;
    return 8;//return error code for problems in storing DAQ data 
  }

  if (fCal){
    delete fCal;
    fCal = 0;
  }

  return 0;
}

//_____________________________________________________________________________

UInt_t 
AliTOFPreprocessor::ProcessT0Fill()
{
  // Processing data from DAQ for T0-fill measurement 

  Log("Processing T0-fill");

#if 0
  /* instance and setup CDB manager */
  AliCDBManager *cdb = AliCDBManager::Instance();
  /* load geometry */
  if (!gGeoManager) AliGeomManager::LoadGeometry();
#endif

  /* get params from OCDB */
  AliCDBEntry *cdbe = NULL;

  /*
   * check UseLHCClockPhase flag in RunParams.
   * if set do nothing and return successfully
   */
  cdbe = GetFromOCDB("Calib", "RunParams");
  if (!cdbe) {
    Log("cannot get \"RunParams\" entry from OCDB");
    return 21;
  }
  AliTOFRunParams *runparams = (AliTOFRunParams *)cdbe->GetObject();
  if (runparams->GetUseLHCClockPhase()) {
    Log("UseLHCClockPhase flag is set in RunParams: online T0-fill not computed");
    return 0;
  }

  /* 
   * at this stage status object is not on OCDB yet
   * since it will be stored later. nevertheless we
   * should have the array in memory since it has been
   * already setup by ProcessFEF. 
   */
  
  /* check status and latency window available */
  if (!fStatus || !fLatencyWindow){
    AliError("No valid fStatus or fLatencyWindow found, some errors must have occurred!!");
    return 21;
  }

  /* get offline calibration from OCDB */
  cdbe = GetFromOCDB("Calib", "ParOffline");
  if (!cdbe) {
    Log("cannot get \"ParOffline\" entry from OCDB");
    return 21;
  }
  TObjArray *offlineArray = (TObjArray *)cdbe->GetObject();
  AliTOFChannelOffline *channelOffline;
  if (!offlineArray) {
    Log("cannot get \"ParOffline\" object from CDB entry");
    return 21;
  }
  Log("got \"ParOffline\" object");

  /* get deltaBC offset from OCDB */
  cdbe = GetFromOCDB("Calib", "DeltaBCOffset");
  if (!cdbe) {
    Log("cannot get \"DeltaBCOffset\" entry from OCDB");
    return 21;
  }
  AliTOFDeltaBCOffset *deltaBCOffsetObject = (AliTOFDeltaBCOffset *)cdbe->GetObject();
  if (!deltaBCOffsetObject) {
    Log("cannot get \"DeltaBCOffset\" object from CDB entry");
    return 21;
  }
  Int_t deltaBCOffset = deltaBCOffsetObject->GetDeltaBCOffset();
  Log(Form("got \"DeltaBCOffset\" object: deltaBCOffset=%d (BC bins)", deltaBCOffset));

  /* get CTP latency from OCDB */
  cdbe = GetFromOCDB("Calib", "CTPLatency");
  if (!cdbe) {
    Log("cannot get \"CTPLatency\" entry from OCDB");
    return 21;
  }
  AliTOFCTPLatency *ctpLatencyObject = (AliTOFCTPLatency *)cdbe->GetObject();
  if (!ctpLatencyObject) {
    Log("cannot get \"CTPLatency\" object from CDB entry");
    return 21;
  }
  Float_t ctpLatency = ctpLatencyObject->GetCTPLatency();
  Log(Form("got \"CTPLatency\" object: ctpLatency=%f (ps)", ctpLatency));
  
  /* get file sources from FXS */
  TList *fileList = GetFileSources(kDAQ, "HITS");
  if (!fileList || fileList->GetEntries() == 0) {
    Log("cannot get DAQ source file list or empty list");
    return 21;
  }
  Log(Form("got DAQ source file list: %d files", fileList->GetEntries()));
  fileList->Print();
  
  /* create tree chain using file sources */
  TChain chain("hitTree");
  for (Int_t ifile = 0; ifile < fileList->GetEntries(); ifile++) {
    TObjString *str = (TObjString *)fileList->At(ifile);
    TString filename = GetFile(kDAQ, "HITS", str->GetName());
    chain.Add(filename);
    Log(Form("file added to input chain: source=%s, filename=%s", str->String().Data(), filename.Data()));
  }
  Int_t nhits = chain.GetEntries();
  Log(Form("input chain ready: %d hits", nhits));

  /* setup input chain */
  AliTOFHitField *hit = new AliTOFHitField();
  chain.SetBranchAddress("hit", &hit);

  /* create calib histo and geometry */
  AliTOFcalibHisto calibHisto;
  calibHisto.LoadCalibHisto();
  AliTOFGeometry tofGeo;

  /* constants */
  Float_t c = TMath::C() * 1.e2 / 1.e12; /* cm/ps */
  Float_t c_1 = 1. / c;
  /* variables */
  Int_t index, timebin, totbin, deltaBC, l0l1latency, det[5];
  Float_t timeps, totns, corrps, length, timeexp, timezero, pos[3], latencyWindow;

  /* histos */
  TH1F *hT0Fill = new TH1F("hT0Fill", "T0 fill;t - t_{exp}^{(c)} (ps);", 2000, -24400., 24400.);

  /* loop over hits */
  for (Int_t ihit = 0; ihit < nhits; ihit++) {

    /* get entry */
   chain.GetEntry(ihit);
    
    /* get hit info */
    index = hit->GetIndex();
    timebin = hit->GetTimeBin();
    totbin = hit->GetTOTBin();
    deltaBC = hit->GetDeltaBC();
    l0l1latency = hit->GetL0L1Latency();
    latencyWindow = fLatencyWindow[index] * 1.e3;
    
    /* convert time in ps and tot in ns */
    timeps = timebin * AliTOFGeometry::TdcBinWidth();
    totns = totbin * AliTOFGeometry::ToTBinWidth() * 1.e-3;
    /* get calibration correction in ps */
    

    channelOffline = (AliTOFChannelOffline *)offlineArray->At(index);
    if (totns < AliTOFGeometry::SlewTOTMin()) totns = AliTOFGeometry::SlewTOTMin();
    if (totns > AliTOFGeometry::SlewTOTMax()) totns = AliTOFGeometry::SlewTOTMax();
    corrps = 0.;
    for (Int_t ipar = 0; ipar < 6; ipar++) corrps += channelOffline->GetSlewPar(ipar) * TMath::Power(totns, ipar);
    corrps *= 1.e3;
    /* perform time correction */
    //    timeps = timeps + (deltaBC - deltaBCOffset) * AliTOFGeometry::BunchCrossingBinWidth() + l0l1latency * AliTOFGeometry::BunchCrossingBinWidth() + ctpLatency - latencyWindow - corrps; /* deltaBC correction removed for the time being */
    timeps = timeps + l0l1latency * AliTOFGeometry::BunchCrossingBinWidth() + ctpLatency - latencyWindow - corrps;
    /* compute length and expected time */
    tofGeo.GetVolumeIndices(index, det);
    tofGeo.GetPosPar(det, pos);
    length = 0.;
    for (Int_t i = 0; i < 3; i++) length += pos[i] * pos[i];
    length = TMath::Sqrt(length);
    timeexp = length * c_1;
    /* compute time zero */
    timezero = timeps - timeexp;
    
    /* fill histos */
    hT0Fill->Fill(timezero);
  }

  /* rebin until maximum bin has required minimum entries */
  Int_t maxBin = hT0Fill->GetMaximumBin();
  Float_t maxBinContent = hT0Fill->GetBinContent(maxBin);
  Float_t binWidth = hT0Fill->GetBinWidth(maxBin);
  while (maxBinContent < 400 && binWidth < 90.) {
    hT0Fill->Rebin(2);
    maxBin = hT0Fill->GetMaximumBin();
    maxBinContent = hT0Fill->GetBinContent(maxBin);
    binWidth = hT0Fill->GetBinWidth(maxBin);
  }
  Float_t maxBinCenter = hT0Fill->GetBinCenter(maxBin);

  /* rough fit of the edge */
  TF1 *gaus = (TF1 *)gROOT->GetFunction("gaus");
  gaus->SetParameter(1, maxBinCenter);
  Float_t fitMin = maxBinCenter - 1000.; /* fit from 1 ns before max */
  Float_t fitMax = maxBinCenter + 1000.; /* fit until 1 ns above max */
  hT0Fill->Fit("gaus", "q0", "", fitMin, fitMax);
  /* better fit of the edge */
  Float_t mean, sigma;
  for (Int_t istep = 0; istep < 10; istep++) {
    mean = gaus->GetParameter(1);
    sigma = gaus->GetParameter(2);
    fitMin = mean - 3. * sigma;
    fitMax = mean;
    hT0Fill->Fit("gaus", "q0", "", fitMin, fitMax);
  }
  /* print params */
  mean = gaus->GetParameter(1);
  sigma = gaus->GetParameter(2);
  Float_t meane = gaus->GetParError(1);
  Float_t sigmae = gaus->GetParError(2);
  Log(Form("edge fit: mean  = %f +- %f ps", mean, meane));
  Log(Form("edge fit: sigma = %f +- %f ps", sigma, sigmae));
  /* check error */
  if (meane > 300.) {
    Log("error on mean is large: store default T0-fill value (0 ps)");
    mean = 0.;
  }
  if (sigmae > 300.) {
    Log("error on sigma is large: store default TOFreso value (200 ps)");
    sigma = 200.;
  }

  /* scratch values from the fit and use max bin center as t0-fill */
  mean = maxBinCenter;
  sigma = -1.;
  Log(Form("do not care about fitted value, just use max bin as t0-fill: %f ps", mean));

  /* create RunParams object */
  UInt_t timestamp[1] = {0};
  Float_t t0[1] = {mean};
  Float_t tofReso[1] = {sigma};
  Float_t t0Spread[1] = {-1.};
  AliTOFRunParams *runParamsObject = new AliTOFRunParams(1);
  runParamsObject->SetTimestamp(timestamp);
  runParamsObject->SetT0(t0);
  runParamsObject->SetTOFResolution(tofReso);
  runParamsObject->SetT0Spread(t0Spread);
  runParamsObject->SetUseLHCClockPhase(kFALSE);

  /* store reference data */
  if(fStoreRefData){
    AliCDBMetaData metaDataHisto;
    metaDataHisto.SetBeamPeriod(0);
    metaDataHisto.SetResponsible("Roberto Preghenella");
    metaDataHisto.SetComment("online T0-fill histogram");
    if (!StoreReferenceData("Calib","T0Fill", hT0Fill, &metaDataHisto)) {
      Log("error while storing reference data");
      delete hT0Fill;
      delete hit;
      delete runParamsObject;
      return 21;
    }
    Log("reference data successfully stored");
  }
  
  AliCDBMetaData metaData;
  metaData.SetBeamPeriod(0);
  metaData.SetResponsible("Roberto Preghenella");
  metaData.SetComment("online RunParams measurement");
  if (!Store("Calib", "RunParams", runParamsObject, &metaData, 0, kFALSE)) {
    Log("error while storing RunParams object");
    delete hT0Fill;
    delete hit;
    delete runParamsObject;
    return 21;
  }
  Log("RunParams object successfully stored");

  delete hT0Fill;
  delete hit;
  delete runParamsObject;
  return 0;

}
 
//_____________________________________________________________________________

UInt_t 
AliTOFPreprocessor::ProcessNoiseCalibTrg()
{
  // Processing data from DAQ using calibration triggers for noise measurement 

  Log("Processing Noise (calibration trigger)");

  /* check status and matching window available */
  if (!fStatus || !fMatchingWindow){
    AliError("No valid fStatus or fMatchingWindow found, some errors must have occurred!!");
    return 22;
  }

  Float_t noiseThr = 1000.;   // setting default threshold for noise to 1000 Hz
  // reading config map
  AliCDBEntry *cdbEntry = GetFromOCDB("Calib","ConfigNoise");
  if (!cdbEntry) Log(Form("No Configuration entry found in CDB, using default values: NoiseThr = %f",noiseThr));
  else {
    TMap *configMap = (TMap*)cdbEntry->GetObject();
    if (!configMap) Log(Form("No map found in Config entry in CDB, using default values: NoiseThr = %f", noiseThr));
    else {
      TObjString *strNoiseThr = (TObjString*)configMap->GetValue("NoiseThr");
      if (strNoiseThr) {
	TString tmpstr = strNoiseThr->GetString();
	noiseThr = tmpstr.Atoi();
      }
      else Log(Form("No NoiseThr value found in Map from ConfigNoise entry in CDB, using default value: NoiseThr = %f",noiseThr));
    }
  }

  /* get file sources from FXS */
  TList *fileList = GetFileSources(kDAQ, "CALIB");
  if (!fileList || fileList->GetEntries() == 0) {
    Log("cannot get DAQ source file list or empty list");
    return 22;
  }
  Log(Form("got DAQ source file list: %d files", fileList->GetEntries()));
  fileList->Print();

  /* open input file (only one expected) */
  TObjString *str = (TObjString *)fileList->At(0);
  TString filename = GetFile(kDAQ, "CALIB", str->GetName());
  Log(Form("opening input file: source=%s, filename=%s", str->String().Data(), filename.Data()));
  TFile *filein = TFile::Open(filename.Data());
  if (!filein || !filein->IsOpen()) {
    Log("cannot open input file");
    return 22;
  }

  /* get histo from input file */
  TH1F *hCalibHit = (TH1F *)filein->Get("hCalibHit");
  if (!hCalibHit) {
    Log("cannot get \"hCalibHit\" histo");
    return 22;
  }

  /* create and set noise rate histo and check rate */
  TH1F *hNoiseRate = new TH1F("hNoiseRate", ";index;rate (Hz)", fNChannels, 0., fNChannels);
  Float_t rate, rate_err;
  for (Int_t ich = 0; ich < fNChannels; ich++) {
    /* check channel enabled */
    if (fStatus->GetHWStatus(ich) == AliTOFChannelOnlineStatusArray::kTOFHWBad) continue;
    /* set noise rate histo */
    rate = hCalibHit->GetBinContent(ich + 1);
    rate_err = hCalibHit->GetBinError(ich + 1);
    rate /= fMatchingWindow[ich] * 1.e-9;
    rate_err /= fMatchingWindow[ich] * 1.e-9;
    hNoiseRate->SetBinContent(ich + 1, rate);
    hNoiseRate->SetBinError(ich + 1, rate_err);
    /* check error */
    if (rate_err == 0.) continue;
    /* check noise rate and set noise flags */
    if ((rate - 3. * rate_err) > noiseThr) {
      Log(Form("channel %d detected as noisy: rate = (%f +- %f) Hz", ich, rate, rate_err));
      if (fStatus->GetNoiseStatus(ich) == AliTOFChannelOnlineStatusArray::kTOFNoiseOk) {
	Log(Form("channel %d noise status changed from Ok to Bad", ich));
	fStatus->SetNoiseStatus(ich, AliTOFChannelOnlineStatusArray::kTOFNoiseBad);
	fIsStatusMapChanged = kTRUE;
      }
      else Log(Form("channel %d noise status unchanged", ich));
    }
    else if ((rate + 3. * rate_err) < noiseThr) {
      if (fStatus->GetNoiseStatus(ich) == AliTOFChannelOnlineStatusArray::kTOFNoiseBad) {
	Log(Form("channel %d noise status changed from Bad to Ok", ich));
	fStatus->SetNoiseStatus(ich, AliTOFChannelOnlineStatusArray::kTOFNoiseOk);
	fIsStatusMapChanged = kTRUE;
      }
    }
  }

  /* store reference data */
  if(fStoreRefData){
    AliCDBMetaData metaDataHisto;
    metaDataHisto.SetBeamPeriod(0);
    metaDataHisto.SetResponsible("Roberto Preghenella");
    metaDataHisto.SetComment("calibration trigger noise rate histogram");
    if (!StoreReferenceData("Calib","CalibNoise", hNoiseRate, &metaDataHisto)) {
      Log("error while storing reference data");
      delete hNoiseRate;
      filein->Close();
      return 22;
    }
    Log("reference data successfully stored");
  }

  delete hNoiseRate;
  filein->Close();
  return 0;
}

//_____________________________________________________________________________

UInt_t 
AliTOFPreprocessor::ProcessReadout()
{
  // Processing data from DAQ to compute reaodut efficiency

  Log("Processing Readout");

  /* get file sources from FXS */
  TList *fileList = GetFileSources(kDAQ, "READOUT");
  if (!fileList || fileList->GetEntries() == 0) {
    Log("cannot get DAQ source file list or empty list");
    return 22;
  }
  Log(Form("got DAQ source file list: %d files", fileList->GetEntries()));
  fileList->Print();

  /* open input file (only one expected) */
  TObjString *str = (TObjString *)fileList->At(0);
  TString filename = GetFile(kDAQ, "READOUT", str->GetName());
  Log(Form("opening input file: source=%s, filename=%s", str->String().Data(), filename.Data()));
  TFile *filein = TFile::Open(filename.Data());
  if (!filein || !filein->IsOpen()) {
    Log("cannot open input file");
    return 23;
  }

  /* get histo from input file */
  TH1F *hChainEfficiency = (TH1F *)filein->Get("hChainEfficiency");
  if (!hChainEfficiency) {
    Log("cannot get \"hChainEfficiency\" histo");
    return 23;
  }

  /* fill channel efficiency histo */

 /* temporarly disable warnings */
  AliLog::EType_t logLevel = (AliLog::EType_t)AliLog::GetGlobalLogLevel();
  AliLog::SetGlobalLogLevel(AliLog::kError);

  TH1F *hChannelEfficiency = new TH1F("hChannelEfficiency", "Channel readout efficiency;index;efficiency", fNChannels, 0., fNChannels);
  Int_t chainIndex, det[5], dummy, index;
  Float_t effi, effi_err;
  /* loop over DDLs */
  for (Int_t iddl = 0; iddl < 72; iddl++) {
    /* loop over TRMs */
    for (Int_t itrm = 0; itrm < 10; itrm++) {
      /* loop over chains */
      for (Int_t ichain = 0; ichain < 2; ichain++) {
	chainIndex = ichain + 2 * itrm + 20 * iddl;
	effi = hChainEfficiency->GetBinContent(chainIndex + 1);
	effi_err = hChainEfficiency->GetBinError(chainIndex + 1);
	/* loop over TDCs */
	for (Int_t itdc = 0; itdc < 15; itdc++) {
	  /* loop over channels */
	  for (Int_t ichannel = 0; ichannel < 8; ichannel++) {

	    /* get channel index */
	    AliTOFRawStream::EquipmentId2VolumeId(iddl, itrm + 3, ichain, itdc, ichannel, det);
	    dummy = det[4];
	    det[4] = det[3];
	    det[3] = dummy;
	    /* check valid index */
	    if (det[0] < 0 || det[0] > 17 ||
		det[1] < 0 || det[1] > 5 ||
		det[2] < 0 || det[2] > 18 ||
		det[3] < 0 || det[3] > 1 ||
		det[4] < 0 || det[4] > 47) continue;
	    index = AliTOFGeometry::GetIndex(det);

	    /* set channel efficiency */
	    hChannelEfficiency->SetBinContent(index + 1, effi);
	    hChannelEfficiency->SetBinError(index + 1, effi_err);

	  }
	}
      }
    }
  }

  /* re-enable warnings */
  AliLog::SetGlobalLogLevel(logLevel);

  /* store reference data */
  if(fStoreRefData){
    /* setup TOF readout info object */
    AliTOFReadoutInfo readoutInfo;
    readoutInfo.SetChainEfficiency((TH1F *)filein->Get("hChainEfficiency"));
    readoutInfo.SetTRMData((TH1F *)filein->Get("hTRMData"));
    readoutInfo.SetTRMEmptyEvent((TH1F *)filein->Get("hTRMEmptyEvent"));
    readoutInfo.SetTRMBadEventCounter((TH1F *)filein->Get("hTRMBadEventCounter"));
    readoutInfo.SetTRMBadCRC((TH1F *)filein->Get("hTRMBadCRC"));
    readoutInfo.SetChainData((TH1F *)filein->Get("hChainData"));
    readoutInfo.SetChainBadStatus((TH1F *)filein->Get("hChainBadStatus"));
    readoutInfo.SetChainBadEventCounter((TH1F *)filein->Get("hChainBadEventCounter"));
    readoutInfo.SetTDCError((TH1F *)filein->Get("hTDCError"));
    readoutInfo.SetTDCErrorFlags((TH2F *)filein->Get("hTDCErrorFlags"));

    AliCDBMetaData metaDataHisto;
    metaDataHisto.SetBeamPeriod(0);
    metaDataHisto.SetResponsible("Roberto Preghenella");
    metaDataHisto.SetComment("readout info data");
    if (!StoreReferenceData("Calib","ReadoutInfo", &readoutInfo, &metaDataHisto)) {
      Log("error while storing reference data");
      filein->Close();
      return 23;
    }
    Log("reference data successfully stored");
  }

  AliCDBMetaData metaData;
  metaData.SetBeamPeriod(0);
  metaData.SetResponsible("Roberto Preghenella");
  metaData.SetComment("online ReadoutEfficiency measurement");
  if (!Store("Calib", "ReadoutEfficiency", hChannelEfficiency, &metaData, 0, kFALSE)) {
    Log("error while storing ReadoutEfficiency object");
    delete hChannelEfficiency;
    filein->Close();
    return 23;
  }
  Log("ReadoutEfficiency object successfully stored");

  delete hChannelEfficiency;
  filein->Close();
  return 0;
}

//_____________________________________________________________________________

UInt_t AliTOFPreprocessor::ProcessPulserData()
{
  // Processing Pulser Run data for TOF channel status

  Log("Processing Pulser");

  if (fStatus==0x0){
	  AliError("No valid fStatus found, some errors must have occurred!!");
	  return 20;
  }

  TH1::AddDirectory(0);
  
  Bool_t resultPulserRef=kFALSE;
  Bool_t resultPulser=kFALSE;
  
  static const Int_t kSize = AliTOFGeometry::NPadXSector()*AliTOFGeometry::NSectors();
  TH1S * htofPulser = new TH1S("hTOFpulser","histo with signals on TOF during pulser", kSize,-0.5,kSize-0.5);
  for (Int_t ibin =1;ibin<=kSize;ibin++){
	  htofPulser->SetBinContent(ibin,-1);
  }
  
  // processing pulser
  
  TFile * daqFile=0x0;
  TH1S *h1=0x0;
  
  //retrieving Pulser data 
  TList* listPulser = GetFileSources(kDAQ, "PULSER");
  if (listPulser !=0x0 && listPulser->GetEntries()!=0)
	  {
		  AliInfo("The following sources produced files with the id PULSER");
		  listPulser->Print();
		  Int_t nPulser = 0;
		  for (Int_t jj=0;jj<listPulser->GetEntries();jj++){
			  Int_t nPulserSource = 0;
			  TObjString * str = dynamic_cast<TObjString*> (listPulser->At(jj));
			  if (!str) {
			    AliError("dynamic_cast returned NULL");
			    return 4;
			  }
			  AliInfo(Form("found source %s", str->String().Data()));
			  // file to be stored run per run
			  TString fileNamePulser = GetFile(kDAQ, "PULSER", str->GetName());
			  if (fileNamePulser.Length()>0){
				  // storing refernce data
				  AliInfo(Form("Got the file %s, now we can process pulser data.", fileNamePulser.Data()));
				  daqFile = new TFile(fileNamePulser.Data(),"READ");
				  h1 = (TH1S*) daqFile->Get("hTOFpulser");
				  for (Int_t ibin=0;ibin<kSize;ibin++){
					  if ((h1->GetBinContent(ibin+1))!=-1){
						  if ((htofPulser->GetBinContent(ibin+1))==-1){
							  htofPulser->SetBinContent(ibin+1,h1->GetBinContent(ibin+1));
						  }
						  else {
							  Log(Form("Something strange occurred during Pulser run, channel %i already read by another LDC, please check!",ibin));
						  }
					  }
				  }
				  
				  // elaborating infos
				  Double_t mean =0;
				  Int_t nread=0;
				  Int_t nreadNotEmpty=0;
				  for (Int_t ientry=1;ientry<=h1->GetNbinsX();ientry++){
					  
					  AliDebug(3,Form(" channel %i pulser status before pulser = %i, with global status = %i",ientry,(Int_t)fStatus->GetPulserStatus(ientry),(Int_t)fStatus->GetStatus(ientry)));
					  /* check whether channel has been read out during current run.
					   * if the status is bad it means it has not been read out.
					   * in this case skip channel in order to not affect the mean */ 
					  if (fStatus->GetHWStatus(ientry-1) == AliTOFChannelOnlineStatusArray::kTOFHWBad)
						  continue;
					  nPulser++;
					  nPulserSource++;
					  if (h1->GetBinContent(ientry)==-1) continue;
					  else {
						  if (h1->GetBinContent(ientry)>0) {
							  nreadNotEmpty++;
							  AliDebug(2,Form(" channel %i is ok with entry = %f; so far %i channels added ",ientry-1,h1->GetBinContent(ientry),nreadNotEmpty));
						  }
						  mean+=h1->GetBinContent(ientry);
						  nread++;
					  }
				  }
				  if (nread!=0) {
					  mean/=nread;
					  AliDebug(2,Form(" nread =  %i , nreadNotEmpty = %i, mean = %f",nread,nreadNotEmpty,mean));
					  for (Int_t ich =0;ich<fNChannels;ich++){
						  if (h1->GetBinContent(ich+1)==-1) continue;
						  AliDebug(3,Form(" channel %i pulser status before pulser = %i",ich,(Int_t)fStatus->GetPulserStatus(ich)));
						  
						  /* check whether channel has been read out during current run.
						   * if the status is bad it means it has not been read out.
						   * in this case skip channel in order to leave its status 
						   * unchanged */
						  if (fStatus->GetHWStatus(ich) == AliTOFChannelOnlineStatusArray::kTOFHWBad)
							  continue;
						  
						  if (h1->GetBinContent(ich+1)<0.05*mean){
							  fStatus->SetPulserStatus(ich,AliTOFChannelOnlineStatusArray::kTOFPulserBad);  // bad status for pulser
							  AliDebug(2,Form( " channel %i pulser status after pulser = %i (bad, content = %f), with global status = %i",ich,(Int_t)fStatus->GetPulserStatus(ich),h1->GetBinContent(ich+1),(Int_t)fStatus->GetStatus(ich)));
						  }
						  else {
							  fStatus->SetPulserStatus(ich,AliTOFChannelOnlineStatusArray::kTOFPulserOk);  // good status for pulser
							  AliDebug(2,Form( " channel %i pulser status after pulser = %i (good), with global status = %i",ich,(Int_t)fStatus->GetPulserStatus(ich),(Int_t)fStatus->GetStatus(ich)));
						  }
					  }
				  }
				  else {
					  Log("No channels read!! No action taken, keeping old status");
				  }
				  
				  daqFile->Close();
				  delete daqFile;
				  delete h1;
			  }
			  
			  else{
				  Log("The input data file from DAQ (pulser) was not found, TOF exiting from Shuttle "); 
				  delete listPulser;
				  delete htofPulser;
				  htofPulser = 0x0;
				  if (fStatus){
					  delete fStatus;
					  fStatus = 0;
				  }
				  return 10;//return error code for failure in retrieving Ref Data 
			  }
			  AliDebug(2,Form(" Number of channels processed during pulser run from source %i = %i",jj, nPulserSource));		 
		  }
		  AliDebug(2,Form(" Number of channels processed during pulser run = %i",nPulser));
		  delete listPulser;
	  }
  
  else{
	  Log("The input data file list from DAQ (pulser) was not found, TOF exiting from Shuttle "); 
	  delete htofPulser;
	  htofPulser = 0x0;
	  if (fStatus){
		  delete fStatus;
		  fStatus = 0;
	  }
	  return 10;//return error code for failure in retrieving Ref Data 
  }	
  
  //storing in OCDB  
  
  AliCDBMetaData metaData;
  metaData.SetBeamPeriod(0);
  metaData.SetResponsible("Chiara Zampolli");
  metaData.SetComment("This preprocessor fills an AliTOFChannelOnlineStatusArray object after a Pulser run.");
  AliInfo("Storing Calibration Data from Pulser Run");
  resultPulser = Store("Calib","Status",fStatus, &metaData,0,kTRUE);
  if(!resultPulser){
    Log("Some problems occurred while storing online object resulting from Pulser data processing");
    delete htofPulser;
    htofPulser = 0x0;
    if (fStatus){
	    delete fStatus;
	    fStatus = 0;
    }
    return 11;//return error code for problems in storing Pulser data 
  }

  if(fStoreRefData){
    
    AliCDBMetaData metaDataHisto;
    metaDataHisto.SetBeamPeriod(0);
    metaDataHisto.SetResponsible("Chiara Zampolli");
    metaDataHisto.SetComment("This preprocessor stores the Ref data from a pulser run.");
    AliInfo("Storing Reference Data");
    resultPulserRef = StoreReferenceData("Calib","PulserData",htofPulser, &metaDataHisto);
    if (!resultPulserRef){
      Log("some problems occurred::No Reference Data for pulser stored, TOF exiting from Shuttle");
      delete htofPulser;
      htofPulser = 0x0;
      if (fStatus){
	      delete fStatus;
	      fStatus = 0;
      }
      return 9;//return error code for failure in storing Ref Data 
    }
  }
  
  daqFile=0;

  delete htofPulser;
  htofPulser = 0x0;

  if (fStatus){
    delete fStatus;
    fStatus = 0;
  }

  return 0;
}
//_____________________________________________________________________________

UInt_t AliTOFPreprocessor::ProcessNoiseData()
{

  // Processing Noise Run data for TOF channel status

  Log("Processing Noise");

  if (fStatus==0x0){
	  AliError("No valid fStatus found, some errors must have occurred!!");
	  return 20;
  }

  Float_t noiseThr = 1;   // setting default threshold for noise to 1 Hz
  // reading config map
  AliCDBEntry *cdbEntry = GetFromOCDB("Calib","ConfigNoise");
  if (!cdbEntry) {
	  Log(Form("No Configuration entry found in CDB, using default values: NoiseThr = %f",noiseThr));
  }
  else {
	  TMap *configMap = (TMap*)cdbEntry->GetObject();
	  if (!configMap){
		  Log(Form("No map found in Config entry in CDB, using default values: NoiseThr = %f", noiseThr));
	  }
	  else{
		  TObjString *strNoiseThr = (TObjString*)configMap->GetValue("NoiseThr");
		  if (strNoiseThr) {
			  TString tmpstr = strNoiseThr->GetString();
			  noiseThr = tmpstr.Atoi();
		  }
		  else {
			  Log(Form("No NoiseThr value found in Map from ConfigNoise entry in CDB, using default value: NoiseThr = %f",noiseThr));
		  }
	  }
  }

  delete cdbEntry;
  cdbEntry = 0x0;

  TH1::AddDirectory(0);

  Bool_t resultNoiseRef=kFALSE;
  Bool_t resultNoise=kFALSE;

  static const Int_t kSize = AliTOFGeometry::NPadXSector()*AliTOFGeometry::NSectors();
  TH1F * htofNoise = new TH1F("hTOFnoise","histo with signals on TOF during noise", kSize,-0.5,kSize-0.5);
  for (Int_t ibin =1;ibin<=kSize;ibin++){
	  htofNoise->SetBinContent(ibin,-1);
  }
  
  // processing noise
  
  TFile * daqFile=0x0;
  TH1F * h1=0x0;
  
  // useful counters
  Int_t nNoise = 0;
  Int_t nNoisyChannels = 0;
  Int_t nNotNoisyChannels = 0;
  Int_t nChannelsFromDA = 0;
  Int_t nMatchingWindowNullNonZero = 0;
  Int_t nMatchingWindowNullEqualZero = 0;

  // retrieving Noise data 
  TList* listNoise = GetFileSources(kDAQ, "NOISE");
  if (listNoise !=0x0 && listNoise->GetEntries()!=0)
	  {
		  AliInfo("The following sources produced files with the id NOISE");
		  listNoise->Print();
		  for (Int_t jj=0;jj<listNoise->GetEntries();jj++){
			  Int_t nNoiseSource = 0;
			  TObjString * str = dynamic_cast<TObjString*> (listNoise->At(jj));
			  if (!str) {
			    AliError("dynamic_cast returned NULL");
			    return 4;
			  }
			  AliInfo(Form("found source %s", str->String().Data()));
			  // file to be stored run per run
			  TString fileNameNoise = GetFile(kDAQ, "NOISE", str->GetName());
			  if (fileNameNoise.Length()>0){
				  // storing reference data
				  AliInfo(Form("Got the file %s, now we can process noise data.", fileNameNoise.Data()));
				  daqFile = new TFile(fileNameNoise.Data(),"READ");
				  h1 = (TH1F*) daqFile->Get("hTOFnoise");
				  for (Int_t ibin=0;ibin<kSize;ibin++){
					  if ((h1->GetBinContent(ibin+1))!=-1){
						  nNoiseSource++;
						  // checking the matching window for current channel
						  if (fMatchingWindow[ibin] == 0){
							  Log(Form("Matching window for channel %i null, but the channel was read by the LDC! skipping channel, BUT Please check!",ibin));
							  if ((h1->GetBinContent(ibin+1))!=0) nMatchingWindowNullNonZero++;						
							  if ((h1->GetBinContent(ibin+1))==0) nMatchingWindowNullEqualZero++;						
							  continue;
						  }
						  if ((htofNoise->GetBinContent(ibin+1))==-1){
							  htofNoise->SetBinContent(ibin+1,h1->GetBinContent(ibin+1)/(fMatchingWindow[ibin]*1.E-9));
							  if ((h1->GetBinContent(ibin+1))!= 0) AliDebug(2,Form("Channel = %i, Matching window = %i, Content = %f", ibin, fMatchingWindow[ibin], htofNoise->GetBinContent(ibin+1)));
						  }
						  else {
							  Log(Form("Something strange occurred during Noise run, channel %i already read by another LDC, please check!",ibin));
						  }
					  }
				  }

				  Log(Form(" Number of channels processed during noise run from source %i = %i",jj, nNoiseSource));
				  daqFile->Close();
				  delete daqFile;
				  delete h1;
				  daqFile = 0x0;
				  h1 = 0x0;

			  }
			  else{
				  Log("The input data file from DAQ (noise) was not found, TOF exiting from Shuttle "); 
				  delete listNoise;
				  listNoise = 0x0;
				  delete htofNoise;
				  htofNoise = 0x0;
				  if (fStatus){
					  delete fStatus;
					  fStatus = 0;
				  }
				  if (fMatchingWindow){
					  delete [] fMatchingWindow;
					  fMatchingWindow = 0;
				  }
				  return 13;//return error code for failure in retrieving Ref Data 
			  }
		  }		  
	  }
			  
  else{
	  Log("The input data file list from DAQ (noise) was not found, TOF exiting from Shuttle "); 
	  delete htofNoise;
	  htofNoise = 0x0;
	  if (fStatus){
		  delete fStatus;
		  fStatus = 0;
	  }
	  if (fMatchingWindow){
		  delete [] fMatchingWindow;
		  fMatchingWindow = 0;
	  }
	  return 13;//return error code for failure in retrieving Ref Data 
  }	
  
  // elaborating infos to set NOISE status
  for (Int_t ich =0;ich<fNChannels;ich++){
	  if (htofNoise->GetBinContent(ich+1)== -1) continue;

	  nChannelsFromDA++;

	  AliDebug(3,Form(" channel %i noise status before noise = %i, with global status = %i",ich,(Int_t)fStatus->GetNoiseStatus(ich),(Int_t)fStatus->GetStatus(ich)));
	  //AliDebug(2,Form( " channel %i status before noise = %i",ich,(Int_t)fStatus->GetNoiseStatus(ich)));
	  
	  /* check whether channel has been read out during current run.
	   * if the status is bad it means it has not been read out.
	   * in this case skip channel in order to leave its status 
	   * unchanged */

	  if ((fStatus->GetHWStatus(ich)) == AliTOFChannelOnlineStatusArray::kTOFHWBad)
		  continue;
	  
	  nNoise++;
	  if (htofNoise->GetBinContent(ich+1) >= noiseThr){
		  fStatus->SetNoiseStatus(ich,AliTOFChannelOnlineStatusArray::kTOFNoiseBad); // bad status for noise
		  AliDebug(3,Form( " channel %i noise status after noise = %i, with global status = %i",ich,(Int_t)fStatus->GetNoiseStatus(ich),(Int_t)fStatus->GetStatus(ich)));
		  nNoisyChannels++;
	  }
	  else {
		  fStatus->SetNoiseStatus(ich,AliTOFChannelOnlineStatusArray::kTOFNoiseOk); // good status for noise
		  AliDebug(3,Form(" channel %i noise status after noise = %i, with global status = %i",ich,(Int_t)fStatus->GetNoiseStatus(ich),(Int_t)fStatus->GetStatus(ich)));
		  nNotNoisyChannels++;
	  }
  }
  
  Log(Form(" Number of channels processed by DA during noise run, independetly from TOFFEE = %i",nChannelsFromDA));
  Log(Form(" Number of channels processed during noise run (that were ON according to TOFFEE) = %i",nNoise));
  Log(Form(" Number of noisy channels found during noise run = %i",nNoisyChannels));
  Log(Form(" Number of not noisy channels found during noise run = %i",nNotNoisyChannels));
  Log(Form(" Number of channels with matching window NULL (so skipped), but Non Zero content = %i",nMatchingWindowNullNonZero));
  Log(Form(" Number of channels with matching window NULL (so skipped), and Zero content = %i",nMatchingWindowNullEqualZero));

  delete listNoise;
  
  //daqFile=0;
  
  //storing in OCDB
  
  AliCDBMetaData metaData;
  metaData.SetBeamPeriod(0);
  metaData.SetResponsible("Chiara Zampolli");
  metaData.SetComment("This preprocessor fills an AliTOFChannelOnlineStatusArray object after a Noise run.");
  AliInfo("Storing Calibration Data from Noise Run");
  resultNoise = Store("Calib","Status",fStatus, &metaData,0,kTRUE);
  if(!resultNoise){
    Log("Some problems occurred while storing online object resulting from Noise data processing");
    delete htofNoise;
    htofNoise = 0x0;
    if (fStatus){
	    delete fStatus;
	    fStatus = 0;
    }
    if (fMatchingWindow){
	    delete [] fMatchingWindow;
	    fMatchingWindow = 0;
    }
    return 14;//return error code for problems in storing Noise data 
  }

  if(fStoreRefData){
    
    AliCDBMetaData metaDataHisto;
    metaDataHisto.SetBeamPeriod(0);
    metaDataHisto.SetResponsible("Chiara Zampolli");
    metaDataHisto.SetComment("This preprocessor stores the Ref data from a noise run. ");
    AliInfo("Storing Reference Data");
    resultNoiseRef = StoreReferenceData("Calib","NoiseData",htofNoise, &metaDataHisto);
    if (!resultNoiseRef){
      Log("some problems occurred::No Reference Data for noise stored");
      delete htofNoise;
      htofNoise = 0x0;
      if (fStatus){
	      delete fStatus;
	      fStatus = 0;
      }
      if (fMatchingWindow){
	      delete [] fMatchingWindow;
	      fMatchingWindow = 0;
      }
      return 12;//return error code for failure in storing Ref Data 
    }
  }

  delete htofNoise;
  htofNoise = 0x0;

  if (fStatus){
    delete fStatus;
    fStatus = 0;
  }

  if (fMatchingWindow){
	  delete [] fMatchingWindow;
	  fMatchingWindow = 0;
  }

  return 0;
}
//_____________________________________________________________________________

UInt_t AliTOFPreprocessor::ProcessFEEData()
{
  // Processing Pulser Run data for TOF channel status
  // dummy for the time being

  Log("Processing FEE");

  //Bool_t updateOCDB = kFALSE;
  AliTOFFEEReader feeReader;

  TH1C hCurrentFEE("hCurrentFEE","histo with current FEE channel status", fNChannels, 0, fNChannels);
  
  /* load current TOF FEE(dump) from DCS FXS, 
   * setup TOFFEEdump object */

  const char * toffeeFileName = GetFile(kDCS,"TofFeeMap",""); 
  AliInfo(Form("toffee file name = %s", toffeeFileName));
  if (toffeeFileName == NULL) {
    return 15;
  } 
  AliTOFFEEDump feedump;
  feedump.ReadFromFile(toffeeFileName);
  
  /* load current TOF FEE(light) config from DCS FXS, parse, 
   * fill current FEE histogram and set FEE status */
  
  const char * nameFile = GetFile(kDCS,"TofFeeLightMap",""); 
  AliInfo(Form("toffeeLight file name = %s",nameFile));
  if (nameFile == NULL) {
	  return 15;
  } 
  feeReader.LoadFEElightConfig(nameFile);
  Int_t parseFee = feeReader.ParseFEElightConfig();
  AliDebug(2,Form("%i enabled channels found in FEElight configuration",parseFee));
  /* load stored TOF FEE from OCDB and compare it with current FEE.
   * if stored FEE is different from current FEE set update flag.
   * if there is no stored FEE in OCDB set update flag */
  
  fMatchingWindow = new Int_t[fNChannels];
  fLatencyWindow = new Int_t[fNChannels];
  
  AliCDBEntry *cdbEntry = GetFromOCDB("Calib","Status");
  if (!cdbEntry) {
	  /* no CDB entry found. set update flag */
	  Log("     ************ WARNING ************");
	  Log("No CDB Status entry found, creating a new one!");
	  Log("     *********************************");
	  fStatus = new AliTOFChannelOnlineStatusArray(fNChannels);
	  //updateOCDB = kTRUE;
	  fIsStatusMapChanged = kTRUE;
  }
  else {
	  if (cdbEntry) cdbEntry->SetOwner(kFALSE);
	  /* CDB entry OK. loop over channels */
	  fStatus = (AliTOFChannelOnlineStatusArray*) cdbEntry->GetObject();
	  delete cdbEntry;
	  cdbEntry = 0x0;
	  /* cehck whether status object has latency window data */
	  if (!fStatus->HasLatencyWindow()) {
	    /* create new status object and update OCDB */
	    Log("     ************ WARNING ************");
	    Log("CDB Status entry found but has no latency window data, creating a new one!");
	    Log("     *********************************");
	    delete fStatus;
	    fStatus = new AliTOFChannelOnlineStatusArray(fNChannels);
	    //updateOCDB = kTRUE;
	    fIsStatusMapChanged = kTRUE;
	  }
  }
  for (Int_t iChannel = 0; iChannel < fNChannels; iChannel++){
	  //AliDebug(2,Form("********** channel %i",iChannel));
	  /* compare current FEE channel status with stored one 
	   * if different set update flag and break loop */
	  //AliDebug(2,Form( " channel %i status before FEE = %i",iChannel,(Int_t)fStatus->GetHWStatus(iChannel)));
	  fMatchingWindow[iChannel] = feeReader.GetMatchingWindow(iChannel);
	  fLatencyWindow[iChannel] = feeReader.GetLatencyWindow(iChannel);
	  if (feeReader.IsChannelEnabled(iChannel)) {
		  hCurrentFEE.SetBinContent(iChannel + 1, 1);
		  if (fStatus->GetHWStatus(iChannel)!=AliTOFChannelOnlineStatusArray::kTOFHWOk){
		          //updateOCDB = kTRUE;
			  fIsStatusMapChanged = kTRUE;
			  fStatus->SetHWStatus(iChannel,AliTOFChannelOnlineStatusArray::kTOFHWOk);
			  AliDebug(3,Form( " changed into enabled: channel %i status after FEE = %i",iChannel,(Int_t)fStatus->GetHWStatus(iChannel)));
		  }
		  if (fStatus->GetLatencyWindow(iChannel)!=fLatencyWindow[iChannel]){
		          //updateOCDB = kTRUE;
			  fIsStatusMapChanged = kTRUE;
			  fStatus->SetLatencyWindow(iChannel,fLatencyWindow[iChannel]);
			  AliDebug(3,Form( " changed latency window: channel %i latency window after FEE = %i",iChannel,fStatus->GetLatencyWindow(iChannel)));
		  }
	  }
	  else {
		  if (fStatus->GetHWStatus(iChannel)!=AliTOFChannelOnlineStatusArray::kTOFHWBad){
		          //updateOCDB = kTRUE;
			  fIsStatusMapChanged = kTRUE;
			  fStatus->SetHWStatus(iChannel,AliTOFChannelOnlineStatusArray::kTOFHWBad);
			  AliDebug(3,Form( " changed into disabled: channel %i status after FEE = %i",iChannel,(Int_t)fStatus->GetHWStatus(iChannel)));
		  }
	  }
  }


  /* check whether we don't have to store reference data.
   * in this case we return without errors. */
  if (fStoreRefData) {
    /* store reference data */
    AliCDBMetaData metaDataHisto;
    metaDataHisto.SetBeamPeriod(0);
    metaDataHisto.SetResponsible("Roberto Preghenella");
    metaDataHisto.SetComment("This preprocessor stores the FEE Ref data of the current run.");
    AliInfo("Storing FEE reference data");
    /* store FEE reference data */
    if (!StoreReferenceData("Calib", "FEEData", &hCurrentFEE, &metaDataHisto)) {
      /* failed */
      Log("problems while storing FEE reference data");
      if (fStatus){
	delete fStatus;
	fStatus = 0;
      }
      return 18; /* error return code for problems while storing FEE reference data */
    }
    
    /* store TOF FEE dump reference data */
    AliCDBMetaData metaDatadump;
    metaDatadump.SetBeamPeriod(0);
    metaDatadump.SetResponsible("Roberto Preghenella");
    metaDatadump.SetComment("This preprocessor stores the TOF FEE dump Ref data of the current run.");
    AliInfo("Storing TOF FEE dump reference data");
    /* store FEE reference data */
    if (!StoreReferenceData("Calib", "FEEDump", &feedump, &metaDatadump)) {
      /* failed */
      Log("problems while storing TOF FEE dump reference data");
      return 18; /* error return code for problems while storing FEE reference data */
    }
  }

  return 0;

}

//_____________________________________________________________________________

UInt_t AliTOFPreprocessor::Process(TMap *dcsAliasMap)
{
  //
  // Main AliTOFPreprocessor method called by SHUTTLE
  //

  TString runType = GetRunType();
  Log(Form("RunType %s",runType.Data()));
  
  // processing 

  /* always process FEE data */
  Int_t iresultFEE = ProcessFEEData();
  if (iresultFEE != 0)
    return iresultFEE;

  if (runType == "PULSER") {
    Int_t iresultPulser = ProcessPulserData();
    return iresultPulser; 
  }

  if (runType == "NOISE") { // for the time being associating noise runs with pedestal runs; proper run type to be defined 
    Int_t iresultNoise = ProcessNoiseData();
    return iresultNoise; 
  }
 
  if (runType == "PHYSICS") {
    //    Int_t iresultDAQ = ProcessOnlineDelays();
    Int_t iresultDAQ = ProcessT0Fill();
    Int_t iresultNoiseCalib = ProcessNoiseCalibTrg();
    Int_t iresultReadout = ProcessReadout();
    Int_t iresultDCS = ProcessDCSDataPoints(dcsAliasMap);
    Int_t iResultHVandLVdps = ProcessHVandLVdps(dcsAliasMap);
    Int_t totResult = iresultDAQ + iresultNoiseCalib + iresultDCS + iResultHVandLVdps + iresultReadout; 
    Log(Form("Processing PHYSICS, returning %d (iresultDAQ = %d, iresultNoiseCalib = %d, iresultDCS = %d, iResultHVandLVdps = %d, iresultReadout = %d)", totResult, iresultDAQ, iresultNoiseCalib, iresultDCS, iResultHVandLVdps, iresultReadout));
    return totResult;
  }

  // storing
  return 0;
}


//_____________________________________________________________________________

void
AliTOFPreprocessor::FillWithCosmicCalibration(AliTOFChannelOnlineArray *cal)
{
  /*
   * fill with cosmic calibration 
   */

  Log(" Using cosmic-ray calibration.");
  
  AliTOFcalibHisto calibHisto;
  calibHisto.SetFullCorrectionFlag(AliTOFcalibHisto::kTimeSlewingCorr, kFALSE);
  Log(Form(" loading calibration histograms from %s", calibHisto.GetCalibHistoFileName()));
  Log(Form(" loading calibration parameters from %s", calibHisto.GetCalibParFileName()));
  calibHisto.LoadCalibPar();
  
  /* loop over channel index */
  for (Int_t iIndex = 0; iIndex < fNChannels; iIndex++) {
    cal->SetDelay(iIndex, calibHisto.GetFullCorrection(iIndex));
  }
  
}

//_____________________________________________________________________________

void
AliTOFPreprocessor::FillWithCableLengthMap(AliTOFChannelOnlineArray *cal)
{
  /*
   * fill with cosmic calibration 
   */
  
  Log(" Using cable-length map.");
  AliTOFRawStream tofrs;
  Int_t det[5], dummy, index;
  Float_t cableTimeShift;
  
  /* temporarly disable warnings */
  AliLog::EType_t logLevel = (AliLog::EType_t)AliLog::GetGlobalLogLevel();
  AliLog::SetGlobalLogLevel(AliLog::kError);
  
  /* loop over EO indeces */
  for (Int_t iddl = 0; iddl < 72; iddl++)
    for (Int_t islot = 3; islot <= 12; islot++)
      for (Int_t ichain = 0; ichain < 2; ichain++)
	for (Int_t itdc = 0; itdc < 15; itdc++)
	  for (Int_t ichannel = 0; ichannel < 8; ichannel++) {
	    
	    /* get DO index */
	    tofrs.EquipmentId2VolumeId(iddl, islot, ichain, itdc, ichannel, det);
	    
	    /* swap det[3] and det[4] indeces (needed to obtain correct channel index) */
	    dummy = det[3];
	    det[3] = det[4];
	    det[4] = dummy;
	    
	    /* check DO index */
	    if (det[0] < 0 || det[0] > 17 ||
		det[1] < 0 || det[1] > 4 ||
		det[2] < 0 || det[2] > 18 ||
		det[3] < 0 || det[3] > 1 ||
		det[4] < 0 || det[4] > 47)
	      continue;
	    
	    /* get channel index */
	    index = AliTOFGeometry::GetIndex(det);
	    if (index < 0) continue;
	    
	    /* get cable time shift */
	    cableTimeShift = AliTOFCableLengthMap::GetCableTimeShift(iddl, islot, ichain, itdc);
	    
	    /* set delay */
	    if (index<fNChannels) {
	      cal->SetDelay(index,cableTimeShift);  // delay in ns
	      AliDebug(2,Form("Setting delay %f (ns) for channel %i",cableTimeShift,index));
	    }
	    
	  } /* loop over EO indeces */
  
  /* re-enable warnings */
  AliLog::SetGlobalLogLevel(logLevel);
  
}


 AliTOFPreprocessor.cxx:1
 AliTOFPreprocessor.cxx:2
 AliTOFPreprocessor.cxx:3
 AliTOFPreprocessor.cxx:4
 AliTOFPreprocessor.cxx:5
 AliTOFPreprocessor.cxx:6
 AliTOFPreprocessor.cxx:7
 AliTOFPreprocessor.cxx:8
 AliTOFPreprocessor.cxx:9
 AliTOFPreprocessor.cxx:10
 AliTOFPreprocessor.cxx:11
 AliTOFPreprocessor.cxx:12
 AliTOFPreprocessor.cxx:13
 AliTOFPreprocessor.cxx:14
 AliTOFPreprocessor.cxx:15
 AliTOFPreprocessor.cxx:16
 AliTOFPreprocessor.cxx:17
 AliTOFPreprocessor.cxx:18
 AliTOFPreprocessor.cxx:19
 AliTOFPreprocessor.cxx:20
 AliTOFPreprocessor.cxx:21
 AliTOFPreprocessor.cxx:22
 AliTOFPreprocessor.cxx:23
 AliTOFPreprocessor.cxx:24
 AliTOFPreprocessor.cxx:25
 AliTOFPreprocessor.cxx:26
 AliTOFPreprocessor.cxx:27
 AliTOFPreprocessor.cxx:28
 AliTOFPreprocessor.cxx:29
 AliTOFPreprocessor.cxx:30
 AliTOFPreprocessor.cxx:31
 AliTOFPreprocessor.cxx:32
 AliTOFPreprocessor.cxx:33
 AliTOFPreprocessor.cxx:34
 AliTOFPreprocessor.cxx:35
 AliTOFPreprocessor.cxx:36
 AliTOFPreprocessor.cxx:37
 AliTOFPreprocessor.cxx:38
 AliTOFPreprocessor.cxx:39
 AliTOFPreprocessor.cxx:40
 AliTOFPreprocessor.cxx:41
 AliTOFPreprocessor.cxx:42
 AliTOFPreprocessor.cxx:43
 AliTOFPreprocessor.cxx:44
 AliTOFPreprocessor.cxx:45
 AliTOFPreprocessor.cxx:46
 AliTOFPreprocessor.cxx:47
 AliTOFPreprocessor.cxx:48
 AliTOFPreprocessor.cxx:49
 AliTOFPreprocessor.cxx:50
 AliTOFPreprocessor.cxx:51
 AliTOFPreprocessor.cxx:52
 AliTOFPreprocessor.cxx:53
 AliTOFPreprocessor.cxx:54
 AliTOFPreprocessor.cxx:55
 AliTOFPreprocessor.cxx:56
 AliTOFPreprocessor.cxx:57
 AliTOFPreprocessor.cxx:58
 AliTOFPreprocessor.cxx:59
 AliTOFPreprocessor.cxx:60
 AliTOFPreprocessor.cxx:61
 AliTOFPreprocessor.cxx:62
 AliTOFPreprocessor.cxx:63
 AliTOFPreprocessor.cxx:64
 AliTOFPreprocessor.cxx:65
 AliTOFPreprocessor.cxx:66
 AliTOFPreprocessor.cxx:67
 AliTOFPreprocessor.cxx:68
 AliTOFPreprocessor.cxx:69
 AliTOFPreprocessor.cxx:70
 AliTOFPreprocessor.cxx:71
 AliTOFPreprocessor.cxx:72
 AliTOFPreprocessor.cxx:73
 AliTOFPreprocessor.cxx:74
 AliTOFPreprocessor.cxx:75
 AliTOFPreprocessor.cxx:76
 AliTOFPreprocessor.cxx:77
 AliTOFPreprocessor.cxx:78
 AliTOFPreprocessor.cxx:79
 AliTOFPreprocessor.cxx:80
 AliTOFPreprocessor.cxx:81
 AliTOFPreprocessor.cxx:82
 AliTOFPreprocessor.cxx:83
 AliTOFPreprocessor.cxx:84
 AliTOFPreprocessor.cxx:85
 AliTOFPreprocessor.cxx:86
 AliTOFPreprocessor.cxx:87
 AliTOFPreprocessor.cxx:88
 AliTOFPreprocessor.cxx:89
 AliTOFPreprocessor.cxx:90
 AliTOFPreprocessor.cxx:91
 AliTOFPreprocessor.cxx:92
 AliTOFPreprocessor.cxx:93
 AliTOFPreprocessor.cxx:94
 AliTOFPreprocessor.cxx:95
 AliTOFPreprocessor.cxx:96
 AliTOFPreprocessor.cxx:97
 AliTOFPreprocessor.cxx:98
 AliTOFPreprocessor.cxx:99
 AliTOFPreprocessor.cxx:100
 AliTOFPreprocessor.cxx:101
 AliTOFPreprocessor.cxx:102
 AliTOFPreprocessor.cxx:103
 AliTOFPreprocessor.cxx:104
 AliTOFPreprocessor.cxx:105
 AliTOFPreprocessor.cxx:106
 AliTOFPreprocessor.cxx:107
 AliTOFPreprocessor.cxx:108
 AliTOFPreprocessor.cxx:109
 AliTOFPreprocessor.cxx:110
 AliTOFPreprocessor.cxx:111
 AliTOFPreprocessor.cxx:112
 AliTOFPreprocessor.cxx:113
 AliTOFPreprocessor.cxx:114
 AliTOFPreprocessor.cxx:115
 AliTOFPreprocessor.cxx:116
 AliTOFPreprocessor.cxx:117
 AliTOFPreprocessor.cxx:118
 AliTOFPreprocessor.cxx:119
 AliTOFPreprocessor.cxx:120
 AliTOFPreprocessor.cxx:121
 AliTOFPreprocessor.cxx:122
 AliTOFPreprocessor.cxx:123
 AliTOFPreprocessor.cxx:124
 AliTOFPreprocessor.cxx:125
 AliTOFPreprocessor.cxx:126
 AliTOFPreprocessor.cxx:127
 AliTOFPreprocessor.cxx:128
 AliTOFPreprocessor.cxx:129
 AliTOFPreprocessor.cxx:130
 AliTOFPreprocessor.cxx:131
 AliTOFPreprocessor.cxx:132
 AliTOFPreprocessor.cxx:133
 AliTOFPreprocessor.cxx:134
 AliTOFPreprocessor.cxx:135
 AliTOFPreprocessor.cxx:136
 AliTOFPreprocessor.cxx:137
 AliTOFPreprocessor.cxx:138
 AliTOFPreprocessor.cxx:139
 AliTOFPreprocessor.cxx:140
 AliTOFPreprocessor.cxx:141
 AliTOFPreprocessor.cxx:142
 AliTOFPreprocessor.cxx:143
 AliTOFPreprocessor.cxx:144
 AliTOFPreprocessor.cxx:145
 AliTOFPreprocessor.cxx:146
 AliTOFPreprocessor.cxx:147
 AliTOFPreprocessor.cxx:148
 AliTOFPreprocessor.cxx:149
 AliTOFPreprocessor.cxx:150
 AliTOFPreprocessor.cxx:151
 AliTOFPreprocessor.cxx:152
 AliTOFPreprocessor.cxx:153
 AliTOFPreprocessor.cxx:154
 AliTOFPreprocessor.cxx:155
 AliTOFPreprocessor.cxx:156
 AliTOFPreprocessor.cxx:157
 AliTOFPreprocessor.cxx:158
 AliTOFPreprocessor.cxx:159
 AliTOFPreprocessor.cxx:160
 AliTOFPreprocessor.cxx:161
 AliTOFPreprocessor.cxx:162
 AliTOFPreprocessor.cxx:163
 AliTOFPreprocessor.cxx:164
 AliTOFPreprocessor.cxx:165
 AliTOFPreprocessor.cxx:166
 AliTOFPreprocessor.cxx:167
 AliTOFPreprocessor.cxx:168
 AliTOFPreprocessor.cxx:169
 AliTOFPreprocessor.cxx:170
 AliTOFPreprocessor.cxx:171
 AliTOFPreprocessor.cxx:172
 AliTOFPreprocessor.cxx:173
 AliTOFPreprocessor.cxx:174
 AliTOFPreprocessor.cxx:175
 AliTOFPreprocessor.cxx:176
 AliTOFPreprocessor.cxx:177
 AliTOFPreprocessor.cxx:178
 AliTOFPreprocessor.cxx:179
 AliTOFPreprocessor.cxx:180
 AliTOFPreprocessor.cxx:181
 AliTOFPreprocessor.cxx:182
 AliTOFPreprocessor.cxx:183
 AliTOFPreprocessor.cxx:184
 AliTOFPreprocessor.cxx:185
 AliTOFPreprocessor.cxx:186
 AliTOFPreprocessor.cxx:187
 AliTOFPreprocessor.cxx:188
 AliTOFPreprocessor.cxx:189
 AliTOFPreprocessor.cxx:190
 AliTOFPreprocessor.cxx:191
 AliTOFPreprocessor.cxx:192
 AliTOFPreprocessor.cxx:193
 AliTOFPreprocessor.cxx:194
 AliTOFPreprocessor.cxx:195
 AliTOFPreprocessor.cxx:196
 AliTOFPreprocessor.cxx:197
 AliTOFPreprocessor.cxx:198
 AliTOFPreprocessor.cxx:199
 AliTOFPreprocessor.cxx:200
 AliTOFPreprocessor.cxx:201
 AliTOFPreprocessor.cxx:202
 AliTOFPreprocessor.cxx:203
 AliTOFPreprocessor.cxx:204
 AliTOFPreprocessor.cxx:205
 AliTOFPreprocessor.cxx:206
 AliTOFPreprocessor.cxx:207
 AliTOFPreprocessor.cxx:208
 AliTOFPreprocessor.cxx:209
 AliTOFPreprocessor.cxx:210
 AliTOFPreprocessor.cxx:211
 AliTOFPreprocessor.cxx:212
 AliTOFPreprocessor.cxx:213
 AliTOFPreprocessor.cxx:214
 AliTOFPreprocessor.cxx:215
 AliTOFPreprocessor.cxx:216
 AliTOFPreprocessor.cxx:217
 AliTOFPreprocessor.cxx:218
 AliTOFPreprocessor.cxx:219
 AliTOFPreprocessor.cxx:220
 AliTOFPreprocessor.cxx:221
 AliTOFPreprocessor.cxx:222
 AliTOFPreprocessor.cxx:223
 AliTOFPreprocessor.cxx:224
 AliTOFPreprocessor.cxx:225
 AliTOFPreprocessor.cxx:226
 AliTOFPreprocessor.cxx:227
 AliTOFPreprocessor.cxx:228
 AliTOFPreprocessor.cxx:229
 AliTOFPreprocessor.cxx:230
 AliTOFPreprocessor.cxx:231
 AliTOFPreprocessor.cxx:232
 AliTOFPreprocessor.cxx:233
 AliTOFPreprocessor.cxx:234
 AliTOFPreprocessor.cxx:235
 AliTOFPreprocessor.cxx:236
 AliTOFPreprocessor.cxx:237
 AliTOFPreprocessor.cxx:238
 AliTOFPreprocessor.cxx:239
 AliTOFPreprocessor.cxx:240
 AliTOFPreprocessor.cxx:241
 AliTOFPreprocessor.cxx:242
 AliTOFPreprocessor.cxx:243
 AliTOFPreprocessor.cxx:244
 AliTOFPreprocessor.cxx:245
 AliTOFPreprocessor.cxx:246
 AliTOFPreprocessor.cxx:247
 AliTOFPreprocessor.cxx:248
 AliTOFPreprocessor.cxx:249
 AliTOFPreprocessor.cxx:250
 AliTOFPreprocessor.cxx:251
 AliTOFPreprocessor.cxx:252
 AliTOFPreprocessor.cxx:253
 AliTOFPreprocessor.cxx:254
 AliTOFPreprocessor.cxx:255
 AliTOFPreprocessor.cxx:256
 AliTOFPreprocessor.cxx:257
 AliTOFPreprocessor.cxx:258
 AliTOFPreprocessor.cxx:259
 AliTOFPreprocessor.cxx:260
 AliTOFPreprocessor.cxx:261
 AliTOFPreprocessor.cxx:262
 AliTOFPreprocessor.cxx:263
 AliTOFPreprocessor.cxx:264
 AliTOFPreprocessor.cxx:265
 AliTOFPreprocessor.cxx:266
 AliTOFPreprocessor.cxx:267
 AliTOFPreprocessor.cxx:268
 AliTOFPreprocessor.cxx:269
 AliTOFPreprocessor.cxx:270
 AliTOFPreprocessor.cxx:271
 AliTOFPreprocessor.cxx:272
 AliTOFPreprocessor.cxx:273
 AliTOFPreprocessor.cxx:274
 AliTOFPreprocessor.cxx:275
 AliTOFPreprocessor.cxx:276
 AliTOFPreprocessor.cxx:277
 AliTOFPreprocessor.cxx:278
 AliTOFPreprocessor.cxx:279
 AliTOFPreprocessor.cxx:280
 AliTOFPreprocessor.cxx:281
 AliTOFPreprocessor.cxx:282
 AliTOFPreprocessor.cxx:283
 AliTOFPreprocessor.cxx:284
 AliTOFPreprocessor.cxx:285
 AliTOFPreprocessor.cxx:286
 AliTOFPreprocessor.cxx:287
 AliTOFPreprocessor.cxx:288
 AliTOFPreprocessor.cxx:289
 AliTOFPreprocessor.cxx:290
 AliTOFPreprocessor.cxx:291
 AliTOFPreprocessor.cxx:292
 AliTOFPreprocessor.cxx:293
 AliTOFPreprocessor.cxx:294
 AliTOFPreprocessor.cxx:295
 AliTOFPreprocessor.cxx:296
 AliTOFPreprocessor.cxx:297
 AliTOFPreprocessor.cxx:298
 AliTOFPreprocessor.cxx:299
 AliTOFPreprocessor.cxx:300
 AliTOFPreprocessor.cxx:301
 AliTOFPreprocessor.cxx:302
 AliTOFPreprocessor.cxx:303
 AliTOFPreprocessor.cxx:304
 AliTOFPreprocessor.cxx:305
 AliTOFPreprocessor.cxx:306
 AliTOFPreprocessor.cxx:307
 AliTOFPreprocessor.cxx:308
 AliTOFPreprocessor.cxx:309
 AliTOFPreprocessor.cxx:310
 AliTOFPreprocessor.cxx:311
 AliTOFPreprocessor.cxx:312
 AliTOFPreprocessor.cxx:313
 AliTOFPreprocessor.cxx:314
 AliTOFPreprocessor.cxx:315
 AliTOFPreprocessor.cxx:316
 AliTOFPreprocessor.cxx:317
 AliTOFPreprocessor.cxx:318
 AliTOFPreprocessor.cxx:319
 AliTOFPreprocessor.cxx:320
 AliTOFPreprocessor.cxx:321
 AliTOFPreprocessor.cxx:322
 AliTOFPreprocessor.cxx:323
 AliTOFPreprocessor.cxx:324
 AliTOFPreprocessor.cxx:325
 AliTOFPreprocessor.cxx:326
 AliTOFPreprocessor.cxx:327
 AliTOFPreprocessor.cxx:328
 AliTOFPreprocessor.cxx:329
 AliTOFPreprocessor.cxx:330
 AliTOFPreprocessor.cxx:331
 AliTOFPreprocessor.cxx:332
 AliTOFPreprocessor.cxx:333
 AliTOFPreprocessor.cxx:334
 AliTOFPreprocessor.cxx:335
 AliTOFPreprocessor.cxx:336
 AliTOFPreprocessor.cxx:337
 AliTOFPreprocessor.cxx:338
 AliTOFPreprocessor.cxx:339
 AliTOFPreprocessor.cxx:340
 AliTOFPreprocessor.cxx:341
 AliTOFPreprocessor.cxx:342
 AliTOFPreprocessor.cxx:343
 AliTOFPreprocessor.cxx:344
 AliTOFPreprocessor.cxx:345
 AliTOFPreprocessor.cxx:346
 AliTOFPreprocessor.cxx:347
 AliTOFPreprocessor.cxx:348
 AliTOFPreprocessor.cxx:349
 AliTOFPreprocessor.cxx:350
 AliTOFPreprocessor.cxx:351
 AliTOFPreprocessor.cxx:352
 AliTOFPreprocessor.cxx:353
 AliTOFPreprocessor.cxx:354
 AliTOFPreprocessor.cxx:355
 AliTOFPreprocessor.cxx:356
 AliTOFPreprocessor.cxx:357
 AliTOFPreprocessor.cxx:358
 AliTOFPreprocessor.cxx:359
 AliTOFPreprocessor.cxx:360
 AliTOFPreprocessor.cxx:361
 AliTOFPreprocessor.cxx:362
 AliTOFPreprocessor.cxx:363
 AliTOFPreprocessor.cxx:364
 AliTOFPreprocessor.cxx:365
 AliTOFPreprocessor.cxx:366
 AliTOFPreprocessor.cxx:367
 AliTOFPreprocessor.cxx:368
 AliTOFPreprocessor.cxx:369
 AliTOFPreprocessor.cxx:370
 AliTOFPreprocessor.cxx:371
 AliTOFPreprocessor.cxx:372
 AliTOFPreprocessor.cxx:373
 AliTOFPreprocessor.cxx:374
 AliTOFPreprocessor.cxx:375
 AliTOFPreprocessor.cxx:376
 AliTOFPreprocessor.cxx:377
 AliTOFPreprocessor.cxx:378
 AliTOFPreprocessor.cxx:379
 AliTOFPreprocessor.cxx:380
 AliTOFPreprocessor.cxx:381
 AliTOFPreprocessor.cxx:382
 AliTOFPreprocessor.cxx:383
 AliTOFPreprocessor.cxx:384
 AliTOFPreprocessor.cxx:385
 AliTOFPreprocessor.cxx:386
 AliTOFPreprocessor.cxx:387
 AliTOFPreprocessor.cxx:388
 AliTOFPreprocessor.cxx:389
 AliTOFPreprocessor.cxx:390
 AliTOFPreprocessor.cxx:391
 AliTOFPreprocessor.cxx:392
 AliTOFPreprocessor.cxx:393
 AliTOFPreprocessor.cxx:394
 AliTOFPreprocessor.cxx:395
 AliTOFPreprocessor.cxx:396
 AliTOFPreprocessor.cxx:397
 AliTOFPreprocessor.cxx:398
 AliTOFPreprocessor.cxx:399
 AliTOFPreprocessor.cxx:400
 AliTOFPreprocessor.cxx:401
 AliTOFPreprocessor.cxx:402
 AliTOFPreprocessor.cxx:403
 AliTOFPreprocessor.cxx:404
 AliTOFPreprocessor.cxx:405
 AliTOFPreprocessor.cxx:406
 AliTOFPreprocessor.cxx:407
 AliTOFPreprocessor.cxx:408
 AliTOFPreprocessor.cxx:409
 AliTOFPreprocessor.cxx:410
 AliTOFPreprocessor.cxx:411
 AliTOFPreprocessor.cxx:412
 AliTOFPreprocessor.cxx:413
 AliTOFPreprocessor.cxx:414
 AliTOFPreprocessor.cxx:415
 AliTOFPreprocessor.cxx:416
 AliTOFPreprocessor.cxx:417
 AliTOFPreprocessor.cxx:418
 AliTOFPreprocessor.cxx:419
 AliTOFPreprocessor.cxx:420
 AliTOFPreprocessor.cxx:421
 AliTOFPreprocessor.cxx:422
 AliTOFPreprocessor.cxx:423
 AliTOFPreprocessor.cxx:424
 AliTOFPreprocessor.cxx:425
 AliTOFPreprocessor.cxx:426
 AliTOFPreprocessor.cxx:427
 AliTOFPreprocessor.cxx:428
 AliTOFPreprocessor.cxx:429
 AliTOFPreprocessor.cxx:430
 AliTOFPreprocessor.cxx:431
 AliTOFPreprocessor.cxx:432
 AliTOFPreprocessor.cxx:433
 AliTOFPreprocessor.cxx:434
 AliTOFPreprocessor.cxx:435
 AliTOFPreprocessor.cxx:436
 AliTOFPreprocessor.cxx:437
 AliTOFPreprocessor.cxx:438
 AliTOFPreprocessor.cxx:439
 AliTOFPreprocessor.cxx:440
 AliTOFPreprocessor.cxx:441
 AliTOFPreprocessor.cxx:442
 AliTOFPreprocessor.cxx:443
 AliTOFPreprocessor.cxx:444
 AliTOFPreprocessor.cxx:445
 AliTOFPreprocessor.cxx:446
 AliTOFPreprocessor.cxx:447
 AliTOFPreprocessor.cxx:448
 AliTOFPreprocessor.cxx:449
 AliTOFPreprocessor.cxx:450
 AliTOFPreprocessor.cxx:451
 AliTOFPreprocessor.cxx:452
 AliTOFPreprocessor.cxx:453
 AliTOFPreprocessor.cxx:454
 AliTOFPreprocessor.cxx:455
 AliTOFPreprocessor.cxx:456
 AliTOFPreprocessor.cxx:457
 AliTOFPreprocessor.cxx:458
 AliTOFPreprocessor.cxx:459
 AliTOFPreprocessor.cxx:460
 AliTOFPreprocessor.cxx:461
 AliTOFPreprocessor.cxx:462
 AliTOFPreprocessor.cxx:463
 AliTOFPreprocessor.cxx:464
 AliTOFPreprocessor.cxx:465
 AliTOFPreprocessor.cxx:466
 AliTOFPreprocessor.cxx:467
 AliTOFPreprocessor.cxx:468
 AliTOFPreprocessor.cxx:469
 AliTOFPreprocessor.cxx:470
 AliTOFPreprocessor.cxx:471
 AliTOFPreprocessor.cxx:472
 AliTOFPreprocessor.cxx:473
 AliTOFPreprocessor.cxx:474
 AliTOFPreprocessor.cxx:475
 AliTOFPreprocessor.cxx:476
 AliTOFPreprocessor.cxx:477
 AliTOFPreprocessor.cxx:478
 AliTOFPreprocessor.cxx:479
 AliTOFPreprocessor.cxx:480
 AliTOFPreprocessor.cxx:481
 AliTOFPreprocessor.cxx:482
 AliTOFPreprocessor.cxx:483
 AliTOFPreprocessor.cxx:484
 AliTOFPreprocessor.cxx:485
 AliTOFPreprocessor.cxx:486
 AliTOFPreprocessor.cxx:487
 AliTOFPreprocessor.cxx:488
 AliTOFPreprocessor.cxx:489
 AliTOFPreprocessor.cxx:490
 AliTOFPreprocessor.cxx:491
 AliTOFPreprocessor.cxx:492
 AliTOFPreprocessor.cxx:493
 AliTOFPreprocessor.cxx:494
 AliTOFPreprocessor.cxx:495
 AliTOFPreprocessor.cxx:496
 AliTOFPreprocessor.cxx:497
 AliTOFPreprocessor.cxx:498
 AliTOFPreprocessor.cxx:499
 AliTOFPreprocessor.cxx:500
 AliTOFPreprocessor.cxx:501
 AliTOFPreprocessor.cxx:502
 AliTOFPreprocessor.cxx:503
 AliTOFPreprocessor.cxx:504
 AliTOFPreprocessor.cxx:505
 AliTOFPreprocessor.cxx:506
 AliTOFPreprocessor.cxx:507
 AliTOFPreprocessor.cxx:508
 AliTOFPreprocessor.cxx:509
 AliTOFPreprocessor.cxx:510
 AliTOFPreprocessor.cxx:511
 AliTOFPreprocessor.cxx:512
 AliTOFPreprocessor.cxx:513
 AliTOFPreprocessor.cxx:514
 AliTOFPreprocessor.cxx:515
 AliTOFPreprocessor.cxx:516
 AliTOFPreprocessor.cxx:517
 AliTOFPreprocessor.cxx:518
 AliTOFPreprocessor.cxx:519
 AliTOFPreprocessor.cxx:520
 AliTOFPreprocessor.cxx:521
 AliTOFPreprocessor.cxx:522
 AliTOFPreprocessor.cxx:523
 AliTOFPreprocessor.cxx:524
 AliTOFPreprocessor.cxx:525
 AliTOFPreprocessor.cxx:526
 AliTOFPreprocessor.cxx:527
 AliTOFPreprocessor.cxx:528
 AliTOFPreprocessor.cxx:529
 AliTOFPreprocessor.cxx:530
 AliTOFPreprocessor.cxx:531
 AliTOFPreprocessor.cxx:532
 AliTOFPreprocessor.cxx:533
 AliTOFPreprocessor.cxx:534
 AliTOFPreprocessor.cxx:535
 AliTOFPreprocessor.cxx:536
 AliTOFPreprocessor.cxx:537
 AliTOFPreprocessor.cxx:538
 AliTOFPreprocessor.cxx:539
 AliTOFPreprocessor.cxx:540
 AliTOFPreprocessor.cxx:541
 AliTOFPreprocessor.cxx:542
 AliTOFPreprocessor.cxx:543
 AliTOFPreprocessor.cxx:544
 AliTOFPreprocessor.cxx:545
 AliTOFPreprocessor.cxx:546
 AliTOFPreprocessor.cxx:547
 AliTOFPreprocessor.cxx:548
 AliTOFPreprocessor.cxx:549
 AliTOFPreprocessor.cxx:550
 AliTOFPreprocessor.cxx:551
 AliTOFPreprocessor.cxx:552
 AliTOFPreprocessor.cxx:553
 AliTOFPreprocessor.cxx:554
 AliTOFPreprocessor.cxx:555
 AliTOFPreprocessor.cxx:556
 AliTOFPreprocessor.cxx:557
 AliTOFPreprocessor.cxx:558
 AliTOFPreprocessor.cxx:559
 AliTOFPreprocessor.cxx:560
 AliTOFPreprocessor.cxx:561
 AliTOFPreprocessor.cxx:562
 AliTOFPreprocessor.cxx:563
 AliTOFPreprocessor.cxx:564
 AliTOFPreprocessor.cxx:565
 AliTOFPreprocessor.cxx:566
 AliTOFPreprocessor.cxx:567
 AliTOFPreprocessor.cxx:568
 AliTOFPreprocessor.cxx:569
 AliTOFPreprocessor.cxx:570
 AliTOFPreprocessor.cxx:571
 AliTOFPreprocessor.cxx:572
 AliTOFPreprocessor.cxx:573
 AliTOFPreprocessor.cxx:574
 AliTOFPreprocessor.cxx:575
 AliTOFPreprocessor.cxx:576
 AliTOFPreprocessor.cxx:577
 AliTOFPreprocessor.cxx:578
 AliTOFPreprocessor.cxx:579
 AliTOFPreprocessor.cxx:580
 AliTOFPreprocessor.cxx:581
 AliTOFPreprocessor.cxx:582
 AliTOFPreprocessor.cxx:583
 AliTOFPreprocessor.cxx:584
 AliTOFPreprocessor.cxx:585
 AliTOFPreprocessor.cxx:586
 AliTOFPreprocessor.cxx:587
 AliTOFPreprocessor.cxx:588
 AliTOFPreprocessor.cxx:589
 AliTOFPreprocessor.cxx:590
 AliTOFPreprocessor.cxx:591
 AliTOFPreprocessor.cxx:592
 AliTOFPreprocessor.cxx:593
 AliTOFPreprocessor.cxx:594
 AliTOFPreprocessor.cxx:595
 AliTOFPreprocessor.cxx:596
 AliTOFPreprocessor.cxx:597
 AliTOFPreprocessor.cxx:598
 AliTOFPreprocessor.cxx:599
 AliTOFPreprocessor.cxx:600
 AliTOFPreprocessor.cxx:601
 AliTOFPreprocessor.cxx:602
 AliTOFPreprocessor.cxx:603
 AliTOFPreprocessor.cxx:604
 AliTOFPreprocessor.cxx:605
 AliTOFPreprocessor.cxx:606
 AliTOFPreprocessor.cxx:607
 AliTOFPreprocessor.cxx:608
 AliTOFPreprocessor.cxx:609
 AliTOFPreprocessor.cxx:610
 AliTOFPreprocessor.cxx:611
 AliTOFPreprocessor.cxx:612
 AliTOFPreprocessor.cxx:613
 AliTOFPreprocessor.cxx:614
 AliTOFPreprocessor.cxx:615
 AliTOFPreprocessor.cxx:616
 AliTOFPreprocessor.cxx:617
 AliTOFPreprocessor.cxx:618
 AliTOFPreprocessor.cxx:619
 AliTOFPreprocessor.cxx:620
 AliTOFPreprocessor.cxx:621
 AliTOFPreprocessor.cxx:622
 AliTOFPreprocessor.cxx:623
 AliTOFPreprocessor.cxx:624
 AliTOFPreprocessor.cxx:625
 AliTOFPreprocessor.cxx:626
 AliTOFPreprocessor.cxx:627
 AliTOFPreprocessor.cxx:628
 AliTOFPreprocessor.cxx:629
 AliTOFPreprocessor.cxx:630
 AliTOFPreprocessor.cxx:631
 AliTOFPreprocessor.cxx:632
 AliTOFPreprocessor.cxx:633
 AliTOFPreprocessor.cxx:634
 AliTOFPreprocessor.cxx:635
 AliTOFPreprocessor.cxx:636
 AliTOFPreprocessor.cxx:637
 AliTOFPreprocessor.cxx:638
 AliTOFPreprocessor.cxx:639
 AliTOFPreprocessor.cxx:640
 AliTOFPreprocessor.cxx:641
 AliTOFPreprocessor.cxx:642
 AliTOFPreprocessor.cxx:643
 AliTOFPreprocessor.cxx:644
 AliTOFPreprocessor.cxx:645
 AliTOFPreprocessor.cxx:646
 AliTOFPreprocessor.cxx:647
 AliTOFPreprocessor.cxx:648
 AliTOFPreprocessor.cxx:649
 AliTOFPreprocessor.cxx:650
 AliTOFPreprocessor.cxx:651
 AliTOFPreprocessor.cxx:652
 AliTOFPreprocessor.cxx:653
 AliTOFPreprocessor.cxx:654
 AliTOFPreprocessor.cxx:655
 AliTOFPreprocessor.cxx:656
 AliTOFPreprocessor.cxx:657
 AliTOFPreprocessor.cxx:658
 AliTOFPreprocessor.cxx:659
 AliTOFPreprocessor.cxx:660
 AliTOFPreprocessor.cxx:661
 AliTOFPreprocessor.cxx:662
 AliTOFPreprocessor.cxx:663
 AliTOFPreprocessor.cxx:664
 AliTOFPreprocessor.cxx:665
 AliTOFPreprocessor.cxx:666
 AliTOFPreprocessor.cxx:667
 AliTOFPreprocessor.cxx:668
 AliTOFPreprocessor.cxx:669
 AliTOFPreprocessor.cxx:670
 AliTOFPreprocessor.cxx:671
 AliTOFPreprocessor.cxx:672
 AliTOFPreprocessor.cxx:673
 AliTOFPreprocessor.cxx:674
 AliTOFPreprocessor.cxx:675
 AliTOFPreprocessor.cxx:676
 AliTOFPreprocessor.cxx:677
 AliTOFPreprocessor.cxx:678
 AliTOFPreprocessor.cxx:679
 AliTOFPreprocessor.cxx:680
 AliTOFPreprocessor.cxx:681
 AliTOFPreprocessor.cxx:682
 AliTOFPreprocessor.cxx:683
 AliTOFPreprocessor.cxx:684
 AliTOFPreprocessor.cxx:685
 AliTOFPreprocessor.cxx:686
 AliTOFPreprocessor.cxx:687
 AliTOFPreprocessor.cxx:688
 AliTOFPreprocessor.cxx:689
 AliTOFPreprocessor.cxx:690
 AliTOFPreprocessor.cxx:691
 AliTOFPreprocessor.cxx:692
 AliTOFPreprocessor.cxx:693
 AliTOFPreprocessor.cxx:694
 AliTOFPreprocessor.cxx:695
 AliTOFPreprocessor.cxx:696
 AliTOFPreprocessor.cxx:697
 AliTOFPreprocessor.cxx:698
 AliTOFPreprocessor.cxx:699
 AliTOFPreprocessor.cxx:700
 AliTOFPreprocessor.cxx:701
 AliTOFPreprocessor.cxx:702
 AliTOFPreprocessor.cxx:703
 AliTOFPreprocessor.cxx:704
 AliTOFPreprocessor.cxx:705
 AliTOFPreprocessor.cxx:706
 AliTOFPreprocessor.cxx:707
 AliTOFPreprocessor.cxx:708
 AliTOFPreprocessor.cxx:709
 AliTOFPreprocessor.cxx:710
 AliTOFPreprocessor.cxx:711
 AliTOFPreprocessor.cxx:712
 AliTOFPreprocessor.cxx:713
 AliTOFPreprocessor.cxx:714
 AliTOFPreprocessor.cxx:715
 AliTOFPreprocessor.cxx:716
 AliTOFPreprocessor.cxx:717
 AliTOFPreprocessor.cxx:718
 AliTOFPreprocessor.cxx:719
 AliTOFPreprocessor.cxx:720
 AliTOFPreprocessor.cxx:721
 AliTOFPreprocessor.cxx:722
 AliTOFPreprocessor.cxx:723
 AliTOFPreprocessor.cxx:724
 AliTOFPreprocessor.cxx:725
 AliTOFPreprocessor.cxx:726
 AliTOFPreprocessor.cxx:727
 AliTOFPreprocessor.cxx:728
 AliTOFPreprocessor.cxx:729
 AliTOFPreprocessor.cxx:730
 AliTOFPreprocessor.cxx:731
 AliTOFPreprocessor.cxx:732
 AliTOFPreprocessor.cxx:733
 AliTOFPreprocessor.cxx:734
 AliTOFPreprocessor.cxx:735
 AliTOFPreprocessor.cxx:736
 AliTOFPreprocessor.cxx:737
 AliTOFPreprocessor.cxx:738
 AliTOFPreprocessor.cxx:739
 AliTOFPreprocessor.cxx:740
 AliTOFPreprocessor.cxx:741
 AliTOFPreprocessor.cxx:742
 AliTOFPreprocessor.cxx:743
 AliTOFPreprocessor.cxx:744
 AliTOFPreprocessor.cxx:745
 AliTOFPreprocessor.cxx:746
 AliTOFPreprocessor.cxx:747
 AliTOFPreprocessor.cxx:748
 AliTOFPreprocessor.cxx:749
 AliTOFPreprocessor.cxx:750
 AliTOFPreprocessor.cxx:751
 AliTOFPreprocessor.cxx:752
 AliTOFPreprocessor.cxx:753
 AliTOFPreprocessor.cxx:754
 AliTOFPreprocessor.cxx:755
 AliTOFPreprocessor.cxx:756
 AliTOFPreprocessor.cxx:757
 AliTOFPreprocessor.cxx:758
 AliTOFPreprocessor.cxx:759
 AliTOFPreprocessor.cxx:760
 AliTOFPreprocessor.cxx:761
 AliTOFPreprocessor.cxx:762
 AliTOFPreprocessor.cxx:763
 AliTOFPreprocessor.cxx:764
 AliTOFPreprocessor.cxx:765
 AliTOFPreprocessor.cxx:766
 AliTOFPreprocessor.cxx:767
 AliTOFPreprocessor.cxx:768
 AliTOFPreprocessor.cxx:769
 AliTOFPreprocessor.cxx:770
 AliTOFPreprocessor.cxx:771
 AliTOFPreprocessor.cxx:772
 AliTOFPreprocessor.cxx:773
 AliTOFPreprocessor.cxx:774
 AliTOFPreprocessor.cxx:775
 AliTOFPreprocessor.cxx:776
 AliTOFPreprocessor.cxx:777
 AliTOFPreprocessor.cxx:778
 AliTOFPreprocessor.cxx:779
 AliTOFPreprocessor.cxx:780
 AliTOFPreprocessor.cxx:781
 AliTOFPreprocessor.cxx:782
 AliTOFPreprocessor.cxx:783
 AliTOFPreprocessor.cxx:784
 AliTOFPreprocessor.cxx:785
 AliTOFPreprocessor.cxx:786
 AliTOFPreprocessor.cxx:787
 AliTOFPreprocessor.cxx:788
 AliTOFPreprocessor.cxx:789
 AliTOFPreprocessor.cxx:790
 AliTOFPreprocessor.cxx:791
 AliTOFPreprocessor.cxx:792
 AliTOFPreprocessor.cxx:793
 AliTOFPreprocessor.cxx:794
 AliTOFPreprocessor.cxx:795
 AliTOFPreprocessor.cxx:796
 AliTOFPreprocessor.cxx:797
 AliTOFPreprocessor.cxx:798
 AliTOFPreprocessor.cxx:799
 AliTOFPreprocessor.cxx:800
 AliTOFPreprocessor.cxx:801
 AliTOFPreprocessor.cxx:802
 AliTOFPreprocessor.cxx:803
 AliTOFPreprocessor.cxx:804
 AliTOFPreprocessor.cxx:805
 AliTOFPreprocessor.cxx:806
 AliTOFPreprocessor.cxx:807
 AliTOFPreprocessor.cxx:808
 AliTOFPreprocessor.cxx:809
 AliTOFPreprocessor.cxx:810
 AliTOFPreprocessor.cxx:811
 AliTOFPreprocessor.cxx:812
 AliTOFPreprocessor.cxx:813
 AliTOFPreprocessor.cxx:814
 AliTOFPreprocessor.cxx:815
 AliTOFPreprocessor.cxx:816
 AliTOFPreprocessor.cxx:817
 AliTOFPreprocessor.cxx:818
 AliTOFPreprocessor.cxx:819
 AliTOFPreprocessor.cxx:820
 AliTOFPreprocessor.cxx:821
 AliTOFPreprocessor.cxx:822
 AliTOFPreprocessor.cxx:823
 AliTOFPreprocessor.cxx:824
 AliTOFPreprocessor.cxx:825
 AliTOFPreprocessor.cxx:826
 AliTOFPreprocessor.cxx:827
 AliTOFPreprocessor.cxx:828
 AliTOFPreprocessor.cxx:829
 AliTOFPreprocessor.cxx:830
 AliTOFPreprocessor.cxx:831
 AliTOFPreprocessor.cxx:832
 AliTOFPreprocessor.cxx:833
 AliTOFPreprocessor.cxx:834
 AliTOFPreprocessor.cxx:835
 AliTOFPreprocessor.cxx:836
 AliTOFPreprocessor.cxx:837
 AliTOFPreprocessor.cxx:838
 AliTOFPreprocessor.cxx:839
 AliTOFPreprocessor.cxx:840
 AliTOFPreprocessor.cxx:841
 AliTOFPreprocessor.cxx:842
 AliTOFPreprocessor.cxx:843
 AliTOFPreprocessor.cxx:844
 AliTOFPreprocessor.cxx:845
 AliTOFPreprocessor.cxx:846
 AliTOFPreprocessor.cxx:847
 AliTOFPreprocessor.cxx:848
 AliTOFPreprocessor.cxx:849
 AliTOFPreprocessor.cxx:850
 AliTOFPreprocessor.cxx:851
 AliTOFPreprocessor.cxx:852
 AliTOFPreprocessor.cxx:853
 AliTOFPreprocessor.cxx:854
 AliTOFPreprocessor.cxx:855
 AliTOFPreprocessor.cxx:856
 AliTOFPreprocessor.cxx:857
 AliTOFPreprocessor.cxx:858
 AliTOFPreprocessor.cxx:859
 AliTOFPreprocessor.cxx:860
 AliTOFPreprocessor.cxx:861
 AliTOFPreprocessor.cxx:862
 AliTOFPreprocessor.cxx:863
 AliTOFPreprocessor.cxx:864
 AliTOFPreprocessor.cxx:865
 AliTOFPreprocessor.cxx:866
 AliTOFPreprocessor.cxx:867
 AliTOFPreprocessor.cxx:868
 AliTOFPreprocessor.cxx:869
 AliTOFPreprocessor.cxx:870
 AliTOFPreprocessor.cxx:871
 AliTOFPreprocessor.cxx:872
 AliTOFPreprocessor.cxx:873
 AliTOFPreprocessor.cxx:874
 AliTOFPreprocessor.cxx:875
 AliTOFPreprocessor.cxx:876
 AliTOFPreprocessor.cxx:877
 AliTOFPreprocessor.cxx:878
 AliTOFPreprocessor.cxx:879
 AliTOFPreprocessor.cxx:880
 AliTOFPreprocessor.cxx:881
 AliTOFPreprocessor.cxx:882
 AliTOFPreprocessor.cxx:883
 AliTOFPreprocessor.cxx:884
 AliTOFPreprocessor.cxx:885
 AliTOFPreprocessor.cxx:886
 AliTOFPreprocessor.cxx:887
 AliTOFPreprocessor.cxx:888
 AliTOFPreprocessor.cxx:889
 AliTOFPreprocessor.cxx:890
 AliTOFPreprocessor.cxx:891
 AliTOFPreprocessor.cxx:892
 AliTOFPreprocessor.cxx:893
 AliTOFPreprocessor.cxx:894
 AliTOFPreprocessor.cxx:895
 AliTOFPreprocessor.cxx:896
 AliTOFPreprocessor.cxx:897
 AliTOFPreprocessor.cxx:898
 AliTOFPreprocessor.cxx:899
 AliTOFPreprocessor.cxx:900
 AliTOFPreprocessor.cxx:901
 AliTOFPreprocessor.cxx:902
 AliTOFPreprocessor.cxx:903
 AliTOFPreprocessor.cxx:904
 AliTOFPreprocessor.cxx:905
 AliTOFPreprocessor.cxx:906
 AliTOFPreprocessor.cxx:907
 AliTOFPreprocessor.cxx:908
 AliTOFPreprocessor.cxx:909
 AliTOFPreprocessor.cxx:910
 AliTOFPreprocessor.cxx:911
 AliTOFPreprocessor.cxx:912
 AliTOFPreprocessor.cxx:913
 AliTOFPreprocessor.cxx:914
 AliTOFPreprocessor.cxx:915
 AliTOFPreprocessor.cxx:916
 AliTOFPreprocessor.cxx:917
 AliTOFPreprocessor.cxx:918
 AliTOFPreprocessor.cxx:919
 AliTOFPreprocessor.cxx:920
 AliTOFPreprocessor.cxx:921
 AliTOFPreprocessor.cxx:922
 AliTOFPreprocessor.cxx:923
 AliTOFPreprocessor.cxx:924
 AliTOFPreprocessor.cxx:925
 AliTOFPreprocessor.cxx:926
 AliTOFPreprocessor.cxx:927
 AliTOFPreprocessor.cxx:928
 AliTOFPreprocessor.cxx:929
 AliTOFPreprocessor.cxx:930
 AliTOFPreprocessor.cxx:931
 AliTOFPreprocessor.cxx:932
 AliTOFPreprocessor.cxx:933
 AliTOFPreprocessor.cxx:934
 AliTOFPreprocessor.cxx:935
 AliTOFPreprocessor.cxx:936
 AliTOFPreprocessor.cxx:937
 AliTOFPreprocessor.cxx:938
 AliTOFPreprocessor.cxx:939
 AliTOFPreprocessor.cxx:940
 AliTOFPreprocessor.cxx:941
 AliTOFPreprocessor.cxx:942
 AliTOFPreprocessor.cxx:943
 AliTOFPreprocessor.cxx:944
 AliTOFPreprocessor.cxx:945
 AliTOFPreprocessor.cxx:946
 AliTOFPreprocessor.cxx:947
 AliTOFPreprocessor.cxx:948
 AliTOFPreprocessor.cxx:949
 AliTOFPreprocessor.cxx:950
 AliTOFPreprocessor.cxx:951
 AliTOFPreprocessor.cxx:952
 AliTOFPreprocessor.cxx:953
 AliTOFPreprocessor.cxx:954
 AliTOFPreprocessor.cxx:955
 AliTOFPreprocessor.cxx:956
 AliTOFPreprocessor.cxx:957
 AliTOFPreprocessor.cxx:958
 AliTOFPreprocessor.cxx:959
 AliTOFPreprocessor.cxx:960
 AliTOFPreprocessor.cxx:961
 AliTOFPreprocessor.cxx:962
 AliTOFPreprocessor.cxx:963
 AliTOFPreprocessor.cxx:964
 AliTOFPreprocessor.cxx:965
 AliTOFPreprocessor.cxx:966
 AliTOFPreprocessor.cxx:967
 AliTOFPreprocessor.cxx:968
 AliTOFPreprocessor.cxx:969
 AliTOFPreprocessor.cxx:970
 AliTOFPreprocessor.cxx:971
 AliTOFPreprocessor.cxx:972
 AliTOFPreprocessor.cxx:973
 AliTOFPreprocessor.cxx:974
 AliTOFPreprocessor.cxx:975
 AliTOFPreprocessor.cxx:976
 AliTOFPreprocessor.cxx:977
 AliTOFPreprocessor.cxx:978
 AliTOFPreprocessor.cxx:979
 AliTOFPreprocessor.cxx:980
 AliTOFPreprocessor.cxx:981
 AliTOFPreprocessor.cxx:982
 AliTOFPreprocessor.cxx:983
 AliTOFPreprocessor.cxx:984
 AliTOFPreprocessor.cxx:985
 AliTOFPreprocessor.cxx:986
 AliTOFPreprocessor.cxx:987
 AliTOFPreprocessor.cxx:988
 AliTOFPreprocessor.cxx:989
 AliTOFPreprocessor.cxx:990
 AliTOFPreprocessor.cxx:991
 AliTOFPreprocessor.cxx:992
 AliTOFPreprocessor.cxx:993
 AliTOFPreprocessor.cxx:994
 AliTOFPreprocessor.cxx:995
 AliTOFPreprocessor.cxx:996
 AliTOFPreprocessor.cxx:997
 AliTOFPreprocessor.cxx:998
 AliTOFPreprocessor.cxx:999
 AliTOFPreprocessor.cxx:1000
 AliTOFPreprocessor.cxx:1001
 AliTOFPreprocessor.cxx:1002
 AliTOFPreprocessor.cxx:1003
 AliTOFPreprocessor.cxx:1004
 AliTOFPreprocessor.cxx:1005
 AliTOFPreprocessor.cxx:1006
 AliTOFPreprocessor.cxx:1007
 AliTOFPreprocessor.cxx:1008
 AliTOFPreprocessor.cxx:1009
 AliTOFPreprocessor.cxx:1010
 AliTOFPreprocessor.cxx:1011
 AliTOFPreprocessor.cxx:1012
 AliTOFPreprocessor.cxx:1013
 AliTOFPreprocessor.cxx:1014
 AliTOFPreprocessor.cxx:1015
 AliTOFPreprocessor.cxx:1016
 AliTOFPreprocessor.cxx:1017
 AliTOFPreprocessor.cxx:1018
 AliTOFPreprocessor.cxx:1019
 AliTOFPreprocessor.cxx:1020
 AliTOFPreprocessor.cxx:1021
 AliTOFPreprocessor.cxx:1022
 AliTOFPreprocessor.cxx:1023
 AliTOFPreprocessor.cxx:1024
 AliTOFPreprocessor.cxx:1025
 AliTOFPreprocessor.cxx:1026
 AliTOFPreprocessor.cxx:1027
 AliTOFPreprocessor.cxx:1028
 AliTOFPreprocessor.cxx:1029
 AliTOFPreprocessor.cxx:1030
 AliTOFPreprocessor.cxx:1031
 AliTOFPreprocessor.cxx:1032
 AliTOFPreprocessor.cxx:1033
 AliTOFPreprocessor.cxx:1034
 AliTOFPreprocessor.cxx:1035
 AliTOFPreprocessor.cxx:1036
 AliTOFPreprocessor.cxx:1037
 AliTOFPreprocessor.cxx:1038
 AliTOFPreprocessor.cxx:1039
 AliTOFPreprocessor.cxx:1040
 AliTOFPreprocessor.cxx:1041
 AliTOFPreprocessor.cxx:1042
 AliTOFPreprocessor.cxx:1043
 AliTOFPreprocessor.cxx:1044
 AliTOFPreprocessor.cxx:1045
 AliTOFPreprocessor.cxx:1046
 AliTOFPreprocessor.cxx:1047
 AliTOFPreprocessor.cxx:1048
 AliTOFPreprocessor.cxx:1049
 AliTOFPreprocessor.cxx:1050
 AliTOFPreprocessor.cxx:1051
 AliTOFPreprocessor.cxx:1052
 AliTOFPreprocessor.cxx:1053
 AliTOFPreprocessor.cxx:1054
 AliTOFPreprocessor.cxx:1055
 AliTOFPreprocessor.cxx:1056
 AliTOFPreprocessor.cxx:1057
 AliTOFPreprocessor.cxx:1058
 AliTOFPreprocessor.cxx:1059
 AliTOFPreprocessor.cxx:1060
 AliTOFPreprocessor.cxx:1061
 AliTOFPreprocessor.cxx:1062
 AliTOFPreprocessor.cxx:1063
 AliTOFPreprocessor.cxx:1064
 AliTOFPreprocessor.cxx:1065
 AliTOFPreprocessor.cxx:1066
 AliTOFPreprocessor.cxx:1067
 AliTOFPreprocessor.cxx:1068
 AliTOFPreprocessor.cxx:1069
 AliTOFPreprocessor.cxx:1070
 AliTOFPreprocessor.cxx:1071
 AliTOFPreprocessor.cxx:1072
 AliTOFPreprocessor.cxx:1073
 AliTOFPreprocessor.cxx:1074
 AliTOFPreprocessor.cxx:1075
 AliTOFPreprocessor.cxx:1076
 AliTOFPreprocessor.cxx:1077
 AliTOFPreprocessor.cxx:1078
 AliTOFPreprocessor.cxx:1079
 AliTOFPreprocessor.cxx:1080
 AliTOFPreprocessor.cxx:1081
 AliTOFPreprocessor.cxx:1082
 AliTOFPreprocessor.cxx:1083
 AliTOFPreprocessor.cxx:1084
 AliTOFPreprocessor.cxx:1085
 AliTOFPreprocessor.cxx:1086
 AliTOFPreprocessor.cxx:1087
 AliTOFPreprocessor.cxx:1088
 AliTOFPreprocessor.cxx:1089
 AliTOFPreprocessor.cxx:1090
 AliTOFPreprocessor.cxx:1091
 AliTOFPreprocessor.cxx:1092
 AliTOFPreprocessor.cxx:1093
 AliTOFPreprocessor.cxx:1094
 AliTOFPreprocessor.cxx:1095
 AliTOFPreprocessor.cxx:1096
 AliTOFPreprocessor.cxx:1097
 AliTOFPreprocessor.cxx:1098
 AliTOFPreprocessor.cxx:1099
 AliTOFPreprocessor.cxx:1100
 AliTOFPreprocessor.cxx:1101
 AliTOFPreprocessor.cxx:1102
 AliTOFPreprocessor.cxx:1103
 AliTOFPreprocessor.cxx:1104
 AliTOFPreprocessor.cxx:1105
 AliTOFPreprocessor.cxx:1106
 AliTOFPreprocessor.cxx:1107
 AliTOFPreprocessor.cxx:1108
 AliTOFPreprocessor.cxx:1109
 AliTOFPreprocessor.cxx:1110
 AliTOFPreprocessor.cxx:1111
 AliTOFPreprocessor.cxx:1112
 AliTOFPreprocessor.cxx:1113
 AliTOFPreprocessor.cxx:1114
 AliTOFPreprocessor.cxx:1115
 AliTOFPreprocessor.cxx:1116
 AliTOFPreprocessor.cxx:1117
 AliTOFPreprocessor.cxx:1118
 AliTOFPreprocessor.cxx:1119
 AliTOFPreprocessor.cxx:1120
 AliTOFPreprocessor.cxx:1121
 AliTOFPreprocessor.cxx:1122
 AliTOFPreprocessor.cxx:1123
 AliTOFPreprocessor.cxx:1124
 AliTOFPreprocessor.cxx:1125
 AliTOFPreprocessor.cxx:1126
 AliTOFPreprocessor.cxx:1127
 AliTOFPreprocessor.cxx:1128
 AliTOFPreprocessor.cxx:1129
 AliTOFPreprocessor.cxx:1130
 AliTOFPreprocessor.cxx:1131
 AliTOFPreprocessor.cxx:1132
 AliTOFPreprocessor.cxx:1133
 AliTOFPreprocessor.cxx:1134
 AliTOFPreprocessor.cxx:1135
 AliTOFPreprocessor.cxx:1136
 AliTOFPreprocessor.cxx:1137
 AliTOFPreprocessor.cxx:1138
 AliTOFPreprocessor.cxx:1139
 AliTOFPreprocessor.cxx:1140
 AliTOFPreprocessor.cxx:1141
 AliTOFPreprocessor.cxx:1142
 AliTOFPreprocessor.cxx:1143
 AliTOFPreprocessor.cxx:1144
 AliTOFPreprocessor.cxx:1145
 AliTOFPreprocessor.cxx:1146
 AliTOFPreprocessor.cxx:1147
 AliTOFPreprocessor.cxx:1148
 AliTOFPreprocessor.cxx:1149
 AliTOFPreprocessor.cxx:1150
 AliTOFPreprocessor.cxx:1151
 AliTOFPreprocessor.cxx:1152
 AliTOFPreprocessor.cxx:1153
 AliTOFPreprocessor.cxx:1154
 AliTOFPreprocessor.cxx:1155
 AliTOFPreprocessor.cxx:1156
 AliTOFPreprocessor.cxx:1157
 AliTOFPreprocessor.cxx:1158
 AliTOFPreprocessor.cxx:1159
 AliTOFPreprocessor.cxx:1160
 AliTOFPreprocessor.cxx:1161
 AliTOFPreprocessor.cxx:1162
 AliTOFPreprocessor.cxx:1163
 AliTOFPreprocessor.cxx:1164
 AliTOFPreprocessor.cxx:1165
 AliTOFPreprocessor.cxx:1166
 AliTOFPreprocessor.cxx:1167
 AliTOFPreprocessor.cxx:1168
 AliTOFPreprocessor.cxx:1169
 AliTOFPreprocessor.cxx:1170
 AliTOFPreprocessor.cxx:1171
 AliTOFPreprocessor.cxx:1172
 AliTOFPreprocessor.cxx:1173
 AliTOFPreprocessor.cxx:1174
 AliTOFPreprocessor.cxx:1175
 AliTOFPreprocessor.cxx:1176
 AliTOFPreprocessor.cxx:1177
 AliTOFPreprocessor.cxx:1178
 AliTOFPreprocessor.cxx:1179
 AliTOFPreprocessor.cxx:1180
 AliTOFPreprocessor.cxx:1181
 AliTOFPreprocessor.cxx:1182
 AliTOFPreprocessor.cxx:1183
 AliTOFPreprocessor.cxx:1184
 AliTOFPreprocessor.cxx:1185
 AliTOFPreprocessor.cxx:1186
 AliTOFPreprocessor.cxx:1187
 AliTOFPreprocessor.cxx:1188
 AliTOFPreprocessor.cxx:1189
 AliTOFPreprocessor.cxx:1190
 AliTOFPreprocessor.cxx:1191
 AliTOFPreprocessor.cxx:1192
 AliTOFPreprocessor.cxx:1193
 AliTOFPreprocessor.cxx:1194
 AliTOFPreprocessor.cxx:1195
 AliTOFPreprocessor.cxx:1196
 AliTOFPreprocessor.cxx:1197
 AliTOFPreprocessor.cxx:1198
 AliTOFPreprocessor.cxx:1199
 AliTOFPreprocessor.cxx:1200
 AliTOFPreprocessor.cxx:1201
 AliTOFPreprocessor.cxx:1202
 AliTOFPreprocessor.cxx:1203
 AliTOFPreprocessor.cxx:1204
 AliTOFPreprocessor.cxx:1205
 AliTOFPreprocessor.cxx:1206
 AliTOFPreprocessor.cxx:1207
 AliTOFPreprocessor.cxx:1208
 AliTOFPreprocessor.cxx:1209
 AliTOFPreprocessor.cxx:1210
 AliTOFPreprocessor.cxx:1211
 AliTOFPreprocessor.cxx:1212
 AliTOFPreprocessor.cxx:1213
 AliTOFPreprocessor.cxx:1214
 AliTOFPreprocessor.cxx:1215
 AliTOFPreprocessor.cxx:1216
 AliTOFPreprocessor.cxx:1217
 AliTOFPreprocessor.cxx:1218
 AliTOFPreprocessor.cxx:1219
 AliTOFPreprocessor.cxx:1220
 AliTOFPreprocessor.cxx:1221
 AliTOFPreprocessor.cxx:1222
 AliTOFPreprocessor.cxx:1223
 AliTOFPreprocessor.cxx:1224
 AliTOFPreprocessor.cxx:1225
 AliTOFPreprocessor.cxx:1226
 AliTOFPreprocessor.cxx:1227
 AliTOFPreprocessor.cxx:1228
 AliTOFPreprocessor.cxx:1229
 AliTOFPreprocessor.cxx:1230
 AliTOFPreprocessor.cxx:1231
 AliTOFPreprocessor.cxx:1232
 AliTOFPreprocessor.cxx:1233
 AliTOFPreprocessor.cxx:1234
 AliTOFPreprocessor.cxx:1235
 AliTOFPreprocessor.cxx:1236
 AliTOFPreprocessor.cxx:1237
 AliTOFPreprocessor.cxx:1238
 AliTOFPreprocessor.cxx:1239
 AliTOFPreprocessor.cxx:1240
 AliTOFPreprocessor.cxx:1241
 AliTOFPreprocessor.cxx:1242
 AliTOFPreprocessor.cxx:1243
 AliTOFPreprocessor.cxx:1244
 AliTOFPreprocessor.cxx:1245
 AliTOFPreprocessor.cxx:1246
 AliTOFPreprocessor.cxx:1247
 AliTOFPreprocessor.cxx:1248
 AliTOFPreprocessor.cxx:1249
 AliTOFPreprocessor.cxx:1250
 AliTOFPreprocessor.cxx:1251
 AliTOFPreprocessor.cxx:1252
 AliTOFPreprocessor.cxx:1253
 AliTOFPreprocessor.cxx:1254
 AliTOFPreprocessor.cxx:1255
 AliTOFPreprocessor.cxx:1256
 AliTOFPreprocessor.cxx:1257
 AliTOFPreprocessor.cxx:1258
 AliTOFPreprocessor.cxx:1259
 AliTOFPreprocessor.cxx:1260
 AliTOFPreprocessor.cxx:1261
 AliTOFPreprocessor.cxx:1262
 AliTOFPreprocessor.cxx:1263
 AliTOFPreprocessor.cxx:1264
 AliTOFPreprocessor.cxx:1265
 AliTOFPreprocessor.cxx:1266
 AliTOFPreprocessor.cxx:1267
 AliTOFPreprocessor.cxx:1268
 AliTOFPreprocessor.cxx:1269
 AliTOFPreprocessor.cxx:1270
 AliTOFPreprocessor.cxx:1271
 AliTOFPreprocessor.cxx:1272
 AliTOFPreprocessor.cxx:1273
 AliTOFPreprocessor.cxx:1274
 AliTOFPreprocessor.cxx:1275
 AliTOFPreprocessor.cxx:1276
 AliTOFPreprocessor.cxx:1277
 AliTOFPreprocessor.cxx:1278
 AliTOFPreprocessor.cxx:1279
 AliTOFPreprocessor.cxx:1280
 AliTOFPreprocessor.cxx:1281
 AliTOFPreprocessor.cxx:1282
 AliTOFPreprocessor.cxx:1283
 AliTOFPreprocessor.cxx:1284
 AliTOFPreprocessor.cxx:1285
 AliTOFPreprocessor.cxx:1286
 AliTOFPreprocessor.cxx:1287
 AliTOFPreprocessor.cxx:1288
 AliTOFPreprocessor.cxx:1289
 AliTOFPreprocessor.cxx:1290
 AliTOFPreprocessor.cxx:1291
 AliTOFPreprocessor.cxx:1292
 AliTOFPreprocessor.cxx:1293
 AliTOFPreprocessor.cxx:1294
 AliTOFPreprocessor.cxx:1295
 AliTOFPreprocessor.cxx:1296
 AliTOFPreprocessor.cxx:1297
 AliTOFPreprocessor.cxx:1298
 AliTOFPreprocessor.cxx:1299
 AliTOFPreprocessor.cxx:1300
 AliTOFPreprocessor.cxx:1301
 AliTOFPreprocessor.cxx:1302
 AliTOFPreprocessor.cxx:1303
 AliTOFPreprocessor.cxx:1304
 AliTOFPreprocessor.cxx:1305
 AliTOFPreprocessor.cxx:1306
 AliTOFPreprocessor.cxx:1307
 AliTOFPreprocessor.cxx:1308
 AliTOFPreprocessor.cxx:1309
 AliTOFPreprocessor.cxx:1310
 AliTOFPreprocessor.cxx:1311
 AliTOFPreprocessor.cxx:1312
 AliTOFPreprocessor.cxx:1313
 AliTOFPreprocessor.cxx:1314
 AliTOFPreprocessor.cxx:1315
 AliTOFPreprocessor.cxx:1316
 AliTOFPreprocessor.cxx:1317
 AliTOFPreprocessor.cxx:1318
 AliTOFPreprocessor.cxx:1319
 AliTOFPreprocessor.cxx:1320
 AliTOFPreprocessor.cxx:1321
 AliTOFPreprocessor.cxx:1322
 AliTOFPreprocessor.cxx:1323
 AliTOFPreprocessor.cxx:1324
 AliTOFPreprocessor.cxx:1325
 AliTOFPreprocessor.cxx:1326
 AliTOFPreprocessor.cxx:1327
 AliTOFPreprocessor.cxx:1328
 AliTOFPreprocessor.cxx:1329
 AliTOFPreprocessor.cxx:1330
 AliTOFPreprocessor.cxx:1331
 AliTOFPreprocessor.cxx:1332
 AliTOFPreprocessor.cxx:1333
 AliTOFPreprocessor.cxx:1334
 AliTOFPreprocessor.cxx:1335
 AliTOFPreprocessor.cxx:1336
 AliTOFPreprocessor.cxx:1337
 AliTOFPreprocessor.cxx:1338
 AliTOFPreprocessor.cxx:1339
 AliTOFPreprocessor.cxx:1340
 AliTOFPreprocessor.cxx:1341
 AliTOFPreprocessor.cxx:1342
 AliTOFPreprocessor.cxx:1343
 AliTOFPreprocessor.cxx:1344
 AliTOFPreprocessor.cxx:1345
 AliTOFPreprocessor.cxx:1346
 AliTOFPreprocessor.cxx:1347
 AliTOFPreprocessor.cxx:1348
 AliTOFPreprocessor.cxx:1349
 AliTOFPreprocessor.cxx:1350
 AliTOFPreprocessor.cxx:1351
 AliTOFPreprocessor.cxx:1352
 AliTOFPreprocessor.cxx:1353
 AliTOFPreprocessor.cxx:1354
 AliTOFPreprocessor.cxx:1355
 AliTOFPreprocessor.cxx:1356
 AliTOFPreprocessor.cxx:1357
 AliTOFPreprocessor.cxx:1358
 AliTOFPreprocessor.cxx:1359
 AliTOFPreprocessor.cxx:1360
 AliTOFPreprocessor.cxx:1361
 AliTOFPreprocessor.cxx:1362
 AliTOFPreprocessor.cxx:1363
 AliTOFPreprocessor.cxx:1364
 AliTOFPreprocessor.cxx:1365
 AliTOFPreprocessor.cxx:1366
 AliTOFPreprocessor.cxx:1367
 AliTOFPreprocessor.cxx:1368
 AliTOFPreprocessor.cxx:1369
 AliTOFPreprocessor.cxx:1370
 AliTOFPreprocessor.cxx:1371
 AliTOFPreprocessor.cxx:1372
 AliTOFPreprocessor.cxx:1373
 AliTOFPreprocessor.cxx:1374
 AliTOFPreprocessor.cxx:1375
 AliTOFPreprocessor.cxx:1376
 AliTOFPreprocessor.cxx:1377
 AliTOFPreprocessor.cxx:1378
 AliTOFPreprocessor.cxx:1379
 AliTOFPreprocessor.cxx:1380
 AliTOFPreprocessor.cxx:1381
 AliTOFPreprocessor.cxx:1382
 AliTOFPreprocessor.cxx:1383
 AliTOFPreprocessor.cxx:1384
 AliTOFPreprocessor.cxx:1385
 AliTOFPreprocessor.cxx:1386
 AliTOFPreprocessor.cxx:1387
 AliTOFPreprocessor.cxx:1388
 AliTOFPreprocessor.cxx:1389
 AliTOFPreprocessor.cxx:1390
 AliTOFPreprocessor.cxx:1391
 AliTOFPreprocessor.cxx:1392
 AliTOFPreprocessor.cxx:1393
 AliTOFPreprocessor.cxx:1394
 AliTOFPreprocessor.cxx:1395
 AliTOFPreprocessor.cxx:1396
 AliTOFPreprocessor.cxx:1397
 AliTOFPreprocessor.cxx:1398
 AliTOFPreprocessor.cxx:1399
 AliTOFPreprocessor.cxx:1400
 AliTOFPreprocessor.cxx:1401
 AliTOFPreprocessor.cxx:1402
 AliTOFPreprocessor.cxx:1403
 AliTOFPreprocessor.cxx:1404
 AliTOFPreprocessor.cxx:1405
 AliTOFPreprocessor.cxx:1406
 AliTOFPreprocessor.cxx:1407
 AliTOFPreprocessor.cxx:1408
 AliTOFPreprocessor.cxx:1409
 AliTOFPreprocessor.cxx:1410
 AliTOFPreprocessor.cxx:1411
 AliTOFPreprocessor.cxx:1412
 AliTOFPreprocessor.cxx:1413
 AliTOFPreprocessor.cxx:1414
 AliTOFPreprocessor.cxx:1415
 AliTOFPreprocessor.cxx:1416
 AliTOFPreprocessor.cxx:1417
 AliTOFPreprocessor.cxx:1418
 AliTOFPreprocessor.cxx:1419
 AliTOFPreprocessor.cxx:1420
 AliTOFPreprocessor.cxx:1421
 AliTOFPreprocessor.cxx:1422
 AliTOFPreprocessor.cxx:1423
 AliTOFPreprocessor.cxx:1424
 AliTOFPreprocessor.cxx:1425
 AliTOFPreprocessor.cxx:1426
 AliTOFPreprocessor.cxx:1427
 AliTOFPreprocessor.cxx:1428
 AliTOFPreprocessor.cxx:1429
 AliTOFPreprocessor.cxx:1430
 AliTOFPreprocessor.cxx:1431
 AliTOFPreprocessor.cxx:1432
 AliTOFPreprocessor.cxx:1433
 AliTOFPreprocessor.cxx:1434
 AliTOFPreprocessor.cxx:1435
 AliTOFPreprocessor.cxx:1436
 AliTOFPreprocessor.cxx:1437
 AliTOFPreprocessor.cxx:1438
 AliTOFPreprocessor.cxx:1439
 AliTOFPreprocessor.cxx:1440
 AliTOFPreprocessor.cxx:1441
 AliTOFPreprocessor.cxx:1442
 AliTOFPreprocessor.cxx:1443
 AliTOFPreprocessor.cxx:1444
 AliTOFPreprocessor.cxx:1445
 AliTOFPreprocessor.cxx:1446
 AliTOFPreprocessor.cxx:1447
 AliTOFPreprocessor.cxx:1448
 AliTOFPreprocessor.cxx:1449
 AliTOFPreprocessor.cxx:1450
 AliTOFPreprocessor.cxx:1451
 AliTOFPreprocessor.cxx:1452
 AliTOFPreprocessor.cxx:1453
 AliTOFPreprocessor.cxx:1454
 AliTOFPreprocessor.cxx:1455
 AliTOFPreprocessor.cxx:1456
 AliTOFPreprocessor.cxx:1457
 AliTOFPreprocessor.cxx:1458
 AliTOFPreprocessor.cxx:1459
 AliTOFPreprocessor.cxx:1460
 AliTOFPreprocessor.cxx:1461
 AliTOFPreprocessor.cxx:1462
 AliTOFPreprocessor.cxx:1463
 AliTOFPreprocessor.cxx:1464
 AliTOFPreprocessor.cxx:1465
 AliTOFPreprocessor.cxx:1466
 AliTOFPreprocessor.cxx:1467
 AliTOFPreprocessor.cxx:1468
 AliTOFPreprocessor.cxx:1469
 AliTOFPreprocessor.cxx:1470
 AliTOFPreprocessor.cxx:1471
 AliTOFPreprocessor.cxx:1472
 AliTOFPreprocessor.cxx:1473
 AliTOFPreprocessor.cxx:1474
 AliTOFPreprocessor.cxx:1475
 AliTOFPreprocessor.cxx:1476
 AliTOFPreprocessor.cxx:1477
 AliTOFPreprocessor.cxx:1478
 AliTOFPreprocessor.cxx:1479
 AliTOFPreprocessor.cxx:1480
 AliTOFPreprocessor.cxx:1481
 AliTOFPreprocessor.cxx:1482
 AliTOFPreprocessor.cxx:1483
 AliTOFPreprocessor.cxx:1484
 AliTOFPreprocessor.cxx:1485
 AliTOFPreprocessor.cxx:1486
 AliTOFPreprocessor.cxx:1487
 AliTOFPreprocessor.cxx:1488
 AliTOFPreprocessor.cxx:1489
 AliTOFPreprocessor.cxx:1490
 AliTOFPreprocessor.cxx:1491
 AliTOFPreprocessor.cxx:1492
 AliTOFPreprocessor.cxx:1493
 AliTOFPreprocessor.cxx:1494
 AliTOFPreprocessor.cxx:1495
 AliTOFPreprocessor.cxx:1496
 AliTOFPreprocessor.cxx:1497
 AliTOFPreprocessor.cxx:1498
 AliTOFPreprocessor.cxx:1499
 AliTOFPreprocessor.cxx:1500
 AliTOFPreprocessor.cxx:1501
 AliTOFPreprocessor.cxx:1502
 AliTOFPreprocessor.cxx:1503
 AliTOFPreprocessor.cxx:1504
 AliTOFPreprocessor.cxx:1505
 AliTOFPreprocessor.cxx:1506
 AliTOFPreprocessor.cxx:1507
 AliTOFPreprocessor.cxx:1508
 AliTOFPreprocessor.cxx:1509
 AliTOFPreprocessor.cxx:1510
 AliTOFPreprocessor.cxx:1511
 AliTOFPreprocessor.cxx:1512
 AliTOFPreprocessor.cxx:1513
 AliTOFPreprocessor.cxx:1514
 AliTOFPreprocessor.cxx:1515
 AliTOFPreprocessor.cxx:1516
 AliTOFPreprocessor.cxx:1517
 AliTOFPreprocessor.cxx:1518
 AliTOFPreprocessor.cxx:1519
 AliTOFPreprocessor.cxx:1520
 AliTOFPreprocessor.cxx:1521
 AliTOFPreprocessor.cxx:1522
 AliTOFPreprocessor.cxx:1523
 AliTOFPreprocessor.cxx:1524
 AliTOFPreprocessor.cxx:1525
 AliTOFPreprocessor.cxx:1526
 AliTOFPreprocessor.cxx:1527
 AliTOFPreprocessor.cxx:1528
 AliTOFPreprocessor.cxx:1529
 AliTOFPreprocessor.cxx:1530
 AliTOFPreprocessor.cxx:1531
 AliTOFPreprocessor.cxx:1532
 AliTOFPreprocessor.cxx:1533
 AliTOFPreprocessor.cxx:1534
 AliTOFPreprocessor.cxx:1535
 AliTOFPreprocessor.cxx:1536
 AliTOFPreprocessor.cxx:1537
 AliTOFPreprocessor.cxx:1538
 AliTOFPreprocessor.cxx:1539
 AliTOFPreprocessor.cxx:1540
 AliTOFPreprocessor.cxx:1541
 AliTOFPreprocessor.cxx:1542
 AliTOFPreprocessor.cxx:1543
 AliTOFPreprocessor.cxx:1544
 AliTOFPreprocessor.cxx:1545
 AliTOFPreprocessor.cxx:1546
 AliTOFPreprocessor.cxx:1547
 AliTOFPreprocessor.cxx:1548
 AliTOFPreprocessor.cxx:1549
 AliTOFPreprocessor.cxx:1550
 AliTOFPreprocessor.cxx:1551
 AliTOFPreprocessor.cxx:1552
 AliTOFPreprocessor.cxx:1553
 AliTOFPreprocessor.cxx:1554
 AliTOFPreprocessor.cxx:1555
 AliTOFPreprocessor.cxx:1556
 AliTOFPreprocessor.cxx:1557
 AliTOFPreprocessor.cxx:1558
 AliTOFPreprocessor.cxx:1559
 AliTOFPreprocessor.cxx:1560
 AliTOFPreprocessor.cxx:1561
 AliTOFPreprocessor.cxx:1562
 AliTOFPreprocessor.cxx:1563
 AliTOFPreprocessor.cxx:1564
 AliTOFPreprocessor.cxx:1565
 AliTOFPreprocessor.cxx:1566
 AliTOFPreprocessor.cxx:1567
 AliTOFPreprocessor.cxx:1568
 AliTOFPreprocessor.cxx:1569
 AliTOFPreprocessor.cxx:1570
 AliTOFPreprocessor.cxx:1571
 AliTOFPreprocessor.cxx:1572
 AliTOFPreprocessor.cxx:1573
 AliTOFPreprocessor.cxx:1574
 AliTOFPreprocessor.cxx:1575
 AliTOFPreprocessor.cxx:1576
 AliTOFPreprocessor.cxx:1577
 AliTOFPreprocessor.cxx:1578
 AliTOFPreprocessor.cxx:1579
 AliTOFPreprocessor.cxx:1580
 AliTOFPreprocessor.cxx:1581
 AliTOFPreprocessor.cxx:1582
 AliTOFPreprocessor.cxx:1583
 AliTOFPreprocessor.cxx:1584
 AliTOFPreprocessor.cxx:1585
 AliTOFPreprocessor.cxx:1586
 AliTOFPreprocessor.cxx:1587
 AliTOFPreprocessor.cxx:1588
 AliTOFPreprocessor.cxx:1589
 AliTOFPreprocessor.cxx:1590
 AliTOFPreprocessor.cxx:1591
 AliTOFPreprocessor.cxx:1592
 AliTOFPreprocessor.cxx:1593
 AliTOFPreprocessor.cxx:1594
 AliTOFPreprocessor.cxx:1595
 AliTOFPreprocessor.cxx:1596
 AliTOFPreprocessor.cxx:1597
 AliTOFPreprocessor.cxx:1598
 AliTOFPreprocessor.cxx:1599
 AliTOFPreprocessor.cxx:1600
 AliTOFPreprocessor.cxx:1601
 AliTOFPreprocessor.cxx:1602
 AliTOFPreprocessor.cxx:1603
 AliTOFPreprocessor.cxx:1604
 AliTOFPreprocessor.cxx:1605
 AliTOFPreprocessor.cxx:1606
 AliTOFPreprocessor.cxx:1607
 AliTOFPreprocessor.cxx:1608
 AliTOFPreprocessor.cxx:1609
 AliTOFPreprocessor.cxx:1610
 AliTOFPreprocessor.cxx:1611
 AliTOFPreprocessor.cxx:1612
 AliTOFPreprocessor.cxx:1613
 AliTOFPreprocessor.cxx:1614
 AliTOFPreprocessor.cxx:1615
 AliTOFPreprocessor.cxx:1616
 AliTOFPreprocessor.cxx:1617
 AliTOFPreprocessor.cxx:1618
 AliTOFPreprocessor.cxx:1619
 AliTOFPreprocessor.cxx:1620
 AliTOFPreprocessor.cxx:1621
 AliTOFPreprocessor.cxx:1622
 AliTOFPreprocessor.cxx:1623
 AliTOFPreprocessor.cxx:1624
 AliTOFPreprocessor.cxx:1625
 AliTOFPreprocessor.cxx:1626
 AliTOFPreprocessor.cxx:1627
 AliTOFPreprocessor.cxx:1628
 AliTOFPreprocessor.cxx:1629
 AliTOFPreprocessor.cxx:1630
 AliTOFPreprocessor.cxx:1631
 AliTOFPreprocessor.cxx:1632
 AliTOFPreprocessor.cxx:1633
 AliTOFPreprocessor.cxx:1634
 AliTOFPreprocessor.cxx:1635
 AliTOFPreprocessor.cxx:1636
 AliTOFPreprocessor.cxx:1637
 AliTOFPreprocessor.cxx:1638
 AliTOFPreprocessor.cxx:1639
 AliTOFPreprocessor.cxx:1640
 AliTOFPreprocessor.cxx:1641
 AliTOFPreprocessor.cxx:1642
 AliTOFPreprocessor.cxx:1643
 AliTOFPreprocessor.cxx:1644
 AliTOFPreprocessor.cxx:1645
 AliTOFPreprocessor.cxx:1646
 AliTOFPreprocessor.cxx:1647
 AliTOFPreprocessor.cxx:1648
 AliTOFPreprocessor.cxx:1649
 AliTOFPreprocessor.cxx:1650
 AliTOFPreprocessor.cxx:1651
 AliTOFPreprocessor.cxx:1652
 AliTOFPreprocessor.cxx:1653
 AliTOFPreprocessor.cxx:1654
 AliTOFPreprocessor.cxx:1655
 AliTOFPreprocessor.cxx:1656
 AliTOFPreprocessor.cxx:1657
 AliTOFPreprocessor.cxx:1658
 AliTOFPreprocessor.cxx:1659
 AliTOFPreprocessor.cxx:1660
 AliTOFPreprocessor.cxx:1661
 AliTOFPreprocessor.cxx:1662
 AliTOFPreprocessor.cxx:1663
 AliTOFPreprocessor.cxx:1664
 AliTOFPreprocessor.cxx:1665
 AliTOFPreprocessor.cxx:1666
 AliTOFPreprocessor.cxx:1667
 AliTOFPreprocessor.cxx:1668
 AliTOFPreprocessor.cxx:1669
 AliTOFPreprocessor.cxx:1670
 AliTOFPreprocessor.cxx:1671
 AliTOFPreprocessor.cxx:1672
 AliTOFPreprocessor.cxx:1673
 AliTOFPreprocessor.cxx:1674
 AliTOFPreprocessor.cxx:1675
 AliTOFPreprocessor.cxx:1676
 AliTOFPreprocessor.cxx:1677
 AliTOFPreprocessor.cxx:1678
 AliTOFPreprocessor.cxx:1679
 AliTOFPreprocessor.cxx:1680
 AliTOFPreprocessor.cxx:1681
 AliTOFPreprocessor.cxx:1682
 AliTOFPreprocessor.cxx:1683
 AliTOFPreprocessor.cxx:1684
 AliTOFPreprocessor.cxx:1685
 AliTOFPreprocessor.cxx:1686
 AliTOFPreprocessor.cxx:1687
 AliTOFPreprocessor.cxx:1688
 AliTOFPreprocessor.cxx:1689
 AliTOFPreprocessor.cxx:1690
 AliTOFPreprocessor.cxx:1691
 AliTOFPreprocessor.cxx:1692
 AliTOFPreprocessor.cxx:1693
 AliTOFPreprocessor.cxx:1694
 AliTOFPreprocessor.cxx:1695
 AliTOFPreprocessor.cxx:1696
 AliTOFPreprocessor.cxx:1697
 AliTOFPreprocessor.cxx:1698
 AliTOFPreprocessor.cxx:1699
 AliTOFPreprocessor.cxx:1700
 AliTOFPreprocessor.cxx:1701
 AliTOFPreprocessor.cxx:1702
 AliTOFPreprocessor.cxx:1703
 AliTOFPreprocessor.cxx:1704
 AliTOFPreprocessor.cxx:1705
 AliTOFPreprocessor.cxx:1706
 AliTOFPreprocessor.cxx:1707
 AliTOFPreprocessor.cxx:1708
 AliTOFPreprocessor.cxx:1709
 AliTOFPreprocessor.cxx:1710
 AliTOFPreprocessor.cxx:1711
 AliTOFPreprocessor.cxx:1712
 AliTOFPreprocessor.cxx:1713
 AliTOFPreprocessor.cxx:1714
 AliTOFPreprocessor.cxx:1715
 AliTOFPreprocessor.cxx:1716
 AliTOFPreprocessor.cxx:1717
 AliTOFPreprocessor.cxx:1718
 AliTOFPreprocessor.cxx:1719
 AliTOFPreprocessor.cxx:1720
 AliTOFPreprocessor.cxx:1721
 AliTOFPreprocessor.cxx:1722
 AliTOFPreprocessor.cxx:1723
 AliTOFPreprocessor.cxx:1724
 AliTOFPreprocessor.cxx:1725
 AliTOFPreprocessor.cxx:1726
 AliTOFPreprocessor.cxx:1727
 AliTOFPreprocessor.cxx:1728
 AliTOFPreprocessor.cxx:1729
 AliTOFPreprocessor.cxx:1730
 AliTOFPreprocessor.cxx:1731
 AliTOFPreprocessor.cxx:1732
 AliTOFPreprocessor.cxx:1733
 AliTOFPreprocessor.cxx:1734
 AliTOFPreprocessor.cxx:1735
 AliTOFPreprocessor.cxx:1736
 AliTOFPreprocessor.cxx:1737
 AliTOFPreprocessor.cxx:1738
 AliTOFPreprocessor.cxx:1739
 AliTOFPreprocessor.cxx:1740
 AliTOFPreprocessor.cxx:1741
 AliTOFPreprocessor.cxx:1742
 AliTOFPreprocessor.cxx:1743
 AliTOFPreprocessor.cxx:1744
 AliTOFPreprocessor.cxx:1745
 AliTOFPreprocessor.cxx:1746
 AliTOFPreprocessor.cxx:1747
 AliTOFPreprocessor.cxx:1748
 AliTOFPreprocessor.cxx:1749
 AliTOFPreprocessor.cxx:1750
 AliTOFPreprocessor.cxx:1751
 AliTOFPreprocessor.cxx:1752
 AliTOFPreprocessor.cxx:1753
 AliTOFPreprocessor.cxx:1754
 AliTOFPreprocessor.cxx:1755
 AliTOFPreprocessor.cxx:1756
 AliTOFPreprocessor.cxx:1757
 AliTOFPreprocessor.cxx:1758
 AliTOFPreprocessor.cxx:1759
 AliTOFPreprocessor.cxx:1760
 AliTOFPreprocessor.cxx:1761
 AliTOFPreprocessor.cxx:1762
 AliTOFPreprocessor.cxx:1763
 AliTOFPreprocessor.cxx:1764
 AliTOFPreprocessor.cxx:1765
 AliTOFPreprocessor.cxx:1766
 AliTOFPreprocessor.cxx:1767
 AliTOFPreprocessor.cxx:1768
 AliTOFPreprocessor.cxx:1769
 AliTOFPreprocessor.cxx:1770
 AliTOFPreprocessor.cxx:1771
 AliTOFPreprocessor.cxx:1772
 AliTOFPreprocessor.cxx:1773
 AliTOFPreprocessor.cxx:1774
 AliTOFPreprocessor.cxx:1775
 AliTOFPreprocessor.cxx:1776
 AliTOFPreprocessor.cxx:1777
 AliTOFPreprocessor.cxx:1778
 AliTOFPreprocessor.cxx:1779
 AliTOFPreprocessor.cxx:1780
 AliTOFPreprocessor.cxx:1781
 AliTOFPreprocessor.cxx:1782
 AliTOFPreprocessor.cxx:1783
 AliTOFPreprocessor.cxx:1784
 AliTOFPreprocessor.cxx:1785
 AliTOFPreprocessor.cxx:1786
 AliTOFPreprocessor.cxx:1787
 AliTOFPreprocessor.cxx:1788
 AliTOFPreprocessor.cxx:1789
 AliTOFPreprocessor.cxx:1790
 AliTOFPreprocessor.cxx:1791
 AliTOFPreprocessor.cxx:1792
 AliTOFPreprocessor.cxx:1793
 AliTOFPreprocessor.cxx:1794
 AliTOFPreprocessor.cxx:1795
 AliTOFPreprocessor.cxx:1796
 AliTOFPreprocessor.cxx:1797
 AliTOFPreprocessor.cxx:1798
 AliTOFPreprocessor.cxx:1799
 AliTOFPreprocessor.cxx:1800
 AliTOFPreprocessor.cxx:1801
 AliTOFPreprocessor.cxx:1802
 AliTOFPreprocessor.cxx:1803
 AliTOFPreprocessor.cxx:1804
 AliTOFPreprocessor.cxx:1805
 AliTOFPreprocessor.cxx:1806
 AliTOFPreprocessor.cxx:1807
 AliTOFPreprocessor.cxx:1808
 AliTOFPreprocessor.cxx:1809
 AliTOFPreprocessor.cxx:1810
 AliTOFPreprocessor.cxx:1811
 AliTOFPreprocessor.cxx:1812
 AliTOFPreprocessor.cxx:1813
 AliTOFPreprocessor.cxx:1814
 AliTOFPreprocessor.cxx:1815
 AliTOFPreprocessor.cxx:1816
 AliTOFPreprocessor.cxx:1817
 AliTOFPreprocessor.cxx:1818
 AliTOFPreprocessor.cxx:1819
 AliTOFPreprocessor.cxx:1820
 AliTOFPreprocessor.cxx:1821
 AliTOFPreprocessor.cxx:1822
 AliTOFPreprocessor.cxx:1823
 AliTOFPreprocessor.cxx:1824
 AliTOFPreprocessor.cxx:1825
 AliTOFPreprocessor.cxx:1826
 AliTOFPreprocessor.cxx:1827
 AliTOFPreprocessor.cxx:1828
 AliTOFPreprocessor.cxx:1829
 AliTOFPreprocessor.cxx:1830
 AliTOFPreprocessor.cxx:1831
 AliTOFPreprocessor.cxx:1832
 AliTOFPreprocessor.cxx:1833
 AliTOFPreprocessor.cxx:1834
 AliTOFPreprocessor.cxx:1835
 AliTOFPreprocessor.cxx:1836
 AliTOFPreprocessor.cxx:1837
 AliTOFPreprocessor.cxx:1838
 AliTOFPreprocessor.cxx:1839
 AliTOFPreprocessor.cxx:1840
 AliTOFPreprocessor.cxx:1841
 AliTOFPreprocessor.cxx:1842
 AliTOFPreprocessor.cxx:1843
 AliTOFPreprocessor.cxx:1844
 AliTOFPreprocessor.cxx:1845
 AliTOFPreprocessor.cxx:1846
 AliTOFPreprocessor.cxx:1847
 AliTOFPreprocessor.cxx:1848
 AliTOFPreprocessor.cxx:1849
 AliTOFPreprocessor.cxx:1850
 AliTOFPreprocessor.cxx:1851
 AliTOFPreprocessor.cxx:1852
 AliTOFPreprocessor.cxx:1853
 AliTOFPreprocessor.cxx:1854
 AliTOFPreprocessor.cxx:1855
 AliTOFPreprocessor.cxx:1856
 AliTOFPreprocessor.cxx:1857
 AliTOFPreprocessor.cxx:1858
 AliTOFPreprocessor.cxx:1859
 AliTOFPreprocessor.cxx:1860
 AliTOFPreprocessor.cxx:1861
 AliTOFPreprocessor.cxx:1862
 AliTOFPreprocessor.cxx:1863
 AliTOFPreprocessor.cxx:1864
 AliTOFPreprocessor.cxx:1865
 AliTOFPreprocessor.cxx:1866
 AliTOFPreprocessor.cxx:1867
 AliTOFPreprocessor.cxx:1868
 AliTOFPreprocessor.cxx:1869
 AliTOFPreprocessor.cxx:1870
 AliTOFPreprocessor.cxx:1871
 AliTOFPreprocessor.cxx:1872
 AliTOFPreprocessor.cxx:1873
 AliTOFPreprocessor.cxx:1874
 AliTOFPreprocessor.cxx:1875
 AliTOFPreprocessor.cxx:1876
 AliTOFPreprocessor.cxx:1877
 AliTOFPreprocessor.cxx:1878
 AliTOFPreprocessor.cxx:1879
 AliTOFPreprocessor.cxx:1880
 AliTOFPreprocessor.cxx:1881
 AliTOFPreprocessor.cxx:1882
 AliTOFPreprocessor.cxx:1883
 AliTOFPreprocessor.cxx:1884
 AliTOFPreprocessor.cxx:1885
 AliTOFPreprocessor.cxx:1886
 AliTOFPreprocessor.cxx:1887
 AliTOFPreprocessor.cxx:1888
 AliTOFPreprocessor.cxx:1889
 AliTOFPreprocessor.cxx:1890
 AliTOFPreprocessor.cxx:1891
 AliTOFPreprocessor.cxx:1892
 AliTOFPreprocessor.cxx:1893
 AliTOFPreprocessor.cxx:1894
 AliTOFPreprocessor.cxx:1895
 AliTOFPreprocessor.cxx:1896
 AliTOFPreprocessor.cxx:1897
 AliTOFPreprocessor.cxx:1898
 AliTOFPreprocessor.cxx:1899
 AliTOFPreprocessor.cxx:1900
 AliTOFPreprocessor.cxx:1901
 AliTOFPreprocessor.cxx:1902
 AliTOFPreprocessor.cxx:1903
 AliTOFPreprocessor.cxx:1904
 AliTOFPreprocessor.cxx:1905
 AliTOFPreprocessor.cxx:1906
 AliTOFPreprocessor.cxx:1907
 AliTOFPreprocessor.cxx:1908
 AliTOFPreprocessor.cxx:1909
 AliTOFPreprocessor.cxx:1910
 AliTOFPreprocessor.cxx:1911
 AliTOFPreprocessor.cxx:1912
 AliTOFPreprocessor.cxx:1913
 AliTOFPreprocessor.cxx:1914
 AliTOFPreprocessor.cxx:1915
 AliTOFPreprocessor.cxx:1916
 AliTOFPreprocessor.cxx:1917
 AliTOFPreprocessor.cxx:1918
 AliTOFPreprocessor.cxx:1919
 AliTOFPreprocessor.cxx:1920
 AliTOFPreprocessor.cxx:1921
 AliTOFPreprocessor.cxx:1922
 AliTOFPreprocessor.cxx:1923
 AliTOFPreprocessor.cxx:1924
 AliTOFPreprocessor.cxx:1925
 AliTOFPreprocessor.cxx:1926
 AliTOFPreprocessor.cxx:1927
 AliTOFPreprocessor.cxx:1928
 AliTOFPreprocessor.cxx:1929
 AliTOFPreprocessor.cxx:1930
 AliTOFPreprocessor.cxx:1931
 AliTOFPreprocessor.cxx:1932
 AliTOFPreprocessor.cxx:1933
 AliTOFPreprocessor.cxx:1934
 AliTOFPreprocessor.cxx:1935
 AliTOFPreprocessor.cxx:1936
 AliTOFPreprocessor.cxx:1937
 AliTOFPreprocessor.cxx:1938
 AliTOFPreprocessor.cxx:1939
 AliTOFPreprocessor.cxx:1940
 AliTOFPreprocessor.cxx:1941
 AliTOFPreprocessor.cxx:1942
 AliTOFPreprocessor.cxx:1943
 AliTOFPreprocessor.cxx:1944
 AliTOFPreprocessor.cxx:1945
 AliTOFPreprocessor.cxx:1946
 AliTOFPreprocessor.cxx:1947
 AliTOFPreprocessor.cxx:1948
 AliTOFPreprocessor.cxx:1949
 AliTOFPreprocessor.cxx:1950
 AliTOFPreprocessor.cxx:1951
 AliTOFPreprocessor.cxx:1952
 AliTOFPreprocessor.cxx:1953
 AliTOFPreprocessor.cxx:1954
 AliTOFPreprocessor.cxx:1955
 AliTOFPreprocessor.cxx:1956
 AliTOFPreprocessor.cxx:1957
 AliTOFPreprocessor.cxx:1958
 AliTOFPreprocessor.cxx:1959
 AliTOFPreprocessor.cxx:1960
 AliTOFPreprocessor.cxx:1961
 AliTOFPreprocessor.cxx:1962
 AliTOFPreprocessor.cxx:1963
 AliTOFPreprocessor.cxx:1964
 AliTOFPreprocessor.cxx:1965
 AliTOFPreprocessor.cxx:1966
 AliTOFPreprocessor.cxx:1967
 AliTOFPreprocessor.cxx:1968
 AliTOFPreprocessor.cxx:1969
 AliTOFPreprocessor.cxx:1970
 AliTOFPreprocessor.cxx:1971
 AliTOFPreprocessor.cxx:1972
 AliTOFPreprocessor.cxx:1973
 AliTOFPreprocessor.cxx:1974
 AliTOFPreprocessor.cxx:1975
 AliTOFPreprocessor.cxx:1976