90 std::cout <<
" CDividerFP420::ChargeDividerFP420:divide: direction= " << direction << std::endl;
91 std::cout <<
" CDividerFP420::ChargeDividerFP420:divide: direction.mag = " << direction.
mag() << std::endl;
93 <<
" EntryLocalP = " << hit.
entryPoint() << std::endl;
97 <<
" deltaCut= " <<
deltaCut << std::endl;
100 int NumberOfSegmentation =
110 std::cout <<
"NumberOfSegmentation= " << NumberOfSegmentation << std::endl;
117 std::cout <<
"CDividerFP420::ChargeDividerFP420:divide: eLoss= " << eLoss << std::endl;
126 std::cout <<
"CDividerFP420::ChargeDividerFP420:divide: decSignal= " << decSignal << std::endl;
131 _ionization_points.resize(NumberOfSegmentation);
136 float *eLossVector =
new float[NumberOfSegmentation];
139 std::cout <<
"CDividerFP420::ChargeDividerFP420:divide: resize done; "
140 "then, fluctuateCharge ? = "
147 float momentum = hit.
pabs();
148 float length = direction.
mag();
151 std::cout <<
"pid= " << pid <<
"momentum= " << momentum <<
"eLoss= " << eLoss <<
"length= " << length
154 fluctuateEloss(pid, momentum, eLoss, length, NumberOfSegmentation, eLossVector);
157 for (
int i = 0;
i != NumberOfSegmentation; ++
i) {
159 energy = eLossVector[
i] * decSignal / eLoss;
161 hit.
entryPoint() + float((
i + 0.5) / NumberOfSegmentation) *
166 _ionization_points[
i] = edu;
168 energy = decSignal / float(NumberOfSegmentation);
171 hit.
entryPoint() + float((
i + 0.5) / NumberOfSegmentation) * direction);
176 _ionization_points[
i] = edu;
181 std::cout <<
"CDividerFP420::ChargeDividerFP420:divide: !!! RESULT !!!" << std::endl;
182 std::cout <<
" _ionization_points size = " << _ionization_points.size() << std::endl;
183 for (
unsigned int i = 0;
i < _ionization_points.size(); ++
i) {
184 std::cout <<
" eLossVector[i] i = " <<
i << eLossVector[
i] << std::endl;
188 delete[] eLossVector;
189 return _ionization_points;
std::vector< EnergySegmentFP420 > ionization_type
Local3DPoint exitPoint() const
Exit point in the local Det frame.
float pabs() const
fast and more accurate access to momentumAtEntry().mag()
void fluctuateEloss(int particleId, float momentum, float eloss, float length, int NumberOfSegmentation, float elossVector[])
int chargedivisionsPerHit
float TimeResponse(const PSimHit &)
float energyLoss() const
The energy deposit in the PSimHit, in ???.
Local3DPoint entryPoint() const
Entry point in the local Det frame.