* provided "as is" without express or implied warranty. *
**************************************************************************/
-/*
-$Log$
-Revision 1.1 2001/05/07 08:08:05 cblume
-Update of TRD code
-
-*/
+/* $Id$ */
///////////////////////////////////////////////////////////////////////////////
// //
#include <TParticle.h>
#include "AliRun.h"
-#include "AliTRD.h"
#include "AliTRDpid.h"
#include "AliTRDcluster.h"
#include "AliTRDtrack.h"
#include "AliTRDtracker.h"
#include "AliTRDgeometry.h"
+#include "AliMC.h"
ClassImp(AliTRDpid)
fPIDindexMin = 0;
fPIDindexMax = 0;
+ fEvent = 0;
+
fThreePadOnly = kFALSE;
}
fGeometry = NULL;
fFileKine = NULL;
+ fEvent = 0;
+
Init();
}
//_____________________________________________________________________________
-AliTRDpid::AliTRDpid(const AliTRDpid &p)
+AliTRDpid::AliTRDpid(const AliTRDpid &p):TNamed(p)
{
//
// AliTRDpid copy constructor
if (fClusterArray) {
fClusterArray->Delete();
delete fClusterArray;
+ fClusterArray = NULL;
}
if (fTrackArray) {
fTrackArray->Delete();
delete fTrackArray;
+ fTrackArray = NULL;
}
- fFileKine->Close();
+ if (fFileKine) {
+ delete fFileKine;
+ fFileKine = NULL;
+ }
}
}
//_____________________________________________________________________________
-void AliTRDpid::Copy(TObject &p)
+void AliTRDpid::Copy(TObject &p) const
{
//
// Copy function
((AliTRDpid &) p).fPIDindexMin = fPIDindexMin;
((AliTRDpid &) p).fPIDindexMax = fPIDindexMax;
((AliTRDpid &) p).fThreePadOnly = fThreePadOnly;
+ ((AliTRDpid &) p).fEvent = fEvent;
}
}
gAlice->GetEvent(event);
- AliTRD *trd = (AliTRD *) gAlice->GetDetector("TRD");
- if (!trd) {
- printf("AliTRDpid::ReadKine -- ");
- printf("No TRD object found\n");
- return kFALSE;
- }
-
- fGeometry = trd->GetGeometry();
+ fGeometry = AliTRDgeometry::GetGeometry(gAlice->GetRunLoader());
if (!fGeometry) {
printf("AliTRDpid::ReadKine -- ");
printf("No TRD geometry found\n");
return kFALSE;
}
+ fEvent = event;
+
return kTRUE;
}
printf("AliTRDpid::ReadCluster -- ");
printf("Open file %s\n",name);
- AliTRDtracker *tracker = new AliTRDtracker("dummy","dummy");
- tracker->ReadClusters(fClusterArray,name);
+ AliTRDtracker *tracker = new AliTRDtracker();
+ TFile* file = TFile::Open(name);
+ file->cd("Event0");
+ TTree* tree = (TTree*) file->Get("TreeD");
+ tracker->ReadClusters(fClusterArray,tree);
+ file->Close();
+ delete file;
if (!fClusterArray) {
printf("AliTRDpid::ReadCluster -- ");
}
}
- TTree *trackTree = (TTree *) file->Get("TreeT");
+ Char_t treeName[12];
+ sprintf(treeName,"TreeT%d_TRD",fEvent);
+ TTree *trackTree = (TTree *) file->Get(treeName);
TBranch *trackBranch = trackTree->GetBranch("tracks");
Int_t nEntry = ((Int_t) trackTree->GetEntries());
}
// Loop through all clusters associated to this track
- Int_t nCluster = t->GetNclusters();
+ Int_t nCluster = t->GetNumberOfClusters();
for (Int_t iCluster = 0; iCluster < nCluster; iCluster++) {
// Get a cluster
}
// Get the first two MC track indices
- Int_t track0 = cluster->GetTrackIndex(0);
- Int_t track1 = cluster->GetTrackIndex(1);
+ Int_t track0 = cluster->GetLabel(0);
+ Int_t track1 = cluster->GetLabel(1);
// Check on the track index to find the right primaries
if ((track0 > fPIDindexMin) &&
}
if (accept) {
- particle = gAlice->Particle(track0);
+ particle = gAlice->GetMCApp()->Particle(track0);
if (particle->GetFirstMother() == -1) {
switch (TMath::Abs(particle->GetPdgCode())) {
case kPdgEl:
}
// Loop through all clusters associated to this track
- Int_t nCluster = t->GetNclusters();
+ Int_t nCluster = t->GetNumberOfClusters();
for (iCluster = 0; iCluster < nCluster; iCluster++) {
// Get a cluster
// Get the MC track indices
for (iTrack = 0; iTrack < kNtrack; iTrack++) {
- Int_t trackIndex = cluster->GetTrackIndex(iTrack);
+ Int_t trackIndex = cluster->GetLabel(iTrack);
if (trackIndex >= 0) {
- particle = gAlice->Particle(trackIndex);
+ particle = gAlice->GetMCApp()->Particle(trackIndex);
Int_t pdgCode = particle->GetPdgCode();
Bool_t newPart = kTRUE;
for (iPart = 0; iPart < nPart; iPart++) {
}
// Loop through all clusters associated to this track
- Int_t nClus = t->GetNclusters();
+ Int_t nClus = t->GetNumberOfClusters();
for (Int_t iClus = 0; iClus < nClus; iClus++) {
// Get a cluster