49 std::vector<double>& energies,
61 for (
unsigned int i=0; i != 4; i++) energies.push_back( 0. );
70 static const double oneOverDeta = 10.;
71 static const double oneOverDphi = 32./
M_PI;
75 G4StepPoint* pre_step_point = step->GetPreStepPoint();
76 G4StepPoint* post_step_point = step->GetPostStepPoint();
78 G4ThreeVector startPoint = pre_step_point->GetPosition();
79 G4ThreeVector endPoint = post_step_point->GetPosition();
80 G4ThreeVector p = (startPoint + endPoint) * 0.5;
83 G4double
eta = fabs( p.pseudoRapidity() );
84 G4double
phi = p.phi();
92 G4int subdet = ( p.z() > 0.) ? 4 : -4;
93 G4int phiBin = (int) (
phi * oneOverDphi );
94 if (phiBin>63) phiBin=63;
99 G4int sampling = INT_MIN;
100 G4int region = INT_MIN;
101 G4int etaBin = INT_MIN;
106 etaBin = (int) (
eta * oneOverDeta );
108 else if (
eta < 1.5) {
111 etaBin = (int) ( (
eta-1.) * oneOverDeta );
113 else if (
eta < 1.6) {
118 else if (
eta < 1.8) {
121 etaBin = (int) ( (
eta-1.5) * oneOverDeta );
123 else if (
eta < 3.2) {
126 etaBin = (int) ( (
eta-1.3) * oneOverDeta );
147 G4double energy =
accumulate(energies.begin(),energies.end(),0.);
149 <<
" ID=" << std::string(identifier)
150 <<
" energy=" << energy
151 <<
" energies=(" << energies[0]
152 <<
"," << energies[1]
153 <<
"," << energies[2]
154 <<
"," << energies[3] <<
")");