ROOT logo
/**************************************************************************
 * Copyright(c) 1998-2007, 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$ */

//-------------------------------------------------------------------------
//     AOD event base class
//     Author: Markus Oldenburg, CERN
//-------------------------------------------------------------------------

#include "AliAODHeader.h"
#include "AliCentrality.h"
#include "AliEventplane.h"
#include "AliMagF.h"
#include <TGeoGlobalMagField.h>
#include <TGeoMatrix.h>
#include <TObjString.h>

ClassImp(AliAODHeader)

//______________________________________________________________________________
AliAODHeader::AliAODHeader() : 
  AliVAODHeader(),
  fMagneticField(-999.),
  fMuonMagFieldScale(-999.),
  fCentrality(-999.),
  fEventplane(-999.),
  fEventplaneMag(-999.),
  fEventplaneQx(-999.),
  fEventplaneQy(-999.),
  fZDCN1Energy(-999.),
  fZDCP1Energy(-999.),
  fZDCN2Energy(-999.),
  fZDCP2Energy(-999.),
  fNQTheta(0),
  fQTheta(0x0),
  fTriggerMask(0),
  fFiredTriggers(),
  fRunNumber(-999),  
  fRefMult(-999),
  fRefMultPos(-999),
  fRefMultNeg(-999),
  fNMuons(0),
  fNDimuons(0),
  fNGlobalMuons(0),               // AU
  fNGlobalDimuons(0),             // AU
  fEventType(0),
  fOrbitNumber(0),
  fPeriodNumber(0),
  fBunchCrossNumber(0),
  fRefMultComb05(-999),
  fRefMultComb08(-999),
  fTriggerCluster(0), 
  fDiamondZ(0.), 
  fDiamondSig2Z(0.),
  fOfflineTrigger(0),
  fESDFileName(""),
  fEventNumberESDFile(-1),
  fNumberESDTracks(-1),
  fL0TriggerInputs(0),
  fL1TriggerInputs(0),
  fL2TriggerInputs(0),
  fTPConlyRefMult(-1), 
  fCentralityP(0),
  fEventplaneP(0),
  fIRInt2InteractionsMap(0),
  fIRInt1InteractionsMap(0)
{
  // default constructor

  SetName("header");
  for(int j=0; j<2; j++) fZDCEMEnergy[j] = -999.;
  for(Int_t i=0; i<2; i++) fDiamondXY[i]=0.;
  fDiamondCovXY[0]=fDiamondCovXY[2]=3.*3.;
  fDiamondCovXY[1]=0.;
  for (Int_t m=0; m<kNPHOSMatrix; m++) fPHOSMatrix[m]=NULL;
  for (Int_t sm=0; sm<kNEMCALMatrix; sm++) fEMCALMatrix[sm]=NULL;
  for (Int_t i = 0; i < 6; i++)  fITSClusters[i] = 0;
  for (Int_t j=0; j<64; ++j) fVZEROEqFactors[j]=-1;
  for (Int_t i=0; i<kT0SpreadSize;i++) fT0spread[i]=0;
}

//______________________________________________________________________________
AliAODHeader::AliAODHeader(Int_t nRun, 
			   UShort_t nBunchX,
			   UInt_t nOrbit,
			   UInt_t nPeriod,
			   const Char_t *title) :
  AliVAODHeader(),
  fMagneticField(-999.),
  fMuonMagFieldScale(-999.),
  fCentrality(-999.),
  fEventplane(-999.),
  fEventplaneMag(-999.),
  fEventplaneQx(-999.),
  fEventplaneQy(-999.),
  fZDCN1Energy(-999.),
  fZDCP1Energy(-999.),
  fZDCN2Energy(-999.),
  fZDCP2Energy(-999.),
  fNQTheta(0),
  fQTheta(0x0),
  fTriggerMask(0),
  fFiredTriggers(),
  fRunNumber(nRun),
  fRefMult(-999),
  fRefMultPos(-999),
  fRefMultNeg(-999),
  fNMuons(0),
  fNDimuons(0),
  fNGlobalMuons(0),               // AU
  fNGlobalDimuons(0),             // AU
  fEventType(0),
  fOrbitNumber(nOrbit),
  fPeriodNumber(nPeriod),
  fBunchCrossNumber(nBunchX),
  fRefMultComb05(-999),
  fRefMultComb08(-999),
  fTriggerCluster(0), 
  fDiamondZ(0.), 
  fDiamondSig2Z(0.),
  fOfflineTrigger(0),
  fESDFileName(""),
  fEventNumberESDFile(-1),
  fNumberESDTracks(-1),
  fL0TriggerInputs(0),
  fL1TriggerInputs(0),
  fL2TriggerInputs(0),
  fTPConlyRefMult(-1), 
  fCentralityP(0),
  fEventplaneP(0),
  fIRInt2InteractionsMap(0),
  fIRInt1InteractionsMap(0)
{
  // constructor

  SetName("header");
  SetTitle(title);
  for(int j=0; j<2; j++) fZDCEMEnergy[j] = -999.;
  for(Int_t i=0; i<2; i++) fDiamondXY[i]=0.;
  fDiamondCovXY[0]=fDiamondCovXY[2]=3.*3.;
  fDiamondCovXY[1]=0.;
  for (Int_t m=0; m<kNPHOSMatrix; m++) fPHOSMatrix[m]=NULL;
  for (Int_t sm=0; sm<kNEMCALMatrix; sm++) fEMCALMatrix[sm]=NULL;
  for (Int_t j=0; j<64; ++j) fVZEROEqFactors[j]=-1;
  for (Int_t i=0; i<kT0SpreadSize;i++) fT0spread[i]=0;
}

