X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=TPC%2FAliTPCReconstructor.cxx;h=8517a68b565a098f6661aa292f7bd4d5f7cabe27;hb=88dee377a06d92de569aeae9645f9b01d45a0e47;hp=a491a174359bb40e9549e515aa8f1c787cd872de;hpb=38e6e547215069a953c023915d231ebf657b3816;p=u%2Fmrichter%2FAliRoot.git diff --git a/TPC/AliTPCReconstructor.cxx b/TPC/AliTPCReconstructor.cxx index a491a174359..8517a68b565 100644 --- a/TPC/AliTPCReconstructor.cxx +++ b/TPC/AliTPCReconstructor.cxx @@ -29,124 +29,121 @@ #include "AliTPCclustererMI.h" #include "AliTPCtrackerMI.h" #include "AliTPCpidESD.h" - +#include "AliTPCParam.h" +#include "AliTPCParamSR.h" +#include "AliTPCcalibDB.h" ClassImp(AliTPCReconstructor) -Double_t AliTPCReconstructor::fgCtgRange = 1.05; - -//_____________________________________________________________________________ -void AliTPCReconstructor::Reconstruct(AliRunLoader* runLoader) const -{ -// reconstruct clusters - - AliLoader* loader = runLoader->GetLoader("TPCLoader"); - if (!loader) { - Error("Reconstruct", "TPC loader not found"); - return; - } - loader->LoadRecPoints("recreate"); - loader->LoadDigits("read"); - - AliTPCParam* param = GetTPCParam(runLoader); - if (!param) return; - AliTPCclustererMI clusterer(param); - Int_t nEvents = runLoader->GetNumberOfEvents(); - for (Int_t iEvent = 0; iEvent < nEvents; iEvent++) { - runLoader->GetEvent(iEvent); +AliTPCRecoParam * AliTPCReconstructor::fgkRecoParam =0; // reconstruction parameters +Int_t AliTPCReconstructor::fgStreamLevel = 0; // stream (debug) level - TTree* treeClusters = loader->TreeR(); - if (!treeClusters) { - loader->MakeTree("R"); - treeClusters = loader->TreeR(); - } - TTree* treeDigits = loader->TreeD(); - if (!treeDigits) { - Error("Reconstruct", "Can't get digits tree !"); - return; - } - clusterer.SetInput(treeDigits); - clusterer.SetOutput(treeClusters); - clusterer.Digits2Clusters(); - - loader->WriteRecPoints("OVERWRITE"); +AliTPCReconstructor::AliTPCReconstructor(): +AliReconstructor(), +fClusterer(NULL) +{ + // + // default constructor + // + // + // + + AliTPCParam* param = GetTPCParam(); + if (!param) { + AliWarning("Loading default TPC parameters !"); + param = new AliTPCParamSR; } - - loader->UnloadRecPoints(); - loader->UnloadDigits(); + fClusterer = new AliTPCclustererMI(param); } //_____________________________________________________________________________ -void AliTPCReconstructor::Reconstruct(AliRunLoader* runLoader, - AliRawReader* rawReader) const +AliTPCReconstructor::~AliTPCReconstructor() { -// reconstruct clusters from raw data - - AliLoader* loader = runLoader->GetLoader("TPCLoader"); - if (!loader) { - Error("Reconstruct", "TPC loader not found"); - return; - } - loader->LoadRecPoints("recreate"); - - AliTPCParam* param = GetTPCParam(runLoader); - if (!param) return; - AliTPCclustererMI clusterer(param); - - Int_t iEvent = 0; - while (rawReader->NextEvent()) { - runLoader->GetEvent(iEvent++); - - TTree* treeClusters = loader->TreeR(); - if (!treeClusters) { - loader->MakeTree("R"); - treeClusters = loader->TreeR(); - } + if (fgkRecoParam) delete fgkRecoParam; + if (fClusterer) delete fClusterer; +} - clusterer.SetOutput(treeClusters); - clusterer.Digits2Clusters(rawReader); - - loader->WriteRecPoints("OVERWRITE"); - } +//_____________________________________________________________________________ +void AliTPCReconstructor::Reconstruct(TTree* digitsTree, TTree* clustersTree) const { + // single event local reconstruction + // of TPC data + fClusterer->SetInput(digitsTree); + fClusterer->SetOutput(clustersTree); + fClusterer->Digits2Clusters(); +} - loader->UnloadRecPoints(); +//_____________________________________________________________________________ +void AliTPCReconstructor::Reconstruct(AliRawReader* rawReader, TTree* clustersTree) const { + // single event local reconstruction + // of TPC data starting from raw data + TString option = GetOption(); + if (option.Contains("OldRCUFormat")) + fClusterer->SetOldRCUFormat(kTRUE); + + fClusterer->SetOutput(clustersTree); + fClusterer->Digits2Clusters(rawReader); } //_____________________________________________________________________________ -AliTracker* AliTPCReconstructor::CreateTracker(AliRunLoader* runLoader) const +AliTracker* AliTPCReconstructor::CreateTracker() const { // create a TPC tracker - AliTPCParam* param = GetTPCParam(runLoader); - if (!param) return NULL; + AliTPCParam* param = GetTPCParam(); + if (!param) { + AliWarning("Loading default TPC parameters !"); + param = new AliTPCParamSR; + } + param->ReadGeoMatrices(); return new AliTPCtrackerMI(param); } //_____________________________________________________________________________ -void AliTPCReconstructor::FillESD(AliRunLoader* /*runLoader*/, - AliESD* esd) const +void AliTPCReconstructor::FillESD(TTree */*digitsTree*/, TTree */*clustersTree*/, + AliESDEvent* esd) const { // make PID - Double_t parTPC[] = {47., 0.10, 10.}; + Double_t parTPC[] = {47., 0.07, 5.}; AliTPCpidESD tpcPID(parTPC); tpcPID.MakePID(esd); } //_____________________________________________________________________________ -AliTPCParam* AliTPCReconstructor::GetTPCParam(AliRunLoader* runLoader) const +AliTPCParam* AliTPCReconstructor::GetTPCParam() const { // get the TPC parameters - TDirectory* saveDir = gDirectory; - runLoader->CdGAFile(); - - AliTPCParam* param = (AliTPCParam*) gDirectory->Get("75x40_100x60_150x60"); - if (!param) Error("GetTPCParam", "no TPC parameters found"); + AliTPCParam* param = AliTPCcalibDB::Instance()->GetParameters(); - saveDir->cd(); return param; } + + + + +const AliTPCRecoParam* AliTPCReconstructor::GetRecoParam(){ + // + // Get reconstruction parameters + // + + if (!fgkRecoParam) { + // + // 1. try to get reco parameters from OCDB + // + fgkRecoParam = AliTPCcalibDB::Instance()->GetRecoParam(0); + //Info("","Reconstruction parameters from OCDB used"); + // + // 2. If not initialized take default + // + if (!fgkRecoParam){ + fgkRecoParam = AliTPCRecoParam::GetHighFluxParam(); + //Error("","Default reconstruction parameters used"); + } + } + + return fgkRecoParam; +}