// --- AliRoot header files ---
#include "AliPHOSRecParticle.h"
+#include "AliPHOSGetter.h"
+#include "TParticle.h"
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 ;
+}
// --- AliRoot header files ---
#include "AliPHOSFastRecParticle.h"
+class TParticle ;
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 ;