|
|
#include <PreshowerHitMaker.h>
|
bool | addHit (double r, double phi, unsigned layer=0) override |
|
const std::map< CaloHitID, float > & | getHits () override |
|
float | layer1Calibrated () const |
|
float | layer2Calibrated () const |
|
| PreshowerHitMaker (CaloGeometryHelper *calo, const XYZPoint &, const XYZVector &, const XYZPoint &, const XYZVector &, const LandauFluctuationGenerator *aGenerator, const RandomEngineAndDistribution *engine) |
|
void | setMipEnergy (double e1, double e2) |
|
void | setSpotEnergy (double e) override |
|
float | totalCalibrated () const |
|
float | totalLayer1 () const |
|
float | totalLayer2 () const |
|
| ~PreshowerHitMaker () override |
|
| CaloHitMaker (const CaloGeometryHelper *calo, DetId::Detector det, int subdetn, int cal, unsigned sht=0) |
|
const CaloGeometryHelper * | getCalorimeter () const |
|
virtual | ~CaloHitMaker () |
|
Definition at line 11 of file PreshowerHitMaker.h.
◆ Transform3D
◆ XYZPoint
◆ XYZVector
◆ PreshowerHitMaker()
Definition at line 18 of file PreshowerHitMaker.cc.
References anglecorrection1_, anglecorrection2_, CaloHitMaker::intersect(), layer1valid_, layer2valid_, locToGlobal1_, locToGlobal2_, CaloHitMaker::myCalorimeter, CaloGeometryHelper::preshowerZPosition(), psLayer1Entrance_, psLayer2Entrance_, z, and LaserClient_cfi::zaxis.
◆ ~PreshowerHitMaker()
PreshowerHitMaker::~PreshowerHitMaker |
( |
| ) |
|
|
inlineoverride |
◆ addHit()
bool PreshowerHitMaker::addHit |
( |
double |
r, |
|
|
double |
phi, |
|
|
unsigned |
layer = 0 |
|
) |
| |
|
overridevirtual |
Implements CaloHitMaker.
Definition at line 88 of file PreshowerHitMaker.cc.
96 int z = (
point.z() > 0) ? 1 : -1;
112 std::map<CaloHitID, float>::iterator cellitr;
113 cellitr =
hitMap_.find(current_id);
114 if (cellitr ==
hitMap_.end()) {
115 hitMap_.insert(std::pair<CaloHitID, float>(current_id, spote));
117 cellitr->second += spote;
122 }
else if (
layer == 2) {
References anglecorrection1_, anglecorrection2_, funct::cos(), EcalPreshowerGeometry::getClosestCellInPlane(), Calorimeter::getEcalPreshowerGeometry(), CaloSubdetectorGeometry::getGeometry(), CaloHitMaker::hitMap_, LandauFluctuationGenerator::landau(), phase1PixelTopology::layer, layer1valid_, layer2valid_, locToGlobal1_, locToGlobal2_, mip1_, mip2_, CaloHitMaker::moliereRadius, CaloHitMaker::myCalorimeter, phi, point, CaloGeometryHelper::preshowerZPosition(), alignCSCRings::r, random, funct::sin(), digitizers_cfi::strip, theGenerator, totalLayer1_, totalLayer2_, and z.
Referenced by EMShower::compute().
◆ getHits()
const std::map<CaloHitID, float>& PreshowerHitMaker::getHits |
( |
| ) |
|
|
inlineoverridevirtual |
◆ layer1Calibrated()
float PreshowerHitMaker::layer1Calibrated |
( |
| ) |
const |
|
inline |
◆ layer2Calibrated()
float PreshowerHitMaker::layer2Calibrated |
( |
| ) |
const |
|
inline |
◆ setMipEnergy()
void PreshowerHitMaker::setMipEnergy |
( |
double |
e1, |
|
|
double |
e2 |
|
) |
| |
|
inline |
◆ setSpotEnergy()
void PreshowerHitMaker::setSpotEnergy |
( |
double |
e | ) |
|
|
inlineoverridevirtual |
◆ totalCalibrated()
float PreshowerHitMaker::totalCalibrated |
( |
| ) |
const |
|
inline |
◆ totalLayer1()
float PreshowerHitMaker::totalLayer1 |
( |
| ) |
const |
|
inline |
◆ totalLayer2()
float PreshowerHitMaker::totalLayer2 |
( |
| ) |
const |
|
inline |
◆ anglecorrection1_
float PreshowerHitMaker::anglecorrection1_ |
|
private |
◆ anglecorrection2_
float PreshowerHitMaker::anglecorrection2_ |
|
private |
◆ layer1valid_
bool PreshowerHitMaker::layer1valid_ |
|
private |
◆ layer2valid_
bool PreshowerHitMaker::layer2valid_ |
|
private |
◆ locToGlobal1_
◆ locToGlobal2_
◆ mip1_
double PreshowerHitMaker::mip1_ |
|
private |
◆ mip2_
double PreshowerHitMaker::mip2_ |
|
private |
◆ psLayer1Dir_
◆ psLayer1Entrance_
XYZPoint PreshowerHitMaker::psLayer1Entrance_ |
|
private |
◆ psLayer2Dir_
◆ psLayer2Entrance_
XYZPoint PreshowerHitMaker::psLayer2Entrance_ |
|
private |
◆ random
◆ theGenerator
◆ totalLayer1_
float PreshowerHitMaker::totalLayer1_ |
|
private |
◆ totalLayer2_
float PreshowerHitMaker::totalLayer2_ |
|
private |
const LandauFluctuationGenerator * theGenerator
The Landau Fluctuation generator.
math::XYZVector XYZVector
ROOT::Math::Transform3DPJ::Point Point
Transform3D locToGlobal1_
ROOT::Math::Plane3D Plane3D
Sin< T >::type sin(const T &t)
Cos< T >::type cos(const T &t)
XYZPoint psLayer2Entrance_
Global3DPoint GlobalPoint
static XYZPoint intersect(const Plane3D &p, const XYZPoint &a, const XYZPoint &b, double &t, bool segment, bool debug=false)
constexpr std::array< uint8_t, layerIndexSize > layer
virtual DetId getClosestCellInPlane(const GlobalPoint &r, int plane) const
Structure Point Contains parameters of Gaussian fits to DMRs.
ROOT::Math::Transform3DPJ Transform3D
double landau(RandomEngineAndDistribution const *random) const
Random generator of the dE/dX spread (Landau function)
virtual std::shared_ptr< const CaloCellGeometry > getGeometry(const DetId &id) const
Get the cell geometry of a given detector id. Should return false if not found.
double preshowerZPosition(int layer) const
const CaloGeometryHelper * myCalorimeter
XYZPoint psLayer1Entrance_
std::map< CaloHitID, float > hitMap_
Transform3D locToGlobal2_
const EcalPreshowerGeometry * getEcalPreshowerGeometry() const
CaloHitMaker(const CaloGeometryHelper *calo, DetId::Detector det, int subdetn, int cal, unsigned sht=0)
*vegas h *****************************************************used in the default bin number in original ***version of VEGAS is ***a higher bin number might help to derive a more precise ***grade subtle point
const RandomEngineAndDistribution * random