New versions of GDC and CDH raw data headers. Some CDH getters are added
[u/mrichter/AliRoot.git] / EMCAL / jetfinder / AliEMCALFastRecParticle.h
1 #ifndef ALIEMCALFASTRECPARTICLE_H
2 #define ALIEMCALFASTRECPARTICLE_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 EMCAL response and produced by AliEMCALvFast
10 //  To become a general class of AliRoot ?    
11 //               
12 //*-- Author: Yves Schutz (SUBATECH)
13
14 // --- ROOT system ---
15
16 class TClonesArray;
17 #include "TParticle.h"
18
19 // --- Standard library ---
20
21 // --- AliRoot header files ---
22
23 class AliEMCALFastRecParticle : public TParticle {
24   
25  public:
26   
27   AliEMCALFastRecParticle() ;
28   
29   AliEMCALFastRecParticle(const AliEMCALFastRecParticle & rp) ;  // copy ctor
30   AliEMCALFastRecParticle(const TParticle & p) ;  // ctor
31   virtual ~AliEMCALFastRecParticle(){
32     // 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 Int_t GetNPrimaries() const {return 0 ;}
42   virtual const TParticle * GetPrimary(Int_t /*index=0*/) const  {return 0 ;} 
43   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   Bool_t IsEleCon(TString purity = "low") const;  
72
73   TString Name() const ; 
74   virtual void Paint(Option_t * option="");
75   virtual void Print(Option_t * option = "") const ; 
76   
77   void SetType(Int_t type) ;
78   
79   void SetIndexInList(Int_t val) { 
80     // sets the value of the index in the list 
81     fIndexInList = val ; 
82   }
83   //This has to disappear
84   enum EParticleType { kUNDEFINED=-1, 
85                        kNEUTRALEMFAST, kNEUTRALHAFAST,  kNEUTRALEMSLOW, kNEUTRALHASLOW, 
86                        kCHARGEDEMFAST, kCHARGEDHAFAST,  kCHARGEDEMSLOW, kCHARGEDHASLOW } ; 
87   
88   
89   typedef TClonesArray  FastRecParticlesList ; 
90   
91  protected:
92
93   Int_t fIndexInList ; // the index of this RecParticle in the list stored in TreeR (to be set by analysis)
94   Int_t fType ;        // particle type obtained by "virtual" reconstruction
95  private:
96
97
98   ClassDef(AliEMCALFastRecParticle,2)  // Reconstructed Particle produced by the fast simulation 
99
100 };
101
102 #endif // AliEMCALFASTRECPARTICLE_H