Re: backward endcap time consuming [message #10614 is a reply to message #10613] |
Fri, 30 April 2010 13:44 |
Dima Melnychuk
Messages: 213 Registered: April 2004 Location: National Centre for Nucle...
|
first-grade participant |
From: *fuw.edu.pl
|
|
Hi,
In case of ascii geometry the following part of code works in hit processing, which defines the volume where hit took place
401 if (nam.BeginsWith("emc"))
402 {
403 sscanf(nam,"emc%dr%dc%d", &nMod, &nRow, &nCrys);
404
405 // Crys 1-5000; copyNo 1-20; nRow 1-100, nMod 1-6
406 if ((nMod==1) || (nMod==2))
407 id = gMC->CurrentVolOffID(2,copyNo);
408 if ((nMod==3) || (nMod==4)|| (nMod==6))
409 id = gMC->CurrentVolOffID(1,copyNo);
410 // 1 -because the pad stays inside flayer4 (Emc4), so only "1" as inheritance.
411 // In barrel part one pad stays into Emc1 which stays inside Emc12 (and after Emc12 is
412 // copied and rotated -> the inheritance level is "2"
413 }
whereas the lines 126-389 with a lot of if statements works for root geometry.
And after that from line
432 fVolumeID = nMod*100000000 + nRow*1000000 + copyNo*10000 + nCrys;
and code is universal for ascii and root geometry.
Concerning the warning I have no suggestions at the moment.
Best regards,
Dima
|
|
|