CMS 3D CMS Logo

RPixLinearChargeCollectionDrifter.cc
Go to the documentation of this file.
2 
4  uint32_t det_id,
5  const PPSPixelTopology &ppt) {
6  verbosity_ = params.getParameter<int>("RPixVerbosity");
7 
8  GeV_per_electron_ = params.getParameter<double>("RPixGeVPerElectron");
9  charge_cloud_sigmas_vect_ = params.getParameter<std::vector<double> >("RPixInterSmearing");
11  det_id_ = det_id;
12 }
13 
14 std::vector<RPixSignalPoint> RPixLinearChargeCollectionDrifter::Drift(
15  const std::vector<RPixEnergyDepositUnit> &energy_deposition) {
16  // convert an energy deposit in a point and in a charge of electrons n=E/3.61 (eV)
17  temp_.resize(energy_deposition.size());
18  for (unsigned int i = 0; i < energy_deposition.size(); i++) {
19  temp_[i].setPosition(LocalPoint(energy_deposition[i].Position().x(), energy_deposition[i].Position().y()));
20  temp_[i].setSigma(getSigma_(energy_deposition[i].Position().z()));
21  temp_[i].setCharge(energy_deposition[i].Energy() / GeV_per_electron_);
22  if (verbosity_ > 1) {
23  edm::LogInfo("PPS") << "RPixLinearChargeCollectionDrifter " << det_id_ << " :" << temp_[i].Position() << " "
24  << temp_[i].Sigma() << " " << temp_[i].Charge();
25  }
26  }
27  return temp_;
28 }
30  if (charge_cloud_sigmas_vect_.size() == 1)
31  return charge_cloud_sigmas_vect_[0];
32 
33  double factor = (z / det_thickness_) * (charge_cloud_sigmas_vect_.size() - 1);
34  double lo_i = floor(factor);
35  double hi_i = ceil(factor);
36  if (lo_i == hi_i) {
38  } else {
39  double lo_weight = hi_i - factor;
40  double hi_weight = factor - lo_i;
41 
42  return charge_cloud_sigmas_vect_[(int)lo_i] * lo_weight + charge_cloud_sigmas_vect_[(int)hi_i] * hi_weight;
43  }
44 }
DDAxes::y
mps_fire.i
i
Definition: mps_fire.py:428
EcalCondDBWriter_cfi.Energy
Energy
Definition: EcalCondDBWriter_cfi.py:152
detailsBasic3DVector::z
float float float z
Definition: extBasic3DVector.h:14
CalibrationSummaryClient_cfi.params
params
Definition: CalibrationSummaryClient_cfi.py:14
DDAxes::x
edm::LogInfo
Log< level::Info, false > LogInfo
Definition: MessageLogger.h:125
align::LocalPoint
Point3DBase< Scalar, LocalTag > LocalPoint
Definition: Definitions.h:30
RPixLinearChargeCollectionDrifter::GeV_per_electron_
double GeV_per_electron_
Definition: RPixLinearChargeCollectionDrifter.h:18
reco::ceil
constexpr int32_t ceil(float num)
Definition: constexpr_cmath.h:7
DDAxes::z
PPSPixelTopology::getThickness
double getThickness() const
Definition: PPSPixelTopology.cc:230
DQMScaleToClient_cfi.factor
factor
Definition: DQMScaleToClient_cfi.py:8
RPixLinearChargeCollectionDrifter::charge_cloud_sigmas_vect_
std::vector< double > charge_cloud_sigmas_vect_
Definition: RPixLinearChargeCollectionDrifter.h:17
PixelTestBeamValidation_cfi.Position
Position
Definition: PixelTestBeamValidation_cfi.py:83
edm::ParameterSet
Definition: ParameterSet.h:47
RPixLinearChargeCollectionDrifter.h
RPixLinearChargeCollectionDrifter::det_id_
uint32_t det_id_
Definition: RPixLinearChargeCollectionDrifter.h:21
RPixLinearChargeCollectionDrifter::RPixLinearChargeCollectionDrifter
RPixLinearChargeCollectionDrifter(const edm::ParameterSet &params, uint32_t det_id, const PPSPixelTopology &ppt)
Definition: RPixLinearChargeCollectionDrifter.cc:3
createfilelist.int
int
Definition: createfilelist.py:10
RPixLinearChargeCollectionDrifter::det_thickness_
double det_thickness_
Definition: RPixLinearChargeCollectionDrifter.h:20
RPixLinearChargeCollectionDrifter::verbosity_
int verbosity_
Definition: RPixLinearChargeCollectionDrifter.h:19
PPSPixelTopology
Definition: PPSPixelTopology.h:22
RPixLinearChargeCollectionDrifter::getSigma_
double getSigma_(double z)
Definition: RPixLinearChargeCollectionDrifter.cc:29
RPixLinearChargeCollectionDrifter::temp_
std::vector< RPixSignalPoint > temp_
Definition: RPixLinearChargeCollectionDrifter.h:15
RPixLinearChargeCollectionDrifter::Drift
std::vector< RPixSignalPoint > Drift(const std::vector< RPixEnergyDepositUnit > &energy_deposition)
Definition: RPixLinearChargeCollectionDrifter.cc:14