#include <TChain.h>
#include <TMath.h>
#include <TVectorD.h>
#include <TSystem.h>
#include <TFile.h>
#include "TGeoGlobalMagField.h"
#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"
#include <iostream>
using namespace std;
ClassImp(AliMaterialBudget)
AliMaterialBudget::AliMaterialBudget() :
AliAnalysisTask(),
fMCinfo(0),
fESD(0),
fDebugStreamer(0),
fStreamLevel(0),
fDebugLevel(0),
fDebugOutputPath(),
fListHist(0),
fHistMult(0),
fCutMaxD(5),
fCutMaxDz(40),
fCutTheta(0.03),
fCutMinDir(-0.99)
{
}
AliMaterialBudget::AliMaterialBudget(const AliMaterialBudget& ) :
AliAnalysisTask(),
fMCinfo(0),
fESD(0),
fDebugStreamer(0),
fStreamLevel(0),
fDebugLevel(),
fDebugOutputPath(),
fListHist(0),
fHistMult(0),
fCutMaxD(5),
fCutMaxDz(40),
fCutTheta(0.03),
fCutMinDir(-0.99)
{
}
AliMaterialBudget::AliMaterialBudget(const char *name) :
AliAnalysisTask(name, "AliMaterialBudget"),
fMCinfo(0),
fESD(0),
fDebugStreamer(0),
fStreamLevel(0),
fDebugLevel(0),
fDebugOutputPath(),
fListHist(0),
fHistMult(0),
fCutMaxD(5),
fCutMaxDz(40),
fCutTheta(0.03),
fCutMinDir(-0.99)
{
DefineInput(0, TChain::Class());
DefineOutput(0, TList::Class());
}
AliMaterialBudget::~AliMaterialBudget(){
if (fDebugLevel>0) printf("AliMaterialBudget::~AliMaterialBudget\n");
if (fDebugStreamer) delete fDebugStreamer;
fDebugStreamer=0;
}
void AliMaterialBudget::ConnectInputData(Option_t *)
{
if(fDebugLevel>3)
cout << "AnalysisTaskTPCCluster::ConnectInputData()" << endl;
TTree* tree=dynamic_cast<TTree*>(GetInputData(0));
if (!tree) {
}
else {
AliESDInputHandler *esdH = dynamic_cast<AliESDInputHandler*> (AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler());
if (!esdH) {
}
else {
esdH->SetActiveBranches("ESDfriend");
fESD = esdH->GetEvent();
}
}
AliMCEventHandler* mcinfo = (AliMCEventHandler*) (AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler());
mcinfo->SetReadTR(kTRUE);
fMCinfo = mcinfo->MCEvent();
}
void AliMaterialBudget::CreateOutputObjects()
{
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 *) {
if(fDebugLevel>3)
cout << "AliMaterialBudget::Exec()" << endl;
fHistMult->Fill(fESD->GetNumberOfTracks());
if (!fMCinfo){
cout << "Not MC info\n" << endl;
}else{
ProcessMCInfo();
}
PostData(0, fListHist);
}
void AliMaterialBudget::Terminate(Option_t *) {
if(fDebugLevel>3)
printf("AliMaterialBudget: Terminate() \n");
if (fDebugLevel>0) printf("AliMCtrackingTestTask::Terminate\n");
if (fDebugStreamer) delete fDebugStreamer;
fDebugStreamer = 0;
return;
}
TTreeSRedirector *AliMaterialBudget::GetDebugStreamer(){
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)
{
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){
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.;
const Double_t kMinDrTRD = 8.;
const Double_t kMinDrTOF = 10.;
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++){
AliMCParticle * pp = (AliMCParticle*) fMCinfo->GetTrack(ipart);
if (!pp) continue;
if (particle->P()<kPcut) continue;
Double_t mass = particle->GetMass();
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->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;
}
if (ref->DetectorId()==AliTrackReference::kTPC){
if (ref->Px()*ref->X()+ref->Py()*ref->Y()<0){
if (refTPCIn0 == pdummy) refTPCIn0=ref;
if (refTPCIn0 != pdummy && refTPCIn0->R()>ref->R())
refTPCIn0=ref;
}
if (ref->Px()*ref->X()+ref->Py()*ref->Y()>0){
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;
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);
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();
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) continue;
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<<
"nref="<<nref<<
"nRefITS="<<nRefITS<<
"nRefTPC="<<nRefTPC<<
"nRefTRD="<<nRefTRD<<
"nRefTOF="<<nRefTOF<<
"refMinR.="<<refMinR<<
"refITS0.="<<refITS0<<
"refITS1.="<<refITS1<<
"refTPC0.="<<refTPC0<<
"refTPC1.="<<refTPC1<<
"refTPCIn0.="<<refTPCIn0<<
"refTPCIn1.="<<refTPCIn1<<
"refTRD0.="<<refTRD0<<
"refTRD1.="<<refTRD1<<
"refTOF0.="<<refTOF0<<
"refTOF1.="<<refTOF1<<
"dsecTOF="<<dsecTOF<<
"aTOF0="<<alphaTOF0<<
"aTOF1="<<alphaTOF1<<
"dr="<<dist[0]<<
"dz="<<dist[1]<<
"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){
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;
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.;
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) {
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);
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;
for (Int_t i=0;i<ntracks;++i) {
AliESDtrack *track0 = event->GetTrack(i);
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);
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);
if (TMath::Abs(d0+d1)>fCutMaxD) continue;
if (dir>fCutMinDir) continue;
Float_t bz = AliTracker::GetBz();
Float_t dvertex0[2];
Float_t dvertex1[2];
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);
AliTracker::PropagateTrackToBxByBz(¶m0,dmax+1,0.0005,3,kTRUE);
AliTracker::PropagateTrackToBxByBz(¶m1,dmax+1,0.0005,3,kTRUE);
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];
Double_t xyz1[3];
param0.GetXYZ(xyz0);
param1.GetXYZ(xyz1);
Bool_t isPair = IsPair(¶m0,¶m1);
Int_t label0 = TMath::Abs(track0->GetLabel());
AliMCParticle *mcParticle0 = (AliMCParticle*) fMCinfo->GetTrack(label0);
TParticle *particle0 = mcParticle0->Particle();
AliTrackReference *ref0 = GetFirstTPCTrackRef(mcParticle0);
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);
if (!ref1) continue;
AliExternalTrackParam *paramMC1 = 0;
paramMC1 = MakeTrack(ref1, particle1);
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();
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<<
"OK="<<isPair<<
"b0="<<b0<<
"b1="<<b1<<
"Particle.="<<particle0<<
"NTrackRefTOF0="<<nTrackRefTOF0<<
"NTrackRefTOF1="<<nTrackRefTOF1<<
"NTrackRefITS0="<<nTrackRefITS0<<
"NTrackRefITS1="<<nTrackRefITS1<<
"Alpha0="<<alphaTOF0<<
"Alpha1="<<alphaTOF1<<
"RefFirstTOF0.="<<refFirstTOF0<<
"RefLastTOF0.="<<refLastTOF0<<
"RefFirstTOF1.="<<refFirstTOF1<<
"RefLastTOF1.="<<refLastTOF1<<
"Orig0.=" << track0 <<
"Orig1.=" << track1 <<
"Tr0.="<<¶m0<<
"Tr1.="<<¶m1<<
"Ip0.="<<ip0<<
"Ip1.="<<ip1<<
"Op0.="<<op0<<
"Op1.="<<op1<<
"paramTrackRef0.="<<paramMC0<<
"paramTrackRef1.="<<paramMC1<<
"v00="<<dvertex0[0]<<
"v01="<<dvertex0[1]<<
"v10="<<dvertex1[0]<<
"v11="<<dvertex1[1]<<
"d0="<<d0<<
"d1="<<d1<<
"x00="<<xyz0[0]<<
"x01="<<xyz0[1]<<
"x02="<<xyz0[2]<<
"x10="<<xyz1[0]<<
"x11="<<xyz1[1]<<
"x12="<<xyz1[2]<<
"dir00="<<dir0[0]<<
"dir01="<<dir0[1]<<
"dir02="<<dir0[2]<<
"dir10="<<dir1[0]<<
"dir11="<<dir1[1]<<
"dir12="<<dir1[2]<<
"Seed0.=" << seed0 <<
"Seed1.=" << seed1 <<
"\n";
}
}
delete paramMC0;
delete paramMC1;
}
}
return;
}
Bool_t AliMaterialBudget::IsPair(AliExternalTrackParam *tr0, AliExternalTrackParam *tr1){
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)
{
if(!mcParticle) return 0;
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))
{
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()
{
Terminate("slave");
gSystem->Exec("pwd");
RegisterDebugOutput();
}
void AliMaterialBudget::RegisterDebugOutput(){
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){
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));
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;
Float_t dAlpha = param0->GetAlpha();
param1->Rotate(dAlpha);
Float_t refX = param0->GetX();
param1->PropagateTo(refX,AliTracker::GetBz());
return kTRUE;
}
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