//______________________________________________________________________________
AliAODHeader::AliAODHeader(Int_t nRun, 
			   UShort_t nBunchX,
			   UInt_t nOrbit,
			   UInt_t nPeriod,
			   Int_t refMult,
			   Int_t refMultPos,
			   Int_t refMultNeg,
			   Int_t refMultComb05,
			   Int_t refMultComb08,
			   Double_t magField,
			   Double_t muonMagFieldScale,
			   Double_t cent,
			   Double_t eventplane,
			   Double_t n1Energy,
			   Double_t p1Energy,
			   Double_t n2Energy,
			   Double_t p2Energy,
			   Double_t *emEnergy,
 			   ULong64_t trigMask,
			   UChar_t trigClus,
			   UInt_t evttype,
			   const Float_t *vzeroEqFactors,
			   const Char_t *title,
			   Int_t nMuons,
			   Int_t nDimuons,
			   Int_t nGlobalMuons,                 // AU
			   Int_t nGlobalDimuons) :             // AU
  AliVAODHeader(),
  fMagneticField(magField),
  fMuonMagFieldScale(muonMagFieldScale),
  fCentrality(cent),
  fEventplane(eventplane),
  fEventplaneMag(0),
  fEventplaneQx(0),
  fEventplaneQy(0),
  fZDCN1Energy(n1Energy),
  fZDCP1Energy(p1Energy),
  fZDCN2Energy(n2Energy),
  fZDCP2Energy(p2Energy),
  fNQTheta(0),
  fQTheta(0x0),
  fTriggerMask(trigMask),
  fFiredTriggers(),
  fRunNumber(nRun),  
  fRefMult(refMult),
  fRefMultPos(refMultPos),
  fRefMultNeg(refMultNeg),
  fNMuons(nMuons),
  fNDimuons(nDimuons),
  fNGlobalMuons(nGlobalMuons),               // AU
  fNGlobalDimuons(nGlobalDimuons),           // AU
  fEventType(evttype),
  fOrbitNumber(nOrbit),
  fPeriodNumber(nPeriod),
  fBunchCrossNumber(nBunchX),
  fRefMultComb05(refMultComb05),
  fRefMultComb08(refMultComb08),
  fTriggerCluster(trigClus),
  fDiamondZ(0.), 
  fDiamondSig2Z(0.),
  fOfflineTrigger(0),
  fESDFileName(""),
  fEventNumberESDFile(-1),
  fNumberESDTracks(-1),
  fL0TriggerInputs(0),
  fL1TriggerInputs(0),
  fL2TriggerInputs(0),
  fTPConlyRefMult(-1), 
  fCentralityP(0),
  fEventplaneP(0),
  fIRInt2InteractionsMap(0),
  fIRInt1InteractionsMap(0)
{
  // constructor

  SetName("header");
  SetTitle(title);
  for(int j=0; j<2; j++) fZDCEMEnergy[j] = emEnergy[j];
  for(Int_t i=0; i<2; i++) fDiamondXY[i]=0.;
  fDiamondCovXY[0]=fDiamondCovXY[2]=3.*3.;
  fDiamondCovXY[1]=0.;
  for (Int_t m=0; m<kNPHOSMatrix; m++) fPHOSMatrix[m]=NULL;
  for (Int_t sm=0; sm<kNEMCALMatrix; sm++) fEMCALMatrix[sm]=NULL;
  for (Int_t i = 0; i < 6; i++)  fITSClusters[i] = 0;
  if (vzeroEqFactors) for (Int_t j=0; j<64; ++j) fVZEROEqFactors[j] = vzeroEqFactors[j];
  for (Int_t i=0; i<kT0SpreadSize;i++) fT0spread[i]=0;
}

//______________________________________________________________________________
AliAODHeader::~AliAODHeader() 
{
  // destructor
  delete fCentralityP;
  delete fEventplaneP;
  RemoveQTheta();
}

//______________________________________________________________________________
AliAODHeader::AliAODHeader(const AliAODHeader& hdr) :
  AliVAODHeader(hdr),
  fMagneticField(hdr.fMagneticField),
  fMuonMagFieldScale(hdr.fMuonMagFieldScale),
  fCentrality(hdr.fCentrality),
  fEventplane(hdr.fEventplane),
  fEventplaneMag(hdr.fEventplaneMag),
  fEventplaneQx(hdr.fEventplaneQx),
  fEventplaneQy(hdr.fEventplaneQy),
  fZDCN1Energy(hdr.fZDCN1Energy),
  fZDCP1Energy(hdr.fZDCP1Energy),
  fZDCN2Energy(hdr.fZDCN2Energy),
  fZDCP2Energy(hdr.fZDCP2Energy),
  fNQTheta(0),
  fQTheta(0x0),
  fTriggerMask(hdr.fTriggerMask),
  fFiredTriggers(hdr.fFiredTriggers),
  fRunNumber(hdr.fRunNumber),  
  fRefMult(hdr.fRefMult), 
  fRefMultPos(hdr.fRefMultPos), 
  fRefMultNeg(hdr.fRefMultNeg),
  fNMuons(hdr.fNMuons),
  fNDimuons(hdr.fNDimuons),
  fNGlobalMuons(hdr.fNGlobalMuons),           // AU
  fNGlobalDimuons(hdr.fNGlobalDimuons),       // AU
  fEventType(hdr.fEventType),
  fOrbitNumber(hdr.fOrbitNumber),
  fPeriodNumber(hdr.fPeriodNumber),
  fBunchCrossNumber(hdr.fBunchCrossNumber),
  fRefMultComb05(hdr.fRefMultComb05), 
  fRefMultComb08(hdr.fRefMultComb08), 
  fTriggerCluster(hdr.fTriggerCluster), 
  fDiamondZ(hdr.fDiamondZ), 
  fDiamondSig2Z(hdr.fDiamondSig2Z),
  fOfflineTrigger(hdr.fOfflineTrigger),
  fESDFileName(hdr.fESDFileName),
  fEventNumberESDFile(hdr.fEventNumberESDFile),
  fNumberESDTracks(hdr.fNumberESDTracks),
  fL0TriggerInputs(hdr.fL0TriggerInputs),
  fL1TriggerInputs(hdr.fL1TriggerInputs),
  fL2TriggerInputs(hdr.fL2TriggerInputs),
  fTPConlyRefMult(hdr.fTPConlyRefMult), 
  fCentralityP(new AliCentrality(*hdr.fCentralityP)),
  fEventplaneP(new AliEventplane(*hdr.fEventplaneP)),
  fIRInt2InteractionsMap(hdr.fIRInt2InteractionsMap),
  fIRInt1InteractionsMap(hdr.fIRInt1InteractionsMap)
{
  // Copy constructor.
  
  SetName(hdr.fName);
  SetTitle(hdr.fTitle);
  SetQTheta(hdr.fQTheta, hdr.fNQTheta);
  SetZDCEMEnergy(hdr.fZDCEMEnergy[0], hdr.fZDCEMEnergy[1]);
  for(Int_t i=0; i<2; i++) fDiamondXY[i]=hdr.fDiamondXY[i];
  for(Int_t i=0; i<3; i++) fDiamondCovXY[i]=hdr.fDiamondCovXY[i];


  for(Int_t m=0; m<kNPHOSMatrix; m++){
      if(hdr.fPHOSMatrix[m])
	  fPHOSMatrix[m]=new TGeoHMatrix(*(hdr.fPHOSMatrix[m])) ;
      else
	  fPHOSMatrix[m]=0;
  }
  
  for(Int_t sm=0; sm<kNEMCALMatrix; sm++){
      if(hdr.fEMCALMatrix[sm])
	  fEMCALMatrix[sm]=new TGeoHMatrix(*(hdr.fEMCALMatrix[sm])) ;
      else
	  fEMCALMatrix[sm]=0;
  }
  for (Int_t i = 0; i < 6; i++)  fITSClusters[i] = hdr.fITSClusters[i];
  for (Int_t j=0; j<64; ++j) fVZEROEqFactors[j]=hdr.fVZEROEqFactors[j];
  for (Int_t i=0; i<kT0SpreadSize;i++) fT0spread[i]=hdr.fT0spread[i];

}

