ROOT logo
/**************************************************************************
 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 *                                                                        *
 * Author: The ALICE Off-line Project.                                    *
 * Contributors are mentioned in the code where appropriate.              *
 *                                                                        *
 * Permission to use, copy, modify and distribute this software and its   *
 * documentation strictly for non-commercial purposes is hereby granted   *
 * without fee, provided that the above copyright notice appears in all   *
 * copies and that both the copyright notice and this permission notice   *
 * appear in the supporting documentation. The authors make no claims     *
 * about the suitability of this software for any purpose. It is          *
 * provided "as is" without express or implied warranty.                  *
 **************************************************************************/


///////////////////////////////////////////////////////////////////////////////
//                                                                           //
//  Time Projection Chamber                                                  //
//  Comparison macro for ESD                                                 //
//  responsible: 
//  marian.ivanov@cern.ch                                                    //
//
//

/* 
marian.ivanov@cern.ch 
Usage:
 


gSystem->Load("libPWGPP.so");
//
AliRecInfoMaker *t2 = new AliRecInfoMaker("genTracks.root","cmpESDTracks.root","galice.root",0,0);
t2->Exec();


TFile f("cmpESDTracks.root");
TTree * tree = (TTree*)f.Get("ESDcmpTracks");

AliTreeDraw comp;
comp.SetTree(tree)



//
//some cuts definition
TCut cprim("cprim","TMath::Sqrt(MC.fVDist[0]**2+MC.fVDist[1]**2)<0.01&&abs(MC.fVDist[2])<0.01")
//TCut cprim("cprim","TMath::Sqrt(MC.fVDist[0]**2+MC.fVDist[1]**2)<0.5&&abs(MC.fVDist[2])<0.5")
//TCut citsin("citsin","TMath::Sqrt(MC.fVDist[0]**2+MC.fVDist[1]**2)<3.9");
TCut citsin("citsin","TMath::Sqrt(MC.fVDist[0]**2+MC.fVDist[1]**2)<5");
TCut csec("csec","TMath::Sqrt(MC.fVDist[0]**2+MC.fVDist[1]**2)>0.5");


TCut crec("crec","fReconstructed==1");
TCut cteta1("cteta1","abs(MC.fParticle.Theta()/3.1415-0.5)<0.25");
TCut cteta05("cteta05","abs(MC.fParticle.Theta()/3.1415-0.5)<0.1");

TCut cpos1("cpos1","abs(MC.fParticle.fVz/sqrt(MC.fParticle.fVx*MC.fParticle.fVx+MC.fParticle.fVy*MC.fParticle.fVy))<1");
TCut csens("csens","abs(sqrt(fVDist[0]**2+fVDist[1]**2)-170)<50");
TCut cmuon("cmuon","abs(MC.fParticle.fPdgCode==-13)");
TCut cchi2("cchi2","fESDtrack.fITSchi2MIP[0]<7.&&fESDtrack.fITSchi2MIP[1]<5.&&fESDtrack.fITSchi2MIP[2]<7.&&fESDtrack.fITSchi2MIP[3]<7.5&&fESDtrack.fITSchi2MIP[4]<6.")


//
//example
comp.T()->SetAlias("radius","TMath::Sqrt(MC.fVDist[0]**2+MC.fVDist[1]**2)");
comp.T()->SetAlias("direction","MC.fParticle.fVx*MC.fParticle.fPx+MC.fParticle.fVy*MC.fParticle.fPy");
comp.T()->SetAlias("decaydir","MC.fTRdecay.fX*MC.fTRdecay.fPx+MC.fTRdecay.fY*MC.fTRdecay.fPy");
comp.T()->SetAlias("theta","MC.fTrackRef.Theta()");
comp.T()->SetAlias("primdca","sqrt(RC.fITStrack.fD[0]**2+RC.fITStrack.fD[1]**2)");
comp.T()->SetAlias("trdchi2","fTRDtrack.fChi2/fTRDtrack.fN");
comp.T()->SetAlias("trdchi2","fTRDtrack.fChi2/fTRDtrack.fN");


TH1F his("his","his",100,0,20);
TH1F hpools("hpools","hpools",100,-7,7);
TH1F hfake("hfake","hfake",1000,0,150);
TProfile profp0("profp0","profp0",20,-0.4,0.9)

comp.DrawXY("fTPCinP0[3]","fTPCDelta[4]/fTPCinP1[3]","fReconstructed==1"+cprim,"1",4,0.2,1.5,-0.06,0.06)
comp.fRes->Draw();
comp.fMean->Draw();  

comp.DrawXY("fITSinP0[3]","fITSDelta[4]/fITSinP1[3]","fReconstructed==1&&fITSOn"+cprim,"1",4,0.2,1.5,-0.06,0.06)
comp.fRes->Draw();

comp.Eff("fTPCinP0[3]","fRowsWithDigits>120"+cteta1+cpos1+cprim,"fTPCOn",20,0.2,1.5)
comp.fRes->Draw();

comp.Eff("fTPCinP0[3]","fRowsWithDigits>120"+cteta1+cpos1+cprim,"fTPCOn&&fITSOn&&fESDtrack.fITSFakeRatio<0.1",10,0.2,1.5)
comp.fRes->Draw();
comp.Eff("fTPCinP0[3]","fRowsWithDigits>120"+cteta1+cpos1+cprim,"fTPCOn&&fITSOn&&fESDtrack.fITSFakeRatio>0.1",10,0.2,1.5)
comp.fRes->Draw();

comp.T()->Draw("fESDtrack.fITSsignal/fESDtrack.fTPCsignal","fITSOn&&fTPCOn&&fESDtrack.fITSFakeRatio==0") 

TH1F his("his","his",100,0,20);
TH1F hpools("hpools","hpools",100,-7,7);

TH2F * hdedx0 = new TH2F("dEdx0","dEdx0",100, 0,2,200,0,550); hdedx0->SetMarkerColor(1);
TH2F * hdedx1 = new TH2F("dEdx1","dEdx1",100, 0,2,200,0,550); hdedx1->SetMarkerColor(4);
TH2F * hdedx2 = new TH2F("dEdx2","dEdx2",100, 0,2,200,0,550); hdedx2->SetMarkerColor(3);
TH2F * hdedx3 = new TH2F("dEdx3","dEdx3",100, 0,2,200,0,550); hdedx3->SetMarkerColor(2);

comp.T()->Draw("fESDtrack.fITSsignal:MC.fParticle.P()>>dEdx0","fITSOn&&abs(fPdg)==211&&fITStrack.fN==6"+cprim) 
comp.T()->Draw("fESDtrack.fITSsignal:MC.fParticle.P()>>dEdx1","fITSOn&&abs(fPdg)==2212&&fITStrack.fN==6"+cprim) 
comp.T()->Draw("fESDtrack.fITSsignal:MC.fParticle.P()>>dEdx2","fITSOn&&abs(fPdg)==321&&fITStrack.fN==6"+cprim) 
comp.T()->Draw("fESDtrack.fITSsignal:MC.fParticle.P()>>dEdx3","fITSOn&&abs(fPdg)==11&&fITStrack.fN==6"+cprim) 


comp.T()->Draw("fESDtrack.fTRDsignal:MC.fParticle.P()>>dEdx0","fTRDOn&&abs(fPdg)==211&&fTRDtrack.fN>40&&fStatus[2]>1") 
comp.T()->Draw("fESDtrack.fTRDsignal:MC.fParticle.P()>>dEdx1","fTRDOn&&abs(fPdg)==2212&&fTRDtrack.fN>40&&fStatus[2]>1") 
comp.T()->Draw("fESDtrack.fTRDsignal:MC.fParticle.P()>>dEdx2","fTRDOn&&abs(fPdg)==321&&fTRDtrack.fN>40&&fStatus[2]>1") 
comp.T()->Draw("fESDtrack.fTRDsignal:MC.fParticle.P()>>dEdx3","fTRDOn&&abs(fPdg)==11&&fTRDtrack.fN>40&&fStatus[2]>1") 

comp.T()->Draw("fESDtrack.fTPCsignal:fTPCinP0[4]>>dEdx0","fTPCOn&&abs(fPdg)==211&&fESDtrack.fTPCncls>180&&fESDtrack.fTPCsignal>10"+cteta1); 
comp.T()->Draw("fESDtrack.fTPCsignal:fTPCinP0[4]>>dEdx1","fTPCOn&&abs(fPdg)==2212&&fESDtrack.fTPCncls>180&&fESDtrack.fTPCsignal>10"+cteta1); 
comp.T()->Draw("fESDtrack.fTPCsignal:fTPCinP0[4]>>dEdx2","fTPCOn&&abs(fPdg)==321&&fESDtrack.fTPCncls>180&&fESDtrack.fTPCsignal>10"+cteta1); 
comp.T()->Draw("fESDtrack.fTPCsignal:fTPCinP0[4]>>dEdx3","fTPCOn&&abs(fPdg)==11&&fESDtrack.fTPCncls>180&&fESDtrack.fTPCsignal>10"+cteta1); 

hdedx3->SetXTitle("P(GeV/c)");
hdedx3->SetYTitle("dEdx(unit)");
hdedx3->Draw(); hdedx1->Draw("same"); hdedx2->Draw("same"); hdedx0->Draw("same");

comp.DrawXY("fITSinP0[3]","fITSPools[4]","fReconstructed==1&&fPdg==-211&&fITSOn"+cprim,"1",4,0.2,1.0,-8,8)

TProfile prof("prof","prof",10,0.5,5);




*/


