10 #include "CLHEP/Units/GlobalSystemOfUnits.h" 29 const G4VTouchable* touch = aStep->GetPreStepPoint()->GetTouchable();
32 level = ((touch->GetHistoryDepth()) + 1);
39 const G4VTouchable* touch = aStep->GetPreStepPoint()->GetTouchable();
42 name[
ii] = touch->GetVolume(
i)->GetName();
43 copyno[
ii] = touch->GetReplicaNumber(
i);
49 unsigned intindex = 0;
57 int* copyno =
new int[
level];
68 for (
int ich = 0; ich <
level; ich++) {
84 if (
name[ich] ==
"FP420E") {
86 }
else if (
name[ich] ==
"HPS240E") {
87 det = copyno[ich] + 2;
88 }
else if (
name[ich] ==
"FP420Ex1" ||
name[ich] ==
"HPS240Ex1") {
92 }
else if (
name[ich] ==
"FP420Ex3" ||
name[ich] ==
"HPS240Ex3") {
94 }
else if (
name[ich] ==
"SISTATION" ||
name[ich] ==
"HPS240SISTATION") {
96 }
else if (
name[ich] ==
"SIPLANE" ||
name[ich] ==
"HPS240SIPLANE") {
106 }
else if (
name[ich] ==
"SENSOR2" ||
name[ich] ==
"HPS240SENSOR2") {
109 zside = 3 * copyno[ich];
110 }
else if (
name[ich] ==
"SENSOR1" ||
name[ich] ==
"HPS240SENSOR1") {
118 <<
"ich=" << ich <<
"copyno" << copyno[ich] <<
"name=" <<
name[ich];
134 <<
" plane=" << plane;
135 for (
int ich = 0; ich <
level; ich++) {
150 unsigned int idx = ((det - 1) & 3) << 19;
161 <<
" plane " << plane <<
" idx " <<
idx;
172 det = (
idx >> 19) & 3;
183 <<
" plane " << plane;
Log< level::Info, true > LogVerbatim
static void unpackFP420Index(const unsigned int &idx, int &det, int &zside, int &station, int &superplane)
virtual int detectorLevel(const G4Step *) const
virtual ~FP420NumberingScheme()
static unsigned int packFP420Index(int det, int zside, int station, int superplane)
virtual unsigned int getUnitID(const G4Step *aStep) const