9 #include "CLHEP/Units/GlobalSystemOfUnits.h"
28 const G4VTouchable* touch = aStep->GetPreStepPoint()->GetTouchable();
30 if (touch) level = ((touch->GetHistoryDepth())+1);
35 int* copyno, G4String*
name)
const {
39 const G4VTouchable* touch = aStep->GetPreStepPoint()->GetTouchable();
41 int i = level -
ii - 1;
42 name[
ii] = touch->GetVolume(i)->GetName();
43 copyno[
ii] = touch->GetReplicaNumber(i);
60 int* copyno =
new int[
level];
71 for (
int ich=0; ich <
level; ich++) {
87 if(name[ich] ==
"FP420E") {
89 }
else if(name[ich] ==
"HPS240E") {
90 det = copyno[ich] + 2 ;
91 }
else if(name[ich] ==
"FP420Ex1" || name[ich] ==
"HPS240Ex1") {
95 }
else if(name[ich] ==
"FP420Ex3" || name[ich] ==
"HPS240Ex3") {
97 }
else if(name[ich] ==
"SISTATION" || name[ich] ==
"HPS240SISTATION") {
99 }
else if(name[ich] ==
"SIPLANE" || name[ich] ==
"HPS240SIPLANE") {
109 }
else if(name[ich] ==
"SENSOR2" || name[ich] ==
"HPS240SENSOR2") {
112 zside = 3 * copyno[ich];
113 }
else if(name[ich] ==
"SENSOR1" || name[ich] ==
"HPS240SENSOR1") {
154 unsigned int idx = ((det-1)&3)<<19;
158 idx += (station&7)<<4;
182 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)