#include <stdio.h>
#include <string.h>
//ROOT includes
#include "Rtypes.h"
#include "TFile.h"
#include "TTree.h"
#include "TStopwatch.h"
#include "TVector3.h"
#include "TGeoManager.h"
//#include "Getline.h"
//
//ALIROOT includes
//
#include "AliRun.h"
#include "AliESDtrack.h"
#include "AliTPCParam.h"
#include "AliTPC.h"
#include "AliTrackReference.h"
#include "AliTPCParamSR.h"
#include "AliTracker.h"
#include "AliESDEvent.h"
#include "AliESD.h"
#include "AliESDfriend.h"
#include "AliESDtrack.h"
#include "AliTPCseed.h"
#include "AliITStrackMI.h"
#include "AliESDVertex.h"
#include "AliExternalTrackParam.h"
#include "AliESDkink.h"
#include "AliESDv0.h"
#include "AliV0.h"
//
#include "AliTreeDraw.h"
#include "AliMCInfo.h"
#include "AliGenKinkInfo.h"
#include "AliGenV0Info.h"


#include "AliESDRecInfo.h"
#include "AliESDRecV0Info.h"
#include "AliESDRecKinkInfo.h"
#include "AliRecInfoMaker.h"



using std::cout;
using std::cerr;
using std::endl;

ClassImp(AliRecInfoMaker)




AliTPCParam * AliRecInfoMaker::GetTPCParam(){
  //
  // create TPC param
  //
  AliTPCParamSR * par = new AliTPCParamSR;
  par->Update();
  return par;
}



void  AliRecInfoMaker::MakeAliases(TTree * tree)
{
  //
  // aliases definition
  //
  tree->SetAlias("radius","TMath::Sqrt(MC.fVDist[0]**2+MC.fVDist[1]**2)");
  tree->SetAlias("direction","MC.fParticle.fVx*MC.fParticle.fPx+MC.fParticle.fVy*MC.fParticle.fPy");
  tree->SetAlias("decaydir","MC.fTRdecay.fX*MC.fTRdecay.fPx+MC.fTRdecay.fY*MC.fTRdecay.fPy");
  tree->SetAlias("theta","MC.fTrackRef.Theta()");
  tree->SetAlias("primdca","sqrt(RC.fITStrack.fD[0]**2+RC.fITStrack.fD[1]**2)");
  tree->SetAlias("trdchi2","fTRDtrack.fChi2/fTRDtrack.fN");
  tree->SetAlias("trdchi2","fTRDtrack.fChi2/fTRDtrack.fN");
  
  tree->SetAlias("trddedx","(RC.fESDtrack.fTRDsignals[0]+RC.fESDtrack.fTRDsignals[1]+RC.fESDtrack.fTRDsignals[2]+RC.fESDtrack.fTRDsignals[3]+RC.fESDtrack.fTRDsignals[4]+RC.fESDtrack.fTRDsignals[5])/6.");
  
  tree->SetAlias("dtofmc2","fESDtrack.fTrackTime[2]-(10^12*MC.fTOFReferences[0].fTime)");
  tree->SetAlias("dtofrc2","(fESDtrack.fTrackTime[2]-fESDtrack.fTOFsignal)");

  tree->SetAlias("psum","fESDtrack.fTOFr[4]+fESDtrack.fTOFr[3]+fESDtrack.fTOFr[2]+fESDtrack.fTOFr[1]+fESDtrack.fTOFr[0]");
  tree->SetAlias("P0","fESDtrack.fTOFr[0]/psum");
  tree->SetAlias("P1","fESDtrack.fTOFr[1]/psum");
  tree->SetAlias("P2","fESDtrack.fTOFr[2]/psum");
  tree->SetAlias("P3","fESDtrack.fTOFr[3]/psum");
  tree->SetAlias("P4","fESDtrack.fTOFr[4]/psum");
  tree->SetAlias("MaxP","max(max(max(P0,P1),max(P2,P3)),P4)");
}


