12 grid.getFSimTrack()->onHcal()?grid.getFSimTrack()->onHcal():grid.getFSimTrack()->onVFcal()+1,shower),
13 myGrid(grid), myTrack((grid.getFSimTrack()))
23 std::cout <<
" FamosHcalHitMaker : Strange. The following shower has EM type" << std::endl <<* grid.
getFSimTrack() << std::endl;
38 return addHit(point,layer);
45 if(fabs(point.Z())>2000 || fabs(point.X())>2000 || fabs(point.Y())>2000)
48 edm::LogWarning(
"HcalHitMaker") <<
"received a hit very far from the detector " << point <<
" coming from an electromagnetic shower. - Ignoring it" << std::endl;
50 edm::LogWarning(
"HcalHitMaker") <<
"received a hit very far from the detector " << point <<
" coming from a hadron shower. - Ignoring it" << std::endl;
52 edm::LogWarning(
"HcalHitMaker") <<
"received a hit very far from the detector " << point <<
" coming from a muon. - Ignoring it" << std::endl;
57 double pointeta = fabs(point.eta());
58 if(pointeta > 5.19)
return false;
61 double dist =
std::sqrt(point.X()*point.X() + point.Y()*point.Y() + point.Z()*point.Z());
62 double tof = dist/29.98;
84 if ( myDetId.depth()==2 ) {
96 if(!thecellID.null() && myDetId.depth()>0)
98 CaloHitID current_id(thecellID.rawId(),tof,0);
103 std::map<CaloHitID,float>::iterator cellitr;
104 cellitr =
hitMap_.find(current_id);
122 std::vector<CaloSegment>::const_iterator segiterator;
143 depth=segiterator->sL0Exit()-1.;
180 (
Point)(origin+planeVec1));
const FSimTrack * myTrack
Sin< T >::type sin(const T &t)
ROOT::Math::Transform3DPJ::Point Point
const CaloGeometryHelper * myCalorimeter
ROOT::Math::Transform3DPJ Transform3D
Cos< T >::type cos(const T &t)
Abs< T >::type abs(const T &t)
const RawParticle & ecalEntrance() const
The particle at ECAL entrance.
HcalHitMaker(EcalHitMaker &, unsigned)
This class is used to determine if a point lies in the segment.
std::map< CaloHitID, float > hitMap_
int type() const
particle type (HEP PDT convension)
math::XYZVector XYZVector
XYZVector particleDirection
DetId getClosestCell(const XYZPoint &point, bool ecal, bool central) const
bool addHit(double r, double phi, unsigned layer=0)
add the hit in the HCAL in local coordinates
bool setDepth(double, bool inCm=false)
set the depth in X0 or Lambda0 units depending on showerType
*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 FSimTrack * getFSimTrack() const
To retrieve the track.
const std::vector< CaloSegment > & getSegments() const
const XYZPoint & ecalEntrance() const
used in FamosHcalHitMaker