6 : det_id_(det_id), theRPDetTopology(
params) {
9 double coupling_constant_ =
params.getParameter<
double>(
"RPInterStripCoupling");
19 const double sqrt_2 =
sqrt(2.0);
21 edm::LogInfo(
"RPLinearInduceChargeOnStrips ") <<
det_id_ <<
" : Clouds to be induced:" << charge_map.size() <<
"\n";
22 for (simromanpot::charge_induced_on_surface::const_iterator
i = charge_map.begin();
i != charge_map.end(); ++
i) {
24 std::vector<strip_info> relevant_strips =
28 <<
det_id_ <<
" : relevant_strips" << relevant_strips.size() <<
"\n";
30 for (std::vector<strip_info>::const_iterator
j = relevant_strips.begin();
j != relevant_strips.end(); ++
j) {
31 double strip_begin = (*j).LowerBoarder();
32 double strip_end = (*j).HigherBoarder();
33 double effic = (*j).EffFactor();
34 double sigma = (*i).Sigma();
35 unsigned short str_no = (*j).StripNo();
37 double charge_on_strip = (TMath::Erfc((strip_begin - hit_pos) / sqrt_2 / sigma) / 2.0 -
38 TMath::Erfc((strip_end - hit_pos) / sqrt_2 / sigma) / 2.0) *
39 (*i).Charge() * effic;
41 edm::LogInfo(
"RPLinearInduceChargeOnStrips") <<
"Efficiency " <<
det_id_ <<
" :" << effic <<
"\n";
simromanpot::strip_charge_map Induce(const simromanpot::charge_induced_on_surface &charge_map)
RPLinearInduceChargeOnStrips(const edm::ParameterSet ¶ms, RPDetId det_id)
std::vector< RPSignalPoint > charge_induced_on_surface
simromanpot::strip_charge_map theStripChargeMap
Abs< T >::type abs(const T &t)
std::vector< double > signalCoupling_
Log< level::Info, false > LogInfo
std::map< unsigned short, double > strip_charge_map
std::vector< strip_info > GetStripsInvolved(double x, double y, double sigma, double &hit_pos)
RPSimTopology theRPDetTopology
unsigned short DetStripNo() const