////////////////////////////////////////////////////////////////////////
AliRecInfoMaker::AliRecInfoMaker(const char* fnGenTracks,
				 const char* fnCmp,
				 const char* fnGalice,
				 Int_t nEvents, Int_t firstEvent):
  
  fEventNr(0),                 //! current event number
  fNEvents(0),                 //! number of events to process
  fFirstEventNr(0),            //! first event to process
  fFileCmp(0),                //! output file with cmp tracks
  fTreeCmp(0),                //! output tree with cmp tracks
  fTreeCmpKinks(0),                //! output tree with cmp Kinks
  fTreeCmpV0(0),                //! output tree with cmp V0
  //
  fFileGenTracks(0),                //! input files with generated tracks   
  fTreeGenTracks(0),           //! tree with generated tracks
  fTreeGenKinks(0),            // tree with gen kinks
  fTreeGenV0(0),            // tree with gen V0
  //
  fLoader(0),         //! pointer to the run loader
  //
  fIndexRecTracks(0),         //! index of particle label in the TreeT_ESD
  fFakeRecTracks(0),          //! number of fake tracks
  fMultiRecTracks(0),         //! number of multiple reconstructions
  //
  fIndexRecKinks(0),         //! index of particle label in treeesd
  fMultiRecKinks(0),         //! number of multiple reconstructions
  fSignedKinks(0),           //! indicator that kink was not fake
  //
  fIndexRecV0(0),         //! index of particle label in treeesd
  fMultiRecV0(0),         //! number of multiple reconstructions
  fSignedV0(0),                //! indicator that kink was not fake
  //
  fRecArray(0),           // container with rec infos
  fEvent(0),             //!event
  fESDfriend(0),              //!event friend
  //
  fParamTPC(0),         //! AliTPCParam
  fNParticles(0),              //! number of particles in the input tree genTracks
  fDebug(0),                   //! debug flag  
  fNextTreeGenEntryToRead(0),    //! last entry already read from genTracks tree
  fNextKinkToRead(0),            //! last entry already read from genKinks tree
  fNextV0ToRead(0),            //! last entry already read from genV0 tree
  //
  fMCInfo(0),           //! MC information writen per particle
  fGenKinkInfo(0),      //! MC information writen per Kink
  fGenV0Info(0),      //! MC information writen per Kink
  fRecInfo(0),          //! Rec. information writen per particle
  fFriend(0),          //! friend track
  fRecKinkInfo(0),    //! reconstructed kink info
  fRecV0Info(0)    //! reconstructed kink info
{
  // AliRecInfoMaker - connencts the MC information with reconstructed information
  // fnGenTracks  - file with MC to be created before using AliGenInfoMaker
  // fnCmp        - file name  to be created  
  // fnGalice     - file with Loaders - usualy galice.root 
  //  
  // nEvent       - number of event s to be analyzed
  // AliRecInfoMaker *t2 = new AliRecInfoMaker("genTracks.root","cmpESDTracks.root","galice.root",0,0);
  //


  Reset();
  //  fFnGenTracks = fnGenTracks;
  //  fFnCmp = fnCmp;

  memset(fFnGenTracks,0,sizeof(fFnGenTracks));
  memset(fFnCmp,0,sizeof(fFnCmp));

  snprintf(fFnGenTracks,1000,"%s",fnGenTracks);
  snprintf(fFnCmp,1000,"%s",fnCmp);

  fFirstEventNr = firstEvent;
  fEventNr = firstEvent;
  fNEvents = nEvents;
  //
  fLoader = AliRunLoader::Open(fnGalice);
  if (gAlice){
    //delete AliRunLoader::Instance();
    delete gAlice;
    gAlice = 0x0;
  }
  if (fLoader->LoadgAlice()){
    cerr<<"Error occured while l"<<endl;
  }
  Int_t nall = fLoader->GetNumberOfEvents();
  if (nEvents==0) {
    nEvents =nall;
    fNEvents=nall;
    fFirstEventNr=0;
  }    

  if (nall<=0){
    cerr<<"no events available"<<endl;
    fEventNr = 0;
    return;
  }
  if (firstEvent+nEvents>nall) {
    fEventNr = nall-firstEvent;
    cerr<<"restricted number of events availaible"<<endl;
  }
  TGeoManager::Import("geometry.root");


}
////////////////////////////////////////////////////////////////////////
AliRecInfoMaker::AliRecInfoMaker(const AliRecInfoMaker& /*info*/):
  
  fEventNr(0),                 //! current event number
  fNEvents(0),                 //! number of events to process
  fFirstEventNr(0),            //! first event to process
  fFileCmp(0),                //! output file with cmp tracks
  fTreeCmp(0),                //! output tree with cmp tracks
  fTreeCmpKinks(0),                //! output tree with cmp Kinks
  fTreeCmpV0(0),                //! output tree with cmp V0
  //
  fFileGenTracks(0),                //! input files with generated tracks   
  fTreeGenTracks(0),           //! tree with generated tracks
  fTreeGenKinks(0),            // tree with gen kinks
  fTreeGenV0(0),            // tree with gen V0
  //
  fLoader(0),         //! pointer to the run loader
  //
  fIndexRecTracks(0),         //! index of particle label in the TreeT_ESD
  fFakeRecTracks(0),          //! number of fake tracks
  fMultiRecTracks(0),         //! number of multiple reconstructions
  //
  fIndexRecKinks(0),         //! index of particle label in treeesd
  fMultiRecKinks(0),         //! number of multiple reconstructions
  fSignedKinks(0),           //! indicator that kink was not fake
  //
  fIndexRecV0(0),         //! index of particle label in treeesd
  fMultiRecV0(0),         //! number of multiple reconstructions
  fSignedV0(0),                //! indicator that kink was not fake
  //
  fRecArray(0),           // container with rec infos
  fEvent(0),             //!event
  fESDfriend(0),              //!event friend
  //
  fParamTPC(0),         //! AliTPCParam
  fNParticles(0),              //! number of particles in the input tree genTracks
  fDebug(0),                   //! debug flag  
  fNextTreeGenEntryToRead(0),    //! last entry already read from genTracks tree
  fNextKinkToRead(0),            //! last entry already read from genKinks tree
  fNextV0ToRead(0),            //! last entry already read from genV0 tree
  //
  fMCInfo(0),           //! MC information writen per particle
  fGenKinkInfo(0),      //! MC information writen per Kink
  fGenV0Info(0),      //! MC information writen per Kink
  fRecInfo(0),          //! Rec. information writen per particle
  fFriend(0),          //! friend track
  fRecKinkInfo(0),    //! reconstructed kink info
  fRecV0Info(0)    //! reconstructed kink info
{
  //
  // Dummy copu constructor
  //
  memset(fFnGenTracks,0,sizeof(fFnGenTracks));
  memset(fFnCmp,0,sizeof(fFnCmp));
}




////////////////////////////////////////////////////////////////////////
AliRecInfoMaker::~AliRecInfoMaker()
{
  //
  // Destructor
  //
  if (fLoader) {
    delete fLoader;
  }
}

//////////////////////////////////////////////////////////////
Int_t AliRecInfoMaker::SetIO()
{
  //
  // SetIO  - Create the input trees
  //
  CreateTreeCmp();
  if (!fTreeCmp) return 1;
  fParamTPC = GetTPCParam();
  //
  if (!ConnectGenTree()) {
    cerr<<"Cannot connect tree with generated tracks"<<endl;
    return 1;
  }
  return 0;
}

//////////////////////////////////////////////////////////////

Int_t AliRecInfoMaker::SetIO(Int_t eventNr)
{
  //
  // 
  // SET INPUT
  //
  TFile f("AliESDs.root");
  //
 
  TTree* tree = (TTree*) f.Get("esdTree");
  tree->SetBranchStatus("*",1);
  fEvent = new AliESDEvent;
  
  if (tree->GetBranch("ESD")){
    //    tree->SetBranchAddress("ESD", &fEvent);
    // tree->SetBranchAddress("ESDfriend.",&fESDfriend);
    // tree->GetEntry(eventNr);
    // fEvent->SetESDfriend(fESDfriend);    
  }else{
    fEvent->ReadFromTree(tree);
    fESDfriend = (AliESDfriend*)fEvent->FindListObject("AliESDfriend"); 
    tree->GetEntry(eventNr);
    fEvent->SetESDfriend(fESDfriend); 
  }    
  


  if (!fEvent) return 1;

  return 0;
}



