]> git.uio.no Git - u/mrichter/AliRoot.git/blame - TFluka/mgdraw.cxx
Stopping introduced.
[u/mrichter/AliRoot.git] / TFluka / mgdraw.cxx
CommitLineData
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
20extern "C" {
21void 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