AMSDST
myParticle.h
Go to the documentation of this file.
1 // Authors: M.Duranti - INFN di Perugia
2 #ifndef myParticle_h
3 #define myParticle_h
4 
5 #include "myObject.h"
6 #include "myParticle.h"
7 #include "myMC.h"
8 #include "myBeta.h"
9 #include "myBetaH.h"
10 #include "myTrdTrack.h"
11 #include "myTrdK.h"
12 #include "myTrdQtFromTrTrack.h"
13 #include "myRichRing.h"
14 #include "myEcalShower.h"
15 #include "myTrTrack.h"
16 #include "myTrTrackPlus.h"
17 #include "myEcalShowerPlus.h"
18 #include "myRichRingPlus.h"
19 #include "myBetaPlus.h"
20 #include "myBetaHPlus.h"
21 
22 class myParticle: public myObject {
23  public:
25  myParticle();
27  ~myParticle();
28 
29  myParticle(const myParticle& orig);
30 
31  Float_t Mass;
32  Float_t ErrMass;
33  Float_t Momentum;
34  Float_t ErrMomentum;
35  Float_t Beta;
36  Float_t ErrBeta;
37  Float_t Charge;
38  Float_t Theta;
39  Float_t Phi;
40  Float_t ThetaGl;
41  Float_t PhiGl;
42  Float_t Coo[3];
43  Float_t Cutoff; // (GV)
44  Float_t CutoffS; // (GV)
47 
48  Short_t _iTrTrack;
49  Short_t _iEcalShower;
50  Short_t _iTrdTrack;
51  Short_t _iBeta;
52  Short_t _iBetaH;
53  Short_t _iRichRing;
54  Short_t _iRichRingB;
55  Short_t _iVertex;
56 
57 
59  Int_t BT_result;
61  Int_t BT_status;
62 
63 
64  inline bool HasTrTrack(){ return (_iTrTrack>=0)?true:false; }
65  inline bool HasEcalShower(){ return (_iEcalShower>=0)?true:false; }
66  inline bool HasTrdTrack(){ return (_iTrdTrack>=0)?true:false; }
67  inline bool HasBeta(){ return (_iBeta>=0)?true:false; }
68  inline bool HasBetaH(){ return (_iBetaH>=0)?true:false; }
69  inline bool HasRichRing(){ return (_iRichRing>=0)?true:false; }
70  inline bool HasRichRingB(){ return (_iRichRingB>=0)?true:false; }
71  inline bool HasVertex(){ return (_iVertex>=0)?true:false; }
72 
73  inline Short_t iTrTrack(){ return _iTrTrack ;}
74  inline Short_t iEcalShower(){ return _iEcalShower;}
75  inline Short_t iTrdTrack(){ return _iTrdTrack ;}
76  inline Short_t iBeta(){ return _iBeta ;}
77  inline Short_t iBetaH(){ return _iBetaH ;}
78  inline Short_t iRichRing(){ return _iRichRing ;}
79  inline Short_t iRichRingB(){ return _iRichRingB ;}
80  inline Short_t iVertex(){ return _iVertex ;}
81 
82  //-------------------------------------
83  public:
90 
99 
103  myBeta* pmyBeta();
104  myBetaH* pmyBetaH();
106 
115 
116  inline bool HasmyTrTrack() { return (pmyTrTrack()!=NULL)?true:false; }
117  inline bool HasmyTrdTrack() { return (pmyTrdTrack()!=NULL)?true:false; }
118  inline bool HasmyEcalShower() { return (pmyEcalShower()!=NULL)?true:false; }
119  inline bool HasmyBeta() { return (pmyBeta()!=NULL)?true:false; }
120  inline bool HasmyBetaH() { return (pmyBetaH()!=NULL)?true:false; }
121  inline bool HasmyRichRing() { return (pmyRichRing()!=NULL)?true:false; }
122 
123  inline bool HasmyTrTrackPlus() { return (pmyTrTrackPlus()!=NULL)?true:false; }
124  inline bool HasmyTrdKFromTrTrack() { return (pmyTrdKFromTrTrack()!=NULL)?true:false; }
125  inline bool HasmyTrdKFromTrdTrack() { return (pmyTrdKFromTrdTrack()!=NULL)?true:false; }
126  inline bool HasmyTrdQtFromTrTrack() { return (pmyTrdQtFromTrTrack()!=NULL)?true:false; }
127  inline bool HasmyEcalShowerPlus() { return (pmyEcalShowerPlus()!=NULL)?true:false; }
128  inline bool HasmyBetaPlus() { return (pmyBetaPlus()!=NULL)?true:false; }
129  inline bool HasmyBetaHPlus() { return (pmyBetaHPlus()!=NULL)?true:false; }
130  inline bool HasmyRichRingPlus() { return (pmyRichRingPlus()!=NULL)?true:false; }
131 
132  //-------------------------------------
133 
134  protected:
136  Int_t _isinshadow;
137 
138  public:
139  Int_t isInShadow(myPoint& pt);
140 
141  public:
142  virtual void Clear(Option_t* option="");
143  protected:
144  virtual void init();
145 
146  public:
147  ClassDef(myParticle,8);
148 };
149 
150 #ifdef _WITHGBATCH_
151 
152 class myParticleFiller: public myParticle {
153 
154  friend class myEventFiller;
155 
156  public:
158  myParticleFiller();
160  ~myParticleFiller();
161 
162  public:
163  ParticleR* pp;
164 
165  EcalShowerR* shower;
166 
167  TrdTrackR* trdtrack;
168 
169  RichRingR* ring;
170 
171  RichRingBR* ringb;
172 
173  TrTrackR* track;
174 
175  BetaHR* betah;
176  BetaR* beta;
177 
178  virtual void Fill(ParticleR* _part);
179 
180  public:
181  virtual void Clear(Option_t* option="");
182  protected:
183  virtual void init();
184 
185  public:
186  ClassDef(myParticleFiller,1);
187 };
188 
189 #endif //#ifdef _WITHGBATCH_
190 
191 #endif