X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=STEER%2FAliReconstruction.cxx;h=f1fd8fcbfe48f855d81fc6343b53c35ec3ba3975;hb=efd2085ed79b4417f435464f599bee2b85c23966;hp=544c87cf1fc2f57edeaf9fb5393d2ac5dae90c0a;hpb=fb78191c68b3699d504e4598999c20f841e92078;p=u%2Fmrichter%2FAliRoot.git diff --git a/STEER/AliReconstruction.cxx b/STEER/AliReconstruction.cxx index 544c87cf1fc..f1fd8fcbfe4 100644 --- a/STEER/AliReconstruction.cxx +++ b/STEER/AliReconstruction.cxx @@ -115,7 +115,10 @@ AliReconstruction::AliReconstruction(const char* gAliceFilename, fTRDLoader(NULL), fTRDTracker(NULL), fTOFLoader(NULL), - fTOFTracker(NULL) + fTOFTracker(NULL), + + fReconstructors(), + fOptions() { // create reconstruction object with default parameters @@ -142,10 +145,16 @@ AliReconstruction::AliReconstruction(const AliReconstruction& rec) : fTRDLoader(NULL), fTRDTracker(NULL), fTOFLoader(NULL), - fTOFTracker(NULL) + fTOFTracker(NULL), + + fReconstructors(), + fOptions() { // copy constructor + for (Int_t i = 0; i < fOptions.GetEntriesFast(); i++) { + if (rec.fOptions[i]) fOptions.Add(rec.fOptions[i]->Clone()); + } } //_____________________________________________________________________________ @@ -164,6 +173,7 @@ AliReconstruction::~AliReconstruction() // clean up CleanUp(); + fOptions.Delete(); } @@ -175,6 +185,16 @@ void AliReconstruction::SetGAliceFile(const char* fileName) fGAliceFileName = fileName; } +//_____________________________________________________________________________ +void AliReconstruction::SetOption(const char* detector, const char* option) +{ +// set options for the reconstruction of a detector + + TObject* obj = fOptions.FindObject(detector); + if (obj) fOptions.Remove(obj); + fOptions.Add(new TNamed(detector, option)); +} + //_____________________________________________________________________________ Bool_t AliReconstruction::Run() @@ -234,7 +254,11 @@ Bool_t AliReconstruction::Run() Info("Run", "using dummy reconstructor for %s", detName.Data()); reconstructor = new AliDummyReconstructor(gAlice->GetDetector(detName)); } - if (reconstructor) fReconstructors.Add(reconstructor); + if (reconstructor) { + TObject* obj = fOptions.FindObject(detName.Data()); + if (obj) reconstructor->SetOption(obj->GetTitle()); + fReconstructors.Add(reconstructor); + } } // local reconstruction @@ -455,7 +479,7 @@ Bool_t AliReconstruction::RunTracking(AliESD*& esd) Warning("RunTracking", "no ITS tracker"); } else { - fRunLoader->GetAliRun()->GetDetector("TPC")->FillESD(esd); // preliminary + GetReconstructor("TPC")->FillESD(fRunLoader, esd); // preliminary AliESDpid::MakePID(esd); // PID for the ITS tracker // ITS tracking