X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=TPC%2FAliTPCReconstructor.cxx;h=dbe8d1c13c17b487928b332101feff33ad4a1636;hb=e24b883a27488eaa5eeeca10791b7fe27f25e682;hp=05c4863f62d8460b2c0e7ff707fa1ca333f18ebe;hpb=2c7f22ff59cbb053eb55f3cb40c880aea55bdc22;p=u%2Fmrichter%2FAliRoot.git diff --git a/TPC/AliTPCReconstructor.cxx b/TPC/AliTPCReconstructor.cxx index 05c4863f62d..dbe8d1c13c1 100644 --- a/TPC/AliTPCReconstructor.cxx +++ b/TPC/AliTPCReconstructor.cxx @@ -28,111 +28,85 @@ #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"); +//_____________________________________________________________________________ +void AliTPCReconstructor::Reconstruct(TTree* digitsTree, TTree* clustersTree) const { + // single event local reconstruction + // of TPC data + fClusterer->SetInput(digitsTree); + fClusterer->SetOutput(clustersTree); + fClusterer->Digits2Clusters(); +} - AliTPCParam* param = GetTPCParam(runLoader); - if (!param) { - AliWarning("Loading default TPC parameters !"); - param = new AliTPCParamSR; - } - AliTPCclustererMI clusterer(param); - - TString option = GetOption(); - if (option.Contains("PedestalSubtraction")) - clusterer.SetPedSubtraction(kTRUE); - if (option.Contains("OldRCUFormat")) - clusterer.SetOldRCUFormat(kTRUE); - - 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(AliRawReader* rawReader, TTree* clustersTree) const { + // single event local reconstruction + // of TPC data starting from raw data - loader->UnloadRecPoints(); + fClusterer->SetOutput(clustersTree); + fClusterer->Digits2Clusters(rawReader); } //_____________________________________________________________________________ -AliTracker* AliTPCReconstructor::CreateTracker(AliRunLoader* runLoader) const +AliTracker* AliTPCReconstructor::CreateTracker() const { // create a TPC tracker - AliTPCParam* param = GetTPCParam(runLoader); + AliTPCParam* param = GetTPCParam(); if (!param) { AliWarning("Loading default TPC parameters !"); param = new AliTPCParamSR; @@ -142,30 +116,24 @@ AliTracker* AliTPCReconstructor::CreateTracker(AliRunLoader* runLoader) const } //_____________________________________________________________________________ -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 = AliTPCcalibDB::Instance()->GetParameters(); - - // 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; }