ROOT logo




//
//

// This class estiamtes the material budget of the inner detectors in ALICE based
// on the "upper/lower track matching"-method of the ALICE TPC.

//
//  
//

//




// ROOT includes
#include <TChain.h>
#include <TMath.h>
#include <TVectorD.h>
#include <TSystem.h>
#include <TFile.h>
#include "TGeoGlobalMagField.h"

// ALIROOT includes
#include <TTreeStream.h>
#include <AliAnalysisManager.h>
#include <AliESDInputHandler.h>
#include "AliStack.h"
#include "AliMCEvent.h"
#include "AliMCEventHandler.h"

#include <AliESD.h>
#include "AliMaterialBudget.h"
#include "AliGenInfoMaker.h"
#include "AliHelix.h"

//
#include "AliMCInfo.h"
#include "AliESDRecInfo.h"
#include "AliTPCParamSR.h"
#include "AliTracker.h"
#include "AliTPCseed.h"

// STL includes
#include <iostream>

using namespace std;

ClassImp(AliMaterialBudget)

//________________________________________________________________________
AliMaterialBudget::AliMaterialBudget() : 
  AliAnalysisTask(), 
  fMCinfo(0),     //! MC event handler
  fESD(0),
  fDebugStreamer(0),
  fStreamLevel(0),
  fDebugLevel(0),
  fDebugOutputPath(),
  fListHist(0),
  fHistMult(0),
  fCutMaxD(5),        // maximal distance in rfi ditection
  fCutMaxDz(40),      // maximal distance in z ditection
  fCutTheta(0.03),    // maximal distan theta
  fCutMinDir(-0.99)   // direction vector products
{
  //
  // Default constructor (should not be used)
  //
}

AliMaterialBudget::AliMaterialBudget(const AliMaterialBudget& /*info*/) : 
  AliAnalysisTask(), 
  fMCinfo(0),     //! MC event handler
  fESD(0),
  //
  fDebugStreamer(0),
  fStreamLevel(0),
  fDebugLevel(),
  fDebugOutputPath(), 
  fListHist(0),
  fHistMult(0),
  fCutMaxD(5),        // maximal distance in rfi ditection
  fCutMaxDz(40),      // maximal distance in z ditection
  fCutTheta(0.03),    // maximal distan theta
  fCutMinDir(-0.99)   // direction vector products
{
  //
  // Default constructor 
  //
}



//________________________________________________________________________
AliMaterialBudget::AliMaterialBudget(const char *name) : 
  AliAnalysisTask(name, "AliMaterialBudget"), 
  fMCinfo(0),     //! MC event handler
  fESD(0),
  fDebugStreamer(0),
  fStreamLevel(0),
  fDebugLevel(0),
  fDebugOutputPath(),
  fListHist(0),
  fHistMult(0),
  fCutMaxD(5),        // maximal distance in rfi ditection
  fCutMaxDz(40),      // maximal distance in z ditection
  fCutTheta(0.03),    // maximal distan theta
  fCutMinDir(-0.99)   // direction vector products
{
  //
  // Normal constructor
  //
  // Input slot #0 works with a TChain
  DefineInput(0, TChain::Class());
  // Output slot #0 writes into a TList
  DefineOutput(0, TList::Class());
  //
  //
}

AliMaterialBudget::~AliMaterialBudget(){
  //
  //
  //
  if (fDebugLevel>0)  printf("AliMaterialBudget::~AliMaterialBudget\n");
  if (fDebugStreamer) delete fDebugStreamer;
  fDebugStreamer=0;
}


//________________________________________________________________________
void AliMaterialBudget::ConnectInputData(Option_t *) 
{
  //
  // Connect the input data
  //
  if(fDebugLevel>3)
    cout << "AnalysisTaskTPCCluster::ConnectInputData()" << endl;

  TTree* tree=dynamic_cast<TTree*>(GetInputData(0));
  if (!tree) {
    //Printf("ERROR: Could not read chain from input slot 0");
  }
  else {
    AliESDInputHandler *esdH = dynamic_cast<AliESDInputHandler*> (AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler());
    if (!esdH) {
      //Printf("ERROR: Could not get ESDInputHandler");
    }
    else {
      esdH->SetActiveBranches("ESDfriend");
      fESD = esdH->GetEvent();
      //Printf("*** CONNECTED NEW EVENT ****");
    }  
  }
  AliMCEventHandler* mcinfo = (AliMCEventHandler*) (AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler());  
  mcinfo->SetReadTR(kTRUE);
  
  fMCinfo = mcinfo->MCEvent();


}






//________________________________________________________________________
void AliMaterialBudget::CreateOutputObjects() 
{
  //
  // Connect the output objects
  //
  if(fDebugLevel>3)
    cout << "AnalysisTaskTPCCluster::CreateOutputObjects()" << endl;
  //
  fListHist = new TList();
  fListHist->SetOwner();
  //
  fHistMult = new TH1F("HistMult", "Number of Tracks per Event; number of tracks per event; number of tracks",501,-0.5,500.5);
  fListHist->Add(fHistMult);


}


//________________________________________________________________________
void AliMaterialBudget::Exec(Option_t *) {
  //
  // Execute analysis for current event 
  //

  if(fDebugLevel>3)
    cout << "AliMaterialBudget::Exec()" << endl;

  fHistMult->Fill(fESD->GetNumberOfTracks());
  //FindPairs(fESD); // nearly everything takes place in find pairs...

  // If MC has been connected   

  if (!fMCinfo){
    cout << "Not MC info\n" << endl;
  }else{
    ProcessMCInfo();
    //mcinfo->Print();
    //DumpInfo();
  }
  //
  PostData(0, fListHist);
}      




//________________________________________________________________________
void AliMaterialBudget::Terminate(Option_t *) {
    //
    // Terminate loop
    //
  if(fDebugLevel>3)
    printf("AliMaterialBudget: Terminate() \n");  
  //
  if (fDebugLevel>0) printf("AliMCtrackingTestTask::Terminate\n");
  if (fDebugStreamer) delete fDebugStreamer;
  fDebugStreamer = 0;
  return;
}



TTreeSRedirector *AliMaterialBudget::GetDebugStreamer(){
  //
  // Get Debug streamer
  // In case debug streamer not yet initialized and StreamLevel>0 create new one
  //
  if (fStreamLevel==0) return 0;
  if (fDebugStreamer) return fDebugStreamer;
  TString dsName;
  dsName=GetName();
  dsName+="Debug.root";
  dsName.ReplaceAll(" ","");
  fDebugStreamer = new TTreeSRedirector(dsName.Data());
  return fDebugStreamer;
}






AliExternalTrackParam * AliMaterialBudget::MakeTrack(const AliTrackReference* ref, TParticle*part)
{
  //
  // Make track out of the track ref
  // part - TParticle used to determine chargr
  // the covariance matrix - equal 0 - starting from ideal MC position
  if (!part->GetPDG()) return 0;
  Double_t xyz[3]={ref->X(),ref->Y(),ref->Z()};
  Double_t pxyz[3]={ref->Px(),ref->Py(),ref->Pz()};
  Int_t charge = TMath::Nint(part->GetPDG()->Charge()/3.);
  if (ref->X()*ref->Px()+ref->Y()*ref->Py() <0){
    pxyz[0]*=-1;
    pxyz[1]*=-1;
    pxyz[2]*=-1;
    charge*=-1;
  }
  Double_t cv[21];
  for (Int_t i=0; i<21;i++) cv[i]=0;
  AliExternalTrackParam * param = new AliExternalTrackParam(xyz,pxyz,cv,charge);
  return param;
}

Bool_t  AliMaterialBudget::PropagateToPoint(AliExternalTrackParam *param, Double_t *xyz, Double_t mass, Float_t step){
  // 
  // Propagate track to point xyz using 
  // AliTracker::PropagateTo functionality
  //
  //  param - track parameters
  //  xyz   - position to propagate
  //  mass  - particle mass
  //  step  - step to be used
  Double_t radius=TMath::Sqrt(xyz[0]*xyz[0]+xyz[1]*xyz[1]);
  AliTracker::PropagateTrackToBxByBz(param, radius+step, mass, step, kTRUE,0.99);
  AliTracker::PropagateTrackToBxByBz(param, radius+0.5, mass, step*0.1, kTRUE,0.99);
  Double_t sxyz[3]={0,0,0};
  AliESDVertex vertex(xyz,sxyz);
  Bool_t isOK = param->PropagateToDCA(&vertex,AliTracker::GetBz(),10);
  return isOK;
}


