Line data Source code
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 : /* History of cvs commits:
9 : *
10 : * $Log$
11 : * Revision 1.36 2005/05/28 14:19:04 schutz
12 : * Compilation warnings fixed by T.P.
13 : *
14 : */
15 :
16 : //_________________________________________________________________________
17 : // A Particle modified by PHOS response and produced by AliPHOSvFast
18 : // This is also a base class for AliPHOSRecParticle produced by AliPHOSPIDv1
19 : // Defines the particle type
20 : // To become a general class of AliRoot ?
21 : //--
22 : //*-- Author: Yves Schutz (SUBATECH)
23 :
24 : // --- ROOT system ---
25 :
26 : class TClonesArray;
27 : #include "TParticle.h"
28 : #include "AliPID.h"
29 : // --- Standard library ---
30 :
31 : // --- AliRoot header files ---
32 :
33 : class AliPHOSFastRecParticle : public TParticle {
34 :
35 : public:
36 :
37 : AliPHOSFastRecParticle() ;
38 :
39 : AliPHOSFastRecParticle(const AliPHOSFastRecParticle & rp) ; // ctor
40 : AliPHOSFastRecParticle(const TParticle & p) ; // ctor
41 8 : virtual ~AliPHOSFastRecParticle(){ } //dtor
42 : AliPHOSFastRecParticle & operator = (const AliPHOSFastRecParticle & /*rp*/);
43 :
44 : virtual Int_t DistancetoPrimitive(Int_t px, Int_t py) ;
45 : virtual void Draw(Option_t *option) ;
46 : virtual void ExecuteEvent(Int_t event, Int_t px, Int_t py) ;
47 : Int_t GetIndexInList() const {
48 : // returns the index of this in the list
49 0 : return fIndexInList ;
50 : }
51 0 : virtual Int_t GetNPrimaries() const {return 0 ;}
52 0 : virtual const TParticle * GetPrimary(Int_t) const {return 0 ;}
53 : Int_t GetType() const {
54 : // returns the type of the particle
55 0 : return fType ;
56 : }
57 :
58 : void SetPIDBit(UInt_t fSet) {
59 : // Set PID bit number fSet
60 160 : fType |= (1<<fSet) ;
61 80 : }
62 :
63 : Bool_t TestPIDBit(UInt_t fTest) const {
64 : // Check PID bit number fTest
65 722 : if (fType & (1<<fTest) ) return kTRUE ;
66 82 : else return kFALSE ;
67 268 : }
68 :
69 : Bool_t IsPhoton (TString purity = "low") const;
70 : Bool_t IsPi0 (TString purity = "low") const;
71 : Bool_t IsElectron (TString purity = "low") const;
72 : Bool_t IsHardPhoton () const;
73 : Bool_t IsHardPi0 () const;
74 : Bool_t IsHadron () const;
75 : Bool_t IsChargedHadron () const;
76 : Bool_t IsNeutralHadron () const;
77 : Bool_t IsFastChargedHadron() const;
78 : Bool_t IsSlowChargedHadron() const;
79 : Bool_t IsFastNeutralHadron() const;
80 : Bool_t IsSlowNeutralHadron() const;
81 : Bool_t IsEleCon(TString purity = "low") const;
82 :
83 : TString Name() const ;
84 : virtual void Paint(Option_t * option="");
85 : virtual void Print(const Option_t * = "") const ;
86 :
87 20 : void SetTof(Float_t tof) { fTof = tof ; }
88 0 : Float_t ToF() const { return fTof ; }
89 : void SetType(Int_t type) ;
90 :
91 : void SetIndexInList(Int_t val) {
92 : // sets the value of the index in the list
93 20 : fIndexInList = val ;
94 10 : }
95 : //This has to disappear
96 : enum EParticleType { kTYPE = 8,
97 : kUNDEFINED=-1,
98 : kNEUTRALEMFAST, kNEUTRALHAFAST, kNEUTRALEMSLOW, kNEUTRALHASLOW,
99 : kCHARGEDEMFAST, kCHARGEDHAFAST, kCHARGEDEMSLOW, kCHARGEDHASLOW } ;
100 :
101 : typedef TClonesArray FastRecParticlesList ;
102 :
103 : protected:
104 :
105 : Int_t fIndexInList ; // the index of this RecParticle in the list stored in TreeR (to be set by analysis)
106 : Float_t fTof ; // time of fliht
107 : Int_t fType ; // particle type obtained by "virtual" reconstruction
108 : Float_t fPID[AliPID::kSPECIESCN] ; // PID probability densities
109 :
110 : private:
111 :
112 22 : ClassDef(AliPHOSFastRecParticle,2) // Reconstructed Particle produced by the fast simulation
113 :
114 : };
115 :
116 : #endif // AliPHOSFASTRECPARTICLE_H
|