ROOT logo
#ifndef ALIPHOSFASTRECPARTICLE_H
#define ALIPHOSFASTRECPARTICLE_H
/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */

/* $Id$ */

/* History of cvs commits:
 *
 * $Log$
 * Revision 1.36  2005/05/28 14:19:04  schutz
 * Compilation warnings fixed by T.P.
 *
 */

//_________________________________________________________________________
//  A  Particle modified by PHOS response and produced by AliPHOSvFast
//  This is also a base class for AliPHOSRecParticle produced by AliPHOSPIDv1
//  Defines the particle type
//  To become a general class of AliRoot ?    
//--               
//*-- Author: Yves Schutz (SUBATECH)

// --- ROOT system ---

class TClonesArray;
#include "TParticle.h"
#include "AliPID.h"
// --- Standard library ---

// --- AliRoot header files ---

class AliPHOSFastRecParticle : public TParticle {
  
 public:
  
  AliPHOSFastRecParticle() ;
  
  AliPHOSFastRecParticle(const AliPHOSFastRecParticle & rp) ;  // ctor
  AliPHOSFastRecParticle(const TParticle & p) ;  // ctor
  virtual ~AliPHOSFastRecParticle(){ } //dtor
  AliPHOSFastRecParticle & operator = (const AliPHOSFastRecParticle & /*rp*/);

  virtual Int_t DistancetoPrimitive(Int_t px, Int_t py) ; 
  virtual void Draw(Option_t *option) ;  
  virtual void ExecuteEvent(Int_t event, Int_t px, Int_t py) ;
  Int_t GetIndexInList() const { 
    // returns the index of this in the list
    return fIndexInList ; 
  } 
  virtual Int_t GetNPrimaries() const {return 0 ;}
  virtual const TParticle * GetPrimary(Int_t) const  {return 0 ;} 
  Int_t GetType() const { 
    // returns the type of the particle
    return fType ; 
  } 
  
  void SetPIDBit(UInt_t fSet) {
    // Set PID bit number fSet
    fType |= (1<<fSet) ; 
  } 
  
  Bool_t TestPIDBit(UInt_t fTest) const {
    // Check PID bit number fTest
    if (fType & (1<<fTest) ) return  kTRUE ;	
    else return kFALSE ;
  }
  
  Bool_t IsPhoton           (TString purity = "low") const;
  Bool_t IsPi0              (TString purity = "low") const;
  Bool_t IsElectron         (TString purity = "low") const;
  Bool_t IsHardPhoton       () const;
  Bool_t IsHardPi0          () const;
  Bool_t IsHadron           () const;
  Bool_t IsChargedHadron    () const;
  Bool_t IsNeutralHadron    () const;
  Bool_t IsFastChargedHadron() const;
  Bool_t IsSlowChargedHadron() const;
  Bool_t IsFastNeutralHadron() const;
  Bool_t IsSlowNeutralHadron() const;
  Bool_t IsEleCon(TString purity = "low") const; 

  TString Name() const ; 
  virtual void Paint(Option_t * option="");
  virtual void Print(const Option_t * = "") const ; 
  
  void SetTof(Float_t tof) { fTof = tof ; } 
  Float_t ToF() const { return fTof ; } 
  void SetType(Int_t type) ;
  
  void SetIndexInList(Int_t val) { 
    // sets the value of the index in the list 
    fIndexInList = val ; 
  }
  //This has to disappear
  enum EParticleType { kTYPE = 8, 
                       kUNDEFINED=-1, 
		       kNEUTRALEMFAST, kNEUTRALHAFAST,  kNEUTRALEMSLOW, kNEUTRALHASLOW, 
		       kCHARGEDEMFAST, kCHARGEDHAFAST,  kCHARGEDEMSLOW, kCHARGEDHASLOW } ; 
  
  typedef TClonesArray  FastRecParticlesList ; 
  
 protected:

  Int_t fIndexInList ; // the index of this RecParticle in the list stored in TreeR (to be set by analysis)
  Float_t fTof ;       // time of fliht
  Int_t fType ;        // particle type obtained by "virtual" reconstruction
  Float_t fPID[AliPID::kSPECIESCN] ; // PID probability densities

 private:

  ClassDef(AliPHOSFastRecParticle,2)  // Reconstructed Particle produced by the fast simulation 

};

