1 #ifndef FastSimulation_CaloHitMakers_EcalHitMaker_h
2 #define FastSimulation_CaloHitMakers_EcalHitMaker_h
117 const std::map<CaloHitID, float>&
getHits()
override;
179 void gapsLifting(std::vector<neighbour>& gaps,
unsigned iq);
182 void cracksPads(std::vector<neighbour>& cracks,
unsigned iq);
void ecalCellLine(const XYZPoint &, const XYZPoint &, std::vector< CaloPoint > &cp)
double pulledPadProbability_
double ps2TotalX0() const
total number of X0 in the PS (Layer2).
bool addHit(double r, double phi, unsigned layer=0) override
double totalL0() const
Number of interaction length "seen" by the track.
CrystalWindowMap * myCrystalWindowMap_
std::map< DetId, unsigned > DetIdMap_
std::vector< CrystalPad > crackpadsatdepth_
void hcalCellLine(std::vector< CaloPoint > &cp) const
EcalHitMaker(CaloGeometryHelper *calo, const XYZPoint &ecalentrance, const DetId &cell, int onEcal, unsigned size, unsigned showertype, const RandomEngineAndDistribution *engine)
bool unbalancedDirection(const std::vector< neighbour > &dirs, unsigned &unb, unsigned &dir1, unsigned &dir2)
double ps1TotalL0() const
total number of L0 in the PS (Layer1).
void setCrackPadSurvivalProbability(double val)
std::vector< CrystalPad > padsatdepth_
std::vector< CLHEP::Hep2Vector > mycorners
const RandomEngineAndDistribution * random
bool pulled(const XYZPoint &origin, const XYZNormal &normal, XYZPoint &fPoint) const
double ps2eeTotalX0() const
void prepareCrystalNumberArray()
constexpr std::array< uint8_t, layerIndexSize > layer
void setRadiusFactor(double r)
unsigned fastInsideCell(const CLHEP::Hep2Vector &point, double &sp, bool debug=false)
double ecalTotalX0() const
in the ECAL
double crackPadProbability_
bool addHitDepth(double r, double phi, double depth=-1)
const std::map< CaloHitID, float > & getHits() override
double radiusCorrectionFactor_
void setTrackParameters(const XYZNormal &normal, double X0depthoffset, const FSimTrack &theTrack)
const FSimTrack * myTrack_
double hcalTotalX0() const
in the HCAL
void cracksPads(std::vector< neighbour > &cracks, unsigned iq)
std::vector< CaloPoint > intersections_
math::XYZVector XYZVector
double outsideWindowEnergy_
void gapsLifting(std::vector< neighbour > &gaps, unsigned iq)
CLHEP::Hep2Vector & correspondingEdge(neighbour &myneighbour, CaloDirection dir2)
double ps2TotalL0() const
total number of L0 in the PS (Layer2).
ROOT::Math::Plane3D Plane3D
std::pair< CaloDirection, unsigned > neighbour
unsigned ncrackpadsatdepth_
std::vector< XYZPoint > corners
double ecalHcalGapTotalX0() const
ECAL-HCAL transition.
XYZVectorD XYZVector
spatial vector with cartesian internal representation
ROOT::Math::Plane3D Plane3D
bool getPads(double depth, bool inCm=false)
void cellLine(std::vector< CaloPoint > &cp)
std::vector< std::vector< unsigned > > myCrystalNumberArray_
std::vector< float > hits_
std::vector< Crystal > regionOfInterest_
void buildSegments(const std::vector< CaloPoint > &cp)
const std::vector< Crystal > & getCrystals() const
for debugging
void setPulledPadSurvivalProbability(double val)
void preshowerCellLine(std::vector< CaloPoint > &cp) const
void setPreshowerPresent(bool ps)
double ps2eeTotalL0() const
std::vector< bool > validPads_
std::vector< DetId > CellsWindow_
CaloDirection
Codes the local directions in the cell lattice.
bool inside3D(const std::vector< XYZPoint > &, const XYZPoint &p) const
bool hitmaphasbeencalculated_
double ps1TotalX0() const
double ecalTotalL0() const
in the ECAL
math::XYZVector XYZNormal
double x0DepthOffset() const
get the offset (e.g the number of X0 after which the shower starts)
void convertIntegerCoordinates(double x, double y, unsigned &ix, unsigned &iy) const
tuple size
Write out results.
ROOT::Math::Plane3D Plane3D
*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
void setSpotEnergy(double e) override
const FSimTrack * getFSimTrack() const
To retrieve the track.
const std::vector< CaloSegment > & getSegments() const
double ecalHcalGapTotalL0() const
ECAL-HCAL transition.
const XYZPoint & ecalEntrance() const
used in FamosHcalHitMaker
bool diagonalEdge(unsigned myPad, CaloDirection dir, CLHEP::Hep2Vector &point)
std::vector< CaloSegment > segments_
double hcalTotalL0() const
in the HCAL