//______________________________________________________________________________
AliAODHeader& AliAODHeader::operator=(const AliAODHeader& hdr)
{
  // Assignment operator
  if(this!=&hdr) {
    
     AliVHeader::operator=(hdr);
    
    fMagneticField    = hdr.fMagneticField;
    fMuonMagFieldScale= hdr.fMuonMagFieldScale;
    fCentrality       = hdr.fCentrality;
    fEventplane       = hdr.fEventplane;
    fEventplaneMag    = hdr.fEventplaneMag;
    fEventplaneQx     = hdr.fEventplaneQx;
    fEventplaneQy     = hdr.fEventplaneQy;
    fZDCN1Energy      = hdr.fZDCN1Energy;
    fZDCP1Energy      = hdr.fZDCP1Energy;
    fZDCN2Energy      = hdr.fZDCN2Energy;
    fZDCP2Energy      = hdr.fZDCP2Energy;
    fTriggerMask      = hdr.fTriggerMask;
    fFiredTriggers    = hdr.fFiredTriggers;
    fRunNumber        = hdr.fRunNumber;
    fRefMult          = hdr.fRefMult;
    fRefMultPos       = hdr.fRefMultPos;
    fRefMultNeg       = hdr.fRefMultNeg;
    fEventType        = hdr.fEventType;
    fOrbitNumber      = hdr.fOrbitNumber;
    fPeriodNumber     = hdr.fPeriodNumber;
    fBunchCrossNumber = hdr.fBunchCrossNumber;
    fRefMultComb05    = hdr.fRefMultComb05;
    fRefMultComb08    = hdr.fRefMultComb08;

    fTriggerCluster   = hdr.fTriggerCluster;
    fNMuons           = hdr.fNMuons;
    fNDimuons         = hdr.fNDimuons;
    fNGlobalMuons     = hdr.fNGlobalMuons;           // AU
    fNGlobalDimuons   = hdr.fNGlobalDimuons;         // AU
    fDiamondZ         = hdr.fDiamondZ;
    fDiamondSig2Z     = hdr.fDiamondSig2Z;
    fOfflineTrigger   = hdr.fOfflineTrigger;
    fESDFileName      = hdr.fESDFileName;
    fEventNumberESDFile = hdr.fEventNumberESDFile;
    fNumberESDTracks    = hdr.fNumberESDTracks;
    fL0TriggerInputs    = hdr.fL0TriggerInputs;
    fL1TriggerInputs    = hdr.fL1TriggerInputs;
    fL2TriggerInputs    = hdr.fL2TriggerInputs;
    fTPConlyRefMult     = hdr.fTPConlyRefMult;

    fIRInt2InteractionsMap  = hdr.fIRInt2InteractionsMap;
    fIRInt1InteractionsMap  = hdr.fIRInt1InteractionsMap;

    if(hdr.fEventplaneP){
      if(fEventplaneP)*fEventplaneP = *hdr.fEventplaneP;
      else fEventplaneP = new AliEventplane(*hdr.fEventplaneP);
    }

    if(hdr.fCentralityP){
      if(fCentralityP)*fCentralityP = *hdr.fCentralityP;
      else fCentralityP = new AliCentrality(*hdr.fCentralityP);
    }

    SetName(hdr.fName);
    SetTitle(hdr.fTitle);
    SetQTheta(hdr.fQTheta, hdr.fNQTheta);
    SetZDCEMEnergy(hdr.fZDCEMEnergy[0], hdr.fZDCEMEnergy[1]);
    for(Int_t i=0; i<2; i++) fDiamondXY[i]=hdr.fDiamondXY[i];
    for(Int_t i=0; i<3; i++) fDiamondCovXY[i]=hdr.fDiamondCovXY[i];

    for(Int_t m=0; m<kNPHOSMatrix; m++){
      if(hdr.fPHOSMatrix[m]){
	if(fPHOSMatrix[m])delete fPHOSMatrix[m];
	fPHOSMatrix[m]=new TGeoHMatrix(*(hdr.fPHOSMatrix[m])) ;
      }
      else
	fPHOSMatrix[m]=0;
    }
    
    for(Int_t sm=0; sm<kNEMCALMatrix; sm++){
      if(hdr.fEMCALMatrix[sm]){
	if(fEMCALMatrix[sm])delete fEMCALMatrix[sm];
	fEMCALMatrix[sm]=new TGeoHMatrix(*(hdr.fEMCALMatrix[sm])) ;
      }
      else
	fEMCALMatrix[sm]=0;
    }
    
  }

  for (Int_t i = 0; i < 6; i++)  fITSClusters[i] = hdr.fITSClusters[i];
  for (Int_t j=0; j<64; ++j) fVZEROEqFactors[j] = hdr.fVZEROEqFactors[j];
  for (Int_t i=0; i<kT0SpreadSize;i++) fT0spread[i]=hdr.fT0spread[i];

  return *this;
}

//______________________________________________________________________________
void AliAODHeader::SetQTheta(Double_t *QTheta, UInt_t size) 
{
  if (QTheta && size>0) {
    if (size != (UInt_t)fNQTheta) {
      RemoveQTheta();
      fNQTheta = size;
      fQTheta = new Double_t[fNQTheta];
    }
    
    for (Int_t i = 0; i < fNQTheta; i++) {
      fQTheta[i] = QTheta[i];
    }
  } else {
    RemoveQTheta();
  }

  return;
}

//______________________________________________________________________________
Double_t AliAODHeader::GetQTheta(UInt_t i) const
{
  if (fQTheta && i < (UInt_t)fNQTheta) {
    return fQTheta[i];
  } else {
    return -999.;
  }
}

//______________________________________________________________________________
void AliAODHeader::RemoveQTheta()
{
  delete[] fQTheta;
  fQTheta = 0x0;
  fNQTheta = 0;

  return;
}

void AliAODHeader::Clear(Option_t* /*opt*/)
{
// Clear memory
  RemoveQTheta();
  if (fCentralityP){
    delete fCentralityP;
    fCentralityP = 0;
    fCentrality = -999;
  }
  if (fEventplaneP){
    delete fEventplaneP;
    fEventplaneP = 0;
    fEventplane = -999;
    fEventplaneMag = -999.;
    fEventplaneQx = -999.;
    fEventplaneQy = -999.;
  }
  return;
}

