9 #include "CLHEP/Units/GlobalSystemOfUnits.h"
27 const G4VTouchable* touch = aStep->GetPreStepPoint()->GetTouchable();
29 if (touch) level = ((touch->GetHistoryDepth())+1);
34 int* copyno, G4String*
name)
const {
38 const G4VTouchable* touch = aStep->GetPreStepPoint()->GetTouchable();
39 for (
int ii = 0; ii <
level; ii++) {
40 int i = level - ii - 1;
41 name[ii] = touch->GetVolume(i)->GetName();
42 copyno[ii] = touch->GetReplicaNumber(i);
59 int* copyno =
new int[
level];
70 for (
int ich=0; ich <
level; ich++) {
86 if(name[ich] ==
"FP420E") {
88 }
else if(name[ich] ==
"HPS240E") {
89 det = copyno[ich] + 2 ;
90 }
else if(name[ich] ==
"FP420Ex1" || name[ich] ==
"HPS240Ex1") {
94 }
else if(name[ich] ==
"FP420Ex3" || name[ich] ==
"HPS240Ex3") {
96 }
else if(name[ich] ==
"SISTATION" || name[ich] ==
"HPS240SISTATION") {
98 }
else if(name[ich] ==
"SIPLANE" || name[ich] ==
"HPS240SIPLANE") {
108 }
else if(name[ich] ==
"SENSOR2" || name[ich] ==
"HPS240SENSOR2") {
111 zside = 3 * copyno[ich];
112 }
else if(name[ich] ==
"SENSOR1" || name[ich] ==
"HPS240SENSOR1") {
153 unsigned int idx = ((det-1)&3)<<19;
157 idx += (station&7)<<4;
181 station = (idx>>4)&7;
virtual int detectorLevel(const G4Step *) const
static void unpackFP420Index(const unsigned int &idx, int &det, int &zside, int &station, int &superplane)
virtual ~FP420NumberingScheme()
virtual unsigned int getUnitID(const G4Step *aStep) const
static unsigned int packFP420Index(int det, int zside, int station, int superplane)