// --- AliRoot header files ---
-
+#include "AliHeader.h"
#include "AliPHOSRecParticle.h"
+#include "AliPHOSGetter.h"
+#include "TParticle.h"
ClassImp(AliPHOSRecParticle)
// copy ctor
fPHOSTrackSegment = rp.fPHOSTrackSegment ;
+ fDebug = kFALSE ;
fType = rp.fType ;
fIndexInList = rp.fIndexInList ;
}
+//____________________________________________________________________________
+const Int_t AliPHOSRecParticle::GetNPrimaries() const
+{
+ AliHeader *h = gAlice->GetHeader();
+ return h->GetNprimary();
+ // return gAlice->GetNtrack();
+}
+//____________________________________________________________________________
+const Int_t AliPHOSRecParticle::GetNPrimariesToRecParticles() const
+{
+ Int_t rv = 0 ;
+ AliPHOSGetter * gime = AliPHOSGetter::GetInstance() ;
+ Int_t emcRPindex = ((AliPHOSTrackSegment*)gime->TrackSegments()->At(GetPHOSTSIndex()))->GetEmcIndex();
+ ((AliPHOSEmcRecPoint*)gime->EmcRecPoints()->At(emcRPindex))->GetPrimaries(rv) ;
+ return rv ;
+}
+
+//____________________________________________________________________________
+const TParticle * AliPHOSRecParticle::GetPrimary(Int_t index) const
+{
+ if ( index > GetNPrimariesToRecParticles() ) {
+ if (fDebug)
+ Warning("GetPrimary", "%d is larger that the number of primaries %d", index, GetNPrimaries()) ;
+ return 0 ;
+ } else {
+ Int_t dummy ;
+ AliPHOSGetter * gime = AliPHOSGetter::GetInstance() ;
+ Int_t emcRPindex = ((AliPHOSTrackSegment*)gime->TrackSegments()->At(GetPHOSTSIndex()))->GetEmcIndex();
+ Int_t primaryindex = ((AliPHOSEmcRecPoint*)gime->EmcRecPoints()->At(emcRPindex))->GetPrimaries(dummy)[index] ;
+// if (primaryindex >= 10000000) { // it comes from backgroundfile
+// if (fDebug)
+// Warning("GetPrimary","-> not a signal primary") ;
+// return 0 ;
+// } else
+ return gime->Primary(primaryindex) ;
+ }
+ return 0 ;
+}