////////////////////////////////////////////////////////////////////////
void AliRecInfoMaker::Reset()
{
  //
  // Reset the class
  //
  fEventNr = 0;
  fNEvents = 0;
  fTreeCmp = 0;
  fTreeCmpKinks =0;
  fTreeCmpV0 =0;
  //  fFnCmp = "cmpTracks.root";
  fFileGenTracks = 0;
  fDebug = 0;
  //
  fParamTPC = 0;
  fEvent =0;
}

////////////////////////////////////////////////////////////////////////
Int_t AliRecInfoMaker::Exec(Int_t nEvents, Int_t firstEventNr)
{
  //
  // Exec comparison for subrange of events
  //
  fNEvents = nEvents;
  fFirstEventNr = firstEventNr;
  return Exec();
}

////////////////////////////////////////////////////////////////////////
Int_t AliRecInfoMaker::Exec()
{
  //
  // Exec comparison
  //
  TStopwatch timer;
  timer.Start();

  if (SetIO()==1) 
    return 1;
   
  fNextTreeGenEntryToRead = 0;
  fNextKinkToRead = 0;
  fNextV0ToRead   =0;
  cerr<<"fFirstEventNr, fNEvents: "<<fFirstEventNr<<" "<<fNEvents<<endl;
  for (Int_t eventNr = fFirstEventNr; eventNr < fFirstEventNr+fNEvents;
       eventNr++) {
    fEventNr = eventNr;
    SetIO(fEventNr);
    fNParticles = gAlice->GetEvent(fEventNr);    

    fIndexRecTracks = new Short_t[fNParticles*20];  //write at maximum 4 tracks corresponding to particle
    fIndexRecKinks  = new Short_t[fNParticles*20];  //write at maximum 20 tracks corresponding to particle
    fIndexRecV0  = new Short_t[fNParticles*20];  //write at maximum 20 tracks corresponding to particle

    fFakeRecTracks = new Short_t[fNParticles];
    fMultiRecTracks = new Short_t[fNParticles];
    fMultiRecKinks = new Short_t[fNParticles];
    fMultiRecV0 = new Short_t[fNParticles];

    for (Int_t i = 0; i<fNParticles; i++) {
      for (Int_t j=0;j<20;j++){
	fIndexRecTracks[20*i+j] = -1;
	fIndexRecKinks[20*i+j]  = -1;
	fIndexRecV0[20*i+j]  = -1;
      }
      fFakeRecTracks[i] = 0;
      fMultiRecTracks[i] = 0;
      fMultiRecKinks[i] = 0;
      fMultiRecV0[i] = 0;      
    }
  
    cout<<"Start to process event "<<fEventNr<<endl;
    cout<<"\tfNParticles = "<<fNParticles<<endl;
    if (fDebug>2) cout<<"\tStart loop over TreeT"<<endl;
    if (TreeTLoop()>0) return 1;

    if (fDebug>2) cout<<"\tStart loop over tree genTracks"<<endl;
    if (TreeGenLoop(eventNr)>0) return 1;
    //BuildKinkInfo0(eventNr);
    BuildV0Info(eventNr); // no V0 info for a moment
    fRecArray->Delete();

    if (fDebug>2) cout<<"\tEnd loop over tree genTracks"<<endl;

    delete [] fIndexRecTracks;
    delete [] fIndexRecKinks;
    delete [] fIndexRecV0;
    delete [] fFakeRecTracks;
    delete [] fMultiRecTracks;
    delete [] fMultiRecKinks;
    delete [] fMultiRecV0;
  }

  CloseOutputFile();

  cerr<<"Exec finished"<<endl;
  timer.Stop();
  timer.Print();
  return 0;

}
////////////////////////////////////////////////////////////////////////
Bool_t AliRecInfoMaker::ConnectGenTree()
{
//
// connect all branches from the genTracksTree
// use the same variables as for the new cmp tree, it may work
//
  fFileGenTracks = TFile::Open(fFnGenTracks,"READ");
  if (!fFileGenTracks) {
    cerr<<"Error in ConnectGenTree: cannot open file "<<fFnGenTracks<<endl;
    return kFALSE;
  }
  fTreeGenTracks = (TTree*)fFileGenTracks->Get("genTracksTree");
  if (!fTreeGenTracks) {
    cerr<<"Error in ConnectGenTree: cannot find genTracksTree in the file "
	<<fFnGenTracks<<endl;
    return kFALSE;
  }
  //
  fMCInfo = new AliMCInfo;
  fTreeGenTracks->SetBranchAddress("MC",&fMCInfo);
  //
  //
  fTreeGenKinks = (TTree*)fFileGenTracks->Get("genKinksTree");
  if (!fTreeGenKinks) {
    cerr<<"Error in ConnectGenTree: cannot find genTracksTree in the file "
	<<fFnGenTracks<<endl;
    //return kFALSE;
  }
  else{
    fGenKinkInfo = new AliGenKinkInfo;
    fTreeGenKinks->SetBranchAddress("MC",&fGenKinkInfo);
  }

  fTreeGenV0 = (TTree*)fFileGenTracks->Get("genV0Tree");
  if (!fTreeGenV0) {
    cerr<<"Error in ConnectGenTree: cannot find genTracksTree in the file "
	<<fFnGenTracks<<endl;
    //return kFALSE;
  }
  else{
    fGenV0Info = new AliGenV0Info;
    fTreeGenV0->SetBranchAddress("MC",&fGenV0Info);
  }
  //
  if (fDebug > 1) {
    cout<<"Number of gen. tracks with TR: "<<fTreeGenTracks->GetEntries()<<endl;
  }
  return kTRUE;
}


////////////////////////////////////////////////////////////////////////
void AliRecInfoMaker::CreateTreeCmp() 
{
  //
  // Create file and tree with comparison information 
  //
  fFileCmp = TFile::Open(fFnCmp,"RECREATE");
  if (!fFileCmp) {
    cerr<<"Error in CreateTreeCmp: cannot open file "<<fFnCmp<<endl;
    return;
  }
  //
  //
  fTreeCmp    = new TTree("ESDcmpTracks","ESDcmpTracks");
  fMCInfo = new AliMCInfo;
  fRecInfo = new AliESDRecInfo;
  AliESDtrack * esdTrack = new AliESDtrack; 
  //  AliITStrackMI * itsTrack = new AliITStrackMI;  
  fTreeCmp->Branch("MC","AliMCInfo",&fMCInfo,256000);
  fTreeCmp->Branch("RC","AliESDRecInfo",&fRecInfo,256000);
  //  fTreeCmp->Branch("ITS","AliITStrackMI",&itsTrack);
  delete esdTrack;
  //
  //
  fTreeCmpKinks    = new TTree("ESDcmpKinks","ESDcmpKinks"); 
  fGenKinkInfo     = new AliGenKinkInfo;
  fRecKinkInfo     = new AliESDRecKinkInfo;
  fTreeCmpKinks->Branch("MC.","AliGenKinkInfo",&fGenKinkInfo,256000);
  fTreeCmpKinks->Branch("RC.","AliESDRecKinkInfo",&fRecKinkInfo,256000);
  //
  //
  fTreeCmpV0       = new TTree("ESDcmpV0","ESDcmpV0"); 
  fGenV0Info     = new AliGenV0Info;
  fRecV0Info     = new AliESDRecV0Info;
  fTreeCmpV0->Branch("MC.","AliGenV0Info",   &fGenV0Info,256000);
  fTreeCmpV0->Branch("RC.","AliESDRecV0Info",&fRecV0Info,256000);
  //
  fTreeCmp->AutoSave(); 
  fTreeCmpKinks->AutoSave(); 
  fTreeCmpV0->AutoSave(); 
}

