49 G4String FileExperimentalData,
G4String FileExperimentalDataOut):startCurve(0),
50 stopCurve(0),chi2Factor(0)
53 sprintf(a,
"%d", seed);
92 in.getline(a,1000,
'\n');
104 in.getline(a,1000,
'\n');
149 std::cout <<
"ERROR I can't find the experimental data file" <<
G4endl;
161 for (
int i=0; i<(int)
voxels.size(); i++ )
170 pos=aStep->GetPreStepPoint()->GetPosition();
171 depEnergy=aStep->GetTotalEnergyDeposit();
172 density=aStep->GetPreStepPoint()->GetPhysicalVolume()->GetLogicalVolume()->GetMaterial()->GetDensity();
184 for (
int i=0; i<(int)
voxels.size(); i++)
192 voxelVolume=
voxels[i].halfSize.getX()*
voxels[i].halfSize.getY()*
voxels[i].halfSize.getZ()*8.;
193 voxelMass=density*voxelVolume;
203 particle->
dir=aStep->GetPreStepPoint()->GetMomentumDirection();
204 particle->
pos=aStep->GetPreStepPoint()->GetPosition();
207 particle->
partPDGE=aStep->GetTrack()->GetDefinition()->GetPDGEncoding();
228 for (
int i=0;i<(int)
voxels.size();i++)
237 for (
int i=0;i<(int)
voxels.size();i++)
257 out <<
"% x [mm], y [mm], z [mm], Dx [mm], Dy [mm], Dz [mm], expDose [Gy], Calculated dose [Gy], Calculated dose2 [Gy^2], nEvents, normDose [Gy], normDoseError [Gy]";
271 for (
int i=0; i<(int)
voxels.size(); i++)
296 cs+=vox[i].depEnergy*vox[i].expDose;
297 cc+=vox[i].depEnergy*vox[i].depEnergy;
305 dd=vox[i].depEnergy*vox[i].depEnergy;
306 d2=vox[i].depEnergy2;
308 vox[i].depEnergyNorm=
chi2Factor[j]*vox[i].depEnergy;
311 if (n>1){vox[i].depEnergyNormError=
chi2Factor[j]*std::sqrt(v/(n-1));}
312 if (n==1){vox[i].depEnergyNormError=vox[i].depEnergyNorm;}
void set(double x, double y, double z)
void calculateNormalizedEd(std::vector< Svoxel > &voxels)
static const double joule
G4int saving_in_Selected_Voxels_every_events
G4int getMinNumberOfEvents()
G4bool bHasExperimentalData
void resetNEventsInVoxels()
G4int primaryParticlePDGE
G4double depEnergyNormError
G4int getMaxNumberOfEvents()
std::vector< Svoxel > voxels
CML2ExpVoxels(G4bool bHasExperimentalData, G4int saving_in_Selected_Voxels_every_events, G4int seed, G4String FileExperimentalData, G4String FileExperimentalDataOut)
void add(G4ThreeVector pos, G4double depEnergy, G4double density)
static const G4double pos