70 std::vector<double>& energies,
81 for (
unsigned int i=0; i != 4; i++) energies.push_back( 0. );
97 constexpr double oneOverDeta = 10.;
98 constexpr double oneOverDphi = 32./
M_PI;
101 G4VPhysicalVolume* physical = step->GetPreStepPoint()->GetPhysicalVolume();
103 G4String volumeName = physical->GetLogicalVolume()->GetName();
105 G4StepPoint* pre_step_point = step->GetPreStepPoint();
106 G4StepPoint* post_step_point = step->GetPostStepPoint();
108 G4ThreeVector startPoint = pre_step_point->GetPosition();
109 G4ThreeVector endPoint = post_step_point->GetPosition();
110 G4ThreeVector p = (startPoint + endPoint) * 0.5;
112 G4double rho = p.perp();
113 G4double
eta = fabs( p.pseudoRapidity() );
114 G4double
phi = p.phi();
119 G4int sampling = INT_MIN;
120 G4int region = INT_MIN;
121 G4int etaBin = INT_MIN;
123 G4int subdet = ( p.z() > 0.) ? 4 : -4;
125 G4int phiBin = (int) (
phi * oneOverDphi );
126 if (phiBin>63) phiBin=0;
128 constexpr double rho12 = 1386.+10.;
137 etaBin = (int) (
eta * oneOverDeta );
143 etaBin = (int) (
eta * oneOverDeta );
146 else if (
eta < 1.5 )
152 etaBin = (int) (
eta * oneOverDeta );
158 etaBin = (int) ( (
eta-1.) * oneOverDeta );
161 else if (
eta < 1.6 )
165 etaBin = (int) ( (
eta-1.5) * oneOverDeta );
167 else if (
eta < 1.8 )
171 etaBin = (int) ( (
eta-1.5) * oneOverDeta );
177 etaBin = (int) ( (
eta-1.3) * oneOverDeta );
184 if (
type == INT_MIN ||
186 sampling == INT_MIN ||
190#if defined (DEBUG_VOLUMES) || defined (DEBUG_HITS)
191 constexpr G4int messageMax = 10;
192 static std::atomic<G4int> messageCount = 0;
193 if ( messageCount++ < messageMax )
195 std::cout <<
"LArG4::BarrelCryostat::CalibrationMixedCalculator::Process"
196 <<
" (error " << messageCount <<
" of " << messageMax <<
" max displayed)"
199 << step->GetPreStepPoint()->GetPhysicalVolume()->GetName()
200 <<
"', using backup calculator"
221 G4double energy =
accumulate(energies.begin(),energies.end(),0.);
222 std::cout <<
"LArG4::BarrelCryostat::CalibrationMixedCalculator::Process"
223 <<
" ID=" << std::string(identifier)
224 <<
" energy=" << energy
225 <<
" energies=(" << energies[0]
226 <<
"," << energies[1]
227 <<
"," << energies[2]
228 <<
"," << energies[3] <<
")"