28 std::cout <<
"[EcalTBHodoscopeGeometryLoaderFromDDD]:: start the construction of EcalTBHodoscope" << std::endl;
30 makeGeometry(cpv,dynamic_cast<CaloSubdetectorGeometry*>(ebg.get()));
31 std::cout <<
"[EcalTBHodoscopeGeometryLoaderFromDDD]:: Returning EcalTBHodoscopeGeometry" << std::endl;
52 if (answer !=
"EcalTBH4BeamHits")
60 +
"\n CaloGeometryEcalTBHodoscope::upDate(...): currently only box fiber shapes supported ");
61 edm::LogWarning(
"EcalTBHodoscopeGeometry") <<
"Wrong shape for sensitive volume!" << solid;
71 CLHEP::Hep3Vector hx(x.X(), x.Y(), x.Z());
72 CLHEP::Hep3Vector hy(y.X(), y.Y(), y.Z());
73 CLHEP::Hep3Vector hz(z.X(), z.Y(), z.Z());
74 CLHEP::HepRotation hrot(hx, hy, hz);
77 const HepGeom::Transform3D ht3d ( hrot,
81 const HepGeom::Point3D<double> ctr ( ht3d*HepGeom::Point3D<double> (0,0,0) ) ;
83 const GlobalPoint refPoint ( ctr.x(), ctr.y(), ctr.z() ) ;
86 std::vector<double> vv ;
87 vv.reserve( pv.size() ) ;
88 for(
unsigned int i ( 0 ) ;
i != pv.size() ; ++
i )
111 assert(parents.size() >= 3);
116 for (
unsigned int i=1 ;
i <= parents.size();
i++)
117 baseNumber.
addLevel(parents[parents.size()-
i].logicalPart().name().name(),parents[parents.size()-
i].copyno());
const std::vector< double > & parameters() const
Don't use (only meant to be used by DDbox(), DDtub(), ...)
const DDLogicalPart & logicalPart() const
The logical-part of the current node in the filtered-view.
void addFilter(const DDFilter &, log_op op=AND)
std::auto_ptr< CaloSubdetectorGeometry > load(const DDCompactView *cpv)
DDSolidShape shape() const
The type of the solid.
bool nextSibling()
set the current node to the next sibling ...
const DDRotationMatrix & rotation() const
The absolute rotation of the current node.
An exception for DDD errors.
type of data representation of DDCompactView
const DDGeoHistory & geoHistory() const
The list of ancestors up to the root-node of the current node.
void allocatePar(ParVec::size_type n, unsigned int m)
A DDSolid represents the shape of a part.
A base class to handle the shape of preshower strips.
std::string getDDDString(std::string s, DDFilteredView *fv)
void addCell(const DetId &id, CaloCellGeometry *ccg)
Add a cell to the geometry.
EcalHodoscopeNumberingScheme * _scheme
void addLevel(const std::string &name, const int ©Number)
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< double > > DD3Vector
A DD Translation is currently implemented with Root Vector3D.
static const float k_ScaleFromDDDtoGeant
std::vector< DDExpandedNode > DDGeoHistory
Geometrical 'path' of the current node up to the root-node.
tuple filter
USE THIS FOR SKIMMED TRACKS process.p = cms.Path(process.hltLevel1GTSeed*process.skimming*process.offlineBeamSpot*process.TrackRefitter2) OTHERWISE USE THIS.
CaloCellGeometry::CornersMgr * cornersMgr()
virtual uint32_t getUnitID(const EcalBaseNumber &baseNumber) const
EcalTBHodoscopeGeometryLoaderFromDDD()
static const double * getParmPtr(const std::vector< double > &vd, ParMgr *mgr, ParVecVec &pvv)
const DDSolid & solid() const
Returns a reference object of the solid being the shape of this LogicalPart.
bool firstChild()
set the current node to the first child ...
unsigned int getDetIdForDDDNode(const DDFilteredView &fv)
A Filter accepts or rejects a DDExpandedNode based on a user-coded decision rule. ...
void setCriteria(const DDValue &nameVal, comp_op, log_op l=AND, bool asString=true, bool merged=true)
void allocateCorners(CaloCellGeometry::CornersVec::size_type n)
const DDTranslation & translation() const
The absolute translation of the current node.
void makeGeometry(const DDCompactView *cpv, CaloSubdetectorGeometry *ebg)
The DDGenericFilter is a runtime-parametrized Filter looking on DDSpecifcs.