void  AliMaterialBudget::ProcessMCInfo(){
  //
  //
  //
  //

  const Double_t kPcut=0.05;
  const Double_t kMinDrITS = 2.;   // minimal distance between references
  const Double_t kMinDrTRD = 8.;   // minimal distance between references
  const Double_t kMinDrTOF = 10.;   // minimal distance between references
  //
  //
  // Process tracks
  //
  Int_t npart = fMCinfo->GetNumberOfTracks();
  if (npart==0) return;
  Double_t vertex[4]={0,0,0,0};

  TClonesArray * trefs = new TClonesArray("AliTrackReference");
  TParticle * particle= new TParticle;

  if(particle && trefs) {
    fMCinfo->GetParticleAndTR(0, particle, trefs);
  }


  if (particle){
    vertex[0]=particle->Vx();
    vertex[1]=particle->Vy();
    vertex[2]=particle->Vz();
    vertex[3]=particle->R();
  }
  //
  //
  AliTrackReference dummy,*pdummy= &dummy;
  AliExternalTrackParam epdummy,*pepdummy= &epdummy;
  Int_t nRefITS =0;
  Int_t nRefTPC =0;
  Int_t nRefTRD =0;
  Int_t nRefTOF =0;
  AliTrackReference * refITS0, *refITS1;
  AliTrackReference * refTPC0, *refTPC1;
  AliTrackReference * refTPCIn0, *refTPCIn1;
  AliTrackReference * refTRD0, *refTRD1;
  AliTrackReference * refTOF0, *refTOF1;
  AliTrackReference *refMinR;
  //
  if(!particle) return;
  for (Int_t ipart=0;ipart<npart;ipart++){
    //Int_t status = fMCinfo->GetParticleAndTR(ipart, particle, trefs);
    AliMCParticle * pp = (AliMCParticle*) fMCinfo->GetTrack(ipart);
    if (!pp) continue;
    if (particle->P()<kPcut) continue;
    Double_t mass = particle->GetMass();

    // RESET
    nRefITS =0;
    nRefTPC =0;
    nRefTRD =0;
    nRefTOF =0;
    refITS0=pdummy;    refITS1=pdummy;
    refTPC0=pdummy;    refTPC1=pdummy;
    refTPCIn0=pdummy;    refTPCIn1=pdummy;
    refTRD0=pdummy;    refTRD1=pdummy;
    refTOF0=pdummy;    refTOF1=pdummy;
    refMinR = pdummy;
    //
    Int_t nref = pp->GetNumberOfTrackReferences();
    if (nref==0) continue;
    for (Int_t iref = 0; iref < nref; iref++) { 
      AliTrackReference *ref = pp->GetTrackReference(iref);
      if (ref->DetectorId()==AliTrackReference::kDisappeared) continue;      
      //      if (ref.Px()*particle.Px()+ref.Py()*particle.Py()<0) break; // returning track
      //
      if (ref->DetectorId()==AliTrackReference::kITS){
	if (TMath::Abs(ref->R()-refITS1->R())>kMinDrITS) {
	  refITS1 = ref;
	  nRefITS++;
	}
	if (refITS0==pdummy) refITS0=ref;
      }
      if (ref->DetectorId()==AliTrackReference::kTPC){	
	nRefTPC++;
	refTPC1 = ref;
	if (refTPC0==pdummy) refTPC0=ref;
      }
      if (ref->DetectorId()==AliTrackReference::kTRD){
	if (TMath::Abs(ref->R()-refTRD1->R())>kMinDrTRD) {
	  refTRD1 = ref;
	  nRefTRD++;
	}
	if (refTRD0==pdummy) refTRD0=ref;
      }
      if (ref->DetectorId()==AliTrackReference::kTOF){
	if (TMath::Abs(ref->X()-refTOF1->X()) + TMath::Abs(ref->Y()-refTOF1->Y()) + TMath::Abs(ref->Z()-refTOF1->Z())>kMinDrTOF) {
	  refTOF1 = ref;
	  nRefTOF++;
	}
	if (refTOF0==pdummy) refTOF0=ref;
      }
      //
      // "find inner track ref"
      if (ref->DetectorId()==AliTrackReference::kTPC){	
	if (ref->Px()*ref->X()+ref->Py()*ref->Y()<0){
	  //  track in
	  if (refTPCIn0 == pdummy) refTPCIn0=ref;
	  if (refTPCIn0 != pdummy &&  refTPCIn0->R()>ref->R())
	    refTPCIn0=ref; 
	}
	if (ref->Px()*ref->X()+ref->Py()*ref->Y()>0){
	  //  track in
	  if (refTPCIn1 == pdummy) refTPCIn1=ref;
	  if (refTPCIn1 != pdummy &&  refTPCIn1->R()>ref->R())
	    refTPCIn1=ref; 
	}
      }


      if (refMinR==pdummy && ref->P()>0  ){
	refMinR=ref;
      }
      if (refMinR->R()>ref->R() && ref->P()>0 ) refMinR=ref;
      
    }
    //
    AliExternalTrackParam * trackMC = pepdummy;
    //track0->GetDZ(0,0,0,bz,dvertex0)
    Float_t dist[2]={0,0};
    AliMagF* field = (AliMagF*) TGeoGlobalMagField::Instance()->GetField();
    Double_t esdfield= fESD->GetMagneticField();
    Double_t xyz[3]={0,0,0};
    Double_t bxyz[3]={0,0,0};
    field->Field(xyz,bxyz);
    if (refMinR->P()>0) {
      trackMC = MakeTrack(refMinR,particle); 
      trackMC->GetDZ(0,0,0,bxyz[2],dist);
    }
    Double_t alphaTOF0 = TMath::ATan2(refTOF0->Y(),refTOF0->X());
    Double_t alphaTOF1 = TMath::ATan2(refTOF1->Y(),refTOF1->X());
    Int_t dsecTOF   = TMath::Nint(180*(alphaTOF0-alphaTOF1)/(TMath::Pi()*20.)-0.5);
    //
    // make the two different TPC tracks and propagate them to their DCA
    //
    Double_t dP = 0;
    Bool_t statusProp = kFALSE;
    Double_t dY = 0;
    Double_t dZ = 0;
    AliExternalTrackParam * track0  = pepdummy;
    AliExternalTrackParam * track1  = pepdummy;
    AliExternalTrackParam * otrack0 = pepdummy;
    AliExternalTrackParam * otrack1 = pepdummy;
    if (refTPCIn0!=pdummy && refTPCIn1!=pdummy) {
      track0 = MakeTrack(refTPCIn0,particle); 
      track1 = MakeTrack(refTPCIn1,particle);
      otrack0 = MakeTrack(refTPCIn0,particle); 
      otrack1 = MakeTrack(refTPCIn1,particle);
      dP = track0->P() - track1->P(); // momentum loss
      statusProp = AliMaterialBudget::PropagateCosmicToDCA(track0,track1,mass);
      if (statusProp) {
	dY = track0->GetY() - track1->GetY();
	dZ = track0->GetZ() - track1->GetZ();
      }
    }
    //
    TTreeSRedirector *pcstream = GetDebugStreamer();
    if (pcstream){      
      char name[100];
      for (Int_t id=0; id<3;id++){
	
	//	if (id==0) sprintf(name,"mcAll"); // all tracks: inconvenient to cut if on is only interest in tracks which reach the TPC
	if (id==0) continue; // require TPC
	if (id==1) snprintf(name,100,"mcITS");
	if (id==2) snprintf(name,100,"mcTPC");
	if (id==1&& nRefITS==0) continue;
	if (id==2&& nRefTPC==0) continue;

	(*pcstream)<<name<<
	  "ipart="<<ipart<<
	  "p.="<<particle<<
	  "mass="<<mass<<
	  "tbfield="<<bxyz[2]<<
	  "esdbfield="<<esdfield<<
	  // counter
	  "nref="<<nref<<
	  "nRefITS="<<nRefITS<<     
	  "nRefTPC="<<nRefTPC<<
	  "nRefTRD="<<nRefTRD<<
	  "nRefTOF="<<nRefTOF<<
	  //references
	  "refMinR.="<<refMinR<<
	  "refITS0.="<<refITS0<<
	  "refITS1.="<<refITS1<<
	  "refTPC0.="<<refTPC0<<
	  "refTPC1.="<<refTPC1<<
	  "refTPCIn0.="<<refTPCIn0<<
	  "refTPCIn1.="<<refTPCIn1<<
	  "refTRD0.="<<refTRD0<<
	  "refTRD1.="<<refTRD1<<
	  "refTOF0.="<<refTOF0<<
	  "refTOF1.="<<refTOF1<<
	  //trigger variables
	  "dsecTOF="<<dsecTOF<<    // delta TOF sectors
	  "aTOF0="<<alphaTOF0<<
	  "aTOF1="<<alphaTOF1<<
	  //
	  // track
	  "dr="<<dist[0]<<
	  "dz="<<dist[1]<<
	  //
	  // "two" TPC tracks 
	  "status="<<statusProp<<
	  "dP="<<dP<<
	  "otrack0.="<<otrack0<<
	  "otrack1.="<<otrack1<<
	  "track0.="<<track0<<
	  "track1.="<<track1<<
	  "dY="<<dY<<
	  "dZ="<<dZ<<
	  "\n";
      }
    }    
  }
}



void AliMaterialBudget::ProcessRefTracker(AliTrackReference* refIn,  AliTrackReference* refOut, TParticle*part,Int_t type){
  //
  // Test propagation from In to out
  //
  AliExternalTrackParam *param = 0;
  AliExternalTrackParam *paramMC = 0;
  Double_t xyzIn[3]={refIn->X(),refIn->Y(), refIn->Z()};
  Double_t mass = part->GetMass();
  Double_t step=1;
  //
  param=MakeTrack(refOut,part);
  paramMC=MakeTrack(refOut,part);
  if (!param) return;
  if (type<3) PropagateToPoint(param,xyzIn, mass, step);
  if (type==3) {
    AliTPCseed seed;
    seed.Set(param->GetX(),param->GetAlpha(),param->GetParameter(),param->GetCovariance());
    Float_t alpha= TMath::ATan2(refIn->Y(),refIn->X());
    if(seed.Rotate(alpha-seed.GetAlpha()) == kFALSE) return;
    seed.SetMass(mass);
    for (Float_t xlayer= seed.GetX(); xlayer>refIn->R(); xlayer-=step){
      seed.PropagateTo(xlayer);
    }
    seed.PropagateTo(refIn->R());
    param->Set(seed.GetX(),seed.GetAlpha(),seed.GetParameter(),seed.GetCovariance());
  }
  TTreeSRedirector *pcstream = GetDebugStreamer();
  TVectorD gpos(3);
  TVectorD gmom(3);
  param->GetXYZ(gpos.GetMatrixArray());
  param->GetPxPyPz(gmom.GetMatrixArray());
  if (pcstream){
    (*pcstream)<<"MC"<<
      "type="<<type<<
      "step="<<step<<
      "refIn.="<<refIn<<
      "refOut.="<<refOut<<
      "p.="<<part<<
      "par.="<<param<<   
      "parMC.="<<paramMC<<   
      "gpos.="<<&gpos<<
      "gmom.="<<&gmom<<
      "\n";
  }
}


