#include "AliRunLoader.h"
#include "AliLoader.h"
-#include "AliTRD.h"
#include "AliTRDclusterizer.h"
#include "AliTRDcluster.h"
#include "AliTRDrecPoint.h"
//
fClusterTree = NULL;
- fTRD = 0;
- fEvent = 0;
+ fRecPoints = 0;
fVerbose = 0;
fPar = 0;
//
fClusterTree = NULL;
- fEvent = 0;
+ fRecPoints = 0;
fVerbose = 0;
fPar = 0;
}
//_____________________________________________________________________________
-AliTRDclusterizer::AliTRDclusterizer(const AliTRDclusterizer &c)
+AliTRDclusterizer::AliTRDclusterizer(const AliTRDclusterizer &c):TNamed(c)
{
//
// AliTRDclusterizer copy constructor
// AliTRDclusterizer destructor
//
+ if (fRecPoints) {
+ fRecPoints->Delete();
+ delete fRecPoints;
+ }
}
//_____________________________________________________________________________
//
((AliTRDclusterizer &) c).fClusterTree = NULL;
- ((AliTRDclusterizer &) c).fEvent = 0;
+ ((AliTRDclusterizer &) c).fRecPoints = NULL;
((AliTRDclusterizer &) c).fVerbose = fVerbose;
((AliTRDclusterizer &) c).fPar = 0;
//
// Opens the AliROOT file. Output and input are in the same file
//
- fRunLoader = AliRunLoader::Open(name);
+ TString evfoldname = AliConfig::GetDefaultEventFolderName();
+ fRunLoader = AliRunLoader::GetRunLoader(evfoldname);
+ if (!fRunLoader)
+ fRunLoader = AliRunLoader::Open(name);
if (!fRunLoader)
{
Error("Open","Can not open session for file %s.",name);
//
// Connect the AliRoot file containing Geometry, Kine, and Hits
- fRunLoader->LoadgAlice();
+ if (fRunLoader->GetAliRun() == 0x0) fRunLoader->LoadgAlice();
gAlice = fRunLoader->GetAliRun();
if (!(gAlice)) {
}
}
- fEvent = nEvent;
-
// Import the Trees for the event nEvent in the file
- fRunLoader->GetEvent(fEvent);
+ fRunLoader->GetEvent(nEvent);
- // Get the TRD object
- fTRD = (AliTRD*) gAlice->GetDetector("TRD");
- if (!fTRD) {
- printf("AliTRDclusterizer::OpenInput -- ");
- printf("No TRD detector object found\n");
- return kFALSE;
- }
-
return kTRUE;
}
if ((det >= 0) && (det < AliTRDgeometry::Ndet())) {
- Int_t nRecPoints = fTRD->RecPoints()->GetEntriesFast();
+ Int_t nRecPoints = RecPoints()->GetEntriesFast();
TObjArray *detRecPoints = new TObjArray(400);
for (Int_t i = 0; i < nRecPoints; i++) {
- AliTRDcluster *c = (AliTRDcluster *) fTRD->RecPoints()->UncheckedAt(i);
+ AliTRDcluster *c = (AliTRDcluster *) RecPoints()->UncheckedAt(i);
if (det == c->GetDetector()) {
detRecPoints->AddLast(c);
}
branch->SetAddress(&detRecPoints);
fClusterTree->Fill();
+ delete detRecPoints;
+
return kTRUE;
}
if (det == -1) {
- printf("AliTRDclusterizer::WriteClusters -- ");
- printf("Writing the cluster tree %-18s for event %d.\n"
- ,fClusterTree->GetName(),fEvent);
-
+ Info("WriteClusters","Writing the cluster tree %s for event %d."
+ ,fClusterTree->GetName(),fRunLoader->GetEventNumber());
+ /*
fClusterTree->Write();
-
AliTRDgeometry *geo = fTRD->GetGeometry();
geo->SetName("TRDgeometry");
geo->Write();
- fPar->Write();
-
+ fPar->Write();
+ */
+ AliLoader* loader = fRunLoader->GetLoader("TRDLoader");
+ loader->WriteRecPoints("OVERWRITE");
+
return kTRUE;
}
-
+ /*
AliLoader* loader = fRunLoader->GetLoader("TRDLoader");
loader->WriteDigits("OVERWRITE");
-
+ */
printf("AliTRDclusterizer::WriteClusters -- ");
printf("Unexpected detector index %d.\n",det);
}
+//_____________________________________________________________________________
+void AliTRDclusterizer::AddCluster(Float_t *pos, Int_t det, Float_t amp
+ , Int_t *tracks, Float_t *sig, Int_t iType)
+{
+ //
+ // Add a cluster for the TRD
+ //
+ AliTRDcluster *c = new AliTRDcluster();
+
+ c->SetDetector(det);
+ c->AddTrackIndex(tracks);
+ c->SetQ(amp);
+ c->SetY(pos[0]);
+ c->SetZ(pos[1]);
+ c->SetSigmaY2(sig[0]);
+ c->SetSigmaZ2(sig[1]);
+ c->SetLocalTimeBin(((Int_t) pos[2]));
+
+ switch (iType) {
+ case 0:
+ c->Set2pad();
+ break;
+ case 1:
+ c->Set3pad();
+ break;
+ case 2:
+ c->Set4pad();
+ break;
+ case 3:
+ c->Set5pad();
+ break;
+ case 4:
+ c->SetLarge();
+ break;
+ };
+
+ RecPoints()->Add(c);
+
+}