X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=TRD%2FAliTRDReconstructor.cxx;h=fb506015059e20ac5b397203e0976cffc4697982;hb=1e7cdb9577ce7dc33bef26e2620240c5b55ed2a4;hp=74afd72ec9982c5f60e65d765002804a6c65a6ca;hpb=25ca55ce1319759ab4aef50a95d664a47f1cd597;p=u%2Fmrichter%2FAliRoot.git diff --git a/TRD/AliTRDReconstructor.cxx b/TRD/AliTRDReconstructor.cxx index 74afd72ec99..fb506015059 100644 --- a/TRD/AliTRDReconstructor.cxx +++ b/TRD/AliTRDReconstructor.cxx @@ -27,94 +27,49 @@ #include "AliRawReader.h" #include "AliLog.h" #include "AliESDTrdTrack.h" -#include "AliESD.h" +#include "AliESDEvent.h" #include "AliTRDReconstructor.h" -#include "AliTRDclusterizerV1.h" +#include "AliTRDclusterizer.h" #include "AliTRDtracker.h" #include "AliTRDpidESD.h" -#include "AliTRDtrigger.h" -#include "AliTRDtrigParam.h" #include "AliTRDgtuTrack.h" +#include "AliTRDrawData.h" +#include "AliTRDdigitsManager.h" +#include "AliTRDtrackerV1.h" +#include "AliTRDrecoParam.h" ClassImp(AliTRDReconstructor) -Bool_t AliTRDReconstructor::fgkSeedingOn = kFALSE; -Int_t AliTRDReconstructor::fgStreamLevel = 0; // Stream (debug) level +AliTRDrecoParam* AliTRDReconstructor::fgRecoParam = 0x0; //_____________________________________________________________________________ -void AliTRDReconstructor::ConvertDigits(AliRawReader* /*rawReader*/ - , TTree* /*digitsTree*/) const -{ - // - // Convert raw data digits into digit objects in a root tree - // +AliTRDReconstructor::~AliTRDReconstructor() { + if(fgRecoParam) delete fgRecoParam; +} - AliError("conversion of raw data digits into digit objects not implemented"); -} //_____________________________________________________________________________ -void AliTRDReconstructor::Reconstruct(AliRunLoader *runLoader - , AliRawReader *rawReader) const +void AliTRDReconstructor::ConvertDigits(AliRawReader *rawReader + , TTree *digitsTree) const { // - // Reconstruct clusters - // - - AliInfo("Reconstruct TRD clusters from RAW data"); - - AliLoader *loader = runLoader->GetLoader("TRDLoader"); - loader->LoadRecPoints("recreate"); - - runLoader->CdGAFile(); - Int_t nEvents = runLoader->GetNumberOfEvents(); - - for (Int_t iEvent = 0; iEvent < nEvents; iEvent++) { - if (!rawReader->NextEvent()) break; - AliTRDclusterizerV1 clusterer("clusterer","TRD clusterizer"); - clusterer.Open(runLoader->GetFileName(),iEvent); - clusterer.ReadDigits(rawReader); - clusterer.MakeClusters(); - clusterer.WriteClusters(-1); - } - - loader->UnloadRecPoints(); - - // - // Trigger (tracklets, LTU) + // Convert raw data digits into digit objects in a root tree // -// loader->LoadTracks(); -// if (loader->TreeT()) { -// AliError("Tracklets already exist"); -// return; -// } -// AliInfo("Trigger tracklets will be produced"); - -// AliTRDtrigger trdTrigger("Trigger","Trigger class"); - -// AliTRDtrigParam *trigp = new AliTRDtrigParam("TRDtrigParam" -// ,"TRD Trigger parameters"); - -// Float_t field = AliTracker::GetBz() * 0.1; // Tesla -// AliInfo(Form("Trigger set for magnetic field = %f Tesla \n",field)); -// trigp->SetField(field); -// trigp->Init(); -// trdTrigger.SetParameter(trigp); -// rawReader->RewindEvents(); + AliInfo("Convert raw data digits into digit objects [RawReader -> Digit TTree]"); -// for (Int_t iEvent = 0; iEvent < nEvents; iEvent++) { -// if (!rawReader->NextEvent()) break; -// trdTrigger.Open(runLoader->GetFileName(),iEvent); -// trdTrigger.ReadDigits(rawReader); -// trdTrigger.MakeTracklets(); -// trdTrigger.WriteTracklets(-1); -// } - -// loader->UnloadTracks(); + AliTRDrawData rawData; + rawReader->Reset(); + rawReader->Select("TRD"); + AliTRDdigitsManager *manager = rawData.Raw2Digits(rawReader); + manager->MakeBranch(digitsTree); + manager->WriteDigits(); + delete manager; } + //_____________________________________________________________________________ void AliTRDReconstructor::Reconstruct(AliRawReader *rawReader , TTree *clusterTree) const @@ -123,213 +78,57 @@ void AliTRDReconstructor::Reconstruct(AliRawReader *rawReader // Reconstruct clusters // - AliInfo("Reconstruct TRD clusters from RAW data"); - - AliTRDclusterizerV1 clusterer("clusterer","TRD clusterizer"); - clusterer.OpenOutput(clusterTree); - clusterer.ReadDigits(rawReader); - clusterer.MakeClusters(); - clusterer.WriteClusters(-1); - - // - // No trigger, since we don't have the output tree for tracklets - // + AliInfo("Reconstruct TRD clusters from RAW data [RawReader -> Cluster TTree]"); -} -//_____________________________________________________________________________ -void AliTRDReconstructor::Reconstruct(TTree *digitsTree, TTree *clusterTree) const -{ - // - // Reconstruct clusters - // + rawReader->Reset(); + rawReader->Select("TRD"); - AliTRDclusterizerV1 clusterer("clusterer","TRD clusterizer"); + // New (fast) cluster finder + AliTRDclusterizer clusterer("clusterer","TRD clusterizer"); clusterer.OpenOutput(clusterTree); - clusterer.ReadDigits(digitsTree); - clusterer.MakeClusters(); - clusterer.WriteClusters(-1); - - // - // No trigger, since we don't have the output tree for tracklets - // + clusterer.SetAddLabels(kFALSE); + clusterer.Raw2ClustersChamber(rawReader); } //_____________________________________________________________________________ -void AliTRDReconstructor::Reconstruct(AliRunLoader *runLoader) const +void AliTRDReconstructor::Reconstruct(TTree *digitsTree + , TTree *clusterTree) const { // // Reconstruct clusters // - AliLoader *loader = runLoader->GetLoader("TRDLoader"); - loader->LoadRecPoints("recreate"); - - runLoader->CdGAFile(); - Int_t nEvents = runLoader->GetNumberOfEvents(); - - for (Int_t iEvent = 0; iEvent < nEvents; iEvent++) { - AliTRDclusterizerV1 clusterer("clusterer","TRD clusterizer"); - clusterer.Open(runLoader->GetFileName(),iEvent); - clusterer.ReadDigits(); - clusterer.MakeClusters(); - clusterer.WriteClusters(-1); - } - - loader->UnloadRecPoints(); - - // - // Trigger (tracklets, LTU) - // - loader->LoadTracks("RECREATE"); - AliInfo("Trigger tracklets will be produced"); - - AliTRDtrigger trdTrigger("Trigger","Trigger class"); - - AliTRDtrigParam *trigp = new AliTRDtrigParam("TRDtrigParam" - ,"TRD Trigger parameters"); + AliInfo("Reconstruct TRD clusters from Digits [Digit TTree -> Cluster TTree]"); - Float_t field = AliTracker::GetBz() * 0.1; // Tesla - AliInfo(Form("Trigger set for magnetic field = %f Tesla \n",field)); - trigp->SetField(field); - trigp->Init(); - trdTrigger.SetParameter(trigp); - - for (Int_t iEvent = 0; iEvent < nEvents; iEvent++) { - trdTrigger.Open(runLoader->GetFileName(),iEvent); - trdTrigger.ReadDigits(); - trdTrigger.MakeTracklets(); - trdTrigger.WriteTracklets(-1); - } - - loader->UnloadTracks(); + AliTRDclusterizer clusterer("clusterer","TRD clusterizer"); + clusterer.OpenOutput(clusterTree); + clusterer.ReadDigits(digitsTree); + clusterer.MakeClusters(); } //_____________________________________________________________________________ -AliTracker *AliTRDReconstructor::CreateTracker(AliRunLoader *runLoader) const +AliTracker *AliTRDReconstructor::CreateTracker() const { // // Create a TRD tracker // - runLoader->CdGAFile(); + //return new AliTRDtracker(NULL); - return new AliTRDtracker(gFile); - -} - -//_____________________________________________________________________________ -void AliTRDReconstructor::FillESD(AliRunLoader* /*runLoader*/ - , AliRawReader* /*rawReader*/ - , AliESD *esd) const -{ - // - // Make PID - // - - AliTRDpidESD trdPID; - trdPID.MakePID(esd); - - // - // No trigger, since we don't have the output tree for tracklets - // - -} - -//_____________________________________________________________________________ -void AliTRDReconstructor::FillESD(AliRawReader* /*rawReader*/ - , TTree* /*clusterTree*/ - , AliESD *esd) const -{ - // - // Make PID - // - - AliTRDpidESD trdPID; - trdPID.MakePID(esd); - - // - // No trigger, since we don't have the output tree for tracklets - // + return new AliTRDtrackerV1(); } //_____________________________________________________________________________ void AliTRDReconstructor::FillESD(TTree* /*digitsTree*/ , TTree* /*clusterTree*/ - , AliESD *esd) const + , AliESDEvent* /*esd*/) const { // - // Make PID + // Fill ESD // - AliTRDpidESD trdPID; - trdPID.MakePID(esd); - - // - // No trigger, since we don't have the output tree for tracklets - // - -} - -//_____________________________________________________________________________ -void AliTRDReconstructor::FillESD(AliRunLoader *runLoader - , AliESD *esd) const -{ - // - // Make PID - // - - AliTRDpidESD trdPID; - trdPID.MakePID(esd); - - // - // Trigger (tracks, GTU) - // - AliTRDtrigger trdTrigger("Trigger","Trigger class"); - - AliTRDtrigParam *trigp = new AliTRDtrigParam("TRDtrigParam" - ,"TRD Trigger parameters"); - - Float_t field = AliTracker::GetBz() * 0.1; // Tesla - AliInfo(Form("Trigger set for magnetic field = %f Tesla \n",field)); - trigp->SetField(field); - trigp->Init(); - - trdTrigger.SetParameter(trigp); - trdTrigger.SetRunLoader(runLoader); - trdTrigger.Init(); - - Int_t iEvent = runLoader->GetEventNumber(); - runLoader->GetEvent(iEvent); - trdTrigger.ReadTracklets(runLoader); - - AliESDTrdTrack *TrdTrack = new AliESDTrdTrack(); - AliTRDgtuTrack *GtuTrack; - - Int_t nTracks = trdTrigger.GetNumberOfTracks(); - for (Int_t iTrack = 0; iTrack < nTracks; iTrack++) { - - GtuTrack = trdTrigger.GetTrack(iTrack); - - TrdTrack->SetYproj(GtuTrack->GetYproj()); - TrdTrack->SetZproj(GtuTrack->GetZproj()); - TrdTrack->SetSlope(GtuTrack->GetSlope()); - TrdTrack->SetDetector(GtuTrack->GetDetector()); - TrdTrack->SetTracklets(GtuTrack->GetTracklets()); - TrdTrack->SetPlanes(GtuTrack->GetPlanes()); - TrdTrack->SetClusters(GtuTrack->GetClusters()); - TrdTrack->SetPt(GtuTrack->GetPt()); - TrdTrack->SetPhi(GtuTrack->GetPhi()); - TrdTrack->SetEta(GtuTrack->GetEta()); - TrdTrack->SetLabel(GtuTrack->GetLabel()); - TrdTrack->SetPID(GtuTrack->GetPID()); - TrdTrack->SetIsElectron(GtuTrack->IsElectron()); - - esd->AddTrdTrack(TrdTrack); - - } - }