]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PHOS/AliPHOSRecParticle.cxx
removed iostream
[u/mrichter/AliRoot.git] / PHOS / AliPHOSRecParticle.cxx
index dfd80005d4bcfc1541b25b5494dfd120e3ddde51..f37206c0ef8eb61ba89c7f84184ff66b872549a8 100644 (file)
 
 
 // --- AliRoot header files ---
-
+#include "AliHeader.h"
 #include "AliPHOSRecParticle.h"
+#include "AliPHOSGetter.h" 
+#include "TParticle.h"
 
 ClassImp(AliPHOSRecParticle)
 
@@ -41,6 +43,7 @@ ClassImp(AliPHOSRecParticle)
   // copy ctor
 
   fPHOSTrackSegment = rp.fPHOSTrackSegment ; 
+  fDebug            = kFALSE ; 
   fType             = rp.fType ; 
   fIndexInList      = rp.fIndexInList ;
 
@@ -66,6 +69,44 @@ ClassImp(AliPHOSRecParticle)
   
 }
 
+//____________________________________________________________________________
+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 ; 
+}