]>
Commit | Line | Data |
---|---|---|
fa3d1cc7 | 1 | #include <Riostream.h> |
8fd1d27e | 2 | #include "TVirtualMCApplication.h" |
b1b2005d | 3 | #include "TVirtualMCStack.h" |
a7bb59a2 | 4 | |
fa3d1cc7 | 5 | #include "TFluka.h" |
a7bb59a2 | 6 | |
b1b2005d | 7 | // Fluka include |
8 | #include "Fdimpar.h" //(DIMPAR) fluka include | |
9 | #include "Fdblprc.h" //(DBLPRC) fluka common | |
10 | #include "Ftrackr.h" //(TRACKR) fluka common | |
3a625972 | 11 | #include "Fopphst.h" //(OPPHST) fluka common |
3ad1c4d5 | 12 | #include "Fstack.h" //(STACK) fluka common |
b1b2005d | 13 | |
fa3d1cc7 | 14 | #ifndef WIN32 |
15 | # define mgdraw mgdraw_ | |
16 | #else | |
17 | # define mgdraw MGDRAW | |
18 | #endif | |
19 | ||
20 | extern "C" { | |
21 | void mgdraw(Int_t& icode, Int_t& mreg) | |
22 | { | |
b1b2005d | 23 | TFluka* fluka = (TFluka*) gMC; |
fbf08100 | 24 | // Int_t verbosityLevel = fluka->GetVerbosityLevel(); |
b1b2005d | 25 | // |
26 | // Make sure that stack has currrent track Id | |
3a625972 | 27 | Int_t trackId = -1; |
b1b2005d | 28 | TVirtualMCStack* cppstack = fluka->GetStack(); |
3a625972 | 29 | |
30 | if (TRACKR.jtrack == -1) { | |
3ad1c4d5 | 31 | // Optical photons |
32 | // | |
33 | // Try first to get the track ID from the FLUKA stack for optical photons | |
34 | trackId = OPPHST.LOUOPP[OPPHST.LSTOPP]; | |
35 | if (trackId == 0) { | |
36 | // This might be a feedback photon or similar that was put on the VMC stack first | |
37 | trackId = STACK.ispark[STACK.lstack][mkbmx2-1]; | |
38 | } | |
3a625972 | 39 | } else { |
40 | trackId = TRACKR.ispusr[mkbmx2-1]; | |
41 | } | |
42 | ||
b1b2005d | 43 | cppstack->SetCurrentTrack(trackId); |
44 | // | |
45 | // | |
55d6cb0f | 46 | fluka->SetMreg(mreg); |
47 | fluka->SetNewreg(mreg); | |
b1b2005d | 48 | fluka->SetIcode(icode); |
a1f42b9c | 49 | fluka->SetCaller(4); |
50 | ||
fbf08100 | 51 | // if (verbosityLevel >= 3) { |
52 | // cout << endl << " !!! I am in mgdraw - calling Stepping()" << endl; | |
53 | // cout << endl << " Track Id =" << trackId << endl; | |
54 | // } | |
3a625972 | 55 | |
cad96957 | 56 | |
55d6cb0f | 57 | (TVirtualMCApplication::Instance())->Stepping(); |
fbf08100 | 58 | fluka->SetTrackIsNew(kFALSE); |
fa3d1cc7 | 59 | } // end of mgdraw |
60 | } // end of extern "C" | |
61 |