3 #include "CLHEP/Units/GlobalSystemOfUnits.h"
10 const G4VTouchable* touch = aStep->GetPreStepPoint()->GetTouchable();
11 return (touch) ? ((touch->GetHistoryDepth()) + 1) : 0;
17 const G4VTouchable* touch = aStep->GetPreStepPoint()->GetTouchable();
19 int i = level -
ii - 1;
20 name[
ii] = touch->GetVolume(i)->GetName();
21 copyno[
ii] = touch->GetReplicaNumber(i);
27 unsigned intindex = 0;
30 LogDebug(
"BHMSim") <<
"BHMNumberingScheme number of levels= " <<
level;
32 int* copyno =
new int[
level];
37 int subdet = copyno[0];
38 int zside = copyno[3];
40 intindex =
packIndex(subdet, zside, station);
41 LogDebug(
"BHMSim") <<
"BHMNumberingScheme : subdet " << subdet <<
" zside " << zside <<
" station " <<
station;
46 LogDebug(
"BHMSim") <<
"BHMNumberingScheme : UnitID 0x" << std::hex << intindex <<
std::dec;
52 unsigned int idx = ((6 << 28) | (subdet & 0x7) << 25);
53 idx |= ((zside & 0x3) << 5) | (station & 0x1F);
54 LogDebug(
"BHMSim") <<
"BHM packing: subdet " << subdet <<
" zside " << zside <<
" station " << station <<
"-> 0x"
60 subdet = (idx >> 25) >> 0x7;
61 zside = (idx >> 5) & 0x3;
63 LogDebug(
"BHMSim") <<
" Bsc unpacking: 0x " << std::hex << idx <<
std::dec <<
" -> subdet " << subdet <<
" zside "
64 << zside <<
" station " <<
station;
static void unpackIndex(const unsigned int &idx, int &subdet, int &zside, int &station)
static unsigned int packIndex(int subdet, int zside, int station)
unsigned int getUnitID(const G4Step *aStep) const
int detectorLevel(const G4Step *) const