]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PHOS/AliPHOSFastRecParticle.h
Threshold for digits in RecPoint introduced
[u/mrichter/AliRoot.git] / PHOS / AliPHOSFastRecParticle.h
CommitLineData
a73f33f0 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
b2a60966 8//_________________________________________________________________________
9// A Particle modified by PHOS response and produced by AliPHOSvFast
10// To become a general class of AliRoot ?
11//
12//*-- Author: Yves Schutz (SUBATECH)
a73f33f0 13
14// --- ROOT system ---
15
16#include "TParticle.h"
17#include "TVector3.h"
18
19// --- Standard library ---
20
21// --- AliRoot header files ---
22
a73f33f0 23class AliPHOSFastRecParticle : public TParticle {
cfeebab6 24
88714635 25 public:
a73f33f0 26
03c03c49 27 AliPHOSFastRecParticle() ;
cfeebab6 28
a73f33f0 29 AliPHOSFastRecParticle(const AliPHOSFastRecParticle & rp) ; // ctor
30 AliPHOSFastRecParticle(const TParticle & p) ; // ctor
88714635 31 virtual ~AliPHOSFastRecParticle(){
32 // dtor
33 }
a73f33f0 34 virtual Int_t DistancetoPrimitive(Int_t px, Int_t py) ;
35 virtual void Draw(Option_t *option) ;
b2a60966 36 virtual void ExecuteEvent(Int_t event, Int_t px, Int_t py) ;
88714635 37 Int_t GetIndexInList() const {
38 // returns the index of this in the list
39 return fIndexInList ;
40 }
794c2bc3 41 virtual const Int_t GetNPrimaries() const {return 0 ;}
42 virtual const TParticle * GetPrimary(Int_t index=0) const {return 0 ;}
7b7c1533 43 const Int_t GetType() const {
88714635 44 // returns the type of the particle
45 return fType ;
46 }
6a40c29e 47
48 void SetPIDBit(UInt_t fSet)
cfeebab6 49 {
50 fType |= (1<<fSet) ;
51 }
52
6a40c29e 53 Bool_t TestPIDBit(UInt_t fTest){
cfeebab6 54 if (fType & (1<<fTest) )
55 return kTRUE ;
56 else
57 return kFALSE ;
58 }
59
a3d4377c 60 Bool_t IsPhotonHiPu_LoEf() {
03c03c49 61 Bool_t pid=kFALSE ;
cfeebab6 62 if(TestPIDBit(8)&& //PCA
63 TestPIDBit(5)&& //TOF
64 TestPIDBit(2)) //RCPV
03c03c49 65 pid = kTRUE;
66 return pid ;
67 }
cfeebab6 68
a3d4377c 69 Bool_t IsPhotonMed_Pu_Ef(){
03c03c49 70 Bool_t pid=kFALSE ;
cfeebab6 71 if(TestPIDBit(7)&& //PCA
72 TestPIDBit(4)&& //TOF
73 TestPIDBit(1)) //RCPV
03c03c49 74 pid = kTRUE ;
75 return pid ;
794c2bc3 76 }
cfeebab6 77
a3d4377c 78 Bool_t IsPhotonHiEf_LoPu() {
03c03c49 79 Bool_t pid=kFALSE ;
80 if(TestPIDBit(6)&& //PCA
cfeebab6 81 TestPIDBit(3)&& //TOF
82 TestPIDBit(0)) //RCPV
03c03c49 83 pid = kTRUE ;
84 return pid ;
85 }
794c2bc3 86 Bool_t IsPhoton() {
a3d4377c 87 Bool_t pid=kFALSE ;
88 if(IsPhotonHiEf_LoPu()) pid = kTRUE ;
89 return pid ;
90 }
794c2bc3 91
92 Bool_t IsFastChargedHadron() {
93 Bool_t pid=kFALSE ;
94 if(TestPIDBit(5)&&TestPIDBit(4)&&TestPIDBit(3)) //TOF
95 pid = kTRUE ;
96 return pid ;
97 }
98 Bool_t IsSlowChargedHadron() {
99 Bool_t pid=kFALSE ;
100 if(TestPIDBit(1)||TestPIDBit(0)) //CPV
101 pid = kTRUE ;
102 return pid ;
103 }
104 Bool_t IsFastNeutralHadron() {
105 Bool_t pid=kFALSE ;
106 if(TestPIDBit(5)&&TestPIDBit(4)&&TestPIDBit(3)&& //TOF
107 TestPIDBit(2)&&TestPIDBit(1)&&TestPIDBit(0))//RCPV
108 pid = kTRUE ;
109 return pid ;
110 }
111 Bool_t IsSlowNeutralHadron() {
112 Bool_t pid=kFALSE ;
113 if(TestPIDBit(2)&&TestPIDBit(1)&&TestPIDBit(0))//RCPV
114 pid = kTRUE ;
115 return pid ;
116 }
a3d4377c 117
794c2bc3 118 Bool_t IsFastChargedEM() {
119 Bool_t pid=kFALSE ;
120 if((TestPIDBit(8)||TestPIDBit(7)||TestPIDBit(6))&&
121 TestPIDBit(5)&&TestPIDBit(4)&&TestPIDBit(3))//TOF
122 pid = kTRUE ;
123 return pid ;
124 }
cfeebab6 125
794c2bc3 126 Bool_t IsSlowChargedEM() {
127 Bool_t pid=kFALSE ;
128 if(TestPIDBit(8)||TestPIDBit(7)||TestPIDBit(6))
129 pid = kTRUE ;
130 return pid ;
131 }
132
a73f33f0 133 TString Name() ;
134 virtual void Paint(Option_t * option="");
2f04ed65 135 virtual void Print(const char * opt) ;
6a40c29e 136
88714635 137 void SetType(Int_t type) {
138 // sets the particle type
139 fType = type ;
6a40c29e 140 }
cfeebab6 141
88714635 142 void SetIndexInList(Int_t val) {
143 // sets the value of the index in the list
144 fIndexInList = val ;
cfeebab6 145 }
146 //This has to disappear
a3d4377c 147 enum EParticleType { kUNDEFINED=-1,
148 kNEUTRALEMFAST, kNEUTRALHAFAST, kNEUTRALEMSLOW, kNEUTRALHASLOW,
149 kCHARGEDEMFAST, kCHARGEDHAFAST, kCHARGEDEMSLOW, kCHARGEDHASLOW } ;
150
cfeebab6 151
c0d5b57d 152 typedef TClonesArray FastRecParticlesList ;
cfeebab6 153
88714635 154 protected:
a73f33f0 155
83974468 156 Int_t fIndexInList ; // the index of this RecParticle in the list stored in TreeR (to be set by analysis)
83974468 157 Int_t fType ; // particle type obtained by "virtual" reconstruction
88714635 158 private:
159
88714635 160
794c2bc3 161 ClassDef(AliPHOSFastRecParticle,2) // Reconstructed Particle produced by the fast simulation
a73f33f0 162
163};
164
165#endif // AliPHOSFASTRECPARTICLE_H