From: schutz Date: Thu, 23 May 2002 15:27:47 +0000 (+0000) Subject: Added 2 methos to retrieve the primary particles X-Git-Url: http://git.uio.no/git/?p=u%2Fmrichter%2FAliRoot.git;a=commitdiff_plain;h=8f3968d82f338aa9ff3429fdccd80aba333138df Added 2 methos to retrieve the primary particles --- diff --git a/PHOS/AliPHOSRecParticle.cxx b/PHOS/AliPHOSRecParticle.cxx index dfd80005d4b..463902b8582 100644 --- a/PHOS/AliPHOSRecParticle.cxx +++ b/PHOS/AliPHOSRecParticle.cxx @@ -31,6 +31,8 @@ // --- AliRoot header files --- #include "AliPHOSRecParticle.h" +#include "AliPHOSGetter.h" +#include "TParticle.h" ClassImp(AliPHOSRecParticle) @@ -66,6 +68,30 @@ ClassImp(AliPHOSRecParticle) } +//____________________________________________________________________________ +const Int_t AliPHOSRecParticle::GetNPrimaries() const +{ + Int_t rv = 0 ; + AliPHOSGetter * gime = AliPHOSGetter::GetInstance() ; + gime->EmcRecPoint(gime->TrackSegment(GetPHOSTSIndex())->GetEmcIndex())->GetPrimaries(rv) ; + return rv ; +} - +//____________________________________________________________________________ +const TParticle * AliPHOSRecParticle::GetPrimary(Int_t index) const +{ + if ( index > GetNPrimaries() ) + cout << "WARNING : AliPHOSRecParticle::GetPrimary -> " << index << " is larger that the number of primaries " + << GetNPrimaries() << endl ; + else { + Int_t dummy ; + AliPHOSGetter * gime = AliPHOSGetter::GetInstance() ; + Int_t primaryindex = gime->EmcRecPoint(gime->TrackSegment(GetPHOSTSIndex())->GetEmcIndex())->GetPrimaries(dummy)[index] ; + if (primaryindex >= 10000000) + cout << "WARNING : AliPHOSRecParticle::GetPrimary -> not a signal primary" << endl ; + else + return gime->Primary(primaryindex) ; + } + return 0 ; +} diff --git a/PHOS/AliPHOSRecParticle.h b/PHOS/AliPHOSRecParticle.h index 55bf1a40190..71e7aa41070 100644 --- a/PHOS/AliPHOSRecParticle.h +++ b/PHOS/AliPHOSRecParticle.h @@ -18,6 +18,7 @@ // --- AliRoot header files --- #include "AliPHOSFastRecParticle.h" +class TParticle ; class AliPHOSRecParticle : public AliPHOSFastRecParticle { @@ -28,6 +29,8 @@ class AliPHOSRecParticle : public AliPHOSFastRecParticle { virtual ~AliPHOSRecParticle(){ } Int_t GetPHOSTSIndex()const { return fPHOSTrackSegment ; } + const Int_t AliPHOSRecParticle::GetNPrimaries() const ; + const TParticle * AliPHOSRecParticle::GetPrimary(Int_t index) const ; void SetTraskSegment(Int_t index){fPHOSTrackSegment = index; } typedef TClonesArray RecParticlesList ;