//______________________________________________________________________________
void AliAODHeader::Print(Option_t* /*option*/) const 
{
  // prints event information

  printf("Run #                   : %d\n", fRunNumber);
  printf("Bunch Crossing  #       : %d\n", fBunchCrossNumber);
  printf("Orbit Number #          : %d\n", fOrbitNumber);
  printf("Period Number #         : %d\n", fPeriodNumber);
  printf("Trigger mask            : %lld\n", fTriggerMask);
  printf("Trigger cluster         : %d\n", fTriggerCluster);
  printf("Event Type              : %d\n", fEventType);
  printf("Magnetic field          : %f\n", fMagneticField);
  printf("Muon mag. field scale   : %f\n", fMuonMagFieldScale);
  
  printf("Centrality              : %f\n", fCentrality);
  printf("Event plane Ang         : %f\n", fEventplane);
  printf("Event plane Mag         : %f\n", fEventplaneMag);
  printf("Event plane Qx          : %f\n", fEventplaneQx);
  printf("Event plane Qy          : %f\n", fEventplaneQy);
  printf("ZDC N1 Energy           : %f\n", fZDCN1Energy);
  printf("ZDC P1 Energy           : %f\n", fZDCP1Energy);
  printf("ZDC N2 Energy           : %f\n", fZDCN2Energy);
  printf("ZDC P2 Energy           : %f\n", fZDCP2Energy);
  printf("ZDC EM1 Energy          : %f\n", fZDCEMEnergy[0]);
  printf("ZDC EM2 Energy          : %f\n", fZDCEMEnergy[1]);
  printf("ref. Multiplicity       : %d\n", fRefMult);
  printf("ref. Multiplicity (pos) : %d\n", fRefMultPos);
  printf("ref. Multiplicity (neg) : %d\n", fRefMultNeg);
  printf("ref. Mult.Comb |eta|<.5 : %d\n", fRefMultComb05);
  printf("ref. Mult.Comb |eta|<.8 : %d\n", fRefMultComb08);
  printf("number of muons         : %d\n", fNMuons);
  printf("number of dimuons       : %d\n", fNDimuons);
  printf("offline trigger         : %u\n", fOfflineTrigger);

  if (fQTheta) {
    for (UInt_t i = 0; i<(UInt_t)fNQTheta; i++) {
      printf("QTheta[%d]              : %13.3e\n", i, GetQTheta(i));
    }
  }
  printf("V0 Eq factors: ");
  for (Int_t j=0; j<64; ++j) printf(" %.3f",fVZEROEqFactors[j]);
  printf("\n");

  return;
}

//__________________________________________________________________________
Int_t AliAODHeader::FindIRIntInteractionsBXMap(Int_t difference) const
{
  //
  // The mapping is of 181 bits, from -90 to +90
  //
  Int_t bin=-1;

  if(difference<-90 || difference>90) return bin;
  else { bin = 90 + difference; }
  
  return bin;
}

//__________________________________________________________________________
Int_t AliAODHeader::GetIRInt2ClosestInteractionMap() const
{
  //
  // Calculation of the closest interaction
  //
  Int_t firstNegative=100;
  for(Int_t item=-1; item>=-90; item--) {
    Int_t bin = FindIRIntInteractionsBXMap(item);
    Bool_t isFired = fIRInt2InteractionsMap.TestBitNumber(bin);
    if(isFired) {
      firstNegative = item;
      break;
    }
  }
  Int_t firstPositive=100;
  for(Int_t item=1; item<=90; item++) {
    Int_t bin = FindIRIntInteractionsBXMap(item);
    Bool_t isFired = fIRInt2InteractionsMap.TestBitNumber(bin);
    if(isFired) {
      firstPositive = item;
      break;
    }
  }

  Int_t closest = firstPositive < TMath::Abs(firstNegative) ? firstPositive : TMath::Abs(firstNegative);
  if(firstPositive==100 && firstNegative==100) closest=0;
  return closest;
}

//__________________________________________________________________________
Int_t AliAODHeader::GetIRInt1ClosestInteractionMap(Int_t gap) const
{
  //
  // Calculation of the closest interaction
  // In case of VZERO (Int1) one has to introduce a gap
  // in order to avoid false positivies from after-pulses

  Int_t firstNegative=100;
  for(Int_t item=-1; item>=-90; item--) {
    Int_t bin = FindIRIntInteractionsBXMap(item);
    Bool_t isFired = fIRInt1InteractionsMap.TestBitNumber(bin);
    if(isFired) {
      firstNegative = item;
      break;
    }
  }
  Int_t firstPositive=100;
  for(Int_t item=1+gap; item<=90; item++) {
    Int_t bin = FindIRIntInteractionsBXMap(item);
    Bool_t isFired = fIRInt1InteractionsMap.TestBitNumber(bin);
    if(isFired) {
      firstPositive = item;
      break;
    }
  }

  Int_t closest = firstPositive < TMath::Abs(firstNegative) ? firstPositive : TMath::Abs(firstNegative);
  if(firstPositive==100 && firstNegative==100) closest=0;
  return closest;
}

//__________________________________________________________________________
Int_t AliAODHeader::GetIRInt2LastInteractionMap() const
{
  //
  // Calculation of the last interaction
  //
  Int_t lastNegative=0;
  for(Int_t item=-90; item<=-1; item++) {
    Int_t bin = FindIRIntInteractionsBXMap(item);
    Bool_t isFired = fIRInt2InteractionsMap.TestBitNumber(bin);
    if(isFired) {
      lastNegative = item;
      break;
    }
  }
  Int_t lastPositive=0;
  for(Int_t item=90; item>=1; item--) {
    Int_t bin = FindIRIntInteractionsBXMap(item);
    Bool_t isFired = fIRInt2InteractionsMap.TestBitNumber(bin);
    if(isFired) {
      lastPositive = item;
      break;
    }
  }

  Int_t last = lastPositive > TMath::Abs(lastNegative) ? lastPositive : TMath::Abs(lastNegative);
  return last;
}

