AMSDST
myMC.cxx
Go to the documentation of this file.
1 // Authors: M.Duranti - INFN di Perugia
2 #include "myMC.h"
3 #include "debug.h"
4 #include "TClass.h"
5 
6 using namespace std;
7 
8 //--------------------------------------------------------------------
9 
10 ClassImp(myMC);
11 #ifdef _WITHGBATCH_
12 ClassImp(myMCFiller);
13 #endif
14 
15 //--------------------------------------------------------------------
16 
18 #ifdef PDEBUG
19  printf("In myMC::myMC\n");
20 #endif
21  PRINTDEBUG;
22  init();
23  PRINTDEBUG;
24 }
25 
27 #ifdef PDEBUG
28  printf("In myMC::~myMC\n");
29 #endif
30  PRINTDEBUG;
31  Clear();
32 }
33 
34 void myMC::Clear(Option_t* option){
35 #ifdef PDEBUG
36  printf("In myMC::Clear\n");
37 #endif
38  PRINTDEBUG;
39  Momentum=0;
40  MomentumSigned = 1.0;//in this way the sign of gmomsigned*rigidity: IS the sign of rigidity on Data, gives good/wrong reconstucted sign on MC
41  Charge = 0;
42 
43  PRINTDEBUG;
44 
45  fill_n(Coo, 3, 0);
46  fill_n(Dir, 3, 0);
47  PRINTDEBUG;
48  PRINTDEBUG;
49 
50  Theta=-999999;
51  costheta=+0.000001;
52  cossqtheta=-0.000001;
53  sintheta=-999999;
54  Phi=-999999;
55  sinphi=-999999;
56  PRINTDEBUG;
57  return;
58 }
59 
60 void myMC::init(){
61 #ifdef PDEBUG
62  printf("In myMC::init\n");
63 #endif
64  PRINTDEBUG;
65  Clear();
66  PRINTDEBUG;
67  return;
68 }
69 
70 #ifdef _WITHGBATCH_
71 
72 myMCFiller::myMCFiller(){
73 #ifdef PDEBUG
74  printf("In myMCFiller::myMCFiller\n");
75 #endif
76  PRINTDEBUG;
77  init();
78  PRINTDEBUG;
79 }
80 
81 myMCFiller::~myMCFiller(){
82 #ifdef PDEBUG
83  printf("In myMCFiller::~myMCFiller\n");
84 #endif
85  PRINTDEBUG;
86  Clear();
87 }
88 
89 void myMCFiller::Clear(Option_t* option){
90 #ifdef PDEBUG
91  printf("In myMCFiller::Clear\n");
92 #endif
93  PRINTDEBUG;
94  mcevent=0;
95  PRINTDEBUG;
96  return;
97 }
98 
99 void myMCFiller::init(){
100 #ifdef PDEBUG
101  printf("In myMCFiller::init\n");
102 #endif
103  PRINTDEBUG;
104  Clear();
105  PRINTDEBUG;
106  return;
107 }
108 
109 void myMCFiller::Fill(MCEventgR* _mcevent){
110 
111  PRINTDEBUG;
112 
113  mcevent = _mcevent;
114 
115  if (mcevent) {
116 
117  Charge = mcevent->Charge;
118  Momentum = fabs(mcevent->Momentum);
119  MomentumSigned = Charge*Momentum/fabs(Charge);
120 
121  PRINTDEBUG;
122  for(int i_comp=0; i_comp<3; i_comp++){
123  Coo[i_comp]=mcevent->Coo[i_comp];
124  Dir[i_comp]=mcevent->Dir[i_comp];
125  }
126 
127  costheta=mcevent->Dir[2];
128  Theta=TMath::ACos(costheta);
129  cossqtheta=TMath::Power(costheta, 2.0);
130  sintheta=TMath::Sin(Theta);
131  Phi=-1.0*TMath::ATan2(mcevent->Dir[1], -1.0*mcevent->Dir[0]);
132  sinphi=TMath::Sin(Phi);
133 
134  }
135 
136  PRINTDEBUG;
137 
138  return;
139 }
140 
141 #endif //#ifdef _WITHGBATCH_