90 G4cout <<
"AFP_SensitiveDetector::ProcessHits" << G4endl;
95 int nParticleEncoding=-1;
96 float fKineticEnergy=0.0;
97 float fEnergyDeposit=0.0;
98 float fWaveLength=0.0;
102 float fPostStepX=0.0;
103 float fPostStepY=0.0;
104 float fPostStepZ=0.0;
105 float fGlobalTime=0.0;
112 bool bIsSIDAuxVSID=
false;
115 G4Track* pTrack = pStep->GetTrack();
116 G4ParticleDefinition* pParticleDefinition = pTrack->GetDefinition();
117 G4StepPoint* pPreStepPoint = pStep->GetPreStepPoint();
118 G4StepPoint* pPostStepPoint = pStep->GetPostStepPoint();
119 G4ThreeVector PreStepPointPos = pPreStepPoint->GetPosition();
120 G4ThreeVector PostStepPointPos = pPostStepPoint->GetPosition();
122 nTrackID=pTrack->GetTrackID();
123 fKineticEnergy = pPreStepPoint->GetKineticEnergy();
124 fEnergyDeposit = pStep->GetTotalEnergyDeposit();
126 fPreStepX = PreStepPointPos.x();
127 fPreStepY = PreStepPointPos.y();
128 fPreStepZ = PreStepPointPos.z();
129 fPostStepX = PostStepPointPos.x();
130 fPostStepY = PostStepPointPos.y();
131 fPostStepZ = PostStepPointPos.z();
132 nParticleEncoding = pParticleDefinition->GetPDGEncoding();
136 G4TouchableHandle touch1 = pPreStepPoint->GetTouchableHandle();
137 G4VPhysicalVolume* volume = touch1->GetVolume();
138 G4String VolumeName = volume->GetName();
142 G4cout <<
"hit volume name is " << VolumeName << G4endl;
143 G4cout <<
"particle code is " << nParticleEncoding <<
"kinetic energy " << fKineticEnergy << G4endl;
144 G4cout <<
"global, x_pre: " << fPreStepX <<
", y_pre: " << fPreStepY <<
", z_pre: " << fPreStepZ << G4endl;
145 G4cout <<
"global, x_post: " << fPostStepX <<
", y_post: " << fPostStepY <<
", z_post: " << fPostStepZ << G4endl;
150 memset(&szbuff[0],0,
sizeof(szbuff));
151 strncpy(szbuff,VolumeName.data(),
sizeof(szbuff));
152 szbuff[
sizeof(szbuff)-1] =
'\0';
153 ppv1=strchr(szbuff,
'[');
154 ppv2=strchr(szbuff,
']');
156 G4cout <<
"ERROR: Invalid format of volume name " << VolumeName << G4endl;
161 nStationID=10*(szbuff[3]-0x30)+(szbuff[4]-0x30);
162 nDetectorID=
atoi(ppv1+1);
166 #if G4VERSION_NUMBER < 1100
167 if ( (VolumeName.contains(
"TDSensor")) )
172 nQuarticID=szbuff[7]-0x30;
173 if ( pStep->GetPostStepPoint()->GetProcessDefinedStep() == 0 )
return 1;
174 if ( (pStep->GetPostStepPoint()->GetProcessDefinedStep())->GetProcessName()!=
"OpAbsorption" )
return 1;
176 if (fWaveLength > 800. || fWaveLength < 200.)
return 1;
179 fWaveLength,fPreStepX,fPreStepY,fPreStepZ,fPostStepX,fPostStepY,
180 fPostStepZ,fGlobalTime,nStationID,nDetectorID,(1+2*nQuarticID));
185 #if G4VERSION_NUMBER < 1100
186 if ( (bRes=VolumeName.contains(
"TDQuarticBar[")) )
191 nQuarticID=szbuff[7]-0x30;
200 const G4TouchableHistory* myTouch =
static_cast<const G4TouchableHistory*
>(pPreStepPoint->GetTouchable());
204 const G4AffineTransform transformation = myTouch->GetHistory()->GetTopTransform();
205 G4ThreeVector PreStepPointPos2 = transformation.TransformPoint(PreStepPointPos);
206 G4ThreeVector PostStepPointPos2 = transformation.TransformPoint(PostStepPointPos);
208 G4String shape( myTouch->GetSolid()->GetEntityType() );
210 G4ThreeVector normpX( 1., 0., 0.);
211 G4ThreeVector normnX(-1., 0., 0.);
212 G4ThreeVector normpY( 0., 1., 0.);
213 G4ThreeVector normnY( 0.,-1., 0.);
214 G4ThreeVector normpZ( 0., 0., 1.);
215 G4ThreeVector normnZ( 0., 0.,-1.);
217 G4double PreProtonX = PreStepPointPos2.x();
218 G4double PreProtonY = PreStepPointPos2.y();
219 G4double PreProtonZ = PreStepPointPos2.z();
221 G4double PostProtonX = PostStepPointPos2.x();
222 G4double PostProtonY = PostStepPointPos2.y();
223 G4double PostProtonZ = PostStepPointPos2.z();
225 G4ThreeVector
p0 = pStep->GetDeltaPosition().unit();
227 G4Material*
mat = pStep->GetTrack()->GetMaterial();
228 G4MaterialPropertiesTable *matPropTable =
mat->GetMaterialPropertiesTable();
230 G4MaterialPropertyVector* Rind = matPropTable->GetProperty(
"RINDEX");
232 G4MaterialPropertyVector* Alen = matPropTable->GetProperty(
"ABSLENGTH");
234 const G4double
charge = pParticleDefinition->GetPDGCharge();
235 const G4double
beta = (pPreStepPoint->GetBeta() + pPostStepPoint->GetBeta()) / 2.;
236 G4double BetaInverse = 1. /
beta;
240 #if G4VERSION_NUMBER < 1100
241 G4double Pmin = Rind->GetMinLowEdgeEnergy();
243 G4double Pmax = Rind->GetMaxLowEdgeEnergy();
245 G4double Pmin = Rind->GetMinEnergy();
246 G4double Pmax = Rind->GetMaxEnergy();
248 G4double
dp = Pmax - Pmin;
250 G4double maxCosTheta = BetaInverse / Rind->GetMinValue();
251 G4double maxSin2Theta = (1.0 - maxCosTheta) * (1.0 + maxCosTheta);
254 G4double meanRI = .5*(Rind->GetMinValue() + Rind->GetMaxValue());
258 if (MeanNumberOfPhotons <= 0.0)
return 1;
260 G4double step_length = pStep->GetStepLength();
262 MeanNumberOfPhotons = MeanNumberOfPhotons * step_length *
dp;
263 G4int NumPhotons = (G4int) G4Poisson( MeanNumberOfPhotons );
264 if (NumPhotons <= 0)
return 1;
267 G4int NumPhotonsCuts=0;
268 for (G4int
I = 0;
I < NumPhotons;
I++) {
271 G4double sampledEnergy, sampledRI;
272 G4double cosTheta, sin2Theta;
276 rand = G4UniformRand();
277 sampledEnergy = Pmin +
rand *
dp;
279 sampledRI = Rind->Value(sampledEnergy);
280 cosTheta = BetaInverse / sampledRI;
282 sin2Theta = (1.0 - cosTheta)*(1.0 + cosTheta);
283 rand = G4UniformRand();
285 }
while (
rand * maxSin2Theta > sin2Theta);
288 rand = G4UniformRand();
290 G4double sinPhi =
sin(
phi);
291 G4double cosPhi =
cos(
phi);
296 G4double sinTheta = std::sqrt(sin2Theta);
297 G4double
px = sinTheta*cosPhi;
298 G4double
py = sinTheta*sinPhi;
299 G4double
pz = cosTheta;
300 G4ParticleMomentum photonMomentum(
px,
py,
pz);
301 photonMomentum.rotateUz(
p0);
303 G4double PX = photonMomentum.getX();
304 G4double PY = photonMomentum.getY();
305 G4double PZ = photonMomentum.getZ();
309 G4double PYp = PY/std::sqrt(PX*PX+PY*PY+PZ*PZ);
310 G4double PZp = PZ/std::sqrt(PX*PX+PY*PY+PZ*PZ);
312 G4double PYt = PY/std::sqrt(PY*PY+PZ*PZ);
313 G4double PZt = PZ/std::sqrt(PY*PY+PZ*PZ);
316 cosPhi = (PYp*PYt + PZp*PZt);
321 G4double cosThetaC = std::sqrt(1.-1./sampledRI/sampledRI);
322 if (std::sqrt(1.-cosPhi*cosPhi)>cosThetaC)
continue;
323 if (std::sqrt(1.-cosTheta*cosTheta)*cosPhi>cosThetaC)
continue;
326 rand = G4UniformRand();
327 G4double PhotonX = PreProtonX + (PostProtonX-PreProtonX)*
rand;
328 G4double PhotonY = PreProtonY + (PostProtonY-PreProtonY)*
rand;
329 G4double PhotonZ = PreProtonZ + (PostProtonZ-PreProtonZ)*
rand;
330 G4ThreeVector PhotonPos(PhotonX,PhotonY,PhotonZ);
331 G4double PhotonR = std::sqrt( (PreProtonX-PhotonX)*(PreProtonX-PhotonX) + (PreProtonY-PhotonY)*(PreProtonY-PhotonY) + (PreProtonZ-PhotonZ)*(PreProtonZ-PhotonZ) );
337 Y0 = ((G4ReflectedSolid *)(myTouch->GetSolid()))->DistanceToOut(PhotonPos, normnY);
338 Y0 = Y0/cosTheta/cosPhi;
347 float Pabs = 1. -
exp( - Y0/Alen->Value(sampledEnergy) );
348 rand = G4UniformRand();
349 if (Pabs>
rand)
continue;
352 rand = G4UniformRand();
358 float fGlobalTime2 = fGlobalTime;
364 if (sampledEnergy > (Pmin+.5*
dp)) EdndE = (sampledRI - Rind->Value(sampledEnergy-0.0001*
CLHEP::eV))/0.0001*sampledEnergy/
CLHEP::eV;
365 else EdndE = (Rind->Value(sampledEnergy+0.0001*
CLHEP::eV) - sampledRI)/0.0001*sampledEnergy/
CLHEP::eV;
370 G4cout <<
"FastCher EdndE: " << EdndE << G4endl;
380 int nSensitiveElementID=-1;
381 if(nQuarticID==0) { nSensitiveElementID=1; }
382 else if(nQuarticID==1) { nSensitiveElementID=3; }
385 fWaveLength,PhotonX,PhotonY,PhotonZ,(PhotonX+PX),(PhotonY+PY),(PhotonZ+PZ),
386 fGlobalTime2,nStationID,nDetectorID,nSensitiveElementID);
390 else if(nStationID==0 && nQuarticID==1)
m_nNOfTDSimHits[1][nDetectorID]++;
391 else if(nStationID==3 && nQuarticID==0)
m_nNOfTDSimHits[2][nDetectorID]++;
392 else if(nStationID==3 && nQuarticID==1)
m_nNOfTDSimHits[3][nDetectorID]++;
396 G4cout <<
"FastCher number of photons: " << NumPhotonsCuts << G4endl;
400 #if G4VERSION_NUMBER < 1100
401 else if (VolumeName.contains(
"SIDSensor") || (bIsSIDAuxVSID=VolumeName.contains(
"SIDVacuumSensor"))){
405 if(!bIsSIDAuxVSID && !(fEnergyDeposit>0.0))
414 fPreStepX,fPreStepY,fPreStepZ,fPostStepX,fPostStepY,fPostStepZ,
415 fGlobalTime,nStationID,nDetectorID,bIsSIDAuxVSID,-1,-1);
423 const G4TouchableHistory* myTouch =
static_cast<const G4TouchableHistory*
>(pPreStepPoint->GetTouchable());
428 const G4AffineTransform transformation = myTouch->GetHistory()->GetTopTransform();
429 G4ThreeVector localPosition_pre = transformation.TransformPoint(PreStepPointPos);
430 G4ThreeVector localPosition_post = transformation.TransformPoint(PostStepPointPos);
432 G4ThreeVector normpX( 1., 0., 0.);
433 G4ThreeVector normnX(-1., 0., 0.);
434 G4ThreeVector normpY( 0., 1., 0.);
435 G4ThreeVector normnY( 0.,-1., 0.);
436 G4ThreeVector normpZ( 0., 0., 1.);
437 G4ThreeVector normnZ( 0., 0.,-1.);
439 G4double BarpX = ((G4ReflectedSolid *)(myTouch->GetSolid()))->DistanceToOut(localPosition_pre, normpX);
440 G4double BarnX = ((G4ReflectedSolid *)(myTouch->GetSolid()))->DistanceToOut(localPosition_pre, normnX);
441 G4double BarpY = ((G4ReflectedSolid *)(myTouch->GetSolid()))->DistanceToOut(localPosition_pre, normpY);
442 G4double BarnY = ((G4ReflectedSolid *)(myTouch->GetSolid()))->DistanceToOut(localPosition_pre, normnY);
443 G4double BarpZ = ((G4ReflectedSolid *)(myTouch->GetSolid()))->DistanceToOut(localPosition_pre, normpZ);
444 G4double BarnZ = ((G4ReflectedSolid *)(myTouch->GetSolid()))->DistanceToOut(localPosition_pre, normnZ);
446 G4double BarHalfX = .5 * (BarpX+BarnX);
447 G4double BarHalfY = .5 * (BarpY+BarnY);
448 G4double BarHalfZ = .5 * (BarpZ+BarnZ);
452 G4double x_det = BarHalfX + localPosition_pre.x();
453 G4double y_det = BarHalfY + localPosition_pre.y();
454 G4double z_det = BarHalfZ + localPosition_pre.z();
456 G4double x_det_post = BarHalfX + localPosition_post.x();
457 G4double y_det_post = BarHalfY + localPosition_post.y();
458 G4double z_det_post = BarHalfZ + localPosition_post.z();
460 G4double track_length_XY = std::sqrt(
pow(x_det_post-x_det,2)+
pow(y_det_post-y_det,2));
462 G4double angle_phi_global = atan2(fPostStepY-fPreStepY,fPostStepX-fPreStepX);
463 G4double angle_phi = atan2(y_det_post-y_det,x_det_post-x_det);
465 G4double tan_phi = (y_det_post-y_det)/(x_det_post-x_det);
469 G4cout <<
"AFP_SensitiveDetector::ProcessHits: local, x_det: " << x_det <<
", y_det: " << y_det <<
", z_det: " << z_det << G4endl;
470 G4cout <<
"AFP_SensitiveDetector::ProcessHits: local, x_det_post: " << x_det_post <<
", y_det_post: " << y_det_post <<
", z_det_post: " << z_det_post << G4endl;
471 G4cout <<
"AFP_SensitiveDetector::ProcessHits: angle_phi_global in -pi:pi = " << angle_phi_global << G4endl;
473 if (angle_phi_global < 0.) angle_phi_global = 2.*
M_PI + angle_phi_global;
476 G4cout <<
"AFP_SensitiveDetector::ProcessHits: angle_phi_global in 0:2pi = " << angle_phi_global << G4endl;
477 G4cout <<
"AFP_SensitiveDetector::ProcessHits: angle_phi in -pi:pi = " << angle_phi << G4endl;
479 if (angle_phi < 0.) angle_phi = 2.*
M_PI + angle_phi;
482 G4cout <<
"AFP_SensitiveDetector::ProcessHits: angle_phi in 0:2pi = " << angle_phi << G4endl;
489 signed int sign_pixels_x = 0;
490 signed int sign_pixels_y = 0;
492 int number_pixels_x = (
int) (abs((post_pixel_x-pre_pixel_x)*1.0));
493 int number_pixels_y = (
int) (abs((post_pixel_y-pre_pixel_y)*1.0));
495 if (number_pixels_x > 0)
497 sign_pixels_x = (post_pixel_x-pre_pixel_x)/number_pixels_x;
499 if (number_pixels_y > 0)
501 sign_pixels_y = (post_pixel_y-pre_pixel_y)/number_pixels_y;
509 G4cout <<
"AFP_SensitiveDetector::ProcessHits: pre: pixel["<< pre_pixel_x - n_death_pixels <<
"]["<< pre_pixel_y - n_lower_pixels <<
"] was hit" << G4endl;
510 G4cout <<
"AFP_SensitiveDetector::ProcessHits: post: pixel["<< post_pixel_x - n_death_pixels<<
"]["<< post_pixel_y - n_lower_pixels<<
"] was hit" << G4endl;
511 G4cout <<
"AFP_SensitiveDetector::ProcessHits: chip's length in x: " << 2.*BarHalfX <<
", in y: " << 2.*BarHalfY <<
", in z: " << 2.*BarHalfZ << G4endl;
513 signed int first = -1;
515 G4double x_next_pixel = -9999.;
516 G4double y_next_pixel = -9999.;
518 G4double x_border = -9999.;
519 G4double y_border = -9999.;
521 G4double pixel_track_length_XY = -1.;
522 G4double angle_2pixel = 10.;
526 int act_pixel_x = pre_pixel_x;
527 int act_pixel_y = pre_pixel_y;
531 G4cout <<
"AFP_SensitiveDetector::ProcessHits: actual pixel in x = " << act_pixel_x <<
", in y = " << act_pixel_y << G4endl;
532 G4cout <<
"AFP_SensitiveDetector::ProcessHits: actual compensated pixel in x = " << act_pixel_x - n_death_pixels <<
", in y = " << act_pixel_y - n_lower_pixels << G4endl;
534 if ((number_pixels_x == 0) && (number_pixels_y == 0))
539 G4cout <<
"AFP_SensitiveDetector::ProcessHits: pre and post in the same pixel " << G4endl;
541 if (( pre_pixel_y - n_lower_pixels <= 80) && (pre_pixel_x -n_death_pixels <= 336) && ( pre_pixel_y - n_lower_pixels > 0) && (pre_pixel_x - n_death_pixels > 0))
544 fPreStepX,fPreStepY,fPreStepZ,fPostStepX,fPostStepY,fPostStepZ,
545 fGlobalTime,nStationID,nDetectorID,bIsSIDAuxVSID,
546 (pre_pixel_y - n_lower_pixels - 1),
547 (pre_pixel_x - n_death_pixels - 1));
552 else if(verboseLevel>5)
554 G4cout <<
"AFP_SensitiveDetector::ProcessHits: hit outside of pixel's sensitive area " << G4endl;
561 G4cout <<
"AFP_SensitiveDetector::ProcessHits: pre and post in diferent pixels " << G4endl;
565 while ( (number_pixels_x >= 0) && (number_pixels_y >= 0) )
568 if ((angle_phi >= 0.) && (angle_phi < M_PI_2))
572 angle_2pixel = atan2(y_next_pixel-y_det,x_next_pixel-x_det);
574 if (angle_2pixel < 0.) angle_2pixel = 2*
M_PI + angle_2pixel;
575 if(verboseLevel>5) { G4cout <<
"AFP_SensitiveDetector::ProcessHits: angle_2pixel in 0:2pi = " << angle_2pixel << G4endl; }
577 if (angle_2pixel > angle_phi)
587 else if ((angle_phi >= M_PI_2) && (angle_phi <
M_PI))
591 angle_2pixel = atan2(y_next_pixel-y_det,x_next_pixel-x_det);
593 if (angle_2pixel < 0.) angle_2pixel = 2*
M_PI + angle_2pixel;
594 if(verboseLevel>5) { G4cout <<
"AFP_SensitiveDetector::ProcessHits: angle_2pixel in 0:2pi = " << angle_2pixel << G4endl; }
596 if (angle_2pixel > angle_phi)
606 else if ((angle_phi >=
M_PI) && (angle_phi < 3.*M_PI_2))
610 if(verboseLevel>5) { G4cout <<
"AFP_SensitiveDetector::ProcessHits: next pixel corner, x = " << x_next_pixel <<
", y =" << y_next_pixel << G4endl; }
612 angle_2pixel = atan2(y_next_pixel-y_det,x_next_pixel-x_det);
614 if (angle_2pixel < 0.) angle_2pixel = 2*
M_PI + angle_2pixel;
615 if(verboseLevel>5) { G4cout <<
"AFP_SensitiveDetector::ProcessHits: angle_2pixel in 0:2pi = " << angle_2pixel << G4endl; }
617 if (angle_2pixel > angle_phi)
627 else if ((angle_phi >= 3.*M_PI_2) && (angle_phi < 2.*
M_PI))
631 angle_2pixel = atan2(y_next_pixel-y_det,x_next_pixel-x_det);
633 if (angle_2pixel < 0.) angle_2pixel = 2*
M_PI + angle_2pixel;
634 if(verboseLevel>5) { G4cout <<
"AFP_SensitiveDetector::ProcessHits: angle_2pixel in 0:2pi = " << angle_2pixel << G4endl; }
636 if (angle_2pixel > angle_phi)
648 if(verboseLevel>5) { G4cout <<
"AFP_SensitiveDetector::ProcessHits: something is wrong here!!! " << G4endl; }
653 if(verboseLevel>5) { G4cout <<
"AFP_SensitiveDetector::ProcessHits: something is wrong here!!! " << G4endl; }
654 throw std::runtime_error(
"AFP_SensitiveDetector::ProcessHits: something is wrong here");
659 G4cout <<
"AFP_SensitiveDetector::ProcessHits: actual pixel in x = " << act_pixel_x <<
", in y = " << act_pixel_y << G4endl;
660 G4cout <<
"AFP_SensitiveDetector::ProcessHits: actual compensated pixel in x = " << act_pixel_x - n_death_pixels <<
", in y = " << act_pixel_y - n_lower_pixels << G4endl;
666 if(verboseLevel>5) { G4cout <<
"AFP_SensitiveDetector::ProcessHits: cross is x, " << G4endl; }
667 x_border = x_next_pixel;
669 if ((sign_pixels_x >= 0) && (x_border > x_det_post)) x_border = x_det_post;
670 if ((sign_pixels_x < 0) && (x_border < x_det_post)) x_border = x_det_post;
672 y_border = tan_phi*(x_border-x_det) + y_det;
674 if (( act_pixel_y - n_lower_pixels <= 80) && (act_pixel_x -n_death_pixels <= 336) && ( act_pixel_y - n_lower_pixels > 0) && (act_pixel_x - n_death_pixels > 0))
676 pixel_track_length_XY = std::sqrt(
pow(x_border-x_det,2)+
pow(y_border-y_det,2));
680 G4cout <<
"AFP_SensitiveDetector::ProcessHits: overall energy = " << fEnergyDeposit << G4endl;
681 G4cout <<
"AFP_SensitiveDetector::ProcessHits: track XY length = " << track_length_XY << G4endl;
682 G4cout <<
"AFP_SensitiveDetector::ProcessHits: actual XY length = " << pixel_track_length_XY << G4endl;
683 G4cout <<
"AFP_SensitiveDetector::ProcessHits: deposited energy = " << fEnergyDeposit*(pixel_track_length_XY/track_length_XY) << G4endl;
688 fEnergyDeposit*(pixel_track_length_XY/track_length_XY),
689 fPreStepX,fPreStepY,fPreStepZ,fPostStepX,fPostStepY,fPostStepZ,
690 fGlobalTime,nStationID,nDetectorID,bIsSIDAuxVSID,
691 (act_pixel_y - n_lower_pixels - 1),
692 (act_pixel_x - n_death_pixels - 1));
694 if(verboseLevel>5) { G4cout <<
"AFP_SensitiveDetector::ProcessHits:pixel["<< act_pixel_x - n_death_pixels <<
"]["<< act_pixel_y - n_lower_pixels <<
"] will be stored, with energy "
695 << fEnergyDeposit*(pixel_track_length_XY/track_length_XY) << G4endl; }
706 number_pixels_x = number_pixels_x - 1;
708 if(verboseLevel>5) { G4cout <<
"AFP_SensitiveDetector::ProcessHits: remaining number of pixels in x = " << number_pixels_x <<
", in y = " << number_pixels_y << G4endl; }
710 act_pixel_x = act_pixel_x + sign_pixels_x;
716 if(verboseLevel>5) { G4cout <<
"AFP_SensitiveDetector::ProcessHits: cross is y, " << G4endl; }
717 y_border = y_next_pixel;
719 if ((sign_pixels_y >= 0) && (y_border > y_det_post)) y_border = y_det_post;
720 if ((sign_pixels_y < 0) && (y_border < y_det_post)) y_border = y_det_post;
722 x_border = (y_border-y_det)/tan_phi + x_det;
724 if (( act_pixel_y - n_lower_pixels <= 80) && (act_pixel_x -n_death_pixels <= 336) && ( act_pixel_y - n_lower_pixels > 0) && (act_pixel_x - n_death_pixels > 0))
726 pixel_track_length_XY = std::sqrt(
pow(x_border-x_det,2)+
pow(y_border-y_det,2));
730 G4cout <<
"AFP_SensitiveDetector::ProcessHits: overall energy = " << fEnergyDeposit << G4endl;
731 G4cout <<
"AFP_SensitiveDetector::ProcessHits: track XY length = " << track_length_XY << G4endl;
732 G4cout <<
"AFP_SensitiveDetector::ProcessHits: actual XY length = " << pixel_track_length_XY << G4endl;
733 G4cout <<
"AFP_SensitiveDetector::ProcessHits: deposited energy = " << fEnergyDeposit*(pixel_track_length_XY/track_length_XY) << G4endl;
738 fEnergyDeposit*(pixel_track_length_XY/track_length_XY),
739 fPreStepX,fPreStepY,fPreStepZ,fPostStepX,fPostStepY,fPostStepZ,
740 fGlobalTime,nStationID,nDetectorID,bIsSIDAuxVSID,
741 (act_pixel_y - n_lower_pixels - 1),
742 (act_pixel_x - n_death_pixels - 1));
744 if(verboseLevel>5) { G4cout <<
"AFP_SensitiveDetector::ProcessHits:pixel["<< act_pixel_x - n_death_pixels <<
"]["<< act_pixel_y - n_lower_pixels <<
"] will be stored, with energy "
745 << fEnergyDeposit*(pixel_track_length_XY/track_length_XY) << G4endl; }
756 number_pixels_y = number_pixels_y - 1;
758 if(verboseLevel>5) { G4cout <<
"AFP_SensitiveDetector::ProcessHits: remaining number of pixels in x = " << number_pixels_x <<
", in y = " << number_pixels_y << G4endl; }
761 act_pixel_y = act_pixel_y + sign_pixels_y;