ClassImp(AliTPCReconstructor)
-AliTPCRecoParam * AliTPCReconstructor::fgkRecoParam =0; // reconstruction parameters
Int_t AliTPCReconstructor::fgStreamLevel = 0; // stream (debug) level
-AliTPCReconstructor::AliTPCReconstructor(): AliReconstructor() {
+AliTPCReconstructor::AliTPCReconstructor():
+AliReconstructor(),
+fClusterer(NULL)
+{
//
// default constructor
//
- if (!fgkRecoParam) {
- AliError("The Reconstruction parameters nonitialized - Used default one");
- fgkRecoParam = AliTPCRecoParam::GetHighFluxParam();
+ //
+ //
+
+ AliTPCParam* param = GetTPCParam();
+ if (!param) {
+ AliWarning("Loading default TPC parameters !");
+ param = new AliTPCParamSR;
}
+ fClusterer = new AliTPCclustererMI(param);
}
-
//_____________________________________________________________________________
-void AliTPCReconstructor::Reconstruct(AliRunLoader* runLoader) const
+AliTPCReconstructor::~AliTPCReconstructor()
{
-// 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");
- }
-
- loader->UnloadRecPoints();
- loader->UnloadDigits();
+ if (fClusterer) delete fClusterer;
}
//_____________________________________________________________________________
-void AliTPCReconstructor::Reconstruct(AliRunLoader* runLoader,
- AliRawReader* rawReader) const
-{
-// 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) {
- AliWarning("Loading default TPC parameters !");
- param = new AliTPCParamSR;
- }
- AliTPCclustererMI clusterer(param);
+void AliTPCReconstructor::Reconstruct(TTree* digitsTree, TTree* clustersTree) const {
+ // single event local reconstruction
+ // of TPC data
+ fClusterer->SetInput(digitsTree);
+ fClusterer->SetOutput(clustersTree);
+ fClusterer->Digits2Clusters();
+}
- 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;
}
//_____________________________________________________________________________
-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 = 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;
}