X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=PHOS%2FAliPHOSPID.cxx;h=c6eaaaf7e52fc2e57a8909bc092069133d104784;hb=fc03a1761d78a3455d7308efa0a2f56d2eb168dd;hp=92ea9aca05175548b178c6509464ba20c58edcb0;hpb=7acf600847d7c3706c34409560cce379580d954e;p=u%2Fmrichter%2FAliRoot.git diff --git a/PHOS/AliPHOSPID.cxx b/PHOS/AliPHOSPID.cxx index 92ea9aca051..c6eaaaf7e52 100644 --- a/PHOS/AliPHOSPID.cxx +++ b/PHOS/AliPHOSPID.cxx @@ -27,39 +27,107 @@ // --- ROOT system --- - - +#include "TBranch.h" +#include "TClonesArray.h" +#include "TTree.h" // --- Standard library --- -#include - // --- AliRoot header files --- - +#include "AliConfig.h" +#include "AliLog.h" #include "AliPHOSPID.h" ClassImp(AliPHOSPID) //____________________________________________________________________________ - AliPHOSPID::AliPHOSPID():TTask() +AliPHOSPID::AliPHOSPID(): + TObject(), + fGeom(NULL), + fESD(0x0), + fEMCRecPoints(NULL), + fCPVRecPoints(NULL), + fTrackSegments(NULL), + fRecParticles(NULL) { // ctor - } + + //____________________________________________________________________________ -AliPHOSPID::AliPHOSPID(const char* header,const char * branch ):TTask() +AliPHOSPID::AliPHOSPID(AliPHOSGeometry *geom): + TObject(), + fGeom(geom), + fESD(0x0), + fEMCRecPoints(NULL), + fCPVRecPoints(NULL), + fTrackSegments(NULL), + fRecParticles(NULL) { // ctor - cout << "AliPHOSPID: This constructor should be overwritten! "<< endl ; - abort() ; + fEMCRecPoints = new TObjArray(100) ; + fCPVRecPoints = new TObjArray(100) ; + fRecParticles = new TClonesArray("AliPHOSRecParticle",100) ; + fRecParticles->SetName("RECPARTICLES"); } - - +//____________________________________________________________________________ +AliPHOSPID::AliPHOSPID(const AliPHOSPID & pid) : + TObject(pid), + fGeom(pid.fGeom), + fESD(pid.fESD), + fEMCRecPoints(pid.fEMCRecPoints), + fCPVRecPoints(pid.fCPVRecPoints), + fTrackSegments(pid.fTrackSegments), + fRecParticles(pid.fRecParticles) +{ + // Copy constructor +} //____________________________________________________________________________ AliPHOSPID::~AliPHOSPID() { // dtor + if (fEMCRecPoints) { + fEMCRecPoints->Delete(); + delete fEMCRecPoints; + } + if (fCPVRecPoints) { + fCPVRecPoints->Delete(); + delete fCPVRecPoints; + } + if (fRecParticles) { + fRecParticles->Delete(); + delete fRecParticles; + } +} + +//____________________________________________________________________________ +void AliPHOSPID::SetInput(TTree *clustersTree, TClonesArray *trackSegments) +{ + // Read the clusters tree and creates the + // arrays with the EMC and CPV + // clusters. + // and set the corresponding branch addresses + + fTrackSegments = trackSegments; + + TBranch *emcbranch = clustersTree->GetBranch("PHOSEmcRP"); + if (!emcbranch) { + AliError("can't get the branch with the PHOS EMC clusters !"); + return; + } + emcbranch->SetAddress(&fEMCRecPoints); + fEMCRecPoints->Delete(); + emcbranch->GetEntry(0); + + TBranch *cpvbranch = clustersTree->GetBranch("PHOSCpvRP"); + if (!cpvbranch) { + AliError("can't get the branch with the PHOS CPV clusters !"); + return; + } + cpvbranch->SetAddress(&fCPVRecPoints); + fCPVRecPoints->Delete(); + cpvbranch->GetEntry(0); }