////////////////////////////////////////////////////////////////////////
void AliRecInfoMaker::CloseOutputFile()  
{
  //
  // Close output file
  //

  if (!fFileCmp) {
    cerr<<"File "<<fFnCmp<<" not found as an open file."<<endl;
    return;
  }
  fFileCmp->cd();
  fTreeCmp->Write();    
  delete fTreeCmp;
  
  fFileCmp->Close();
  delete fFileCmp;
  return;
}
////////////////////////////////////////////////////////////////////////

TVector3 AliRecInfoMaker::TR2Local(AliTrackReference *trackRef,
			    AliTPCParam *paramTPC) {

  //
  // Transform position to the local coord frame
  //
  
  Float_t x[3] = { trackRef->X(),trackRef->Y(),trackRef->Z()};
  Int_t index[4];
  paramTPC->Transform0to1(x,index);
  paramTPC->Transform1to2Ideal(x,index);
  return TVector3(x);
}
////////////////////////////////////////////////////////////////////////

Int_t AliRecInfoMaker::TreeTLoop()
{
  //
  // loop over all ESD reconstructed tracks and store info in memory
  //
  // + loop over all reconstructed kinks
  TStopwatch  timer;
  timer.Start();
  //  
  Int_t nEntries = (Int_t)fEvent->GetNumberOfTracks();  
  Int_t nKinks = (Int_t) fEvent->GetNumberOfKinks();
  Int_t nV0MIs = (Int_t) fEvent->GetNumberOfV0s();
  fSignedKinks = new Short_t[nKinks];
  fSignedV0    = new Short_t[nV0MIs];
  //
  // load kinks to the memory
  for (Int_t i=0; i<nKinks;i++){
    //    AliESDkink * kink =
    fEvent->GetKink(i);
    fSignedKinks[i]=0;
  }
  //
  for (Int_t i=0; i<nV0MIs;i++){
    //AliV0 * v0MI = 
    (AliV0*)fEvent->GetV0(i);
    fSignedV0[i]=0;
  }
  
  //
  //
  AliESDtrack * track=0;
  for (Int_t iEntry=0; iEntry<nEntries;iEntry++){
    track = (AliESDtrack*)fEvent->GetTrack(iEntry);
    //
    Int_t label = track->GetLabel();
    Int_t absLabel = abs(label);
    if (absLabel < fNParticles) {
      //      fIndexRecTracks[absLabel] =  iEntry;
      if (label < 0) fFakeRecTracks[absLabel]++;      
      if (fMultiRecTracks[absLabel]>0){
	if (fMultiRecTracks[absLabel]<20)
	  fIndexRecTracks[absLabel*20+fMultiRecTracks[absLabel]] =  iEntry; 	
      }
      else      
	fIndexRecTracks[absLabel*20] =  iEntry;
      fMultiRecTracks[absLabel]++;
    }
  }
  // sort reconstructed kinks  
  //
  AliESDkink * kink=0;
  for (Int_t iEntry=0; iEntry<nKinks;iEntry++){
    kink = (AliESDkink*)fEvent->GetKink(iEntry);
    if (!kink) continue;
    //
    Int_t label0 = TMath::Abs(kink->GetLabel(0));
    Int_t label1 = TMath::Abs(kink->GetLabel(1));
    Int_t absLabel = TMath::Min(label0,label1);
    if (absLabel < fNParticles) {
      if (fMultiRecKinks[absLabel]>0){
	if (fMultiRecKinks[absLabel]<20)
	  fIndexRecKinks[absLabel*20+fMultiRecKinks[absLabel]] =  iEntry; 	
      }
      else      
	fIndexRecKinks[absLabel*20] =  iEntry;
      fMultiRecKinks[absLabel]++;
    }
  }  
  // --sort reconstructed V0
  //
  AliV0 * v0MI=0;
  for (Int_t iEntry=0; iEntry<nV0MIs;iEntry++){
    v0MI = (AliV0*)fEvent->GetV0(iEntry);
    if (!v0MI) continue;
    //
    //
    //
    //Int_t label0 = TMath::Abs(v0MI->GetLabel(0));
    //Int_t label1 = TMath::Abs(v0MI->GetLabel(1));
    AliESDtrack * trackn = fEvent->GetTrack((v0MI->GetNindex()));
    AliESDtrack * trackp = fEvent->GetTrack((v0MI->GetPindex()));
    Int_t labels[2]={-1,-1};
    labels[0] = (trackn==0) ? -1 : TMath::Abs(trackn->GetLabel()); 
    labels[1] = (trackp==0) ? -1 : TMath::Abs(trackp->GetLabel()); 
    //
    for (Int_t i=0;i<2;i++){
      Int_t absLabel =  TMath::Abs(labels[i]);
      if (absLabel < fNParticles) {
	if (fMultiRecV0[absLabel]>0){
	  if (fMultiRecV0[absLabel]<20)
	    fIndexRecV0[absLabel*20+fMultiRecV0[absLabel]] =  iEntry; 	
	}
	else      
	  fIndexRecV0[absLabel*20] =  iEntry;
	fMultiRecV0[absLabel]++;
      }
    }
  }  


  printf("Time spended in TreeTLoop\n");
  timer.Print();
  
  if (fDebug > 2) cerr<<"end of TreeTLoop"<<endl;  
  return 0;
}