void  AliMaterialBudget::FitTrackRefs(TParticle * part, TClonesArray * trefs){
  //
  //
  //
  //
  const Int_t kMinRefs=6;
  Int_t nrefs = trefs->GetEntries();
  if (nrefs<kMinRefs) return; // we should have enough references
  Int_t iref0 =-1;
  Int_t iref1 =-1;
  
  for (Int_t iref=0; iref<nrefs; iref++){
    AliTrackReference * ref = (AliTrackReference*)trefs->At(iref);
    if (!ref) continue;    
    Float_t dir = ref->X()*ref->Px()+ref->Y()*ref->Py();
    if (dir<0) break;
    if (ref->DetectorId()!=AliTrackReference::kTPC) continue;
    if (iref0<0) iref0 = iref;
    iref1 = iref;    
  }
  if (iref1-iref0<kMinRefs) return;
  Double_t covar[15];
  for (Int_t icov=0; icov<15; icov++) covar[icov]=0;
  covar[0]=1; 
  covar[2]=1; 
  covar[5]=1;
  covar[9]=1;
  covar[14]=1;

  AliTrackReference * refIn = (AliTrackReference*)trefs->At(iref0);
  AliTrackReference * refOut = (AliTrackReference*)trefs->At(iref1);
  AliExternalTrackParam *paramPropagate= MakeTrack(refIn,part);
  AliExternalTrackParam *paramUpdate   = MakeTrack(refIn,part);
  paramUpdate->AddCovariance(covar);
  Double_t mass = part->GetMass();
  Double_t charge = part->GetPDG()->Charge()/3.;
/*
  Float_t alphaIn= TMath::ATan2(refIn->Y(),refIn->X());
  Float_t radiusIn= refIn->R();
  Float_t alphaOut= TMath::ATan2(refOut->Y(),refOut->X());
  Float_t radiusOut= refOut->R();
*/
  Bool_t isOKP=kTRUE;
  Bool_t isOKU=kTRUE;
  AliMagF * field = (AliMagF*) TGeoGlobalMagField::Instance()->GetField();
  for (Int_t iref = iref0; iref<=iref1; iref++){
    AliTrackReference * ref = (AliTrackReference*)trefs->At(iref);
    Float_t alphaC= TMath::ATan2(ref->Y(),ref->X());
    Double_t pos[3] = {ref->X(), ref->Y(), ref->Z()};
    Double_t mag[3];
    field->Field(pos,mag);
    isOKP&=paramPropagate->Rotate(alphaC);
    isOKU&=paramUpdate->Rotate(alphaC);
    for (Float_t xref= paramPropagate->GetX(); xref<ref->R(); xref++){
      isOKP&=paramPropagate->PropagateTo(xref, mag[2]);
      isOKU&=paramUpdate->PropagateTo(xref, mag[2]);
    }
    isOKP&=paramPropagate->PropagateTo(ref->R(), mag[2]);
    isOKU&=paramUpdate->PropagateTo(ref->R(), mag[2]);
    Double_t clpos[2] = {0, ref->Z()};
    Double_t clcov[3] = { 0.005,0,0.005};
    isOKU&= paramUpdate->Update(clpos, clcov);  
  }
  TTreeSRedirector *pcstream = GetDebugStreamer();
  if (pcstream){
    TVectorD gposU(3);
    TVectorD gmomU(3);
    TVectorD gposP(3);
    TVectorD gmomP(3);
    paramUpdate->GetXYZ(gposU.GetMatrixArray());
    paramUpdate->GetPxPyPz(gmomU.GetMatrixArray());
    paramPropagate->GetXYZ(gposP.GetMatrixArray());
    paramPropagate->GetPxPyPz(gmomP.GetMatrixArray());

     (*pcstream)<<"MCupdate"<<
       "isOKU="<<isOKU<<
       "isOKP="<<isOKP<<
       "m="<<mass<<
       "q="<<charge<<
       "part.="<<part<<
       "refIn.="<<refIn<<
       "refOut.="<<refOut<<
       "pP.="<<paramPropagate<<
       "pU.="<<paramUpdate<<
       "gposU.="<<&gposU<<
       "gmomU.="<<&gmomU<<
       "gposP.="<<&gposP<<
       "gmomP.="<<&gmomP<<
       "\n";
   }
}



void AliMaterialBudget::FindPairs(AliESDEvent * event) {
  //
  // This function matches the cosmic tracks and calculates the energy loss in the material.
  // If accessible the "true" energy loss is determined with the MC track references.
  //
  //
  // Find cosmic pairs
  // 
  // Track0 is choosen in upper TPC part
  // Track1 is choosen in lower TPC part
  //
  if(fDebugLevel>3)
    cout << "AliMaterialBudget::FindPairs()" << endl;


  AliESDfriend *ESDfriend=static_cast<AliESDfriend*>(event->FindListObject("AliESDfriend"));
  Int_t ntracks=event->GetNumberOfTracks(); 
  TObjArray  tpcSeeds(ntracks);
  if (ntracks==0) return;
  Double_t vtxx[3]={0,0,0};
  Double_t svtxx[3]={0.000001,0.000001,100.};
  AliESDVertex vtx(vtxx,svtxx);
  //
  //track loop
  //
  for (Int_t i=0;i<ntracks;++i) {
   AliESDtrack *track = event->GetTrack(i);
     const AliExternalTrackParam * trackIn = track->GetInnerParam();
   const AliExternalTrackParam * trackOut = track->GetOuterParam();
   if (!trackIn) continue;
   if (!trackOut) continue;
   AliESDfriendTrack *friendTrack = ESDfriend->GetTrack(i);
   if (!friendTrack) continue;
   TObject *calibObject;
   AliTPCseed *seed = 0;
   for (Int_t l=0;(calibObject=friendTrack->GetCalibObject(l));++l) {
     if ((seed=dynamic_cast<AliTPCseed*>(calibObject))) break;
   }
   if (seed) tpcSeeds.AddAt(seed,i);
  }

  if (ntracks<2) return;
  //
  // Find pairs
  //
  for (Int_t i=0;i<ntracks;++i) {
    AliESDtrack *track0 = event->GetTrack(i);     
    // track0 - choosen upper part
    if (!track0) continue;
    if (!track0->GetOuterParam()) continue;
    if (track0->GetOuterParam()->GetAlpha()<0) continue;
    Double_t dir0[3];
    track0->GetDirection(dir0);    
    for (Int_t j=0;j<ntracks;++j) {
      if (i==j) continue;
      AliESDtrack *track1 = event->GetTrack(j);   
      //track 1 lower part
      if (!track1) continue;
      if (!track1->GetOuterParam()) continue;
      if (track1->GetOuterParam()->GetAlpha()>0) continue;
      //
      Double_t dir1[3];
      track1->GetDirection(dir1);
      
      AliTPCseed * seed0 = (AliTPCseed*) tpcSeeds.At(i);
      AliTPCseed * seed1 = (AliTPCseed*) tpcSeeds.At(j);
      if (! seed0) continue;
      if (! seed1) continue;
      //
      Float_t dir = (dir0[0]*dir1[0] + dir0[1]*dir1[1] + dir0[2]*dir1[2]);
      Float_t d0  = track0->GetLinearD(0,0);
      Float_t d1  = track1->GetLinearD(0,0);
      //
      // conservative cuts - convergence to be guarantied
      // applying before track propagation
      if (TMath::Abs(d0+d1)>fCutMaxD) continue;   // distance to the 0,0
      if (dir>fCutMinDir) continue;               // direction vector product
      Float_t bz = AliTracker::GetBz();
      Float_t dvertex0[2];   //distance to 0,0
      Float_t dvertex1[2];   //distance to 0,0 
      track0->GetDZ(0,0,0,bz,dvertex0);
      track1->GetDZ(0,0,0,bz,dvertex1);
      if (TMath::Abs(dvertex0[1])>250) continue;
      if (TMath::Abs(dvertex1[1])>250) continue;
      //
      //
      //
      Float_t dmax = TMath::Max(TMath::Abs(d0),TMath::Abs(d1));
      AliExternalTrackParam param0(*track0);
      AliExternalTrackParam param1(*track1);
      //
      // Propagate using Magnetic field and correct fo material budget
      //
      AliTracker::PropagateTrackToBxByBz(&param0,dmax+1,0.0005,3,kTRUE);
      AliTracker::PropagateTrackToBxByBz(&param1,dmax+1,0.0005,3,kTRUE);
      //
      // Propagate rest to the 0,0 DCA - z should be ignored
      //
      Bool_t b0 = param0.PropagateToDCA(&vtx,bz,1000);
      Bool_t b1 = param1.PropagateToDCA(&vtx,bz,1000);
      //      
      param0.GetDZ(0,0,0,bz,dvertex0);
      param1.GetDZ(0,0,0,bz,dvertex1);
      if (TMath::Abs(param0.GetZ()-param1.GetZ())>fCutMaxDz) continue;
      //
      Double_t xyz0[3];//,pxyz0[3];
      Double_t xyz1[3];//,pxyz1[3];
      param0.GetXYZ(xyz0);
      param1.GetXYZ(xyz1);
      Bool_t isPair = IsPair(&param0,&param1);
      //
      // HERE WE WILL PUT THE ACCESS TO THE MC TRACKS AND MATCH THESE !!!!
      //
      Int_t label0 = TMath::Abs(track0->GetLabel());
      AliMCParticle *mcParticle0 = (AliMCParticle*) fMCinfo->GetTrack(label0);
      TParticle *particle0 = mcParticle0->Particle();
      AliTrackReference *ref0 = GetFirstTPCTrackRef(mcParticle0); // get the first TPC track reference
      if (!ref0) continue;
      AliExternalTrackParam *paramMC0 = 0;
      paramMC0 = MakeTrack(ref0, particle0);
      //
      Int_t label1 = TMath::Abs(track1->GetLabel());
      AliMCParticle *mcParticle1 = (AliMCParticle*) fMCinfo->GetTrack(label1);
      TParticle *particle1 = mcParticle1->Particle();
      AliTrackReference *ref1 = GetFirstTPCTrackRef(mcParticle1); // get the first TPC track reference
      if (!ref1) continue;
      AliExternalTrackParam *paramMC1 = 0;
      paramMC1 = MakeTrack(ref1, particle1);
      //
      // ACCESS TOF INFORMATION
      Int_t nTrackRefTOF0 = 0;
      Int_t nTrackRefITS0 = 0;
      AliTrackReference * refLastTOF0 = 0;
      AliTrackReference * refFirstTOF0 = GetAllTOFinfo(mcParticle0, nTrackRefTOF0, nTrackRefITS0);
      Float_t alphaTOF0 = 0;
      if (refFirstTOF0) alphaTOF0 = refFirstTOF0->Alpha();
      //
      Int_t nTrackRefTOF1 = 0;
      Int_t nTrackRefITS1 = 0;
      AliTrackReference  * refLastTOF1 = 0;
      AliTrackReference  * refFirstTOF1 =GetAllTOFinfo(mcParticle1, nTrackRefTOF1, nTrackRefITS1);
      Float_t alphaTOF1 = 0;
      if (refFirstTOF1) alphaTOF1 = refFirstTOF1->Alpha();
      //cout << " STATUS "<<nTrackRefTOF0<<" "<<refFirstTOF0<<" "<<refLastTOF0<<" " <<refFirstTOF1<<" "<<refLastTOF1<<endl;
      //
      //
      //
      if (fStreamLevel>0){
	TTreeSRedirector * cstream =  GetDebugStreamer();
	AliExternalTrackParam *ip0 = (AliExternalTrackParam *)track0->GetInnerParam();
	AliExternalTrackParam *ip1 = (AliExternalTrackParam *)track1->GetInnerParam();
	AliExternalTrackParam *op0 = (AliExternalTrackParam *)track0->GetOuterParam();
	AliExternalTrackParam *op1 = (AliExternalTrackParam *)track1->GetOuterParam();
	//
	//
	//
	if (cstream) {
	  (*cstream) << "Track0" <<
	    "dir="<<dir<<               //  direction
	    "OK="<<isPair<<             //  will be accepted
	    "b0="<<b0<<                 //  propagate status
	    "b1="<<b1<<                 //  propagate status
	    //
	    "Particle.="<<particle0<<             // TParticle with generated momentum
	    "NTrackRefTOF0="<<nTrackRefTOF0<<     // Number of TOF track references upper
	    "NTrackRefTOF1="<<nTrackRefTOF1<<     // Number of TOF track references lower
	    "NTrackRefITS0="<<nTrackRefITS0<<     // Number of ITS track references upper
	    "NTrackRefITS1="<<nTrackRefITS1<<     // Number of ITS track references lower
      	    "Alpha0="<<alphaTOF0<<                   // alpha upper
	    "Alpha1="<<alphaTOF1<<                   // alpha lower
	    "RefFirstTOF0.="<<refFirstTOF0<<        // first tof reference upper
	    "RefLastTOF0.="<<refLastTOF0<<          // last tof reference upper
	    "RefFirstTOF1.="<<refFirstTOF1<<        // first tof reference lower
	    "RefLastTOF1.="<<refLastTOF1<<          // last tof reference lower
	    //
	    "Orig0.=" << track0 <<      //  original track  0
	    "Orig1.=" << track1 <<      //  original track  1
	    "Tr0.="<<&param0<<          //  track propagated to the DCA 0,0
	    "Tr1.="<<&param1<<          //  track propagated to the DCA 0,0	   
	    "Ip0.="<<ip0<<              //  inner param - upper
	    "Ip1.="<<ip1<<              //  inner param - lower
	    "Op0.="<<op0<<              //  outer param - upper
	    "Op1.="<<op1<<              //  outer param - lower
	    //
	    "paramTrackRef0.="<<paramMC0<< //  "ideal" MC true track parameters from track references - upper
	    "paramTrackRef1.="<<paramMC1<< //  "ideal" MC true track parameters from track references - lower
	    //
	    "v00="<<dvertex0[0]<<       //  distance using kalman
	    "v01="<<dvertex0[1]<<       // 
	    "v10="<<dvertex1[0]<<       //
	    "v11="<<dvertex1[1]<<       // 
	    "d0="<<d0<<                 //  linear distance to 0,0
	    "d1="<<d1<<                 //  linear distance to 0,0
	    //
	    //
	    //
	    "x00="<<xyz0[0]<<           // global position close to vertex
	    "x01="<<xyz0[1]<<
	    "x02="<<xyz0[2]<<
	    //
	    "x10="<<xyz1[0]<<           // global position close to vertex
	    "x11="<<xyz1[1]<<
	    "x12="<<xyz1[2]<<
	    //
	    "dir00="<<dir0[0]<<           // direction upper
	    "dir01="<<dir0[1]<<
	    "dir02="<<dir0[2]<<
	    //
	    "dir10="<<dir1[0]<<           // direction lower
	    "dir11="<<dir1[1]<<
	    "dir12="<<dir1[2]<<
	    //
	    //
	    "Seed0.=" << seed0 <<       //  original seed 0
	    "Seed1.=" << seed1 <<       //  original seed 1
	    //
	    "\n";
	}
      }
      delete paramMC0;
      delete paramMC1;
    }
  } 

  return;


}

