EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
FairEventManager.cxx
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file FairEventManager.cxx
1 //______________________________________________________________________________
7 #include "FairEventManager.h"
8 
9 #include "FairRootManager.h"
10 #include "FairRunAna.h"
11 
12 #include "TEveManager.h"
13 #include "TEveGeoNode.h"
14 #include "TGeoManager.h"
15 #include "TDatabasePDG.h"
16 
18 
19 FairEventManager* FairEventManager::fgRinstance= 0;
20 //_____________________________________________________________________________
22 {
23 
24  return fgRinstance;
25 }
26 //______________________________________________________________________________
28  :TEveEventManager("FairEventManager", ""),
29  fRootManager(FairRootManager::Instance()),
30  fEntry(0),
31  fRunAna(FairRunAna::Instance()),
32  fEvent(0),
33  fPriOnly(kFALSE),
34  fCurrentPDG(0),
35  fMinEnergy(0),
36  fMaxEnergy(25),
37  fEvtMinEnergy(0),
38  fEvtMaxEnergy(10)
39 
40 {
41  fgRinstance=this;
43 }
44 //______________________________________________________________________________
46 {
47  TEveManager::Create();
48  fRunAna->Init();
49  if(gGeoManager) {
50  TGeoNode* N= gGeoManager->GetTopNode();
51  TEveGeoTopNode* TNod=new TEveGeoTopNode(gGeoManager, N);
52  gEve->AddGlobalElement(TNod);
53  gEve->FullRedraw3D(kTRUE);
54  fEvent= gEve->AddEvent(this);
55  }
56 }
57 //______________________________________________________________________________
59 {
60 
61 }
62 //______________________________________________________________________________
64 {
65 }
66 //______________________________________________________________________________
68 {
69 
70 }
71 //______________________________________________________________________________
72 void FairEventManager::GotoEvent(Int_t event)
73 {
74  fEntry=event;
75  fRunAna->Run((Long64_t)event);
76 }
77 //______________________________________________________________________________
79 {
80  fEntry+=1;
81  fRunAna->Run((Long64_t)fEntry);
82 }
83 //______________________________________________________________________________
85 {
86  fEntry-=1;
87  fRunAna->Run((Long64_t)fEntry);
88 }
89 //______________________________________________________________________________
91 {
92 
93 }
94 
95 //______________________________________________________________________________
96 
98 {
99 
100 }
101 
102 //______________________________________________________________________________
104 {
105  switch(pdg) {
106 
107  case 22 :
108  return 623; // photon
109  case -2112 :
110  return 2 ; // anti-neutron
111  case -11 :
112  return 3; // e+
113  case -3122 :
114  return 4; // anti-Lambda
115  case 11 :
116  return 5; // e-
117  case -3222 :
118  return 6; // Sigma-
119  case 12 :
120  return 7; // e-neutrino (NB: flavour undefined by Geant)
121  case -3212 :
122  return 8; // Sigma0
123  case -13 :
124  return 9; // mu+
125  case -3112 :
126  return 10; // Sigma+ (PB)*/
127  case 13 :
128  return 11; // mu-
129  case -3322 :
130  return 12; // Xi0
131  case 111 :
132  return 13; // pi0
133  case -3312 :
134  return 14; // Xi+
135  case 211 :
136  return 15; // pi+
137  case -3334 :
138  return 16; // Omega+ (PB)
139  case -211 :
140  return 17; // pi-
141  case -15 :
142  return 18; // tau+
143  case 130 :
144  return 19; // K long
145  case 15 :
146  return 20; // tau-
147  case 321 :
148  return 21; // K+
149  case 411 :
150  return 22; // D+
151  case -321 :
152  return 23; // K-
153  case -411 :
154  return 24; // D-
155  case 2112 :
156  return 25; // n
157  case 421 :
158  return 26; // D0
159  case 2212 :
160  return 27; // p
161  case -421 :
162  return 28; // D0
163  case -2212 :
164  return 29; // anti-proton
165  case 431 :
166  return 30; // Ds+
167  case 310 :
168  return 31; // K short
169  case -431 :
170  return 32; // anti Ds-
171  case 221 :
172  return 33; // eta
173  case 4122 :
174  return 34; // Lamba_c+
175  case 3122 :
176  return 35; // Lambda
177  case 24 :
178  return 36; // W+
179  case 3222 :
180  return 37; // Sigma+
181  case -24 :
182  return 38; // W-
183  case 3212 :
184  return 39; // Sigma0
185  case 23 :
186  return 40; // Z
187  case 3112 :
188  return 41; // Sigma-
189  case 3322 :
190  return 42; // Xi0
191  case 3312 :
192  return 43; // Xi-
193  case 3334 :
194  return 44; // Omega- (PB)
195  case 50000050 :
196  return 801; // Cerenkov
197  case 1000010020 :
198  return 45;
199  case 1000010030 :
200  return 48;
201  case 1000020040 :
202  return 50;
203  case 1000020030 :
204  return 55;
205  default :
206  return 0;
207 
208  }
209 
210 
211 }
212 //______________________________________________________________________________
213 
215 {
216 
217 //
218 // Add particles to the PDG data base
219 
220  TDatabasePDG* pdgDB = TDatabasePDG::Instance();
221 
222  const Double_t kAu2Gev=0.9314943228;
223  const Double_t khSlash = 1.0545726663e-27;
224  const Double_t kErg2Gev = 1/1.6021773349e-3;
225  const Double_t khShGev = khSlash*kErg2Gev;
226  const Double_t kYear2Sec = 3600*24*365.25;
227 
228 // Ions
229 //
230 
231  if ( !pdgDB->GetParticle(1000010020) )
232  pdgDB->AddParticle("Deuteron","Deuteron",2*kAu2Gev+8.071e-3,kTRUE,
233  0,3,"Ion",1000010020);
234 
235  if ( !pdgDB->GetParticle(1000010030) )
236  pdgDB->AddParticle("Triton","Triton",3*kAu2Gev+14.931e-3,kFALSE,
237  khShGev/(12.33*kYear2Sec),3,"Ion",1000010030);
238 
239  if ( !pdgDB->GetParticle(1000020040) )
240  pdgDB->AddParticle("Alpha","Alpha",4*kAu2Gev+2.424e-3,kTRUE,
241  khShGev/(12.33*kYear2Sec),6,"Ion",1000020040);
242 
243  if ( !pdgDB->GetParticle(1000020030) )
244  pdgDB->AddParticle("HE3","HE3",3*kAu2Gev+14.931e-3,kFALSE,
245  0,6,"Ion",1000020030);
246 
247 // Special particles
248 //
249  if ( !pdgDB->GetParticle(50000050) )
250  pdgDB->AddParticle("Cherenkov","Cherenkov",0,kFALSE,
251  0,0,"Special",50000050);
252 
253  if ( !pdgDB->GetParticle(50000051) )
254  pdgDB->AddParticle("FeedbackPhoton","FeedbackPhoton",0,kFALSE,
255  0,0,"Special",50000051);
256 
257 }