////////////////////////////////////////////////////////////////////////
Int_t AliRecInfoMaker::TreeGenLoop(Int_t eventNr)
{
//
// loop over all entries for a given event, find corresponding 
// rec. track and store in the fTreeCmp
//
  TStopwatch timer;
  timer.Start();
  Int_t entry = fNextTreeGenEntryToRead;
  Double_t nParticlesTR = fTreeGenTracks->GetEntriesFast();
  cerr<<"fNParticles, nParticlesTR, fNextTreeGenEntryToRead: "<<fNParticles<<" "
      <<nParticlesTR<<" "<<fNextTreeGenEntryToRead<<endl;
  TBranch * branch = fTreeCmp->GetBranch("RC");
  //  TBranch * branchF = fTreeCmp->GetBranch("F");
  
  branch->SetAddress(&fRecInfo); // set all pointers
  fRecArray = new TObjArray(fNParticles);
  AliESDtrack dummytrack;  //
  AliESDfriendTrack dummytrackF;  //

  while (entry < nParticlesTR) {
    fTreeGenTracks->GetEntry(entry);
    entry++;
    if (eventNr < fMCInfo->fEventNr) continue;
    if (eventNr > fMCInfo->fEventNr) continue;
    if (fMCInfo->GetCharge()==0) continue;
    //
    fNextTreeGenEntryToRead = entry-1;
    if (fDebug > 2 && fMCInfo->fLabel < 10) {
      cerr<<"Fill track with a label "<<fMCInfo->fLabel<<endl;
    }
    //    if (fMCInfo->fNTPCRef<1) continue; // not TPCref
    //
    fRecInfo->Reset();
    AliESDtrack * track=0;
    fRecInfo->fReconstructed =0;
    TVector3 local = TR2Local(&(fMCInfo->fTrackRef),fParamTPC);
    local.GetXYZ(fRecInfo->fTRLocalCoord);	
    //
    if (fIndexRecTracks[fMCInfo->fLabel*20] >= 0) {
      track= (AliESDtrack*)fEvent->GetTrack(fIndexRecTracks[fMCInfo->fLabel*20]);
      if(!track) continue;
      //
      //
      // find nearest track if multifound
      //Int_t sign = Int_t(track->GetSign()*fMCInfo->fCharge);
      //
      Int_t status = 0;
      if  ((track->GetStatus()&AliESDtrack::kITSrefit)>0) status++;
      if  ((track->GetStatus()&AliESDtrack::kTPCrefit)>0) status++;
      if  ((track->GetStatus()&AliESDtrack::kTRDrefit)>0) status++;

      //
      if (fIndexRecTracks[fMCInfo->fLabel*20+1]>0){
	//
	Double_t p[3];
	track->GetInnerPxPyPz(p);
	Float_t maxp = p[0]*p[0]+p[1]*p[1]+p[2]*p[2];
	//
	for (Int_t i=1;i<20;i++){
	  if (fIndexRecTracks[fMCInfo->fLabel*20+i]>=0){
	    AliESDtrack * track2 = (AliESDtrack*)fEvent->GetTrack(fIndexRecTracks[fMCInfo->fLabel*20+i]);
	    if (!track2) continue;
	    //Int_t sign2 = track->GetSign()*fMCInfo->fCharge; //	    
	    //if (sign2<0) continue;
	    track2->GetInnerPxPyPz(p);
	    Float_t mom = p[0]*p[0]+p[1]*p[1]+p[2]*p[2];
	    /*
	    if (sign<0){
	      sign = sign2;
	      track = track2;
	      maxp = mom;
	      continue;
	    }
	    */
	    //
	    Int_t status2 = 0;
	    if  ((track2->GetStatus()&AliESDtrack::kITSrefit)>0) status2++;
	    if  ((track2->GetStatus()&AliESDtrack::kTPCrefit)>0) status2++;
	    if  ((track2->GetStatus()&AliESDtrack::kTRDrefit)>0) status2++;
	    if (status2<status) continue;
	    //
	    if (mom<maxp) continue;
	    maxp = mom;
	    track = track2;
	    //
	  }
	}
      }	
      //
      fRecInfo->SetESDtrack(track);

      /*
      if (track) {
	fRecInfo->SetESDtrack(track);
      }else{
	fRecInfo->SetESDtrack(&dummytrack);
      }
      */
      //

      fRecInfo->fReconstructed = 1;
      fRecInfo->fFake     = fFakeRecTracks[fMCInfo->fLabel];
      fRecInfo->fMultiple = fMultiRecTracks[fMCInfo->fLabel];
      //
      fRecInfo->Update(fMCInfo,fParamTPC,kTRUE);          
    }
    else{
      fRecInfo->SetESDtrack(&dummytrack);
      fRecInfo->Update(fMCInfo,fParamTPC,kFALSE);
    }
    fRecArray->AddAt(new AliESDRecInfo(*fRecInfo),fMCInfo->fLabel);
    fTreeCmp->Fill();
  }
  fTreeCmp->AutoSave();
  printf("Time spended in TreeGenLoop\n");
  timer.Print();
  if (fDebug > 2) cerr<<"end of TreeGenLoop"<<endl;

  return 0;
}