Bool_t  AliMaterialBudget::IsPair(AliExternalTrackParam *tr0, AliExternalTrackParam *tr1){
  //
  //
  /*
  // 0. Same direction - OPOSITE  - cutDir +cutT    
  TCut cutDir("cutDir","dir<-0.99")
  // 1. 
  TCut cutT("cutT","abs(Tr1.fP[3]+Tr0.fP[3])<0.03")
  //
  // 2. The same rphi 
  TCut cutD("cutD","abs(Tr0.fP[0]+Tr1.fP[0])<5")
  //
  //
  //
  TCut cutPt("cutPt","abs(Tr1.fP[4]+Tr0.fP[4])<1&&abs(Tr0.fP[4])+abs(Tr1.fP[4])<10");  
  // 1/Pt diff cut
  */
  const Double_t *p0 = tr0->GetParameter();
  const Double_t *p1 = tr1->GetParameter();
  if (TMath::Abs(p0[3]+p1[3])>fCutTheta) return kFALSE;
  if (TMath::Abs(p0[1]-p1[1])>fCutMaxDz) return kFALSE;
  if (TMath::Abs(p0[0]+p1[0])>fCutMaxD)  return kFALSE;
  
  Double_t d0[3], d1[3];
  tr0->GetDirection(d0);    
  tr1->GetDirection(d1);       
  if (d0[0]*d1[0] + d0[1]*d1[1] + d0[2]*d1[2] >fCutMinDir) return kFALSE;
  //
  return kTRUE;  
}
 

AliTrackReference * AliMaterialBudget::GetFirstTPCTrackRef(AliMCParticle *mcParticle) 
{
  // return first TPC track reference 
  if(!mcParticle) return 0;

  // find first track reference 
  // check direction to select proper reference point for looping tracks
  Int_t nTrackRef = mcParticle->GetNumberOfTrackReferences();
  AliTrackReference *ref = 0;
  AliTrackReference *refIn = 0;
  for (Int_t iref = 0; iref < nTrackRef; iref++) { 
    ref = mcParticle->GetTrackReference(iref);
    if(ref && (ref->DetectorId()==AliTrackReference::kTPC))
    {
      //Float_t dir = ref->X()*ref->Px()+ref->Y()*ref->Py();
      //if(dir < 0.) break;

      refIn = ref;
      break;
    }
  }
  
  return refIn;
}


AliTrackReference *  AliMaterialBudget::GetAllTOFinfo(AliMCParticle *mcParticle, Int_t &nTrackRef, Int_t &nTrackRefITS, Int_t retValue) {
  //
  //
  //

  if(!mcParticle) return 0;
  Int_t counter = 0;
  nTrackRef = 0;
  nTrackRefITS = 0;
  AliTrackReference *ref = 0;
  for (Int_t iref = 0; iref < mcParticle->GetNumberOfTrackReferences(); iref++) { 
    ref = mcParticle->GetTrackReference(iref);
    if(ref && (ref->DetectorId()==AliTrackReference::kTOF)) {
      counter = iref;
      nTrackRef++;
    }
    if(ref && (ref->DetectorId()==AliTrackReference::kITS)) nTrackRefITS++;    
  }
  if (nTrackRef ==0) return 0;
  if (retValue == 0) return mcParticle->GetTrackReference(counter - nTrackRef +1);
  return mcParticle->GetTrackReference(counter);
 
}


void AliMaterialBudget::FinishTaskOutput()
{
  //
  // According description in AliAnalisysTask this method is call
  // on the slaves before sending data
  //
  Terminate("slave");
  gSystem->Exec("pwd");
  RegisterDebugOutput();

}


void AliMaterialBudget::RegisterDebugOutput(){
  //
  //
  //
  //
  // store  - copy debug output to the destination position
  // currently ONLY for local copy
  TString dsName;
  dsName=GetName();
  dsName+="Debug.root";
  dsName.ReplaceAll(" ","");
  TString dsName2=fDebugOutputPath.Data();
  gSystem->MakeDirectory(dsName2.Data());
  dsName2+=gSystem->HostName();
  gSystem->MakeDirectory(dsName2.Data());
  dsName2+="/";
  dsName2+=gSystem->BaseName(gSystem->pwd());
  dsName2+="/";
  gSystem->MakeDirectory(dsName2.Data());
  dsName2+=dsName;
  AliInfo(Form("copy %s\t%s\n",dsName.Data(),dsName2.Data()));
  printf("copy %s\t%s\n",dsName.Data(),dsName2.Data());
  TFile::Cp(dsName.Data(),dsName2.Data());
}


