X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=TPC%2FAliTPCReconstructor.cxx;h=dbe8d1c13c17b487928b332101feff33ad4a1636;hb=6544055e469836e3bf13b3f8f70cb0983c480863;hp=a54a8bec9d58126f37d3e11e1ae573c0459fff5a;hpb=34acb742465d357203a5eee77c7d8acc423a6050;p=u%2Fmrichter%2FAliRoot.git diff --git a/TPC/AliTPCReconstructor.cxx b/TPC/AliTPCReconstructor.cxx index a54a8bec9d5..dbe8d1c13c1 100644 --- a/TPC/AliTPCReconstructor.cxx +++ b/TPC/AliTPCReconstructor.cxx @@ -28,127 +28,112 @@ #include "AliRawReader.h" #include "AliTPCclustererMI.h" #include "AliTPCtrackerMI.h" -#include "AliTPCpidESD.h" - +//#include "AliTPCpidESD.h" +#include "AliTPCParam.h" +#include "AliTPCParamSR.h" +#include "AliTPCcalibDB.h" +#include "AliTracker.h" +#include "AliMagF.h" ClassImp(AliTPCReconstructor) -Double_t AliTPCReconstructor::fgCtgRange = 1.05; -Double_t AliTPCReconstructor::fgMaxSnpTracker = 0.95; // max tangent in tracker - correspond to 3 -Double_t AliTPCReconstructor::fgMaxSnpTrack = 0.999; // tangent -Int_t AliTPCReconstructor::fgStreamLevel = 0; // stream (debug) level -//_____________________________________________________________________________ -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); - - 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"); +Int_t AliTPCReconstructor::fgStreamLevel = 1; // stream (debug) level +AliTPCAltroEmulator * AliTPCReconstructor::fAltroEmulator=0; // ALTRO emulator + +AliTPCReconstructor::AliTPCReconstructor(): +AliReconstructor(), +fClusterer(NULL) +{ + // + // default constructor + // + // + // + AliTPCcalibDB * calib = AliTPCcalibDB::Instance(); + const AliMagF * field = (AliMagF*)TGeoGlobalMagField::Instance()->GetField(); + calib->SetExBField(field); + AliTPCParam* param = GetTPCParam(); + if (!param) { + AliWarning("Loading default TPC parameters !"); + param = new AliTPCParamSR; } + fClusterer = new AliTPCclustererMI(param); +} + +AliTPCReconstructor::AliTPCReconstructor(const AliTPCReconstructor& /*rec*/): +AliReconstructor(), +fClusterer(NULL) +{ + // + // Dummy copu constructor + // +} - loader->UnloadRecPoints(); - loader->UnloadDigits(); +AliTPCReconstructor& AliTPCReconstructor::operator=(const AliTPCReconstructor&){ + // + // dummy operator + // + return *this; } //_____________________________________________________________________________ -void AliTPCReconstructor::Reconstruct(AliRunLoader* runLoader, - AliRawReader* rawReader) const +AliTPCReconstructor::~AliTPCReconstructor() { -// reconstruct clusters from raw data + if (fClusterer) delete fClusterer; +} - 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(); - } - - 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 + + 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.}; +/* Now done in AliESDpid + Double_t parTPC[] = {50., 0.07, 5.}; // MIP nnormalized to channel 50 -MI 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; }