coding convention
[u/mrichter/AliRoot.git] / PHOS / AliPHOSFastRecParticle.h
1 #ifndef ALIPHOSFASTRECPARTICLE_H
2 #define ALIPHOSFASTRECPARTICLE_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /* $Id$ */
7
8 //_________________________________________________________________________
9 //  A  Particle modified by PHOS response and produced by AliPHOSvFast
10 //  This is also a base class for AliPHOSRecParticle produced by AliPHOSPIDv1
11 //  Defines the particle type
12 //  To become a general class of AliRoot ?    
13 //--               
14 //*-- Author: Yves Schutz (SUBATECH)
15
16 // --- ROOT system ---
17
18 #include "TParticle.h"
19
20 // --- Standard library ---
21
22 // --- AliRoot header files ---
23
24 class AliPHOSFastRecParticle : public TParticle {
25   
26  public:
27   
28   AliPHOSFastRecParticle() ;
29   
30   AliPHOSFastRecParticle(const AliPHOSFastRecParticle & rp) ;  // ctor
31   AliPHOSFastRecParticle(const TParticle & p) ;  // ctor
32   virtual ~AliPHOSFastRecParticle(){ } //dtor
33
34   virtual Int_t DistancetoPrimitive(Int_t px, Int_t py) ; 
35   virtual void Draw(Option_t *option) ;  
36   virtual void ExecuteEvent(Int_t event, Int_t px, Int_t py) ;
37   Int_t GetIndexInList() const { 
38     // returns the index of this in the list
39     return fIndexInList ; 
40   } 
41   virtual const Int_t GetNPrimaries() const {return 0 ;}
42   virtual const TParticle * GetPrimary(Int_t) const  {return 0 ;} 
43   const Int_t GetType() const { 
44     // returns the type of the particle
45     return fType ; 
46   } 
47   
48   void SetPIDBit(UInt_t fSet) {
49     // Set PID bit number fSet
50     fType |= (1<<fSet) ; 
51   } 
52   
53   Bool_t TestPIDBit(UInt_t fTest) const {
54     // Check PID bit number fTest
55     if (fType & (1<<fTest) ) return  kTRUE ;    
56     else return kFALSE ;
57   }
58   
59   Bool_t IsPhoton           (TString purity = "low") const;
60   Bool_t IsPi0              (TString purity = "low") const;
61   Bool_t IsElectron         (TString purity = "low") const;
62   Bool_t IsHardPhoton       () const;
63   Bool_t IsHardPi0          () const;
64   Bool_t IsHadron           () const;
65   Bool_t IsChargedHadron    () const;
66   Bool_t IsNeutralHadron    () const;
67   Bool_t IsFastChargedHadron() const;
68   Bool_t IsSlowChargedHadron() const;
69   Bool_t IsFastNeutralHadron() const;
70   Bool_t IsSlowNeutralHadron() const;
71
72   TString Name() const ; 
73   virtual void Paint(Option_t * option="");
74   virtual void Print() const ; 
75   
76   void SetType(Int_t type) ;
77   
78   void SetIndexInList(Int_t val) { 
79     // sets the value of the index in the list 
80     fIndexInList = val ; 
81   }
82   //This has to disappear
83   enum EParticleType { kUNDEFINED=-1, 
84                        kNEUTRALEMFAST, kNEUTRALHAFAST,  kNEUTRALEMSLOW, kNEUTRALHASLOW, 
85                        kCHARGEDEMFAST, kCHARGEDHAFAST,  kCHARGEDEMSLOW, kCHARGEDHASLOW } ; 
86   
87   typedef TClonesArray  FastRecParticlesList ; 
88   
89  protected:
90
91   Int_t fIndexInList ; // the index of this RecParticle in the list stored in TreeR (to be set by analysis)
92   Int_t fType ;        // particle type obtained by "virtual" reconstruction
93  private:
94
95   ClassDef(AliPHOSFastRecParticle,2)  // Reconstructed Particle produced by the fast simulation 
96
97 };
98
99 #endif // AliPHOSFASTRECPARTICLE_H