AMSDST
myParticle.cxx
Go to the documentation of this file.
1 // Authors: M.Duranti - INFN di Perugia
2 #include "myParticle.h"
3 
4 #include "myEvent.h"
5 #include "debug.h"
6 #include "TClass.h"
7 
8 #include "myChain.h"
9 
10 using namespace std;
11 
12 //--------------------------------------------------------------------
13 
15 #ifdef _WITHGBATCH_
16 ClassImp(myParticleFiller);
17 #endif //#ifdef _WITHGBATCH_
18 
19 //--------------------------------------------------------------------
20 
21 myParticle::myParticle():_pointSolarArray(nullptr){
22 #ifdef PDEBUG
23  printf("In myParticle::myParticle\n");
24 #endif
25  PRINTDEBUG;
26  init();
27  PRINTDEBUG;
28 }
29 
31 
32  Mass =orig.Mass;
33  ErrMass =orig.ErrMass;
34  Momentum =orig.Momentum;
35  ErrMomentum =orig.ErrMomentum;
36  Beta =orig.Beta;
37  ErrBeta =orig.ErrBeta;
38  Charge =orig.Charge;
39  Theta =orig.Theta;
40  Phi =orig.Phi;
41  ThetaGl =orig.ThetaGl;
42  PhiGl =orig.PhiGl;
43  Coo[0] =orig.Coo[0];
44  Coo[1] =orig.Coo[1];
45  Coo[2] =orig.Coo[2];
46  Cutoff =orig.Cutoff;
47  CutoffS =orig.CutoffS;
49  _iTrTrack =orig._iTrTrack;
51  _iTrdTrack =orig._iTrdTrack;
52  _iBeta =orig._iBeta;
53  _iBetaH =orig._iBetaH;
54  _iRichRing =orig._iRichRing;
55  _iRichRingB =orig._iRichRingB;
56  _iVertex =orig._iVertex;
57 
58  if (orig._pointSolarArray) {
60  }
61  else
62  _pointSolarArray = nullptr;
63  _isinshadow = orig._isinshadow;
64 
65 }
66 
67 
69 #ifdef PDEBUG
70  printf("In myParticle::~myParticle\n");
71 #endif
72  Clear();
73  PRINTDEBUG;
74 }
75 
76 void myParticle::Clear(Option_t* option){
77 #ifdef PDEBUG
78  printf("In myParticle::Clear\n");
79 #endif
80  PRINTDEBUG;
81 
82  Mass = -999999;
83  ErrMass = -999999;
84  Momentum = -999999;
85  ErrMomentum = -999999;
86  Beta = -999999;
87  ErrBeta = -999999;
88  Charge = -999999;
89  Theta = -999999;
90  Phi = -999999;
91  ThetaGl = -999999;
92  PhiGl = -999999;
93  fill_n(Coo, 3, 0);
94  Cutoff = -999999;
95  CutoffS = -999999;
96  RichParticles=-999999;
97  PRINTDEBUG;
98 
99  _iTrTrack = -9999;
100  _iEcalShower = -9999;
101  _iTrdTrack = -9999;
102  _iBeta = -9999;
103  _iBetaH = -9999;
104  _iRichRing = -9999;
105  _iRichRingB = -9999;
106  _iVertex = -9999;
107 
108  PRINTDEBUG;
109 
110 
111  BT_result= -999999;
112  BT_status= -999999;
113 
114  PRINTDEBUG;
115 
118  _isinshadow=-999999;
119 
120  PRINTDEBUG;
121 }
122 
124 #ifdef PDEBUG
125  printf("In myParticle::init\n");
126 #endif
127  PRINTDEBUG;
128  Clear();
129  PRINTDEBUG;
130 }
131 
132 //-------------------------------------------------------------------------
133 
135  PRINTDEBUG;
136  myEvent* mev = myEvent::gethead();
137  PRINTDEBUG;
138  return mev->pmyTrTrackByMySelf(_iTrTrack);
139 }
140 
142  PRINTDEBUG;
143  myEvent* mev = myEvent::gethead();
144  PRINTDEBUG;
145  return mev->pmyEcalShowerByMySelf(_iEcalShower);
146 }
147 
149  PRINTDEBUG;
150  myEvent* mev = myEvent::gethead();
151  PRINTDEBUG;
152  return mev->pmyTrdTrackByMySelf(_iTrdTrack);
153 }
154 
156  PRINTDEBUG;
157  myEvent* mev = myEvent::gethead();
158  PRINTDEBUG;
159  return mev->pmyBetaByMySelf(_iBeta);
160 }
161 
163  PRINTDEBUG;
164  myEvent* mev = myEvent::gethead();
165  PRINTDEBUG;
166  return mev->pmyBetaHByMySelf(_iBetaH);
167 }
168 
170  PRINTDEBUG;
171  myEvent* mev = myEvent::gethead();
172  PRINTDEBUG;
173  return mev->pmyRichRingByMySelf(_iRichRing);
174 }
175 
177  PRINTDEBUG;
178  myEvent* mev = myEvent::gethead();
179  PRINTDEBUG;
180  return mev->pmyTrTrackPlusByMySelf(_iTrTrack);
181 }
182 
184  PRINTDEBUG;
185  myEvent* mev = myEvent::gethead();
186  PRINTDEBUG;
188 }
189 
191  PRINTDEBUG;
192  myEvent* mev = myEvent::gethead();
193  PRINTDEBUG;
194  return mev->pmyTrdKFromTrTrackByMySelf(_iTrTrack);//is indicized as the TrTrack
195 }
197  PRINTDEBUG;
198  myEvent* mev = myEvent::gethead();
199  PRINTDEBUG;
200  return mev->pmyTrdKFromTrdTrackByMySelf(_iTrdTrack);//is indicized as the TrdTrack
201 }
202 
204  PRINTDEBUG;
205  myEvent* mev = myEvent::gethead();
206  PRINTDEBUG;
207  return mev->pmyTrdQtFromTrTrackByMySelf(_iTrTrack);//is indicized as the TrTrack
208 }
209 
211  PRINTDEBUG;
212  myEvent* mev = myEvent::gethead();
213  PRINTDEBUG;
214  return mev->pmyBetaPlusByMySelf(_iBeta);
215 }
216 
218  PRINTDEBUG;
219  myEvent* mev = myEvent::gethead();
220  PRINTDEBUG;
221  return mev->pmyBetaHPlusByMySelf(_iBetaH);
222 }
223 
225  PRINTDEBUG;
226  myEvent* mev = myEvent::gethead();
227  PRINTDEBUG;
228  return mev->pmyRichRingPlusByMySelf(_iRichRing);
229 }
230 
231 //------------------------------------------------------------------
232 
234  PRINTDEBUG;
235  myEvent* mev = myEvent::gethead();
236  PRINTDEBUG;
237  return mev->pmyTrTrack(_iTrTrack);
238 }
239 
241  PRINTDEBUG;
242  myEvent* mev = myEvent::gethead();
243  PRINTDEBUG;
244  return mev->pmyEcalShower(_iEcalShower);
245 }
246 
248  PRINTDEBUG;
249  myEvent* mev = myEvent::gethead();
250  PRINTDEBUG;
251  return mev->pmyTrdTrack(_iTrdTrack);
252 }
253 
255  PRINTDEBUG;
256  myEvent* mev = myEvent::gethead();
257  PRINTDEBUG;
258  return mev->pmyBeta(_iBeta);
259 }
260 
262  PRINTDEBUG;
263  myEvent* mev = myEvent::gethead();
264  PRINTDEBUG;
265  return mev->pmyBetaH(_iBetaH);
266 }
267 
269  PRINTDEBUG;
270  myEvent* mev = myEvent::gethead();
271  PRINTDEBUG;
272  return mev->pmyRichRing(_iRichRing);
273 }
274 
276  PRINTDEBUG;
277  myEvent* mev = myEvent::gethead();
278  PRINTDEBUG;
279  return mev->pmyTrTrackPlus(_iTrTrack);
280 }
281 
283  PRINTDEBUG;
284  myEvent* mev = myEvent::gethead();
285  PRINTDEBUG;
286  return mev->pmyEcalShowerPlus(_iEcalShower);
287 }
288 
290  PRINTDEBUG;
291  myEvent* mev = myEvent::gethead();
292  PRINTDEBUG;
293  return mev->pmyTrdKFromTrTrack(_iTrTrack);//is indicized as the TrTrack
294 }
296  PRINTDEBUG;
297  myEvent* mev = myEvent::gethead();
298  PRINTDEBUG;
299  return mev->pmyTrdKFromTrdTrack(_iTrdTrack);//is indicized as the TrdTrack
300 }
301 
303  PRINTDEBUG;
304  myEvent* mev = myEvent::gethead();
305  PRINTDEBUG;
306  return mev->pmyTrdQtFromTrTrack(_iTrTrack);//is indicized as the TrTrack
307 }
308 
310  PRINTDEBUG;
311  myEvent* mev = myEvent::gethead();
312  PRINTDEBUG;
313  return mev->pmyBetaPlus(_iBeta);
314 }
315 
317  PRINTDEBUG;
318  myEvent* mev = myEvent::gethead();
319  PRINTDEBUG;
320  return mev->pmyBetaHPlus(_iBetaH);
321 }
322 
324  PRINTDEBUG;
325  myEvent* mev = myEvent::gethead();
326  PRINTDEBUG;
327  return mev->pmyRichRingPlus(_iRichRing);
328 }
329 
331 
332  if (_isinshadow)
333  pt = *(_pointSolarArray);
334 
335  return _isinshadow;
336 }
337 
338 //-----------------------------------------------------------------------
339 
340 #ifdef _WITHGBATCH_
341 
342 myParticleFiller::myParticleFiller(){
343 #ifdef PDEBUG
344  printf("In myParticleFiller::myParticleFiller\n");
345 #endif
346  PRINTDEBUG;
347  init();
348  PRINTDEBUG;
349 }
350 
351 myParticleFiller::~myParticleFiller(){
352 #ifdef PDEBUG
353  printf("In myParticleFiller::~myParticleFiller\n");
354 #endif
355  Clear();
356  PRINTDEBUG;
357 }
358 
359 void myParticleFiller::Clear(Option_t* option){
360 #ifdef PDEBUG
361  printf("In myParticleFiller::Clear\n");
362 #endif
363  PRINTDEBUG;
365  PRINTDEBUG;
366  pp = 0;
367  shower = 0;
368  trdtrack = 0;
369  ring = 0;
370  ringb = 0;
371  track = 0;
372  betah = 0;
373  beta = 0;
374  PRINTDEBUG;
375 }
376 
377 void myParticleFiller::init(){
378 #ifdef PDEBUG
379  printf("In myParticleFiller::init\n");
380 #endif
381  PRINTDEBUG;
382  Clear();
383  PRINTDEBUG;
384  return;
385 }
386 
387 void myParticleFiller::Fill(ParticleR* _part){
388 #ifdef PDEBUG
389  printf("In myParticleFiller::Fill\n");
390 #endif
391  PRINTDEBUG;
392 
393  pp = _part;
394 
395  AMSEventR* pev = AMSEventR::Head();
396 
397  if (pp) {
398 
399  PRINTDEBUG;
400 
401  Mass=pp->Mass;
402  ErrMass=pp->ErrMass;
403  Momentum=pp->Momentum;
404  ErrMomentum=pp->ErrMomentum;
405  Beta=pp->Beta;
406  ErrBeta=pp->ErrBeta;
407  Charge=pp->Charge;
408  Theta=pp->Theta;
409  Phi=pp->Phi;
410  ThetaGl=pp->ThetaGl;
411  PhiGl=pp->PhiGl;
412  copy_n( pp->Coo, 3, Coo);
413  Cutoff=pp->Cutoff;
414  CutoffS=pp->CutoffS;
415  RichParticles=pp->RichParticles;
416  PRINTDEBUG;
417 
418  _iTrTrack = pp->iTrTrack();
419  // if (_iTrTrack>1) printf("_iTrTrack = %d\n", _iTrTrack);//only for debug
420  // if (_iTrTrack != (pev->pTrTrack(_iTrTrack))) printf("ParticleR->_iTrTrack()=%d and AMSEventR->pTrTrack(%d) are not pointing to the same TrTrackR...\n", _iTrTrack, _iTrTrack);//only for debug
421  track = pp->pTrTrack();
422 
423  PRINTDEBUG;
424 
425  _iEcalShower = pp->iEcalShower();
426  shower = pp->pEcalShower();
427 
428  PRINTDEBUG;
429 
430  _iTrdTrack = pp->iTrdTrack();
431  trdtrack = pp->pTrdTrack();
432 
433  PRINTDEBUG;
434 
435  _iBeta = pp->iBeta();
436  beta = pp->pBeta();
437 
438  PRINTDEBUG;
439 
440  _iBetaH = pp->iBetaH();
441  betah = pp->pBetaH();
442 
443  PRINTDEBUG;
444 
445  _iRichRing = pp->iRichRing();
446  ring = pp->pRichRing();
447 
448  _iRichRingB = pp->iRichRingB();
449  ringb = pp->pRichRingB();
450 
451  PRINTDEBUG;
452 
453  _iVertex = pp->iVertex();
454 
455  BT_result = pp->BT_result;
456  BT_status = pp->BT_status;
457 
458  PRINTDEBUG;
459 
460  AMSPoint pt;
461  _isinshadow = pev->isInShadow(pt, *pp);
462  if (_isinshadow)
463  _pointSolarArray = new myPoint(pt);
464 
465  }
466 
467  return;
468 }
469 
470 #endif //#ifdef _WITHGBATCH_