////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
Int_t AliRecInfoMaker::BuildKinkInfo0(Int_t eventNr)
{
//
// loop over all entries for a given event, find corresponding 
// rec. track and store in the fTreeCmp
//
  TStopwatch timer;
  timer.Start();
  Int_t entry = fNextKinkToRead;
  Double_t nParticlesTR = fTreeGenKinks->GetEntriesFast();
  cerr<<"fNParticles, nParticlesTR, fNextKinkToRead: "<<fNParticles<<" "
      <<nParticlesTR<<" "<<fNextKinkToRead<<endl;
  //
  TBranch * branch = fTreeCmpKinks->GetBranch("RC.");
  branch->SetAddress(&fRecKinkInfo); // set all pointers
  
  //
  while (entry < nParticlesTR) {
    fTreeGenKinks->GetEntry(entry);
    entry++;
    if (eventNr < fGenKinkInfo->GetMinus().fEventNr) continue;
    if (eventNr > fGenKinkInfo->GetMinus().fEventNr) continue;;
    //
    fNextKinkToRead = entry-1;
    //
    //
    AliESDRecInfo*  fRecInfo1 = (AliESDRecInfo*)fRecArray->At(fGenKinkInfo->GetMinus().fLabel);
    if(!fRecInfo1) continue;
    AliESDRecInfo*  fRecInfo2 = (AliESDRecInfo*)fRecArray->At(fGenKinkInfo->GetPlus().fLabel);
    if(!fRecInfo2) continue;
    fRecKinkInfo->fT1 = (*fRecInfo1);
    fRecKinkInfo->fT2 = (*fRecInfo2);
    fRecKinkInfo->fStatus =0;
    if (fRecInfo1 && fRecInfo1->fTPCOn) fRecKinkInfo->fStatus+=1;
    if (fRecInfo2 && fRecInfo2->fTPCOn) fRecKinkInfo->fStatus+=2;
    if (fRecKinkInfo->fStatus==3&&fRecInfo1->fSign!=fRecInfo2->fSign) fRecKinkInfo->fStatus*=-1;
    
    if (fRecKinkInfo->fStatus==3){
      fRecKinkInfo->Update();    
    }
    Int_t label =  TMath::Min(fGenKinkInfo->GetMinus().fLabel,fGenKinkInfo->GetPlus().fLabel);
    Int_t label2 = TMath::Max(fGenKinkInfo->GetMinus().fLabel,fGenKinkInfo->GetPlus().fLabel);
    
    AliESDkink *kink=0;
    fRecKinkInfo->fRecStatus   =0;
    fRecKinkInfo->fMultiple    = fMultiRecKinks[label];
    fRecKinkInfo->fKinkMultiple=0;
    //
    if (fMultiRecKinks[label]>0){

      //      for (Int_t j=0;j<TMath::Min(fMultiRecKinks[label],100);j++){
      for (Int_t j=TMath::Min(fMultiRecKinks[label],Short_t(20))-1;j>=0;j--){
	Int_t index = fIndexRecKinks[label*20+j];
	//AliESDkink *kink2  = (AliESDkink*)fKinks->At(index);
	AliESDkink *kink2  = (AliESDkink*)fEvent->GetKink(index);
	if (TMath::Abs(kink2->GetLabel(0))==label &&TMath::Abs(kink2->GetLabel(1))==label2) {
	  fRecKinkInfo->fKinkMultiple++;
	  fSignedKinks[index]=1;
	  Int_t c0=0;
	  if (kink){
	    //	    if (kink->fTRDOn) c0++;
	    //if (kink->fITSOn) c0++;
	    if (kink->GetStatus(2)>0) c0++;
	    if (kink->GetStatus(0)>0) c0++;
	  }
	  Int_t c2=0;
	  //	  if (kink2->fTRDOn) c2++;
	  //if (kink2->fITSOn) c2++;
	  if (kink2->GetStatus(2)>0) c2++;
	  if (kink2->GetStatus(0)>0) c2++;

	  if (c2<c0) continue;
	  kink =kink2;
	}
	if (TMath::Abs(kink2->GetLabel(1))==label &&TMath::Abs(kink2->GetLabel(0))==label2) {
	  fRecKinkInfo->fKinkMultiple++;
	  fSignedKinks[index]=1;
	  Int_t c0=0;
	  if (kink){
	    //if (kink->fTRDOn) c0++;
	    //if (kink->fITSOn) c0++;
	    if (kink->GetStatus(2)>0) c0++;
	    if (kink->GetStatus(0)>0) c0++;

	  }
	  Int_t c2=0;
	  //	  if (kink2->fTRDOn) c2++;
	  //if (kink2->fITSOn) c2++;
	  if (kink2->GetStatus(2)>0) c2++;
	  if (kink2->GetStatus(0)>0) c2++;

	  if (c2<c0) continue;
	  kink =kink2;
	}
      }
    }
    if (kink){
      fRecKinkInfo->fKink = *kink;
      fRecKinkInfo->fRecStatus=1;
    }
    fTreeCmpKinks->Fill();
  }
  //  Int_t nkinks = fKinks->GetEntriesFast();
  Int_t nkinks = fEvent->GetNumberOfKinks();
  for (Int_t i=0;i<nkinks;i++){
    if (fSignedKinks[i]==0){
      //      AliESDkink *kink  = (AliESDkink*)fKinks->At(i);
      AliESDkink *kink  = (AliESDkink*)fEvent->GetKink(i);
      if (!kink) continue;
      //
      fRecKinkInfo->fKink = *kink;
      fRecKinkInfo->fRecStatus =-2;
      //
      AliESDRecInfo*  fRecInfo1 = (AliESDRecInfo*)fRecArray->At(TMath::Abs(kink->GetLabel(0)));
      AliESDRecInfo*  fRecInfo2 = (AliESDRecInfo*)fRecArray->At(TMath::Abs(kink->GetLabel(1)));
      if (fRecInfo1 && fRecInfo2){
	fRecKinkInfo->fT1 = (*fRecInfo1);
	fRecKinkInfo->fT2 = (*fRecInfo2);
	fRecKinkInfo->fRecStatus =-1;
      }
      fTreeCmpKinks->Fill();
    }
  }


  fTreeCmpKinks->AutoSave();
  printf("Time spended in BuilKinkInfo Loop\n");
  timer.Print();
  if (fDebug > 2) cerr<<"end of BuildKinkInfo Loop"<<endl;
  return 0;
}



////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////



