15 #include <DetectorDescription/PersistentDDDObjects/interface/DDDToPersFactory.h>
26 std::cout<<
"WriteOneGeometryFromXML::WriteOneGeometryFromXML"<<std::endl;
32 std::cout<<
"WriteOneGeometryFromXML::~WriteOneGeometryFromXML"<<std::endl;
38 std::cout<<
"WriteOneGeometryFromXML::beginRun"<<std::endl;
39 PIdealGeometry* pgeom =
new PIdealGeometry;
42 std::cout<<
"PoolDBOutputService unavailable"<<std::endl;
55 DDCompactView::DDCompactView::graph_type gra = pDD->graph();
57 DDDToPersFactory dddFact;
60 for (; it != ed; ++it) {
61 if (! it->isDefined().second)
continue;
62 pm = dddFact.material ( *it );
63 pgeom->pMaterials.push_back ( *pm );
73 pr = dddFact.rotation ( mydr );
74 pgeom->pRotations.push_back ( *pr );
76 for (; rit !=
red; ++rit) {
77 if (! rit->isDefined().second)
continue;
79 if ( *(rit->matrix()) == *(rotn.
matrix()) )
continue;
80 pr = dddFact.rotation( *rit );
81 pgeom->pRotations.push_back ( *pr );
87 for (; sit != sed; ++sit) {
88 if (! sit->isDefined().second)
continue;
89 ps = dddFact.solid( *sit );
90 pgeom->pSolids.push_back( *ps );
103 adjl_iterator git = gra.begin();
104 adjl_iterator gend = gra.end();
108 for (; git != gend; ++git)
112 plp = dddFact.logicalPart ( ddLP );
113 pgeom->pLogicalParts.push_back( *plp );
119 DDCompactView::graph_type::edge_list::const_iterator cit = git->begin();
120 DDCompactView::graph_type::edge_list::const_iterator cend = git->end();
122 for (; cit != cend; ++cit)
125 ppp = dddFact.position ( ddLP, ddcurLP, gra.edgeData(cit->second), *pgeom,
rotNumSeed_ );
127 pgeom->pPosParts.push_back( *ppp );
135 std::vector<std::string> partSelections;
136 std::map<std::string, std::vector<std::pair<std::string, double> > >
values;
137 std::map<std::string, int> isEvaluated;
144 for (; spit != spend; ++spit) {
145 if ( !spit->isDefined().second )
continue;
146 psp = dddFact.specpar( *spit );
147 pgeom->pSpecPars.push_back( *psp );
150 std::cout <<
" did the static work? is there a size to this string storage? " << std::endl;
151 std::cout <<
" dddFact.pstrs.pStrings.size() = " << dddFact.pstrs.pStrings.size() << std::endl;
152 pgeom->pStrings = dddFact.pstrs.pStrings;
160 ,
"IdealGeometryRecord");
162 std::cout <<
"Tag is already present." << std::endl;
T getParameter(std::string const &) const
def_type isDefined() const
virtual void beginRun(const edm::Run &, edm::EventSetup const &)
#define DEFINE_FWK_MODULE(type)
DDName is used to identify DDD entities uniquely.
std::vector< double >::size_type index_type
Represents a uniquely identifyable rotation matrix.
static value_type & instance()
bool isNewTagRequest(const std::string &recordName)
WriteOneGeometryFromXML(const edm::ParameterSet &iConfig)
cond::Time_t beginOfTime() const
A DDLogicalPart aggregates information concerning material, solid and sensitveness ...
void createNewIOV(T *firstPayloadObj, cond::Time_t firstSinceTime, cond::Time_t firstTillTime, const std::string &recordName, bool withlogging=false)
~WriteOneGeometryFromXML()
cond::Time_t endOfTime() const
adj_list::const_iterator const_adj_iterator
static DDI::Store< DDName, DDI::Material * >::iterator begin()
static DDI::Store< DDName, DDI::Material * >::iterator end()
DDRotationMatrix * matrix()
ROOT::Math::Rotation3D DDRotationMatrix
A DDRotationMatrix is currently implemented with a ROOT Rotation3D.