Bool_t AliMaterialBudget::PropagateCosmicToDCA(AliExternalTrackParam *param0, AliExternalTrackParam *param1, Double_t mass){
  //
  // param0 - upper part of cosmic track
  // param1 - lower part of cosmic track
  //
  // 0. Propagate both tracks to DCA to (0,0,0)
  // 1. After propagation to DCA rotate track param1 to corrdinate system of track1 <-> rotate param0 to coordinate system of param 1 ????
  // 2. Propagate track 1 to refernce x from track0
  //

  // step 0.

  Float_t d0  = param0->GetLinearD(0,0);
  Float_t d1  = param1->GetLinearD(0,0);
  Float_t dmax = TMath::Max(TMath::Abs(d0),TMath::Abs(d1));
  //
  // propagate in the beginning taking all material into account
  //
  AliTracker::PropagateTrackToBxByBz(param0,dmax+1.,mass,0.5,kTRUE,0.99,-1.);
  AliTracker::PropagateTrackToBxByBz(param1,dmax+1.,mass,0.5,kTRUE,0.99,1.);
  //
  Double_t vtxx[3]={0,0,0};
  Double_t svtxx[3]={0.000001,0.000001,100.};
  AliESDVertex vtx(vtxx,svtxx);
  //
  Bool_t b0 = param0->PropagateToDCA(&vtx,AliTracker::GetBz(),1000);
  Bool_t b1 = param1->PropagateToDCA(&vtx,AliTracker::GetBz(),1000);

  if (!(b0 && b1)) return 0;

  // step 1.
    
  Float_t dAlpha = param0->GetAlpha();
  param1->Rotate(dAlpha);

  // step 2.

  Float_t refX = param0->GetX();
  param1->PropagateTo(refX,AliTracker::GetBz());

  return kTRUE;
  
  
}


 AliMaterialBudget.cxx:1
 AliMaterialBudget.cxx:2
 AliMaterialBudget.cxx:3
 AliMaterialBudget.cxx:4
 AliMaterialBudget.cxx:5
 AliMaterialBudget.cxx:6
 AliMaterialBudget.cxx:7
 AliMaterialBudget.cxx:8
 AliMaterialBudget.cxx:9
 AliMaterialBudget.cxx:10
 AliMaterialBudget.cxx:11
 AliMaterialBudget.cxx:12
 AliMaterialBudget.cxx:13
 AliMaterialBudget.cxx:14
 AliMaterialBudget.cxx:15
 AliMaterialBudget.cxx:16
 AliMaterialBudget.cxx:17
 AliMaterialBudget.cxx:18
 AliMaterialBudget.cxx:19
 AliMaterialBudget.cxx:20
 AliMaterialBudget.cxx:21
 AliMaterialBudget.cxx:22
 AliMaterialBudget.cxx:23
 AliMaterialBudget.cxx:24
 AliMaterialBudget.cxx:25
 AliMaterialBudget.cxx:26
 AliMaterialBudget.cxx:27
 AliMaterialBudget.cxx:28
 AliMaterialBudget.cxx:29
 AliMaterialBudget.cxx:30
 AliMaterialBudget.cxx:31
 AliMaterialBudget.cxx:32
 AliMaterialBudget.cxx:33
 AliMaterialBudget.cxx:34
 AliMaterialBudget.cxx:35
 AliMaterialBudget.cxx:36
 AliMaterialBudget.cxx:37
 AliMaterialBudget.cxx:38
 AliMaterialBudget.cxx:39
 AliMaterialBudget.cxx:40
 AliMaterialBudget.cxx:41
 AliMaterialBudget.cxx:42
 AliMaterialBudget.cxx:43
 AliMaterialBudget.cxx:44
 AliMaterialBudget.cxx:45
 AliMaterialBudget.cxx:46
 AliMaterialBudget.cxx:47
 AliMaterialBudget.cxx:48
 AliMaterialBudget.cxx:49
 AliMaterialBudget.cxx:50
 AliMaterialBudget.cxx:51
 AliMaterialBudget.cxx:52
 AliMaterialBudget.cxx:53
 AliMaterialBudget.cxx:54
 AliMaterialBudget.cxx:55
 AliMaterialBudget.cxx:56
 AliMaterialBudget.cxx:57
 AliMaterialBudget.cxx:58
 AliMaterialBudget.cxx:59
 AliMaterialBudget.cxx:60
 AliMaterialBudget.cxx:61
 AliMaterialBudget.cxx:62
 AliMaterialBudget.cxx:63
 AliMaterialBudget.cxx:64
 AliMaterialBudget.cxx:65
 AliMaterialBudget.cxx:66
 AliMaterialBudget.cxx:67
 AliMaterialBudget.cxx:68
 AliMaterialBudget.cxx:69
 AliMaterialBudget.cxx:70
 AliMaterialBudget.cxx:71
 AliMaterialBudget.cxx:72
 AliMaterialBudget.cxx:73
 AliMaterialBudget.cxx:74
 AliMaterialBudget.cxx:75
 AliMaterialBudget.cxx:76
 AliMaterialBudget.cxx:77
 AliMaterialBudget.cxx:78
 AliMaterialBudget.cxx:79
 AliMaterialBudget.cxx:80
 AliMaterialBudget.cxx:81
 AliMaterialBudget.cxx:82
 AliMaterialBudget.cxx:83
 AliMaterialBudget.cxx:84
 AliMaterialBudget.cxx:85
 AliMaterialBudget.cxx:86
 AliMaterialBudget.cxx:87
 AliMaterialBudget.cxx:88
 AliMaterialBudget.cxx:89
 AliMaterialBudget.cxx:90
 AliMaterialBudget.cxx:91
 AliMaterialBudget.cxx:92
 AliMaterialBudget.cxx:93
 AliMaterialBudget.cxx:94
 AliMaterialBudget.cxx:95
 AliMaterialBudget.cxx:96
 AliMaterialBudget.cxx:97
 AliMaterialBudget.cxx:98
 AliMaterialBudget.cxx:99
 AliMaterialBudget.cxx:100
 AliMaterialBudget.cxx:101
 AliMaterialBudget.cxx:102
 AliMaterialBudget.cxx:103
 AliMaterialBudget.cxx:104
 AliMaterialBudget.cxx:105
 AliMaterialBudget.cxx:106
 AliMaterialBudget.cxx:107
 AliMaterialBudget.cxx:108
 AliMaterialBudget.cxx:109
 AliMaterialBudget.cxx:110
 AliMaterialBudget.cxx:111
 AliMaterialBudget.cxx:112
 AliMaterialBudget.cxx:113
 AliMaterialBudget.cxx:114
 AliMaterialBudget.cxx:115
 AliMaterialBudget.cxx:116
 AliMaterialBudget.cxx:117
 AliMaterialBudget.cxx:118
 AliMaterialBudget.cxx:119
 AliMaterialBudget.cxx:120
 AliMaterialBudget.cxx:121
 AliMaterialBudget.cxx:122
 AliMaterialBudget.cxx:123
 AliMaterialBudget.cxx:124
 AliMaterialBudget.cxx:125
 AliMaterialBudget.cxx:126
 AliMaterialBudget.cxx:127
 AliMaterialBudget.cxx:128
 AliMaterialBudget.cxx:129
 AliMaterialBudget.cxx:130
 AliMaterialBudget.cxx:131
 AliMaterialBudget.cxx:132
 AliMaterialBudget.cxx:133
 AliMaterialBudget.cxx:134
 AliMaterialBudget.cxx:135
 AliMaterialBudget.cxx:136
 AliMaterialBudget.cxx:137
 AliMaterialBudget.cxx:138
 AliMaterialBudget.cxx:139
 AliMaterialBudget.cxx:140
 AliMaterialBudget.cxx:141
 AliMaterialBudget.cxx:142
 AliMaterialBudget.cxx:143
 AliMaterialBudget.cxx:144
 AliMaterialBudget.cxx:145
 AliMaterialBudget.cxx:146
 AliMaterialBudget.cxx:147
 AliMaterialBudget.cxx:148
 AliMaterialBudget.cxx:149
 AliMaterialBudget.cxx:150
 AliMaterialBudget.cxx:151
 AliMaterialBudget.cxx:152
 AliMaterialBudget.cxx:153
 AliMaterialBudget.cxx:154
 AliMaterialBudget.cxx:155
 AliMaterialBudget.cxx:156
 AliMaterialBudget.cxx:157
 AliMaterialBudget.cxx:158
 AliMaterialBudget.cxx:159
 AliMaterialBudget.cxx:160
 AliMaterialBudget.cxx:161
 AliMaterialBudget.cxx:162
 AliMaterialBudget.cxx:163
 AliMaterialBudget.cxx:164
 AliMaterialBudget.cxx:165
 AliMaterialBudget.cxx:166
 AliMaterialBudget.cxx:167
 AliMaterialBudget.cxx:168
 AliMaterialBudget.cxx:169
 AliMaterialBudget.cxx:170
 AliMaterialBudget.cxx:171
 AliMaterialBudget.cxx:172
 AliMaterialBudget.cxx:173
 AliMaterialBudget.cxx:174
 AliMaterialBudget.cxx:175
 AliMaterialBudget.cxx:176
 AliMaterialBudget.cxx:177
 AliMaterialBudget.cxx:178
 AliMaterialBudget.cxx:179
 AliMaterialBudget.cxx:180
 AliMaterialBudget.cxx:181
 AliMaterialBudget.cxx:182
 AliMaterialBudget.cxx:183
 AliMaterialBudget.cxx:184
 AliMaterialBudget.cxx:185
 AliMaterialBudget.cxx:186
 AliMaterialBudget.cxx:187
 AliMaterialBudget.cxx:188
 AliMaterialBudget.cxx:189
 AliMaterialBudget.cxx:190
 AliMaterialBudget.cxx:191
 AliMaterialBudget.cxx:192
 AliMaterialBudget.cxx:193
 AliMaterialBudget.cxx:194
 AliMaterialBudget.cxx:195
 AliMaterialBudget.cxx:196
 AliMaterialBudget.cxx:197
 AliMaterialBudget.cxx:198
 AliMaterialBudget.cxx:199
 AliMaterialBudget.cxx:200
 AliMaterialBudget.cxx:201
 AliMaterialBudget.cxx:202
 AliMaterialBudget.cxx:203
 AliMaterialBudget.cxx:204
 AliMaterialBudget.cxx:205
 AliMaterialBudget.cxx:206
 AliMaterialBudget.cxx:207
 AliMaterialBudget.cxx:208
 AliMaterialBudget.cxx:209
 AliMaterialBudget.cxx:210
 AliMaterialBudget.cxx:211
 AliMaterialBudget.cxx:212
 AliMaterialBudget.cxx:213
 AliMaterialBudget.cxx:214
 AliMaterialBudget.cxx:215
 AliMaterialBudget.cxx:216
 AliMaterialBudget.cxx:217
 AliMaterialBudget.cxx:218
 AliMaterialBudget.cxx:219
 AliMaterialBudget.cxx:220
 AliMaterialBudget.cxx:221
 AliMaterialBudget.cxx:222
 AliMaterialBudget.cxx:223
 AliMaterialBudget.cxx:224
 AliMaterialBudget.cxx:225
 AliMaterialBudget.cxx:226
 AliMaterialBudget.cxx:227
 AliMaterialBudget.cxx:228
 AliMaterialBudget.cxx:229
 AliMaterialBudget.cxx:230
 AliMaterialBudget.cxx:231
 AliMaterialBudget.cxx:232
 AliMaterialBudget.cxx:233
 AliMaterialBudget.cxx:234
 AliMaterialBudget.cxx:235
 AliMaterialBudget.cxx:236
 AliMaterialBudget.cxx:237
 AliMaterialBudget.cxx:238
 AliMaterialBudget.cxx:239
 AliMaterialBudget.cxx:240
 AliMaterialBudget.cxx:241
 AliMaterialBudget.cxx:242
 AliMaterialBudget.cxx:243
 AliMaterialBudget.cxx:244
 AliMaterialBudget.cxx:245
 AliMaterialBudget.cxx:246
 AliMaterialBudget.cxx:247
 AliMaterialBudget.cxx:248
 AliMaterialBudget.cxx:249
 AliMaterialBudget.cxx:250
 AliMaterialBudget.cxx:251
 AliMaterialBudget.cxx:252
 AliMaterialBudget.cxx:253
 AliMaterialBudget.cxx:254
 AliMaterialBudget.cxx:255
 AliMaterialBudget.cxx:256
 AliMaterialBudget.cxx:257
 AliMaterialBudget.cxx:258
 AliMaterialBudget.cxx:259
 AliMaterialBudget.cxx:260
 AliMaterialBudget.cxx:261
 AliMaterialBudget.cxx:262
 AliMaterialBudget.cxx:263
 AliMaterialBudget.cxx:264
 AliMaterialBudget.cxx:265
 AliMaterialBudget.cxx:266
 AliMaterialBudget.cxx:267
 AliMaterialBudget.cxx:268
 AliMaterialBudget.cxx:269
 AliMaterialBudget.cxx:270
 AliMaterialBudget.cxx:271
 AliMaterialBudget.cxx:272
 AliMaterialBudget.cxx:273
 AliMaterialBudget.cxx:274
 AliMaterialBudget.cxx:275
 AliMaterialBudget.cxx:276
 AliMaterialBudget.cxx:277
 AliMaterialBudget.cxx:278
 AliMaterialBudget.cxx:279
 AliMaterialBudget.cxx:280
 AliMaterialBudget.cxx:281
 AliMaterialBudget.cxx:282
 AliMaterialBudget.cxx:283
 AliMaterialBudget.cxx:284
 AliMaterialBudget.cxx:285
 AliMaterialBudget.cxx:286
 AliMaterialBudget.cxx:287
 AliMaterialBudget.cxx:288
 AliMaterialBudget.cxx:289
 AliMaterialBudget.cxx:290
 AliMaterialBudget.cxx:291
 AliMaterialBudget.cxx:292
 AliMaterialBudget.cxx:293
 AliMaterialBudget.cxx:294
 AliMaterialBudget.cxx:295
 AliMaterialBudget.cxx:296
 AliMaterialBudget.cxx:297
 AliMaterialBudget.cxx:298
 AliMaterialBudget.cxx:299
 AliMaterialBudget.cxx:300
 AliMaterialBudget.cxx:301
 AliMaterialBudget.cxx:302
 AliMaterialBudget.cxx:303
 AliMaterialBudget.cxx:304
 AliMaterialBudget.cxx:305
 AliMaterialBudget.cxx:306
 AliMaterialBudget.cxx:307
 AliMaterialBudget.cxx:308
 AliMaterialBudget.cxx:309
 AliMaterialBudget.cxx:310
 AliMaterialBudget.cxx:311
 AliMaterialBudget.cxx:312
 AliMaterialBudget.cxx:313
 AliMaterialBudget.cxx:314
 AliMaterialBudget.cxx:315
 AliMaterialBudget.cxx:316
 AliMaterialBudget.cxx:317
 AliMaterialBudget.cxx:318
 AliMaterialBudget.cxx:319
 AliMaterialBudget.cxx:320
 AliMaterialBudget.cxx:321
 AliMaterialBudget.cxx:322
 AliMaterialBudget.cxx:323
 AliMaterialBudget.cxx:324
 AliMaterialBudget.cxx:325
 AliMaterialBudget.cxx:326
 AliMaterialBudget.cxx:327
 AliMaterialBudget.cxx:328
 AliMaterialBudget.cxx:329
 AliMaterialBudget.cxx:330
 AliMaterialBudget.cxx:331
 AliMaterialBudget.cxx:332
 AliMaterialBudget.cxx:333
 AliMaterialBudget.cxx:334
 AliMaterialBudget.cxx:335
 AliMaterialBudget.cxx:336
 AliMaterialBudget.cxx:337
 AliMaterialBudget.cxx:338
 AliMaterialBudget.cxx:339
 AliMaterialBudget.cxx:340
 AliMaterialBudget.cxx:341
 AliMaterialBudget.cxx:342
 AliMaterialBudget.cxx:343
 AliMaterialBudget.cxx:344
 AliMaterialBudget.cxx:345
 AliMaterialBudget.cxx:346
 AliMaterialBudget.cxx:347
 AliMaterialBudget.cxx:348
 AliMaterialBudget.cxx:349
 AliMaterialBudget.cxx:350
 AliMaterialBudget.cxx:351
 AliMaterialBudget.cxx:352
 AliMaterialBudget.cxx:353
 AliMaterialBudget.cxx:354
 AliMaterialBudget.cxx:355
 AliMaterialBudget.cxx:356
 AliMaterialBudget.cxx:357
 AliMaterialBudget.cxx:358
 AliMaterialBudget.cxx:359
 AliMaterialBudget.cxx:360
 AliMaterialBudget.cxx:361
 AliMaterialBudget.cxx:362
 AliMaterialBudget.cxx:363
 AliMaterialBudget.cxx:364
 AliMaterialBudget.cxx:365
 AliMaterialBudget.cxx:366
 AliMaterialBudget.cxx:367
 AliMaterialBudget.cxx:368
 AliMaterialBudget.cxx:369
 AliMaterialBudget.cxx:370
 AliMaterialBudget.cxx:371
 AliMaterialBudget.cxx:372
 AliMaterialBudget.cxx:373
 AliMaterialBudget.cxx:374
 AliMaterialBudget.cxx:375
 AliMaterialBudget.cxx:376
 AliMaterialBudget.cxx:377
 AliMaterialBudget.cxx:378
 AliMaterialBudget.cxx:379
 AliMaterialBudget.cxx:380
 AliMaterialBudget.cxx:381
 AliMaterialBudget.cxx:382
 AliMaterialBudget.cxx:383
 AliMaterialBudget.cxx:384
 AliMaterialBudget.cxx:385
 AliMaterialBudget.cxx:386
 AliMaterialBudget.cxx:387
 AliMaterialBudget.cxx:388
 AliMaterialBudget.cxx:389
 AliMaterialBudget.cxx:390
 AliMaterialBudget.cxx:391
 AliMaterialBudget.cxx:392
 AliMaterialBudget.cxx:393
 AliMaterialBudget.cxx:394
 AliMaterialBudget.cxx:395
 AliMaterialBudget.cxx:396
 AliMaterialBudget.cxx:397
 AliMaterialBudget.cxx:398
 AliMaterialBudget.cxx:399
 AliMaterialBudget.cxx:400
 AliMaterialBudget.cxx:401
 AliMaterialBudget.cxx:402
 AliMaterialBudget.cxx:403
 AliMaterialBudget.cxx:404
 AliMaterialBudget.cxx:405
 AliMaterialBudget.cxx:406
 AliMaterialBudget.cxx:407
 AliMaterialBudget.cxx:408
 AliMaterialBudget.cxx:409
 AliMaterialBudget.cxx:410
 AliMaterialBudget.cxx:411
 AliMaterialBudget.cxx:412
 AliMaterialBudget.cxx:413
 AliMaterialBudget.cxx:414
 AliMaterialBudget.cxx:415
 AliMaterialBudget.cxx:416
 AliMaterialBudget.cxx:417
 AliMaterialBudget.cxx:418
 AliMaterialBudget.cxx:419
 AliMaterialBudget.cxx:420
 AliMaterialBudget.cxx:421
 AliMaterialBudget.cxx:422
 AliMaterialBudget.cxx:423
 AliMaterialBudget.cxx:424
 AliMaterialBudget.cxx:425
 AliMaterialBudget.cxx:426
 AliMaterialBudget.cxx:427
 AliMaterialBudget.cxx:428
 AliMaterialBudget.cxx:429
 AliMaterialBudget.cxx:430
 AliMaterialBudget.cxx:431
 AliMaterialBudget.cxx:432
 AliMaterialBudget.cxx:433
 AliMaterialBudget.cxx:434
 AliMaterialBudget.cxx:435
 AliMaterialBudget.cxx:436
 AliMaterialBudget.cxx:437
 AliMaterialBudget.cxx:438
 AliMaterialBudget.cxx:439
 AliMaterialBudget.cxx:440
 AliMaterialBudget.cxx:441
 AliMaterialBudget.cxx:442
 AliMaterialBudget.cxx:443
 AliMaterialBudget.cxx:444
 AliMaterialBudget.cxx:445
 AliMaterialBudget.cxx:446
 AliMaterialBudget.cxx:447
 AliMaterialBudget.cxx:448
 AliMaterialBudget.cxx:449
 AliMaterialBudget.cxx:450
 AliMaterialBudget.cxx:451
 AliMaterialBudget.cxx:452
 AliMaterialBudget.cxx:453
 AliMaterialBudget.cxx:454
 AliMaterialBudget.cxx:455
 AliMaterialBudget.cxx:456
 AliMaterialBudget.cxx:457
 AliMaterialBudget.cxx:458
 AliMaterialBudget.cxx:459
 AliMaterialBudget.cxx:460
 AliMaterialBudget.cxx:461
 AliMaterialBudget.cxx:462
 AliMaterialBudget.cxx:463
 AliMaterialBudget.cxx:464
 AliMaterialBudget.cxx:465
 AliMaterialBudget.cxx:466
 AliMaterialBudget.cxx:467
 AliMaterialBudget.cxx:468
 AliMaterialBudget.cxx:469
 AliMaterialBudget.cxx:470
 AliMaterialBudget.cxx:471
 AliMaterialBudget.cxx:472
 AliMaterialBudget.cxx:473
 AliMaterialBudget.cxx:474
 AliMaterialBudget.cxx:475
 AliMaterialBudget.cxx:476
 AliMaterialBudget.cxx:477
 AliMaterialBudget.cxx:478
 AliMaterialBudget.cxx:479
 AliMaterialBudget.cxx:480
 AliMaterialBudget.cxx:481
 AliMaterialBudget.cxx:482
 AliMaterialBudget.cxx:483
 AliMaterialBudget.cxx:484
 AliMaterialBudget.cxx:485
 AliMaterialBudget.cxx:486
 AliMaterialBudget.cxx:487
 AliMaterialBudget.cxx:488
 AliMaterialBudget.cxx:489
 AliMaterialBudget.cxx:490
 AliMaterialBudget.cxx:491
 AliMaterialBudget.cxx:492
 AliMaterialBudget.cxx:493
 AliMaterialBudget.cxx:494
 AliMaterialBudget.cxx:495
 AliMaterialBudget.cxx:496
 AliMaterialBudget.cxx:497
 AliMaterialBudget.cxx:498
 AliMaterialBudget.cxx:499
 AliMaterialBudget.cxx:500
 AliMaterialBudget.cxx:501
 AliMaterialBudget.cxx:502
 AliMaterialBudget.cxx:503
 AliMaterialBudget.cxx:504
 AliMaterialBudget.cxx:505
 AliMaterialBudget.cxx:506
 AliMaterialBudget.cxx:507
 AliMaterialBudget.cxx:508
 AliMaterialBudget.cxx:509
 AliMaterialBudget.cxx:510
 AliMaterialBudget.cxx:511
 AliMaterialBudget.cxx:512
 AliMaterialBudget.cxx:513
 AliMaterialBudget.cxx:514
 AliMaterialBudget.cxx:515
 AliMaterialBudget.cxx:516
 AliMaterialBudget.cxx:517
 AliMaterialBudget.cxx:518
 AliMaterialBudget.cxx:519
 AliMaterialBudget.cxx:520
 AliMaterialBudget.cxx:521
 AliMaterialBudget.cxx:522
 AliMaterialBudget.cxx:523
 AliMaterialBudget.cxx:524
 AliMaterialBudget.cxx:525
 AliMaterialBudget.cxx:526
 AliMaterialBudget.cxx:527
 AliMaterialBudget.cxx:528
 AliMaterialBudget.cxx:529
 AliMaterialBudget.cxx:530
 AliMaterialBudget.cxx:531
 AliMaterialBudget.cxx:532
 AliMaterialBudget.cxx:533
 AliMaterialBudget.cxx:534
 AliMaterialBudget.cxx:535
 AliMaterialBudget.cxx:536
 AliMaterialBudget.cxx:537
 AliMaterialBudget.cxx:538
 AliMaterialBudget.cxx:539
 AliMaterialBudget.cxx:540
 AliMaterialBudget.cxx:541
 AliMaterialBudget.cxx:542
 AliMaterialBudget.cxx:543
 AliMaterialBudget.cxx:544
 AliMaterialBudget.cxx:545
 AliMaterialBudget.cxx:546
 AliMaterialBudget.cxx:547
 AliMaterialBudget.cxx:548
 AliMaterialBudget.cxx:549
 AliMaterialBudget.cxx:550
 AliMaterialBudget.cxx:551
 AliMaterialBudget.cxx:552
 AliMaterialBudget.cxx:553
 AliMaterialBudget.cxx:554
 AliMaterialBudget.cxx:555
 AliMaterialBudget.cxx:556
 AliMaterialBudget.cxx:557
 AliMaterialBudget.cxx:558
 AliMaterialBudget.cxx:559
 AliMaterialBudget.cxx:560
 AliMaterialBudget.cxx:561
 AliMaterialBudget.cxx:562
 AliMaterialBudget.cxx:563
 AliMaterialBudget.cxx:564
 AliMaterialBudget.cxx:565
 AliMaterialBudget.cxx:566
 AliMaterialBudget.cxx:567
 AliMaterialBudget.cxx:568
 AliMaterialBudget.cxx:569
 AliMaterialBudget.cxx:570
 AliMaterialBudget.cxx:571
 AliMaterialBudget.cxx:572
 AliMaterialBudget.cxx:573
 AliMaterialBudget.cxx:574
 AliMaterialBudget.cxx:575
 AliMaterialBudget.cxx:576
 AliMaterialBudget.cxx:577
 AliMaterialBudget.cxx:578
 AliMaterialBudget.cxx:579
 AliMaterialBudget.cxx:580
 AliMaterialBudget.cxx:581
 AliMaterialBudget.cxx:582
 AliMaterialBudget.cxx:583
 AliMaterialBudget.cxx:584
 AliMaterialBudget.cxx:585
 AliMaterialBudget.cxx:586
 AliMaterialBudget.cxx:587
 AliMaterialBudget.cxx:588
 AliMaterialBudget.cxx:589
 AliMaterialBudget.cxx:590
 AliMaterialBudget.cxx:591
 AliMaterialBudget.cxx:592
 AliMaterialBudget.cxx:593
 AliMaterialBudget.cxx:594
 AliMaterialBudget.cxx:595
 AliMaterialBudget.cxx:596
 AliMaterialBudget.cxx:597
 AliMaterialBudget.cxx:598
 AliMaterialBudget.cxx:599
 AliMaterialBudget.cxx:600
 AliMaterialBudget.cxx:601
 AliMaterialBudget.cxx:602
 AliMaterialBudget.cxx:603
 AliMaterialBudget.cxx:604
 AliMaterialBudget.cxx:605
 AliMaterialBudget.cxx:606
 AliMaterialBudget.cxx:607
 AliMaterialBudget.cxx:608
 AliMaterialBudget.cxx:609
 AliMaterialBudget.cxx:610
 AliMaterialBudget.cxx:611
 AliMaterialBudget.cxx:612
 AliMaterialBudget.cxx:613
 AliMaterialBudget.cxx:614
 AliMaterialBudget.cxx:615
 AliMaterialBudget.cxx:616
 AliMaterialBudget.cxx:617
 AliMaterialBudget.cxx:618
 AliMaterialBudget.cxx:619
 AliMaterialBudget.cxx:620
 AliMaterialBudget.cxx:621
 AliMaterialBudget.cxx:622
 AliMaterialBudget.cxx:623
 AliMaterialBudget.cxx:624
 AliMaterialBudget.cxx:625
 AliMaterialBudget.cxx:626
 AliMaterialBudget.cxx:627
 AliMaterialBudget.cxx:628
 AliMaterialBudget.cxx:629
 AliMaterialBudget.cxx:630
 AliMaterialBudget.cxx:631
 AliMaterialBudget.cxx:632
 AliMaterialBudget.cxx:633
 AliMaterialBudget.cxx:634
 AliMaterialBudget.cxx:635
 AliMaterialBudget.cxx:636
 AliMaterialBudget.cxx:637
 AliMaterialBudget.cxx:638
 AliMaterialBudget.cxx:639
 AliMaterialBudget.cxx:640
 AliMaterialBudget.cxx:641
 AliMaterialBudget.cxx:642
 AliMaterialBudget.cxx:643
 AliMaterialBudget.cxx:644
 AliMaterialBudget.cxx:645
 AliMaterialBudget.cxx:646
 AliMaterialBudget.cxx:647
 AliMaterialBudget.cxx:648
 AliMaterialBudget.cxx:649
 AliMaterialBudget.cxx:650
 AliMaterialBudget.cxx:651
 AliMaterialBudget.cxx:652
 AliMaterialBudget.cxx:653
 AliMaterialBudget.cxx:654
 AliMaterialBudget.cxx:655
 AliMaterialBudget.cxx:656
 AliMaterialBudget.cxx:657
 AliMaterialBudget.cxx:658
 AliMaterialBudget.cxx:659
 AliMaterialBudget.cxx:660
 AliMaterialBudget.cxx:661
 AliMaterialBudget.cxx:662
 AliMaterialBudget.cxx:663
 AliMaterialBudget.cxx:664
 AliMaterialBudget.cxx:665
 AliMaterialBudget.cxx:666
 AliMaterialBudget.cxx:667
 AliMaterialBudget.cxx:668
 AliMaterialBudget.cxx:669
 AliMaterialBudget.cxx:670
 AliMaterialBudget.cxx:671
 AliMaterialBudget.cxx:672
 AliMaterialBudget.cxx:673
 AliMaterialBudget.cxx:674
 AliMaterialBudget.cxx:675
 AliMaterialBudget.cxx:676
 AliMaterialBudget.cxx:677
 AliMaterialBudget.cxx:678
 AliMaterialBudget.cxx:679
 AliMaterialBudget.cxx:680
 AliMaterialBudget.cxx:681
 AliMaterialBudget.cxx:682
 AliMaterialBudget.cxx:683
 AliMaterialBudget.cxx:684
 AliMaterialBudget.cxx:685
 AliMaterialBudget.cxx:686
 AliMaterialBudget.cxx:687
 AliMaterialBudget.cxx:688
 AliMaterialBudget.cxx:689
 AliMaterialBudget.cxx:690
 AliMaterialBudget.cxx:691
 AliMaterialBudget.cxx:692
 AliMaterialBudget.cxx:693
 AliMaterialBudget.cxx:694
 AliMaterialBudget.cxx:695
 AliMaterialBudget.cxx:696
 AliMaterialBudget.cxx:697
 AliMaterialBudget.cxx:698
 AliMaterialBudget.cxx:699
 AliMaterialBudget.cxx:700
 AliMaterialBudget.cxx:701
 AliMaterialBudget.cxx:702
 AliMaterialBudget.cxx:703
 AliMaterialBudget.cxx:704
 AliMaterialBudget.cxx:705
 AliMaterialBudget.cxx:706
 AliMaterialBudget.cxx:707
 AliMaterialBudget.cxx:708
 AliMaterialBudget.cxx:709
 AliMaterialBudget.cxx:710
 AliMaterialBudget.cxx:711
 AliMaterialBudget.cxx:712
 AliMaterialBudget.cxx:713
 AliMaterialBudget.cxx:714
 AliMaterialBudget.cxx:715
 AliMaterialBudget.cxx:716
 AliMaterialBudget.cxx:717
 AliMaterialBudget.cxx:718
 AliMaterialBudget.cxx:719
 AliMaterialBudget.cxx:720
 AliMaterialBudget.cxx:721
 AliMaterialBudget.cxx:722
 AliMaterialBudget.cxx:723
 AliMaterialBudget.cxx:724
 AliMaterialBudget.cxx:725
 AliMaterialBudget.cxx:726
 AliMaterialBudget.cxx:727
 AliMaterialBudget.cxx:728
 AliMaterialBudget.cxx:729
 AliMaterialBudget.cxx:730
 AliMaterialBudget.cxx:731
 AliMaterialBudget.cxx:732
 AliMaterialBudget.cxx:733
 AliMaterialBudget.cxx:734
 AliMaterialBudget.cxx:735
 AliMaterialBudget.cxx:736
 AliMaterialBudget.cxx:737
 AliMaterialBudget.cxx:738
 AliMaterialBudget.cxx:739
 AliMaterialBudget.cxx:740
 AliMaterialBudget.cxx:741
 AliMaterialBudget.cxx:742
 AliMaterialBudget.cxx:743
 AliMaterialBudget.cxx:744
 AliMaterialBudget.cxx:745
 AliMaterialBudget.cxx:746
 AliMaterialBudget.cxx:747
 AliMaterialBudget.cxx:748
 AliMaterialBudget.cxx:749
 AliMaterialBudget.cxx:750
 AliMaterialBudget.cxx:751
 AliMaterialBudget.cxx:752
 AliMaterialBudget.cxx:753
 AliMaterialBudget.cxx:754
 AliMaterialBudget.cxx:755
 AliMaterialBudget.cxx:756
 AliMaterialBudget.cxx:757
 AliMaterialBudget.cxx:758
 AliMaterialBudget.cxx:759
 AliMaterialBudget.cxx:760
 AliMaterialBudget.cxx:761
 AliMaterialBudget.cxx:762
 AliMaterialBudget.cxx:763
 AliMaterialBudget.cxx:764
 AliMaterialBudget.cxx:765
 AliMaterialBudget.cxx:766
 AliMaterialBudget.cxx:767
 AliMaterialBudget.cxx:768
 AliMaterialBudget.cxx:769
 AliMaterialBudget.cxx:770
 AliMaterialBudget.cxx:771
 AliMaterialBudget.cxx:772
 AliMaterialBudget.cxx:773
 AliMaterialBudget.cxx:774
 AliMaterialBudget.cxx:775
 AliMaterialBudget.cxx:776
 AliMaterialBudget.cxx:777
 AliMaterialBudget.cxx:778
 AliMaterialBudget.cxx:779
 AliMaterialBudget.cxx:780
 AliMaterialBudget.cxx:781
 AliMaterialBudget.cxx:782
 AliMaterialBudget.cxx:783
 AliMaterialBudget.cxx:784
 AliMaterialBudget.cxx:785
 AliMaterialBudget.cxx:786
 AliMaterialBudget.cxx:787
 AliMaterialBudget.cxx:788
 AliMaterialBudget.cxx:789
 AliMaterialBudget.cxx:790
 AliMaterialBudget.cxx:791
 AliMaterialBudget.cxx:792
 AliMaterialBudget.cxx:793
 AliMaterialBudget.cxx:794
 AliMaterialBudget.cxx:795
 AliMaterialBudget.cxx:796
 AliMaterialBudget.cxx:797
 AliMaterialBudget.cxx:798
 AliMaterialBudget.cxx:799
 AliMaterialBudget.cxx:800
 AliMaterialBudget.cxx:801
 AliMaterialBudget.cxx:802
 AliMaterialBudget.cxx:803
 AliMaterialBudget.cxx:804
 AliMaterialBudget.cxx:805
 AliMaterialBudget.cxx:806
 AliMaterialBudget.cxx:807
 AliMaterialBudget.cxx:808
 AliMaterialBudget.cxx:809
 AliMaterialBudget.cxx:810
 AliMaterialBudget.cxx:811
 AliMaterialBudget.cxx:812
 AliMaterialBudget.cxx:813
 AliMaterialBudget.cxx:814
 AliMaterialBudget.cxx:815
 AliMaterialBudget.cxx:816
 AliMaterialBudget.cxx:817
 AliMaterialBudget.cxx:818
 AliMaterialBudget.cxx:819
 AliMaterialBudget.cxx:820
 AliMaterialBudget.cxx:821
 AliMaterialBudget.cxx:822
 AliMaterialBudget.cxx:823
 AliMaterialBudget.cxx:824
 AliMaterialBudget.cxx:825
 AliMaterialBudget.cxx:826
 AliMaterialBudget.cxx:827
 AliMaterialBudget.cxx:828
 AliMaterialBudget.cxx:829
 AliMaterialBudget.cxx:830
 AliMaterialBudget.cxx:831
 AliMaterialBudget.cxx:832
 AliMaterialBudget.cxx:833
 AliMaterialBudget.cxx:834
 AliMaterialBudget.cxx:835
 AliMaterialBudget.cxx:836
 AliMaterialBudget.cxx:837
 AliMaterialBudget.cxx:838
 AliMaterialBudget.cxx:839
 AliMaterialBudget.cxx:840
 AliMaterialBudget.cxx:841
 AliMaterialBudget.cxx:842
 AliMaterialBudget.cxx:843
 AliMaterialBudget.cxx:844
 AliMaterialBudget.cxx:845
 AliMaterialBudget.cxx:846
 AliMaterialBudget.cxx:847
 AliMaterialBudget.cxx:848
 AliMaterialBudget.cxx:849
 AliMaterialBudget.cxx:850
 AliMaterialBudget.cxx:851
 AliMaterialBudget.cxx:852
 AliMaterialBudget.cxx:853
 AliMaterialBudget.cxx:854
 AliMaterialBudget.cxx:855
 AliMaterialBudget.cxx:856
 AliMaterialBudget.cxx:857
 AliMaterialBudget.cxx:858
 AliMaterialBudget.cxx:859
 AliMaterialBudget.cxx:860
 AliMaterialBudget.cxx:861
 AliMaterialBudget.cxx:862
 AliMaterialBudget.cxx:863
 AliMaterialBudget.cxx:864
 AliMaterialBudget.cxx:865
 AliMaterialBudget.cxx:866
 AliMaterialBudget.cxx:867
 AliMaterialBudget.cxx:868
 AliMaterialBudget.cxx:869
 AliMaterialBudget.cxx:870
 AliMaterialBudget.cxx:871
 AliMaterialBudget.cxx:872
 AliMaterialBudget.cxx:873
 AliMaterialBudget.cxx:874
 AliMaterialBudget.cxx:875
 AliMaterialBudget.cxx:876
 AliMaterialBudget.cxx:877
 AliMaterialBudget.cxx:878
 AliMaterialBudget.cxx:879
 AliMaterialBudget.cxx:880
 AliMaterialBudget.cxx:881
 AliMaterialBudget.cxx:882
 AliMaterialBudget.cxx:883
 AliMaterialBudget.cxx:884
 AliMaterialBudget.cxx:885
 AliMaterialBudget.cxx:886
 AliMaterialBudget.cxx:887
 AliMaterialBudget.cxx:888
 AliMaterialBudget.cxx:889
 AliMaterialBudget.cxx:890
 AliMaterialBudget.cxx:891
 AliMaterialBudget.cxx:892
 AliMaterialBudget.cxx:893
 AliMaterialBudget.cxx:894
 AliMaterialBudget.cxx:895
 AliMaterialBudget.cxx:896
 AliMaterialBudget.cxx:897
 AliMaterialBudget.cxx:898
 AliMaterialBudget.cxx:899
 AliMaterialBudget.cxx:900
 AliMaterialBudget.cxx:901
 AliMaterialBudget.cxx:902
 AliMaterialBudget.cxx:903
 AliMaterialBudget.cxx:904
 AliMaterialBudget.cxx:905
 AliMaterialBudget.cxx:906
 AliMaterialBudget.cxx:907
 AliMaterialBudget.cxx:908
 AliMaterialBudget.cxx:909
 AliMaterialBudget.cxx:910
 AliMaterialBudget.cxx:911
 AliMaterialBudget.cxx:912
 AliMaterialBudget.cxx:913
 AliMaterialBudget.cxx:914
 AliMaterialBudget.cxx:915
 AliMaterialBudget.cxx:916
 AliMaterialBudget.cxx:917
 AliMaterialBudget.cxx:918
 AliMaterialBudget.cxx:919
 AliMaterialBudget.cxx:920
 AliMaterialBudget.cxx:921
 AliMaterialBudget.cxx:922
 AliMaterialBudget.cxx:923
 AliMaterialBudget.cxx:924
 AliMaterialBudget.cxx:925
 AliMaterialBudget.cxx:926
 AliMaterialBudget.cxx:927
 AliMaterialBudget.cxx:928
 AliMaterialBudget.cxx:929
 AliMaterialBudget.cxx:930
 AliMaterialBudget.cxx:931
 AliMaterialBudget.cxx:932
 AliMaterialBudget.cxx:933
 AliMaterialBudget.cxx:934
 AliMaterialBudget.cxx:935
 AliMaterialBudget.cxx:936
 AliMaterialBudget.cxx:937
 AliMaterialBudget.cxx:938
 AliMaterialBudget.cxx:939
 AliMaterialBudget.cxx:940
 AliMaterialBudget.cxx:941
 AliMaterialBudget.cxx:942
 AliMaterialBudget.cxx:943
 AliMaterialBudget.cxx:944
 AliMaterialBudget.cxx:945
 AliMaterialBudget.cxx:946
 AliMaterialBudget.cxx:947
 AliMaterialBudget.cxx:948
 AliMaterialBudget.cxx:949
 AliMaterialBudget.cxx:950
 AliMaterialBudget.cxx:951
 AliMaterialBudget.cxx:952
 AliMaterialBudget.cxx:953
 AliMaterialBudget.cxx:954
 AliMaterialBudget.cxx:955
 AliMaterialBudget.cxx:956
 AliMaterialBudget.cxx:957
 AliMaterialBudget.cxx:958
 AliMaterialBudget.cxx:959
 AliMaterialBudget.cxx:960
 AliMaterialBudget.cxx:961
 AliMaterialBudget.cxx:962
 AliMaterialBudget.cxx:963
 AliMaterialBudget.cxx:964
 AliMaterialBudget.cxx:965
 AliMaterialBudget.cxx:966
 AliMaterialBudget.cxx:967
 AliMaterialBudget.cxx:968
 AliMaterialBudget.cxx:969
 AliMaterialBudget.cxx:970
 AliMaterialBudget.cxx:971
 AliMaterialBudget.cxx:972
 AliMaterialBudget.cxx:973
 AliMaterialBudget.cxx:974
 AliMaterialBudget.cxx:975
 AliMaterialBudget.cxx:976
 AliMaterialBudget.cxx:977
 AliMaterialBudget.cxx:978
 AliMaterialBudget.cxx:979
 AliMaterialBudget.cxx:980
 AliMaterialBudget.cxx:981
 AliMaterialBudget.cxx:982
 AliMaterialBudget.cxx:983
 AliMaterialBudget.cxx:984
 AliMaterialBudget.cxx:985
 AliMaterialBudget.cxx:986
 AliMaterialBudget.cxx:987
 AliMaterialBudget.cxx:988
 AliMaterialBudget.cxx:989
 AliMaterialBudget.cxx:990
 AliMaterialBudget.cxx:991
 AliMaterialBudget.cxx:992
 AliMaterialBudget.cxx:993
 AliMaterialBudget.cxx:994
 AliMaterialBudget.cxx:995
 AliMaterialBudget.cxx:996
 AliMaterialBudget.cxx:997
 AliMaterialBudget.cxx:998
 AliMaterialBudget.cxx:999
 AliMaterialBudget.cxx:1000
 AliMaterialBudget.cxx:1001
 AliMaterialBudget.cxx:1002
 AliMaterialBudget.cxx:1003
 AliMaterialBudget.cxx:1004
 AliMaterialBudget.cxx:1005
 AliMaterialBudget.cxx:1006
 AliMaterialBudget.cxx:1007
 AliMaterialBudget.cxx:1008
 AliMaterialBudget.cxx:1009
 AliMaterialBudget.cxx:1010
 AliMaterialBudget.cxx:1011
 AliMaterialBudget.cxx:1012
 AliMaterialBudget.cxx:1013
 AliMaterialBudget.cxx:1014
 AliMaterialBudget.cxx:1015
 AliMaterialBudget.cxx:1016
 AliMaterialBudget.cxx:1017
 AliMaterialBudget.cxx:1018
 AliMaterialBudget.cxx:1019
 AliMaterialBudget.cxx:1020
 AliMaterialBudget.cxx:1021
 AliMaterialBudget.cxx:1022
 AliMaterialBudget.cxx:1023
 AliMaterialBudget.cxx:1024
 AliMaterialBudget.cxx:1025
 AliMaterialBudget.cxx:1026
 AliMaterialBudget.cxx:1027
 AliMaterialBudget.cxx:1028
 AliMaterialBudget.cxx:1029
 AliMaterialBudget.cxx:1030
 AliMaterialBudget.cxx:1031
 AliMaterialBudget.cxx:1032
 AliMaterialBudget.cxx:1033
 AliMaterialBudget.cxx:1034
 AliMaterialBudget.cxx:1035
 AliMaterialBudget.cxx:1036
 AliMaterialBudget.cxx:1037
 AliMaterialBudget.cxx:1038
 AliMaterialBudget.cxx:1039
 AliMaterialBudget.cxx:1040
 AliMaterialBudget.cxx:1041
 AliMaterialBudget.cxx:1042
 AliMaterialBudget.cxx:1043
 AliMaterialBudget.cxx:1044
 AliMaterialBudget.cxx:1045
 AliMaterialBudget.cxx:1046
 AliMaterialBudget.cxx:1047
 AliMaterialBudget.cxx:1048
 AliMaterialBudget.cxx:1049
 AliMaterialBudget.cxx:1050
 AliMaterialBudget.cxx:1051
 AliMaterialBudget.cxx:1052
 AliMaterialBudget.cxx:1053
 AliMaterialBudget.cxx:1054
 AliMaterialBudget.cxx:1055
 AliMaterialBudget.cxx:1056
 AliMaterialBudget.cxx:1057
 AliMaterialBudget.cxx:1058
 AliMaterialBudget.cxx:1059
 AliMaterialBudget.cxx:1060