Int_t AliRecInfoMaker::BuildV0Info(Int_t eventNr)
{
//
// loop over all entries for a given event, find corresponding 
// rec. track and store in the fTreeCmp
//
  static TDatabasePDG pdgtable;

  TStopwatch timer;
  timer.Start();
  Int_t entry = fNextV0ToRead;
  Double_t nParticlesTR = fTreeGenV0->GetEntriesFast();
  cerr<<"fNParticles, nParticlesTR, fNextV0ToRead: "<<fNParticles<<" "
      <<nParticlesTR<<" "<<fNextV0ToRead<<endl;
  //
  TBranch * branch = fTreeCmpV0->GetBranch("RC.");
  branch->SetAddress(&fRecV0Info); // set all pointers
  const AliESDVertex * esdvertex = fEvent->GetVertex();
  Float_t vertex[3]= {static_cast<Float_t>(esdvertex->GetX()), static_cast<Float_t>(esdvertex->GetY()),static_cast<Float_t>(esdvertex->GetZ())};
  
  //
  while (entry < nParticlesTR) {
    fTreeGenV0->GetEntry(entry);
    entry++;
    fRecV0Info->Reset();  //reset all variables
    if (eventNr < fGenV0Info->GetMinus().fEventNr) continue;
    if (eventNr > fGenV0Info->GetMinus().fEventNr) continue;;
    //
    fNextV0ToRead = entry-1;
    //
    //
    AliESDRecInfo*  fRecInfo1 = (AliESDRecInfo*)fRecArray->At(fGenV0Info->GetMinus().fLabel);
    AliESDRecInfo*  fRecInfo2 = (AliESDRecInfo*)fRecArray->At(fGenV0Info->GetPlus().fLabel);
    if (fGenV0Info->GetMinus().fCharge*fGenV0Info->GetPlus().fCharge>0) continue;  // interactions
    if (!fRecInfo1 || !fRecInfo2) continue;
    fRecV0Info->fT1 = (*fRecInfo1);
    fRecV0Info->fT2 = (*fRecInfo2);
    fRecV0Info->fV0Status =0;
    if (fRecInfo1 && fRecInfo1->fStatus[1]>0) fRecV0Info->fV0Status+=1;
    if (fRecInfo2 && fRecInfo2->fStatus[1]>0) fRecV0Info->fV0Status+=2;

    if (fRecV0Info->fV0Status==3&&fRecInfo1->fSign==fRecInfo2->fSign) fRecV0Info->fV0Status*=-1;


    if (abs(fRecV0Info->fV0Status)==3){
      fRecV0Info->Update(vertex);
      {
	//
	// TPC V0 Info
	Double_t x,alpha, param[5],cov[15];
	if ( fRecV0Info->fT1.GetESDtrack()->GetInnerParam() && fRecV0Info->fT2.GetESDtrack()->GetInnerParam()){
	  fRecV0Info->fT1.GetESDtrack()->GetInnerExternalParameters(alpha,x,param);
	  fRecV0Info->fT1.GetESDtrack()->GetInnerExternalCovariance(cov);
	  AliExternalTrackParam paramP(x,alpha,param,cov);
	  //
	  fRecV0Info->fT2.GetESDtrack()->GetInnerExternalParameters(alpha,x,param);
	  fRecV0Info->fT2.GetESDtrack()->GetInnerExternalCovariance(cov);
	  AliExternalTrackParam paramM(x,alpha,param,cov);
	  //
	  fRecV0Info->fV0tpc->SetParamN(paramM);
	  fRecV0Info->fV0tpc->SetParamP(paramP);
	  Double_t pid1[5],pid2[5];
	  fRecV0Info->fT1.GetESDtrack()->GetESDpid(pid1);
	  fRecV0Info->fT1.GetESDtrack()->GetESDpid(pid2);
	  //
	  //fRecV0Info->fV0tpc.UpdatePID(pid1,pid2);
	  fRecV0Info->fV0tpc->Update(vertex);
	
	  //
	  //
	  fRecV0Info->fT1.GetESDtrack()->GetExternalParameters(x,param);
	  fRecV0Info->fT1.GetESDtrack()->GetExternalCovariance(cov);
	  alpha = fRecV0Info->fT1.GetESDtrack()->GetAlpha();
	  new (&paramP) AliExternalTrackParam(x,alpha,param,cov);
	  //
	  fRecV0Info->fT2.GetESDtrack()->GetExternalParameters(x,param);
	  fRecV0Info->fT2.GetESDtrack()->GetExternalCovariance(cov);
	  alpha = fRecV0Info->fT2.GetESDtrack()->GetAlpha();
	  new (&paramM) AliExternalTrackParam(x,alpha,param,cov);
	  //
	  fRecV0Info->fV0its->SetParamN(paramM);
	  fRecV0Info->fV0its->SetParamP(paramP);
	  //	  fRecV0Info->fV0its.UpdatePID(pid1,pid2);
	  fRecV0Info->fV0its->Update(vertex);
	}
      }
      //
      // ????
      // 
      if (TMath::Abs(fGenV0Info->GetMinus().fPdg)==11 &&TMath::Abs(fGenV0Info->GetPlus().fPdg)==11){
	if (fRecV0Info->fDist2>10){
	  fRecV0Info->Update(vertex);
	}
	if (fRecV0Info->fDist2>10){
	  fRecV0Info->Update(vertex);
	}
      }
    }   
    //
    // take the V0 from reconstruction
 
    Int_t label =  TMath::Min(fGenV0Info->GetMinus().fLabel,fGenV0Info->GetPlus().fLabel);
    Int_t label2 = TMath::Max(fGenV0Info->GetMinus().fLabel,fGenV0Info->GetPlus().fLabel);    
    AliV0 *v0MI=0;
    AliV0 *v0MIOff=0;
    fRecV0Info->fRecStatus   =0;
    fRecV0Info->fMultiple    = fMultiRecV0[label];
    fRecV0Info->fV0MultipleOn=0;
    fRecV0Info->fV0MultipleOff=0;
    //
    if (fMultiRecV0[label]>0 || fMultiRecV0[label2]>0){

      //      for (Int_t j=0;j<TMath::Min(fMultiRecV0s[label],100);j++){
      for (Int_t j=TMath::Min(fMultiRecV0[label],Short_t(20))-1;j>=0;j--){
	Int_t index = fIndexRecV0[label*20+j];
	if (index<0) continue;
	AliV0 *v0MI2  = (AliV0*)fEvent->GetV0(index);
	// get track labels
	AliESDtrack * trackn = fEvent->GetTrack((v0MI2->GetNindex()));
	AliESDtrack * trackp = fEvent->GetTrack((v0MI2->GetPindex()));
	Int_t vlabeln = (trackn==0) ? -1 : trackn->GetLabel(); 
	Int_t vlabelp = (trackp==0) ? -1 : trackp->GetLabel(); 
	fRecV0Info->fLab[0]=TMath::Abs(vlabelp);
	fRecV0Info->fLab[1]=TMath::Abs(vlabeln); 
	//
	if (TMath::Abs(vlabeln)==label &&TMath::Abs(vlabelp)==label2) {
	  if (v0MI2->GetOnFlyStatus()) {
	    v0MI =v0MI2;
	    fRecV0Info->fV0MultipleOn++;
	  }else  {
	    v0MIOff = v0MI2;
	    fRecV0Info->fV0MultipleOff++;
	  }
	  fSignedV0[index]=1;
	}
	if (TMath::Abs(vlabelp)==label &&TMath::Abs(vlabeln)==label2) {
	  if (v0MI2->GetOnFlyStatus()){
	    v0MI =v0MI2;
	    fRecV0Info->fV0MultipleOn++;
	  }else  {
	    v0MIOff = v0MI2;
	    fRecV0Info->fV0MultipleOff++;
	  }
	  fSignedV0[index]=1;
	}
      }
    }
    if (v0MI){
      new (fRecV0Info->fV0rec) AliV0(*v0MI);
      fRecV0Info->fRecStatus=1;
    }
    if (v0MIOff){
      new (fRecV0Info->fV0recOff) AliV0(*v0MIOff);
      fRecV0Info->fRecStatus=1;
    }
    Int_t mpdg = fGenV0Info->GetMother().GetPdgCode();
    Float_t mass = ( pdgtable.GetParticle(mpdg)==0) ? 0 :pdgtable.GetParticle(mpdg)->Mass();
    fRecV0Info->UpdateKF(*esdvertex,
			 fGenV0Info->GetPlus().GetPdg(),
			 fGenV0Info->GetMinus().GetPdg(),
			 mass);
    fTreeCmpV0->Fill();
  }
  //
  // write fake v0s
  //
  Int_t nV0MIs = fEvent->GetNumberOfV0s();
  for (Int_t i=0;i<nV0MIs;i++){
    if (fSignedV0[i]==0){
      AliV0 *v0MI  = (AliV0*)fEvent->GetV0(i);
      if (!v0MI) continue;
      fRecV0Info->Reset();  //reset all variables
      //
      new (fRecV0Info->fV0rec) AliV0(*v0MI);
      fRecV0Info->fV0Status  =-10;
      fRecV0Info->fRecStatus =-2;
      //
      AliESDtrack * trackn = fEvent->GetTrack((v0MI->GetNindex()));
      AliESDtrack * trackp = fEvent->GetTrack((v0MI->GetPindex()));
      Int_t vlabeln = (trackn==0) ? -1 : trackn->GetLabel(); 
      Int_t vlabelp = (trackp==0) ? -1 : trackp->GetLabel(); 
      fRecV0Info->fLab[0]=TMath::Abs(vlabelp);
      fRecV0Info->fLab[1]=TMath::Abs(vlabeln);      
      if (TMath::Abs(fRecV0Info->fLab[0] - fRecV0Info->fLab[1])<2) continue;
      AliESDRecInfo*  fRecInfo1 = (AliESDRecInfo*)fRecArray->At(TMath::Abs(vlabeln));
      AliESDRecInfo*  fRecInfo2 = (AliESDRecInfo*)fRecArray->At(TMath::Abs(vlabelp));
      if (fRecInfo1 && fRecInfo2){
	fRecV0Info->fT1 = (*fRecInfo1);
	fRecV0Info->fT2 = (*fRecInfo2);
	fRecV0Info->fRecStatus =-1;
      }
      fRecV0Info->Update(vertex);
      fRecV0Info->UpdateKF(*esdvertex,211,211,0.49767);
      fTreeCmpV0->Fill();
    }
  }



  fTreeCmpV0->AutoSave();
  printf("Time spended in BuilV0Info Loop\n");
  timer.Print();
  if (fDebug > 2) cerr<<"end of BuildV0Info Loop"<<endl;
  return 0;
}
////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////


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