Added 2 methos to retrieve the primary particles
authorschutz <schutz@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 23 May 2002 15:27:47 +0000 (15:27 +0000)
committerschutz <schutz@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 23 May 2002 15:27:47 +0000 (15:27 +0000)
PHOS/AliPHOSRecParticle.cxx
PHOS/AliPHOSRecParticle.h

index dfd80005d4bcfc1541b25b5494dfd120e3ddde51..463902b858268dc124bd743c178a5bb221f347e9 100644 (file)
@@ -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 ; 
+}
index 55bf1a40190afb6f9bacb78a683f0367c6c5b5ca..71e7aa41070f00d37be02b209515f5a802b1f282 100644 (file)
@@ -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 ;