- Int_t oldreg = ((TFluka*) gMC)->GetMreg();
- if (oldreg != mreg) {
-//
-// Boundary Crossing
-//
- fluka->SetNewreg(mreg);
- if (oldreg == -1) fluka->SetMreg(mreg);
- if (verbosityLevel >= 3)
- printf("Boundary Crossing %d %d \n", oldreg, mreg);
- } else {
- fluka->SetMreg(mreg);
- fluka->SetNewreg(mreg);
- if (verbosityLevel >= 3)
- printf("Normal step %d %d \n", oldreg, mreg);
+ Int_t mlttc = TRACKR.lt1trk; // LTCLCM.mlatm1;
+ fluka->SetMreg(mreg, mlttc);
+ fluka->SetIcode((FlukaProcessCode_t) icode);
+ fluka->SetCaller(kMGDRAW);
+
+ Int_t nodeId;
+ Int_t volId = fluka->CurrentVolID(nodeId);
+ Int_t crtlttc = gGeoManager->GetCurrentNodeId()+1;
+
+ // check region lattice consistency (debug Ernesto)
+ // *****************************************************
+ if(verbosityLevel>=3 && mreg != volId && !gGeoManager->IsOutside() ) {
+ cout << " mgdraw: track=" << trackId << " pdg=" << fluka->PDGFromId(TRACKR.jtrack)
+ << " icode=" << icode << " gNstep=" << fluka->GetNstep() << endl
+ << " fluka mreg=" << mreg << " mlttc=" << mlttc << endl
+ << " TGeo volId=" << volId << " crtlttc=" << crtlttc << endl
+ << " common TRACKR lt1trk=" << TRACKR.lt1trk << " lt2trk=" << TRACKR.lt2trk << endl
+ << " common LTCLCM newlat=" << LTCLCM.newlat << " mlatld=" << LTCLCM.mlatld << endl
+ << " mlatm1=" << LTCLCM.mlatm1 << " mltsen=" << LTCLCM.mltsen << endl
+ << " mltsm1=" << LTCLCM.mltsm1 << " mlattc=" << LTCLCM.mlattc << endl;
+ if( mlttc == crtlttc ) cout << " *************************************************************" << endl;