//__________________________________________________________________________
Bool_t AliAODHeader::InitMagneticField() const
{
  // Create mag field from stored information
  //
  const double def5kg = 5.00667905807495117e+00;
  const double def2kg = 2.04487347602844238e+00;
  //
  AliMagF* fld = (AliMagF*) TGeoGlobalMagField::Instance()->GetField();
  if (fld) {
    if (TGeoGlobalMagField::Instance()->IsLocked()) {
      if (fld->TestBit(AliMagF::kOverrideGRP)) {
	AliInfo("ExpertMode!!! Information on magnet currents will be ignored !");
	AliInfo("ExpertMode!!! Running with the externally locked B field !");
	return kTRUE;
      }
    }
    AliInfo("Destroying existing B field instance!");
    delete TGeoGlobalMagField::Instance();
  }
  //
  double fc5 = fMagneticField/def5kg;
  double fc2 = fMagneticField/def2kg;
  Bool_t use5 = TMath::Abs(TMath::Abs(fc5)-1.) < TMath::Abs(TMath::Abs(fc2)-1.);
  //
  fld = new AliMagF("mag","mag",use5 ? fc5 : fc2, fMuonMagFieldScale, use5 ? AliMagF::k5kG : AliMagF::k2kG);
  //
  if (fld) {
    TGeoGlobalMagField::Instance()->SetField( fld );
    TGeoGlobalMagField::Instance()->Lock();
    AliInfo("Running with the B field constructed out of the AOD Header !");
    return kTRUE;
  }
  else {
    AliError("Failed to create a B field map !");
    return kFALSE;
  }
  //
}
 AliAODHeader.cxx:1
 AliAODHeader.cxx:2
 AliAODHeader.cxx:3
 AliAODHeader.cxx:4
 AliAODHeader.cxx:5
 AliAODHeader.cxx:6
 AliAODHeader.cxx:7
 AliAODHeader.cxx:8
 AliAODHeader.cxx:9
 AliAODHeader.cxx:10
 AliAODHeader.cxx:11
 AliAODHeader.cxx:12
 AliAODHeader.cxx:13
 AliAODHeader.cxx:14
 AliAODHeader.cxx:15
 AliAODHeader.cxx:16
 AliAODHeader.cxx:17
 AliAODHeader.cxx:18
 AliAODHeader.cxx:19
 AliAODHeader.cxx:20
 AliAODHeader.cxx:21
 AliAODHeader.cxx:22
 AliAODHeader.cxx:23
 AliAODHeader.cxx:24
 AliAODHeader.cxx:25
 AliAODHeader.cxx:26
 AliAODHeader.cxx:27
 AliAODHeader.cxx:28
 AliAODHeader.cxx:29
 AliAODHeader.cxx:30
 AliAODHeader.cxx:31
 AliAODHeader.cxx:32
 AliAODHeader.cxx:33
 AliAODHeader.cxx:34
 AliAODHeader.cxx:35
 AliAODHeader.cxx:36
 AliAODHeader.cxx:37
 AliAODHeader.cxx:38
 AliAODHeader.cxx:39
 AliAODHeader.cxx:40
 AliAODHeader.cxx:41
 AliAODHeader.cxx:42
 AliAODHeader.cxx:43
 AliAODHeader.cxx:44
 AliAODHeader.cxx:45
 AliAODHeader.cxx:46
 AliAODHeader.cxx:47
 AliAODHeader.cxx:48
 AliAODHeader.cxx:49
 AliAODHeader.cxx:50
 AliAODHeader.cxx:51
 AliAODHeader.cxx:52
 AliAODHeader.cxx:53
 AliAODHeader.cxx:54
 AliAODHeader.cxx:55
 AliAODHeader.cxx:56
 AliAODHeader.cxx:57
 AliAODHeader.cxx:58
 AliAODHeader.cxx:59
 AliAODHeader.cxx:60
 AliAODHeader.cxx:61
 AliAODHeader.cxx:62
 AliAODHeader.cxx:63
 AliAODHeader.cxx:64
 AliAODHeader.cxx:65
 AliAODHeader.cxx:66
 AliAODHeader.cxx:67
 AliAODHeader.cxx:68
 AliAODHeader.cxx:69
 AliAODHeader.cxx:70
 AliAODHeader.cxx:71
 AliAODHeader.cxx:72
 AliAODHeader.cxx:73
 AliAODHeader.cxx:74
 AliAODHeader.cxx:75
 AliAODHeader.cxx:76
 AliAODHeader.cxx:77
 AliAODHeader.cxx:78
 AliAODHeader.cxx:79
 AliAODHeader.cxx:80
 AliAODHeader.cxx:81
 AliAODHeader.cxx:82
 AliAODHeader.cxx:83
 AliAODHeader.cxx:84
 AliAODHeader.cxx:85
 AliAODHeader.cxx:86
 AliAODHeader.cxx:87
 AliAODHeader.cxx:88
 AliAODHeader.cxx:89
 AliAODHeader.cxx:90
 AliAODHeader.cxx:91
 AliAODHeader.cxx:92
 AliAODHeader.cxx:93
 AliAODHeader.cxx:94
 AliAODHeader.cxx:95
 AliAODHeader.cxx:96
 AliAODHeader.cxx:97
 AliAODHeader.cxx:98
 AliAODHeader.cxx:99
 AliAODHeader.cxx:100
 AliAODHeader.cxx:101
 AliAODHeader.cxx:102
 AliAODHeader.cxx:103
 AliAODHeader.cxx:104
 AliAODHeader.cxx:105
 AliAODHeader.cxx:106
 AliAODHeader.cxx:107
 AliAODHeader.cxx:108
 AliAODHeader.cxx:109
 AliAODHeader.cxx:110
 AliAODHeader.cxx:111
 AliAODHeader.cxx:112
 AliAODHeader.cxx:113
 AliAODHeader.cxx:114
 AliAODHeader.cxx:115
 AliAODHeader.cxx:116
 AliAODHeader.cxx:117
 AliAODHeader.cxx:118
 AliAODHeader.cxx:119
 AliAODHeader.cxx:120
 AliAODHeader.cxx:121
 AliAODHeader.cxx:122
 AliAODHeader.cxx:123
 AliAODHeader.cxx:124
 AliAODHeader.cxx:125
 AliAODHeader.cxx:126
 AliAODHeader.cxx:127
 AliAODHeader.cxx:128
 AliAODHeader.cxx:129
 AliAODHeader.cxx:130
 AliAODHeader.cxx:131
 AliAODHeader.cxx:132
 AliAODHeader.cxx:133
 AliAODHeader.cxx:134
 AliAODHeader.cxx:135
 AliAODHeader.cxx:136
 AliAODHeader.cxx:137
 AliAODHeader.cxx:138
 AliAODHeader.cxx:139
 AliAODHeader.cxx:140
 AliAODHeader.cxx:141
 AliAODHeader.cxx:142
 AliAODHeader.cxx:143
 AliAODHeader.cxx:144
 AliAODHeader.cxx:145
 AliAODHeader.cxx:146
 AliAODHeader.cxx:147
 AliAODHeader.cxx:148
 AliAODHeader.cxx:149
 AliAODHeader.cxx:150
 AliAODHeader.cxx:151
 AliAODHeader.cxx:152
 AliAODHeader.cxx:153
 AliAODHeader.cxx:154
 AliAODHeader.cxx:155
 AliAODHeader.cxx:156
 AliAODHeader.cxx:157
 AliAODHeader.cxx:158
 AliAODHeader.cxx:159
 AliAODHeader.cxx:160
 AliAODHeader.cxx:161
 AliAODHeader.cxx:162
 AliAODHeader.cxx:163
 AliAODHeader.cxx:164
 AliAODHeader.cxx:165
 AliAODHeader.cxx:166
 AliAODHeader.cxx:167
 AliAODHeader.cxx:168
 AliAODHeader.cxx:169
 AliAODHeader.cxx:170
 AliAODHeader.cxx:171
 AliAODHeader.cxx:172
 AliAODHeader.cxx:173
 AliAODHeader.cxx:174
 AliAODHeader.cxx:175
 AliAODHeader.cxx:176
 AliAODHeader.cxx:177
 AliAODHeader.cxx:178
 AliAODHeader.cxx:179
 AliAODHeader.cxx:180
 AliAODHeader.cxx:181
 AliAODHeader.cxx:182
 AliAODHeader.cxx:183
 AliAODHeader.cxx:184
 AliAODHeader.cxx:185
 AliAODHeader.cxx:186
 AliAODHeader.cxx:187
 AliAODHeader.cxx:188
 AliAODHeader.cxx:189
 AliAODHeader.cxx:190
 AliAODHeader.cxx:191
 AliAODHeader.cxx:192
 AliAODHeader.cxx:193
 AliAODHeader.cxx:194
 AliAODHeader.cxx:195
 AliAODHeader.cxx:196
 AliAODHeader.cxx:197
 AliAODHeader.cxx:198
 AliAODHeader.cxx:199
 AliAODHeader.cxx:200
 AliAODHeader.cxx:201
 AliAODHeader.cxx:202
 AliAODHeader.cxx:203
 AliAODHeader.cxx:204
 AliAODHeader.cxx:205
 AliAODHeader.cxx:206
 AliAODHeader.cxx:207
 AliAODHeader.cxx:208
 AliAODHeader.cxx:209
 AliAODHeader.cxx:210
 AliAODHeader.cxx:211
 AliAODHeader.cxx:212
 AliAODHeader.cxx:213
 AliAODHeader.cxx:214
 AliAODHeader.cxx:215
 AliAODHeader.cxx:216
 AliAODHeader.cxx:217
 AliAODHeader.cxx:218
 AliAODHeader.cxx:219
 AliAODHeader.cxx:220
 AliAODHeader.cxx:221
 AliAODHeader.cxx:222
 AliAODHeader.cxx:223
 AliAODHeader.cxx:224
 AliAODHeader.cxx:225
 AliAODHeader.cxx:226
 AliAODHeader.cxx:227
 AliAODHeader.cxx:228
 AliAODHeader.cxx:229
 AliAODHeader.cxx:230
 AliAODHeader.cxx:231
 AliAODHeader.cxx:232
 AliAODHeader.cxx:233
 AliAODHeader.cxx:234
 AliAODHeader.cxx:235
 AliAODHeader.cxx:236
 AliAODHeader.cxx:237
 AliAODHeader.cxx:238
 AliAODHeader.cxx:239
 AliAODHeader.cxx:240
 AliAODHeader.cxx:241
 AliAODHeader.cxx:242
 AliAODHeader.cxx:243
 AliAODHeader.cxx:244
 AliAODHeader.cxx:245
 AliAODHeader.cxx:246
 AliAODHeader.cxx:247
 AliAODHeader.cxx:248
 AliAODHeader.cxx:249
 AliAODHeader.cxx:250
 AliAODHeader.cxx:251
 AliAODHeader.cxx:252
 AliAODHeader.cxx:253
 AliAODHeader.cxx:254
 AliAODHeader.cxx:255
 AliAODHeader.cxx:256
 AliAODHeader.cxx:257
 AliAODHeader.cxx:258
 AliAODHeader.cxx:259
 AliAODHeader.cxx:260
 AliAODHeader.cxx:261
 AliAODHeader.cxx:262
 AliAODHeader.cxx:263
 AliAODHeader.cxx:264
 AliAODHeader.cxx:265
 AliAODHeader.cxx:266
 AliAODHeader.cxx:267
 AliAODHeader.cxx:268
 AliAODHeader.cxx:269
 AliAODHeader.cxx:270
 AliAODHeader.cxx:271
 AliAODHeader.cxx:272
 AliAODHeader.cxx:273
 AliAODHeader.cxx:274
 AliAODHeader.cxx:275
 AliAODHeader.cxx:276
 AliAODHeader.cxx:277
 AliAODHeader.cxx:278
 AliAODHeader.cxx:279
 AliAODHeader.cxx:280
 AliAODHeader.cxx:281
 AliAODHeader.cxx:282
 AliAODHeader.cxx:283
 AliAODHeader.cxx:284
 AliAODHeader.cxx:285
 AliAODHeader.cxx:286
 AliAODHeader.cxx:287
 AliAODHeader.cxx:288
 AliAODHeader.cxx:289
 AliAODHeader.cxx:290
 AliAODHeader.cxx:291
 AliAODHeader.cxx:292
 AliAODHeader.cxx:293
 AliAODHeader.cxx:294
 AliAODHeader.cxx:295
 AliAODHeader.cxx:296
 AliAODHeader.cxx:297
 AliAODHeader.cxx:298
 AliAODHeader.cxx:299
 AliAODHeader.cxx:300
 AliAODHeader.cxx:301
 AliAODHeader.cxx:302
 AliAODHeader.cxx:303
 AliAODHeader.cxx:304
 AliAODHeader.cxx:305
 AliAODHeader.cxx:306
 AliAODHeader.cxx:307
 AliAODHeader.cxx:308
 AliAODHeader.cxx:309
 AliAODHeader.cxx:310
 AliAODHeader.cxx:311
 AliAODHeader.cxx:312
 AliAODHeader.cxx:313
 AliAODHeader.cxx:314
 AliAODHeader.cxx:315
 AliAODHeader.cxx:316
 AliAODHeader.cxx:317
 AliAODHeader.cxx:318
 AliAODHeader.cxx:319
 AliAODHeader.cxx:320
 AliAODHeader.cxx:321
 AliAODHeader.cxx:322
 AliAODHeader.cxx:323
 AliAODHeader.cxx:324
 AliAODHeader.cxx:325
 AliAODHeader.cxx:326
 AliAODHeader.cxx:327
 AliAODHeader.cxx:328
 AliAODHeader.cxx:329
 AliAODHeader.cxx:330
 AliAODHeader.cxx:331
 AliAODHeader.cxx:332
 AliAODHeader.cxx:333
 AliAODHeader.cxx:334
 AliAODHeader.cxx:335
 AliAODHeader.cxx:336
 AliAODHeader.cxx:337
 AliAODHeader.cxx:338
 AliAODHeader.cxx:339
 AliAODHeader.cxx:340
 AliAODHeader.cxx:341
 AliAODHeader.cxx:342
 AliAODHeader.cxx:343
 AliAODHeader.cxx:344
 AliAODHeader.cxx:345
 AliAODHeader.cxx:346
 AliAODHeader.cxx:347
 AliAODHeader.cxx:348
 AliAODHeader.cxx:349
 AliAODHeader.cxx:350
 AliAODHeader.cxx:351
 AliAODHeader.cxx:352
 AliAODHeader.cxx:353
 AliAODHeader.cxx:354
 AliAODHeader.cxx:355
 AliAODHeader.cxx:356
 AliAODHeader.cxx:357
 AliAODHeader.cxx:358
 AliAODHeader.cxx:359
 AliAODHeader.cxx:360
 AliAODHeader.cxx:361
 AliAODHeader.cxx:362
 AliAODHeader.cxx:363
 AliAODHeader.cxx:364
 AliAODHeader.cxx:365
 AliAODHeader.cxx:366
 AliAODHeader.cxx:367
 AliAODHeader.cxx:368
 AliAODHeader.cxx:369
 AliAODHeader.cxx:370
 AliAODHeader.cxx:371
 AliAODHeader.cxx:372
 AliAODHeader.cxx:373
 AliAODHeader.cxx:374
 AliAODHeader.cxx:375
 AliAODHeader.cxx:376
 AliAODHeader.cxx:377
 AliAODHeader.cxx:378
 AliAODHeader.cxx:379
 AliAODHeader.cxx:380
 AliAODHeader.cxx:381
 AliAODHeader.cxx:382
 AliAODHeader.cxx:383
 AliAODHeader.cxx:384
 AliAODHeader.cxx:385
 AliAODHeader.cxx:386
 AliAODHeader.cxx:387
 AliAODHeader.cxx:388
 AliAODHeader.cxx:389
 AliAODHeader.cxx:390
 AliAODHeader.cxx:391
 AliAODHeader.cxx:392
 AliAODHeader.cxx:393
 AliAODHeader.cxx:394
 AliAODHeader.cxx:395
 AliAODHeader.cxx:396
 AliAODHeader.cxx:397
 AliAODHeader.cxx:398
 AliAODHeader.cxx:399
 AliAODHeader.cxx:400
 AliAODHeader.cxx:401
 AliAODHeader.cxx:402
 AliAODHeader.cxx:403
 AliAODHeader.cxx:404
 AliAODHeader.cxx:405
 AliAODHeader.cxx:406
 AliAODHeader.cxx:407
 AliAODHeader.cxx:408
 AliAODHeader.cxx:409
 AliAODHeader.cxx:410
 AliAODHeader.cxx:411
 AliAODHeader.cxx:412
 AliAODHeader.cxx:413
 AliAODHeader.cxx:414
 AliAODHeader.cxx:415
 AliAODHeader.cxx:416
 AliAODHeader.cxx:417
 AliAODHeader.cxx:418
 AliAODHeader.cxx:419
 AliAODHeader.cxx:420
 AliAODHeader.cxx:421
 AliAODHeader.cxx:422
 AliAODHeader.cxx:423
 AliAODHeader.cxx:424
 AliAODHeader.cxx:425
 AliAODHeader.cxx:426
 AliAODHeader.cxx:427
 AliAODHeader.cxx:428
 AliAODHeader.cxx:429
 AliAODHeader.cxx:430
 AliAODHeader.cxx:431
 AliAODHeader.cxx:432
 AliAODHeader.cxx:433
 AliAODHeader.cxx:434
 AliAODHeader.cxx:435
 AliAODHeader.cxx:436
 AliAODHeader.cxx:437
 AliAODHeader.cxx:438
 AliAODHeader.cxx:439
 AliAODHeader.cxx:440
 AliAODHeader.cxx:441
 AliAODHeader.cxx:442
 AliAODHeader.cxx:443
 AliAODHeader.cxx:444
 AliAODHeader.cxx:445
 AliAODHeader.cxx:446
 AliAODHeader.cxx:447
 AliAODHeader.cxx:448
 AliAODHeader.cxx:449
 AliAODHeader.cxx:450
 AliAODHeader.cxx:451
 AliAODHeader.cxx:452
 AliAODHeader.cxx:453
 AliAODHeader.cxx:454
 AliAODHeader.cxx:455
 AliAODHeader.cxx:456
 AliAODHeader.cxx:457
 AliAODHeader.cxx:458
 AliAODHeader.cxx:459
 AliAODHeader.cxx:460
 AliAODHeader.cxx:461
 AliAODHeader.cxx:462
 AliAODHeader.cxx:463
 AliAODHeader.cxx:464
 AliAODHeader.cxx:465
 AliAODHeader.cxx:466
 AliAODHeader.cxx:467
 AliAODHeader.cxx:468
 AliAODHeader.cxx:469
 AliAODHeader.cxx:470
 AliAODHeader.cxx:471
 AliAODHeader.cxx:472
 AliAODHeader.cxx:473
 AliAODHeader.cxx:474
 AliAODHeader.cxx:475
 AliAODHeader.cxx:476
 AliAODHeader.cxx:477
 AliAODHeader.cxx:478
 AliAODHeader.cxx:479
 AliAODHeader.cxx:480
 AliAODHeader.cxx:481
 AliAODHeader.cxx:482
 AliAODHeader.cxx:483
 AliAODHeader.cxx:484
 AliAODHeader.cxx:485
 AliAODHeader.cxx:486
 AliAODHeader.cxx:487
 AliAODHeader.cxx:488
 AliAODHeader.cxx:489
 AliAODHeader.cxx:490
 AliAODHeader.cxx:491
 AliAODHeader.cxx:492
 AliAODHeader.cxx:493
 AliAODHeader.cxx:494
 AliAODHeader.cxx:495
 AliAODHeader.cxx:496
 AliAODHeader.cxx:497
 AliAODHeader.cxx:498
 AliAODHeader.cxx:499
 AliAODHeader.cxx:500
 AliAODHeader.cxx:501
 AliAODHeader.cxx:502
 AliAODHeader.cxx:503
 AliAODHeader.cxx:504
 AliAODHeader.cxx:505
 AliAODHeader.cxx:506
 AliAODHeader.cxx:507
 AliAODHeader.cxx:508
 AliAODHeader.cxx:509
 AliAODHeader.cxx:510
 AliAODHeader.cxx:511
 AliAODHeader.cxx:512
 AliAODHeader.cxx:513
 AliAODHeader.cxx:514
 AliAODHeader.cxx:515
 AliAODHeader.cxx:516
 AliAODHeader.cxx:517
 AliAODHeader.cxx:518
 AliAODHeader.cxx:519
 AliAODHeader.cxx:520
 AliAODHeader.cxx:521
 AliAODHeader.cxx:522
 AliAODHeader.cxx:523
 AliAODHeader.cxx:524
 AliAODHeader.cxx:525
 AliAODHeader.cxx:526
 AliAODHeader.cxx:527
 AliAODHeader.cxx:528
 AliAODHeader.cxx:529
 AliAODHeader.cxx:530
 AliAODHeader.cxx:531
 AliAODHeader.cxx:532
 AliAODHeader.cxx:533
 AliAODHeader.cxx:534
 AliAODHeader.cxx:535
 AliAODHeader.cxx:536
 AliAODHeader.cxx:537
 AliAODHeader.cxx:538
 AliAODHeader.cxx:539
 AliAODHeader.cxx:540
 AliAODHeader.cxx:541
 AliAODHeader.cxx:542
 AliAODHeader.cxx:543
 AliAODHeader.cxx:544
 AliAODHeader.cxx:545
 AliAODHeader.cxx:546
 AliAODHeader.cxx:547
 AliAODHeader.cxx:548
 AliAODHeader.cxx:549
 AliAODHeader.cxx:550
 AliAODHeader.cxx:551
 AliAODHeader.cxx:552
 AliAODHeader.cxx:553
 AliAODHeader.cxx:554
 AliAODHeader.cxx:555
 AliAODHeader.cxx:556
 AliAODHeader.cxx:557
 AliAODHeader.cxx:558
 AliAODHeader.cxx:559
 AliAODHeader.cxx:560
 AliAODHeader.cxx:561
 AliAODHeader.cxx:562
 AliAODHeader.cxx:563
 AliAODHeader.cxx:564
 AliAODHeader.cxx:565
 AliAODHeader.cxx:566
 AliAODHeader.cxx:567
 AliAODHeader.cxx:568
 AliAODHeader.cxx:569
 AliAODHeader.cxx:570
 AliAODHeader.cxx:571
 AliAODHeader.cxx:572
 AliAODHeader.cxx:573
 AliAODHeader.cxx:574
 AliAODHeader.cxx:575
 AliAODHeader.cxx:576
 AliAODHeader.cxx:577
 AliAODHeader.cxx:578
 AliAODHeader.cxx:579
 AliAODHeader.cxx:580
 AliAODHeader.cxx:581
 AliAODHeader.cxx:582
 AliAODHeader.cxx:583
 AliAODHeader.cxx:584
 AliAODHeader.cxx:585
 AliAODHeader.cxx:586
 AliAODHeader.cxx:587
 AliAODHeader.cxx:588
 AliAODHeader.cxx:589
 AliAODHeader.cxx:590
 AliAODHeader.cxx:591
 AliAODHeader.cxx:592
 AliAODHeader.cxx:593
 AliAODHeader.cxx:594
 AliAODHeader.cxx:595
 AliAODHeader.cxx:596
 AliAODHeader.cxx:597
 AliAODHeader.cxx:598
 AliAODHeader.cxx:599
 AliAODHeader.cxx:600
 AliAODHeader.cxx:601
 AliAODHeader.cxx:602
 AliAODHeader.cxx:603
 AliAODHeader.cxx:604
 AliAODHeader.cxx:605
 AliAODHeader.cxx:606
 AliAODHeader.cxx:607
 AliAODHeader.cxx:608
 AliAODHeader.cxx:609
 AliAODHeader.cxx:610
 AliAODHeader.cxx:611
 AliAODHeader.cxx:612
 AliAODHeader.cxx:613
 AliAODHeader.cxx:614
 AliAODHeader.cxx:615
 AliAODHeader.cxx:616
 AliAODHeader.cxx:617
 AliAODHeader.cxx:618
 AliAODHeader.cxx:619
 AliAODHeader.cxx:620
 AliAODHeader.cxx:621
 AliAODHeader.cxx:622
 AliAODHeader.cxx:623
 AliAODHeader.cxx:624
 AliAODHeader.cxx:625
 AliAODHeader.cxx:626
 AliAODHeader.cxx:627
 AliAODHeader.cxx:628
 AliAODHeader.cxx:629
 AliAODHeader.cxx:630
 AliAODHeader.cxx:631
 AliAODHeader.cxx:632
 AliAODHeader.cxx:633
 AliAODHeader.cxx:634
 AliAODHeader.cxx:635
 AliAODHeader.cxx:636
 AliAODHeader.cxx:637
 AliAODHeader.cxx:638
 AliAODHeader.cxx:639
 AliAODHeader.cxx:640
 AliAODHeader.cxx:641
 AliAODHeader.cxx:642
 AliAODHeader.cxx:643
 AliAODHeader.cxx:644
 AliAODHeader.cxx:645
 AliAODHeader.cxx:646
 AliAODHeader.cxx:647
 AliAODHeader.cxx:648
 AliAODHeader.cxx:649
 AliAODHeader.cxx:650
 AliAODHeader.cxx:651
 AliAODHeader.cxx:652
 AliAODHeader.cxx:653
 AliAODHeader.cxx:654
 AliAODHeader.cxx:655
 AliAODHeader.cxx:656
 AliAODHeader.cxx:657
 AliAODHeader.cxx:658
 AliAODHeader.cxx:659
 AliAODHeader.cxx:660
 AliAODHeader.cxx:661
 AliAODHeader.cxx:662
 AliAODHeader.cxx:663
 AliAODHeader.cxx:664
 AliAODHeader.cxx:665
 AliAODHeader.cxx:666
 AliAODHeader.cxx:667
 AliAODHeader.cxx:668
 AliAODHeader.cxx:669
 AliAODHeader.cxx:670
 AliAODHeader.cxx:671
 AliAODHeader.cxx:672
 AliAODHeader.cxx:673
 AliAODHeader.cxx:674
 AliAODHeader.cxx:675
 AliAODHeader.cxx:676
 AliAODHeader.cxx:677
 AliAODHeader.cxx:678
 AliAODHeader.cxx:679
 AliAODHeader.cxx:680
 AliAODHeader.cxx:681