Skip to content
Snippets Groups Projects

Bug fix SensorSimPlanarTool.cxx

Merged Eric Ballabene requested to merge patch-7 into 21.3
@@ -534,6 +534,17 @@ StatusCode SensorSimPlanarTool::induceCharge(const TimedHitPtr<SiHit> &phit, SiC
// amount of energy to be converted into charges at current step
double energy_per_step = 1.0*iHitRecord.second/1.E+6/ncharges;
// scale factors accounting for different pixel sizes
float scale_i, scale_f_e, scale_f_h;
float columnWidth=p_design.widthFromColumnRange(pixel_i.etaIndex(),pixel_i.etaIndex());
if (columnWidth==(float)0.4) {scale_i = 1.; scale_f_e = 1.; scale_f_h = 1.;}
else if (columnWidth==(float)0.25){scale_i = 1.; scale_f_e = 1.; scale_f_h = 1.;}
else if (columnWidth==(float)0.6){scale_i = 4./6.; scale_f_e = 4./6.; scale_f_h = 4./6.;}
else if (columnWidth==(float)0.45){scale_i = 25./45.; scale_f_e = 25./45.; scale_f_h = 25./45.;}
else if (columnWidth==(float)0.5){scale_i = 25./50.; scale_f_e = 25./50.; scale_f_h = 25./50.;}
else {std::cout << "SensorSimPlanarTool ERROR: Not column width has been found, leaving." << std::endl;}
//Loop over charge-carrier pairs
for(int j=0 ; j<ncharges ; j++) {
@@ -612,6 +623,8 @@ StatusCode SensorSimPlanarTool::induceCharge(const TimedHitPtr<SiHit> &phit, SiC
double dEta_i_e = pixelEta_i - dEta_nn_centre;
double dPhi_i_e = pixelPhi_i - dPhi_nn_centre;
dEta_i_e*=scale_i;
int nbin_ramo_i_x = ramoPotentialMap[Layer]->GetXaxis()->FindBin( fabs( dPhi_i_e )*1000. );
int nbin_ramo_i_y = ramoPotentialMap[Layer]->GetYaxis()->FindBin( fabs( dEta_i_e )*1000. );
int nbin_ramo_i_z = ramoPotentialMap[Layer]->GetZaxis()->FindBin( dist_electrode*1000 );
@@ -630,9 +643,11 @@ StatusCode SensorSimPlanarTool::induceCharge(const TimedHitPtr<SiHit> &phit, SiC
double pixelPhi_f_h = phi_f_h - centreOfPixel_i.xPhi() ;
//Final position of charge carriers wrt nn centre
double dEta_f_e = pixelEta_f_e - dEta_nn_centre ;
double dEta_f_e = pixelEta_f_e - dEta_nn_centre ;
double dPhi_f_e = pixelPhi_f_e - dPhi_nn_centre ;
dEta_f_e*=scale_f_e;
int nbin_ramo_f_e_x = ramoPotentialMap[Layer]->GetXaxis()->FindBin( fabs( dPhi_f_e )*1000. );
int nbin_ramo_f_e_y = ramoPotentialMap[Layer]->GetYaxis()->FindBin( fabs( dEta_f_e )*1000. );
int nbin_ramo_f_e_z = ramoPotentialMap[Layer]->GetZaxis()->FindBin( depth_f_e*1000 );
@@ -645,6 +660,8 @@ StatusCode SensorSimPlanarTool::induceCharge(const TimedHitPtr<SiHit> &phit, SiC
double dEta_f_h = pixelEta_f_h - dEta_nn_centre ;
double dPhi_f_h = pixelPhi_f_h - dPhi_nn_centre ;
dEta_f_h*=scale_f_h;
int nbin_ramo_f_h_x = ramoPotentialMap[Layer]->GetXaxis()->FindBin( fabs( dPhi_f_h )*1000. );
int nbin_ramo_f_h_y = ramoPotentialMap[Layer]->GetYaxis()->FindBin( fabs( dEta_f_h )*1000. );
int nbin_ramo_f_h_z = ramoPotentialMap[Layer]->GetZaxis()->FindBin( depth_f_h*1000 );
Loading