New PID in AliPHOSPIDv1
[u/mrichter/AliRoot.git] / PHOS / AliPHOSFastRecParticle.cxx
index 9b9f4e042a9f87f821b25f42a97c6dccc369c818..365e7c32912af11a9abb048b6a708efd141955d4 100644 (file)
  * provided "as is" without express or implied warranty.                  *
  **************************************************************************/
 
  * provided "as is" without express or implied warranty.                  *
  **************************************************************************/
 
+/* $Id$ */
+
 //_________________________________________________________________________
 //_________________________________________________________________________
-// Particle modified by PHOS response to be used by AliPHOSvFast
-//*-- Y. Schutz:   SUBATECH 
-//////////////////////////////////////////////////////////////////////////////
+//  A  Particle modified by PHOS response and produced by AliPHOSvFast
+//  To become a general class of AliRoot ?    
+//               
+//*-- Author: Yves Schutz (SUBATECH)
 
 // --- ROOT system ---
 
 // --- Standard library ---
 
 
 // --- ROOT system ---
 
 // --- Standard library ---
 
-#include <iostream>
+#include <iostream.h>
 
 // --- AliRoot header files ---
 
 
 // --- AliRoot header files ---
 
@@ -35,6 +38,8 @@ ClassImp(AliPHOSFastRecParticle)
 //____________________________________________________________________________
  AliPHOSFastRecParticle::AliPHOSFastRecParticle(const AliPHOSFastRecParticle & rp)
 {
 //____________________________________________________________________________
  AliPHOSFastRecParticle::AliPHOSFastRecParticle(const AliPHOSFastRecParticle & rp)
 {
+  // copy ctor
+
   fType        = rp.fType ; 
   fPdgCode     = rp.fPdgCode;
   fStatusCode  = rp.fStatusCode;
   fType        = rp.fType ; 
   fPdgCode     = rp.fPdgCode;
   fStatusCode  = rp.fStatusCode;
@@ -60,8 +65,10 @@ ClassImp(AliPHOSFastRecParticle)
 //____________________________________________________________________________
  AliPHOSFastRecParticle::AliPHOSFastRecParticle(const TParticle & pp)
 {
 //____________________________________________________________________________
  AliPHOSFastRecParticle::AliPHOSFastRecParticle(const TParticle & pp)
 {
-  TParticle & pnoconst = const_cast<TParticle &>(pp) ;
-  AliPHOSFastRecParticle & p = static_cast<AliPHOSFastRecParticle&>(pnoconst) ;
+  // ctor from a TParticle (crummy?!)
+  TParticle & pnoconst = (TParticle &)(pp) ;
+  AliPHOSFastRecParticle & p = (AliPHOSFastRecParticle &)(pnoconst) ;
 
   fPdgCode     = p.fPdgCode;
   fStatusCode  = p.fStatusCode;
 
   fPdgCode     = p.fPdgCode;
   fStatusCode  = p.fStatusCode;
@@ -84,11 +91,6 @@ ClassImp(AliPHOSFastRecParticle)
   fParticlePDG = p.fParticlePDG; 
 }
 
   fParticlePDG = p.fParticlePDG; 
 }
 
-//____________________________________________________________________________
- AliPHOSFastRecParticle::~AliPHOSFastRecParticle()
-{
-}
-
 //____________________________________________________________________________
 Int_t AliPHOSFastRecParticle::DistancetoPrimitive(Int_t px, Int_t py)
 {
 //____________________________________________________________________________
 Int_t AliPHOSFastRecParticle::DistancetoPrimitive(Int_t px, Int_t py)
 {
@@ -121,8 +123,7 @@ void AliPHOSFastRecParticle::ExecuteEvent(Int_t event, Int_t px, Int_t py)
 {
   //  Execute action corresponding to one event
   //  This member function is called when a AliPHOSFastRecParticle is clicked with the locator
 {
   //  Execute action corresponding to one event
   //  This member function is called when a AliPHOSFastRecParticle is clicked with the locator
-  //
-    
+     
   if (!gPad->IsEditable()) 
     return ;
 
   if (!gPad->IsEditable()) 
     return ;
 
@@ -156,9 +157,24 @@ void AliPHOSFastRecParticle::ExecuteEvent(Int_t event, Int_t px, Int_t py)
   }
 
 }
   }
 
 }
+
+//____________________________________________________________________________
+Int_t * AliPHOSFastRecParticle::GetPrimaries(Int_t & number) 
+{
+  // Retrieves the unique primary particle at the origine of the present reconstruced particle
+
+  number = 1 ; 
+  Int_t * list = new Int_t[1] ;
+  list[0] = fPrimary ; 
+  
+  return list ;
+}
+
 //____________________________________________________________________________
 TString AliPHOSFastRecParticle::Name()
 {
 //____________________________________________________________________________
 TString AliPHOSFastRecParticle::Name()
 {
+  // Returns the name of the particle type
+  
   TString  name ; 
   switch (fType) {
   case kGAMMA:
   TString  name ; 
   switch (fType) {
   case kGAMMA:
@@ -167,20 +183,17 @@ TString AliPHOSFastRecParticle::Name()
    case kELECTRON:
      name = "ELECTRON" ;
     break ; 
    case kELECTRON:
      name = "ELECTRON" ;
     break ; 
-  case kNEUTRAL:
-    name = "NEUTRAL" ;
-    break ; 
-   case kCHARGEDHADRON:
-    name = "CHARGED HADRON" ;
+   case kCHARGED_HA:
+    name = "CHARGED_HA" ;
     break ; 
     break ; 
-  case kNEUTRALHADRON:
-    name = "NEUTRAL HADRON" ; 
+  case kNEUTRAL_HA:
+    name = "NEUTRAL_HA" ; 
     break ; 
     break ; 
-  case kNEUTRALEM:
-    name = "NEUTRAL EM" ; 
+  case kNEUTRAL_EM:
+    name = "NEUTRAL_EM" ; 
     break ; 
     break ; 
-  case kGAMMAHADRON:
-    name = "PHOTON HADRON" ; 
+  case kGAMMA_HA:
+    name = "PHOTON_HA" ; 
     break ; 
 
   }
     break ; 
 
   }
@@ -190,27 +203,29 @@ TString AliPHOSFastRecParticle::Name()
 //______________________________________________________________________________
 void AliPHOSFastRecParticle::Paint(Option_t *)
 {
 //______________________________________________________________________________
 void AliPHOSFastRecParticle::Paint(Option_t *)
 {
-// Paint this ALiRecParticle in theta,phi coordinate as a TMarker  with its current attributes
+  // Paint this ALiRecParticle in theta,phi coordinate as a TMarker  with its current attributes
 
   Double_t kRADDEG = 180. / TMath::Pi() ; 
 
   Double_t kRADDEG = 180. / TMath::Pi() ; 
-   Coord_t x = Phi() * kRADDEG     ;
-   Coord_t y = Theta() * kRADDEG     ;
-   Color_t markercolor = 1 ;
-   Size_t  markersize  = 1. ;
-   Style_t markerstyle = 5 ;
-
-   if (!gPad->IsBatch()) {
-     gVirtualX->SetMarkerColor(markercolor) ;
-     gVirtualX->SetMarkerSize (markersize)  ;
-     gVirtualX->SetMarkerStyle(markerstyle) ;
-   }
-   gPad->SetAttMarkerPS(markercolor,markerstyle,markersize) ;
-   gPad->PaintPolyMarker(1,&x,&y,"") ;
+  Coord_t x = Phi() * kRADDEG     ;
+  Coord_t y = Theta() * kRADDEG     ;
+  Color_t markercolor = 1 ;
+  Size_t  markersize  = 1. ;
+  Style_t markerstyle = 5 ;
+  
+  if (!gPad->IsBatch()) {
+    gVirtualX->SetMarkerColor(markercolor) ;
+    gVirtualX->SetMarkerSize (markersize)  ;
+    gVirtualX->SetMarkerStyle(markerstyle) ;
+  }
+  gPad->SetAttMarkerPS(markercolor,markerstyle,markersize) ;
+  gPad->PaintPolyMarker(1,&x,&y,"") ;
 }
 
 //____________________________________________________________________________
 void AliPHOSFastRecParticle::Print()
 {
 }
 
 //____________________________________________________________________________
 void AliPHOSFastRecParticle::Print()
 {
+  // Print the typr, energy and momentum
+  
   cout << "AliPHOSFastRecParticle > " << "type is  " << Name() << endl 
        << "                     " << "Energy = " << fE << endl 
        << "                     " << "Px     = " << fPx << endl 
   cout << "AliPHOSFastRecParticle > " << "type is  " << Name() << endl 
        << "                     " << "Energy = " << fE << endl 
        << "                     " << "Px     = " << fPx << endl