#endif // AliPHOSFASTRECPARTICLE_H
 AliPHOSFastRecParticle.h:1
 AliPHOSFastRecParticle.h:2
 AliPHOSFastRecParticle.h:3
 AliPHOSFastRecParticle.h:4
 AliPHOSFastRecParticle.h:5
 AliPHOSFastRecParticle.h:6
 AliPHOSFastRecParticle.h:7
 AliPHOSFastRecParticle.h:8
 AliPHOSFastRecParticle.h:9
 AliPHOSFastRecParticle.h:10
 AliPHOSFastRecParticle.h:11
 AliPHOSFastRecParticle.h:12
 AliPHOSFastRecParticle.h:13
 AliPHOSFastRecParticle.h:14
 AliPHOSFastRecParticle.h:15
 AliPHOSFastRecParticle.h:16
 AliPHOSFastRecParticle.h:17
 AliPHOSFastRecParticle.h:18
 AliPHOSFastRecParticle.h:19
 AliPHOSFastRecParticle.h:20
 AliPHOSFastRecParticle.h:21
 AliPHOSFastRecParticle.h:22
 AliPHOSFastRecParticle.h:23
 AliPHOSFastRecParticle.h:24
 AliPHOSFastRecParticle.h:25
 AliPHOSFastRecParticle.h:26
 AliPHOSFastRecParticle.h:27
 AliPHOSFastRecParticle.h:28
 AliPHOSFastRecParticle.h:29
 AliPHOSFastRecParticle.h:30
 AliPHOSFastRecParticle.h:31
 AliPHOSFastRecParticle.h:32
 AliPHOSFastRecParticle.h:33
 AliPHOSFastRecParticle.h:34
 AliPHOSFastRecParticle.h:35
 AliPHOSFastRecParticle.h:36
 AliPHOSFastRecParticle.h:37
 AliPHOSFastRecParticle.h:38
 AliPHOSFastRecParticle.h:39
 AliPHOSFastRecParticle.h:40
 AliPHOSFastRecParticle.h:41
 AliPHOSFastRecParticle.h:42
 AliPHOSFastRecParticle.h:43
 AliPHOSFastRecParticle.h:44
 AliPHOSFastRecParticle.h:45
 AliPHOSFastRecParticle.h:46
 AliPHOSFastRecParticle.h:47
 AliPHOSFastRecParticle.h:48
 AliPHOSFastRecParticle.h:49
 AliPHOSFastRecParticle.h:50
 AliPHOSFastRecParticle.h:51
 AliPHOSFastRecParticle.h:52
 AliPHOSFastRecParticle.h:53
 AliPHOSFastRecParticle.h:54
 AliPHOSFastRecParticle.h:55
 AliPHOSFastRecParticle.h:56
 AliPHOSFastRecParticle.h:57
 AliPHOSFastRecParticle.h:58
 AliPHOSFastRecParticle.h:59
 AliPHOSFastRecParticle.h:60
 AliPHOSFastRecParticle.h:61
 AliPHOSFastRecParticle.h:62
 AliPHOSFastRecParticle.h:63
 AliPHOSFastRecParticle.h:64
 AliPHOSFastRecParticle.h:65
 AliPHOSFastRecParticle.h:66
 AliPHOSFastRecParticle.h:67
 AliPHOSFastRecParticle.h:68
 AliPHOSFastRecParticle.h:69
 AliPHOSFastRecParticle.h:70
 AliPHOSFastRecParticle.h:71
 AliPHOSFastRecParticle.h:72
 AliPHOSFastRecParticle.h:73
 AliPHOSFastRecParticle.h:74
 AliPHOSFastRecParticle.h:75
 AliPHOSFastRecParticle.h:76
 AliPHOSFastRecParticle.h:77
 AliPHOSFastRecParticle.h:78
 AliPHOSFastRecParticle.h:79
 AliPHOSFastRecParticle.h:80
 AliPHOSFastRecParticle.h:81
 AliPHOSFastRecParticle.h:82
 AliPHOSFastRecParticle.h:83
 AliPHOSFastRecParticle.h:84
 AliPHOSFastRecParticle.h:85
 AliPHOSFastRecParticle.h:86
 AliPHOSFastRecParticle.h:87
 AliPHOSFastRecParticle.h:88
 AliPHOSFastRecParticle.h:89
 AliPHOSFastRecParticle.h:90
 AliPHOSFastRecParticle.h:91
 AliPHOSFastRecParticle.h:92
 AliPHOSFastRecParticle.h:93
 AliPHOSFastRecParticle.h:94
 AliPHOSFastRecParticle.h:95
 AliPHOSFastRecParticle.h:96
 AliPHOSFastRecParticle.h:97
 AliPHOSFastRecParticle.h:98
 AliPHOSFastRecParticle.h:99
 AliPHOSFastRecParticle.h:100
 AliPHOSFastRecParticle.h:101
 AliPHOSFastRecParticle.h:102
 AliPHOSFastRecParticle.h:103
 AliPHOSFastRecParticle.h:104
 AliPHOSFastRecParticle.h:105
 AliPHOSFastRecParticle.h:106
 AliPHOSFastRecParticle.h:107
 AliPHOSFastRecParticle.h:108
 AliPHOSFastRecParticle.h:109
 AliPHOSFastRecParticle.h:110
 AliPHOSFastRecParticle.h:111
 AliPHOSFastRecParticle.h:112
 AliPHOSFastRecParticle.h:113
 AliPHOSFastRecParticle.h:114
 AliPHOSFastRecParticle.h:115
 AliPHOSFastRecParticle.h:116