#include <TArrayD.h>
#include <TArrayF.h>
#include <TArrayS.h>
#include <TChain.h>
#include <TFile.h>
#include <TGeoGlobalMagField.h>
#include <TGeoManager.h>
#include <TList.h>
#include <TLorentzVector.h>
#include <TMap.h>
#include <TObjArray.h>
#include <TPRegexp.h>
#include <TParameter.h>
#include <TPluginManager.h>
#include <TProof.h>
#include <TProofOutputFile.h>
#include <TROOT.h>
#include <TSystem.h>
#include <THashTable.h>
#include <TGrid.h>
#include <TMessage.h>
#include <TUrl.h>
#include <TRandom.h>
#include <THashList.h>
#include "AliAlignObj.h"
#include "AliAnalysisManager.h"
#include "AliAnalysisDataContainer.h"
#include "AliCDBEntry.h"
#include "AliCDBManager.h"
#include "AliCDBStorage.h"
#include "AliCTPRawStream.h"
#include "AliCascadeVertexer.h"
#include "AliCentralTrigger.h"
#include "AliCodeTimer.h"
#include "AliDAQ.h"
#include "AliDetectorRecoParam.h"
#include "AliESDCaloCells.h"
#include "AliESDCaloCluster.h"
#include "AliESDEvent.h"
#include "AliESDMuonTrack.h"
#include "AliESDPmdTrack.h"
#include "AliESDTagCreator.h"
#include "AliESDVertex.h"
#include "AliESDcascade.h"
#include "AliESDfriend.h"
#include "AliESDkink.h"
#include "AliESDpid.h"
#include "AliESDtrack.h"
#include "AliESDtrack.h"
#include "AliEventInfo.h"
#include "AliGRPObject.h"
#include "AliGRPRecoParam.h"
#include "AliGenEventHeader.h"
#include "AliGeomManager.h"
#include "AliGlobalQADataMaker.h"
#include "AliHeader.h"
#include "AliLog.h"
#include "AliMagF.h"
#include "AliMultiplicity.h"
#include "AliPID.h"
#include "AliPlaneEff.h"
#include "AliQAv1.h"
#include "AliQADataMakerRec.h"
#include "AliQAManager.h"
#include "AliRawVEvent.h"
#include "AliRawEventHeaderBase.h"
#include "AliRawHLTManager.h"
#include "AliRawReaderDate.h"
#include "AliRawReaderFile.h"
#include "AliRawReaderRoot.h"
#include "AliRecoInputHandler.h"
#include "AliReconstruction.h"
#include "AliReconstructor.h"
#include "AliRun.h"
#include "AliRunInfo.h"
#include "AliRunLoader.h"
#include "AliSysInfo.h"
#include "AliTrackPointArray.h"
#include "AliTracker.h"
#include "AliTriggerClass.h"
#include "AliTriggerCluster.h"
#include "AliTriggerIR.h"
#include "AliTriggerConfiguration.h"
#include "AliV0vertexer.h"
#include "AliVertexer.h"
#include "AliTrackleter.h"
#include "AliVertexerTracks.h"
#include "AliTriggerRunScalers.h"
#include "AliCTPTimeParams.h"
#include "AliESDHLTDecision.h"
#include "AliTriggerInput.h"
#include "AliLHCData.h"
#include "ARVersion.h"
#include <RVersion.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/resource.h>
ClassImp(AliReconstruction)
using std::endl;
const char* AliReconstruction::fgkStopEvFName = "_stopEvent_";
const char* AliReconstruction::fgkDetectorName[AliReconstruction::kNDetectors] = {"ITS", "TPC", "TRD",
"TOF", "PHOS",
"HMPID", "EMCAL", "MUON", "FMD", "ZDC", "PMD", "T0", "VZERO", "ACORDE","AD","FIT","MFT", "HLT"};
AliReconstruction::AliReconstruction(const char* gAliceFilename) :
TSelector(),
fRunVertexFinder(kTRUE),
fRunVertexFinderTracks(kTRUE),
fRunMuonTracking(kFALSE),
fRunMFTTrackingMU(kFALSE),
fRunV0Finder(kTRUE),
fRunCascadeFinder(kTRUE),
fRunMultFinder(kTRUE),
fStopOnError(kTRUE),
fStopOnMissingTriggerFile(kTRUE),
fWriteAlignmentData(kFALSE),
fWriteESDfriend(kFALSE),
fFillTriggerESD(kTRUE),
fCleanESD(kTRUE),
fV0DCAmax(3.),
fV0CsPmin(0.),
fDmax(50.),
fZmax(50.),
fRunLocalReconstruction("ALL"),
fRunTracking("ALL"),
fFillESD("ALL"),
fDeleteRecPoints(""),
fDeleteDigits(""),
fLoadCDB(""),
fUseTrackingErrorsForAlignment(""),
fGAliceFileName(gAliceFilename),
fRawInput(""),
fESDOutput(""),
fProofOutputFileName(""),
fProofOutputLocation(""),
fProofOutputDataset(kFALSE),
fProofOutputArchive(""),
fEquipIdMap(""),
fFirstEvent(0),
fLastEvent(-1),
fNumberOfEventsPerFile((UInt_t)-1),
fFractionFriends(0.04),
fOptions(),
fLoadAlignFromCDB(kTRUE),
fLoadAlignData("ALL"),
fUseHLTData(),
fRunInfo(NULL),
fEventInfo(),
fRunScalers(NULL),
fCTPTimeParams(NULL),
fCTPTimeAlign(NULL),
fRunLoader(NULL),
fRawReader(NULL),
fParentRawReader(NULL),
fRecoParam(),
fSPDTrackleter(NULL),
fDiamondProfileSPD(NULL),
fDiamondProfile(NULL),
fDiamondProfileTPC(NULL),
fListOfCosmicTriggers(NULL),
fGRPData(NULL),
fAlignObjArray(NULL),
fCDBUri(),
fQARefUri(),
fSpecCDBUri(),
fCheckRecoCDBvsSimuCDB(),
fInitCDBCalled(kFALSE),
fCDBSnapshotMode(kFALSE),
fSetRunNumberFromDataCalled(kFALSE),
fQADetectors("ALL"),
fQATasks("ALL"),
fRunQA(kTRUE),
fRunGlobalQA(kTRUE),
fSameQACycle(kFALSE),
fInitQACalled(kFALSE),
fWriteQAExpertData(kTRUE),
fRunPlaneEff(kFALSE),
fESDpid(NULL),
fesd(NULL),
fhltesd(NULL),
fesdf(NULL),
ffile(NULL),
ffileF(NULL),
ftree(NULL),
ftreeF(NULL),
fhlttree(NULL),
ftVertexer(NULL),
fIsNewRunLoader(kFALSE),
fRunAliEVE(kFALSE),
fChain(NULL),
fNall(0),
fNspecie(0),
fSspecie(0),
fNhighPt(0),
fShighPt(0),
fTreeBuffSize(30000000),
fMemCountESD(0),
fMemCountESDF(0),
fMemCountESDHLT(0),
fUpgradeModule(""),
fAnalysisMacro(),
fAnalysis(0),
fRecoHandler(0),
fDeclTriggerClasses(""),
fStopped(kFALSE),
fMaxRSS(0),
fMaxVMEM(0)
{
AliGeomManager::Destroy();
for (Int_t iDet = 0; iDet < kNDetectors; iDet++) {
fReconstructor[iDet] = NULL;
fUpgradeMask[iDet]=kFALSE;
fLoader[iDet] = NULL;
fTracker[iDet] = NULL;
}
for (Int_t iDet = 0; iDet < AliQAv1::kNDET; iDet++) {
fQACycles[iDet] = 999999 ;
fQAWriteExpert[iDet] = kFALSE ;
}
fBeamInt[0][0]=fBeamInt[0][1]=fBeamInt[1][0]=fBeamInt[1][1] = -1;
AddCheckRecoCDBvsSimuCDB("TPC/Calib/RecoParam");
AliPID pid;
}
AliReconstruction::AliReconstruction(const AliReconstruction& rec) :
TSelector(),
fRunVertexFinder(rec.fRunVertexFinder),
fRunVertexFinderTracks(rec.fRunVertexFinderTracks),
fRunMuonTracking(rec.fRunMuonTracking),
fRunMFTTrackingMU(rec.fRunMFTTrackingMU),
fRunV0Finder(rec.fRunV0Finder),
fRunCascadeFinder(rec.fRunCascadeFinder),
fRunMultFinder(rec.fRunMultFinder),
fStopOnError(rec.fStopOnError),
fStopOnMissingTriggerFile(rec.fStopOnMissingTriggerFile),
fWriteAlignmentData(rec.fWriteAlignmentData),
fWriteESDfriend(rec.fWriteESDfriend),
fFillTriggerESD(rec.fFillTriggerESD),
fCleanESD(rec.fCleanESD),
fV0DCAmax(rec.fV0DCAmax),
fV0CsPmin(rec.fV0CsPmin),
fDmax(rec.fDmax),
fZmax(rec.fZmax),
fRunLocalReconstruction(rec.fRunLocalReconstruction),
fRunTracking(rec.fRunTracking),
fFillESD(rec.fFillESD),
fDeleteRecPoints(""),
fDeleteDigits(""),
fLoadCDB(rec.fLoadCDB),
fUseTrackingErrorsForAlignment(rec.fUseTrackingErrorsForAlignment),
fGAliceFileName(rec.fGAliceFileName),
fRawInput(rec.fRawInput),
fESDOutput(rec.fESDOutput),
fProofOutputFileName(rec.fProofOutputFileName),
fProofOutputLocation(rec.fProofOutputLocation),
fProofOutputDataset(rec.fProofOutputDataset),
fProofOutputArchive(rec.fProofOutputArchive),
fEquipIdMap(rec.fEquipIdMap),
fFirstEvent(rec.fFirstEvent),
fLastEvent(rec.fLastEvent),
fNumberOfEventsPerFile(rec.fNumberOfEventsPerFile),
fFractionFriends(rec.fFractionFriends),
fOptions(),
fLoadAlignFromCDB(rec.fLoadAlignFromCDB),
fLoadAlignData(rec.fLoadAlignData),
fUseHLTData(rec.fUseHLTData),
fRunInfo(NULL),
fEventInfo(),
fRunScalers(NULL),
fCTPTimeParams(NULL),
fCTPTimeAlign(NULL),
fRunLoader(NULL),
fRawReader(NULL),
fParentRawReader(NULL),
fRecoParam(rec.fRecoParam),
fSPDTrackleter(NULL),
fDiamondProfileSPD(rec.fDiamondProfileSPD),
fDiamondProfile(rec.fDiamondProfile),
fDiamondProfileTPC(rec.fDiamondProfileTPC),
fListOfCosmicTriggers(NULL),
fGRPData(NULL),
fAlignObjArray(rec.fAlignObjArray),
fCDBUri(rec.fCDBUri),
fQARefUri(rec.fQARefUri),
fSpecCDBUri(),
fCheckRecoCDBvsSimuCDB(),
fInitCDBCalled(rec.fInitCDBCalled),
fCDBSnapshotMode(rec.fCDBSnapshotMode),
fSetRunNumberFromDataCalled(rec.fSetRunNumberFromDataCalled),
fQADetectors(rec.fQADetectors),
fQATasks(rec.fQATasks),
fRunQA(rec.fRunQA),
fRunGlobalQA(rec.fRunGlobalQA),
fSameQACycle(rec.fSameQACycle),
fInitQACalled(rec.fInitQACalled),
fWriteQAExpertData(rec.fWriteQAExpertData),
fRunPlaneEff(rec.fRunPlaneEff),
fESDpid(NULL),
fesd(NULL),
fhltesd(NULL),
fesdf(NULL),
ffile(NULL),
ffileF(NULL),
ftree(NULL),
ftreeF(NULL),
fhlttree(NULL),
ftVertexer(NULL),
fIsNewRunLoader(rec.fIsNewRunLoader),
fRunAliEVE(kFALSE),
fChain(NULL),
fNall(0),
fNspecie(0),
fSspecie(0),
fNhighPt(0),
fShighPt(0),
fTreeBuffSize(rec.fTreeBuffSize),
fMemCountESD(0),
fMemCountESDF(0),
fMemCountESDHLT(0),
fUpgradeModule(""),
fAnalysisMacro(rec.fAnalysisMacro),
fAnalysis(0),
fRecoHandler(0),
fDeclTriggerClasses(rec.fDeclTriggerClasses),
fStopped(kFALSE),
fMaxRSS(0),
fMaxVMEM(0)
{
for (Int_t i = 0; i < rec.fOptions.GetEntriesFast(); i++) {
if (rec.fOptions[i]) fOptions.Add(rec.fOptions[i]->Clone());
}
for (Int_t iDet = 0; iDet < kNDetectors; iDet++) {
fReconstructor[iDet] = NULL;
fUpgradeMask[iDet] = kFALSE;
fLoader[iDet] = NULL;
fTracker[iDet] = NULL;
}
for (Int_t iDet = 0; iDet < AliQAv1::kNDET; iDet++) {
fQACycles[iDet] = rec.fQACycles[iDet];
fQAWriteExpert[iDet] = rec.fQAWriteExpert[iDet] ;
}
for (Int_t i = 0; i < rec.fSpecCDBUri.GetEntriesFast(); i++) {
if (rec.fSpecCDBUri[i]) fSpecCDBUri.Add(rec.fSpecCDBUri[i]->Clone());
}
for (Int_t i = 0; i < rec.fCheckRecoCDBvsSimuCDB.GetEntriesFast(); i++) {
if (rec.fCheckRecoCDBvsSimuCDB[i]) fCheckRecoCDBvsSimuCDB.AddLast(rec.fCheckRecoCDBvsSimuCDB[i]->Clone());
}
for (int i=2;i--;) for (int j=2;j--;) fBeamInt[i][j] = rec.fBeamInt[i][j];
}
AliReconstruction& AliReconstruction::operator = (const AliReconstruction& rec)
{
if(&rec == this) return *this;
fRunVertexFinder = rec.fRunVertexFinder;
fRunVertexFinderTracks = rec.fRunVertexFinderTracks;
fRunMuonTracking = rec.fRunMuonTracking;
fRunMFTTrackingMU = rec.fRunMFTTrackingMU;
fRunV0Finder = rec.fRunV0Finder;
fRunCascadeFinder = rec.fRunCascadeFinder;
fRunMultFinder = rec.fRunMultFinder;
fStopOnError = rec.fStopOnError;
fStopOnMissingTriggerFile = rec.fStopOnMissingTriggerFile;
fWriteAlignmentData = rec.fWriteAlignmentData;
fWriteESDfriend = rec.fWriteESDfriend;
fFillTriggerESD = rec.fFillTriggerESD;
fCleanESD = rec.fCleanESD;
fV0DCAmax = rec.fV0DCAmax;
fV0CsPmin = rec.fV0CsPmin;
fDmax = rec.fDmax;
fZmax = rec.fZmax;
fRunLocalReconstruction = rec.fRunLocalReconstruction;
fRunTracking = rec.fRunTracking;
fFillESD = rec.fFillESD;
fDeleteRecPoints = rec.fDeleteRecPoints;
fDeleteDigits = rec.fDeleteDigits;
fLoadCDB = rec.fLoadCDB;
fUseTrackingErrorsForAlignment = rec.fUseTrackingErrorsForAlignment;
fGAliceFileName = rec.fGAliceFileName;
fRawInput = rec.fRawInput;
fESDOutput = rec.fESDOutput;
fProofOutputFileName = rec.fProofOutputFileName;
fProofOutputLocation = rec.fProofOutputLocation;
fProofOutputDataset = rec.fProofOutputDataset;
fProofOutputArchive = rec.fProofOutputArchive;
fEquipIdMap = rec.fEquipIdMap;
fFirstEvent = rec.fFirstEvent;
fLastEvent = rec.fLastEvent;
fNumberOfEventsPerFile = rec.fNumberOfEventsPerFile;
fFractionFriends = rec.fFractionFriends;
for (Int_t i = 0; i < rec.fOptions.GetEntriesFast(); i++) {
if (rec.fOptions[i]) fOptions.Add(rec.fOptions[i]->Clone());
}
fLoadAlignFromCDB = rec.fLoadAlignFromCDB;
fLoadAlignData = rec.fLoadAlignData;
fUseHLTData = rec.fUseHLTData;
delete fRunInfo; fRunInfo = NULL;
if (rec.fRunInfo) fRunInfo = new AliRunInfo(*rec.fRunInfo);
fEventInfo = rec.fEventInfo;
delete fRunScalers; fRunScalers = NULL;
if (rec.fRunScalers) fRunScalers = new AliTriggerRunScalers(*rec.fRunScalers);
delete fCTPTimeParams; fCTPTimeParams = NULL;
if (rec.fCTPTimeParams) fCTPTimeParams = new AliCTPTimeParams(*rec.fCTPTimeParams);
delete fCTPTimeAlign; fCTPTimeAlign = NULL;
if (rec.fCTPTimeAlign) fCTPTimeAlign = new AliCTPTimeParams(*rec.fCTPTimeAlign);
fRunLoader = NULL;
fRawReader = NULL;
fParentRawReader = NULL;
fRecoParam = rec.fRecoParam;
for (Int_t iDet = 0; iDet < kNDetectors; iDet++) {
fUpgradeMask[iDet] = kFALSE;
delete fReconstructor[iDet]; fReconstructor[iDet] = NULL;
delete fLoader[iDet]; fLoader[iDet] = NULL;
delete fTracker[iDet]; fTracker[iDet] = NULL;
}
for (Int_t iDet = 0; iDet < AliQAv1::kNDET; iDet++) {
fQACycles[iDet] = rec.fQACycles[iDet];
fQAWriteExpert[iDet] = rec.fQAWriteExpert[iDet] ;
}
delete fSPDTrackleter; fSPDTrackleter = NULL;
delete fDiamondProfileSPD; fDiamondProfileSPD = NULL;
if (rec.fDiamondProfileSPD) fDiamondProfileSPD = new AliESDVertex(*rec.fDiamondProfileSPD);
delete fDiamondProfile; fDiamondProfile = NULL;
if (rec.fDiamondProfile) fDiamondProfile = new AliESDVertex(*rec.fDiamondProfile);
delete fDiamondProfileTPC; fDiamondProfileTPC = NULL;
if (rec.fDiamondProfileTPC) fDiamondProfileTPC = new AliESDVertex(*rec.fDiamondProfileTPC);
delete fListOfCosmicTriggers; fListOfCosmicTriggers = NULL;
if (rec.fListOfCosmicTriggers) fListOfCosmicTriggers = (THashTable*)((rec.fListOfCosmicTriggers)->Clone());
delete fGRPData; fGRPData = NULL;
if (rec.fGRPData) fGRPData = (AliGRPObject*)((rec.fGRPData)->Clone());
delete fAlignObjArray; fAlignObjArray = NULL;
fCDBUri = "";
fQARefUri = rec.fQARefUri;
fSpecCDBUri.Delete();
fCheckRecoCDBvsSimuCDB.Delete();
for (Int_t i = 0; i < rec.fCheckRecoCDBvsSimuCDB.GetEntriesFast(); i++) {
if (rec.fCheckRecoCDBvsSimuCDB[i]) fCheckRecoCDBvsSimuCDB.AddLast(rec.fCheckRecoCDBvsSimuCDB[i]->Clone());
}
fInitCDBCalled = rec.fInitCDBCalled;
fCDBSnapshotMode = rec.fCDBSnapshotMode;
fSetRunNumberFromDataCalled = rec.fSetRunNumberFromDataCalled;
fQADetectors = rec.fQADetectors;
fQATasks = rec.fQATasks;
fRunQA = rec.fRunQA;
fRunGlobalQA = rec.fRunGlobalQA;
fSameQACycle = rec.fSameQACycle;
fInitQACalled = rec.fInitQACalled;
fWriteQAExpertData = rec.fWriteQAExpertData;
fRunPlaneEff = rec.fRunPlaneEff;
for (int i=2;i--;) for (int j=2;j--;) fBeamInt[i][j] = rec.fBeamInt[i][j];
fESDpid = NULL;
fesd = NULL;
fhltesd = NULL;
fesdf = NULL;
ffile = NULL;
ffileF = NULL;
ftree = NULL;
ftreeF = NULL;
fhlttree = NULL;
ftVertexer = NULL;
fIsNewRunLoader = rec.fIsNewRunLoader;
fRunAliEVE = kFALSE;
fChain = NULL;
fNall = 0;
fNspecie = 0;
fSspecie = 0;
fNhighPt = 0;
fShighPt = 0;
fTreeBuffSize = rec.fTreeBuffSize;
fMemCountESD = 0;
fMemCountESDF = 0;
fMemCountESDHLT = 0;
fUpgradeModule="";
fAnalysisMacro = rec.fAnalysisMacro;
fAnalysis = 0;
fRecoHandler = 0;
fDeclTriggerClasses = rec.fDeclTriggerClasses;
return *this;
}
AliReconstruction::~AliReconstruction()
{
CleanUp();
if (fListOfCosmicTriggers) {
fListOfCosmicTriggers->Delete();
delete fListOfCosmicTriggers;
}
delete fGRPData;
delete fRunScalers;
delete fCTPTimeParams;
delete fCTPTimeAlign;
fOptions.Delete();
if (fAlignObjArray) {
fAlignObjArray->Delete();
delete fAlignObjArray;
}
fSpecCDBUri.Delete();
fCheckRecoCDBvsSimuCDB.Delete();
AliCodeTimer::Instance()->Print();
}
void AliReconstruction::InitQA()
{
AliCodeTimerAuto("",0);
if (fInitQACalled) return;
fInitQACalled = kTRUE;
if (fGRPData) AliQADataMaker::SetCloningRequest( fGRPData->GetQATrigClasses(), fGRPData->GetQACloningRequest());
AliQAManager * qam = AliQAManager::QAManager(AliQAv1::kRECMODE) ;
qam->SetSaveData(kTRUE);
qam->SetCycleLength(AliQAv1::kITS, 5) ;
if (fWriteQAExpertData)
qam->SetWriteExpert() ;
if (qam->IsDefaultStorageSet()) {
AliWarning("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
AliWarning("Default QA reference storage has been already set !");
AliWarning(Form("Ignoring the default storage declared in AliReconstruction: %s",fQARefUri.Data()));
AliWarning("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
fQARefUri = qam->GetDefaultStorage()->GetURI();
} else {
if (fQARefUri.Length() > 0) {
AliDebug(2,"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
AliDebug(2, Form("Default QA reference storage is set to: %s", fQARefUri.Data()));
AliDebug(2, "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
} else {
fQARefUri="local://$ALICE_ROOT/QAref";
AliWarning("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
AliWarning("Default QA refeference storage not yet set !!!!");
AliWarning(Form("Setting it now to: %s", fQARefUri.Data()));
AliWarning("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
}
qam->SetDefaultStorage(fQARefUri);
}
if (fRunQA) {
qam->SetActiveDetectors(fQADetectors) ;
qam->SetActiveOnlineDetectors(fRunInfo->GetActiveDetectors());
for (Int_t det = 0 ; det < AliQAv1::kNDET ; det++) {
qam->SetCycleLength(AliQAv1::DETECTORINDEX_t(det), fQACycles[det]) ;
qam->SetWriteExpert(AliQAv1::DETECTORINDEX_t(det)) ;
}
if (!fRawReader && !fInput && IsInTasks(AliQAv1::kRAWS))
fQATasks.ReplaceAll(Form("%d",AliQAv1::kRAWS), "") ;
qam->SetTasks(fQATasks) ;
qam->InitQADataMaker(AliCDBManager::Instance()->GetRun()) ;
}
if (fRunGlobalQA) {
Bool_t sameCycle = kFALSE ;
AliQADataMaker *qadm = qam->GetQADataMaker(AliQAv1::kGLOBAL);
AliInfo(Form("Initializing the global QA data maker"));
if (IsInTasks(AliQAv1::kRECPOINTS)) {
qadm->StartOfCycle(AliQAv1::kRECPOINTS, AliCDBManager::Instance()->GetRun(), sameCycle) ;
TObjArray **arr=qadm->Init(AliQAv1::kRECPOINTS);
AliTracker::SetResidualsArray(arr);
sameCycle = kTRUE ;
}
if (IsInTasks(AliQAv1::kESDS)) {
qadm->StartOfCycle(AliQAv1::kESDS, AliCDBManager::Instance()->GetRun(), sameCycle) ;
qadm->Init(AliQAv1::kESDS);
}
}
AliSysInfo::AddStamp("InitQA") ;
}
void AliReconstruction::MergeQA(const char *fileName)
{
AliCodeTimerAuto("",0) ;
AliQAManager::QAManager()->Merge(AliCDBManager::Instance()->GetRun(),fileName) ;
AliSysInfo::AddStamp("MergeQA") ;
}
void AliReconstruction::InitCDB()
{
AliCodeTimerAuto("",0);
if (fInitCDBCalled) return;
fInitCDBCalled = kTRUE;
AliCDBManager* man = AliCDBManager::Instance();
if (man->IsDefaultStorageSet())
{
AliWarning("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
AliWarning("Default CDB storage has been already set !");
AliWarning(Form("Ignoring the default storage declared in AliReconstruction: %s",fCDBUri.Data()));
AliWarning("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
fCDBUri = man->GetDefaultStorage()->GetURI();
}
else {
if (fCDBUri.Length() > 0)
{
AliDebug(2,"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
AliDebug(2, Form("Default CDB storage is set to: %s", fCDBUri.Data()));
AliDebug(2, "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
man->SetDefaultStorage(fCDBUri);
}
else if (!man->GetRaw()){
fCDBUri="local://$ALICE_ROOT/OCDB";
AliWarning("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
AliWarning("Default CDB storage not yet set !!!!");
AliWarning(Form("Setting it now to: %s", fCDBUri.Data()));
AliWarning("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
man->SetDefaultStorage(fCDBUri);
}
else {
AliWarning("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
AliWarning("Default storage will be set after setting the Run Number!!!");
AliWarning("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
}
}
for (Int_t i = 0; i < fSpecCDBUri.GetEntriesFast(); i++) {
TObject* obj = fSpecCDBUri[i];
if (!obj) continue;
AliDebug(2, "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
AliDebug(2, Form("Specific CDB storage for %s is set to: %s",obj->GetName(),obj->GetTitle()));
AliDebug(2, "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
man->SetSpecificStorage(obj->GetName(), obj->GetTitle());
}
AliSysInfo::AddStamp("InitCDB");
}
void AliReconstruction::SetCDBSnapshotMode(const char* snapshotFileName) {
fCDBSnapshotMode = kTRUE;
AliCDBManager::Instance()->SetSnapshotMode(snapshotFileName);
}
void AliReconstruction::SetDefaultStorage(const char* uri) {
fCDBUri = uri;
}
void AliReconstruction::SetQARefDefaultStorage(const char* uri) {
fQARefUri = uri;
AliQAv1::SetQARefStorage(fQARefUri.Data()) ;
}
void AliReconstruction::SetSpecificStorage(const char* calibType, const char* uri) {
AliCDBPath aPath(calibType);
if(!aPath.IsValid()){
for (Int_t iDet = 0; iDet < kNDetectors; iDet++) {
if(!strcmp(calibType, fgkDetectorName[iDet])) {
aPath.SetPath(Form("%s/*", calibType));
AliInfo(Form("Path for specific storage set to %s", aPath.GetPath().Data()));
break;
}
}
if(!aPath.IsValid()){
AliError(Form("Not a valid path or detector: %s", calibType));
return;
}
}
TObject* obj = fSpecCDBUri.FindObject(aPath.GetPath().Data());
if (obj) fSpecCDBUri.Remove(obj);
fSpecCDBUri.Add(new TNamed(aPath.GetPath().Data(), uri));
}
void AliReconstruction::AddCheckRecoCDBvsSimuCDB(const char* cdbpath,const char* comment)
{
TString newent = cdbpath;
if (newent.IsNull()) return;
TIter nextit(&fCheckRecoCDBvsSimuCDB);
TNamed* cdbent=0;
while ((cdbent=(TNamed*)nextit())) {
TString str = cdbent->GetName();
if (str==newent) {
AliInfo(Form("%s is already in the list to check",cdbpath));
return;
}
}
fCheckRecoCDBvsSimuCDB.AddLast(new TNamed(cdbpath,comment));
}
void AliReconstruction::RemCheckRecoCDBvsSimuCDB(const char* cdbpath)
{
TString newent = cdbpath;
if (newent.IsNull()) return;
TIter nextit(&fCheckRecoCDBvsSimuCDB);
TNamed* cdbent=0;
while ((cdbent=(TNamed*)nextit())) {
TString str = cdbent->GetName();
if (str==newent) {
AliInfo(Form("Removing %s from the list to check",cdbpath));
delete fCheckRecoCDBvsSimuCDB.Remove(cdbent);
fCheckRecoCDBvsSimuCDB.Compress();
return;
}
}
AliInfo(Form("%s is not in the list to check",cdbpath));
}
Bool_t AliReconstruction::SetRunNumberFromData()
{
if (fSetRunNumberFromDataCalled) return kTRUE;
fSetRunNumberFromDataCalled = kTRUE;
AliCDBManager* man = AliCDBManager::Instance();
if(fRawReader) {
if(fRawReader->NextEvent()) {
if(man->GetRun() > 0) {
AliWarning("Run number is taken from raw-event header! Ignoring settings in AliCDBManager!");
}
man->SetRun(fRawReader->GetRunNumber());
GetEventInfo();
fRawReader->RewindEvents();
}
else {
if(man->GetRun() > 0) {
AliWarning("No raw-data events are found ! Using settings in AliCDBManager !");
}
else {
AliWarning("Neither raw events nor settings in AliCDBManager are found !");
return kFALSE;
}
}
}
else {
AliRunLoader *rl = AliRunLoader::Open(fGAliceFileName.Data());
if (!rl) {
AliError(Form("No run loader found in file %s", fGAliceFileName.Data()));
return kFALSE;
}
else {
rl->LoadHeader();
if(rl->GetHeader()) {
man->SetRun(rl->GetHeader()->GetRun());
rl->UnloadHeader();
delete rl;
}
else {
AliError("Neither run-loader header nor RawReader objects are found !");
delete rl;
return kFALSE;
}
}
}
man->Print();
return kTRUE;
}
void AliReconstruction::SetCDBLock() {
AliCDBManager::Instance()->SetLock(1);
}
void AliReconstruction::MatchUpgradeDetector() {
for(Int_t iDet = 0; iDet < kNDetectors; iDet++) {
if(fUpgradeModule.Contains(fgkDetectorName[iDet])) fUpgradeMask[iDet]=kTRUE;
}
}
Bool_t AliReconstruction::MisalignGeometry(const TString& detectors)
{
if(fLoadAlignFromCDB){
TString detStr = detectors;
TString loadAlObjsListOfDets = "";
for (Int_t iDet = 0; iDet < kNDetectors; iDet++) {
if(!IsSelected(fgkDetectorName[iDet], detStr)) continue;
if(!strcmp(fgkDetectorName[iDet],"HLT")) continue;
if(AliGeomManager::GetNalignable(fgkDetectorName[iDet]) != 0)
{
loadAlObjsListOfDets += fgkDetectorName[iDet];
loadAlObjsListOfDets += " ";
}
}
if(AliGeomManager::GetNalignable("GRP") != 0)
loadAlObjsListOfDets.Prepend("GRP ");
AliGeomManager::ApplyAlignObjsFromCDB(loadAlObjsListOfDets.Data());
}else{
if (fAlignObjArray) {
if (gGeoManager && gGeoManager->IsClosed()) {
if (AliGeomManager::ApplyAlignObjsToGeom(*fAlignObjArray) == kFALSE) {
AliError("The misalignment of one or more volumes failed!"
"Compare the list of simulated detectors and the list of detector alignment data!");
return kFALSE;
}
}
else {
AliError("Can't apply the misalignment! gGeoManager doesn't exist or it is still opened!");
return kFALSE;
}
}
}
if (fAlignObjArray) {
fAlignObjArray->Delete();
delete fAlignObjArray; fAlignObjArray=NULL;
}
return kTRUE;
}
void AliReconstruction::SetGAliceFile(const char* fileName)
{
fGAliceFileName = fileName;
}
void AliReconstruction::SetInput(const char* input)
{
if (input) fRawInput = input;
}
void AliReconstruction::SetOutput(const char* output)
{
if (output) fESDOutput = output;
}
void AliReconstruction::SetOption(const char* detector, const char* option)
{
TObject* obj = fOptions.FindObject(detector);
if (obj) fOptions.Remove(obj);
fOptions.Add(new TNamed(detector, option));
}
void AliReconstruction::SetRecoParam(const char* detector, AliDetectorRecoParam *par)
{
if(!strcmp(detector, "GRP")) {
par->SetAsDefault();
fRecoParam.AddDetRecoParam(kNDetectors,par);
return;
}
for (Int_t iDet = 0; iDet < kNDetectors; iDet++) {
if(!strcmp(detector, fgkDetectorName[iDet])) {
par->SetAsDefault();
fRecoParam.AddDetRecoParam(iDet,par);
break;
}
}
}
Bool_t AliReconstruction::InitGRP() {
AliCDBEntry* entry = AliCDBManager::Instance()->Get("GRP/GRP/Data");
if (entry) {
TMap* m = dynamic_cast<TMap*>(entry->GetObject());
if (m) {
AliInfo("Found a TMap in GRP/GRP/Data, converting it into an AliGRPObject");
m->Print();
fGRPData = new AliGRPObject();
fGRPData->ReadValuesFromMap(m);
}
else {
AliInfo("Found an AliGRPObject in GRP/GRP/Data, reading it");
fGRPData = dynamic_cast<AliGRPObject*>(entry->GetObject());
entry->SetOwner(0);
}
}
if (!fGRPData) {
AliError("No GRP entry found in OCDB!");
return kFALSE;
}
TString lhcState = fGRPData->GetLHCState();
if (lhcState==AliGRPObject::GetInvalidString()) {
AliError("GRP/GRP/Data entry: missing value for the LHC state ! Using UNKNOWN");
lhcState = "UNKNOWN";
}
TString beamType = fGRPData->GetBeamType();
if (beamType==AliGRPObject::GetInvalidString()) {
AliError("GRP/GRP/Data entry: missing value for the beam type ! Using UNKNOWN");
beamType = "UNKNOWN";
}
Float_t beamEnergy = fGRPData->GetBeamEnergy();
if (beamEnergy==AliGRPObject::GetInvalidFloat()) {
AliError("GRP/GRP/Data entry: missing value for the beam energy ! Using 0");
beamEnergy = 0;
}
TString runType = fGRPData->GetRunType();
if (runType==AliGRPObject::GetInvalidString()) {
AliError("GRP/GRP/Data entry: missing value for the run type ! Using UNKNOWN");
runType = "UNKNOWN";
}
Int_t activeDetectors = fGRPData->GetDetectorMask();
if (activeDetectors==AliGRPObject::GetInvalidUInt()) {
AliError("GRP/GRP/Data entry: missing value for the detector mask ! Using 1074790399");
activeDetectors = 1074790399;
}
AliDebug(1, Form("activeDetectors = %d", activeDetectors));
fRunInfo = new AliRunInfo(lhcState, beamType, beamEnergy, runType, activeDetectors);
fRunInfo->Dump();
if (activeDetectors) {
UInt_t detMask = activeDetectors;
AliDebug(1, Form("Detector List = %s", fRunLocalReconstruction.Data()));
fRunLocalReconstruction = MatchDetectorList(fRunLocalReconstruction,detMask);
AliDebug(1, Form("Detector List = %s", fRunLocalReconstruction.Data()));
fRunTracking = MatchDetectorList(fRunTracking,detMask);
fFillESD = MatchDetectorList(fFillESD,detMask);
fQADetectors = MatchDetectorList(fQADetectors,detMask);
AliInfo(Form("fQADetectors=%s",fQADetectors.Data()));
fDeleteRecPoints = MatchDetectorList(fDeleteRecPoints,detMask);
fDeleteDigits = MatchDetectorList(fDeleteDigits,detMask);
fLoadCDB.Form("%s %s %s %s",
fRunLocalReconstruction.Data(),
fRunTracking.Data(),
fFillESD.Data(),
fQADetectors.Data());
fLoadCDB = MatchDetectorList(fLoadCDB,detMask);
if (!((detMask >> AliDAQ::DetectorID("ITSSPD")) & 0x1) &&
!((detMask >> AliDAQ::DetectorID("ITSSDD")) & 0x1) &&
!((detMask >> AliDAQ::DetectorID("ITSSSD")) & 0x1) ) {
AliInfo("SPD,SDD,SSD is not in the list of active detectors. Vertexer and Trackleter are switched off.");
fRunVertexFinder = kFALSE;
fRunMultFinder = kFALSE;
}
if (!((detMask >> AliDAQ::DetectorID("TRG")) & 0x1)) {
if (fFillTriggerESD) {
AliInfo("CTP is not in the list of active detectors. CTP data reading switched off.");
fFillTriggerESD = kFALSE;
}
}
}
AliInfo("===================================================================================");
AliInfo(Form("Running local reconstruction for detectors: %s",fRunLocalReconstruction.Data()));
AliInfo(Form("Running tracking for detectors: %s",fRunTracking.Data()));
AliInfo(Form("Filling ESD for detectors: %s",fFillESD.Data()));
AliInfo(Form("Quality assurance is active for detectors: %s",fQADetectors.Data()));
AliInfo(Form("CDB and reconstruction parameters are loaded for detectors: %s",fLoadCDB.Data()));
AliInfo("===================================================================================");
if ( TGeoGlobalMagField::Instance()->IsLocked() ) {
if (TGeoGlobalMagField::Instance()->GetField()->TestBit(AliMagF::kOverrideGRP)) {
AliInfo("ExpertMode!!! GRP information will be ignored !");
AliInfo("ExpertMode!!! Running with the externally locked B field !");
}
else {
AliInfo("Destroying existing B field instance!");
delete TGeoGlobalMagField::Instance();
}
}
if ( !TGeoGlobalMagField::Instance()->IsLocked() ) {
Bool_t ok = kTRUE;
Float_t l3Current = fGRPData->GetL3Current((AliGRPObject::Stats)0);
if (l3Current == AliGRPObject::GetInvalidFloat()) {
AliError("GRP/GRP/Data entry: missing value for the L3 current !");
ok = kFALSE;
}
Char_t l3Polarity = fGRPData->GetL3Polarity();
if (l3Polarity == AliGRPObject::GetInvalidChar()) {
AliError("GRP/GRP/Data entry: missing value for the L3 polarity !");
ok = kFALSE;
}
Float_t diCurrent = fGRPData->GetDipoleCurrent((AliGRPObject::Stats)0);
if (diCurrent == AliGRPObject::GetInvalidFloat()) {
AliError("GRP/GRP/Data entry: missing value for the dipole current !");
ok = kFALSE;
}
Char_t diPolarity = fGRPData->GetDipolePolarity();
if (diPolarity == AliGRPObject::GetInvalidChar()) {
AliError("GRP/GRP/Data entry: missing value for the dipole polarity !");
ok = kFALSE;
}
Int_t polConvention = fGRPData->IsPolarityConventionLHC() ? AliMagF::kConvLHC : AliMagF::kConvDCS2008;
Bool_t uniformB = fGRPData->IsUniformBMap();
if (ok) {
AliMagF* fld = AliMagF::CreateFieldMap(TMath::Abs(l3Current) * (l3Polarity ? -1:1),
TMath::Abs(diCurrent) * (diPolarity ? -1:1),
polConvention,uniformB,beamEnergy, beamType.Data());
if (fld) {
TGeoGlobalMagField::Instance()->SetField( fld );
TGeoGlobalMagField::Instance()->Lock();
AliInfo("Running with the B field constructed out of GRP !");
}
else AliFatal("Failed to create a B field map !");
}
else AliFatal("B field is neither set nor constructed from GRP ! Exitig...");
}
entry = AliCDBManager::Instance()->Get("GRP/Calib/MeanVertexSPD");
if (entry) {
fDiamondProfileSPD = dynamic_cast<AliESDVertex*> (entry->GetObject());
} else {
AliError("No SPD diamond profile found in OCDB!");
}
entry = AliCDBManager::Instance()->Get("GRP/Calib/MeanVertex");
if (entry) {
fDiamondProfile = dynamic_cast<AliESDVertex*> (entry->GetObject());
} else {
AliError("No diamond profile found in OCDB!");
}
entry = AliCDBManager::Instance()->Get("GRP/Calib/MeanVertexTPC");
if (entry) {
fDiamondProfileTPC = dynamic_cast<AliESDVertex*> (entry->GetObject());
} else {
AliError("No TPC diamond profile found in OCDB!");
}
entry = AliCDBManager::Instance()->Get("GRP/Calib/CosmicTriggers");
if (entry) {
fListOfCosmicTriggers = dynamic_cast<THashTable*>(entry->GetObject());
entry->SetOwner(0);
}
if (!fListOfCosmicTriggers) {
AliWarning("Can not get list of cosmic triggers from OCDB! Cosmic event specie will be effectively disabled!");
}
return kTRUE;
}
Bool_t AliReconstruction::LoadCDB()
{
AliCodeTimerAuto("",0);
AliCDBManager::Instance()->Get("GRP/CTP/Config");
AliCDBManager::Instance()->Get("GRP/Calib/LHCClockPhase");
TString detStr = fLoadCDB;
for (Int_t iDet = 0; iDet < kNDetectors; iDet++) {
if (!IsSelected(fgkDetectorName[iDet], detStr)) continue;
AliCDBManager::Instance()->GetAll(Form("%s/Calib/*",fgkDetectorName[iDet]));
AliCDBManager::Instance()->GetAll(Form("%s/Trigger/*",fgkDetectorName[iDet]));
}
AliCDBManager::Instance()->GetAll("TRIGGER/*/*");
AliCDBManager::Instance()->GetAll("HLT/*/*");
return kTRUE;
}
Bool_t AliReconstruction::LoadTriggerScalersCDB()
{
AliCodeTimerAuto("",0);
AliCDBEntry* entry = AliCDBManager::Instance()->Get("GRP/CTP/Scalers");
if (entry) {
AliInfo("Found an AliTriggerRunScalers in GRP/CTP/Scalers, reading it");
fRunScalers = dynamic_cast<AliTriggerRunScalers*> (entry->GetObject());
entry->SetOwner(0);
if (fRunScalers && (fRunScalers->CorrectScalersOverflow() == 0)) AliInfo("32bit Trigger counters corrected for overflow");
}
return kTRUE;
}
Bool_t AliReconstruction::LoadCTPTimeParamsCDB()
{
AliCDBEntry* entry = AliCDBManager::Instance()->Get("GRP/CTP/CTPtiming");
if (!entry) return kFALSE;
AliInfo("Found an AliCTPTimeParams in GRP/CTP/CTPtiming, reading it");
fCTPTimeParams = dynamic_cast<AliCTPTimeParams*> (entry->GetObject());
entry->SetOwner(0);
AliCDBEntry* entry2 = AliCDBManager::Instance()->Get("GRP/CTP/TimeAlign");
if (!entry2) return kFALSE;
AliInfo("Found an AliCTPTimeParams in GRP/CTP/TimeAlign, reading it");
fCTPTimeAlign = dynamic_cast<AliCTPTimeParams*> (entry2->GetObject());
entry2->SetOwner(0);
return kTRUE;
}
Bool_t AliReconstruction::ReadIntensityInfoCDB()
{
AliCDBEntry* entry = AliCDBManager::Instance()->Get("GRP/GRP/LHCData");
AliCDBEntry* entryCTP = AliCDBManager::Instance()->Get("GRP/CTP/Config");
if (!entry || !entryCTP) {
AliError(Form("Failed to extract CDB objects GRP/GRP/LHCData: %p or GRP/CTP/Config: %p",entry,entryCTP));
return kFALSE;
}
enum {kA,kB,kC,kE,kNMasks};
AliTriggerConfiguration* conf = (AliTriggerConfiguration*)entryCTP->GetObject();
const TObjArray& clArr = conf->GetClasses();
TObjArray masks(kNMasks);
TIter next(&clArr);
AliTriggerClass* trClass = 0;
int nFound = 0;
masks.SetOwner(kFALSE);
while ( (trClass=(AliTriggerClass*)next()) ) {
TString trName = trClass->GetName();
int ind = trName.Index("-");
if (ind<1) continue;
trName = trName.Data() + ind;
AliTriggerBCMask* bcMask = trClass->GetBCMask();
if (!bcMask) continue;
UInt_t which = 0;
if (trName.BeginsWith("-A-")) which |= 0x1<<kA;
else if (trName.BeginsWith("-B-")) which |= 0x1<<kB;
else if (trName.BeginsWith("-C-")) which |= 0x1<<kC;
else if (trName.BeginsWith("-E-")) which |= 0x1<<kE;
else if (trName.BeginsWith("-AC-")) which |= (0x1<<kA) | (0x1<<kC);
else if (trName.BeginsWith("-CA-")) which |= (0x1<<kA) | (0x1<<kC);
else { AliWarning(Form("Unknown trigger type %s\n",trClass->GetName())); continue;}
for (int ip=kNMasks;ip--;) {
if ( !(which&(0x1<<ip)) || masks[ip] ) continue;
masks[ip] = (TObject*)bcMask;
nFound++;
}
if (nFound==kNMasks) break;
}
AliInfo("Reading mean bunch intensities from GRP/GRP/LHCData");
AliLHCData* dipData = dynamic_cast<AliLHCData*> (entry->GetObject());
for (int ib=2;ib--;) {
double intI,intNI;
if (dipData && (dipData->GetMeanIntensity(ib,intI,intNI,&masks)>=0)) {
fBeamInt[ib][0] = intI;
fBeamInt[ib][1] = intNI;
AliInfo(Form("Mean intensity for beam %d: Interacting:%.2e Non-Interacting:%.2e",ib,intI,intNI));
}
}
return kTRUE;
}
Bool_t AliReconstruction::Run(const char* input)
{
AliCodeTimerAuto("",0);
InitRun(input);
if (GetAbort() != TSelector::kContinue) return kFALSE;
TChain *chain = NULL;
if (fRawReader && (chain = fRawReader->GetChain())) {
Long64_t nEntries = (fLastEvent < 0) ? (TChain::kBigNumber) : (fLastEvent - fFirstEvent + 1);
if (gProof) {
gProof->Exec("gEnv->SetValue(\"Proof.SocketActivityTimeout\",-1)", kTRUE);
if (gGrid)
gProof->Exec("TGrid::Connect(\"alien://\")",kTRUE);
TMessage::EnableSchemaEvolutionForAll(kTRUE);
gProof->Exec("TMessage::EnableSchemaEvolutionForAll(kTRUE)",kTRUE);
gProof->AddInput(this);
if (!ParseOutput()) return kFALSE;
gProof->SetParameter("PROOF_MaxSlavesPerNode", 9999);
chain->SetProof();
chain->Process("AliReconstruction","",nEntries,fFirstEvent);
}
else {
chain->Process(this,"",nEntries,fFirstEvent);
}
}
else {
Begin(NULL);
if (GetAbort() != TSelector::kContinue) return kFALSE;
SlaveBegin(NULL);
if (GetAbort() != TSelector::kContinue) return kFALSE;
AliInfo("Starting looping over events");
Int_t iEvent = 0;
while ((iEvent < fRunLoader->GetNumberOfEvents()) ||
(fRawReader && fRawReader->NextEvent())) {
if (!HasEnoughResources(iEvent)) break;
if (!ProcessEvent(iEvent)) {
Abort("ProcessEvent",TSelector::kAbortFile);
return kFALSE;
}
CleanProcessedEvent();
iEvent++;
}
if (!iEvent) AliWarning("No events passed trigger selection");
SlaveTerminate();
if (GetAbort() != TSelector::kContinue) return kFALSE;
Terminate();
if (GetAbort() != TSelector::kContinue) return kFALSE;
}
return kTRUE;
}
void AliReconstruction::InitRawReader(const char* input)
{
AliCodeTimerAuto("",0);
if (input) fRawInput = input;
fRawReader = AliRawReader::Create(fRawInput.Data());
if (!fRawReader) {
if (fRawInput.IsNull()) {
AliInfo("Reconstruction will run over digits");
}
else {
AliFatal("Can not create raw-data reader ! Exiting...");
}
}
if (!fEquipIdMap.IsNull() && fRawReader)
fRawReader->LoadEquipmentIdsMap(fEquipIdMap);
if (!fUseHLTData.IsNull()) {
AliRawReader* pRawReader=AliRawHLTManager::CreateRawReaderHLT(fRawReader, fUseHLTData.Data());
if (pRawReader) {
fParentRawReader=fRawReader;
fRawReader=pRawReader;
} else {
AliError(Form("can not create Raw Reader for HLT input %s", fUseHLTData.Data()));
}
}
AliSysInfo::AddStamp("CreateRawReader");
}
void AliReconstruction::InitRun(const char* input)
{
AliCodeTimerAuto("",0);
AliSysInfo::AddStamp("Start");
InitRawReader(input);
InitCDB();
if (!SetRunNumberFromData()) {
Abort("SetRunNumberFromData", TSelector::kAbortProcess);
return;
}
SetCDBLock();
}
void AliReconstruction::Begin(TTree *)
{
AliCodeTimerAuto("",0);
AliReconstruction *reco = NULL;
if (fInput) {
if ((reco = (AliReconstruction*)fInput->FindObject("AliReconstruction"))) {
*this = *reco;
}
AliSysInfo::AddStamp("ReadInputInBegin");
}
if (!AliGeomManager::GetGeometry()) {
TString geom(gSystem->DirName(fGAliceFileName));
geom += "/geometry.root";
AliGeomManager::LoadGeometry(geom.Data());
if (!gGeoManager) {
Abort("LoadGeometry", TSelector::kAbortProcess);
return;
}
AliSysInfo::AddStamp("LoadGeom");
TString detsToCheck=fRunLocalReconstruction;
if(!AliGeomManager::CheckSymNamesLUT(detsToCheck.Data())) {
Abort("CheckSymNamesLUT", TSelector::kAbortProcess);
return;
}
AliSysInfo::AddStamp("CheckGeom");
}
Bool_t toCDBSnapshot=kFALSE;
TString snapshotFileOut("");
if(TString(getenv("OCDB_SNAPSHOT_CREATE")) == TString("kTRUE")){
toCDBSnapshot=kTRUE;
TString snapshotFile(getenv("OCDB_SNAPSHOT_FILENAME"));
if(!(snapshotFile.IsNull() || snapshotFile.IsWhitespace()))
snapshotFileOut = snapshotFile;
else
snapshotFileOut="OCDB.root";
}
TString detStr(fLoadAlignData);
if (!toCDBSnapshot) {
if (!MisalignGeometry(fLoadAlignData)) {
Abort("MisalignGeometry", TSelector::kAbortProcess);
return;
}
} else {
for (Int_t iDet = 0; iDet < kNDetectors; iDet++) {
if (!IsSelected(fgkDetectorName[iDet], detStr)) continue;
if (!strcmp(fgkDetectorName[iDet],"HLT")) continue;
if (AliGeomManager::GetNalignable(fgkDetectorName[iDet]) != 0)
{
TString detAlignPath = fgkDetectorName[iDet];
detAlignPath += "/Align/Data";
AliCDBManager::Instance()->Get(detAlignPath);
}
}
if(AliGeomManager::GetNalignable("GRP") != 0)
AliCDBManager::Instance()->Get("GRP/Align/Data");
}
const TMap* cdbCache = AliCDBManager::Instance()->GetEntryCache();
if(!toCDBSnapshot) {
if(cdbCache->Contains("GRP/Geometry/Data"))
AliCDBManager::Instance()->UnloadFromCache("GRP/Geometry/Data");
AliCDBManager::Instance()->UnloadFromCache("*/Align/*");
}
AliSysInfo::AddStamp("MisalignGeom");
if (!InitGRP()) {
Abort("InitGRP", TSelector::kAbortProcess);
return;
}
AliSysInfo::AddStamp("InitGRP");
if(!toCDBSnapshot)
if(cdbCache->Contains("GRP/Calib/CosmicTriggers"))
AliCDBManager::Instance()->UnloadFromCache("GRP/Calib/CosmicTriggers");
if(!fCDBSnapshotMode || toCDBSnapshot){
if (!LoadCDB()) {
Abort("LoadCDB", TSelector::kAbortProcess);
return;
}
AliSysInfo::AddStamp("LoadCDB");
}
if (!LoadTriggerScalersCDB()) {
Abort("LoadTriggerScalersCDB", TSelector::kAbortProcess);
return;
}
AliSysInfo::AddStamp("LoadTriggerScalersCDB");
if (!LoadCTPTimeParamsCDB()) {
Abort("LoadCTPTimeParamsCDB", TSelector::kAbortProcess);
return;
}
AliSysInfo::AddStamp("LoadCTPTimeParamsCDB");
if (!ReadIntensityInfoCDB()) {
Abort("ReadIntensityInfoCDB", TSelector::kAbortProcess);
return;
}
AliSysInfo::AddStamp("ReadIntensityInfoCDB");
if (!InitRecoParams()) {
AliWarning("Not all detectors have correct RecoParam objects initialized");
}
AliSysInfo::AddStamp("InitRecoParams");
if(toCDBSnapshot)
{
AliCDBManager::Instance()->DumpToSnapshotFile(snapshotFileOut.Data(),kFALSE);
exit(0);
}
if (fInput && gProof) {
if (reco) *reco = *this;
gGeoManager->SetName("Geometry");
gProof->AddInputData(gGeoManager,kTRUE);
gGeoManager = NULL;
gProof->AddInputData(const_cast<TMap*>(AliCDBManager::Instance()->GetEntryCache()),kTRUE);
fInput->Add(new TParameter<Int_t>("RunNumber",AliCDBManager::Instance()->GetRun()));
AliMagF *magFieldMap = (AliMagF*)TGeoGlobalMagField::Instance()->GetField();
magFieldMap->SetName("MagneticFieldMap");
gProof->AddInputData(magFieldMap,kTRUE);
if (fAnalysis) {
fAnalysis->SetName("Analysis");
gProof->AddInputData(fAnalysis,kTRUE);
}
}
}
void AliReconstruction::SlaveBegin(TTree*)
{
AliCodeTimerAuto("",0);
TProofOutputFile *outProofFile = NULL;
if (fInput) {
if (AliDebugLevel() > 0) fInput->Print();
if (AliDebugLevel() > 10) fInput->Dump();
if (AliReconstruction *reco = (AliReconstruction*)fInput->FindObject("AliReconstruction")) {
*this = *reco;
}
if (TGeoManager *tgeo = (TGeoManager*)fInput->FindObject("Geometry")) {
gGeoManager = tgeo;
AliGeomManager::SetGeometry(tgeo);
}
if (TMap *entryCache = (TMap*)fInput->FindObject("CDBEntryCache")) {
Int_t runNumber = -1;
if (TProof::GetParameter(fInput,"RunNumber",runNumber) == 0) {
AliCDBManager *man = AliCDBManager::Instance(entryCache,runNumber);
man->SetCacheFlag(kTRUE);
man->SetLock(kTRUE);
man->Print();
}
}
if (AliMagF *map = (AliMagF*)fInput->FindObject("MagneticFieldMap")) {
AliMagF *newMap = new AliMagF(*map);
if (!newMap->LoadParameterization()) {
Abort("AliMagF::LoadParameterization", TSelector::kAbortProcess);
return;
}
TGeoGlobalMagField::Instance()->SetField(newMap);
TGeoGlobalMagField::Instance()->Lock();
}
if (!fAnalysis) {
fAnalysis = (AliAnalysisManager*)fInput->FindObject("Analysis");
if (fAnalysis) AliInfo("==== Analysis manager retrieved from input list ====");
}
if (TNamed *outputFileName = (TNamed*)fInput->FindObject("PROOF_OUTPUTFILE"))
fProofOutputFileName = outputFileName->GetTitle();
if (TNamed *outputLocation = (TNamed*)fInput->FindObject("PROOF_OUTPUTFILE_LOCATION"))
fProofOutputLocation = outputLocation->GetTitle();
if (fInput->FindObject("PROOF_OUTPUTFILE_DATASET"))
fProofOutputDataset = kTRUE;
if (TNamed *archiveList = (TNamed*)fInput->FindObject("PROOF_OUTPUTFILE_ARCHIVE"))
fProofOutputArchive = archiveList->GetTitle();
if (!fProofOutputFileName.IsNull() &&
!fProofOutputLocation.IsNull() &&
fProofOutputArchive.IsNull()) {
if (!fProofOutputDataset) {
outProofFile = new TProofOutputFile(fProofOutputFileName.Data(),"M");
outProofFile->SetOutputFileName(Form("%s%s",fProofOutputLocation.Data(),fProofOutputFileName.Data()));
}
else {
outProofFile = new TProofOutputFile(fProofOutputFileName.Data(),"DROV",fProofOutputLocation.Data());
}
if (AliDebugLevel() > 0) outProofFile->Dump();
fOutput->Add(outProofFile);
}
AliSysInfo::AddStamp("ReadInputInSlaveBegin");
}
if (!fAnalysis) {
fAnalysis = AliAnalysisManager::GetAnalysisManager();
if (fAnalysis) AliInfo(Form("==== Analysis manager <%s> found in memory ====", fAnalysis->GetName()));
if (!fAnalysis && !fAnalysisMacro.IsNull()) {
gROOT->ProcessLine(Form(".x %s",fAnalysisMacro.Data()));
fAnalysis = AliAnalysisManager::GetAnalysisManager();
if (!fAnalysis) AliError(Form("No analysis manager produced by analysis macro %s", fAnalysisMacro.Data()));
else AliInfo(Form("==== Analysis manager <%s> produced by analysis macro <%s> ====",
fAnalysis->GetName(), fAnalysisMacro.Data()));
}
}
if (!InitRunLoader()) {
Abort("InitRunLoader", TSelector::kAbortProcess);
return;
}
AliSysInfo::AddStamp("LoadLoader");
CheckRecoCDBvsSimuCDB();
ftVertexer = new AliVertexerTracks(AliTracker::GetBz());
if (!fRunTracking.IsNull() && !CreateTrackers(fRunTracking)) {
Abort("CreateTrackers", TSelector::kAbortProcess);
return;
}
AliSysInfo::AddStamp("CreateTrackers");
if (!outProofFile) {
ffile = TFile::Open("AliESDs.root", "RECREATE");
ffile->SetCompressionLevel(2);
if (!ffile->IsOpen()) {
Abort("OpenESDFile", TSelector::kAbortProcess);
return;
}
}
else {
AliInfo(Form("Opening output PROOF file: %s/%s",
outProofFile->GetDir(), outProofFile->GetFileName()));
if (!(ffile = outProofFile->OpenFile("RECREATE"))) {
Abort(Form("Problems opening output PROOF file: %s/%s",
outProofFile->GetDir(), outProofFile->GetFileName()),
TSelector::kAbortProcess);
return;
}
}
ftree = new TTree("esdTree", "Tree with ESD objects");
fesd = new AliESDEvent();
fesd->CreateStdContent();
fesd->AddObject(new AliESDHLTDecision);
fesd->WriteToTree(ftree);
if (fWriteESDfriend) {
ffileF = TFile::Open("AliESDfriends.root", "RECREATE");
ftreeF = new TTree("esdFriendTree", "Tree with ESD Friend objects");
fesdf = new AliESDfriend();
ftreeF->Branch("ESDfriend.","AliESDfriend", &fesdf);
fesd->AddObject(fesdf);
ffile->cd();
}
ftree->GetUserInfo()->Add(fesd);
fhlttree = new TTree("HLTesdTree", "Tree with HLT ESD objects");
fhltesd = new AliESDEvent();
fhltesd->CreateStdContent();
AliCDBManager* man = AliCDBManager::Instance();
AliCDBEntry* hltESDConfig = man->Get("HLT/Calib/esdLayout");
if(!hltESDConfig){
AliError(Form("Error getting \"HLT/Calib/esdLayout\""));
return;
}
AliESDEvent* pESDLayout=dynamic_cast<AliESDEvent*>(hltESDConfig->GetObject());
if (pESDLayout) {
pESDLayout->GetStdContent();
*fhltesd=*pESDLayout;
fhltesd->Reset();
} else {
AliError(Form("error setting hltEsd layout from \"HLT/Calib/esdLayout\": invalid object type"));
}
fhltesd->WriteToTree(fhlttree);
fhlttree->GetUserInfo()->Add(fhltesd);
ProcInfo_t procInfo;
gSystem->GetProcInfo(&procInfo);
AliInfo(Form("Current memory usage %ld %ld", procInfo.fMemResident, procInfo.fMemVirtual));
fESDpid = new AliESDpid();
if (fRunQA || fRunGlobalQA)
InitQA() ;
if (fRunPlaneEff && !InitPlaneEff()) {
Abort("InitPlaneEff", TSelector::kAbortProcess);
return;
}
if (strcmp(gProgName,"alieve") == 0)
fRunAliEVE = InitAliEVE();
if (fAnalysis) {
if (!dynamic_cast<AliRecoInputHandler*>(fAnalysis->GetInputEventHandler())) {
AliError("Analysis manager used in reconstruction should use AliRecoInputHandler - \
\n ->Replacing with AliRecoInputHandler instance.");
delete fAnalysis->GetInputEventHandler();
}
fRecoHandler = new AliRecoInputHandler();
fRecoHandler->SetEvent(fesd);
fRecoHandler->SetESDfriend(fesdf);
fRecoHandler->SetHLTEvent(fhltesd);
fRecoHandler->SetHLTTree(fhlttree);
fAnalysis->SetInputEventHandler(fRecoHandler);
fAnalysis->SetExternalLoop(kTRUE);
fAnalysis->SlaveBegin(ftree);
fAnalysis->StartAnalysis("local", (TTree*)0);
fAnalysis->GetCommonInputContainer()->SetData(ftree);
}
return;
}
Bool_t AliReconstruction::Process(Long64_t entry)
{
AliCodeTimerAuto("",0);
TTree *currTree = fChain->GetTree();
AliRawVEvent *event = NULL;
currTree->SetBranchAddress("rawevent",&event);
currTree->GetEntry(entry);
fRawReader = new AliRawReaderRoot(event);
if (!HasEnoughResources(entry)) return kFALSE;
fStatus = ProcessEvent(fRunLoader->GetNumberOfEvents());
delete fRawReader;
fRawReader = NULL;
delete event;
return fStatus;
}
void AliReconstruction::Init(TTree *tree)
{
if (tree == 0) {
AliError("The input tree is not found!");
return;
}
fChain = tree;
}
Bool_t AliReconstruction::ProcessEvent(Int_t iEvent)
{
static Long_t oldMres=0;
static Long_t oldMvir=0;
static Float_t oldCPU=0;
static Long_t aveDMres=0;
static Long_t aveDMvir=0;
static Float_t aveDCPU=0;
AliCodeTimerAuto("",0);
AliSysInfo::AddStamp(Form("StartEv_%d",iEvent), 0,0,iEvent);
if (iEvent >= fRunLoader->GetNumberOfEvents()) {
fRunLoader->SetEventNumber(iEvent);
if (fRawReader)
fRunLoader->GetHeader()->Reset(fRawReader->GetRunNumber(),
iEvent, iEvent);
fRunLoader->TreeE()->Fill();
if (fRawReader && fRawReader->UseAutoSaveESD())
fRunLoader->TreeE()->AutoSave("SaveSelf");
}
if ((iEvent < fFirstEvent) || ((fLastEvent >= 0) && (iEvent > fLastEvent))) {
return kTRUE;
}
fRunLoader->GetEvent(iEvent);
GetEventInfo();
fRecoParam.SetEventSpecie(fRunInfo,fEventInfo,fListOfCosmicTriggers);
ProcInfo_t procInfo;
if(iEvent==fFirstEvent) {
gSystem->GetProcInfo(&procInfo);
oldMres=procInfo.fMemResident;
oldMvir=procInfo.fMemVirtual;
oldCPU=procInfo.fCpuUser+procInfo.fCpuSys;
}
AliInfo(Form("================================= Processing event %d of type %-10s ==================================", iEvent,fRecoParam.PrintEventSpecie()));
AliSysInfo::AddStamp(Form("StartReco_%d",iEvent), 0,0,iEvent);
{
TString detStr = fLoadCDB;
for (Int_t iDet = 0; iDet < kNDetectors; iDet++) {
if (!IsSelected(fgkDetectorName[iDet], detStr)) continue;
AliReconstructor *reconstructor = GetReconstructor(iDet);
if (reconstructor && fRecoParam.GetDetRecoParamArray(iDet)) {
const AliDetectorRecoParam *par = fRecoParam.GetDetRecoParam(iDet);
reconstructor->SetRecoParam(par);
reconstructor->GetPidSettings(fESDpid);
reconstructor->SetEventInfo(&fEventInfo);
if (fRunQA) {
AliQAManager::QAManager()->SetEventInfo(&fEventInfo) ;
AliQAManager::QAManager()->SetRecoParam(iDet, par) ;
if (par) AliQAManager::QAManager()->SetEventSpecie(AliRecoParam::Convert(par->GetEventSpecie())) ;
}
}
}
if (fRunQA || fRunGlobalQA) AliQADataMaker::SetEventTrigClasses(fEventInfo.GetTriggerClasses());
if (fRunQA) {
const AliDetectorRecoParam *grppar = fRecoParam.GetDetRecoParam(kNDetectors);
AliQAManager::QAManager()->SetRecoParam(AliQAv1::kGLOBAL, grppar) ;
AliQAManager::QAManager()->SetEventSpecie(AliRecoParam::Convert(grppar->GetEventSpecie())) ;
}
}
if (fRunQA && IsInTasks(AliQAv1::kRAWS)) {
AliQAManager::QAManager()->SetEventSpecie(fRecoParam.GetEventSpecie()) ;
AliQAManager::QAManager()->RunOneEvent(fRawReader) ;
AliSysInfo::AddStamp(Form("RawQA_%d",iEvent), 0,0,iEvent);
}
if (fRawReader){FillRawEventHeaderESD(fesd);}
if (fRawReader){FillRawEventHeaderESD(fhltesd);}
if (fRawReader){
fesd->SetDAQDetectorPattern(fRawReader->GetDetectorPattern()[0]);
fesd->SetDAQAttributes(fRawReader->GetAttributes()[2]);
}
fesd->SetRunNumber(fRunLoader->GetHeader()->GetRun());
fhltesd->SetRunNumber(fRunLoader->GetHeader()->GetRun());
((AliESDRun*)fesd->GetESDRun())->SetDetectorsInDAQ(fRunInfo->GetDetectorMask());
((AliESDRun*)fhltesd->GetESDRun())->SetDetectorsInDAQ(fRunInfo->GetDetectorMask());
((AliESDRun*)fesd->GetESDRun())->SetDetectorsInReco(AliDAQ::DetectorPatternOffline(fFillESD.Data()));
((AliESDRun*)fhltesd->GetESDRun())->SetDetectorsInReco(AliDAQ::DetectorPatternOffline(fFillESD.Data()));
fesd->SetEventNumberInFile(fRunLoader->GetHeader()->GetEventNrInRun());
fhltesd->SetEventNumberInFile(fRunLoader->GetHeader()->GetEventNrInRun());
fesd->SetEventSpecie(fRecoParam.GetEventSpecie());
fhltesd->SetEventSpecie(fRecoParam.GetEventSpecie());
fesd->SetMagneticField(AliTracker::GetBz());
fhltesd->SetMagneticField(AliTracker::GetBz());
AliESDRun *esdRun,*esdRunH;
esdRun = (AliESDRun*)fesd->GetESDRun();
esdRunH = (AliESDRun*)fhltesd->GetESDRun();
esdRun->SetBeamEnergyIsSqrtSHalfGeV();
esdRunH->SetBeamEnergyIsSqrtSHalfGeV();
for (int ib=2;ib--;) for (int it=2;it--;) {
esdRun->SetMeanIntensity(ib,it, fBeamInt[ib][it]);
esdRunH->SetMeanIntensity(ib,it, fBeamInt[ib][it]);
}
fesd->SetBeamEnergy(fGRPData->GetBeamEnergy());
fesd->SetBeamType(fGRPData->GetBeamType().Data());
fesd->SetBeamParticle(fGRPData->GetSingleBeamType(0).Atoi(),0);
fesd->SetBeamParticle(fGRPData->GetSingleBeamType(1).Atoi(),1);
fhltesd->SetBeamEnergy(fGRPData->GetBeamEnergy());
fhltesd->SetBeamType(fGRPData->GetBeamType().Data());
fhltesd->SetBeamParticle(fGRPData->GetSingleBeamType(0).Atoi(),0);
fhltesd->SetBeamParticle(fGRPData->GetSingleBeamType(1).Atoi(),1);
AliMagF* fld = (AliMagF*)TGeoGlobalMagField::Instance()->GetField();
if (fld) {
fesd->SetCurrentL3(fld->GetCurrentSol());
fesd->SetCurrentDip(fld->GetCurrentDip());
fesd->SetUniformBMap(fld->IsUniform());
fesd->SetBInfoStored();
fhltesd->SetCurrentL3(fld->GetCurrentSol());
fhltesd->SetCurrentDip(fld->GetCurrentDip());
fhltesd->SetUniformBMap(fld->IsUniform());
fhltesd->SetBInfoStored();
}
{
TString detectors=fRunLocalReconstruction;
if (IsSelected("HLT", detectors) &&
!RunLocalEventReconstruction("HLT")) {
if (fStopOnError) {CleanUp(); return kFALSE;}
}
detectors=fFillESD;
if (IsSelected("HLT", detectors) &&
!FillESD(fhltesd, "HLT")) {
if (fStopOnError) {CleanUp(); return kFALSE;}
}
}
if (!fRunLocalReconstruction.IsNull()) {
TString detectors=fRunLocalReconstruction;
if (detectors.Contains("ALL")) {
AliFatal("Keyword 'ALL' needs to be replaced by the full list of detectors in "
"fRunLocalReconstruction. This should have been done by the framework");
}
detectors.ReplaceAll("HLT", "");
if (!RunLocalEventReconstruction(detectors)) {
if (fStopOnError) {
CleanUp();
return kFALSE;
}
}
}
const AliGRPRecoParam *grpRecoParam = dynamic_cast<const AliGRPRecoParam*>(fRecoParam.GetDetRecoParam(kNDetectors));
if (grpRecoParam) AliExternalTrackParam::SetMostProbablePt(grpRecoParam->GetMostProbablePt());
if (fRawReader) FillRawDataErrorLog(iEvent,fesd);
AliSysInfo::AddStamp(Form("FillHeadErrs_%d",iEvent), 0,0,iEvent);
if (fRunVertexFinder) {
if (!RunVertexFinder(fesd)) {
if (fStopOnError) {CleanUp(); return kFALSE;}
}
AliSysInfo::AddStamp(Form("VtxFinder_%d",iEvent), 0,0,iEvent);
}
if (fRunPlaneEff && fSPDTrackleter) {
if (!RunSPDTrackleting(fesd)) {
if (fStopOnError) {CleanUp(); return kFALSE;}
}
AliSysInfo::AddStamp(Form("TrackletEff_%d",iEvent), 0,0,iEvent);
}
if (!fRunTracking.IsNull()) {
if (fRunMuonTracking) {
if (!RunMuonTracking(fesd)) {
if (fStopOnError) {CleanUp(); return kFALSE;}
}
}
AliSysInfo::AddStamp(Form("TrackingMUON_%d",iEvent), 0,0,iEvent);
}
if (!fRunTracking.IsNull()) {
if (fRunMFTTrackingMU && fRunMuonTracking) {
if (!RunMFTTrackingMU(fesd)) {
if (fStopOnError) {CleanUp(); return kFALSE;}
}
}
AliSysInfo::AddStamp(Form("TrackingMFT_MUON_%d",iEvent), 0,0,iEvent);
}
if (!fRunTracking.IsNull()) {
if (!RunTracking(fesd,*fESDpid)) {
if (fStopOnError) {CleanUp(); return kFALSE;}
}
}
if (!fFillESD.IsNull()) {
TString detectors=fFillESD;
if (detectors.Contains("ALL")) {
AliFatal("Keyword 'ALL' needs to be replaced by the full list of detectors in "
"fFillESD. This should have been done by the framework");
}
detectors.ReplaceAll("HLT", "");
if (!FillESD(fesd, detectors)) {
if (fStopOnError) {CleanUp(); return kFALSE;}
}
}
ffile->cd();
const Int_t ntracks = fesd->GetNumberOfTracks();
const Double_t kRadius = 2.8;
TObjArray trkArray;
UShort_t selectedIdx[ntracks];
for (Int_t itrack=0; itrack<ntracks; itrack++){
const Double_t kMaxStep = 1;
Bool_t ok;
AliESDtrack *track = fesd->GetTrack(itrack);
if (!track) continue;
AliExternalTrackParam *tpcTrack =
(AliExternalTrackParam *)track->GetTPCInnerParam();
ok = kFALSE;
if (tpcTrack)
ok = AliTracker::
PropagateTrackToBxByBz(tpcTrack,kRadius,track->GetMassForTracking(),kMaxStep,kFALSE);
if (ok) {
Int_t n=trkArray.GetEntriesFast();
selectedIdx[n]=track->GetID();
trkArray.AddLast(tpcTrack);
}
if (track->IsOn(AliESDtrack::kITSrefit)) continue;
AliTracker::
PropagateTrackToBxByBz(track,kRadius,track->GetMassForTracking(),kMaxStep,kFALSE);
Double_t x[3]; track->GetXYZ(x);
Double_t b[3]; AliTracker::GetBxByBz(x,b);
track->RelateToVertexBxByBz(fesd->GetPrimaryVertexSPD(), b, kVeryBig);
}
AliSysInfo::AddStamp(Form("RelToSPDVtx_%d",iEvent), 0,0,iEvent);
Bool_t runVertexFinderTracks = fRunVertexFinderTracks;
if(fesd->GetPrimaryVertexSPD()) {
TString vtitle = fesd->GetPrimaryVertexSPD()->GetTitle();
if(vtitle.Contains("cosmics")) {
runVertexFinderTracks=kFALSE;
}
}
if (runVertexFinderTracks) {
ftVertexer->SetITSMode();
ftVertexer->SetConstraintOff();
Bool_t constrSPD=kFALSE;
if (grpRecoParam) {
Int_t nCutsVertexer = grpRecoParam->GetVertexerTracksNCuts();
Double_t *cutsVertexer = new Double_t[nCutsVertexer];
grpRecoParam->GetVertexerTracksCutsITS(cutsVertexer,nCutsVertexer);
ftVertexer->SetCuts(cutsVertexer,nCutsVertexer);
delete [] cutsVertexer; cutsVertexer = NULL;
if(grpRecoParam->GetVertexerTracksConstraintITS()) {
if(fDiamondProfile && fDiamondProfile->GetXRes()<kRadius){
ftVertexer->SetVtxStart(fDiamondProfile);
}else{
if(fDiamondProfileSPD && fDiamondProfileSPD->GetXRes()<kRadius){
ftVertexer->SetVtxStart(fDiamondProfileSPD);
constrSPD=kTRUE;
}
}
}
}
AliESDVertex *pvtx=ftVertexer->FindPrimaryVertex(fesd);
if (pvtx) {
if(constrSPD){
TString title=pvtx->GetTitle();
title.Append("SPD");
pvtx->SetTitle(title);
}
if (pvtx->GetStatus()) {
fesd->SetPrimaryVertexTracks(pvtx);
for (Int_t i=0; i<ntracks; i++) {
AliESDtrack *t = fesd->GetTrack(i);
Double_t x[3]; t->GetXYZ(x);
Double_t b[3]; AliTracker::GetBxByBz(x,b);
t->RelateToVertexBxByBz(pvtx, b, kVeryBig);
}
}
delete pvtx; pvtx=NULL;
}
AliSysInfo::AddStamp(Form("VtxTrk_%d",iEvent), 0,0,iEvent);
ftVertexer->SetTPCMode();
ftVertexer->SetConstraintOff();
if (grpRecoParam) {
Int_t nCutsVertexer = grpRecoParam->GetVertexerTracksNCuts();
Double_t *cutsVertexer = new Double_t[nCutsVertexer];
grpRecoParam->GetVertexerTracksCutsTPC(cutsVertexer,nCutsVertexer);
ftVertexer->SetCuts(cutsVertexer,nCutsVertexer);
delete [] cutsVertexer; cutsVertexer = NULL;
if(fDiamondProfileTPC && grpRecoParam->GetVertexerTracksConstraintTPC()) {
if(fDiamondProfileTPC->GetXRes()<kRadius) ftVertexer->SetVtxStart(fDiamondProfileTPC);
}
}
pvtx=ftVertexer->FindPrimaryVertex(&trkArray,selectedIdx);
if (pvtx) {
if (pvtx->GetStatus()) {
fesd->SetPrimaryVertexTPC(pvtx);
for (Int_t i=0; i<ntracks; i++) {
AliESDtrack *t = fesd->GetTrack(i);
Double_t x[3]; t->GetXYZ(x);
Double_t b[3]; AliTracker::GetBxByBz(x,b);
t->RelateToVertexTPCBxByBz(pvtx, b, kVeryBig);
}
}
delete pvtx; pvtx=NULL;
}
AliSysInfo::AddStamp(Form("VtxTPC_%d",iEvent), 0,0,iEvent);
}
if(fDiamondProfile && fDiamondProfile->GetXRes()<kRadius) fesd->SetDiamond(fDiamondProfile);
else fesd->SetDiamond(fDiamondProfileSPD);
if (fRunV0Finder) {
AliV0vertexer vtxer;
if (grpRecoParam) {
Int_t nCutsV0vertexer = grpRecoParam->GetVertexerV0NCuts();
Double_t cutsV0vertexer[nCutsV0vertexer];
grpRecoParam->GetVertexerV0Cuts(cutsV0vertexer);
vtxer.SetCuts(cutsV0vertexer);
}
vtxer.Tracks2V0vertices(fesd);
AliSysInfo::AddStamp(Form("V0Finder_%d",iEvent), 0,0,iEvent);
if (fRunCascadeFinder) {
AliCascadeVertexer cvtxer;
if (grpRecoParam) {
Int_t nCutsCascadeVertexer = grpRecoParam->GetVertexerCascadeNCuts();
Double_t cutsCascadeVertexer[nCutsCascadeVertexer];
grpRecoParam->GetVertexerCascadeCuts(cutsCascadeVertexer);
cvtxer.SetCuts(cutsCascadeVertexer);
}
cvtxer.V0sTracks2CascadeVertices(fesd);
AliSysInfo::AddStamp(Form("CascadeFinder_%d",iEvent), 0,0,iEvent);
}
}
if (fReconstructor[3])
GetReconstructor(3)->FillEventTimeWithTOF(fesd,fESDpid);
if (fFillTriggerESD) {
if (!FillTriggerESD(fesd)) {
if (fStopOnError) {CleanUp(); return kFALSE;}
}
}
if (!FillTriggerScalers(fesd)) {
if (fStopOnError) {CleanUp(); return kFALSE;}
}
AliSysInfo::AddStamp(Form("FillVaria_%d",iEvent), 0,0,iEvent);
UInt_t specie = fesd->GetEventSpecie();
Bool_t keepAll = (specie==AliRecoParam::kCosmic || specie==AliRecoParam::kCalib);
if (fCleanESD && (!keepAll) ) {
CleanESD(fesd);
AliSysInfo::AddStamp(Form("CleanESD_%d",iEvent), 0,0,iEvent);
}
if (fRunMultFinder) {
if (!RunMultFinder(fesd)) {
if (fStopOnError) {CleanUp(); return kFALSE;}
}
AliSysInfo::AddStamp(Form("MultFinder_%d",iEvent), 0,0,iEvent);
}
if (fRunQA && IsInTasks(AliQAv1::kESDS)) {
AliQAManager::QAManager()->SetEventSpecie(fRecoParam.GetEventSpecie()) ;
AliQAManager::QAManager()->RunOneEvent(fesd, fhltesd) ;
AliSysInfo::AddStamp(Form("RunQA_%d",iEvent), 0,0,iEvent);
}
if (fRunGlobalQA) {
AliQADataMaker *qadm = AliQAManager::QAManager()->GetQADataMaker(AliQAv1::kGLOBAL);
if (qadm)
qadm->SetEventSpecie(fRecoParam.GetEventSpecie()) ;
if (qadm && IsInTasks(AliQAv1::kESDS))
qadm->Exec(AliQAv1::kESDS, fesd);
AliSysInfo::AddStamp(Form("RunGlobQA_%d",iEvent), 0,0,iEvent);
}
TObject* pHLTSrc=fhltesd->FindListObject(AliESDHLTDecision::Name());
TObject* pHLTTgt=fesd->FindListObject(AliESDHLTDecision::Name());
if (pHLTSrc && pHLTTgt) {
pHLTSrc->Copy(*pHLTTgt);
}
if (fAnalysis) {
fRecoHandler->BeginEvent(iEvent);
fAnalysis->ExecAnalysis();
fRecoHandler->FinishEvent();
AliSysInfo::AddStamp(Form("Analysis_%d",iEvent), 0,0,iEvent);
}
if (fWriteESDfriend) {
fesd->GetESDfriend(fesdf);
AliSysInfo::AddStamp(Form("CreateFriend_%d",iEvent), 0,0,iEvent);
}
Long64_t nbf;
nbf = ftree->Fill();
if (fTreeBuffSize>0 && ftree->GetAutoFlush()<0 && (fMemCountESD += nbf)>fTreeBuffSize ) {
nbf = ftree->GetZipBytes();
if (nbf>0) nbf = -nbf;
else nbf = ftree->GetEntries();
ftree->SetAutoFlush(nbf);
AliInfo(Form("Calling ftree->SetAutoFlush(%lld) | W:%lld T:%lld Z:%lld",
nbf,fMemCountESD,ftree->GetTotBytes(),ftree->GetZipBytes()));
}
AliSysInfo::AddStamp(Form("ESDFill_%d",iEvent), 0,0,iEvent);
if (fWriteESDfriend) {
WriteESDfriend();
AliSysInfo::AddStamp(Form("WriteFriend_%d",iEvent), 0,0,iEvent);
}
if (fRawReader && fRawReader->UseAutoSaveESD()) {
ftree->AutoSave("SaveSelf");
if (fWriteESDfriend) ftreeF->AutoSave("SaveSelf");
}
nbf = fhlttree->Fill();
if (fTreeBuffSize>0 && fhlttree->GetAutoFlush()<0 && (fMemCountESDHLT += nbf)>fTreeBuffSize ) {
nbf = fhlttree->GetZipBytes();
if (nbf>0) nbf = -nbf;
else nbf = fhlttree->GetEntries();
fhlttree->SetAutoFlush(nbf);
AliInfo(Form("Calling fhlttree->SetAutoFlush(%lld) | W:%lld T:%lld Z:%lld",
nbf,fMemCountESDHLT,fhlttree->GetTotBytes(),fhlttree->GetZipBytes()));
}
gSystem->GetProcInfo(&procInfo);
Long_t dMres=(procInfo.fMemResident-oldMres)/1024;
Long_t dMvir=(procInfo.fMemVirtual-oldMvir)/1024;
Float_t dCPU=procInfo.fCpuUser+procInfo.fCpuSys-oldCPU;
aveDMres+=(dMres-aveDMres)/(iEvent-fFirstEvent+1);
aveDMvir+=(dMvir-aveDMvir)/(iEvent-fFirstEvent+1);
aveDCPU+=(dCPU-aveDCPU)/(iEvent-fFirstEvent+1);
AliInfo(Form("======================= End Event %d: Res %ld(%3ld <%3ld>) Vir %ld(%3ld <%3ld>) CPU %5.2f <%5.2f> ===================",
iEvent, procInfo.fMemResident/1024, dMres, aveDMres, procInfo.fMemVirtual/1024, dMvir, aveDMvir, dCPU, aveDCPU));
oldMres=procInfo.fMemResident;
oldMvir=procInfo.fMemVirtual;
oldCPU=procInfo.fCpuUser+procInfo.fCpuSys;
return kTRUE;
}
void AliReconstruction::CleanProcessedEvent()
{
fesd->Reset();
fhltesd->Reset();
if (fWriteESDfriend) {
fesdf->~AliESDfriend();
new (fesdf) AliESDfriend();
}
for (Int_t iDet = 0; iDet < kNDetectors; iDet++) {
if (fReconstructor[iDet]) fReconstructor[iDet]->FinishEvent();
}
AliInfo("======================= End Event ===================");
fEventInfo.Reset();
for (Int_t iDet = 0; iDet < kNDetectors; iDet++) {
if (fReconstructor[iDet]) {
fReconstructor[iDet]->SetRecoParam(NULL);
fReconstructor[iDet]->SetEventInfo(NULL);
}
if (fTracker[iDet]) fTracker[iDet]->SetEventInfo(NULL);
}
if (fRunQA || fRunGlobalQA)
AliQAManager::QAManager()->Increment() ;
DeleteRecPoints(fDeleteRecPoints);
DeleteDigits(fDeleteDigits);
}
void AliReconstruction::SlaveTerminate()
{
AliCodeTimerAuto("",0);
if (fAnalysis) {
fAnalysis->PackOutput(fOutput);
fAnalysis->SetSkipTerminate(kTRUE);
fAnalysis->Terminate();
}
if (fIsNewRunLoader) {
fRunLoader->WriteHeader("OVERWRITE");
fRunLoader->WriteTrigger("OVERWRITE");
fRunLoader->CdGAFile();
fRunLoader->Write(0, TObject::kOverwrite);
}
const TMap *cdbMap = AliCDBManager::Instance()->GetStorageMap();
const TList *cdbList = AliCDBManager::Instance()->GetRetrievedIds();
TMap *cdbMapCopy = new TMap(cdbMap->GetEntries());
cdbMapCopy->SetOwner(1);
cdbMapCopy->SetName("cdbMap");
TIter iter(cdbMap->GetTable());
TPair* pair = 0;
while((pair = dynamic_cast<TPair*> (iter.Next()))){
TObjString* keyStr = dynamic_cast<TObjString*> (pair->Key());
TObjString* valStr = dynamic_cast<TObjString*> (pair->Value());
if (keyStr && valStr)
cdbMapCopy->Add(new TObjString(keyStr->GetName()), new TObjString(valStr->GetName()));
}
TList *cdbListCopy = new TList();
cdbListCopy->SetOwner(1);
cdbListCopy->SetName("cdbList");
TIter iter2(cdbList);
AliCDBId* id=0;
while((id = dynamic_cast<AliCDBId*> (iter2.Next()))){
cdbListCopy->Add(new TObjString(id->ToString().Data()));
}
ftree->GetUserInfo()->Add(cdbMapCopy);
ftree->GetUserInfo()->Add(cdbListCopy);
TString sVersion("aliroot ");
sVersion += ALIROOT_BRANCH;
sVersion += ":";
sVersion += ALIROOT_REVISION;
sVersion += "; root ";
#ifdef ROOT_SVN_BRANCH
sVersion += ROOT_SVN_BRANCH;
#elif defined(ROOT_GIT_BRANCH)
sVersion += ROOT_GIT_BRANCH;
#else
sVersion += "?";
#endif
sVersion += ":";
#ifdef ROOT_SVN_REVSION
sVersion += ROOT_SVN_REVISION;
#elif defined(ROOT_GIT_COMMIT)
sVersion += ROOT_GIT_COMMIT;
#else
sVersion += "?";
#endif
sVersion += "; metadata ";
sVersion += getenv("PRODUCTION_METADATA");
TNamed * alirootVersion = new TNamed("alirootVersion",sVersion.Data());
ftree->GetUserInfo()->Add(alirootVersion);
ffile->cd();
ftree->Write(ftree->GetName(),TObject::kOverwrite);
fhlttree->Write(fhlttree->GetName(),TObject::kOverwrite);
if (fWriteESDfriend) {
ffileF->cd();
ftreeF->Write(ftreeF->GetName(),TObject::kOverwrite);
}
if (fRunPlaneEff && !FinishPlaneEff()) {
AliWarning("Finish PlaneEff evaluation failed");
}
for (Int_t iDet = 0; iDet < kNDetectors; iDet++) {
if (fReconstructor[iDet]) fReconstructor[iDet]->Terminate();
}
if (fRunQA || fRunGlobalQA) {
AliQAManager::QAManager()->EndOfCycle() ;
if (fInput &&
!fProofOutputLocation.IsNull() &&
fProofOutputArchive.IsNull() &&
!fProofOutputDataset) {
TString qaOutputFile(Form("%sMerged.%s.Data.root",
fProofOutputLocation.Data(),
AliQAv1::GetQADataFileName()));
TProofOutputFile *qaProofFile = new TProofOutputFile(Form("Merged.%s.Data.root",
AliQAv1::GetQADataFileName()));
qaProofFile->SetOutputFileName(qaOutputFile.Data());
if (AliDebugLevel() > 0) qaProofFile->Dump();
fOutput->Add(qaProofFile);
MergeQA(qaProofFile->GetFileName());
}
else {
MergeQA();
}
}
gROOT->cd();
CleanUp();
if (fInput) {
if (!fProofOutputFileName.IsNull() &&
!fProofOutputLocation.IsNull() &&
fProofOutputDataset &&
!fProofOutputArchive.IsNull()) {
TProofOutputFile *zipProofFile = new TProofOutputFile(fProofOutputFileName.Data(),
"DROV",
fProofOutputLocation.Data());
if (AliDebugLevel() > 0) zipProofFile->Dump();
fOutput->Add(zipProofFile);
TString fileList(fProofOutputArchive.Data());
fileList.ReplaceAll(","," ");
TString command;
#if ROOT_SVN_REVISION >= 30174
command.Form("zip -n root %s/%s %s",zipProofFile->GetDir(kTRUE),zipProofFile->GetFileName(),fileList.Data());
#else
command.Form("zip -n root %s/%s %s",zipProofFile->GetDir(),zipProofFile->GetFileName(),fileList.Data());
#endif
AliInfo(Form("Executing: %s",command.Data()));
gSystem->Exec(command.Data());
}
}
}
void AliReconstruction::Terminate()
{
AliCodeTimerAuto("",0);
if (!fInput) {
AliESDTagCreator *esdtagCreator = new AliESDTagCreator();
esdtagCreator->CreateESDTags(fFirstEvent,fLastEvent,fGRPData, AliQAv1::Instance()->GetQA(), AliQAv1::Instance()->GetEventSpecies(), AliQAv1::kNDET, AliRecoParam::kNSpecies);
delete esdtagCreator;
}
AliCDBManager::Instance()->ClearCache();
}
Bool_t AliReconstruction::RunLocalEventReconstruction(const TString& detectors)
{
static Int_t eventNr=0;
AliCodeTimerAuto("",0)
TString detStr = detectors;
if (IsSelected("HLT", detStr)) {
AliReconstructor* reconstructor = GetReconstructor(kNDetectors-1);
if (reconstructor) {
AliInfo("running reconstruction for HLT");
if (fRawReader) {
AliInfo("reconstructor->Reconstruct(fRawReader, NULL)");
reconstructor->Reconstruct(fRawReader, NULL);
}
else {
AliInfo("reconstructor->Reconstruct(dummy, NULL)");
TTree* dummy=NULL;
reconstructor->Reconstruct(dummy, NULL);
}
}
AliSysInfo::AddStamp(Form("LRecHLT_%d",eventNr), -1,1,eventNr);
}
AliInfo(Form("kNDetectors = %d",kNDetectors));
for (Int_t iDet = 0; iDet < kNDetectors; iDet++) {
if (!IsSelected(fgkDetectorName[iDet], detStr)) continue;
AliDebug(1, Form("Detector: %s", fgkDetectorName[iDet]));
AliReconstructor* reconstructor = GetReconstructor(iDet);
if (!reconstructor) continue;
AliLoader* loader = fLoader[iDet];
if (!loader) {
AliWarning(Form("No loader is defined for %s!",fgkDetectorName[iDet]));
continue;
}
if (fRawReader && reconstructor->HasDigitConversion()) {
AliInfo(Form("converting raw data digits into root objects for %s",
fgkDetectorName[iDet]));
loader->LoadDigits("update");
loader->CleanDigits();
loader->MakeDigitsContainer();
TTree* digitsTree = loader->TreeD();
reconstructor->ConvertDigits(fRawReader, digitsTree);
loader->WriteDigits("OVERWRITE");
loader->UnloadDigits();
}
AliInfo(Form("running reconstruction for %s", fgkDetectorName[iDet]));
AliDebug(1, "Loading Rec Points");
loader->LoadRecPoints("update");
AliDebug(1, "Cleaning Rec Points");
loader->CleanRecPoints();
AliDebug(1, "Making Rec Points Container");
loader->MakeRecPointsContainer();
TTree* clustersTree = loader->TreeR();
if (fRawReader && !reconstructor->HasDigitConversion()) {
reconstructor->Reconstruct(fRawReader, clustersTree);
}
else {
AliDebug(1, "Loading Digits");
loader->LoadDigits("read");
TTree* digitsTree = loader->TreeD();
AliDebug(1, Form("Digits Tree = %p",digitsTree));
if (!digitsTree) {
AliError(Form("Can't get the %s digits tree", fgkDetectorName[iDet]));
if (fStopOnError)
return kFALSE;
}
else {
AliDebug(1, "Digits -> Clusters");
reconstructor->Reconstruct(digitsTree, clustersTree);
if (fRunQA && IsInTasks(AliQAv1::kDIGITSR)) {
AliQAManager::QAManager()->SetEventSpecie(fRecoParam.GetEventSpecie()) ;
AliQAManager::QAManager()->RunOneEventInOneDetector(iDet, digitsTree) ;
}
}
loader->UnloadDigits();
}
if (fRunQA && IsInTasks(AliQAv1::kRECPOINTS)) {
AliQAManager::QAManager()->SetEventSpecie(fRecoParam.GetEventSpecie()) ;
AliQAManager::QAManager()->RunOneEventInOneDetector(iDet, clustersTree) ;
}
loader->WriteRecPoints("OVERWRITE");
loader->UnloadRecPoints();
AliSysInfo::AddStamp(Form("LRec%s_%d",fgkDetectorName[iDet],eventNr), iDet,1,eventNr);
}
if (!IsSelected("CTP", detStr)) AliDebug(10,"No CTP");
if ((detStr.CompareTo("ALL") != 0) && !detStr.IsNull()) {
AliError(Form("the following detectors were not found: %s",
detStr.Data()));
if (fStopOnError)
return kFALSE;
}
eventNr++;
return kTRUE;
}
Bool_t AliReconstruction::RunSPDTrackleting(AliESDEvent*& esd)
{
AliCodeTimerAuto("",0)
Double_t vtxPos[3] = {0, 0, 0};
Double_t vtxErr[3] = {0.0, 0.0, 0.0};
const AliESDVertex *vertex = esd->GetVertex();
if(!vertex){
AliWarning("Vertex not found");
return kFALSE;
}
vertex->GetXYZ(vtxPos);
vertex->GetSigmaXYZ(vtxErr);
if (fSPDTrackleter) {
AliInfo("running the SPD Trackleter for Plane Efficiency Evaluation");
fLoader[0]->LoadRecPoints("read");
TTree* tree = fLoader[0]->TreeR();
if (!tree) {
AliError("Can't get the ITS cluster tree");
return kFALSE;
}
fSPDTrackleter->LoadClusters(tree);
fSPDTrackleter->SetVertex(vtxPos, vtxErr);
if (fSPDTrackleter->Clusters2Tracks(esd) != 0) {
AliWarning("AliITSTrackleterSPDEff Clusters2Tracks failed");
return kFALSE;
}
} else {
AliWarning("SPDTrackleter not available");
return kFALSE;
}
return kTRUE;
}
Bool_t AliReconstruction::RunVertexFinder(AliESDEvent*& esd)
{
AliCodeTimerAuto("",0)
AliVertexer *vertexer = CreateVertexer();
if (!vertexer) return kFALSE;
AliInfo(Form("running the ITS vertex finder: %s",vertexer->ClassName()));
AliESDVertex* vertex = NULL;
if (fLoader[0]) {
fLoader[0]->LoadRecPoints();
TTree* cltree = fLoader[0]->TreeR();
if (cltree) {
if(fDiamondProfileSPD) vertexer->SetVtxStart(fDiamondProfileSPD);
vertex = vertexer->FindVertexForCurrentEvent(cltree);
}
else {
AliError("Can't get the ITS cluster tree");
}
fLoader[0]->UnloadRecPoints();
}
else {
AliError("Can't get the ITS loader");
}
if(!vertex){
AliWarning("Vertex not found");
vertex = new AliESDVertex();
vertex->SetName("default");
}
else {
vertex->SetName("reconstructed");
}
Double_t vtxPos[3];
Double_t vtxErr[3];
vertex->GetXYZ(vtxPos);
vertex->GetSigmaXYZ(vtxErr);
esd->SetPrimaryVertexSPD(vertex);
AliESDVertex *vpileup = NULL;
Int_t novertices = 0;
vpileup = vertexer->GetAllVertices(novertices);
if(novertices>1){
for (Int_t kk=1; kk<novertices; kk++)esd->AddPileupVertexSPD(&vpileup[kk]);
}
for (Int_t iDet = 0; iDet < kNDetectors; iDet++) {
if (fTracker[iDet]) fTracker[iDet]->SetVertex(vtxPos, vtxErr);
}
delete vertex;
delete vertexer;
return kTRUE;
}
Bool_t AliReconstruction::RunMultFinder(AliESDEvent*& esd)
{
AliCodeTimerAuto("",0)
AliTrackleter *trackleter = CreateMultFinder();
if (!trackleter) return kFALSE;
AliInfo(Form("running the ITS multiplicity finder: %s",trackleter->ClassName()));
if (fLoader[0]) {
fLoader[0]->LoadRecPoints();
TTree* cltree = fLoader[0]->TreeR();
if (cltree) {
trackleter->Reconstruct(esd,cltree);
AliMultiplicity *mult = trackleter->GetMultiplicity();
if(mult) esd->SetMultiplicity(mult);
}
else {
AliError("Can't get the ITS cluster tree");
}
fLoader[0]->UnloadRecPoints();
}
else {
AliError("Can't get the ITS loader");
}
delete trackleter;
return kTRUE;
}
Bool_t AliReconstruction::RunMuonTracking(AliESDEvent*& esd)
{
AliCodeTimerAuto("",0)
if (!fRunLoader) {
AliError("Missing runLoader!");
return kFALSE;
}
Int_t iDet = GetDetIndex("MUON");
AliReconstructor *reconstructor = GetReconstructor(iDet);
if (!reconstructor) return kFALSE;
TString detName = fgkDetectorName[iDet];
AliDebug(1, Form("%s tracking", detName.Data()));
AliTracker *tracker = reconstructor->CreateTracker();
if (!tracker) {
AliWarning(Form("couldn't create a tracker for %s", detName.Data()));
return kFALSE;
}
fLoader[iDet]->LoadRecPoints("read");
tracker->LoadClusters(fLoader[iDet]->TreeR());
Int_t rv = tracker->Clusters2Tracks(esd);
fLoader[iDet]->UnloadRecPoints();
tracker->UnloadClusters();
if ( rv )
{
AliError(Form("%s Clusters2Tracks failed", fgkDetectorName[iDet]));
return kFALSE;
}
return kTRUE;
}
Bool_t AliReconstruction::RunMFTTrackingMU(AliESDEvent*& esd) {
AliCodeTimerAuto("",0)
if (!fRunLoader) {
AliError("Missing runLoader!");
return kFALSE;
}
Int_t iDet = GetDetIndex("MFT");
AliReconstructor *reconstructor = GetReconstructor(iDet);
if (!reconstructor) return kFALSE;
TString detName = fgkDetectorName[iDet];
AliDebug(1, Form("%s tracking for muon tracks", detName.Data()));
AliTracker *tracker = reconstructor->CreateTracker();
if (!tracker) {
AliWarning(Form("couldn't create a Muon tracker for %s", detName.Data()));
return kFALSE;
}
fLoader[iDet]->LoadRecPoints("read");
tracker->LoadClusters(fLoader[iDet]->TreeR());
Int_t rv = tracker->Clusters2Tracks(esd);
fLoader[iDet]->UnloadRecPoints();
tracker->UnloadClusters();
if (rv) {
AliError(Form("%s Clusters2Tracks failed", fgkDetectorName[iDet]));
return kFALSE;
}
return kTRUE;
}
Bool_t AliReconstruction::RunTracking(AliESDEvent*& esd,AliESDpid &PID)
{
static Int_t eventNr=0;
AliCodeTimerAuto("",0)
AliInfo("running tracking");
AliDebug(1, "Setting event info");
for (Int_t iDet = 0; iDet < kNDetectors; iDet++) {
if (!fTracker[iDet]) continue;
fTracker[iDet]->SetEventInfo(&fEventInfo);
}
if (fReconstructor[11] && fLoader[11]) {
fLoader[11]->LoadRecPoints("READ");
TTree *treeR = fLoader[11]->TreeR();
if (treeR) {
GetReconstructor(11)->FillESD((TTree *)NULL,treeR,esd);
}
}
for (Int_t iDet = 1; iDet >= 0; iDet--) {
if (!fTracker[iDet]) continue;
AliDebug(1, Form("%s tracking", fgkDetectorName[iDet]));
fLoader[iDet]->LoadRecPoints("read");
AliSysInfo::AddStamp(Form("RLoadCluster%s_%d",fgkDetectorName[iDet],eventNr),iDet,1, eventNr);
TTree* tree = fLoader[iDet]->TreeR();
if (!tree) {
AliError(Form("Can't get the %s cluster tree", fgkDetectorName[iDet]));
return kFALSE;
}
fTracker[iDet]->LoadClusters(tree);
AliSysInfo::AddStamp(Form("TLoadCluster%s_%d",fgkDetectorName[iDet],eventNr), iDet,2, eventNr);
if (fTracker[iDet]->Clusters2TracksHLT(esd, fhltesd) != 0) {
AliError(Form("%s Clusters2Tracks failed", fgkDetectorName[iDet]));
return kFALSE;
}
AliSysInfo::AddStamp(Form("Tracking0%s_%d",fgkDetectorName[iDet],eventNr), iDet,3,eventNr);
if (iDet == 1) {
GetReconstructor(1)->FillESD((TTree*)NULL, (TTree*)NULL, esd);
PID.MakePIDForTracking(esd);
AliSysInfo::AddStamp(Form("MakePID0%s_%d",fgkDetectorName[iDet],eventNr), iDet,4,eventNr);
}
}
for (Int_t iDet = 0; iDet < kNDetectors; iDet++) {
if (!fTracker[iDet]) continue;
AliDebug(1, Form("%s back propagation", fgkDetectorName[iDet]));
if (iDet > 1) {
TTree* tree = NULL;
fLoader[iDet]->LoadRecPoints("read");
AliSysInfo::AddStamp(Form("RLoadCluster0%s_%d",fgkDetectorName[iDet],eventNr), iDet,1, eventNr);
tree = fLoader[iDet]->TreeR();
if (!tree) {
AliError(Form("Can't get the %s cluster tree", fgkDetectorName[iDet]));
return kFALSE;
}
fTracker[iDet]->LoadClusters(tree);
AliSysInfo::AddStamp(Form("TLoadCluster0%s_%d",fgkDetectorName[iDet],eventNr), iDet,2, eventNr);
}
if (iDet>1)
if (fRunGlobalQA) {
AliTracker::SetFillResiduals(fRecoParam.GetEventSpecie(), kTRUE);
TObjArray ** arr = AliTracker::GetResidualsArray() ;
if (arr) {
AliRecoParam::EventSpecie_t es=fRecoParam.GetEventSpecie();
TObjArray * elem = arr[AliRecoParam::AConvert(es)];
if ( elem && (! elem->At(0)) ) {
AliQADataMaker *qadm = AliQAManager::QAManager()->GetQADataMaker(AliQAv1::kGLOBAL);
if (qadm) qadm->InitRecPointsForTracker() ;
}
}
}
if (fTracker[iDet]->PropagateBack(esd) != 0) {
AliError(Form("%s backward propagation failed", fgkDetectorName[iDet]));
}
AliSysInfo::AddStamp(Form("Tracking1%s_%d",fgkDetectorName[iDet],eventNr), iDet,3, eventNr);
if (iDet > 3) {
fTracker[iDet]->UnloadClusters();
fLoader[iDet]->UnloadRecPoints();
}
if (iDet == 1) {
PID.MakePIDForTracking(esd);
AliSysInfo::AddStamp(Form("MakePID1%s_%d",fgkDetectorName[iDet],eventNr), iDet,4,eventNr);
}
}
if (fRunGlobalQA) AliTracker::SetFillResiduals(fRecoParam.GetEventSpecie(), kFALSE);
for (Int_t iDet = 2; iDet >= 0; iDet--) {
if (!fTracker[iDet]) continue;
AliDebug(1, Form("%s inward refit", fgkDetectorName[iDet]));
if (iDet<2)
if (fRunGlobalQA) {
AliTracker::SetFillResiduals(fRecoParam.GetEventSpecie(), kTRUE);
TObjArray ** arr = AliTracker::GetResidualsArray() ;
if (arr) {
AliRecoParam::EventSpecie_t es=fRecoParam.GetEventSpecie();
TObjArray * elem = arr[AliRecoParam::AConvert(es)];
if ( elem && (! elem->At(0)) ) {
AliQADataMaker *qadm = AliQAManager::QAManager()->GetQADataMaker(AliQAv1::kGLOBAL);
if (qadm) qadm->InitRecPointsForTracker() ;
}
}
}
if (fTracker[iDet]->RefitInward(esd) != 0) {
AliError(Form("%s inward refit failed", fgkDetectorName[iDet]));
}
if (fTracker[iDet]->PostProcess(esd) != 0) {
AliError(Form("%s postprocessing failed", fgkDetectorName[iDet]));
}
AliSysInfo::AddStamp(Form("Tracking2%s_%d",fgkDetectorName[iDet],eventNr), iDet,3, eventNr);
}
if (fWriteAlignmentData) {
WriteAlignmentData(esd);
AliSysInfo::AddStamp(Form("WrtAlignData_%d",eventNr), 0,0, eventNr);
}
for (Int_t iDet = 3; iDet >= 0; iDet--) {
if (!fTracker[iDet]) continue;
fTracker[iDet]->UnloadClusters();
AliSysInfo::AddStamp(Form("TUnloadCluster%s_%d",fgkDetectorName[iDet],eventNr), iDet,4, eventNr);
fLoader[iDet]->UnloadRecPoints();
AliSysInfo::AddStamp(Form("RUnloadCluster%s_%d",fgkDetectorName[iDet],eventNr), iDet,5, eventNr);
}
if (fRunGlobalQA) AliTracker::SetFillResiduals(fRecoParam.GetEventSpecie(), kFALSE);
eventNr++;
return kTRUE;
}
Bool_t AliReconstruction::CleanESD(AliESDEvent *esd){
Int_t nTracks=esd->GetNumberOfTracks();
Int_t nV0s=esd->GetNumberOfV0s();
AliInfo
(Form("Number of ESD tracks and V0s before cleaning: %d %d",nTracks,nV0s));
Float_t cleanPars[]={fV0DCAmax,fV0CsPmin,fDmax,fZmax};
Bool_t rc=esd->Clean(cleanPars);
nTracks=esd->GetNumberOfTracks();
nV0s=esd->GetNumberOfV0s();
AliInfo
(Form("Number of ESD tracks and V0s after cleaning %d %d",nTracks,nV0s));
return rc;
}
Bool_t AliReconstruction::FillESD(AliESDEvent*& esd, const TString& detectors)
{
AliCodeTimerAuto("",0)
static Int_t eventNr=0;
TString detStr = detectors;
AliSysInfo::AddStamp(Form("FillESDb%d",eventNr), -19,-19, eventNr);
for (Int_t iDet = 0; iDet < kNDetectors; iDet++) {
if (!IsSelected(fgkDetectorName[iDet], detStr)) continue;
AliReconstructor* reconstructor = GetReconstructor(iDet);
if (!reconstructor) continue;
AliDebug(1, Form("filling ESD for %s", fgkDetectorName[iDet]));
TTree* clustersTree = NULL;
if (fLoader[iDet]) {
fLoader[iDet]->LoadRecPoints("read");
clustersTree = fLoader[iDet]->TreeR();
if (!clustersTree) {
AliError(Form("Can't get the %s clusters tree",
fgkDetectorName[iDet]));
if (fStopOnError) return kFALSE;
}
}
if (fRawReader && !reconstructor->HasDigitConversion()) {
reconstructor->FillESD(fRawReader, clustersTree, esd);
} else {
TTree* digitsTree = NULL;
if (fLoader[iDet]) {
fLoader[iDet]->LoadDigits("read");
digitsTree = fLoader[iDet]->TreeD();
if (!digitsTree) {
AliError(Form("Can't get the %s digits tree",
fgkDetectorName[iDet]));
if (fStopOnError) return kFALSE;
}
}
reconstructor->FillESD(digitsTree, clustersTree, esd);
if (fLoader[iDet]) fLoader[iDet]->UnloadDigits();
}
if (fLoader[iDet]) {
fLoader[iDet]->UnloadRecPoints();
}
}
if (!IsSelected("CTP", detStr)) AliDebug(10,"No CTP");
if ((detStr.CompareTo("ALL") != 0) && !detStr.IsNull()) {
AliError(Form("the following detectors were not found: %s",
detStr.Data()));
if (fStopOnError) return kFALSE;
}
AliSysInfo::AddStamp(Form("FillESDe%d",eventNr), -20,-20, eventNr);
eventNr++;
return kTRUE;
}
Bool_t AliReconstruction::FillTriggerESD(AliESDEvent*& esd)
{
AliCodeTimerAuto("",0)
AliInfo("Filling trigger information into the ESD");
if (fRawReader) {
AliCTPRawStream input(fRawReader);
if (!input.Next()) {
AliWarning("No valid CTP (trigger) DDL raw data is found ! The trigger info is taken from the event header!");
}
else {
if (esd->GetTriggerMask() != input.GetClassMask())
AliError(Form("Invalid trigger pattern found in CTP raw-data: %llx %llx",
input.GetClassMask(),esd->GetTriggerMask()));
if (esd->GetTriggerMaskNext50() != input.GetClassMaskNext50())
AliError(Form("Invalid trigger pattern found in CTP raw-data Next50: %llx %llx",
input.GetClassMaskNext50(),esd->GetTriggerMaskNext50()));
if (esd->GetOrbitNumber() != input.GetOrbitID())
AliError(Form("Invalid orbit id found in CTP raw-data: %x %x",
input.GetOrbitID(),esd->GetOrbitNumber()));
if (esd->GetBunchCrossNumber() != input.GetBCID())
AliError(Form("Invalid bunch-crossing id found in CTP raw-data: %x %x",
input.GetBCID(),esd->GetBunchCrossNumber()));
AliESDHeader* esdheader = esd->GetHeader();
esdheader->SetL0TriggerInputs(input.GetL0Inputs());
esdheader->SetL1TriggerInputs(input.GetL1Inputs());
esdheader->SetL2TriggerInputs(input.GetL2Inputs());
for(Int_t i=0 ; i<input.GetNIRs() ; i++ ) {
esdheader->AddTriggerIR(input.GetIR(i));
}
AliCentralTrigger* rlCTP = fRunLoader->GetTrigger();
if (rlCTP) {
rlCTP->SetL0TriggerInputs(input.GetL0Inputs());
rlCTP->SetL1TriggerInputs(input.GetL1Inputs());
rlCTP->SetL2TriggerInputs(input.GetL2Inputs());
}
}
if (fIsNewRunLoader) fRunLoader->TreeCT()->Fill();
}
return kTRUE;
}
Bool_t AliReconstruction::FillTriggerScalers(AliESDEvent*& esd)
{
if(fRunScalers && fRunScalers->CheckRunScalers()){
AliTimeStamp* timestamp = new AliTimeStamp(esd->GetOrbitNumber(), esd->GetPeriodNumber(), esd->GetBunchCrossNumber());
AliESDHeader* esdheader = fesd->GetHeader();
for(Int_t i=0;i<50;i++){
if((1ull<<i) & esd->GetTriggerMask()){
AliTriggerScalersESD* scalesd = fRunScalers->GetScalersForEventClass( timestamp, i+1);
if(scalesd)esdheader->SetTriggerScalersRecord(scalesd);
}
}
for(Int_t i=0;i<50;i++){
if((1ull<<i) & esd->GetTriggerMaskNext50()){
AliTriggerScalersESD* scalesd = fRunScalers->GetScalersForEventClass( timestamp, i+51);
if(scalesd)esdheader->SetTriggerScalersRecord(scalesd);
}
}
const AliTriggerScalersRecordESD* scalrecEvent = fRunScalers->GetScalersDeltaForEvent( timestamp);
const AliTriggerScalersRecordESD* scalrecRun = fRunScalers->GetScalersDeltaForRun();
if (scalrecEvent) esdheader->SetTriggerScalersDeltaEvent(scalrecEvent);
if (scalrecRun) esdheader->SetTriggerScalersDeltaRun(scalrecRun);
}
return kTRUE;
}
Bool_t AliReconstruction::FillRawEventHeaderESD(AliESDEvent*& esd)
{
if (!fRawReader) return kFALSE;
AliInfo("Filling information from RawReader Header");
esd->SetBunchCrossNumber(fRawReader->GetBCID());
esd->SetOrbitNumber(fRawReader->GetOrbitID());
esd->SetPeriodNumber(fRawReader->GetPeriod());
esd->SetTimeStamp(fRawReader->GetTimestamp());
esd->SetEventType(fRawReader->GetType());
return kTRUE;
}
Bool_t AliReconstruction::IsSelected(TString detName, TString& detectors) const
{
if ((detectors.CompareTo("ALL") == 0) ||
detectors.BeginsWith("ALL ") ||
detectors.EndsWith(" ALL") ||
detectors.Contains(" ALL ")) {
detectors = "ALL";
return kTRUE;
}
Bool_t result = kFALSE;
if ((detectors.CompareTo(detName) == 0) ||
detectors.BeginsWith(detName+" ") ||
detectors.EndsWith(" "+detName) ||
detectors.Contains(" "+detName+" ")) {
detectors.ReplaceAll(detName, "");
result = kTRUE;
}
while (detectors.Contains(" ")) detectors.ReplaceAll(" ", " ");
while (detectors.BeginsWith(" ")) detectors.Remove(0, 1);
while (detectors.EndsWith(" ")) detectors.Remove(detectors.Length()-1, 1);
return result;
}
Bool_t AliReconstruction::InitRunLoader()
{
if (gAlice) delete gAlice;
gAlice = NULL;
TFile *gafile = TFile::Open(fGAliceFileName.Data());
if (gafile) {
gafile->Close();
delete gafile;
TString libs = gSystem->GetLibraries();
for (Int_t iDet = 0; iDet < kNDetectors; iDet++) {
TString detName = fgkDetectorName[iDet];
if (libs.Contains("lib" + detName + "base.so")) continue;
gSystem->Load("lib" + detName + "base.so");
}
fRunLoader = AliRunLoader::Open(fGAliceFileName.Data());
if (!fRunLoader) {
AliError(Form("no run loader found in file %s", fGAliceFileName.Data()));
CleanUp();
return kFALSE;
}
fRunLoader->CdGAFile();
fRunLoader->LoadgAlice();
fRunLoader->LoadHeader();
fRunLoader->LoadKinematics();
} else {
if (!fRawReader) {
AliError(Form("the file %s does not exist", fGAliceFileName.Data()));
}
fRunLoader = AliRunLoader::Open(fGAliceFileName.Data(),
AliConfig::GetDefaultEventFolderName(),
"recreate");
if (!fRunLoader) {
AliError(Form("could not create run loader in file %s",
fGAliceFileName.Data()));
CleanUp();
return kFALSE;
}
fIsNewRunLoader = kTRUE;
fRunLoader->MakeTree("E");
fRunLoader->MakeTree("GG");
if (fNumberOfEventsPerFile > 0)
fRunLoader->SetNumberOfEventsPerFile(fNumberOfEventsPerFile);
else
fRunLoader->SetNumberOfEventsPerFile((UInt_t)-1);
}
return kTRUE;
}
AliReconstructor* AliReconstruction::GetReconstructor(Int_t iDet)
{
if (fReconstructor[iDet]) {
if (fRecoParam.GetDetRecoParamArray(iDet) && !AliReconstructor::GetRecoParam(iDet)) {
const AliDetectorRecoParam *par = fRecoParam.GetDetRecoParam(iDet);
fReconstructor[iDet]->SetRecoParam(par);
fReconstructor[iDet]->SetRunInfo(fRunInfo);
}
return fReconstructor[iDet];
}
TPluginManager* pluginManager = gROOT->GetPluginManager();
TString detName = fgkDetectorName[iDet];
TString recName = "Ali" + detName + "Reconstructor";
if (!fIsNewRunLoader && !fRunLoader->GetLoader(detName+"Loader") && (detName != "HLT")) return NULL;
AliReconstructor* reconstructor = NULL;
TPluginHandler* pluginHandler =
pluginManager->FindHandler("AliReconstructor", detName);
if (!pluginHandler) {
AliDebug(1, Form("defining plugin for %s", recName.Data()));
TString libs = gSystem->GetLibraries();
if (libs.Contains("lib" + detName + "base.so") ||
(gSystem->Load("lib" + detName + "base.so") >= 0)) {
pluginManager->AddHandler("AliReconstructor", detName,
recName, detName + "rec", recName + "()");
} else {
pluginManager->AddHandler("AliReconstructor", detName,
recName, detName, recName + "()");
}
pluginHandler = pluginManager->FindHandler("AliReconstructor", detName);
}
if (pluginHandler && (pluginHandler->LoadPlugin() == 0)) {
reconstructor = (AliReconstructor*) pluginHandler->ExecPlugin(0);
}
if(fUpgradeMask[iDet]) {
if(reconstructor) delete reconstructor;
TClass *cl = new TClass(Form("Ali%sUpgradeReconstructor",fgkDetectorName[iDet]));
reconstructor = (AliReconstructor*)(cl->New());
}
if (reconstructor) {
TObject* obj = fOptions.FindObject(detName.Data());
if (obj) reconstructor->SetOption(obj->GetTitle());
reconstructor->SetRunInfo(fRunInfo);
reconstructor->SetHLTESD(fhltesd);
reconstructor->Init();
fReconstructor[iDet] = reconstructor;
}
if (detName != "HLT") {
fLoader[iDet] = fRunLoader->GetLoader(detName + "Loader");
if (!fLoader[iDet]) {
AliConfig::Instance()
->CreateDetectorFolders(fRunLoader->GetEventFolder(),
detName, detName);
pluginHandler =
pluginManager->FindHandler("AliLoader", detName);
if (!pluginHandler) {
TString loaderName = "Ali" + detName + "Loader";
AliDebug(1, Form("defining plugin for %s", loaderName.Data()));
pluginManager->AddHandler("AliLoader", detName,
loaderName, detName + "base",
loaderName + "(const char*, TFolder*)");
pluginHandler = pluginManager->FindHandler("AliLoader", detName);
}
if (pluginHandler && (pluginHandler->LoadPlugin() == 0)) {
fLoader[iDet] =
(AliLoader*) pluginHandler->ExecPlugin(2, detName.Data(),
fRunLoader->GetEventFolder());
}
if (!fLoader[iDet]) {
fLoader[iDet] = new AliLoader(detName, fRunLoader->GetEventFolder());
}
if (!fLoader[iDet]) {
AliWarning(Form("couldn't get loader for %s", detName.Data()));
if (fStopOnError) return NULL;
} else {
fRunLoader->AddLoader(fLoader[iDet]);
fRunLoader->CdGAFile();
if (gFile && !gFile->IsWritable()) gFile->ReOpen("UPDATE");
fRunLoader->Write(0, TObject::kOverwrite);
}
}
}
if (fRecoParam.GetDetRecoParamArray(iDet) && !AliReconstructor::GetRecoParam(iDet)) {
const AliDetectorRecoParam *par = fRecoParam.GetDetRecoParam(iDet);
if (reconstructor) {
reconstructor->SetRecoParam(par);
reconstructor->SetRunInfo(fRunInfo);
}
}
return reconstructor;
}
AliVertexer* AliReconstruction::CreateVertexer()
{
AliVertexer* vertexer = NULL;
AliReconstructor* itsReconstructor = GetReconstructor(0);
if (itsReconstructor && ((fRunLocalReconstruction.Contains("ITS")) ||
fRunTracking.Contains("ITS") || fFillESD.Contains("ITS") )) {
vertexer = itsReconstructor->CreateVertexer();
}
if (!vertexer) {
AliWarning("couldn't create a vertexer for ITS");
}
return vertexer;
}
AliTrackleter* AliReconstruction::CreateMultFinder()
{
AliTrackleter* trackleter = NULL;
AliReconstructor* itsReconstructor = GetReconstructor(0);
if (itsReconstructor && ((fRunLocalReconstruction.Contains("ITS")) ||
fRunTracking.Contains("ITS") || fFillESD.Contains("ITS") )) {
trackleter = itsReconstructor->CreateMultFinder();
}
else {
AliWarning("ITS is not in reconstruction, switching off RunMultFinder");
fRunMultFinder = kFALSE;
}
return trackleter;
}
Bool_t AliReconstruction::CreateTrackers(const TString& detectors)
{
AliInfo("Creating trackers");
TString detStr = detectors;
for (Int_t iDet = 0; iDet < kNDetectors; iDet++) {
if (!IsSelected(fgkDetectorName[iDet], detStr)) continue;
AliReconstructor* reconstructor = GetReconstructor(iDet);
if (!reconstructor) continue;
TString detName = fgkDetectorName[iDet];
if (detName == "MUON") {
fRunMuonTracking = kTRUE;
continue;
}
if (detName == "MFT") {
fRunMFTTrackingMU = kTRUE;
continue;
}
fTracker[iDet] = reconstructor->CreateTracker();
if (!fTracker[iDet] && (iDet < 7)) {
AliWarning(Form("couldn't create a tracker for %s", detName.Data()));
if (fStopOnError) return kFALSE;
}
AliSysInfo::AddStamp(Form("LTracker%s",fgkDetectorName[iDet]), iDet,0);
}
return kTRUE;
}
void AliReconstruction::CleanUp()
{
for (Int_t iDet = 0; iDet < kNDetectors; iDet++) {
if (fReconstructor[iDet]) fReconstructor[iDet]->SetRecoParam(NULL);
delete fReconstructor[iDet];
fReconstructor[iDet] = NULL;
fLoader[iDet] = NULL;
delete fTracker[iDet];
fTracker[iDet] = NULL;
}
delete fRunInfo;
fRunInfo = NULL;
delete fSPDTrackleter;
fSPDTrackleter = NULL;
delete ftVertexer;
ftVertexer = NULL;
delete fRunLoader;
fRunLoader = NULL;
delete fRawReader;
fRawReader = NULL;
delete fParentRawReader;
fParentRawReader=NULL;
delete fESDpid;
fESDpid = NULL;
if (ffile) {
ffile->Close();
delete ffile;
ffile = NULL;
}
if (AliQAManager::QAManager())
AliQAManager::QAManager()->ShowQA() ;
delete fAnalysis;
fAnalysis = NULL;
}
void AliReconstruction::WriteAlignmentData(AliESDEvent* esd)
{
Int_t ntracks = esd->GetNumberOfTracks();
for (Int_t itrack = 0; itrack < ntracks; itrack++)
{
AliESDtrack *track = esd->GetTrack(itrack);
Int_t nsp = 0;
Int_t idx[200];
for (Int_t i=0; i<200; ++i) idx[i] = -1;
for (Int_t iDet = 5; iDet >= 0; iDet--) {
nsp += (iDet==GetDetIndex("TRD")) ? track->GetTRDntracklets():track->GetNcls(iDet);
if (iDet==GetDetIndex("ITS")) {
track->GetClusters(iDet,idx);
for (Int_t i=6; i<12; i++) if(idx[i] >= 0) nsp++;
}
}
if (nsp) {
AliTrackPointArray *sp = new AliTrackPointArray(nsp);
track->SetTrackPointArray(sp);
Int_t isptrack = 0;
for (Int_t iDet = 5; iDet >= 0; iDet--) {
AliTracker *tracker = fTracker[iDet];
if (!tracker) continue;
Int_t nspdet = (iDet==GetDetIndex("TRD")) ? track->GetTRDtracklets(idx):track->GetClusters(iDet,idx);
if (iDet==GetDetIndex("ITS"))
for (Int_t i=6; i<12; i++) if(idx[i] >= 0) nspdet++;
if (nspdet <= 0) continue;
AliTrackPoint p;
Int_t isp = 0;
Int_t isp2 = 0;
while (isp2 < nspdet) {
Bool_t isvalid=kTRUE;
Int_t index=idx[isp++];
if (index < 0) continue;
TString dets = fgkDetectorName[iDet];
if ((fUseTrackingErrorsForAlignment.CompareTo(dets) == 0) ||
fUseTrackingErrorsForAlignment.BeginsWith(dets+" ") ||
fUseTrackingErrorsForAlignment.EndsWith(" "+dets) ||
fUseTrackingErrorsForAlignment.Contains(" "+dets+" ")) {
isvalid = tracker->GetTrackPointTrackingError(index,p,track);
} else {
isvalid = tracker->GetTrackPoint(index,p);
}
isp2++;
if (!isvalid) continue;
if (iDet==GetDetIndex("ITS") && (isp-1)>=6) p.SetExtra();
sp->AddPoint(isptrack,&p); isptrack++;
}
}
}
}
}
void AliReconstruction::FillRawDataErrorLog(Int_t iEvent, AliESDEvent* esd)
{
if (!fRawReader) return;
for(Int_t i = 0; i < fRawReader->GetNumberOfErrorLogs(); i++) {
AliRawDataErrorLog *log = fRawReader->GetErrorLog(i);
if (!log) continue;
if (iEvent != log->GetEventNumber()) continue;
esd->AddRawDataErrorLog(log);
}
}
Int_t AliReconstruction::GetDetIndex(const char* detector)
{
Int_t index = -1 ;
for (index = 0; index < kNDetectors ; index++) {
if ( strcmp(detector, fgkDetectorName[index]) == 0 )
break ;
}
return index ;
}
Bool_t AliReconstruction::FinishPlaneEff() {
Bool_t ret=kFALSE;
TString detStr = fLoadCDB;
for (Int_t iDet = 0; iDet < 1; iDet++) {
if (!IsSelected(fgkDetectorName[iDet], detStr)) continue;
if(fTracker[iDet] && fTracker[iDet]->GetPlaneEff()) {
AliPlaneEff *planeeff=fTracker[iDet]->GetPlaneEff();
TString name=planeeff->GetName();
name+=".root";
TFile* pefile = TFile::Open(name, "RECREATE");
ret=(Bool_t)planeeff->Write();
pefile->Close();
if(planeeff->GetCreateHistos()) {
TString hname=planeeff->GetName();
hname+="Histo.root";
ret*=planeeff->WriteHistosToFile(hname,"RECREATE");
}
}
if(fSPDTrackleter) {
AliPlaneEff *planeeff=fSPDTrackleter->GetPlaneEff();
TString name="AliITSPlaneEffSPDtracklet.root";
TFile* pefile = TFile::Open(name, "RECREATE");
ret=(Bool_t)planeeff->Write();
pefile->Close();
AliESDEvent *dummy=NULL;
ret=(Bool_t)fSPDTrackleter->PostProcess(dummy);
}
}
return ret;
}
Bool_t AliReconstruction::InitPlaneEff() {
fSPDTrackleter = NULL;
TString detStr = fLoadCDB;
if (IsSelected(fgkDetectorName[0], detStr)) {
AliReconstructor* itsReconstructor = GetReconstructor(0);
if (itsReconstructor) {
fSPDTrackleter = itsReconstructor->CreateTrackleter();
}
if (fSPDTrackleter) {
AliInfo("Trackleter for SPD has been created");
}
}
return kTRUE;
}
Bool_t AliReconstruction::InitAliEVE()
{
TString macroStr(getenv("ALIEVE_ONLINE_MACRO"));
if (macroStr.IsNull())
macroStr.Form("%s/EVE/macros/alieve_online.C",gSystem->ExpandPathName("$ALICE_ROOT"));
AliInfo(Form("Loading AliEVE macro: %s",macroStr.Data()));
if (gROOT->LoadMacro(macroStr.Data()) != 0) return kFALSE;
gROOT->ProcessLine("if (!AliEveEventManager::GetMaster()){new AliEveEventManager();AliEveEventManager::GetMaster()->AddNewEventCommand(\"alieve_online_on_new_event()\");gEve->AddEvent(AliEveEventManager::GetMaster());};");
gROOT->ProcessLine("alieve_online_init()");
return kTRUE;
}
void AliReconstruction::RunAliEVE()
{
AliInfo("Running AliEVE...");
gROOT->ProcessLine(Form("AliEveEventManager::GetMaster()->SetEvent((AliRunLoader*)%p,(AliRawReader*)%p,(AliESDEvent*)%p,(AliESDfriend*)%p);",fRunLoader,fRawReader,fesd,fesdf));
gSystem->Run();
}
Bool_t AliReconstruction::SetRunQA(TString detAndAction)
{
if (!detAndAction.Contains(":")) {
AliError( Form("%s is a wrong syntax, use \"DetectorList:ActionList\" \n", detAndAction.Data()) ) ;
fRunQA = kFALSE ;
return kFALSE ;
}
Int_t colon = detAndAction.Index(":") ;
fQADetectors = detAndAction(0, colon) ;
fQATasks = detAndAction(colon+1, detAndAction.Sizeof() ) ;
if (fQATasks.Contains("ALL") ) {
fQATasks = Form("%d %d %d %d", AliQAv1::kRAWS, AliQAv1::kDIGITSR, AliQAv1::kRECPOINTS, AliQAv1::kESDS) ;
} else {
fQATasks.ToUpper() ;
TString tempo("") ;
if ( fQATasks.Contains("RAW") )
tempo = Form("%d ", AliQAv1::kRAWS) ;
if ( fQATasks.Contains("DIGIT") )
tempo += Form("%d ", AliQAv1::kDIGITSR) ;
if ( fQATasks.Contains("RECPOINT") )
tempo += Form("%d ", AliQAv1::kRECPOINTS) ;
if ( fQATasks.Contains("ESD") )
tempo += Form("%d ", AliQAv1::kESDS) ;
fQATasks = tempo ;
if (fQATasks.IsNull()) {
AliInfo("No QA requested\n") ;
fRunQA = kFALSE ;
return kTRUE ;
}
}
TString tempo(fQATasks) ;
tempo.ReplaceAll(Form("%d", AliQAv1::kRAWS), AliQAv1::GetTaskName(AliQAv1::kRAWS)) ;
tempo.ReplaceAll(Form("%d", AliQAv1::kDIGITSR), AliQAv1::GetTaskName(AliQAv1::kDIGITSR)) ;
tempo.ReplaceAll(Form("%d", AliQAv1::kRECPOINTS), AliQAv1::GetTaskName(AliQAv1::kRECPOINTS)) ;
tempo.ReplaceAll(Form("%d", AliQAv1::kESDS), AliQAv1::GetTaskName(AliQAv1::kESDS)) ;
AliInfo( Form("QA will be done on \"%s\" for \"%s\"\n", fQADetectors.Data(), tempo.Data()) ) ;
fRunQA = kTRUE ;
return kTRUE;
}
Bool_t AliReconstruction::InitRecoParams()
{
Bool_t isOK = kTRUE;
if (fRecoParam.GetDetRecoParamArray(kNDetectors)) {
AliInfo("Using custom GRP reconstruction parameters");
}
else {
AliInfo("Loading GRP reconstruction parameter objects");
AliCDBPath path("GRP","Calib","RecoParam");
AliCDBEntry *entry=AliCDBManager::Instance()->Get(path.GetPath());
if(!entry){
AliWarning("Couldn't find GRP RecoParam entry in OCDB");
isOK = kFALSE;
}
else {
TObject *recoParamObj = entry->GetObject();
if (dynamic_cast<TObjArray*>(recoParamObj)) {
fRecoParam.AddDetRecoParamArray(kNDetectors,dynamic_cast<TObjArray*>(recoParamObj));
}
else if (dynamic_cast<AliDetectorRecoParam*>(recoParamObj)) {
AliInfo("Single set of GRP reconstruction parameters found");
dynamic_cast<AliDetectorRecoParam*>(recoParamObj)->SetAsDefault();
fRecoParam.AddDetRecoParam(kNDetectors,dynamic_cast<AliDetectorRecoParam*>(recoParamObj));
}
else {
AliError("No valid GRP RecoParam object found in the OCDB");
isOK = kFALSE;
}
entry->SetOwner(0);
}
}
TString detStr = fLoadCDB;
for (Int_t iDet = 0; iDet < kNDetectors; iDet++) {
if (!IsSelected(fgkDetectorName[iDet], detStr)) continue;
if (fRecoParam.GetDetRecoParamArray(iDet)) {
AliInfo(Form("Using custom reconstruction parameters for detector %s",fgkDetectorName[iDet]));
continue;
}
AliInfo(Form("Loading reconstruction parameter objects for detector %s",fgkDetectorName[iDet]));
AliCDBPath path(fgkDetectorName[iDet],"Calib","RecoParam");
AliCDBEntry *entry=AliCDBManager::Instance()->Get(path.GetPath());
if(!entry){
AliWarning(Form("Couldn't find RecoParam entry in OCDB for detector %s",fgkDetectorName[iDet]));
isOK = kFALSE;
}
else {
TObject *recoParamObj = entry->GetObject();
if (dynamic_cast<TObjArray*>(recoParamObj)) {
fRecoParam.AddDetRecoParamArray(iDet,dynamic_cast<TObjArray*>(recoParamObj));
}
else if (dynamic_cast<AliDetectorRecoParam*>(recoParamObj)) {
AliInfo(Form("Single set of reconstruction parameters found for detector %s",fgkDetectorName[iDet]));
dynamic_cast<AliDetectorRecoParam*>(recoParamObj)->SetAsDefault();
fRecoParam.AddDetRecoParam(iDet,dynamic_cast<AliDetectorRecoParam*>(recoParamObj));
}
else {
AliError(Form("No valid RecoParam object found in the OCDB for detector %s",fgkDetectorName[iDet]));
isOK = kFALSE;
}
entry->SetOwner(0);
}
}
if (AliDebugLevel() > 0) fRecoParam.Print();
return isOK;
}
Bool_t AliReconstruction::GetEventInfo()
{
AliCodeTimerAuto("",0)
AliCentralTrigger *aCTP = NULL;
if (fRawReader) {
fEventInfo.SetEventType(fRawReader->GetType());
ULong64_t mask = fRawReader->GetClassMask();
ULong64_t maskNext50 = fRawReader->GetClassMaskNext50();
fEventInfo.SetTriggerMask(mask);
fEventInfo.SetTriggerMaskNext50(maskNext50);
UInt_t clmask = fRawReader->GetDetectorPattern()[0];
fEventInfo.SetTriggerCluster(AliDAQ::ListOfTriggeredDetectors(clmask));
aCTP = new AliCentralTrigger();
TString configstr("");
if (!aCTP->LoadConfiguration(configstr)) {
AliError("No trigger configuration found in OCDB! The trigger configuration information will not be used!");
delete aCTP;
return kFALSE;
}
aCTP->SetClassMask(mask);
aCTP->SetClusterMask(clmask);
if (fRunLoader) {
AliCentralTrigger* rlCTP = fRunLoader->GetTrigger();
if (rlCTP) {
rlCTP->SetClassMask(mask);
rlCTP->SetClusterMask(clmask);
}
}
}
else {
fEventInfo.SetEventType(AliRawEventHeaderBase::kPhysicsEvent);
if (fRunLoader && (!fRunLoader->LoadTrigger())) {
aCTP = fRunLoader->GetTrigger();
fEventInfo.SetTriggerMask(aCTP->GetClassMask());
fEventInfo.SetTriggerMaskNext50(aCTP->GetClassMaskNext50());
AliESDHeader* esdheader = fesd->GetHeader();
esdheader->SetL0TriggerInputs(aCTP->GetL0TriggerInputs());
esdheader->SetL1TriggerInputs(aCTP->GetL1TriggerInputs());
esdheader->SetL2TriggerInputs(aCTP->GetL2TriggerInputs());
fEventInfo.SetTriggerCluster(AliDAQ::ListOfTriggeredDetectors(aCTP->GetClusterMask()));
}
else {
if (fStopOnMissingTriggerFile) AliFatal("No trigger can be loaded! Stopping reconstruction!");
AliWarning("No trigger can be loaded! The trigger information will not be used!");
return kFALSE;
}
}
AliTriggerConfiguration *config = aCTP->GetConfiguration();
if (!config) {
AliError("No trigger configuration has been found! The trigger configuration information will not be used!");
if (fRawReader) delete aCTP;
return kFALSE;
}
fDeclTriggerClasses.Clear();
AliCDBEntry * entry = AliCDBManager::Instance()->Get("GRP/CTP/Aliases");
if (entry) {
THashList * lst = dynamic_cast<THashList*>(entry->GetObject());
if (lst) {
lst->Sort(kSortDescending);
if (fRawReader) fRawReader->LoadTriggerAlias(lst);
TIter iter(lst);
TNamed *nmd = 0;
while((nmd = dynamic_cast<TNamed*>(iter.Next()))){
fDeclTriggerClasses += " ";
fDeclTriggerClasses += nmd->GetName();
}
}
else {
AliError("Cannot cast the object with trigger aliases to THashList!");
}
}
else {
AliError("No OCDB ebtry for the trigger aliases!");
}
UChar_t clustmask = 0;
TString trclasses;
ULong64_t trmask = fEventInfo.GetTriggerMask();
ULong64_t trmaskNext50 = fEventInfo.GetTriggerMaskNext50();
const TObjArray& classesArray = config->GetClasses();
Int_t nclasses = classesArray.GetEntriesFast();
for( Int_t iclass=0; iclass < nclasses; iclass++ ) {
AliTriggerClass* trclass = (AliTriggerClass*)classesArray.At(iclass);
if (trclass && trclass->GetMask()>0) {
Int_t trindex = TMath::Nint(TMath::Log2(trclass->GetMask()));
if (fesd) fesd->SetTriggerClass(trclass->GetName(),trindex);
if (fRawReader) fRawReader->LoadTriggerClass(trclass->GetName(),trindex);
if (trmask & (1ull << trindex)) {
trclasses += " ";
trclasses += trclass->GetName();
trclasses += " ";
clustmask |= trclass->GetCluster()->GetClusterMask();
}
}
if (trclass && trclass->GetMaskNext50()>0) {
Int_t trindex = TMath::Nint(TMath::Log2(trclass->GetMaskNext50()))+50;
if (fesd) fesd->SetTriggerClass(trclass->GetName(),trindex);
if (fRawReader) fRawReader->LoadTriggerClass(trclass->GetName(),trindex);
if (trmaskNext50 & (1ull << (trindex-50))) {
trclasses += " ";
trclasses += trclass->GetName();
trclasses += " ";
clustmask |= trclass->GetCluster()->GetClusterMask();
}
}
}
fEventInfo.SetTriggerClasses(trclasses);
if (!fDeclTriggerClasses.IsNull()) {
TObjArray *tokens = fDeclTriggerClasses.Tokenize(" ");
Int_t ntokens = tokens->GetEntriesFast();
for (Int_t itoken = 0; itoken < ntokens; ++itoken) {
if (fRawReader) fRawReader->LoadTriggerClass((((TObjString*)tokens->At(itoken))->String()).Data(),-1);
}
delete tokens;
}
const TObjArray& inputsArray = config->GetInputs();
Int_t ninputs = inputsArray.GetEntriesFast();
for( Int_t iinput=0; iinput < ninputs; iinput++ ) {
AliTriggerInput* trginput = (AliTriggerInput*)inputsArray.At(iinput);
if (trginput && trginput->GetMask()>0) {
Int_t inputIndex = (Int_t)TMath::Nint(TMath::Log2(trginput->GetMask()));
AliESDHeader* headeresd = 0x0;
if (fesd) headeresd = fesd->GetHeader();
if (headeresd) {
Int_t trglevel = (Int_t)trginput->GetLevel();
if (trglevel == 0) headeresd->SetActiveTriggerInputs(trginput->GetInputName(), inputIndex);
if (trglevel == 1) headeresd->SetActiveTriggerInputs(trginput->GetInputName(), inputIndex+24);
if (trglevel == 2) headeresd->SetActiveTriggerInputs(trginput->GetInputName(), inputIndex+48);
}
}
}
if (fesd) {
fesd->SetTriggerMask(trmask);
fesd->SetTriggerMaskNext50(trmaskNext50);
fesd->SetTriggerCluster(clustmask);
}
if (!aCTP->CheckTriggeredDetectors()) {
if (fRawReader) delete aCTP;
return kFALSE;
}
if (fRawReader) delete aCTP;
return kTRUE;
}
const char *AliReconstruction::MatchDetectorList(const char *detectorList, UInt_t detectorMask)
{
static TString resultList;
TString detList = detectorList;
resultList = "";
for(Int_t iDet = 0; iDet < (AliDAQ::kNDetectors-1); iDet++) {
if ((detectorMask >> iDet) & 0x1) {
TString det = AliDAQ::OfflineModuleName(iDet);
if ((detList.CompareTo("ALL") == 0) ||
((detList.BeginsWith("ALL ") ||
detList.EndsWith(" ALL") ||
detList.Contains(" ALL ")) &&
!(detList.BeginsWith("-"+det+" ") ||
detList.EndsWith(" -"+det) ||
detList.Contains(" -"+det+" "))) ||
(detList.CompareTo(det) == 0) ||
detList.BeginsWith(det+" ") ||
detList.EndsWith(" "+det) ||
detList.Contains( " "+det+" " )) {
if (!resultList.EndsWith(det + " ")) {
resultList += det;
resultList += " ";
}
}
}
}
if ((detectorMask >> AliDAQ::kHLTId) & 0x1) {
TString hltDet = AliDAQ::OfflineModuleName(AliDAQ::kNDetectors-1);
if ((detList.CompareTo("ALL") == 0) ||
((detList.BeginsWith("ALL ") ||
detList.EndsWith(" ALL") ||
detList.Contains(" ALL ")) &&
!(detList.BeginsWith("-"+hltDet+" ") ||
detList.EndsWith(" -"+hltDet) ||
detList.Contains(" -"+hltDet+" "))) ||
(detList.CompareTo(hltDet) == 0) ||
detList.BeginsWith(hltDet+" ") ||
detList.EndsWith(" "+hltDet) ||
detList.Contains( " "+hltDet+" " )) {
resultList += hltDet;
}
}
return resultList.Data();
}
void AliReconstruction::Abort(const char *method, EAbort what)
{
if (!fStopOnError) return;
CleanUp();
TString whyMess = method;
whyMess += " failed! Aborting...";
AliError(whyMess.Data());
fAbort = what;
TString mess = "Abort";
if (fAbort == kAbortProcess)
mess = "AbortProcess";
else if (fAbort == kAbortFile)
mess = "AbortFile";
Info(mess.Data(), "%s", whyMess.Data());
}
Bool_t AliReconstruction::ProcessEvent(void* event)
{
if (fRawReader) delete fRawReader;
fRawReader = new AliRawReaderDate(event);
fStatus = ProcessEvent(fRunLoader->GetNumberOfEvents());
delete fRawReader;
fRawReader = NULL;
return fStatus;
}
Bool_t AliReconstruction::ParseOutput()
{
TPMERegexp re1("(\\w+\\.zip#\\w+\\.root):([,*\\w+\\.root,*]+)@dataset://(\\w++)");
TPMERegexp re2("(\\w+\\.root)?@?dataset://(\\w++)");
if (re1.Match(fESDOutput) == 4) {
gProof->AddInput(new TNamed("PROOF_OUTPUTFILE",re1[1].Data()));
gProof->AddInput(new TNamed("PROOF_OUTPUTFILE_LOCATION",re1[3].Data()));
gProof->AddInput(new TNamed("PROOF_OUTPUTFILE_DATASET",""));
gProof->AddInput(new TNamed("PROOF_OUTPUTFILE_ARCHIVE",re1[2].Data()));
AliInfo(Form("%s files will be stored within %s in dataset %s",
re1[2].Data(),
re1[1].Data(),
re1[3].Data()));
}
else if (re2.Match(fESDOutput) == 3) {
gProof->AddInput(new TNamed("PROOF_OUTPUTFILE",(re2[1].IsNull()) ? "AliESDs.root" : re2[1].Data()));
gProof->AddInput(new TNamed("PROOF_OUTPUTFILE_LOCATION",re2[2].Data()));
gProof->AddInput(new TNamed("PROOF_OUTPUTFILE_DATASET",""));
AliInfo(Form("%s will be stored in dataset %s",
(re2[1].IsNull()) ? "AliESDs.root" : re2[1].Data(),
re2[2].Data()));
}
else {
if (fESDOutput.IsNull()) {
TString esdUrl(Form("root://%s/%s/",
TUrl(gSystem->HostName()).GetHostFQDN(),
gSystem->pwd()));
gProof->AddInput(new TNamed("PROOF_OUTPUTFILE","AliESDs.root"));
gProof->AddInput(new TNamed("PROOF_OUTPUTFILE_LOCATION",esdUrl.Data()));
AliInfo(Form("AliESDs.root will be stored in %s",
esdUrl.Data()));
}
else {
TUrl outputUrl(fESDOutput.Data());
TString outputFile(gSystem->BaseName(outputUrl.GetFile()));
gProof->AddInput(new TNamed("PROOF_OUTPUTFILE",outputFile.IsNull() ? "AliESDs.root" : outputFile.Data()));
TString outputLocation(outputUrl.GetUrl());
outputLocation.ReplaceAll(outputFile.Data(),"");
gProof->AddInput(new TNamed("PROOF_OUTPUTFILE_LOCATION",outputLocation.Data()));
AliInfo(Form("%s will be stored in %s",
outputFile.IsNull() ? "AliESDs.root" : outputFile.Data(),
outputLocation.Data()));
}
}
return kTRUE;
}
Bool_t AliReconstruction::IsHighPt() const {
const Double_t pTmin = 1.5;
const Double_t pTmax = 100;
ULong_t mask = 0;
mask |= (AliESDtrack::kITSrefit);
mask |= (AliESDtrack::kTPCrefit);
const Double_t pTminCosmic = 5.;
const Double_t pTmaxCosmic = 100;
ULong_t maskCosmic = 0;
Int_t cosmicCount=0;
maskCosmic |= (AliESDtrack::kTPCrefit);
Bool_t isOK = kFALSE;
if (fesd && fesd->GetEventType()==AliRawEventHeaderBase::kPhysicsEvent) {
Int_t ntrk = fesd->GetNumberOfTracks();
for (Int_t itrk=0; itrk<ntrk; ++itrk) {
AliESDtrack * trk = fesd->GetTrack(itrk);
if (trk
&& trk->Pt() > pTmin
&& trk->Pt() < pTmax
&& (trk->GetStatus() & mask) == mask ) {
isOK = kTRUE;
break;
}
if (trk
&& trk->GetInnerParam()
&& trk->GetInnerParam()->Pt() > pTminCosmic
&& trk->GetInnerParam()->Pt() < pTmaxCosmic
&& (trk->GetStatus() & maskCosmic) == maskCosmic ) {
cosmicCount++;
break;
}
}
if (cosmicCount>1) isOK=kTRUE;
}
return isOK;
}
Bool_t AliReconstruction::IsCosmicOrCalibSpecie() const {
Bool_t isOK = kFALSE;
if (fesd && fesd->GetEventType()==AliRawEventHeaderBase::kPhysicsEvent) {
UInt_t specie = fesd->GetEventSpecie();
if (specie==AliRecoParam::kCosmic || specie==AliRecoParam::kCalib) {
isOK = kTRUE;
}
}
return isOK;
}
void AliReconstruction::WriteESDfriend() {
fNall++;
Bool_t isSelected = kFALSE;
if (TMath::Abs(AliTrackerBase::GetBz())<0.5) isSelected=kTRUE;
if (IsCosmicOrCalibSpecie()) {
fNspecie++;
isSelected = kTRUE;
fSspecie++;
}
Double_t remainingFraction = fFractionFriends;
remainingFraction -= ((Double_t)(fSspecie)/(Double_t)(fNall));
if (IsHighPt()) {
fNhighPt++;
Double_t curentHighPtFraction = ((Double_t)(fNhighPt+1))/((Double_t)(fNall+1));
if (!isSelected) {
Double_t rnd = gRandom->Rndm()*curentHighPtFraction;
if (rnd<remainingFraction) {
isSelected = kTRUE;
fShighPt++;
}
}
}
remainingFraction -= ((Double_t)(fShighPt)/(Double_t)(fNall));
if (!isSelected) {
Double_t rnd = gRandom->Rndm();
if (rnd<remainingFraction) {
isSelected = kTRUE;
}
}
if (!isSelected) {
fesdf->~AliESDfriend();
new (fesdf) AliESDfriend();
fesdf->SetSkipBit(kTRUE);
}
Long64_t nbf = ftreeF->Fill();
if (fTreeBuffSize>0 && ftreeF->GetAutoFlush()<0 && (fMemCountESDF += nbf)>fTreeBuffSize ) {
nbf = ftreeF->GetZipBytes();
if (nbf>0) nbf = -nbf;
else nbf = ftreeF->GetEntries();
ftreeF->SetAutoFlush(nbf);
AliInfo(Form("Calling ftreeF->SetAutoFlush(%lld) | W:%lld T:%lld Z:%lld",
nbf,fMemCountESDF,ftreeF->GetTotBytes(),ftreeF->GetZipBytes()));
}
}
void AliReconstruction::DeleteDigits(const TString& detectors)
{
static int iEvent = 0;
if (detectors.IsNull()) return;
TString detStr = detectors;
AliInfo(Form("Deleting Digits: %s",detectors.Data()));
for (Int_t iDet = 0; iDet < kNDetectors; iDet++) {
if(!IsSelected(fgkDetectorName[iDet], detStr)) continue;
unlink(Form("%s.Digits.root",fgkDetectorName[iDet]));
}
AliSysInfo::AddStamp(Form("DelDigits_%d",iEvent), 0,0,iEvent);
iEvent++;
}
void AliReconstruction::DeleteRecPoints(const TString& detectors)
{
static int iEvent = 0;
if (detectors.IsNull()) return;
TString detStr = detectors;
AliInfo(Form("Deleting Recpoints: %s",detectors.Data()));
for (Int_t iDet = 0; iDet < kNDetectors; iDet++) {
if(!IsSelected(fgkDetectorName[iDet], detStr)) continue;
unlink(Form("%s.RecPoints.root",fgkDetectorName[iDet]));
}
AliSysInfo::AddStamp(Form("DelRecPoints_%d",iEvent), 0,0,iEvent);
iEvent++;
}
void AliReconstruction::SetStopOnResourcesExcess(Int_t vRSS,Int_t vVMEM)
{
const int kKB2MB = 1024;
const int kInfMem = 9999999;
struct rlimit r;
int pgSize = getpagesize();
if (vRSS>0) {
fMaxRSS = vRSS;
AliInfo(Form("Setting max. RSS usage to user value %d MB",fMaxRSS));
}
else if (vRSS<0) {
getrlimit(RLIMIT_RSS,&r);
fMaxRSS = r.rlim_max==RLIM_INFINITY ? kInfMem : int(r.rlim_max*pgSize/kKB2MB/kKB2MB) + vRSS;
AliInfo(Form("Setting max. RSS usage to system hard limit %d%s MB (%d margin)",fMaxRSS,r.rlim_max==RLIM_INFINITY ? "(inf)":"",-vRSS));
}
else {AliInfo("No check on RSS memory usage will be applied");}
if (vVMEM>0) {
fMaxVMEM = vVMEM;
AliInfo(Form("Setting max. VMEM usage to user value %d MB",fMaxVMEM));
}
else if (vVMEM<0) {
getrlimit(RLIMIT_AS,&r);
fMaxVMEM = r.rlim_max==RLIM_INFINITY ? kInfMem : int(r.rlim_max*pgSize/kKB2MB/kKB2MB) + vVMEM;
AliInfo(Form("Setting max. VMEM usage to system hard limit %d%s MB (%d margin)",fMaxVMEM,r.rlim_max==RLIM_INFINITY ? "(inf)":"",-vVMEM));
}
else {AliInfo("No check on RSS memory usage will be applied");}
}
Bool_t AliReconstruction::HasEnoughResources(int ev)
{
const int kKB2MB = 1024;
Bool_t res = kTRUE;
if (!fMaxRSS && !fMaxVMEM) return res;
ProcInfo_t procInfo;
gSystem->GetProcInfo(&procInfo);
if (procInfo.fMemResident/kKB2MB > fMaxRSS) res = kFALSE;
if (procInfo.fMemVirtual/kKB2MB > fMaxVMEM) res = kFALSE;
if (!res) {
AliInfo(Form("Job exceeded allowed limits: RSS:%d (%d) VMEM:%d (%d), will stop",
int(procInfo.fMemResident/kKB2MB),fMaxRSS,
int(procInfo.fMemVirtual/kKB2MB) ,fMaxVMEM));
unlink(Form("%s",fgkStopEvFName));
ofstream outfile(fgkStopEvFName);
outfile << ev << std::endl;
outfile.close();
fStopped = kTRUE;
}
return res;
}
Bool_t AliReconstruction::HasNextEventAfter(Int_t eventId)
{
return ( (eventId < fRunLoader->GetNumberOfEvents()) ||
(fRawReader && fRawReader->NextEvent()) );
}
void AliReconstruction::CheckRecoCDBvsSimuCDB()
{
int nent = fCheckRecoCDBvsSimuCDB.GetEntriesFast();
AliInfo(Form("Check %d entries for matching between sim and rec",nent));
fRunLoader->CdGAFile();
TMap* cdbMapSim = (TMap*)gDirectory->Get("cdbMap");
TList* cdbListSim = (TList*)gDirectory->Get("cdbList");
if (!(cdbMapSim && cdbListSim)) {
AliInfo(Form("No CDBMap/List found in %s, nothing to check",fGAliceFileName.Data()));
return;
}
for (Int_t i=0;i<nent;i++) {
TNamed* cdbent = (TNamed*) fCheckRecoCDBvsSimuCDB[i];
if (!cdbent) continue;
AliCDBManager::Instance()->Get(cdbent->GetName());
}
TPair* pair;
TObjString* stro;
pair = (TPair*)cdbMapSim->FindObject("default");
if (!pair) {AliFatal("Did not find default storage used for simulations"); return;}
TString defSimStore = ((TObjString*)pair->Value())->GetString();
RectifyCDBurl(defSimStore);
const TMap *cdbMapRec = AliCDBManager::Instance()->GetStorageMap();
const TList *cdbListRec = AliCDBManager::Instance()->GetRetrievedIds();
pair = (TPair*)cdbMapRec->FindObject("default");
if (!pair) {AliFatal("Did not find default storage used for reconstruction"); return;}
TString defRecStore = ((TObjString*)pair->Value())->GetString();
RectifyCDBurl(defRecStore);
for (Int_t i=0;i<nent;i++) {
TNamed* cdbent = (TNamed*) fCheckRecoCDBvsSimuCDB[i];
if (!cdbent) continue;
AliInfo(Form("#%d Checking %s",i,cdbent->GetName()));
TString idSim="",storSim="";
TIter nextSim(cdbListSim);
while ((stro=(TObjString*)nextSim())) {
if (stro->GetString().Contains(cdbent->GetName())) {
idSim = stro->GetString();
break;
}
}
pair = (TPair*)cdbMapSim->FindObject(cdbent->GetName());
if (pair) {
storSim = ((TObjString*)pair->Value())->GetString();
RectifyCDBurl(storSim);
}
else storSim = defSimStore;
if (!idSim.IsNull()) AliInfo(Form("Sim. used %s from %s",idSim.Data(), storSim.Data()));
else AliInfo("Sim. did not use this object");
TString idRec="",storRec="";
TIter nextRec(cdbListRec);
AliCDBId* id=0;
while ((id=(AliCDBId*)nextRec())) {
idRec = id->ToString();
if (idRec.Contains(cdbent->GetName())) break;
idRec="";
}
pair = (TPair*)cdbMapRec->FindObject(cdbent->GetName());
if (pair) {
storRec = ((TObjString*)pair->Value())->GetString();
RectifyCDBurl(storRec);
}
else storRec = defRecStore;
if (!idRec.IsNull()) AliInfo(Form("Rec. used %s from %s",idRec.Data(), storRec.Data()));
else AliInfo("Rec. did not use this object");
if (!idSim.IsNull() && !idRec.IsNull() && ((idSim!=idRec) || (storSim!=storRec)) )
AliFatal("Different objects were used in sim and rec");
}
}
void AliReconstruction::RectifyCDBurl(TString& url)
{
TString sbs;
if (!(sbs=url("\\?User=[^?]*")).IsNull()) url.ReplaceAll(sbs,"");
if (!(sbs=url("\\?DBFolder=[^?]*")).IsNull()) url.ReplaceAll("?DB","");
if (!(sbs=url("\\?SE=[^?]*")).IsNull()) url.ReplaceAll(sbs,"");
if (!(sbs=url("\\?CacheFolder=[^?]*")).IsNull()) url.ReplaceAll(sbs,"");
if (!(sbs=url("\\?OperateDisconnected=[^?]*")).IsNull()) url.ReplaceAll(sbs,"");
if (!(sbs=url("\\?CacheSize=[^?]*")).IsNull()) url.ReplaceAll(sbs,"");
if (!(sbs=url("\\?CleanupInterval=[^?]*")).IsNull()) url.ReplaceAll(sbs,"");
Bool_t slash=kFALSE,space=kFALSE;
while ( (slash=url.EndsWith("/")) || (space=url.EndsWith(" ")) ) {
if (slash) url = url.Strip(TString::kTrailing,'/');
if (space) url = url.Strip(TString::kTrailing,' ');
}
}
AliReconstruction.cxx:100 AliReconstruction.cxx:101 AliReconstruction.cxx:102 AliReconstruction.cxx:103 AliReconstruction.cxx:104 AliReconstruction.cxx:105 AliReconstruction.cxx:106 AliReconstruction.cxx:107 AliReconstruction.cxx:108 AliReconstruction.cxx:109 AliReconstruction.cxx:110 AliReconstruction.cxx:111 AliReconstruction.cxx:112 AliReconstruction.cxx:113 AliReconstruction.cxx:114 AliReconstruction.cxx:115 AliReconstruction.cxx:116 AliReconstruction.cxx:117 AliReconstruction.cxx:118 AliReconstruction.cxx:119 AliReconstruction.cxx:120 AliReconstruction.cxx:121 AliReconstruction.cxx:122 AliReconstruction.cxx:123 AliReconstruction.cxx:124 AliReconstruction.cxx:125 AliReconstruction.cxx:126 AliReconstruction.cxx:127 AliReconstruction.cxx:128 AliReconstruction.cxx:129 AliReconstruction.cxx:130 AliReconstruction.cxx:131 AliReconstruction.cxx:132 AliReconstruction.cxx:133 AliReconstruction.cxx:134 AliReconstruction.cxx:135 AliReconstruction.cxx:136 AliReconstruction.cxx:137 AliReconstruction.cxx:138 AliReconstruction.cxx:139 AliReconstruction.cxx:140 AliReconstruction.cxx:141 AliReconstruction.cxx:142 AliReconstruction.cxx:143 AliReconstruction.cxx:144 AliReconstruction.cxx:145 AliReconstruction.cxx:146 AliReconstruction.cxx:147 AliReconstruction.cxx:148 AliReconstruction.cxx:149 AliReconstruction.cxx:150 AliReconstruction.cxx:151 AliReconstruction.cxx:152 AliReconstruction.cxx:153 AliReconstruction.cxx:154 AliReconstruction.cxx:155 AliReconstruction.cxx:156 AliReconstruction.cxx:157 AliReconstruction.cxx:158 AliReconstruction.cxx:159 AliReconstruction.cxx:160 AliReconstruction.cxx:161 AliReconstruction.cxx:162 AliReconstruction.cxx:163 AliReconstruction.cxx:164 AliReconstruction.cxx:165 AliReconstruction.cxx:166 AliReconstruction.cxx:167 AliReconstruction.cxx:168 AliReconstruction.cxx:169 AliReconstruction.cxx:170 AliReconstruction.cxx:171 AliReconstruction.cxx:172 AliReconstruction.cxx:173 AliReconstruction.cxx:174 AliReconstruction.cxx:175 AliReconstruction.cxx:176 AliReconstruction.cxx:177 AliReconstruction.cxx:178 AliReconstruction.cxx:179 AliReconstruction.cxx:180 AliReconstruction.cxx:181 AliReconstruction.cxx:182 AliReconstruction.cxx:183 AliReconstruction.cxx:184 AliReconstruction.cxx:185 AliReconstruction.cxx:186 AliReconstruction.cxx:187 AliReconstruction.cxx:188 AliReconstruction.cxx:189 AliReconstruction.cxx:190 AliReconstruction.cxx:191 AliReconstruction.cxx:192 AliReconstruction.cxx:193 AliReconstruction.cxx:194 AliReconstruction.cxx:195 AliReconstruction.cxx:196 AliReconstruction.cxx:197 AliReconstruction.cxx:198 AliReconstruction.cxx:199 AliReconstruction.cxx:200 AliReconstruction.cxx:201 AliReconstruction.cxx:202 AliReconstruction.cxx:203 AliReconstruction.cxx:204 AliReconstruction.cxx:205 AliReconstruction.cxx:206 AliReconstruction.cxx:207 AliReconstruction.cxx:208 AliReconstruction.cxx:209 AliReconstruction.cxx:210 AliReconstruction.cxx:211 AliReconstruction.cxx:212 AliReconstruction.cxx:213 AliReconstruction.cxx:214 AliReconstruction.cxx:215 AliReconstruction.cxx:216 AliReconstruction.cxx:217 AliReconstruction.cxx:218 AliReconstruction.cxx:219 AliReconstruction.cxx:220 AliReconstruction.cxx:221 AliReconstruction.cxx:222 AliReconstruction.cxx:223 AliReconstruction.cxx:224 AliReconstruction.cxx:225 AliReconstruction.cxx:226 AliReconstruction.cxx:227 AliReconstruction.cxx:228 AliReconstruction.cxx:229 AliReconstruction.cxx:230 AliReconstruction.cxx:231 AliReconstruction.cxx:232 AliReconstruction.cxx:233 AliReconstruction.cxx:234 AliReconstruction.cxx:235 AliReconstruction.cxx:236 AliReconstruction.cxx:237 AliReconstruction.cxx:238 AliReconstruction.cxx:239 AliReconstruction.cxx:240 AliReconstruction.cxx:241 AliReconstruction.cxx:242 AliReconstruction.cxx:243 AliReconstruction.cxx:244 AliReconstruction.cxx:245 AliReconstruction.cxx:246 AliReconstruction.cxx:247 AliReconstruction.cxx:248 AliReconstruction.cxx:249 AliReconstruction.cxx:250 AliReconstruction.cxx:251 AliReconstruction.cxx:252 AliReconstruction.cxx:253 AliReconstruction.cxx:254 AliReconstruction.cxx:255 AliReconstruction.cxx:256 AliReconstruction.cxx:257 AliReconstruction.cxx:258 AliReconstruction.cxx:259 AliReconstruction.cxx:260 AliReconstruction.cxx:261 AliReconstruction.cxx:262 AliReconstruction.cxx:263 AliReconstruction.cxx:264 AliReconstruction.cxx:265 AliReconstruction.cxx:266 AliReconstruction.cxx:267 AliReconstruction.cxx:268 AliReconstruction.cxx:269 AliReconstruction.cxx:270 AliReconstruction.cxx:271 AliReconstruction.cxx:272 AliReconstruction.cxx:273 AliReconstruction.cxx:274 AliReconstruction.cxx:275 AliReconstruction.cxx:276 AliReconstruction.cxx:277 AliReconstruction.cxx:278 AliReconstruction.cxx:279 AliReconstruction.cxx:280 AliReconstruction.cxx:281 AliReconstruction.cxx:282 AliReconstruction.cxx:283 AliReconstruction.cxx:284 AliReconstruction.cxx:285 AliReconstruction.cxx:286 AliReconstruction.cxx:287 AliReconstruction.cxx:288 AliReconstruction.cxx:289 AliReconstruction.cxx:290 AliReconstruction.cxx:291 AliReconstruction.cxx:292 AliReconstruction.cxx:293 AliReconstruction.cxx:294 AliReconstruction.cxx:295 AliReconstruction.cxx:296 AliReconstruction.cxx:297 AliReconstruction.cxx:298 AliReconstruction.cxx:299 AliReconstruction.cxx:300 AliReconstruction.cxx:301 AliReconstruction.cxx:302 AliReconstruction.cxx:303 AliReconstruction.cxx:304 AliReconstruction.cxx:305 AliReconstruction.cxx:306 AliReconstruction.cxx:307 AliReconstruction.cxx:308 AliReconstruction.cxx:309 AliReconstruction.cxx:310 AliReconstruction.cxx:311 AliReconstruction.cxx:312 AliReconstruction.cxx:313 AliReconstruction.cxx:314 AliReconstruction.cxx:315 AliReconstruction.cxx:316 AliReconstruction.cxx:317 AliReconstruction.cxx:318 AliReconstruction.cxx:319 AliReconstruction.cxx:320 AliReconstruction.cxx:321 AliReconstruction.cxx:322 AliReconstruction.cxx:323 AliReconstruction.cxx:324 AliReconstruction.cxx:325 AliReconstruction.cxx:326 AliReconstruction.cxx:327 AliReconstruction.cxx:328 AliReconstruction.cxx:329 AliReconstruction.cxx:330 AliReconstruction.cxx:331 AliReconstruction.cxx:332 AliReconstruction.cxx:333 AliReconstruction.cxx:334 AliReconstruction.cxx:335 AliReconstruction.cxx:336 AliReconstruction.cxx:337 AliReconstruction.cxx:338 AliReconstruction.cxx:339 AliReconstruction.cxx:340 AliReconstruction.cxx:341 AliReconstruction.cxx:342 AliReconstruction.cxx:343 AliReconstruction.cxx:344 AliReconstruction.cxx:345 AliReconstruction.cxx:346 AliReconstruction.cxx:347 AliReconstruction.cxx:348 AliReconstruction.cxx:349 AliReconstruction.cxx:350 AliReconstruction.cxx:351 AliReconstruction.cxx:352 AliReconstruction.cxx:353 AliReconstruction.cxx:354 AliReconstruction.cxx:355 AliReconstruction.cxx:356 AliReconstruction.cxx:357 AliReconstruction.cxx:358 AliReconstruction.cxx:359 AliReconstruction.cxx:360 AliReconstruction.cxx:361 AliReconstruction.cxx:362 AliReconstruction.cxx:363 AliReconstruction.cxx:364 AliReconstruction.cxx:365 AliReconstruction.cxx:366 AliReconstruction.cxx:367 AliReconstruction.cxx:368 AliReconstruction.cxx:369 AliReconstruction.cxx:370 AliReconstruction.cxx:371 AliReconstruction.cxx:372 AliReconstruction.cxx:373 AliReconstruction.cxx:374 AliReconstruction.cxx:375 AliReconstruction.cxx:376 AliReconstruction.cxx:377 AliReconstruction.cxx:378 AliReconstruction.cxx:379 AliReconstruction.cxx:380 AliReconstruction.cxx:381 AliReconstruction.cxx:382 AliReconstruction.cxx:383 AliReconstruction.cxx:384 AliReconstruction.cxx:385 AliReconstruction.cxx:386 AliReconstruction.cxx:387 AliReconstruction.cxx:388 AliReconstruction.cxx:389 AliReconstruction.cxx:390 AliReconstruction.cxx:391 AliReconstruction.cxx:392 AliReconstruction.cxx:393 AliReconstruction.cxx:394 AliReconstruction.cxx:395 AliReconstruction.cxx:396 AliReconstruction.cxx:397 AliReconstruction.cxx:398 AliReconstruction.cxx:399 AliReconstruction.cxx:400 AliReconstruction.cxx:401 AliReconstruction.cxx:402 AliReconstruction.cxx:403 AliReconstruction.cxx:404 AliReconstruction.cxx:405 AliReconstruction.cxx:406 AliReconstruction.cxx:407 AliReconstruction.cxx:408 AliReconstruction.cxx:409 AliReconstruction.cxx:410 AliReconstruction.cxx:411 AliReconstruction.cxx:412 AliReconstruction.cxx:413 AliReconstruction.cxx:414 AliReconstruction.cxx:415 AliReconstruction.cxx:416 AliReconstruction.cxx:417 AliReconstruction.cxx:418 AliReconstruction.cxx:419 AliReconstruction.cxx:420 AliReconstruction.cxx:421 AliReconstruction.cxx:422 AliReconstruction.cxx:423 AliReconstruction.cxx:424 AliReconstruction.cxx:425 AliReconstruction.cxx:426 AliReconstruction.cxx:427 AliReconstruction.cxx:428 AliReconstruction.cxx:429 AliReconstruction.cxx:430 AliReconstruction.cxx:431 AliReconstruction.cxx:432 AliReconstruction.cxx:433 AliReconstruction.cxx:434 AliReconstruction.cxx:435 AliReconstruction.cxx:436 AliReconstruction.cxx:437 AliReconstruction.cxx:438 AliReconstruction.cxx:439 AliReconstruction.cxx:440 AliReconstruction.cxx:441 AliReconstruction.cxx:442 AliReconstruction.cxx:443 AliReconstruction.cxx:444 AliReconstruction.cxx:445 AliReconstruction.cxx:446 AliReconstruction.cxx:447 AliReconstruction.cxx:448 AliReconstruction.cxx:449 AliReconstruction.cxx:450 AliReconstruction.cxx:451 AliReconstruction.cxx:452 AliReconstruction.cxx:453 AliReconstruction.cxx:454 AliReconstruction.cxx:455 AliReconstruction.cxx:456 AliReconstruction.cxx:457 AliReconstruction.cxx:458 AliReconstruction.cxx:459 AliReconstruction.cxx:460 AliReconstruction.cxx:461 AliReconstruction.cxx:462 AliReconstruction.cxx:463 AliReconstruction.cxx:464 AliReconstruction.cxx:465 AliReconstruction.cxx:466 AliReconstruction.cxx:467 AliReconstruction.cxx:468 AliReconstruction.cxx:469 AliReconstruction.cxx:470 AliReconstruction.cxx:471 AliReconstruction.cxx:472 AliReconstruction.cxx:473 AliReconstruction.cxx:474 AliReconstruction.cxx:475 AliReconstruction.cxx:476 AliReconstruction.cxx:477 AliReconstruction.cxx:478 AliReconstruction.cxx:479 AliReconstruction.cxx:480 AliReconstruction.cxx:481 AliReconstruction.cxx:482 AliReconstruction.cxx:483 AliReconstruction.cxx:484 AliReconstruction.cxx:485 AliReconstruction.cxx:486 AliReconstruction.cxx:487 AliReconstruction.cxx:488 AliReconstruction.cxx:489 AliReconstruction.cxx:490 AliReconstruction.cxx:491 AliReconstruction.cxx:492 AliReconstruction.cxx:493 AliReconstruction.cxx:494 AliReconstruction.cxx:495 AliReconstruction.cxx:496 AliReconstruction.cxx:497 AliReconstruction.cxx:498 AliReconstruction.cxx:499 AliReconstruction.cxx:500 AliReconstruction.cxx:501 AliReconstruction.cxx:502 AliReconstruction.cxx:503 AliReconstruction.cxx:504 AliReconstruction.cxx:505 AliReconstruction.cxx:506 AliReconstruction.cxx:507 AliReconstruction.cxx:508 AliReconstruction.cxx:509 AliReconstruction.cxx:510 AliReconstruction.cxx:511 AliReconstruction.cxx:512 AliReconstruction.cxx:513 AliReconstruction.cxx:514 AliReconstruction.cxx:515 AliReconstruction.cxx:516 AliReconstruction.cxx:517 AliReconstruction.cxx:518 AliReconstruction.cxx:519 AliReconstruction.cxx:520 AliReconstruction.cxx:521 AliReconstruction.cxx:522 AliReconstruction.cxx:523 AliReconstruction.cxx:524 AliReconstruction.cxx:525 AliReconstruction.cxx:526 AliReconstruction.cxx:527 AliReconstruction.cxx:528 AliReconstruction.cxx:529 AliReconstruction.cxx:530 AliReconstruction.cxx:531 AliReconstruction.cxx:532 AliReconstruction.cxx:533 AliReconstruction.cxx:534 AliReconstruction.cxx:535 AliReconstruction.cxx:536 AliReconstruction.cxx:537 AliReconstruction.cxx:538 AliReconstruction.cxx:539 AliReconstruction.cxx:540 AliReconstruction.cxx:541 AliReconstruction.cxx:542 AliReconstruction.cxx:543 AliReconstruction.cxx:544 AliReconstruction.cxx:545 AliReconstruction.cxx:546 AliReconstruction.cxx:547 AliReconstruction.cxx:548 AliReconstruction.cxx:549 AliReconstruction.cxx:550 AliReconstruction.cxx:551 AliReconstruction.cxx:552 AliReconstruction.cxx:553 AliReconstruction.cxx:554 AliReconstruction.cxx:555 AliReconstruction.cxx:556 AliReconstruction.cxx:557 AliReconstruction.cxx:558 AliReconstruction.cxx:559 AliReconstruction.cxx:560 AliReconstruction.cxx:561 AliReconstruction.cxx:562 AliReconstruction.cxx:563 AliReconstruction.cxx:564 AliReconstruction.cxx:565 AliReconstruction.cxx:566 AliReconstruction.cxx:567 AliReconstruction.cxx:568 AliReconstruction.cxx:569 AliReconstruction.cxx:570 AliReconstruction.cxx:571 AliReconstruction.cxx:572 AliReconstruction.cxx:573 AliReconstruction.cxx:574 AliReconstruction.cxx:575 AliReconstruction.cxx:576 AliReconstruction.cxx:577 AliReconstruction.cxx:578 AliReconstruction.cxx:579 AliReconstruction.cxx:580 AliReconstruction.cxx:581 AliReconstruction.cxx:582 AliReconstruction.cxx:583 AliReconstruction.cxx:584 AliReconstruction.cxx:585 AliReconstruction.cxx:586 AliReconstruction.cxx:587 AliReconstruction.cxx:588 AliReconstruction.cxx:589 AliReconstruction.cxx:590 AliReconstruction.cxx:591 AliReconstruction.cxx:592 AliReconstruction.cxx:593 AliReconstruction.cxx:594 AliReconstruction.cxx:595 AliReconstruction.cxx:596 AliReconstruction.cxx:597 AliReconstruction.cxx:598 AliReconstruction.cxx:599 AliReconstruction.cxx:600 AliReconstruction.cxx:601 AliReconstruction.cxx:602 AliReconstruction.cxx:603 AliReconstruction.cxx:604 AliReconstruction.cxx:605 AliReconstruction.cxx:606 AliReconstruction.cxx:607 AliReconstruction.cxx:608 AliReconstruction.cxx:609 AliReconstruction.cxx:610 AliReconstruction.cxx:611 AliReconstruction.cxx:612 AliReconstruction.cxx:613 AliReconstruction.cxx:614 AliReconstruction.cxx:615 AliReconstruction.cxx:616 AliReconstruction.cxx:617 AliReconstruction.cxx:618 AliReconstruction.cxx:619 AliReconstruction.cxx:620 AliReconstruction.cxx:621 AliReconstruction.cxx:622 AliReconstruction.cxx:623 AliReconstruction.cxx:624 AliReconstruction.cxx:625 AliReconstruction.cxx:626 AliReconstruction.cxx:627 AliReconstruction.cxx:628 AliReconstruction.cxx:629 AliReconstruction.cxx:630 AliReconstruction.cxx:631 AliReconstruction.cxx:632 AliReconstruction.cxx:633 AliReconstruction.cxx:634 AliReconstruction.cxx:635 AliReconstruction.cxx:636 AliReconstruction.cxx:637 AliReconstruction.cxx:638 AliReconstruction.cxx:639 AliReconstruction.cxx:640 AliReconstruction.cxx:641 AliReconstruction.cxx:642 AliReconstruction.cxx:643 AliReconstruction.cxx:644 AliReconstruction.cxx:645 AliReconstruction.cxx:646 AliReconstruction.cxx:647 AliReconstruction.cxx:648 AliReconstruction.cxx:649 AliReconstruction.cxx:650 AliReconstruction.cxx:651 AliReconstruction.cxx:652 AliReconstruction.cxx:653 AliReconstruction.cxx:654 AliReconstruction.cxx:655 AliReconstruction.cxx:656 AliReconstruction.cxx:657 AliReconstruction.cxx:658 AliReconstruction.cxx:659 AliReconstruction.cxx:660 AliReconstruction.cxx:661 AliReconstruction.cxx:662 AliReconstruction.cxx:663 AliReconstruction.cxx:664 AliReconstruction.cxx:665 AliReconstruction.cxx:666 AliReconstruction.cxx:667 AliReconstruction.cxx:668 AliReconstruction.cxx:669 AliReconstruction.cxx:670 AliReconstruction.cxx:671 AliReconstruction.cxx:672 AliReconstruction.cxx:673 AliReconstruction.cxx:674 AliReconstruction.cxx:675 AliReconstruction.cxx:676 AliReconstruction.cxx:677 AliReconstruction.cxx:678 AliReconstruction.cxx:679 AliReconstruction.cxx:680 AliReconstruction.cxx:681 AliReconstruction.cxx:682 AliReconstruction.cxx:683 AliReconstruction.cxx:684 AliReconstruction.cxx:685 AliReconstruction.cxx:686 AliReconstruction.cxx:687 AliReconstruction.cxx:688 AliReconstruction.cxx:689 AliReconstruction.cxx:690 AliReconstruction.cxx:691 AliReconstruction.cxx:692 AliReconstruction.cxx:693 AliReconstruction.cxx:694 AliReconstruction.cxx:695 AliReconstruction.cxx:696 AliReconstruction.cxx:697 AliReconstruction.cxx:698 AliReconstruction.cxx:699 AliReconstruction.cxx:700 AliReconstruction.cxx:701 AliReconstruction.cxx:702 AliReconstruction.cxx:703 AliReconstruction.cxx:704 AliReconstruction.cxx:705 AliReconstruction.cxx:706 AliReconstruction.cxx:707 AliReconstruction.cxx:708 AliReconstruction.cxx:709 AliReconstruction.cxx:710 AliReconstruction.cxx:711 AliReconstruction.cxx:712 AliReconstruction.cxx:713 AliReconstruction.cxx:714 AliReconstruction.cxx:715 AliReconstruction.cxx:716 AliReconstruction.cxx:717 AliReconstruction.cxx:718 AliReconstruction.cxx:719 AliReconstruction.cxx:720 AliReconstruction.cxx:721 AliReconstruction.cxx:722 AliReconstruction.cxx:723 AliReconstruction.cxx:724 AliReconstruction.cxx:725 AliReconstruction.cxx:726 AliReconstruction.cxx:727 AliReconstruction.cxx:728 AliReconstruction.cxx:729 AliReconstruction.cxx:730 AliReconstruction.cxx:731 AliReconstruction.cxx:732 AliReconstruction.cxx:733 AliReconstruction.cxx:734 AliReconstruction.cxx:735 AliReconstruction.cxx:736 AliReconstruction.cxx:737 AliReconstruction.cxx:738 AliReconstruction.cxx:739 AliReconstruction.cxx:740 AliReconstruction.cxx:741 AliReconstruction.cxx:742 AliReconstruction.cxx:743 AliReconstruction.cxx:744 AliReconstruction.cxx:745 AliReconstruction.cxx:746 AliReconstruction.cxx:747 AliReconstruction.cxx:748 AliReconstruction.cxx:749 AliReconstruction.cxx:750 AliReconstruction.cxx:751 AliReconstruction.cxx:752 AliReconstruction.cxx:753 AliReconstruction.cxx:754 AliReconstruction.cxx:755 AliReconstruction.cxx:756 AliReconstruction.cxx:757 AliReconstruction.cxx:758 AliReconstruction.cxx:759 AliReconstruction.cxx:760 AliReconstruction.cxx:761 AliReconstruction.cxx:762 AliReconstruction.cxx:763 AliReconstruction.cxx:764 AliReconstruction.cxx:765 AliReconstruction.cxx:766 AliReconstruction.cxx:767 AliReconstruction.cxx:768 AliReconstruction.cxx:769 AliReconstruction.cxx:770 AliReconstruction.cxx:771 AliReconstruction.cxx:772 AliReconstruction.cxx:773 AliReconstruction.cxx:774 AliReconstruction.cxx:775 AliReconstruction.cxx:776 AliReconstruction.cxx:777 AliReconstruction.cxx:778 AliReconstruction.cxx:779 AliReconstruction.cxx:780 AliReconstruction.cxx:781 AliReconstruction.cxx:782 AliReconstruction.cxx:783 AliReconstruction.cxx:784 AliReconstruction.cxx:785 AliReconstruction.cxx:786 AliReconstruction.cxx:787 AliReconstruction.cxx:788 AliReconstruction.cxx:789 AliReconstruction.cxx:790 AliReconstruction.cxx:791 AliReconstruction.cxx:792 AliReconstruction.cxx:793 AliReconstruction.cxx:794 AliReconstruction.cxx:795 AliReconstruction.cxx:796 AliReconstruction.cxx:797 AliReconstruction.cxx:798 AliReconstruction.cxx:799 AliReconstruction.cxx:800 AliReconstruction.cxx:801 AliReconstruction.cxx:802 AliReconstruction.cxx:803 AliReconstruction.cxx:804 AliReconstruction.cxx:805 AliReconstruction.cxx:806 AliReconstruction.cxx:807 AliReconstruction.cxx:808 AliReconstruction.cxx:809 AliReconstruction.cxx:810 AliReconstruction.cxx:811 AliReconstruction.cxx:812 AliReconstruction.cxx:813 AliReconstruction.cxx:814 AliReconstruction.cxx:815 AliReconstruction.cxx:816 AliReconstruction.cxx:817 AliReconstruction.cxx:818 AliReconstruction.cxx:819 AliReconstruction.cxx:820 AliReconstruction.cxx:821 AliReconstruction.cxx:822 AliReconstruction.cxx:823 AliReconstruction.cxx:824 AliReconstruction.cxx:825 AliReconstruction.cxx:826 AliReconstruction.cxx:827 AliReconstruction.cxx:828 AliReconstruction.cxx:829 AliReconstruction.cxx:830 AliReconstruction.cxx:831 AliReconstruction.cxx:832 AliReconstruction.cxx:833 AliReconstruction.cxx:834 AliReconstruction.cxx:835 AliReconstruction.cxx:836 AliReconstruction.cxx:837 AliReconstruction.cxx:838 AliReconstruction.cxx:839 AliReconstruction.cxx:840 AliReconstruction.cxx:841 AliReconstruction.cxx:842 AliReconstruction.cxx:843 AliReconstruction.cxx:844 AliReconstruction.cxx:845 AliReconstruction.cxx:846 AliReconstruction.cxx:847 AliReconstruction.cxx:848 AliReconstruction.cxx:849 AliReconstruction.cxx:850 AliReconstruction.cxx:851 AliReconstruction.cxx:852 AliReconstruction.cxx:853 AliReconstruction.cxx:854 AliReconstruction.cxx:855 AliReconstruction.cxx:856 AliReconstruction.cxx:857 AliReconstruction.cxx:858 AliReconstruction.cxx:859 AliReconstruction.cxx:860 AliReconstruction.cxx:861 AliReconstruction.cxx:862 AliReconstruction.cxx:863 AliReconstruction.cxx:864 AliReconstruction.cxx:865 AliReconstruction.cxx:866 AliReconstruction.cxx:867 AliReconstruction.cxx:868 AliReconstruction.cxx:869 AliReconstruction.cxx:870 AliReconstruction.cxx:871 AliReconstruction.cxx:872 AliReconstruction.cxx:873 AliReconstruction.cxx:874 AliReconstruction.cxx:875 AliReconstruction.cxx:876 AliReconstruction.cxx:877 AliReconstruction.cxx:878 AliReconstruction.cxx:879 AliReconstruction.cxx:880 AliReconstruction.cxx:881 AliReconstruction.cxx:882 AliReconstruction.cxx:883 AliReconstruction.cxx:884 AliReconstruction.cxx:885 AliReconstruction.cxx:886 AliReconstruction.cxx:887 AliReconstruction.cxx:888 AliReconstruction.cxx:889 AliReconstruction.cxx:890 AliReconstruction.cxx:891 AliReconstruction.cxx:892 AliReconstruction.cxx:893 AliReconstruction.cxx:894 AliReconstruction.cxx:895 AliReconstruction.cxx:896 AliReconstruction.cxx:897 AliReconstruction.cxx:898 AliReconstruction.cxx:899 AliReconstruction.cxx:900 AliReconstruction.cxx:901 AliReconstruction.cxx:902 AliReconstruction.cxx:903 AliReconstruction.cxx:904 AliReconstruction.cxx:905 AliReconstruction.cxx:906 AliReconstruction.cxx:907 AliReconstruction.cxx:908 AliReconstruction.cxx:909 AliReconstruction.cxx:910 AliReconstruction.cxx:911 AliReconstruction.cxx:912 AliReconstruction.cxx:913 AliReconstruction.cxx:914 AliReconstruction.cxx:915 AliReconstruction.cxx:916 AliReconstruction.cxx:917 AliReconstruction.cxx:918 AliReconstruction.cxx:919 AliReconstruction.cxx:920 AliReconstruction.cxx:921 AliReconstruction.cxx:922 AliReconstruction.cxx:923 AliReconstruction.cxx:924 AliReconstruction.cxx:925 AliReconstruction.cxx:926 AliReconstruction.cxx:927 AliReconstruction.cxx:928 AliReconstruction.cxx:929 AliReconstruction.cxx:930 AliReconstruction.cxx:931 AliReconstruction.cxx:932 AliReconstruction.cxx:933 AliReconstruction.cxx:934 AliReconstruction.cxx:935 AliReconstruction.cxx:936 AliReconstruction.cxx:937 AliReconstruction.cxx:938 AliReconstruction.cxx:939 AliReconstruction.cxx:940 AliReconstruction.cxx:941 AliReconstruction.cxx:942 AliReconstruction.cxx:943 AliReconstruction.cxx:944 AliReconstruction.cxx:945 AliReconstruction.cxx:946 AliReconstruction.cxx:947 AliReconstruction.cxx:948 AliReconstruction.cxx:949 AliReconstruction.cxx:950 AliReconstruction.cxx:951 AliReconstruction.cxx:952 AliReconstruction.cxx:953 AliReconstruction.cxx:954 AliReconstruction.cxx:955 AliReconstruction.cxx:956 AliReconstruction.cxx:957 AliReconstruction.cxx:958 AliReconstruction.cxx:959 AliReconstruction.cxx:960 AliReconstruction.cxx:961 AliReconstruction.cxx:962 AliReconstruction.cxx:963 AliReconstruction.cxx:964 AliReconstruction.cxx:965 AliReconstruction.cxx:966 AliReconstruction.cxx:967 AliReconstruction.cxx:968 AliReconstruction.cxx:969 AliReconstruction.cxx:970 AliReconstruction.cxx:971 AliReconstruction.cxx:972 AliReconstruction.cxx:973 AliReconstruction.cxx:974 AliReconstruction.cxx:975 AliReconstruction.cxx:976 AliReconstruction.cxx:977 AliReconstruction.cxx:978 AliReconstruction.cxx:979 AliReconstruction.cxx:980 AliReconstruction.cxx:981 AliReconstruction.cxx:982 AliReconstruction.cxx:983 AliReconstruction.cxx:984 AliReconstruction.cxx:985 AliReconstruction.cxx:986 AliReconstruction.cxx:987 AliReconstruction.cxx:988 AliReconstruction.cxx:989 AliReconstruction.cxx:990 AliReconstruction.cxx:991 AliReconstruction.cxx:992 AliReconstruction.cxx:993 AliReconstruction.cxx:994 AliReconstruction.cxx:995 AliReconstruction.cxx:996 AliReconstruction.cxx:997 AliReconstruction.cxx:998 AliReconstruction.cxx:999 AliReconstruction.cxx:1000 AliReconstruction.cxx:1001 AliReconstruction.cxx:1002 AliReconstruction.cxx:1003 AliReconstruction.cxx:1004 AliReconstruction.cxx:1005 AliReconstruction.cxx:1006 AliReconstruction.cxx:1007 AliReconstruction.cxx:1008 AliReconstruction.cxx:1009 AliReconstruction.cxx:1010 AliReconstruction.cxx:1011 AliReconstruction.cxx:1012 AliReconstruction.cxx:1013 AliReconstruction.cxx:1014 AliReconstruction.cxx:1015 AliReconstruction.cxx:1016 AliReconstruction.cxx:1017 AliReconstruction.cxx:1018 AliReconstruction.cxx:1019 AliReconstruction.cxx:1020 AliReconstruction.cxx:1021 AliReconstruction.cxx:1022 AliReconstruction.cxx:1023 AliReconstruction.cxx:1024 AliReconstruction.cxx:1025 AliReconstruction.cxx:1026 AliReconstruction.cxx:1027 AliReconstruction.cxx:1028 AliReconstruction.cxx:1029 AliReconstruction.cxx:1030 AliReconstruction.cxx:1031 AliReconstruction.cxx:1032 AliReconstruction.cxx:1033 AliReconstruction.cxx:1034 AliReconstruction.cxx:1035 AliReconstruction.cxx:1036 AliReconstruction.cxx:1037 AliReconstruction.cxx:1038 AliReconstruction.cxx:1039 AliReconstruction.cxx:1040 AliReconstruction.cxx:1041 AliReconstruction.cxx:1042 AliReconstruction.cxx:1043 AliReconstruction.cxx:1044 AliReconstruction.cxx:1045 AliReconstruction.cxx:1046 AliReconstruction.cxx:1047 AliReconstruction.cxx:1048 AliReconstruction.cxx:1049 AliReconstruction.cxx:1050 AliReconstruction.cxx:1051 AliReconstruction.cxx:1052 AliReconstruction.cxx:1053 AliReconstruction.cxx:1054 AliReconstruction.cxx:1055 AliReconstruction.cxx:1056 AliReconstruction.cxx:1057 AliReconstruction.cxx:1058 AliReconstruction.cxx:1059 AliReconstruction.cxx:1060 AliReconstruction.cxx:1061 AliReconstruction.cxx:1062 AliReconstruction.cxx:1063 AliReconstruction.cxx:1064 AliReconstruction.cxx:1065 AliReconstruction.cxx:1066 AliReconstruction.cxx:1067 AliReconstruction.cxx:1068 AliReconstruction.cxx:1069 AliReconstruction.cxx:1070 AliReconstruction.cxx:1071 AliReconstruction.cxx:1072 AliReconstruction.cxx:1073 AliReconstruction.cxx:1074 AliReconstruction.cxx:1075 AliReconstruction.cxx:1076 AliReconstruction.cxx:1077 AliReconstruction.cxx:1078 AliReconstruction.cxx:1079 AliReconstruction.cxx:1080 AliReconstruction.cxx:1081 AliReconstruction.cxx:1082 AliReconstruction.cxx:1083 AliReconstruction.cxx:1084 AliReconstruction.cxx:1085 AliReconstruction.cxx:1086 AliReconstruction.cxx:1087 AliReconstruction.cxx:1088 AliReconstruction.cxx:1089 AliReconstruction.cxx:1090 AliReconstruction.cxx:1091 AliReconstruction.cxx:1092 AliReconstruction.cxx:1093 AliReconstruction.cxx:1094 AliReconstruction.cxx:1095 AliReconstruction.cxx:1096 AliReconstruction.cxx:1097 AliReconstruction.cxx:1098 AliReconstruction.cxx:1099 AliReconstruction.cxx:1100 AliReconstruction.cxx:1101 AliReconstruction.cxx:1102 AliReconstruction.cxx:1103 AliReconstruction.cxx:1104 AliReconstruction.cxx:1105 AliReconstruction.cxx:1106 AliReconstruction.cxx:1107 AliReconstruction.cxx:1108 AliReconstruction.cxx:1109 AliReconstruction.cxx:1110 AliReconstruction.cxx:1111 AliReconstruction.cxx:1112 AliReconstruction.cxx:1113 AliReconstruction.cxx:1114 AliReconstruction.cxx:1115 AliReconstruction.cxx:1116 AliReconstruction.cxx:1117 AliReconstruction.cxx:1118 AliReconstruction.cxx:1119 AliReconstruction.cxx:1120 AliReconstruction.cxx:1121 AliReconstruction.cxx:1122 AliReconstruction.cxx:1123 AliReconstruction.cxx:1124 AliReconstruction.cxx:1125 AliReconstruction.cxx:1126 AliReconstruction.cxx:1127 AliReconstruction.cxx:1128 AliReconstruction.cxx:1129 AliReconstruction.cxx:1130 AliReconstruction.cxx:1131 AliReconstruction.cxx:1132 AliReconstruction.cxx:1133 AliReconstruction.cxx:1134 AliReconstruction.cxx:1135 AliReconstruction.cxx:1136 AliReconstruction.cxx:1137 AliReconstruction.cxx:1138 AliReconstruction.cxx:1139 AliReconstruction.cxx:1140 AliReconstruction.cxx:1141 AliReconstruction.cxx:1142 AliReconstruction.cxx:1143 AliReconstruction.cxx:1144 AliReconstruction.cxx:1145 AliReconstruction.cxx:1146 AliReconstruction.cxx:1147 AliReconstruction.cxx:1148 AliReconstruction.cxx:1149 AliReconstruction.cxx:1150 AliReconstruction.cxx:1151 AliReconstruction.cxx:1152 AliReconstruction.cxx:1153 AliReconstruction.cxx:1154 AliReconstruction.cxx:1155 AliReconstruction.cxx:1156 AliReconstruction.cxx:1157 AliReconstruction.cxx:1158 AliReconstruction.cxx:1159 AliReconstruction.cxx:1160 AliReconstruction.cxx:1161 AliReconstruction.cxx:1162 AliReconstruction.cxx:1163 AliReconstruction.cxx:1164 AliReconstruction.cxx:1165 AliReconstruction.cxx:1166 AliReconstruction.cxx:1167 AliReconstruction.cxx:1168 AliReconstruction.cxx:1169 AliReconstruction.cxx:1170 AliReconstruction.cxx:1171 AliReconstruction.cxx:1172 AliReconstruction.cxx:1173 AliReconstruction.cxx:1174 AliReconstruction.cxx:1175 AliReconstruction.cxx:1176 AliReconstruction.cxx:1177 AliReconstruction.cxx:1178 AliReconstruction.cxx:1179 AliReconstruction.cxx:1180 AliReconstruction.cxx:1181 AliReconstruction.cxx:1182 AliReconstruction.cxx:1183 AliReconstruction.cxx:1184 AliReconstruction.cxx:1185 AliReconstruction.cxx:1186 AliReconstruction.cxx:1187 AliReconstruction.cxx:1188 AliReconstruction.cxx:1189 AliReconstruction.cxx:1190 AliReconstruction.cxx:1191 AliReconstruction.cxx:1192 AliReconstruction.cxx:1193 AliReconstruction.cxx:1194 AliReconstruction.cxx:1195 AliReconstruction.cxx:1196 AliReconstruction.cxx:1197 AliReconstruction.cxx:1198 AliReconstruction.cxx:1199 AliReconstruction.cxx:1200 AliReconstruction.cxx:1201 AliReconstruction.cxx:1202 AliReconstruction.cxx:1203 AliReconstruction.cxx:1204 AliReconstruction.cxx:1205 AliReconstruction.cxx:1206 AliReconstruction.cxx:1207 AliReconstruction.cxx:1208 AliReconstruction.cxx:1209 AliReconstruction.cxx:1210 AliReconstruction.cxx:1211 AliReconstruction.cxx:1212 AliReconstruction.cxx:1213 AliReconstruction.cxx:1214 AliReconstruction.cxx:1215 AliReconstruction.cxx:1216 AliReconstruction.cxx:1217 AliReconstruction.cxx:1218 AliReconstruction.cxx:1219 AliReconstruction.cxx:1220 AliReconstruction.cxx:1221 AliReconstruction.cxx:1222 AliReconstruction.cxx:1223 AliReconstruction.cxx:1224 AliReconstruction.cxx:1225 AliReconstruction.cxx:1226 AliReconstruction.cxx:1227 AliReconstruction.cxx:1228 AliReconstruction.cxx:1229 AliReconstruction.cxx:1230 AliReconstruction.cxx:1231 AliReconstruction.cxx:1232 AliReconstruction.cxx:1233 AliReconstruction.cxx:1234 AliReconstruction.cxx:1235 AliReconstruction.cxx:1236 AliReconstruction.cxx:1237 AliReconstruction.cxx:1238 AliReconstruction.cxx:1239 AliReconstruction.cxx:1240 AliReconstruction.cxx:1241 AliReconstruction.cxx:1242 AliReconstruction.cxx:1243 AliReconstruction.cxx:1244 AliReconstruction.cxx:1245 AliReconstruction.cxx:1246 AliReconstruction.cxx:1247 AliReconstruction.cxx:1248 AliReconstruction.cxx:1249 AliReconstruction.cxx:1250 AliReconstruction.cxx:1251 AliReconstruction.cxx:1252 AliReconstruction.cxx:1253 AliReconstruction.cxx:1254 AliReconstruction.cxx:1255 AliReconstruction.cxx:1256 AliReconstruction.cxx:1257 AliReconstruction.cxx:1258 AliReconstruction.cxx:1259 AliReconstruction.cxx:1260 AliReconstruction.cxx:1261 AliReconstruction.cxx:1262 AliReconstruction.cxx:1263 AliReconstruction.cxx:1264 AliReconstruction.cxx:1265 AliReconstruction.cxx:1266 AliReconstruction.cxx:1267 AliReconstruction.cxx:1268 AliReconstruction.cxx:1269 AliReconstruction.cxx:1270 AliReconstruction.cxx:1271 AliReconstruction.cxx:1272 AliReconstruction.cxx:1273 AliReconstruction.cxx:1274 AliReconstruction.cxx:1275 AliReconstruction.cxx:1276 AliReconstruction.cxx:1277 AliReconstruction.cxx:1278 AliReconstruction.cxx:1279 AliReconstruction.cxx:1280 AliReconstruction.cxx:1281 AliReconstruction.cxx:1282 AliReconstruction.cxx:1283 AliReconstruction.cxx:1284 AliReconstruction.cxx:1285 AliReconstruction.cxx:1286 AliReconstruction.cxx:1287 AliReconstruction.cxx:1288 AliReconstruction.cxx:1289 AliReconstruction.cxx:1290 AliReconstruction.cxx:1291 AliReconstruction.cxx:1292 AliReconstruction.cxx:1293 AliReconstruction.cxx:1294 AliReconstruction.cxx:1295 AliReconstruction.cxx:1296 AliReconstruction.cxx:1297 AliReconstruction.cxx:1298 AliReconstruction.cxx:1299 AliReconstruction.cxx:1300 AliReconstruction.cxx:1301 AliReconstruction.cxx:1302 AliReconstruction.cxx:1303 AliReconstruction.cxx:1304 AliReconstruction.cxx:1305 AliReconstruction.cxx:1306 AliReconstruction.cxx:1307 AliReconstruction.cxx:1308 AliReconstruction.cxx:1309 AliReconstruction.cxx:1310 AliReconstruction.cxx:1311 AliReconstruction.cxx:1312 AliReconstruction.cxx:1313 AliReconstruction.cxx:1314 AliReconstruction.cxx:1315 AliReconstruction.cxx:1316 AliReconstruction.cxx:1317 AliReconstruction.cxx:1318 AliReconstruction.cxx:1319 AliReconstruction.cxx:1320 AliReconstruction.cxx:1321 AliReconstruction.cxx:1322 AliReconstruction.cxx:1323 AliReconstruction.cxx:1324 AliReconstruction.cxx:1325 AliReconstruction.cxx:1326 AliReconstruction.cxx:1327 AliReconstruction.cxx:1328 AliReconstruction.cxx:1329 AliReconstruction.cxx:1330 AliReconstruction.cxx:1331 AliReconstruction.cxx:1332 AliReconstruction.cxx:1333 AliReconstruction.cxx:1334 AliReconstruction.cxx:1335 AliReconstruction.cxx:1336 AliReconstruction.cxx:1337 AliReconstruction.cxx:1338 AliReconstruction.cxx:1339 AliReconstruction.cxx:1340 AliReconstruction.cxx:1341 AliReconstruction.cxx:1342 AliReconstruction.cxx:1343 AliReconstruction.cxx:1344 AliReconstruction.cxx:1345 AliReconstruction.cxx:1346 AliReconstruction.cxx:1347 AliReconstruction.cxx:1348 AliReconstruction.cxx:1349 AliReconstruction.cxx:1350 AliReconstruction.cxx:1351 AliReconstruction.cxx:1352 AliReconstruction.cxx:1353 AliReconstruction.cxx:1354 AliReconstruction.cxx:1355 AliReconstruction.cxx:1356 AliReconstruction.cxx:1357 AliReconstruction.cxx:1358 AliReconstruction.cxx:1359 AliReconstruction.cxx:1360 AliReconstruction.cxx:1361 AliReconstruction.cxx:1362 AliReconstruction.cxx:1363 AliReconstruction.cxx:1364 AliReconstruction.cxx:1365 AliReconstruction.cxx:1366 AliReconstruction.cxx:1367 AliReconstruction.cxx:1368 AliReconstruction.cxx:1369 AliReconstruction.cxx:1370 AliReconstruction.cxx:1371 AliReconstruction.cxx:1372 AliReconstruction.cxx:1373 AliReconstruction.cxx:1374 AliReconstruction.cxx:1375 AliReconstruction.cxx:1376 AliReconstruction.cxx:1377 AliReconstruction.cxx:1378 AliReconstruction.cxx:1379 AliReconstruction.cxx:1380 AliReconstruction.cxx:1381 AliReconstruction.cxx:1382 AliReconstruction.cxx:1383 AliReconstruction.cxx:1384 AliReconstruction.cxx:1385 AliReconstruction.cxx:1386 AliReconstruction.cxx:1387 AliReconstruction.cxx:1388 AliReconstruction.cxx:1389 AliReconstruction.cxx:1390 AliReconstruction.cxx:1391 AliReconstruction.cxx:1392 AliReconstruction.cxx:1393 AliReconstruction.cxx:1394 AliReconstruction.cxx:1395 AliReconstruction.cxx:1396 AliReconstruction.cxx:1397 AliReconstruction.cxx:1398 AliReconstruction.cxx:1399 AliReconstruction.cxx:1400 AliReconstruction.cxx:1401 AliReconstruction.cxx:1402 AliReconstruction.cxx:1403 AliReconstruction.cxx:1404 AliReconstruction.cxx:1405 AliReconstruction.cxx:1406 AliReconstruction.cxx:1407 AliReconstruction.cxx:1408 AliReconstruction.cxx:1409 AliReconstruction.cxx:1410 AliReconstruction.cxx:1411 AliReconstruction.cxx:1412 AliReconstruction.cxx:1413 AliReconstruction.cxx:1414 AliReconstruction.cxx:1415 AliReconstruction.cxx:1416 AliReconstruction.cxx:1417 AliReconstruction.cxx:1418 AliReconstruction.cxx:1419 AliReconstruction.cxx:1420 AliReconstruction.cxx:1421 AliReconstruction.cxx:1422 AliReconstruction.cxx:1423 AliReconstruction.cxx:1424 AliReconstruction.cxx:1425 AliReconstruction.cxx:1426 AliReconstruction.cxx:1427 AliReconstruction.cxx:1428 AliReconstruction.cxx:1429 AliReconstruction.cxx:1430 AliReconstruction.cxx:1431 AliReconstruction.cxx:1432 AliReconstruction.cxx:1433 AliReconstruction.cxx:1434 AliReconstruction.cxx:1435 AliReconstruction.cxx:1436 AliReconstruction.cxx:1437 AliReconstruction.cxx:1438 AliReconstruction.cxx:1439 AliReconstruction.cxx:1440 AliReconstruction.cxx:1441 AliReconstruction.cxx:1442 AliReconstruction.cxx:1443 AliReconstruction.cxx:1444 AliReconstruction.cxx:1445 AliReconstruction.cxx:1446 AliReconstruction.cxx:1447 AliReconstruction.cxx:1448 AliReconstruction.cxx:1449 AliReconstruction.cxx:1450 AliReconstruction.cxx:1451 AliReconstruction.cxx:1452 AliReconstruction.cxx:1453 AliReconstruction.cxx:1454 AliReconstruction.cxx:1455 AliReconstruction.cxx:1456 AliReconstruction.cxx:1457 AliReconstruction.cxx:1458 AliReconstruction.cxx:1459 AliReconstruction.cxx:1460 AliReconstruction.cxx:1461 AliReconstruction.cxx:1462 AliReconstruction.cxx:1463 AliReconstruction.cxx:1464 AliReconstruction.cxx:1465 AliReconstruction.cxx:1466 AliReconstruction.cxx:1467 AliReconstruction.cxx:1468 AliReconstruction.cxx:1469 AliReconstruction.cxx:1470 AliReconstruction.cxx:1471 AliReconstruction.cxx:1472 AliReconstruction.cxx:1473 AliReconstruction.cxx:1474 AliReconstruction.cxx:1475 AliReconstruction.cxx:1476 AliReconstruction.cxx:1477 AliReconstruction.cxx:1478 AliReconstruction.cxx:1479 AliReconstruction.cxx:1480 AliReconstruction.cxx:1481 AliReconstruction.cxx:1482 AliReconstruction.cxx:1483 AliReconstruction.cxx:1484 AliReconstruction.cxx:1485 AliReconstruction.cxx:1486 AliReconstruction.cxx:1487 AliReconstruction.cxx:1488 AliReconstruction.cxx:1489 AliReconstruction.cxx:1490 AliReconstruction.cxx:1491 AliReconstruction.cxx:1492 AliReconstruction.cxx:1493 AliReconstruction.cxx:1494 AliReconstruction.cxx:1495 AliReconstruction.cxx:1496 AliReconstruction.cxx:1497 AliReconstruction.cxx:1498 AliReconstruction.cxx:1499 AliReconstruction.cxx:1500 AliReconstruction.cxx:1501 AliReconstruction.cxx:1502 AliReconstruction.cxx:1503 AliReconstruction.cxx:1504 AliReconstruction.cxx:1505 AliReconstruction.cxx:1506 AliReconstruction.cxx:1507 AliReconstruction.cxx:1508 AliReconstruction.cxx:1509 AliReconstruction.cxx:1510 AliReconstruction.cxx:1511 AliReconstruction.cxx:1512 AliReconstruction.cxx:1513 AliReconstruction.cxx:1514 AliReconstruction.cxx:1515 AliReconstruction.cxx:1516 AliReconstruction.cxx:1517 AliReconstruction.cxx:1518 AliReconstruction.cxx:1519 AliReconstruction.cxx:1520 AliReconstruction.cxx:1521 AliReconstruction.cxx:1522 AliReconstruction.cxx:1523 AliReconstruction.cxx:1524 AliReconstruction.cxx:1525 AliReconstruction.cxx:1526 AliReconstruction.cxx:1527 AliReconstruction.cxx:1528 AliReconstruction.cxx:1529 AliReconstruction.cxx:1530 AliReconstruction.cxx:1531 AliReconstruction.cxx:1532 AliReconstruction.cxx:1533 AliReconstruction.cxx:1534 AliReconstruction.cxx:1535 AliReconstruction.cxx:1536 AliReconstruction.cxx:1537 AliReconstruction.cxx:1538 AliReconstruction.cxx:1539 AliReconstruction.cxx:1540 AliReconstruction.cxx:1541 AliReconstruction.cxx:1542 AliReconstruction.cxx:1543 AliReconstruction.cxx:1544 AliReconstruction.cxx:1545 AliReconstruction.cxx:1546 AliReconstruction.cxx:1547 AliReconstruction.cxx:1548 AliReconstruction.cxx:1549 AliReconstruction.cxx:1550 AliReconstruction.cxx:1551 AliReconstruction.cxx:1552 AliReconstruction.cxx:1553 AliReconstruction.cxx:1554 AliReconstruction.cxx:1555 AliReconstruction.cxx:1556 AliReconstruction.cxx:1557 AliReconstruction.cxx:1558 AliReconstruction.cxx:1559 AliReconstruction.cxx:1560 AliReconstruction.cxx:1561 AliReconstruction.cxx:1562 AliReconstruction.cxx:1563 AliReconstruction.cxx:1564 AliReconstruction.cxx:1565 AliReconstruction.cxx:1566 AliReconstruction.cxx:1567 AliReconstruction.cxx:1568 AliReconstruction.cxx:1569 AliReconstruction.cxx:1570 AliReconstruction.cxx:1571 AliReconstruction.cxx:1572 AliReconstruction.cxx:1573 AliReconstruction.cxx:1574 AliReconstruction.cxx:1575 AliReconstruction.cxx:1576 AliReconstruction.cxx:1577 AliReconstruction.cxx:1578 AliReconstruction.cxx:1579 AliReconstruction.cxx:1580 AliReconstruction.cxx:1581 AliReconstruction.cxx:1582 AliReconstruction.cxx:1583 AliReconstruction.cxx:1584 AliReconstruction.cxx:1585 AliReconstruction.cxx:1586 AliReconstruction.cxx:1587 AliReconstruction.cxx:1588 AliReconstruction.cxx:1589 AliReconstruction.cxx:1590 AliReconstruction.cxx:1591 AliReconstruction.cxx:1592 AliReconstruction.cxx:1593 AliReconstruction.cxx:1594 AliReconstruction.cxx:1595 AliReconstruction.cxx:1596 AliReconstruction.cxx:1597 AliReconstruction.cxx:1598 AliReconstruction.cxx:1599 AliReconstruction.cxx:1600 AliReconstruction.cxx:1601 AliReconstruction.cxx:1602 AliReconstruction.cxx:1603 AliReconstruction.cxx:1604 AliReconstruction.cxx:1605 AliReconstruction.cxx:1606 AliReconstruction.cxx:1607 AliReconstruction.cxx:1608 AliReconstruction.cxx:1609 AliReconstruction.cxx:1610 AliReconstruction.cxx:1611 AliReconstruction.cxx:1612 AliReconstruction.cxx:1613 AliReconstruction.cxx:1614 AliReconstruction.cxx:1615 AliReconstruction.cxx:1616 AliReconstruction.cxx:1617 AliReconstruction.cxx:1618 AliReconstruction.cxx:1619 AliReconstruction.cxx:1620 AliReconstruction.cxx:1621 AliReconstruction.cxx:1622 AliReconstruction.cxx:1623 AliReconstruction.cxx:1624 AliReconstruction.cxx:1625 AliReconstruction.cxx:1626 AliReconstruction.cxx:1627 AliReconstruction.cxx:1628 AliReconstruction.cxx:1629 AliReconstruction.cxx:1630 AliReconstruction.cxx:1631 AliReconstruction.cxx:1632 AliReconstruction.cxx:1633 AliReconstruction.cxx:1634 AliReconstruction.cxx:1635 AliReconstruction.cxx:1636 AliReconstruction.cxx:1637 AliReconstruction.cxx:1638 AliReconstruction.cxx:1639 AliReconstruction.cxx:1640 AliReconstruction.cxx:1641 AliReconstruction.cxx:1642 AliReconstruction.cxx:1643 AliReconstruction.cxx:1644 AliReconstruction.cxx:1645 AliReconstruction.cxx:1646 AliReconstruction.cxx:1647 AliReconstruction.cxx:1648 AliReconstruction.cxx:1649 AliReconstruction.cxx:1650 AliReconstruction.cxx:1651 AliReconstruction.cxx:1652 AliReconstruction.cxx:1653 AliReconstruction.cxx:1654 AliReconstruction.cxx:1655 AliReconstruction.cxx:1656 AliReconstruction.cxx:1657 AliReconstruction.cxx:1658 AliReconstruction.cxx:1659 AliReconstruction.cxx:1660 AliReconstruction.cxx:1661 AliReconstruction.cxx:1662 AliReconstruction.cxx:1663 AliReconstruction.cxx:1664 AliReconstruction.cxx:1665 AliReconstruction.cxx:1666 AliReconstruction.cxx:1667 AliReconstruction.cxx:1668 AliReconstruction.cxx:1669 AliReconstruction.cxx:1670 AliReconstruction.cxx:1671 AliReconstruction.cxx:1672 AliReconstruction.cxx:1673 AliReconstruction.cxx:1674 AliReconstruction.cxx:1675 AliReconstruction.cxx:1676 AliReconstruction.cxx:1677 AliReconstruction.cxx:1678 AliReconstruction.cxx:1679 AliReconstruction.cxx:1680 AliReconstruction.cxx:1681 AliReconstruction.cxx:1682 AliReconstruction.cxx:1683 AliReconstruction.cxx:1684 AliReconstruction.cxx:1685 AliReconstruction.cxx:1686 AliReconstruction.cxx:1687 AliReconstruction.cxx:1688 AliReconstruction.cxx:1689 AliReconstruction.cxx:1690 AliReconstruction.cxx:1691 AliReconstruction.cxx:1692 AliReconstruction.cxx:1693 AliReconstruction.cxx:1694 AliReconstruction.cxx:1695 AliReconstruction.cxx:1696 AliReconstruction.cxx:1697 AliReconstruction.cxx:1698 AliReconstruction.cxx:1699 AliReconstruction.cxx:1700 AliReconstruction.cxx:1701 AliReconstruction.cxx:1702 AliReconstruction.cxx:1703 AliReconstruction.cxx:1704 AliReconstruction.cxx:1705 AliReconstruction.cxx:1706 AliReconstruction.cxx:1707 AliReconstruction.cxx:1708 AliReconstruction.cxx:1709 AliReconstruction.cxx:1710 AliReconstruction.cxx:1711 AliReconstruction.cxx:1712 AliReconstruction.cxx:1713 AliReconstruction.cxx:1714 AliReconstruction.cxx:1715 AliReconstruction.cxx:1716 AliReconstruction.cxx:1717 AliReconstruction.cxx:1718 AliReconstruction.cxx:1719 AliReconstruction.cxx:1720 AliReconstruction.cxx:1721 AliReconstruction.cxx:1722 AliReconstruction.cxx:1723 AliReconstruction.cxx:1724 AliReconstruction.cxx:1725 AliReconstruction.cxx:1726 AliReconstruction.cxx:1727 AliReconstruction.cxx:1728 AliReconstruction.cxx:1729 AliReconstruction.cxx:1730 AliReconstruction.cxx:1731 AliReconstruction.cxx:1732 AliReconstruction.cxx:1733 AliReconstruction.cxx:1734 AliReconstruction.cxx:1735 AliReconstruction.cxx:1736 AliReconstruction.cxx:1737 AliReconstruction.cxx:1738 AliReconstruction.cxx:1739 AliReconstruction.cxx:1740 AliReconstruction.cxx:1741 AliReconstruction.cxx:1742 AliReconstruction.cxx:1743 AliReconstruction.cxx:1744 AliReconstruction.cxx:1745 AliReconstruction.cxx:1746 AliReconstruction.cxx:1747 AliReconstruction.cxx:1748 AliReconstruction.cxx:1749 AliReconstruction.cxx:1750 AliReconstruction.cxx:1751 AliReconstruction.cxx:1752 AliReconstruction.cxx:1753 AliReconstruction.cxx:1754 AliReconstruction.cxx:1755 AliReconstruction.cxx:1756 AliReconstruction.cxx:1757 AliReconstruction.cxx:1758 AliReconstruction.cxx:1759 AliReconstruction.cxx:1760 AliReconstruction.cxx:1761 AliReconstruction.cxx:1762 AliReconstruction.cxx:1763 AliReconstruction.cxx:1764 AliReconstruction.cxx:1765 AliReconstruction.cxx:1766 AliReconstruction.cxx:1767 AliReconstruction.cxx:1768 AliReconstruction.cxx:1769 AliReconstruction.cxx:1770 AliReconstruction.cxx:1771 AliReconstruction.cxx:1772 AliReconstruction.cxx:1773 AliReconstruction.cxx:1774 AliReconstruction.cxx:1775 AliReconstruction.cxx:1776 AliReconstruction.cxx:1777 AliReconstruction.cxx:1778 AliReconstruction.cxx:1779 AliReconstruction.cxx:1780 AliReconstruction.cxx:1781 AliReconstruction.cxx:1782 AliReconstruction.cxx:1783 AliReconstruction.cxx:1784 AliReconstruction.cxx:1785 AliReconstruction.cxx:1786 AliReconstruction.cxx:1787 AliReconstruction.cxx:1788 AliReconstruction.cxx:1789 AliReconstruction.cxx:1790 AliReconstruction.cxx:1791 AliReconstruction.cxx:1792 AliReconstruction.cxx:1793 AliReconstruction.cxx:1794 AliReconstruction.cxx:1795 AliReconstruction.cxx:1796 AliReconstruction.cxx:1797 AliReconstruction.cxx:1798 AliReconstruction.cxx:1799 AliReconstruction.cxx:1800 AliReconstruction.cxx:1801 AliReconstruction.cxx:1802 AliReconstruction.cxx:1803 AliReconstruction.cxx:1804 AliReconstruction.cxx:1805 AliReconstruction.cxx:1806 AliReconstruction.cxx:1807 AliReconstruction.cxx:1808 AliReconstruction.cxx:1809 AliReconstruction.cxx:1810 AliReconstruction.cxx:1811 AliReconstruction.cxx:1812 AliReconstruction.cxx:1813 AliReconstruction.cxx:1814 AliReconstruction.cxx:1815 AliReconstruction.cxx:1816 AliReconstruction.cxx:1817 AliReconstruction.cxx:1818 AliReconstruction.cxx:1819 AliReconstruction.cxx:1820 AliReconstruction.cxx:1821 AliReconstruction.cxx:1822 AliReconstruction.cxx:1823 AliReconstruction.cxx:1824 AliReconstruction.cxx:1825 AliReconstruction.cxx:1826 AliReconstruction.cxx:1827 AliReconstruction.cxx:1828 AliReconstruction.cxx:1829 AliReconstruction.cxx:1830 AliReconstruction.cxx:1831 AliReconstruction.cxx:1832 AliReconstruction.cxx:1833 AliReconstruction.cxx:1834 AliReconstruction.cxx:1835 AliReconstruction.cxx:1836 AliReconstruction.cxx:1837 AliReconstruction.cxx:1838 AliReconstruction.cxx:1839 AliReconstruction.cxx:1840 AliReconstruction.cxx:1841 AliReconstruction.cxx:1842 AliReconstruction.cxx:1843 AliReconstruction.cxx:1844 AliReconstruction.cxx:1845 AliReconstruction.cxx:1846 AliReconstruction.cxx:1847 AliReconstruction.cxx:1848 AliReconstruction.cxx:1849 AliReconstruction.cxx:1850 AliReconstruction.cxx:1851 AliReconstruction.cxx:1852 AliReconstruction.cxx:1853 AliReconstruction.cxx:1854 AliReconstruction.cxx:1855 AliReconstruction.cxx:1856 AliReconstruction.cxx:1857 AliReconstruction.cxx:1858 AliReconstruction.cxx:1859 AliReconstruction.cxx:1860 AliReconstruction.cxx:1861 AliReconstruction.cxx:1862 AliReconstruction.cxx:1863 AliReconstruction.cxx:1864 AliReconstruction.cxx:1865 AliReconstruction.cxx:1866 AliReconstruction.cxx:1867 AliReconstruction.cxx:1868 AliReconstruction.cxx:1869 AliReconstruction.cxx:1870 AliReconstruction.cxx:1871 AliReconstruction.cxx:1872 AliReconstruction.cxx:1873 AliReconstruction.cxx:1874 AliReconstruction.cxx:1875 AliReconstruction.cxx:1876 AliReconstruction.cxx:1877 AliReconstruction.cxx:1878 AliReconstruction.cxx:1879 AliReconstruction.cxx:1880 AliReconstruction.cxx:1881 AliReconstruction.cxx:1882 AliReconstruction.cxx:1883 AliReconstruction.cxx:1884 AliReconstruction.cxx:1885 AliReconstruction.cxx:1886 AliReconstruction.cxx:1887 AliReconstruction.cxx:1888 AliReconstruction.cxx:1889 AliReconstruction.cxx:1890 AliReconstruction.cxx:1891 AliReconstruction.cxx:1892 AliReconstruction.cxx:1893 AliReconstruction.cxx:1894 AliReconstruction.cxx:1895 AliReconstruction.cxx:1896 AliReconstruction.cxx:1897 AliReconstruction.cxx:1898 AliReconstruction.cxx:1899 AliReconstruction.cxx:1900 AliReconstruction.cxx:1901 AliReconstruction.cxx:1902 AliReconstruction.cxx:1903 AliReconstruction.cxx:1904 AliReconstruction.cxx:1905 AliReconstruction.cxx:1906 AliReconstruction.cxx:1907 AliReconstruction.cxx:1908 AliReconstruction.cxx:1909 AliReconstruction.cxx:1910 AliReconstruction.cxx:1911 AliReconstruction.cxx:1912 AliReconstruction.cxx:1913 AliReconstruction.cxx:1914 AliReconstruction.cxx:1915 AliReconstruction.cxx:1916 AliReconstruction.cxx:1917 AliReconstruction.cxx:1918 AliReconstruction.cxx:1919 AliReconstruction.cxx:1920 AliReconstruction.cxx:1921 AliReconstruction.cxx:1922 AliReconstruction.cxx:1923 AliReconstruction.cxx:1924 AliReconstruction.cxx:1925 AliReconstruction.cxx:1926 AliReconstruction.cxx:1927 AliReconstruction.cxx:1928 AliReconstruction.cxx:1929 AliReconstruction.cxx:1930 AliReconstruction.cxx:1931 AliReconstruction.cxx:1932 AliReconstruction.cxx:1933 AliReconstruction.cxx:1934 AliReconstruction.cxx:1935 AliReconstruction.cxx:1936 AliReconstruction.cxx:1937 AliReconstruction.cxx:1938 AliReconstruction.cxx:1939 AliReconstruction.cxx:1940 AliReconstruction.cxx:1941 AliReconstruction.cxx:1942 AliReconstruction.cxx:1943 AliReconstruction.cxx:1944 AliReconstruction.cxx:1945 AliReconstruction.cxx:1946 AliReconstruction.cxx:1947 AliReconstruction.cxx:1948 AliReconstruction.cxx:1949 AliReconstruction.cxx:1950 AliReconstruction.cxx:1951 AliReconstruction.cxx:1952 AliReconstruction.cxx:1953 AliReconstruction.cxx:1954 AliReconstruction.cxx:1955 AliReconstruction.cxx:1956 AliReconstruction.cxx:1957 AliReconstruction.cxx:1958 AliReconstruction.cxx:1959 AliReconstruction.cxx:1960 AliReconstruction.cxx:1961 AliReconstruction.cxx:1962 AliReconstruction.cxx:1963 AliReconstruction.cxx:1964 AliReconstruction.cxx:1965 AliReconstruction.cxx:1966 AliReconstruction.cxx:1967 AliReconstruction.cxx:1968 AliReconstruction.cxx:1969 AliReconstruction.cxx:1970 AliReconstruction.cxx:1971 AliReconstruction.cxx:1972 AliReconstruction.cxx:1973 AliReconstruction.cxx:1974 AliReconstruction.cxx:1975 AliReconstruction.cxx:1976 AliReconstruction.cxx:1977 AliReconstruction.cxx:1978 AliReconstruction.cxx:1979 AliReconstruction.cxx:1980 AliReconstruction.cxx:1981 AliReconstruction.cxx:1982 AliReconstruction.cxx:1983 AliReconstruction.cxx:1984 AliReconstruction.cxx:1985 AliReconstruction.cxx:1986 AliReconstruction.cxx:1987 AliReconstruction.cxx:1988 AliReconstruction.cxx:1989 AliReconstruction.cxx:1990 AliReconstruction.cxx:1991 AliReconstruction.cxx:1992 AliReconstruction.cxx:1993 AliReconstruction.cxx:1994 AliReconstruction.cxx:1995 AliReconstruction.cxx:1996 AliReconstruction.cxx:1997 AliReconstruction.cxx:1998 AliReconstruction.cxx:1999 AliReconstruction.cxx:2000 AliReconstruction.cxx:2001 AliReconstruction.cxx:2002 AliReconstruction.cxx:2003 AliReconstruction.cxx:2004 AliReconstruction.cxx:2005 AliReconstruction.cxx:2006 AliReconstruction.cxx:2007 AliReconstruction.cxx:2008 AliReconstruction.cxx:2009 AliReconstruction.cxx:2010 AliReconstruction.cxx:2011 AliReconstruction.cxx:2012 AliReconstruction.cxx:2013 AliReconstruction.cxx:2014 AliReconstruction.cxx:2015 AliReconstruction.cxx:2016 AliReconstruction.cxx:2017 AliReconstruction.cxx:2018 AliReconstruction.cxx:2019 AliReconstruction.cxx:2020 AliReconstruction.cxx:2021 AliReconstruction.cxx:2022 AliReconstruction.cxx:2023 AliReconstruction.cxx:2024 AliReconstruction.cxx:2025 AliReconstruction.cxx:2026 AliReconstruction.cxx:2027 AliReconstruction.cxx:2028 AliReconstruction.cxx:2029 AliReconstruction.cxx:2030 AliReconstruction.cxx:2031 AliReconstruction.cxx:2032 AliReconstruction.cxx:2033 AliReconstruction.cxx:2034 AliReconstruction.cxx:2035 AliReconstruction.cxx:2036 AliReconstruction.cxx:2037 AliReconstruction.cxx:2038 AliReconstruction.cxx:2039 AliReconstruction.cxx:2040 AliReconstruction.cxx:2041 AliReconstruction.cxx:2042 AliReconstruction.cxx:2043 AliReconstruction.cxx:2044 AliReconstruction.cxx:2045 AliReconstruction.cxx:2046 AliReconstruction.cxx:2047 AliReconstruction.cxx:2048 AliReconstruction.cxx:2049 AliReconstruction.cxx:2050 AliReconstruction.cxx:2051 AliReconstruction.cxx:2052 AliReconstruction.cxx:2053 AliReconstruction.cxx:2054 AliReconstruction.cxx:2055 AliReconstruction.cxx:2056 AliReconstruction.cxx:2057 AliReconstruction.cxx:2058 AliReconstruction.cxx:2059 AliReconstruction.cxx:2060 AliReconstruction.cxx:2061 AliReconstruction.cxx:2062 AliReconstruction.cxx:2063 AliReconstruction.cxx:2064 AliReconstruction.cxx:2065 AliReconstruction.cxx:2066 AliReconstruction.cxx:2067 AliReconstruction.cxx:2068 AliReconstruction.cxx:2069 AliReconstruction.cxx:2070 AliReconstruction.cxx:2071 AliReconstruction.cxx:2072 AliReconstruction.cxx:2073 AliReconstruction.cxx:2074 AliReconstruction.cxx:2075 AliReconstruction.cxx:2076 AliReconstruction.cxx:2077 AliReconstruction.cxx:2078 AliReconstruction.cxx:2079 AliReconstruction.cxx:2080 AliReconstruction.cxx:2081 AliReconstruction.cxx:2082 AliReconstruction.cxx:2083 AliReconstruction.cxx:2084 AliReconstruction.cxx:2085 AliReconstruction.cxx:2086 AliReconstruction.cxx:2087 AliReconstruction.cxx:2088 AliReconstruction.cxx:2089 AliReconstruction.cxx:2090 AliReconstruction.cxx:2091 AliReconstruction.cxx:2092 AliReconstruction.cxx:2093 AliReconstruction.cxx:2094 AliReconstruction.cxx:2095 AliReconstruction.cxx:2096 AliReconstruction.cxx:2097 AliReconstruction.cxx:2098 AliReconstruction.cxx:2099 AliReconstruction.cxx:2100 AliReconstruction.cxx:2101 AliReconstruction.cxx:2102 AliReconstruction.cxx:2103 AliReconstruction.cxx:2104 AliReconstruction.cxx:2105 AliReconstruction.cxx:2106 AliReconstruction.cxx:2107 AliReconstruction.cxx:2108 AliReconstruction.cxx:2109 AliReconstruction.cxx:2110 AliReconstruction.cxx:2111 AliReconstruction.cxx:2112 AliReconstruction.cxx:2113 AliReconstruction.cxx:2114 AliReconstruction.cxx:2115 AliReconstruction.cxx:2116 AliReconstruction.cxx:2117 AliReconstruction.cxx:2118 AliReconstruction.cxx:2119 AliReconstruction.cxx:2120 AliReconstruction.cxx:2121 AliReconstruction.cxx:2122 AliReconstruction.cxx:2123 AliReconstruction.cxx:2124 AliReconstruction.cxx:2125 AliReconstruction.cxx:2126 AliReconstruction.cxx:2127 AliReconstruction.cxx:2128 AliReconstruction.cxx:2129 AliReconstruction.cxx:2130 AliReconstruction.cxx:2131 AliReconstruction.cxx:2132 AliReconstruction.cxx:2133 AliReconstruction.cxx:2134 AliReconstruction.cxx:2135 AliReconstruction.cxx:2136 AliReconstruction.cxx:2137 AliReconstruction.cxx:2138 AliReconstruction.cxx:2139 AliReconstruction.cxx:2140 AliReconstruction.cxx:2141 AliReconstruction.cxx:2142 AliReconstruction.cxx:2143 AliReconstruction.cxx:2144 AliReconstruction.cxx:2145 AliReconstruction.cxx:2146 AliReconstruction.cxx:2147 AliReconstruction.cxx:2148 AliReconstruction.cxx:2149 AliReconstruction.cxx:2150 AliReconstruction.cxx:2151 AliReconstruction.cxx:2152 AliReconstruction.cxx:2153 AliReconstruction.cxx:2154 AliReconstruction.cxx:2155 AliReconstruction.cxx:2156 AliReconstruction.cxx:2157 AliReconstruction.cxx:2158 AliReconstruction.cxx:2159 AliReconstruction.cxx:2160 AliReconstruction.cxx:2161 AliReconstruction.cxx:2162 AliReconstruction.cxx:2163 AliReconstruction.cxx:2164 AliReconstruction.cxx:2165 AliReconstruction.cxx:2166 AliReconstruction.cxx:2167 AliReconstruction.cxx:2168 AliReconstruction.cxx:2169 AliReconstruction.cxx:2170 AliReconstruction.cxx:2171 AliReconstruction.cxx:2172 AliReconstruction.cxx:2173 AliReconstruction.cxx:2174 AliReconstruction.cxx:2175 AliReconstruction.cxx:2176 AliReconstruction.cxx:2177 AliReconstruction.cxx:2178 AliReconstruction.cxx:2179 AliReconstruction.cxx:2180 AliReconstruction.cxx:2181 AliReconstruction.cxx:2182 AliReconstruction.cxx:2183 AliReconstruction.cxx:2184 AliReconstruction.cxx:2185 AliReconstruction.cxx:2186 AliReconstruction.cxx:2187 AliReconstruction.cxx:2188 AliReconstruction.cxx:2189 AliReconstruction.cxx:2190 AliReconstruction.cxx:2191 AliReconstruction.cxx:2192 AliReconstruction.cxx:2193 AliReconstruction.cxx:2194 AliReconstruction.cxx:2195 AliReconstruction.cxx:2196 AliReconstruction.cxx:2197 AliReconstruction.cxx:2198 AliReconstruction.cxx:2199 AliReconstruction.cxx:2200 AliReconstruction.cxx:2201 AliReconstruction.cxx:2202 AliReconstruction.cxx:2203 AliReconstruction.cxx:2204 AliReconstruction.cxx:2205 AliReconstruction.cxx:2206 AliReconstruction.cxx:2207 AliReconstruction.cxx:2208 AliReconstruction.cxx:2209 AliReconstruction.cxx:2210 AliReconstruction.cxx:2211 AliReconstruction.cxx:2212 AliReconstruction.cxx:2213 AliReconstruction.cxx:2214 AliReconstruction.cxx:2215 AliReconstruction.cxx:2216 AliReconstruction.cxx:2217 AliReconstruction.cxx:2218 AliReconstruction.cxx:2219 AliReconstruction.cxx:2220 AliReconstruction.cxx:2221 AliReconstruction.cxx:2222 AliReconstruction.cxx:2223 AliReconstruction.cxx:2224 AliReconstruction.cxx:2225 AliReconstruction.cxx:2226 AliReconstruction.cxx:2227 AliReconstruction.cxx:2228 AliReconstruction.cxx:2229 AliReconstruction.cxx:2230 AliReconstruction.cxx:2231 AliReconstruction.cxx:2232 AliReconstruction.cxx:2233 AliReconstruction.cxx:2234 AliReconstruction.cxx:2235 AliReconstruction.cxx:2236 AliReconstruction.cxx:2237 AliReconstruction.cxx:2238 AliReconstruction.cxx:2239 AliReconstruction.cxx:2240 AliReconstruction.cxx:2241 AliReconstruction.cxx:2242 AliReconstruction.cxx:2243 AliReconstruction.cxx:2244 AliReconstruction.cxx:2245 AliReconstruction.cxx:2246 AliReconstruction.cxx:2247 AliReconstruction.cxx:2248 AliReconstruction.cxx:2249 AliReconstruction.cxx:2250 AliReconstruction.cxx:2251 AliReconstruction.cxx:2252 AliReconstruction.cxx:2253 AliReconstruction.cxx:2254 AliReconstruction.cxx:2255 AliReconstruction.cxx:2256 AliReconstruction.cxx:2257 AliReconstruction.cxx:2258 AliReconstruction.cxx:2259 AliReconstruction.cxx:2260 AliReconstruction.cxx:2261 AliReconstruction.cxx:2262 AliReconstruction.cxx:2263 AliReconstruction.cxx:2264 AliReconstruction.cxx:2265 AliReconstruction.cxx:2266 AliReconstruction.cxx:2267 AliReconstruction.cxx:2268 AliReconstruction.cxx:2269 AliReconstruction.cxx:2270 AliReconstruction.cxx:2271 AliReconstruction.cxx:2272 AliReconstruction.cxx:2273 AliReconstruction.cxx:2274 AliReconstruction.cxx:2275 AliReconstruction.cxx:2276 AliReconstruction.cxx:2277 AliReconstruction.cxx:2278 AliReconstruction.cxx:2279 AliReconstruction.cxx:2280 AliReconstruction.cxx:2281 AliReconstruction.cxx:2282 AliReconstruction.cxx:2283 AliReconstruction.cxx:2284 AliReconstruction.cxx:2285 AliReconstruction.cxx:2286 AliReconstruction.cxx:2287 AliReconstruction.cxx:2288 AliReconstruction.cxx:2289 AliReconstruction.cxx:2290 AliReconstruction.cxx:2291 AliReconstruction.cxx:2292 AliReconstruction.cxx:2293 AliReconstruction.cxx:2294 AliReconstruction.cxx:2295 AliReconstruction.cxx:2296 AliReconstruction.cxx:2297 AliReconstruction.cxx:2298 AliReconstruction.cxx:2299 AliReconstruction.cxx:2300 AliReconstruction.cxx:2301 AliReconstruction.cxx:2302 AliReconstruction.cxx:2303 AliReconstruction.cxx:2304 AliReconstruction.cxx:2305 AliReconstruction.cxx:2306 AliReconstruction.cxx:2307 AliReconstruction.cxx:2308 AliReconstruction.cxx:2309 AliReconstruction.cxx:2310 AliReconstruction.cxx:2311 AliReconstruction.cxx:2312 AliReconstruction.cxx:2313 AliReconstruction.cxx:2314 AliReconstruction.cxx:2315 AliReconstruction.cxx:2316 AliReconstruction.cxx:2317 AliReconstruction.cxx:2318 AliReconstruction.cxx:2319 AliReconstruction.cxx:2320 AliReconstruction.cxx:2321 AliReconstruction.cxx:2322 AliReconstruction.cxx:2323 AliReconstruction.cxx:2324 AliReconstruction.cxx:2325 AliReconstruction.cxx:2326 AliReconstruction.cxx:2327 AliReconstruction.cxx:2328 AliReconstruction.cxx:2329 AliReconstruction.cxx:2330 AliReconstruction.cxx:2331 AliReconstruction.cxx:2332 AliReconstruction.cxx:2333 AliReconstruction.cxx:2334 AliReconstruction.cxx:2335 AliReconstruction.cxx:2336 AliReconstruction.cxx:2337 AliReconstruction.cxx:2338 AliReconstruction.cxx:2339 AliReconstruction.cxx:2340 AliReconstruction.cxx:2341 AliReconstruction.cxx:2342 AliReconstruction.cxx:2343 AliReconstruction.cxx:2344 AliReconstruction.cxx:2345 AliReconstruction.cxx:2346 AliReconstruction.cxx:2347 AliReconstruction.cxx:2348 AliReconstruction.cxx:2349 AliReconstruction.cxx:2350 AliReconstruction.cxx:2351 AliReconstruction.cxx:2352 AliReconstruction.cxx:2353 AliReconstruction.cxx:2354 AliReconstruction.cxx:2355 AliReconstruction.cxx:2356 AliReconstruction.cxx:2357 AliReconstruction.cxx:2358 AliReconstruction.cxx:2359 AliReconstruction.cxx:2360 AliReconstruction.cxx:2361 AliReconstruction.cxx:2362 AliReconstruction.cxx:2363 AliReconstruction.cxx:2364 AliReconstruction.cxx:2365 AliReconstruction.cxx:2366 AliReconstruction.cxx:2367 AliReconstruction.cxx:2368 AliReconstruction.cxx:2369 AliReconstruction.cxx:2370 AliReconstruction.cxx:2371 AliReconstruction.cxx:2372 AliReconstruction.cxx:2373 AliReconstruction.cxx:2374 AliReconstruction.cxx:2375 AliReconstruction.cxx:2376 AliReconstruction.cxx:2377 AliReconstruction.cxx:2378 AliReconstruction.cxx:2379 AliReconstruction.cxx:2380 AliReconstruction.cxx:2381 AliReconstruction.cxx:2382 AliReconstruction.cxx:2383 AliReconstruction.cxx:2384 AliReconstruction.cxx:2385 AliReconstruction.cxx:2386 AliReconstruction.cxx:2387 AliReconstruction.cxx:2388 AliReconstruction.cxx:2389 AliReconstruction.cxx:2390 AliReconstruction.cxx:2391 AliReconstruction.cxx:2392 AliReconstruction.cxx:2393 AliReconstruction.cxx:2394 AliReconstruction.cxx:2395 AliReconstruction.cxx:2396 AliReconstruction.cxx:2397 AliReconstruction.cxx:2398 AliReconstruction.cxx:2399 AliReconstruction.cxx:2400 AliReconstruction.cxx:2401 AliReconstruction.cxx:2402 AliReconstruction.cxx:2403 AliReconstruction.cxx:2404 AliReconstruction.cxx:2405 AliReconstruction.cxx:2406 AliReconstruction.cxx:2407 AliReconstruction.cxx:2408 AliReconstruction.cxx:2409 AliReconstruction.cxx:2410 AliReconstruction.cxx:2411 AliReconstruction.cxx:2412 AliReconstruction.cxx:2413 AliReconstruction.cxx:2414 AliReconstruction.cxx:2415 AliReconstruction.cxx:2416 AliReconstruction.cxx:2417 AliReconstruction.cxx:2418 AliReconstruction.cxx:2419 AliReconstruction.cxx:2420 AliReconstruction.cxx:2421 AliReconstruction.cxx:2422 AliReconstruction.cxx:2423 AliReconstruction.cxx:2424 AliReconstruction.cxx:2425 AliReconstruction.cxx:2426 AliReconstruction.cxx:2427 AliReconstruction.cxx:2428 AliReconstruction.cxx:2429 AliReconstruction.cxx:2430 AliReconstruction.cxx:2431 AliReconstruction.cxx:2432 AliReconstruction.cxx:2433 AliReconstruction.cxx:2434 AliReconstruction.cxx:2435 AliReconstruction.cxx:2436 AliReconstruction.cxx:2437 AliReconstruction.cxx:2438 AliReconstruction.cxx:2439 AliReconstruction.cxx:2440 AliReconstruction.cxx:2441 AliReconstruction.cxx:2442 AliReconstruction.cxx:2443 AliReconstruction.cxx:2444 AliReconstruction.cxx:2445 AliReconstruction.cxx:2446 AliReconstruction.cxx:2447 AliReconstruction.cxx:2448 AliReconstruction.cxx:2449 AliReconstruction.cxx:2450 AliReconstruction.cxx:2451 AliReconstruction.cxx:2452 AliReconstruction.cxx:2453 AliReconstruction.cxx:2454 AliReconstruction.cxx:2455 AliReconstruction.cxx:2456 AliReconstruction.cxx:2457 AliReconstruction.cxx:2458 AliReconstruction.cxx:2459 AliReconstruction.cxx:2460 AliReconstruction.cxx:2461 AliReconstruction.cxx:2462 AliReconstruction.cxx:2463 AliReconstruction.cxx:2464 AliReconstruction.cxx:2465 AliReconstruction.cxx:2466 AliReconstruction.cxx:2467 AliReconstruction.cxx:2468 AliReconstruction.cxx:2469 AliReconstruction.cxx:2470 AliReconstruction.cxx:2471 AliReconstruction.cxx:2472 AliReconstruction.cxx:2473 AliReconstruction.cxx:2474 AliReconstruction.cxx:2475 AliReconstruction.cxx:2476 AliReconstruction.cxx:2477 AliReconstruction.cxx:2478 AliReconstruction.cxx:2479 AliReconstruction.cxx:2480 AliReconstruction.cxx:2481 AliReconstruction.cxx:2482 AliReconstruction.cxx:2483 AliReconstruction.cxx:2484 AliReconstruction.cxx:2485 AliReconstruction.cxx:2486 AliReconstruction.cxx:2487 AliReconstruction.cxx:2488 AliReconstruction.cxx:2489 AliReconstruction.cxx:2490 AliReconstruction.cxx:2491 AliReconstruction.cxx:2492 AliReconstruction.cxx:2493 AliReconstruction.cxx:2494 AliReconstruction.cxx:2495 AliReconstruction.cxx:2496 AliReconstruction.cxx:2497 AliReconstruction.cxx:2498 AliReconstruction.cxx:2499 AliReconstruction.cxx:2500 AliReconstruction.cxx:2501 AliReconstruction.cxx:2502 AliReconstruction.cxx:2503 AliReconstruction.cxx:2504 AliReconstruction.cxx:2505 AliReconstruction.cxx:2506 AliReconstruction.cxx:2507 AliReconstruction.cxx:2508 AliReconstruction.cxx:2509 AliReconstruction.cxx:2510 AliReconstruction.cxx:2511 AliReconstruction.cxx:2512 AliReconstruction.cxx:2513 AliReconstruction.cxx:2514 AliReconstruction.cxx:2515 AliReconstruction.cxx:2516 AliReconstruction.cxx:2517 AliReconstruction.cxx:2518 AliReconstruction.cxx:2519 AliReconstruction.cxx:2520 AliReconstruction.cxx:2521 AliReconstruction.cxx:2522 AliReconstruction.cxx:2523 AliReconstruction.cxx:2524 AliReconstruction.cxx:2525 AliReconstruction.cxx:2526 AliReconstruction.cxx:2527 AliReconstruction.cxx:2528 AliReconstruction.cxx:2529 AliReconstruction.cxx:2530 AliReconstruction.cxx:2531 AliReconstruction.cxx:2532 AliReconstruction.cxx:2533 AliReconstruction.cxx:2534 AliReconstruction.cxx:2535 AliReconstruction.cxx:2536 AliReconstruction.cxx:2537 AliReconstruction.cxx:2538 AliReconstruction.cxx:2539 AliReconstruction.cxx:2540 AliReconstruction.cxx:2541 AliReconstruction.cxx:2542 AliReconstruction.cxx:2543 AliReconstruction.cxx:2544 AliReconstruction.cxx:2545 AliReconstruction.cxx:2546 AliReconstruction.cxx:2547 AliReconstruction.cxx:2548 AliReconstruction.cxx:2549 AliReconstruction.cxx:2550 AliReconstruction.cxx:2551 AliReconstruction.cxx:2552 AliReconstruction.cxx:2553 AliReconstruction.cxx:2554 AliReconstruction.cxx:2555 AliReconstruction.cxx:2556 AliReconstruction.cxx:2557 AliReconstruction.cxx:2558 AliReconstruction.cxx:2559 AliReconstruction.cxx:2560 AliReconstruction.cxx:2561 AliReconstruction.cxx:2562 AliReconstruction.cxx:2563 AliReconstruction.cxx:2564 AliReconstruction.cxx:2565 AliReconstruction.cxx:2566 AliReconstruction.cxx:2567 AliReconstruction.cxx:2568 AliReconstruction.cxx:2569 AliReconstruction.cxx:2570 AliReconstruction.cxx:2571 AliReconstruction.cxx:2572 AliReconstruction.cxx:2573 AliReconstruction.cxx:2574 AliReconstruction.cxx:2575 AliReconstruction.cxx:2576 AliReconstruction.cxx:2577 AliReconstruction.cxx:2578 AliReconstruction.cxx:2579 AliReconstruction.cxx:2580 AliReconstruction.cxx:2581 AliReconstruction.cxx:2582 AliReconstruction.cxx:2583 AliReconstruction.cxx:2584 AliReconstruction.cxx:2585 AliReconstruction.cxx:2586 AliReconstruction.cxx:2587 AliReconstruction.cxx:2588 AliReconstruction.cxx:2589 AliReconstruction.cxx:2590 AliReconstruction.cxx:2591 AliReconstruction.cxx:2592 AliReconstruction.cxx:2593 AliReconstruction.cxx:2594 AliReconstruction.cxx:2595 AliReconstruction.cxx:2596 AliReconstruction.cxx:2597 AliReconstruction.cxx:2598 AliReconstruction.cxx:2599 AliReconstruction.cxx:2600 AliReconstruction.cxx:2601 AliReconstruction.cxx:2602 AliReconstruction.cxx:2603 AliReconstruction.cxx:2604 AliReconstruction.cxx:2605 AliReconstruction.cxx:2606 AliReconstruction.cxx:2607 AliReconstruction.cxx:2608 AliReconstruction.cxx:2609 AliReconstruction.cxx:2610 AliReconstruction.cxx:2611 AliReconstruction.cxx:2612 AliReconstruction.cxx:2613 AliReconstruction.cxx:2614 AliReconstruction.cxx:2615 AliReconstruction.cxx:2616 AliReconstruction.cxx:2617 AliReconstruction.cxx:2618 AliReconstruction.cxx:2619 AliReconstruction.cxx:2620 AliReconstruction.cxx:2621 AliReconstruction.cxx:2622 AliReconstruction.cxx:2623 AliReconstruction.cxx:2624 AliReconstruction.cxx:2625 AliReconstruction.cxx:2626 AliReconstruction.cxx:2627 AliReconstruction.cxx:2628 AliReconstruction.cxx:2629 AliReconstruction.cxx:2630 AliReconstruction.cxx:2631 AliReconstruction.cxx:2632 AliReconstruction.cxx:2633 AliReconstruction.cxx:2634 AliReconstruction.cxx:2635 AliReconstruction.cxx:2636 AliReconstruction.cxx:2637 AliReconstruction.cxx:2638 AliReconstruction.cxx:2639 AliReconstruction.cxx:2640 AliReconstruction.cxx:2641 AliReconstruction.cxx:2642 AliReconstruction.cxx:2643 AliReconstruction.cxx:2644 AliReconstruction.cxx:2645 AliReconstruction.cxx:2646 AliReconstruction.cxx:2647 AliReconstruction.cxx:2648 AliReconstruction.cxx:2649 AliReconstruction.cxx:2650 AliReconstruction.cxx:2651 AliReconstruction.cxx:2652 AliReconstruction.cxx:2653 AliReconstruction.cxx:2654 AliReconstruction.cxx:2655 AliReconstruction.cxx:2656 AliReconstruction.cxx:2657 AliReconstruction.cxx:2658 AliReconstruction.cxx:2659 AliReconstruction.cxx:2660 AliReconstruction.cxx:2661 AliReconstruction.cxx:2662 AliReconstruction.cxx:2663 AliReconstruction.cxx:2664 AliReconstruction.cxx:2665 AliReconstruction.cxx:2666 AliReconstruction.cxx:2667 AliReconstruction.cxx:2668 AliReconstruction.cxx:2669 AliReconstruction.cxx:2670 AliReconstruction.cxx:2671 AliReconstruction.cxx:2672 AliReconstruction.cxx:2673 AliReconstruction.cxx:2674 AliReconstruction.cxx:2675 AliReconstruction.cxx:2676 AliReconstruction.cxx:2677 AliReconstruction.cxx:2678 AliReconstruction.cxx:2679 AliReconstruction.cxx:2680 AliReconstruction.cxx:2681 AliReconstruction.cxx:2682 AliReconstruction.cxx:2683 AliReconstruction.cxx:2684 AliReconstruction.cxx:2685 AliReconstruction.cxx:2686 AliReconstruction.cxx:2687 AliReconstruction.cxx:2688 AliReconstruction.cxx:2689 AliReconstruction.cxx:2690 AliReconstruction.cxx:2691 AliReconstruction.cxx:2692 AliReconstruction.cxx:2693 AliReconstruction.cxx:2694 AliReconstruction.cxx:2695 AliReconstruction.cxx:2696 AliReconstruction.cxx:2697 AliReconstruction.cxx:2698 AliReconstruction.cxx:2699 AliReconstruction.cxx:2700 AliReconstruction.cxx:2701 AliReconstruction.cxx:2702 AliReconstruction.cxx:2703 AliReconstruction.cxx:2704 AliReconstruction.cxx:2705 AliReconstruction.cxx:2706 AliReconstruction.cxx:2707 AliReconstruction.cxx:2708 AliReconstruction.cxx:2709 AliReconstruction.cxx:2710 AliReconstruction.cxx:2711 AliReconstruction.cxx:2712 AliReconstruction.cxx:2713 AliReconstruction.cxx:2714 AliReconstruction.cxx:2715 AliReconstruction.cxx:2716 AliReconstruction.cxx:2717 AliReconstruction.cxx:2718 AliReconstruction.cxx:2719 AliReconstruction.cxx:2720 AliReconstruction.cxx:2721 AliReconstruction.cxx:2722 AliReconstruction.cxx:2723 AliReconstruction.cxx:2724 AliReconstruction.cxx:2725 AliReconstruction.cxx:2726 AliReconstruction.cxx:2727 AliReconstruction.cxx:2728 AliReconstruction.cxx:2729 AliReconstruction.cxx:2730 AliReconstruction.cxx:2731 AliReconstruction.cxx:2732 AliReconstruction.cxx:2733 AliReconstruction.cxx:2734 AliReconstruction.cxx:2735 AliReconstruction.cxx:2736 AliReconstruction.cxx:2737 AliReconstruction.cxx:2738 AliReconstruction.cxx:2739 AliReconstruction.cxx:2740 AliReconstruction.cxx:2741 AliReconstruction.cxx:2742 AliReconstruction.cxx:2743 AliReconstruction.cxx:2744 AliReconstruction.cxx:2745 AliReconstruction.cxx:2746 AliReconstruction.cxx:2747 AliReconstruction.cxx:2748 AliReconstruction.cxx:2749 AliReconstruction.cxx:2750 AliReconstruction.cxx:2751 AliReconstruction.cxx:2752 AliReconstruction.cxx:2753 AliReconstruction.cxx:2754 AliReconstruction.cxx:2755 AliReconstruction.cxx:2756 AliReconstruction.cxx:2757 AliReconstruction.cxx:2758 AliReconstruction.cxx:2759 AliReconstruction.cxx:2760 AliReconstruction.cxx:2761 AliReconstruction.cxx:2762 AliReconstruction.cxx:2763 AliReconstruction.cxx:2764 AliReconstruction.cxx:2765 AliReconstruction.cxx:2766 AliReconstruction.cxx:2767 AliReconstruction.cxx:2768 AliReconstruction.cxx:2769 AliReconstruction.cxx:2770 AliReconstruction.cxx:2771 AliReconstruction.cxx:2772 AliReconstruction.cxx:2773 AliReconstruction.cxx:2774 AliReconstruction.cxx:2775 AliReconstruction.cxx:2776 AliReconstruction.cxx:2777 AliReconstruction.cxx:2778 AliReconstruction.cxx:2779 AliReconstruction.cxx:2780 AliReconstruction.cxx:2781 AliReconstruction.cxx:2782 AliReconstruction.cxx:2783 AliReconstruction.cxx:2784 AliReconstruction.cxx:2785 AliReconstruction.cxx:2786 AliReconstruction.cxx:2787 AliReconstruction.cxx:2788 AliReconstruction.cxx:2789 AliReconstruction.cxx:2790 AliReconstruction.cxx:2791 AliReconstruction.cxx:2792 AliReconstruction.cxx:2793 AliReconstruction.cxx:2794 AliReconstruction.cxx:2795 AliReconstruction.cxx:2796 AliReconstruction.cxx:2797 AliReconstruction.cxx:2798 AliReconstruction.cxx:2799 AliReconstruction.cxx:2800 AliReconstruction.cxx:2801 AliReconstruction.cxx:2802 AliReconstruction.cxx:2803 AliReconstruction.cxx:2804 AliReconstruction.cxx:2805 AliReconstruction.cxx:2806 AliReconstruction.cxx:2807 AliReconstruction.cxx:2808 AliReconstruction.cxx:2809 AliReconstruction.cxx:2810 AliReconstruction.cxx:2811 AliReconstruction.cxx:2812 AliReconstruction.cxx:2813 AliReconstruction.cxx:2814 AliReconstruction.cxx:2815 AliReconstruction.cxx:2816 AliReconstruction.cxx:2817 AliReconstruction.cxx:2818 AliReconstruction.cxx:2819 AliReconstruction.cxx:2820 AliReconstruction.cxx:2821 AliReconstruction.cxx:2822 AliReconstruction.cxx:2823 AliReconstruction.cxx:2824 AliReconstruction.cxx:2825 AliReconstruction.cxx:2826 AliReconstruction.cxx:2827 AliReconstruction.cxx:2828 AliReconstruction.cxx:2829 AliReconstruction.cxx:2830 AliReconstruction.cxx:2831 AliReconstruction.cxx:2832 AliReconstruction.cxx:2833 AliReconstruction.cxx:2834 AliReconstruction.cxx:2835 AliReconstruction.cxx:2836 AliReconstruction.cxx:2837 AliReconstruction.cxx:2838 AliReconstruction.cxx:2839 AliReconstruction.cxx:2840 AliReconstruction.cxx:2841 AliReconstruction.cxx:2842 AliReconstruction.cxx:2843 AliReconstruction.cxx:2844 AliReconstruction.cxx:2845 AliReconstruction.cxx:2846 AliReconstruction.cxx:2847 AliReconstruction.cxx:2848 AliReconstruction.cxx:2849 AliReconstruction.cxx:2850 AliReconstruction.cxx:2851 AliReconstruction.cxx:2852 AliReconstruction.cxx:2853 AliReconstruction.cxx:2854 AliReconstruction.cxx:2855 AliReconstruction.cxx:2856 AliReconstruction.cxx:2857 AliReconstruction.cxx:2858 AliReconstruction.cxx:2859 AliReconstruction.cxx:2860 AliReconstruction.cxx:2861 AliReconstruction.cxx:2862 AliReconstruction.cxx:2863 AliReconstruction.cxx:2864 AliReconstruction.cxx:2865 AliReconstruction.cxx:2866 AliReconstruction.cxx:2867 AliReconstruction.cxx:2868 AliReconstruction.cxx:2869 AliReconstruction.cxx:2870 AliReconstruction.cxx:2871 AliReconstruction.cxx:2872 AliReconstruction.cxx:2873 AliReconstruction.cxx:2874 AliReconstruction.cxx:2875 AliReconstruction.cxx:2876 AliReconstruction.cxx:2877 AliReconstruction.cxx:2878 AliReconstruction.cxx:2879 AliReconstruction.cxx:2880 AliReconstruction.cxx:2881 AliReconstruction.cxx:2882 AliReconstruction.cxx:2883 AliReconstruction.cxx:2884 AliReconstruction.cxx:2885 AliReconstruction.cxx:2886 AliReconstruction.cxx:2887 AliReconstruction.cxx:2888 AliReconstruction.cxx:2889 AliReconstruction.cxx:2890 AliReconstruction.cxx:2891 AliReconstruction.cxx:2892 AliReconstruction.cxx:2893 AliReconstruction.cxx:2894 AliReconstruction.cxx:2895 AliReconstruction.cxx:2896 AliReconstruction.cxx:2897 AliReconstruction.cxx:2898 AliReconstruction.cxx:2899 AliReconstruction.cxx:2900 AliReconstruction.cxx:2901 AliReconstruction.cxx:2902 AliReconstruction.cxx:2903 AliReconstruction.cxx:2904 AliReconstruction.cxx:2905 AliReconstruction.cxx:2906 AliReconstruction.cxx:2907 AliReconstruction.cxx:2908 AliReconstruction.cxx:2909 AliReconstruction.cxx:2910 AliReconstruction.cxx:2911 AliReconstruction.cxx:2912 AliReconstruction.cxx:2913 AliReconstruction.cxx:2914 AliReconstruction.cxx:2915 AliReconstruction.cxx:2916 AliReconstruction.cxx:2917 AliReconstruction.cxx:2918 AliReconstruction.cxx:2919 AliReconstruction.cxx:2920 AliReconstruction.cxx:2921 AliReconstruction.cxx:2922 AliReconstruction.cxx:2923 AliReconstruction.cxx:2924 AliReconstruction.cxx:2925 AliReconstruction.cxx:2926 AliReconstruction.cxx:2927 AliReconstruction.cxx:2928 AliReconstruction.cxx:2929 AliReconstruction.cxx:2930 AliReconstruction.cxx:2931 AliReconstruction.cxx:2932 AliReconstruction.cxx:2933 AliReconstruction.cxx:2934 AliReconstruction.cxx:2935 AliReconstruction.cxx:2936 AliReconstruction.cxx:2937 AliReconstruction.cxx:2938 AliReconstruction.cxx:2939 AliReconstruction.cxx:2940 AliReconstruction.cxx:2941 AliReconstruction.cxx:2942 AliReconstruction.cxx:2943 AliReconstruction.cxx:2944 AliReconstruction.cxx:2945 AliReconstruction.cxx:2946 AliReconstruction.cxx:2947 AliReconstruction.cxx:2948 AliReconstruction.cxx:2949 AliReconstruction.cxx:2950 AliReconstruction.cxx:2951 AliReconstruction.cxx:2952 AliReconstruction.cxx:2953 AliReconstruction.cxx:2954 AliReconstruction.cxx:2955 AliReconstruction.cxx:2956 AliReconstruction.cxx:2957 AliReconstruction.cxx:2958 AliReconstruction.cxx:2959 AliReconstruction.cxx:2960 AliReconstruction.cxx:2961 AliReconstruction.cxx:2962 AliReconstruction.cxx:2963 AliReconstruction.cxx:2964 AliReconstruction.cxx:2965 AliReconstruction.cxx:2966 AliReconstruction.cxx:2967 AliReconstruction.cxx:2968 AliReconstruction.cxx:2969 AliReconstruction.cxx:2970 AliReconstruction.cxx:2971 AliReconstruction.cxx:2972 AliReconstruction.cxx:2973 AliReconstruction.cxx:2974 AliReconstruction.cxx:2975 AliReconstruction.cxx:2976 AliReconstruction.cxx:2977 AliReconstruction.cxx:2978 AliReconstruction.cxx:2979 AliReconstruction.cxx:2980 AliReconstruction.cxx:2981 AliReconstruction.cxx:2982 AliReconstruction.cxx:2983 AliReconstruction.cxx:2984 AliReconstruction.cxx:2985 AliReconstruction.cxx:2986 AliReconstruction.cxx:2987 AliReconstruction.cxx:2988 AliReconstruction.cxx:2989 AliReconstruction.cxx:2990 AliReconstruction.cxx:2991 AliReconstruction.cxx:2992 AliReconstruction.cxx:2993 AliReconstruction.cxx:2994 AliReconstruction.cxx:2995 AliReconstruction.cxx:2996 AliReconstruction.cxx:2997 AliReconstruction.cxx:2998 AliReconstruction.cxx:2999 AliReconstruction.cxx:3000 AliReconstruction.cxx:3001 AliReconstruction.cxx:3002 AliReconstruction.cxx:3003 AliReconstruction.cxx:3004 AliReconstruction.cxx:3005 AliReconstruction.cxx:3006 AliReconstruction.cxx:3007 AliReconstruction.cxx:3008 AliReconstruction.cxx:3009 AliReconstruction.cxx:3010 AliReconstruction.cxx:3011 AliReconstruction.cxx:3012 AliReconstruction.cxx:3013 AliReconstruction.cxx:3014 AliReconstruction.cxx:3015 AliReconstruction.cxx:3016 AliReconstruction.cxx:3017 AliReconstruction.cxx:3018 AliReconstruction.cxx:3019 AliReconstruction.cxx:3020 AliReconstruction.cxx:3021 AliReconstruction.cxx:3022 AliReconstruction.cxx:3023 AliReconstruction.cxx:3024 AliReconstruction.cxx:3025 AliReconstruction.cxx:3026 AliReconstruction.cxx:3027 AliReconstruction.cxx:3028 AliReconstruction.cxx:3029 AliReconstruction.cxx:3030 AliReconstruction.cxx:3031 AliReconstruction.cxx:3032 AliReconstruction.cxx:3033 AliReconstruction.cxx:3034 AliReconstruction.cxx:3035 AliReconstruction.cxx:3036 AliReconstruction.cxx:3037 AliReconstruction.cxx:3038 AliReconstruction.cxx:3039 AliReconstruction.cxx:3040 AliReconstruction.cxx:3041 AliReconstruction.cxx:3042 AliReconstruction.cxx:3043 AliReconstruction.cxx:3044 AliReconstruction.cxx:3045 AliReconstruction.cxx:3046 AliReconstruction.cxx:3047 AliReconstruction.cxx:3048 AliReconstruction.cxx:3049 AliReconstruction.cxx:3050 AliReconstruction.cxx:3051 AliReconstruction.cxx:3052 AliReconstruction.cxx:3053 AliReconstruction.cxx:3054 AliReconstruction.cxx:3055 AliReconstruction.cxx:3056 AliReconstruction.cxx:3057 AliReconstruction.cxx:3058 AliReconstruction.cxx:3059 AliReconstruction.cxx:3060 AliReconstruction.cxx:3061 AliReconstruction.cxx:3062 AliReconstruction.cxx:3063 AliReconstruction.cxx:3064 AliReconstruction.cxx:3065 AliReconstruction.cxx:3066 AliReconstruction.cxx:3067 AliReconstruction.cxx:3068 AliReconstruction.cxx:3069 AliReconstruction.cxx:3070 AliReconstruction.cxx:3071 AliReconstruction.cxx:3072 AliReconstruction.cxx:3073 AliReconstruction.cxx:3074 AliReconstruction.cxx:3075 AliReconstruction.cxx:3076 AliReconstruction.cxx:3077 AliReconstruction.cxx:3078 AliReconstruction.cxx:3079 AliReconstruction.cxx:3080 AliReconstruction.cxx:3081 AliReconstruction.cxx:3082 AliReconstruction.cxx:3083 AliReconstruction.cxx:3084 AliReconstruction.cxx:3085 AliReconstruction.cxx:3086 AliReconstruction.cxx:3087 AliReconstruction.cxx:3088 AliReconstruction.cxx:3089 AliReconstruction.cxx:3090 AliReconstruction.cxx:3091 AliReconstruction.cxx:3092 AliReconstruction.cxx:3093 AliReconstruction.cxx:3094 AliReconstruction.cxx:3095 AliReconstruction.cxx:3096 AliReconstruction.cxx:3097 AliReconstruction.cxx:3098 AliReconstruction.cxx:3099 AliReconstruction.cxx:3100 AliReconstruction.cxx:3101 AliReconstruction.cxx:3102 AliReconstruction.cxx:3103 AliReconstruction.cxx:3104 AliReconstruction.cxx:3105 AliReconstruction.cxx:3106 AliReconstruction.cxx:3107 AliReconstruction.cxx:3108 AliReconstruction.cxx:3109 AliReconstruction.cxx:3110 AliReconstruction.cxx:3111 AliReconstruction.cxx:3112 AliReconstruction.cxx:3113 AliReconstruction.cxx:3114 AliReconstruction.cxx:3115 AliReconstruction.cxx:3116 AliReconstruction.cxx:3117 AliReconstruction.cxx:3118 AliReconstruction.cxx:3119 AliReconstruction.cxx:3120 AliReconstruction.cxx:3121 AliReconstruction.cxx:3122 AliReconstruction.cxx:3123 AliReconstruction.cxx:3124 AliReconstruction.cxx:3125 AliReconstruction.cxx:3126 AliReconstruction.cxx:3127 AliReconstruction.cxx:3128 AliReconstruction.cxx:3129 AliReconstruction.cxx:3130 AliReconstruction.cxx:3131 AliReconstruction.cxx:3132 AliReconstruction.cxx:3133 AliReconstruction.cxx:3134 AliReconstruction.cxx:3135 AliReconstruction.cxx:3136 AliReconstruction.cxx:3137 AliReconstruction.cxx:3138 AliReconstruction.cxx:3139 AliReconstruction.cxx:3140 AliReconstruction.cxx:3141 AliReconstruction.cxx:3142 AliReconstruction.cxx:3143 AliReconstruction.cxx:3144 AliReconstruction.cxx:3145 AliReconstruction.cxx:3146 AliReconstruction.cxx:3147 AliReconstruction.cxx:3148 AliReconstruction.cxx:3149 AliReconstruction.cxx:3150 AliReconstruction.cxx:3151 AliReconstruction.cxx:3152 AliReconstruction.cxx:3153 AliReconstruction.cxx:3154 AliReconstruction.cxx:3155 AliReconstruction.cxx:3156 AliReconstruction.cxx:3157 AliReconstruction.cxx:3158 AliReconstruction.cxx:3159 AliReconstruction.cxx:3160 AliReconstruction.cxx:3161 AliReconstruction.cxx:3162 AliReconstruction.cxx:3163 AliReconstruction.cxx:3164 AliReconstruction.cxx:3165 AliReconstruction.cxx:3166 AliReconstruction.cxx:3167 AliReconstruction.cxx:3168 AliReconstruction.cxx:3169 AliReconstruction.cxx:3170 AliReconstruction.cxx:3171 AliReconstruction.cxx:3172 AliReconstruction.cxx:3173 AliReconstruction.cxx:3174 AliReconstruction.cxx:3175 AliReconstruction.cxx:3176 AliReconstruction.cxx:3177 AliReconstruction.cxx:3178 AliReconstruction.cxx:3179 AliReconstruction.cxx:3180 AliReconstruction.cxx:3181 AliReconstruction.cxx:3182 AliReconstruction.cxx:3183 AliReconstruction.cxx:3184 AliReconstruction.cxx:3185 AliReconstruction.cxx:3186 AliReconstruction.cxx:3187 AliReconstruction.cxx:3188 AliReconstruction.cxx:3189 AliReconstruction.cxx:3190 AliReconstruction.cxx:3191 AliReconstruction.cxx:3192 AliReconstruction.cxx:3193 AliReconstruction.cxx:3194 AliReconstruction.cxx:3195 AliReconstruction.cxx:3196 AliReconstruction.cxx:3197 AliReconstruction.cxx:3198 AliReconstruction.cxx:3199 AliReconstruction.cxx:3200 AliReconstruction.cxx:3201 AliReconstruction.cxx:3202 AliReconstruction.cxx:3203 AliReconstruction.cxx:3204 AliReconstruction.cxx:3205 AliReconstruction.cxx:3206 AliReconstruction.cxx:3207 AliReconstruction.cxx:3208 AliReconstruction.cxx:3209 AliReconstruction.cxx:3210 AliReconstruction.cxx:3211 AliReconstruction.cxx:3212 AliReconstruction.cxx:3213 AliReconstruction.cxx:3214 AliReconstruction.cxx:3215 AliReconstruction.cxx:3216 AliReconstruction.cxx:3217 AliReconstruction.cxx:3218 AliReconstruction.cxx:3219 AliReconstruction.cxx:3220 AliReconstruction.cxx:3221 AliReconstruction.cxx:3222 AliReconstruction.cxx:3223 AliReconstruction.cxx:3224 AliReconstruction.cxx:3225 AliReconstruction.cxx:3226 AliReconstruction.cxx:3227 AliReconstruction.cxx:3228 AliReconstruction.cxx:3229 AliReconstruction.cxx:3230 AliReconstruction.cxx:3231 AliReconstruction.cxx:3232 AliReconstruction.cxx:3233 AliReconstruction.cxx:3234 AliReconstruction.cxx:3235 AliReconstruction.cxx:3236 AliReconstruction.cxx:3237 AliReconstruction.cxx:3238 AliReconstruction.cxx:3239 AliReconstruction.cxx:3240 AliReconstruction.cxx:3241 AliReconstruction.cxx:3242 AliReconstruction.cxx:3243 AliReconstruction.cxx:3244 AliReconstruction.cxx:3245 AliReconstruction.cxx:3246 AliReconstruction.cxx:3247 AliReconstruction.cxx:3248 AliReconstruction.cxx:3249 AliReconstruction.cxx:3250 AliReconstruction.cxx:3251 AliReconstruction.cxx:3252 AliReconstruction.cxx:3253 AliReconstruction.cxx:3254 AliReconstruction.cxx:3255 AliReconstruction.cxx:3256 AliReconstruction.cxx:3257 AliReconstruction.cxx:3258 AliReconstruction.cxx:3259 AliReconstruction.cxx:3260 AliReconstruction.cxx:3261 AliReconstruction.cxx:3262 AliReconstruction.cxx:3263 AliReconstruction.cxx:3264 AliReconstruction.cxx:3265 AliReconstruction.cxx:3266 AliReconstruction.cxx:3267 AliReconstruction.cxx:3268 AliReconstruction.cxx:3269 AliReconstruction.cxx:3270 AliReconstruction.cxx:3271 AliReconstruction.cxx:3272 AliReconstruction.cxx:3273 AliReconstruction.cxx:3274 AliReconstruction.cxx:3275 AliReconstruction.cxx:3276 AliReconstruction.cxx:3277 AliReconstruction.cxx:3278 AliReconstruction.cxx:3279 AliReconstruction.cxx:3280 AliReconstruction.cxx:3281 AliReconstruction.cxx:3282 AliReconstruction.cxx:3283 AliReconstruction.cxx:3284 AliReconstruction.cxx:3285 AliReconstruction.cxx:3286 AliReconstruction.cxx:3287 AliReconstruction.cxx:3288 AliReconstruction.cxx:3289 AliReconstruction.cxx:3290 AliReconstruction.cxx:3291 AliReconstruction.cxx:3292 AliReconstruction.cxx:3293 AliReconstruction.cxx:3294 AliReconstruction.cxx:3295 AliReconstruction.cxx:3296 AliReconstruction.cxx:3297 AliReconstruction.cxx:3298 AliReconstruction.cxx:3299 AliReconstruction.cxx:3300 AliReconstruction.cxx:3301 AliReconstruction.cxx:3302 AliReconstruction.cxx:3303 AliReconstruction.cxx:3304 AliReconstruction.cxx:3305 AliReconstruction.cxx:3306 AliReconstruction.cxx:3307 AliReconstruction.cxx:3308 AliReconstruction.cxx:3309 AliReconstruction.cxx:3310 AliReconstruction.cxx:3311 AliReconstruction.cxx:3312 AliReconstruction.cxx:3313 AliReconstruction.cxx:3314 AliReconstruction.cxx:3315 AliReconstruction.cxx:3316 AliReconstruction.cxx:3317 AliReconstruction.cxx:3318 AliReconstruction.cxx:3319 AliReconstruction.cxx:3320 AliReconstruction.cxx:3321 AliReconstruction.cxx:3322 AliReconstruction.cxx:3323 AliReconstruction.cxx:3324 AliReconstruction.cxx:3325 AliReconstruction.cxx:3326 AliReconstruction.cxx:3327 AliReconstruction.cxx:3328 AliReconstruction.cxx:3329 AliReconstruction.cxx:3330 AliReconstruction.cxx:3331 AliReconstruction.cxx:3332 AliReconstruction.cxx:3333 AliReconstruction.cxx:3334 AliReconstruction.cxx:3335 AliReconstruction.cxx:3336 AliReconstruction.cxx:3337 AliReconstruction.cxx:3338 AliReconstruction.cxx:3339 AliReconstruction.cxx:3340 AliReconstruction.cxx:3341 AliReconstruction.cxx:3342 AliReconstruction.cxx:3343 AliReconstruction.cxx:3344 AliReconstruction.cxx:3345 AliReconstruction.cxx:3346 AliReconstruction.cxx:3347 AliReconstruction.cxx:3348 AliReconstruction.cxx:3349 AliReconstruction.cxx:3350 AliReconstruction.cxx:3351 AliReconstruction.cxx:3352 AliReconstruction.cxx:3353 AliReconstruction.cxx:3354 AliReconstruction.cxx:3355 AliReconstruction.cxx:3356 AliReconstruction.cxx:3357 AliReconstruction.cxx:3358 AliReconstruction.cxx:3359 AliReconstruction.cxx:3360 AliReconstruction.cxx:3361 AliReconstruction.cxx:3362 AliReconstruction.cxx:3363 AliReconstruction.cxx:3364 AliReconstruction.cxx:3365 AliReconstruction.cxx:3366 AliReconstruction.cxx:3367 AliReconstruction.cxx:3368 AliReconstruction.cxx:3369 AliReconstruction.cxx:3370 AliReconstruction.cxx:3371 AliReconstruction.cxx:3372 AliReconstruction.cxx:3373 AliReconstruction.cxx:3374 AliReconstruction.cxx:3375 AliReconstruction.cxx:3376 AliReconstruction.cxx:3377 AliReconstruction.cxx:3378 AliReconstruction.cxx:3379 AliReconstruction.cxx:3380 AliReconstruction.cxx:3381 AliReconstruction.cxx:3382 AliReconstruction.cxx:3383 AliReconstruction.cxx:3384 AliReconstruction.cxx:3385 AliReconstruction.cxx:3386 AliReconstruction.cxx:3387 AliReconstruction.cxx:3388 AliReconstruction.cxx:3389 AliReconstruction.cxx:3390 AliReconstruction.cxx:3391 AliReconstruction.cxx:3392 AliReconstruction.cxx:3393 AliReconstruction.cxx:3394 AliReconstruction.cxx:3395 AliReconstruction.cxx:3396 AliReconstruction.cxx:3397 AliReconstruction.cxx:3398 AliReconstruction.cxx:3399 AliReconstruction.cxx:3400 AliReconstruction.cxx:3401 AliReconstruction.cxx:3402 AliReconstruction.cxx:3403 AliReconstruction.cxx:3404 AliReconstruction.cxx:3405 AliReconstruction.cxx:3406 AliReconstruction.cxx:3407 AliReconstruction.cxx:3408 AliReconstruction.cxx:3409 AliReconstruction.cxx:3410 AliReconstruction.cxx:3411 AliReconstruction.cxx:3412 AliReconstruction.cxx:3413 AliReconstruction.cxx:3414 AliReconstruction.cxx:3415 AliReconstruction.cxx:3416 AliReconstruction.cxx:3417 AliReconstruction.cxx:3418 AliReconstruction.cxx:3419 AliReconstruction.cxx:3420 AliReconstruction.cxx:3421 AliReconstruction.cxx:3422 AliReconstruction.cxx:3423 AliReconstruction.cxx:3424 AliReconstruction.cxx:3425 AliReconstruction.cxx:3426 AliReconstruction.cxx:3427 AliReconstruction.cxx:3428 AliReconstruction.cxx:3429 AliReconstruction.cxx:3430 AliReconstruction.cxx:3431 AliReconstruction.cxx:3432 AliReconstruction.cxx:3433 AliReconstruction.cxx:3434 AliReconstruction.cxx:3435 AliReconstruction.cxx:3436 AliReconstruction.cxx:3437 AliReconstruction.cxx:3438 AliReconstruction.cxx:3439 AliReconstruction.cxx:3440 AliReconstruction.cxx:3441 AliReconstruction.cxx:3442 AliReconstruction.cxx:3443 AliReconstruction.cxx:3444 AliReconstruction.cxx:3445 AliReconstruction.cxx:3446 AliReconstruction.cxx:3447 AliReconstruction.cxx:3448 AliReconstruction.cxx:3449 AliReconstruction.cxx:3450 AliReconstruction.cxx:3451 AliReconstruction.cxx:3452 AliReconstruction.cxx:3453 AliReconstruction.cxx:3454 AliReconstruction.cxx:3455 AliReconstruction.cxx:3456 AliReconstruction.cxx:3457 AliReconstruction.cxx:3458 AliReconstruction.cxx:3459 AliReconstruction.cxx:3460 AliReconstruction.cxx:3461 AliReconstruction.cxx:3462 AliReconstruction.cxx:3463 AliReconstruction.cxx:3464 AliReconstruction.cxx:3465 AliReconstruction.cxx:3466 AliReconstruction.cxx:3467 AliReconstruction.cxx:3468 AliReconstruction.cxx:3469 AliReconstruction.cxx:3470 AliReconstruction.cxx:3471 AliReconstruction.cxx:3472 AliReconstruction.cxx:3473 AliReconstruction.cxx:3474 AliReconstruction.cxx:3475 AliReconstruction.cxx:3476 AliReconstruction.cxx:3477 AliReconstruction.cxx:3478 AliReconstruction.cxx:3479 AliReconstruction.cxx:3480 AliReconstruction.cxx:3481 AliReconstruction.cxx:3482 AliReconstruction.cxx:3483 AliReconstruction.cxx:3484 AliReconstruction.cxx:3485 AliReconstruction.cxx:3486 AliReconstruction.cxx:3487 AliReconstruction.cxx:3488 AliReconstruction.cxx:3489 AliReconstruction.cxx:3490 AliReconstruction.cxx:3491 AliReconstruction.cxx:3492 AliReconstruction.cxx:3493 AliReconstruction.cxx:3494 AliReconstruction.cxx:3495 AliReconstruction.cxx:3496 AliReconstruction.cxx:3497 AliReconstruction.cxx:3498 AliReconstruction.cxx:3499 AliReconstruction.cxx:3500 AliReconstruction.cxx:3501 AliReconstruction.cxx:3502 AliReconstruction.cxx:3503 AliReconstruction.cxx:3504 AliReconstruction.cxx:3505 AliReconstruction.cxx:3506 AliReconstruction.cxx:3507 AliReconstruction.cxx:3508 AliReconstruction.cxx:3509 AliReconstruction.cxx:3510 AliReconstruction.cxx:3511 AliReconstruction.cxx:3512 AliReconstruction.cxx:3513 AliReconstruction.cxx:3514 AliReconstruction.cxx:3515 AliReconstruction.cxx:3516 AliReconstruction.cxx:3517 AliReconstruction.cxx:3518 AliReconstruction.cxx:3519 AliReconstruction.cxx:3520 AliReconstruction.cxx:3521 AliReconstruction.cxx:3522 AliReconstruction.cxx:3523 AliReconstruction.cxx:3524 AliReconstruction.cxx:3525 AliReconstruction.cxx:3526 AliReconstruction.cxx:3527 AliReconstruction.cxx:3528 AliReconstruction.cxx:3529 AliReconstruction.cxx:3530 AliReconstruction.cxx:3531 AliReconstruction.cxx:3532 AliReconstruction.cxx:3533 AliReconstruction.cxx:3534 AliReconstruction.cxx:3535 AliReconstruction.cxx:3536 AliReconstruction.cxx:3537 AliReconstruction.cxx:3538 AliReconstruction.cxx:3539 AliReconstruction.cxx:3540 AliReconstruction.cxx:3541 AliReconstruction.cxx:3542 AliReconstruction.cxx:3543 AliReconstruction.cxx:3544 AliReconstruction.cxx:3545 AliReconstruction.cxx:3546 AliReconstruction.cxx:3547 AliReconstruction.cxx:3548 AliReconstruction.cxx:3549 AliReconstruction.cxx:3550 AliReconstruction.cxx:3551 AliReconstruction.cxx:3552 AliReconstruction.cxx:3553 AliReconstruction.cxx:3554 AliReconstruction.cxx:3555 AliReconstruction.cxx:3556 AliReconstruction.cxx:3557 AliReconstruction.cxx:3558 AliReconstruction.cxx:3559 AliReconstruction.cxx:3560 AliReconstruction.cxx:3561 AliReconstruction.cxx:3562 AliReconstruction.cxx:3563 AliReconstruction.cxx:3564 AliReconstruction.cxx:3565 AliReconstruction.cxx:3566 AliReconstruction.cxx:3567 AliReconstruction.cxx:3568 AliReconstruction.cxx:3569 AliReconstruction.cxx:3570 AliReconstruction.cxx:3571 AliReconstruction.cxx:3572 AliReconstruction.cxx:3573 AliReconstruction.cxx:3574 AliReconstruction.cxx:3575 AliReconstruction.cxx:3576 AliReconstruction.cxx:3577 AliReconstruction.cxx:3578 AliReconstruction.cxx:3579 AliReconstruction.cxx:3580 AliReconstruction.cxx:3581 AliReconstruction.cxx:3582 AliReconstruction.cxx:3583 AliReconstruction.cxx:3584 AliReconstruction.cxx:3585 AliReconstruction.cxx:3586 AliReconstruction.cxx:3587 AliReconstruction.cxx:3588 AliReconstruction.cxx:3589 AliReconstruction.cxx:3590 AliReconstruction.cxx:3591 AliReconstruction.cxx:3592 AliReconstruction.cxx:3593 AliReconstruction.cxx:3594 AliReconstruction.cxx:3595 AliReconstruction.cxx:3596 AliReconstruction.cxx:3597 AliReconstruction.cxx:3598 AliReconstruction.cxx:3599 AliReconstruction.cxx:3600 AliReconstruction.cxx:3601 AliReconstruction.cxx:3602 AliReconstruction.cxx:3603 AliReconstruction.cxx:3604 AliReconstruction.cxx:3605 AliReconstruction.cxx:3606 AliReconstruction.cxx:3607 AliReconstruction.cxx:3608 AliReconstruction.cxx:3609 AliReconstruction.cxx:3610 AliReconstruction.cxx:3611 AliReconstruction.cxx:3612 AliReconstruction.cxx:3613 AliReconstruction.cxx:3614 AliReconstruction.cxx:3615 AliReconstruction.cxx:3616 AliReconstruction.cxx:3617 AliReconstruction.cxx:3618 AliReconstruction.cxx:3619 AliReconstruction.cxx:3620 AliReconstruction.cxx:3621 AliReconstruction.cxx:3622 AliReconstruction.cxx:3623 AliReconstruction.cxx:3624 AliReconstruction.cxx:3625 AliReconstruction.cxx:3626 AliReconstruction.cxx:3627 AliReconstruction.cxx:3628 AliReconstruction.cxx:3629 AliReconstruction.cxx:3630 AliReconstruction.cxx:3631 AliReconstruction.cxx:3632 AliReconstruction.cxx:3633 AliReconstruction.cxx:3634 AliReconstruction.cxx:3635 AliReconstruction.cxx:3636 AliReconstruction.cxx:3637 AliReconstruction.cxx:3638 AliReconstruction.cxx:3639 AliReconstruction.cxx:3640 AliReconstruction.cxx:3641 AliReconstruction.cxx:3642 AliReconstruction.cxx:3643 AliReconstruction.cxx:3644 AliReconstruction.cxx:3645 AliReconstruction.cxx:3646 AliReconstruction.cxx:3647 AliReconstruction.cxx:3648 AliReconstruction.cxx:3649 AliReconstruction.cxx:3650 AliReconstruction.cxx:3651 AliReconstruction.cxx:3652 AliReconstruction.cxx:3653 AliReconstruction.cxx:3654 AliReconstruction.cxx:3655 AliReconstruction.cxx:3656 AliReconstruction.cxx:3657 AliReconstruction.cxx:3658 AliReconstruction.cxx:3659 AliReconstruction.cxx:3660 AliReconstruction.cxx:3661 AliReconstruction.cxx:3662 AliReconstruction.cxx:3663 AliReconstruction.cxx:3664 AliReconstruction.cxx:3665 AliReconstruction.cxx:3666 AliReconstruction.cxx:3667 AliReconstruction.cxx:3668 AliReconstruction.cxx:3669 AliReconstruction.cxx:3670 AliReconstruction.cxx:3671 AliReconstruction.cxx:3672 AliReconstruction.cxx:3673 AliReconstruction.cxx:3674 AliReconstruction.cxx:3675 AliReconstruction.cxx:3676 AliReconstruction.cxx:3677 AliReconstruction.cxx:3678 AliReconstruction.cxx:3679 AliReconstruction.cxx:3680 AliReconstruction.cxx:3681 AliReconstruction.cxx:3682 AliReconstruction.cxx:3683 AliReconstruction.cxx:3684 AliReconstruction.cxx:3685 AliReconstruction.cxx:3686 AliReconstruction.cxx:3687 AliReconstruction.cxx:3688 AliReconstruction.cxx:3689 AliReconstruction.cxx:3690 AliReconstruction.cxx:3691 AliReconstruction.cxx:3692 AliReconstruction.cxx:3693 AliReconstruction.cxx:3694 AliReconstruction.cxx:3695 AliReconstruction.cxx:3696 AliReconstruction.cxx:3697 AliReconstruction.cxx:3698 AliReconstruction.cxx:3699 AliReconstruction.cxx:3700 AliReconstruction.cxx:3701 AliReconstruction.cxx:3702 AliReconstruction.cxx:3703 AliReconstruction.cxx:3704 AliReconstruction.cxx:3705 AliReconstruction.cxx:3706 AliReconstruction.cxx:3707 AliReconstruction.cxx:3708 AliReconstruction.cxx:3709 AliReconstruction.cxx:3710 AliReconstruction.cxx:3711 AliReconstruction.cxx:3712 AliReconstruction.cxx:3713 AliReconstruction.cxx:3714 AliReconstruction.cxx:3715 AliReconstruction.cxx:3716 AliReconstruction.cxx:3717 AliReconstruction.cxx:3718 AliReconstruction.cxx:3719 AliReconstruction.cxx:3720 AliReconstruction.cxx:3721 AliReconstruction.cxx:3722 AliReconstruction.cxx:3723 AliReconstruction.cxx:3724 AliReconstruction.cxx:3725 AliReconstruction.cxx:3726 AliReconstruction.cxx:3727 AliReconstruction.cxx:3728 AliReconstruction.cxx:3729 AliReconstruction.cxx:3730 AliReconstruction.cxx:3731 AliReconstruction.cxx:3732 AliReconstruction.cxx:3733 AliReconstruction.cxx:3734 AliReconstruction.cxx:3735 AliReconstruction.cxx:3736 AliReconstruction.cxx:3737 AliReconstruction.cxx:3738 AliReconstruction.cxx:3739 AliReconstruction.cxx:3740 AliReconstruction.cxx:3741 AliReconstruction.cxx:3742 AliReconstruction.cxx:3743 AliReconstruction.cxx:3744 AliReconstruction.cxx:3745 AliReconstruction.cxx:3746 AliReconstruction.cxx:3747 AliReconstruction.cxx:3748 AliReconstruction.cxx:3749 AliReconstruction.cxx:3750 AliReconstruction.cxx:3751 AliReconstruction.cxx:3752 AliReconstruction.cxx:3753 AliReconstruction.cxx:3754 AliReconstruction.cxx:3755 AliReconstruction.cxx:3756 AliReconstruction.cxx:3757 AliReconstruction.cxx:3758 AliReconstruction.cxx:3759 AliReconstruction.cxx:3760 AliReconstruction.cxx:3761 AliReconstruction.cxx:3762 AliReconstruction.cxx:3763 AliReconstruction.cxx:3764 AliReconstruction.cxx:3765 AliReconstruction.cxx:3766 AliReconstruction.cxx:3767 AliReconstruction.cxx:3768 AliReconstruction.cxx:3769 AliReconstruction.cxx:3770 AliReconstruction.cxx:3771 AliReconstruction.cxx:3772 AliReconstruction.cxx:3773 AliReconstruction.cxx:3774 AliReconstruction.cxx:3775 AliReconstruction.cxx:3776 AliReconstruction.cxx:3777 AliReconstruction.cxx:3778 AliReconstruction.cxx:3779 AliReconstruction.cxx:3780 AliReconstruction.cxx:3781 AliReconstruction.cxx:3782 AliReconstruction.cxx:3783 AliReconstruction.cxx:3784 AliReconstruction.cxx:3785 AliReconstruction.cxx:3786 AliReconstruction.cxx:3787 AliReconstruction.cxx:3788 AliReconstruction.cxx:3789 AliReconstruction.cxx:3790 AliReconstruction.cxx:3791 AliReconstruction.cxx:3792 AliReconstruction.cxx:3793 AliReconstruction.cxx:3794 AliReconstruction.cxx:3795 AliReconstruction.cxx:3796 AliReconstruction.cxx:3797 AliReconstruction.cxx:3798 AliReconstruction.cxx:3799 AliReconstruction.cxx:3800 AliReconstruction.cxx:3801 AliReconstruction.cxx:3802 AliReconstruction.cxx:3803 AliReconstruction.cxx:3804 AliReconstruction.cxx:3805 AliReconstruction.cxx:3806 AliReconstruction.cxx:3807 AliReconstruction.cxx:3808 AliReconstruction.cxx:3809 AliReconstruction.cxx:3810 AliReconstruction.cxx:3811 AliReconstruction.cxx:3812 AliReconstruction.cxx:3813 AliReconstruction.cxx:3814 AliReconstruction.cxx:3815 AliReconstruction.cxx:3816 AliReconstruction.cxx:3817 AliReconstruction.cxx:3818 AliReconstruction.cxx:3819 AliReconstruction.cxx:3820 AliReconstruction.cxx:3821 AliReconstruction.cxx:3822 AliReconstruction.cxx:3823 AliReconstruction.cxx:3824 AliReconstruction.cxx:3825 AliReconstruction.cxx:3826 AliReconstruction.cxx:3827 AliReconstruction.cxx:3828 AliReconstruction.cxx:3829 AliReconstruction.cxx:3830 AliReconstruction.cxx:3831 AliReconstruction.cxx:3832 AliReconstruction.cxx:3833 AliReconstruction.cxx:3834 AliReconstruction.cxx:3835 AliReconstruction.cxx:3836 AliReconstruction.cxx:3837 AliReconstruction.cxx:3838 AliReconstruction.cxx:3839 AliReconstruction.cxx:3840 AliReconstruction.cxx:3841 AliReconstruction.cxx:3842 AliReconstruction.cxx:3843 AliReconstruction.cxx:3844 AliReconstruction.cxx:3845 AliReconstruction.cxx:3846 AliReconstruction.cxx:3847 AliReconstruction.cxx:3848 AliReconstruction.cxx:3849 AliReconstruction.cxx:3850 AliReconstruction.cxx:3851 AliReconstruction.cxx:3852 AliReconstruction.cxx:3853 AliReconstruction.cxx:3854 AliReconstruction.cxx:3855 AliReconstruction.cxx:3856 AliReconstruction.cxx:3857 AliReconstruction.cxx:3858 AliReconstruction.cxx:3859 AliReconstruction.cxx:3860 AliReconstruction.cxx:3861 AliReconstruction.cxx:3862 AliReconstruction.cxx:3863 AliReconstruction.cxx:3864 AliReconstruction.cxx:3865 AliReconstruction.cxx:3866 AliReconstruction.cxx:3867 AliReconstruction.cxx:3868 AliReconstruction.cxx:3869 AliReconstruction.cxx:3870 AliReconstruction.cxx:3871 AliReconstruction.cxx:3872 AliReconstruction.cxx:3873 AliReconstruction.cxx:3874 AliReconstruction.cxx:3875 AliReconstruction.cxx:3876 AliReconstruction.cxx:3877 AliReconstruction.cxx:3878 AliReconstruction.cxx:3879 AliReconstruction.cxx:3880 AliReconstruction.cxx:3881 AliReconstruction.cxx:3882 AliReconstruction.cxx:3883 AliReconstruction.cxx:3884 AliReconstruction.cxx:3885 AliReconstruction.cxx:3886 AliReconstruction.cxx:3887 AliReconstruction.cxx:3888 AliReconstruction.cxx:3889 AliReconstruction.cxx:3890 AliReconstruction.cxx:3891 AliReconstruction.cxx:3892 AliReconstruction.cxx:3893 AliReconstruction.cxx:3894 AliReconstruction.cxx:3895 AliReconstruction.cxx:3896 AliReconstruction.cxx:3897 AliReconstruction.cxx:3898 AliReconstruction.cxx:3899 AliReconstruction.cxx:3900 AliReconstruction.cxx:3901 AliReconstruction.cxx:3902 AliReconstruction.cxx:3903 AliReconstruction.cxx:3904 AliReconstruction.cxx:3905 AliReconstruction.cxx:3906 AliReconstruction.cxx:3907 AliReconstruction.cxx:3908 AliReconstruction.cxx:3909 AliReconstruction.cxx:3910 AliReconstruction.cxx:3911 AliReconstruction.cxx:3912 AliReconstruction.cxx:3913 AliReconstruction.cxx:3914 AliReconstruction.cxx:3915 AliReconstruction.cxx:3916 AliReconstruction.cxx:3917 AliReconstruction.cxx:3918 AliReconstruction.cxx:3919 AliReconstruction.cxx:3920 AliReconstruction.cxx:3921 AliReconstruction.cxx:3922 AliReconstruction.cxx:3923 AliReconstruction.cxx:3924 AliReconstruction.cxx:3925 AliReconstruction.cxx:3926 AliReconstruction.cxx:3927 AliReconstruction.cxx:3928 AliReconstruction.cxx:3929 AliReconstruction.cxx:3930 AliReconstruction.cxx:3931 AliReconstruction.cxx:3932 AliReconstruction.cxx:3933 AliReconstruction.cxx:3934 AliReconstruction.cxx:3935 AliReconstruction.cxx:3936 AliReconstruction.cxx:3937 AliReconstruction.cxx:3938 AliReconstruction.cxx:3939 AliReconstruction.cxx:3940 AliReconstruction.cxx:3941 AliReconstruction.cxx:3942 AliReconstruction.cxx:3943 AliReconstruction.cxx:3944 AliReconstruction.cxx:3945 AliReconstruction.cxx:3946 AliReconstruction.cxx:3947 AliReconstruction.cxx:3948 AliReconstruction.cxx:3949 AliReconstruction.cxx:3950 AliReconstruction.cxx:3951 AliReconstruction.cxx:3952 AliReconstruction.cxx:3953 AliReconstruction.cxx:3954 AliReconstruction.cxx:3955 AliReconstruction.cxx:3956 AliReconstruction.cxx:3957 AliReconstruction.cxx:3958 AliReconstruction.cxx:3959 AliReconstruction.cxx:3960 AliReconstruction.cxx:3961 AliReconstruction.cxx:3962 AliReconstruction.cxx:3963 AliReconstruction.cxx:3964 AliReconstruction.cxx:3965 AliReconstruction.cxx:3966 AliReconstruction.cxx:3967 AliReconstruction.cxx:3968 AliReconstruction.cxx:3969 AliReconstruction.cxx:3970 AliReconstruction.cxx:3971 AliReconstruction.cxx:3972 AliReconstruction.cxx:3973 AliReconstruction.cxx:3974 AliReconstruction.cxx:3975 AliReconstruction.cxx:3976 AliReconstruction.cxx:3977 AliReconstruction.cxx:3978 AliReconstruction.cxx:3979 AliReconstruction.cxx:3980 AliReconstruction.cxx:3981 AliReconstruction.cxx:3982 AliReconstruction.cxx:3983 AliReconstruction.cxx:3984 AliReconstruction.cxx:3985 AliReconstruction.cxx:3986 AliReconstruction.cxx:3987 AliReconstruction.cxx:3988 AliReconstruction.cxx:3989 AliReconstruction.cxx:3990 AliReconstruction.cxx:3991 AliReconstruction.cxx:3992 AliReconstruction.cxx:3993 AliReconstruction.cxx:3994 AliReconstruction.cxx:3995 AliReconstruction.cxx:3996 AliReconstruction.cxx:3997 AliReconstruction.cxx:3998 AliReconstruction.cxx:3999 AliReconstruction.cxx:4000 AliReconstruction.cxx:4001 AliReconstruction.cxx:4002 AliReconstruction.cxx:4003 AliReconstruction.cxx:4004 AliReconstruction.cxx:4005 AliReconstruction.cxx:4006 AliReconstruction.cxx:4007 AliReconstruction.cxx:4008 AliReconstruction.cxx:4009 AliReconstruction.cxx:4010 AliReconstruction.cxx:4011 AliReconstruction.cxx:4012 AliReconstruction.cxx:4013 AliReconstruction.cxx:4014 AliReconstruction.cxx:4015 AliReconstruction.cxx:4016 AliReconstruction.cxx:4017 AliReconstruction.cxx:4018 AliReconstruction.cxx:4019 AliReconstruction.cxx:4020 AliReconstruction.cxx:4021 AliReconstruction.cxx:4022 AliReconstruction.cxx:4023 AliReconstruction.cxx:4024 AliReconstruction.cxx:4025 AliReconstruction.cxx:4026 AliReconstruction.cxx:4027 AliReconstruction.cxx:4028 AliReconstruction.cxx:4029 AliReconstruction.cxx:4030 AliReconstruction.cxx:4031 AliReconstruction.cxx:4032 AliReconstruction.cxx:4033 AliReconstruction.cxx:4034 AliReconstruction.cxx:4035 AliReconstruction.cxx:4036 AliReconstruction.cxx:4037 AliReconstruction.cxx:4038 AliReconstruction.cxx:4039 AliReconstruction.cxx:4040 AliReconstruction.cxx:4041 AliReconstruction.cxx:4042 AliReconstruction.cxx:4043 AliReconstruction.cxx:4044 AliReconstruction.cxx:4045 AliReconstruction.cxx:4046 AliReconstruction.cxx:4047 AliReconstruction.cxx:4048 AliReconstruction.cxx:4049 AliReconstruction.cxx:4050 AliReconstruction.cxx:4051 AliReconstruction.cxx:4052 AliReconstruction.cxx:4053 AliReconstruction.cxx:4054 AliReconstruction.cxx:4055 AliReconstruction.cxx:4056 AliReconstruction.cxx:4057 AliReconstruction.cxx:4058 AliReconstruction.cxx:4059 AliReconstruction.cxx:4060 AliReconstruction.cxx:4061 AliReconstruction.cxx:4062 AliReconstruction.cxx:4063 AliReconstruction.cxx:4064 AliReconstruction.cxx:4065 AliReconstruction.cxx:4066 AliReconstruction.cxx:4067 AliReconstruction.cxx:4068 AliReconstruction.cxx:4069 AliReconstruction.cxx:4070 AliReconstruction.cxx:4071 AliReconstruction.cxx:4072 AliReconstruction.cxx:4073 AliReconstruction.cxx:4074 AliReconstruction.cxx:4075 AliReconstruction.cxx:4076 AliReconstruction.cxx:4077 AliReconstruction.cxx:4078 AliReconstruction.cxx:4079 AliReconstruction.cxx:4080 AliReconstruction.cxx:4081 AliReconstruction.cxx:4082 AliReconstruction.cxx:4083 AliReconstruction.cxx:4084 AliReconstruction.cxx:4085 AliReconstruction.cxx:4086 AliReconstruction.cxx:4087 AliReconstruction.cxx:4088 AliReconstruction.cxx:4089 AliReconstruction.cxx:4090 AliReconstruction.cxx:4091 AliReconstruction.cxx:4092 AliReconstruction.cxx:4093 AliReconstruction.cxx:4094 AliReconstruction.cxx:4095 AliReconstruction.cxx:4096 AliReconstruction.cxx:4097 AliReconstruction.cxx:4098 AliReconstruction.cxx:4099 AliReconstruction.cxx:4100 AliReconstruction.cxx:4101 AliReconstruction.cxx:4102 AliReconstruction.cxx:4103 AliReconstruction.cxx:4104 AliReconstruction.cxx:4105 AliReconstruction.cxx:4106 AliReconstruction.cxx:4107 AliReconstruction.cxx:4108 AliReconstruction.cxx:4109 AliReconstruction.cxx:4110 AliReconstruction.cxx:4111 AliReconstruction.cxx:4112 AliReconstruction.cxx:4113 AliReconstruction.cxx:4114 AliReconstruction.cxx:4115 AliReconstruction.cxx:4116 AliReconstruction.cxx:4117 AliReconstruction.cxx:4118 AliReconstruction.cxx:4119 AliReconstruction.cxx:4120 AliReconstruction.cxx:4121 AliReconstruction.cxx:4122 AliReconstruction.cxx:4123 AliReconstruction.cxx:4124 AliReconstruction.cxx:4125 AliReconstruction.cxx:4126 AliReconstruction.cxx:4127 AliReconstruction.cxx:4128 AliReconstruction.cxx:4129 AliReconstruction.cxx:4130 AliReconstruction.cxx:4131 AliReconstruction.cxx:4132 AliReconstruction.cxx:4133 AliReconstruction.cxx:4134 AliReconstruction.cxx:4135 AliReconstruction.cxx:4136 AliReconstruction.cxx:4137 AliReconstruction.cxx:4138 AliReconstruction.cxx:4139 AliReconstruction.cxx:4140 AliReconstruction.cxx:4141 AliReconstruction.cxx:4142 AliReconstruction.cxx:4143 AliReconstruction.cxx:4144 AliReconstruction.cxx:4145 AliReconstruction.cxx:4146 AliReconstruction.cxx:4147 AliReconstruction.cxx:4148 AliReconstruction.cxx:4149 AliReconstruction.cxx:4150 AliReconstruction.cxx:4151 AliReconstruction.cxx:4152 AliReconstruction.cxx:4153 AliReconstruction.cxx:4154 AliReconstruction.cxx:4155 AliReconstruction.cxx:4156 AliReconstruction.cxx:4157 AliReconstruction.cxx:4158 AliReconstruction.cxx:4159 AliReconstruction.cxx:4160 AliReconstruction.cxx:4161 AliReconstruction.cxx:4162 AliReconstruction.cxx:4163 AliReconstruction.cxx:4164 AliReconstruction.cxx:4165 AliReconstruction.cxx:4166 AliReconstruction.cxx:4167 AliReconstruction.cxx:4168 AliReconstruction.cxx:4169 AliReconstruction.cxx:4170 AliReconstruction.cxx:4171 AliReconstruction.cxx:4172 AliReconstruction.cxx:4173 AliReconstruction.cxx:4174 AliReconstruction.cxx:4175 AliReconstruction.cxx:4176 AliReconstruction.cxx:4177 AliReconstruction.cxx:4178 AliReconstruction.cxx:4179 AliReconstruction.cxx:4180 AliReconstruction.cxx:4181 AliReconstruction.cxx:4182 AliReconstruction.cxx:4183 AliReconstruction.cxx:4184 AliReconstruction.cxx:4185 AliReconstruction.cxx:4186 AliReconstruction.cxx:4187 AliReconstruction.cxx:4188 AliReconstruction.cxx:4189 AliReconstruction.cxx:4190 AliReconstruction.cxx:4191 AliReconstruction.cxx:4192 AliReconstruction.cxx:4193 AliReconstruction.cxx:4194 AliReconstruction.cxx:4195 AliReconstruction.cxx:4196 AliReconstruction.cxx:4197 AliReconstruction.cxx:4198 AliReconstruction.cxx:4199 AliReconstruction.cxx:4200 AliReconstruction.cxx:4201 AliReconstruction.cxx:4202 AliReconstruction.cxx:4203 AliReconstruction.cxx:4204 AliReconstruction.cxx:4205 AliReconstruction.cxx:4206 AliReconstruction.cxx:4207 AliReconstruction.cxx:4208 AliReconstruction.cxx:4209 AliReconstruction.cxx:4210 AliReconstruction.cxx:4211 AliReconstruction.cxx:4212 AliReconstruction.cxx:4213 AliReconstruction.cxx:4214 AliReconstruction.cxx:4215 AliReconstruction.cxx:4216 AliReconstruction.cxx:4217 AliReconstruction.cxx:4218 AliReconstruction.cxx:4219 AliReconstruction.cxx:4220 AliReconstruction.cxx:4221 AliReconstruction.cxx:4222 AliReconstruction.cxx:4223 AliReconstruction.cxx:4224 AliReconstruction.cxx:4225 AliReconstruction.cxx:4226 AliReconstruction.cxx:4227 AliReconstruction.cxx:4228 AliReconstruction.cxx:4229 AliReconstruction.cxx:4230 AliReconstruction.cxx:4231 AliReconstruction.cxx:4232 AliReconstruction.cxx:4233 AliReconstruction.cxx:4234 AliReconstruction.cxx:4235 AliReconstruction.cxx:4236 AliReconstruction.cxx:4237 AliReconstruction.cxx:4238 AliReconstruction.cxx:4239 AliReconstruction.cxx:4240 AliReconstruction.cxx:4241 AliReconstruction.cxx:4242 AliReconstruction.cxx:4243 AliReconstruction.cxx:4244 AliReconstruction.cxx:4245 AliReconstruction.cxx:4246 AliReconstruction.cxx:4247 AliReconstruction.cxx:4248 AliReconstruction.cxx:4249 AliReconstruction.cxx:4250 AliReconstruction.cxx:4251 AliReconstruction.cxx:4252 AliReconstruction.cxx:4253 AliReconstruction.cxx:4254 AliReconstruction.cxx:4255 AliReconstruction.cxx:4256 AliReconstruction.cxx:4257 AliReconstruction.cxx:4258 AliReconstruction.cxx:4259 AliReconstruction.cxx:4260 AliReconstruction.cxx:4261 AliReconstruction.cxx:4262 AliReconstruction.cxx:4263 AliReconstruction.cxx:4264 AliReconstruction.cxx:4265 AliReconstruction.cxx:4266 AliReconstruction.cxx:4267 AliReconstruction.cxx:4268 AliReconstruction.cxx:4269 AliReconstruction.cxx:4270 AliReconstruction.cxx:4271 AliReconstruction.cxx:4272 AliReconstruction.cxx:4273 AliReconstruction.cxx:4274 AliReconstruction.cxx:4275 AliReconstruction.cxx:4276 AliReconstruction.cxx:4277 AliReconstruction.cxx:4278 AliReconstruction.cxx:4279 AliReconstruction.cxx:4280 AliReconstruction.cxx:4281 AliReconstruction.cxx:4282 AliReconstruction.cxx:4283 AliReconstruction.cxx:4284 AliReconstruction.cxx:4285 AliReconstruction.cxx:4286 AliReconstruction.cxx:4287 AliReconstruction.cxx:4288 AliReconstruction.cxx:4289 AliReconstruction.cxx:4290 AliReconstruction.cxx:4291 AliReconstruction.cxx:4292 AliReconstruction.cxx:4293 AliReconstruction.cxx:4294 AliReconstruction.cxx:4295 AliReconstruction.cxx:4296 AliReconstruction.cxx:4297 AliReconstruction.cxx:4298 AliReconstruction.cxx:4299 AliReconstruction.cxx:4300 AliReconstruction.cxx:4301 AliReconstruction.cxx:4302 AliReconstruction.cxx:4303 AliReconstruction.cxx:4304 AliReconstruction.cxx:4305 AliReconstruction.cxx:4306 AliReconstruction.cxx:4307 AliReconstruction.cxx:4308 AliReconstruction.cxx:4309 AliReconstruction.cxx:4310 AliReconstruction.cxx:4311 AliReconstruction.cxx:4312 AliReconstruction.cxx:4313 AliReconstruction.cxx:4314 AliReconstruction.cxx:4315 AliReconstruction.cxx:4316 AliReconstruction.cxx:4317 AliReconstruction.cxx:4318 AliReconstruction.cxx:4319 AliReconstruction.cxx:4320 AliReconstruction.cxx:4321 AliReconstruction.cxx:4322 AliReconstruction.cxx:4323 AliReconstruction.cxx:4324 AliReconstruction.cxx:4325 AliReconstruction.cxx:4326 AliReconstruction.cxx:4327 AliReconstruction.cxx:4328 AliReconstruction.cxx:4329 AliReconstruction.cxx:4330 AliReconstruction.cxx:4331 AliReconstruction.cxx:4332 AliReconstruction.cxx:4333 AliReconstruction.cxx:4334 AliReconstruction.cxx:4335 AliReconstruction.cxx:4336 AliReconstruction.cxx:4337 AliReconstruction.cxx:4338 AliReconstruction.cxx:4339 AliReconstruction.cxx:4340 AliReconstruction.cxx:4341 AliReconstruction.cxx:4342 AliReconstruction.cxx:4343 AliReconstruction.cxx:4344 AliReconstruction.cxx:4345 AliReconstruction.cxx:4346 AliReconstruction.cxx:4347 AliReconstruction.cxx:4348 AliReconstruction.cxx:4349 AliReconstruction.cxx:4350 AliReconstruction.cxx:4351 AliReconstruction.cxx:4352 AliReconstruction.cxx:4353 AliReconstruction.cxx:4354 AliReconstruction.cxx:4355 AliReconstruction.cxx:4356 AliReconstruction.cxx:4357 AliReconstruction.cxx:4358 AliReconstruction.cxx:4359 AliReconstruction.cxx:4360 AliReconstruction.cxx:4361 AliReconstruction.cxx:4362 AliReconstruction.cxx:4363 AliReconstruction.cxx:4364 AliReconstruction.cxx:4365 AliReconstruction.cxx:4366 AliReconstruction.cxx:4367 AliReconstruction.cxx:4368 AliReconstruction.cxx:4369 AliReconstruction.cxx:4370 AliReconstruction.cxx:4371 AliReconstruction.cxx:4372 AliReconstruction.cxx:4373 AliReconstruction.cxx:4374 AliReconstruction.cxx:4375 AliReconstruction.cxx:4376 AliReconstruction.cxx:4377 AliReconstruction.cxx:4378 AliReconstruction.cxx:4379 AliReconstruction.cxx:4380 AliReconstruction.cxx:4381 AliReconstruction.cxx:4382 AliReconstruction.cxx:4383 AliReconstruction.cxx:4384 AliReconstruction.cxx:4385 AliReconstruction.cxx:4386 AliReconstruction.cxx:4387 AliReconstruction.cxx:4388 AliReconstruction.cxx:4389 AliReconstruction.cxx:4390 AliReconstruction.cxx:4391 AliReconstruction.cxx:4392 AliReconstruction.cxx:4393 AliReconstruction.cxx:4394 AliReconstruction.cxx:4395 AliReconstruction.cxx:4396 AliReconstruction.cxx:4397 AliReconstruction.cxx:4398 AliReconstruction.cxx:4399 AliReconstruction.cxx:4400 AliReconstruction.cxx:4401 AliReconstruction.cxx:4402 AliReconstruction.cxx:4403 AliReconstruction.cxx:4404 AliReconstruction.cxx:4405 AliReconstruction.cxx:4406 AliReconstruction.cxx:4407 AliReconstruction.cxx:4408 AliReconstruction.cxx:4409 AliReconstruction.cxx:4410 AliReconstruction.cxx:4411 AliReconstruction.cxx:4412 AliReconstruction.cxx:4413 AliReconstruction.cxx:4414 AliReconstruction.cxx:4415 AliReconstruction.cxx:4416 AliReconstruction.cxx:4417 AliReconstruction.cxx:4418 AliReconstruction.cxx:4419 AliReconstruction.cxx:4420 AliReconstruction.cxx:4421 AliReconstruction.cxx:4422 AliReconstruction.cxx:4423 AliReconstruction.cxx:4424 AliReconstruction.cxx:4425 AliReconstruction.cxx:4426 AliReconstruction.cxx:4427 AliReconstruction.cxx:4428 AliReconstruction.cxx:4429 AliReconstruction.cxx:4430 AliReconstruction.cxx:4431 AliReconstruction.cxx:4432 AliReconstruction.cxx:4433 AliReconstruction.cxx:4434 AliReconstruction.cxx:4435 AliReconstruction.cxx:4436 AliReconstruction.cxx:4437 AliReconstruction.cxx:4438 AliReconstruction.cxx:4439 AliReconstruction.cxx:4440 AliReconstruction.cxx:4441 AliReconstruction.cxx:4442 AliReconstruction.cxx:4443 AliReconstruction.cxx:4444 AliReconstruction.cxx:4445 AliReconstruction.cxx:4446 AliReconstruction.cxx:4447 AliReconstruction.cxx:4448 AliReconstruction.cxx:4449 AliReconstruction.cxx:4450 AliReconstruction.cxx:4451 AliReconstruction.cxx:4452 AliReconstruction.cxx:4453 AliReconstruction.cxx:4454 AliReconstruction.cxx:4455 AliReconstruction.cxx:4456 AliReconstruction.cxx:4457 AliReconstruction.cxx:4458 AliReconstruction.cxx:4459 AliReconstruction.cxx:4460 AliReconstruction.cxx:4461 AliReconstruction.cxx:4462 AliReconstruction.cxx:4463 AliReconstruction.cxx:4464 AliReconstruction.cxx:4465 AliReconstruction.cxx:4466 AliReconstruction.cxx:4467 AliReconstruction.cxx:4468 AliReconstruction.cxx:4469 AliReconstruction.cxx:4470 AliReconstruction.cxx:4471 AliReconstruction.cxx:4472 AliReconstruction.cxx:4473 AliReconstruction.cxx:4474 AliReconstruction.cxx:4475 AliReconstruction.cxx:4476 AliReconstruction.cxx:4477 AliReconstruction.cxx:4478 AliReconstruction.cxx:4479 AliReconstruction.cxx:4480 AliReconstruction.cxx:4481 AliReconstruction.cxx:4482 AliReconstruction.cxx:4483 AliReconstruction.cxx:4484 AliReconstruction.cxx:4485 AliReconstruction.cxx:4486 AliReconstruction.cxx:4487 AliReconstruction.cxx:4488 AliReconstruction.cxx:4489 AliReconstruction.cxx:4490 AliReconstruction.cxx:4491 AliReconstruction.cxx:4492 AliReconstruction.cxx:4493 AliReconstruction.cxx:4494 AliReconstruction.cxx:4495 AliReconstruction.cxx:4496 AliReconstruction.cxx:4497 AliReconstruction.cxx:4498 AliReconstruction.cxx:4499 AliReconstruction.cxx:4500 AliReconstruction.cxx:4501 AliReconstruction.cxx:4502 AliReconstruction.cxx:4503 AliReconstruction.cxx:4504 AliReconstruction.cxx:4505 AliReconstruction.cxx:4506 AliReconstruction.cxx:4507 AliReconstruction.cxx:4508 AliReconstruction.cxx:4509 AliReconstruction.cxx:4510 AliReconstruction.cxx:4511 AliReconstruction.cxx:4512 AliReconstruction.cxx:4513 AliReconstruction.cxx:4514 AliReconstruction.cxx:4515 AliReconstruction.cxx:4516 AliReconstruction.cxx:4517 AliReconstruction.cxx:4518 AliReconstruction.cxx:4519 AliReconstruction.cxx:4520 AliReconstruction.cxx:4521 AliReconstruction.cxx:4522 AliReconstruction.cxx:4523 AliReconstruction.cxx:4524 AliReconstruction.cxx:4525 AliReconstruction.cxx:4526 AliReconstruction.cxx:4527 AliReconstruction.cxx:4528 AliReconstruction.cxx:4529 AliReconstruction.cxx:4530 AliReconstruction.cxx:4531 AliReconstruction.cxx:4532 AliReconstruction.cxx:4533 AliReconstruction.cxx:4534 AliReconstruction.cxx:4535 AliReconstruction.cxx:4536 AliReconstruction.cxx:4537 AliReconstruction.cxx:4538 AliReconstruction.cxx:4539 AliReconstruction.cxx:4540 AliReconstruction.cxx:4541 AliReconstruction.cxx:4542 AliReconstruction.cxx:4543 AliReconstruction.cxx:4544 AliReconstruction.cxx:4545 AliReconstruction.cxx:4546 AliReconstruction.cxx:4547 AliReconstruction.cxx:4548 AliReconstruction.cxx:4549 AliReconstruction.cxx:4550 AliReconstruction.cxx:4551 AliReconstruction.cxx:4552 AliReconstruction.cxx:4553 AliReconstruction.cxx:4554 AliReconstruction.cxx:4555 AliReconstruction.cxx:4556 AliReconstruction.cxx:4557 AliReconstruction.cxx:4558 AliReconstruction.cxx:4559 AliReconstruction.cxx:4560 AliReconstruction.cxx:4561 AliReconstruction.cxx:4562 AliReconstruction.cxx:4563 AliReconstruction.cxx:4564 AliReconstruction.cxx:4565 AliReconstruction.cxx:4566 AliReconstruction.cxx:4567 AliReconstruction.cxx:4568 AliReconstruction.cxx:4569 AliReconstruction.cxx:4570 AliReconstruction.cxx:4571 AliReconstruction.cxx:4572 AliReconstruction.cxx:4573 AliReconstruction.cxx:4574 AliReconstruction.cxx:4575 AliReconstruction.cxx:4576 AliReconstruction.cxx:4577 AliReconstruction.cxx:4578 AliReconstruction.cxx:4579 AliReconstruction.cxx:4580 AliReconstruction.cxx:4581 AliReconstruction.cxx:4582 AliReconstruction.cxx:4583 AliReconstruction.cxx:4584 AliReconstruction.cxx:4585 AliReconstruction.cxx:4586 AliReconstruction.cxx:4587 AliReconstruction.cxx:4588 AliReconstruction.cxx:4589 AliReconstruction.cxx:4590 AliReconstruction.cxx:4591 AliReconstruction.cxx:4592 AliReconstruction.cxx:4593 AliReconstruction.cxx:4594 AliReconstruction.cxx:4595 AliReconstruction.cxx:4596 AliReconstruction.cxx:4597 AliReconstruction.cxx:4598 AliReconstruction.cxx:4599 AliReconstruction.cxx:4600 AliReconstruction.cxx:4601 AliReconstruction.cxx:4602 AliReconstruction.cxx:4603 AliReconstruction.cxx:4604 AliReconstruction.cxx:4605 AliReconstruction.cxx:4606 AliReconstruction.cxx:4607 AliReconstruction.cxx:4608 AliReconstruction.cxx:4609 AliReconstruction.cxx:4610 AliReconstruction.cxx:4611 AliReconstruction.cxx:4612 AliReconstruction.cxx:4613 AliReconstruction.cxx:4614 AliReconstruction.cxx:4615 AliReconstruction.cxx:4616 AliReconstruction.cxx:4617 AliReconstruction.cxx:4618 AliReconstruction.cxx:4619 AliReconstruction.cxx:4620 AliReconstruction.cxx:4621 AliReconstruction.cxx:4622 AliReconstruction.cxx:4623 AliReconstruction.cxx:4624 AliReconstruction.cxx:4625 AliReconstruction.cxx:4626 AliReconstruction.cxx:4627 AliReconstruction.cxx:4628 AliReconstruction.cxx:4629 AliReconstruction.cxx:4630 AliReconstruction.cxx:4631 AliReconstruction.cxx:4632 AliReconstruction.cxx:4633 AliReconstruction.cxx:4634 AliReconstruction.cxx:4635 AliReconstruction.cxx:4636 AliReconstruction.cxx:4637 AliReconstruction.cxx:4638 AliReconstruction.cxx:4639 AliReconstruction.cxx:4640 AliReconstruction.cxx:4641 AliReconstruction.cxx:4642 AliReconstruction.cxx:4643 AliReconstruction.cxx:4644 AliReconstruction.cxx:4645 AliReconstruction.cxx:4646 AliReconstruction.cxx:4647 AliReconstruction.cxx:4648 AliReconstruction.cxx:4649 AliReconstruction.cxx:4650 AliReconstruction.cxx:4651 AliReconstruction.cxx:4652 AliReconstruction.cxx:4653 AliReconstruction.cxx:4654 AliReconstruction.cxx:4655 AliReconstruction.cxx:4656 AliReconstruction.cxx:4657 AliReconstruction.cxx:4658 AliReconstruction.cxx:4659 AliReconstruction.cxx:4660 AliReconstruction.cxx:4661 AliReconstruction.cxx:4662 AliReconstruction.cxx:4663 AliReconstruction.cxx:4664 AliReconstruction.cxx:4665 AliReconstruction.cxx:4666 AliReconstruction.cxx:4667 AliReconstruction.cxx:4668 AliReconstruction.cxx:4669 AliReconstruction.cxx:4670 AliReconstruction.cxx:4671 AliReconstruction.cxx:4672 AliReconstruction.cxx:4673 AliReconstruction.cxx:4674 AliReconstruction.cxx:4675 AliReconstruction.cxx:4676 AliReconstruction.cxx:4677 AliReconstruction.cxx:4678 AliReconstruction.cxx:4679 AliReconstruction.cxx:4680 AliReconstruction.cxx:4681 AliReconstruction.cxx:4682 AliReconstruction.cxx:4683 AliReconstruction.cxx:4684 AliReconstruction.cxx:4685 AliReconstruction.cxx:4686 AliReconstruction.cxx:4687 AliReconstruction.cxx:4688 AliReconstruction.cxx:4689 AliReconstruction.cxx:4690 AliReconstruction.cxx:4691 AliReconstruction.cxx:4692 AliReconstruction.cxx:4693 AliReconstruction.cxx:4694 AliReconstruction.cxx:4695 AliReconstruction.cxx:4696 AliReconstruction.cxx:4697 AliReconstruction.cxx:4698 AliReconstruction.cxx:4699 AliReconstruction.cxx:4700 AliReconstruction.cxx:4701 AliReconstruction.cxx:4702 AliReconstruction.cxx:4703 AliReconstruction.cxx:4704 AliReconstruction.cxx:4705 AliReconstruction.cxx:4706 AliReconstruction.cxx:4707 AliReconstruction.cxx:4708 AliReconstruction.cxx:4709 AliReconstruction.cxx:4710 AliReconstruction.cxx:4711 AliReconstruction.cxx:4712 AliReconstruction.cxx:4713 AliReconstruction.cxx:4714 AliReconstruction.cxx:4715 AliReconstruction.cxx:4716 AliReconstruction.cxx:4717 AliReconstruction.cxx:4718 AliReconstruction.cxx:4719 AliReconstruction.cxx:4720 AliReconstruction.cxx:4721 AliReconstruction.cxx:4722 AliReconstruction.cxx:4723 AliReconstruction.cxx:4724 AliReconstruction.cxx:4725 AliReconstruction.cxx:4726 AliReconstruction.cxx:4727 AliReconstruction.cxx:4728 AliReconstruction.cxx:4729 AliReconstruction.cxx:4730 AliReconstruction.cxx:4731 AliReconstruction.cxx:4732 AliReconstruction.cxx:4733 AliReconstruction.cxx:4734 AliReconstruction.cxx:4735 AliReconstruction.cxx:4736 AliReconstruction.cxx:4737 AliReconstruction.cxx:4738 AliReconstruction.cxx:4739 AliReconstruction.cxx:4740 AliReconstruction.cxx:4741 AliReconstruction.cxx:4742 AliReconstruction.cxx:4743 AliReconstruction.cxx:4744 AliReconstruction.cxx:4745 AliReconstruction.cxx:4746 AliReconstruction.cxx:4747 AliReconstruction.cxx:4748 AliReconstruction.cxx:4749 AliReconstruction.cxx:4750 AliReconstruction.cxx:4751 AliReconstruction.cxx:4752 AliReconstruction.cxx:4753 AliReconstruction.cxx:4754 AliReconstruction.cxx:4755 AliReconstruction.cxx:4756 AliReconstruction.cxx:4757 AliReconstruction.cxx:4758 AliReconstruction.cxx:4759 AliReconstruction.cxx:4760 AliReconstruction.cxx:4761 AliReconstruction.cxx:4762 AliReconstruction.cxx:4763 AliReconstruction.cxx:4764 AliReconstruction.cxx:4765 AliReconstruction.cxx:4766 AliReconstruction.cxx:4767 AliReconstruction.cxx:4768 AliReconstruction.cxx:4769 AliReconstruction.cxx:4770 AliReconstruction.cxx:4771 AliReconstruction.cxx:4772 AliReconstruction.cxx:4773 AliReconstruction.cxx:4774 AliReconstruction.cxx:4775 AliReconstruction.cxx:4776 AliReconstruction.cxx:4777 AliReconstruction.cxx:4778 AliReconstruction.cxx:4779 AliReconstruction.cxx:4780 AliReconstruction.cxx:4781 AliReconstruction.cxx:4782 AliReconstruction.cxx:4783 AliReconstruction.cxx:4784 AliReconstruction.cxx:4785 AliReconstruction.cxx:4786 AliReconstruction.cxx:4787 AliReconstruction.cxx:4788 AliReconstruction.cxx:4789 AliReconstruction.cxx:4790 AliReconstruction.cxx:4791 AliReconstruction.cxx:4792 AliReconstruction.cxx:4793 AliReconstruction.cxx:4794 AliReconstruction.cxx:4795 AliReconstruction.cxx:4796 AliReconstruction.cxx:4797 AliReconstruction.cxx:4798 AliReconstruction.cxx:4799 AliReconstruction.cxx:4800 AliReconstruction.cxx:4801 AliReconstruction.cxx:4802 AliReconstruction.cxx:4803 AliReconstruction.cxx:4804 AliReconstruction.cxx:4805 AliReconstruction.cxx:4806 AliReconstruction.cxx:4807 AliReconstruction.cxx:4808 AliReconstruction.cxx:4809 AliReconstruction.cxx:4810 AliReconstruction.cxx:4811 AliReconstruction.cxx:4812 AliReconstruction.cxx:4813 AliReconstruction.cxx:4814 AliReconstruction.cxx:4815 AliReconstruction.cxx:4816 AliReconstruction.cxx:4817 AliReconstruction.cxx:4818 AliReconstruction.cxx:4819 AliReconstruction.cxx:4820