#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 "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;
+
+//_____________________________________________________________________________
+AliTRDReconstructor::~AliTRDReconstructor() {
+ if(fgRecoParam) delete fgRecoParam;
+}
+
+
//_____________________________________________________________________________
void AliTRDReconstructor::ConvertDigits(AliRawReader *rawReader
// Convert raw data digits into digit objects in a root tree
//
+ AliInfo("Convert raw data digits into digit objects [RawReader -> Digit TTree]");
+
AliTRDrawData rawData;
+ rawReader->Reset();
+ rawReader->Select("TRD");
AliTRDdigitsManager *manager = rawData.Raw2Digits(rawReader);
manager->MakeBranch(digitsTree);
manager->WriteDigits();
-
-}
-
-//_____________________________________________________________________________
-void AliTRDReconstructor::Reconstruct(AliRunLoader *runLoader
- , AliRawReader *rawReader) 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();
+ delete manager;
}
// Reconstruct clusters
//
- AliInfo("Reconstruct TRD clusters from RAW data");
+ AliInfo("Reconstruct TRD clusters from RAW data [RawReader -> Cluster TTree]");
+
+ // TODO move it to rec.C. check TPC
+ if (!fgRecoParam) fgRecoParam = AliTRDrecoParam::GetLowFluxParam();
- AliTRDclusterizerV1 clusterer("clusterer","TRD clusterizer");
+ rawReader->Reset();
+ rawReader->Select("TRD");
+
+ // New (fast) cluster finder
+ AliTRDclusterizer clusterer("clusterer","TRD clusterizer");
clusterer.OpenOutput(clusterTree);
- clusterer.ReadDigits(rawReader);
- clusterer.MakeClusters();
+ clusterer.SetAddLabels(kFALSE);
+ clusterer.Raw2ClustersChamber(rawReader);
}
// Reconstruct clusters
//
- AliTRDclusterizerV1 clusterer("clusterer","TRD clusterizer");
+ AliInfo("Reconstruct TRD clusters from Digits [Digit TTree -> Cluster TTree]");
+
+ // TODO move it to rec.C. check TPC
+ if (!fgRecoParam) fgRecoParam = AliTRDrecoParam::GetLowFluxParam();
+
+ AliTRDclusterizer clusterer("clusterer","TRD clusterizer");
clusterer.OpenOutput(clusterTree);
clusterer.ReadDigits(digitsTree);
clusterer.MakeClusters();
}
//_____________________________________________________________________________
-void AliTRDReconstructor::Reconstruct(AliRunLoader *runLoader) 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();
-
-}
-
-//_____________________________________________________________________________
-AliTracker *AliTRDReconstructor::CreateTracker(AliRunLoader *runLoader) const
+AliTracker *AliTRDReconstructor::CreateTracker() const
{
//
// Create a TRD tracker
//
- runLoader->CdGAFile();
-
- return new AliTRDtracker(gFile);
-
-}
-
-//_____________________________________________________________________________
-void AliTRDReconstructor::FillESD(AliRunLoader* /*runLoader*/
- , AliRawReader* /*rawReader*/
- , AliESD *esd) const
-{
- //
- // Make PID
- //
+ //return new AliTRDtracker(NULL);
- AliTRDpidESD trdPID;
- trdPID.MakePID(esd);
-
-}
-
-//_____________________________________________________________________________
-void AliTRDReconstructor::FillESD(AliRawReader* /*rawReader*/
- , TTree* /*clusterTree*/
- , AliESD *esd) const
-{
- //
- // Make PID
- //
-
- AliTRDpidESD trdPID;
- trdPID.MakePID(esd);
+ // TODO move it to rec.C. check TPC
+ if (!fgRecoParam) fgRecoParam = AliTRDrecoParam::GetLowFluxParam();
+ 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);
-
-}
-
-//_____________________________________________________________________________
-void AliTRDReconstructor::FillESD(AliRunLoader* /*runLoader*/
- , AliESD *esd) const
-{
- //
- // Make PID
- //
-
- AliTRDpidESD trdPID;
- trdPID.MakePID(esd);
-
}