diff --git a/DDCMS/include/DDCMS/DDCMS.h b/DDCMS/include/DDCMS/DDCMS.h index 5192332eb2705b48b296527a7dee1d897bc17aa2..7d15a05a794c0698d7f864e28cc5ff1f9162e7f5 100644 --- a/DDCMS/include/DDCMS/DDCMS.h +++ b/DDCMS/include/DDCMS/DDCMS.h @@ -52,6 +52,7 @@ namespace dd4hep { Namespace() = delete; /// Initializing constructor Namespace(ParsingContext* ctx, xml_h element); + Namespace(ParsingContext& ctx, xml_h element, bool); /// Initializing constructor Namespace(ParsingContext* ctx); /// Initializing constructor @@ -66,11 +67,37 @@ namespace dd4hep { std::string prepend(const std::string& n) const; /// Resolve namespace during XML parsing std::string real_name(const std::string& v) const; + /// Strip off the namespace part of a given name + static std::string obj_name(const std::string& name); + /// Return the namespace name of a component + static std::string ns_name(const std::string& n); template <typename T> T attr(xml_elt_t elt,const xml_tag_t& n) const { std::string val = real_name(elt.attr<std::string>(n)); elt.setAttr(n,val); return elt.attr<T>(n); } + /// Add a new constant to the namespace + void addConstant(const std::string& name, const std::string& value, const std::string& type) const; + /// Add a new constant to the namespace as fully indicated by the name + void addConstantNS(const std::string& name, const std::string& value, const std::string& type) const; + + /// Access material by its namespace dressed name + Material material(const std::string& name) const; + Solid solid(const std::string& name) const; + /// Add solid to current namespace + void addSolid(const std::string& name,Solid solid) const; + /// Add solid to current namespace as fully indicated by the name + void addSolidNS(const std::string& name,Solid solid) const; + + Volume volume(const std::string& name, bool exc=true) const; + /// Add volume to current namespace + void addVolume(Volume vol) const; + /// Add volume to current namespace as fully indicated by the name + void addVolumeNS(Volume vol) const; + + const Rotation3D& rotation(const std::string& name) const; + /// Add rotation matrix to current namespace + void addRotation(const std::string& name,const Rotation3D& rot) const; }; /// XML parser context to store intermediate stuff @@ -82,6 +109,7 @@ namespace dd4hep { */ class ParsingContext { public: + Detector* description; std::map<std::string, Rotation3D> rotations; std::map<std::string, Solid> shapes; std::map<std::string, Volume> volumes; @@ -89,20 +117,21 @@ namespace dd4hep { bool geo_inited = false; // Debug flags + bool debug_includes = false; bool debug_constants = false; bool debug_materials = false; + bool debug_rotations = false; bool debug_shapes = false; bool debug_volumes = false; bool debug_placements = false; bool debug_namespaces = false; bool debug_visattr = false; + bool debug_algorithms = false; public: - ParsingContext() { namespaces.push_back(""); } + ParsingContext(Detector* det) : description(det) { namespaces.push_back(""); } ~ParsingContext() = default; const std::string& ns() const { return namespaces.back(); } - Volume volume(const std::string& name) const; - const Rotation3D& rotation(const std::string& name) const; }; /// Encapsulation of the CMS detector description algorithm arguments @@ -137,6 +166,8 @@ namespace dd4hep { /// Access value of rParent child node std::string parentName() const; + /// Access value of child'name from the xml element + std::string childName() const; /// Check the existence of an argument by name bool find(const std::string& name) const; /// Access typed argument by name diff --git a/DDCMS/include/DDCMS/DDCMSPlugins.h b/DDCMS/include/DDCMS/DDCMSPlugins.h index 4600936be6a0a4c27dbdbf7218d0d00db204f38c..b7e1074cdca233ee852acbd696ccf668cdd74e75 100644 --- a/DDCMS/include/DDCMS/DDCMSPlugins.h +++ b/DDCMS/include/DDCMS/DDCMSPlugins.h @@ -19,6 +19,7 @@ // Framework includes #include "DD4hep/Plugins.h" +#include "CLHEP/Units/SystemOfUnits.h" #include "DDCMS/DDCMS.h" /// Namespace for the AIDA detector description toolkit @@ -36,26 +37,26 @@ namespace dd4hep { */ template <typename T> class DDCMSDetElementFactory : public PluginFactoryBase { public: - static Handle<NamedObject> create(Detector& description,cms::ParsingContext& ctxt,xml::Handle_t e,SensitiveDetector& sens); + static long create(Detector& description,cms::ParsingContext& ctxt,xml::Handle_t e,SensitiveDetector& sens); }; } /* End namespace dd4hep */ namespace { /// Forward declartion of the base factory template template <typename P, typename S> class Factory; - DD4HEP_PLUGIN_FACTORY_ARGS_4(ns::Named*,dd4hep::Detector*,dd4hep::cms::ParsingContext*,ns::xml_h*,dd4hep::SensitiveDetector*) - { return dd4hep::DDCMSDetElementFactory<P>::create(*a0,*a1,*a2,*a3).ptr(); } + DD4HEP_PLUGIN_FACTORY_ARGS_4(long,dd4hep::Detector*,dd4hep::cms::ParsingContext*,ns::xml_h*,dd4hep::SensitiveDetector*) + { return dd4hep::DDCMSDetElementFactory<P>::create(*a0,*a1,*a2,*a3); } } #define DECLARE_DDCMS_DETELEMENT(name,func) \ DD4HEP_OPEN_PLUGIN(dd4hep,ddcms_det_element_##name) { \ - template <> Handle<NamedObject> \ + template <> long \ DDCMSDetElementFactory< ddcms_det_element_##name >::create(dd4hep::Detector& d, \ cms::ParsingContext& c, \ xml::Handle_t e, \ SensitiveDetector& h) \ { return func(d,c,e,h); } \ DD4HEP_PLUGINSVC_FACTORY(ddcms_det_element_##name,name, \ - NamedObject*(dd4hep::Detector*,dd4hep::cms::ParsingContext*, \ - ns::xml_h*,dd4hep::SensitiveDetector*),__LINE__) } + long(dd4hep::Detector*,dd4hep::cms::ParsingContext*, \ + ns::xml_h*,dd4hep::SensitiveDetector*),__LINE__) } #endif /* DD4HEP_DDCMS_DDCMSPLUGINS_H */ diff --git a/DDCMS/include/DDCMS/DDCMSTags.h b/DDCMS/include/DDCMS/DDCMSTags.h index b11ccf673bf414173890826403493ae6c3620be1..7cabe34081d9c9f6e84b2f08a07f06e94173c108 100644 --- a/DDCMS/include/DDCMS/DDCMSTags.h +++ b/DDCMS/include/DDCMS/DDCMSTags.h @@ -76,7 +76,24 @@ namespace dd4hep { UNICODE(Polycone); UNICODE(ZSection); UNICODE(z); + + UNICODE(Trapezoid); + UNICODE(alp1); + UNICODE(h1); + UNICODE(bl1); + UNICODE(tl1); + UNICODE(alp2); + UNICODE(h2); + UNICODE(bl2); + UNICODE(tl2); + + UNICODE(Torus); + UNICODE(torusRadius); + UNICODE(innerRadius); + UNICODE(outerRadius); + UNICODE(SubtractionSolid); + UNICODE(LogicalPartSection); UNICODE(LogicalPart); UNICODE(rSolid); @@ -86,6 +103,7 @@ namespace dd4hep { UNICODE(PosPart); UNICODE(copyNumber); UNICODE(rParent); + UNICODE(ChildName); UNICODE(rChild); UNICODE(Translation); @@ -105,7 +123,10 @@ namespace dd4hep { UNICODE(debug_volumes); UNICODE(debug_placements); UNICODE(debug_namespaces); + UNICODE(debug_rotations); UNICODE(debug_visattr); + UNICODE(debug_includes); + UNICODE(debug_algorithms); /// DD4hep specific UNICODE(IncludeSection); diff --git a/DDCMS/src/DDCMS.cpp b/DDCMS/src/DDCMS.cpp index c7f6a22643eefb3d63466c6c1fb21ae696dc969c..a1dd309290dc4ca8bc8f8da07261b5de4537a293 100644 --- a/DDCMS/src/DDCMS.cpp +++ b/DDCMS/src/DDCMS.cpp @@ -16,10 +16,14 @@ //========================================================================== // Framework includes +#include "DD4hep/Path.h" #include "DD4hep/Printout.h" +#include "DD4hep/Detector.h" #include "DD4hep/BasicGrammar.h" #include "DDCMS/DDCMS.h" +#include <TClass.h> + // C/C++ include files #include <stdexcept> @@ -27,9 +31,11 @@ using namespace std; using namespace dd4hep; using namespace dd4hep::cms; +#define NAMESPACE_SEP '_' + Rotation3D dd4hep::cms::make_rotation3D(double thetaX, double phiX, - double thetaY, double phiY, - double thetaZ, double phiZ) { + double thetaY, double phiY, + double thetaZ, double phiZ) { Position posX(sin(thetaX) * cos(phiX), sin(thetaX) * sin(phiX), cos(thetaX)); Position posY(sin(thetaY) * cos(phiY), sin(thetaY) * sin(phiY), cos(thetaY)); Position posZ(sin(thetaZ) * cos(phiZ), sin(thetaZ) * sin(phiZ), cos(thetaZ)); @@ -37,20 +43,6 @@ Rotation3D dd4hep::cms::make_rotation3D(double thetaX, double phiX, return rot; } -Volume ParsingContext::volume(const std::string& name) const { - auto i = volumes.find(name); - if ( i != volumes.end() ) return (*i).second; - throw runtime_error("Unknown volume identifier:"+name); -} - -const Rotation3D& ParsingContext::rotation(const std::string& name) const { - static Rotation3D s_null; - auto i = rotations.find(name); - if ( i != rotations.end() ) return (*i).second; - if ( name.find("_NULL") == name.length()-5 ) return s_null; - throw runtime_error("Unknown rotation identifier:"+name); -} - /// Initializing constructor Namespace::Namespace(ParsingContext* ctx, xml_h element) : context(ctx) { xml_dim_t elt(element); @@ -64,11 +56,41 @@ Namespace::Namespace(ParsingContext* ctx, xml_h element) : context(ctx) { "DDCMS","+++ Current namespace is now: %s",name.c_str()); return; } - name = name.substr(0,name.find('.')); - context->namespaces.push_back(name.empty() ? name : name+'_'); + if ( has_label ) { + size_t idx = name.find('.'); + name = name.substr(0,idx); + } + else { + Path path(xml::DocumentHandler::system_path(element)); + name = path.filename().substr(0,path.filename().rfind('.')); + } + if ( !name.empty() ) name += NAMESPACE_SEP; + context->namespaces.push_back(name); pop = true; printout(context->debug_namespaces ? ALWAYS : DEBUG, "DDCMS","+++ Current namespace is now: %s",name.c_str()); + return; +} + +/// Initializing constructor +Namespace::Namespace(ParsingContext& ctx, xml_h element, bool ) : context(&ctx) { + xml_dim_t elt(element); + bool has_label = elt.hasAttr(_U(label)); + name = has_label ? elt.labelStr() : ""; + if ( has_label ) { + size_t idx = name.find('.'); + name = name.substr(0,idx); + } + else { + Path path(xml::DocumentHandler::system_path(element)); + name = path.filename().substr(0,path.filename().rfind('.')); + } + if ( !name.empty() ) name += NAMESPACE_SEP; + context->namespaces.push_back(name); + pop = true; + printout(context->debug_namespaces ? ALWAYS : DEBUG, + "DDCMS","+++ Current namespace is now: %s",name.c_str()); + return; } /// Initializing constructor @@ -91,12 +113,12 @@ Namespace::~Namespace() { } /// Prepend name with namespace -std::string Namespace::prepend(const std::string& n) const { +string Namespace::prepend(const string& n) const { return name + n; } /// Resolve namespace during XML parsing -std::string Namespace::real_name(const std::string& v) const { +string Namespace::real_name(const string& v) const { size_t idx, idq, idp; string val = v; while ( (idx=val.find('[')) != string::npos ) { @@ -107,12 +129,155 @@ std::string Namespace::real_name(const std::string& v) const { if ( idp == string::npos || idp > idq ) val.insert(idx,name); else if ( idp != string::npos && idp < idq ) - val[idp] = '_'; + val[idp] = NAMESPACE_SEP; } - while ( (idx=val.find(':')) != string::npos ) val[idx]='_'; + while ( (idx=val.find(':')) != string::npos ) val[idx]=NAMESPACE_SEP; return val; } +/// Return the namespace name of a component +string Namespace::ns_name(const string& nam) { + size_t idx; + if ( (idx=nam.find(':')) != string::npos ) + return nam.substr(0,idx); + else if ( (idx=nam.find('_')) != string::npos ) + return nam.substr(0,idx); + return ""; +} + +/// Strip off the namespace part of a given name +string Namespace::obj_name(const string& nam) { + size_t idx; + if ( (idx=nam.find(':')) != string::npos ) + return nam.substr(idx+1); + else if ( (idx=nam.find('_')) != string::npos ) + return nam.substr(idx+1); + return ""; +} + +/// Add a new constant to the namespace +void Namespace::addConstant(const string& nam, const string& val, const string& typ) const { + addConstantNS(prepend(nam), val, typ); +} + +/// Add a new constant to the namespace indicated by the name +void Namespace::addConstantNS(const string& nam, const string& val, const string& typ) const { + const string& v = val; + const string& n = nam; + printout(context->debug_constants ? ALWAYS : DEBUG, + "DDCMS","+++ Add constant object: %-40s = %s [type:%s]", + n.c_str(), v.c_str(), typ.c_str()); + _toDictionary(n, v, typ); + Constant c(n, v, typ); + context->description->addConstant(c); +} + +/// Access material by its namespace dressed name +Material Namespace::material(const string& nam) const { + return context->description->material(real_name(nam)); +} + +/// Add rotation matrix to current namespace +void Namespace::addRotation(const string& nam,const Rotation3D& rot) const { + string n = prepend(nam); + context->rotations[n] = rot; +} + +const Rotation3D& Namespace::rotation(const string& nam) const { + static Rotation3D s_null; + size_t idx; + auto i = context->rotations.find(nam); + if ( i != context->rotations.end() ) + return (*i).second; + else if ( nam == "NULL" ) + return s_null; + else if ( nam.find("_NULL") == nam.length()-5 ) + return s_null; + string n = nam; + if ( (idx=nam.find(':')) != string::npos ) { + n[idx] = NAMESPACE_SEP; + i = context->rotations.find(n); + if ( i != context->rotations.end() ) + return (*i).second; + } + for (const auto& r : context->rotations ) { + cout << r.first << endl; + } + throw runtime_error("Unknown rotation identifier:"+nam); +} + +/// Add rotation matrix to current namespace +void Namespace::addVolumeNS(Volume vol) const { + string n = vol.name(); + Solid s = vol.solid(); + Material m = vol.material(); + vol->SetName(n.c_str()); + context->volumes[n] = vol; + printout(context->debug_volumes ? ALWAYS : DEBUG, "DDCMS", + "+++ Add volume:%-38s Solid:%-26s[%-16s] Material:%s", + vol.name(), s.name(), s.type(), m.name()); +} + +/// Add rotation matrix to current namespace +void Namespace::addVolume(Volume vol) const { + string n = prepend(vol.name()); + Solid s = vol.solid(); + Material m = vol.material(); + vol->SetName(n.c_str()); + context->volumes[n] = vol; + printout(context->debug_volumes ? ALWAYS : DEBUG, "DDCMS", + "+++ Add volume:%-38s Solid:%-26s[%-16s] Material:%s", + vol.name(), s.name(), s.type(), m.name()); +} + +Volume Namespace::volume(const string& nam, bool exc) const { + size_t idx; + auto i = context->volumes.find(nam); + if ( i != context->volumes.end() ) { + return (*i).second; + } + if ( (idx=nam.find(':')) != string::npos ) { + string n = nam; + n[idx] = NAMESPACE_SEP; + i = context->volumes.find(n); + if ( i != context->volumes.end() ) + return (*i).second; + } + if ( exc ) { + throw runtime_error("Unknown volume identifier:"+nam); + } + return 0; +} + +/// Add solid to current namespace as fully indicated by the name +void Namespace::addSolidNS(const std::string& nam,Solid sol) const { + printout(context->debug_shapes ? ALWAYS : DEBUG, "DDCMS", + "+++ Add shape of type %s : %s",sol->IsA()->GetName(), nam.c_str()); + context->shapes[nam] = sol.setName(nam); +} + +/// Add solid to current namespace +void Namespace::addSolid(const string& nam, Solid sol) const { + addSolidNS(prepend(nam), sol); +} + +Solid Namespace::solid(const string& nam) const { + size_t idx; + string n = context->namespaces.back() + nam; + auto i = context->shapes.find(n); + if ( i != context->shapes.end() ) + return (*i).second; + if ( (idx=nam.find(':')) != string::npos ) { + n = real_name(nam); + n[idx] = NAMESPACE_SEP; + i = context->shapes.find(n); + if ( i != context->shapes.end() ) + return (*i).second; + } + i = context->shapes.find(nam); + if ( i != context->shapes.end() ) return (*i).second; + throw runtime_error("Unknown shape identifier:"+nam); +} AlgoArguments::AlgoArguments(ParsingContext& ctxt, xml_h elt) : context(ctxt), element(elt) @@ -121,15 +286,21 @@ AlgoArguments::AlgoArguments(ParsingContext& ctxt, xml_h elt) } /// Access value of rParent child node -std::string AlgoArguments::parentName() const { - Namespace ns(context); +string AlgoArguments::parentName() const { + Namespace n(context); xml_dim_t e(element); - string val = ns.real_name(xml_dim_t(e.child(_CMU(rParent))).nameStr()); + string val = n.real_name(xml_dim_t(e.child(_CMU(rParent))).nameStr()); return val; } +/// Access value of child'name from the xml element +string AlgoArguments::childName() const { + Namespace n(context); + return n.real_name(value<string>("ChildName")); +} + /// Check the existence of an argument by name -bool AlgoArguments::find(const std::string& nam) const { +bool AlgoArguments::find(const string& nam) const { for(xml_coll_t p(element,_U(star)); p; ++p) { string n = p.attr<string>(_U(name)); if ( n == nam ) { @@ -147,7 +318,8 @@ xml_h AlgoArguments::raw_arg(const string& nam) const { return p; } } - throw runtime_error("DDCMS: Attempt to access non-existing algorithm option: " + name); + except("DDCMS","+++ Attempt to access non-existing algorithm option %s[%s]",name.c_str(),nam.c_str()); + throw runtime_error("DDCMS: Attempt to access non-existing algorithm option."); } /// Access namespace resolved argument as a string by name @@ -182,7 +354,7 @@ namespace { except("DDCMS","+++ VectorParam<%s>: %s -> %s [Invalid entry count: %d <> %ld]", typ.c_str(), nam.c_str(), val.c_str(), num, data.size()); } - printout(INFO,"DDCMS","+++ VectorParam<%s>: ret=%d %s -> %s", + printout(DEBUG,"DDCMS","+++ VectorParam<%s>: ret=%d %s -> %s", typ.c_str(), res, nam.c_str(), gr.str(&data).c_str()); return data; } @@ -196,22 +368,32 @@ namespace { template <> string __cnv<string>(const string& arg) { return arg; } template <typename T> vector<T> __cnvVect(const AlgoArguments* a, const char* req_typ, xml_h xp) { - vector<string> str_data = raw_vector(a, xp); + Namespace ns(a->context); + string piece; + string nam = xp.attr<string>(_U(name)); string typ = xp.attr<string>(_U(type)); + string val = xp.text(); + int num = xp.attr<int>(_CMU(nEntries)); if ( typ != req_typ ) { - string nam = xp.attr<string>(_U(name)); - const BasicGrammar& gr = BasicGrammar::instance<vector<string> >(); except("DDCMS", "+++ VectorParam<%s | %s>: %s -> <%s> %s [Incompatible vector-type]", req_typ, typ.c_str(), nam.c_str(), typeName(typeid(T)).c_str(), - gr.str(&str_data).c_str()); + val.c_str()); } - vector<T> res_data; - for(const auto& v : str_data) { - T d = __cnv<T>(v); - res_data.push_back(d); + vector<T> data; + val = remove_whitespace(val); + if ( !val.empty() ) val += ','; + for(size_t idx=0, idq=val.find(',',idx); + idx != string::npos && idq != string::npos; + idx=++idq, idq=val.find(',',idx)) + { + piece = ns.real_name(val.substr(idx,idq-idx)); + T d = __cnv<T>(piece); + data.push_back(d); } - return res_data; + printout(DEBUG,"DDCMS","+++ VectorParam<%s>: %s[%d] -> %s", + typ.c_str(), nam.c_str(), num, val.c_str()); + return data; } } diff --git a/DDCMS/src/plugins/DDDefinitions2Objects.cpp b/DDCMS/src/plugins/DDDefinitions2Objects.cpp index 16482c5de5b6ade78fe9f53125ba3815d20aeacf..5a4cc790b3caed4fbb4d369f90585cdbc8f60d01 100644 --- a/DDCMS/src/plugins/DDDefinitions2Objects.cpp +++ b/DDCMS/src/plugins/DDDefinitions2Objects.cpp @@ -21,7 +21,6 @@ #include "DD4hep/GeoHandler.h" #include "DD4hep/Printout.h" #include "DD4hep/Plugins.h" -#include "DD4hep/Path.h" #include "DD4hep/detail/SegmentationsInterna.h" #include "DD4hep/detail/DetectorInterna.h" #include "DD4hep/detail/ObjectsInterna.h" @@ -51,10 +50,17 @@ namespace dd4hep { static UInt_t unique_mat_id = 0xAFFEFEED; - class dddefinition; - class include; + class include_constants; + class include_load; + class include_unload; + class print_xml_doc; class constantssection; class constant; + class resolve { + public: + std::vector<xml::Document> includes; + std::map<std::string,std::string> unresolvedConst, allConst, originalConst; + }; class materialsection; class elementarymaterial; @@ -62,6 +68,7 @@ namespace dd4hep { class rotationsection; class rotation; + class transform3d; class pospartsection; class pospart; @@ -70,9 +77,15 @@ namespace dd4hep { class logicalpart; class solidsection; - class tubs; + class trapezoid; class polycone; + class torus; + class tubs; class box; + class unionsolid; + class intersectionsolid; + class subtractionsolid; + class algorithm; class vissection; @@ -82,114 +95,177 @@ namespace dd4hep { } /// Converter instances implemented in this compilation unit - template <> void Converter<dddefinition>::operator()(xml_h element) const; template <> void Converter<debug>::operator()(xml_h element) const; + template <> void Converter<print_xml_doc>::operator()(xml_h element) const; + /// Converter for <ConstantsSection/> tags template <> void Converter<constantssection>::operator()(xml_h element) const; template <> void Converter<constant>::operator()(xml_h element) const; + template <> void Converter<resolve>::operator()(xml_h element) const; + /// Converter for <VisSection/> tags template <> void Converter<vissection>::operator()(xml_h element) const; template <> void Converter<vis_apply>::operator()(xml_h element) const; template <> void Converter<vis>::operator()(xml_h element) const; + /// Converter for <MaterialSection/> tags template <> void Converter<materialsection>::operator()(xml_h element) const; template <> void Converter<elementarymaterial>::operator()(xml_h element) const; template <> void Converter<compositematerial>::operator()(xml_h element) const; + /// Converter for <RotationSection/> tags template <> void Converter<rotationsection>::operator()(xml_h element) const; + /// Converter for <Rotation/> tags template <> void Converter<rotation>::operator()(xml_h element) const; + template <> void Converter<transform3d>::operator()(xml_h element) const; + /// Generic converter for <LogicalPartSection/> tags template <> void Converter<logicalpartsection>::operator()(xml_h element) const; template <> void Converter<logicalpart>::operator()(xml_h element) const; template <> void Converter<pospartsection>::operator()(xml_h element) const; + /// Converter for <PosPart/> tags template <> void Converter<pospart>::operator()(xml_h element) const; + /// Generic converter for solids: <SolidSection/> tags template <> void Converter<solidsection>::operator()(xml_h element) const; + /// Converter for <UnionSolid/> tags + template <> void Converter<unionsolid>::operator()(xml_h element) const; + /// Converter for <SubtractionSolid/> tags + template <> void Converter<subtractionsolid>::operator()(xml_h element) const; + /// Converter for <IntersectionSolid/> tags + template <> void Converter<intersectionsolid>::operator()(xml_h element) const; + /// Converter for <Trapezoid/> tags + template <> void Converter<trapezoid>::operator()(xml_h element) const; + /// Converter for <Polycone/> tags template <> void Converter<polycone>::operator()(xml_h element) const; + /// Converter for <Torus/> tags + template <> void Converter<torus>::operator()(xml_h element) const; + /// Converter for <Tubs/> tags template <> void Converter<tubs>::operator()(xml_h element) const; + /// Converter for <Box/> tags template <> void Converter<box>::operator()(xml_h element) const; + /// Converter for <Algorithm/> tags template <> void Converter<algorithm>::operator()(xml_h element) const; - /// DD4hep specific - template <> void Converter<include>::operator()(xml_h element) const; + /// DD4hep specific: Load include file + template <> void Converter<include_load>::operator()(xml_h element) const; + /// DD4hep specific: Unload include file + template <> void Converter<include_unload>::operator()(xml_h element) const; + /// DD4hep specific: Process constants objects + template <> void Converter<include_constants>::operator()(xml_h element) const; } /// Converter for <ConstantsSection/> tags template <> void Converter<constantssection>::operator()(xml_h element) const { - ParsingContext* context = _param<ParsingContext>(); - Namespace ns(context, element); - xml_coll_t(element, _CMU(Constant)).for_each(Converter<constant>(description,context)); + Namespace ns(_param<ParsingContext>(), element); + xml_coll_t(element, _CMU(Constant)).for_each(Converter<constant>(description,ns.context,optional)); } /// Converter for <VisSection/> tags template <> void Converter<vissection>::operator()(xml_h element) const { - ParsingContext* context = _param<ParsingContext>(); - Namespace ns(context, element); - xml_coll_t(element, _CMU(vis)).for_each(Converter<vis>(description,context)); + Namespace ns(_param<ParsingContext>(), element); + xml_coll_t(element, _CMU(vis)).for_each(Converter<vis>(description,ns.context,optional)); } +/// Converter for <MaterialSection/> tags template <> void Converter<materialsection>::operator()(xml_h element) const { - ParsingContext* context = _param<ParsingContext>(); - Namespace ns(context, element); - xml_coll_t(element, _CMU(ElementaryMaterial)).for_each(Converter<elementarymaterial>(description,context)); - xml_coll_t(element, _CMU(CompositeMaterial)).for_each(Converter<compositematerial>(description,context)); + Namespace ns(_param<ParsingContext>(), element); + xml_coll_t(element, _CMU(ElementaryMaterial)).for_each(Converter<elementarymaterial>(description,ns.context,optional)); + xml_coll_t(element, _CMU(CompositeMaterial)).for_each(Converter<compositematerial>(description,ns.context,optional)); } template <> void Converter<rotationsection>::operator()(xml_h element) const { Namespace ns(_param<ParsingContext>(), element); - xml_coll_t(element, _CMU(Rotation)).for_each(Converter<rotation>(description,ns.context)); + xml_coll_t(element, _CMU(Rotation)).for_each(Converter<rotation>(description,ns.context,optional)); } template <> void Converter<pospartsection>::operator()(xml_h element) const { Namespace ns(_param<ParsingContext>(), element); - xml_coll_t(element, _CMU(PosPart)).for_each(Converter<pospart>(description,ns.context)); + xml_coll_t(element, _CMU(PosPart)).for_each(Converter<pospart>(description,ns.context,optional)); } +/// Generic converter for <LogicalPartSection/> tags template <> void Converter<logicalpartsection>::operator()(xml_h element) const { Namespace ns(_param<ParsingContext>(), element); - xml_coll_t(element, _CMU(LogicalPart)).for_each(Converter<logicalpart>(description,ns.context)); + xml_coll_t(element, _CMU(LogicalPart)).for_each(Converter<logicalpart>(description,ns.context,optional)); } +/// Generic converter for <SolidSection/> tags template <> void Converter<solidsection>::operator()(xml_h element) const { Namespace ns(_param<ParsingContext>(), element); for(xml_coll_t solid(element, _U(star)); solid; ++solid) { string tag = solid.tag(); if ( tag == "Box" ) - Converter<box>(description,ns.context)(solid); + Converter<box>(description,ns.context,optional)(solid); else if ( tag == "Polycone" ) - Converter<polycone>(description,ns.context)(solid); + Converter<polycone>(description,ns.context,optional)(solid); else if ( tag == "Tubs" ) - Converter<tubs>(description,ns.context)(solid); - else - printout(ERROR,"DDCMS","+++ Request to process unknown shape of type %s",tag.c_str()); + Converter<tubs>(description,ns.context,optional)(solid); + else if ( tag == "Torus" ) + Converter<torus>(description,ns.context,optional)(solid); + else if ( tag == "Trapezoid" ) + Converter<trapezoid>(description,ns.context,optional)(solid); + else if ( tag == "UnionSolid" ) + Converter<unionsolid>(description,ns.context,optional)(solid); + else if ( tag == "SubtractionSolid" ) + Converter<subtractionsolid>(description,ns.context,optional)(solid); + else if ( tag == "IntersectionSolid" ) + Converter<intersectionsolid>(description,ns.context,optional)(solid); + else { + string nam = xml_dim_t(solid).nameStr(); + printout(ERROR,"DDCMS","+++ Request to process unknown shape %s [%s]", + nam.c_str(), tag.c_str()); + } } } /// Converter for <Constant/> tags template <> void Converter<constant>::operator()(xml_h element) const { Namespace ns(_param<ParsingContext>()); - xml_dim_t constant(element); - xml_dim_t parent(constant.parent()); - bool eval = parent.hasAttr(_U(eval)) ? parent.attr<bool>(_U(eval)) : false; - string val = "";//ns.real_name(constant.attr<string>(_U(value))); - string nam = ns.prepend(constant.nameStr()); - string typ = eval ? "number" : "string"; - - if ( constant.hasAttr(_U(type)) ) typ = constant.typeStr(); - if ( nam == "pixbarladderfull_CFStripY" ) { // debugging - val = ns.real_name(constant.attr<string>(_U(value))); + resolve* res = _option<resolve>(); + xml_dim_t constant = element; + xml_dim_t par = constant.parent(); + bool eval = par.hasAttr(_U(eval)) ? par.attr<bool>(_U(eval)) : false; + string val = constant.valueStr(); + string nam = constant.nameStr(); + string real = ns.prepend(nam); + string typ = eval ? "number" : "string"; + size_t idx = val.find('['); + + if ( constant.hasAttr(_U(type)) ) + typ = constant.typeStr(); + + if ( idx == string::npos || typ == "string" ) { + try { + ns.addConstant(nam, val, typ); + res->allConst[real] = val; + res->originalConst[real] = val; + } + catch(const exception& e) { + printout(INFO,"DDCMS","++ Unresolved constant: %s = %s [%s]. Try to resolve later. [%s]", + real.c_str(), val.c_str(), typ.c_str(), e.what()); + } + return; } - else { - val = ns.real_name(constant.attr<string>(_U(value))); + // Setup the resolution mechanism in Converter<resolve> + while ( idx != string::npos ) { + ++idx; + size_t idp = val.find(':',idx); + size_t idq = val.find(']',idx); + if ( idp == string::npos || idp > idq ) + val.insert(idx,ns.name); + else if ( idp != string::npos && idp < idq ) + val[idp] = '_'; + idx = val.find('[',idx); } + while ( (idx=val.find(':')) != string::npos ) val[idx]='_'; printout(ns.context->debug_constants ? ALWAYS : DEBUG, - "DDCMS","+++ Add constant object: %s = %s [type:%s]", - nam.c_str(), val.c_str(), typ.c_str()); - Constant c(nam, val, typ); - _toDictionary(nam, val, typ); - description.addConstant(c); + "Constant","Unresolved: %s -> %s",real.c_str(),val.c_str()); + res->allConst[real] = val; + res->originalConst[real] = val; + res->unresolvedConst[real] = val; } /** Convert compact visualization attribute to Detector visualization attribute @@ -259,7 +335,7 @@ template <> void Converter<elementarymaterial>::operator()(xml_h element) const TGeoElement* elt = tab->FindElement(xmat.nameStr().c_str()); printout(ns.context->debug_materials ? ALWAYS : DEBUG, "DDCMS", - "++ Converting material %-48s Density: %.3f.", + "+++ Converting material %-48s Density: %.3f.", ('"'+nam+'"').c_str(), density); if ( !elt ) { @@ -337,91 +413,135 @@ template <> void Converter<rotation>::operator()(xml_h element) const { ParsingContext* ctx = _param<ParsingContext>(); Namespace ns(ctx); xml_dim_t xrot(element); - string nam = ns.prepend(xrot.nameStr()); - double thetaX = xrot.hasAttr(_CMU(thetaX)) ? xrot.attr<double>(_CMU(thetaX)) : 0e0; - double phiX = xrot.hasAttr(_CMU(phiX)) ? xrot.attr<double>(_CMU(phiX)) : 0e0; - double thetaY = xrot.hasAttr(_CMU(thetaY)) ? xrot.attr<double>(_CMU(thetaY)) : 0e0; - double phiY = xrot.hasAttr(_CMU(phiY)) ? xrot.attr<double>(_CMU(phiY)) : 0e0; - double thetaZ = xrot.hasAttr(_CMU(thetaZ)) ? xrot.attr<double>(_CMU(thetaZ)) : 0e0; - double phiZ = xrot.hasAttr(_CMU(phiZ)) ? xrot.attr<double>(_CMU(phiZ)) : 0e0; - + string nam = xrot.nameStr(); + double thetaX = xrot.hasAttr(_CMU(thetaX)) ? ns.attr<double>(xrot,_CMU(thetaX)) : 0e0; + double phiX = xrot.hasAttr(_CMU(phiX)) ? ns.attr<double>(xrot,_CMU(phiX)) : 0e0; + double thetaY = xrot.hasAttr(_CMU(thetaY)) ? ns.attr<double>(xrot,_CMU(thetaY)) : 0e0; + double phiY = xrot.hasAttr(_CMU(phiY)) ? ns.attr<double>(xrot,_CMU(phiY)) : 0e0; + double thetaZ = xrot.hasAttr(_CMU(thetaZ)) ? ns.attr<double>(xrot,_CMU(thetaZ)) : 0e0; + double phiZ = xrot.hasAttr(_CMU(phiZ)) ? ns.attr<double>(xrot,_CMU(phiZ)) : 0e0; Rotation3D rot = make_rotation3D(thetaX, phiX, thetaY, phiY, thetaZ, phiZ); - ctx->rotations[nam] = rot; + printout(ctx->debug_rotations ? ALWAYS : DEBUG, + "DDCMS","+++ Adding rotation: %-32s: (theta/phi)[rad] X: %6.3f %6.3f Y: %6.3f %6.3f Z: %6.3f %6.3f", + ns.prepend(nam).c_str(),thetaX,phiX,thetaY,phiY,thetaZ,phiZ); + ns.addRotation(nam, rot); } -/// Converter for <Rotation/> tags +/// Converter for <Logicalpart/> tags template <> void Converter<logicalpart>::operator()(xml_h element) const { Namespace ns(_param<ParsingContext>()); xml_dim_t e(element); - string sol_nam = xml_dim_t(e.child(_CMU(rSolid))).nameStr(); - string mat_nam = xml_dim_t(e.child(_CMU(rMaterial))).nameStr(); - Material material = description.material(ns.real_name(mat_nam)); - Solid solid = ns.context->shapes[sol_nam]; - Volume volume(ns.prepend(e.nameStr()), solid, material); - - printout(ns.context->debug_volumes ? ALWAYS : DEBUG, "DDCMS", - "+++ Volume:%-24s Solid:%-24s [%-24s] Material:%s", - volume.name(), solid.name(), solid.type(), material.name()); - - ns.context->volumes[volume.name()] = volume; + string sol = e.child(_CMU(rSolid)).attr<string>(_U(name)); + string mat = e.child(_CMU(rMaterial)).attr<string>(_U(name)); + ns.addVolume(Volume(e.nameStr(), ns.solid(sol), ns.material(mat))); } -/// Converter for <Rotation/> tags -template <> void Converter<pospart>::operator()(xml_h element) const { - Namespace ns(_param<ParsingContext>()); - xml_dim_t e(element); - int copy = e.attr<int>(_CMU(copyNumber)); - string parent_nam = ns.real_name(xml_dim_t(e.child(_CMU(rParent))).nameStr()); - string child_nam = ns.real_name(xml_dim_t(e.child(_CMU(rChild))).nameStr()); - Volume parent = ns.context->volumes[parent_nam]; - Volume child = ns.context->volumes[child_nam]; - xml_dim_t translation(e.child(_CMU(Translation),false)); - xml_dim_t rotation(e.child(_CMU(Rotation),false)); - xml_dim_t refRotation(e.child(_CMU(rRotation),false)); +/// Helper converter +template <> void Converter<transform3d>::operator()(xml_h element) const { + Namespace ns(_param<ParsingContext>()); + Transform3D* tr = _option<Transform3D>(); + xml_dim_t e(element); + xml_dim_t translation = e.child(_CMU(Translation),false); + xml_dim_t rotation = e.child(_CMU(Rotation),false); + xml_dim_t refRotation = e.child(_CMU(rRotation),false); Position pos; - RotationZYX rot; + Rotation3D rot; - printout(ns.context->debug_placements ? ALWAYS : DEBUG, "DDCMS", - "+++ %s Parent: %-24s [%s] Child: %-32s [%s] copy:%d", - e.tag().c_str(), - parent_nam.c_str(), parent.isValid() ? "VALID" : "INVALID", - child_nam.c_str(), child.isValid() ? "VALID" : "INVALID", - copy); if ( translation.ptr() ) { - double x = ns.attr<double>(translation,_U(x)); - double y = ns.attr<double>(translation,_U(y)); - double z = ns.attr<double>(translation,_U(z)); + double x = ns.attr<double>(translation,_U(x)); + double y = ns.attr<double>(translation,_U(y)); + double z = ns.attr<double>(translation,_U(z)); pos = Position(x,y,z); } if ( rotation.ptr() ) { - double x = ns.attr<double>(rotation,_U(x)); - double y = ns.attr<double>(rotation,_U(y)); - double z = ns.attr<double>(rotation,_U(z)); + double x = ns.attr<double>(rotation,_U(x)); + double y = ns.attr<double>(rotation,_U(y)); + double z = ns.attr<double>(rotation,_U(z)); rot = RotationZYX(z,y,x); } + else if ( refRotation.ptr() ) { + rot = ns.rotation(refRotation.nameStr()); + } + *tr = Transform3D(rot,pos); +} + +/// Converter for <PosPart/> tags +template <> void Converter<pospart>::operator()(xml_h element) const { + Namespace ns(_param<ParsingContext>()); + xml_dim_t e(element); + int copy = e.attr<int>(_CMU(copyNumber)); + string parent_nam = ns.attr<string>(e.child(_CMU(rParent)),_U(name)); + string child_nam = ns.attr<string>(e.child(_CMU(rChild)),_U(name)); + Volume parent = ns.volume(parent_nam); + Volume child = ns.volume(child_nam, false); + + printout(ns.context->debug_placements ? ALWAYS : DEBUG, "DDCMS", + "+++ %s Parent: %-24s [%s] Child: %-32s [%s] copy:%d", + e.tag().c_str(), + parent_nam.c_str(), parent.isValid() ? "VALID" : "INVALID", + child_nam.c_str(), child.isValid() ? "VALID" : "INVALID", + copy); PlacedVolume pv; - if ( child.isValid() ) { - if ( !translation.ptr() && !rotation.ptr() ) - pv = parent.placeVolume(child); - else if ( translation.ptr() && !rotation.ptr() ) - pv = parent.placeVolume(child,pos); - else if ( !translation.ptr() && rotation.ptr() ) - pv = parent.placeVolume(child,rot); - else { - Transform3D trafo(rot,pos); - pv = parent.placeVolume(child,rot); - } + if ( child.isValid() ) { + Transform3D trafo; + Converter<transform3d>(description,param,&trafo)(element); + pv = parent.placeVolume(child,trafo); } if ( !pv.isValid() ) { - printout(ERROR,"DDCMS","+++ Placement FAILED!"); + printout(ERROR,"DDCMS","+++ Placement FAILED! Parent:%s Child:%s Valid:%s", + parent.name(), child_nam.c_str(), yes_no(child.isValid())); } } +template <typename TYPE> +static void convert_boolean(ParsingContext* ctx, xml_h element) { + Namespace ns(ctx); + xml_dim_t e(element); + string nam = e.nameStr(); + Solid solids[2]; + Solid boolean; + int cnt=0; + + for(xml_coll_t c(element, _CMU(rSolid)); cnt<2 && c; ++c, ++cnt) + solids[cnt] = ns.solid(c.attr<string>(_U(name))); + + if ( cnt != 2 ) { + except("DDCMS","+++ Failed to create blooean solid %s. Found only %d parts.",nam.c_str(), cnt); + } + printout(ns.context->debug_placements ? ALWAYS : DEBUG, "DDCMS", + "+++ SubtractionSolid: %s Left: %-32s Right: %-32s", + nam.c_str(), solids[0]->GetName(), solids[1]->GetName()); + + if ( solids[0].isValid() && solids[1].isValid() ) { + Transform3D trafo; + Converter<transform3d>(*ctx->description,ctx,&trafo)(element); + boolean = TYPE(solids[0],solids[1],trafo); + } + if ( !boolean.isValid() ) + except("DDCMS","+++ FAILED to construct subtraction solid: %s",nam.c_str()); + ns.addSolid(nam,boolean); +} + +/// Converter for <SubtractionSolid/> tags +template <> void Converter<unionsolid>::operator()(xml_h element) const { + convert_boolean<UnionSolid>(_param<ParsingContext>(),element); +} + +/// Converter for <SubtractionSolid/> tags +template <> void Converter<subtractionsolid>::operator()(xml_h element) const { + convert_boolean<SubtractionSolid>(_param<ParsingContext>(),element); +} + +/// Converter for <SubtractionSolid/> tags +template <> void Converter<intersectionsolid>::operator()(xml_h element) const { + convert_boolean<IntersectionSolid>(_param<ParsingContext>(),element); +} + /// Converter for <Polycone/> tags template <> void Converter<polycone>::operator()(xml_h element) const { Namespace ns(_param<ParsingContext>()); xml_dim_t e(element); - string nam = e.nameStr(); + string nam = e.nameStr(); double startPhi = ns.attr<double>(e,_CMU(startPhi)); double deltaPhi = ns.attr<double>(e,_CMU(deltaPhi)); vector<double> z, rmin, rmax; @@ -432,33 +552,64 @@ template <> void Converter<polycone>::operator()(xml_h element) const { z.push_back(ns.attr<double>(zplane,_CMU(z))); } printout(ns.context->debug_shapes ? ALWAYS : DEBUG, "DDCMS", - "+++ Processing shape of type %s : %s",e.tag().c_str(), nam.c_str()); - printout(ns.context->debug_shapes ? ALWAYS : DEBUG, "DDCMS", - "+++ startPhi=%10.3f [rad] deltaPhi=%10.3f [rad] %4ld z-planes", + "+ Polycone: startPhi=%10.3f [rad] deltaPhi=%10.3f [rad] %4ld z-planes", startPhi, deltaPhi, z.size()); - Polycone pc(startPhi,deltaPhi,rmin,rmax,z); - ns.context->shapes[nam] = pc.setName(nam); + ns.addSolid(nam, Polycone(startPhi,deltaPhi,rmin,rmax,z)); } -/// Converter for <Tubs/> tags -template <> void Converter<tubs>::operator()(xml_h element) const { +/// Converter for <Torus/> tags +template <> void Converter<torus>::operator()(xml_h element) const { Namespace ns(_param<ParsingContext>()); xml_dim_t e(element); - string nam = e.nameStr(); - double dz = ns.attr<double>(e,_CMU(dz)); - double rmin = ns.attr<double>(e,_CMU(rMin)); - double rmax = ns.attr<double>(e,_CMU(rMax)); + string nam = e.nameStr(); + double r = ns.attr<double>(e,_CMU(torusRadius)); + double rinner = ns.attr<double>(e,_CMU(innerRadius)); + double router = ns.attr<double>(e,_CMU(outerRadius)); double startPhi = ns.attr<double>(e,_CMU(startPhi)); double deltaPhi = ns.attr<double>(e,_CMU(deltaPhi)); + printout(ns.context->debug_shapes ? ALWAYS : DEBUG, "DDCMS", + "+ Torus: r=%10.3f [cm] r_inner=%10.3f [cm] r_outer=%10.3f [cm]" + " startPhi=%10.3f [rad] deltaPhi=%10.3f [rad]", + r, rinner, router, startPhi, deltaPhi); + ns.addSolid(nam, Torus(r, rinner, router, startPhi, deltaPhi)); +} +/// Converter for <Trapezoid/> tags +template <> void Converter<trapezoid>::operator()(xml_h element) const { + Namespace ns(_param<ParsingContext>()); + xml_dim_t e(element); + string nam = e.nameStr(); + double dz = ns.attr<double>(e,_U(dz)); + double alp1 = ns.attr<double>(e,_CMU(alp1)); + double bl1 = ns.attr<double>(e,_CMU(bl1)); + double tl1 = ns.attr<double>(e,_CMU(tl1)); + double h1 = ns.attr<double>(e,_CMU(h1)); + double alp2 = ns.attr<double>(e,_CMU(alp2)); + double bl2 = ns.attr<double>(e,_CMU(bl2)); + double tl2 = ns.attr<double>(e,_CMU(tl2)); + double h2 = ns.attr<double>(e,_CMU(h2)); + double phi = ns.attr<double>(e,_U(phi)); + double theta = ns.attr<double>(e,_U(theta)); printout(ns.context->debug_shapes ? ALWAYS : DEBUG, "DDCMS", - "+++ Processing shape of type %s : %s",e.tag().c_str(), nam.c_str()); + "+ Trapezoid: dz=%10.3f [cm] alp1:%.3f bl1=%.3f tl1=%.3f alp2=%.3f bl2=%.3f tl2=%.3f h2=%.3f phi=%.3f theta=%.3f", + dz, alp1, bl1, tl1, h1, alp2, bl2, tl2, h2, phi, theta); + ns.addSolid(nam, Trap(dz, theta, phi, h1, bl1, tl1, alp1, h2, bl2, tl2, alp2)); +} + +/// Converter for <Tubs/> tags +template <> void Converter<tubs>::operator()(xml_h element) const { + Namespace ns(_param<ParsingContext>()); + xml_dim_t e(element); + string nam = e.nameStr(); + double dz = ns.attr<double>(e,_CMU(dz)); + double rmin = ns.attr<double>(e,_CMU(rMin)); + double rmax = ns.attr<double>(e,_CMU(rMax)); + double startPhi = ns.attr<double>(e,_CMU(startPhi)); + double deltaPhi = ns.attr<double>(e,_CMU(deltaPhi)); printout(ns.context->debug_shapes ? ALWAYS : DEBUG, "DDCMS", - "+++ dz=%10.3f [cm] rmin=%10.3f [cm] rmax=%10.3f [cm]" + "+ Tubs: dz=%10.3f [cm] rmin=%10.3f [cm] rmax=%10.3f [cm]" " startPhi=%10.3f [rad] deltaPhi=%10.3f [rad]", dz, rmin, rmax, startPhi, deltaPhi); - - Tube tube(rmin,rmax,dz,startPhi,deltaPhi); - ns.context->shapes[nam] = tube.setName(nam); + ns.addSolid(nam, Tube(rmin,rmax,dz,startPhi,deltaPhi)); } /// Converter for <Box/> tags @@ -469,20 +620,31 @@ template <> void Converter<box>::operator()(xml_h element) const { double dx = ns.attr<double>(e,_CMU(dx)); double dy = ns.attr<double>(e,_CMU(dy)); double dz = ns.attr<double>(e,_CMU(dz)); - printout(ns.context->debug_shapes ? ALWAYS : DEBUG, "DDCMS", - "+++ Processing shape of type %s : %s",e.tag().c_str(), nam.c_str()); - printout(ns.context->debug_shapes ? ALWAYS : DEBUG, "DDCMS", - "+++ dx=%10.3f [cm] dy=%10.3f [cm] dz=%10.3f [cm]", dx, dy, dz); - Box box(dx,dy,dz); - ns.context->shapes[nam] = box.setName(nam); + "+ Box: dx=%10.3f [cm] dy=%10.3f [cm] dz=%10.3f [cm]", dx, dy, dz); + ns.addSolid(nam, Box(dx,dy,dz)); +} + +/// DD4hep specific Converter for <Include/> tags: process only the constants +template <> void Converter<include_load>::operator()(xml_h element) const { + xml::Document doc = xml::DocumentHandler().load(element, element.attr_value(_U(ref))); + string fname = xml::DocumentHandler::system_path(doc.root()); + printout(_param<ParsingContext>()->debug_includes ? ALWAYS : DEBUG, + "DDCMS","+++ Processing the CMS detector description %s",fname.c_str()); + _option<resolve>()->includes.push_back(doc); } -/// DD4hep specific Converter for <Include/> tags -template <> void Converter<include>::operator()(xml_h element) const { - xml::DocumentHolder doc(xml::DocumentHandler().load(element, element.attr_value(_U(ref)))); - xml_h node = doc.root(); - Converter<dddefinition>(description,_param<ParsingContext>())(node); +/// DD4hep specific Converter for <Include/> tags: process only the constants +template <> void Converter<include_unload>::operator()(xml_h element) const { + string fname = xml::DocumentHandler::system_path(element); + xml::DocumentHolder(xml_elt_t(element).document()).assign(0); + printout(_param<ParsingContext>()->debug_includes ? ALWAYS : DEBUG, + "DDCMS","+++ Finished processing %s",fname.c_str()); +} + +/// DD4hep specific Converter for <Include/> tags: process only the constants +template <> void Converter<include_constants>::operator()(xml_h element) const { + xml_coll_t(element, _CMU(ConstantsSection)).for_each(Converter<constantssection>(description,param,optional)); } /// Converter for <Algorithm/> tags @@ -497,9 +659,17 @@ template <> void Converter<algorithm>::operator()(xml_h element) const { // SensitiveDetector and Segmentation currently are undefined. Let's keep it like this // until we found something better..... - + printout(ns.context->debug_algorithms ? ALWAYS : DEBUG, + "DDCMS","+++ Start executing algorithm %s....",type.c_str()); + long ret = PluginService::Create<long>(type, &description, ns.context, &element, &sd); + if ( ret == 1 ) { + printout(ns.context->debug_algorithms ? ALWAYS : DEBUG, + "DDCMS", "+++ Executed algorithm: %08lX = %s", ret, name.c_str()); + return; + } +#if 0 DetElement det(PluginService::Create<NamedObject*>(type, &description, ns.context, &element, &sd)); - if (det.isValid()) { + if (det.isValid()) { // setChildTitles(make_pair(name, det)); if ( sd.isValid() ) { det->flag |= DetElement::Object::HAVE_SENSITIVE_DETECTOR; @@ -509,15 +679,15 @@ template <> void Converter<algorithm>::operator()(xml_h element) const { seg->detector = det; } } -#if 0 if (!det.isValid()) { PluginDebug dbg; PluginService::Create<NamedObject*>(type, &description, ns.context, &element, &sd); except("DDCMS","Failed to execute subdetector creation plugin. " + dbg.missingFactory(type)); } + description.addDetector(det); #endif ///description.addDetector(det); - printout(ERROR, "DDCMS", "++ FAILED NOT ADDING SUBDETECTOR %s", name.c_str()); + printout(ERROR, "DDCMS", "++ FAILED NOT ADDING SUBDETECTOR %08lX = %s",ret, name.c_str()); return; } catch (const exception& exc) { @@ -534,10 +704,13 @@ template <> void Converter<debug>::operator()(xml_h dbg) const { Namespace ns(_param<ParsingContext>()); if ( dbg.hasChild(_CMU(debug_constants)) ) ns.context->debug_constants = true; if ( dbg.hasChild(_CMU(debug_materials)) ) ns.context->debug_materials = true; + if ( dbg.hasChild(_CMU(debug_rotations)) ) ns.context->debug_rotations = true; if ( dbg.hasChild(_CMU(debug_shapes)) ) ns.context->debug_shapes = true; if ( dbg.hasChild(_CMU(debug_volumes)) ) ns.context->debug_volumes = true; if ( dbg.hasChild(_CMU(debug_placements)) ) ns.context->debug_placements = true; if ( dbg.hasChild(_CMU(debug_namespaces)) ) ns.context->debug_namespaces = true; + if ( dbg.hasChild(_CMU(debug_includes)) ) ns.context->debug_includes = true; + if ( dbg.hasChild(_CMU(debug_algorithms)) ) ns.context->debug_algorithms = true; } template <> void Converter<vis_apply>::operator()(xml_h /* dddefinition */) const { @@ -559,36 +732,140 @@ template <> void Converter<vis_apply>::operator()(xml_h /* dddefinition */) cons VisPatcher(description).patch(); } +template <> void Converter<resolve>::operator()(xml_h /* element */) const { + ParsingContext* ctx = _param<ParsingContext>(); + resolve* res = _option<resolve>(); + Namespace ns(ctx); + int count = 0; + + printout(ctx->debug_constants ? ALWAYS : DEBUG, + "DDCMS","+++ RESOLVING %ld unknown constants.....",res->unresolvedConst.size()); + while ( !res->unresolvedConst.empty() ) { + for(auto i=res->unresolvedConst.begin(); i!=res->unresolvedConst.end(); ++i ) { + const string& n = (*i).first; + string rep; + string& v = (*i).second; + size_t idx, idq; + for(idx=v.find('[',0); idx != string::npos; idx = v.find('[',idx+1) ) { + idq = v.find(']',idx+1); + rep = v.substr(idx+1,idq-idx-1); + auto r = res->allConst.find(rep); + if ( r != res->allConst.end() ) { + rep = "("+(*r).second+")"; + v.replace(idx,idq-idx+1,rep); + } + } + if ( v.find(']') == string::npos ) { + if ( v.find("-+") != string::npos || v.find("+-") != string::npos ) { + while ( (idx=v.find("-+")) != string::npos ) + v.replace(idx,2,"-"); + while ( (idx=v.find("+-")) != string::npos ) + v.replace(idx,2,"-"); + } + printout(ctx->debug_constants ? ALWAYS : DEBUG, + "DDCMS","+++ [%06ld] ---------- %-40s = %s", + res->unresolvedConst.size()-1,n.c_str(),res->originalConst[n].c_str()); + ns.addConstantNS(n, v, "number"); + res->unresolvedConst.erase(i); + break; + } + } + if ( ++count > 1000 ) break; + } + if ( !res->unresolvedConst.empty() ) { + for(const auto& e : res->unresolvedConst ) + printout(ERROR,"DDCMS","+++ Unresolved constant: %-40s = %s.",e.first.c_str(), e.second.c_str()); + except("DDCMS","++ FAILED to resolve %ld constant entries:",res->unresolvedConst.size()); + } + res->unresolvedConst.clear(); + res->originalConst.clear(); + res->allConst.clear(); +} + +template <> void Converter<print_xml_doc>::operator()(xml_h element) const { + string fname = xml::DocumentHandler::system_path(element); + printout(_param<ParsingContext>()->debug_includes ? ALWAYS : DEBUG, + "DDCMS","+++ Processing data from file:%s",fname.c_str()); +} + /// Converter for <DDDefinition/> tags -template <> void Converter<dddefinition>::operator()(xml_h element) const { +static long load_dddefinition(Detector& description, xml_h element) { static int num_calls = 0; - static ParsingContext ctxt; + static ParsingContext ctxt(&description); + Namespace ns(ctxt); xml_elt_t dddef(element); string fname = xml::DocumentHandler::system_path(element); bool open_geometry = true; bool close_geometry = true; ++num_calls; - Path path(fname); - string ns = path.filename().substr(0,path.filename().rfind('.')); - ctxt.namespaces.push_back(ns+'_'); + //Path path(fname); + //string ns = path.filename().substr(0,path.filename().rfind('.')); + //ctxt.namespaces.push_back(ns+'_'); xml_coll_t(dddef, _U(debug)).for_each(Converter<debug>(description,&ctxt)); // Here we define the order how XML elements are processed. // Be aware of dependencies. This can only defined once. // At the end it is a limitation of DOM.... printout(INFO,"DDCMS","+++ Processing the CMS detector description %s",fname.c_str()); - xml_coll_t(dddef, _CMU(ConstantsSection)).for_each(Converter<constantssection>(description,&ctxt)); - xml_coll_t(dddef, _CMU(VisSection)).for_each(Converter<vissection>(description,&ctxt)); - xml_coll_t(dddef, _CMU(IncludeSection)).for_each(_CMU(Include), Converter<include>(description,&ctxt)); - - xml_coll_t(dddef, _CMU(RotationSection)).for_each(Converter<rotationsection>(description,&ctxt)); - xml_coll_t(dddef, _CMU(MaterialSection)).for_each(Converter<materialsection>(description,&ctxt)); - + if ( num_calls == 1 ) { + resolve res; + xml::Document d; + Converter<print_xml_doc> print_doc(description,&ctxt); + print_doc((d=dddef.document()).root()); + xml_coll_t(dddef, _CMU(ConstantsSection)).for_each(Converter<constantssection>(description,&ctxt,&res)); + xml_coll_t(dddef, _CMU(VisSection)).for_each(Converter<vissection>(description,&ctxt)); + xml_coll_t(dddef, _CMU(RotationSection)).for_each(Converter<rotationsection>(description,&ctxt)); + xml_coll_t(dddef, _CMU(MaterialSection)).for_each(Converter<materialsection>(description,&ctxt)); + + xml_coll_t(dddef, _CMU(IncludeSection)).for_each(_CMU(Include), Converter<include_load>(description,&ctxt,&res)); + try { + for(xml::Document doc : res.includes ) Converter<include_constants>(description,&ctxt,&res)((d=doc).root()); + // Before we continue, we have to resolve all constants NOW! + Converter<resolve>(description,&ctxt,&res)(dddef); + // Now we can process the include files one by one..... + for(xml::Document doc : res.includes ) { + print_doc((d=doc).root()); + xml_coll_t(doc.root(),_CMU(MaterialSection)).for_each(Converter<materialsection>(description,&ctxt)); + } + ctxt.geo_inited = true; + description.init(); + ns.addVolume(description.worldVolume()); + for(xml::Document doc : res.includes ) { + print_doc((d=doc).root()); + xml_coll_t(doc.root(),_CMU(RotationSection)).for_each(Converter<rotationsection>(description,&ctxt)); + } + for(xml::Document doc : res.includes ) { + print_doc((d=doc).root()); + xml_coll_t(doc.root(), _CMU(SolidSection)).for_each(Converter<solidsection>(description,&ctxt)); + } + for(xml::Document doc : res.includes ) { + print_doc((d=doc).root()); + xml_coll_t(doc.root(), _CMU(LogicalPartSection)).for_each(Converter<logicalpartsection>(description,&ctxt)); + } + for(xml::Document doc : res.includes ) { + print_doc((d=doc).root()); + xml_coll_t(doc.root(), _CMU(Algorithm)).for_each(Converter<algorithm>(description,&ctxt)); + } + for(xml::Document doc : res.includes ) { + print_doc((d=doc).root()); + xml_coll_t(doc.root(), _CMU(PosPartSection)).for_each(Converter<pospartsection>(description,&ctxt)); + } + } + catch(const exception& e) { + printout(ERROR,"DDCMS","Exception while processing xml source:%s",d.uri().c_str()); + printout(ERROR,"DDCMS","----> %s", e.what()); + throw; + } + /// Unload all XML files after processing + for(xml::Document doc : res.includes ) Converter<include_unload>(description,&ctxt,&res)(doc.root()); + } + // Now process the actual geometry items xml_coll_t(dddef, _CMU(SolidSection)).for_each(Converter<solidsection>(description,&ctxt)); xml_coll_t(dddef, _CMU(LogicalPartSection)).for_each(Converter<logicalpartsection>(description,&ctxt)); + xml_coll_t(dddef, _CMU(Algorithm)).for_each(Converter<algorithm>(description,&ctxt)); xml_coll_t(dddef, _CMU(PosPartSection)).for_each(Converter<pospartsection>(description,&ctxt)); - +#if 0 /// Analyse algorithms to be called if ( !ctxt.geo_inited && dddef.hasChild(_CMU(Algorithm)) ) { ctxt.geo_inited = true; @@ -598,7 +875,7 @@ template <> void Converter<dddefinition>::operator()(xml_h element) const { ctxt.geo_inited = true; description.init(); } - xml_coll_t(dddef, _CMU(Algorithm)).for_each(Converter<algorithm>(description,&ctxt)); +#endif /// This should be the end of all processing....close the geometry if ( --num_calls == 0 && close_geometry ) { @@ -608,11 +885,6 @@ template <> void Converter<dddefinition>::operator()(xml_h element) const { } ctxt.namespaces.pop_back(); printout(INFO,"DDDefinition","+++ Finished processing %s",fname.c_str()); -} - -static long load_dddefinition(Detector& description, xml_h element) { - Converter<dddefinition>converter(description); - converter(element); return 1; } diff --git a/DDCMS/src/plugins/DDPixBarLayerAlgo.cpp b/DDCMS/src/plugins/DDPixBarLayerAlgo.cpp index 69c649024a4b2fe97669ceec66989e79e5befa80..44437faab4930c5ab81f232c7af260e03a54a7a4 100644 --- a/DDCMS/src/plugins/DDPixBarLayerAlgo.cpp +++ b/DDCMS/src/plugins/DDPixBarLayerAlgo.cpp @@ -19,7 +19,6 @@ #include "DD4hep/DetFactoryHelper.h" #include "DD4hep/Printout.h" #include "DDCMS/DDCMSPlugins.h" -#include "CLHEP/Units/SystemOfUnits.h" // C/C++ include files #include <sstream> @@ -29,10 +28,10 @@ using namespace dd4hep; using namespace dd4hep::detail; using namespace dd4hep::cms; -static Ref_t create_element(Detector& description, ParsingContext& ctxt, xml_h e, SensitiveDetector& /* sens */) { +static long create_element(Detector& description, ParsingContext& ctxt, xml_h e, SensitiveDetector& /* sens */) { stringstream str; PlacedVolume pv; - Namespace ns(ctxt); + Namespace ns(ctxt, e, true); AlgoArguments args(ctxt, e); string parentName = args.parentName(); @@ -51,9 +50,7 @@ static Ref_t create_element(Detector& description, ParsingContext& ctxt, xml_h e string coolMat = args.value<string>("CoolMaterial"); string tubeMat = args.value<string>("CoolTubeMaterial"); - str.str(""); - str << "DDPixBarLayerAlgo debug: Parent " << parentName - << " NameSpace " << ns.name << "\n" + str << "Parent " << parentName << " NameSpace " << ns.name << "\n" << "\tLadders " << number << "\tGeneral Material " << genMat << "\tLength " << layerDz << "\tSensorEdge " << sensorEdge << "\tSpecification of Cooling Pieces:\n" @@ -61,19 +58,17 @@ static Ref_t create_element(Detector& description, ParsingContext& ctxt, xml_h e << " Side " << coolSide << " Thickness of Shell " << coolThick << " Radial distance " << coolDist << " Materials " << coolMat << ", " << tubeMat; - printout(DEBUG,"PixelGeom",str.str().c_str()); + printout(INFO,"DDPixBarLayerAlgo",str); vector<string> ladder = args.value<vector<string> >("LadderName"); vector<double> ladderWidth = args.value<vector<double> >("LadderWidth"); vector<double> ladderThick = args.value<vector<double> >("LadderThick"); - str.str(""); - str << "DDPixBarLayerAlgo debug: Full Ladder " - << ladder[0] << " width/thickness " << ladderWidth[0] + str << "Full Ladder " << ladder[0] << " width/thickness " << ladderWidth[0] << ", " << ladderThick[0] << "\tHalf Ladder " << ladder[1] << " width/thickness " << ladderWidth[1] << ", " << ladderThick[1]; - printout(DEBUG,"PixelGeom",str.str().c_str()); + printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDPixBarLayerAlgo",str); string mother = parentName; const std::string &idName = mother; @@ -86,26 +81,23 @@ static Ref_t create_element(Detector& description, ParsingContext& ctxt, xml_h e double rmin = (coolDist-0.5*(d1+d2))*cos(0.5*dphi)-0.5*ladderThick[0]; double rmax = (coolDist+0.5*(d1+d2))*cos(0.5*dphi)+0.5*ladderThick[0]; double rmxh = rmax - 0.5*ladderThick[0] + ladderThick[1]; - str.str(""); - str << "DDPixBarLayerAlgo test: Rmin/Rmax " << rmin + str << "Rmin/Rmax " << rmin << ", " << rmax << " d1/d2 " << d1 << ", " << d2 << " x1/x2 " << x1 << ", " << x2; - printout(DEBUG,"PixelGeom",str.str().c_str()); + printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDPixBarLayerAlgo",str); double rtmi = rmin + 0.5*ladderThick[0] - ladderThick[1]; double rtmx = sqrt(rmxh*rmxh+ladderWidth[1]*ladderWidth[1]); Solid solid = Tube(rtmi, rtmx, 0.5*layerDz, 0, CLHEP::twopi); solid.setName(idName); str.str(""); - str << "DDPixBarLayerAlgo test: " - << idName << " Tubs made of " + str << "IDname "<< idName << " Tubs made of " << genMat << " from 0 to " << CLHEP::twopi/CLHEP::deg << " with Rin " << rtmi << " Rout " << rtmx << " ZHalf " << 0.5*layerDz; - printout(DEBUG,"PixelGeom",str.str().c_str()); + printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDPixBarLayerAlgo",str); - Material matter; - Volume layer(solid.name(), solid, description.material(genMat)); + Volume layer(solid.name(), solid, ns.material(genMat)); double rr = 0.5*(rmax+rmin); double dr = 0.5*(rmax-rmin); @@ -113,13 +105,12 @@ static Ref_t create_element(Detector& description, ParsingContext& ctxt, xml_h e std::string name = idName + "CoolTube"; solid = Trap(0.5*coolDz, 0, 0, h1, d2, d1, 0, h1, d2, d1, 0); solid.setName(idName+"CoolTube"); - str.str(""); - str << "DDPixBarLayerAlgo test: " <<solid.name() + str << "Solid " << solid.name() << " Trap made of " << tubeMat << " of dimensions " << 0.5*coolDz << ", 0, 0, " << h1 << ", " << d2 << ", " << d1 << ", 0, " << h1 << ", " << d2 << ", " << d1 << ", 0"; - printout(DEBUG,"PixelGeom",str.str().c_str()); + printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDPixBarLayerAlgo",str); Volume coolTube(solid.name(), solid, description.material(tubeMat)); h1 -= coolThick; @@ -128,30 +119,27 @@ static Ref_t create_element(Detector& description, ParsingContext& ctxt, xml_h e solid = Trap(0.5*coolDz, 0, 0, h1, d2, d1, 0, h1, d2, d1, 0); solid.setName(idName + "Coolant"); - str.str(""); - str << "DDPixBarLayerAlgo test: " <<solid.name() + str << "Solid " << solid.name() << " Trap made of " << coolMat << " of dimensions " << 0.5*coolDz << ", 0, 0, " << h1 << ", " << d2 << ", " << d1 << ", 0, " << h1 << ", " << d2 << ", " << d1 << ", 0"; - printout(DEBUG,"PixelGeom",str.str().c_str()); + printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDPixBarLayerAlgo",str); Volume cool(solid.name(), solid, description.material(coolMat)); - //cpv.position(cool, coolTube, 1, DDTranslation(0.0, 0.0, 0.0), DDRotation()); pv = coolTube.placeVolume(cool); - str.str(""); - str << "DDPixBarLayerAlgo test: " << cool.name() + str << "Cool " << cool.name() << " number 1 positioned in " << coolTube.name() << " at (0,0,0) with no rotation"; - printout(DEBUG,"PixelGeom",str.str().c_str()); + printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDPixBarLayerAlgo",str); string ladderFull = ladder[0]; string ladderHalf = ladder[1]; int nphi=number/2, copy=1, iup=-1; double phi0 = 90*CLHEP::deg; - Volume ladderHalfVol = ctxt.volume(ladderHalf); - Volume ladderFullVol = ctxt.volume(ladderFull); + Volume ladderHalfVol = ns.volume(ladderHalf); + Volume ladderFullVol = ns.volume(ladderFull); for (int i=0; i<number; i++) { double phi = phi0 + i*dphi; @@ -166,23 +154,21 @@ static Ref_t create_element(Detector& description, ParsingContext& ctxt, xml_h e rots = idName + std::to_string(copy); phix = phi-90*CLHEP::deg; phiy = 90*CLHEP::deg+phix; - str.str(""); - str << "DDPixBarLayerAlgo test: Creating a new " - << "rotation: " << rots << "\t90., " - << phix/CLHEP::deg << ", 90.," << phiy/CLHEP::deg - << ", 0, 0"; - printout(DEBUG,"PixelGeom",str.str().c_str()); + str << "Creating a new " + << "rotation: " << rots << "\t90., " + << phix/CLHEP::deg << ", 90.," << phiy/CLHEP::deg + << ", 0, 0"; + printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDPixBarLayerAlgo",str); rot = make_rotation3D(90*CLHEP::deg, phix, 90*CLHEP::deg, phiy, 0.,0.); //cpv.position(ladderHalf, layer, copy, tran, rot); pv = layer.placeVolume(ladderHalfVol, Transform3D(rot,tran)); if ( !pv.isValid() ) { } - str.str(""); - str << "DDPixBarLayerAlgo test: " << ladderHalfVol.name() + str << "ladderHalfVol: " << ladderHalfVol.name() << " number " << copy << " positioned in " << layer.name() << " at " << tran << " with " << rot; - printout(DEBUG,"PixelGeom",str.str().c_str()); + printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDPixBarLayerAlgo",str); copy++; iup = -1; @@ -191,23 +177,20 @@ static Ref_t create_element(Detector& description, ParsingContext& ctxt, xml_h e rots = idName + std::to_string(copy); phix = phi+90*CLHEP::deg; phiy = 90*CLHEP::deg+phix; - str.str(""); - str << "DDPixBarLayerAlgo test: Creating a new " - << "rotation: " << rots << "\t90., " + str << "Creating a new rotation: " << rots << "\t90., " << phix/CLHEP::deg << ", 90.," << phiy/CLHEP::deg << ", 0, 0"; - printout(DEBUG,"PixelGeom",str.str().c_str()); + printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDPixBarLayerAlgo",str); rot = make_rotation3D(90*CLHEP::deg, phix, 90*CLHEP::deg, phiy, 0.,0.); //cpv.position(ladderHalf, layer, copy, tran, rot); pv = layer.placeVolume(ladderHalfVol, Transform3D(rot,tran)); if ( !pv.isValid() ) { } - str.str(""); - str << "DDPixBarLayerAlgo test: " << ladderHalfVol.name() + str << "ladderHalfVol: " << ladderHalfVol.name() << " number " << copy << " positioned in " << layer.name() << " at " << tran << " with " << rot; - printout(DEBUG,"PixelGeom",str.str().c_str()); + printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDPixBarLayerAlgo",str); copy++; } else { iup =-iup; @@ -217,24 +200,22 @@ static Ref_t create_element(Detector& description, ParsingContext& ctxt, xml_h e if (iup > 0) phix = phi-90*CLHEP::deg; else phix = phi+90*CLHEP::deg; phiy = phix+90.*CLHEP::deg; - str.str(""); str << "DDPixBarLayerAlgo test: Creating a new " << "rotation: " << rots << "\t90., " << phix/CLHEP::deg << ", 90.," << phiy/CLHEP::deg << ", 0, 0"; - printout(DEBUG,"PixelGeom",str.str().c_str()); + printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDPixBarLayerAlgo",str); rot = make_rotation3D(90*CLHEP::deg, phix, 90*CLHEP::deg, phiy, 0.,0.); //cpv.position(ladderFull, layer, copy, tran, rot); pv = layer.placeVolume(ladderFullVol, Transform3D(rot,tran)); if ( !pv.isValid() ) { } - str.str(""); - str << "DDPixBarLayerAlgo test: " << ladderFullVol.name() + str << "test: " << ladderFullVol.name() << " number " << copy << " positioned in " << layer.name() << " at " << tran << " with " << rot; - printout(DEBUG,"PixelGeom",str.str().c_str()); + printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDPixBarLayerAlgo",str); copy++; } rrr = coolDist*cos(0.5*dphi); @@ -243,32 +224,36 @@ static Ref_t create_element(Detector& description, ParsingContext& ctxt, xml_h e phix = phi+0.5*dphi; if (iup > 0) phix += 180*CLHEP::deg; phiy = phix+90.*CLHEP::deg; - str.str(""); - str << "DDPixBarLayerAlgo test: Creating a new " - << "rotation: " << rots << "\t90., " + str << "Creating a new rotation: " << rots << "\t90., " << phix/CLHEP::deg << ", 90.," << phiy/CLHEP::deg << ", 0, 0"; - printout(DEBUG,"PixelGeom",str.str().c_str()); + printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDPixBarLayerAlgo",str); rot = make_rotation3D(90*CLHEP::deg, phix, 90*CLHEP::deg, phiy, 0.,0.); //cpv.position(coolTube, layer, i+1, tran, rot); pv = layer.placeVolume(coolTube,Transform3D(rot,tran)); if ( !pv.isValid() ) { } - str.str(""); - str << "DDPixBarLayerAlgo test: " << coolTube.name() + str << "coolTube: " << coolTube.name() << " number " << i+1 << " positioned in " << layer.name() << " at " << tran << " with "<< rot; - printout(DEBUG,"PixelGeom",str.str().c_str()); + printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDPixBarLayerAlgo",str); } + ns.addVolumeNS(layer); + //nn.addVolume(assembly); + printout(INFO,"DDPixBarLayerAlgo","Layer: %s assembly:%s",layer.name(),"---"); +#if 0 + string det_name = idName; + Assembly assembly(det_name); // Now we have built the layer.....create the DetElement object - string det_name = "Layer_"+idName; DetElement det_elt(det_name,0); - Assembly assembly(det_name); - Volume motherVol = description.pickMotherVolume(det_elt); pv = assembly.placeVolume(layer); - pv = motherVol.placeVolume(assembly); + det_elt.setPlacement(pv); - return det_elt; + description.addDetector(det_elt); + Volume motherVol = description.pickMotherVolume(det_elt); + pv = motherVol.placeVolume(assembly); +#endif + return 1; } // first argument is the type from the xml file diff --git a/DDCMS/src/plugins/DDTECCoolAlgo.cpp b/DDCMS/src/plugins/DDTECCoolAlgo.cpp new file mode 100644 index 0000000000000000000000000000000000000000..6dd9a87fac72a9aa1cd93290c21a436c7dd2066c --- /dev/null +++ b/DDCMS/src/plugins/DDTECCoolAlgo.cpp @@ -0,0 +1,83 @@ +//========================================================================== +// AIDA Detector description implementation +//-------------------------------------------------------------------------- +// Copyright (C) Organisation europeenne pour la Recherche nucleaire (CERN) +// All rights reserved. +// +// For the licensing terms see $DD4hepINSTALL/LICENSE. +// For the list of contributors see $DD4hepINSTALL/doc/CREDITS. +// +// Author : M.Frank +// +//========================================================================== +// +// Specialized generic detector constructor +// +//========================================================================== + +// Framework include files +#include "DD4hep/DetFactoryHelper.h" +#include "DD4hep/Printout.h" +#include "DDCMS/DDCMSPlugins.h" + +// C/C++ include files +#include <sstream> + +using namespace std; +using namespace dd4hep; +using namespace dd4hep::cms; + +static long algorithm(Detector& /* description */, + ParsingContext& ctxt, + xml_h e, + SensitiveDetector& /* sens */) +{ + stringstream str; + Namespace ns(ctxt,e,true); + AlgoArguments args(ctxt, e); + int startCopyNo = args.find("StartCopyNo") ? args.value<int>("StartCopyNo") : 1; + double rPosition = args.value<double>("RPosition"); + vector<double> phiPosition = args.value<vector<double> >("PhiPosition"); + vector<string> coolInsert = args.value<vector<string> >("CoolInsert"); + Volume mother = ns.volume(args.parentName()); + + str << "debug: Parent " << mother.name() + <<" NameSpace " << ns.name << " at radial Position " << rPosition; + printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECCoolAlgo",str); + if (phiPosition.size() == coolInsert.size()) { + for (int i=0; i<(int)(phiPosition.size()); i++) { + str << "debug: Insert[" << i << "]: " + << coolInsert.at(i) << " at Phi " + << phiPosition.at(i)/CLHEP::deg; + printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECCoolAlgo",str); + } + } else { + str << "ERROR: Number of inserts does not match the numer of PhiPositions!"; + printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECCoolAlgo",str); + } + + int copyNo = startCopyNo; + // loop over the inserts to be placed + for (int i = 0; i < (int)(coolInsert.size()); i++) { + Volume child = ns.volume(ns.real_name(coolInsert.at(i))); + // get positions + double xpos = rPosition*cos(phiPosition.at(i)); + double ypos = -rPosition*sin(phiPosition.at(i)); + // place inserts + Position tran(xpos, ypos, 0.0); + mother.placeVolume(child,tran); + str << "test " << child.name() << "[" + << copyNo << "] positioned in " << mother.name() + << " at " << tran + << " phi " << phiPosition.at(i)/CLHEP::deg << " r " + << rPosition; + printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECCoolAlgo",str); + copyNo++; + } + printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECCoolAlgo","Finished...."); + return 1; +} + +// first argument is the type from the xml file +DECLARE_DDCMS_DETELEMENT(track_DDTECCoolAlgo,algorithm) + diff --git a/DDCMS/src/plugins/DDTECModuleAlgo.cpp b/DDCMS/src/plugins/DDTECModuleAlgo.cpp new file mode 100644 index 0000000000000000000000000000000000000000..4192461ffb48bd9298af53dd0bab048fc20628a6 --- /dev/null +++ b/DDCMS/src/plugins/DDTECModuleAlgo.cpp @@ -0,0 +1,645 @@ +//========================================================================== +// AIDA Detector description implementation +//-------------------------------------------------------------------------- +// Copyright (C) Organisation europeenne pour la Recherche nucleaire (CERN) +// All rights reserved. +// +// For the licensing terms see $DD4hepINSTALL/LICENSE. +// For the list of contributors see $DD4hepINSTALL/doc/CREDITS. +// +// Author : M.Frank +// +//========================================================================== +// +// Specialized generic detector constructor +// +//========================================================================== + +// Framework include files +#include "DD4hep/DetFactoryHelper.h" +#include "DD4hep/Printout.h" +#include "DDCMS/DDCMSPlugins.h" + +// C/C++ include files +#include <sstream> + +using namespace std; +using namespace dd4hep; +using namespace dd4hep::cms; + +static void doPos(ParsingContext& ctxt, Volume toPos, Volume mother, + int /* copyNr */, double x, double y, double z, + const string& rotName) +{ + stringstream str; + Namespace ns(ctxt); + mother.placeVolume(toPos,Transform3D(ns.rotation(rotName),Position(x,y,z))); + str << "Volume: " << mother.name() << " positioned daughter "<< mother.name(); + printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECModuleAlgo",str); +} + +static void doPos(ParsingContext& ctxt, Volume toPos, Volume mother, + bool isStereo, double rPos, + double posCorrectionPhi, + double x, double y, double z, + string rotName) +{ + int copyNr = isStereo ? 2 : 1; + // This has to be done so that the Mother coordinate System of a Tub resembles + // the coordinate System of a Trap or Box. + z += rPos; + + if(isStereo){ + // z is x , x is y + //z+= rPos*sin(posCorrectionPhi); <<- this is already corrected with the r position! + x += rPos*sin(posCorrectionPhi); + } + /////FIXME!!! if (rotName == "NULL") rotName = standardRot; + doPos(ctxt,toPos,mother,copyNr,x,y,z,rotName); +} + +static long algorithm(Detector& /* description */, + ParsingContext& ctxt, + xml_h e, + SensitiveDetector& /* sens */) +{ + stringstream str; + Namespace ns(ctxt, e, true); + AlgoArguments args(ctxt, e); + Volume mother = ns.volume(args.parentName()); + + //variables: + //double noOverlapShift = args.value<double>("NoOverlapShift"); + int ringNo = args.value<int>("RingNo"); + bool isStereo = args.value<int>("isStereo") == 1; + bool isRing6 = (ringNo == 6); + double rPos = args.value<double>("RPos"); //Position in R relativ to the center of the TEC ( this is the coord-sys of Tubs) + double posCorrectionPhi = isStereo ? args.value<double>("PosCorrectionPhi") : 0e0; // the Phi position of the stereo Modules has to be corrected + string standardRot = args.value<string>("StandardRotation"); //Rotation that aligns the mother(Tub ) coordinate System with the components + string genMat = args.value<string>("GeneralMaterial"); //General material name + double moduleThick = args.value<double>("ModuleThick"); //Module thickness + double detTilt = args.value<double>("DetTilt"); //Tilt of stereo detector + double fullHeight = args.value<double>("FullHeight"); //Height + double dlTop = args.value<double>("DlTop"); //Width at top of wafer + double dlBottom = args.value<double>("DlBottom"); //Width at bottom of wafer + double dlHybrid = args.value<double>("DlHybrid"); //Width at the hybrid end + double frameWidth = args.value<double>("FrameWidth"); //Frame width + double frameThick = args.value<double>("FrameThick"); // thickness + double frameOver = args.value<double>("FrameOver"); // overlap (on sides) + string topFrameMat = args.value<string>("TopFrameMaterial"); //Top frame material + double topFrameHeight = args.value<double>("TopFrameHeight"); // height + double topFrameThick = args.value<double>("TopFrameThick"); // thickness + double topFrameTopWidth = args.value<double>("TopFrameTopWidth");// Width at the top + double topFrameBotWidth = args.value<double>("TopFrameBotWidth");// Width at the bottom + double topFrame2Width = isStereo ? args.value<double>("TopFrame2Width") : 0e0; // Stereo:2ndPart Width + double topFrame2LHeight = isStereo ? args.value<double>("TopFrame2LHeight") : 0e0;// left height + double topFrame2RHeight = isStereo ? args.value<double>("TopFrame2RHeight") : 0e0;// right height + double topFrameZ = args.value<double>("TopFrameZ"); // z-positions + string sideFrameMat = args.value<string>("SideFrameMaterial"); //Side frame material + double sideFrameThick = args.value<double>("SideFrameThick"); // thickness + double sideFrameLWidth = args.value<double>("SideFrameLWidth"); // Left Width (for stereo modules upper one) + double sideFrameLWidthLow = isStereo ? args.value<double>("SideFrameLWidthLow") : 0e0;// Width (only for stereo modules: lower Width) + double sideFrameLHeight = args.value<double>("SideFrameLHeight");// Height + double sideFrameLtheta = args.value<double>("SideFrameLtheta");// angle of the trapezoid shift + double sideFrameRWidth = args.value<double>("SideFrameRWidth"); // Right Width (for stereo modules upper one) + double sideFrameRWidthLow = isStereo ? args.value<double>("SideFrameRWidthLow") : 0e0;// Width (only for stereo modules: lower Width) + double sideFrameRHeight = args.value<double>("SideFrameRHeight");// Height + double sideFrameRtheta = args.value<double>("SideFrameRtheta");// angle of the trapezoid shift + vector<double> siFrSuppBoxWidth = args.value<vector<double> >("SiFrSuppBoxWidth");// Supp.Box Width + vector<double> siFrSuppBoxHeight = args.value<vector<double> >("SiFrSuppBoxHeight");// Height + vector<double> siFrSuppBoxYPos = args.value<vector<double> >("SiFrSuppBoxYPos");// y-position of the supplies box (with HV an thermal sensor...) + double sideFrameZ = args.value<double>("SideFrameZ"); // z-positions + double siFrSuppBoxThick = args.value<double>("SiFrSuppBoxThick");// thickness + string siFrSuppBoxMat = args.value<string>("SiFrSuppBoxMaterial"); // material + string waferMat = args.value<string>("WaferMaterial"); //Wafer material + double waferPosition = args.value<double>("WaferPosition"); // position of the wafer (was formaly done by adjusting topFrameHeigt) + double sideWidthTop = args.value<double>("SideWidthTop"); // widths on the side Top + double sideWidthBottom = args.value<double>("SideWidthBottom");// Bottom + string waferRot = args.value<string>("WaferRotation"); // rotation matrix + string activeMat = args.value<string>("ActiveMaterial"); //Sensitive material + double activeHeight = args.value<double>("ActiveHeight"); // height + double waferThick = args.value<double>("WaferThick"); // wafer thickness (active = wafer - backplane) + string activeRot = args.value<string>("ActiveRotation"); // Rotation matrix + double activeZ = args.value<double>("ActiveZ"); // z-positions + double backplaneThick = args.value<double>("BackPlaneThick"); // thickness + double inactiveDy = ringNo > 3 ? args.value<double>("InactiveDy") : 0e0; //InactiveStrip Hight of ( rings > 3) + double inactivePos = ringNo > 3 ? args.value<double>("InactivePos") : 0e0; // y-Position + string inactiveMat = ringNo > 3 ? args.value<string>("InactiveMaterial") : string(); // material + string hybridMat = args.value<string>("HybridMaterial"); //Hybrid material + double hybridHeight = args.value<double>("HybridHeight"); // height + double hybridWidth = args.value<double>("HybridWidth"); // width + double hybridThick = args.value<double>("HybridThick"); // thickness + double hybridZ = args.value<double>("HybridZ"); // z-positions + string pitchMat = args.value<string>("PitchMaterial"); //Pitch adapter material + double pitchWidth = args.value<double>("PitchWidth"); // width + double pitchHeight = args.value<double>("PitchHeight"); // height + double pitchThick = args.value<double>("PitchThick"); // thickness + double pitchZ = args.value<double>("PitchZ"); // z-positions + string pitchRot = args.value<string>("PitchRotation"); // rotation matrix + string bridgeMat = args.value<string>("BridgeMaterial"); //Bridge material + double bridgeWidth = args.value<double>("BridgeWidth"); // width + double bridgeThick = args.value<double>("BridgeThick"); // thickness + double bridgeHeight = args.value<double>("BridgeHeight"); // height + double bridgeSep = args.value<double>("BridgeSeparation"); // separation + vector<double> siReenforceHeight = args.value<vector<double> >("SiReenforcementHeight");// SiReenforcement Height + vector<double> siReenforceWidth = args.value<vector<double> >("SiReenforcementWidth");// Width + vector<double> siReenforceYPos = args.value<vector<double> >("SiReenforcementPosY");// Y - Position + double siReenforceThick = args.value<double>("SiReenforcementThick");// Thick + string siReenforceMat = args.value<string>("SiReenforcementMaterial"); // Materieal + + str << "debug: ModuleThick " << moduleThick + << " Detector Tilt " << detTilt/CLHEP::deg << " Height " + << fullHeight << " dl(Top) " << dlTop << " dl(Bottom) " + << dlBottom << " dl(Hybrid) " << dlHybrid + << " rPos " << rPos << " standrad rotation " + << standardRot; + printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECModuleAlgo",str); + str << "debug: Frame Width " << frameWidth + << " Thickness " << frameThick << " Overlap " + << frameOver; + printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECModuleAlgo",str); + str << "debug: Top Frame Material " + << topFrameMat << " Height " << topFrameHeight + << " Top Width " << topFrameTopWidth << " Bottom Width " + << topFrameTopWidth + << " Thickness " << topFrameThick <<" positioned at" + << topFrameZ; + printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECModuleAlgo",str); + str << "debug : Side Frame Material " + << sideFrameMat << " Thickness " << sideFrameThick + << " left Leg's Width: " << sideFrameLWidth + << " left Leg's Height: " << sideFrameLHeight + << " left Leg's tilt(theta): " << sideFrameLtheta + << " right Leg's Width: " << sideFrameRWidth + << " right Leg's Height: " << sideFrameRHeight + << " right Leg's tilt(theta): " << sideFrameRtheta + << "Supplies Box's Material: " << siFrSuppBoxMat + << " positioned at" << sideFrameZ; + for (int i= 0; i < (int)(siFrSuppBoxWidth.size());i++){ + str << " Supplies Box" << i << "'s Width: " + << siFrSuppBoxWidth[i] << " Supplies Box" << i + <<"'s Height: " << siFrSuppBoxHeight[i] + << " Supplies Box" << i << "'s y Position: " + << siFrSuppBoxYPos[i]; + printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECModuleAlgo",str); + } + str << "debug: Wafer Material " + << waferMat << " Side Width Top" << sideWidthTop + << " Side Width Bottom" << sideWidthBottom + << " and positioned at "<<waferPosition + << " positioned with rotation" << " matrix:" + << waferRot; + printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECModuleAlgo",str); + str << "debug: Active Material " + << activeMat << " Height " << activeHeight + << " rotated by " << activeRot + << " translated by (0,0," << -0.5 * backplaneThick << ")" + << " Thickness/Z" + << waferThick-backplaneThick << "/" << activeZ; + printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECModuleAlgo",str); + str << "debug: Hybrid Material " + << hybridMat << " Height " << hybridHeight + << " Width " << hybridWidth << " Thickness " + << hybridThick << " Z" << hybridZ; + printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECModuleAlgo",str); + str << "debug: Pitch Adapter Material " + << pitchMat << " Height " << pitchHeight + << " Thickness " << pitchThick << " position with " + << " rotation " << pitchRot << " at Z" << pitchZ; + printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECModuleAlgo",str); + str << "debug: Bridge Material " + << bridgeMat << " Width " << bridgeWidth + << " Thickness " << bridgeThick << " Height " + << bridgeHeight << " Separation "<< bridgeSep; + printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECModuleAlgo",str); + str << "FALTBOOT DDTECModuleAlgo debug : Si-Reenforcement Material " + << sideFrameMat << " Thickness " << siReenforceThick; + printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECModuleAlgo",str); + for (int i= 0; i < (int)(siReenforceWidth.size());i++){ + str << " SiReenforcement" << i << "'s Width: " + << siReenforceWidth[i] << " SiReenforcement" << i + << "'s Height: " << siReenforceHeight[i] + << " SiReenforcement" << i << "'s y Position: " + <<siReenforceYPos[i]; + printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECModuleAlgo",str); + } + if(!isStereo){ + str << "This is a normal module, in ring "<<ringNo<<"!"; + printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECModuleAlgo",str); + } else { + str << "This is a stereo module, in ring "<<ringNo<<"!"; + printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECModuleAlgo",str); + str << "Phi Position corrected by " << posCorrectionPhi << "*rad"; + printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECModuleAlgo",str); + str << "debug: stereo Top Frame 2nd Part left Heigt " + << topFrame2LHeight << " right Height " << topFrame2RHeight + << " Width " << topFrame2Width ; + printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECModuleAlgo",str); + str << " left Leg's lower Width: " << sideFrameLWidthLow + << " right Leg's lower Width: " << sideFrameRWidthLow; + printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECModuleAlgo",str); + } + + // Execution part: + + str << "==>> Constructing DDTECModuleAlgo: "; + //declarations + double tmp; + //names + string name; + string tag("Rphi"); + if (isStereo) tag = "Stereo"; + //usefull constants + const double topFrameEndZ = 0.5 * (-waferPosition + fullHeight) + pitchHeight + hybridHeight - topFrameHeight; + string idName = ns.prepend(ns.obj_name(mother.name())); + str << "idName: " << idName << " parent " << mother.name() << " namespace " << ns.name; + printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECModuleAlgo",str); + Solid solid; + + //set global parameters + Material matter = ns.material(genMat); + double dzdif = fullHeight + topFrameHeight; + if(isStereo) dzdif += 0.5*(topFrame2LHeight+topFrame2RHeight); + + double dxbot = 0.5*dlBottom + frameWidth - frameOver; + double dxtop = 0.5*dlHybrid + frameWidth - frameOver; + // topfr = 0.5*dlBottom * sin(detTilt); + if (isRing6) { + dxbot = dxtop; + dxtop = 0.5*dlTop + frameWidth - frameOver; + // topfr = 0.5*dlTop * sin(detTilt); + } + double dxdif = dxtop - dxbot; + + //Frame Sides + // left Frame + name = idName + "SideFrameLeft"; + double h1 = 0.5 * sideFrameThick; + double dz = 0.5 * sideFrameLHeight; + double bl1 = 0.5 * sideFrameLWidth; + double bl2 = bl1; + double thet = sideFrameLtheta; + //for stereo modules + if(isStereo) bl1 = 0.5 * sideFrameLWidthLow; + solid = Trap(dz, thet, 0, h1, bl1, bl1, 0, h1, bl2, bl2, 0); + ns.addSolidNS(name,solid); + str << "Solid: " << solid.name() + << " Trap made of " << sideFrameMat << " of dimensions " + << dz << ", "<<thet<<", 0, " << h1 << ", " << bl1 << ", " + << bl1 << ", 0, " << h1 << ", " << bl2 << ", " << bl2 + << ", 0"; + printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECModuleAlgo",str); + Volume sideFrameLeft(name, solid, ns.material(sideFrameMat)); + ns.addVolumeNS(sideFrameLeft); + //translate + double xpos = - 0.5*topFrameBotWidth +bl2+ tan(fabs(thet)) * dz; + double ypos = sideFrameZ; + double zpos = topFrameEndZ -dz; + //flip ring 6 + if (isRing6){ + zpos *= -1; + xpos -= 2*tan(fabs(thet)) * dz; // because of the flip the tan(..) to be in the other direction + } + //the stereo modules are on the back of the normal ones... + if(isStereo) { + xpos = - 0.5*topFrameBotWidth + bl2*cos(detTilt) + dz*sin(fabs(thet)+detTilt)/cos(fabs(thet)); + xpos = -xpos; + zpos = topFrameEndZ -topFrame2LHeight- + 0.5*sin(detTilt)*(topFrameBotWidth - topFrame2Width)- + dz*cos(detTilt+fabs(thet))/cos(fabs(thet))+bl2*sin(detTilt)-0.1*CLHEP::mm; + } + //position + doPos(ctxt,sideFrameLeft, mother, isStereo, rPos, posCorrectionPhi, xpos,ypos,zpos,waferRot); + + //right Frame + name = idName + "SideFrameRight"; + h1 = 0.5 * sideFrameThick; + dz = 0.5 * sideFrameRHeight; + bl1 = bl2 = 0.5 * sideFrameRWidth; + thet = sideFrameRtheta; + if(isStereo) bl1 = 0.5 * sideFrameRWidthLow; + solid = Trap(dz, thet, 0, h1, bl1, bl1, 0, h1, bl2, bl2, 0); + ns.addSolidNS(name,solid); + str << "Solid:\t" << solid.name() + << " Trap made of " << sideFrameMat << " of dimensions " + << dz << ", "<<thet<<", 0, " << h1 << ", " << bl1 << ", " + << bl1 << ", 0, " << h1 << ", " << bl2 << ", " << bl2 + << ", 0"; + printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECModuleAlgo",str); + Volume sideFrameRight(name, solid, ns.material(sideFrameMat)); + ns.addVolumeNS(sideFrameRight); + //translate + xpos = 0.5*topFrameBotWidth -bl2- tan(fabs(thet)) * dz; + ypos = sideFrameZ; + zpos = topFrameEndZ -dz ; + if (isRing6){ + zpos *= -1; + xpos += 2*tan(fabs(thet)) * dz; // because of the flip the tan(..) has to be in the other direction + } + if(isStereo){ + xpos = 0.5*topFrameBotWidth - bl2*cos(detTilt) - dz*sin(fabs(detTilt-fabs(thet)))/cos(fabs(thet)); + xpos = -xpos; + zpos = topFrameEndZ -topFrame2RHeight+ + 0.5*sin(detTilt)*(topFrameBotWidth - topFrame2Width)- + dz*cos(detTilt-fabs(thet))/cos(fabs(thet))-bl2*sin(detTilt)-0.1*CLHEP::mm; + } + //position it + doPos(ctxt, sideFrameRight, mother, isStereo, rPos, posCorrectionPhi,xpos,ypos,zpos,waferRot); + + + //Supplies Box(es) + matter = ns.material(siFrSuppBoxMat); + for (int i= 0; i < (int)(siFrSuppBoxWidth.size());i++){ + name = idName + "SuppliesBox" + std::to_string(i); + + h1 = 0.5 * siFrSuppBoxThick; + dz = 0.5 * siFrSuppBoxHeight[i]; + bl1 = bl2 = 0.5 * siFrSuppBoxWidth[i]; + thet = sideFrameRtheta; + if(isStereo) thet = -atan(fabs(sideFrameRWidthLow-sideFrameRWidth)/(2*sideFrameRHeight)-tan(fabs(thet))); + // ^-- this calculates the lower left angel of the tipped trapezoid, which is the SideFframe... + + solid = Trap(dz, thet,0, h1, bl1, bl1, 0, h1, bl2, bl2, 0); + str << "Solid:\t" << solid.name() + << " Trap made of " << siFrSuppBoxMat << " of dimensions " + << dz << ", 0, 0, " << h1 << ", " << bl1 << ", " + << bl1 << ", 0, " << h1 << ", " << bl2 << ", " << bl2 + << ", 0"; + printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECModuleAlgo",str); + Volume siFrSuppBox(name, solid, matter); + ns.addVolumeNS(siFrSuppBox); + //translate + xpos = 0.5*topFrameBotWidth -sideFrameRWidth - bl1-siFrSuppBoxYPos[i]*tan(fabs(thet)); + ypos = sideFrameZ*(0.5+(siFrSuppBoxThick/sideFrameThick)); //via * so I do not have to worry about the sign of sideFrameZ + zpos = topFrameEndZ - siFrSuppBoxYPos[i]; + if (isRing6){ + xpos += 2*fabs(tan(thet))* siFrSuppBoxYPos[i]; // the flipped issue again + zpos *= -1; + } + if(isStereo){ + xpos = 0.5*topFrameBotWidth - (sideFrameRWidth+bl1)*cos(detTilt) - + sin(fabs(detTilt-fabs(thet)))*(siFrSuppBoxYPos[i]+dz*(1/cos(thet)- cos(detTilt))+bl1*sin(detTilt)); + xpos =-xpos; + zpos = topFrameEndZ - topFrame2RHeight - + 0.5*sin(detTilt)*(topFrameBotWidth - topFrame2Width) - siFrSuppBoxYPos[i]-sin(detTilt)*sideFrameRWidth; + } + //position it; + doPos(ctxt, siFrSuppBox, mother, isStereo, rPos, posCorrectionPhi,xpos,ypos,zpos,waferRot); + } + + //The Hybrid + name = idName + "Hybrid"; + double dx = 0.5 * hybridWidth; + double dy = 0.5 * hybridThick; + dz = 0.5 * hybridHeight; + solid = Box(dx, dy, dz); + ns.addSolidNS(name, solid); + str << "Solid:\t" << solid.name() + << " Box made of " << hybridMat << " of dimensions " + << dx << ", " << dy << ", " << dz; + printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECModuleAlgo",str); + Volume hybrid(name, solid, ns.material(hybridMat)); + ns.addVolumeNS(hybrid); + + ypos = hybridZ; + zpos = 0.5 * (-waferPosition + fullHeight + hybridHeight)+pitchHeight; + if (isRing6) zpos *=-1; + //position it + doPos(ctxt, hybrid, mother, isStereo, rPos, posCorrectionPhi, 0, ypos, zpos, "NULL"); + + // Wafer + name = idName + tag +"Wafer"; + bl1 = 0.5 * dlBottom; + bl2 = 0.5 * dlTop; + h1 = 0.5 * waferThick; + dz = 0.5 * fullHeight; + solid = Trap(dz, 0, 0, h1, bl1, bl1, 0, h1, bl2, bl2, 0); + ns.addSolidNS(name,solid); + str << "Solid:\t" << solid.name() + << " Trap made of " << waferMat << " of dimensions " + << dz << ", 0, 0, " << h1 << ", " << bl1 << ", " + << bl1 << ", 0, " << h1 << ", " << bl2 << ", " + << bl2 << ", 0"; + printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECModuleAlgo",str); + Volume wafer(name, solid, ns.material(waferMat)); + + ypos = activeZ; + zpos =-0.5 * waferPosition;// former and incorrect topFrameHeight; + if (isRing6) zpos *= -1; + + doPos(ctxt, wafer, mother, isStereo, rPos, posCorrectionPhi,0,ypos,zpos,waferRot); + + // Active + name = idName + tag +"Active"; + bl1 -= sideWidthBottom; + bl2 -= sideWidthTop; + dz = 0.5 * (waferThick-backplaneThick); // inactive backplane + h1 = 0.5 * activeHeight; + if (isRing6) { //switch bl1 <->bl2 + tmp = bl2; bl2 =bl1; bl1 = tmp; + } + solid = Trap(dz, 0, 0, h1, bl2, bl1, 0, h1, bl2, bl1, 0); + ns.addSolidNS(name,solid); + str << "Solid:\t" << solid.name() + << " Trap made of " << activeMat << " of dimensions " + << dz << ", 0, 0, " << h1 << ", " << bl2 << ", " + << bl1 << ", 0, " << h1 << ", " << bl2 << ", " + << bl1 << ", 0"; + printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECModuleAlgo",str); + Volume active(name, solid, ns.material(activeMat)); + ns.addVolumeNS(active); + doPos(ctxt, active, wafer, 1, -0.5 * backplaneThick,0,0, activeRot); // from the definition of the wafer local axes and doPos() routine + + //inactive part in rings > 3 + if(ringNo > 3){ + inactivePos -= fullHeight-activeHeight; //inactivePos is measured from the beginning of the _wafer_ + name = idName + tag +"Inactive"; + bl1 = 0.5*dlBottom-sideWidthBottom + + ((0.5*dlTop-sideWidthTop-0.5*dlBottom+sideWidthBottom)/activeHeight) + *(activeHeight-inactivePos-inactiveDy); + bl2 = 0.5*dlBottom-sideWidthBottom + + ((0.5*dlTop-sideWidthTop-0.5*dlBottom+sideWidthBottom)/activeHeight) + *(activeHeight-inactivePos+inactiveDy); + dz = 0.5 * (waferThick-backplaneThick); // inactive backplane + h1 = inactiveDy; + if (isRing6) { //switch bl1 <->bl2 + tmp = bl2; bl2 =bl1; bl1 = tmp; + } + solid = Trap(dz, 0, 0, h1, bl2, bl1, 0, h1, bl2, bl1, 0); + ns.addSolidNS(name,solid); + str << "Solid:\t" << solid.name() + << " Trap made of " << inactiveMat << " of dimensions " + << dz << ", 0, 0, " << h1 << ", " << bl2 << ", " + << bl1 << ", 0, " << h1 << ", " << bl2 << ", " + << bl1 << ", 0"; + printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECModuleAlgo",str); + Volume inactive(name, solid, ns.material(inactiveMat)); + ns.addVolumeNS(inactive); + ypos = inactivePos - 0.5*activeHeight; + doPos(ctxt, inactive, active, 1, ypos, 0, 0, "NULL"); // from the definition of the wafer local axes and doPos() routine + } + //Pitch Adapter + name = idName + "PA"; + if (!isStereo) { + dx = 0.5 * pitchWidth; + dy = 0.5 * pitchThick; + dz = 0.5 * pitchHeight; + solid = Box(dx, dy, dz); + ns.addSolidNS(name,solid); + str << "Solid:\t" << solid.name() + << " Box made of " << pitchMat <<" of dimensions " + << dx << ", " << dy << ", " << dz; + printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECModuleAlgo",str); + } else { + dz = 0.5 * pitchWidth; + h1 = 0.5 * pitchThick; + bl1 = 0.5 * pitchHeight + 0.5 * dz * sin(detTilt); + bl2 = 0.5 * pitchHeight - 0.5 * dz * sin(detTilt); + thet = atan((bl1-bl2)/(2.*dz)); + solid = Trap(dz, thet, 0, h1, bl1, bl1, 0, h1, bl2, bl2, 0); + ns.addSolidNS(name,solid); + str << "Solid:\t" << solid.name() + << " Trap made of " << pitchMat + << " of dimensions " << dz << ", " << thet/CLHEP::deg + << ", 0, " << h1 << ", " << bl1 << ", " << bl1 + << ", 0, " << h1 << ", " << bl2 << ", " << bl2 + << ", 0"; + printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECModuleAlgo",str); + } + xpos = 0; + ypos = pitchZ; + zpos = 0.5 * (-waferPosition + fullHeight + pitchHeight); + if (isRing6) zpos *= -1; + if(isStereo) xpos = 0.5 * fullHeight * sin(detTilt); + + Volume pa(name, solid, ns.material(pitchMat)); + if(isStereo) doPos(ctxt, pa, mother, isStereo, rPos, posCorrectionPhi, xpos, ypos,zpos, pitchRot); + else doPos(ctxt, pa, mother, isStereo, rPos, posCorrectionPhi, xpos, ypos,zpos, "NULL"); + + //Top of the frame + name = idName + "TopFrame"; + h1 = 0.5 * topFrameThick; + dz = 0.5 * topFrameHeight; + bl1 = 0.5 * topFrameBotWidth; + bl2 = 0.5 * topFrameTopWidth; + if (isRing6) { // ring 6 faces the other way! + bl1 = 0.5 * topFrameTopWidth; + bl2 = 0.5 * topFrameBotWidth; + } + + solid = Trap(dz, 0, 0, h1, bl1, bl1,0, h1, bl2, bl2, 0); + ns.addSolid(name,solid); + str << "Solid:\t" << solid.name() + << " Trap made of " << topFrameMat << " of dimensions " + << dz << ", 0, 0, " << h1 << ", " << bl1 << ", " + << bl1 << ", 0, " << h1 << ", " << bl2 << ", " << bl2 + << ", 0"; + printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECModuleAlgo",str); + Volume topFrame(name, solid, ns.material(topFrameMat)); + ns.addVolumeNS(topFrame); + + if(isStereo){ + name = idName + "TopFrame2"; + //additional object to build the not trapzoid geometry of the stereo topframes + dz = 0.5 * topFrame2Width; + h1 = 0.5 * topFrameThick; + bl1 = 0.5 * topFrame2LHeight; + bl2 = 0.5 * topFrame2RHeight; + thet = atan((bl1-bl2)/(2.*dz)); + + solid = Trap(dz, thet, 0, h1, bl1, bl1, 0, h1, bl2, bl2, 0); + ns.addSolid(name,solid); + str << "Solid:\t" << solid.name() + << " Trap made of " << topFrameMat << " of dimensions " + << dz << ", " << thet/CLHEP::deg << ", 0, " << h1 + << ", " << bl1 << ", " << bl1 << ", 0, " << h1 + << ", " << bl2 << ", " << bl2 << ", 0"; + printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECModuleAlgo",str); + } + + // Position the topframe + ypos = topFrameZ; + zpos = 0.5 * (-waferPosition + fullHeight - topFrameHeight)+ pitchHeight + hybridHeight; + if(isRing6){ + zpos *=-1; + } + + doPos(ctxt, topFrame, mother, isStereo, rPos, posCorrectionPhi, 0,ypos,zpos,"NULL"); + if ( isStereo ) { + //create + Volume topFrame2(name, solid, ns.material(topFrameMat)); + zpos -= 0.5*(topFrameHeight + 0.5*(topFrame2LHeight+topFrame2RHeight)); + doPos(ctxt, topFrame2, mother, isStereo, rPos, posCorrectionPhi, 0,ypos,zpos,pitchRot); + } + + //Si - Reencorcement + matter = ns.material(siReenforceMat); + for (int i= 0; i < (int)(siReenforceWidth.size());i++){ + name = idName + "SiReenforce" + std::to_string(i); + h1 = 0.5 * siReenforceThick; + dz = 0.5 * siReenforceHeight[i]; + bl1 = bl2 = 0.5 * siReenforceWidth[i]; + solid = Trap(dz, 0, 0, h1, bl1, bl1, 0, h1, bl2, bl2, 0); + str << "Solid:\t" << solid.name() + << " Trap made of " << matter.name() << " of dimensions " + << dz << ", 0, 0, " << h1 << ", " << bl1 << ", " + << bl1 << ", 0, " << h1 << ", " << bl2 << ", " << bl2 + << ", 0"; + printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECModuleAlgo",str); + Volume siReenforce(name, solid, matter); + ns.addVolumeNS(siReenforce); + //translate + xpos =0 ; + ypos = sideFrameZ; + zpos = topFrameEndZ -dz -siReenforceYPos[i]; + + if (isRing6) zpos *= -1; + if(isStereo){ + xpos = (-siReenforceYPos[i]+0.5*fullHeight)*sin(detTilt); + // thet = detTilt; + // if(topFrame2RHeight > topFrame2LHeight) thet *= -1; + // zpos -= topFrame2RHeight + sin(thet)*(sideFrameRWidth + 0.5*dlTop); + zpos -= topFrame2RHeight + sin (fabs(detTilt))* 0.5*topFrame2Width; + } + doPos(ctxt,siReenforce, mother, isStereo, rPos, posCorrectionPhi,xpos,ypos,zpos,waferRot); + } + + //Bridge + if (bridgeMat != "None") { + name = idName + "Bridge"; + bl2 = 0.5*bridgeSep + bridgeWidth; + bl1 = bl2 - bridgeHeight * dxdif / dzdif; + h1 = 0.5 * bridgeThick; + dz = 0.5 * bridgeHeight; + solid = Trap(dz, 0, 0, h1, bl1, bl1, 0, h1, bl2, bl2, 0); + str << "Solid:\t" << solid.name() + << " Trap made of " << bridgeMat << " of dimensions " + << dz << ", 0, 0, " << h1 << ", " << bl1 << ", " + << bl1 << ", 0, " << h1 << ", " << bl2 << ", " << bl2 + << ", 0"; + printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECModuleAlgo",str); + Volume bridge(name, solid, ns.material(bridgeMat)); + ns.addVolumeNS(bridge); + + name = idName + "BridgeGap"; + bl1 = 0.5*bridgeSep; + solid = Box(bl1, h1, dz); + str << "Solid:\t" << solid.name() + << " Box made of " << genMat << " of dimensions " + << bl1 << ", " << h1 << ", " << dz; + printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECModuleAlgo",str); + Volume bridgeGap(name, solid, ns.material(genMat)); + ns.addVolumeNS(bridgeGap); + /* PlacedVolume pv = */ bridge.placeVolume(bridgeGap); + str << "Solid: " << bridgeGap.name() + << " number 1 positioned in " << bridge.name() + << " at (0,0,0) with no rotation"; + printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECModuleAlgo",str); + } + str << "<<== End of DDTECModuleAlgo construction ..."; + printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECModuleAlgo",str); + return 1; +} + +// first argument is the type from the xml file +DECLARE_DDCMS_DETELEMENT(track_DDTECModuleAlgo,algorithm) diff --git a/DDCMS/src/plugins/DDTECOptoHybAlgo.cpp b/DDCMS/src/plugins/DDTECOptoHybAlgo.cpp new file mode 100644 index 0000000000000000000000000000000000000000..76e99613f77298b04cd0381d882898adc309a4af --- /dev/null +++ b/DDCMS/src/plugins/DDTECOptoHybAlgo.cpp @@ -0,0 +1,100 @@ +//========================================================================== +// AIDA Detector description implementation +//-------------------------------------------------------------------------- +// Copyright (C) Organisation europeenne pour la Recherche nucleaire (CERN) +// All rights reserved. +// +// For the licensing terms see $DD4hepINSTALL/LICENSE. +// For the list of contributors see $DD4hepINSTALL/doc/CREDITS. +// +// Author : M.Frank +// +//========================================================================== +// +// Specialized generic detector constructor +// +//========================================================================== + +// Framework include files +#include "DD4hep/DetFactoryHelper.h" +#include "DD4hep/Printout.h" +#include "DDCMS/DDCMSPlugins.h" + +// C/C++ include files +#include <sstream> + +using namespace std; +using namespace dd4hep; +using namespace dd4hep::cms; + +static long algorithm(Detector& /* description */, + ParsingContext& ctxt, + xml_h e, + SensitiveDetector& /* sens */) +{ + stringstream str; + Namespace ns(ctxt,e,true); + AlgoArguments args(ctxt, e); + int startCopyNo = args.value<int>("StartCopyNo"); + double rpos = args.value<double>("Rpos"); + double zpos = args.value<double>("Zpos"); + double optoHeight = args.value<double>("OptoHeight"); + double optoWidth = args.value<double>("OptoWidth"); + vector<double> angles = args.value<vector<double> >("Angles"); + Volume child = ns.volume(args.value<string>("ChildName")); + Volume mother = ns.volume(args.parentName()); + + str << "Parent " << mother.name() << " Child " << child.name() << " NameSpace " << ns.name; + printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECOptoHybAlgo",str); + + str << "Height of the Hybrid " + << optoHeight << " and Width " << optoWidth + <<"Rpos " << rpos << " Zpos " << zpos + << " StartCopyNo " << startCopyNo << " Number " + << angles.size(); + printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECOptoHybAlgo",str); + + // given r positions are for the lower left corner + rpos += optoHeight/2; + int copyNo = startCopyNo; + for (double angle : angles) { + double phix = -angle; + // given phi positions are for the lower left corner + phix += asin(optoWidth/2/rpos); + double xpos = rpos * cos(phix); + double ypos = rpos * sin(phix); + Position tran(xpos, ypos, zpos); + + Rotation3D rotation; + double phiy = phix + 90.*CLHEP::deg; + double phideg = phix/CLHEP::deg; + if (phideg != 0) { + string rotstr= ns.ns_name(child.name()) + std::to_string(phideg*1000.); + auto irot = ctxt.rotations.find(ns.prepend(rotstr)); + if ( irot != ctxt.rotations.end() ) { + rotation = ns.rotation(ns.prepend(rotstr)); + } + else { + double theta = 90.*CLHEP::deg; + str << "test: Creating a new " + << "rotation: " << rotstr << "\t90., " + << phix/CLHEP::deg << ", 90.," << phiy/CLHEP::deg + << ", 0, 0"; + printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECOptoHybAlgo",str); + rotation = make_rotation3D(theta, phix, theta, phiy, 0., 0.); + } + } + mother.placeVolume(child, Transform3D(rotation,tran)); + str << "test " << child.name() << " number " + << copyNo << " positioned in " << mother.name() << " at " + << tran << " with " << rotation; + printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECOptoHybAlgo",str); + copyNo++; + } + str << "<<== End of DDTECOptoHybAlgo construction ..."; + printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECOptoHybAlgo",str); + return 1; +} + +// first argument is the type from the xml file +DECLARE_DDCMS_DETELEMENT(track_DDTECOptoHybAlgo,algorithm) diff --git a/DDCMS/src/plugins/DDTECPhiAlgo.cpp b/DDCMS/src/plugins/DDTECPhiAlgo.cpp new file mode 100644 index 0000000000000000000000000000000000000000..85c04c917579291f0dc987062b92d310bd88e44e --- /dev/null +++ b/DDCMS/src/plugins/DDTECPhiAlgo.cpp @@ -0,0 +1,81 @@ +//========================================================================== +// AIDA Detector description implementation +//-------------------------------------------------------------------------- +// Copyright (C) Organisation europeenne pour la Recherche nucleaire (CERN) +// All rights reserved. +// +// For the licensing terms see $DD4hepINSTALL/LICENSE. +// For the list of contributors see $DD4hepINSTALL/doc/CREDITS. +// +// Author : M.Frank +// +//========================================================================== +// +// Specialized generic detector constructor +// +//========================================================================== + +// Framework include files +#include "DD4hep/DetFactoryHelper.h" +#include "DD4hep/Printout.h" +#include "DDCMS/DDCMSPlugins.h" + +// C/C++ include files +#include <sstream> + +using namespace std; +using namespace dd4hep; +using namespace dd4hep::cms; + +static long algorithm(Detector& /* description */, + ParsingContext& ctxt, + xml_h e, + SensitiveDetector& /* sens */) +{ + stringstream str; + Namespace ns(ctxt, e, true); + AlgoArguments args(ctxt, e); + Volume mother = ns.volume(args.parentName()); + Volume child = ns.volume(args.childName()); + double startAngle = args.value<double>("StartAngle"); //Start angle + double incrAngle = args.value<double>("IncrAngle"); //Increment in angle + double zIn = args.value<double>("ZIn"); //z position for the even ones + double zOut = args.value<double>("ZOut"); //z position for the odd ones + int number = args.value<double>("Number"); //Number of copies + int startCopyNo = args.find("StartCopyNo") ? args.value<int>("StartCopyNo") : 1; //Start copy number + int incrCopyNo = args.find("IncrCopyNo") ? args.value<int>("IncrCopyNo") : 1; //Increment in copy number + + str << "debug: Parameters for " + << "positioning--" << "\tStartAngle " + << startAngle/CLHEP::deg << "\tIncrAngle " + << incrAngle/CLHEP::deg << "\tZ in/out " << zIn << ", " + << zOut << "\tCopy Numbers " << number + << " Start/Increment " << startCopyNo << ", " + << incrCopyNo; + printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECPhiAlgo",str); + str << "debug: Parent " << mother.name() + << "\tChild " << child.name() << " NameSpace " + << ns.name; + printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECPhiAlgo",str); + + if (number > 0) { + double theta = 90.*CLHEP::deg; + int copyNo = startCopyNo; + for (int i=0; i<number; i++) { + double phix = startAngle + i*incrAngle; + double phiy = phix + 90.*CLHEP::deg; + Rotation3D rotation = make_rotation3D(theta, phix, theta, phiy, 0, 0); + Position tran(0., 0., (i%2 == 0) ? zIn : zOut); + /* PlacedVolume pv = */ mother.placeVolume(child,Transform3D(rotation,tran)); + str << "test: " << child.name() <<" number " + << copyNo << " positioned in " << mother.name() <<" at " + << tran << " with " << rotation; + printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECPhiAlgo",str); + copyNo += incrCopyNo; + } + } + return 1; +} + +// first argument is the type from the xml file +DECLARE_DDCMS_DETELEMENT(track_DDTECPhiAlgo,algorithm) diff --git a/DDCMS/src/plugins/DDTECPhiAltAlgo.cpp b/DDCMS/src/plugins/DDTECPhiAltAlgo.cpp new file mode 100644 index 0000000000000000000000000000000000000000..b14a52d28a1861172b612a463dd913201bcec2e7 --- /dev/null +++ b/DDCMS/src/plugins/DDTECPhiAltAlgo.cpp @@ -0,0 +1,82 @@ +//========================================================================== +// AIDA Detector description implementation +//-------------------------------------------------------------------------- +// Copyright (C) Organisation europeenne pour la Recherche nucleaire (CERN) +// All rights reserved. +// +// For the licensing terms see $DD4hepINSTALL/LICENSE. +// For the list of contributors see $DD4hepINSTALL/doc/CREDITS. +// +// Author : M.Frank +// +//========================================================================== +// +// Specialized generic detector constructor +// +//========================================================================== + +// Framework include files +#include "DD4hep/DetFactoryHelper.h" +#include "DD4hep/Printout.h" +#include "DDCMS/DDCMSPlugins.h" + +// C/C++ include files +#include <sstream> + +using namespace std; +using namespace dd4hep; +using namespace dd4hep::cms; + +static long algorithm(Detector& /* description */, + ParsingContext& ctxt, + xml_h e, + SensitiveDetector& /* sens */) +{ + stringstream str; + Namespace ns(ctxt, e, true); + AlgoArguments args(ctxt, e); + Volume mother = ns.volume(args.parentName()); + Volume child = ns.volume(args.childName()); + double startAngle = args.value<double>("StartAngle"); //Start angle + double incrAngle = args.value<double>("IncrAngle"); //Increment in angle + double zIn = args.value<double>("ZIn"); //z position for the even ones + double zOut = args.value<double>("ZOut"); //z position for the odd ones + int number = args.value<double>("Number"); //Number of copies + int startCopyNo = args.find("StartCopyNo") ? args.value<int>("StartCopyNo") : 1; //Start copy number + int incrCopyNo = args.find("IncrCopyNo") ? args.value<int>("IncrCopyNo") : 1; //Increment in copy number + + str << "debug: Parameters for " + << "positioning--" << "\tStartAngle " + << startAngle/CLHEP::deg << "\tIncrAngle " + << incrAngle/CLHEP::deg << "\tZ in/out " << zIn << ", " + << zOut << "\tCopy Numbers " << number + << " Start/Increment " << startCopyNo << ", " + << incrCopyNo; + printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECPhiAltAlgo",str); + str << "debug: Parent " << mother.name() + << "\tChild " << child.name() << " NameSpace " + << ns.name; + printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECPhiAltAlgo",str); + + if (number > 0) { + double theta = 90.*CLHEP::deg; + int copyNo = startCopyNo; + for (int i=0; i<number; i++) { + double phiz = startAngle + i*incrAngle; + double phix = phiz + 90.*CLHEP::deg; + Rotation3D rotation = make_rotation3D(theta, phix, 0e0, 0e0, theta, phiz); + Position tran(0., 0., (i%2 == 0) ? zIn : zOut); + /* PlacedVolume pv = */ mother.placeVolume(child,Transform3D(rotation,tran)); + str << "test: " << child.name() <<" number " + << copyNo << " positioned in " << mother.name() <<" at " + << tran << " with " << rotation; + printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECPhiAltAlgo",str); + copyNo += incrCopyNo; + } + } + return 1; +} + +// first argument is the type from the xml file +DECLARE_DDCMS_DETELEMENT(track_DDTECPhiAltAlgo,algorithm) + diff --git a/DDCMS/src/plugins/DDTIBLayerAlgo.cpp b/DDCMS/src/plugins/DDTIBLayerAlgo.cpp new file mode 100644 index 0000000000000000000000000000000000000000..ccc991dfffe5e030ecc555049fd5ee39b3d051e3 --- /dev/null +++ b/DDCMS/src/plugins/DDTIBLayerAlgo.cpp @@ -0,0 +1,46 @@ +//========================================================================== +// AIDA Detector description implementation +//-------------------------------------------------------------------------- +// Copyright (C) Organisation europeenne pour la Recherche nucleaire (CERN) +// All rights reserved. +// +// For the licensing terms see $DD4hepINSTALL/LICENSE. +// For the list of contributors see $DD4hepINSTALL/doc/CREDITS. +// +// Author : M.Frank +// +//========================================================================== +// +// Specialized generic detector constructor +// +//========================================================================== + +// Framework include files +#include "DD4hep/DetFactoryHelper.h" +#include "DD4hep/Printout.h" +#include "DDCMS/DDCMSPlugins.h" + +// C/C++ include files +#include <sstream> + +using namespace std; +using namespace dd4hep; +using namespace dd4hep::cms; + +static long algorithm(Detector& /* description */, + ParsingContext& ctxt, + xml_h e, + SensitiveDetector& /* sens */) +{ + stringstream str; + Namespace ns(ctxt, e, true); + AlgoArguments args(ctxt, e); + //Volume mother = ns.volume(args.parentName()); + + str << "Not implemented. To be done.... ";// << mother.name(); + printout(WARNING,"DDTIBLayerAlgo",str); + return 1; +} + +// first argument is the type from the xml file +DECLARE_DDCMS_DETELEMENT(track_DDTIBLayerAlgo,algorithm) diff --git a/DDCMS/src/plugins/DDTIDModuleAlgo.cpp b/DDCMS/src/plugins/DDTIDModuleAlgo.cpp new file mode 100644 index 0000000000000000000000000000000000000000..a820afd62aeb2f2b4615e1236b45bbbb719a15b7 --- /dev/null +++ b/DDCMS/src/plugins/DDTIDModuleAlgo.cpp @@ -0,0 +1,46 @@ +//========================================================================== +// AIDA Detector description implementation +//-------------------------------------------------------------------------- +// Copyright (C) Organisation europeenne pour la Recherche nucleaire (CERN) +// All rights reserved. +// +// For the licensing terms see $DD4hepINSTALL/LICENSE. +// For the list of contributors see $DD4hepINSTALL/doc/CREDITS. +// +// Author : M.Frank +// +//========================================================================== +// +// Specialized generic detector constructor +// +//========================================================================== + +// Framework include files +#include "DD4hep/DetFactoryHelper.h" +#include "DD4hep/Printout.h" +#include "DDCMS/DDCMSPlugins.h" + +// C/C++ include files +#include <sstream> + +using namespace std; +using namespace dd4hep; +using namespace dd4hep::cms; + +static long algorithm(Detector& /* description */, + ParsingContext& ctxt, + xml_h e, + SensitiveDetector& /* sens */) +{ + stringstream str; + Namespace ns(ctxt, e, true); + AlgoArguments args(ctxt, e); + //Volume mother = ns.volume(args.parentName()); + + str << "Not implemented. To be done.... ";// << mother.name(); + printout(WARNING,"DDTIDModuleAlgo",str); + return 1; +} + +// first argument is the type from the xml file +DECLARE_DDCMS_DETELEMENT(track_DDTIDModuleAlgo,algorithm) diff --git a/DDCMS/src/plugins/DDTIDRingAlgo.cpp b/DDCMS/src/plugins/DDTIDRingAlgo.cpp new file mode 100644 index 0000000000000000000000000000000000000000..3437688a8d76b965f898afc49fc592b57c8818a3 --- /dev/null +++ b/DDCMS/src/plugins/DDTIDRingAlgo.cpp @@ -0,0 +1,125 @@ +//========================================================================== +// AIDA Detector description implementation +//-------------------------------------------------------------------------- +// Copyright (C) Organisation europeenne pour la Recherche nucleaire (CERN) +// All rights reserved. +// +// For the licensing terms see $DD4hepINSTALL/LICENSE. +// For the list of contributors see $DD4hepINSTALL/doc/CREDITS. +// +// Author : M.Frank +// +//========================================================================== +// +// Specialized generic detector constructor +// +//========================================================================== + +// Framework include files +#include "DD4hep/DetFactoryHelper.h" +#include "DD4hep/Printout.h" +#include "DDCMS/DDCMSPlugins.h" + +// C/C++ include files +#include <sstream> + +using namespace std; +using namespace dd4hep; +using namespace dd4hep::cms; + +static long algorithm(Detector& /* description */, + ParsingContext& ctxt, + xml_h e, + SensitiveDetector& /* sens */) +{ + stringstream str; + Namespace ns(ctxt, e, true); + AlgoArguments args(ctxt, e); + Volume mother = ns.volume(args.parentName()); + vector<string> moduleName = args.value<vector<string> >("ModuleName"); //Name of the module + string iccName = args.value<string>("ICCName"); //Name of the ICC + int number = args.value<int>("Number"); //Number of copies + double startAngle = args.value<double>("StartAngle"); //Phi offset + double rModule = args.value<double>("ModuleR"); //Location of module in R + vector<double> zModule = args.value<vector<double> >("ModuleZ"); // in Z + double rICC = args.value<double>("ICCR"); //Location of ICC in R + double sICC = args.value<double>("ICCShift"); //Shift of ICC per to R + vector<double> zICC = args.value<vector<double> >("ICCZ"); // in Z + + str << "Parent " << mother.name() + << "\tModule " << moduleName[0] << ", " + << moduleName[1] << "\tICC " << iccName + << "\tNameSpace " << ns.name; + printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTIDRingAlgo",str); + + str << "Parameters for positioning--" + << " StartAngle " << startAngle/CLHEP::deg + << " Copy Numbers " << number << " Modules at R " + << rModule << " Z " << zModule[0] << ", " << zModule[1] + << " ICCs at R " << rICC << " Z " << zICC[0] << ", " + << zICC[1]; + printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTIDRingAlgo",str); + + double theta = 90.*CLHEP::deg; + double phiy = 0.*CLHEP::deg; + double dphi = CLHEP::twopi/number; + + //Loop over modules + Volume icc = ns.volume(iccName); + Volume mod0 = ns.volume(moduleName[0]); + Volume mod1 = ns.volume(moduleName[1]); + for (int i=0; i<number; i++) { + //First the module + double phiz = startAngle + i*dphi; + double xpos = rModule*cos(phiz); + double ypos = rModule*sin(phiz); + double zpos, thetay, phix; + Volume module; + if (i%2 == 0) { + phix = phiz + 90.*CLHEP::deg; + thetay = 0*CLHEP::deg; + zpos = zModule[0]; + module = mod0; + } else { + phix = phiz - 90.*CLHEP::deg; + thetay = 180*CLHEP::deg; + zpos = zModule[1]; + module = mod1; + } + + // stereo face inside toward structure, rphi face outside + phix = phix - 180.*CLHEP::deg; + thetay = thetay + 180.*CLHEP::deg; + // + Position trmod(xpos, ypos, zpos); + Rotation3D rotation = make_rotation3D(theta, phix, thetay, phiy, theta, phiz); + // int copyNr = i+1; + /* PlacedVolume pv = */ mother.placeVolume(module, Transform3D(rotation,trmod)); + str << module.name() << " number " + << i+1 << " positioned in " << mother.name() << " at " + << trmod << " with " << rotation; + printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTIDRingAlgo",str); + + //Now the ICC + if (i%2 == 0 ) { + zpos = zICC[0]; + xpos = rICC*cos(phiz) + sICC*sin(phiz); + ypos = rICC*sin(phiz) - sICC*cos(phiz); + } else { + zpos = zICC[1]; + xpos = rICC*cos(phiz) - sICC*sin(phiz); + ypos = rICC*sin(phiz) + sICC*cos(phiz); + } + // int copyNr = i+1; + Position tricc(xpos, ypos, zpos); + /* PlacedVolume pv = */ mother.placeVolume(icc, Transform3D(rotation,tricc)); + str << iccName << " number " + << i+1 << " positioned in " << mother.name() << " at " + << tricc << " with " << rotation; + printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTIDRingAlgo",str); + } + return 1; +} + +// first argument is the type from the xml file +DECLARE_DDCMS_DETELEMENT(track_DDTIDRingAlgo___DISABLED,algorithm) diff --git a/DDCMS/src/plugins/DDTOBRodAlgo.cpp b/DDCMS/src/plugins/DDTOBRodAlgo.cpp new file mode 100644 index 0000000000000000000000000000000000000000..94642942e79fe51a47ce224b10e9f484c0a05f7e --- /dev/null +++ b/DDCMS/src/plugins/DDTOBRodAlgo.cpp @@ -0,0 +1,46 @@ +//========================================================================== +// AIDA Detector description implementation +//-------------------------------------------------------------------------- +// Copyright (C) Organisation europeenne pour la Recherche nucleaire (CERN) +// All rights reserved. +// +// For the licensing terms see $DD4hepINSTALL/LICENSE. +// For the list of contributors see $DD4hepINSTALL/doc/CREDITS. +// +// Author : M.Frank +// +//========================================================================== +// +// Specialized generic detector constructor +// +//========================================================================== + +// Framework include files +#include "DD4hep/DetFactoryHelper.h" +#include "DD4hep/Printout.h" +#include "DDCMS/DDCMSPlugins.h" + +// C/C++ include files +#include <sstream> + +using namespace std; +using namespace dd4hep; +using namespace dd4hep::cms; + +static long algorithm(Detector& /* description */, + ParsingContext& ctxt, + xml_h e, + SensitiveDetector& /* sens */) +{ + stringstream str; + Namespace ns(ctxt, e, true); + AlgoArguments args(ctxt, e); + Volume mother = ns.volume(args.parentName()); + + str << "Not implemented. To be done.... " << mother.name(); + printout(WARNING,"DDTOBRodAlgo",str); + return 1; +} + +// first argument is the type from the xml file +DECLARE_DDCMS_DETELEMENT(track_DDTOBRodAlgo,algorithm) diff --git a/DDCMS/src/plugins/DDTrackerAngular.cpp b/DDCMS/src/plugins/DDTrackerAngular.cpp new file mode 100644 index 0000000000000000000000000000000000000000..bf6e48c6151450ee78bf4c05dff96abd878e1a4b --- /dev/null +++ b/DDCMS/src/plugins/DDTrackerAngular.cpp @@ -0,0 +1,116 @@ +//========================================================================== +// AIDA Detector description implementation +//-------------------------------------------------------------------------- +// Copyright (C) Organisation europeenne pour la Recherche nucleaire (CERN) +// All rights reserved. +// +// For the licensing terms see $DD4hepINSTALL/LICENSE. +// For the list of contributors see $DD4hepINSTALL/doc/CREDITS. +// +// Author : M.Frank +// +//========================================================================== +// +// Specialized generic detector constructor +// +//========================================================================== + +// Framework include files +#include "DD4hep/DetFactoryHelper.h" +#include "DD4hep/Printout.h" +#include "DDCMS/DDCMSPlugins.h" + +// C/C++ include files +#include <sstream> + +using namespace std; +using namespace dd4hep; +using namespace dd4hep::cms; + +static long algorithm(Detector& /* description */, + ParsingContext& ctxt, + xml_h e, + SensitiveDetector& /* sens */) +{ + stringstream str; + Namespace ns(ctxt,e,true); + AlgoArguments args(ctxt, e); + // Header section of original DDTrackerAngular.h + int n = args.value<int>("N"); + int startCopyNo = args.find("StartCopyNo") ? args.value<int>("StartCopyNo") : 1; + int incrCopyNo = args.find("IncrCopyNo") ? args.value<int>("IncrCopyNo") : 1; + double rangeAngle = args.value<double>("RangeAngle"); //Range in angle + double startAngle = args.value<double>("StartAngle"); //Start anle + double radius = args.value<double>("Radius"); //Radius + vector<double> center = args.value<vector<double> >("Center"); //Phi values + double delta; //Increment in phi + Volume mother = ns.volume(args.parentName()); + Volume child = ns.volume(args.value<string>("ChildName")); + + // Code section of original DDTrackerAngular.cc + if (fabs(rangeAngle-360.0*CLHEP::deg)<0.001*CLHEP::deg) { + delta = rangeAngle/double(n); + } else { + if (n > 1) { + delta = rangeAngle/double(n-1); + } else { + delta = 0.; + } + } + + str << "debug: Parameters for positioning:: n " + << n << " Start, Range, Delta " + << startAngle/CLHEP::deg << " " + << rangeAngle/CLHEP::deg << " " << delta/CLHEP::deg + << " Radius " << radius << " Centre " << center[0] + << ", " << center[1] << ", "<<center[2]; + printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTrackerAngular",str); + + str << "debug: Parent " << mother.name() + << "\tChild " << child.name() << " NameSpace " + << ns.name; + printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTrackerAngular",str); + + double theta = 90.*CLHEP::deg; + int copy = startCopyNo; + double phi = startAngle; + for (int i=0; i<n; i++) { + double phix = phi; + double phiy = phix + 90.*CLHEP::deg; + double phideg = phix/CLHEP::deg; + + Rotation3D rotation; + if (phideg != 0) { + string rotstr = ns.ns_name(child.name()) + std::to_string(phideg*10.); + auto irot = ctxt.rotations.find(ns.prepend(rotstr)); + if ( irot != ctxt.rotations.end() ) { + rotation = ns.rotation(ns.prepend(rotstr)); + } + else { + str << "Creating a new " + << "rotation: " << rotstr << "\t90., " + << phix/CLHEP::deg << ", 90.," + << phiy/CLHEP::deg <<", 0, 0"; + printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTrackerAngular",str); + RotationZYX rot; + rotation = make_rotation3D(theta, phix, theta, phiy, 0., 0.); + } + } + + double xpos = radius*cos(phi) + center[0]; + double ypos = radius*sin(phi) + center[1]; + double zpos = center[2]; + Position tran(xpos, ypos, zpos); + mother.placeVolume(child, Transform3D(rotation,tran)); + str << "test " << child.name() << " number " + << copy << " positioned in " << mother.name() << " at " + << tran << " with " << rotation; + printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTrackerAngular",str); + copy += incrCopyNo; + phi += delta; + } + return 1; +} + +// first argument is the type from the xml file +DECLARE_DDCMS_DETELEMENT(track_DDTrackerAngular,algorithm) diff --git a/DDCMS/src/plugins/DDTrackerLinear.cpp b/DDCMS/src/plugins/DDTrackerLinear.cpp index 43c75df7099ab6fdac9364511acb64840cf061f2..92b5cef54d4a18884393c3fcaf4a54961c7b3185 100644 --- a/DDCMS/src/plugins/DDTrackerLinear.cpp +++ b/DDCMS/src/plugins/DDTrackerLinear.cpp @@ -28,70 +28,55 @@ using namespace dd4hep; using namespace dd4hep::detail; using namespace dd4hep::cms; -static Ref_t create_element(Detector& /* description */, - ParsingContext& ctxt, - xml_h e, - SensitiveDetector& /* sens */) +static long create_element(Detector& /* description */, + ParsingContext& ctxt, + xml_h e, + SensitiveDetector& /* sens */) { - stringstream str; - Namespace ns(ctxt); - AlgoArguments args(ctxt, e); - xml_det_t x_det = e; - string name = x_det.nameStr(); - DetElement det (name,x_det.id()); - Assembly assembly(name); - string parentName = args.parentName(); - int startcn = 1, incrcn = 1; - int number = args.value<int>("Number"); - double theta = args.value<double>("Theta"); - double phi = args.value<double>("Phi"); - double offset = args.value<double>("Offset"); - double delta = args.value<double>("Delta"); - vector<double> centre = args.value<vector<double> >("Center"); - string rotMat = args.value<string>("Rotation"); - - if ( args.find("StartCopyNo") ) { - startcn = size_t(args.value<double>("StartCopyNo")); - } - if ( args.find("IncrCopyNo") ) { - incrcn = int(args.value<double>("IncrCopyNo")); - } - printout(INFO,"DDTrackerLinear","+++ Executing Algorithm:%-24s rParent:%s", - name.c_str(), parentName.c_str()); + stringstream str; + Namespace ns(ctxt, e, true); + AlgoArguments args(ctxt, e); + int startcn = args.find("StartCopyNo") ? args.value<int>("StartCopyNo") : 1; + int incrcn = args.find("IncrCopyNo") ? args.value<int>("IncrCopyNo") : 1; + int number = args.value<int>("Number"); + double theta = args.value<double>("Theta"); + double phi = args.value<double>("Phi"); + double offset = args.value<double>("Offset"); + double delta = args.value<double>("Delta"); + vector<double> centre = args.value<vector<double> >("Center"); + string rotMat = args.value<string>("Rotation"); + Volume mother = ns.volume(args.parentName()); + Volume child = ns.volume(args.value<string>("ChildName")); - string childName = args.value<string>("ChildName"); - str << "DDTrackerLinear debug: Parent " << parentName - << "\tChild " << childName << " NameSpace " + printout(INFO,"DDTrackerLinear","+++ Executing Algorithm. rParent:%s",mother.name()); + str << "debug: Parent " << mother.name() + << "\tChild " << child.name() << " NameSpace " << ns.name << "\tNumber " << number << "\tAxis (theta/phi) " << theta/dd4hep::deg << ", " << phi/dd4hep::deg << "\t(Offset/Delta) " << offset << ", " << delta << "\tCentre " << centre[0] << ", " << centre[1] << ", " << centre[2] << "\tRotation " << rotMat; - printout(INFO,"DDTrackerLinear",str.str().c_str()); + printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTrackerLinear",str); - Volume mother = ctxt.volume(parentName); - Volume child = ctxt.volume(childName); Position direction(sin(theta)*cos(phi),sin(theta)*sin(phi),cos(theta)); Position base(centre[0],centre[1],centre[2]); RotationZYX rot; if ( !rotMat.empty() ) { - rot = ctxt.rotation(rotMat); + rot = ns.rotation(rotMat); } for (int i=0, ci=startcn; i<number; i++, ci += incrcn) { Position tran = base + (offset + double(i)*delta)*direction; // Copy number ??? - /* PlacedVolume pv = */ - rotMat.empty() - ? assembly.placeVolume(child,Transform3D(rot,tran)) - : assembly.placeVolume(child,tran); - str.str(""); + /* PlacedVolume pv = */ rotMat.empty() + ? mother.placeVolume(child,Transform3D(rot,tran)) + : mother.placeVolume(child,tran); str << child.name() << " number " << ci << " positioned in " << mother.name() << " at " << tran << " with " << rot; - printout(INFO,"DDTrackerLinear",str.str().c_str()); + printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTrackerLinear",str); } - return det; + return 1; } // first argument is the type from the xml file diff --git a/DDCMS/src/plugins/DDTrackerPhiAlgo.cpp b/DDCMS/src/plugins/DDTrackerPhiAlgo.cpp new file mode 100644 index 0000000000000000000000000000000000000000..c6da02ee7e193486c54cf7a12c8ecb2717df92f5 --- /dev/null +++ b/DDCMS/src/plugins/DDTrackerPhiAlgo.cpp @@ -0,0 +1,93 @@ +//========================================================================== +// AIDA Detector description implementation +//-------------------------------------------------------------------------- +// Copyright (C) Organisation europeenne pour la Recherche nucleaire (CERN) +// All rights reserved. +// +// For the licensing terms see $DD4hepINSTALL/LICENSE. +// For the list of contributors see $DD4hepINSTALL/doc/CREDITS. +// +// Author : M.Frank +// +//========================================================================== +// +// Specialized generic detector constructor +// +//========================================================================== + +// Framework include files +#include "DD4hep/DetFactoryHelper.h" +#include "DD4hep/Printout.h" +#include "DDCMS/DDCMSPlugins.h" + +// C/C++ include files +#include <sstream> + +using namespace std; +using namespace dd4hep; +using namespace dd4hep::cms; + +static long algorithm(Detector& /* description */, + ParsingContext& ctxt, + xml_h e, + SensitiveDetector& /* sens */) +{ + stringstream str; + Namespace ns(ctxt, e, true); + AlgoArguments args(ctxt, e); + Volume mother = ns.volume(args.parentName()); + Volume child = ns.volume(args.childName()); + int startcn = args.find("StartCopyNo") ? args.value<int>("StartCopyNo") : 1; + int incrcn = args.find("IncrCopyNo") ? args.value<int>("IncrCopyNo") : 1; + vector<double> phi = args.value<vector<double> >("Phi"); // Phi values + vector<double> zpos = args.value<vector<double> >("ZPos"); // Z positions + int numcopies = args.find("NumCopies") ? args.value<int>("NumCopies") : int(phi.size()); + double radius = args.value<double>("Radius"); + double tilt = args.value<double>("Tilt"); + + if ( numcopies != int(phi.size()) ) { + str << "error: Parameter " + << "NumCopies does not agree with the size " + << "of the Phi vector. It was adjusted to " + << "be the size of the Phi vector and may " + << "lead to crashes or errors."; + printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTrackerPhiAlgo",str); + } + + str << "debug: Parameters for position" + << "ing:: " << " Radius " << radius << " Tilt " + << tilt/CLHEP::deg << " Copies " << phi.size() + << " at"; + printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTrackerPhiAlgo",str); + for (int i=0; i<(int)(phi.size()); i++) { + str << "\t[" << i << "] phi = " << phi[i]/CLHEP::deg + << " z = " << zpos[i]; + printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTrackerPhiAlgo",str); + } + str << "debug: Parent " << mother.name() + <<"\tChild " << child.name() << " NameSpace " << ns.name; + printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTrackerPhiAlgo",str); + + double theta = 90.*CLHEP::deg; + int ci = startcn; + for (int i = 0; i < numcopies; ++i) { + double phix = phi[i] + tilt; + double phiy = phix + 90.*CLHEP::deg; + double phideg = phi[i]/CLHEP::deg; + double xpos = radius*cos(phi[i]); + double ypos = radius*sin(phi[i]); + Rotation3D rot = make_rotation3D(theta, phix, theta, phiy, 0., 0.); + Position tran(xpos, ypos, zpos[i]); + /* PlacedVolume pv = */ mother.placeVolume(child,Transform3D(rot,tran)); + str << "test: " << child.name() << " number " + << ci << " positioned in " << mother.name() << " at " + << tran << " with " << rot; + printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTrackerPhiAlgo",str); + ci = ci+incrcn; + } + return 1; +} + +// first argument is the type from the xml file +DECLARE_DDCMS_DETELEMENT(track_DDTrackerPhiAlgo,algorithm) + diff --git a/DDCMS/src/plugins/DDTrackerPhiAltAlgo.cpp b/DDCMS/src/plugins/DDTrackerPhiAltAlgo.cpp new file mode 100644 index 0000000000000000000000000000000000000000..b56945947ea769df4d2f087c412f060b163efef3 --- /dev/null +++ b/DDCMS/src/plugins/DDTrackerPhiAltAlgo.cpp @@ -0,0 +1,104 @@ +//========================================================================== +// AIDA Detector description implementation +//-------------------------------------------------------------------------- +// Copyright (C) Organisation europeenne pour la Recherche nucleaire (CERN) +// All rights reserved. +// +// For the licensing terms see $DD4hepINSTALL/LICENSE. +// For the list of contributors see $DD4hepINSTALL/doc/CREDITS. +// +// Author : M.Frank +// +//========================================================================== +// +// Specialized generic detector constructor +// +//========================================================================== + +// Framework include files +#include "DD4hep/DetFactoryHelper.h" +#include "DD4hep/Printout.h" +#include "DDCMS/DDCMSPlugins.h" + +// C/C++ include files +#include <sstream> + +using namespace std; +using namespace dd4hep; +using namespace dd4hep::cms; + +static long algorithm(Detector& /* description */, + ParsingContext& ctxt, + xml_h e, + SensitiveDetector& /* sens */) +{ + stringstream str; + Namespace ns(ctxt, e, true); + AlgoArguments args(ctxt, e); + Volume mother = ns.volume(args.parentName()); + Volume child = ns.volume(args.childName()); + double tilt = args.value<double>("Tilt"); //Tilt of the module + double startAngle = args.value<double>("StartAngle"); //offset in phi + double rangeAngle = args.value<double>("RangeAngle"); //Maximum range in phi + double radiusIn = args.value<double>("RadiusIn"); //Inner radius + double radiusOut = args.value<double>("RadiusOut"); //Outer radius + double zpos = args.value<double>("ZPosition"); //z position + int number = args.value<int>("Number"); //Number of copies + int startCopyNo = args.find("StartCopyNo") ? args.value<int>("StartCopyNo") : 1; //Start copy number + int incrCopyNo = args.find("IncrCopyNo") ? args.value<int>("IncrCopyNo") : 1; //Increment in copy number + + str << "Parameters for positioning-- Tilt " << tilt + << "\tStartAngle " << startAngle/CLHEP::deg + << "\tRangeAngle " << rangeAngle/CLHEP::deg + << "\tRin " << radiusIn << "\tRout " << radiusOut + << "\t ZPos " << zpos << "\tCopy Numbers " << number + << " Start/Increment " << startCopyNo << ", " + << incrCopyNo; + printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTrackerPhiAltAlgo",str); + str << "Parent " << mother.name() << "\tChild " << child.name() << " NameSpace " << ns.name; + printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTrackerPhiAltAlgo",str); + + if (number > 0) { + double theta = 90.*CLHEP::deg; + double dphi; + if (number == 1 || fabs(rangeAngle-360.0*CLHEP::deg)<0.001*CLHEP::deg) + dphi = rangeAngle/number; + else + dphi = rangeAngle/(number-1); + int copyNo = startCopyNo; + + for (int i=0; i<number; i++) { + double phi = startAngle + i*dphi; + double phix = phi - tilt + 90.*CLHEP::deg; + double phiy = phix + 90.*CLHEP::deg; + double phideg = phix/CLHEP::deg; + + Rotation3D rotation; + if (phideg != 0) { + rotation = make_rotation3D(theta, phix, theta, phiy, 0., 0.); + } + + double xpos, ypos; + if (i%2 == 0) { + xpos = radiusIn*cos(phi); + ypos = radiusIn*sin(phi); + } else { + xpos = radiusOut*cos(phi); + ypos = radiusOut*sin(phi); + } + Position tran(xpos, ypos, zpos); + /* PlacedVolume pv = */ mother.placeVolume(child,Transform3D(rotation,tran)); + str << "" << child.name() + << " number " << copyNo << " positioned in " + << mother.name() << " at " << tran << " with " + << rotation; + printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTrackerPhiAltAlgo",str); + copyNo += incrCopyNo; + } + } + return 1; +} + +// first argument is the type from the xml file +DECLARE_DDCMS_DETELEMENT(track_DDTrackerPhiAltAlgo,algorithm) + diff --git a/DDCMS/src/plugins/DDTrackerXYZPosAlgo.cpp b/DDCMS/src/plugins/DDTrackerXYZPosAlgo.cpp new file mode 100644 index 0000000000000000000000000000000000000000..57faf42ec79d569221af8afedd7eb05a0c7003c2 --- /dev/null +++ b/DDCMS/src/plugins/DDTrackerXYZPosAlgo.cpp @@ -0,0 +1,78 @@ +//========================================================================== +// AIDA Detector description implementation +//-------------------------------------------------------------------------- +// Copyright (C) Organisation europeenne pour la Recherche nucleaire (CERN) +// All rights reserved. +// +// For the licensing terms see $DD4hepINSTALL/LICENSE. +// For the list of contributors see $DD4hepINSTALL/doc/CREDITS. +// +// Author : M.Frank +// +//========================================================================== +// +// Specialized generic detector constructor +// +//========================================================================== + +// Framework include files +#include "DD4hep/DetFactoryHelper.h" +#include "DD4hep/Printout.h" +#include "DDCMS/DDCMSPlugins.h" + +// C/C++ include files +#include <sstream> + +using namespace std; +using namespace dd4hep; +using namespace dd4hep::cms; + +static long algorithm(Detector& /* description */, + ParsingContext& ctxt, + xml_h e, + SensitiveDetector& /* sens */) +{ + stringstream str; + Namespace ns(ctxt, e, true); + AlgoArguments args(ctxt, e); + int startCopyNo = args.find("StartCopyNo") ? args.value<int>("StartCopyNo") : 1; + int incrCopyNo = args.find("IncrCopyNo") ? args.value<int>("IncrCopyNo") : 1; + Volume mother = ns.volume(args.parentName()); + Volume child = ns.volume(args.value<string>("ChildName")); + vector<double> xvec = args.value<vector<double> >("XPositions"); // X positions + vector<double> yvec = args.value<vector<double> >("YPositions"); // Y positions + vector<double> zvec = args.value<vector<double> >("ZPositions"); // Z positions + vector<string> rotMat = args.value<vector<string> >("Rotations"); // Names of rotation matrices + + str << "debug: Parent " << mother.name() + << "\tChild " << child.name() << " NameSpace " + << ns.name << "\tCopyNo (Start/Increment) " + << startCopyNo << ", " << incrCopyNo << "\tNumber " + << xvec.size() << ", " << yvec.size() << ", " << zvec.size(); + printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTrackerXYZPosAlgo",str); + for (int i = 0; i < (int)(zvec.size()); i++) { + str << "\t[" << i << "]\tX = " << xvec[i] + << "\t[" << i << "]\tY = " << yvec[i] + << "\t[" << i << "]\tZ = " << zvec[i] + << ", Rot.Matrix = " << rotMat[i]; + printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTrackerXYZPosAlgo",str); + } + + for (int i=0, copy = startCopyNo; i<(int)(zvec.size()); i++) { + Position tran(xvec[i], yvec[i], zvec[i]); + Rotation3D rot; + /* PlacedVolume pv = */ rotMat[i] != "NULL" + ? mother.placeVolume(child,Transform3D(ns.rotation(rotMat[i]),tran)) + : mother.placeVolume(child,tran); + str << "test: " << child.name() + <<" number " << copy << " positioned in " + << mother.name() << " at " << tran << " with " << rot; + printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTrackerXYZPosAlgo",str); + copy += incrCopyNo; + } + return 1; +} + +// first argument is the type from the xml file +DECLARE_DDCMS_DETELEMENT(track_DDTrackerXYZPosAlgo,algorithm) + diff --git a/DDCMS/src/plugins/DDTrackerZPosAlgo.cpp b/DDCMS/src/plugins/DDTrackerZPosAlgo.cpp new file mode 100644 index 0000000000000000000000000000000000000000..e375c43dd022991a39f3232a1374ae83880bee47 --- /dev/null +++ b/DDCMS/src/plugins/DDTrackerZPosAlgo.cpp @@ -0,0 +1,73 @@ +//========================================================================== +// AIDA Detector description implementation +//-------------------------------------------------------------------------- +// Copyright (C) Organisation europeenne pour la Recherche nucleaire (CERN) +// All rights reserved. +// +// For the licensing terms see $DD4hepINSTALL/LICENSE. +// For the list of contributors see $DD4hepINSTALL/doc/CREDITS. +// +// Author : M.Frank +// +//========================================================================== +// +// Specialized generic detector constructor +// +//========================================================================== + +// Framework include files +#include "DD4hep/DetFactoryHelper.h" +#include "DD4hep/Printout.h" +#include "DDCMS/DDCMSPlugins.h" + +// C/C++ include files +#include <sstream> + +using namespace std; +using namespace dd4hep; +using namespace dd4hep::cms; + +static long algorithm(Detector& /* description */, + ParsingContext& ctxt, + xml_h e, + SensitiveDetector& /* sens */) +{ + stringstream str; + Namespace ns(ctxt, e, true); + AlgoArguments args(ctxt, e); + int startCopyNo = args.find("StartCopyNo") ? args.value<int>("StartCopyNo") : 1; + int incrCopyNo = args.find("IncrCopyNo") ? args.value<int>("IncrCopyNo") : 1; + Volume mother = ns.volume(args.parentName()); + Volume child = ns.volume(args.value<string>("ChildName")); + vector<double> zvec = args.value<vector<double> >("ZPositions"); // Z positions + vector<string> rotMat = args.value<vector<string> >("Rotations"); // Names of rotation matrices + + str << "debug: Parent " << mother.name() + << "\tChild " << child.name() << " NameSpace " + << ns.name << "\tCopyNo (Start/Increment) " + << startCopyNo << ", " << incrCopyNo << "\tNumber " << zvec.size(); + printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTrackerZPosAlgo",str); + for (int i = 0; i < (int)(zvec.size()); i++) { + str << "\t[" << i << "]\tZ = " << zvec[i] + << ", Rot.Matrix = " << rotMat[i]; + printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTrackerZPosAlgo",str); + } + + for (int i=0, copy = startCopyNo; i<(int)(zvec.size()); i++) { + Position tran(0, 0, zvec[i]); + Rotation3D rot; + /* PlacedVolume pv = */ rotMat[i] != "NULL" + ? mother.placeVolume(child,Transform3D(ns.rotation(rotMat[i]),tran)) + : mother.placeVolume(child,tran); + str << "test: " << child.name() + <<" number " << copy << " positioned in " + << mother.name() << " at " << tran << " with " << rot; + printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTrackerZPosAlgo",str); + copy += incrCopyNo; + } + return 1; +} + +// first argument is the type from the xml file +DECLARE_DDCMS_DETELEMENT(track_DDTrackerZPosAlgo,algorithm) + diff --git a/DDCore/include/DD4hep/Printout.h b/DDCore/include/DD4hep/Printout.h index 6daa21d6b2092967e0c9ce22ec118022819c9624..2dd9afd8a8e0b63835baa8742ee2572c9fcf6c64 100644 --- a/DDCore/include/DD4hep/Printout.h +++ b/DDCore/include/DD4hep/Printout.h @@ -21,6 +21,7 @@ #include <cstdarg> #include <map> #include <string> +#include <sstream> #include <iostream> /// Forward declarations @@ -57,6 +58,26 @@ namespace dd4hep { */ std::string arguments(int argc, char** argv); + /// Calls the display action with a given severity level + /** + * @arg severity [int,read-only] Display severity flag (see enum) + * @arg src [string,read-only] Information source (component, etc.) + * @arg str [stringstream, RW] string stream containing data to be printed. + * Object is reset after use. + * @return Status code indicating success or failure + */ + int printout(PrintLevel severity, const char* src, std::stringstream& str); + + /// Calls the display action with a given severity level + /** + * @arg severity [int,read-only] Display severity flag (see enum) + * @arg src [string,read-only] Information source (component, etc.) + * @arg str [stringstream, RW] string stream containing data to be printed. + * Object is reset after use. + * @return Status code indicating success or failure + */ + int printout(PrintLevel severity, const std::string& src, std::stringstream& str); + /// Calls the display action with a given severity level /** * @arg severity [int,read-only] Display severity flag (see enum) diff --git a/DDCore/include/XML/XMLElements.h b/DDCore/include/XML/XMLElements.h index e5d8ac848659bc6c748ce3d2ebeb3cdbdafe09c7..f7fa8b0847ae9e92b108f44e9d7e45f8f0f943e1 100644 --- a/DDCore/include/XML/XMLElements.h +++ b/DDCore/include/XML/XMLElements.h @@ -627,24 +627,25 @@ namespace dd4hep { typedef XmlDocument* DOC; DOC m_doc; - /// Constructor - Document(DOC d) : m_doc(d) { - } + /// Default Constructor + Document() : m_doc(0) {} + /// Initializing Constructor + Document(DOC d) : m_doc(d) {} + /// Copy constructor + Document(const Document& d) = default; + /// Assignment + Document& operator=(const Document& d) = default; + /// Destructor + ~Document() = default; /// Auto-conversion to DOM document - operator DOC() const { - return m_doc; - } + operator DOC() const { return m_doc; } /// Accessot to DOM document behaviour using arrow operator - DOC operator->() const { - return m_doc; - } + DOC operator->() const { return m_doc; } /// Accessot to DOM document behaviour - DOC ptr() const { - return m_doc; - } + DOC ptr() const { return m_doc; } + /// Access the ROOT eleemnt of the DOM document Handle_t root() const; - /// Create DOM element Handle_t createElt(const XmlChar* tag) const; /// Clone a DOM element / sub-tree @@ -668,11 +669,13 @@ namespace dd4hep { class DocumentHolder : public Document { public: /// Default Constructor - DocumentHolder() : Document(0) { - } + DocumentHolder() = default; + /// Default Constructor + DocumentHolder(const DocumentHolder& copy) = delete; /// Constructor - DocumentHolder(DOC d) : Document(d) { - } + DocumentHolder(DOC d) : Document(d) { } + /// Assignment operator + DocumentHolder& operator=(const DocumentHolder& copy) = delete; /// Assign new document. Old document is dropped. DocumentHolder& assign(DOC d); /// Standard destructor - releases the document diff --git a/DDCore/src/Printout.cpp b/DDCore/src/Printout.cpp index adb28c4c7e374b3541a6258e4b80264afcc3c9d8..0a00c5f12d110df9f551e29fc2135e57c3ad32fc 100644 --- a/DDCore/src/Printout.cpp +++ b/DDCore/src/Printout.cpp @@ -102,6 +102,40 @@ string dd4hep::arguments(int argc, char** argv) { return str.str(); } +/// Calls the display action with a given severity level +/** + * @arg severity [int,read-only] Display severity flag (see enum) + * @arg src [string,read-only] Information source (component, etc.) + * @arg str [stringstream, RW] string stream containing data to be printed. + * Object is reset after use. + * @return Status code indicating success or failure + */ +int dd4hep::printout(PrintLevel severity, const char* src, std::stringstream& str) { + int ret = 1; + if (severity >= print_lvl) { + ret = printout(severity, src, str.str().c_str()); + } + str.str(""); + return ret; +} + +/// Calls the display action with a given severity level +/** + * @arg severity [int,read-only] Display severity flag (see enum) + * @arg src [string,read-only] Information source (component, etc.) + * @arg str [stringstream, RW] string stream containing data to be printed. + * Object is reset after use. + * @return Status code indicating success or failure + */ +int dd4hep::printout(PrintLevel severity, const std::string& src, std::stringstream& str) { + int ret = 1; + if (severity >= print_lvl) { + ret = printout(severity, src, str.str().c_str()); + } + str.str(""); + return ret; +} + /** Calls the display action * \arg severity [int,read-only] Display severity flag * \arg src [string,read-only] Information source (component, etc.) diff --git a/examples/DDCMS/CMS-tracker.png b/examples/DDCMS/CMS-pixbar.png similarity index 100% rename from examples/DDCMS/CMS-tracker.png rename to examples/DDCMS/CMS-pixbar.png diff --git a/examples/DDCMS/CMS-tracker1.png b/examples/DDCMS/CMS-tracker1.png new file mode 100644 index 0000000000000000000000000000000000000000..e3c3f2b10184d4649c910adbc1cd7f8d17ba8c2d Binary files /dev/null and b/examples/DDCMS/CMS-tracker1.png differ diff --git a/examples/DDCMS/data/cms_tracker.xml b/examples/DDCMS/data/cms_tracker.xml index a48ea6be8461f7fbbbf3aa44c08390737804d168..29faa3fdd2205adb12fcdee6778e21804b3569be 100644 --- a/examples/DDCMS/data/cms_tracker.xml +++ b/examples/DDCMS/data/cms_tracker.xml @@ -1,10 +1,19 @@ <?xml version="1.0"?> <DDDefinition> <debug> +<!-- <debug_shapes/> <debug_volumes/> + <debug_constants/> + <debug_rotations/> + <debug_materials/> + <debug_includes/> + <debug_namespaces/> + <debug_algorithms/> <debug_placements/> +--> </debug> + <ConstantsSection label="" eval="true"> <Constant name="world_x" value="5*m"/> <Constant name="world_y" value="5*m"/> @@ -13,6 +22,12 @@ <Constant name="Air" value="materials_Air" type="string"/> <Constant name="Vacuum" value="materials_Vacuum" type="string"/> </ConstantsSection> + <ConstantsSection label="servicescylinderb.xml" eval="true"> + <Constant name="zero" value="0.0*fm"/> + </ConstantsSection> + <ConstantsSection label="servicescylinderf.xml" eval="true"> + <Constant name="zero" value="0.0*fm"/> + </ConstantsSection> <VisSection> <!-- Unused stuff: @@ -68,15 +83,28 @@ </VisSection> + <ConstantsSection label="pixfwd" eval="true"> + <Constant name="AnchorZ" value="0.*mm"/> + <Constant name="ZPixelForward" value="325.*mm"/> + </ConstantsSection> + <ConstantsSection label="tracker.xml" eval="true"> + <Constant name="BackPlaneDz" value="0.015*mm"/> + </ConstantsSection> + <IncludeSection> <Include ref="materials.xml"/> <Include ref="trackermaterial.xml"/> + <Include ref="tibtidcommonmaterial.xml"/> <Include ref="pixfwdMaterials.xml"/> - <Include ref="pixbarmaterial.xml"/> + <Include ref="vacuum.xml"/> <Include ref="cmsextent.xml"/> <Include ref="cms.xml"/> - <Include ref="pixbar.xml"/> + +<!-- +--> + + <Include ref="pixbarmaterial.xml"/> <Include ref="pixbarladder.xml"/> <Include ref="pixbarladderfull.xml"/> <Include ref="pixbarladderhalf.xml"/> @@ -84,6 +112,225 @@ <Include ref="pixbarlayer0.xml"/> <Include ref="pixbarlayer1.xml"/> <Include ref="pixbarlayer2.xml"/> + <Include ref="pixbar.xml"/> + +<!-- +--> + + <Include ref="tecmaterial.xml"/> + + <Include ref="tecpetpar.xml"/> + <Include ref="tecpetalb.xml"/> + <Include ref="tecpetalf.xml"/> + <Include ref="tecpetal0.xml"/> + <Include ref="tecpetal0b.xml"/> + <Include ref="tecpetal0f.xml"/> + <Include ref="tecpetal3.xml"/> + <Include ref="tecpetal3b.xml"/> + <Include ref="tecpetal3f.xml"/> + <Include ref="tecpetal6b.xml"/> + <Include ref="tecpetal6f.xml"/> + <Include ref="tecpetal8b.xml"/> + <Include ref="tecpetal8f.xml"/> + + <Include ref="tecmodpar.xml"/> + <Include ref="tecmodule0.xml"/> + <Include ref="tecmodule0s.xml"/> + <Include ref="tecmodule1.xml"/> + <Include ref="tecmodule1r.xml"/> + <Include ref="tecmodule1s.xml"/> + <Include ref="tecmodule2.xml"/> + <Include ref="tecmodule3.xml"/> + <Include ref="tecmodule4.xml"/> + <Include ref="tecmodule4r.xml"/> + <Include ref="tecmodule4s.xml"/> + <Include ref="tecmodule5.xml"/> + <Include ref="tecmodule6.xml"/> + <Include ref="tecmodule0r.xml"/> + + <Include ref="tecring0.xml"/> + <Include ref="tecring0b.xml"/> + <Include ref="tecring0f.xml"/> + <Include ref="tecring1.xml"/> + <Include ref="tecring1b.xml"/> + <Include ref="tecring1f.xml"/> + <Include ref="tecring2.xml"/> + <Include ref="tecring2b.xml"/> + <Include ref="tecring2f.xml"/> + <Include ref="tecring3.xml"/> + <Include ref="tecring3b.xml"/> + <Include ref="tecring3f.xml"/> + <Include ref="tecring4.xml"/> + <Include ref="tecring4b.xml"/> + <Include ref="tecring4f.xml"/> + <Include ref="tecring5.xml"/> + <Include ref="tecring5b.xml"/> + <Include ref="tecring5f.xml"/> + <Include ref="tecring6.xml"/> + <Include ref="tecring6b.xml"/> + <Include ref="tecring6f.xml"/> + + <Include ref="tecwheel.xml"/> + <Include ref="tecwheel6.xml"/> + <Include ref="tecwheela.xml"/> + <Include ref="tecwheelb.xml"/> + <Include ref="tecwheelc.xml"/> + <Include ref="tecwheeld.xml"/> + + <Include ref="tecbackplate.xml"/> + <Include ref="tec.xml"/> + <Include ref="tecservices.xml"/> + +<!-- +--> + <Include ref="tibmaterial.xml"/> + + <Include ref="tibmodpar.xml"/> + <Include ref="tibmodule0.xml"/> + <Include ref="tibmodule0a.xml"/> + <Include ref="tibmodule0b.xml"/> + <Include ref="tibmodule2.xml"/> + + <Include ref="tiblayerpar.xml"/> + <Include ref="tiblayer0.xml"/> + <Include ref="tiblayer1.xml"/> + <Include ref="tiblayer2.xml"/> + <Include ref="tiblayer3.xml"/> + + <Include ref="tibstringpar.xml"/> + <Include ref="tibstring0.xml"/> + <Include ref="tibstring0ll.xml"/> + <Include ref="tibstring0lr.xml"/> + <Include ref="tibstring0ul.xml"/> + <Include ref="tibstring0ur.xml"/> + <Include ref="tibstring1.xml"/> + <Include ref="tibstring1ll.xml"/> + <Include ref="tibstring1lr.xml"/> + <Include ref="tibstring1ul.xml"/> + <Include ref="tibstring1ur.xml"/> + <Include ref="tibstring2.xml"/> + <Include ref="tibstring2ll.xml"/> + <Include ref="tibstring2lr.xml"/> + <Include ref="tibstring2ul.xml"/> + <Include ref="tibstring2ur.xml"/> + <Include ref="tibstring3.xml"/> + <Include ref="tibstring3ll.xml"/> + <Include ref="tibstring3lr.xml"/> + <Include ref="tibstring3ul.xml"/> + <Include ref="tibstring3ur.xml"/> + + <Include ref="tib.xml"/> + +<!-- +--> + <Include ref="tidmaterial.xml"/> + <Include ref="tidmodpar.xml"/> + <Include ref="tidringpar.xml"/> + + <Include ref="tidb.xml"/> + <Include ref="tidf.xml"/> + <Include ref="tidmodule0.xml"/> + <Include ref="tidmodule0l.xml"/> + <Include ref="tidmodule0r.xml"/> + <Include ref="tidmodule1.xml"/> + <Include ref="tidmodule1l.xml"/> + <Include ref="tidmodule1r.xml"/> + <Include ref="tidmodule2.xml"/> + <Include ref="tidring0.xml"/> + <Include ref="tidring0b.xml"/> + <Include ref="tidring0f.xml"/> + <Include ref="tidring1.xml"/> + <Include ref="tidring1b.xml"/> + <Include ref="tidring1f.xml"/> + <Include ref="tidring2.xml"/> + <Include ref="tid.xml"/> + + <Include ref="tibtidservices.xml"/> + <Include ref="tibtidservicesb.xml"/> + <Include ref="tibtidservicesf.xml"/> +<!-- +--> + + <Include ref="tobmaterial.xml"/> + <Include ref="tobmodpar.xml"/> + + <Include ref="tobmodule0.xml"/> + <Include ref="tobmodule2.xml"/> + <Include ref="tobmodule4.xml"/> + + <Include ref="tobrodpar.xml"/> + + <Include ref="tobrod0.xml"/> + <Include ref="tobrod0c.xml"/> + <Include ref="tobrod0h.xml"/> + <Include ref="tobrod0l.xml"/> + + <Include ref="tobrod1.xml"/> + <Include ref="tobrod1h.xml"/> + <Include ref="tobrod1l.xml"/> + + <Include ref="tobrod2.xml"/> + <Include ref="tobrod2c.xml"/> + <Include ref="tobrod2h.xml"/> + <Include ref="tobrod2l.xml"/> + + <Include ref="tobrod3.xml"/> + <Include ref="tobrod3h.xml"/> + <Include ref="tobrod3l.xml"/> + + <Include ref="tobrod4.xml"/> + <Include ref="tobrod4c.xml"/> + <Include ref="tobrod4h.xml"/> + <Include ref="tobrod4l.xml"/> + + <Include ref="tobrod5.xml"/> + <Include ref="tobrod5h.xml"/> + <Include ref="tobrod5l.xml"/> + + <Include ref="tob.xml"/> + + +<!-- + <Include ref="pixfwdCommon.xml"/> + <Include ref="pixfwdPanelBase.xml"/> + <Include ref="pixfwdPanel.xml"/> + <Include ref="pixfwdDisk.xml"/> + <Include ref="pixfwdCylinder.xml"/> + <Include ref="pixfwdNipple.xml"/> + + <Include ref="pixfwdPlaq.xml"/> + <Include ref="pixfwdPlaq1x2.xml"/> + <Include ref="pixfwdPlaq1x5.xml"/> + <Include ref="pixfwdPlaq2x3.xml"/> + <Include ref="pixfwdPlaq2x4.xml"/> + <Include ref="pixfwdPlaq2x5.xml"/> + + <Include ref="pixfwd.xml"/> + +--> + + <Include ref="trackertib.xml"/> + <Include ref="trackertid.xml"/> + <Include ref="trackertec.xml"/> + <Include ref="trackertob.xml"/> + <Include ref="trackerbulkhead.xml"/> + <Include ref="trackerother.xml"/> + <Include ref="trackerpixbar.xml"/> + <Include ref="tracker.xml"/> </IncludeSection> + + <PosPartSection label=""> +<!-- + <PosPart copyNumber="1"> + <rParent name="world_volume"/> + <rChild name="tec:TEC"/> + </PosPart> +--> + <PosPart copyNumber="2"> + <rParent name="world_volume"/> + <rChild name="tracker:Tracker"/> + </PosPart> + </PosPartSection> + </DDDefinition> diff --git a/examples/DDCMS/data/pixfwd.xml b/examples/DDCMS/data/pixfwd.xml new file mode 100644 index 0000000000000000000000000000000000000000..ac7603bdd00554ea6ec84d6f280d5785e01f5503 --- /dev/null +++ b/examples/DDCMS/data/pixfwd.xml @@ -0,0 +1,170 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <!-- + + == CMS Forward Pixels Geometry == + + @version 3.02.01 May 30, 2006 + @created Dmitry Onoprienko + @modified Xingtao Huang to implement the simplified fpix service cylinder + + == Subsystem or component described by the file == + + Forward pixels endcap (contains two disks inside a service cylinder). + + == Root volume and its reference frame == + + Two root volumes are defined: + + PixelForwardZPlus : +Z half of the detector + PixelForwardZMinus : -Z half of the detector + + X horizontal + Y vertical + Z along the beam line, pointing away from IP + + == Positioning == + + Anchor point of this component is at the IP-side edge of the service cylider, on + the axis of the detector (see annotated drawings). + The file defines [AnchorZ] constant that corresponds to the Z coordinate + of the anchor point in the forward pixels endcap reference frame, and the + [ZPixelForward] constant equal to the distance from CMS IP to the + anchor point. + + Therefore, in the CMS global reference frame, + PixelForwardZPlus has to be positioned at + (0., 0., 0.) with no rotation, and + PixelForwardZMinus has to be positioned at + (0., 0., 0.) + with pixfwdCommon:Y180 rotation (180 degrees around Y axis). + + --> + <!-- Root volumes --> + <ConstantsSection label="Root" eval="true"> + <Constant name="RootRadius" value="[pixfwdCylinder:CylindersOuterRmax]"/> + <Constant name="RootHalfLength" value="[pixfwdCylinder:CylindersOuterLength]/2.+ [pixfwdCylinder:CylindersEndFlangeLength]/2."/> + <Constant name="AnchorZ" value="0.*mm"/> + <Constant name="ZPixelForward" value="325.*mm"/> + <Constant name="RootStartZ" value="-2*mm"/> + <Constant name="RootMidZ3" value="[cms:TrackBeamZ1]-[ZPixelForward]"/> + <Constant name="RootEndZ" value="2*[RootHalfLength]"/> + </ConstantsSection> + <SolidSection label="Root"> + <Polycone name="PixelForward" startPhi="0*deg" deltaPhi="360*deg"> + <ZSection z="[RootStartZ]" rMin="[cms:TrackBeamR1]" rMax="[RootRadius]"/> + <ZSection z="[RootMidZ3]" rMin="[cms:TrackBeamR1]" rMax="[RootRadius]"/> + <ZSection z="[RootEndZ]" rMin="[cms:TrackBeamR2]" rMax="[RootRadius]"/> + </Polycone> + </SolidSection> + <LogicalPartSection label="Root"> + <LogicalPart name="PixelForwardZPlus" category="envelope"> + <rSolid name="PixelForward"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="PixelForwardZMinus" category="envelope"> + <rSolid name="PixelForward"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + </LogicalPartSection> + <!-- Position disks inside root --> + <ConstantsSection label="Disks" eval="true"> + <!-- Distances from IP-side edge of PixelForwardRoot to disk centers --> + <Constant name="Disk1Z" value="30*mm"/> + <Constant name="Disk2Z" value="160*mm"/> + <Constant name="Disk3Z" value="290*mm"/> + </ConstantsSection> + <PosPartSection label="Disks"> + <!-- +Z endcap --> + <PosPart copyNumber="1"> + <rParent name="PixelForwardZPlus"/> + <rChild name="pixfwdDisk:PixelForwardDiskZPlus"/> + <Translation x="0." y="0." z="[AnchorZ]+[Disk1Z]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="PixelForwardZPlus"/> + <rChild name="pixfwdDisk:PixelForwardDiskZPlus"/> + <Translation x="0." y="0." z="[AnchorZ]+[Disk2Z]"/> + </PosPart> + <!-- UNCOMMENT TO SIMULATE THE THIRD DISK --> + <!-- <PosPart copyNumber="3">--> + <!-- <rParent name="PixelForwardZPlus"/>--> + <!-- <rChild name="pixfwdDisk:PixelForwardDiskZPlus"/>--> + <!-- <Translation x="0." y="0." z="[AnchorZ]+ [Disk3Z]" />--> + <!-- </PosPart>--> + <!-- -Z endcap --> + <PosPart copyNumber="1"> + <rParent name="PixelForwardZMinus"/> + <rChild name="pixfwdDisk:PixelForwardDiskZMinus"/> + <Translation x="0." y="0." z="[AnchorZ]+[Disk1Z]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="PixelForwardZMinus"/> + <rChild name="pixfwdDisk:PixelForwardDiskZMinus"/> + <Translation x="0." y="0." z="[AnchorZ]+[Disk2Z]"/> + </PosPart> + <!-- UNCOMMENT TO SIMULATE THE THIRD DISK --> + <!-- <PosPart copyNumber="3">--> + <!-- <rParent name="PixelForwardZMinus"/>--> + <!-- <rChild name="pixfwdDisk:PixelForwardDiskZMinus"/>--> + <!-- <Translation x="0." y="0." z="[AnchorZ]+[Disk3Z]" />--> + <!-- </PosPart>--> + </PosPartSection> + <!-- Position service cylinders inside root. + Since shapeless volumes are not useable at the moment, + PixelForwardCylinder.xml does the actual positioning, we just tell it where to place the + cylinders by defining Z position of IP-side edge of service cylinder in PixelForward frame: + --> + <ConstantsSection label="ServiceCylinder" eval="true"> + <Constant name="ZCylinder" value="[AnchorZ]"/> + </ConstantsSection> + <PosPartSection label="Cylinders"> + <!-- +Z endcap --> + <PosPart copyNumber="1"> + <rParent name="pixfwd:PixelForwardZPlus"/> + <rChild name="pixfwdCylinder:PixelForwardServiceCylinder"/> + <Translation x="0." y="0." z="0."/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="pixfwd:PixelForwardZPlus"/> + <rChild name="pixfwdCylinder:PixelForwardCylinderEndFlange"/> + <Translation x="0." y="0." z="[pixfwd:ZCylinder]+[pixfwdCylinder:CylindersOuterLength]+[pixfwdCylinder:CylindersEndFlangeLength]/2."/> + <rRotation name="pixfwdCylinder:EndFlangeRot1"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="pixfwd:PixelForwardZPlus"/> + <rChild name="pixfwdCylinder:PixelForwardCylinderEndFlange"/> + <Translation x="0." y="0." z="[pixfwd:ZCylinder]+[pixfwdCylinder:CylindersOuterLength]+[pixfwdCylinder:CylindersEndFlangeLength]/2."/> + <rRotation name="pixfwdCylinder:EndFlangeRot2"/> + <!-- xt rRotation name="pixfwdCommon:Z180" / xt--> + </PosPart> + <!-- xt PosPart copyNumber="1"> + <rParent name="pixfwd:PixelForwardZPlus"/> + <rChild name="pixfwdCylinder:PixelForwardCylinderBackCyl"/> + <Translation x="0." y="0." z="[pixfwd:ZCylinder]+[pixfwdCylinder:CylindersFrontLength]+[pixfwdCylinder:CylinderBackLength]/2." /> + </PosPart xt --> + <!-- -Z endcap --> + <PosPart copyNumber="1"> + <rParent name="pixfwd:PixelForwardZMinus"/> + <rChild name="pixfwdCylinder:PixelForwardServiceCylinder"/> + <Translation x="0." y="0." z="0."/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="pixfwd:PixelForwardZMinus"/> + <rChild name="pixfwdCylinder:PixelForwardCylinderEndFlange"/> + <Translation x="0." y="0." z="[pixfwd:ZCylinder]+[pixfwdCylinder:CylindersOuterLength]+[pixfwdCylinder:CylindersEndFlangeLength]/2."/> + <rRotation name="pixfwdCylinder:EndFlangeRot1"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="pixfwd:PixelForwardZMinus"/> + <rChild name="pixfwdCylinder:PixelForwardCylinderEndFlange"/> + <Translation x="0." y="0." z="[pixfwd:ZCylinder]+[pixfwdCylinder:CylindersOuterLength]+[pixfwdCylinder:CylindersEndFlangeLength]/2."/> + <rRotation name="pixfwdCylinder:EndFlangeRot2"/> + </PosPart> + <!-- xt PosPart copyNumber="1"> + <rParent name="pixfwd:PixelForwardZMinus"/> + <rChild name="pixfwdCylinder:PixelForwardCylinderBackCyl"/> + <Translation x="0." y="0." z="[pixfwd:ZCylinder]+[pixfwdCylinder:CylindersFrontLength]+[pixfwdCylinder:CylinderBackLength]/2." /> + </PosPart xt --> + </PosPartSection> +</DDDefinition> diff --git a/examples/DDCMS/data/pixfwdBlade.xml b/examples/DDCMS/data/pixfwdBlade.xml new file mode 100644 index 0000000000000000000000000000000000000000..6588cc68bf00ebe63c42e99c5a249f0415894147 --- /dev/null +++ b/examples/DDCMS/data/pixfwdBlade.xml @@ -0,0 +1,551 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <!-- + + == CMS Forward Pixels Geometry == + + @version 3.02.01 May 30, 2006 + @created Dmitry Onoprienko + @modified Vesna Cuplov (fix overlaps 05.02.07) + + == Subsystem or component described by the file == + + Aluminum base of a blade with a cooling channel (no nipples, no panels). + + == Root volume and its reference frame == + + "PixelForwardBlade" + + Y is along the axis of the blade, from narrow to wider end. Once the blade + is positioned, its Y axis will be pointing away from the beam line. + Z is perpendicular to the plane of the blade, pointing from "body" (narrow) to "cover" (wide) side. + + == Positioning == + + The file defines AnchorX, AnchorY, and AnchorZ + constants that describe the coordinates of the anchor point in the blade + root volume (PixelForwardBlade) reference frame. + Currently, [AnchorX] = [AnchorZ] = 0. + + Since the origin of the "blade frame" with respect to which DDPixFwdBlades + algorithm positions all one-per-blade items coincides with the blade anchor point, + the "child translation" vector passed to the algorithm should be + (-[pixfwdBlade:AnchorX], -[pixfwdBlade:AnchorY], -[pixfwdBlade:AnchorZ]). + + == Additional comments == + + Blade is implemented so that it consists of + "body" (narrow aluminum side), "cover" (wide aluminum side), and + "tip" (part close to inner ring, common to both sides. + Cooling channel then goes into both "body" and "cover". + + Multiple boolean operations are used in describing the tip of the blade and + the crossbar. As a result, IguanaCMS sometimes fails to visualize it properly. + This seems to be a problem for visualization only, not for tracking at simulation time. + + --> + <!-- Blade geometry parameters: Input from drawings --> + <ConstantsSection label="Input" eval="true"> + <Constant name="T01" value="0.5*mm"/> + <!-- Blade01.gif --> + <Constant name="T02" value="3.0*mm"/> + <!-- Blade01.gif --> + <Constant name="T03" value="0.5*mm"/> + <!-- Blade01.gif --> + <Constant name="T04" value="2.5*mm"/> + <!-- Blade01.gif --> + <Constant name="W01" value="6.5*mm"/> + <!-- Blade01.gif --> + <Constant name="W02" value="7.5*mm"/> + <!-- Blade01.gif --> + <Constant name="W03" value="11.5*mm"/> + <!-- Blade01.gif --> + <Constant name="R01" value="8.57*mm"/> + <!-- Blade02.gif --> + <Constant name="L01" value="57.1*mm"/> + <!-- Blade02.gif --> + <Constant name="L02" value="32.38*mm"/> + <!-- Blade02.gif --> + <Constant name="L03" value="32.42*mm"/> + <!-- Blade02.gif --> + <Constant name="L09" value="48.80*mm"/> + <!-- Blade02.gif --> + <Constant name="A01" value="16.625*deg"/> + <!-- Blade03.gif --> + <Constant name="W04" value="1.0*mm"/> + <!-- Blade03.gif --> + <Constant name="W05" value="4.0*mm"/> + <!-- Blade03.gif --> + <Constant name="R02" value="2.0*mm"/> + <!-- Blade03.gif --> + <Constant name="R03" value="2.0*mm"/> + <!-- Blade03.gif --> + <Constant name="L04" value="9.79*mm"/> + <!-- Blade03.gif --> + <Constant name="L05" value="1.83*mm"/> + <!-- Blade03.gif --> + <Constant name="L10" value="3.47*mm"/> + <!-- Blade03.gif --> + <Constant name="W06" value="5.6*mm"/> + <!-- Blade04.gif --> + <Constant name="R04" value="2.0*mm"/> + <!-- Blade04.gif --> + <Constant name="L06" value="3.77*mm"/> + <!-- Blade04.gif --> + <Constant name="L07" value="3.0*mm"/> + <!-- Blade04.gif --> + <Constant name="L08" value="5.79*mm"/> + <!-- Blade04.gif --> + </ConstantsSection> + <!-- Calculating parameters that will be needed by multiple components : --> + <ConstantsSection label="Common" eval="true"> + <!-- Root volume dimensions (may need to be changed later) --> + <Constant name="RootHalfLength" value="([L04]+[L03]+[L01]+[W03]/2.)/2."/> + <Constant name="RootHalfWidth" value="([L02]+[W03])/2."/> + <Constant name="RootHalfThickness" value="[BladeHalfThickness]+0.1*mm"/> + <!-- Coordinates of ancor point --> + <Constant name="AnchorX" value="0."/> + <Constant name="AnchorY" value="-[RootHalfLength]+[L10]"/> + <Constant name="AnchorZ" value="0."/> + <!-- Coordinate of point 0 on Blade02.gif. All other Y-coordinates are relative to it. --> + <Constant name="y00" value="[AnchorY]-[L10]+[L04]+[L03]"/> + <!-- Others --> + <Constant name="zCover" value="([T02]-[T03])/2."/> + <Constant name="zBody" value="-([T01]+[T03])/2."/> + <Constant name="BladeHalfThickness" value="([T01]+[T02])/2."/> + <Constant name="BodyHalfThickness" value="([T02]-[T03])/2."/> + <Constant name="CoverHalfThickness" value="([T01]+[T03])/2."/> + </ConstantsSection> + <!-- Root volume for the blade. This volume is positioned by pixfwdDisk.xml --> + <!-- Previous description from D. Onoprienko + <SolidSection label="Root"> + <Box name="PixelForwardBlade" dx="[RootHalfWidth]" dy="[RootHalfLength]" dz="[RootHalfThickness]" /> + </SolidSection> + --> + <!-- New Description (05/02/07): Two overlaps were fixed. The overlap with the Nipples was fixed by removing 0.1*mm in the mother volume thickness. The second overlap was: The corners of the box describing the mother volume were going outside the DiskOuterRing, so we remove these corners with a little box for simplicity. --> + <SolidSection label="Root"> + <Box name="PixelForwardBlade_main" dx="[RootHalfWidth]" dy="[RootHalfLength]" dz="[RootHalfThickness]-0.1*mm"/> + <Box name="PixelForwardBlade_box" dx="1.5*mm" dy="1.5*mm" dz="[RootHalfThickness]"/> + <SubtractionSolid name="PixelForwardBlade_Left_subtraction"> + <rSolid name="PixelForwardBlade_main"/> + <rSolid name="PixelForwardBlade_box"/> + <Translation x="-[RootHalfWidth]" y="[RootHalfLength]" z="0."/> + </SubtractionSolid> + <SubtractionSolid name="PixelForwardBlade"> + <rSolid name="PixelForwardBlade_Left_subtraction"/> + <rSolid name="PixelForwardBlade_box"/> + <Translation x="[RootHalfWidth]" y="[RootHalfLength]" z="0."/> + </SubtractionSolid> + </SolidSection> + <LogicalPartSection label="Root"> + <LogicalPart name="PixelForwardBlade" category="envelope"> + <rSolid name="PixelForwardBlade"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + </LogicalPartSection> + <!-- Constants for Body and Cover --> + <ConstantsSection label="BodyCover" eval="true"> + <Constant name="e01" value="[L02]/2."/> + <Constant name="e02" value="sqrt([e01]*[e01]+[L01]*[L01]-[R01]*[R01])"/> + <!-- length of straight part of cooling channel --> + <Constant name="a01" value="atan([e01]/[L01])-atan([R01]/[e02])"/> + <!-- angle between blade axis and straight part of cooling channel --> + <Constant name="sin01" value="sin([a01])"/> + <Constant name="cos01" value="cos([a01])"/> + <Constant name="x04" value="[L02]/2."/> + <Constant name="y05" value="[y00]+[L01]"/> + <Constant name="x03" value="([R01]*[cos01]+[x04])/2."/> + <Constant name="y04" value="[y00]+(-[R01]*[sin01]+[L01])/2."/> + <Constant name="e03" value="([L03]*cos([A01]))/2."/> + <Constant name="r01" value="([R01]+[W02]/2.-[W04]/2.)"/> + <Constant name="y02" value="-[r01]*sin([A01])-[e03]*cos([A01])"/> + <Constant name="x01" value="[r01]*cos([A01])-[e03]*sin([A01])"/> + <Constant name="x06" value="[L07]/2.+[R04]+[L06]/2."/> + </ConstantsSection> + <!-- Body --> + <SolidSection label="Body"> + <Box name="PixelForwardBladeBody01" dx="[W02]/2." dy="[e02]/2." dz="[BodyHalfThickness]"/> + <Tubs name="PixelForwardBladeBody02_01" rMin="[R01]-[W02]/2." rMax="[R01]+[W02]/2." dz="[BodyHalfThickness]" startPhi="-180.*deg+[a01]" deltaPhi="180.*deg-2.*[a01]"/> + <Box name="PixelForwardBladeBody02_02" dx="[W04]/2." dy="[e03]" dz="[BodyHalfThickness]"/> + <Box name="PixelForwardBladeBody02_03" dx="[W04]/2." dy="[e03]" dz="[BodyHalfThickness]"/> + <UnionSolid name="PixelForwardBladeBody02_int01"> + <rSolid name="PixelForwardBladeBody02_01"/> + <rSolid name="PixelForwardBladeBody02_02"/> + <Translation x="-[x01]" y="[y02]" z="0."/> + <rRotation name="LeftArm02"/> + </UnionSolid> + <UnionSolid name="PixelForwardBladeBody02"> + <rSolid name="PixelForwardBladeBody02_int01"/> + <rSolid name="PixelForwardBladeBody02_03"/> + <Translation x="[x01]" y="[y02]" z="0."/> + <rRotation name="RightArm02"/> + </UnionSolid> + <Tubs name="PixelForwardBladeBody03" rMin="0." rMax="[W02]/2." dz="[BodyHalfThickness]" startPhi="0*deg" deltaPhi="180*deg"/> + <!-- Crossbar --> + <Trapezoid name="PixelForwardBladeBody04" dz="[BodyHalfThickness]" bl1="([R01]-[W02]/2.)/[cos01]+([L09]-[W06]/2.)*tan([a01])" bl2="([R01]-[W02]/2.)/[cos01]+([L09]-[W06]/2.)*tan([a01])" tl1="([R01]-[W02]/2.)/[cos01]+([L09]+[W06]/2.)*tan([a01])" tl2="([R01]-[W02]/2.)/[cos01]+([L09]+[W06]/2.)*tan([a01])" h1="[W06]/2." h2="[W06]/2." alp1="0.0" alp2="0.0" phi="90*deg"/> + <Box name="PixelForwardBladeBody05_01" dx="[L08]/2." dy="[R04]" dz="[BodyHalfThickness]"/> + <Tubs name="PixelForwardBladeBody05_02" rMin="0." rMax="[R04]" dz="[BodyHalfThickness]" startPhi="0." deltaPhi="360*deg"/> + <Tubs name="PixelForwardBladeBody05_03" rMin="0." rMax="[R04]" dz="[BodyHalfThickness]" startPhi="0." deltaPhi="360*deg"/> + <UnionSolid name="PixelForwardBladeBody05_int01"> + <rSolid name="PixelForwardBladeBody05_01"/> + <rSolid name="PixelForwardBladeBody05_02"/> + <Translation x="[L08]/2." y="0." z="0."/> + </UnionSolid> + <UnionSolid name="PixelForwardBladeBody05"> + <rSolid name="PixelForwardBladeBody05_int01"/> + <rSolid name="PixelForwardBladeBody05_03"/> + <Translation x="-[L08]/2." y="0." z="0."/> + </UnionSolid> + </SolidSection> + <LogicalPartSection label="Body"> + <LogicalPart name="PixelForwardBladeBody01_Left" category="support"> + <rSolid name="PixelForwardBladeBody01"/> + <rMaterial name="trackermaterial:T_Aluminium"/> + </LogicalPart> + <LogicalPart name="PixelForwardBladeBody01_Right" category="support"> + <rSolid name="PixelForwardBladeBody01"/> + <rMaterial name="trackermaterial:T_Aluminium"/> + </LogicalPart> + <LogicalPart name="PixelForwardBladeBody02" category="support"> + <rSolid name="PixelForwardBladeBody02"/> + <rMaterial name="trackermaterial:T_Aluminium"/> + </LogicalPart> + <LogicalPart name="PixelForwardBladeBody03_Left" category="support"> + <rSolid name="PixelForwardBladeBody03"/> + <rMaterial name="trackermaterial:T_Aluminium"/> + </LogicalPart> + <LogicalPart name="PixelForwardBladeBody03_Right" category="support"> + <rSolid name="PixelForwardBladeBody03"/> + <rMaterial name="trackermaterial:T_Aluminium"/> + </LogicalPart> + <LogicalPart name="PixelForwardBladeBody04" category="support"> + <rSolid name="PixelForwardBladeBody04"/> + <rMaterial name="trackermaterial:T_Aluminium"/> + </LogicalPart> + <LogicalPart name="PixelForwardBladeBody05" category="support"> + <rSolid name="PixelForwardBladeBody05"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + </LogicalPartSection> + <PosPartSection label="Body"> + <PosPart copyNumber="1"> + <rParent name="PixelForwardBlade"/> + <rChild name="PixelForwardBladeBody01_Left"/> + <Translation x="-[x03]" y="[y04]" z="[zBody]"/> + <rRotation name="LeftArm01"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="PixelForwardBlade"/> + <rChild name="PixelForwardBladeBody01_Right"/> + <Translation x="[x03]" y="[y04]" z="[zBody]"/> + <rRotation name="RightArm01"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="PixelForwardBlade"/> + <rChild name="PixelForwardBladeBody02"/> + <Translation x="0." y="[y00]" z="[zBody]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="PixelForwardBlade"/> + <rChild name="PixelForwardBladeBody03_Left"/> + <Translation x="-[x04]" y="[y05]" z="[zBody]"/> + <rRotation name="LeftArm01"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="PixelForwardBlade"/> + <rChild name="PixelForwardBladeBody03_Right"/> + <Translation x="[x04]" y="[y05]" z="[zBody]"/> + <rRotation name="RightArm01"/> + </PosPart> + <!-- Crossbar --> + <PosPart copyNumber="1"> + <rParent name="PixelForwardBlade"/> + <rChild name="PixelForwardBladeBody04"/> + <Translation x="0." y="[y00]+[L09]" z="[zBody]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="PixelForwardBladeBody04"/> + <rChild name="PixelForwardBladeBody05"/> + <Translation x="[x06]" y="0." z="0."/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="PixelForwardBladeBody04"/> + <rChild name="PixelForwardBladeBody05"/> + <Translation x="-[x06]" y="0." z="0."/> + </PosPart> + </PosPartSection> + <!-- Cover --> + <SolidSection label="Cover"> + <Box name="PixelForwardBladeCover01" dx="[W03]/2." dy="[e02]/2." dz="[CoverHalfThickness]"/> + <Tubs name="PixelForwardBladeCover02_01" rMin="[R01]-[W03]/2." rMax="[R01]+[W03]/2." dz="[CoverHalfThickness]" startPhi="-180.*deg+[a01]" deltaPhi="180.*deg-2.*[a01]"/> + <Box name="PixelForwardBladeCover02_02" dx="[W04]/2." dy="[e03]" dz="[CoverHalfThickness]"/> + <Box name="PixelForwardBladeCover02_03" dx="[W04]/2." dy="[e03]" dz="[CoverHalfThickness]"/> + <UnionSolid name="PixelForwardBladeCover02_int01"> + <rSolid name="PixelForwardBladeCover02_01"/> + <rSolid name="PixelForwardBladeCover02_02"/> + <Translation x="-[x01]" y="[y02]" z="0."/> + <rRotation name="LeftArm02"/> + </UnionSolid> + <UnionSolid name="PixelForwardBladeCover02"> + <rSolid name="PixelForwardBladeCover02_int01"/> + <rSolid name="PixelForwardBladeCover02_03"/> + <Translation x="[x01]" y="[y02]" z="0."/> + <rRotation name="RightArm02"/> + </UnionSolid> + <Tubs name="PixelForwardBladeCover03" rMin="0." rMax="[W03]/2." dz="[CoverHalfThickness]" startPhi="0*deg" deltaPhi="180*deg"/> + <!-- Crossbar --> + <Trapezoid name="PixelForwardBladeCover04_01" dz="[CoverHalfThickness]" bl1="([R01]-[W03]/2.)/[cos01]+([L09]-[W06]/2.)*tan([a01])" bl2="([R01]-[W03]/2.)/[cos01]+([L09]-[W06]/2.)*tan([a01])" tl1="([R01]-[W03]/2.)/[cos01]+([L09]+[W06]/2.)*tan([a01])" tl2="([R01]-[W03]/2.)/[cos01]+([L09]+[W06]/2.)*tan([a01])" h1="[W06]/2." h2="[W06]/2." alp1="0.0" alp2="0.0" phi="90*deg"/> + <Box name="PixelForwardBladeCover04_02" dx="[L06]/2." dy="[CoverHalfThickness]+[pixfwdCommon:SmallBool]" dz="[R04]"/> + <Box name="PixelForwardBladeCover04_03" dx="[L06]/2." dy="[CoverHalfThickness]+[pixfwdCommon:SmallBool]" dz="[R04]"/> + <Tubs name="PixelForwardBladeCover04_04" rMin="0." rMax="[R04]" dz="[CoverHalfThickness]+[pixfwdCommon:SmallBool]" startPhi="0." deltaPhi="360*deg"/> + <Tubs name="PixelForwardBladeCover04_05" rMin="0." rMax="[R04]" dz="[CoverHalfThickness]+[pixfwdCommon:SmallBool]" startPhi="0." deltaPhi="360*deg"/> + <Tubs name="PixelForwardBladeCover04_06" rMin="0." rMax="[R04]" dz="[CoverHalfThickness]+[pixfwdCommon:SmallBool]" startPhi="0." deltaPhi="360*deg"/> + <Tubs name="PixelForwardBladeCover04_07" rMin="0." rMax="[R04]" dz="[CoverHalfThickness]+[pixfwdCommon:SmallBool]" startPhi="0." deltaPhi="360*deg"/> + <SubtractionSolid name="PixelForwardBladeCover04_int01"> + <rSolid name="PixelForwardBladeCover04_01"/> + <rSolid name="PixelForwardBladeCover04_02"/> + <Translation x="[L07]/2.+[R04]+[L06]/2." y="0." z="0."/> + </SubtractionSolid> + <SubtractionSolid name="PixelForwardBladeCover04_int02"> + <rSolid name="PixelForwardBladeCover04_int01"/> + <rSolid name="PixelForwardBladeCover04_03"/> + <Translation x="-[L07]/2.-[R04]-[L06]/2." y="0." z="0."/> + </SubtractionSolid> + <SubtractionSolid name="PixelForwardBladeCover04_int03"> + <rSolid name="PixelForwardBladeCover04_int02"/> + <rSolid name="PixelForwardBladeCover04_04"/> + <Translation x="-[L07]/2.-[R04]" y="0." z="0."/> + </SubtractionSolid> + <SubtractionSolid name="PixelForwardBladeCover04_int04"> + <rSolid name="PixelForwardBladeCover04_int03"/> + <rSolid name="PixelForwardBladeCover04_05"/> + <Translation x="-[L07]/2.-[R04]-[L06]" y="0." z="0."/> + </SubtractionSolid> + <SubtractionSolid name="PixelForwardBladeCover04_int05"> + <rSolid name="PixelForwardBladeCover04_int04"/> + <rSolid name="PixelForwardBladeCover04_06"/> + <Translation x="[L07]/2.+[R04]" y="0." z="0."/> + </SubtractionSolid> + <SubtractionSolid name="PixelForwardBladeCover04"> + <rSolid name="PixelForwardBladeCover04_int05"/> + <rSolid name="PixelForwardBladeCover04_07"/> + <Translation x="[L07]/2.+[R04]+[L06]" y="0." z="0."/> + </SubtractionSolid> + </SolidSection> + <LogicalPartSection label="Cover"> + <LogicalPart name="PixelForwardBladeCover01_Left" category="support"> + <rSolid name="PixelForwardBladeCover01"/> + <rMaterial name="trackermaterial:T_Aluminium"/> + </LogicalPart> + <LogicalPart name="PixelForwardBladeCover01_Right" category="support"> + <rSolid name="PixelForwardBladeCover01"/> + <rMaterial name="trackermaterial:T_Aluminium"/> + </LogicalPart> + <LogicalPart name="PixelForwardBladeCover02" category="support"> + <rSolid name="PixelForwardBladeCover02"/> + <rMaterial name="trackermaterial:T_Aluminium"/> + </LogicalPart> + <LogicalPart name="PixelForwardBladeCover03_Left" category="support"> + <rSolid name="PixelForwardBladeCover03"/> + <rMaterial name="trackermaterial:T_Aluminium"/> + </LogicalPart> + <LogicalPart name="PixelForwardBladeCover03_Right" category="support"> + <rSolid name="PixelForwardBladeCover03"/> + <rMaterial name="trackermaterial:T_Aluminium"/> + </LogicalPart> + <LogicalPart name="PixelForwardBladeCover04" category="support"> + <rSolid name="PixelForwardBladeCover04"/> + <rMaterial name="trackermaterial:T_Aluminium"/> + </LogicalPart> + </LogicalPartSection> + <PosPartSection label="Cover"> + <PosPart copyNumber="1"> + <rParent name="PixelForwardBlade"/> + <rChild name="PixelForwardBladeCover01_Left"/> + <Translation x="-[x03]" y="[y04]" z="[zCover]"/> + <rRotation name="LeftArm01"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="PixelForwardBlade"/> + <rChild name="PixelForwardBladeCover01_Right"/> + <Translation x="[x03]" y="[y04]" z="[zCover]"/> + <rRotation name="RightArm01"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="PixelForwardBlade"/> + <rChild name="PixelForwardBladeCover02"/> + <Translation x="0." y="[y00]" z="[zCover]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="PixelForwardBlade"/> + <rChild name="PixelForwardBladeCover03_Left"/> + <Translation x="-[x04]" y="[y05]" z="[zCover]"/> + <rRotation name="LeftArm01"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="PixelForwardBlade"/> + <rChild name="PixelForwardBladeCover03_Right"/> + <Translation x="[x04]" y="[y05]" z="[zCover]"/> + <rRotation name="RightArm01"/> + </PosPart> + <!-- Crossbar --> + <PosPart copyNumber="1"> + <rParent name="PixelForwardBlade"/> + <rChild name="PixelForwardBladeCover04"/> + <Translation x="0." y="[y00]+[L09]" z="[zCover]"/> + </PosPart> + </PosPartSection> + <!-- Tip --> + <ConstantsSection label="Tip" eval="true"> + <Constant name="r02" value="[R01]+[W02]/2.-[L03]*sin([A01])"/> + <Constant name="r03" value="[r02]-[W04]"/> + <Constant name="e04" value="([L04]-[r03])/2."/> + <Constant name="e05" value="(([r02]*cos([A01])-[W05]/2.)/sin([A01]))/2."/> + <Constant name="y03" value="-([r02]-[W04]/2.)*sin([A01])-[e05]*cos([A01])"/> + <Constant name="x02" value="([r02]-[W04]/2.)*cos([A01])-[e05]*sin([A01])"/> + </ConstantsSection> + <SolidSection label="Tip"> + <Tubs name="PixelForwardBladeTip01_01" rMin="[r03]" rMax="[r02]" dz="[BladeHalfThickness]" startPhi="180.*deg+[A01]" deltaPhi="180.*deg-2.*[A01]"/> + <Box name="PixelForwardBladeTip01_02" dx="[W05]/2." dy="[e04]-[pixfwdCommon:SmallBool]" dz="[BladeHalfThickness]"/> + <Tubs name="PixelForwardBladeTip01_03" rMin="[R02]" rMax="[R02]*sqrt(2.)" dz="[BladeHalfThickness]+[pixfwdCommon:SmallBool]" startPhi="180.*deg" deltaPhi="180.*deg"/> + <Box name="PixelForwardBladeTip01_04" dx="[W04]/2." dy="[e05]" dz="[BladeHalfThickness]"/> + <Box name="PixelForwardBladeTip01_05" dx="[W04]/2." dy="[e05]" dz="[BladeHalfThickness]"/> + <UnionSolid name="PixelForwardBladeTip01_int01"> + <rSolid name="PixelForwardBladeTip01_01"/> + <rSolid name="PixelForwardBladeTip01_04"/> + <Translation x="-[x02]" y="[y03]" z="0."/> + <rRotation name="LeftArm02"/> + </UnionSolid> + <UnionSolid name="PixelForwardBladeTip01_int02"> + <rSolid name="PixelForwardBladeTip01_int01"/> + <rSolid name="PixelForwardBladeTip01_05"/> + <Translation x="[x02]" y="[y03]" z="0."/> + <rRotation name="RightArm02"/> + </UnionSolid> + <UnionSolid name="PixelForwardBladeTip01_int03"> + <rSolid name="PixelForwardBladeTip01_int02"/> + <rSolid name="PixelForwardBladeTip01_02"/> + <Translation x="0." y="-[r03]-[e04]-[pixfwdCommon:SmallBool]" z="0."/> + </UnionSolid> + <SubtractionSolid name="PixelForwardBladeTip01"> + <rSolid name="PixelForwardBladeTip01_int03"/> + <rSolid name="PixelForwardBladeTip01_03"/> + <Translation x="0." y="-[L04]+[L05]" z="0."/> + </SubtractionSolid> + </SolidSection> + <LogicalPartSection label="Tip"> + <LogicalPart name="PixelForwardBladeTip01" category="support"> + <rSolid name="PixelForwardBladeTip01"/> + <rMaterial name="trackermaterial:T_Aluminium"/> + </LogicalPart> + </LogicalPartSection> + <PosPartSection label="Tip"> + <PosPart copyNumber="1"> + <rParent name="PixelForwardBlade"/> + <rChild name="PixelForwardBladeTip01"/> + <Translation x="0." y="[y00]-[L03]" z="0."/> + </PosPart> + </PosPartSection> + <!-- Cooling channel --> + <ConstantsSection label="Channel" eval="true"> + <Constant name="ChanBodyHalfThickness" value="([T04]-[T03])/2."/> + <Constant name="ChanCoverHalfThickness" value="[T03]/2."/> + <Constant name="z03" value="[BodyHalfThickness]-[ChanBodyHalfThickness]"/> + <!-- Channel central plane inside body --> + <Constant name="z04" value="-[CoverHalfThickness]+[ChanCoverHalfThickness]"/> + <!-- Channel central plane inside cover --> + </ConstantsSection> + <SolidSection label="Channel"> + <Box name="PixelForwardBladeChan01_Body" dx="[W01]/2." dy="[e02]/2." dz="[ChanBodyHalfThickness]"/> + <Box name="PixelForwardBladeChan01_Cover" dx="[W01]/2." dy="[e02]/2." dz="[ChanCoverHalfThickness]"/> + <Tubs name="PixelForwardBladeChan02_Body" rMin="[R01]-[W01]/2." rMax="[R01]+[W01]/2." dz="[ChanBodyHalfThickness]" startPhi="180.*deg+[a01]" deltaPhi="180.*deg-2.*[a01]"/> + <Tubs name="PixelForwardBladeChan02_Cover" rMin="[R01]-[W01]/2." rMax="[R01]+[W01]/2." dz="[ChanCoverHalfThickness]" startPhi="180.*deg+[a01]" deltaPhi="180.*deg-2.*[a01]"/> + <Tubs name="PixelForwardBladeChan03_Body" rMin="0." rMax="[W01]/2." dz="[ChanBodyHalfThickness]" startPhi="0*deg" deltaPhi="180*deg"/> + <Tubs name="PixelForwardBladeChan03_Cover" rMin="0." rMax="[W01]/2." dz="[ChanCoverHalfThickness]" startPhi="0*deg" deltaPhi="180*deg"/> + </SolidSection> + <LogicalPartSection label="Channel"> + <LogicalPart name="PixelForwardBladeChan01_Body" category="cooling"> + <rSolid name="PixelForwardBladeChan01_Body"/> + <rMaterial name="pixfwdMaterials:PixelForwardCoolant"/> + </LogicalPart> + <LogicalPart name="PixelForwardBladeChan01_Cover" category="cooling"> + <rSolid name="PixelForwardBladeChan01_Cover"/> + <rMaterial name="pixfwdMaterials:PixelForwardCoolant"/> + </LogicalPart> + <LogicalPart name="PixelForwardBladeChan02_Body" category="cooling"> + <rSolid name="PixelForwardBladeChan02_Body"/> + <rMaterial name="pixfwdMaterials:PixelForwardCoolant"/> + </LogicalPart> + <LogicalPart name="PixelForwardBladeChan02_Cover" category="cooling"> + <rSolid name="PixelForwardBladeChan02_Cover"/> + <rMaterial name="pixfwdMaterials:PixelForwardCoolant"/> + </LogicalPart> + <LogicalPart name="PixelForwardBladeChan03_Body" category="cooling"> + <rSolid name="PixelForwardBladeChan03_Body"/> + <rMaterial name="pixfwdMaterials:PixelForwardCoolant"/> + </LogicalPart> + <LogicalPart name="PixelForwardBladeChan03_Cover" category="cooling"> + <rSolid name="PixelForwardBladeChan03_Cover"/> + <rMaterial name="pixfwdMaterials:PixelForwardCoolant"/> + </LogicalPart> + </LogicalPartSection> + <PosPartSection label="Channel"> + <PosPart copyNumber="1"> + <rParent name="PixelForwardBladeBody01_Left"/> + <rChild name="PixelForwardBladeChan01_Body"/> + <Translation x="0." y="0." z="[z03]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="PixelForwardBladeBody01_Right"/> + <rChild name="PixelForwardBladeChan01_Body"/> + <Translation x="0." y="0." z="[z03]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="PixelForwardBladeCover01_Left"/> + <rChild name="PixelForwardBladeChan01_Cover"/> + <Translation x="0." y="0." z="[z04]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="PixelForwardBladeCover01_Right"/> + <rChild name="PixelForwardBladeChan01_Cover"/> + <Translation x="0." y="0." z="[z04]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="PixelForwardBladeBody02"/> + <rChild name="PixelForwardBladeChan02_Body"/> + <Translation x="0." y="0." z="[z03]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="PixelForwardBladeCover02"/> + <rChild name="PixelForwardBladeChan02_Cover"/> + <Translation x="0." y="0." z="[z04]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="PixelForwardBladeBody03_Left"/> + <rChild name="PixelForwardBladeChan03_Body"/> + <Translation x="0." y="0." z="[z03]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="PixelForwardBladeBody03_Right"/> + <rChild name="PixelForwardBladeChan03_Body"/> + <Translation x="0." y="0." z="[z03]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="PixelForwardBladeCover03_Left"/> + <rChild name="PixelForwardBladeChan03_Cover"/> + <Translation x="0." y="0." z="[z04]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="PixelForwardBladeCover03_Right"/> + <rChild name="PixelForwardBladeChan03_Cover"/> + <Translation x="0." y="0." z="[z04]"/> + </PosPart> + </PosPartSection> + <!-- All rotations --> + <RotationSection label="Blade"> + <Rotation name="LeftArm01" phiX="[a01]" thetaX="90.*deg" phiY="90.*deg + [a01]" thetaY="90.*deg" phiZ="0." thetaZ="0."/> + <Rotation name="RightArm01" phiX="-[a01]" thetaX="90.*deg" phiY="90.*deg - [a01]" thetaY="90.*deg" phiZ="0." thetaZ="0."/> + <Rotation name="LeftArm02" phiX="[A01]" thetaX="90.*deg" phiY="90.*deg + [A01]" thetaY="90.*deg" phiZ="0." thetaZ="0."/> + <Rotation name="RightArm02" phiX="-[A01]" thetaX="90.*deg" phiY="90.*deg - [A01]" thetaY="90.*deg" phiZ="0." thetaZ="0."/> + </RotationSection> +</DDDefinition> diff --git a/examples/DDCMS/data/pixfwdCommon.xml b/examples/DDCMS/data/pixfwdCommon.xml new file mode 100644 index 0000000000000000000000000000000000000000..dbdc0591f6a9d159886d65e99dcbe4d921a39438 --- /dev/null +++ b/examples/DDCMS/data/pixfwdCommon.xml @@ -0,0 +1,26 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <!-- + + == CMS Forward Pixels Geometry == + + @version 3.02.01 May 30, 2006 + @created Dmitry Onoprienko + + == COMPONENT DEFINED BY THIS FILE: == + + Constants and rotations required by multiple components. + + --> + <ConstantsSection label="Common" eval="true"> + <Constant name="SmallBool" value="0.01*mm"/> + <!-- Small value used to make boolean-subtracted volumes + slightly larger then their mothers, so that Iguana + can visualize them properly --> + </ConstantsSection> + <RotationSection label="Root"> + <Rotation name="Y180" phiX="180.*deg" thetaX="90.*deg" phiY="90.*deg" thetaY="90.*deg" phiZ="0.*deg" thetaZ="180.*deg"/> + <Rotation name="Z180" phiX="180.*deg" thetaX="90.*deg" phiY="270.*deg" thetaY="90.*deg" phiZ="0.*deg" thetaZ="0.*deg"/> + <ReflectionRotation name="ReflectionX" phiX="180.*deg" thetaX="90.*deg" phiY="90.*deg" thetaY="90.*deg" phiZ="0.*deg" thetaZ="0.*deg"/> + </RotationSection> +</DDDefinition> diff --git a/examples/DDCMS/data/pixfwdCylinder.xml b/examples/DDCMS/data/pixfwdCylinder.xml new file mode 100644 index 0000000000000000000000000000000000000000..066d8d52707b8970696835cf4e71b9a9bf4ffe37 --- /dev/null +++ b/examples/DDCMS/data/pixfwdCylinder.xml @@ -0,0 +1,343 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <!-- + + == CMS Forward Pixels Geometry == + + @version 3.02.01 May 30, 2006 + @created Dmitry Onoprienko + @modified Xingtao Huang to implement the fpix service cylinder + @modified Vesna Cuplov to fix the Electronics boards positions (august 2008). + + + == COMPONENT DEFINED BY THIS FILE: == + + Service cylinders. + + == Comments : == + + Currently, only three graphite cylinders are described. No ribs, cables, coolant pipes, circuit boards, etc. + And unlike files for all other subsystems, this file does not define a root volume, but instead positions + new volumes directly into pixfwd:PixelForwardZPlus and pixfwd:PixelForwardZMinus, using + the pixfwd:ZCylinder constant defined in pixfwd.xml. + + The reason is that many components that should go into service cylinders have not been designed yet, + and it's not clear what shape the root volume will eventually have to have, what symmetry + between Z+ and Z- endcaps we will be able to use, and so on. Once the exact geometry is known, + the file will need to be modified to follow the standard scheme for forward pixels geometry - + root volume plus an anchor point for positioning. + + --> + <ConstantsSection label="Cylinders" eval="true"> + <Constant name="CylindersOuterRmin" value="160.00*mm"/> + <Constant name="CylindersOuterRmax" value="168.50*mm"/> + <Constant name="CylindersOuterLength" value="2101.09*mm"/> + <Constant name="CylindersEndFlangeRmin" value="132.50*mm"/> + <Constant name="CylindersEndFlangeRmax" value="160.50*mm"/> + <Constant name="CylindersEndFlangeLength" value="41.30*mm"/> + <Constant name="CylindersElectronicsRmin" value="117.20*mm"/> + <Constant name="CylindersElectronicsRmax" value="160.00*mm"/> + <Constant name="CylindersElectronicsLength" value="132.08*mm"/> + <Constant name="CylindersCoilFiberWidth" value="98.48*mm"/> + <Constant name="CylindersCoilFiberLength" value="582.97*mm"/> + <Constant name="CylindersCoilFiberThickness" value="12.70*mm"/> + <Constant name="CylinderPipeRmax" value="15.0/2.0*mm"/> + <Constant name="CylinderPipeRmin" value="9.02/2.0*mm"/> + <Constant name="CylinderPipeLength1" value="(1177.16-239.58)*mm"/> + <Constant name="CylinderPipeLength2" value="823.60*mm"/> + <Constant name="CylindersPortCardsWidth" value="60.0*mm"/> + <Constant name="CylindersPortCardsLength1" value="223.52*mm"/> + <Constant name="CylindersPortCardsLength2" value="355.60*mm"/> + <Constant name="CylindersPortCardsThickness" value="5.40*mm"/> + <Constant name="CylindersServiceZoff" value="320.0*mm"/> + <Constant name="CylindersServiceRmin" value="100*mm"/> + <Constant name="CylindersServiceZ0" value="0*mm"/> + <Constant name="CylindersServiceZMin" value="[CylindersServiceZoff]"/> + <Constant name="CylindersServiceZMax" value="[CylindersOuterLength]"/> + </ConstantsSection> + <RotationSection label="Cylinders"> + <Rotation name="EndFlangeRot1" phiX="290.*deg" thetaX="90.*deg" phiY="20.*deg" thetaY="90.*deg" phiZ="0." thetaZ="0."/> + <Rotation name="EndFlangeRot2" phiX="110.*deg" thetaX="90.*deg" phiY="200.*deg" thetaY="90.*deg" phiZ="0." thetaZ="0."/> + <Rotation name="ElectronicsRot1" phiX="39.31*deg" thetaX="90.*deg" phiY="129.31*deg" thetaY="90.*deg" phiZ="0." thetaZ="0."/> + <Rotation name="ElectronicsRot2" phiX="39.31*deg" thetaX="90.*deg" phiY="129.31*deg" thetaY="90.*deg" phiZ="0." thetaZ="0."/> + <Rotation name="CoilFiberRot1" phiX="317.19*deg" thetaX="90.*deg" phiY="47.19*deg" thetaY="90.*deg" phiZ="0." thetaZ="0."/> + <Rotation name="CoilFiberRot2" phiX="222.81*deg" thetaX="90.*deg" phiY="312.81*deg" thetaY="90.*deg" phiZ="0." thetaZ="0."/> + <Rotation name="CoilFiberRot3" phiX="42.81*deg" thetaX="90.*deg" phiY="132.81*deg" thetaY="90.*deg" phiZ="0." thetaZ="0."/> + <Rotation name="CoilFiberRot4" phiX="137.19*deg" thetaX="90.*deg" phiY="227.19*deg" thetaY="90.*deg" phiZ="0." thetaZ="0."/> + <Rotation name="PortCardsRot1" phiX="337.5*deg" thetaX="90.*deg" phiY="67.5*deg" thetaY="90.*deg" phiZ="0." thetaZ="0."/> + <Rotation name="PortCardsRot2" phiX="292.5*deg" thetaX="90.*deg" phiY="22.5*deg" thetaY="90.*deg" phiZ="0." thetaZ="0."/> + <Rotation name="PortCardsRot3" phiX="247.5*deg" thetaX="90.*deg" phiY="337.5*deg" thetaY="90.*deg" phiZ="0." thetaZ="0."/> + <Rotation name="PortCardsRot4" phiX="202.5*deg" thetaX="90.*deg" phiY="292.5*deg" thetaY="90.*deg" phiZ="0." thetaZ="0."/> + <Rotation name="PortCardsRot5" phiX="22.5*deg" thetaX="90.*deg" phiY="112.5*deg" thetaY="90.*deg" phiZ="0." thetaZ="0."/> + <Rotation name="PortCardsRot6" phiX="67.5*deg" thetaX="90.*deg" phiY="157.5*deg" thetaY="90.*deg" phiZ="0." thetaZ="0."/> + <Rotation name="PortCardsRot7" phiX="112.5*deg" thetaX="90.*deg" phiY="202.5*deg" thetaY="90.*deg" phiZ="0." thetaZ="0."/> + <Rotation name="PortCardsRot8" phiX="157.5*deg" thetaX="90.*deg" phiY="247.5* deg" thetaY="90.*deg" phiZ="0." thetaZ="0."/> + </RotationSection> + <SolidSection label="Cylinders"> + <Polycone name="PixelForwardServiceCylinder" startPhi="0*deg" deltaPhi="360*deg"> + <ZSection z="[CylindersServiceZ0]" rMin="[CylindersOuterRmin]" rMax="[CylindersOuterRmax]"/> + <ZSection z="[CylindersServiceZMin]" rMin="[CylindersOuterRmin]" rMax="[CylindersOuterRmax]"/> + <ZSection z="[CylindersServiceZMin]" rMin="[CylindersServiceRmin]" rMax="[CylindersOuterRmax]"/> + <ZSection z="[CylindersServiceZMax]" rMin="[CylindersServiceRmin]" rMax="[CylindersOuterRmax]"/> + </Polycone> + <Tubs name="PixelForwardCylinderOuterCyl" rMin="[CylindersOuterRmin]" rMax="[CylindersOuterRmax]" dz="[CylindersOuterLength]/2." startPhi="0." deltaPhi="360*deg"/> + <Tubs name="PixelForwardCylinderEndFlange" rMin="[CylindersEndFlangeRmin]" rMax="[CylindersEndFlangeRmax]" dz="[CylindersEndFlangeLength]/2." startPhi="0.*deg" deltaPhi="140.*deg"/> + <Tubs name="PixelForwardCylinderElectronics1" rMin="[CylindersElectronicsRmin]" rMax="[CylindersElectronicsRmax]" dz="[CylindersElectronicsLength]/2." startPhi="19.79*deg" deltaPhi="33.57*deg"/> + <Tubs name="PixelForwardCylinderElectronics2" rMin="[CylindersElectronicsRmin]" rMax="[CylindersElectronicsRmax]" dz="[CylindersElectronicsLength]/2." startPhi="121.17*deg" deltaPhi="39.04*deg"/> + <Tubs name="PixelForwardCylinderElectronics3" rMin="[CylindersElectronicsRmin]" rMax="[CylindersElectronicsRmax]" dz="[CylindersElectronicsLength]/2." startPhi="302.75*deg" deltaPhi="39.04*deg"/> + <Tubs name="PixelForwardCylinderElectronics4" rMin="[CylindersElectronicsRmin]" rMax="[CylindersElectronicsRmax]" dz="[CylindersElectronicsLength]/2." startPhi="203.675*deg" deltaPhi="33.57*deg"/> + <Box name="PixelForwardCylindersCoilFiber" dx="[CylindersCoilFiberWidth]/2." dy="[CylindersCoilFiberThickness]/2." dz="[CylindersCoilFiberLength]/2."/> + <Tubs name="PixelForwardCylinderPipe1" rMin="[CylinderPipeRmin]" rMax="[CylinderPipeRmax]" dz="[CylinderPipeLength1]/2." startPhi="0." deltaPhi="360*deg"/> + <Tubs name="PixelForwardCylinderPipe2" rMin="[CylinderPipeRmin]" rMax="[CylinderPipeRmax]" dz="[CylinderPipeLength2]/2." startPhi="0." deltaPhi="360*deg"/> + <Box name="PixelForwardCylindersPortCards1" dx="[CylindersPortCardsWidth]/2." dy="[CylindersPortCardsThickness]/2." dz="[CylindersPortCardsLength1]/2."/> + <Box name="PixelForwardCylindersPortCards2" dx="[CylindersPortCardsWidth]/2." dy="[CylindersPortCardsThickness]/2." dz="[CylindersPortCardsLength2]/2."/> + </SolidSection> + <LogicalPartSection label="Cylinders"> + <LogicalPart name="PixelForwardServiceCylinder" category="support"> + <rSolid name="PixelForwardServiceCylinder"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="PixelForwardCylinderOuterCyl" category="support"> + <rSolid name="PixelForwardCylinderOuterCyl"/> + <rMaterial name="pixfwdMaterials:Pix_Fwd_Servi_Cylind"/> + </LogicalPart> + <LogicalPart name="PixelForwardCylinderEndFlange" category="support"> + <rSolid name="PixelForwardCylinderEndFlange"/> + <rMaterial name="pixfwdMaterials:Pix_Fwd_End_Flange"/> + </LogicalPart> + <LogicalPart name="PixelForwardCylinderElectronics1" category="support"> + <rSolid name="PixelForwardCylinderElectronics1"/> + <rMaterial name="pixfwdMaterials:Pix_Fwd_End_Electro_2"/> + </LogicalPart> + <LogicalPart name="PixelForwardCylinderElectronics2" category="support"> + <rSolid name="PixelForwardCylinderElectronics2"/> + <rMaterial name="pixfwdMaterials:Pix_Fwd_End_Electro_1"/> + </LogicalPart> + <LogicalPart name="PixelForwardCylinderElectronics3" category="support"> + <rSolid name="PixelForwardCylinderElectronics3"/> + <rMaterial name="pixfwdMaterials:Pix_Fwd_End_Electro_1"/> + </LogicalPart> + <LogicalPart name="PixelForwardCylinderElectronics4" category="support"> + <rSolid name="PixelForwardCylinderElectronics4"/> + <rMaterial name="pixfwdMaterials:Pix_Fwd_End_Electro_2"/> + </LogicalPart> + <LogicalPart name="PixelForwardCylindersCoilFiber" category="support"> + <rSolid name="PixelForwardCylindersCoilFiber"/> + <rMaterial name="pixfwdMaterials:Pix_Fwd_End_Coil_Fiber"/> + </LogicalPart> + <LogicalPart name="PixelForwardCylinderPipe1" category="support"> + <rSolid name="PixelForwardCylinderPipe1"/> + <rMaterial name="pixfwdMaterials:Pix_Fwd_End_Pipe_1"/> + </LogicalPart> + <LogicalPart name="PixelForwardCylinderPipe2" category="support"> + <rSolid name="PixelForwardCylinderPipe2"/> + <rMaterial name="pixfwdMaterials:Pix_Fwd_End_Pipe_2"/> + </LogicalPart> + <LogicalPart name="PixelForwardCylindersPortCards1" category="support"> + <rSolid name="PixelForwardCylindersPortCards1"/> + <rMaterial name="pixfwdMaterials:Pix_Fwd_Port_Cards"/> + </LogicalPart> + <LogicalPart name="PixelForwardCylindersPortCards2" category="support"> + <rSolid name="PixelForwardCylindersPortCards2"/> + <rMaterial name="pixfwdMaterials:Pix_Fwd_Port_Cards"/> + </LogicalPart> + </LogicalPartSection> + <ConstantsSection label="CylindersPosition" eval="true"> + <Constant name="ZOuterCylinder" value="([pixfwd:AnchorZ]+[CylindersOuterLength]/2.0)"/> + <Constant name="CoilFiblerToIP" value="1538.97*mm"/> + <Constant name="CoilFilberToBeam" value="114.7*mm"/> + <Constant name="CoilFilberAngle" value="47.19*deg"/> + <!--Constant name="FractionForPipe" value="0.9499"/--> + <Constant name="FractionForPipe" value="0.99"/> + <Constant name="PipeX1" value="19.9*mm"/> + <Constant name="PipeX2" value="151.7*mm"/> + <Constant name="PipeY1" value="150.4*mm"/> + <Constant name="PipeY2" value="16.9*mm"/> + <Constant name="PipeToIP1" value="([pixfwd:ZPixelForward]+[CylindersServiceZMin]+[CylinderPipeLength1]/2)"/> + <Constant name="PipeToIP2" value="1994.38*mm"/> + <Constant name="PortCardsToBeam" value="143.1*mm"/> + <Constant name="PortCardsAngle1" value="(22.5+1)*deg"/> + <Constant name="PortCardsAngle2" value="(67.5-1)*deg"/> + <Constant name="PortCardsToIP" value="952.75*mm"/> + <Constant name="ZOffCylinder" value="-[pixfwd:ZPixelForward]"/> + </ConstantsSection> + <PosPartSection label="Cylinders"> + <PosPart copyNumber="1"> + <rParent name="pixfwdCylinder:PixelForwardServiceCylinder"/> + <rChild name="pixfwdCylinder:PixelForwardCylinderOuterCyl"/> + <Translation x="0." y="0." z="[ZOuterCylinder]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="pixfwdCylinder:PixelForwardServiceCylinder"/> + <rChild name="pixfwdCylinder:PixelForwardCylinderElectronics1"/> + <Translation x="0." y="0." z="[CylindersServiceZMax]-[CylindersElectronicsLength]/2."/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="pixfwdCylinder:PixelForwardServiceCylinder"/> + <rChild name="pixfwdCylinder:PixelForwardCylinderElectronics2"/> + <Translation x="0." y="0." z="[CylindersServiceZMax]-[CylindersElectronicsLength]/2."/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="pixfwdCylinder:PixelForwardServiceCylinder"/> + <rChild name="pixfwdCylinder:PixelForwardCylinderElectronics3"/> + <Translation x="0." y="0." z="[CylindersServiceZMax]-[CylindersElectronicsLength]/2."/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="pixfwdCylinder:PixelForwardServiceCylinder"/> + <rChild name="pixfwdCylinder:PixelForwardCylinderElectronics4"/> + <Translation x="0." y="0." z="[CylindersServiceZMax]-[CylindersElectronicsLength]/2."/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="pixfwdCylinder:PixelForwardServiceCylinder"/> + <rChild name="pixfwdCylinder:PixelForwardCylindersCoilFiber"/> + <Translation x="[CoilFilberToBeam]*cos([CoilFilberAngle])" y="[CoilFilberToBeam]*sin([CoilFilberAngle])" z="[CoilFiblerToIP]+[ZOffCylinder]"/> + <rRotation name="pixfwdCylinder:CoilFiberRot1"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="pixfwdCylinder:PixelForwardServiceCylinder"/> + <rChild name="pixfwdCylinder:PixelForwardCylindersCoilFiber"/> + <Translation x="[CoilFilberToBeam]*cos([CoilFilberAngle])" y="-[CoilFilberToBeam]*sin([CoilFilberAngle])" z="[CoilFiblerToIP]+[ZOffCylinder]"/> + <rRotation name="pixfwdCylinder:CoilFiberRot2"/> + </PosPart> + <PosPart copyNumber="3"> + <rParent name="pixfwdCylinder:PixelForwardServiceCylinder"/> + <rChild name="pixfwdCylinder:PixelForwardCylindersCoilFiber"/> + <Translation x="-[CoilFilberToBeam]*cos([CoilFilberAngle])" y="[CoilFilberToBeam]*sin([CoilFilberAngle])" z="[CoilFiblerToIP]+[ZOffCylinder]"/> + <rRotation name="pixfwdCylinder:CoilFiberRot3"/> + </PosPart> + <PosPart copyNumber="4"> + <rParent name="pixfwdCylinder:PixelForwardServiceCylinder"/> + <rChild name="pixfwdCylinder:PixelForwardCylindersCoilFiber"/> + <Translation x="-[CoilFilberToBeam]*cos([CoilFilberAngle])" y="-[CoilFilberToBeam]*sin([CoilFilberAngle])" z="[CoilFiblerToIP]+[ZOffCylinder]"/> + <rRotation name="pixfwdCylinder:CoilFiberRot4"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="pixfwdCylinder:PixelForwardServiceCylinder"/> + <rChild name="pixfwdCylinder:PixelForwardCylinderPipe1"/> + <Translation x="[PipeX1]*[FractionForPipe]" y="[PipeY1]*[FractionForPipe]" z="[PipeToIP1]+[ZOffCylinder]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="pixfwdCylinder:PixelForwardServiceCylinder"/> + <rChild name="pixfwdCylinder:PixelForwardCylinderPipe1"/> + <Translation x="[PipeX2]*[FractionForPipe]" y="[PipeY2]*[FractionForPipe]" z="[PipeToIP1]+[ZOffCylinder]"/> + </PosPart> + <PosPart copyNumber="3"> + <rParent name="pixfwdCylinder:PixelForwardServiceCylinder"/> + <rChild name="pixfwdCylinder:PixelForwardCylinderPipe1"/> + <Translation x="[PipeX2]*[FractionForPipe]" y="-[PipeY2]*[FractionForPipe]" z="[PipeToIP1]+[ZOffCylinder]"/> + </PosPart> + <PosPart copyNumber="4"> + <rParent name="pixfwdCylinder:PixelForwardServiceCylinder"/> + <rChild name="pixfwdCylinder:PixelForwardCylinderPipe1"/> + <Translation x="[PipeX1]*[FractionForPipe]" y="-[PipeY1]*[FractionForPipe]" z="[PipeToIP1]+[ZOffCylinder]"/> + </PosPart> + <PosPart copyNumber="5"> + <rParent name="pixfwdCylinder:PixelForwardServiceCylinder"/> + <rChild name="pixfwdCylinder:PixelForwardCylinderPipe1"/> + <Translation x="-[PipeX1]*[FractionForPipe]" y="[PipeY1]*[FractionForPipe]" z="[PipeToIP1]+[ZOffCylinder]"/> + </PosPart> + <PosPart copyNumber="6"> + <rParent name="pixfwdCylinder:PixelForwardServiceCylinder"/> + <rChild name="pixfwdCylinder:PixelForwardCylinderPipe1"/> + <Translation x="-[PipeX2]*[FractionForPipe]" y="[PipeY2]*[FractionForPipe]" z="[PipeToIP1]+[ZOffCylinder]"/> + </PosPart> + <PosPart copyNumber="7"> + <rParent name="pixfwdCylinder:PixelForwardServiceCylinder"/> + <rChild name="pixfwdCylinder:PixelForwardCylinderPipe1"/> + <Translation x="-[PipeX2]*[FractionForPipe]" y="-[PipeY2]*[FractionForPipe]" z="[PipeToIP1]+[ZOffCylinder]"/> + </PosPart> + <PosPart copyNumber="8"> + <rParent name="pixfwdCylinder:PixelForwardServiceCylinder"/> + <rChild name="pixfwdCylinder:PixelForwardCylinderPipe1"/> + <Translation x="-[PipeX1]*[FractionForPipe]" y="-[PipeY1]*[FractionForPipe]" z="[PipeToIP1]+[ZOffCylinder]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="pixfwdCylinder:PixelForwardServiceCylinder"/> + <rChild name="pixfwdCylinder:PixelForwardCylinderPipe2"/> + <Translation x="[PipeX1]*[FractionForPipe]" y="[PipeY1]*[FractionForPipe]" z="[PipeToIP2]+[ZOffCylinder]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="pixfwdCylinder:PixelForwardServiceCylinder"/> + <rChild name="pixfwdCylinder:PixelForwardCylinderPipe2"/> + <Translation x="[PipeX2]*[FractionForPipe]" y="[PipeY2]*[FractionForPipe]" z="[PipeToIP2]+[ZOffCylinder]"/> + </PosPart> + <PosPart copyNumber="3"> + <rParent name="pixfwdCylinder:PixelForwardServiceCylinder"/> + <rChild name="pixfwdCylinder:PixelForwardCylinderPipe2"/> + <Translation x="[PipeX2]*[FractionForPipe]" y="-[PipeY2]*[FractionForPipe]" z="[PipeToIP2]+[ZOffCylinder]"/> + </PosPart> + <PosPart copyNumber="4"> + <rParent name="pixfwdCylinder:PixelForwardServiceCylinder"/> + <rChild name="pixfwdCylinder:PixelForwardCylinderPipe2"/> + <Translation x="[PipeX1]*[FractionForPipe]" y="-[PipeY1]*[FractionForPipe]" z="[PipeToIP2]+[ZOffCylinder]"/> + </PosPart> + <PosPart copyNumber="5"> + <rParent name="pixfwdCylinder:PixelForwardServiceCylinder"/> + <rChild name="pixfwdCylinder:PixelForwardCylinderPipe2"/> + <Translation x="-[PipeX1]*[FractionForPipe]" y="[PipeY1]*[FractionForPipe]" z="[PipeToIP2]+[ZOffCylinder]"/> + </PosPart> + <PosPart copyNumber="6"> + <rParent name="pixfwdCylinder:PixelForwardServiceCylinder"/> + <rChild name="pixfwdCylinder:PixelForwardCylinderPipe2"/> + <Translation x="-[PipeX2]*[FractionForPipe]" y="[PipeY2]*[FractionForPipe]" z="[PipeToIP2]+[ZOffCylinder]"/> + </PosPart> + <PosPart copyNumber="7"> + <rParent name="pixfwdCylinder:PixelForwardServiceCylinder"/> + <rChild name="pixfwdCylinder:PixelForwardCylinderPipe2"/> + <Translation x="-[PipeX2]*[FractionForPipe]" y="-[PipeY2]*[FractionForPipe]" z="[PipeToIP2]+[ZOffCylinder]"/> + </PosPart> + <PosPart copyNumber="8"> + <rParent name="pixfwdCylinder:PixelForwardServiceCylinder"/> + <rChild name="pixfwdCylinder:PixelForwardCylinderPipe2"/> + <Translation x="-[PipeX1]*[FractionForPipe]" y="-[PipeY1]*[FractionForPipe]" z="[PipeToIP2]+[ZOffCylinder]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="pixfwdCylinder:PixelForwardServiceCylinder"/> + <rChild name="pixfwdCylinder:PixelForwardCylindersPortCards1"/> + <Translation x="[PortCardsToBeam]*cos([PortCardsAngle2])" y="[PortCardsToBeam]*sin([PortCardsAngle2])" z="[PortCardsToIP]+[ZOffCylinder]"/> + <rRotation name="pixfwdCylinder:PortCardsRot1"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="pixfwdCylinder:PixelForwardServiceCylinder"/> + <rChild name="pixfwdCylinder:PixelForwardCylindersPortCards2"/> + <Translation x="[PortCardsToBeam]*cos([PortCardsAngle1])" y="[PortCardsToBeam]*sin([PortCardsAngle1])" z="[PortCardsToIP]+[ZOffCylinder]"/> + <rRotation name="pixfwdCylinder:PortCardsRot2"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="pixfwdCylinder:PixelForwardServiceCylinder"/> + <rChild name="pixfwdCylinder:PixelForwardCylindersPortCards1"/> + <Translation x="[PortCardsToBeam]*cos([PortCardsAngle1])" y="-[PortCardsToBeam]*sin([PortCardsAngle1])" z="[PortCardsToIP]+[ZOffCylinder]"/> + <rRotation name="pixfwdCylinder:PortCardsRot3"/> + </PosPart> + <PosPart copyNumber="3"> + <rParent name="pixfwdCylinder:PixelForwardServiceCylinder"/> + <rChild name="pixfwdCylinder:PixelForwardCylindersPortCards1"/> + <Translation x="[PortCardsToBeam]*cos([PortCardsAngle2])" y="-[PortCardsToBeam]*sin([PortCardsAngle2])" z="[PortCardsToIP]+[ZOffCylinder]"/> + <rRotation name="pixfwdCylinder:PortCardsRot4"/> + </PosPart> + <PosPart copyNumber="4"> + <rParent name="pixfwdCylinder:PixelForwardServiceCylinder"/> + <rChild name="pixfwdCylinder:PixelForwardCylindersPortCards1"/> + <Translation x="-[PortCardsToBeam]*cos([PortCardsAngle2])" y="[PortCardsToBeam]*sin([PortCardsAngle2])" z="[PortCardsToIP]+[ZOffCylinder]"/> + <rRotation name="pixfwdCylinder:PortCardsRot5"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="pixfwdCylinder:PixelForwardServiceCylinder"/> + <rChild name="pixfwdCylinder:PixelForwardCylindersPortCards2"/> + <Translation x="-[PortCardsToBeam]*cos([PortCardsAngle1])" y="[PortCardsToBeam]*sin([PortCardsAngle1])" z="[PortCardsToIP]+[ZOffCylinder]"/> + <rRotation name="pixfwdCylinder:PortCardsRot6"/> + </PosPart> + <PosPart copyNumber="5"> + <rParent name="pixfwdCylinder:PixelForwardServiceCylinder"/> + <rChild name="pixfwdCylinder:PixelForwardCylindersPortCards1"/> + <Translation x="-[PortCardsToBeam]*cos([PortCardsAngle1])" y="-[PortCardsToBeam]*sin([PortCardsAngle1])" z="[PortCardsToIP]+[ZOffCylinder]"/> + <rRotation name="pixfwdCylinder:PortCardsRot7"/> + </PosPart> + <PosPart copyNumber="6"> + <rParent name="pixfwdCylinder:PixelForwardServiceCylinder"/> + <rChild name="pixfwdCylinder:PixelForwardCylindersPortCards1"/> + <Translation x="-[PortCardsToBeam]*cos([PortCardsAngle2])" y="-[PortCardsToBeam]*sin([PortCardsAngle2])" z="[PortCardsToIP]+[ZOffCylinder]"/> + <rRotation name="pixfwdCylinder:PortCardsRot8"/> + </PosPart> + </PosPartSection> +</DDDefinition> diff --git a/examples/DDCMS/data/pixfwdDisk.xml b/examples/DDCMS/data/pixfwdDisk.xml new file mode 100644 index 0000000000000000000000000000000000000000..03f1e3678df1433373ccd711ecfcdda4f1504af2 --- /dev/null +++ b/examples/DDCMS/data/pixfwdDisk.xml @@ -0,0 +1,278 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <!-- + + == CMS Forward Pixels Geometry == + + @version 3.02.01 May 30, 2006 + @created Dmitry Onoprienko + @modified Vesna Cuplov 04.17.07 + @modified august 2008: Aluminium_OuterRing material with appropriate density (lighter than aluminium density) in order to comprensate the in-existing holes in the outer-ring simulation. + @modified Vesna Cuplov (august 2008): Inner and Outer Rings have 2 different aluminium densities. + + + == Subsystem or component described by the file == + + Forward Pixels disk. + + == Root volume and its reference frame == + + Two root volumes are defined: + + PixelForwardDiskZPlus (Disks for Z+ endcap) + PixelForwardDiskZMinus (Disks for Z- endcap) + + X horizontal<br> + Y vertical pointing up<br> + Z along the beam line perpendicular to the disk plane, points away from IP<br> + + Origin at the center of the disk.<br> + + == Positioning == + + Anchor point coincides with the root reference frame origin. + Disks are positioned into endcaps without any rotations. + + --> + <ConstantsSection label="Input" eval="true"> + <Constant name="InnerRingREdge" value="49.16*mm"/> + <Constant name="InnerRingRMin" value="50.16*mm"/> + <Constant name="InnerRingRMax" value="51.16*mm"/> + <Constant name="InnerRingEdge" value="1.00*mm"/> + <Constant name="InnerRingHalfWidth" value="29.50*mm"/> + <Constant name="OuterRingRMin" value="157.5*mm"/> + <Constant name="OuterRingRMax" value="158.5*mm"/> + <Constant name="OuterRingREdge" value="159.5*mm"/> + <Constant name="OuterRingEdge" value="1.00*mm"/> + <Constant name="OuterRingHalfWidth" value="29.50*mm"/> + <!-- Layout of panels in disks (left or right). Blades are numbered in + increasing phi order in the disk frame. Therefore, in the global + frame they are numbered in increasing phi order for the Z Plus disks, + in decreasing phi order, starting with blade 12, for the Z Minus disks. --> + <!-- "L" - left, "R" - right, "-" - no panel : 000000000111111111122222 --> + <!-- 123456789012345678901234 --> + <!-- <Constant name="PanelLayoutZPlus3" value="RLLLLRLLLLLRRLLLLRLLLLLR" />--> + <!-- <Constant name="PanelLayoutZPlus4" value="LLLLLLRLLLLRLLLLLLRLLLLR" />--> + <!-- <Constant name="PanelLayoutZMinus3" value="LRRRRRLRRRRLLRRRRRLRRRRL" />--> + <!-- <Constant name="PanelLayoutZMinus4" value="LRRRRLRRRRRRLRRRRLRRRRRR" />--> + <!-- Oops! DDL does not support string constants... Cut-and-paste to algorithm calls below. --> + </ConstantsSection> + <!-- Disk root --> + <ConstantsSection label="Root" eval="true"> + <Constant name="DiskRmin" value="[InnerRingREdge]"/> + <Constant name="DiskRmax" value="[OuterRingREdge]"/> + <Constant name="DiskHalfWidth" value="[OuterRingHalfWidth]"/> + </ConstantsSection> + <!-- New description (modification) 04/17/07 : Panel3R, 4R and 4L were going through the Disk, so 2mm were added to the Width of the mother volume of the Disk --> + <SolidSection label="Root"> + <Tubs name="PixelForwardDisk" rMin="[DiskRmin]" rMax="[DiskRmax]" dz="[DiskHalfWidth]+2.0*mm" startPhi="0." deltaPhi="360*deg"/> + </SolidSection> + <LogicalPartSection label="Root"> + <LogicalPart name="PixelForwardDiskZPlus" category="envelope"> + <rSolid name="PixelForwardDisk"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="PixelForwardDiskZMinus" category="envelope"> + <rSolid name="PixelForwardDisk"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + </LogicalPartSection> + <!-- Support rings --> + <SolidSection label="Rings"> + <Tubs name="PixelForwardDiskInnerRing" rMin="[InnerRingRMin]" rMax="[InnerRingRMax]" dz="[InnerRingHalfWidth]" startPhi="0." deltaPhi="360*deg"/> + <Tubs name="PixelForwardDiskInnerRingEdge" rMin="[InnerRingREdge]" rMax="[InnerRingRMin]" dz="[InnerRingEdge]/2." startPhi="0." deltaPhi="360*deg"/> + <Tubs name="PixelForwardDiskOuterRing" rMin="[OuterRingRMin]" rMax="[OuterRingRMax]" dz="[OuterRingHalfWidth]" startPhi="0." deltaPhi="360*deg"/> + <Tubs name="PixelForwardDiskOuterRingEdge" rMin="[OuterRingRMax]" rMax="[OuterRingREdge]" dz="[OuterRingEdge]/2." startPhi="0." deltaPhi="360*deg"/> + </SolidSection> + <LogicalPartSection label="Rings"> + <LogicalPart name="PixelForwardDiskInnerRing" category="support"> + <rSolid name="PixelForwardDiskInnerRing"/> + <rMaterial name="pixfwdMaterials:Aluminium_InnerRing"/> + </LogicalPart> + <LogicalPart name="PixelForwardDiskInnerRingEdge" category="support"> + <rSolid name="PixelForwardDiskInnerRingEdge"/> + <rMaterial name="trackermaterial:T_Aluminium"/> + </LogicalPart> + <LogicalPart name="PixelForwardDiskOuterRing" category="support"> + <rSolid name="PixelForwardDiskOuterRing"/> + <rMaterial name="pixfwdMaterials:Aluminium_OuterRing"/> + </LogicalPart> + <LogicalPart name="PixelForwardDiskOuterRingEdge" category="support"> + <rSolid name="PixelForwardDiskOuterRingEdge"/> + <rMaterial name="trackermaterial:T_Aluminium"/> + </LogicalPart> + </LogicalPartSection> + <PosPartSection label="Rings"> + <!-- Z Plus Disk --> + <PosPart copyNumber="1"> + <rParent name="PixelForwardDiskZPlus"/> + <rChild name="PixelForwardDiskInnerRing"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="PixelForwardDiskZPlus"/> + <rChild name="PixelForwardDiskInnerRingEdge"/> + <Translation x="0." y="0." z="-[InnerRingHalfWidth]-[InnerRingEdge]/2."/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="PixelForwardDiskZPlus"/> + <rChild name="PixelForwardDiskInnerRingEdge"/> + <Translation x="0." y="0." z="[InnerRingHalfWidth]+[InnerRingEdge]/2."/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="PixelForwardDiskZPlus"/> + <rChild name="PixelForwardDiskOuterRing"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="PixelForwardDiskZPlus"/> + <rChild name="PixelForwardDiskOuterRingEdge"/> + <Translation x="0." y="0." z="-[OuterRingHalfWidth]-[OuterRingEdge]/2."/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="PixelForwardDiskZPlus"/> + <rChild name="PixelForwardDiskOuterRingEdge"/> + <Translation x="0." y="0." z="[OuterRingHalfWidth]+[OuterRingEdge]/2."/> + </PosPart> + <!-- Z Minus Disk --> + <PosPart copyNumber="1"> + <rParent name="PixelForwardDiskZMinus"/> + <rChild name="PixelForwardDiskInnerRing"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="PixelForwardDiskZMinus"/> + <rChild name="PixelForwardDiskInnerRingEdge"/> + <Translation x="0." y="0." z="-[InnerRingHalfWidth]-[InnerRingEdge]/2."/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="PixelForwardDiskZMinus"/> + <rChild name="PixelForwardDiskInnerRingEdge"/> + <Translation x="0." y="0." z="[InnerRingHalfWidth]+[InnerRingEdge]/2."/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="PixelForwardDiskZMinus"/> + <rChild name="PixelForwardDiskOuterRing"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="PixelForwardDiskZMinus"/> + <rChild name="PixelForwardDiskOuterRingEdge"/> + <Translation x="0." y="0." z="-[OuterRingHalfWidth]-[OuterRingEdge]/2."/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="PixelForwardDiskZMinus"/> + <rChild name="PixelForwardDiskOuterRingEdge"/> + <Translation x="0." y="0." z="[OuterRingHalfWidth]+[OuterRingEdge]/2."/> + </PosPart> + </PosPartSection> + <!-- Blades --> + <!-- Z Plus Disk --> + <Algorithm name="track:DDPixFwdBlades"> + <rParent name="pixfwdDisk:PixelForwardDiskZPlus"/> + <Numeric name="Endcap" value="1."/> + <String name="Child" value="pixfwdBlade:PixelForwardBlade"/> + <Vector name="ChildTranslation" type="numeric" nEntries="3"> 0., -[pixfwdBlade:AnchorY], 0. </Vector> + </Algorithm> + <!-- Z Minus Disk --> + <Algorithm name="track:DDPixFwdBlades"> + <rParent name="pixfwdDisk:PixelForwardDiskZMinus"/> + <Numeric name="Endcap" value="-1."/> + <String name="Child" value="pixfwdBlade:PixelForwardBlade"/> + <Vector name="ChildTranslation" type="numeric" nEntries="3"> 0., -[pixfwdBlade:AnchorY], 0. </Vector> + <String name="ChildRotation" value="pixfwdCommon:ReflectionX"/> + </Algorithm> + <!-- Panels --> + <ConstantsSection label="Panels" eval="true"> + <Constant name="zPanel" value="[pixfwdBlade:RootHalfThickness]+[pixfwdPanel:RootHalfThickness]"/> + </ConstantsSection> + <!-- Z Plus Disk --> + <Algorithm name="track:DDPixFwdBlades"> + <rParent name="pixfwdDisk:PixelForwardDiskZPlus"/> + <Numeric name="Endcap" value="1."/> + <String name="Child" value="pixfwdPanel:PixelForwardPanel3Right"/> + <Vector name="ChildTranslation" type="numeric" nEntries="3"> 0., -[pixfwdPanel:AnchorY], [zPanel] </Vector> + <String name="FlagString" value="RLLLLRLLLLLRRLLLLRLLLLLR"/> + <!-- Panel Layout ZPlus 3 --> + <String name="FlagSelector" value="R"/> + </Algorithm> + <Algorithm name="track:DDPixFwdBlades"> + <rParent name="pixfwdDisk:PixelForwardDiskZPlus"/> + <Numeric name="Endcap" value="1."/> + <String name="Child" value="pixfwdPanel:PixelForwardPanel3Left"/> + <Vector name="ChildTranslation" type="numeric" nEntries="3"> 0., -[pixfwdPanel:AnchorY], [zPanel] </Vector> + <String name="FlagString" value="RLLLLRLLLLLRRLLLLRLLLLLR"/> + <!-- Panel Layout ZPlus 3 --> + <String name="FlagSelector" value="L"/> + </Algorithm> + <Algorithm name="track:DDPixFwdBlades"> + <rParent name="pixfwdDisk:PixelForwardDiskZPlus"/> + <Numeric name="Endcap" value="1."/> + <String name="Child" value="pixfwdPanel:PixelForwardPanel4Right"/> + <Vector name="ChildTranslation" type="numeric" nEntries="3"> 0., -[pixfwdPanel:AnchorY], -[zPanel] </Vector> + <String name="ChildRotation" value="pixfwdCommon:Y180"/> + <String name="FlagString" value="LLLLLLRLLLLRLLLLLLRLLLLR"/> + <!-- Panel Layout ZPlus 4 --> + <String name="FlagSelector" value="R"/> + </Algorithm> + <Algorithm name="track:DDPixFwdBlades"> + <rParent name="pixfwdDisk:PixelForwardDiskZPlus"/> + <Numeric name="Endcap" value="1."/> + <String name="Child" value="pixfwdPanel:PixelForwardPanel4Left"/> + <Vector name="ChildTranslation" type="numeric" nEntries="3"> 0., -[pixfwdPanel:AnchorY], -[zPanel] </Vector> + <String name="ChildRotation" value="pixfwdCommon:Y180"/> + <String name="FlagString" value="LLLLLLRLLLLRLLLLLLRLLLLR"/> + <!-- Panel Layout ZPlus 4 --> + <String name="FlagSelector" value="L"/> + </Algorithm> + <!-- Z Minus Disk --> + <Algorithm name="track:DDPixFwdBlades"> + <rParent name="pixfwdDisk:PixelForwardDiskZMinus"/> + <Numeric name="Endcap" value="-1."/> + <String name="Child" value="pixfwdPanel:PixelForwardPanel3Right"/> + <Vector name="ChildTranslation" type="numeric" nEntries="3"> 0., -[pixfwdPanel:AnchorY], [zPanel] </Vector> + <String name="FlagString" value="LRRRRRLRRRRLLRRRRRLRRRRL"/> + <!-- Panel Layout ZMinus 3 --> + <String name="FlagSelector" value="R"/> + </Algorithm> + <Algorithm name="track:DDPixFwdBlades"> + <rParent name="pixfwdDisk:PixelForwardDiskZMinus"/> + <Numeric name="Endcap" value="-1."/> + <String name="Child" value="pixfwdPanel:PixelForwardPanel3Left"/> + <Vector name="ChildTranslation" type="numeric" nEntries="3"> 0., -[pixfwdPanel:AnchorY], [zPanel] </Vector> + <String name="FlagString" value="LRRRRRLRRRRLLRRRRRLRRRRL"/> + <!-- Panel Layout ZMinus 3 --> + <String name="FlagSelector" value="L"/> + </Algorithm> + <Algorithm name="track:DDPixFwdBlades"> + <rParent name="pixfwdDisk:PixelForwardDiskZMinus"/> + <Numeric name="Endcap" value="-1."/> + <String name="Child" value="pixfwdPanel:PixelForwardPanel4Right"/> + <Vector name="ChildTranslation" type="numeric" nEntries="3"> 0., -[pixfwdPanel:AnchorY], -[zPanel] </Vector> + <String name="ChildRotation" value="pixfwdCommon:Y180"/> + <String name="FlagString" value="LRRRRLRRRRRRLRRRRLRRRRRR"/> + <!-- Panel Layout ZMinus 4 --> + <String name="FlagSelector" value="R"/> + </Algorithm> + <Algorithm name="track:DDPixFwdBlades"> + <rParent name="pixfwdDisk:PixelForwardDiskZMinus"/> + <Numeric name="Endcap" value="-1."/> + <String name="Child" value="pixfwdPanel:PixelForwardPanel4Left"/> + <Vector name="ChildTranslation" type="numeric" nEntries="3"> 0., -[pixfwdPanel:AnchorY], -[zPanel] </Vector> + <String name="ChildRotation" value="pixfwdCommon:Y180"/> + <String name="FlagString" value="LRRRRLRRRRRRLRRRRLRRRRRR"/> + <!-- Panel Layout ZMinus 4 --> + <String name="FlagSelector" value="L"/> + </Algorithm> + <!-- Nipples --> + <Algorithm name="track:DDPixFwdBlades"> + <rParent name="pixfwdDisk:PixelForwardDiskZPlus"/> + <Numeric name="Endcap" value="1."/> + <String name="Child" value="pixfwdNipple:PixelForwardNippleZPlus"/> + <String name="FlagString" value="YYYYYNYYYYYNYYYYYNYYYYYN"/> + <String name="FlagSelector" value="Y"/> + </Algorithm> + <Algorithm name="track:DDPixFwdBlades"> + <rParent name="pixfwdDisk:PixelForwardDiskZMinus"/> + <Numeric name="Endcap" value="-1."/> + <String name="Child" value="pixfwdNipple:PixelForwardNippleZMinus"/> + <String name="FlagString" value="NYYYYYNYYYYYNYYYYYNYYYYY"/> + <String name="FlagSelector" value="Y"/> + </Algorithm> +</DDDefinition> diff --git a/examples/DDCMS/data/pixfwdMaterials.xml b/examples/DDCMS/data/pixfwdMaterials.xml index b450254d8c7637f8acb78510c482fd10f22b69a7..6fee50e940a2d4e31d42e92879f890cd23422155 100644 --- a/examples/DDCMS/data/pixfwdMaterials.xml +++ b/examples/DDCMS/data/pixfwdMaterials.xml @@ -1,6 +1,6 @@ <?xml version="1.0"?> <DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> - <MaterialSection label="pixfwdMaterials.xml"> + <MaterialSection label="PixelForwardMaterial.xml"> <CompositeMaterial name="FPix_Alumina" density="3.96*g/cm3" method="mixture by weight" symbol=" "> <MaterialFraction fraction="0.52924272"> <rMaterial name="trackermaterial:T_Aluminium" /> diff --git a/examples/DDCMS/data/pixfwdNipple.xml b/examples/DDCMS/data/pixfwdNipple.xml new file mode 100644 index 0000000000000000000000000000000000000000..631e76ddab3e1c26cf27b64cdfa5fa1ff0d4dafc --- /dev/null +++ b/examples/DDCMS/data/pixfwdNipple.xml @@ -0,0 +1,377 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <!-- + + == CMS Forward Pixels Geometry == + + @version 3.02.01 May 30, 2006 + @created Dmitry Onoprienko + @modified Vesna Cuplov april 2007 + + == Subsystem or component described by the file == + + "Nipple" connecting cooling channels in two adjacent blades. + + == Root volume and its reference frame == + + Two root volumes are defined: + + PixelForwardNippleZPlus (nipple for +Z disk) + PixelForwardNippleZMinus (nipple for -Z disk) + + Z along the nipple axis, pointing from J to K. + + Origin at the middle of a segment connecting points J and K on the drawing + + == Positioning == + + Positioned automatically by the <code>DDPixFwdBlades</code> algorithm, which recognizes + this component by its volume name, and applies appropriate rotations and translations. + + == Additional comments == + + +Z and -Z versions of a nipple are, in fact, reflections of each other, but they are defined + separately to make Iguana happy: G4 visualization cannot handle polycone reflection at the moment. + + The call to DDPixFwdBlades algorithm calculates parameters needed for constructing + the nipple: rotations pixfwdNipple:NippleToCoverZPlus, pixfwdNipple:NippleToCoverZMinus, + pixfwdNipple:NippleToBodyZPlus, pixfwdNipple:NippleToBodyZMinus + and constants pixfwdNipple:JK, pixfwdNipple:AngleBody, pixfwdNipple:AngleCover. + + Currently, there is a problem with passing constants from algorithms to DDL files, so these constants + are defined manually (by copy-and-paste from the algorithm output). To make sure the resulting + numerical error does not cause volumes to overlap, nipples are described to be slightly shorter + than they are on the drawings. + + --> + <!-- Input geometry parameters --> + <ConstantsSection label="Input" eval="true"> + <Constant name="R01" value="2.00*mm"/> + <Constant name="R02" value="2.50*mm"/> + <Constant name="R03" value="2.00*mm"/> + <Constant name="R04" value="2.50*mm"/> + <Constant name="R05" value="3.00*mm"/> + <Constant name="R06" value="3.00*mm"/> + <Constant name="R07" value="3.50*mm"/> + <Constant name="R08" value="4.50*mm"/> + <Constant name="R09" value="3.25*mm"/> + <Constant name="R10" value="3.75*mm"/> + <Constant name="R11" value="3.50*mm"/> + <Constant name="L01" value="8.23*mm"/> + <Constant name="L02" value="8.23*mm"/> + <Constant name="L03" value="6.73*mm"/> + <Constant name="L04" value="9.50*mm"/> + <Constant name="L05" value="4.00*mm"/> + <Constant name="L06" value="4.00*mm"/> + <Constant name="L07" value="1.00*mm"/> + <Constant name="L08" value="1.00*mm"/> + <Constant name="A01" value="60*deg"/> + <Constant name="RootHalfThickness" value="[pixfwdPanelBase:RootHalfThickness]"/> + </ConstantsSection> + <!-- THIS ALGORITHM DEFINES A FEW ROTATIONS (LIKE pixfwdNipple:NippleToCover) AND + ATTEMPTS TO DEFINE A CONSTANT pixfwdNipple: JK, AngleBody, AngleCover --> + <Algorithm name="track:DDPixFwdBlades"> + <rParent name="pixfwdNipple:PixelForwardNippleZPlus"/> + </Algorithm> + <!-- Nipple root and a solid for boolean subtraction --> + <ConstantsSection label="Root" eval="true"> + <Constant name="JK" value="16.9*mm"/> + <!-- 16.9523 as printed by algorithm, made slightly smaller + to avoid overlaps due to numerical errors. Can be made + more precise once DDL is able to use constants defined + in algorithms directly. --> + <Constant name="AngleBody" value="0.172941*rad"/> + <Constant name="AngleCover" value="0.172941*rad"/> + <Constant name="Dsub" value="2.0*mm"/> + <Constant name="Rsub" value="[R08]/cos([AngleBody]) + ([Dsub]/2)*tan([AngleBody]) + [pixfwdCommon:SmallBool]"/> + <Constant name="DeltaBody" value="([Dsub]/2 - 0.5*mm) / cos([AngleBody])"/> + <Constant name="DeltaCover" value="([Dsub]/2 - 0.5*mm) / cos([AngleCover])"/> + </ConstantsSection> + <SolidSection label="Root"> + <!-- Previous description (D. Onoprienko) + <Tubs name="PixelForwardNipple_01" rMin="0.*mm" rMax="[R08]" dz="[JK]/2." startPhi="0." deltaPhi="360*deg" /> + <Tubs name="PixelForwardNippleSubtract" rMin="0.*mm" rMax="[Rsub]" dz="[Dsub]/2." startPhi="0." deltaPhi="360*deg" /> + <SubtractionSolid name="PixelForwardNipple_int01"> + <rSolid name="PixelForwardNipple_01" /> + <rSolid name="PixelForwardNippleSubtract" /> + <Translation x="0." y="0." z="-[JK]/2.-[DeltaCover]" /> + <rRotation name="NippleToCoverZPlus" /> + </SubtractionSolid> + <SubtractionSolid name="PixelForwardNippleZPlus"> + <rSolid name="PixelForwardNipple_int01" /> + <rSolid name="PixelForwardNippleSubtract" /> + <Translation x="0." y="0." z="[JK]/2.+[DeltaBody]" /> + <rRotation name="NippleToBodyZPlus" /> + </SubtractionSolid> + --> + <!-- New description (I used the description of D. Onoprienko as a basement) to fix overlaps of panels with nipples: Previously there was only one shape as a Tub with special angles for the extremities, but this shape was overlaping with panels. I had to split into 2 shapes: the first shape is like the previous Tub with special angles for extremities but with a smaller rMax and the second shape that I add is a basic Tub (no angles for the extremities) that covers the largest part of the nipple. --> + <Tubs name="PixelForwardNipple_01" rMin="0.*mm" rMax="[R08]-0.9*mm" dz="[L04]/2+3.7*mm" startPhi="0." deltaPhi="360*deg"/> + <Tubs name="PixelForwardNippleSubtract" rMin="0.*mm" rMax="[Rsub]-0.9*mm" dz="[Dsub]/2." startPhi="0." deltaPhi="360*deg"/> + <Tubs name="PixelForwardNippleMiddle" rMin="0.*mm" rMax="[R08]" dz="[L04]/2.+0.4*mm" startPhi="0." deltaPhi="360*deg"/> + <SubtractionSolid name="PixelForwardNipple_int01"> + <rSolid name="PixelForwardNipple_01"/> + <rSolid name="PixelForwardNippleSubtract"/> + <Translation x="0." y="0." z="-[L04]/2.-3.7*mm-[DeltaCover]"/> + <rRotation name="NippleToCoverZPlus"/> + </SubtractionSolid> + <SubtractionSolid name="PixelForwardNippleZPlus_01"> + <rSolid name="PixelForwardNipple_int01"/> + <rSolid name="PixelForwardNippleSubtract"/> + <Translation x="0." y="0." z="[L04]/2.+3.7*mm+[DeltaBody]"/> + <rRotation name="NippleToBodyZPlus"/> + </SubtractionSolid> + <UnionSolid name="PixelForwardNippleZPlus"> + <rSolid name="PixelForwardNippleZPlus_01"/> + <rSolid name="PixelForwardNippleMiddle"/> + <Translation x="0." y="0." z="0."/> + </UnionSolid> + <SubtractionSolid name="PixelForwardNipple_int02"> + <rSolid name="PixelForwardNipple_01"/> + <rSolid name="PixelForwardNippleSubtract"/> + <Translation x="0." y="0." z="-[L04]/2.-3.7*mm-[DeltaCover]"/> + <rRotation name="NippleToCoverZMinus"/> + </SubtractionSolid> + <SubtractionSolid name="PixelForwardNippleZMinus_01"> + <rSolid name="PixelForwardNipple_int02"/> + <rSolid name="PixelForwardNippleSubtract"/> + <Translation x="0." y="0." z="[L04]/2.+3.7*mm+[DeltaBody]"/> + <rRotation name="NippleToBodyZMinus"/> + </SubtractionSolid> + <UnionSolid name="PixelForwardNippleZMinus"> + <rSolid name="PixelForwardNippleZMinus_01"/> + <rSolid name="PixelForwardNippleMiddle"/> + <Translation x="0." y="0." z="0."/> + </UnionSolid> + </SolidSection> + <LogicalPartSection label="Root"> + <LogicalPart name="PixelForwardNippleZPlus" category="envelope"> + <rSolid name="PixelForwardNippleZPlus"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="PixelForwardNippleZMinus" category="envelope"> + <rSolid name="PixelForwardNippleZMinus"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + </LogicalPartSection> + <!-- Sleeve and pipes inside it --> + <ConstantsSection label="Sleeve" eval="true"> + <Constant name="e01" value="[JK]-[L01]-[L02]"/> + </ConstantsSection> + <SolidSection label="Sleeve"> + <Polycone name="PixelForwardNippleSleeve" startPhi="0.*deg" deltaPhi="360*deg"> + <ZSection z="-[L04]/2" rMin="0." rMax="[R08]"/> + <ZSection z="[L04]/2-([R08]-[R07])*tan([A01])" rMin="0." rMax="[R08]"/> + <ZSection z="[L04]/2" rMin="0." rMax="[R07]"/> + </Polycone> + <Polycone name="PixelForwardNippleEpoxyCover" startPhi="0.*deg" deltaPhi="360*deg"> + <ZSection z="-[L06]/2" rMin="[R05]" rMax="[R11]"/> + <ZSection z="[L06]/2-[L07]-([R10]-[R11])" rMin="[R05]" rMax="[R11]"/> + <ZSection z="[L06]/2-[L07]" rMin="[R05]" rMax="[R10]"/> + <ZSection z="[L06]/2" rMin="[R05]" rMax="[R10]"/> + </Polycone> + <Polycone name="PixelForwardNippleEpoxyBody" startPhi="0.*deg" deltaPhi="360*deg"> + <ZSection z="-[L05]/2" rMin="[R02]" rMax="[R09]"/> + <ZSection z="-[L05]/2+[L08]" rMin="[R02]" rMax="[R09]"/> + <ZSection z="-[L05]/2+[L08]+([R09]-[R06])" rMin="[R02]" rMax="[R06]"/> + <ZSection z="[L05]/2" rMin="[R02]" rMax="[R06]"/> + </Polycone> + <Polycone name="PixelForwardNippleSleeveCoolant" startPhi="0.*deg" deltaPhi="360*deg"> + <ZSection z="-[L04]/2" rMin="0.0" rMax="[R04]"/> + <ZSection z="-[L04]/2+[L06]-([L02]-[L03])" rMin="0.0" rMax="[R04]"/> + <ZSection z="-[L04]/2+[L06]-([L02]-[L03])+([R04]-[R03])" rMin="0.0" rMax="[R03]"/> + <ZSection z="-[L04]/2+[L06]" rMin="0.0" rMax="[R03]"/> + <ZSection z="-[L04]/2+[L06]" rMin="0.0" rMax="[R02]"/> + <ZSection z="-[L04]/2+[L06]+[e01]" rMin="0.0" rMax="[R02]"/> + <ZSection z="-[L04]/2+[L06]+[e01]" rMin="0.0" rMax="[R01]"/> + <ZSection z="[L04]/2" rMin="0.0" rMax="[R01]"/> + </Polycone> + </SolidSection> + <LogicalPartSection label="Sleeve"> + <LogicalPart name="PixelForwardNippleSleeve" category="cooling"> + <rSolid name="PixelForwardNippleSleeve"/> + <rMaterial name="trackermaterial:T_Aluminium"/> + </LogicalPart> + <LogicalPart name="PixelForwardNippleEpoxyCover" category="cooling"> + <rSolid name="PixelForwardNippleEpoxyCover"/> + <rMaterial name="pixfwdMaterials:Pix_Fwd_AgEpoxy"/> + </LogicalPart> + <LogicalPart name="PixelForwardNippleEpoxyBody" category="cooling"> + <rSolid name="PixelForwardNippleEpoxyBody"/> + <rMaterial name="pixfwdMaterials:Pix_Fwd_AgEpoxy"/> + </LogicalPart> + <LogicalPart name="PixelForwardNippleSleeveCoolant" category="cooling"> + <rSolid name="PixelForwardNippleSleeveCoolant"/> + <rMaterial name="pixfwdMaterials:PixelForwardCoolant"/> + </LogicalPart> + </LogicalPartSection> + <PosPartSection label="Sleeve"> + <PosPart copyNumber="1"> + <rParent name="PixelForwardNippleZPlus"/> + <rChild name="PixelForwardNippleSleeve"/> + <Translation x="0." y="0." z="-[JK]/2 + [L02] - [L06] + [L04]/2"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="PixelForwardNippleZMinus"/> + <rChild name="PixelForwardNippleSleeve"/> + <Translation x="0." y="0." z="-[JK]/2 + [L02] - [L06] + [L04]/2"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="PixelForwardNippleSleeve"/> + <rChild name="PixelForwardNippleEpoxyCover"/> + <Translation x="0." y="0." z="-[L04]/2 + [L06]/2"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="PixelForwardNippleSleeve"/> + <rChild name="PixelForwardNippleEpoxyBody"/> + <Translation x="0." y="0." z="[L04]/2 - [L05]/2"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="PixelForwardNippleSleeve"/> + <rChild name="PixelForwardNippleSleeveCoolant"/> + </PosPart> + </PosPartSection> + <!-- Cover side : --> + <ConstantsSection label="Cover" eval="true"> + <Constant name="e02" value="([L02]-[L06])/2"/> + <!-- Half length of cover side --> + </ConstantsSection> + <SolidSection label="Cover"> + <Tubs name="PixelForwardNippleCover_01" rMin="0.*mm" rMax="[R05]" dz="[e02]" startPhi="0." deltaPhi="360*deg"/> + <Tubs name="PixelForwardNippleCoverCoolant_01" rMin="0.*mm" rMax="[R04]" dz="[e02]" startPhi="0." deltaPhi="360*deg"/> + <SubtractionSolid name="PixelForwardNippleCoverZPlus"> + <rSolid name="PixelForwardNippleCover_01"/> + <rSolid name="PixelForwardNippleSubtract"/> + <Translation x="0." y="0." z="-[e02]-[DeltaCover]"/> + <rRotation name="NippleToCoverZPlus"/> + </SubtractionSolid> + <SubtractionSolid name="PixelForwardNippleCoverCoolantZPlus"> + <rSolid name="PixelForwardNippleCoverCoolant_01"/> + <rSolid name="PixelForwardNippleSubtract"/> + <Translation x="0." y="0." z="-[e02]-[DeltaCover]"/> + <rRotation name="NippleToCoverZPlus"/> + </SubtractionSolid> + <SubtractionSolid name="PixelForwardNippleCoverZMinus"> + <rSolid name="PixelForwardNippleCover_01"/> + <rSolid name="PixelForwardNippleSubtract"/> + <Translation x="0." y="0." z="-[e02]-[DeltaCover]"/> + <rRotation name="NippleToCoverZMinus"/> + </SubtractionSolid> + <SubtractionSolid name="PixelForwardNippleCoverCoolantZMinus"> + <rSolid name="PixelForwardNippleCoverCoolant_01"/> + <rSolid name="PixelForwardNippleSubtract"/> + <Translation x="0." y="0." z="-[e02]-[DeltaCover]"/> + <rRotation name="NippleToCoverZMinus"/> + </SubtractionSolid> + </SolidSection> + <LogicalPartSection label="Cover"> + <LogicalPart name="PixelForwardNippleCoverZPlus" category="cooling"> + <rSolid name="PixelForwardNippleCoverZPlus"/> + <rMaterial name="trackermaterial:T_Aluminium"/> + </LogicalPart> + <LogicalPart name="PixelForwardNippleCoverCoolantZPlus" category="cooling"> + <rSolid name="PixelForwardNippleCoverCoolantZPlus"/> + <rMaterial name="pixfwdMaterials:PixelForwardCoolant"/> + </LogicalPart> + <LogicalPart name="PixelForwardNippleCoverZMinus" category="cooling"> + <rSolid name="PixelForwardNippleCoverZMinus"/> + <rMaterial name="trackermaterial:T_Aluminium"/> + </LogicalPart> + <LogicalPart name="PixelForwardNippleCoverCoolantZMinus" category="cooling"> + <rSolid name="PixelForwardNippleCoverCoolantZMinus"/> + <rMaterial name="pixfwdMaterials:PixelForwardCoolant"/> + </LogicalPart> + </LogicalPartSection> + <PosPartSection label="Cover"> + <PosPart copyNumber="1"> + <rParent name="PixelForwardNippleZPlus"/> + <rChild name="PixelForwardNippleCoverZPlus"/> + <Translation x="0." y="0." z="-[JK]/2 + [e02]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="PixelForwardNippleCoverZPlus"/> + <rChild name="PixelForwardNippleCoverCoolantZPlus"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="PixelForwardNippleZMinus"/> + <rChild name="PixelForwardNippleCoverZMinus"/> + <Translation x="0." y="0." z="-[JK]/2 + [e02]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="PixelForwardNippleCoverZMinus"/> + <rChild name="PixelForwardNippleCoverCoolantZMinus"/> + </PosPart> + </PosPartSection> + <!-- Body side : --> + <ConstantsSection label="Body" eval="true"> + <Constant name="e03" value="([JK]-[e02]*2-[L04])/2"/> + <!--Half length of body side --> + </ConstantsSection> + <SolidSection label="Body"> + <Tubs name="PixelForwardNippleBody_01" rMin="0.*mm" rMax="[R02]" dz="[e03]" startPhi="0." deltaPhi="360*deg"/> + <Tubs name="PixelForwardNippleBodyCoolant_01" rMin="0.*mm" rMax="[R01]" dz="[e03]" startPhi="0." deltaPhi="360*deg"/> + <SubtractionSolid name="PixelForwardNippleBodyZPlus"> + <rSolid name="PixelForwardNippleBody_01"/> + <rSolid name="PixelForwardNippleSubtract"/> + <Translation x="0." y="0." z="[e03]+[DeltaBody]"/> + <rRotation name="NippleToBodyZPlus"/> + </SubtractionSolid> + <SubtractionSolid name="PixelForwardNippleBodyCoolantZPlus"> + <rSolid name="PixelForwardNippleBodyCoolant_01"/> + <rSolid name="PixelForwardNippleSubtract"/> + <Translation x="0." y="0." z="[e03]+[DeltaBody]"/> + <rRotation name="NippleToBodyZPlus"/> + </SubtractionSolid> + <SubtractionSolid name="PixelForwardNippleBodyZMinus"> + <rSolid name="PixelForwardNippleBody_01"/> + <rSolid name="PixelForwardNippleSubtract"/> + <Translation x="0." y="0." z="[e03]+[DeltaBody]"/> + <rRotation name="NippleToBodyZMinus"/> + </SubtractionSolid> + <SubtractionSolid name="PixelForwardNippleBodyCoolantZMinus"> + <rSolid name="PixelForwardNippleBodyCoolant_01"/> + <rSolid name="PixelForwardNippleSubtract"/> + <Translation x="0." y="0." z="[e03]+[DeltaBody]"/> + <rRotation name="NippleToBodyZMinus"/> + </SubtractionSolid> + </SolidSection> + <LogicalPartSection label="Body"> + <LogicalPart name="PixelForwardNippleBodyZPlus" category="cooling"> + <rSolid name="PixelForwardNippleBodyZPlus"/> + <rMaterial name="trackermaterial:T_Aluminium"/> + </LogicalPart> + <LogicalPart name="PixelForwardNippleBodyCoolantZPlus" category="cooling"> + <rSolid name="PixelForwardNippleBodyCoolantZPlus"/> + <rMaterial name="pixfwdMaterials:PixelForwardCoolant"/> + </LogicalPart> + <LogicalPart name="PixelForwardNippleBodyZMinus" category="cooling"> + <rSolid name="PixelForwardNippleBodyZMinus"/> + <rMaterial name="trackermaterial:T_Aluminium"/> + </LogicalPart> + <LogicalPart name="PixelForwardNippleBodyCoolantZMinus" category="cooling"> + <rSolid name="PixelForwardNippleBodyCoolantZMinus"/> + <rMaterial name="pixfwdMaterials:PixelForwardCoolant"/> + </LogicalPart> + </LogicalPartSection> + <PosPartSection label="BodyPlus"> + <PosPart copyNumber="1"> + <rParent name="PixelForwardNippleZPlus"/> + <rChild name="PixelForwardNippleBodyZPlus"/> + <Translation x="0." y="0." z="[JK]/2 - [e03]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="PixelForwardNippleBodyZPlus"/> + <rChild name="PixelForwardNippleBodyCoolantZPlus"/> + </PosPart> + </PosPartSection> + <PosPartSection label="BodyMinus"> + <PosPart copyNumber="1"> + <rParent name="PixelForwardNippleZMinus"/> + <rChild name="PixelForwardNippleBodyZMinus"/> + <Translation x="0." y="0." z="[JK]/2 - [e03]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="PixelForwardNippleBodyZMinus"/> + <rChild name="PixelForwardNippleBodyCoolantZMinus"/> + </PosPart> + </PosPartSection> +</DDDefinition> diff --git a/examples/DDCMS/data/pixfwdPanel.xml b/examples/DDCMS/data/pixfwdPanel.xml new file mode 100644 index 0000000000000000000000000000000000000000..7ff4bff909c238ab3bc3688cb9cfc1c22f92163b --- /dev/null +++ b/examples/DDCMS/data/pixfwdPanel.xml @@ -0,0 +1,202 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <!-- + + == CMS Forward Pixels Geometry == + + @version 3.02.01 May 30, 2006 + @created Dmitry Onoprienko + @modified Vesna Cuplov (to Fix overlaps 04.17.07) + + == Subsystem or component described by the file == + + A panel that includes a base and three or four sensor plaquettes mounted on it. + Every blade will have two such panels, one on each side. + + == Root volume and its reference frame == + + Four types of panels are defined : + + PixelForwardPanel3Right - right 3-plaquette panel (3RX on the drawings) + PixelForwardPanel3Left - left 3-plaquette panel (3LX on the drawings) + PixelForwardPanel4Right - right 4-plaquette panel (4RX on the drawings) + PixelForwardPanel4Left - left 3-plaquette panel (4LX on the drawings) + + Y is along the axis of the panel, points from narrow to wide end. + X is in the plane of the panel, ear is on X-positive side for "right" panels. + Z is perpendicular to the plane of the panel, points to plaquettes side. + + == Positioning == + + The file defines AnchorX, AnchorY, and AnchorZ + constants that describe the coordinates of the anchor point in the panel + root volume (PixelForwardPanelXXX) reference frame. + Currently, [AnchorX] = [AnchorZ] = 0. + + --> + <ConstantsSection label="Input" eval="true"> + <!-- Y-coordinates of active centers of sensors with respect to ancor point ((0.,0.) on the drawing) --> + <Constant name="ACp3y1" value="19.469*mm"/> + <Constant name="ACp3y2" value="48.777*mm"/> + <Constant name="ACp3y3" value="78.091*mm"/> + <Constant name="ACp4y1" value="7.664*mm"/> + <Constant name="ACp4y2" value="32.394*mm"/> + <Constant name="ACp4y3" value="61.128*mm"/> + <Constant name="ACp4y4" value="85.869*mm"/> + </ConstantsSection> + <ConstantsSection label="Common" eval="true"> + <Constant name="RootHalfWidth" value="[pixfwdPanelBase:RootHalfWidth]"/> + <Constant name="RootHalfLength" value="[pixfwdPanelBase:RootHalfLength]"/> + <Constant name="RootHalfThickness" value="[pixfwdPlaq:PlaquetteT]/2.+[pixfwdPanelBase:RootHalfThickness]"/> + <Constant name="zPanel" value="-[pixfwdPlaq:PlaquetteT]/2."/> + <Constant name="zPlaquette" value="[pixfwdPanelBase:RootHalfThickness]"/> + <!-- Coordinates of the ancor point ((0.,0.) on the drawing) in the Root (PixelForwardPanel<ХХХ>) frame --> + <Constant name="AnchorX" value="0.*mm"/> + <Constant name="AnchorY" value="[pixfwdPanelBase:AnchorY]"/> + <Constant name="AnchorZ" value="0.*mm"/> + <Constant name="EarWidth" value="[pixfwdPanelBase:EarWidth]"/> + <Constant name="EarLength" value="[pixfwdPanelBase:EarLength]"/> + <Constant name="MainHalfWidthBottom" value="[pixfwdPanelBase:MainHalfWidthBottom]"/> + <Constant name="MainHalfWidthTop" value="[pixfwdPanelBase:MainHalfWidthTop]"/> + <Constant name="PanelAngle" value="[pixfwdPanelBase:PanelAngle]"/> + <Constant name="MainLength" value="[pixfwdPanelBase:]MainLength"/> + <Constant name="NoseLength" value="[pixfwdPanelBase:]NoseLength"/> + </ConstantsSection> + <!-- Root volumes for 4 types panels --> + <!-- previous description (D. Onoprienko) + <SolidSection label="Root"> + <Box name="PixelForwardPanel" dx="[RootHalfWidth]" dy="[RootHalfLength]" dz="[RootHalfThickness]" /> + </SolidSection> + --> + <!-- New description (april 2007): As for the PanelBase, I used a trapezoid for the main panel volume and a second trapezoid for the part made of the ear --> + <SolidSection label="Root"> + <Trapezoid name="PixelForwardPanelMain" dz="[RootHalfThickness]" bl1="[MainHalfWidthBottom]+4.0*mm" bl2="[MainHalfWidthBottom]+4.0*mm" tl1="[MainHalfWidthTop]+4.0*mm" tl2="[MainHalfWidthTop]+4.0*mm" h1="[MainLength]/2.+[NoseLength]/2." h2="[MainLength]/2.+[NoseLength]/2." alp1="0.0" alp2="0.0" phi="90*deg"/> + <Trapezoid name="PixelForwardPanelEar" dz="[RootHalfThickness]" bl1="[MainHalfWidthBottom]+[EarWidth]/2.+12.0*mm" bl2="[MainHalfWidthBottom]+[EarWidth]/2.+12.0*mm" tl1="[MainHalfWidthTop]+[EarWidth]/2.+4.0*mm" tl2="[MainHalfWidthTop]+[EarWidth]/2.+4.0*mm" h1="[EarLength]/2.+3.0*mm" h2="[EarLength]/2.+3.0*mm" alp1="0.0" alp2="0.0" phi="90*deg"/> + <UnionSolid name="PixelForwardPanel"> + <rSolid name="PixelForwardPanelMain"/> + <rSolid name="PixelForwardPanelEar"/> + <Translation x="0." y="29.0" z="0."/> + </UnionSolid> + </SolidSection> + <LogicalPartSection label="Root"> + <LogicalPart name="PixelForwardPanel3Right" category="envelope"> + <rSolid name="PixelForwardPanel"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="PixelForwardPanel3Left" category="envelope"> + <rSolid name="PixelForwardPanel"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="PixelForwardPanel4Right" category="envelope"> + <rSolid name="PixelForwardPanel"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="PixelForwardPanel4Left" category="envelope"> + <rSolid name="PixelForwardPanel"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + </LogicalPartSection> + <PosPartSection label="Root"> + <!-- Panel 3 Right --> + <PosPart copyNumber="1"> + <rParent name="PixelForwardPanel3Right"/> + <rChild name="pixfwdPanelBase:PixelForwardPanelBase"/> + <Translation x="0." y="0." z="[zPanel]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="PixelForwardPanel3Right"/> + <rChild name="pixfwdPlaq2x3:PixelForwardPlaquette2x3Up"/> + <Translation x="[AnchorX]-[pixfwdPlaq2x3:AnchorX]" y="[AnchorY]+[ACp3y1]-[pixfwdPlaq2x3:AnchorY]" z="[zPlaquette]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="PixelForwardPanel3Right"/> + <rChild name="pixfwdPlaq2x4:PixelForwardPlaquette2x4Up"/> + <Translation x="[AnchorX]-[pixfwdPlaq2x4:AnchorX]" y="[AnchorY]+[ACp3y2]-[pixfwdPlaq2x4:AnchorY]" z="[zPlaquette]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="PixelForwardPanel3Right"/> + <rChild name="pixfwdPlaq2x5:PixelForwardPlaquette2x5Up"/> + <Translation x="[AnchorX]-[pixfwdPlaq2x5:AnchorX]" y="[AnchorY]+[ACp3y3]-[pixfwdPlaq2x5:AnchorY]" z="[zPlaquette]"/> + </PosPart> + <!-- Panel 3 Left --> + <PosPart copyNumber="2"> + <rParent name="PixelForwardPanel3Left"/> + <rChild name="pixfwdPanelBase:PixelForwardPanelBase"/> + <Translation x="0." y="0." z="[zPanel]"/> + <rReflectionRotation name="pixfwdCommon:ReflectionX"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="PixelForwardPanel3Left"/> + <rChild name="pixfwdPlaq2x3:PixelForwardPlaquette2x3Down"/> + <Translation x="[AnchorX]+[pixfwdPlaq2x3:AnchorX]" y="[AnchorY]+[ACp3y1]+[pixfwdPlaq2x3:AnchorY]" z="[zPlaquette]"/> + <rRotation name="pixfwdCommon:Z180"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="PixelForwardPanel3Left"/> + <rChild name="pixfwdPlaq2x4:PixelForwardPlaquette2x4Down"/> + <Translation x="[AnchorX]+[pixfwdPlaq2x4:AnchorX]" y="[AnchorY]+[ACp3y2]+[pixfwdPlaq2x4:AnchorY]" z="[zPlaquette]"/> + <rRotation name="pixfwdCommon:Z180"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="PixelForwardPanel3Left"/> + <rChild name="pixfwdPlaq2x5:PixelForwardPlaquette2x5Down"/> + <Translation x="[AnchorX]+[pixfwdPlaq2x5:AnchorX]" y="[AnchorY]+[ACp3y3]+[pixfwdPlaq2x5:AnchorY]" z="[zPlaquette]"/> + <rRotation name="pixfwdCommon:Z180"/> + </PosPart> + <!-- Panel 4 Right --> + <PosPart copyNumber="3"> + <rParent name="PixelForwardPanel4Right"/> + <rChild name="pixfwdPanelBase:PixelForwardPanelBase"/> + <Translation x="0." y="0." z="[zPanel]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="PixelForwardPanel4Right"/> + <rChild name="pixfwdPlaq1x2:PixelForwardPlaquette1x2Right"/> + <Translation x="[AnchorX]-[pixfwdPlaq1x2:AnchorXRight]" y="[AnchorY]+[ACp4y1]-[pixfwdPlaq1x2:AnchorY]" z="[zPlaquette]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="PixelForwardPanel4Right"/> + <rChild name="pixfwdPlaq2x3:PixelForwardPlaquette2x3Down"/> + <Translation x="[AnchorX]-[pixfwdPlaq2x3:AnchorX]" y="[AnchorY]+[ACp4y2]-[pixfwdPlaq2x3:AnchorY]" z="[zPlaquette]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="PixelForwardPanel4Right"/> + <rChild name="pixfwdPlaq2x4:PixelForwardPlaquette2x4Down"/> + <Translation x="[AnchorX]-[pixfwdPlaq2x4:AnchorX]" y="[AnchorY]+[ACp4y3]-[pixfwdPlaq2x4:AnchorY]" z="[zPlaquette]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="PixelForwardPanel4Right"/> + <rChild name="pixfwdPlaq1x5:PixelForwardPlaquette1x5Left"/> + <Translation x="[AnchorX]-[pixfwdPlaq1x5:AnchorXLeft]" y="[AnchorY]+[ACp4y4]-[pixfwdPlaq1x5:AnchorY]" z="[zPlaquette]"/> + </PosPart> + <!-- Panel 4 Left --> + <PosPart copyNumber="4"> + <rParent name="PixelForwardPanel4Left"/> + <rChild name="pixfwdPanelBase:PixelForwardPanelBase"/> + <Translation x="0." y="0." z="[zPanel]"/> + <rReflectionRotation name="pixfwdCommon:ReflectionX"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="PixelForwardPanel4Left"/> + <rChild name="pixfwdPlaq1x2:PixelForwardPlaquette1x2Left"/> + <Translation x="[AnchorX]-[pixfwdPlaq1x2:AnchorXLeft]" y="[AnchorY]+[ACp4y1]-[pixfwdPlaq1x2:AnchorY]" z="[zPlaquette]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="PixelForwardPanel4Left"/> + <rChild name="pixfwdPlaq2x3:PixelForwardPlaquette2x3Up"/> + <Translation x="[AnchorX]+[pixfwdPlaq2x3:AnchorX]" y="[AnchorY]+[ACp4y2]+[pixfwdPlaq2x3:AnchorY]" z="[zPlaquette]"/> + <rRotation name="pixfwdCommon:Z180"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="PixelForwardPanel4Left"/> + <rChild name="pixfwdPlaq2x4:PixelForwardPlaquette2x4Up"/> + <Translation x="[AnchorX]+[pixfwdPlaq2x4:AnchorX]" y="[AnchorY]+[ACp4y3]+[pixfwdPlaq2x4:AnchorY]" z="[zPlaquette]"/> + <rRotation name="pixfwdCommon:Z180"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="PixelForwardPanel4Left"/> + <rChild name="pixfwdPlaq1x5:PixelForwardPlaquette1x5Right"/> + <Translation x="[AnchorX]-[pixfwdPlaq1x5:AnchorXRight]" y="[AnchorY]+[ACp4y4]-[pixfwdPlaq1x5:AnchorY]" z="[zPlaquette]"/> + </PosPart> + </PosPartSection> +</DDDefinition> diff --git a/examples/DDCMS/data/pixfwdPanelBase.xml b/examples/DDCMS/data/pixfwdPanelBase.xml new file mode 100644 index 0000000000000000000000000000000000000000..f57291ff5c0c135c35d12e057fd42873aafa1216 --- /dev/null +++ b/examples/DDCMS/data/pixfwdPanelBase.xml @@ -0,0 +1,301 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <!-- + + == CMS Forward Pixels Geometry == + + @version 3.02.01 May 30, 2006 + @created Victoria Martin + @modified Dmitry Onoprienko + @modified Vesna Cuplov (fixing overlaps in panels 04.17.07) + + == Subsystem or component described by the file == + + Beryllium panel with HDI (no plaquettes). + + == Root volume and its reference frame == + + Root volume : PixelForwardPanelBase + + Y is along the axis of the panel, points from narrow to wide end + X is in the plane of the panel, ear is on X-positive side + Z is perpendicular to the panel, points to VHDI side. + + == Positioning == + + The file defines AnchorX, AnchorY, and AnchorZ + constants that describe the coordinates of the anchor point in the panel base + root volume (PixelForwardPanelBase) reference frame. + Currently, [AnchorX] = [AnchorZ] = 0. + + --> + <ConstantsSection label="Input" eval="true"> + <!-- These constants are taken from the design drawings of 3-R Panel dated 14 Oct 05 + X and Y here correspond to Y and -X on the drawing --> + <Constant name="Y1" value="-1.500*mm"/> + <Constant name="Y2" value="3.071*mm"/> + <Constant name="Y3" value="4.196*mm"/> + <Constant name="Y4" value="55.452*mm"/> + <Constant name="Y5" value="62.390*mm"/> + <Constant name="Y6" value="62.420*mm"/> + <Constant name="Y7" value="87.440*mm"/> + <Constant name="Y8" value="86.713*mm"/> + <Constant name="Y9" value="92.417*mm"/> + <Constant name="Y10" value="94.500*mm"/> + <Constant name="Y11" value="96.250*mm"/> + <Constant name="Y12" value="102.000*mm"/> + <Constant name="X1" value="-26.293*mm"/> + <Constant name="X2" value="-23.000*mm"/> + <Constant name="X3" value="-15.059*mm"/> + <Constant name="X4" value="2.500*mm"/> + <Constant name="X5" value="7.500*mm"/> + <Constant name="X6" value="10.095*mm"/> + <Constant name="X7" value="10.895*mm"/> + <Constant name="X8" value="18.150*mm"/> + <Constant name="X9" value="26.100*mm"/> + <Constant name="X10" value="34.376*mm"/> + <Constant name="BeThickness" value="0.508*mm"/> + <Constant name="HDIThickness" value="0.191*mm"/> + <Constant name="FilmThickness" value="0.051*mm"/> + <Constant name="TanPanelAngle" value="([X3]-[X1])/([Y8]-[Y2])"/> + <Constant name="PanelAngle" value="atan([TanPanelAngle])"/> + </ConstantsSection> + <ConstantsSection label="Common" eval="true"> + <Constant name="RootHalfThickness" value="([BeThickness]+[HDIThickness]+[FilmThickness])/2."/> + <Constant name="RootHalfLength" value="([Y9]-[Y1])/2."/> + <Constant name="RootHalfWidth" value="[X10]"/> + <!-- Coordinates of the anchor point ((0.,0.) on the drawing) in the Root (PixelForwardPanelBase) frame --> + <Constant name="AnchorX" value="0.*mm"/> + <Constant name="AnchorY" value="-[RootHalfLength]-[Y1]"/> + <Constant name="AnchorZ" value="0.*mm"/> + <!-- Z-positions of layers --> + <Constant name="zBe" value="-([HDIThickness]+[FilmThickness])/2."/> + <Constant name="zFilm" value="([BeThickness]-[HDIThickness])/2."/> + <Constant name="zHDI" value="([BeThickness]+[FilmThickness])/2."/> + <Constant name="EarWidth" value="[X10]+[X3]-([Y7]-[Y2])*[TanPanelAngle]"/> + <Constant name="EarLength" value="[Y7]-[Y6]"/> + </ConstantsSection> + <!-- Root volume for the panel and its layers (Be, Film, HDI) --> + <!--previous description (D. Onoprienko) + <SolidSection label="Root"> + <Box name="PixelForwardPanelBase" dx="[RootHalfWidth]" dy="[RootHalfLength]" dz="[RootHalfThickness]" /> + <Box name="PixelForwardPanelBaseBe" dx="[RootHalfWidth]" dy="[RootHalfLength]" dz="[BeThickness]/2." /> + <Box name="PixelForwardPanelBaseFilm" dx="[RootHalfWidth]" dy="[RootHalfLength]" dz="[FilmThickness]/2." /> + <Box name="PixelForwardPanelBaseHDI" dx="[RootHalfWidth]" dy="[RootHalfLength]" dz="[HDIThickness]/2." /> + </SolidSection> + --> + <!-- New Description (april 2007): I used a Trapezoid for the main part of the panel and added a trapezoid for the part made of the panel ear --> + <SolidSection label="Root"> + <Trapezoid name="PixelForwardPanelBaseMain" dz="[RootHalfThickness]" bl1="[MainHalfWidthBottom]+4.0*mm" bl2="[MainHalfWidthBottom]+4.0*mm" tl1="[MainHalfWidthTop]+4.0*mm" tl2="[MainHalfWidthTop]+4.0*mm" h1="[MainLength]/2.+[NoseLength]/2." h2="[MainLength]/2.+[NoseLength]/2." alp1="0.0" alp2="0.0" phi="90*deg"/> + <Trapezoid name="PixelForwardPanelBaseEar" dz="[RootHalfThickness]" bl1="[MainHalfWidthBottom]+[EarWidth]/2.+12.0*mm" bl2="[MainHalfWidthBottom]+[EarWidth]/2.+12.0*mm" tl1="[MainHalfWidthTop]+[EarWidth]/2.+4.0*mm" tl2="[MainHalfWidthTop]+[EarWidth]/2.+4.0*mm" h1="[EarLength]/2.+3.0*mm" h2="[EarLength]/2.+3.0*mm" alp1="0.0" alp2="0.0" phi="90*deg"/> + <UnionSolid name="PixelForwardPanelBase"> + <rSolid name="PixelForwardPanelBaseMain"/> + <rSolid name="PixelForwardPanelBaseEar"/> + <Translation x="0." y="29.0" z="0."/> + </UnionSolid> + <Trapezoid name="PixelForwardPanelBaseBeMain" dz="[BeThickness]/2." bl1="[MainHalfWidthBottom]+4.0*mm" bl2="[MainHalfWidthBottom]+4.0*mm" tl1="[MainHalfWidthTop]+4.0*mm" tl2="[MainHalfWidthTop]+4.0*mm" h1="[MainLength]/2.+[NoseLength]/2." h2="[MainLength]/2.+[NoseLength]/2." alp1="0.0" alp2="0.0" phi="90*deg"/> + <Trapezoid name="PixelForwardPanelBaseBeEar" dz="[BeThickness]/2." bl1="[MainHalfWidthBottom]+[EarWidth]/2.+12.0*mm" bl2="[MainHalfWidthBottom]+[EarWidth]/2.+12.0*mm" tl1="[MainHalfWidthTop]+[EarWidth]/2.+4.0*mm" tl2="[MainHalfWidthTop]+[EarWidth]/2.+4.0*mm" h1="[EarLength]/2.+3.0*mm" h2="[EarLength]/2.+3.0*mm" alp1="0.0" alp2="0.0" phi="90*deg"/> + <UnionSolid name="PixelForwardPanelBaseBe"> + <rSolid name="PixelForwardPanelBaseBeMain"/> + <rSolid name="PixelForwardPanelBaseBeEar"/> + <Translation x="0." y="29.0" z="0."/> + </UnionSolid> + <Trapezoid name="PixelForwardPanelBaseFilmMain" dz="[FilmThickness]/2." bl1="[MainHalfWidthBottom]+4.0*mm" bl2="[MainHalfWidthBottom]+4.0*mm" tl1="[MainHalfWidthTop]+4.0*mm" tl2="[MainHalfWidthTop]+4.0*mm" h1="[MainLength]/2.+[NoseLength]/2." h2="[MainLength]/2.+[NoseLength]/2." alp1="0.0" alp2="0.0" phi="90*deg"/> + <Trapezoid name="PixelForwardPanelBaseFilmEar" dz="[FilmThickness]/2." bl1="[MainHalfWidthBottom]+[EarWidth]/2.+12.0*mm" bl2="[MainHalfWidthBottom]+[EarWidth]/2.+12.0*mm" tl1="[MainHalfWidthTop]+[EarWidth]/2.+4.0*mm" tl2="[MainHalfWidthTop]+[EarWidth]/2.+4.0*mm" h1="[EarLength]/2.+3.0*mm" h2="[EarLength]/2.+3.0*mm" alp1="0.0" alp2="0.0" phi="90*deg"/> + <UnionSolid name="PixelForwardPanelBaseFilm"> + <rSolid name="PixelForwardPanelBaseFilmMain"/> + <rSolid name="PixelForwardPanelBaseFilmEar"/> + <Translation x="0." y="29.0" z="0."/> + </UnionSolid> + <Trapezoid name="PixelForwardPanelBaseHDIMain" dz="[HDIThickness]/2." bl1="[MainHalfWidthBottom]+4.0*mm" bl2="[MainHalfWidthBottom]+4.0*mm" tl1="[MainHalfWidthTop]+4.0*mm" tl2="[MainHalfWidthTop]+4.0*mm" h1="[MainLength]/2.+[NoseLength]/2." h2="[MainLength]/2.+[NoseLength]/2." alp1="0.0" alp2="0.0" phi="90*deg"/> + <Trapezoid name="PixelForwardPanelBaseHDIEar" dz="[HDIThickness]/2." bl1="[MainHalfWidthBottom]+[EarWidth]/2.+12.0*mm" bl2="[MainHalfWidthBottom]+[EarWidth]/2.+12.0*mm" tl1="[MainHalfWidthTop]+[EarWidth]/2.+4.0*mm" tl2="[MainHalfWidthTop]+[EarWidth]/2.+4.0*mm" h1="[EarLength]/2.+3.0*mm" h2="[EarLength]/2.+3.0*mm" alp1="0.0" alp2="0.0" phi="90*deg"/> + <UnionSolid name="PixelForwardPanelBaseHDI"> + <rSolid name="PixelForwardPanelBaseHDIMain"/> + <rSolid name="PixelForwardPanelBaseHDIEar"/> + <Translation x="0." y="29.0" z="0."/> + </UnionSolid> + </SolidSection> + <LogicalPartSection label="Root"> + <LogicalPart name="PixelForwardPanelBase" category="envelope"> + <rSolid name="PixelForwardPanelBase"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="PixelForwardPanelBaseBe" category="envelope"> + <rSolid name="PixelForwardPanelBaseBe"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="PixelForwardPanelBaseFilm" category="envelope"> + <rSolid name="PixelForwardPanelBaseFilm"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="PixelForwardPanelBaseHDI" category="envelope"> + <rSolid name="PixelForwardPanelBaseHDI"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + </LogicalPartSection> + <PosPartSection label="Root"> + <PosPart copyNumber="1"> + <rParent name="PixelForwardPanelBase"/> + <rChild name="PixelForwardPanelBaseBe"/> + <Translation x="0." y="0." z="[zBe]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="PixelForwardPanelBase"/> + <rChild name="PixelForwardPanelBaseFilm"/> + <Translation x="0." y="0." z="[zFilm]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="PixelForwardPanelBase"/> + <rChild name="PixelForwardPanelBaseHDI"/> + <Translation x="0." y="0." z="[zHDI]"/> + </PosPart> + </PosPartSection> + <ConstantsSection label="Parts" eval="true"> + <!-- Shapes --> + <Constant name="TanNoseAngle" value="([Y3]-[Y1])/([X8]-[X4])"/> + <Constant name="NoseAngle" value="atan([TanNoseAngle])"/> + <Constant name="MainLength" value="([Y9]-[Y2])"/> + <Constant name="MainHalfWidthBottom" value="-[X3]"/> + <Constant name="MainHalfWidthTop" value="-[X3]+[MainLength]*[TanPanelAngle]"/> + <Constant name="NoseLength" value="([Y2]-[Y1])"/> + <Constant name="NoseHalfWidthBottom" value="[X4]"/> + <Constant name="NoseHalfWidthTop" value="-[X3]"/> + <Constant name="ExtentionWidth" value="[X8]+[X3]-([Y3]-[Y2])*[TanPanelAngle]"/> + <Constant name="ExtentionHeight" value="[ExtentionWidth]*cos([PanelAngle])"/> + <Constant name="ExtentionSide" value="([Y6]-[Y2])/cos([PanelAngle])"/> + <!-- Positioning --> + <Constant name="earY" value="[Y6]+[EarLength]/2."/> + <Constant name="earX" value="-[X3]+([earY]-[Y2])*[TanPanelAngle]+[EarWidth]/2."/> + <Constant name="extentionX" value="(-[EarWidth]-([Y7]-[Y2])*[TanPanelAngle]+([X8]+[X3]))/2."/> + <Constant name="extentionY" value="(-[Y7]+[Y3])/2."/> + </ConstantsSection> + <RotationSection label="Parts"> + <Rotation name="ExtentionRot" phiX="90.*deg-[PanelAngle]" thetaX="90.*deg" phiY="180.*deg-[PanelAngle]" thetaY="90.*deg" phiZ="0." thetaZ="0."/> + </RotationSection> + <SolidSection label="Parts"> + <!-- Beryllium --> + <Trapezoid name="PixelForwardPanelBaseMainBe" dz="[BeThickness]/2." bl1="[MainHalfWidthBottom]" bl2="[MainHalfWidthBottom]" tl1="[MainHalfWidthTop]" tl2="[MainHalfWidthTop]" h1="[MainLength]/2." h2="[MainLength]/2." alp1="0.0" alp2="0.0" phi="90*deg"/> + <Trapezoid name="PixelForwardPanelBaseNoseBe" dz="[BeThickness]/2." bl1="[NoseHalfWidthBottom]" bl2="[NoseHalfWidthBottom]" tl1="[NoseHalfWidthTop]" tl2="[NoseHalfWidthTop]" h1="[NoseLength]/2." h2="[NoseLength]/2." alp1="0.0" alp2="0.0" phi="90*deg"/> + <Trapezoid name="PixelForwardPanelBaseEarBe_01" dz="[BeThickness]/2." bl1="[EarWidth]/2." bl2="[EarWidth]/2." tl1="[EarWidth]/2." tl2="[EarWidth]/2." h1="[EarLength]/2." h2="[EarLength]/2." alp1="[PanelAngle]" alp2="[PanelAngle]" phi="90*deg"/> + <Trapezoid name="PixelForwardPanelBaseExtentionBe" dz="[BeThickness]/2." bl1="[ExtentionSide]/2." bl2="[ExtentionSide]/2." tl1="[ExtentionSide]/2." tl2="[ExtentionSide]/2." h1="[ExtentionHeight]/2." h2="[ExtentionHeight]/2." alp1="-[NoseAngle]" alp2="-[NoseAngle]" phi="90*deg"/> + <UnionSolid name="PixelForwardPanelBaseEarBe"> + <rSolid name="PixelForwardPanelBaseEarBe_01"/> + <rSolid name="PixelForwardPanelBaseExtentionBe"/> + <Translation x="[extentionX]" y="[extentionY]" z="0."/> + <rRotation name="ExtentionRot"/> + </UnionSolid> + <!-- Film --> + <Trapezoid name="PixelForwardPanelBaseMainFilm" dz="[FilmThickness]/2." bl1="[MainHalfWidthBottom]" bl2="[MainHalfWidthBottom]" tl1="[MainHalfWidthTop]" tl2="[MainHalfWidthTop]" h1="[MainLength]/2." h2="[MainLength]/2." alp1="0.0" alp2="0.0" phi="90*deg"/> + <Trapezoid name="PixelForwardPanelBaseNoseFilm" dz="[FilmThickness]/2." bl1="[NoseHalfWidthBottom]" bl2="[NoseHalfWidthBottom]" tl1="[NoseHalfWidthTop]" tl2="[NoseHalfWidthTop]" h1="[NoseLength]/2." h2="[NoseLength]/2." alp1="0.0" alp2="0.0" phi="90*deg"/> + <Trapezoid name="PixelForwardPanelBaseEarFilm_01" dz="[FilmThickness]/2." bl1="[EarWidth]/2." bl2="[EarWidth]/2." tl1="[EarWidth]/2." tl2="[EarWidth]/2." h1="[EarLength]/2." h2="[EarLength]/2." alp1="[PanelAngle]" alp2="[PanelAngle]" phi="90*deg"/> + <Trapezoid name="PixelForwardPanelBaseExtentionFilm" dz="[FilmThickness]/2." bl1="[ExtentionSide]/2." bl2="[ExtentionSide]/2." tl1="[ExtentionSide]/2." tl2="[ExtentionSide]/2." h1="[ExtentionHeight]/2." h2="[ExtentionHeight]/2." alp1="-[NoseAngle]" alp2="-[NoseAngle]" phi="90*deg"/> + <UnionSolid name="PixelForwardPanelBaseEarFilm"> + <rSolid name="PixelForwardPanelBaseEarFilm_01"/> + <rSolid name="PixelForwardPanelBaseExtentionFilm"/> + <Translation x="[extentionX]" y="[extentionY]" z="0."/> + <rRotation name="ExtentionRot"/> + </UnionSolid> + <!-- HDI --> + <Trapezoid name="PixelForwardPanelBaseMainHDI" dz="[HDIThickness]/2." bl1="[MainHalfWidthBottom]" bl2="[MainHalfWidthBottom]" tl1="[MainHalfWidthTop]" tl2="[MainHalfWidthTop]" h1="[MainLength]/2." h2="[MainLength]/2." alp1="0.0" alp2="0.0" phi="90*deg"/> + <Trapezoid name="PixelForwardPanelBaseNoseHDI" dz="[HDIThickness]/2." bl1="[NoseHalfWidthBottom]" bl2="[NoseHalfWidthBottom]" tl1="[NoseHalfWidthTop]" tl2="[NoseHalfWidthTop]" h1="[NoseLength]/2." h2="[NoseLength]/2." alp1="0.0" alp2="0.0" phi="90*deg"/> + <Trapezoid name="PixelForwardPanelBaseEarHDI_01" dz="[HDIThickness]/2." bl1="[EarWidth]/2." bl2="[EarWidth]/2." tl1="[EarWidth]/2." tl2="[EarWidth]/2." h1="[EarLength]/2." h2="[EarLength]/2." alp1="[PanelAngle]" alp2="[PanelAngle]" phi="90*deg"/> + <Trapezoid name="PixelForwardPanelBaseExtentionHDI" dz="[HDIThickness]/2." bl1="[ExtentionSide]/2." bl2="[ExtentionSide]/2." tl1="[ExtentionSide]/2." tl2="[ExtentionSide]/2." h1="[ExtentionHeight]/2." h2="[ExtentionHeight]/2." alp1="-[NoseAngle]" alp2="-[NoseAngle]" phi="90*deg"/> + <UnionSolid name="PixelForwardPanelBaseEarHDI"> + <rSolid name="PixelForwardPanelBaseEarHDI_01"/> + <rSolid name="PixelForwardPanelBaseExtentionHDI"/> + <Translation x="[extentionX]" y="[extentionY]" z="0."/> + <rRotation name="ExtentionRot"/> + </UnionSolid> + </SolidSection> + <LogicalPartSection label="Parts"> + <!-- Beryllium --> + <LogicalPart name="PixelForwardPanelBaseMainBe" category="support"> + <rSolid name="PixelForwardPanelBaseMainBe"/> + <rMaterial name="trackermaterial:T_Beryllium"/> + </LogicalPart> + <LogicalPart name="PixelForwardPanelBaseNoseBe" category="support"> + <rSolid name="PixelForwardPanelBaseNoseBe"/> + <rMaterial name="trackermaterial:T_Beryllium"/> + </LogicalPart> + <LogicalPart name="PixelForwardPanelBaseEarBe" category="support"> + <rSolid name="PixelForwardPanelBaseEarBe"/> + <rMaterial name="trackermaterial:T_Beryllium"/> + </LogicalPart> + <!-- Film --> + <LogicalPart name="PixelForwardPanelBaseMainFilm" category="support"> + <rSolid name="PixelForwardPanelBaseMainFilm"/> + <rMaterial name="pixfwdMaterials:Pix_Fwd_AdhFilm"/> + </LogicalPart> + <LogicalPart name="PixelForwardPanelBaseNoseFilm" category="support"> + <rSolid name="PixelForwardPanelBaseNoseFilm"/> + <rMaterial name="pixfwdMaterials:Pix_Fwd_AdhFilm"/> + </LogicalPart> + <LogicalPart name="PixelForwardPanelBaseEarFilm" category="support"> + <rSolid name="PixelForwardPanelBaseEarFilm"/> + <rMaterial name="pixfwdMaterials:Pix_Fwd_AdhFilm"/> + </LogicalPart> + <!-- HDI --> + <LogicalPart name="PixelForwardPanelBaseMainHDI" category="support"> + <rSolid name="PixelForwardPanelBaseMainHDI"/> + <rMaterial name="pixfwdMaterials:Pix_Fwd_VHDI"/> + </LogicalPart> + <LogicalPart name="PixelForwardPanelBaseNoseHDI" category="support"> + <rSolid name="PixelForwardPanelBaseNoseHDI"/> + <rMaterial name="pixfwdMaterials:Pix_Fwd_VHDI"/> + </LogicalPart> + <LogicalPart name="PixelForwardPanelBaseEarHDI" category="support"> + <rSolid name="PixelForwardPanelBaseEarHDI"/> + <rMaterial name="pixfwdMaterials:Pix_Fwd_VHDI"/> + </LogicalPart> + </LogicalPartSection> + <PosPartSection label="Parts"> + <!-- Beryllium --> + <PosPart copyNumber="1"> + <rParent name="PixelForwardPanelBaseBe"/> + <rChild name="PixelForwardPanelBaseMainBe"/> + <Translation x="[AnchorX]" y="[AnchorY]+[Y2]+[MainLength]/2." z="0."/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="PixelForwardPanelBaseBe"/> + <rChild name="PixelForwardPanelBaseNoseBe"/> + <Translation x="[AnchorX]" y="[AnchorY]+[Y2]-[NoseLength]/2." z="0."/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="PixelForwardPanelBaseBe"/> + <rChild name="PixelForwardPanelBaseEarBe"/> + <Translation x="[AnchorX]+[earX]" y="[AnchorY]+[earY]" z="0."/> + </PosPart> + <!-- Film --> + <PosPart copyNumber="1"> + <rParent name="PixelForwardPanelBaseFilm"/> + <rChild name="PixelForwardPanelBaseMainFilm"/> + <Translation x="[AnchorX]" y="[AnchorY]+[Y2]+[MainLength]/2." z="0."/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="PixelForwardPanelBaseFilm"/> + <rChild name="PixelForwardPanelBaseNoseFilm"/> + <Translation x="[AnchorX]" y="[AnchorY]+[Y2]-[NoseLength]/2." z="0."/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="PixelForwardPanelBaseFilm"/> + <rChild name="PixelForwardPanelBaseEarFilm"/> + <Translation x="[AnchorX]+[earX]" y="[AnchorY]+[earY]" z="0."/> + </PosPart> + <!-- HDI --> + <PosPart copyNumber="1"> + <rParent name="PixelForwardPanelBaseHDI"/> + <rChild name="PixelForwardPanelBaseMainHDI"/> + <Translation x="[AnchorX]" y="[AnchorY]+[Y2]+[MainLength]/2." z="0."/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="PixelForwardPanelBaseHDI"/> + <rChild name="PixelForwardPanelBaseNoseHDI"/> + <Translation x="[AnchorX]" y="[AnchorY]+[Y2]-[NoseLength]/2." z="0."/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="PixelForwardPanelBaseHDI"/> + <rChild name="PixelForwardPanelBaseEarHDI"/> + <Translation x="[AnchorX]+[earX]" y="[AnchorY]+[earY]" z="0."/> + </PosPart> + </PosPartSection> +</DDDefinition> diff --git a/examples/DDCMS/data/pixfwdPlaq.xml b/examples/DDCMS/data/pixfwdPlaq.xml new file mode 100644 index 0000000000000000000000000000000000000000..afb4bc42eb36926dca0cfb97cf3990455ddee770 --- /dev/null +++ b/examples/DDCMS/data/pixfwdPlaq.xml @@ -0,0 +1,88 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <!-- + + == CMS Forward Pixels Geometry == + + @version 3.02.01 May 30, 2006 + @created Sunanda Banjeree + @modified Dmitry Onoprienko + + == COMPONENT DEFINED BY THIS FILE: == + + Common parts for all types of plaquettes. + + --> + <!-- Rotations for placing sensors --> + <RotationSection label="PlaquetteCommon"> + <Rotation name="Z90" phiX="90.*deg" thetaX="90.*deg" phiY="180.*deg" thetaY="90.*deg" phiZ="0.*deg" thetaZ="0.*deg"/> + <Rotation name="Z270" phiX="-90.*deg" thetaX="90.*deg" phiY="0.*deg" thetaY="90.*deg" phiZ="0.*deg" thetaZ="0.*deg"/> + </RotationSection> + <ConstantsSection label="Input" eval="true"> + <Constant name="SensorT" value="0.270*mm"/> + <Constant name="BumpT" value="0.025*mm"/> + <Constant name="ROChipT" value="0.200*mm"/> + <Constant name="EpoxyT" value="0.178*mm"/> + <Constant name="FlexCircuitT" value="0.125*mm"/> + <Constant name="AdhFilmT" value="0.051*mm"/> + <Constant name="BackingT" value="0.300*mm"/> + <Constant name="ChoThermT" value="0.178*mm"/> + <Constant name="ROChipW" value="8.005*mm"/> + <!-- Readout chip width --> + <Constant name="ROChipH" value="9.935*mm"/> + <!-- Readout chip height --> + <Constant name="ROChipSpaceW" value="8.100*mm"/> + <!-- Distance (along width) between centers of adjacent chips --> + </ConstantsSection> + <ConstantsSection label="Calculated"> + <!-- Thicknesses of superlayers --> + <Constant name="BumpROChipEpoxyT" value="[BumpT]+[ROChipT]+[EpoxyT]"/> + <Constant name="PassiveT" value="[BumpROChipEpoxyT]+[FlexCircuitT]+[AdhFilmT]+[BackingT]+[ChoThermT]"/> + <Constant name="PlaquetteT" value="[SensorT]+[PassiveT]"/> + <!-- Z-positions of superlayers to be positioned into plaquette root volume --> + <Constant name="SensorZ" value="([PlaquetteT]-[SensorT])/2."/> + <Constant name="PassiveZ" value="(-[PlaquetteT]+[PassiveT])/2."/> + <!-- Z-positions of layers to be positioned into "Passive" layer --> + <Constant name="BumpROChipEpoxyZ" value="([PassiveT]-[BumpROChipEpoxyT])/2."/> + <Constant name="FlexCircuitZ" value="[PassiveT]/2.-[BumpROChipEpoxyT]-[FlexCircuitT]/2."/> + <Constant name="AdhFilmZ" value="[PassiveT]/2.-[BumpROChipEpoxyT]-[FlexCircuitT]-[AdhFilmT]/2."/> + <Constant name="BackingZ" value="[PassiveT]/2.-[BumpROChipEpoxyT]-[FlexCircuitT]-[AdhFilmT]-[BackingT]/2."/> + <Constant name="ChoThermZ" value="(-[PassiveT]+[ChoThermT])/2."/> + </ConstantsSection> + <!-- Readout chip with epoxy and bump bond --> + <ConstantsSection label="BumpROChipCalculated"> + <Constant name="BumpZ" value="([BumpROChipEpoxyT]-[BumpT])/2."/> + <Constant name="EpoxyZ" value="(-[BumpROChipEpoxyT]+[EpoxyT])/2."/> + </ConstantsSection> + <SolidSection label="BumpROChipEpoxy"> + <Box name="PixelForwardBumpROChipEpoxy" dx="[ROChipW]/2." dy="[ROChipH]/2" dz="[BumpROChipEpoxyT]/2."/> + <Box name="PixelForwardBump" dx="[ROChipW]/2." dy="[ROChipH]/2" dz="[BumpT]/2."/> + <Box name="PixelForwardEpoxy" dx="[ROChipW]/2." dy="[ROChipH]/2" dz="[EpoxyT]/2."/> + </SolidSection> + <LogicalPartSection label="BumpROChipEpoxy"> + <LogicalPart name="PixelForwardBumpROChipEpoxy" category="unspecified"> + <rSolid name="PixelForwardBumpROChipEpoxy"/> + <rMaterial name="materials:Silicon"/> + </LogicalPart> + <LogicalPart name="PixelForwardBump" category="unspecified"> + <rSolid name="PixelForwardBump"/> + <rMaterial name="pixfwdMaterials:Pix_Fwd_Bump"/> + </LogicalPart> + <LogicalPart name="PixelForwardEpoxy" category="unspecified"> + <rSolid name="PixelForwardEpoxy"/> + <rMaterial name="pixfwdMaterials:Pix_Fwd_AgEpoxy"/> + </LogicalPart> + </LogicalPartSection> + <PosPartSection label="BumpROChipEpoxy"> + <PosPart copyNumber="1"> + <rParent name="PixelForwardBumpROChipEpoxy"/> + <rChild name="PixelForwardBump"/> + <Translation x="0.*mm" y="0.*mm" z="[BumpZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="PixelForwardBumpROChipEpoxy"/> + <rChild name="PixelForwardEpoxy"/> + <Translation x="0.*mm" y="0.*mm" z="[EpoxyZ]"/> + </PosPart> + </PosPartSection> +</DDDefinition> diff --git a/examples/DDCMS/data/pixfwdPlaq1x2.xml b/examples/DDCMS/data/pixfwdPlaq1x2.xml new file mode 100644 index 0000000000000000000000000000000000000000..e1714fe8e0f52ff5ac17c34dfb17281fdcf7e876 --- /dev/null +++ b/examples/DDCMS/data/pixfwdPlaq1x2.xml @@ -0,0 +1,173 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <!-- + + == CMS Forward Pixels Geometry == + + @version 3.02.01 May 30, 2006 + @created Victoria Martin + @modified Dmitry Onoprienko + + == Subsystem or component described by the file == + + 1x2 Plaquette (Left and Right versions). + + == Root volume and its reference frame == + + Root volume : PixelForwardPlaquette1x2Left and PixelForwardPlaquette1x2Right + + Y is in the plane of the plaquette, pointing away from the beam line + Z is perpendicular to the plaquette, pointing to the sensor side + + == Positioning == + + The file defines AnchorXLeft(AnchorXRight) and AnchorY constants that + correspond to the anchor point (aka active center) coordinates in the plaquette + root volume PixelForwardPlaquette1x2Left(PixelForwardPlaquette1x2Right). + + The two root volumes defined by this file contain ........... + + PixelForwardPlaquette1x2Right should be positioned unrotated into "PixelForwardPanel3Right" panel, + and PixelForwardPlaquette1x2Left should be positioned unrotated into "PixelForwardPanel4Left" panel. + + == Additional comments == + + The volume representing the active part of the sensor is placed with 90 degrees + rotation around Z axis to make its local reference frame Y go along the longer side. + + --> + <ConstantsSection label="Input" eval="true"> + <Constant name="PlaquetteW" value="21.358*mm"/> + <Constant name="PlaquetteH" value="15.048*mm"/> + <Constant name="SensorW" value="18.494*mm"/> + <Constant name="SensorH" value="10.394*mm"/> + <Constant name="ActiveW" value="16.200*mm"/> + <Constant name="ActiveH" value="8.100*mm"/> + <Constant name="ROChipX_TopRight" value="3.074*mm"/> + <Constant name="ROChipY_TopRight" value="3.905*mm"/> + <Constant name="ActiveCenterXRight" value="11.137*mm"/> + <Constant name="ActiveCenterXLeft" value="11.116*mm"/> + <Constant name="ActiveCenterY" value="9.833*mm"/> + </ConstantsSection> + <ConstantsSection label="Common" eval="true"> + <Constant name="AnchorXRight" value=" [PlaquetteW]/2.-[ActiveCenterXRight]"/> + <Constant name="AnchorXLeft" value="-[PlaquetteW]/2.+[ActiveCenterXLeft]"/> + <Constant name="AnchorY" value="[PlaquetteH]/2.-[ActiveCenterY]"/> + </ConstantsSection> + <SolidSection label="All"> + <!-- Root volume --> + <Box name="PixelForwardPlaquette1x2" dx="[PlaquetteW]/2." dy="[PlaquetteH]/2." dz="[pixfwdPlaq:PlaquetteT]/2."/> + <!-- Sensor --> + <Box name="PixelForwardSensor1x2" dx="[SensorH]/2." dy="[SensorW]/2" dz="[pixfwdPlaq:SensorT]/2."/> + <Box name="PixelForwardActive1x2" dx="[ActiveH]/2." dy="[ActiveW]/2" dz="[pixfwdPlaq:SensorT]/2."/> + <!-- Passive part --> + <Box name="PixelForwardPassive1x2" dx="[PlaquetteW]/2." dy="[PlaquetteH]/2." dz="[pixfwdPlaq:PassiveT]/2."/> + <Box name="PixelForwardFlexCircuit1x2" dx="[PlaquetteW]/2." dy="[PlaquetteH]/2." dz="[pixfwdPlaq:FlexCircuitT]/2."/> + <Box name="PixelForwardAdhFilm1x2" dx="[PlaquetteW]/2." dy="[PlaquetteH]/2." dz="[pixfwdPlaq:AdhFilmT]/2."/> + <Box name="PixelForwardBacking1x2" dx="[PlaquetteW]/2." dy="[PlaquetteH]/2." dz="[pixfwdPlaq:BackingT]/2."/> + <Box name="PixelForwardChoTherm1x2" dx="[PlaquetteW]/2." dy="[PlaquetteH]/2." dz="[pixfwdPlaq:ChoThermT]/2."/> + </SolidSection> + <LogicalPartSection label="All"> + <!-- Root volumes --> + <LogicalPart name="PixelForwardPlaquette1x2Right" category="envelope"> + <rSolid name="PixelForwardPlaquette1x2"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="PixelForwardPlaquette1x2Left" category="envelope"> + <rSolid name="PixelForwardPlaquette1x2"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <!-- Sensor --> + <LogicalPart name="PixelForwardSensor1x2" category="unspecified"> + <rSolid name="PixelForwardSensor1x2"/> + <rMaterial name="materials:Silicon"/> + </LogicalPart> + <LogicalPart name="PixelForwardActive1x2" category="sensitive"> + <rSolid name="PixelForwardActive1x2"/> + <rMaterial name="materials:Silicon"/> + </LogicalPart> + <!-- Passive part --> + <LogicalPart name="PixelForwardPassive1x2" category="envelope"> + <rSolid name="PixelForwardPassive1x2"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="PixelForwardFlexCircuit1x2" category="unspecified"> + <rSolid name="PixelForwardFlexCircuit1x2"/> + <rMaterial name="pixfwdMaterials:Pix_Fwd_VHDI"/> + </LogicalPart> + <LogicalPart name="PixelForwardAdhFilm1x2" category="unspecified"> + <rSolid name="PixelForwardAdhFilm1x2"/> + <rMaterial name="pixfwdMaterials:Pix_Fwd_AdhFilm"/> + </LogicalPart> + <LogicalPart name="PixelForwardBacking1x2" category="unspecified"> + <rSolid name="PixelForwardBacking1x2"/> + <rMaterial name="materials:Silicon"/> + </LogicalPart> + <LogicalPart name="PixelForwardChoTherm1x2" category="unspecified"> + <rSolid name="PixelForwardChoTherm1x2"/> + <rMaterial name="pixfwdMaterials:Pix_Fwd_AgEpoxy"/> + </LogicalPart> + </LogicalPartSection> + <PosPartSection label="All"> + <!-- Sensor --> + <PosPart copyNumber="1"> + <rParent name="PixelForwardSensor1x2"/> + <rChild name="PixelForwardActive1x2"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="PixelForwardPlaquette1x2Right"/> + <rChild name="PixelForwardSensor1x2"/> + <Translation x="[AnchorXRight]" y="[AnchorY]" z="[pixfwdPlaq:SensorZ]"/> + <rRotation name="pixfwdPlaq:Z270"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="PixelForwardPlaquette1x2Left"/> + <rChild name="PixelForwardSensor1x2"/> + <Translation x="[AnchorXLeft]" y="[AnchorY]" z="[pixfwdPlaq:SensorZ]"/> + <rRotation name="pixfwdPlaq:Z270"/> + </PosPart> + <!-- Passive part --> + <PosPart copyNumber="1"> + <rParent name="PixelForwardPlaquette1x2Right"/> + <rChild name="PixelForwardPassive1x2"/> + <Translation x="0.*mm" y="0.*mm" z="[pixfwdPlaq:PassiveZ]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="PixelForwardPlaquette1x2Left"/> + <rChild name="PixelForwardPassive1x2"/> + <Translation x="0.*mm" y="0.*mm" z="[pixfwdPlaq:PassiveZ]"/> + <rReflectionRotation name="pixfwdCommon:ReflectionX"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="PixelForwardPassive1x2"/> + <rChild name="PixelForwardFlexCircuit1x2"/> + <Translation x="0." y="0." z="[pixfwdPlaq:FlexCircuitZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="PixelForwardPassive1x2"/> + <rChild name="PixelForwardAdhFilm1x2"/> + <Translation x="0." y="0." z="[pixfwdPlaq:AdhFilmZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="PixelForwardPassive1x2"/> + <rChild name="PixelForwardBacking1x2"/> + <Translation x="0." y="0." z="[pixfwdPlaq:BackingZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="PixelForwardPassive1x2"/> + <rChild name="PixelForwardChoTherm1x2"/> + <Translation x="0." y="0." z="[pixfwdPlaq:ChoThermZ]"/> + </PosPart> + <!-- Readout chips in the passive part --> + <PosPart copyNumber="1"> + <rParent name="PixelForwardPassive1x2"/> + <rChild name="pixfwdPlaq:PixelForwardBumpROChipEpoxy"/> + <Translation x="[PlaquetteW]/2.-[ROChipX_TopRight]-[pixfwdPlaq:ROChipW]/2." y="[PlaquetteH]/2.-[ROChipY_TopRight]-[pixfwdPlaq:ROChipH]/2." z="[pixfwdPlaq:BumpROChipEpoxyZ]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="PixelForwardPassive1x2"/> + <rChild name="pixfwdPlaq:PixelForwardBumpROChipEpoxy"/> + <Translation x="[PlaquetteW]/2.-[ROChipX_TopRight]-[pixfwdPlaq:ROChipSpaceW]-[pixfwdPlaq:ROChipW]/2." y="[PlaquetteH]/2.-[ROChipY_TopRight]-[pixfwdPlaq:ROChipH]/2." z="[pixfwdPlaq:BumpROChipEpoxyZ]"/> + </PosPart> + </PosPartSection> +</DDDefinition> diff --git a/examples/DDCMS/data/pixfwdPlaq1x5.xml b/examples/DDCMS/data/pixfwdPlaq1x5.xml new file mode 100644 index 0000000000000000000000000000000000000000..cd09b4f4316b61018f7c59e43ca7c426f279b5d9 --- /dev/null +++ b/examples/DDCMS/data/pixfwdPlaq1x5.xml @@ -0,0 +1,189 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <!-- + + == CMS Forward Pixels Geometry == + + @version 3.02.01 May 30, 2006 + @created Victoria Martin + @modified Dmitry Onoprienko + + == Subsystem or component described by the file == + + 1x5 Plaquette (Left and Right versions). + + == Root volume and its reference frame == + + Root volume : PixelForwardPlaquette1x5Left and PixelForwardPlaquette1x5Right + + Y is in the plane of the plaquette, pointing away from the beam line + Z is perpendicular to the plaquette, pointing to the sensor side + + == Positioning == + + The file defines AnchorXLeft(AnchorXRight) and AnchorY constants that + correspond to the anchor point (aka active center) coordinates in the plaquette + root volume PixelForwardPlaquette1x5Left(PixelForwardPlaquette1x5Right). + + The two root volumes defined by this file contain ........... + + PixelForwardPlaquette1x5Right should be positioned unrotated into "PixelForwardPanel4Left" panel, + and PixelForwardPlaquette1x5Left should be positioned unrotated into "PixelForwardPanel4Right" panel. + (Not a typo - a follow notation from the drawings). + + == Additional comments == + + The volume representing the active part of the sensor is placed with 90 degrees + rotation around Z axis to make its local reference frame Y go along the longer side. + + --> + <ConstantsSection label="Input" eval="true"> + <Constant name="PlaquetteW" value="45.658*mm"/> + <Constant name="PlaquetteH" value="15.048*mm"/> + <Constant name="SensorW" value="42.794*mm"/> + <Constant name="SensorH" value="10.394*mm"/> + <Constant name="ActiveW" value="40.500*mm"/> + <Constant name="ActiveH" value="8.100*mm"/> + <Constant name="ROChipX_BottomLeft" value="42.584*mm"/> + <Constant name="ROChipY_BottomLeft" value="11.143*mm"/> + <Constant name="ActiveCenterXRight" value="22.371*mm"/> + <Constant name="ActiveCenterXLeft" value="23.266*mm"/> + <Constant name="ActiveCenterY" value="9.833*mm"/> + </ConstantsSection> + <ConstantsSection label="Common" eval="true"> + <Constant name="AnchorXRight" value=" [PlaquetteW]/2.-[ActiveCenterXRight]"/> + <Constant name="AnchorXLeft" value=" [PlaquetteW]/2.-[ActiveCenterXLeft]"/> + <Constant name="AnchorY" value="-[PlaquetteH]/2.+[ActiveCenterY]"/> + </ConstantsSection> + <SolidSection label="All"> + <!-- Root volume --> + <Box name="PixelForwardPlaquette1x5" dx="[PlaquetteW]/2." dy="[PlaquetteH]/2." dz="[pixfwdPlaq:PlaquetteT]/2."/> + <!-- Sensor --> + <Box name="PixelForwardSensor1x5" dx="[SensorH]/2." dy="[SensorW]/2" dz="[pixfwdPlaq:SensorT]/2."/> + <Box name="PixelForwardActive1x5" dx="[ActiveH]/2." dy="[ActiveW]/2" dz="[pixfwdPlaq:SensorT]/2."/> + <!-- Passive part --> + <Box name="PixelForwardPassive1x5" dx="[PlaquetteW]/2." dy="[PlaquetteH]/2." dz="[pixfwdPlaq:PassiveT]/2."/> + <Box name="PixelForwardFlexCircuit1x5" dx="[PlaquetteW]/2." dy="[PlaquetteH]/2." dz="[pixfwdPlaq:FlexCircuitT]/2."/> + <Box name="PixelForwardAdhFilm1x5" dx="[PlaquetteW]/2." dy="[PlaquetteH]/2." dz="[pixfwdPlaq:AdhFilmT]/2."/> + <Box name="PixelForwardBacking1x5" dx="[PlaquetteW]/2." dy="[PlaquetteH]/2." dz="[pixfwdPlaq:BackingT]/2."/> + <Box name="PixelForwardChoTherm1x5" dx="[PlaquetteW]/2." dy="[PlaquetteH]/2." dz="[pixfwdPlaq:ChoThermT]/2."/> + </SolidSection> + <LogicalPartSection label="All"> + <!-- Root volumes --> + <LogicalPart name="PixelForwardPlaquette1x5Right" category="envelope"> + <rSolid name="PixelForwardPlaquette1x5"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="PixelForwardPlaquette1x5Left" category="envelope"> + <rSolid name="PixelForwardPlaquette1x5"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <!-- Sensor --> + <LogicalPart name="PixelForwardSensor1x5" category="unspecified"> + <rSolid name="PixelForwardSensor1x5"/> + <rMaterial name="materials:Silicon"/> + </LogicalPart> + <LogicalPart name="PixelForwardActive1x5" category="sensitive"> + <rSolid name="PixelForwardActive1x5"/> + <rMaterial name="materials:Silicon"/> + </LogicalPart> + <!-- Passive part --> + <LogicalPart name="PixelForwardPassive1x5" category="envelope"> + <rSolid name="PixelForwardPassive1x5"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="PixelForwardFlexCircuit1x5" category="unspecified"> + <rSolid name="PixelForwardFlexCircuit1x5"/> + <rMaterial name="pixfwdMaterials:Pix_Fwd_VHDI"/> + </LogicalPart> + <LogicalPart name="PixelForwardAdhFilm1x5" category="unspecified"> + <rSolid name="PixelForwardAdhFilm1x5"/> + <rMaterial name="pixfwdMaterials:Pix_Fwd_AdhFilm"/> + </LogicalPart> + <LogicalPart name="PixelForwardBacking1x5" category="unspecified"> + <rSolid name="PixelForwardBacking1x5"/> + <rMaterial name="materials:Silicon"/> + </LogicalPart> + <LogicalPart name="PixelForwardChoTherm1x5" category="unspecified"> + <rSolid name="PixelForwardChoTherm1x5"/> + <rMaterial name="pixfwdMaterials:Pix_Fwd_AgEpoxy"/> + </LogicalPart> + </LogicalPartSection> + <PosPartSection label="All"> + <!-- Sensor --> + <PosPart copyNumber="1"> + <rParent name="PixelForwardSensor1x5"/> + <rChild name="PixelForwardActive1x5"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="PixelForwardPlaquette1x5Right"/> + <rChild name="PixelForwardSensor1x5"/> + <Translation x="[AnchorXRight]" y="[AnchorY]" z="[pixfwdPlaq:SensorZ]"/> + <rRotation name="pixfwdPlaq:Z270"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="PixelForwardPlaquette1x5Left"/> + <rChild name="PixelForwardSensor1x5"/> + <Translation x="[AnchorXLeft]" y="[AnchorY]" z="[pixfwdPlaq:SensorZ]"/> + <rRotation name="pixfwdPlaq:Z270"/> + </PosPart> + <!-- Passive part --> + <PosPart copyNumber="1"> + <rParent name="PixelForwardPlaquette1x5Right"/> + <rChild name="PixelForwardPassive1x5"/> + <Translation x="0.*mm" y="0.*mm" z="[pixfwdPlaq:PassiveZ]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="PixelForwardPlaquette1x5Left"/> + <rChild name="PixelForwardPassive1x5"/> + <Translation x="0.*mm" y="0.*mm" z="[pixfwdPlaq:PassiveZ]"/> + <rReflectionRotation name="pixfwdCommon:ReflectionX"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="PixelForwardPassive1x5"/> + <rChild name="PixelForwardFlexCircuit1x5"/> + <Translation x="0." y="0." z="[pixfwdPlaq:FlexCircuitZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="PixelForwardPassive1x5"/> + <rChild name="PixelForwardAdhFilm1x5"/> + <Translation x="0." y="0." z="[pixfwdPlaq:AdhFilmZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="PixelForwardPassive1x5"/> + <rChild name="PixelForwardBacking1x5"/> + <Translation x="0." y="0." z="[pixfwdPlaq:BackingZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="PixelForwardPassive1x5"/> + <rChild name="PixelForwardChoTherm1x5"/> + <Translation x="0." y="0." z="[pixfwdPlaq:ChoThermZ]"/> + </PosPart> + <!-- Readout chips in the passive part --> + <PosPart copyNumber="3"> + <rParent name="PixelForwardPassive1x5"/> + <rChild name="pixfwdPlaq:PixelForwardBumpROChipEpoxy"/> + <Translation x="[PlaquetteW]/2.-[ROChipX_BottomLeft]+[pixfwdPlaq:ROChipW]/2." y="[PlaquetteH]/2.-[ROChipY_BottomLeft]+[pixfwdPlaq:ROChipH]/2." z="[pixfwdPlaq:BumpROChipEpoxyZ]"/> + </PosPart> + <PosPart copyNumber="4"> + <rParent name="PixelForwardPassive1x5"/> + <rChild name="pixfwdPlaq:PixelForwardBumpROChipEpoxy"/> + <Translation x="[PlaquetteW]/2.-[ROChipX_BottomLeft]+[pixfwdPlaq:ROChipSpaceW]+[pixfwdPlaq:ROChipW]/2." y="[PlaquetteH]/2.-[ROChipY_BottomLeft]+[pixfwdPlaq:ROChipH]/2." z="[pixfwdPlaq:BumpROChipEpoxyZ]"/> + </PosPart> + <PosPart copyNumber="5"> + <rParent name="PixelForwardPassive1x5"/> + <rChild name="pixfwdPlaq:PixelForwardBumpROChipEpoxy"/> + <Translation x="[PlaquetteW]/2.-[ROChipX_BottomLeft]+2.*[pixfwdPlaq:ROChipSpaceW]+[pixfwdPlaq:ROChipW]/2." y="[PlaquetteH]/2.-[ROChipY_BottomLeft]+[pixfwdPlaq:ROChipH]/2." z="[pixfwdPlaq:BumpROChipEpoxyZ]"/> + </PosPart> + <PosPart copyNumber="6"> + <rParent name="PixelForwardPassive1x5"/> + <rChild name="pixfwdPlaq:PixelForwardBumpROChipEpoxy"/> + <Translation x="[PlaquetteW]/2.-[ROChipX_BottomLeft]+3.*[pixfwdPlaq:ROChipSpaceW]+[pixfwdPlaq:ROChipW]/2." y="[PlaquetteH]/2.-[ROChipY_BottomLeft]+[pixfwdPlaq:ROChipH]/2." z="[pixfwdPlaq:BumpROChipEpoxyZ]"/> + </PosPart> + <PosPart copyNumber="7"> + <rParent name="PixelForwardPassive1x5"/> + <rChild name="pixfwdPlaq:PixelForwardBumpROChipEpoxy"/> + <Translation x="[PlaquetteW]/2.-[ROChipX_BottomLeft]+4.*[pixfwdPlaq:ROChipSpaceW]+[pixfwdPlaq:ROChipW]/2." y="[PlaquetteH]/2.-[ROChipY_BottomLeft]+[pixfwdPlaq:ROChipH]/2." z="[pixfwdPlaq:BumpROChipEpoxyZ]"/> + </PosPart> + </PosPartSection> +</DDDefinition> diff --git a/examples/DDCMS/data/pixfwdPlaq2x3.xml b/examples/DDCMS/data/pixfwdPlaq2x3.xml new file mode 100644 index 0000000000000000000000000000000000000000..a894136184697a480e15af38ef9d434f660d7bbf --- /dev/null +++ b/examples/DDCMS/data/pixfwdPlaq2x3.xml @@ -0,0 +1,196 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <!-- + + == CMS Forward Pixels Geometry == + + @version 3.02.01 May 30, 2006 + @created Victoria Martin + @modified Dmitry Onoprienko + + == Subsystem or component described by the file == + + 2x3 Plaquette. + + == Root volume and its reference frame == + + Root volume : PixelForwardPlaquette2x3Up and PixelForwardPlaquette2x3Down + + Y is in the plane of the plaquette, pointing away from the beam line + Z is perpendicular to the plaquette, pointing to the sensor side + + == Positioning == + + The file defines AnchorX and AnchorY constants that + correspond to the anchor point (aka active center) coordinates in the plaquette + root volume. + + The two root volumes defined by this file contain identical geometry, but differ + in the directions of X and Y axes of the sensitive volume. + + PixelForwardPlaquette2x3Up should be positioned unrotated into "PixelForwardPanel3Right" panel, + and rotated by 180 deg around Z into "PixelForwardPanel4Left" panel. + + PixelForwardPlaquette2x3Down should be positioned unrotated into "PixelForwardPanel4Right" panel, + and rotated by 180 deg around Z into "PixelForwardPanel3Left" panel. + + == Additional comments == + + The volume representing the active part of the sensor is placed with 90 degrees + rotation around Z axis to make its local reference frame Y go along the longer side. + + --> + <ConstantsSection label="Input" eval="true"> + <Constant name="PlaquetteW" value="29.458*mm"/> + <Constant name="PlaquetteH" value="27.766*mm"/> + <Constant name="SensorW" value="26.594*mm"/> + <Constant name="SensorH" value="18.494*mm"/> + <Constant name="ActiveW" value="24.300*mm"/> + <Constant name="ActiveH" value="16.200*mm"/> + <Constant name="ROChipX_TopRight" value="3.074*mm"/> + <Constant name="ROChipY_TopRight" value="3.905*mm"/> + <Constant name="ROChipX_BottomLeft" value="27.300*mm"/> + <Constant name="ROChipY_BottomLeft" value="23.860*mm"/> + <Constant name="ActiveCenterX" value="15.187*mm"/> + <Constant name="ActiveCenterY" value="13.883*mm"/> + </ConstantsSection> + <ConstantsSection label="Common" eval="true"> + <Constant name="AnchorX" value=" [PlaquetteW]/2.-[ActiveCenterX]"/> + <Constant name="AnchorY" value="0.*mm"/> + </ConstantsSection> + <SolidSection label="All"> + <!-- Root volume --> + <Box name="PixelForwardPlaquette2x3" dx="[PlaquetteW]/2." dy="[PlaquetteH]/2." dz="[pixfwdPlaq:PlaquetteT]/2."/> + <!-- Sensor --> + <Box name="PixelForwardSensor2x3" dx="[SensorH]/2." dy="[SensorW]/2" dz="[pixfwdPlaq:SensorT]/2."/> + <Box name="PixelForwardActive2x3" dx="[ActiveH]/2." dy="[ActiveW]/2" dz="[pixfwdPlaq:SensorT]/2."/> + <!-- Passive part --> + <Box name="PixelForwardPassive2x3" dx="[PlaquetteW]/2." dy="[PlaquetteH]/2." dz="[pixfwdPlaq:PassiveT]/2."/> + <Box name="PixelForwardFlexCircuit2x3" dx="[PlaquetteW]/2." dy="[PlaquetteH]/2." dz="[pixfwdPlaq:FlexCircuitT]/2."/> + <Box name="PixelForwardAdhFilm2x3" dx="[PlaquetteW]/2." dy="[PlaquetteH]/2." dz="[pixfwdPlaq:AdhFilmT]/2."/> + <Box name="PixelForwardBacking2x3" dx="[PlaquetteW]/2." dy="[PlaquetteH]/2." dz="[pixfwdPlaq:BackingT]/2."/> + <Box name="PixelForwardChoTherm2x3" dx="[PlaquetteW]/2." dy="[PlaquetteH]/2." dz="[pixfwdPlaq:ChoThermT]/2."/> + </SolidSection> + <LogicalPartSection label="All"> + <!-- Root volumes --> + <LogicalPart name="PixelForwardPlaquette2x3Up" category="envelope"> + <rSolid name="PixelForwardPlaquette2x3"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="PixelForwardPlaquette2x3Down" category="envelope"> + <rSolid name="PixelForwardPlaquette2x3"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <!-- Sensor --> + <LogicalPart name="PixelForwardSensor2x3" category="unspecified"> + <rSolid name="PixelForwardSensor2x3"/> + <rMaterial name="materials:Silicon"/> + </LogicalPart> + <LogicalPart name="PixelForwardActive2x3" category="sensitive"> + <rSolid name="PixelForwardActive2x3"/> + <rMaterial name="materials:Silicon"/> + </LogicalPart> + <!-- Passive part --> + <LogicalPart name="PixelForwardPassive2x3" category="envelope"> + <rSolid name="PixelForwardPassive2x3"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="PixelForwardFlexCircuit2x3" category="unspecified"> + <rSolid name="PixelForwardFlexCircuit2x3"/> + <rMaterial name="pixfwdMaterials:Pix_Fwd_VHDI"/> + </LogicalPart> + <LogicalPart name="PixelForwardAdhFilm2x3" category="unspecified"> + <rSolid name="PixelForwardAdhFilm2x3"/> + <rMaterial name="pixfwdMaterials:Pix_Fwd_AdhFilm"/> + </LogicalPart> + <LogicalPart name="PixelForwardBacking2x3" category="unspecified"> + <rSolid name="PixelForwardBacking2x3"/> + <rMaterial name="materials:Silicon"/> + </LogicalPart> + <LogicalPart name="PixelForwardChoTherm2x3" category="unspecified"> + <rSolid name="PixelForwardChoTherm2x3"/> + <rMaterial name="pixfwdMaterials:Pix_Fwd_AgEpoxy"/> + </LogicalPart> + </LogicalPartSection> + <PosPartSection label="All"> + <!-- Sensor --> + <PosPart copyNumber="1"> + <rParent name="PixelForwardSensor2x3"/> + <rChild name="PixelForwardActive2x3"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="PixelForwardPlaquette2x3Up"/> + <rChild name="PixelForwardSensor2x3"/> + <Translation x="[AnchorX]" y="[AnchorY]" z="[pixfwdPlaq:SensorZ]"/> + <rRotation name="pixfwdPlaq:Z90"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="PixelForwardPlaquette2x3Down"/> + <rChild name="PixelForwardSensor2x3"/> + <Translation x="[AnchorX]" y="[AnchorY]" z="[pixfwdPlaq:SensorZ]"/> + <rRotation name="pixfwdPlaq:Z270"/> + </PosPart> + <!-- Passive part --> + <PosPart copyNumber="1"> + <rParent name="PixelForwardPlaquette2x3Up"/> + <rChild name="PixelForwardPassive2x3"/> + <Translation x="0.*mm" y="0.*mm" z="[pixfwdPlaq:PassiveZ]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="PixelForwardPlaquette2x3Down"/> + <rChild name="PixelForwardPassive2x3"/> + <Translation x="0.*mm" y="0.*mm" z="[pixfwdPlaq:PassiveZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="PixelForwardPassive2x3"/> + <rChild name="PixelForwardFlexCircuit2x3"/> + <Translation x="0." y="0." z="[pixfwdPlaq:FlexCircuitZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="PixelForwardPassive2x3"/> + <rChild name="PixelForwardAdhFilm2x3"/> + <Translation x="0." y="0." z="[pixfwdPlaq:AdhFilmZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="PixelForwardPassive2x3"/> + <rChild name="PixelForwardBacking2x3"/> + <Translation x="0." y="0." z="[pixfwdPlaq:BackingZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="PixelForwardPassive2x3"/> + <rChild name="PixelForwardChoTherm2x3"/> + <Translation x="0." y="0." z="[pixfwdPlaq:ChoThermZ]"/> + </PosPart> + <!-- Readout chips in the passive part --> + <PosPart copyNumber="8"> + <rParent name="PixelForwardPassive2x3"/> + <rChild name="pixfwdPlaq:PixelForwardBumpROChipEpoxy"/> + <Translation x="[PlaquetteW]/2.-[ROChipX_TopRight]-[pixfwdPlaq:ROChipW]/2." y="[PlaquetteH]/2.-[ROChipY_TopRight]-[pixfwdPlaq:ROChipH]/2." z="[pixfwdPlaq:BumpROChipEpoxyZ]"/> + </PosPart> + <PosPart copyNumber="9"> + <rParent name="PixelForwardPassive2x3"/> + <rChild name="pixfwdPlaq:PixelForwardBumpROChipEpoxy"/> + <Translation x="[PlaquetteW]/2.-[ROChipX_TopRight]-[pixfwdPlaq:ROChipSpaceW]-[pixfwdPlaq:ROChipW]/2." y="[PlaquetteH]/2.-[ROChipY_TopRight]-[pixfwdPlaq:ROChipH]/2." z="[pixfwdPlaq:BumpROChipEpoxyZ]"/> + </PosPart> + <PosPart copyNumber="10"> + <rParent name="PixelForwardPassive2x3"/> + <rChild name="pixfwdPlaq:PixelForwardBumpROChipEpoxy"/> + <Translation x="[PlaquetteW]/2.-[ROChipX_TopRight]-2.*[pixfwdPlaq:ROChipSpaceW]-[pixfwdPlaq:ROChipW]/2." y="[PlaquetteH]/2.-[ROChipY_TopRight]-[pixfwdPlaq:ROChipH]/2." z="[pixfwdPlaq:BumpROChipEpoxyZ]"/> + </PosPart> + <PosPart copyNumber="11"> + <rParent name="PixelForwardPassive2x3"/> + <rChild name="pixfwdPlaq:PixelForwardBumpROChipEpoxy"/> + <Translation x="[PlaquetteW]/2.-[ROChipX_BottomLeft]+[pixfwdPlaq:ROChipW]/2." y="[PlaquetteH]/2.-[ROChipY_BottomLeft]+[pixfwdPlaq:ROChipH]/2." z="[pixfwdPlaq:BumpROChipEpoxyZ]"/> + </PosPart> + <PosPart copyNumber="12"> + <rParent name="PixelForwardPassive2x3"/> + <rChild name="pixfwdPlaq:PixelForwardBumpROChipEpoxy"/> + <Translation x="[PlaquetteW]/2.-[ROChipX_BottomLeft]+[pixfwdPlaq:ROChipSpaceW]+[pixfwdPlaq:ROChipW]/2." y="[PlaquetteH]/2.-[ROChipY_BottomLeft]+[pixfwdPlaq:ROChipH]/2." z="[pixfwdPlaq:BumpROChipEpoxyZ]"/> + </PosPart> + <PosPart copyNumber="13"> + <rParent name="PixelForwardPassive2x3"/> + <rChild name="pixfwdPlaq:PixelForwardBumpROChipEpoxy"/> + <Translation x="[PlaquetteW]/2.-[ROChipX_BottomLeft]+2.*[pixfwdPlaq:ROChipSpaceW]+[pixfwdPlaq:ROChipW]/2." y="[PlaquetteH]/2.-[ROChipY_BottomLeft]+[pixfwdPlaq:ROChipH]/2." z="[pixfwdPlaq:BumpROChipEpoxyZ]"/> + </PosPart> + </PosPartSection> +</DDDefinition> diff --git a/examples/DDCMS/data/pixfwdPlaq2x4.xml b/examples/DDCMS/data/pixfwdPlaq2x4.xml new file mode 100644 index 0000000000000000000000000000000000000000..b274917f42583a6cd25b13cfac06e3f054ad0b7a --- /dev/null +++ b/examples/DDCMS/data/pixfwdPlaq2x4.xml @@ -0,0 +1,206 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <!-- + + == CMS Forward Pixels Geometry == + + @version 3.02.01 May 30, 2006 + @created Victoria Martin + @modified Dmitry Onoprienko + + == Subsystem or component described by the file == + + 2x4 Plaquette. + + == Root volume and its reference frame == + + Root volume : PixelForwardPlaquette2x4Up and PixelForwardPlaquette2x4Down + + Y is in the plane of the plaquette, pointing away from the beam line + Z is perpendicular to the plaquette, pointing to the sensor side + + == Positioning == + + The file defines AnchorX and AnchorY constants that + correspond to the anchor point (aka active center) coordinates in the plaquette + root volume. + + The two root volumes defined by this file contain identical geometry, but differ + in the directions of X and Y axes of the sensitive volume. + + PixelForwardPlaquette2x4Up should be positioned unrotated into "PixelForwardPanel3Right" panel, + and rotated by 180 deg around Z into "PixelForwardPanel4Left" panel. + + PixelForwardPlaquette2x4Down should be positioned unrotated into "PixelForwardPanel4Right" panel, + and rotated by 180 deg around Z into "PixelForwardPanel3Left" panel. + + == Additional comments == + + The volume representing the active part of the sensor is placed with 90 degrees + rotation around Z axis to make its local reference frame Y go along the longer side. + + --> + <ConstantsSection label="Input" eval="true"> + <Constant name="PlaquetteW" value="37.558*mm"/> + <Constant name="PlaquetteH" value="27.766*mm"/> + <Constant name="SensorW" value="34.694*mm"/> + <Constant name="SensorH" value="18.494*mm"/> + <Constant name="ActiveW" value="32.400*mm"/> + <Constant name="ActiveH" value="16.200*mm"/> + <Constant name="ROChipX_TopRight" value="3.074*mm"/> + <Constant name="ROChipY_TopRight" value="3.905*mm"/> + <Constant name="ROChipX_BottomLeft" value="35.400*mm"/> + <Constant name="ROChipY_BottomLeft" value="23.860*mm"/> + <Constant name="ActiveCenterX" value="19.237*mm"/> + <Constant name="ActiveCenterY" value="13.883*mm"/> + </ConstantsSection> + <ConstantsSection label="Common" eval="true"> + <Constant name="AnchorX" value=" [PlaquetteW]/2.-[ActiveCenterX]"/> + <Constant name="AnchorY" value="0.*mm"/> + </ConstantsSection> + <SolidSection label="All"> + <!-- Root volume --> + <Box name="PixelForwardPlaquette2x4" dx="[PlaquetteW]/2." dy="[PlaquetteH]/2." dz="[pixfwdPlaq:PlaquetteT]/2."/> + <!-- Sensor --> + <Box name="PixelForwardSensor2x4" dx="[SensorH]/2." dy="[SensorW]/2" dz="[pixfwdPlaq:SensorT]/2."/> + <Box name="PixelForwardActive2x4" dx="[ActiveH]/2." dy="[ActiveW]/2" dz="[pixfwdPlaq:SensorT]/2."/> + <!-- Passive part --> + <Box name="PixelForwardPassive2x4" dx="[PlaquetteW]/2." dy="[PlaquetteH]/2." dz="[pixfwdPlaq:PassiveT]/2."/> + <Box name="PixelForwardFlexCircuit2x4" dx="[PlaquetteW]/2." dy="[PlaquetteH]/2." dz="[pixfwdPlaq:FlexCircuitT]/2."/> + <Box name="PixelForwardAdhFilm2x4" dx="[PlaquetteW]/2." dy="[PlaquetteH]/2." dz="[pixfwdPlaq:AdhFilmT]/2."/> + <Box name="PixelForwardBacking2x4" dx="[PlaquetteW]/2." dy="[PlaquetteH]/2." dz="[pixfwdPlaq:BackingT]/2."/> + <Box name="PixelForwardChoTherm2x4" dx="[PlaquetteW]/2." dy="[PlaquetteH]/2." dz="[pixfwdPlaq:ChoThermT]/2."/> + </SolidSection> + <LogicalPartSection label="All"> + <!-- Root volumes --> + <LogicalPart name="PixelForwardPlaquette2x4Up" category="envelope"> + <rSolid name="PixelForwardPlaquette2x4"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="PixelForwardPlaquette2x4Down" category="envelope"> + <rSolid name="PixelForwardPlaquette2x4"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <!-- Sensor --> + <LogicalPart name="PixelForwardSensor2x4" category="unspecified"> + <rSolid name="PixelForwardSensor2x4"/> + <rMaterial name="materials:Silicon"/> + </LogicalPart> + <LogicalPart name="PixelForwardActive2x4" category="sensitive"> + <rSolid name="PixelForwardActive2x4"/> + <rMaterial name="materials:Silicon"/> + </LogicalPart> + <!-- Passive part --> + <LogicalPart name="PixelForwardPassive2x4" category="envelope"> + <rSolid name="PixelForwardPassive2x4"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="PixelForwardFlexCircuit2x4" category="unspecified"> + <rSolid name="PixelForwardFlexCircuit2x4"/> + <rMaterial name="pixfwdMaterials:Pix_Fwd_VHDI"/> + </LogicalPart> + <LogicalPart name="PixelForwardAdhFilm2x4" category="unspecified"> + <rSolid name="PixelForwardAdhFilm2x4"/> + <rMaterial name="pixfwdMaterials:Pix_Fwd_AdhFilm"/> + </LogicalPart> + <LogicalPart name="PixelForwardBacking2x4" category="unspecified"> + <rSolid name="PixelForwardBacking2x4"/> + <rMaterial name="materials:Silicon"/> + </LogicalPart> + <LogicalPart name="PixelForwardChoTherm2x4" category="unspecified"> + <rSolid name="PixelForwardChoTherm2x4"/> + <rMaterial name="pixfwdMaterials:Pix_Fwd_AgEpoxy"/> + </LogicalPart> + </LogicalPartSection> + <PosPartSection label="All"> + <!-- Sensor --> + <PosPart copyNumber="1"> + <rParent name="PixelForwardSensor2x4"/> + <rChild name="PixelForwardActive2x4"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="PixelForwardPlaquette2x4Up"/> + <rChild name="PixelForwardSensor2x4"/> + <Translation x="[AnchorX]" y="[AnchorY]" z="[pixfwdPlaq:SensorZ]"/> + <rRotation name="pixfwdPlaq:Z90"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="PixelForwardPlaquette2x4Down"/> + <rChild name="PixelForwardSensor2x4"/> + <Translation x="[AnchorX]" y="[AnchorY]" z="[pixfwdPlaq:SensorZ]"/> + <rRotation name="pixfwdPlaq:Z270"/> + </PosPart> + <!-- Passive part --> + <PosPart copyNumber="1"> + <rParent name="PixelForwardPlaquette2x4Up"/> + <rChild name="PixelForwardPassive2x4"/> + <Translation x="0.*mm" y="0.*mm" z="[pixfwdPlaq:PassiveZ]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="PixelForwardPlaquette2x4Down"/> + <rChild name="PixelForwardPassive2x4"/> + <Translation x="0.*mm" y="0.*mm" z="[pixfwdPlaq:PassiveZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="PixelForwardPassive2x4"/> + <rChild name="PixelForwardFlexCircuit2x4"/> + <Translation x="0." y="0." z="[pixfwdPlaq:FlexCircuitZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="PixelForwardPassive2x4"/> + <rChild name="PixelForwardAdhFilm2x4"/> + <Translation x="0." y="0." z="[pixfwdPlaq:AdhFilmZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="PixelForwardPassive2x4"/> + <rChild name="PixelForwardBacking2x4"/> + <Translation x="0." y="0." z="[pixfwdPlaq:BackingZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="PixelForwardPassive2x4"/> + <rChild name="PixelForwardChoTherm2x4"/> + <Translation x="0." y="0." z="[pixfwdPlaq:ChoThermZ]"/> + </PosPart> + <!-- Readout chips in the passive part --> + <PosPart copyNumber="14"> + <rParent name="PixelForwardPassive2x4"/> + <rChild name="pixfwdPlaq:PixelForwardBumpROChipEpoxy"/> + <Translation x="[PlaquetteW]/2.-[ROChipX_TopRight]-[pixfwdPlaq:ROChipW]/2." y="[PlaquetteH]/2.-[ROChipY_TopRight]-[pixfwdPlaq:ROChipH]/2." z="[pixfwdPlaq:BumpROChipEpoxyZ]"/> + </PosPart> + <PosPart copyNumber="15"> + <rParent name="PixelForwardPassive2x4"/> + <rChild name="pixfwdPlaq:PixelForwardBumpROChipEpoxy"/> + <Translation x="[PlaquetteW]/2.-[ROChipX_TopRight]-[pixfwdPlaq:ROChipSpaceW]-[pixfwdPlaq:ROChipW]/2." y="[PlaquetteH]/2.-[ROChipY_TopRight]-[pixfwdPlaq:ROChipH]/2." z="[pixfwdPlaq:BumpROChipEpoxyZ]"/> + </PosPart> + <PosPart copyNumber="16"> + <rParent name="PixelForwardPassive2x4"/> + <rChild name="pixfwdPlaq:PixelForwardBumpROChipEpoxy"/> + <Translation x="[PlaquetteW]/2.-[ROChipX_TopRight]-2.*[pixfwdPlaq:ROChipSpaceW]-[pixfwdPlaq:ROChipW]/2." y="[PlaquetteH]/2.-[ROChipY_TopRight]-[pixfwdPlaq:ROChipH]/2." z="[pixfwdPlaq:BumpROChipEpoxyZ]"/> + </PosPart> + <PosPart copyNumber="17"> + <rParent name="PixelForwardPassive2x4"/> + <rChild name="pixfwdPlaq:PixelForwardBumpROChipEpoxy"/> + <Translation x="[PlaquetteW]/2.-[ROChipX_TopRight]-3.*[pixfwdPlaq:ROChipSpaceW]-[pixfwdPlaq:ROChipW]/2." y="[PlaquetteH]/2.-[ROChipY_TopRight]-[pixfwdPlaq:ROChipH]/2." z="[pixfwdPlaq:BumpROChipEpoxyZ]"/> + </PosPart> + <PosPart copyNumber="18"> + <rParent name="PixelForwardPassive2x4"/> + <rChild name="pixfwdPlaq:PixelForwardBumpROChipEpoxy"/> + <Translation x="[PlaquetteW]/2.-[ROChipX_BottomLeft]+[pixfwdPlaq:ROChipW]/2." y="[PlaquetteH]/2.-[ROChipY_BottomLeft]+[pixfwdPlaq:ROChipH]/2." z="[pixfwdPlaq:BumpROChipEpoxyZ]"/> + </PosPart> + <PosPart copyNumber="19"> + <rParent name="PixelForwardPassive2x4"/> + <rChild name="pixfwdPlaq:PixelForwardBumpROChipEpoxy"/> + <Translation x="[PlaquetteW]/2.-[ROChipX_BottomLeft]+[pixfwdPlaq:ROChipSpaceW]+[pixfwdPlaq:ROChipW]/2." y="[PlaquetteH]/2.-[ROChipY_BottomLeft]+[pixfwdPlaq:ROChipH]/2." z="[pixfwdPlaq:BumpROChipEpoxyZ]"/> + </PosPart> + <PosPart copyNumber="20"> + <rParent name="PixelForwardPassive2x4"/> + <rChild name="pixfwdPlaq:PixelForwardBumpROChipEpoxy"/> + <Translation x="[PlaquetteW]/2.-[ROChipX_BottomLeft]+2.*[pixfwdPlaq:ROChipSpaceW]+[pixfwdPlaq:ROChipW]/2." y="[PlaquetteH]/2.-[ROChipY_BottomLeft]+[pixfwdPlaq:ROChipH]/2." z="[pixfwdPlaq:BumpROChipEpoxyZ]"/> + </PosPart> + <PosPart copyNumber="21"> + <rParent name="PixelForwardPassive2x4"/> + <rChild name="pixfwdPlaq:PixelForwardBumpROChipEpoxy"/> + <Translation x="[PlaquetteW]/2.-[ROChipX_BottomLeft]+3.*[pixfwdPlaq:ROChipSpaceW]+[pixfwdPlaq:ROChipW]/2." y="[PlaquetteH]/2.-[ROChipY_BottomLeft]+[pixfwdPlaq:ROChipH]/2." z="[pixfwdPlaq:BumpROChipEpoxyZ]"/> + </PosPart> + </PosPartSection> +</DDDefinition> diff --git a/examples/DDCMS/data/pixfwdPlaq2x5.xml b/examples/DDCMS/data/pixfwdPlaq2x5.xml new file mode 100644 index 0000000000000000000000000000000000000000..f39896ab606632b9744835d61eeeae1e231c5716 --- /dev/null +++ b/examples/DDCMS/data/pixfwdPlaq2x5.xml @@ -0,0 +1,213 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <!-- + + == CMS Forward Pixels Geometry == + + @version 3.02.01 May 30, 2006 + @created Victoria Martin + @modified Dmitry Onoprienko + + == Subsystem or component described by the file == + + 2x5 Plaquette. + + == Root volume and its reference frame == + + Root volume : PixelForwardPlaquette2x5Up and PixelForwardPlaquette2x5Down + + Y is in the plane of the plaquette, pointing away from the beam line + Z is perpendicular to the plaquette, pointing to the sensor side + + == Positioning == + + The file defines AnchorX and AnchorY constants that + correspond to the anchor point (aka active center) coordinates in the plaquette + root volume. + + The two root volumes defined by this file contain identical geometry, but differ + in the directions of X and Y axes of the sensitive volume. + + PixelForwardPlaquette2x5Up should be positioned unrotated into "PixelForwardPanel3Right" panel. + PixelForwardPlaquette2x5Down should be positioned rotated by 180 deg around Z into "PixelForwardPanel3Left" panel. + + == Additional comments == + + The volume representing the active part of the sensor is placed with 90 degrees + rotation around Z axis to make its local reference frame Y go along the longer side. + + --> + <ConstantsSection label="Input" eval="true"> + <Constant name="PlaquetteW" value="45.658*mm"/> + <Constant name="PlaquetteH" value="27.766*mm"/> + <Constant name="SensorW" value="42.794*mm"/> + <Constant name="SensorH" value="18.494*mm"/> + <Constant name="ActiveW" value="40.500*mm"/> + <Constant name="ActiveH" value="16.200*mm"/> + <Constant name="ROChipX_TopRight" value="3.074*mm"/> + <Constant name="ROChipY_TopRight" value="3.905*mm"/> + <Constant name="ROChipX_BottomLeft" value="43.500*mm"/> + <Constant name="ROChipY_BottomLeft" value="23.860*mm"/> + <Constant name="ActiveCenterX" value="23.287*mm"/> + <Constant name="ActiveCenterY" value="13.883*mm"/> + </ConstantsSection> + <ConstantsSection label="Common" eval="true"> + <Constant name="AnchorX" value=" [PlaquetteW]/2.-[ActiveCenterX]"/> + <Constant name="AnchorY" value="0.*mm"/> + </ConstantsSection> + <SolidSection label="All"> + <!-- Root volume --> + <Box name="PixelForwardPlaquette2x5" dx="[PlaquetteW]/2." dy="[PlaquetteH]/2." dz="[pixfwdPlaq:PlaquetteT]/2."/> + <!-- Sensor --> + <Box name="PixelForwardSensor2x5" dx="[SensorH]/2." dy="[SensorW]/2" dz="[pixfwdPlaq:SensorT]/2."/> + <Box name="PixelForwardActive2x5" dx="[ActiveH]/2." dy="[ActiveW]/2" dz="[pixfwdPlaq:SensorT]/2."/> + <!-- Passive part --> + <Box name="PixelForwardPassive2x5" dx="[PlaquetteW]/2." dy="[PlaquetteH]/2." dz="[pixfwdPlaq:PassiveT]/2."/> + <Box name="PixelForwardFlexCircuit2x5" dx="[PlaquetteW]/2." dy="[PlaquetteH]/2." dz="[pixfwdPlaq:FlexCircuitT]/2."/> + <Box name="PixelForwardAdhFilm2x5" dx="[PlaquetteW]/2." dy="[PlaquetteH]/2." dz="[pixfwdPlaq:AdhFilmT]/2."/> + <Box name="PixelForwardBacking2x5" dx="[PlaquetteW]/2." dy="[PlaquetteH]/2." dz="[pixfwdPlaq:BackingT]/2."/> + <Box name="PixelForwardChoTherm2x5" dx="[PlaquetteW]/2." dy="[PlaquetteH]/2." dz="[pixfwdPlaq:ChoThermT]/2."/> + </SolidSection> + <LogicalPartSection label="All"> + <!-- Root volumes --> + <LogicalPart name="PixelForwardPlaquette2x5Up" category="envelope"> + <rSolid name="PixelForwardPlaquette2x5"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="PixelForwardPlaquette2x5Down" category="envelope"> + <rSolid name="PixelForwardPlaquette2x5"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <!-- Sensor --> + <LogicalPart name="PixelForwardSensor2x5" category="unspecified"> + <rSolid name="PixelForwardSensor2x5"/> + <rMaterial name="materials:Silicon"/> + </LogicalPart> + <LogicalPart name="PixelForwardActive2x5" category="sensitive"> + <rSolid name="PixelForwardActive2x5"/> + <rMaterial name="materials:Silicon"/> + </LogicalPart> + <!-- Passive part --> + <LogicalPart name="PixelForwardPassive2x5" category="envelope"> + <rSolid name="PixelForwardPassive2x5"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="PixelForwardFlexCircuit2x5" category="unspecified"> + <rSolid name="PixelForwardFlexCircuit2x5"/> + <rMaterial name="pixfwdMaterials:Pix_Fwd_VHDI"/> + </LogicalPart> + <LogicalPart name="PixelForwardAdhFilm2x5" category="unspecified"> + <rSolid name="PixelForwardAdhFilm2x5"/> + <rMaterial name="pixfwdMaterials:Pix_Fwd_AdhFilm"/> + </LogicalPart> + <LogicalPart name="PixelForwardBacking2x5" category="unspecified"> + <rSolid name="PixelForwardBacking2x5"/> + <rMaterial name="materials:Silicon"/> + </LogicalPart> + <LogicalPart name="PixelForwardChoTherm2x5" category="unspecified"> + <rSolid name="PixelForwardChoTherm2x5"/> + <rMaterial name="pixfwdMaterials:Pix_Fwd_AgEpoxy"/> + </LogicalPart> + </LogicalPartSection> + <PosPartSection label="All"> + <!-- Sensor --> + <PosPart copyNumber="1"> + <rParent name="PixelForwardSensor2x5"/> + <rChild name="PixelForwardActive2x5"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="PixelForwardPlaquette2x5Up"/> + <rChild name="PixelForwardSensor2x5"/> + <Translation x="[AnchorX]" y="[AnchorY]" z="[pixfwdPlaq:SensorZ]"/> + <rRotation name="pixfwdPlaq:Z90"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="PixelForwardPlaquette2x5Down"/> + <rChild name="PixelForwardSensor2x5"/> + <Translation x="[AnchorX]" y="[AnchorY]" z="[pixfwdPlaq:SensorZ]"/> + <rRotation name="pixfwdPlaq:Z270"/> + </PosPart> + <!-- Passive part --> + <PosPart copyNumber="1"> + <rParent name="PixelForwardPlaquette2x5Up"/> + <rChild name="PixelForwardPassive2x5"/> + <Translation x="0.*mm" y="0.*mm" z="[pixfwdPlaq:PassiveZ]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="PixelForwardPlaquette2x5Down"/> + <rChild name="PixelForwardPassive2x5"/> + <Translation x="0.*mm" y="0.*mm" z="[pixfwdPlaq:PassiveZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="PixelForwardPassive2x5"/> + <rChild name="PixelForwardFlexCircuit2x5"/> + <Translation x="0." y="0." z="[pixfwdPlaq:FlexCircuitZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="PixelForwardPassive2x5"/> + <rChild name="PixelForwardAdhFilm2x5"/> + <Translation x="0." y="0." z="[pixfwdPlaq:AdhFilmZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="PixelForwardPassive2x5"/> + <rChild name="PixelForwardBacking2x5"/> + <Translation x="0." y="0." z="[pixfwdPlaq:BackingZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="PixelForwardPassive2x5"/> + <rChild name="PixelForwardChoTherm2x5"/> + <Translation x="0." y="0." z="[pixfwdPlaq:ChoThermZ]"/> + </PosPart> + <!-- Readout chips in the passive part --> + <PosPart copyNumber="22"> + <rParent name="PixelForwardPassive2x5"/> + <rChild name="pixfwdPlaq:PixelForwardBumpROChipEpoxy"/> + <Translation x="[PlaquetteW]/2.-[ROChipX_TopRight]-[pixfwdPlaq:ROChipW]/2." y="[PlaquetteH]/2.-[ROChipY_TopRight]-[pixfwdPlaq:ROChipH]/2." z="[pixfwdPlaq:BumpROChipEpoxyZ]"/> + </PosPart> + <PosPart copyNumber="23"> + <rParent name="PixelForwardPassive2x5"/> + <rChild name="pixfwdPlaq:PixelForwardBumpROChipEpoxy"/> + <Translation x="[PlaquetteW]/2.-[ROChipX_TopRight]-[pixfwdPlaq:ROChipSpaceW]-[pixfwdPlaq:ROChipW]/2." y="[PlaquetteH]/2.-[ROChipY_TopRight]-[pixfwdPlaq:ROChipH]/2." z="[pixfwdPlaq:BumpROChipEpoxyZ]"/> + </PosPart> + <PosPart copyNumber="24"> + <rParent name="PixelForwardPassive2x5"/> + <rChild name="pixfwdPlaq:PixelForwardBumpROChipEpoxy"/> + <Translation x="[PlaquetteW]/2.-[ROChipX_TopRight]-2.*[pixfwdPlaq:ROChipSpaceW]-[pixfwdPlaq:ROChipW]/2." y="[PlaquetteH]/2.-[ROChipY_TopRight]-[pixfwdPlaq:ROChipH]/2." z="[pixfwdPlaq:BumpROChipEpoxyZ]"/> + </PosPart> + <PosPart copyNumber="25"> + <rParent name="PixelForwardPassive2x5"/> + <rChild name="pixfwdPlaq:PixelForwardBumpROChipEpoxy"/> + <Translation x="[PlaquetteW]/2.-[ROChipX_TopRight]-3.*[pixfwdPlaq:ROChipSpaceW]-[pixfwdPlaq:ROChipW]/2." y="[PlaquetteH]/2.-[ROChipY_TopRight]-[pixfwdPlaq:ROChipH]/2." z="[pixfwdPlaq:BumpROChipEpoxyZ]"/> + </PosPart> + <PosPart copyNumber="26"> + <rParent name="PixelForwardPassive2x5"/> + <rChild name="pixfwdPlaq:PixelForwardBumpROChipEpoxy"/> + <Translation x="[PlaquetteW]/2.-[ROChipX_TopRight]-4.*[pixfwdPlaq:ROChipSpaceW]-[pixfwdPlaq:ROChipW]/2." y="[PlaquetteH]/2.-[ROChipY_TopRight]-[pixfwdPlaq:ROChipH]/2." z="[pixfwdPlaq:BumpROChipEpoxyZ]"/> + </PosPart> + <PosPart copyNumber="27"> + <rParent name="PixelForwardPassive2x5"/> + <rChild name="pixfwdPlaq:PixelForwardBumpROChipEpoxy"/> + <Translation x="[PlaquetteW]/2.-[ROChipX_BottomLeft]+[pixfwdPlaq:ROChipW]/2." y="[PlaquetteH]/2.-[ROChipY_BottomLeft]+[pixfwdPlaq:ROChipH]/2." z="[pixfwdPlaq:BumpROChipEpoxyZ]"/> + </PosPart> + <PosPart copyNumber="28"> + <rParent name="PixelForwardPassive2x5"/> + <rChild name="pixfwdPlaq:PixelForwardBumpROChipEpoxy"/> + <Translation x="[PlaquetteW]/2.-[ROChipX_BottomLeft]+[pixfwdPlaq:ROChipSpaceW]+[pixfwdPlaq:ROChipW]/2." y="[PlaquetteH]/2.-[ROChipY_BottomLeft]+[pixfwdPlaq:ROChipH]/2." z="[pixfwdPlaq:BumpROChipEpoxyZ]"/> + </PosPart> + <PosPart copyNumber="29"> + <rParent name="PixelForwardPassive2x5"/> + <rChild name="pixfwdPlaq:PixelForwardBumpROChipEpoxy"/> + <Translation x="[PlaquetteW]/2.-[ROChipX_BottomLeft]+2.*[pixfwdPlaq:ROChipSpaceW]+[pixfwdPlaq:ROChipW]/2." y="[PlaquetteH]/2.-[ROChipY_BottomLeft]+[pixfwdPlaq:ROChipH]/2." z="[pixfwdPlaq:BumpROChipEpoxyZ]"/> + </PosPart> + <PosPart copyNumber="30"> + <rParent name="PixelForwardPassive2x5"/> + <rChild name="pixfwdPlaq:PixelForwardBumpROChipEpoxy"/> + <Translation x="[PlaquetteW]/2.-[ROChipX_BottomLeft]+3.*[pixfwdPlaq:ROChipSpaceW]+[pixfwdPlaq:ROChipW]/2." y="[PlaquetteH]/2.-[ROChipY_BottomLeft]+[pixfwdPlaq:ROChipH]/2." z="[pixfwdPlaq:BumpROChipEpoxyZ]"/> + </PosPart> + <PosPart copyNumber="31"> + <rParent name="PixelForwardPassive2x5"/> + <rChild name="pixfwdPlaq:PixelForwardBumpROChipEpoxy"/> + <Translation x="[PlaquetteW]/2.-[ROChipX_BottomLeft]+4.*[pixfwdPlaq:ROChipSpaceW]+[pixfwdPlaq:ROChipW]/2." y="[PlaquetteH]/2.-[ROChipY_BottomLeft]+[pixfwdPlaq:ROChipH]/2." z="[pixfwdPlaq:BumpROChipEpoxyZ]"/> + </PosPart> + </PosPartSection> +</DDDefinition> diff --git a/examples/DDCMS/data/pixfwdTest.xml b/examples/DDCMS/data/pixfwdTest.xml new file mode 100644 index 0000000000000000000000000000000000000000..913fbb4db9682b25e0d3f002aa1fe3f8688115a6 --- /dev/null +++ b/examples/DDCMS/data/pixfwdTest.xml @@ -0,0 +1,43 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <!-- + + == CMS Forward Pixels Geometry == + + @version 3.02.01 May 30, 2006 + @created Dmitry Onoprienko + + == COMPONENT DEFINED BY THIS FILE: == + + Root volume for testing forward pixels geometry. + + --> + <ConstantsSection label="Root" eval="true"> + <Constant name="RootRadius" value="[pixfwd:RootRadius] + 5.*mm"/> + <Constant name="RootHalfLength" value="[pixfwd:ZPixelForward] + [pixfwd:RootHalfLength]*2. + 5.*mm"/> + </ConstantsSection> + <!-- Test root volume --> + <SolidSection label="Root"> + <Tubs name="TestRoot" rMin="0." rMax="[RootRadius]" dz="[RootHalfLength]" startPhi="0." deltaPhi="360*deg"/> + </SolidSection> + <LogicalPartSection label="Root"> + <LogicalPart name="TestRoot" category="envelope"> + <rSolid name="TestRoot"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + </LogicalPartSection> + <!-- Position forward pixels endcaps inside Test root volume --> + <PosPartSection label="PixelForwardRootPlacement"> + <PosPart copyNumber="1"> + <rParent name="TestRoot"/> + <rChild name="pixfwd:PixelForwardZPlus"/> + <Translation x="0." y="0." z="[pixfwd:ZPixelForward]-[pixfwd:AnchorZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="TestRoot"/> + <rChild name="pixfwd:PixelForwardZMinus"/> + <Translation x="0." y="0." z="-[pixfwd:ZPixelForward]+[pixfwd:AnchorZ]"/> + <rRotation name="pixfwdCommon:Y180"/> + </PosPart> + </PosPartSection> +</DDDefinition> diff --git a/examples/DDCMS/data/tec.xml b/examples/DDCMS/data/tec.xml new file mode 100644 index 0000000000000000000000000000000000000000..96ef559de0e661c7b0d4481e9cc8f7c7142e02b3 --- /dev/null +++ b/examples/DDCMS/data/tec.xml @@ -0,0 +1,389 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tec.xml" eval="true"> + <Constant name="zero" value="0.0*fm"/> + <Constant name="Rin" value="22.30*cm"/> + <Constant name="Rout" value="113.51*cm"/> + <Constant name="ZStart" value="124.00*cm"/> + <Constant name="ZEnd" value="281.27*cm+0.34*mm"/> + <Constant name="WheelR" value="110.30*cm"/> + <Constant name="OuterSkinRin" value="113.46*cm"/> + <Constant name="FrontPlateRin" value="22.90*cm"/> + <Constant name="FrontPlateZ1" value="124.00*cm"/> + <Constant name="FrontPlateZ2" value="124.54*cm"/> + <Constant name="FixFrameDR" value="2.30*cm"/> + <Constant name="FixServiceRin" value="108.80*cm"/> + <Constant name="BeamSupportRin" value="30.00*cm"/> + <Constant name="BeamSupportRout" value="30.10*cm"/> + <Constant name="BeamSupportZ1" value="173.10*cm"/> + <Constant name="InTubeRin1" value="22.30*cm"/> + <Constant name="InTubeRin2" value="30.50*cm"/> + <Constant name="InTubeRout1" value="22.60*cm"/> + <Constant name="InTubeRout2" value="30.80*cm"/> + <Constant name="InTubeZ1" value="166.36*cm"/> + <Constant name="InTubeZ2" value="172.03*cm"/> + <Constant name="ServiceRin" value="110.60*cm"/> + <Constant name="ServiceRout" value="[OuterSkinRin]"/> + <Constant name="ServiceZ1" value="124.00*cm"/> + <Constant name="TECRailsADz" value="15.30*cm"/> + <Constant name="TECRailsAZ" value="160.25*cm"/> + <Constant name="TECRailsBDz" value="26.65*cm"/> + <Constant name="TECRailsBZ" value="250.10*cm"/> + <Constant name="RailsPhi" value="-0.664*deg"/> + <Constant name="RailsDeltaPhi" value="7.409*deg"/> + <Constant name="RailsRin" value="112.70*cm"/> + <Constant name="Wheel0Z" value="132.25*cm"/> + <Constant name="Wheel1Z" value="146.25*cm"/> + <Constant name="Wheel2Z" value="160.25*cm"/> + <Constant name="Wheel3Z" value="174.25*cm"/> + <Constant name="Wheel4Z" value="188.25*cm"/> + <Constant name="Wheel5Z" value="205.75*cm"/> + <Constant name="Wheel6Z" value="224.75*cm"/> + <Constant name="Wheel7Z" value="245.25*cm"/> + <Constant name="Wheel8Z" value="266.75*cm"/> + <Constant name="BackplateZ" value="[Wheel8Z]+87.4*mm-0.5*[tecwheel:DiskT]+0.5*[tecbackplate:Thick]"/> + <Constant name="AxialCableW" value="2.0*deg"/> + <Constant name="AxialCableT" value="0.21*cm"/> + <Constant name="CableFi1" value="-11.25*deg"/> + <Constant name="CableFi2" value="11.25*deg"/> + <Constant name="TECDz" value="([ZEnd]-[ZStart])/2"/> + <Constant name="ZPos" value="([ZEnd]+[ZStart])/2"/> + <Constant name="FrontFixRout" value="[FrontPlateRin]+[FixFrameDR]"/> + <Constant name="FrontPlateDz" value="([FrontPlateZ2]-[FrontPlateZ1])/2"/> + <Constant name="DPhi" value="[AxialCableW]+0.05*deg"/> + <Constant name="AxialCableDz" value="[tecpetpar:PetalThick]+ [tecpetpar:ICCThick]"/> + <Constant name="RailsInsARin" value="0.3*cm"/> + <Constant name="RailsInsARout" value="0.95*cm"/> + <Constant name="RailsInsADz" value="([ServiceRout]-[ServiceRin])/2-2"/> + <Constant name="RailsInsBRin" value="0.75*cm"/> + <Constant name="RailsInsBRout" value="0.95*cm"/> + <Constant name="RailsInsBDz" value="([ServiceRout]-[ServiceRin])/2-2"/> + <Constant name="RailsInsXup" value="([ServiceRout]+[ServiceRin])/2-1"/> + <Constant name="RailsInsXmid" value="([ServiceRout]+[ServiceRin])/2-2"/> + <Constant name="RailsInsXdown" value="([ServiceRout]+[ServiceRin])/2-4"/> + </ConstantsSection> + <RotationSection label="tec.xml"> + <Rotation name="90Y" thetaX="180*deg" phiX="0*deg" thetaY="90*deg" phiY="90*deg" thetaZ="90*deg" phiZ="0*deg"/> + </RotationSection> + <SolidSection label="tec.xml"> + <Tubs name="TEC" rMin="[Rin]" rMax="[Rout]" dz="[TECDz]" startPhi="0*deg" deltaPhi="360*deg"/> + <Tubs name="TECWheels" rMin="[Rin]" rMax="[WheelR]" dz="[TECDz]" startPhi="0*deg" deltaPhi="360*deg"/> + <Tubs name="TECOuterSkin" rMin="[OuterSkinRin]" rMax="[Rout]" dz="[TECDz]" startPhi="0*deg" deltaPhi="360*deg"/> + <Tubs name="TECFrontPlate" rMin="[FrontPlateRin]" rMax="[WheelR]" dz="[FrontPlateDz]" startPhi="0*deg" deltaPhi="360*deg"/> + <Tubs name="TECFrontPlateFixB" rMin="[FrontPlateRin]" rMax="[FrontFixRout]" dz="[FrontPlateDz]" startPhi="-7.60*deg" deltaPhi="15.20*deg"/> + <Tubs name="TECFrontPlateFixT" rMin="[FixServiceRin]" rMax="[WheelR]" dz="[FrontPlateDz]" startPhi="-2.50*deg" deltaPhi="5.00*deg"/> + <Tubs name="TECBeamSupport" rMin="[BeamSupportRin]" rMax="[BeamSupportRout]" dz="([ZEnd]-[BeamSupportZ1])/2" startPhi="0*deg" deltaPhi="360*deg"/> + <Polycone name="TECInnerTube" startPhi="0*deg" deltaPhi="360*deg"> + <ZSection z="-[TECDz]" rMin="[InTubeRin1]" rMax="[InTubeRout1]"/> + <ZSection z="([InTubeZ1]-[ZPos])" rMin="[InTubeRin1]" rMax="[InTubeRout1]"/> + <ZSection z="([InTubeZ2]-[ZPos])" rMin="[InTubeRin2]" rMax="[InTubeRout2]"/> + <ZSection z="[TECDz]-2.97" rMin="[InTubeRin2]" rMax="[InTubeRout2]"/> + </Polycone> + <Tubs name="RailsA" rMin="[ServiceRin]" rMax="[tecservices:GasPipeRpos]+[tecservices:GasPipeRout]" dz="[TECRailsADz]" startPhi="[RailsDeltaPhi]/2" deltaPhi="[RailsDeltaPhi]"/> + <Tubs name="RailsB" rMin="[ServiceRin]" rMax="[tecservices:GasPipeRpos]+[tecservices:GasPipeRout]" dz="[TECRailsBDz]" startPhi="[RailsDeltaPhi]/2" deltaPhi="[RailsDeltaPhi]"/> + <Tubs name="TECRailsInsertA" rMin="[RailsInsARin]" rMax="[RailsInsARout]" dz="[RailsInsADz]" startPhi="0*deg" deltaPhi="360*deg"/> + <Tubs name="TECRailsInsertB" rMin="[RailsInsBRin]" rMax="[RailsInsBRout]" dz="[RailsInsBDz]" startPhi="0*deg" deltaPhi="360*deg"/> + </SolidSection> + <LogicalPartSection label="tec.xml"> + <LogicalPart name="TEC" category="unspecified"> + <rSolid name="tec:TEC"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TECWheels" category="unspecified"> + <rSolid name="tec:TECWheels"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TECOuterSkin" category="unspecified"> + <rSolid name="tec:TECOuterSkin"/> + <rMaterial name="tecmaterial:TEC_Skin"/> + </LogicalPart> + <LogicalPart name="TECFrontPlate" category="unspecified"> + <rSolid name="tec:TECFrontPlate"/> + <rMaterial name="tecmaterial:Tk_SO_FC_C"/> + </LogicalPart> + <LogicalPart name="TECFrontPlateFixB" category="unspecified"> + <rSolid name="tec:TECFrontPlateFixB"/> + <rMaterial name="tecmaterial:TEC_Fixframe"/> + </LogicalPart> + <LogicalPart name="TECFrontPlateFixT" category="unspecified"> + <rSolid name="tec:TECFrontPlateFixT"/> + <rMaterial name="tecmaterial:TEC_FixServ"/> + </LogicalPart> + <LogicalPart name="TECBeamSupport" category="unspecified"> + <rSolid name="tec:TECBeamSupport"/> + <rMaterial name="tecmaterial:Tk_SO_FC_D"/> + </LogicalPart> + <LogicalPart name="TECInnerTube" category="unspecified"> + <rSolid name="tec:TECInnerTube"/> + <rMaterial name="tecmaterial:Tk_SO_FC_E"/> + </LogicalPart> + <LogicalPart name="RailsA" category="unspecified"> + <rSolid name="tec:RailsA"/> + <rMaterial name="tecmaterial:TEC_Rails"/> + </LogicalPart> + <LogicalPart name="RailsB" category="unspecified"> + <rSolid name="tec:RailsB"/> + <rMaterial name="tecmaterial:TEC_Rails"/> + </LogicalPart> + <LogicalPart name="TECRailsInsertA" category="unspecified"> + <rSolid name="tec:TECRailsInsertA"/> + <rMaterial name="trackermaterial:T_Aluminium"/> + </LogicalPart> + <LogicalPart name="TECRailsInsertB" category="unspecified"> + <rSolid name="tec:TECRailsInsertB"/> + <rMaterial name="trackermaterial:T_Aluminium"/> + </LogicalPart> + </LogicalPartSection> + <PosPartSection label="tec.xml"> + <PosPart copyNumber="1"> + <rParent name="tec:TEC"/> + <rChild name="tec:TECWheels"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tec:TEC"/> + <rChild name="tec:TECOuterSkin"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tec:TECWheels"/> + <rChild name="tecbackplate:TECBackPlate"/> + <Translation x="[zero]" y="[zero]" z="[BackplateZ]-[ZPos]"/> + <!--Translation x="[zero]" y="[zero]" z="[TECDz]-0.5*[tecbackplate:Thick]"/--> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tec:TECWheels"/> + <rChild name="tec:TECFrontPlate"/> + <Translation x="[zero]" y="[zero]" z="([FrontPlateZ2]+[FrontPlateZ1])/2-[ZPos]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tec:TECWheels"/> + <rChild name="tec:TECBeamSupport"/> + <Translation x="[zero]" y="[zero]" z="([BeamSupportZ1]-[ZStart])/2"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tec:TECWheels"/> + <rChild name="tec:TECInnerTube"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tec:TEC"/> + <rChild name="tecservices:TECServices"/> + </PosPart> + <PosPart copyNumber="0"> + <rParent name="tec:TECWheels"/> + <rChild name="tecwheela:TECWheelA"/> + <Translation x="[zero]" y="[zero]" z="[Wheel0Z]-[ZPos]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tec:TECWheels"/> + <rChild name="tecwheela:TECWheelA"/> + <Translation x="[zero]" y="[zero]" z="[Wheel1Z]-[ZPos]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tec:TECWheels"/> + <rChild name="tecwheela:TECWheelA"/> + <Translation x="[zero]" y="[zero]" z="[Wheel2Z]-[ZPos]"/> + </PosPart> + <PosPart copyNumber="3"> + <rParent name="tec:TECWheels"/> + <rChild name="tecwheelb:TECWheelB"/> + <Translation x="[zero]" y="[zero]" z="[Wheel3Z]-[ZPos]"/> + </PosPart> + <PosPart copyNumber="4"> + <rParent name="tec:TECWheels"/> + <rChild name="tecwheelb:TECWheelB"/> + <Translation x="[zero]" y="[zero]" z="[Wheel4Z]-[ZPos]"/> + </PosPart> + <PosPart copyNumber="5"> + <rParent name="tec:TECWheels"/> + <rChild name="tecwheel6:TECWheel6"/> + <Translation x="[zero]" y="[zero]" z="[Wheel5Z]-[ZPos]"/> + </PosPart> + <PosPart copyNumber="6"> + <rParent name="tec:TECWheels"/> + <rChild name="tecwheelc:TECWheelC"/> + <Translation x="[zero]" y="[zero]" z="[Wheel6Z]-[ZPos]"/> + </PosPart> + <PosPart copyNumber="7"> + <rParent name="tec:TECWheels"/> + <rChild name="tecwheelc:TECWheelC"/> + <Translation x="[zero]" y="[zero]" z="[Wheel7Z]-[ZPos]"/> + </PosPart> + <PosPart copyNumber="8"> + <rParent name="tec:TECWheels"/> + <rChild name="tecwheeld:TECWheelD"/> + <Translation x="[zero]" y="[zero]" z="[Wheel8Z]-[ZPos]"/> + </PosPart> + <!-- TECRailsInsert--> + <!--PosPart copyNumber="1"> + <rParent name="tec:RailsA"/> + <rChild name="tec:TECRailsInsertA"/> + <rRotation name="90Y"/> + <Translation x="[RailsInsXmid]" y="5.69*cm" z="-14.0*cm"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tec:RailsA"/> + <rChild name="tec:TECRailsInsertA"/> + <rRotation name="90Y"/> + <Translation x="[RailsInsXmid]" y="5.69*cm" z="0*fm"/> + </PosPart> + <PosPart copyNumber="3"> + <rParent name="tec:RailsA"/> + <rChild name="tec:TECRailsInsertA"/> + <rRotation name="90Y"/> + <Translation x="[RailsInsXmid]" y="5.69*cm" z="14.0*cm"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tec:RailsA"/> + <rChild name="tec:TECRailsInsertB"/> + <rRotation name="90Y"/> + <Translation x="[RailsInsXup]" y="1.69*cm" z="-14.0*cm"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tec:RailsA"/> + <rChild name="tec:TECRailsInsertB"/> + <rRotation name="90Y"/> + <Translation x="[RailsInsXup]" y="1.69*cm" z="0*fm"/> + </PosPart> + <PosPart copyNumber="3"> + <rParent name="tec:RailsA"/> + <rChild name="tec:TECRailsInsertB"/> + <rRotation name="90Y"/> + <Translation x="[RailsInsXup]" y="1.69*cm" z="14.0*cm"/> + </PosPart> + <PosPart copyNumber="4"> + <rParent name="tec:RailsA"/> + <rChild name="tec:TECRailsInsertB"/> + <rRotation name="90Y"/> + <Translation x="[RailsInsXdown]" y="9.69*cm" z="-14.0*cm"/> + </PosPart> + <PosPart copyNumber="5"> + <rParent name="tec:RailsA"/> + <rChild name="tec:TECRailsInsertB"/> + <rRotation name="90Y"/> + <Translation x="[RailsInsXdown]" y="9.69*cm" z="0*fm"/> + </PosPart> + <PosPart copyNumber="6"> + <rParent name="tec:RailsA"/> + <rChild name="tec:TECRailsInsertB"/> + <rRotation name="90Y"/> + <Translation x="[RailsInsXdown]" y="9.69*cm" z="14.0*cm"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tec:RailsB"/> + <rChild name="tec:TECRailsInsertA"/> + <rRotation name="90Y"/> + <Translation x="[RailsInsXmid]" y="5.69*cm" z="-25.35*cm"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tec:RailsB"/> + <rChild name="tec:TECRailsInsertA"/> + <rRotation name="90Y"/> + <Translation x="[RailsInsXmid]" y="5.69*cm" z="-4.85*cm"/> + </PosPart> + <PosPart copyNumber="3"> + <rParent name="tec:RailsB"/> + <rChild name="tec:TECRailsInsertA"/> + <rRotation name="90Y"/> + <Translation x="[RailsInsXmid]" y="5.69*cm" z="16.65*cm"/> + </PosPart> + <PosPart copyNumber="4"> + <rParent name="tec:RailsB"/> + <rChild name="tec:TECRailsInsertA"/> + <rRotation name="90Y"/> + <Translation x="[RailsInsXmid]" y="5.69*cm" z="25.39*cm"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tec:RailsB"/> + <rChild name="tec:TECRailsInsertB"/> + <rRotation name="90Y"/> + <Translation x="[RailsInsXup]" y="1.69*cm" z="-25.35*cm"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tec:RailsB"/> + <rChild name="tec:TECRailsInsertB"/> + <rRotation name="90Y"/> + <Translation x="[RailsInsXup]" y="1.69*cm" z="-4.85*cm"/> + </PosPart> + <PosPart copyNumber="3"> + <rParent name="tec:RailsB"/> + <rChild name="tec:TECRailsInsertB"/> + <rRotation name="90Y"/> + <Translation x="[RailsInsXup]" y="1.69*cm" z="16.65*cm"/> + </PosPart> + <PosPart copyNumber="4"> + <rParent name="tec:RailsB"/> + <rChild name="tec:TECRailsInsertB"/> + <rRotation name="90Y"/> + <Translation x="[RailsInsXup]" y="1.69*cm" z="25.39*cm"/> + </PosPart> + <PosPart copyNumber="5"> + <rParent name="tec:RailsB"/> + <rChild name="tec:TECRailsInsertB"/> + <rRotation name="90Y"/> + <Translation x="[RailsInsXdown]" y="9.69*cm" z="-25.35*cm"/> + </PosPart> + <PosPart copyNumber="6"> + <rParent name="tec:RailsB"/> + <rChild name="tec:TECRailsInsertB"/> + <rRotation name="90Y"/> + <Translation x="[RailsInsXdown]" y="9.69*cm" z="-4.85*cm"/> + </PosPart> + <PosPart copyNumber="7"> + <rParent name="tec:RailsB"/> + <rChild name="tec:TECRailsInsertB"/> + <rRotation name="90Y"/> + <Translation x="[RailsInsXdown]" y="9.69*cm" z="16.65*cm"/> + </PosPart> + <PosPart copyNumber="8"> + <rParent name="tec:RailsB"/> + <rChild name="tec:TECRailsInsertB"/> + <rRotation name="90Y"/> + <Translation x="[RailsInsXdown]" y="9.69*cm" z="25.35*cm"/> + </PosPart--> + </PosPartSection> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tec:TECFrontPlate"/> + <String name="ChildName" value="tec:TECFrontPlateFixB"/> + <Numeric name="N" value="4"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="67.5*deg"/> + <Numeric name="Radius" value="[zero]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, 0 </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tec:TECFrontPlate"/> + <String name="ChildName" value="tec:TECFrontPlateFixT"/> + <Numeric name="N" value="8"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="11.25*deg"/> + <Numeric name="Radius" value="[zero]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, 0 </Vector> + </Algorithm> + <!--Algorithm name="track:DDTrackerAngular"> + <rParent name="tecservices:TECServices"/> + <String name="ChildName" value="tec:RailsA"/> + <Numeric name="N" value="2" /> + <Numeric name="StartCopyNo" value="1" /> + <Numeric name="IncrCopyNo" value="1" /> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[RailsPhi]"/> + <Numeric name="Radius" value="[zero]"/> + <Vector name="Center" type="numeric" nEntries="3"> + 0, 0, [TECRailsAZ]-[ZPos] </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecservices:TECServices"/> + <String name="ChildName" value="tec:RailsB"/> + <Numeric name="N" value="2" /> + <Numeric name="StartCopyNo" value="1" /> + <Numeric name="IncrCopyNo" value="1" /> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[RailsPhi]"/> + <Numeric name="Radius" value="[zero]"/> + <Vector name="Center" type="numeric" nEntries="3"> + 0, 0, [TECRailsBZ]-[ZPos] </Vector> + </Algorithm--> +</DDDefinition> diff --git a/examples/DDCMS/data/tecbackplate.xml b/examples/DDCMS/data/tecbackplate.xml new file mode 100644 index 0000000000000000000000000000000000000000..d86aa0415b98651d952c3850eaa040bbd92d9011 --- /dev/null +++ b/examples/DDCMS/data/tecbackplate.xml @@ -0,0 +1,121 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tecbackplate.xml" eval="true"> + <Constant name="zero" value="0.0*fm"/> + <Constant name="Rin" value="[tecpetal3:PetalContRmin]"/> + <!-- drawings show Rin =302*mm--> + <Constant name="Rout" value="[tec:WheelR]"/> + <Constant name="Thick" value="[tecwheel:DiskT] + [ThermalShieldThick]"/> + <Constant name="ThermalShieldRout" value="1053*mm"/> + <Constant name="ThermalShieldThick" value="49.7*mm"/> + <Constant name="CircPipeRin" value="[ThermalShieldRout]"/> + <Constant name="CircPipeRout" value="[Rout]"/> + <Constant name="CircPipeThick" value="[ThermalShieldThick]"/> + <Constant name="TiltmeterDist" value="792*mm"/> + <Constant name="TiltmeterDxy" value="42*mm"/> + <Constant name="TiltmeterDz" value="[ThermalShieldThick]/2."/> + </ConstantsSection> + <SolidSection label="tecbackplate.xml"> + <Tubs name="TECBackPlate" rMin="[Rin]" rMax="[Rout]" dz="0.5*[Thick]" startPhi="0*deg" deltaPhi="360*deg"/> + <Tubs name="TECThermalShield" rMin="[Rin]" rMax="[ThermalShieldRout]" dz="0.5*[ThermalShieldThick]" startPhi="0*deg" deltaPhi="360*deg"/> + <Tubs name="TECCircPipe" rMin="[CircPipeRin]" rMax="[CircPipeRout]" dz="0.5*[CircPipeThick]" startPhi="0*deg" deltaPhi="360*deg"/> + <Box name="TECTiltmeter" dx="[TiltmeterDxy]" dy="[TiltmeterDxy]" dz="[TiltmeterDz]"/> + </SolidSection> + <LogicalPartSection label="tecbackplate.xml"> + <LogicalPart name="TECBackPlate" category="unspecified"> + <rSolid name="tecbackplate:TECBackPlate"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TECBackDisk" category="unspecified"> + <rSolid name="tecwheeld:TECWheelDiskD"/> + <rMaterial name="tecmaterial:TEC_BackDiskCF"/> + </LogicalPart> + <LogicalPart name="TECBackDiskNomex" category="unspecified"> + <rSolid name="tecwheeld:TECWheelNomexD"/> + <rMaterial name="tecmaterial:TEC_Nomex"/> + </LogicalPart> + <LogicalPart name="TECBackDiskGroundingRing" category="unspecified"> + <rSolid name="tecwheel:TECGroundingRing"/> + <rMaterial name="trackermaterial:T_Copper"/> + </LogicalPart> + <LogicalPart name="TECThermalShield" category="unspecified"> + <rSolid name="tecbackplate:TECThermalShield"/> + <rMaterial name="tecmaterial:TEC_ThermalShield"/> + </LogicalPart> + <LogicalPart name="TECCircPipe" category="unspecified"> + <rSolid name="tecbackplate:TECCircPipe"/> + <rMaterial name="tecmaterial:TEC_CircPipe"/> + </LogicalPart> + <LogicalPart name="TECTiltmeter" category="unspecified"> + <rSolid name="tecbackplate:TECTiltmeter"/> + <rMaterial name="tecmaterial:TEC_Tiltmeter"/> + </LogicalPart> + </LogicalPartSection> + <PosPartSection label="tecbackplate.xml"> + <PosPart copyNumber="1"> + <rParent name="tecbackplate:TECBackPlate"/> + <rChild name="tecbackplate:TECBackDisk"/> + <Translation x="[zero]" y="[zero]" z="(-0.5*[Thick]+0.5*[tecwheel:DiskT])"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecbackplate:TECBackDisk"/> + <rChild name="tecbackplate:TECBackDiskNomex"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecbackplate:TECBackDisk"/> + <rChild name="tecbackplate:TECBackDiskGroundingRing"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecbackplate:TECBackPlate"/> + <rChild name="tecbackplate:TECThermalShield"/> + <Translation x="[zero]" y="[zero]" z="(-0.5*[Thick]+[tecwheel:DiskT]+0.5*[ThermalShieldThick])"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecbackplate:TECBackPlate"/> + <rChild name="tecbackplate:TECCircPipe"/> + <Translation x="[zero]" y="[zero]" z="(-0.5*[Thick]+[tecwheel:DiskT]+0.5*[CircPipeThick])"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecbackplate:TECThermalShield"/> + <rChild name="tecbackplate:TECTiltmeter"/> + <Translation x="[zero]" y="[TiltmeterDist]" z="[zero]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tecbackplate:TECThermalShield"/> + <rChild name="tecbackplate:TECTiltmeter"/> + <Translation x="[TiltmeterDist]" y="[zero]" z="[zero]"/> + </PosPart> + <PosPart copyNumber="3"> + <rParent name="tecbackplate:TECThermalShield"/> + <rChild name="tecbackplate:TECTiltmeter"/> + <Translation x="[zero]" y="-[TiltmeterDist]" z="[zero]"/> + </PosPart> + <PosPart copyNumber="4"> + <rParent name="tecbackplate:TECThermalShield"/> + <rChild name="tecbackplate:TECTiltmeter"/> + <Translation x="-[TiltmeterDist]" y="[zero]" z="[zero]"/> + </PosPart> + </PosPartSection> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecbackplate:TECBackDiskNomex"/> + <String name="ChildName" value="tecwheeld:TECFixSupportD"/> + <Numeric name="N" value="[tecwheel:FixSuppN]"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[tecwheel:FixSuppFi]"/> + <Numeric name="Radius" value="[zero]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, 0 </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecbackplate:TECBackDiskNomex"/> + <String name="ChildName" value="tecwheel:TECFixService"/> + <Numeric name="N" value="[tecwheel:FixServN]"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[tecwheel:FixServFi]"/> + <Numeric name="Radius" value="[zero]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, 0 </Vector> + </Algorithm> +</DDDefinition> diff --git a/examples/DDCMS/data/tecmaterial.xml b/examples/DDCMS/data/tecmaterial.xml new file mode 100644 index 0000000000000000000000000000000000000000..86e6d1f939aa9d66cb24552fa8c78965494120b2 --- /dev/null +++ b/examples/DDCMS/data/tecmaterial.xml @@ -0,0 +1,1093 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <MaterialSection label="tecmaterial.xml"> + <CompositeMaterial name="Tk_SO_FC_D" density="1.69*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.84491305"> + <rMaterial name="materials:Carbon" /> + </MaterialFraction> + <MaterialFraction fraction="0.042542086"> + <rMaterial name="materials:Hydrogen" /> + </MaterialFraction> + <MaterialFraction fraction="0.11254487"> + <rMaterial name="materials:Oxygen" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="Tk_SO_FC_E" density="1.69*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.84491305"> + <rMaterial name="materials:Carbon" /> + </MaterialFraction> + <MaterialFraction fraction="0.042542086"> + <rMaterial name="materials:Hydrogen" /> + </MaterialFraction> + <MaterialFraction fraction="0.11254487"> + <rMaterial name="materials:Oxygen" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TEC_Nomex" density="29*mg/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="1."> + <rMaterial name="trackermaterial:T_Nomex" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TEC_SideFrameSuppliesBox" density="1.42*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.4"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + <MaterialFraction fraction="0.6"> + <rMaterial name="materials:Oxygen" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TEC_Hybrid4APV" density="4.853*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.01244"> + <rMaterial name="materials:Alumina" /> + </MaterialFraction> + <MaterialFraction fraction="0.03101"> + <rMaterial name="materials:T_Kapton" /> + </MaterialFraction> + <MaterialFraction fraction="0.01097"> + <rMaterial name="materials:SMD_metal" /> + </MaterialFraction> + <MaterialFraction fraction="0.00116"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + <MaterialFraction fraction="0.58835"> + <rMaterial name="materials:Ceramic" /> + </MaterialFraction> + <MaterialFraction fraction="0.04057"> + <rMaterial name="materials:Silicon" /> + </MaterialFraction> + <MaterialFraction fraction="0.2722"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.04114"> + <rMaterial name="materials:Epoxy" /> + </MaterialFraction> + <MaterialFraction fraction="0.00215"> + <rMaterial name="materials:Carbon" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TEC_Hybrid6APV" density="4.853*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.01293"> + <rMaterial name="materials:Alumina" /> + </MaterialFraction> + <MaterialFraction fraction="0.03041"> + <rMaterial name="materials:T_Kapton" /> + </MaterialFraction> + <MaterialFraction fraction="0.01203"> + <rMaterial name="materials:SMD_metal" /> + </MaterialFraction> + <MaterialFraction fraction="0.0017"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + <MaterialFraction fraction="0.57692"> + <rMaterial name="materials:Ceramic" /> + </MaterialFraction> + <MaterialFraction fraction="0.05642"> + <rMaterial name="materials:Silicon" /> + </MaterialFraction> + <MaterialFraction fraction="0.26691"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.04034"> + <rMaterial name="materials:Epoxy" /> + </MaterialFraction> + <MaterialFraction fraction="0.00234"> + <rMaterial name="materials:Carbon" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TEC_PitchAdapter" density="2.285*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.01964"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + <MaterialFraction fraction="0.00405"> + <rMaterial name="materials:Antimony" /> + </MaterialFraction> + <MaterialFraction fraction="0.02119"> + <rMaterial name="materials:Titanium" /> + </MaterialFraction> + <MaterialFraction fraction="0.11635"> + <rMaterial name="materials:Ceramic" /> + </MaterialFraction> + <MaterialFraction fraction="0.2683"> + <rMaterial name="materials:Silicon" /> + </MaterialFraction> + <MaterialFraction fraction="0.04916"> + <rMaterial name="materials:Potassium" /> + </MaterialFraction> + <MaterialFraction fraction="0.02169"> + <rMaterial name="materials:Bor 11" /> + </MaterialFraction> + <MaterialFraction fraction="0.03975"> + <rMaterial name="materials:Zinc" /> + </MaterialFraction> + <MaterialFraction fraction="0.03986"> + <rMaterial name="materials:Sodium" /> + </MaterialFraction> + <MaterialFraction fraction="0.42001"> + <rMaterial name="materials:Oxygen" /> + </MaterialFraction> + <MaterialFraction fraction="1e-05"> + <rMaterial name="materials:Chromium" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TEC_frame_top" density="1.931*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="1.0"> + <rMaterial name="materials:Carbon" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TEC_frame_side_1_4" density="2.990*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.0001"> + <rMaterial name="materials:Gold" /> + </MaterialFraction> + <MaterialFraction fraction="0.01928"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.16527"> + <rMaterial name="materials:T_Kapton" /> + </MaterialFraction> + <MaterialFraction fraction="0.81353"> + <rMaterial name="materials:Carbon" /> + </MaterialFraction> + <MaterialFraction fraction="0.00182"> + <rMaterial name="materials:Nickel" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TEC_frame_side_5_7" density="1.835*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="9e-05"> + <rMaterial name="materials:Gold" /> + </MaterialFraction> + <MaterialFraction fraction="0.2644"> + <rMaterial name="materials:T_Kapton" /> + </MaterialFraction> + <MaterialFraction fraction="0.0219"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.00139"> + <rMaterial name="materials:Nickel" /> + </MaterialFraction> + <MaterialFraction fraction="0.71223"> + <rMaterial name="trackermaterial:T_CarbonFibreStr" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TEC_SideFrSupBox" density="1.420*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.00108"> + <rMaterial name="materials:Gold" /> + </MaterialFraction> + <MaterialFraction fraction="0.46347"> + <rMaterial name="materials:T_Kapton" /> + </MaterialFraction> + <MaterialFraction fraction="0.16343"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.01545"> + <rMaterial name="materials:Nickel" /> + </MaterialFraction> + <MaterialFraction fraction="0.35657"> + <rMaterial name="materials:Silver" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TEC_SiReenforcment" density="3.731*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="1.0"> + <rMaterial name="materials:Ceramic" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TEC_petal" density="0.325*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.0047"> + <rMaterial name="materials:T_Kapton" /> + </MaterialFraction> + <MaterialFraction fraction="0.0889"> + <rMaterial name="materials:Titanium" /> + </MaterialFraction> + <MaterialFraction fraction="0.06686"> + <rMaterial name="tecmaterial:TEC_Nomex" /> + </MaterialFraction> + <MaterialFraction fraction="0.00444"> + <rMaterial name="materials:Epoxy" /> + </MaterialFraction> + <MaterialFraction fraction="0.1168"> + <rMaterial name="trackermaterial:T_C6F14_F2_-30C" /> + </MaterialFraction> + <MaterialFraction fraction="0.00328"> + <rMaterial name="materials:Peek" /> + </MaterialFraction> + <MaterialFraction fraction="0.03366"> + <rMaterial name="trackermaterial:Optical_Fiber" /> + </MaterialFraction> + <MaterialFraction fraction="0.68137"> + <rMaterial name="trackermaterial:T_CarbonFibreStr" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TEC_OptoH" density="4.200*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.00692"> + <rMaterial name="materials:T_Kapton" /> + </MaterialFraction> + <MaterialFraction fraction="0.00084"> + <rMaterial name="materials:Air" /> + </MaterialFraction> + <MaterialFraction fraction="0.24416"> + <rMaterial name="materials:Ceramic" /> + </MaterialFraction> + <MaterialFraction fraction="0.22453"> + <rMaterial name="trackermaterial:T_G10" /> + </MaterialFraction> + <MaterialFraction fraction="0.24707"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.11266"> + <rMaterial name="materials:Epoxy" /> + </MaterialFraction> + <MaterialFraction fraction="0.1401"> + <rMaterial name="materials:Brass" /> + </MaterialFraction> + <MaterialFraction fraction="0.02371"> + <rMaterial name="trackermaterial:T_Barium_Titanate" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TEC_DOHM" density="2.969*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.40226"> + <rMaterial name="tobmaterial:TOB_DOH" /> + </MaterialFraction> + <MaterialFraction fraction="0.01487"> + <rMaterial name="materials:Ceramic" /> + </MaterialFraction> + <MaterialFraction fraction="0.13519"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.0768"> + <rMaterial name="materials:Polyethylene" /> + </MaterialFraction> + <MaterialFraction fraction="0.0183"> + <rMaterial name="materials:Brass" /> + </MaterialFraction> + <MaterialFraction fraction="0.31357"> + <rMaterial name="trackermaterial:T_FR4" /> + </MaterialFraction> + <MaterialFraction fraction="0.03901"> + <rMaterial name="materials:BGA" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TEC_petalinsert" density="4.739*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.20957"> + <rMaterial name="materials:Epoxy" /> + </MaterialFraction> + <MaterialFraction fraction="0.0385"> + <rMaterial name="materials:Brass" /> + </MaterialFraction> + <MaterialFraction fraction="0.00797"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.74097"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + <MaterialFraction fraction="0.00298"> + <rMaterial name="materials:Peek" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TEC_ICC01LF" density="1.218*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.04545"> + <rMaterial name="materials:T_Kapton" /> + </MaterialFraction> + <MaterialFraction fraction="0.03276"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + <MaterialFraction fraction="0.00011"> + <rMaterial name="materials:Gold" /> + </MaterialFraction> + <MaterialFraction fraction="0.06699"> + <rMaterial name="materials:Ceramic" /> + </MaterialFraction> + <MaterialFraction fraction="0.26301"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.03844"> + <rMaterial name="materials:Brass" /> + </MaterialFraction> + <MaterialFraction fraction="0.04788"> + <rMaterial name="materials:Peek" /> + </MaterialFraction> + <MaterialFraction fraction="0.23006"> + <rMaterial name="materials:Polyethylene" /> + </MaterialFraction> + <MaterialFraction fraction="0.23995"> + <rMaterial name="trackermaterial:T_FR4" /> + </MaterialFraction> + <MaterialFraction fraction="0.03322"> + <rMaterial name="materials:BGA" /> + </MaterialFraction> + <MaterialFraction fraction="0.00214"> + <rMaterial name="materials:Nickel" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TEC_ICC2F" density="3.355*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.04734"> + <rMaterial name="materials:T_Kapton" /> + </MaterialFraction> + <MaterialFraction fraction="0.026"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + <MaterialFraction fraction="0.00012"> + <rMaterial name="materials:Gold" /> + </MaterialFraction> + <MaterialFraction fraction="0.04602"> + <rMaterial name="materials:Ceramic" /> + </MaterialFraction> + <MaterialFraction fraction="0.2773"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.03051"> + <rMaterial name="materials:Brass" /> + </MaterialFraction> + <MaterialFraction fraction="0.04987"> + <rMaterial name="materials:Peek" /> + </MaterialFraction> + <MaterialFraction fraction="0.1657"> + <rMaterial name="materials:Polyethylene" /> + </MaterialFraction> + <MaterialFraction fraction="0.3328"> + <rMaterial name="trackermaterial:T_FR4" /> + </MaterialFraction> + <MaterialFraction fraction="0.02211"> + <rMaterial name="materials:BGA" /> + </MaterialFraction> + <MaterialFraction fraction="0.00222"> + <rMaterial name="materials:Nickel" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TEC_ICC35F" density="3.200*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.01212"> + <rMaterial name="materials:T_Kapton" /> + </MaterialFraction> + <MaterialFraction fraction="0.00749"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + <MaterialFraction fraction="3e-05"> + <rMaterial name="materials:Gold" /> + </MaterialFraction> + <MaterialFraction fraction="0.0182"> + <rMaterial name="materials:Ceramic" /> + </MaterialFraction> + <MaterialFraction fraction="0.26402"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.00425"> + <rMaterial name="materials:Epoxy" /> + </MaterialFraction> + <MaterialFraction fraction="0.00879"> + <rMaterial name="materials:Brass" /> + </MaterialFraction> + <MaterialFraction fraction="0.01277"> + <rMaterial name="materials:Peek" /> + </MaterialFraction> + <MaterialFraction fraction="0.10676"> + <rMaterial name="materials:Polyethylene" /> + </MaterialFraction> + <MaterialFraction fraction="0.55519"> + <rMaterial name="trackermaterial:T_FR4" /> + </MaterialFraction> + <MaterialFraction fraction="0.00983"> + <rMaterial name="materials:BGA" /> + </MaterialFraction> + <MaterialFraction fraction="0.00057"> + <rMaterial name="materials:Nickel" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TEC_ICC1SF" density="2.183*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.03717"> + <rMaterial name="materials:T_Kapton" /> + </MaterialFraction> + <MaterialFraction fraction="0.02297"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + <MaterialFraction fraction="9e-05"> + <rMaterial name="materials:Gold" /> + </MaterialFraction> + <MaterialFraction fraction="0.0271"> + <rMaterial name="materials:Ceramic" /> + </MaterialFraction> + <MaterialFraction fraction="0.27509"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.02695"> + <rMaterial name="materials:Brass" /> + </MaterialFraction> + <MaterialFraction fraction="0.03916"> + <rMaterial name="materials:Peek" /> + </MaterialFraction> + <MaterialFraction fraction="0.09757"> + <rMaterial name="materials:Polyethylene" /> + </MaterialFraction> + <MaterialFraction fraction="0.45429"> + <rMaterial name="trackermaterial:T_FR4" /> + </MaterialFraction> + <MaterialFraction fraction="0.01787"> + <rMaterial name="materials:BGA" /> + </MaterialFraction> + <MaterialFraction fraction="0.00175"> + <rMaterial name="materials:Nickel" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TEC_ICC0F" density="3.343*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.05789"> + <rMaterial name="materials:T_Kapton" /> + </MaterialFraction> + <MaterialFraction fraction="0.02385"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + <MaterialFraction fraction="0.00014"> + <rMaterial name="materials:Gold" /> + </MaterialFraction> + <MaterialFraction fraction="0.04343"> + <rMaterial name="materials:Ceramic" /> + </MaterialFraction> + <MaterialFraction fraction="0.25615"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.02798"> + <rMaterial name="materials:Brass" /> + </MaterialFraction> + <MaterialFraction fraction="0.06098"> + <rMaterial name="materials:Peek" /> + </MaterialFraction> + <MaterialFraction fraction="0.19929"> + <rMaterial name="materials:Polyethylene" /> + </MaterialFraction> + <MaterialFraction fraction="0.30564"> + <rMaterial name="trackermaterial:T_FR4" /> + </MaterialFraction> + <MaterialFraction fraction="0.02194"> + <rMaterial name="materials:BGA" /> + </MaterialFraction> + <MaterialFraction fraction="0.00272"> + <rMaterial name="materials:Nickel" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TEC_ICC46F" density="2.865*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.04776"> + <rMaterial name="materials:T_Kapton" /> + </MaterialFraction> + <MaterialFraction fraction="0.00874"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + <MaterialFraction fraction="0.00012"> + <rMaterial name="materials:Gold" /> + </MaterialFraction> + <MaterialFraction fraction="0.03324"> + <rMaterial name="materials:Ceramic" /> + </MaterialFraction> + <MaterialFraction fraction="0.2646"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.01026"> + <rMaterial name="materials:Brass" /> + </MaterialFraction> + <MaterialFraction fraction="0.05032"> + <rMaterial name="materials:Peek" /> + </MaterialFraction> + <MaterialFraction fraction="0.14008"> + <rMaterial name="materials:Polyethylene" /> + </MaterialFraction> + <MaterialFraction fraction="0.42377"> + <rMaterial name="trackermaterial:T_FR4" /> + </MaterialFraction> + <MaterialFraction fraction="0.01886"> + <rMaterial name="materials:BGA" /> + </MaterialFraction> + <MaterialFraction fraction="0.00224"> + <rMaterial name="materials:Nickel" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TEC_ICC1B" density="2.115*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.02528"> + <rMaterial name="materials:T_Kapton" /> + </MaterialFraction> + <MaterialFraction fraction="0.02524"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + <MaterialFraction fraction="8e-05"> + <rMaterial name="materials:Gold" /> + </MaterialFraction> + <MaterialFraction fraction="0.03771"> + <rMaterial name="materials:Ceramic" /> + </MaterialFraction> + <MaterialFraction fraction="0.2752"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.02962"> + <rMaterial name="materials:Brass" /> + </MaterialFraction> + <MaterialFraction fraction="0.16436"> + <rMaterial name="materials:Polyethylene" /> + </MaterialFraction> + <MaterialFraction fraction="0.42028"> + <rMaterial name="trackermaterial:T_FR4" /> + </MaterialFraction> + <MaterialFraction fraction="0.02079"> + <rMaterial name="materials:BGA" /> + </MaterialFraction> + <MaterialFraction fraction="0.00144"> + <rMaterial name="materials:Nickel" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TEC_ICC35B" density="3.157*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.01025"> + <rMaterial name="materials:T_Kapton" /> + </MaterialFraction> + <MaterialFraction fraction="0.00704"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + <MaterialFraction fraction="3e-05"> + <rMaterial name="materials:Gold" /> + </MaterialFraction> + <MaterialFraction fraction="0.01871"> + <rMaterial name="materials:Ceramic" /> + </MaterialFraction> + <MaterialFraction fraction="0.26067"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.00428"> + <rMaterial name="materials:Epoxy" /> + </MaterialFraction> + <MaterialFraction fraction="0.00826"> + <rMaterial name="materials:Brass" /> + </MaterialFraction> + <MaterialFraction fraction="0.0108"> + <rMaterial name="materials:Peek" /> + </MaterialFraction> + <MaterialFraction fraction="0.11119"> + <rMaterial name="materials:Polyethylene" /> + </MaterialFraction> + <MaterialFraction fraction="0.55824"> + <rMaterial name="trackermaterial:T_FR4" /> + </MaterialFraction> + <MaterialFraction fraction="0.01005"> + <rMaterial name="materials:BGA" /> + </MaterialFraction> + <MaterialFraction fraction="0.00048"> + <rMaterial name="materials:Nickel" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TEC_ICC0LB" density="2.916*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.04027"> + <rMaterial name="materials:T_Kapton" /> + </MaterialFraction> + <MaterialFraction fraction="0.03318"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + <MaterialFraction fraction="0.0001"> + <rMaterial name="materials:Gold" /> + </MaterialFraction> + <MaterialFraction fraction="0.04808"> + <rMaterial name="materials:Ceramic" /> + </MaterialFraction> + <MaterialFraction fraction="0.2504"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.03892"> + <rMaterial name="materials:Brass" /> + </MaterialFraction> + <MaterialFraction fraction="0.04242"> + <rMaterial name="materials:Peek" /> + </MaterialFraction> + <MaterialFraction fraction="0.17716"> + <rMaterial name="materials:Polyethylene" /> + </MaterialFraction> + <MaterialFraction fraction="0.3454"> + <rMaterial name="trackermaterial:T_FR4" /> + </MaterialFraction> + <MaterialFraction fraction="0.02218"> + <rMaterial name="materials:BGA" /> + </MaterialFraction> + <MaterialFraction fraction="0.00189"> + <rMaterial name="materials:Nickel" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TEC_ICC2B" density="2.868*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.03474"> + <rMaterial name="materials:T_Kapton" /> + </MaterialFraction> + <MaterialFraction fraction="0.02862"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + <MaterialFraction fraction="9e-05"> + <rMaterial name="materials:Gold" /> + </MaterialFraction> + <MaterialFraction fraction="0.04148"> + <rMaterial name="materials:Ceramic" /> + </MaterialFraction> + <MaterialFraction fraction="0.23894"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.03358"> + <rMaterial name="materials:Brass" /> + </MaterialFraction> + <MaterialFraction fraction="0.03659"> + <rMaterial name="materials:Peek" /> + </MaterialFraction> + <MaterialFraction fraction="0.15283"> + <rMaterial name="materials:Polyethylene" /> + </MaterialFraction> + <MaterialFraction fraction="0.41232"> + <rMaterial name="trackermaterial:T_FR4" /> + </MaterialFraction> + <MaterialFraction fraction="0.01918"> + <rMaterial name="materials:BGA" /> + </MaterialFraction> + <MaterialFraction fraction="0.00163"> + <rMaterial name="materials:Nickel" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TEC_ICC46B" density="3.096*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.04246"> + <rMaterial name="materials:T_Kapton" /> + </MaterialFraction> + <MaterialFraction fraction="0.01272"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + <MaterialFraction fraction="0.0001"> + <rMaterial name="materials:Gold" /> + </MaterialFraction> + <MaterialFraction fraction="0.03072"> + <rMaterial name="materials:Ceramic" /> + </MaterialFraction> + <MaterialFraction fraction="0.238"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.01492"> + <rMaterial name="materials:Brass" /> + </MaterialFraction> + <MaterialFraction fraction="0.04473"> + <rMaterial name="materials:Peek" /> + </MaterialFraction> + <MaterialFraction fraction="0.12221"> + <rMaterial name="materials:Polyethylene" /> + </MaterialFraction> + <MaterialFraction fraction="0.47552"> + <rMaterial name="trackermaterial:T_FR4" /> + </MaterialFraction> + <MaterialFraction fraction="0.01664"> + <rMaterial name="materials:BGA" /> + </MaterialFraction> + <MaterialFraction fraction="0.002"> + <rMaterial name="materials:Nickel" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TEC_InnerManifold" density="3.698*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.16543"> + <rMaterial name="trackermaterial:T_C6F14_F2_-30C" /> + </MaterialFraction> + <MaterialFraction fraction="0.83457"> + <rMaterial name="materials:Titanium" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TEC_CCUM" density="4.762*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.27951"> + <rMaterial name="materials:Epoxy" /> + </MaterialFraction> + <MaterialFraction fraction="0.0881"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.55723"> + <rMaterial name="trackermaterial:T_FR4" /> + </MaterialFraction> + <MaterialFraction fraction="0.07516"> + <rMaterial name="materials:BGA" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TEC_ServChan" density="3.182*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.01852"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + <MaterialFraction fraction="0.88755"> + <rMaterial name="trackermaterial:Fibre_Ribbon" /> + </MaterialFraction> + <MaterialFraction fraction="0.09393"> + <rMaterial name="trackermaterial:T_CarbonFibreStr" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TEC_ServChanIns" density="0.943*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="1.0"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TEC_AxGrounding" density="2.127*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.20529"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.79471"> + <rMaterial name="trackermaterial:T_CarbonFibreStr" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TEC_CoolPipe" density="9.274*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="1.0"> + <rMaterial name="materials:Steel-008" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TEC_AxCable" density="0.957*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.03995"> + <rMaterial name="trackermaterial:MS_cntrl_cable" /> + </MaterialFraction> + <MaterialFraction fraction="0.32482"> + <rMaterial name="trackermaterial:CAB_Al48" /> + </MaterialFraction> + <MaterialFraction fraction="0.34061"> + <rMaterial name="trackermaterial:CAB_Al36" /> + </MaterialFraction> + <MaterialFraction fraction="0.29462"> + <rMaterial name="trackermaterial:CAB_Al60" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TEC_GasPipe" density="2.937*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.04053"> + <rMaterial name="materials:Steel-008" /> + </MaterialFraction> + <MaterialFraction fraction="0.95947"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TEC_PhiCableL" density="0.453*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.19421"> + <rMaterial name="trackermaterial:CAB_Al48" /> + </MaterialFraction> + <MaterialFraction fraction="0.06174"> + <rMaterial name="trackermaterial:MS_cntrl_cable" /> + </MaterialFraction> + <MaterialFraction fraction="0.20367"> + <rMaterial name="trackermaterial:CAB_Al36" /> + </MaterialFraction> + <MaterialFraction fraction="0.19221"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.06638"> + <rMaterial name="materials:Tin" /> + </MaterialFraction> + <MaterialFraction fraction="0.17603"> + <rMaterial name="trackermaterial:CAB_Al60" /> + </MaterialFraction> + <MaterialFraction fraction="0.10576"> + <rMaterial name="materials:Epoxy" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TEC_PhiCableU" density="0.755*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.1898"> + <rMaterial name="trackermaterial:CAB_Al48" /> + </MaterialFraction> + <MaterialFraction fraction="0.06692"> + <rMaterial name="trackermaterial:MS_cntrl_cable" /> + </MaterialFraction> + <MaterialFraction fraction="0.1852"> + <rMaterial name="trackermaterial:CAB_Al36" /> + </MaterialFraction> + <MaterialFraction fraction="0.20844"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.07162"> + <rMaterial name="materials:Tin" /> + </MaterialFraction> + <MaterialFraction fraction="0.20623"> + <rMaterial name="trackermaterial:CAB_Al60" /> + </MaterialFraction> + <MaterialFraction fraction="0.07178"> + <rMaterial name="materials:Epoxy" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TEC_GroundingRing" density="23.139*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.2285"> + <rMaterial name="materials:T_Kapton" /> + </MaterialFraction> + <MaterialFraction fraction="0.7715"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TEC_Skin" density="1.352*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.18681"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + <MaterialFraction fraction="0.81319"> + <rMaterial name="trackermaterial:T_CarbonFibreStr" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TEC_OptoCon" density="0.321*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.50304"> + <rMaterial name="materials:Steel-008" /> + </MaterialFraction> + <MaterialFraction fraction="0.48126"> + <rMaterial name="trackermaterial:T_Ribbon12xMUConn" /> + </MaterialFraction> + <MaterialFraction fraction="0.00623"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + <MaterialFraction fraction="0.00948"> + <rMaterial name="trackermaterial:T_CarbonFibreStr" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TEC_Rails" density="2.211*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="1.0"> + <rMaterial name="trackermaterial:T_CarbonFibreStr" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TEC_BackDiskCF" density="2.984*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="1.0"> + <rMaterial name="trackermaterial:T_CarbonFibreStr" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TEC_ThermalShield" density="0.166*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.00385"> + <rMaterial name="materials:Polyethylene" /> + </MaterialFraction> + <MaterialFraction fraction="0.0037"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.22782"> + <rMaterial name="tecmaterial:TEC_Nomex" /> + </MaterialFraction> + <MaterialFraction fraction="0.01799"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + <MaterialFraction fraction="0.74664"> + <rMaterial name="trackermaterial:T_CarbonFibreStr" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TEC_CircPipe" density="0.763*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.13141"> + <rMaterial name="trackermaterial:CAB_Al48" /> + </MaterialFraction> + <MaterialFraction fraction="0.15522"> + <rMaterial name="trackermaterial:MS_cntrl_cable" /> + </MaterialFraction> + <MaterialFraction fraction="0.13783"> + <rMaterial name="trackermaterial:CAB_Al36" /> + </MaterialFraction> + <MaterialFraction fraction="0.41593"> + <rMaterial name="materials:Steel-008" /> + </MaterialFraction> + <MaterialFraction fraction="0.11923"> + <rMaterial name="trackermaterial:CAB_Al60" /> + </MaterialFraction> + <MaterialFraction fraction="0.04038"> + <rMaterial name="materials:Brass" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TEC_BHDisk" density="1.556*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.00661"> + <rMaterial name="materials:Epoxy" /> + </MaterialFraction> + <MaterialFraction fraction="0.00467"> + <rMaterial name="materials:Steel-008" /> + </MaterialFraction> + <MaterialFraction fraction="0.01234"> + <rMaterial name="trackermaterial:T_Nomex" /> + </MaterialFraction> + <MaterialFraction fraction="0.03247"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.94391"> + <rMaterial name="trackermaterial:T_CarbonFibreStr" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TEC_BHCovers" density="1.834*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.05206"> + <rMaterial name="materials:T_Kapton" /> + </MaterialFraction> + <MaterialFraction fraction="0.11002"> + <rMaterial name="materials:Nickel" /> + </MaterialFraction> + <MaterialFraction fraction="0.83792"> + <rMaterial name="trackermaterial:T_CarbonFibreStr" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial density="2.669*0.79*g/cm3" method="mixture by weight" name="TEC_PatchpanelBox" symbol=" "> + <MaterialFraction fraction="0.01151"> + <rMaterial name="trackermaterial:CAB_Al48" /> + </MaterialFraction> + <MaterialFraction fraction="0.19806"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + <MaterialFraction fraction="0.01207"> + <rMaterial name="trackermaterial:CAB_Al36" /> + </MaterialFraction> + <MaterialFraction fraction="0.7577"> + <rMaterial name="trackermaterial:MS_Cu60" /> + </MaterialFraction> + <MaterialFraction fraction="0.00372"> + <rMaterial name="materials:Steel-008" /> + </MaterialFraction> + <MaterialFraction fraction="0.01044"> + <rMaterial name="trackermaterial:CAB_Al60" /> + </MaterialFraction> + <MaterialFraction fraction="0.0065"> + <rMaterial name="trackermaterial:T_CarbonFibreStr" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TEC_Connectors" density="2.669*1.21*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.01151"> + <rMaterial name="trackermaterial:CAB_Al48" /> + </MaterialFraction> + <MaterialFraction fraction="0.19806"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + <MaterialFraction fraction="0.01207"> + <rMaterial name="trackermaterial:CAB_Al36" /> + </MaterialFraction> + <MaterialFraction fraction="0.7577"> + <rMaterial name="trackermaterial:MS_Cu60" /> + </MaterialFraction> + <MaterialFraction fraction="0.00372"> + <rMaterial name="materials:Steel-008" /> + </MaterialFraction> + <MaterialFraction fraction="0.01044"> + <rMaterial name="trackermaterial:CAB_Al60" /> + </MaterialFraction> + <MaterialFraction fraction="0.0065"> + <rMaterial name="trackermaterial:T_CarbonFibreStr" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TEC_PatchCtrlBox" density="1.382*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.00445"> + <rMaterial name="trackermaterial:MS_cntrl_cable" /> + </MaterialFraction> + <MaterialFraction fraction="0.8749"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + <MaterialFraction fraction="0.12065"> + <rMaterial name="trackermaterial:Fibre_Ribbon" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TEC_AlignRing" density="0.534*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.16497"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + <MaterialFraction fraction="0.0189"> + <rMaterial name="materials:Titanium" /> + </MaterialFraction> + <MaterialFraction fraction="0.00284"> + <rMaterial name="materials:Silicon" /> + </MaterialFraction> + <MaterialFraction fraction="0.04474"> + <rMaterial name="materials:Epoxy" /> + </MaterialFraction> + <MaterialFraction fraction="0.00378"> + <rMaterial name="trackermaterial:T_FR4" /> + </MaterialFraction> + <MaterialFraction fraction="0.76478"> + <rMaterial name="trackermaterial:T_CarbonFibreStr" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="Tk_SO_FC_C" density="0.178*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.13847"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + <MaterialFraction fraction="0.00404"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.15144"> + <rMaterial name="tecmaterial:TEC_Nomex" /> + </MaterialFraction> + <MaterialFraction fraction="0.70605"> + <rMaterial name="trackermaterial:T_CarbonFibreStr" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TEC_wheel_Nomex" density="0.038*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="1.0"> + <rMaterial name="trackermaterial:T_Nomex" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TEC_wheel_CF" density="1.269*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="1.0"> + <rMaterial name="trackermaterial:T_CarbonFibreStr" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TEC_wheel6_Nomex" density="0.024*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="1.0"> + <rMaterial name="trackermaterial:T_Nomex" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TEC_wheel6_CF" density="1.627*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="1.0"> + <rMaterial name="trackermaterial:T_CarbonFibreStr" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TEC_wheelinsert" density="1.353*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="1.0"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TEC_Fixframe" density="1.372*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="1.0"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TEC_FixServ" density="3.050*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.14267"> + <rMaterial name="materials:Steel-008" /> + </MaterialFraction> + <MaterialFraction fraction="0.85733"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TEC_AlignHolder" density="0.559*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="1.0"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TEC_CraneBracket" density="2.021*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="1.0"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TEC_Beamsplitter" density="1.207*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.04703"> + <rMaterial name="materials:Silica" /> + </MaterialFraction> + <MaterialFraction fraction="0.87717"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + <MaterialFraction fraction="0.0758"> + <rMaterial name="materials:Steel-008" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TEC_RailsConnector" density="6.305*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.10736"> + <rMaterial name="materials:Steel-008" /> + </MaterialFraction> + <MaterialFraction fraction="0.89264"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TEC_RailsSupport" density="2.843*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.00641"> + <rMaterial name="materials:Polyethylene" /> + </MaterialFraction> + <MaterialFraction fraction="0.08031"> + <rMaterial name="materials:Steel-008" /> + </MaterialFraction> + <MaterialFraction fraction="0.00221"> + <rMaterial name="materials:Brass" /> + </MaterialFraction> + <MaterialFraction fraction="0.91107"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TEC_Tiltmeter" density="0.659*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.24222"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + <MaterialFraction fraction="0.00433"> + <rMaterial name="materials:Titanium" /> + </MaterialFraction> + <MaterialFraction fraction="0.00433"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.61421"> + <rMaterial name="materials:Epoxy" /> + </MaterialFraction> + <MaterialFraction fraction="0.00433"> + <rMaterial name="materials:Polyethylene" /> + </MaterialFraction> + <MaterialFraction fraction="0.0519"> + <rMaterial name="trackermaterial:T_FR4" /> + </MaterialFraction> + <MaterialFraction fraction="0.07869"> + <rMaterial name="trackermaterial:T_CarbonFibreStr" /> + </MaterialFraction> + </CompositeMaterial> + </MaterialSection> +</DDDefinition> diff --git a/examples/DDCMS/data/tecmodpar.xml b/examples/DDCMS/data/tecmodpar.xml new file mode 100644 index 0000000000000000000000000000000000000000..33eec4756a11ac5e0678b1167f2da242ae91edb6 --- /dev/null +++ b/examples/DDCMS/data/tecmodpar.xml @@ -0,0 +1,48 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tecmodpar.xml" eval="true"> + <Constant name="ModuleThick" value="1.55*mm"/> + <Constant name="DetTilt" value="0.100*rad"/> + <Constant name="FrameWidth" value="1.200*cm"/> + <Constant name="FrameOver" value="0.300*cm"/> + <!-- the TopFrameHeight -Parameter should be replaced by local values!!! + It is used to POSITION(!) the wafer the name is missleading and kept for + compatibility--> + <Constant name="TopFrameHeight" value="3.720*cm"/> + <Constant name="TopFrameThick" value="0.764*mm"/> + <Constant name="TopFrameZ" value="0.275*mm"/> + <Constant name="SideFrameThick" value="0.764*mm"/> + <Constant name="SideFrameZ" value="0.025*mm"/> + <Constant name="WaferThick1" value="0.320*mm"/> + <Constant name="WaferThick2" value="0.500*mm"/> + <Constant name="ActiveZ1" value="-0.606*mm"/> + <Constant name="ActiveZ2" value="-0.525*mm"/> + <Constant name="HybridHeight" value="2.526*cm"/> + <Constant name="HybridWidth" value="6.520*cm"/> + <Constant name="HybridThick" value="0.680*mm"/> + <Constant name="HybridZ" value="-0.525*mm"/> + <Constant name="PitchHeight" value="13.0*mm"/> + <Constant name="PitchStereoHeight" value="14.35*mm"/> + <Constant name="PitchThick" value="0.6650*mm"/> + <Constant name="PitchZ" value="-1.1075*mm"/> + <Constant name="GapModule" value="0.500*mm"/> + <Constant name="ModuleThickSS" value="[ModuleThick]+[SideFrameThick]"/> + <Constant name="ModuleThickDS" value="(2*[ModuleThick]+[GapModule])"/> + <Constant name="SiFrSuppBoxThick" value="0.258*mm"/> + <Constant name="SiReenforcementThick" value="0.387*mm"/> + <Constant name="NoOverlapShift" value="0.0*mm"/> + <Constant name="InactiveDy" value="1.50*mm"/> + </ConstantsSection> + <RotationSection label="tecmodpar.xml"> + <Rotation name="90ZD" thetaX="-90*deg" phiX="0*deg" thetaY="0*deg" phiY="0*deg" thetaZ="90*deg" phiZ="90*deg"/> + <Rotation name="9NYX" thetaX="0*deg" phiX="0*deg" thetaY="90*deg" phiY="90*deg" thetaZ="-90*deg" phiZ="0*deg"/> + <Rotation name="G100" thetaX="84.2704*deg" phiX="180*deg" thetaY="90*deg" phiY="-90*deg" thetaZ="5.7296*deg" phiZ="0*deg"/> + <Rotation name="R180" thetaX="90*deg" phiX="180*deg" thetaY="90*deg" phiY="-90*deg" thetaZ="0*deg" phiZ="0*deg"/> + <Rotation name="AR05" thetaX="-90*deg" phiX="0*deg" thetaY="180*deg" phiY="180*deg" thetaZ="90*deg" phiZ="270*deg"/> + <Rotation name="ART6" thetaX="90*deg" phiX="0*deg" thetaY="0*deg" phiY="0*deg" thetaZ="90*deg" phiZ="270*deg"/> + <Rotation name="RPHI" thetaX="90*deg" phiX="90*deg" thetaY="0*deg" phiY="0*deg" thetaZ="90*deg" phiZ="0*deg"/> + <Rotation name="STER" thetaX="90*deg" phiX="-84.2704*deg" thetaY="180*deg" phiY="0*deg" thetaZ="90*deg" phiZ="5.7296*deg"/> + <Rotation name="RFI2" thetaX="90*deg" phiX="-90*deg" thetaY="180*deg" phiY="0*deg" thetaZ="90*deg" phiZ="0*deg"/> + <Rotation name="PITC" thetaX="90*deg" phiX="0*deg" thetaY="0*deg" phiY="0*deg" thetaZ="90*deg" phiZ="-90*deg"/> + </RotationSection> +</DDDefinition> diff --git a/examples/DDCMS/data/tecmodule0.xml b/examples/DDCMS/data/tecmodule0.xml new file mode 100644 index 0000000000000000000000000000000000000000..47b24c30281437bb1f1c6ae9d8fd2f564e5af86c --- /dev/null +++ b/examples/DDCMS/data/tecmodule0.xml @@ -0,0 +1,37 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tecmodule0.xml" eval="true"> + <Constant name="Rin" value="23.08*cm"/> + <Constant name="Rout" value="36.65*cm"/> + <Constant name="FullHeight" value="8.7236000*cm"/> + <Constant name="ActiveHeight" value="8.5160000*cm"/> + <Constant name="DlTop" value="8.7914000*cm"/> + <Constant name="DlBottom" value="6.4610000*cm"/> + <Constant name="SideWidthTop" value="0.1093380*cm"/> + <Constant name="SideWidthBottom" value="0.0839200*cm"/> + <Constant name="ActiveZ" value="([tecmodpar:ActiveZ1]+[ShiftZ])"/> + <Constant name="DlHybrid" value="9.749*cm"/> + <Constant name="BridgeWidth" value="2.350*cm"/> + <Constant name="BridgeThick" value="0.194*cm"/> + <Constant name="BridgeHeight" value="1.3*cm"/> + <Constant name="BridgeSeparation" value="4.856*cm"/> + <Constant name="ModuleThick" value="[tecmodpar:ModuleThickDS]"/> + <Constant name="ShiftZ" value="-([tecmodpar:ModuleThick]+[tecmodpar:GapModule])/2"/> + <Constant name="HybridZ" value="[ActiveZ]+ 0.5*(-[tecmodpar:WaferThick1] + [tecmodpar:HybridThick])"/> + <Constant name="TopFrameZ" value="[HybridZ]+ 0.5*([tecmodpar:HybridThick]+[tecmodpar:TopFrameThick])"/> + <Constant name="SideFrameZ" value="[TopFrameZ]+0.5*(-[tecmodpar:TopFrameThick]+[tecmodpar:SideFrameThick])"/> + <Constant name="PitchZ" value="[TopFrameZ] - 0.5*([tecmodpar:TopFrameThick] + [tecmodpar:PitchThick])"/> + <Constant name="PitchWidth" value="87.8*mm"/> + <Constant name="TopFrameBotWidth" value="109.0*mm"/> + <Constant name="dPhi" value="2.2*asin(0.5*[TopFrameBotWidth]/([Rin]+[FullHeight]))"/> + </ConstantsSection> + <SolidSection label="tecmodule0.xml"> + <Tubs name="TECModule0" rMin="[Rin]" rMax="[Rout]" dz="0.5*[tecmodpar:ModuleThickDS]" startPhi="-[dPhi]/2" deltaPhi="[dPhi]"/> + </SolidSection> + <LogicalPartSection label="tecmodule0.xml"> + <LogicalPart name="TECModule0" category="unspecified"> + <rSolid name="tecmodule0:TECModule0"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + </LogicalPartSection> +</DDDefinition> diff --git a/examples/DDCMS/data/tecmodule0r.xml b/examples/DDCMS/data/tecmodule0r.xml new file mode 100644 index 0000000000000000000000000000000000000000..8a8123e21361390d79a0cbf5ffe15cfc2c78b267 --- /dev/null +++ b/examples/DDCMS/data/tecmodule0r.xml @@ -0,0 +1,93 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tecmodule0r.xml" eval="true"> + <Constant name="isStereo" value="0"/> + <Constant name="TopFrameTopWidth" value="84.6*mm"/> + <Constant name="TopFrameBotWidth" value="[tecmodule0:TopFrameBotWidth]"/> + <Constant name="TopFrameHeight" value="35.7*mm"/> + <Constant name="SideFrameRtheta" value=" 0.133*rad"/> + <Constant name="SideFrameRHeight" value="93.1*mm"/> + <Constant name="SideFrameRWidth" value="14.2*mm"/> + <Constant name="SideFrameLtheta" value="-.134*rad"/> + <Constant name="SideFrameLHeight" value="97.6*mm"/> + <Constant name="SideFrameLWidth" value="15.4*mm"/> + <Constant name="PosCorrectionR" value="-2.388*mm"/> + </ConstantsSection> + <Algorithm name="track:DDTECModuleAlgo"> + <rParent name="tecmodule0:TECModule0"/> + <Numeric name="RingNo" value="0"/> + <Numeric name="isStereo" value="[isStereo]"/> + <String name="GeneralMaterial" value="materials:Air"/> + <Numeric name="ModuleThick" value="[tecmodpar:ModuleThick]"/> + <Numeric name="DetTilt" value="[tecmodpar:DetTilt]"/> + <Numeric name="FullHeight" value="[tecmodule0:FullHeight]"/> + <Numeric name="DlTop" value="[tecmodule0:DlTop]"/> + <Numeric name="DlBottom" value="[tecmodule0:DlBottom]"/> + <Numeric name="DlHybrid" value="[tecmodule0:DlHybrid]"/> + <String name="ActiveRotation" value="tecmodpar:AR05"/> + <Numeric name="FrameWidth" value="[tecmodpar:FrameWidth]"/> + <Numeric name="FrameThick" value="[tecmodule0:ModuleThick]"/> + <Numeric name="FrameOver" value="[tecmodpar:FrameOver]"/> + <String name="TopFrameMaterial" value="tecmaterial:TEC_frame_top"/> + <Numeric name="TopFrameTopWidth" value="[TopFrameTopWidth]"/> + <Numeric name="TopFrameBotWidth" value="[TopFrameBotWidth]"/> + <Numeric name="TopFrameHeight" value="[TopFrameHeight]"/> + <Numeric name="TopFrameThick" value="[tecmodpar:TopFrameThick]"/> + <Numeric name="TopFrameZ" value="[tecmodule0:TopFrameZ]"/> + <String name="SideFrameMaterial" value="tecmaterial:TEC_frame_side_1_4"/> + <Numeric name="SideFrameThick" value="[tecmodpar:SideFrameThick]"/> + <String name="SiFrSuppBoxMaterial" value="tecmaterial:TEC_SideFrSupBox"/> + <Numeric name="SideFrameRtheta" value="[SideFrameRtheta]"/> + <Numeric name="SideFrameRHeight" value="[SideFrameRHeight]"/> + <Numeric name="SideFrameRWidth" value="[SideFrameRWidth]"/> + <Numeric name="SideFrameLtheta" value="[SideFrameLtheta]"/> + <Numeric name="SideFrameLHeight" value="[SideFrameLHeight]"/> + <Numeric name="SideFrameLWidth" value="[SideFrameLWidth]"/> + <Numeric name="SiFrSuppBoxThick" value="[tecmodpar:SiFrSuppBoxThick]"/> + <Vector name="SiFrSuppBoxYPos" type="numeric" nEntries="1"> + 43.6*mm </Vector> + <Vector name="SiFrSuppBoxHeight" type="numeric" nEntries="1"> + 30.1*mm </Vector> + <Vector name="SiFrSuppBoxWidth" type="numeric" nEntries="1"> + 15.8*mm </Vector> + <Numeric name="SideFrameZ" value="[tecmodule0:SideFrameZ]"/> + <String name="WaferMaterial" value="materials:Silicon"/> + <Numeric name="SideWidthTop" value="[tecmodule0:SideWidthTop]"/> + <Numeric name="SideWidthBottom" value="[tecmodule0:SideWidthBottom]"/> + <String name="WaferRotation" value="tecmodpar:RPHI"/> + <String name="ActiveMaterial" value="materials:Silicon"/> + <Numeric name="ActiveHeight" value="[tecmodule0:ActiveHeight]"/> + <Numeric name="WaferThick" value="[tecmodpar:WaferThick1]"/> + <String name="ActiveRotation" value="tecmodpar:AR05"/> + <Numeric name="ActiveZ" value="[tecmodule0:ActiveZ]"/> + <Numeric name="BackPlaneThick" value="2*[tracker:BackPlaneDz]"/> + <String name="HybridMaterial" value="tecmaterial:TEC_Hybrid6APV"/> + <Numeric name="HybridHeight" value="[tecmodpar:HybridHeight]"/> + <Numeric name="HybridWidth" value="[tecmodpar:HybridWidth]"/> + <Numeric name="HybridThick" value="[tecmodpar:HybridThick]"/> + <Numeric name="HybridZ" value="[tecmodule0:HybridZ]"/> + <String name="PitchMaterial" value="tecmaterial:TEC_PitchAdapter"/> + <Numeric name="PitchHeight" value="[tecmodpar:PitchHeight]"/> + <Numeric name="PitchThick" value="[tecmodpar:PitchThick]"/> + <Numeric name="PitchWidth" value="[tecmodule0:PitchWidth]"/> + <Numeric name="PitchZ" value="[tecmodule0:PitchZ]"/> + <String name="PitchRotation" value="tecmodpar:PITC"/> + <Numeric name="BridgeWidth" value="[tecmodule0:BridgeWidth]"/> + <Numeric name="BridgeThick" value="[tecmodule0:BridgeThick]"/> + <Numeric name="BridgeHeight" value="[tecmodule0:BridgeHeight]"/> + <Numeric name="BridgeSeparation" value="[tecmodule0:BridgeSeparation]"/> + <String name="BridgeMaterial" value="trackermaterial:T_Aluminium"/> + <Numeric name="WaferPosition" value="[tecmodpar:TopFrameHeight]"/> + <Vector name="SiReenforcementHeight" type="numeric" nEntries="1"> + 4.5*mm </Vector> + <Vector name="SiReenforcementWidth" type="numeric" nEntries="1"> + 74.0*mm </Vector> + <Vector name="SiReenforcementPosY" type="numeric" nEntries="1"> + 0.0001*mm </Vector> + <String name="SiReenforcementMaterial" value="tecmaterial:TEC_SiReenforcment"/> + <Numeric name="SiReenforcementThick" value="[tecmodpar:SiReenforcementThick]"/> + <Numeric name="NoOverlapShift" value="[tecmodpar:NoOverlapShift]"/> + <Numeric name="RPos" value="0.5*([tecmodule0:Rin]+[tecmodule0:Rout])+[PosCorrectionR]"/> + <String name="StandardRotation" value="tecmodpar:RPHI"/> + </Algorithm> +</DDDefinition> diff --git a/examples/DDCMS/data/tecmodule0s.xml b/examples/DDCMS/data/tecmodule0s.xml new file mode 100644 index 0000000000000000000000000000000000000000..f6e1dbb86d94daa3e1c3f093ffdcbcbc1b3bcf45 --- /dev/null +++ b/examples/DDCMS/data/tecmodule0s.xml @@ -0,0 +1,105 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tecmodule0s.xml" eval="true"> + <Constant name="isStereo" value="1"/> + <Constant name="TopFrameTopWidth" value="76.8*mm"/> + <Constant name="TopFrameBotWidth" value="111.0*mm"/> + <Constant name="TopFrameHeight" value="29.1*mm"/> + <Constant name="TopFrame2Width" value="111.0*mm"/> + <Constant name="TopFrame2LHeight" value="12.8*mm"/> + <Constant name="TopFrame2RHeight" value="1.8*mm"/> + <Constant name="SideFrameRtheta" value="0.172*rad"/> + <Constant name="SideFrameRHeight" value="92.8*mm"/> + <Constant name="SideFrameRWidthLow" value="10.1*mm"/> + <Constant name="SideFrameRWidth" value="21.5*mm"/> + <Constant name="SideFrameLtheta" value="-0.089*rad"/> + <Constant name="SideFrameLHeight" value="95.8*mm"/> + <Constant name="SideFrameLWidthLow" value="21.3*mm"/> + <Constant name="SideFrameLWidth" value="11.5*mm"/> + <Constant name="PosCorrectionR" value="-2.3878*mm"/> + <Constant name="PosCorrectionPhi" value="0.0000345*rad"/> + </ConstantsSection> + <Algorithm name="track:DDTECModuleAlgo"> + <rParent name="tecmodule0:TECModule0"/> + <Numeric name="RingNo" value="0"/> + <Numeric name="isStereo" value="[isStereo]"/> + <String name="GeneralMaterial" value="materials:Air"/> + <Numeric name="ModuleThick" value="[tecmodpar:ModuleThick]"/> + <Numeric name="DetTilt" value="[tecmodpar:DetTilt]"/> + <Numeric name="FullHeight" value="[tecmodule0:FullHeight]"/> + <Numeric name="DlTop" value="[tecmodule0:DlTop]"/> + <Numeric name="DlBottom" value="[tecmodule0:DlBottom]"/> + <Numeric name="DlHybrid" value="[tecmodule0:DlHybrid]"/> + <Numeric name="FrameWidth" value="[tecmodpar:FrameWidth]"/> + <Numeric name="FrameThick" value="[tecmodule0:ModuleThick]"/> + <Numeric name="FrameOver" value="[tecmodpar:FrameOver]"/> + <String name="TopFrameMaterial" value="tecmaterial:TEC_frame_top"/> + <Numeric name="TopFrameTopWidth" value="[TopFrameTopWidth]"/> + <Numeric name="TopFrameBotWidth" value="[TopFrameBotWidth]"/> + <Numeric name="TopFrameHeight" value="[TopFrameHeight]"/> + <Numeric name="TopFrame2Width" value="[TopFrame2Width]"/> + <Numeric name="TopFrame2LHeight" value="[TopFrame2LHeight]"/> + <Numeric name="TopFrame2RHeight" value="[TopFrame2RHeight]"/> + <Numeric name="TopFrameThick" value="[tecmodpar:TopFrameThick]"/> + <Numeric name="TopFrameZ" value="-[tecmodule0:TopFrameZ]"/> + <String name="SideFrameMaterial" value="tecmaterial:TEC_frame_side_1_4"/> + <Numeric name="SideFrameThick" value="[tecmodpar:SideFrameThick]"/> + <String name="SiFrSuppBoxMaterial" value="tecmaterial:TEC_SideFrSupBox"/> + <Numeric name="SideFrameRtheta" value="[SideFrameRtheta]"/> + <Numeric name="SideFrameRHeight" value="[SideFrameRHeight]"/> + <Numeric name="SideFrameRWidthLow" value="[SideFrameRWidthLow]"/> + <Numeric name="SideFrameRWidth" value="[SideFrameRWidth]"/> + <Numeric name="SideFrameLtheta" value="[SideFrameLtheta]"/> + <Numeric name="SideFrameLHeight" value="[SideFrameLHeight]"/> + <Numeric name="SideFrameLWidthLow" value="[SideFrameLWidthLow]"/> + <Numeric name="SideFrameLWidth" value="[SideFrameLWidth]"/> + <Numeric name="SiFrSuppBoxThick" value="[tecmodpar:SiFrSuppBoxThick]"/> + <Vector name="SiFrSuppBoxYPos" type="numeric" nEntries="1"> + 48.4*mm </Vector> + <Vector name="SiFrSuppBoxHeight" type="numeric" nEntries="1"> + 28.9*mm </Vector> + <Vector name="SiFrSuppBoxWidth" type="numeric" nEntries="1"> + 14.8*mm </Vector> + <Numeric name="SideFrameZ" value="-[tecmodule0:SideFrameZ]"/> + <String name="WaferMaterial" value="materials:Silicon"/> + <Numeric name="SideWidthTop" value="[tecmodule0:SideWidthTop]"/> + <Numeric name="SideWidthBottom" value="[tecmodule0:SideWidthBottom]"/> + <String name="WaferRotation" value="tecmodpar:STER"/> + <String name="ActiveMaterial" value="materials:Silicon"/> + <Numeric name="ActiveHeight" value="[tecmodule0:ActiveHeight]"/> + <Numeric name="WaferThick" value="[tecmodpar:WaferThick1]"/> + <String name="ActiveRotation" value="tecmodpar:AR05"/> + <Numeric name="ActiveZ" value="-[tecmodule0:ActiveZ]"/> + <Numeric name="BackPlaneThick" value="2*[tracker:BackPlaneDz]"/> + <String name="HybridMaterial" value="tecmaterial:TEC_Hybrid6APV"/> + <Numeric name="HybridHeight" value="[tecmodpar:HybridHeight]"/> + <Numeric name="HybridWidth" value="[tecmodpar:HybridWidth]"/> + <Numeric name="HybridThick" value="[tecmodpar:HybridThick]"/> + <Numeric name="HybridZ" value="-[tecmodule0:HybridZ]"/> + <String name="PitchMaterial" value="tecmaterial:TEC_PitchAdapter"/> + <Numeric name="PitchHeight" value="[tecmodpar:PitchStereoHeight]"/> + <Numeric name="PitchThick" value="[tecmodpar:PitchThick]"/> + <Numeric name="PitchWidth" value="[tecmodule0:PitchWidth]"/> + <Numeric name="PitchZ" value="-[tecmodule0:PitchZ]"/> + <String name="PitchRotation" value="tecmodpar:PITC"/> + <Numeric name="BridgeWidth" value="[tecmodule0:BridgeWidth]"/> + <Numeric name="BridgeThick" value="[tecmodule0:BridgeThick]"/> + <Numeric name="BridgeHeight" value="[tecmodule0:BridgeHeight]"/> + <Numeric name="BridgeSeparation" value="[tecmodule0:BridgeSeparation]"/> + <String name="BridgeMaterial" value="None"/> + <Numeric name="WaferPosition" value="[tecmodpar:TopFrameHeight]"/> + <Vector name="SiReenforcementHeight" type="numeric" nEntries="1"> + 4.7*mm </Vector> + <Vector name="SiReenforcementWidth" type="numeric" nEntries="1"> + 70.0*mm </Vector> + <Vector name="SiReenforcementPosY" type="numeric" nEntries="1"> + 2*mm </Vector> + <!-- they to be placed right! (are not due to problems with mother volume thickness)--> + <String name="SiReenforcementMaterial" value="tecmaterial:TEC_SiReenforcment"/> + <Numeric name="SiReenforcementThick" value="[tecmodpar:SiReenforcementThick]"/> + <Numeric name="NoOverlapShift" value="[tecmodpar:NoOverlapShift]"/> + <Numeric name="RPos" value="0.5*([tecmodule0:Rin]+[tecmodule0:Rout])+[PosCorrectionR]"/> + <String name="StandardRotation" value="tecmodpar:RPHI"/> + <Numeric name="PosCorrectionPhi" value="[PosCorrectionPhi]"/> + </Algorithm> +</DDDefinition> diff --git a/examples/DDCMS/data/tecmodule1.xml b/examples/DDCMS/data/tecmodule1.xml new file mode 100644 index 0000000000000000000000000000000000000000..5729c4432d904a6e29432663ba663a1f5e1b2462 --- /dev/null +++ b/examples/DDCMS/data/tecmodule1.xml @@ -0,0 +1,37 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tecmodule1.xml" eval="true"> + <Constant name="Rin" value="31.74*cm"/> + <Constant name="Rout" value="45.93*cm"/> + <Constant name="FullHeight" value="9.0236000*cm"/> + <Constant name="ActiveHeight" value="8.8160000*cm"/> + <Constant name="DlTop" value="11.2202000*cm"/> + <Constant name="DlBottom" value="8.8096000*cm"/> + <Constant name="SideWidthTop" value="0.1076928*cm"/> + <Constant name="SideWidthBottom" value="0.0822066*cm"/> + <Constant name="HybridZ" value="[ActiveZ]+0.5*(-[tecmodpar:WaferThick1] + [tecmodpar:HybridThick])"/> + <Constant name="TopFrameZ" value="[HybridZ]+0.5*([tecmodpar:HybridThick]+[tecmodpar:TopFrameThick])"/> + <Constant name="SideFrameZ" value="[TopFrameZ]+0.5*(-[tecmodpar:TopFrameThick]+[tecmodpar:SideFrameThick])"/> + <Constant name="PitchZ" value="[TopFrameZ]-0.5*([tecmodpar:TopFrameThick] + [tecmodpar:PitchThick])"/> + <Constant name="DlHybrid" value="12.240*cm"/> + <Constant name="BridgeWidth" value="2.479*cm"/> + <Constant name="BridgeThick" value="0.204*cm"/> + <Constant name="BridgeHeight" value="2.3460*cm"/> + <Constant name="BridgeSeparation" value="7.150*cm"/> + <Constant name="ModuleThick" value="[tecmodpar:ModuleThickDS]"/> + <Constant name="ShiftZ" value="-([tecmodpar:ModuleThick]+ [tecmodpar:GapModule])/2"/> + <Constant name="TopFrameBotWidth" value="133.3*mm"/> + <Constant name="ActiveZ" value="([tecmodpar:ActiveZ1]+[ShiftZ])"/> + <Constant name="PitchWidth" value="112.1*mm"/> + <Constant name="dPhi" value="2.2*asin(0.5*[TopFrameBotWidth]/([Rin]+[FullHeight]))"/> + </ConstantsSection> + <SolidSection label="tecmodule1.xml"> + <Tubs name="TECModule1" rMin="[Rin]" rMax="[Rout]" dz="0.5*[tecmodpar:ModuleThickDS]" startPhi="-[dPhi]/2" deltaPhi="[dPhi]"/> + </SolidSection> + <LogicalPartSection label="tecmodule1.xml"> + <LogicalPart name="TECModule1" category="unspecified"> + <rSolid name="tecmodule1:TECModule1"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + </LogicalPartSection> +</DDDefinition> diff --git a/examples/DDCMS/data/tecmodule1r.xml b/examples/DDCMS/data/tecmodule1r.xml new file mode 100644 index 0000000000000000000000000000000000000000..360f1c0d75acc79ff9554c8ec4376a7ae3b3fdd7 --- /dev/null +++ b/examples/DDCMS/data/tecmodule1r.xml @@ -0,0 +1,92 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tecmodule1r.xml" eval="true"> + <Constant name="isStereo" value="0"/> + <Constant name="TopFrameTopWidth" value="95.6*mm"/> + <Constant name="TopFrameBotWidth" value="[tecmodule1:TopFrameBotWidth]"/> + <Constant name="TopFrameHeight" value="35.7*mm"/> + <Constant name="SideFrameRtheta" value="0.133*rad"/> + <Constant name="SideFrameRHeight" value="95.0*mm"/> + <Constant name="SideFrameRWidth" value="14.1*mm"/> + <Constant name="SideFrameLtheta" value="-0.133*rad"/> + <Constant name="SideFrameLHeight" value="99.2*mm"/> + <Constant name="SideFrameLWidth" value="16.7*mm"/> + <Constant name="PosCorrectionR" value="-2.668*mm"/> + </ConstantsSection> + <Algorithm name="track:DDTECModuleAlgo"> + <rParent name="tecmodule1:TECModule1"/> + <Numeric name="RingNo" value="1"/> + <Numeric name="isStereo" value="[isStereo]"/> + <String name="GeneralMaterial" value="materials:Air"/> + <Numeric name="ModuleThick" value="[tecmodpar:ModuleThick]"/> + <Numeric name="DetTilt" value="[tecmodpar:DetTilt]"/> + <Numeric name="FullHeight" value="[tecmodule1:FullHeight]"/> + <Numeric name="DlTop" value="[tecmodule1:DlTop]"/> + <Numeric name="DlBottom" value="[tecmodule1:DlBottom]"/> + <Numeric name="DlHybrid" value="[tecmodule1:DlHybrid]"/> + <Numeric name="FrameWidth" value="[tecmodpar:FrameWidth]"/> + <Numeric name="FrameThick" value="[tecmodule1:ModuleThick]"/> + <Numeric name="FrameOver" value="[tecmodpar:FrameOver]"/> + <String name="TopFrameMaterial" value="tecmaterial:TEC_frame_top"/> + <Numeric name="TopFrameTopWidth" value="[TopFrameTopWidth]"/> + <Numeric name="TopFrameBotWidth" value="[TopFrameBotWidth]"/> + <Numeric name="TopFrameHeight" value="[TopFrameHeight]"/> + <Numeric name="TopFrameThick" value="[tecmodpar:TopFrameThick]"/> + <Numeric name="TopFrameZ" value="[tecmodule1:TopFrameZ]"/> + <String name="SideFrameMaterial" value="tecmaterial:TEC_frame_side_1_4"/> + <Numeric name="SideFrameThick" value="[tecmodpar:SideFrameThick]"/> + <String name="SiFrSuppBoxMaterial" value="tecmaterial:TEC_SideFrSupBox"/> + <Numeric name="SideFrameRtheta" value="[SideFrameRtheta]"/> + <Numeric name="SideFrameRHeight" value="[SideFrameRHeight]"/> + <Numeric name="SideFrameRWidth" value="[SideFrameRWidth]"/> + <Numeric name="SideFrameLtheta" value="[SideFrameLtheta]"/> + <Numeric name="SideFrameLHeight" value="[SideFrameLHeight]"/> + <Numeric name="SideFrameLWidth" value="[SideFrameLWidth]"/> + <Numeric name="SiFrSuppBoxThick" value="[tecmodpar:SiFrSuppBoxThick]"/> + <Vector name="SiFrSuppBoxYPos" type="numeric" nEntries="1"> + 45.5*mm </Vector> + <Vector name="SiFrSuppBoxHeight" type="numeric" nEntries="1"> + 37.9*mm </Vector> + <Vector name="SiFrSuppBoxWidth" type="numeric" nEntries="1"> + 15.9*mm </Vector> + <Numeric name="SideFrameZ" value="[tecmodule1:SideFrameZ]"/> + <String name="WaferMaterial" value="materials:Silicon"/> + <Numeric name="SideWidthTop" value="[tecmodule1:SideWidthTop]"/> + <Numeric name="SideWidthBottom" value="[tecmodule1:SideWidthBottom]"/> + <String name="WaferRotation" value="tecmodpar:RPHI"/> + <String name="ActiveMaterial" value="materials:Silicon"/> + <Numeric name="ActiveHeight" value="[tecmodule1:ActiveHeight]"/> + <Numeric name="WaferThick" value="[tecmodpar:WaferThick1]"/> + <String name="ActiveRotation" value="tecmodpar:AR05"/> + <Numeric name="ActiveZ" value="[tecmodule1:ActiveZ]"/> + <Numeric name="BackPlaneThick" value="2*[tracker:BackPlaneDz]"/> + <String name="HybridMaterial" value="tecmaterial:TEC_Hybrid6APV"/> + <Numeric name="HybridHeight" value="[tecmodpar:HybridHeight]"/> + <Numeric name="HybridWidth" value="[tecmodpar:HybridWidth]"/> + <Numeric name="HybridThick" value="[tecmodpar:HybridThick]"/> + <Numeric name="HybridZ" value="[tecmodule1:HybridZ]"/> + <String name="PitchMaterial" value="tecmaterial:TEC_PitchAdapter"/> + <Numeric name="PitchHeight" value="[tecmodpar:PitchHeight]"/> + <Numeric name="PitchThick" value="[tecmodpar:PitchThick]"/> + <Numeric name="PitchWidth" value="[tecmodule1:PitchWidth]"/> + <Numeric name="PitchZ" value="[tecmodule1:PitchZ]"/> + <String name="PitchRotation" value="tecmodpar:PITC"/> + <Numeric name="BridgeWidth" value="[tecmodule1:BridgeWidth]"/> + <Numeric name="BridgeThick" value="[tecmodule1:BridgeThick]"/> + <Numeric name="BridgeHeight" value="[tecmodule1:BridgeHeight]"/> + <Numeric name="BridgeSeparation" value="[tecmodule1:BridgeSeparation]"/> + <String name="BridgeMaterial" value="trackermaterial:T_Aluminium"/> + <Numeric name="WaferPosition" value="[tecmodpar:TopFrameHeight]"/> + <Vector name="SiReenforcementHeight" type="numeric" nEntries="1"> + 4.5*mm </Vector> + <Vector name="SiReenforcementWidth" type="numeric" nEntries="1"> + 95.0*mm </Vector> + <Vector name="SiReenforcementPosY" type="numeric" nEntries="1"> + 0.0001*mm </Vector> + <String name="SiReenforcementMaterial" value="tecmaterial:TEC_SiReenforcment"/> + <Numeric name="SiReenforcementThick" value="[tecmodpar:SiReenforcementThick]"/> + <Numeric name="NoOverlapShift" value="[tecmodpar:NoOverlapShift]"/> + <Numeric name="RPos" value="0.5*([tecmodule1:Rin]+[tecmodule1:Rout])+[PosCorrectionR]"/> + <String name="StandardRotation" value="tecmodpar:RPHI"/> + </Algorithm> +</DDDefinition> diff --git a/examples/DDCMS/data/tecmodule1s.xml b/examples/DDCMS/data/tecmodule1s.xml new file mode 100644 index 0000000000000000000000000000000000000000..924922b630b4f345a67d902dfe376dffd9f478e6 --- /dev/null +++ b/examples/DDCMS/data/tecmodule1s.xml @@ -0,0 +1,105 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tecmodule1s.xml" eval="true"> + <Constant name="isStereo" value="1"/> + <Constant name="TopFrameTopWidth" value="87.0*mm"/> + <Constant name="TopFrameBotWidth" value="134.3*mm"/> + <Constant name="TopFrameHeight" value="29.7*mm"/> + <Constant name="TopFrame2Width" value="134.3*mm"/> + <Constant name="TopFrame2LHeight" value="13.3*mm"/> + <Constant name="TopFrame2RHeight" value="0.1*fm"/> + <Constant name="SideFrameRtheta" value="0.178*rad"/> + <Constant name="SideFrameRHeight" value="94.9*mm"/> + <Constant name="SideFrameRWidthLow" value="10.4*mm"/> + <Constant name="SideFrameRWidth" value="21.4*mm"/> + <Constant name="SideFrameLtheta" value="-0.081*rad"/> + <Constant name="SideFrameLHeight" value="95.0*mm"/> + <Constant name="SideFrameLWidthLow" value="21.2*mm"/> + <Constant name="SideFrameLWidth" value="11.6*mm"/> + <Constant name="PosCorrectionR" value="-2.668*mm"/> + <Constant name="PosCorrectionPhi" value="0.000461*rad"/> + </ConstantsSection> + <Algorithm name="track:DDTECModuleAlgo"> + <rParent name="tecmodule1:TECModule1"/> + <Numeric name="RingNo" value="1"/> + <Numeric name="isStereo" value="[isStereo]"/> + <String name="GeneralMaterial" value="materials:Air"/> + <Numeric name="ModuleThick" value="[tecmodpar:ModuleThick]"/> + <Numeric name="DetTilt" value="[tecmodpar:DetTilt]"/> + <Numeric name="FullHeight" value="[tecmodule1:FullHeight]"/> + <Numeric name="DlTop" value="[tecmodule1:DlTop]"/> + <Numeric name="DlBottom" value="[tecmodule1:DlBottom]"/> + <Numeric name="DlHybrid" value="[tecmodule1:DlHybrid]"/> + <Numeric name="FrameWidth" value="[tecmodpar:FrameWidth]"/> + <Numeric name="FrameThick" value="[tecmodule1:ModuleThick]"/> + <Numeric name="FrameOver" value="[tecmodpar:FrameOver]"/> + <String name="TopFrameMaterial" value="tecmaterial:TEC_frame_top"/> + <Numeric name="TopFrameTopWidth" value="[TopFrameTopWidth]"/> + <Numeric name="TopFrameBotWidth" value="[TopFrameBotWidth]"/> + <Numeric name="TopFrameHeight" value="[TopFrameHeight]"/> + <Numeric name="TopFrame2Width" value="[TopFrame2Width]"/> + <Numeric name="TopFrame2LHeight" value="[TopFrame2LHeight]"/> + <Numeric name="TopFrame2RHeight" value="[TopFrame2RHeight]"/> + <Numeric name="TopFrameThick" value="[tecmodpar:TopFrameThick]"/> + <Numeric name="TopFrameZ" value="-[tecmodule1:TopFrameZ]"/> + <String name="SideFrameMaterial" value="tecmaterial:TEC_frame_side_1_4"/> + <Numeric name="SideFrameThick" value="[tecmodpar:SideFrameThick]"/> + <String name="SiFrSuppBoxMaterial" value="tecmaterial:TEC_SideFrSupBox"/> + <Numeric name="SideFrameRtheta" value="[SideFrameRtheta]"/> + <Numeric name="SideFrameRHeight" value="[SideFrameRHeight]"/> + <Numeric name="SideFrameRWidthLow" value="[SideFrameRWidthLow]"/> + <Numeric name="SideFrameRWidth" value="[SideFrameRWidth]"/> + <Numeric name="SideFrameLtheta" value="[SideFrameLtheta]"/> + <Numeric name="SideFrameLHeight" value="[SideFrameLHeight]"/> + <Numeric name="SideFrameLWidthLow" value="[SideFrameLWidthLow]"/> + <Numeric name="SideFrameLWidth" value="[SideFrameLWidth]"/> + <Numeric name="SiFrSuppBoxThick" value="[tecmodpar:SiFrSuppBoxThick]"/> + <Vector name="SiFrSuppBoxYPos" type="numeric" nEntries="1"> + 50.7*mm </Vector> + <Vector name="SiFrSuppBoxHeight" type="numeric" nEntries="1"> + 30.8*mm </Vector> + <Vector name="SiFrSuppBoxWidth" type="numeric" nEntries="1"> + 14.8*mm </Vector> + <Numeric name="SideFrameZ" value="-[tecmodule1:SideFrameZ]"/> + <String name="WaferMaterial" value="materials:Silicon"/> + <Numeric name="SideWidthTop" value="[tecmodule1:SideWidthTop]"/> + <Numeric name="SideWidthBottom" value="[tecmodule1:SideWidthBottom]"/> + <String name="WaferRotation" value="tecmodpar:STER"/> + <String name="ActiveMaterial" value="materials:Silicon"/> + <Numeric name="ActiveHeight" value="[tecmodule1:ActiveHeight]"/> + <Numeric name="WaferThick" value="[tecmodpar:WaferThick1]"/> + <String name="ActiveRotation" value="tecmodpar:AR05"/> + <Numeric name="ActiveZ" value="-[tecmodule1:ActiveZ]"/> + <Numeric name="BackPlaneThick" value="2*[tracker:BackPlaneDz]"/> + <String name="HybridMaterial" value="tecmaterial:TEC_Hybrid6APV"/> + <Numeric name="HybridHeight" value="[tecmodpar:HybridHeight]"/> + <Numeric name="HybridWidth" value="[tecmodpar:HybridWidth]"/> + <Numeric name="HybridThick" value="[tecmodpar:HybridThick]"/> + <Numeric name="HybridZ" value="-[tecmodule1:HybridZ]"/> + <String name="PitchMaterial" value="tecmaterial:TEC_PitchAdapter"/> + <Numeric name="PitchHeight" value="[tecmodpar:PitchStereoHeight]"/> + <Numeric name="PitchThick" value="[tecmodpar:PitchThick]"/> + <Numeric name="PitchWidth" value="[tecmodule1:PitchWidth]"/> + <Numeric name="PitchZ" value="-[tecmodule1:PitchZ]"/> + <String name="PitchRotation" value="tecmodpar:PITC"/> + <Numeric name="BridgeWidth" value="[tecmodule1:BridgeWidth]"/> + <Numeric name="BridgeThick" value="[tecmodule1:BridgeThick]"/> + <Numeric name="BridgeHeight" value="[tecmodule1:BridgeHeight]"/> + <Numeric name="BridgeSeparation" value="[tecmodule1:BridgeSeparation]"/> + <String name="BridgeMaterial" value="None"/> + <Numeric name="WaferPosition" value="[tecmodpar:TopFrameHeight]"/> + <Vector name="SiReenforcementHeight" type="numeric" nEntries="1"> + 4.4*mm </Vector> + <Vector name="SiReenforcementWidth" type="numeric" nEntries="1"> + 94.0*mm </Vector> + <Vector name="SiReenforcementPosY" type="numeric" nEntries="1"> + 2*mm </Vector> + <!-- they to be placed right! (are not due to problems with mother volume thickness)--> + <String name="SiReenforcementMaterial" value="tecmaterial:TEC_SiReenforcment"/> + <Numeric name="SiReenforcementThick" value="[tecmodpar:SiReenforcementThick]"/> + <Numeric name="NoOverlapShift" value="[tecmodpar:NoOverlapShift]"/> + <Numeric name="RPos" value="0.5*([tecmodule1:Rin]+[tecmodule1:Rout])+[PosCorrectionR]"/> + <String name="StandardRotation" value="tecmodpar:RPHI"/> + <Numeric name="PosCorrectionPhi" value="-[PosCorrectionPhi]"/> + </Algorithm> +</DDDefinition> diff --git a/examples/DDCMS/data/tecmodule2.xml b/examples/DDCMS/data/tecmodule2.xml new file mode 100644 index 0000000000000000000000000000000000000000..d93b88011d211246352651ea50eb3b1b30568b5b --- /dev/null +++ b/examples/DDCMS/data/tecmodule2.xml @@ -0,0 +1,123 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tecmodule2.xml" eval="true"> + <Constant name="Rin" value="38.77*cm"/> + <Constant name="Rout" value="54.70*cm"/> + <Constant name="isStereo" value="0"/> + <Constant name="FullHeight" value="11.2736000*cm"/> + <Constant name="ActiveHeight" value="11.0660000*cm"/> + <Constant name="DlTop" value="8.3012000*cm"/> + <Constant name="DlBottom" value="6.4904000*cm"/> + <Constant name="SideWidthTop" value="0.1006846*cm"/> + <Constant name="SideWidthBottom" value="0.0866913*cm"/> + <Constant name="HybridZ" value="[TopFrameZ]+ 0.5*([tecmodpar:TopFrameThick] + [tecmodpar:HybridThick])"/> + <Constant name="TopFrameZ" value="[SideFrameZ]+ 0.5*(-[tecmodpar:SideFrameThick]+[tecmodpar:TopFrameThick])"/> + <Constant name="SideFrameZ" value="[ActiveZ]+0.5*(-[tecmodpar:WaferThick1] - [tecmodpar:SideFrameThick])"/> + <Constant name="PitchZ" value="[TopFrameZ] + 0.5*([tecmodpar:TopFrameThick] + [tecmodpar:PitchThick])"/> + <Constant name="DlHybrid" value="8.920*cm"/> + <Constant name="BridgeWidth" value="2.477*cm"/> + <Constant name="BridgeThick" value="0.209*cm"/> + <Constant name="BridgeHeight" value="2.53*cm"/> + <Constant name="BridgeSeparation" value="4.499*cm"/> + <Constant name="ModuleThick" value="[tecmodpar:ModuleThickSS]"/> + <Constant name="ShiftZ" value="0.5*[tecmodpar:SideFrameThick]"/> + <Constant name="TopFrameTopWidth" value="71.7*mm"/> + <Constant name="TopFrameBotWidth" value="103.7*mm"/> + <Constant name="TopFrameHeight" value="35.7*mm"/> + <Constant name="SideFrameRtheta" value="-0.081*rad"/> + <Constant name="SideFrameRHeight" value="119.6*mm"/> + <Constant name="SideFrameRWidth" value="13.9*mm"/> + <Constant name="SideFrameLtheta" value="0.081*rad"/> + <Constant name="SideFrameLHeight" value="119.6*mm"/> + <Constant name="SideFrameLWidth" value="15.2*mm"/> + <Constant name="ActiveZ" value="([tecmodpar:ActiveZ1]+[ShiftZ])"/> + <Constant name="PitchWidth" value="83.2*mm"/> + <Constant name="dPhi" value="2.2*asin(0.5*[TopFrameBotWidth]/([Rin]+[FullHeight]))"/> + <Constant name="PosCorrectionR" value="-1.318*mm"/> + </ConstantsSection> + <SolidSection label="tecmodule2.xml"> + <Tubs name="TECModule2" rMin="[Rin]" rMax="[Rout]" dz="0.5*[tecmodpar:ModuleThickSS]" startPhi="-[dPhi]/2" deltaPhi="[dPhi]"/> + </SolidSection> + <LogicalPartSection label="tecmodule2.xml"> + <LogicalPart name="TECModule2" category="unspecified"> + <rSolid name="tecmodule2:TECModule2"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + </LogicalPartSection> + <Algorithm name="track:DDTECModuleAlgo"> + <rParent name="tecmodule2:TECModule2"/> + <Numeric name="RingNo" value="2"/> + <Numeric name="isStereo" value="[isStereo]"/> + <String name="GeneralMaterial" value="materials:Air"/> + <Numeric name="ModuleThick" value="[tecmodpar:ModuleThick]"/> + <Numeric name="DetTilt" value="[tecmodpar:DetTilt]"/> + <Numeric name="FullHeight" value="[FullHeight]"/> + <Numeric name="DlTop" value="[DlTop]"/> + <Numeric name="DlBottom" value="[DlBottom]"/> + <Numeric name="DlHybrid" value="[DlHybrid]"/> + <Numeric name="FrameWidth" value="[tecmodpar:FrameWidth]"/> + <Numeric name="FrameThick" value="[ModuleThick]"/> + <Numeric name="FrameOver" value="[tecmodpar:FrameOver]"/> + <String name="TopFrameMaterial" value="tecmaterial:TEC_frame_top"/> + <Numeric name="TopFrameTopWidth" value="[TopFrameTopWidth]"/> + <Numeric name="TopFrameBotWidth" value="[TopFrameBotWidth]"/> + <Numeric name="TopFrameHeight" value="[TopFrameHeight]"/> + <Numeric name="TopFrameThick" value="[tecmodpar:TopFrameThick]"/> + <Numeric name="TopFrameZ" value="[TopFrameZ]"/> + <String name="SideFrameMaterial" value="tecmaterial:TEC_frame_side_1_4"/> + <Numeric name="SideFrameThick" value="[tecmodpar:SideFrameThick]"/> + <String name="SiFrSuppBoxMaterial" value="tecmaterial:TEC_SideFrSupBox"/> + <Numeric name="SideFrameRtheta" value="[SideFrameRtheta]"/> + <Numeric name="SideFrameRHeight" value="[SideFrameRHeight]"/> + <Numeric name="SideFrameRWidth" value="[SideFrameRWidth]"/> + <Numeric name="SideFrameLtheta" value="[SideFrameLtheta]"/> + <Numeric name="SideFrameLHeight" value="[SideFrameLHeight]"/> + <Numeric name="SideFrameLWidth" value="[SideFrameLWidth]"/> + <Numeric name="SiFrSuppBoxThick" value="[tecmodpar:SiFrSuppBoxThick]"/> + <Vector name="SiFrSuppBoxYPos" type="numeric" nEntries="1"> + 56.9*mm </Vector> + <Vector name="SiFrSuppBoxHeight" type="numeric" nEntries="1"> + 30.2*mm </Vector> + <Vector name="SiFrSuppBoxWidth" type="numeric" nEntries="1"> + 15.8*mm </Vector> + <Numeric name="SideFrameZ" value="[SideFrameZ]"/> + <String name="WaferMaterial" value="materials:Silicon"/> + <Numeric name="SideWidthTop" value="[SideWidthTop]"/> + <Numeric name="SideWidthBottom" value="[SideWidthBottom]"/> + <String name="WaferRotation" value="tecmodpar:RFI2"/> + <String name="ActiveMaterial" value="materials:Silicon"/> + <Numeric name="ActiveHeight" value="[ActiveHeight]"/> + <Numeric name="WaferThick" value="[tecmodpar:WaferThick1]"/> + <String name="ActiveRotation" value="tecmodpar:AR05"/> + <Numeric name="ActiveZ" value="[ActiveZ]"/> + <Numeric name="BackPlaneThick" value="2*[tracker:BackPlaneDz]"/> + <String name="HybridMaterial" value="tecmaterial:TEC_Hybrid4APV"/> + <Numeric name="HybridHeight" value="[tecmodpar:HybridHeight]"/> + <Numeric name="HybridWidth" value="[tecmodpar:HybridWidth]"/> + <Numeric name="HybridThick" value="[tecmodpar:HybridThick]"/> + <Numeric name="HybridZ" value="[HybridZ]"/> + <String name="PitchMaterial" value="tecmaterial:TEC_PitchAdapter"/> + <Numeric name="PitchHeight" value="[tecmodpar:PitchHeight]"/> + <Numeric name="PitchThick" value="[tecmodpar:PitchThick]"/> + <Numeric name="PitchWidth" value="[PitchWidth]"/> + <Numeric name="PitchZ" value="[PitchZ]"/> + <String name="PitchRotation" value="tecmodpar:PITC"/> + <Numeric name="BridgeWidth" value="[BridgeWidth]"/> + <Numeric name="BridgeThick" value="[BridgeThick]"/> + <Numeric name="BridgeHeight" value="[BridgeHeight]"/> + <Numeric name="BridgeSeparation" value="[BridgeSeparation]"/> + <String name="BridgeMaterial" value="trackermaterial:T_Aluminium"/> + <Numeric name="WaferPosition" value="[tecmodpar:TopFrameHeight]"/> + <Vector name="SiReenforcementHeight" type="numeric" nEntries="1"> + 4.7*mm </Vector> + <Vector name="SiReenforcementWidth" type="numeric" nEntries="1"> + 69.0*mm </Vector> + <Vector name="SiReenforcementPosY" type="numeric" nEntries="1"> + 0.0001*mm </Vector> + <String name="SiReenforcementMaterial" value="tecmaterial:TEC_SiReenforcment"/> + <Numeric name="SiReenforcementThick" value="[tecmodpar:SiReenforcementThick]"/> + <Numeric name="NoOverlapShift" value="[tecmodpar:NoOverlapShift]"/> + <Numeric name="RPos" value="0.5*([tecmodule2:Rin]+[tecmodule2:Rout])+[PosCorrectionR]"/> + <String name="StandardRotation" value="tecmodpar:RPHI"/> + </Algorithm> +</DDDefinition> diff --git a/examples/DDCMS/data/tecmodule3.xml b/examples/DDCMS/data/tecmodule3.xml new file mode 100644 index 0000000000000000000000000000000000000000..8a9f72e5b0814e405c21f995f4c5e46c261a7184 --- /dev/null +++ b/examples/DDCMS/data/tecmodule3.xml @@ -0,0 +1,124 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tecmodule3.xml" eval="true"> + <Constant name="Rin" value="50.00*cm"/> + <Constant name="Rout" value="66.242*cm"/> + <Constant name="isStereo" value="0"/> + <Constant name="FullHeight" value="11.7236000*cm"/> + <Constant name="ActiveHeight" value="11.5160000*cm"/> + <Constant name="DlTop" value="7.3179000*cm"/> + <Constant name="DlBottom" value="5.9730000*cm"/> + <Constant name="SideWidthTop" value="0.0979314*cm"/> + <Constant name="SideWidthBottom" value="0.0877023*cm"/> + <Constant name="HybridZ" value="[TopFrameZ]+ 0.5*([tecmodpar:TopFrameThick] + [tecmodpar:HybridThick])"/> + <Constant name="TopFrameZ" value="[SideFrameZ]+ 0.5*(-[tecmodpar:SideFrameThick]+[tecmodpar:TopFrameThick])"/> + <Constant name="SideFrameZ" value="[ActiveZ]+0.5*(-[tecmodpar:WaferThick1] - [tecmodpar:SideFrameThick])"/> + <Constant name="PitchZ" value="[TopFrameZ] + 0.5*([tecmodpar:TopFrameThick] + [tecmodpar:PitchThick])"/> + <Constant name="DlHybrid" value="7.770*cm"/> + <Constant name="BridgeWidth" value="2.471*cm"/> + <Constant name="BridgeThick" value="0.212*cm"/> + <Constant name="BridgeHeight" value="1.988*cm"/> + <Constant name="BridgeSeparation" value="3.750*cm"/> + <Constant name="ModuleThick" value="[tecmodpar:ModuleThickSS]"/> + <Constant name="ShiftZ" value="0.5*[tecmodpar:SideFrameThick]"/> + <Constant name="TopFrameTopWidth" value="88.9*mm"/> + <Constant name="TopFrameBotWidth" value="93.7*mm"/> + <Constant name="TopFrameHeight" value="35.7*mm"/> + <Constant name="SideFrameRtheta" value="-0.058*rad"/> + <Constant name="SideFrameRHeight" value="122.1*mm"/> + <Constant name="SideFrameRWidth" value="14.0*mm"/> + <Constant name="SideFrameLtheta" value="0.057*rad"/> + <Constant name="SideFrameLHeight" value="122.1*mm"/> + <Constant name="SideFrameLWidth" value="15.2*mm"/> + <Constant name="ActiveZ" value="([tecmodpar:ActiveZ1]+[ShiftZ])"/> + <Constant name="PitchWidth" value="73.3*mm"/> + <Constant name="dPhi" value="2.2*asin(0.5*[TopFrameBotWidth]/([Rin]+[FullHeight]))"/> + <Constant name="PosCorrectionR" value="-0.8287*mm"/> + </ConstantsSection> + <SolidSection label="tecmodule3.xml"> + <Tubs name="TECModule3" rMin="[Rin]" rMax="[Rout]" dz="0.5*[tecmodpar:ModuleThickSS]" startPhi="-[dPhi]/2" deltaPhi="[dPhi]"/> + </SolidSection> + <LogicalPartSection label="tecmodule3.xml"> + <LogicalPart name="TECModule3" category="unspecified"> + <rSolid name="tecmodule3:TECModule3"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + </LogicalPartSection> + <Algorithm name="track:DDTECModuleAlgo"> + <rParent name="tecmodule3:TECModule3"/> + <Numeric name="RingNo" value="3"/> + <Numeric name="isStereo" value="[isStereo]"/> + <String name="GeneralMaterial" value="materials:Air"/> + <Numeric name="ModuleThick" value="[tecmodpar:ModuleThick]"/> + <Numeric name="DetTilt" value="[tecmodpar:DetTilt]"/> + <Numeric name="FullHeight" value="[FullHeight]"/> + <Numeric name="DlTop" value="[DlTop]"/> + <Numeric name="DlBottom" value="[DlBottom]"/> + <Numeric name="DlHybrid" value="[DlHybrid]"/> + <Numeric name="FrameWidth" value="[tecmodpar:FrameWidth]"/> + <Numeric name="FrameThick" value="[ModuleThick]"/> + <Numeric name="FrameOver" value="[tecmodpar:FrameOver]"/> + <String name="TopFrameMaterial" value="tecmaterial:TEC_frame_top"/> + <Numeric name="TopFrameTopWidth" value="[TopFrameTopWidth]"/> + <Numeric name="TopFrameBotWidth" value="[TopFrameBotWidth]"/> + <Numeric name="TopFrameHeight" value="[TopFrameHeight]"/> + <Numeric name="TopFrameThick" value="[tecmodpar:TopFrameThick]"/> + <Numeric name="TopFrameZ" value="[TopFrameZ]"/> + <String name="SideFrameMaterial" value="tecmaterial:TEC_frame_side_1_4"/> + <Numeric name="SideFrameThick" value="[tecmodpar:SideFrameThick]"/> + <String name="SiFrSuppBoxMaterial" value="tecmaterial:TEC_SideFrSupBox"/> + <Numeric name="SideFrameRtheta" value="[SideFrameRtheta]"/> + <Numeric name="SideFrameRHeight" value="[SideFrameRHeight]"/> + <Numeric name="SideFrameRWidth" value="[SideFrameRWidth]"/> + <Numeric name="SideFrameLtheta" value="[SideFrameLtheta]"/> + <Numeric name="SideFrameLHeight" value="[SideFrameLHeight]"/> + <Numeric name="SideFrameLWidth" value="[SideFrameLWidth]"/> + <Numeric name="SiFrSuppBoxThick" value="[tecmodpar:SiFrSuppBoxThick]"/> + <Vector name="SiFrSuppBoxYPos" type="numeric" nEntries="1"> + 59.3 *mm </Vector> + <Vector name="SiFrSuppBoxHeight" type="numeric" nEntries="1"> + 30.3*mm </Vector> + <Vector name="SiFrSuppBoxWidth" type="numeric" nEntries="1"> + 15.8*mm </Vector> + <Numeric name="SideFrameZ" value="[SideFrameZ]"/> + <String name="WaferMaterial" value="materials:Silicon"/> + <Numeric name="SideWidthTop" value="[SideWidthTop]"/> + <Numeric name="SideWidthBottom" value="[SideWidthBottom]"/> + <String name="WaferRotation" value="tecmodpar:RFI2"/> + <String name="ActiveMaterial" value="materials:Silicon"/> + <Numeric name="ActiveHeight" value="[ActiveHeight]"/> + <Numeric name="WaferThick" value="[tecmodpar:WaferThick1]"/> + <String name="ActiveRotation" value="tecmodpar:AR05"/> + <Numeric name="ActiveZ" value="[ActiveZ]"/> + <Numeric name="BackPlaneThick" value="2*[tracker:BackPlaneDz]"/> + <String name="HybridMaterial" value="tecmaterial:TEC_Hybrid4APV"/> + <Numeric name="HybridHeight" value="[tecmodpar:HybridHeight]"/> + <Numeric name="HybridWidth" value="[tecmodpar:HybridWidth]"/> + <Numeric name="HybridThick" value="[tecmodpar:HybridThick]"/> + <Numeric name="HybridZ" value="[HybridZ]"/> + <String name="PitchMaterial" value="tecmaterial:TEC_PitchAdapter"/> + <Numeric name="PitchHeight" value="[tecmodpar:PitchHeight]"/> + <Numeric name="PitchThick" value="[tecmodpar:PitchThick]"/> + <Numeric name="PitchWidth" value="[PitchWidth]"/> + <Numeric name="PitchZ" value="[PitchZ]"/> + <String name="PitchRotation" value="tecmodpar:PITC"/> + <Numeric name="BridgeWidth" value="[BridgeWidth]"/> + <Numeric name="BridgeThick" value="[BridgeThick]"/> + <Numeric name="BridgeHeight" value="[BridgeHeight]"/> + <Numeric name="BridgeSeparation" value="[BridgeSeparation]"/> + <String name="BridgeMaterial" value="trackermaterial:T_Aluminium"/> + <Numeric name="WaferPosition" value="[tecmodpar:TopFrameHeight]"/> + <Vector name="SiReenforcementHeight" type="numeric" nEntries="1"> + 4.8*mm </Vector> + <Vector name="SiReenforcementWidth" type="numeric" nEntries="1"> + 61.0*mm </Vector> + <Vector name="SiReenforcementPosY" type="numeric" nEntries="1"> + 0.0001*mm </Vector> + <String name="SiReenforcementMaterial" value="tecmaterial:TEC_SiReenforcment"/> + <Numeric name="SiReenforcementThick" value="[tecmodpar:SiReenforcementThick]"/> + <Numeric name="NoOverlapShift" value="[tecmodpar:NoOverlapShift]"/> + <Numeric name="RPos" value="0.5*([tecmodule3:Rin]+[tecmodule3:Rout])-0.8287*mm"/> + <Numeric name="RPos" value="0.5*([tecmodule3:Rin]+[tecmodule3:Rout])+[PosCorrectionR]"/> + <String name="StandardRotation" value="tecmodpar:RPHI"/> + </Algorithm> +</DDDefinition> diff --git a/examples/DDCMS/data/tecmodule4.xml b/examples/DDCMS/data/tecmodule4.xml new file mode 100644 index 0000000000000000000000000000000000000000..343eee586c0c533bdb7a86b6347f4faaea063e41 --- /dev/null +++ b/examples/DDCMS/data/tecmodule4.xml @@ -0,0 +1,38 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tecmodule4.xml" eval="true"> + <Constant name="Rin" value="59.67*cm"/> + <Constant name="Rout" value="79.76*cm"/> + <Constant name="FullHeight" value="15.0029000*cm"/> + <Constant name="ActiveHeight" value="14.7262500*cm"/> + <Constant name="DlTop" value="12.2914000*cm"/> + <Constant name="DlBottom" value="9.8952000*cm"/> + <Constant name="InactiveStart" value="65.983*mm"/> + <Constant name="SideWidthTop" value="0.1431406*cm"/> + <Constant name="SideWidthBottom" value="0.1229168*cm"/> + <Constant name="HybridZ" value="[ActiveZ]+ 0.5*(-[tecmodpar:WaferThick2] + [tecmodpar:HybridThick])"/> + <Constant name="TopFrameZ" value="[HybridZ]+ 0.5*([tecmodpar:HybridThick]+[tecmodpar:TopFrameThick])"/> + <Constant name="SideFrameZ" value="[TopFrameZ]+0.5*(-[tecmodpar:TopFrameThick]+[tecmodpar:SideFrameThick])"/> + <Constant name="PitchZ" value="[TopFrameZ] - 0.5*([tecmodpar:TopFrameThick] + [tecmodpar:PitchThick])"/> + <Constant name="DlHybrid" value="12.900*cm"/> + <Constant name="BridgeWidth" value="2.475*cm"/> + <Constant name="BridgeThick" value="0.176*cm"/> + <Constant name="BridgeHeight" value="2.60*cm"/> + <Constant name="BridgeSeparation" value="8.300*cm"/> + <Constant name="ModuleThick" value="[tecmodpar:ModuleThickDS]"/> + <Constant name="ShiftZ" value="-([tecmodpar:ModuleThick]+ [tecmodpar:GapModule])/2"/> + <Constant name="TopFrameBotWidth" value="143.3*mm"/> + <Constant name="ActiveZ" value="([tecmodpar:ActiveZ2]+[ShiftZ])"/> + <Constant name="PitchWidth" value="122.6*mm"/> + <Constant name="dPhi" value="2.2*asin(0.5*[TopFrameBotWidth]/([Rin]+[FullHeight]))"/> + </ConstantsSection> + <SolidSection label="tecmodule4.xml"> + <Tubs name="TECModule4" rMin="[Rin]" rMax="[Rout]" dz="0.5*[tecmodpar:ModuleThickDS]" startPhi="-[dPhi]/2" deltaPhi="[dPhi]"/> + </SolidSection> + <LogicalPartSection label="tecmodule4.xml"> + <LogicalPart name="TECModule4" category="unspecified"> + <rSolid name="tecmodule4:TECModule4"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + </LogicalPartSection> +</DDDefinition> diff --git a/examples/DDCMS/data/tecmodule4r.xml b/examples/DDCMS/data/tecmodule4r.xml new file mode 100644 index 0000000000000000000000000000000000000000..cf0b2e804239c6338c4b9ebded1f24390bee120e --- /dev/null +++ b/examples/DDCMS/data/tecmodule4r.xml @@ -0,0 +1,95 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tecmodule4r.xml" eval="true"> + <Constant name="isStereo" value="0"/> + <Constant name="TopFrameTopWidth" value="95.6*mm"/> + <Constant name="TopFrameBotWidth" value="[tecmodule4:TopFrameBotWidth]"/> + <Constant name="TopFrameHeight" value="37.2*mm"/> + <Constant name="SideFrameRtheta" value="0.080*rad"/> + <Constant name="SideFrameRHeight" value="158.9*mm"/> + <Constant name="SideFrameRWidth" value="14.5*mm"/> + <Constant name="SideFrameLtheta" value="-0.080*rad"/> + <Constant name="SideFrameLHeight" value="159.0*mm"/> + <Constant name="SideFrameLWidth" value="16.4*mm"/> + <Constant name="PosCorrectionR" value="-1.664*mm"/> + </ConstantsSection> + <Algorithm name="track:DDTECModuleAlgo"> + <rParent name="tecmodule4:TECModule4"/> + <Numeric name="RingNo" value="4"/> + <Numeric name="isStereo" value="[isStereo]"/> + <String name="GeneralMaterial" value="materials:Air"/> + <Numeric name="ModuleThick" value="[tecmodpar:ModuleThick]"/> + <Numeric name="DetTilt" value="[tecmodpar:DetTilt]"/> + <Numeric name="FullHeight" value="[tecmodule4:FullHeight]"/> + <Numeric name="DlTop" value="[tecmodule4:DlTop]"/> + <Numeric name="DlBottom" value="[tecmodule4:DlBottom]"/> + <Numeric name="DlHybrid" value="[tecmodule4:DlHybrid]"/> + <Numeric name="FrameWidth" value="[tecmodpar:FrameWidth]"/> + <Numeric name="FrameThick" value="[tecmodule4:ModuleThick]"/> + <Numeric name="FrameOver" value="[tecmodpar:FrameOver]"/> + <String name="TopFrameMaterial" value="tecmaterial:TEC_frame_top"/> + <Numeric name="TopFrameTopWidth" value="[TopFrameTopWidth]"/> + <Numeric name="TopFrameBotWidth" value="[TopFrameBotWidth]"/> + <Numeric name="TopFrameHeight" value="[TopFrameHeight]"/> + <Numeric name="TopFrameThick" value="[tecmodpar:TopFrameThick]"/> + <Numeric name="TopFrameZ" value="[tecmodule4:TopFrameZ]"/> + <String name="SideFrameMaterial" value="tecmaterial:TEC_frame_side_5_7"/> + <Numeric name="SideFrameThick" value="[tecmodpar:SideFrameThick]"/> + <String name="SiFrSuppBoxMaterial" value="tecmaterial:TEC_SideFrSupBox"/> + <Numeric name="SideFrameRtheta" value="[SideFrameRtheta]"/> + <Numeric name="SideFrameRHeight" value="[SideFrameRHeight]"/> + <Numeric name="SideFrameRWidth" value="[SideFrameRWidth]"/> + <Numeric name="SideFrameLtheta" value="[SideFrameLtheta]"/> + <Numeric name="SideFrameLHeight" value="[SideFrameLHeight]"/> + <Numeric name="SideFrameLWidth" value="[SideFrameLWidth]"/> + <Numeric name="SiFrSuppBoxThick" value="[tecmodpar:SiFrSuppBoxThick]"/> + <Vector name="SiFrSuppBoxYPos" type="numeric" nEntries="2"> + 37.8*mm, 112.3*mm </Vector> + <Vector name="SiFrSuppBoxHeight" type="numeric" nEntries="2"> + 30.7*mm, 26.5*mm </Vector> + <Vector name="SiFrSuppBoxWidth" type="numeric" nEntries="2"> + 16.0*mm, 15.2*mm </Vector> + <Numeric name="SideFrameZ" value="[tecmodule4:SideFrameZ]"/> + <String name="WaferMaterial" value="materials:Silicon"/> + <Numeric name="SideWidthTop" value="[tecmodule4:SideWidthTop]"/> + <Numeric name="SideWidthBottom" value="[tecmodule4:SideWidthBottom]"/> + <String name="WaferRotation" value="tecmodpar:RPHI"/> + <String name="ActiveMaterial" value="materials:Silicon"/> + <Numeric name="ActiveHeight" value="[tecmodule4:ActiveHeight]"/> + <Numeric name="WaferThick" value="[tecmodpar:WaferThick2]"/> + <String name="ActiveRotation" value="tecmodpar:AR05"/> + <Numeric name="ActiveZ" value="[tecmodule4:ActiveZ]"/> + <Numeric name="BackPlaneThick" value="2*[tracker:BackPlaneDz]"/> + <Numeric name="InactiveDy" value="[tecmodpar:InactiveDy]"/> + <Numeric name="InactivePos" value="[tecmodule4:InactiveStart]+[tecmodpar:InactiveDy]"/> + <String name="InactiveMaterial" value="materials:Silicon"/> + <String name="HybridMaterial" value="tecmaterial:TEC_Hybrid6APV"/> + <Numeric name="HybridHeight" value="[tecmodpar:HybridHeight]"/> + <Numeric name="HybridWidth" value="[tecmodpar:HybridWidth]"/> + <Numeric name="HybridThick" value="[tecmodpar:HybridThick]"/> + <Numeric name="HybridZ" value="[tecmodule4:HybridZ]"/> + <String name="PitchMaterial" value="tecmaterial:TEC_PitchAdapter"/> + <Numeric name="PitchHeight" value="[tecmodpar:PitchHeight]"/> + <Numeric name="PitchThick" value="[tecmodpar:PitchThick]"/> + <Numeric name="PitchWidth" value="[tecmodule4:PitchWidth]"/> + <Numeric name="PitchZ" value="[tecmodule4:PitchZ]"/> + <String name="PitchRotation" value="tecmodpar:PITC"/> + <Numeric name="BridgeWidth" value="[tecmodule4:BridgeWidth]"/> + <Numeric name="BridgeThick" value="[tecmodule4:BridgeThick]"/> + <Numeric name="BridgeHeight" value="[tecmodule4:BridgeHeight]"/> + <Numeric name="BridgeSeparation" value="[tecmodule4:BridgeSeparation]"/> + <String name="BridgeMaterial" value="trackermaterial:T_Aluminium"/> + <Numeric name="WaferPosition" value="[tecmodpar:TopFrameHeight]"/> + <Vector name="SiReenforcementHeight" type="numeric" nEntries="2"> + 4.51*mm, 8.1*mm </Vector> + <Vector name="SiReenforcementWidth" type="numeric" nEntries="2"> + 102.0*mm, 98.0*mm </Vector> + <Vector name="SiReenforcementPosY" type="numeric" nEntries="2"> + 0.0001*mm, [tecmodule4:InactiveStart] </Vector> + <String name="SiReenforcementMaterial" value="tecmaterial:TEC_SiReenforcment"/> + <Numeric name="SiReenforcementThick" value="[tecmodpar:SiReenforcementThick]"/> + <Numeric name="NoOverlapShift" value="[tecmodpar:NoOverlapShift]"/> + <Numeric name="RPos" value="0.5*([tecmodule4:Rin]+[tecmodule4:Rout])+[PosCorrectionR]"/> + <String name="StandardRotation" value="tecmodpar:RPHI"/> + </Algorithm> +</DDDefinition> diff --git a/examples/DDCMS/data/tecmodule4s.xml b/examples/DDCMS/data/tecmodule4s.xml new file mode 100644 index 0000000000000000000000000000000000000000..7b6a90020e24d58c092d9b0dc1f6b7690e656b44 --- /dev/null +++ b/examples/DDCMS/data/tecmodule4s.xml @@ -0,0 +1,108 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tecmodule4s.xml" eval="true"> + <Constant name="isStereo" value="1"/> + <Constant name="TopFrameTopWidth" value="90.7*mm"/> + <Constant name="TopFrameBotWidth" value="145.3*mm"/> + <Constant name="TopFrameHeight" value="25.6*mm"/> + <Constant name="TopFrame2Width" value="121.7*mm"/> + <Constant name="TopFrame2LHeight" value="19.4*mm"/> + <Constant name="TopFrame2RHeight" value="7.3*mm"/> + <Constant name="SideFrameRtheta" value="0.139*rad"/> + <Constant name="SideFrameRHeight" value="153.4*mm"/> + <Constant name="SideFrameRWidthLow" value="7.8*mm"/> + <Constant name="SideFrameRWidth" value="21.8*mm"/> + <Constant name="SideFrameLtheta" value="-0.047*rad"/> + <Constant name="SideFrameLHeight" value="153.4*mm"/> + <Constant name="SideFrameLWidthLow" value="21.1*mm"/> + <Constant name="SideFrameLWidth" value="10.8*mm"/> + <Constant name="PosCorrectionR" value="-1.664*mm"/> + <Constant name="PosCorrectionPhi" value="-0.0003755*rad"/> + </ConstantsSection> + <Algorithm name="track:DDTECModuleAlgo"> + <rParent name="tecmodule4:TECModule4"/> + <Numeric name="RingNo" value="4"/> + <Numeric name="isStereo" value="[isStereo]"/> + <String name="GeneralMaterial" value="materials:Air"/> + <Numeric name="ModuleThick" value="[tecmodpar:ModuleThick]"/> + <Numeric name="DetTilt" value="[tecmodpar:DetTilt]"/> + <Numeric name="FullHeight" value="[tecmodule4:FullHeight]"/> + <Numeric name="DlTop" value="[tecmodule4:DlTop]"/> + <Numeric name="DlBottom" value="[tecmodule4:DlBottom]"/> + <Numeric name="DlHybrid" value="[tecmodule4:DlHybrid]"/> + <Numeric name="FrameWidth" value="[tecmodpar:FrameWidth]"/> + <Numeric name="FrameThick" value="[tecmodule4:ModuleThick]"/> + <Numeric name="FrameOver" value="[tecmodpar:FrameOver]"/> + <String name="TopFrameMaterial" value="tecmaterial:TEC_frame_top"/> + <Numeric name="TopFrameTopWidth" value="[TopFrameTopWidth]"/> + <Numeric name="TopFrameBotWidth" value="[TopFrameBotWidth]"/> + <Numeric name="TopFrameHeight" value="[TopFrameHeight]"/> + <Numeric name="TopFrame2Width" value="[TopFrame2Width]"/> + <Numeric name="TopFrame2LHeight" value="[TopFrame2LHeight]"/> + <Numeric name="TopFrame2RHeight" value="[TopFrame2RHeight]"/> + <Numeric name="TopFrameThick" value="[tecmodpar:TopFrameThick]"/> + <Numeric name="TopFrameZ" value="-[tecmodule4:TopFrameZ]"/> + <String name="SideFrameMaterial" value="tecmaterial:TEC_frame_side_5_7"/> + <Numeric name="SideFrameThick" value="[tecmodpar:SideFrameThick]"/> + <String name="SiFrSuppBoxMaterial" value="tecmaterial:TEC_SideFrSupBox"/> + <Numeric name="SideFrameRtheta" value="[SideFrameRtheta]"/> + <Numeric name="SideFrameRHeight" value="[SideFrameRHeight]"/> + <Numeric name="SideFrameRWidthLow" value="[SideFrameRWidthLow]"/> + <Numeric name="SideFrameRWidth" value="[SideFrameRWidth]"/> + <Numeric name="SideFrameLtheta" value="[SideFrameLtheta]"/> + <Numeric name="SideFrameLHeight" value="[SideFrameLHeight]"/> + <Numeric name="SideFrameLWidthLow" value="[SideFrameLWidthLow]"/> + <Numeric name="SideFrameLWidth" value="[SideFrameLWidth]"/> + <Numeric name="SiFrSuppBoxThick" value="[tecmodpar:SiFrSuppBoxThick]"/> + <Vector name="SiFrSuppBoxYPos" type="numeric" nEntries="2"> + 34.4*mm, 110.5*mm </Vector> + <Vector name="SiFrSuppBoxHeight" type="numeric" nEntries="2"> + 33.1*mm, 26.3*mm </Vector> + <Vector name="SiFrSuppBoxWidth" type="numeric" nEntries="2"> + 16.2*mm, 15.3*mm </Vector> + <Numeric name="SideFrameZ" value="-[tecmodule4:SideFrameZ]"/> + <String name="WaferMaterial" value="materials:Silicon"/> + <Numeric name="SideWidthTop" value="[tecmodule4:SideWidthTop]"/> + <Numeric name="SideWidthBottom" value="[tecmodule4:SideWidthBottom]"/> + <String name="WaferRotation" value="tecmodpar:STER"/> + <String name="ActiveMaterial" value="materials:Silicon"/> + <Numeric name="ActiveHeight" value="[tecmodule4:ActiveHeight]"/> + <Numeric name="WaferThick" value="[tecmodpar:WaferThick2]"/> + <String name="ActiveRotation" value="tecmodpar:AR05"/> + <Numeric name="ActiveZ" value="-[tecmodule4:ActiveZ]"/> + <Numeric name="BackPlaneThick" value="2*[tracker:BackPlaneDz]"/> + <Numeric name="InactiveDy" value="[tecmodpar:InactiveDy]"/> + <Numeric name="InactivePos" value="[tecmodule4:InactiveStart]+[tecmodpar:InactiveDy]"/> + <String name="InactiveMaterial" value="materials:Silicon"/> + <String name="HybridMaterial" value="tecmaterial:TEC_Hybrid6APV"/> + <Numeric name="HybridHeight" value="[tecmodpar:HybridHeight]"/> + <Numeric name="HybridWidth" value="[tecmodpar:HybridWidth]"/> + <Numeric name="HybridThick" value="[tecmodpar:HybridThick]"/> + <Numeric name="HybridZ" value="-[tecmodule4:HybridZ]"/> + <String name="PitchMaterial" value="tecmaterial:TEC_PitchAdapter"/> + <Numeric name="PitchHeight" value="[tecmodpar:PitchStereoHeight]"/> + <Numeric name="PitchThick" value="[tecmodpar:PitchThick]"/> + <Numeric name="PitchWidth" value="[tecmodule4:PitchWidth]"/> + <Numeric name="PitchZ" value="-[tecmodule4:PitchZ]"/> + <String name="PitchRotation" value="tecmodpar:PITC"/> + <Numeric name="BridgeWidth" value="[tecmodule4:BridgeWidth]"/> + <Numeric name="BridgeThick" value="[tecmodule4:BridgeThick]"/> + <Numeric name="BridgeHeight" value="[tecmodule4:BridgeHeight]"/> + <Numeric name="BridgeSeparation" value="[tecmodule4:BridgeSeparation]"/> + <String name="BridgeMaterial" value="None"/> + <Numeric name="WaferPosition" value="[tecmodpar:TopFrameHeight]"/> + <Vector name="SiReenforcementHeight" type="numeric" nEntries="2"> + 4.4*mm, 8.47*mm </Vector> + <Vector name="SiReenforcementWidth" type="numeric" nEntries="2"> + 106.0*mm, 94.0*mm </Vector> + <Vector name="SiReenforcementPosY" type="numeric" nEntries="2"> + 2.*mm, [tecmodule4:InactiveStart]-8.47*mm/2 </Vector> + <!-- they to be placed right! (are not due to problems with mother volume thickness)--> + <String name="SiReenforcementMaterial" value="tecmaterial:TEC_SiReenforcment"/> + <Numeric name="SiReenforcementThick" value="[tecmodpar:SiReenforcementThick]"/> + <Numeric name="NoOverlapShift" value="[tecmodpar:NoOverlapShift]"/> + <Numeric name="RPos" value="0.5*([tecmodule4:Rin]+[tecmodule4:Rout])+[PosCorrectionR]"/> + <String name="StandardRotation" value="tecmodpar:RPHI"/> + <Numeric name="PosCorrectionPhi" value="[PosCorrectionPhi]"/> + </Algorithm> +</DDDefinition> diff --git a/examples/DDCMS/data/tecmodule5.xml b/examples/DDCMS/data/tecmodule5.xml new file mode 100644 index 0000000000000000000000000000000000000000..fdc2102aa53c904c569d9e1a43c2c73ef3f74349 --- /dev/null +++ b/examples/DDCMS/data/tecmodule5.xml @@ -0,0 +1,131 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tecmodule5.xml" eval="true"> + <Constant name="Rin" value="72.11*cm"/> + <Constant name="Rout" value="95.61*cm"/> + <Constant name="isStereo" value="0"/> + <Constant name="FullHeight" value="18.6980000*cm"/> + <Constant name="ActiveHeight" value="18.4088000*cm"/> + <Constant name="DlTop" value="10.7285000*cm"/> + <Constant name="DlBottom" value="8.6184000*cm"/> + <Constant name="InactiveStart" value="87.840*mm"/> + <Constant name="SideWidthTop" value="0.1287673*cm"/> + <Constant name="SideWidthBottom" value="0.1315619*cm"/> + <!--Constant name="HybridZ" value="[ActiveZ]+ 0.5*(-[tecmodpar:WaferThick2] + [tecmodpar:HybridThick])"/> + <Constant name="TopFrameZ" value="[HybridZ]+ 0.5*([tecmodpar:HybridThick]+[tecmodpar:TopFrameThick])"/> + <Constant name="SideFrameZ" value="[TopFrameZ]+0.5*(-[tecmodpar:TopFrameThick]+[tecmodpar:SideFrameThick])"/> + <Constant name="PitchZ" value="[TopFrameZ] - 0.5*([tecmodpar:TopFrameThick] + [tecmodpar:PitchThick])"/--> + <Constant name="HybridZ" value="[TopFrameZ]+ 0.5*([tecmodpar:TopFrameThick] + [tecmodpar:HybridThick])"/> + <Constant name="TopFrameZ" value="[SideFrameZ]+ 0.5*(-[tecmodpar:SideFrameThick]+[tecmodpar:TopFrameThick])"/> + <Constant name="SideFrameZ" value="[ActiveZ]+0.5*(-[tecmodpar:WaferThick2] - [tecmodpar:SideFrameThick])"/> + <Constant name="PitchZ" value="[TopFrameZ] + 0.5*([tecmodpar:TopFrameThick] + [tecmodpar:PitchThick])"/> + <Constant name="DlHybrid" value="11.190*cm"/> + <Constant name="BridgeWidth" value="1.90*cm"/> + <Constant name="BridgeThick" value="0.228*cm"/> + <Constant name="BridgeHeight" value="2.469*cm"/> + <Constant name="BridgeSeparation" value="6.800*cm"/> + <Constant name="ModuleThick" value="[tecmodpar:ModuleThickSS]"/> + <Constant name="ShiftZ" value="0.5*[tecmodpar:SideFrameThick]"/> + <Constant name="TopFrameTopWidth" value="89.3*mm"/> + <Constant name="TopFrameBotWidth" value="127.8*mm"/> + <Constant name="TopFrameHeight" value="37.2*mm"/> + <Constant name="SideFrameRtheta" value="-0.058*rad"/> + <Constant name="SideFrameRHeight" value="190.0*mm"/> + <Constant name="SideFrameRWidth" value="14.1*mm"/> + <Constant name="SideFrameLtheta" value="0.057*rad"/> + <Constant name="SideFrameLHeight" value="190.0*mm"/> + <Constant name="SideFrameLWidth" value="15.5*mm"/> + <Constant name="ActiveZ" value="([tecmodpar:ActiveZ2]+[ShiftZ])"/> + <Constant name="PitchWidth" value="107.6*mm"/> + <Constant name="dPhi" value="2.2*asin(0.5*[TopFrameBotWidth]/([Rin]+[FullHeight]))"/> + <Constant name="PosCorrectionR" value="-1.19*mm"/> + </ConstantsSection> + <SolidSection label="tecmodule5.xml"> + <Tubs name="TECModule5" rMin="[Rin]" rMax="[Rout]" dz="0.5*[tecmodpar:ModuleThickSS]" startPhi="-[dPhi]/2" deltaPhi="[dPhi]"/> + </SolidSection> + <LogicalPartSection label="tecmodule5.xml"> + <LogicalPart name="TECModule5" category="unspecified"> + <rSolid name="tecmodule5:TECModule5"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + </LogicalPartSection> + <Algorithm name="track:DDTECModuleAlgo"> + <rParent name="tecmodule5:TECModule5"/> + <Numeric name="RingNo" value="5"/> + <Numeric name="isStereo" value="[isStereo]"/> + <String name="GeneralMaterial" value="materials:Air"/> + <Numeric name="ModuleThick" value="[tecmodpar:ModuleThick]"/> + <Numeric name="DetTilt" value="[tecmodpar:DetTilt]"/> + <Numeric name="FullHeight" value="[FullHeight]"/> + <Numeric name="DlTop" value="[DlTop]"/> + <Numeric name="DlBottom" value="[DlBottom]"/> + <Numeric name="DlHybrid" value="[DlHybrid]"/> + <Numeric name="FrameWidth" value="[tecmodpar:FrameWidth]"/> + <Numeric name="FrameThick" value="[ModuleThick]"/> + <Numeric name="FrameOver" value="[tecmodpar:FrameOver]"/> + <String name="TopFrameMaterial" value="tecmaterial:TEC_frame_top"/> + <Numeric name="TopFrameTopWidth" value="[TopFrameTopWidth]"/> + <Numeric name="TopFrameBotWidth" value="[TopFrameBotWidth]"/> + <Numeric name="TopFrameHeight" value="[TopFrameHeight]"/> + <Numeric name="TopFrameThick" value="[tecmodpar:TopFrameThick]"/> + <Numeric name="TopFrameZ" value="[TopFrameZ]"/> + <String name="SideFrameMaterial" value="tecmaterial:TEC_frame_side_5_7"/> + <Numeric name="SideFrameThick" value="[tecmodpar:SideFrameThick]"/> + <String name="SiFrSuppBoxMaterial" value="tecmaterial:TEC_SideFrSupBox"/> + <Numeric name="SideFrameRtheta" value="[SideFrameRtheta]"/> + <Numeric name="SideFrameRHeight" value="[SideFrameRHeight]"/> + <Numeric name="SideFrameRWidth" value="[SideFrameRWidth]"/> + <Numeric name="SideFrameLtheta" value="[SideFrameLtheta]"/> + <Numeric name="SideFrameLHeight" value="[SideFrameLHeight]"/> + <Numeric name="SideFrameLWidth" value="[SideFrameLWidth]"/> + <Numeric name="SiFrSuppBoxThick" value="[tecmodpar:SiFrSuppBoxThick]"/> + <Vector name="SiFrSuppBoxYPos" type="numeric" nEntries="2"> + 44.0*mm, 137.9*mm </Vector> + <Vector name="SiFrSuppBoxHeight" type="numeric" nEntries="2"> + 31.1*mm, 27.1*mm </Vector> + <Vector name="SiFrSuppBoxWidth" type="numeric" nEntries="2"> + 15.7*mm, 15.7*mm </Vector> + <Numeric name="SideFrameZ" value="[SideFrameZ]"/> + <String name="WaferMaterial" value="materials:Silicon"/> + <Numeric name="SideWidthTop" value="[SideWidthTop]"/> + <Numeric name="SideWidthBottom" value="[SideWidthBottom]"/> + <String name="WaferRotation" value="tecmodpar:RFI2"/> + <String name="ActiveMaterial" value="materials:Silicon"/> + <Numeric name="ActiveHeight" value="[ActiveHeight]"/> + <Numeric name="WaferThick" value="[tecmodpar:WaferThick2]"/> + <String name="ActiveRotation" value="tecmodpar:AR05"/> + <Numeric name="ActiveZ" value="[ActiveZ]"/> + <Numeric name="BackPlaneThick" value="2*[tracker:BackPlaneDz]"/> + <Numeric name="InactiveDy" value="[tecmodpar:InactiveDy]"/> + <Numeric name="InactivePos" value="[tecmodule5:InactiveStart]+[tecmodpar:InactiveDy]"/> + <String name="InactiveMaterial" value="materials:Silicon"/> + <String name="HybridMaterial" value="tecmaterial:TEC_Hybrid4APV"/> + <Numeric name="HybridHeight" value="[tecmodpar:HybridHeight]"/> + <Numeric name="HybridWidth" value="[tecmodpar:HybridWidth]"/> + <Numeric name="HybridThick" value="[tecmodpar:HybridThick]"/> + <Numeric name="HybridZ" value="[HybridZ]"/> + <String name="PitchMaterial" value="tecmaterial:TEC_PitchAdapter"/> + <Numeric name="PitchHeight" value="[tecmodpar:PitchHeight]"/> + <Numeric name="PitchThick" value="[tecmodpar:PitchThick]"/> + <Numeric name="PitchWidth" value="[PitchWidth]"/> + <Numeric name="PitchZ" value="[PitchZ]"/> + <String name="PitchRotation" value="tecmodpar:PITC"/> + <Numeric name="BridgeWidth" value="[BridgeWidth]"/> + <Numeric name="BridgeThick" value="[BridgeThick]"/> + <Numeric name="BridgeHeight" value="[BridgeHeight]"/> + <Numeric name="BridgeSeparation" value="[BridgeSeparation]"/> + <String name="BridgeMaterial" value="trackermaterial:T_Aluminium"/> + <Numeric name="WaferPosition" value="[tecmodpar:TopFrameHeight]"/> + <Vector name="SiReenforcementHeight" type="numeric" nEntries="2"> + 4.5*mm, 8.0*mm </Vector> + <Vector name="SiReenforcementWidth" type="numeric" nEntries="2"> + 95.0*mm, 85.0*mm </Vector> + <Vector name="SiReenforcementPosY" type="numeric" nEntries="2"> + 0.0001*mm, [tecmodule5:InactiveStart] - 8.00*mm /2</Vector> + <String name="SiReenforcementMaterial" value="tecmaterial:TEC_SiReenforcment"/> + <Numeric name="SiReenforcementThick" value="[tecmodpar:SiReenforcementThick]"/> + <Numeric name="NoOverlapShift" value="[tecmodpar:NoOverlapShift]"/> + <Numeric name="RPos" value="0.5*([tecmodule5:Rin]+[tecmodule5:Rout])+[PosCorrectionR]"/> + <String name="StandardRotation" value="tecmodpar:RPHI"/> + </Algorithm> +</DDDefinition> diff --git a/examples/DDCMS/data/tecmodule6.xml b/examples/DDCMS/data/tecmodule6.xml new file mode 100644 index 0000000000000000000000000000000000000000..cec2f9cf378d9f1b08076b1824fe48e1a5e2097f --- /dev/null +++ b/examples/DDCMS/data/tecmodule6.xml @@ -0,0 +1,127 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tecmodule6.xml" eval="true"> + <Constant name="Rin" value="84.61*cm"/> + <Constant name="Rout" value="110.17*cm"/> + <Constant name="isStereo" value="0"/> + <Constant name="FullHeight" value="20.7474000*cm"/> + <Constant name="ActiveHeight" value="20.4715500*cm"/> + <Constant name="DlTop" value="9.0713000*cm"/> + <Constant name="DlBottom" value="7.4012000*cm"/> + <Constant name="InactiveStart" value="109.712*mm"/> + <Constant name="SideWidthTop" value="0.1376009*cm"/> + <Constant name="SideWidthBottom" value="0.1262048*cm"/> + <Constant name="HybridZ" value="[TopFrameZ]+ 0.5*([tecmodpar:TopFrameThick] + [tecmodpar:HybridThick])"/> + <Constant name="TopFrameZ" value="[SideFrameZ]+ 0.5*(-[tecmodpar:SideFrameThick]+[tecmodpar:TopFrameThick])"/> + <Constant name="SideFrameZ" value="[ActiveZ]+0.5*(-[tecmodpar:WaferThick2] - [tecmodpar:SideFrameThick])"/> + <Constant name="PitchZ" value="[TopFrameZ] + 0.5*([tecmodpar:TopFrameThick] + [tecmodpar:PitchThick])"/> + <Constant name="DlHybrid" value="7.120*cm"/> + <Constant name="BridgeWidth" value="2.474*cm"/> + <Constant name="BridgeThick" value="0.224*cm"/> + <Constant name="BridgeHeight" value="1.888*cm"/> + <Constant name="BridgeSeparation" value="5.350*cm"/> + <Constant name="ModuleThick" value="[tecmodpar:ModuleThickSS]"/> + <Constant name="TopFrameTopWidth" value="77.1*mm"/> + <Constant name="TopFrameBotWidth" value="94.2*mm"/> + <Constant name="TopFrameHeight" value="37.2*mm"/> + <Constant name="ShiftZ" value="0.5*[tecmodpar:SideFrameThick]"/> + <Constant name="SideFrameRtheta" value="-0.040*rad"/> + <Constant name="SideFrameRHeight" value="210.8*mm"/> + <Constant name="SideFrameRWidth" value="13.9*mm"/> + <Constant name="SideFrameLtheta" value="0.040*rad"/> + <Constant name="SideFrameLHeight" value="210.8*mm"/> + <Constant name="SideFrameLWidth" value="15.3*mm"/> + <Constant name="ActiveZ" value="([tecmodpar:ActiveZ2]+[ShiftZ])"/> + <Constant name="PitchWidth" value="74.1*mm"/> + <Constant name="dPhi" value="2.2*asin(0.5*[TopFrameBotWidth]/([Rin]+[TopFrameHeight]))"/> + <Constant name="PosCorrectionR" value="-1.8632*mm"/> + </ConstantsSection> + <SolidSection label="tecmodule6.xml"> + <Tubs name="TECModule6" rMin="[Rin]" rMax="[Rout]" dz="0.5*[tecmodpar:ModuleThickSS]" startPhi="-[dPhi]/2" deltaPhi="[dPhi]"/> + </SolidSection> + <LogicalPartSection label="tecmodule6.xml"> + <LogicalPart name="TECModule6" category="unspecified"> + <rSolid name="tecmodule6:TECModule6"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + </LogicalPartSection> + <Algorithm name="track:DDTECModuleAlgo"> + <rParent name="tecmodule6:TECModule6"/> + <Numeric name="RingNo" value="6"/> + <Numeric name="isStereo" value="[isStereo]"/> + <String name="GeneralMaterial" value="materials:Air"/> + <Numeric name="ModuleThick" value="[tecmodpar:ModuleThick]"/> + <Numeric name="DetTilt" value="[tecmodpar:DetTilt]"/> + <Numeric name="FullHeight" value="[FullHeight]"/> + <Numeric name="DlTop" value="[DlTop]"/> + <Numeric name="DlBottom" value="[DlBottom]"/> + <Numeric name="DlHybrid" value="[DlHybrid]"/> + <Numeric name="FrameWidth" value="[tecmodpar:FrameWidth]"/> + <Numeric name="FrameThick" value="[ModuleThick]"/> + <Numeric name="FrameOver" value="[tecmodpar:FrameOver]"/> + <String name="TopFrameMaterial" value="tecmaterial:TEC_frame_top"/> + <Numeric name="TopFrameTopWidth" value="[TopFrameTopWidth]"/> + <Numeric name="TopFrameBotWidth" value="[TopFrameBotWidth]"/> + <Numeric name="TopFrameHeight" value="[TopFrameHeight]"/> + <Numeric name="TopFrameThick" value="[tecmodpar:TopFrameThick]"/> + <Numeric name="TopFrameZ" value="[TopFrameZ]"/> + <String name="SideFrameMaterial" value="tecmaterial:TEC_frame_side_5_7"/> + <Numeric name="SideFrameThick" value="[tecmodpar:SideFrameThick]"/> + <String name="SiFrSuppBoxMaterial" value="tecmaterial:TEC_SideFrSupBox"/> + <Numeric name="SideFrameRtheta" value="[SideFrameRtheta]"/> + <Numeric name="SideFrameRHeight" value="[SideFrameRHeight]"/> + <Numeric name="SideFrameRWidth" value="[SideFrameRWidth]"/> + <Numeric name="SideFrameLtheta" value="[SideFrameLtheta]"/> + <Numeric name="SideFrameLHeight" value="[SideFrameLHeight]"/> + <Numeric name="SideFrameLWidth" value="[SideFrameLWidth]"/> + <Numeric name="SiFrSuppBoxThick" value="[tecmodpar:SiFrSuppBoxThick]"/> + <Vector name="SiFrSuppBoxYPos" type="numeric" nEntries="2"> + 57.8*mm,161.9*mm </Vector> + <Vector name="SiFrSuppBoxHeight" type="numeric" nEntries="2"> + 31.9*mm,27.6*mm </Vector> + <Vector name="SiFrSuppBoxWidth" type="numeric" nEntries="2"> + 15.7*mm,15.7*mm </Vector> + <Numeric name="SideFrameZ" value="[SideFrameZ]"/> + <String name="WaferMaterial" value="materials:Silicon"/> + <Numeric name="SideWidthTop" value="[SideWidthTop]"/> + <Numeric name="SideWidthBottom" value="[SideWidthBottom]"/> + <String name="WaferRotation" value="tecmodpar:RFI2"/> + <String name="ActiveMaterial" value="materials:Silicon"/> + <Numeric name="ActiveHeight" value="[ActiveHeight]"/> + <Numeric name="WaferThick" value="[tecmodpar:WaferThick2]"/> + <String name="ActiveRotation" value="tecmodpar:ART6"/> + <Numeric name="ActiveZ" value="[ActiveZ]"/> + <Numeric name="BackPlaneThick" value="2*[tracker:BackPlaneDz]"/> + <Numeric name="InactiveDy" value="[tecmodpar:InactiveDy]"/> + <Numeric name="InactivePos" value="[tecmodule6:InactiveStart]+[tecmodpar:InactiveDy]"/> + <String name="InactiveMaterial" value="materials:Silicon"/> + <String name="HybridMaterial" value="tecmaterial:TEC_Hybrid4APV"/> + <Numeric name="HybridHeight" value="[tecmodpar:HybridHeight]"/> + <Numeric name="HybridWidth" value="[tecmodpar:HybridWidth]"/> + <Numeric name="HybridThick" value="[tecmodpar:HybridThick]"/> + <Numeric name="HybridZ" value="[HybridZ]"/> + <String name="PitchMaterial" value="tecmaterial:TEC_PitchAdapter"/> + <Numeric name="PitchHeight" value="[tecmodpar:PitchHeight]"/> + <Numeric name="PitchThick" value="[tecmodpar:PitchThick]"/> + <Numeric name="PitchWidth" value="[PitchWidth]"/> + <Numeric name="PitchZ" value="[PitchZ]"/> + <String name="PitchRotation" value="tecmodpar:PITC"/> + <Numeric name="BridgeWidth" value="[BridgeWidth]"/> + <Numeric name="BridgeThick" value="[BridgeThick]"/> + <Numeric name="BridgeHeight" value="[BridgeHeight]"/> + <Numeric name="BridgeSeparation" value="[BridgeSeparation]"/> + <String name="BridgeMaterial" value="trackermaterial:T_Aluminium"/> + <Numeric name="WaferPosition" value="[tecmodpar:TopFrameHeight]"/> + <Vector name="SiReenforcementHeight" type="numeric" nEntries="2"> + 4.9*mm, 8.0*mm </Vector> + <Vector name="SiReenforcementWidth" type="numeric" nEntries="2"> + 61.0*mm, 71.0*mm </Vector> + <Vector name="SiReenforcementPosY" type="numeric" nEntries="2"> + 0.0001*mm, [tecmodule6:InactiveStart] -8.0*mm/2 </Vector> + <String name="SiReenforcementMaterial" value="tecmaterial:TEC_SiReenforcment"/> + <Numeric name="SiReenforcementThick" value="[tecmodpar:SiReenforcementThick]"/> + <Numeric name="NoOverlapShift" value="[tecmodpar:NoOverlapShift]"/> + <Numeric name="RPos" value="0.5*([tecmodule6:Rin]+[tecmodule6:Rout])+[PosCorrectionR]"/> + <String name="StandardRotation" value="tecmodpar:RPHI"/> + </Algorithm> +</DDDefinition> diff --git a/examples/DDCMS/data/tecpetal0.xml b/examples/DDCMS/data/tecpetal0.xml new file mode 100644 index 0000000000000000000000000000000000000000..454621bccf2e8247e00b1d6b3a934bcd3cedec01 --- /dev/null +++ b/examples/DDCMS/data/tecpetal0.xml @@ -0,0 +1,12 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tecpetal0.xml" eval="true"> + <Constant name="PetalContRmin" value="22.90*cm"/> + <Constant name="PetalRmin" value="23.30*cm"/> + </ConstantsSection> + <SolidSection label="tecpetal0.xml"> + <Tubs name="TECPetalCont0" rMin="[PetalContRmin]" rMax="[tecpetpar:PetalContRmax]" dz="[tecpetpar:PetalContThick]/2" startPhi="-[tecpetpar:PetalContWidth]/2" deltaPhi="[tecpetpar:PetalContWidth]"/> + <Tubs name="TECPetal0" rMin="[PetalRmin]" rMax="[tecpetpar:PetalRmax]" dz="[tecpetpar:PetalThick]/2" startPhi="-[tecpetpar:PetalWidth]/2" deltaPhi="[tecpetpar:PetalWidth]"/> + <Tubs name="TECICBCont0" rMin="[PetalRmin]" rMax="[tecpetpar:ICBRmax]" dz="[tecpetpar:ICBThick]/2" startPhi="-[tecpetpar:ICBWidth]/2" deltaPhi="[tecpetpar:ICBWidth]"/> + </SolidSection> +</DDDefinition> diff --git a/examples/DDCMS/data/tecpetal0b.xml b/examples/DDCMS/data/tecpetal0b.xml new file mode 100644 index 0000000000000000000000000000000000000000..9bc402e1cbc9afd3d8e362e0733e31e3190fad78 --- /dev/null +++ b/examples/DDCMS/data/tecpetal0b.xml @@ -0,0 +1,445 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tecpetal0b.xml" eval="true"> + <Constant name="zero" value="0.0*fm"/> + <Constant name="ICCZ" value="([tecpetpar:ICBThick]-[tecpetpar:ICCThick])/2"/> + </ConstantsSection> + <SolidSection label="tecpetal0b.xml"> + <Tubs name="TECPetal0B" rMin="[tecpetal0:PetalRmin]" rMax="[tecpetalb:PetalR1]" dz="[tecpetpar:PetalThick]/2" startPhi="-[tecpetalb:PetalWidth0]/2" deltaPhi="[tecpetalb:PetalWidth0]"/> + </SolidSection> + <LogicalPartSection label="tecpetal0b.xml"> + <LogicalPart name="TECPetalCont0B" category="unspecified"> + <rSolid name="tecpetal0:TECPetalCont0"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TECPetalFrame0B" category="unspecified"> + <rSolid name="tecpetal0:TECPetal0"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TECPetal0B" category="unspecified"> + <rSolid name="tecpetal0b:TECPetal0B"/> + <rMaterial name="tecmaterial:TEC_petal"/> + </LogicalPart> + <LogicalPart name="TECPetal1B" category="unspecified"> + <rSolid name="tecpetalb:TECPetal1B"/> + <rMaterial name="tecmaterial:TEC_petal"/> + </LogicalPart> + <LogicalPart name="TECPetal2B" category="unspecified"> + <rSolid name="tecpetalb:TECPetal2B"/> + <rMaterial name="tecmaterial:TEC_petal"/> + </LogicalPart> + <LogicalPart name="TECICBCont0B1" category="unspecified"> + <rSolid name="tecpetal0:TECICBCont0"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TECICBCont0B2" category="unspecified"> + <rSolid name="tecpetal0:TECICBCont0"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + </LogicalPartSection> + <PosPartSection label="tecpetal0b.xml"> + <PosPart copyNumber="1"> + <rParent name="tecpetal0b:TECPetalCont0B"/> + <rChild name="tecring0b:TECRing0B"/> + <rRotation name="tecpetpar:180X"/> + <Translation x="[zero]" y="[zero]" z="[tecring0:RingZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal0b:TECPetalCont0B"/> + <rChild name="tecring1b:TECRing1B"/> + <Translation x="[zero]" y="[zero]" z="[tecring1:RingZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal0b:TECPetalCont0B"/> + <rChild name="tecring2b:TECRing2B"/> + <rRotation name="tecpetpar:180X"/> + <Translation x="[zero]" y="[zero]" z="[tecring2:RingZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal0b:TECPetalCont0B"/> + <rChild name="tecring3b:TECRing3B"/> + <Translation x="[zero]" y="[zero]" z="[tecring3:RingZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal0b:TECPetalCont0B"/> + <rChild name="tecring4b:TECRing4B"/> + <rRotation name="tecpetpar:180X"/> + <Translation x="[zero]" y="[zero]" z="[tecring4:RingZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal0b:TECPetalCont0B"/> + <rChild name="tecring5b:TECRing5B"/> + <Translation x="[zero]" y="[zero]" z="[tecring5:RingZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal0b:TECPetalCont0B"/> + <rChild name="tecring6b:TECRing6B"/> + <rRotation name="tecpetpar:180X"/> + <Translation x="[zero]" y="[zero]" z="[tecring6:RingZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal0b:TECPetalCont0B"/> + <rChild name="tecpetal0b:TECPetalFrame0B"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal0b:TECICBCont0B1"/> + <rChild name="tecpetalb:TECICC0LB1"/> + <Translation x="[zero]" y="[zero]" z="[ICCZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal0b:TECICBCont0B1"/> + <rChild name="tecpetalb:TECICC0LB2"/> + <Translation x="[zero]" y="[zero]" z="[ICCZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal0b:TECICBCont0B1"/> + <rChild name="tecpetalb:TECICC2B1"/> + <Translation x="[zero]" y="[zero]" z="[ICCZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal0b:TECICBCont0B1"/> + <rChild name="tecpetalb:TECICC2B2"/> + <Translation x="[zero]" y="[zero]" z="[ICCZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal0b:TECICBCont0B1"/> + <rChild name="tecpetalb:TECICC46B1"/> + <Translation x="[zero]" y="[zero]" z="[ICCZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal0b:TECICBCont0B1"/> + <rChild name="tecpetalb:TECICC46B2"/> + <Translation x="[zero]" y="[zero]" z="[ICCZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal0b:TECICBCont0B1"/> + <rChild name="tecpetalb:TECICC46B3"/> + <Translation x="[zero]" y="[zero]" z="[ICCZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal0b:TECICBCont0B2"/> + <rChild name="tecpetalb:TECICC1B1"/> + <Translation x="[zero]" y="[zero]" z="-[ICCZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal0b:TECICBCont0B2"/> + <rChild name="tecpetalb:TECICC1B2"/> + <Translation x="[zero]" y="[zero]" z="-[ICCZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal0b:TECICBCont0B2"/> + <rChild name="tecpetalb:TECICC1B3"/> + <Translation x="[zero]" y="[zero]" z="-[ICCZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal0b:TECICBCont0B2"/> + <rChild name="tecpetalb:TECICC35B1"/> + <Translation x="[zero]" y="[zero]" z="-[ICCZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal0b:TECICBCont0B2"/> + <rChild name="tecpetalb:TECICC35B2"/> + <Translation x="[zero]" y="[zero]" z="-[ICCZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal0b:TECICBCont0B2"/> + <rChild name="tecpetalb:TECICC35B3"/> + <Translation x="[zero]" y="[zero]" z="-[ICCZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal0b:TECICBCont0B2"/> + <rChild name="tecpetalb:TECICC35B4"/> + <Translation x="[zero]" y="[zero]" z="-[ICCZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal0b:TECICBCont0B2"/> + <rChild name="tecpetalb:TECICC35B5"/> + <Translation x="[zero]" y="[zero]" z="-[ICCZ]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tecpetal0b:TECPetal2B"/> + <rChild name="tecwheel:TECInnerManifold"/> + <Translation x="[zero]" y="[zero]" z="[zero]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal0b:TECPetalFrame0B"/> + <rChild name="tecpetal0b:TECPetal0B"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal0b:TECPetalFrame0B"/> + <rChild name="tecpetal0b:TECPetal1B"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal0b:TECPetalFrame0B"/> + <rChild name="tecpetal0b:TECPetal2B"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal0b:TECPetalCont0B"/> + <rChild name="tecpetal0b:TECICBCont0B1"/> + <Translation x="[zero]" y="[zero]" z="-[tecpetpar:ICBZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal0b:TECPetalCont0B"/> + <rChild name="tecpetal0b:TECICBCont0B2"/> + <Translation x="[zero]" y="[zero]" z="[tecpetpar:ICBZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal0b:TECICBCont0B2"/> + <rChild name="tecwheel:TECCCUM"/> + <Translation x="1050*mm" y="-100*mm" z="[tecpetpar:CCUMZ]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tecpetal0b:TECICBCont0B2"/> + <rChild name="tecwheel:TECCCUM"/> + <Translation x="700*mm" y="[zero]" z="[tecpetpar:CCUMZ]"/> + </PosPart> + </PosPartSection> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal0b:TECPetal0B"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="RPosition" value="283.326*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="2"> + 8.9423*deg ,-8.9423*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="2"> + tecpetpar:TECCool3,tecpetpar:TECCool3</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal0b:TECPetal0B"/> + <Numeric name="StartCopyNo" value="3"/> + <Numeric name="RPosition" value="348.172*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="2"> + 6.1003*deg ,-6.1003*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="2"> + tecpetpar:TECCool3,tecpetpar:TECCool3</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal0b:TECPetal0B"/> + <Numeric name="StartCopyNo" value="5"/> + <Numeric name="RPosition" value="372.842*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="4"> + 10.9517*deg ,8.6238*deg ,-8.6238*deg ,-10.9554*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="4"> + tecpetpar:TECCool5,tecpetpar:TECCool3,tecpetpar:TECCool3,tecpetpar:TECCool5</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal0b:TECPetal0B"/> + <Numeric name="StartCopyNo" value="9"/> + <Numeric name="RPosition" value="438.663*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="2"> + 4.8385*deg ,-4.8385*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="2"> + tecpetpar:TECCool3,tecpetpar:TECCool3</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal0b:TECPetal0B"/> + <Numeric name="StartCopyNo" value="11"/> + <Numeric name="RPosition" value="451.736*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="3"> + 9.9308*deg ,0.9308*deg ,-9.9308*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="3"> + tecpetpar:TECCool2,tecpetpar:TECCool1,tecpetpar:TECCool1</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal0b:TECPetal0B"/> + <Numeric name="StartCopyNo" value="14"/> + <Numeric name="RPosition" value="491.272*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="2"> + 4.829*deg ,-2.1851*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="2"> + tecpetpar:TECCool5,tecpetpar:TECCool5</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal0b:TECPetal0B"/> + <Numeric name="StartCopyNo" value="16"/> + <Numeric name="RPosition" value="529.973*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="3"> + 9*deg ,0*deg ,-9*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="3"> + tecpetpar:TECCool2,tecpetpar:TECCool1,tecpetpar:TECCool1</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal0b:TECPetal1B"/> + <Numeric name="StartCopyNo" value="19"/> + <Numeric name="RPosition" value="565.026*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="4"> + 10.3812*deg ,3.9526*deg ,-3.9526*deg ,-10.3812*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="4"> + tecpetpar:TECCool2,tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool2</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal0b:TECPetal1B"/> + <Numeric name="StartCopyNo" value="23"/> + <Numeric name="RPosition" value="646.359*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="4"> + 9.6429*deg ,3.2143*deg ,-3.2143*deg ,-9.6429*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="4"> + tecpetpar:TECCool2,tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool2</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal0b:TECPetal1B"/> + <Numeric name="StartCopyNo" value="27"/> + <Numeric name="RPosition" value="688.526*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="4"> + 14.144*deg ,5.144*deg ,-5.144*deg ,-14.144*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="4"> + tecpetpar:TECCool4,tecpetpar:TECCool3,tecpetpar:TECCool3,tecpetpar:TECCool4</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal0b:TECPetal1B"/> + <Numeric name="StartCopyNo" value="31"/> + <Numeric name="RPosition" value="705.35*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="3"> + 5.0584*deg ,-3.2876*deg ,-7.7907*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="3"> + tecpetpar:TECCool5,tecpetpar:TECCool5,tecpetpar:TECCool5</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal0b:TECPetal2B"/> + <Numeric name="StartCopyNo" value="34"/> + <Numeric name="RPosition" value="777.681*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="6"> + 11.727*deg ,6.273*deg ,2.727*deg ,-2.727*deg ,-6.273*deg ,-11.727*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="6"> + tecpetpar:TECCool4,tecpetpar:TECCool4,tecpetpar:TECCool3,tecpetpar:TECCool3,tecpetpar:TECCool4,tecpetpar:TECCool4</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal0b:TECPetal2B"/> + <Numeric name="StartCopyNo" value="40"/> + <Numeric name="RPosition" value="809.853*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="11"> + 11.729*deg ,9.3832*deg ,7.0374*deg ,4.6916*deg ,2.3458*deg ,0*deg ,-2.3458*deg ,-4.6916*deg ,-7.0374*deg ,-9.3832*deg ,-11.729*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="11"> + tecpetpar:TECCool5,tecpetpar:TECCool5,tecpetpar:TECCool5,tecpetpar:TECCool5,tecpetpar:TECCool5,tecpetpar:TECCool5,tecpetpar:TECCool5,tecpetpar:TECCool5,tecpetpar:TECCool5,tecpetpar:TECCool5,tecpetpar:TECCool5</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal0b:TECPetal2B"/> + <Numeric name="StartCopyNo" value="51"/> + <Numeric name="RPosition" value="826.305*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="4"> + 10.1935*deg ,3.7649*deg ,-3.7649*deg ,-10.1935*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="4"> + tecpetpar:TECCool2,tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool2</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal0b:TECPetal2B"/> + <Numeric name="StartCopyNo" value="55"/> + <Numeric name="RPosition" value="862.788*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="6"> + 11.25*deg ,6.75*deg ,2.25*deg ,-2.25*deg ,-6.75*deg ,-11.25*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="6"> + tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool1</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal0b:TECPetal2B"/> + <Numeric name="StartCopyNo" value="61"/> + <Numeric name="RPosition" value="937.93*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="6"> + 8.6894*deg ,4.1677*deg ,2.2608*deg ,-2.2608*deg ,-4.1677*deg ,-8.6894*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="6"> + tecpetpar:TECCool2,tecpetpar:TECCool2,tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool2,tecpetpar:TECCool2</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal0b:TECPetal2B"/> + <Numeric name="StartCopyNo" value="67"/> + <Numeric name="RPosition" value="997.895*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="8"> + 11.6983*deg ,6.3017*deg ,2.6983*deg ,-1.8017*deg ,-2.6983*deg ,-6.3017*deg ,-7.1983*deg ,-11.6983*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="8"> + tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool5,tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool5,tecpetpar:TECCool1</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal0b:TECPetal2B"/> + <Numeric name="StartCopyNo" value="75"/> + <Numeric name="RPosition" value="1040.55*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="1"> + 10.0576*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="1"> + tecpetpar:TECCool5</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal0b:TECPetal2B"/> + <Numeric name="StartCopyNo" value="76"/> + <Numeric name="RPosition" value="1068.17*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="1"> + 10.0624*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="1"> + tecpetpar:TECCool5</Vector> + </Algorithm> + <Algorithm name="track:DDTECOptoHybAlgo"> + <rParent name="tecpetal0b:TECICBCont0B1"/> + <Numeric name="StartCopyNo" value="1"/> + <String name="ChildName" value="tecpetpar:TECOptoHybridShort"/> + <Numeric name="OptoWidth" value="[tecpetpar:HybridHeight]"/> + <Numeric name="OptoHeight" value="[tecpetpar:HybridWidth]"/> + <Numeric name="Rpos" value="357.959*mm"/> + <Numeric name="Zpos" value="-[tecpetpar:HybridZ]"/> + <Vector name="Angles" type="numeric" nEntries="2"> + 11.4354*deg ,-7.7539*deg</Vector> + </Algorithm> + <Algorithm name="track:DDTECOptoHybAlgo"> + <rParent name="tecpetal0b:TECICBCont0B2"/> + <Numeric name="StartCopyNo" value="3"/> + <String name="ChildName" value="tecpetpar:TECOptoHybrid"/> + <Numeric name="OptoWidth" value="[tecpetpar:HybridWidth]"/> + <Numeric name="OptoHeight" value="[tecpetpar:HybridHeight]"/> + <Numeric name="Rpos" value="471.195*mm"/> + <Numeric name="Zpos" value="[tecpetpar:HybridZ]"/> + <Vector name="Angles" type="numeric" nEntries="2"> + 6.6727*deg ,-0.339*deg</Vector> + </Algorithm> + <Algorithm name="track:DDTECOptoHybAlgo"> + <rParent name="tecpetal0b:TECICBCont0B1"/> + <Numeric name="StartCopyNo" value="5"/> + <String name="ChildName" value="tecpetpar:TECOptoHybrid"/> + <Numeric name="OptoWidth" value="[tecpetpar:HybridWidth]"/> + <Numeric name="OptoHeight" value="[tecpetpar:HybridHeight]"/> + <Numeric name="Rpos" value="562.517*mm"/> + <Numeric name="Zpos" value="-[tecpetpar:HybridZ]"/> + <Vector name="Angles" type="numeric" nEntries="2"> + 5.4762*deg ,-2.429*deg</Vector> + </Algorithm> + <Algorithm name="track:DDTECOptoHybAlgo"> + <rParent name="tecpetal0b:TECICBCont0B2"/> + <Numeric name="StartCopyNo" value="7"/> + <String name="ChildName" value="tecpetpar:TECOptoHybrid"/> + <Numeric name="OptoWidth" value="[tecpetpar:HybridWidth]"/> + <Numeric name="OptoHeight" value="[tecpetpar:HybridHeight]"/> + <Numeric name="Rpos" value="685.152*mm"/> + <Numeric name="Zpos" value="[tecpetpar:HybridZ]"/> + <Vector name="Angles" type="numeric" nEntries="3"> + 6.3214*deg ,-2.0241*deg ,-6.5265*deg</Vector> + </Algorithm> + <Algorithm name="track:DDTECOptoHybAlgo"> + <rParent name="tecpetal0b:TECICBCont0B1"/> + <Numeric name="StartCopyNo" value="10"/> + <String name="ChildName" value="tecpetpar:TECOptoHybrid"/> + <Numeric name="OptoWidth" value="[tecpetpar:HybridWidth]"/> + <Numeric name="OptoHeight" value="[tecpetpar:HybridHeight]"/> + <Numeric name="Rpos" value="807.452*mm"/> + <Numeric name="Zpos" value="-[tecpetpar:HybridZ]"/> + <Vector name="Angles" type="numeric" nEntries="11"> + 12.7924*deg ,10.4466*deg ,8.1008*deg ,5.755*deg ,3.4092*deg ,1.0634*deg ,-1.2824*deg ,-3.6282*deg ,-5.974*deg ,-8.3197*deg ,-10.6655*deg</Vector> + </Algorithm> + <Algorithm name="track:DDTECOptoHybAlgo"> + <rParent name="tecpetal0b:TECICBCont0B2"/> + <Numeric name="StartCopyNo" value="21"/> + <String name="ChildName" value="tecpetpar:TECOptoHybrid"/> + <Numeric name="OptoWidth" value="[tecpetpar:HybridWidth]"/> + <Numeric name="OptoHeight" value="[tecpetpar:HybridHeight]"/> + <Numeric name="Rpos" value="977.634*mm"/> + <Numeric name="Zpos" value="[tecpetpar:HybridZ]"/> + <Vector name="Angles" type="numeric" nEntries="3"> + 7.1858*deg ,-0.9183*deg ,-6.3149*deg</Vector> + </Algorithm> + <Algorithm name="track:DDTECOptoHybAlgo"> + <rParent name="tecpetal0b:TECICBCont0B2"/> + <Numeric name="StartCopyNo" value="1"/> + <String name="ChildName" value="tecpetpar:TECDigiOptoHybModule"/> + <Numeric name="OptoHeight" value="[tecpetpar:DOHMWidth]"/> + <Numeric name="OptoWidth" value="[tecpetpar:DOHMHeight]"/> + <Numeric name="Rpos" value="1022.726*mm"/> + <Numeric name="Zpos" value="[tecpetpar:DOHMZ]"/> + <Vector name="Angles" type="numeric" nEntries="1"> + 11.372*deg</Vector> + </Algorithm> +</DDDefinition> diff --git a/examples/DDCMS/data/tecpetal0f.xml b/examples/DDCMS/data/tecpetal0f.xml new file mode 100644 index 0000000000000000000000000000000000000000..6321887fce763daa98981641f4466d74d123ecb5 --- /dev/null +++ b/examples/DDCMS/data/tecpetal0f.xml @@ -0,0 +1,445 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tecpetal0f.xml" eval="true"> + <Constant name="zero" value="0.0*fm"/> + <Constant name="ICCZ" value="([tecpetpar:ICBThick]-[tecpetpar:ICCThick])/2"/> + </ConstantsSection> + <SolidSection label="tecpetal0f.xml"> + <Tubs name="TECPetal0F" rMin="[tecpetal0:PetalRmin]" rMax="[tecpetalf:PetalR1]" dz="[tecpetpar:PetalThick]/2" startPhi="-[tecpetalf:PetalWidth0]/2" deltaPhi="[tecpetalf:PetalWidth0]"/> + </SolidSection> + <LogicalPartSection label="tecpetal0f.xml"> + <LogicalPart name="TECPetalCont0F" category="unspecified"> + <rSolid name="tecpetal0:TECPetalCont0"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TECPetalFrame0F" category="unspecified"> + <rSolid name="tecpetal0:TECPetal0"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TECPetal0F" category="unspecified"> + <rSolid name="tecpetal0f:TECPetal0F"/> + <rMaterial name="tecmaterial:TEC_petal"/> + </LogicalPart> + <LogicalPart name="TECPetal1F" category="unspecified"> + <rSolid name="tecpetalf:TECPetal1F"/> + <rMaterial name="tecmaterial:TEC_petal"/> + </LogicalPart> + <LogicalPart name="TECPetal2F" category="unspecified"> + <rSolid name="tecpetalf:TECPetal2F"/> + <rMaterial name="tecmaterial:TEC_petal"/> + </LogicalPart> + <LogicalPart name="TECICBCont0F1" category="unspecified"> + <rSolid name="tecpetal0:TECICBCont0"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TECICBCont0F2" category="unspecified"> + <rSolid name="tecpetal0:TECICBCont0"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + </LogicalPartSection> + <PosPartSection label="tecpetal0f.xml"> + <PosPart copyNumber="1"> + <rParent name="tecpetal0f:TECPetalCont0F"/> + <rChild name="tecring0f:TECRing0F"/> + <rRotation name="tecpetpar:180X"/> + <Translation x="[zero]" y="[zero]" z="[tecring0:RingZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal0f:TECPetalCont0F"/> + <rChild name="tecring1f:TECRing1F"/> + <Translation x="[zero]" y="[zero]" z="[tecring1:RingZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal0f:TECPetalCont0F"/> + <rChild name="tecring2f:TECRing2F"/> + <rRotation name="tecpetpar:180X"/> + <Translation x="[zero]" y="[zero]" z="[tecring2:RingZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal0f:TECPetalCont0F"/> + <rChild name="tecring3f:TECRing3F"/> + <Translation x="[zero]" y="[zero]" z="[tecring3:RingZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal0f:TECPetalCont0F"/> + <rChild name="tecring4f:TECRing4F"/> + <rRotation name="tecpetpar:180X"/> + <Translation x="[zero]" y="[zero]" z="[tecring4:RingZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal0f:TECPetalCont0F"/> + <rChild name="tecring5f:TECRing5F"/> + <Translation x="[zero]" y="[zero]" z="[tecring5:RingZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal0f:TECPetalCont0F"/> + <rChild name="tecring6f:TECRing6F"/> + <rRotation name="tecpetpar:180X"/> + <Translation x="[zero]" y="[zero]" z="[tecring6:RingZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal0f:TECPetalCont0F"/> + <rChild name="tecpetal0f:TECPetalFrame0F"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal0f:TECPetalFrame0F"/> + <rChild name="tecpetal0f:TECPetal0F"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal0f:TECPetalFrame0F"/> + <rChild name="tecpetal0f:TECPetal1F"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal0f:TECPetalFrame0F"/> + <rChild name="tecpetal0f:TECPetal2F"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal0f:TECPetalCont0F"/> + <rChild name="tecpetal0f:TECICBCont0F1"/> + <Translation x="[zero]" y="[zero]" z="-[tecpetpar:ICBZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal0f:TECPetalCont0F"/> + <rChild name="tecpetal0f:TECICBCont0F2"/> + <Translation x="[zero]" y="[zero]" z="[tecpetpar:ICBZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal0f:TECICBCont0F1"/> + <rChild name="tecpetalf:TECICC0F1"/> + <Translation x="[zero]" y="[zero]" z="[ICCZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal0f:TECICBCont0F1"/> + <rChild name="tecpetalf:TECICC0F2"/> + <Translation x="[zero]" y="[zero]" z="[ICCZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal0f:TECICBCont0F1"/> + <rChild name="tecpetalf:TECICC2F1"/> + <Translation x="[zero]" y="[zero]" z="[ICCZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal0f:TECICBCont0F1"/> + <rChild name="tecpetalf:TECICC2F2"/> + <Translation x="[zero]" y="[zero]" z="[ICCZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal0f:TECICBCont0F1"/> + <rChild name="tecpetalf:TECICC46F1"/> + <Translation x="[zero]" y="[zero]" z="[ICCZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal0f:TECICBCont0F1"/> + <rChild name="tecpetalf:TECICC46F2"/> + <Translation x="[zero]" y="[zero]" z="[ICCZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal0f:TECICBCont0F2"/> + <rChild name="tecpetalf:TECICC01LF1"/> + <Translation x="[zero]" y="[zero]" z="-[ICCZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal0f:TECICBCont0F2"/> + <rChild name="tecpetalf:TECICC01LF2"/> + <Translation x="[zero]" y="[zero]" z="-[ICCZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal0f:TECICBCont0F2"/> + <rChild name="tecpetalf:TECICC01LF3"/> + <Translation x="[zero]" y="[zero]" z="-[ICCZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal0f:TECICBCont0F2"/> + <rChild name="tecpetalf:TECICC01LF4"/> + <Translation x="[zero]" y="[zero]" z="-[ICCZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal0f:TECICBCont0F2"/> + <rChild name="tecpetalf:TECICC35F1"/> + <Translation x="[zero]" y="[zero]" z="-[ICCZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal0f:TECICBCont0F2"/> + <rChild name="tecpetalf:TECICC35F2"/> + <Translation x="[zero]" y="[zero]" z="-[ICCZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal0f:TECICBCont0F2"/> + <rChild name="tecpetalf:TECICC35F3"/> + <Translation x="[zero]" y="[zero]" z="-[ICCZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal0f:TECICBCont0F2"/> + <rChild name="tecpetalf:TECICC35F4"/> + <Translation x="[zero]" y="[zero]" z="-[ICCZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal0f:TECICBCont0F2"/> + <rChild name="tecpetalf:TECICC35F5"/> + <Translation x="[zero]" y="[zero]" z="-[ICCZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal0f:TECPetal2F"/> + <rChild name="tecwheel:TECInnerManifold"/> + <Translation x="[zero]" y="[zero]" z="[zero]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal0f:TECICBCont0F2"/> + <rChild name="tecwheel:TECCCUM"/> + <Translation x="1050*mm" y="100*mm" z="[tecpetpar:CCUMZ]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tecpetal0f:TECICBCont0F2"/> + <rChild name="tecwheel:TECCCUM"/> + <Translation x="700*mm" y="[zero]" z="[tecpetpar:CCUMZ]"/> + </PosPart> + </PosPartSection> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal0f:TECPetal0F"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="RPosition" value="283.326*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="7"> + 16.4423*deg ,12.3634*deg ,4.3695*deg ,-1.4423*deg ,-5.5235*deg ,-13.5079*deg ,-16.4423*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="7"> + tecpetpar:TECCool3,tecpetpar:TECCool5,tecpetpar:TECCool5,tecpetpar:TECCool3,tecpetpar:TECCool5,tecpetpar:TECCool5,tecpetpar:TECCool4</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal0f:TECPetal0F"/> + <Numeric name="StartCopyNo" value="8"/> + <Numeric name="RPosition" value="348.172*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="4"> + 13.6003*deg ,1.3997*deg ,-1.3997*deg ,-13.6003*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="4"> + tecpetpar:TECCool3,tecpetpar:TECCool3,tecpetpar:TECCool4,tecpetpar:TECCool4</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal0f:TECPetal0F"/> + <Numeric name="StartCopyNo" value="12"/> + <Numeric name="RPosition" value="373.084*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="3"> + 16.1238*deg ,1.1238*deg ,-16.1238*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="3"> + tecpetpar:TECCool4,tecpetpar:TECCool3,tecpetpar:TECCool3</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal0f:TECPetal0F"/> + <Numeric name="StartCopyNo" value="15"/> + <Numeric name="RPosition" value="438.663*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="4"> + 12.3385*deg ,2.6615*deg ,-2.6615*deg ,-12.3385*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="4"> + tecpetpar:TECCool4,tecpetpar:TECCool4,tecpetpar:TECCool3,tecpetpar:TECCool3</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal0f:TECPetal0F"/> + <Numeric name="StartCopyNo" value="19"/> + <Numeric name="RPosition" value="451.736*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="4"> + 14.4308*deg ,5.4308*deg ,-5.4308*deg ,-14.4308*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="4"> + tecpetpar:TECCool2,tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool2</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal0f:TECPetal0F"/> + <Numeric name="StartCopyNo" value="23"/> + <Numeric name="RPosition" value="491.326*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="4"> + 9.6429*deg ,5.2432*deg ,-5.3537*deg ,-9.7534*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="4"> + tecpetpar:TECCool5,tecpetpar:TECCool5,tecpetpar:TECCool5,tecpetpar:TECCool5</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal0f:TECPetal0F"/> + <Numeric name="StartCopyNo" value="27"/> + <Numeric name="RPosition" value="529.973*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="4"> + 13.5*deg ,4.5*deg ,-4.5*deg ,-13.5*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="4"> + tecpetpar:TECCool2,tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool2</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal0f:TECPetal1F"/> + <Numeric name="StartCopyNo" value="31"/> + <Numeric name="RPosition" value="565.026*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="7"> + 13.5955*deg ,9.3071*deg ,5.6902*deg ,0.7383*deg ,-7.1669*deg ,-8.7012*deg ,-13.5955*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="7"> + tecpetpar:TECCool1,tecpetpar:TECCool5,tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool5,tecpetpar:TECCool2</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal0f:TECPetal1F"/> + <Numeric name="StartCopyNo" value="38"/> + <Numeric name="RPosition" value="646.359*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="5"> + 12.8571*deg ,6.4286*deg ,0*deg ,-6.4286*deg ,-12.8571*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="5"> + tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool2</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal0f:TECPetal1F"/> + <Numeric name="StartCopyNo" value="43"/> + <Numeric name="RPosition" value="688.526*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="3"> + 9.644*deg ,-0.644*deg ,-9.644*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="3"> + tecpetpar:TECCool3,tecpetpar:TECCool3,tecpetpar:TECCool4</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal0f:TECPetal1F"/> + <Numeric name="StartCopyNo" value="46"/> + <Numeric name="RPosition" value="705.393*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="4"> + 8.0585*deg ,2.4756*deg ,-5.2453*deg ,-11.2274*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="4"> + tecpetpar:TECCool5,tecpetpar:TECCool5,tecpetpar:TECCool5,tecpetpar:TECCool5</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal0f:TECPetal1F"/> + <Numeric name="StartCopyNo" value="50"/> + <Numeric name="RPosition" value="777.681*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="4"> + 7.227*deg ,1.773*deg ,-1.773*deg ,-7.227*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="4"> + tecpetpar:TECCool3,tecpetpar:TECCool3,tecpetpar:TECCool4,tecpetpar:TECCool4</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal0f:TECPetal1F"/> + <Numeric name="StartCopyNo" value="54"/> + <Numeric name="RPosition" value="809.358*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="9"> + 8.8981*deg ,6.5507*deg ,4.2142*deg ,1.8718*deg ,-0.4758*deg ,-2.8175*deg ,-5.1527*deg ,-7.4972*deg ,-9.8497*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="9"> + tecpetpar:TECCool5,tecpetpar:TECCool5,tecpetpar:TECCool5,tecpetpar:TECCool5,tecpetpar:TECCool5,tecpetpar:TECCool5,tecpetpar:TECCool5,tecpetpar:TECCool5,tecpetpar:TECCool5</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal0f:TECPetal1F"/> + <Numeric name="StartCopyNo" value="63"/> + <Numeric name="RPosition" value="826.305*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="5"> + 13.4078*deg ,5.8779*deg ,0.5506*deg ,-6.9792*deg ,-13.4078*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="5"> + tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool2</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal0f:TECPetal1F"/> + <Numeric name="StartCopyNo" value="68"/> + <Numeric name="RPosition" value="862.788*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="6"> + 11.25*deg ,6.75*deg ,2.25*deg ,-2.25*deg ,-6.75*deg ,-11.25*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="6"> + tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool1</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal0f:TECPetal2F"/> + <Numeric name="StartCopyNo" value="74"/> + <Numeric name="RPosition" value="937.93*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="8"> + 11.9037*deg ,7.382*deg ,5.4751*deg ,0.9535*deg ,-0.9535*deg ,-5.4751*deg ,-7.382*deg ,-11.9037*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="8"> + tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool2,tecpetpar:TECCool2,tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool2,tecpetpar:TECCool2</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal0f:TECPetal2F"/> + <Numeric name="StartCopyNo" value="82"/> + <Numeric name="RPosition" value="997.895*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="8"> + 11.6983*deg ,7.1983*deg ,6.3017*deg ,2.6983*deg ,-2.6983*deg ,-6.3017*deg ,-10.1082*deg ,-11.6983*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="8"> + tecpetpar:TECCool1,tecpetpar:TECCool5,tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool5,tecpetpar:TECCool1</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal0f:TECPetal2F"/> + <Numeric name="StartCopyNo" value="90"/> + <Numeric name="RPosition" value="1037.61*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="1"> + -9.9912*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="1"> + tecpetpar:TECCool5</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal0f:TECPetal2F"/> + <Numeric name="StartCopyNo" value="91"/> + <Numeric name="RPosition" value="1065.23*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="1"> + -9.9978*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="1"> + tecpetpar:TECCool5</Vector> + </Algorithm> + <Algorithm name="track:DDTECOptoHybAlgo"> + <rParent name="tecpetal0f:TECICBCont0F2"/> + <Numeric name="StartCopyNo" value="1"/> + <String name="ChildName" value="tecpetpar:TECOptoHybrid"/> + <Numeric name="OptoWidth" value="[tecpetpar:HybridWidth]"/> + <Numeric name="OptoHeight" value="[tecpetpar:HybridHeight]"/> + <Numeric name="Rpos" value="262.048*mm"/> + <Numeric name="Zpos" value="[tecpetpar:HybridZ]"/> + <Vector name="Angles" type="numeric" nEntries="4"> + 16.4735*deg ,8.4741*deg ,-1.419*deg ,-9.4175*deg</Vector> + </Algorithm> + <Algorithm name="track:DDTECOptoHybAlgo"> + <rParent name="tecpetal0f:TECICBCont0F2"/> + <Numeric name="StartCopyNo" value="5"/> + <String name="ChildName" value="tecpetpar:TECOptoHybrid"/> + <Numeric name="OptoWidth" value="[tecpetpar:HybridWidth]"/> + <Numeric name="OptoHeight" value="[tecpetpar:HybridHeight]"/> + <Numeric name="Rpos" value="471.051*mm"/> + <Numeric name="Zpos" value="[tecpetpar:HybridZ]"/> + <Vector name="Angles" type="numeric" nEntries="4"> + 11.9412*deg ,7.5404*deg ,-3.0597*deg ,-7.4597*deg</Vector> + </Algorithm> + <Algorithm name="track:DDTECOptoHybAlgo"> + <rParent name="tecpetal0f:TECICBCont0F1"/> + <Numeric name="StartCopyNo" value="9"/> + <String name="ChildName" value="tecpetpar:TECOptoHybrid"/> + <Numeric name="OptoWidth" value="[tecpetpar:HybridWidth]"/> + <Numeric name="OptoHeight" value="[tecpetpar:HybridHeight]"/> + <Numeric name="Rpos" value="562.721*mm"/> + <Numeric name="Zpos" value="-[tecpetpar:HybridZ]"/> + <Vector name="Angles" type="numeric" nEntries="3"> + 11.2453*deg ,2.6765*deg ,-6.8472*deg</Vector> + </Algorithm> + <Algorithm name="track:DDTECOptoHybAlgo"> + <rParent name="tecpetal0f:TECICBCont0F2"/> + <Numeric name="StartCopyNo" value="12"/> + <String name="ChildName" value="tecpetpar:TECOptoHybrid"/> + <Numeric name="OptoWidth" value="[tecpetpar:HybridWidth]"/> + <Numeric name="OptoHeight" value="[tecpetpar:HybridHeight]"/> + <Numeric name="Rpos" value="685.052*mm"/> + <Numeric name="Zpos" value="[tecpetpar:HybridZ]"/> + <Vector name="Angles" type="numeric" nEntries="4"> + 9.6425*deg ,4.0592*deg ,-3.6616*deg ,-9.643*deg</Vector> + </Algorithm> + <Algorithm name="track:DDTECOptoHybAlgo"> + <rParent name="tecpetal0f:TECICBCont0F1"/> + <Numeric name="StartCopyNo" value="16"/> + <String name="ChildName" value="tecpetpar:TECOptoHybrid"/> + <Numeric name="OptoWidth" value="[tecpetpar:HybridWidth]"/> + <Numeric name="OptoHeight" value="[tecpetpar:HybridHeight]"/> + <Numeric name="Rpos" value="807.002*mm"/> + <Numeric name="Zpos" value="-[tecpetpar:HybridZ]"/> + <Vector name="Angles" type="numeric" nEntries="9"> + 10.2499*deg ,7.9025*deg ,5.5659*deg ,3.2235*deg ,0.8753*deg ,-1.4658*deg ,-3.801*deg ,-6.1455*deg ,-8.5563*deg</Vector> + </Algorithm> + <Algorithm name="track:DDTECOptoHybAlgo"> + <rParent name="tecpetal0f:TECICBCont0F2"/> + <Numeric name="StartCopyNo" value="25"/> + <String name="ChildName" value="tecpetpar:TECOptoHybrid"/> + <Numeric name="OptoWidth" value="[tecpetpar:HybridWidth]"/> + <Numeric name="OptoHeight" value="[tecpetpar:HybridHeight]"/> + <Numeric name="Rpos" value="977.591*mm"/> + <Numeric name="Zpos" value="[tecpetpar:HybridZ]"/> + <Vector name="Angles" type="numeric" nEntries="3"> + 8.3153*deg ,3.8227*deg ,-5.1984*deg</Vector> + </Algorithm> + <Algorithm name="track:DDTECOptoHybAlgo"> + <rParent name="tecpetal0f:TECICBCont0F2"/> + <Numeric name="StartCopyNo" value="28"/> + <String name="ChildName" value="tecpetpar:TECOptoHybridShort"/> + <Numeric name="OptoWidth" value="[tecpetpar:HybridHeight]"/> + <Numeric name="OptoHeight" value="[tecpetpar:HybridWidth]"/> + <Numeric name="Rpos" value="977.591*mm"/> + <Numeric name="Zpos" value="[tecpetpar:HybridZ]"/> + <Vector name="Angles" type="numeric" nEntries="1"> + -9.9916*deg</Vector> + </Algorithm> +</DDDefinition> diff --git a/examples/DDCMS/data/tecpetal3.xml b/examples/DDCMS/data/tecpetal3.xml new file mode 100644 index 0000000000000000000000000000000000000000..14afd9ed6c65daa31220e11150d18b018fccba30 --- /dev/null +++ b/examples/DDCMS/data/tecpetal3.xml @@ -0,0 +1,12 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tecpetal3.xml" eval="true"> + <Constant name="PetalContRmin" value="30.90*cm"/> + <Constant name="PetalRmin" value="31.30*cm"/> + </ConstantsSection> + <SolidSection label="tecpetal3.xml"> + <Tubs name="TECPetalCont3" rMin="[PetalContRmin]" rMax="[tecpetpar:PetalContRmax]" dz="[tecpetpar:PetalContThick]/2" startPhi="-[tecpetpar:PetalContWidth]/2" deltaPhi="[tecpetpar:PetalContWidth]"/> + <Tubs name="TECPetal3" rMin="[PetalRmin]" rMax="[tecpetpar:PetalRmax]" dz="[tecpetpar:PetalThick]/2" startPhi="-[tecpetpar:PetalWidth]/2" deltaPhi="[tecpetpar:PetalWidth]"/> + <Tubs name="TECICBCont3" rMin="[PetalRmin]" rMax="[tecpetpar:ICBRmax]" dz="[tecpetpar:ICBThick]/2" startPhi="-[tecpetpar:ICBWidth]/2" deltaPhi="[tecpetpar:ICBWidth]"/> + </SolidSection> +</DDDefinition> diff --git a/examples/DDCMS/data/tecpetal3b.xml b/examples/DDCMS/data/tecpetal3b.xml new file mode 100644 index 0000000000000000000000000000000000000000..9ddcc36838ce18b56273615cdde7a86911444420 --- /dev/null +++ b/examples/DDCMS/data/tecpetal3b.xml @@ -0,0 +1,390 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tecpetal3b.xml" eval="true"> + <Constant name="zero" value="0.0*fm"/> + <Constant name="ICCZ" value="([tecpetpar:ICBThick]-[tecpetpar:ICCThick])/2"/> + </ConstantsSection> + <SolidSection label="tecpetal3b.xml"> + <Tubs name="TECPetal3B" rMin="[tecpetal3:PetalRmin]" rMax="[tecpetalb:PetalR1]" dz="[tecpetpar:PetalThick]/2" startPhi="-[tecpetalb:PetalWidth0]/2" deltaPhi="[tecpetalb:PetalWidth0]"/> + </SolidSection> + <LogicalPartSection label="tecpetal3b.xml"> + <LogicalPart name="TECPetalCont3B" category="unspecified"> + <rSolid name="tecpetal3:TECPetalCont3"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TECPetalFrame3B" category="unspecified"> + <rSolid name="tecpetal3:TECPetal3"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TECPetal3B" category="unspecified"> + <rSolid name="tecpetal3b:TECPetal3B"/> + <rMaterial name="tecmaterial:TEC_petal"/> + </LogicalPart> + <LogicalPart name="TECPetal4B" category="unspecified"> + <rSolid name="tecpetalb:TECPetal1B"/> + <rMaterial name="tecmaterial:TEC_petal"/> + </LogicalPart> + <LogicalPart name="TECPetal5B" category="unspecified"> + <rSolid name="tecpetalb:TECPetal2B"/> + <rMaterial name="tecmaterial:TEC_petal"/> + </LogicalPart> + <LogicalPart name="TECICBCont3B1" category="unspecified"> + <rSolid name="tecpetal3:TECICBCont3"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TECICBCont3B2" category="unspecified"> + <rSolid name="tecpetal3:TECICBCont3"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + </LogicalPartSection> + <PosPartSection label="tecpetal3b.xml"> + <PosPart copyNumber="1"> + <rParent name="tecpetal3b:TECPetalCont3B"/> + <rChild name="tecring1b:TECRing1B"/> + <Translation x="[zero]" y="[zero]" z="[tecring1:RingZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal3b:TECPetalCont3B"/> + <rChild name="tecring2b:TECRing2B"/> + <rRotation name="tecpetpar:180X"/> + <Translation x="[zero]" y="[zero]" z="[tecring2:RingZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal3b:TECPetalCont3B"/> + <rChild name="tecring3b:TECRing3B"/> + <Translation x="[zero]" y="[zero]" z="[tecring3:RingZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal3b:TECPetalCont3B"/> + <rChild name="tecring4b:TECRing4B"/> + <rRotation name="tecpetpar:180X"/> + <Translation x="[zero]" y="[zero]" z="[tecring4:RingZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal3b:TECPetalCont3B"/> + <rChild name="tecring5b:TECRing5B"/> + <Translation x="[zero]" y="[zero]" z="[tecring5:RingZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal3b:TECPetalCont3B"/> + <rChild name="tecring6b:TECRing6B"/> + <rRotation name="tecpetpar:180X"/> + <Translation x="[zero]" y="[zero]" z="[tecring6:RingZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal3b:TECPetalCont3B"/> + <rChild name="tecpetal3b:TECPetalFrame3B"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal3b:TECPetalFrame3B"/> + <rChild name="tecpetal3b:TECPetal3B"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal3b:TECPetalFrame3B"/> + <rChild name="tecpetal3b:TECPetal4B"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal3b:TECPetalFrame3B"/> + <rChild name="tecpetal3b:TECPetal5B"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal3b:TECPetalCont3B"/> + <rChild name="tecpetal3b:TECICBCont3B1"/> + <Translation x="[zero]" y="[zero]" z="-[tecpetpar:ICBZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal3b:TECPetalCont3B"/> + <rChild name="tecpetal3b:TECICBCont3B2"/> + <Translation x="[zero]" y="[zero]" z="[tecpetpar:ICBZ]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tecpetal3b:TECICBCont3B1"/> + <rChild name="tecpetalb:TECICC2B1"/> + <Translation x="[zero]" y="[zero]" z="[ICCZ]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tecpetal3b:TECICBCont3B1"/> + <rChild name="tecpetalb:TECICC2B2"/> + <Translation x="[zero]" y="[zero]" z="[ICCZ]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tecpetal3b:TECICBCont3B1"/> + <rChild name="tecpetalb:TECICC46B1"/> + <Translation x="[zero]" y="[zero]" z="[ICCZ]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tecpetal3b:TECICBCont3B1"/> + <rChild name="tecpetalb:TECICC46B2"/> + <Translation x="[zero]" y="[zero]" z="[ICCZ]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tecpetal3b:TECICBCont3B1"/> + <rChild name="tecpetalb:TECICC46B3"/> + <Translation x="[zero]" y="[zero]" z="[ICCZ]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tecpetal3b:TECICBCont3B2"/> + <rChild name="tecpetalb:TECICC1B1"/> + <Translation x="[zero]" y="[zero]" z="-[ICCZ]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tecpetal3b:TECICBCont3B2"/> + <rChild name="tecpetalb:TECICC1B2"/> + <Translation x="[zero]" y="[zero]" z="-[ICCZ]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tecpetal3b:TECICBCont3B2"/> + <rChild name="tecpetalb:TECICC1B3"/> + <Translation x="[zero]" y="[zero]" z="-[ICCZ]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tecpetal3b:TECICBCont3B2"/> + <rChild name="tecpetalb:TECICC35B1"/> + <Translation x="[zero]" y="[zero]" z="-[ICCZ]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tecpetal3b:TECICBCont3B2"/> + <rChild name="tecpetalb:TECICC35B2"/> + <Translation x="[zero]" y="[zero]" z="-[ICCZ]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tecpetal3b:TECICBCont3B2"/> + <rChild name="tecpetalb:TECICC35B3"/> + <Translation x="[zero]" y="[zero]" z="-[ICCZ]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tecpetal3b:TECICBCont3B2"/> + <rChild name="tecpetalb:TECICC35B4"/> + <Translation x="[zero]" y="[zero]" z="-[ICCZ]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tecpetal3b:TECICBCont3B2"/> + <rChild name="tecpetalb:TECICC35B5"/> + <Translation x="[zero]" y="[zero]" z="-[ICCZ]"/> + </PosPart> + <PosPart copyNumber="4"> + <rParent name="tecpetal3b:TECPetal5B"/> + <rChild name="tecwheel:TECInnerManifold"/> + <Translation x="[zero]" y="[zero]" z="[zero]"/> + </PosPart> + </PosPartSection> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal3b:TECPetal3B"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="RPosition" value="372.842*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="4"> + 10.9517*deg ,8.6238*deg ,-8.6238*deg ,-10.9554*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="4"> + tecpetpar:TECCool5,tecpetpar:TECCool3,tecpetpar:TECCool3,tecpetpar:TECCool5</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal3b:TECPetal3B"/> + <Numeric name="StartCopyNo" value="5"/> + <Numeric name="RPosition" value="438.663*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="2"> + 4.8385*deg ,-4.8385*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="2"> + tecpetpar:TECCool3,tecpetpar:TECCool3</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal3b:TECPetal3B"/> + <Numeric name="StartCopyNo" value="7"/> + <Numeric name="RPosition" value="451.736*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="3"> + 9.9308*deg ,0.9308*deg ,-9.9308*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="3"> + tecpetpar:TECCool2,tecpetpar:TECCool1,tecpetpar:TECCool1</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal3b:TECPetal3B"/> + <Numeric name="StartCopyNo" value="10"/> + <Numeric name="RPosition" value="491.272*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="2"> + 4.829*deg ,-2.1851*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="2"> + tecpetpar:TECCool5,tecpetpar:TECCool5</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal3b:TECPetal3B"/> + <Numeric name="StartCopyNo" value="12"/> + <Numeric name="RPosition" value="529.973*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="3"> + 9*deg ,0*deg ,-9*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="3"> + tecpetpar:TECCool2,tecpetpar:TECCool1,tecpetpar:TECCool1</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal3b:TECPetal4B"/> + <Numeric name="StartCopyNo" value="15"/> + <Numeric name="RPosition" value="565.026*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="4"> + 10.3812*deg ,3.9526*deg ,-3.9526*deg ,-10.3812*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="4"> + tecpetpar:TECCool2,tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool2</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal3b:TECPetal4B"/> + <Numeric name="StartCopyNo" value="19"/> + <Numeric name="RPosition" value="646.359*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="4"> + 9.6429*deg ,3.2143*deg ,-3.2143*deg ,-9.6429*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="4"> + tecpetpar:TECCool2,tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool2</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal3b:TECPetal4B"/> + <Numeric name="StartCopyNo" value="23"/> + <Numeric name="RPosition" value="688.526*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="4"> + 14.144*deg ,5.144*deg ,-5.144*deg ,-14.144*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="4"> + tecpetpar:TECCool4,tecpetpar:TECCool3,tecpetpar:TECCool3,tecpetpar:TECCool4</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal3b:TECPetal4B"/> + <Numeric name="StartCopyNo" value="27"/> + <Numeric name="RPosition" value="705.35*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="3"> + 5.0584*deg ,-3.2876*deg ,-7.7907*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="3"> + tecpetpar:TECCool5,tecpetpar:TECCool5,tecpetpar:TECCool5</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal3b:TECPetal5B"/> + <Numeric name="StartCopyNo" value="30"/> + <Numeric name="RPosition" value="777.681*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="6"> + 11.727*deg ,6.273*deg ,2.727*deg ,-2.727*deg ,-6.273*deg ,-11.727*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="6"> + tecpetpar:TECCool4,tecpetpar:TECCool4,tecpetpar:TECCool3,tecpetpar:TECCool3,tecpetpar:TECCool4,tecpetpar:TECCool4</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal3b:TECPetal5B"/> + <Numeric name="StartCopyNo" value="36"/> + <Numeric name="RPosition" value="809.853*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="11"> + 11.729*deg ,9.3832*deg ,7.0374*deg ,4.6916*deg ,2.3458*deg ,0*deg ,-2.3458*deg ,-4.6916*deg ,-7.0374*deg ,-9.3832*deg ,-11.729*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="11"> + tecpetpar:TECCool5,tecpetpar:TECCool5,tecpetpar:TECCool5,tecpetpar:TECCool5,tecpetpar:TECCool5,tecpetpar:TECCool5,tecpetpar:TECCool5,tecpetpar:TECCool5,tecpetpar:TECCool5,tecpetpar:TECCool5,tecpetpar:TECCool5</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal3b:TECPetal5B"/> + <Numeric name="StartCopyNo" value="47"/> + <Numeric name="RPosition" value="826.305*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="4"> + 10.1935*deg ,3.7649*deg ,-3.7649*deg ,-10.1935*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="4"> + tecpetpar:TECCool2,tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool2</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal3b:TECPetal5B"/> + <Numeric name="StartCopyNo" value="51"/> + <Numeric name="RPosition" value="862.788*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="6"> + 11.25*deg ,6.75*deg ,2.25*deg ,-2.25*deg ,-6.75*deg ,-11.25*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="6"> + tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool1</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal3b:TECPetal5B"/> + <Numeric name="StartCopyNo" value="57"/> + <Numeric name="RPosition" value="937.93*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="6"> + 8.6894*deg ,4.1677*deg ,2.2608*deg ,-2.2608*deg ,-4.1677*deg ,-8.6894*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="6"> + tecpetpar:TECCool2,tecpetpar:TECCool2,tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool2,tecpetpar:TECCool2</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal3b:TECPetal5B"/> + <Numeric name="StartCopyNo" value="63"/> + <Numeric name="RPosition" value="997.895*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="8"> + 11.6983*deg ,6.3017*deg ,2.6983*deg ,-1.8017*deg ,-2.6983*deg ,-6.3017*deg ,-7.1983*deg ,-11.6983*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="8"> + tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool5,tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool5,tecpetpar:TECCool1</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal3b:TECPetal5B"/> + <Numeric name="StartCopyNo" value="71"/> + <Numeric name="RPosition" value="1040.55*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="1"> + 10.0576*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="1"> + tecpetpar:TECCool5</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal3b:TECPetal5B"/> + <Numeric name="StartCopyNo" value="72"/> + <Numeric name="RPosition" value="1068.17*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="1"> + 10.0624*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="1"> + tecpetpar:TECCool5</Vector> + </Algorithm> + <Algorithm name="track:DDTECOptoHybAlgo"> + <rParent name="tecpetal3b:TECICBCont3B2"/> + <Numeric name="StartCopyNo" value="3"/> + <String name="ChildName" value="tecpetpar:TECOptoHybrid"/> + <Numeric name="OptoWidth" value="[tecpetpar:HybridWidth]"/> + <Numeric name="OptoHeight" value="[tecpetpar:HybridHeight]"/> + <Numeric name="Rpos" value="471.195*mm"/> + <Numeric name="Zpos" value="[tecpetpar:HybridZ]"/> + <Vector name="Angles" type="numeric" nEntries="2"> + 6.6727*deg ,-0.339*deg</Vector> + </Algorithm> + <Algorithm name="track:DDTECOptoHybAlgo"> + <rParent name="tecpetal3b:TECICBCont3B1"/> + <Numeric name="StartCopyNo" value="5"/> + <String name="ChildName" value="tecpetpar:TECOptoHybrid"/> + <Numeric name="OptoWidth" value="[tecpetpar:HybridWidth]"/> + <Numeric name="OptoHeight" value="[tecpetpar:HybridHeight]"/> + <Numeric name="Rpos" value="562.517*mm"/> + <Numeric name="Zpos" value="-[tecpetpar:HybridZ]"/> + <Vector name="Angles" type="numeric" nEntries="2"> + 5.4762*deg ,-2.429*deg</Vector> + </Algorithm> + <Algorithm name="track:DDTECOptoHybAlgo"> + <rParent name="tecpetal3b:TECICBCont3B2"/> + <Numeric name="StartCopyNo" value="7"/> + <String name="ChildName" value="tecpetpar:TECOptoHybrid"/> + <Numeric name="OptoWidth" value="[tecpetpar:HybridWidth]"/> + <Numeric name="OptoHeight" value="[tecpetpar:HybridHeight]"/> + <Numeric name="Rpos" value="685.152*mm"/> + <Numeric name="Zpos" value="[tecpetpar:HybridZ]"/> + <Vector name="Angles" type="numeric" nEntries="3"> + 6.3214*deg ,-2.0241*deg ,-6.5265*deg</Vector> + </Algorithm> + <Algorithm name="track:DDTECOptoHybAlgo"> + <rParent name="tecpetal3b:TECICBCont3B1"/> + <Numeric name="StartCopyNo" value="10"/> + <String name="ChildName" value="tecpetpar:TECOptoHybrid"/> + <Numeric name="OptoWidth" value="[tecpetpar:HybridWidth]"/> + <Numeric name="OptoHeight" value="[tecpetpar:HybridHeight]"/> + <Numeric name="Rpos" value="807.452*mm"/> + <Numeric name="Zpos" value="-[tecpetpar:HybridZ]"/> + <Vector name="Angles" type="numeric" nEntries="11"> + 12.7924*deg ,10.4466*deg ,8.1008*deg ,5.755*deg ,3.4092*deg ,1.0634*deg ,-1.2824*deg ,-3.6282*deg ,-5.974*deg ,-8.3197*deg ,-10.6655*deg</Vector> + </Algorithm> + <Algorithm name="track:DDTECOptoHybAlgo"> + <rParent name="tecpetal3b:TECICBCont3B2"/> + <Numeric name="StartCopyNo" value="21"/> + <String name="ChildName" value="tecpetpar:TECOptoHybrid"/> + <Numeric name="OptoWidth" value="[tecpetpar:HybridWidth]"/> + <Numeric name="OptoHeight" value="[tecpetpar:HybridHeight]"/> + <Numeric name="Rpos" value="977.634*mm"/> + <Numeric name="Zpos" value="[tecpetpar:HybridZ]"/> + <Vector name="Angles" type="numeric" nEntries="3"> + 7.1858*deg ,-0.9183*deg ,-6.3149*deg</Vector> + </Algorithm> + <Algorithm name="track:DDTECOptoHybAlgo"> + <rParent name="tecpetal3b:TECICBCont3B2"/> + <Numeric name="StartCopyNo" value="1"/> + <String name="ChildName" value="tecpetpar:TECDigiOptoHybModule"/> + <Numeric name="OptoHeight" value="[tecpetpar:DOHMWidth]"/> + <Numeric name="OptoWidth" value="[tecpetpar:DOHMHeight]"/> + <Numeric name="Rpos" value="1022.726*mm"/> + <Numeric name="Zpos" value="[tecpetpar:DOHMZ]"/> + <Vector name="Angles" type="numeric" nEntries="1"> + 11.372*deg</Vector> + </Algorithm> +</DDDefinition> diff --git a/examples/DDCMS/data/tecpetal3f.xml b/examples/DDCMS/data/tecpetal3f.xml new file mode 100644 index 0000000000000000000000000000000000000000..911b40e3044dc01e1614340e54dc99fbc24d747b --- /dev/null +++ b/examples/DDCMS/data/tecpetal3f.xml @@ -0,0 +1,385 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tecpetal3f.xml" eval="true"> + <Constant name="zero" value="0.0*fm"/> + <Constant name="ICCZ" value="([tecpetpar:ICBThick]-[tecpetpar:ICCThick])/2"/> + </ConstantsSection> + <SolidSection label="tecpetal3f.xml"> + <Tubs name="TECPetal3F" rMin="[tecpetal3:PetalRmin]" rMax="[tecpetalf:PetalR1]" dz="[tecpetpar:PetalThick]/2" startPhi="-[tecpetalf:PetalWidth0]/2" deltaPhi="[tecpetalf:PetalWidth0]"/> + </SolidSection> + <LogicalPartSection label="tecpetal3f.xml"> + <LogicalPart name="TECPetalCont3F" category="unspecified"> + <rSolid name="tecpetal3:TECPetalCont3"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TECPetalFrame3F" category="unspecified"> + <rSolid name="tecpetal3:TECPetal3"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TECPetal3F" category="unspecified"> + <rSolid name="tecpetal3f:TECPetal3F"/> + <rMaterial name="tecmaterial:TEC_petal"/> + </LogicalPart> + <LogicalPart name="TECPetal4F" category="unspecified"> + <rSolid name="tecpetalf:TECPetal1F"/> + <rMaterial name="tecmaterial:TEC_petal"/> + </LogicalPart> + <LogicalPart name="TECPetal5F" category="unspecified"> + <rSolid name="tecpetalf:TECPetal2F"/> + <rMaterial name="tecmaterial:TEC_petal"/> + </LogicalPart> + <LogicalPart name="TECICBCont3F1" category="unspecified"> + <rSolid name="tecpetal3:TECICBCont3"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TECICBCont3F2" category="unspecified"> + <rSolid name="tecpetal3:TECICBCont3"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + </LogicalPartSection> + <PosPartSection label="tecpetal3f.xml"> + <PosPart copyNumber="1"> + <rParent name="tecpetal3f:TECPetalCont3F"/> + <rChild name="tecring1f:TECRing1F"/> + <Translation x="[zero]" y="[zero]" z="[tecring1:RingZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal3f:TECPetalCont3F"/> + <rChild name="tecring2f:TECRing2F"/> + <rRotation name="tecpetpar:180X"/> + <Translation x="[zero]" y="[zero]" z="[tecring2:RingZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal3f:TECPetalCont3F"/> + <rChild name="tecring3f:TECRing3F"/> + <Translation x="[zero]" y="[zero]" z="[tecring3:RingZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal3f:TECPetalCont3F"/> + <rChild name="tecring4f:TECRing4F"/> + <rRotation name="tecpetpar:180X"/> + <Translation x="[zero]" y="[zero]" z="[tecring4:RingZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal3f:TECPetalCont3F"/> + <rChild name="tecring5f:TECRing5F"/> + <Translation x="[zero]" y="[zero]" z="[tecring5:RingZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal3f:TECPetalCont3F"/> + <rChild name="tecring6f:TECRing6F"/> + <rRotation name="tecpetpar:180X"/> + <Translation x="[zero]" y="[zero]" z="[tecring6:RingZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal3f:TECPetalCont3F"/> + <rChild name="tecpetal3f:TECPetalFrame3F"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal3f:TECPetalFrame3F"/> + <rChild name="tecpetal3f:TECPetal3F"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal3f:TECPetalFrame3F"/> + <rChild name="tecpetal3f:TECPetal4F"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal3f:TECPetalFrame3F"/> + <rChild name="tecpetal3f:TECPetal5F"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal3f:TECPetalCont3F"/> + <rChild name="tecpetal3f:TECICBCont3F1"/> + <Translation x="[zero]" y="[zero]" z="-[tecpetpar:ICBZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal3f:TECPetalCont3F"/> + <rChild name="tecpetal3f:TECICBCont3F2"/> + <Translation x="[zero]" y="[zero]" z="[tecpetpar:ICBZ]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tecpetal3f:TECICBCont3F1"/> + <rChild name="tecpetalf:TECICC2F1"/> + <Translation x="[zero]" y="[zero]" z="[ICCZ]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tecpetal3f:TECICBCont3F1"/> + <rChild name="tecpetalf:TECICC2F2"/> + <Translation x="[zero]" y="[zero]" z="[ICCZ]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tecpetal3f:TECICBCont3F1"/> + <rChild name="tecpetalf:TECICC46F1"/> + <Translation x="[zero]" y="[zero]" z="[ICCZ]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tecpetal3f:TECICBCont3F1"/> + <rChild name="tecpetalf:TECICC46F2"/> + <Translation x="[zero]" y="[zero]" z="[ICCZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal3f:TECICBCont3F2"/> + <rChild name="tecpetalf:TECICC1SF1"/> + <Translation x="[zero]" y="[zero]" z="-[ICCZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal3f:TECICBCont3F2"/> + <rChild name="tecpetalf:TECICC1SF2"/> + <Translation x="[zero]" y="[zero]" z="-[ICCZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal3f:TECICBCont3F2"/> + <rChild name="tecpetalf:TECICC1SF3"/> + <Translation x="[zero]" y="[zero]" z="-[ICCZ]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tecpetal3f:TECICBCont3F2"/> + <rChild name="tecpetalf:TECICC35F1"/> + <Translation x="[zero]" y="[zero]" z="-[ICCZ]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tecpetal3f:TECICBCont3F2"/> + <rChild name="tecpetalf:TECICC35F2"/> + <Translation x="[zero]" y="[zero]" z="-[ICCZ]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tecpetal3f:TECICBCont3F2"/> + <rChild name="tecpetalf:TECICC35F3"/> + <Translation x="[zero]" y="[zero]" z="-[ICCZ]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tecpetal3f:TECICBCont3F2"/> + <rChild name="tecpetalf:TECICC35F4"/> + <Translation x="[zero]" y="[zero]" z="-[ICCZ]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tecpetal3f:TECICBCont3F2"/> + <rChild name="tecpetalf:TECICC35F5"/> + <Translation x="[zero]" y="[zero]" z="-[ICCZ]"/> + </PosPart> + <PosPart copyNumber="3"> + <rParent name="tecpetal3f:TECPetal5F"/> + <rChild name="tecwheel:TECInnerManifold"/> + <Translation x="[zero]" y="[zero]" z="[zero]"/> + </PosPart> + </PosPartSection> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal3f:TECPetal3F"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="RPosition" value="373.084*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="3"> + 16.1238*deg ,1.1238*deg ,-16.1238*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="3"> + tecpetpar:TECCool4,tecpetpar:TECCool3,tecpetpar:TECCool3</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal3f:TECPetal3F"/> + <Numeric name="StartCopyNo" value="4"/> + <Numeric name="RPosition" value="438.663*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="4"> + 12.3385*deg ,2.6615*deg ,-2.6615*deg ,-12.3385*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="4"> + tecpetpar:TECCool4,tecpetpar:TECCool4,tecpetpar:TECCool3,tecpetpar:TECCool3</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal3f:TECPetal3F"/> + <Numeric name="StartCopyNo" value="8"/> + <Numeric name="RPosition" value="451.736*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="4"> + 14.4308*deg ,5.4308*deg ,-5.4308*deg ,-14.4308*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="4"> + tecpetpar:TECCool2,tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool2</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal3f:TECPetal3F"/> + <Numeric name="StartCopyNo" value="12"/> + <Numeric name="RPosition" value="491.326*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="4"> + 9.6429*deg ,5.2432*deg ,-5.3537*deg ,-9.7534*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="4"> + tecpetpar:TECCool5,tecpetpar:TECCool5,tecpetpar:TECCool5,tecpetpar:TECCool5</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal3f:TECPetal3F"/> + <Numeric name="StartCopyNo" value="16"/> + <Numeric name="RPosition" value="529.973*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="4"> + 13.5*deg ,4.5*deg ,-4.5*deg ,-13.5*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="4"> + tecpetpar:TECCool2,tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool2</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal3f:TECPetal4F"/> + <Numeric name="StartCopyNo" value="20"/> + <Numeric name="RPosition" value="565.026*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="7"> + 13.5955*deg ,9.3071*deg ,5.6902*deg ,0.7383*deg ,-7.1669*deg ,-8.7012*deg ,-13.5955*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="7"> + tecpetpar:TECCool1,tecpetpar:TECCool5,tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool5,tecpetpar:TECCool2</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal3f:TECPetal4F"/> + <Numeric name="StartCopyNo" value="27"/> + <Numeric name="RPosition" value="646.359*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="5"> + 12.8571*deg ,6.4286*deg ,0*deg ,-6.4286*deg ,-12.8571*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="5"> + tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool2</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal3f:TECPetal4F"/> + <Numeric name="StartCopyNo" value="32"/> + <Numeric name="RPosition" value="688.526*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="3"> + 9.644*deg ,-0.644*deg ,-9.644*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="3"> + tecpetpar:TECCool3,tecpetpar:TECCool3,tecpetpar:TECCool4</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal3f:TECPetal4F"/> + <Numeric name="StartCopyNo" value="35"/> + <Numeric name="RPosition" value="705.393*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="4"> + 8.0585*deg ,2.4756*deg ,-5.2453*deg ,-11.2274*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="4"> + tecpetpar:TECCool5,tecpetpar:TECCool5,tecpetpar:TECCool5,tecpetpar:TECCool5</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal3f:TECPetal4F"/> + <Numeric name="StartCopyNo" value="39"/> + <Numeric name="RPosition" value="777.681*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="4"> + 7.227*deg ,1.773*deg ,-1.773*deg ,-7.227*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="4"> + tecpetpar:TECCool3,tecpetpar:TECCool3,tecpetpar:TECCool4,tecpetpar:TECCool4</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal3f:TECPetal4F"/> + <Numeric name="StartCopyNo" value="43"/> + <Numeric name="RPosition" value="809.358*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="9"> + 8.8981*deg ,6.5507*deg ,4.2142*deg ,1.8718*deg ,-0.4758*deg ,-2.8175*deg ,-5.1527*deg ,-7.4972*deg ,-9.8497*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="9"> + tecpetpar:TECCool5,tecpetpar:TECCool5,tecpetpar:TECCool5,tecpetpar:TECCool5,tecpetpar:TECCool5,tecpetpar:TECCool5,tecpetpar:TECCool5,tecpetpar:TECCool5,tecpetpar:TECCool5</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal3f:TECPetal4F"/> + <Numeric name="StartCopyNo" value="52"/> + <Numeric name="RPosition" value="826.305*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="5"> + 13.4078*deg ,5.8779*deg ,0.5506*deg ,-6.9792*deg ,-13.4078*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="5"> + tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool2</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal3f:TECPetal4F"/> + <Numeric name="StartCopyNo" value="57"/> + <Numeric name="RPosition" value="862.788*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="6"> + 11.25*deg ,6.75*deg ,2.25*deg ,-2.25*deg ,-6.75*deg ,-11.25*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="6"> + tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool1</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal3f:TECPetal5F"/> + <Numeric name="StartCopyNo" value="63"/> + <Numeric name="RPosition" value="937.93*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="8"> + 11.9037*deg ,7.382*deg ,5.4751*deg ,0.9535*deg ,-0.9535*deg ,-5.4751*deg ,-7.382*deg ,-11.9037*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="8"> + tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool2,tecpetpar:TECCool2,tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool2,tecpetpar:TECCool2</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal3f:TECPetal5F"/> + <Numeric name="StartCopyNo" value="71"/> + <Numeric name="RPosition" value="997.895*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="8"> + 11.6983*deg ,7.1983*deg ,6.3017*deg ,2.6983*deg ,-2.6983*deg ,-6.3017*deg ,-10.1082*deg ,-11.6983*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="8"> + tecpetpar:TECCool1,tecpetpar:TECCool5,tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool5,tecpetpar:TECCool1</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal3f:TECPetal5F"/> + <Numeric name="StartCopyNo" value="79"/> + <Numeric name="RPosition" value="1037.61*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="1"> + -9.9912*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="1"> + tecpetpar:TECCool5</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal3f:TECPetal5F"/> + <Numeric name="StartCopyNo" value="80"/> + <Numeric name="RPosition" value="1065.23*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="1"> + -9.9978*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="1"> + tecpetpar:TECCool5</Vector> + </Algorithm> + <Algorithm name="track:DDTECOptoHybAlgo"> + <rParent name="tecpetal3f:TECICBCont3F2"/> + <Numeric name="StartCopyNo" value="5"/> + <String name="ChildName" value="tecpetpar:TECOptoHybrid"/> + <Numeric name="OptoWidth" value="[tecpetpar:HybridWidth]"/> + <Numeric name="OptoHeight" value="[tecpetpar:HybridHeight]"/> + <Numeric name="Rpos" value="471.051*mm"/> + <Numeric name="Zpos" value="[tecpetpar:HybridZ]"/> + <Vector name="Angles" type="numeric" nEntries="4"> + 11.9412*deg ,7.5404*deg ,-3.0597*deg ,-7.4597*deg</Vector> + </Algorithm> + <Algorithm name="track:DDTECOptoHybAlgo"> + <rParent name="tecpetal3f:TECICBCont3F1"/> + <Numeric name="StartCopyNo" value="9"/> + <String name="ChildName" value="tecpetpar:TECOptoHybrid"/> + <Numeric name="OptoWidth" value="[tecpetpar:HybridWidth]"/> + <Numeric name="OptoHeight" value="[tecpetpar:HybridHeight]"/> + <Numeric name="Rpos" value="562.721*mm"/> + <Numeric name="Zpos" value="-[tecpetpar:HybridZ]"/> + <Vector name="Angles" type="numeric" nEntries="3"> + 11.2453*deg ,2.6765*deg ,-6.8472*deg</Vector> + </Algorithm> + <Algorithm name="track:DDTECOptoHybAlgo"> + <rParent name="tecpetal3f:TECICBCont3F2"/> + <Numeric name="StartCopyNo" value="12"/> + <String name="ChildName" value="tecpetpar:TECOptoHybrid"/> + <Numeric name="OptoWidth" value="[tecpetpar:HybridWidth]"/> + <Numeric name="OptoHeight" value="[tecpetpar:HybridHeight]"/> + <Numeric name="Rpos" value="685.052*mm"/> + <Numeric name="Zpos" value="[tecpetpar:HybridZ]"/> + <Vector name="Angles" type="numeric" nEntries="4"> + 9.6425*deg ,4.0592*deg ,-3.6616*deg ,-9.643*deg</Vector> + </Algorithm> + <Algorithm name="track:DDTECOptoHybAlgo"> + <rParent name="tecpetal3f:TECICBCont3F1"/> + <Numeric name="StartCopyNo" value="16"/> + <String name="ChildName" value="tecpetpar:TECOptoHybrid"/> + <Numeric name="OptoWidth" value="[tecpetpar:HybridWidth]"/> + <Numeric name="OptoHeight" value="[tecpetpar:HybridHeight]"/> + <Numeric name="Rpos" value="807.002*mm"/> + <Numeric name="Zpos" value="-[tecpetpar:HybridZ]"/> + <Vector name="Angles" type="numeric" nEntries="9"> + 10.2499*deg ,7.9025*deg ,5.5659*deg ,3.2235*deg ,0.8753*deg ,-1.4658*deg ,-3.801*deg ,-6.1455*deg ,-8.5563*deg</Vector> + </Algorithm> + <Algorithm name="track:DDTECOptoHybAlgo"> + <rParent name="tecpetal3f:TECICBCont3F2"/> + <Numeric name="StartCopyNo" value="25"/> + <String name="ChildName" value="tecpetpar:TECOptoHybrid"/> + <Numeric name="OptoWidth" value="[tecpetpar:HybridWidth]"/> + <Numeric name="OptoHeight" value="[tecpetpar:HybridHeight]"/> + <Numeric name="Rpos" value="977.591*mm"/> + <Numeric name="Zpos" value="[tecpetpar:HybridZ]"/> + <Vector name="Angles" type="numeric" nEntries="3"> + 8.3153*deg ,3.8227*deg ,-5.1984*deg</Vector> + </Algorithm> + <Algorithm name="track:DDTECOptoHybAlgo"> + <rParent name="tecpetal3f:TECICBCont3F2"/> + <Numeric name="StartCopyNo" value="28"/> + <String name="ChildName" value="tecpetpar:TECOptoHybridShort"/> + <Numeric name="OptoWidth" value="[tecpetpar:HybridHeight]"/> + <Numeric name="OptoHeight" value="[tecpetpar:HybridWidth]"/> + <Numeric name="Rpos" value="977.591*mm"/> + <Numeric name="Zpos" value="[tecpetpar:HybridZ]"/> + <Vector name="Angles" type="numeric" nEntries="1"> + -9.9916*deg</Vector> + </Algorithm> +</DDDefinition> diff --git a/examples/DDCMS/data/tecpetal6b.xml b/examples/DDCMS/data/tecpetal6b.xml new file mode 100644 index 0000000000000000000000000000000000000000..1feee53e3f3c53d31f384f1e6978af0118556712 --- /dev/null +++ b/examples/DDCMS/data/tecpetal6b.xml @@ -0,0 +1,359 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tecpetal6b.xml" eval="true"> + <Constant name="zero" value="0.0*fm"/> + <Constant name="ICCZ" value="([tecpetpar:ICBThick]-[tecpetpar:ICCThick])/2"/> + </ConstantsSection> + <SolidSection label="tecpetal6b.xml"> + <Tubs name="TECPetal6B" rMin="[tecpetal3:PetalRmin]" rMax="[tecpetalb:PetalR1]" dz="[tecpetpar:PetalThick]/2" startPhi="-[tecpetalb:PetalWidth0]/2" deltaPhi="[tecpetalb:PetalWidth0]"/> + </SolidSection> + <LogicalPartSection label="tecpetal6b.xml"> + <LogicalPart name="TECPetalCont6B" category="unspecified"> + <rSolid name="tecpetal3:TECPetalCont3"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TECPetalFrame6B" category="unspecified"> + <rSolid name="tecpetal3:TECPetal3"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TECPetal6B" category="unspecified"> + <rSolid name="tecpetal6b:TECPetal6B"/> + <rMaterial name="tecmaterial:TEC_petal"/> + </LogicalPart> + <LogicalPart name="TECPetal7B" category="unspecified"> + <rSolid name="tecpetalb:TECPetal1B"/> + <rMaterial name="tecmaterial:TEC_petal"/> + </LogicalPart> + <LogicalPart name="TECPetalaB" category="unspecified"> + <rSolid name="tecpetalb:TECPetal2B"/> + <rMaterial name="tecmaterial:TEC_petal"/> + </LogicalPart> + <LogicalPart name="TECICBCont6B1" category="unspecified"> + <rSolid name="tecpetal3:TECICBCont3"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TECICBCont6B2" category="unspecified"> + <rSolid name="tecpetal3:TECICBCont3"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + </LogicalPartSection> + <PosPartSection label="tecpetal6b.xml"> + <PosPart copyNumber="1"> + <rParent name="tecpetal6b:TECPetalCont6B"/> + <rChild name="tecring2b:TECRing2B"/> + <rRotation name="tecpetpar:180X"/> + <Translation x="[zero]" y="[zero]" z="[tecring2:RingZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal6b:TECPetalCont6B"/> + <rChild name="tecring3b:TECRing3B"/> + <Translation x="[zero]" y="[zero]" z="[tecring3:RingZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal6b:TECPetalCont6B"/> + <rChild name="tecring4b:TECRing4B"/> + <rRotation name="tecpetpar:180X"/> + <Translation x="[zero]" y="[zero]" z="[tecring4:RingZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal6b:TECPetalCont6B"/> + <rChild name="tecring5b:TECRing5B"/> + <Translation x="[zero]" y="[zero]" z="[tecring5:RingZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal6b:TECPetalCont6B"/> + <rChild name="tecring6b:TECRing6B"/> + <rRotation name="tecpetpar:180X"/> + <Translation x="[zero]" y="[zero]" z="[tecring6:RingZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal6b:TECPetalCont6B"/> + <rChild name="tecpetal6b:TECPetalFrame6B"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal6b:TECPetalFrame6B"/> + <rChild name="tecpetal6b:TECPetal6B"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal6b:TECPetalFrame6B"/> + <rChild name="tecpetal6b:TECPetal7B"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal6b:TECPetalFrame6B"/> + <rChild name="tecpetal6b:TECPetalaB"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal6b:TECPetalCont6B"/> + <rChild name="tecpetal6b:TECICBCont6B1"/> + <Translation x="[zero]" y="[zero]" z="-[tecpetpar:ICBZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal6b:TECPetalCont6B"/> + <rChild name="tecpetal6b:TECICBCont6B2"/> + <Translation x="[zero]" y="[zero]" z="[tecpetpar:ICBZ]"/> + </PosPart> + <PosPart copyNumber="3"> + <rParent name="tecpetal6b:TECICBCont6B1"/> + <rChild name="tecpetalb:TECICC2B1"/> + <Translation x="[zero]" y="[zero]" z="[ICCZ]"/> + </PosPart> + <PosPart copyNumber="3"> + <rParent name="tecpetal6b:TECICBCont6B1"/> + <rChild name="tecpetalb:TECICC2B2"/> + <Translation x="[zero]" y="[zero]" z="[ICCZ]"/> + </PosPart> + <PosPart copyNumber="3"> + <rParent name="tecpetal6b:TECICBCont6B1"/> + <rChild name="tecpetalb:TECICC46B1"/> + <Translation x="[zero]" y="[zero]" z="[ICCZ]"/> + </PosPart> + <PosPart copyNumber="3"> + <rParent name="tecpetal6b:TECICBCont6B1"/> + <rChild name="tecpetalb:TECICC46B2"/> + <Translation x="[zero]" y="[zero]" z="[ICCZ]"/> + </PosPart> + <PosPart copyNumber="3"> + <rParent name="tecpetal6b:TECICBCont6B1"/> + <rChild name="tecpetalb:TECICC46B3"/> + <Translation x="[zero]" y="[zero]" z="[ICCZ]"/> + </PosPart> + <PosPart copyNumber="3"> + <rParent name="tecpetal6b:TECICBCont6B2"/> + <rChild name="tecpetalb:TECICC35B1"/> + <Translation x="[zero]" y="[zero]" z="-[ICCZ]"/> + </PosPart> + <PosPart copyNumber="3"> + <rParent name="tecpetal6b:TECICBCont6B2"/> + <rChild name="tecpetalb:TECICC35B2"/> + <Translation x="[zero]" y="[zero]" z="-[ICCZ]"/> + </PosPart> + <PosPart copyNumber="3"> + <rParent name="tecpetal6b:TECICBCont6B2"/> + <rChild name="tecpetalb:TECICC35B3"/> + <Translation x="[zero]" y="[zero]" z="-[ICCZ]"/> + </PosPart> + <PosPart copyNumber="3"> + <rParent name="tecpetal6b:TECICBCont6B2"/> + <rChild name="tecpetalb:TECICC35B4"/> + <Translation x="[zero]" y="[zero]" z="-[ICCZ]"/> + </PosPart> + <PosPart copyNumber="3"> + <rParent name="tecpetal6b:TECICBCont6B2"/> + <rChild name="tecpetalb:TECICC35B5"/> + <Translation x="[zero]" y="[zero]" z="-[ICCZ]"/> + </PosPart> + <PosPart copyNumber="6"> + <rParent name="tecpetal6b:TECPetalaB"/> + <rChild name="tecwheel:TECInnerManifold"/> + <Translation x="[zero]" y="[zero]" z="[zero]"/> + </PosPart> + </PosPartSection> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal6b:TECPetal6B"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="RPosition" value="372.842*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="4"> + 10.9517*deg ,8.6238*deg ,-8.6238*deg ,-10.9554*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="4"> + tecpetpar:TECCool5,tecpetpar:TECCool3,tecpetpar:TECCool3,tecpetpar:TECCool5</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal6b:TECPetal6B"/> + <Numeric name="StartCopyNo" value="5"/> + <Numeric name="RPosition" value="438.663*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="2"> + 4.8385*deg ,-4.8385*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="2"> + tecpetpar:TECCool3,tecpetpar:TECCool3</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal6b:TECPetal6B"/> + <Numeric name="StartCopyNo" value="7"/> + <Numeric name="RPosition" value="451.736*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="3"> + 9.9308*deg ,0.9308*deg ,-9.9308*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="3"> + tecpetpar:TECCool2,tecpetpar:TECCool1,tecpetpar:TECCool1</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal6b:TECPetal6B"/> + <Numeric name="StartCopyNo" value="10"/> + <Numeric name="RPosition" value="491.272*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="2"> + 4.829*deg ,-2.1851*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="2"> + tecpetpar:TECCool5,tecpetpar:TECCool5</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal6b:TECPetal6B"/> + <Numeric name="StartCopyNo" value="12"/> + <Numeric name="RPosition" value="529.973*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="3"> + 9*deg ,0*deg ,-9*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="3"> + tecpetpar:TECCool2,tecpetpar:TECCool1,tecpetpar:TECCool1</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal6b:TECPetal7B"/> + <Numeric name="StartCopyNo" value="15"/> + <Numeric name="RPosition" value="565.026*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="4"> + 10.3812*deg ,3.9526*deg ,-3.9526*deg ,-10.3812*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="4"> + tecpetpar:TECCool2,tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool2</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal6b:TECPetal7B"/> + <Numeric name="StartCopyNo" value="19"/> + <Numeric name="RPosition" value="646.359*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="4"> + 9.6429*deg ,3.2143*deg ,-3.2143*deg ,-9.6429*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="4"> + tecpetpar:TECCool2,tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool2</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal6b:TECPetal7B"/> + <Numeric name="StartCopyNo" value="23"/> + <Numeric name="RPosition" value="688.526*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="4"> + 14.144*deg ,5.144*deg ,-5.144*deg ,-14.144*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="4"> + tecpetpar:TECCool4,tecpetpar:TECCool3,tecpetpar:TECCool3,tecpetpar:TECCool4</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal6b:TECPetal7B"/> + <Numeric name="StartCopyNo" value="27"/> + <Numeric name="RPosition" value="705.35*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="3"> + 5.0584*deg ,-3.2876*deg ,-7.7907*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="3"> + tecpetpar:TECCool5,tecpetpar:TECCool5,tecpetpar:TECCool5</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal6b:TECPetalaB"/> + <Numeric name="StartCopyNo" value="30"/> + <Numeric name="RPosition" value="777.681*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="6"> + 11.727*deg ,6.273*deg ,2.727*deg ,-2.727*deg ,-6.273*deg ,-11.727*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="6"> + tecpetpar:TECCool4,tecpetpar:TECCool4,tecpetpar:TECCool3,tecpetpar:TECCool3,tecpetpar:TECCool4,tecpetpar:TECCool4</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal6b:TECPetalaB"/> + <Numeric name="StartCopyNo" value="36"/> + <Numeric name="RPosition" value="809.853*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="11"> + 11.729*deg ,9.3832*deg ,7.0374*deg ,4.6916*deg ,2.3458*deg ,0*deg ,-2.3458*deg ,-4.6916*deg ,-7.0374*deg ,-9.3832*deg ,-11.729*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="11"> + tecpetpar:TECCool5,tecpetpar:TECCool5,tecpetpar:TECCool5,tecpetpar:TECCool5,tecpetpar:TECCool5,tecpetpar:TECCool5,tecpetpar:TECCool5,tecpetpar:TECCool5,tecpetpar:TECCool5,tecpetpar:TECCool5,tecpetpar:TECCool5</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal6b:TECPetalaB"/> + <Numeric name="StartCopyNo" value="47"/> + <Numeric name="RPosition" value="826.305*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="4"> + 10.1935*deg ,3.7649*deg ,-3.7649*deg ,-10.1935*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="4"> + tecpetpar:TECCool2,tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool2</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal6b:TECPetalaB"/> + <Numeric name="StartCopyNo" value="51"/> + <Numeric name="RPosition" value="862.788*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="6"> + 11.25*deg ,6.75*deg ,2.25*deg ,-2.25*deg ,-6.75*deg ,-11.25*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="6"> + tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool1</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal6b:TECPetalaB"/> + <Numeric name="StartCopyNo" value="57"/> + <Numeric name="RPosition" value="937.93*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="6"> + 8.6894*deg ,4.1677*deg ,2.2608*deg ,-2.2608*deg ,-4.1677*deg ,-8.6894*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="6"> + tecpetpar:TECCool2,tecpetpar:TECCool2,tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool2,tecpetpar:TECCool2</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal6b:TECPetalaB"/> + <Numeric name="StartCopyNo" value="63"/> + <Numeric name="RPosition" value="997.895*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="8"> + 11.6983*deg ,6.3017*deg ,2.6983*deg ,-1.8017*deg ,-2.6983*deg ,-6.3017*deg ,-7.1983*deg ,-11.6983*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="8"> + tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool5,tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool5,tecpetpar:TECCool1</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal6b:TECPetalaB"/> + <Numeric name="StartCopyNo" value="71"/> + <Numeric name="RPosition" value="1040.55*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="1"> + 10.0576*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="1"> + tecpetpar:TECCool5</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal6b:TECPetalaB"/> + <Numeric name="StartCopyNo" value="72"/> + <Numeric name="RPosition" value="1068.17*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="1"> + 10.0624*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="1"> + tecpetpar:TECCool5</Vector> + </Algorithm> + <Algorithm name="track:DDTECOptoHybAlgo"> + <rParent name="tecpetal6b:TECICBCont6B1"/> + <Numeric name="StartCopyNo" value="5"/> + <String name="ChildName" value="tecpetpar:TECOptoHybrid"/> + <Numeric name="OptoWidth" value="[tecpetpar:HybridWidth]"/> + <Numeric name="OptoHeight" value="[tecpetpar:HybridHeight]"/> + <Numeric name="Rpos" value="562.517*mm"/> + <Numeric name="Zpos" value="-[tecpetpar:HybridZ]"/> + <Vector name="Angles" type="numeric" nEntries="2"> + 5.4762*deg ,-2.429*deg</Vector> + </Algorithm> + <Algorithm name="track:DDTECOptoHybAlgo"> + <rParent name="tecpetal6b:TECICBCont6B2"/> + <Numeric name="StartCopyNo" value="7"/> + <String name="ChildName" value="tecpetpar:TECOptoHybrid"/> + <Numeric name="OptoWidth" value="[tecpetpar:HybridWidth]"/> + <Numeric name="OptoHeight" value="[tecpetpar:HybridHeight]"/> + <Numeric name="Rpos" value="685.152*mm"/> + <Numeric name="Zpos" value="[tecpetpar:HybridZ]"/> + <Vector name="Angles" type="numeric" nEntries="3"> + 6.3214*deg ,-2.0241*deg ,-6.5265*deg</Vector> + </Algorithm> + <Algorithm name="track:DDTECOptoHybAlgo"> + <rParent name="tecpetal6b:TECICBCont6B1"/> + <Numeric name="StartCopyNo" value="10"/> + <String name="ChildName" value="tecpetpar:TECOptoHybrid"/> + <Numeric name="OptoWidth" value="[tecpetpar:HybridWidth]"/> + <Numeric name="OptoHeight" value="[tecpetpar:HybridHeight]"/> + <Numeric name="Rpos" value="807.452*mm"/> + <Numeric name="Zpos" value="-[tecpetpar:HybridZ]"/> + <Vector name="Angles" type="numeric" nEntries="11"> + 12.7924*deg ,10.4466*deg ,8.1008*deg ,5.755*deg ,3.4092*deg ,1.0634*deg ,-1.2824*deg ,-3.6282*deg ,-5.974*deg ,-8.3197*deg ,-10.6655*deg</Vector> + </Algorithm> + <Algorithm name="track:DDTECOptoHybAlgo"> + <rParent name="tecpetal6b:TECICBCont6B2"/> + <Numeric name="StartCopyNo" value="21"/> + <String name="ChildName" value="tecpetpar:TECOptoHybrid"/> + <Numeric name="OptoWidth" value="[tecpetpar:HybridWidth]"/> + <Numeric name="OptoHeight" value="[tecpetpar:HybridHeight]"/> + <Numeric name="Rpos" value="977.634*mm"/> + <Numeric name="Zpos" value="[tecpetpar:HybridZ]"/> + <Vector name="Angles" type="numeric" nEntries="3"> + 7.1858*deg ,-0.9183*deg ,-6.3149*deg</Vector> + </Algorithm> + <Algorithm name="track:DDTECOptoHybAlgo"> + <rParent name="tecpetal6b:TECICBCont6B2"/> + <Numeric name="StartCopyNo" value="1"/> + <String name="ChildName" value="tecpetpar:TECDigiOptoHybModule"/> + <Numeric name="OptoHeight" value="[tecpetpar:DOHMWidth]"/> + <Numeric name="OptoWidth" value="[tecpetpar:DOHMHeight]"/> + <Numeric name="Rpos" value="1022.726*mm"/> + <Numeric name="Zpos" value="[tecpetpar:DOHMZ]"/> + <Vector name="Angles" type="numeric" nEntries="1"> + 11.372*deg</Vector> + </Algorithm> +</DDDefinition> diff --git a/examples/DDCMS/data/tecpetal6f.xml b/examples/DDCMS/data/tecpetal6f.xml new file mode 100644 index 0000000000000000000000000000000000000000..d24bf152c84b5b3957ff8abeb7364fd83f4ca5d1 --- /dev/null +++ b/examples/DDCMS/data/tecpetal6f.xml @@ -0,0 +1,354 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tecpetal6f.xml" eval="true"> + <Constant name="zero" value="0.0*fm"/> + <Constant name="ICCZ" value="([tecpetpar:ICBThick]-[tecpetpar:ICCThick])/2"/> + </ConstantsSection> + <SolidSection label="tecpetal6f.xml"> + <Tubs name="TECPetal6F" rMin="[tecpetal3:PetalRmin]" rMax="[tecpetalf:PetalR1]" dz="[tecpetpar:PetalThick]/2" startPhi="-[tecpetalf:PetalWidth0]/2" deltaPhi="[tecpetalf:PetalWidth0]"/> + </SolidSection> + <LogicalPartSection label="tecpetal6f.xml"> + <LogicalPart name="TECPetalCont6F" category="unspecified"> + <rSolid name="tecpetal3:TECPetalCont3"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TECPetalFrame6F" category="unspecified"> + <rSolid name="tecpetal3:TECPetal3"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TECPetal6F" category="unspecified"> + <rSolid name="tecpetal6f:TECPetal6F"/> + <rMaterial name="tecmaterial:TEC_petal"/> + </LogicalPart> + <LogicalPart name="TECPetal7F" category="unspecified"> + <rSolid name="tecpetalf:TECPetal1F"/> + <rMaterial name="tecmaterial:TEC_petal"/> + </LogicalPart> + <LogicalPart name="TECPetalaF" category="unspecified"> + <rSolid name="tecpetalf:TECPetal2F"/> + <rMaterial name="tecmaterial:TEC_petal"/> + </LogicalPart> + <LogicalPart name="TECICBCont6F1" category="unspecified"> + <rSolid name="tecpetal3:TECICBCont3"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TECICBCont6F2" category="unspecified"> + <rSolid name="tecpetal3:TECICBCont3"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + </LogicalPartSection> + <PosPartSection label="tecpetal6f.xml"> + <PosPart copyNumber="1"> + <rParent name="tecpetal6f:TECPetalCont6F"/> + <rChild name="tecring2f:TECRing2F"/> + <rRotation name="tecpetpar:180X"/> + <Translation x="[zero]" y="[zero]" z="[tecring2:RingZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal6f:TECPetalCont6F"/> + <rChild name="tecring3f:TECRing3F"/> + <Translation x="[zero]" y="[zero]" z="[tecring3:RingZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal6f:TECPetalCont6F"/> + <rChild name="tecring4f:TECRing4F"/> + <rRotation name="tecpetpar:180X"/> + <Translation x="[zero]" y="[zero]" z="[tecring4:RingZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal6f:TECPetalCont6F"/> + <rChild name="tecring5f:TECRing5F"/> + <Translation x="[zero]" y="[zero]" z="[tecring5:RingZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal6f:TECPetalCont6F"/> + <rChild name="tecring6f:TECRing6F"/> + <rRotation name="tecpetpar:180X"/> + <Translation x="[zero]" y="[zero]" z="[tecring6:RingZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal6f:TECPetalCont6F"/> + <rChild name="tecpetal6f:TECPetalFrame6F"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal6f:TECPetalFrame6F"/> + <rChild name="tecpetal6f:TECPetal6F"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal6f:TECPetalFrame6F"/> + <rChild name="tecpetal6f:TECPetal7F"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal6f:TECPetalFrame6F"/> + <rChild name="tecpetal6f:TECPetalaF"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal6f:TECPetalCont6F"/> + <rChild name="tecpetal6f:TECICBCont6F1"/> + <Translation x="[zero]" y="[zero]" z="-[tecpetpar:ICBZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal6f:TECPetalCont6F"/> + <rChild name="tecpetal6f:TECICBCont6F2"/> + <Translation x="[zero]" y="[zero]" z="[tecpetpar:ICBZ]"/> + </PosPart> + <PosPart copyNumber="3"> + <rParent name="tecpetal6f:TECICBCont6F1"/> + <rChild name="tecpetalf:TECICC2F1"/> + <Translation x="[zero]" y="[zero]" z="[ICCZ]"/> + </PosPart> + <PosPart copyNumber="3"> + <rParent name="tecpetal6f:TECICBCont6F1"/> + <rChild name="tecpetalf:TECICC2F2"/> + <Translation x="[zero]" y="[zero]" z="[ICCZ]"/> + </PosPart> + <PosPart copyNumber="3"> + <rParent name="tecpetal6f:TECICBCont6F1"/> + <rChild name="tecpetalf:TECICC46F1"/> + <Translation x="[zero]" y="[zero]" z="[ICCZ]"/> + </PosPart> + <PosPart copyNumber="3"> + <rParent name="tecpetal6f:TECICBCont6F1"/> + <rChild name="tecpetalf:TECICC46F2"/> + <Translation x="[zero]" y="[zero]" z="[ICCZ]"/> + </PosPart> + <PosPart copyNumber="3"> + <rParent name="tecpetal6f:TECICBCont6F2"/> + <rChild name="tecpetalf:TECICC35F1"/> + <Translation x="[zero]" y="[zero]" z="-[ICCZ]"/> + </PosPart> + <PosPart copyNumber="3"> + <rParent name="tecpetal6f:TECICBCont6F2"/> + <rChild name="tecpetalf:TECICC35F2"/> + <Translation x="[zero]" y="[zero]" z="-[ICCZ]"/> + </PosPart> + <PosPart copyNumber="3"> + <rParent name="tecpetal6f:TECICBCont6F2"/> + <rChild name="tecpetalf:TECICC35F3"/> + <Translation x="[zero]" y="[zero]" z="-[ICCZ]"/> + </PosPart> + <PosPart copyNumber="3"> + <rParent name="tecpetal6f:TECICBCont6F2"/> + <rChild name="tecpetalf:TECICC35F4"/> + <Translation x="[zero]" y="[zero]" z="-[ICCZ]"/> + </PosPart> + <PosPart copyNumber="3"> + <rParent name="tecpetal6f:TECICBCont6F2"/> + <rChild name="tecpetalf:TECICC35F5"/> + <Translation x="[zero]" y="[zero]" z="-[ICCZ]"/> + </PosPart> + <PosPart copyNumber="5"> + <rParent name="tecpetal6f:TECPetalaF"/> + <rChild name="tecwheel:TECInnerManifold"/> + <Translation x="[zero]" y="[zero]" z="[zero]"/> + </PosPart> + </PosPartSection> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal6f:TECPetal6F"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="RPosition" value="373.084*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="3"> + 16.1238*deg ,1.1238*deg ,-16.1238*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="3"> + tecpetpar:TECCool4,tecpetpar:TECCool3,tecpetpar:TECCool3</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal6f:TECPetal6F"/> + <Numeric name="StartCopyNo" value="4"/> + <Numeric name="RPosition" value="438.663*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="4"> + 12.3385*deg ,2.6615*deg ,-2.6615*deg ,-12.3385*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="4"> + tecpetpar:TECCool4,tecpetpar:TECCool4,tecpetpar:TECCool3,tecpetpar:TECCool3</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal6f:TECPetal6F"/> + <Numeric name="StartCopyNo" value="8"/> + <Numeric name="RPosition" value="451.736*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="4"> + 14.4308*deg ,5.4308*deg ,-5.4308*deg ,-14.4308*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="4"> + tecpetpar:TECCool2,tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool2</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal6f:TECPetal6F"/> + <Numeric name="StartCopyNo" value="12"/> + <Numeric name="RPosition" value="491.326*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="4"> + 9.6429*deg ,5.2432*deg ,-5.3537*deg ,-9.7534*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="4"> + tecpetpar:TECCool5,tecpetpar:TECCool5,tecpetpar:TECCool5,tecpetpar:TECCool5</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal6f:TECPetal6F"/> + <Numeric name="StartCopyNo" value="16"/> + <Numeric name="RPosition" value="529.973*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="4"> + 13.5*deg ,4.5*deg ,-4.5*deg ,-13.5*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="4"> + tecpetpar:TECCool2,tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool2</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal6f:TECPetal7F"/> + <Numeric name="StartCopyNo" value="20"/> + <Numeric name="RPosition" value="565.026*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="7"> + 13.5955*deg ,9.3071*deg ,5.6902*deg ,0.7383*deg ,-7.1669*deg ,-8.7012*deg ,-13.5955*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="7"> + tecpetpar:TECCool1,tecpetpar:TECCool5,tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool5,tecpetpar:TECCool2</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal6f:TECPetal7F"/> + <Numeric name="StartCopyNo" value="27"/> + <Numeric name="RPosition" value="646.359*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="5"> + 12.8571*deg ,6.4286*deg ,0*deg ,-6.4286*deg ,-12.8571*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="5"> + tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool2</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal6f:TECPetal7F"/> + <Numeric name="StartCopyNo" value="32"/> + <Numeric name="RPosition" value="688.526*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="3"> + 9.644*deg ,-0.644*deg ,-9.644*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="3"> + tecpetpar:TECCool3,tecpetpar:TECCool3,tecpetpar:TECCool4</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal6f:TECPetal7F"/> + <Numeric name="StartCopyNo" value="35"/> + <Numeric name="RPosition" value="705.393*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="4"> + 8.0585*deg ,2.4756*deg ,-5.2453*deg ,-11.2274*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="4"> + tecpetpar:TECCool5,tecpetpar:TECCool5,tecpetpar:TECCool5,tecpetpar:TECCool5</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal6f:TECPetal7F"/> + <Numeric name="StartCopyNo" value="39"/> + <Numeric name="RPosition" value="777.681*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="4"> + 7.227*deg ,1.773*deg ,-1.773*deg ,-7.227*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="4"> + tecpetpar:TECCool3,tecpetpar:TECCool3,tecpetpar:TECCool4,tecpetpar:TECCool4</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal6f:TECPetal7F"/> + <Numeric name="StartCopyNo" value="43"/> + <Numeric name="RPosition" value="809.358*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="9"> + 8.8981*deg ,6.5507*deg ,4.2142*deg ,1.8718*deg ,-0.4758*deg ,-2.8175*deg ,-5.1527*deg ,-7.4972*deg ,-9.8497*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="9"> + tecpetpar:TECCool5,tecpetpar:TECCool5,tecpetpar:TECCool5,tecpetpar:TECCool5,tecpetpar:TECCool5,tecpetpar:TECCool5,tecpetpar:TECCool5,tecpetpar:TECCool5,tecpetpar:TECCool5</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal6f:TECPetal7F"/> + <Numeric name="StartCopyNo" value="52"/> + <Numeric name="RPosition" value="826.305*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="5"> + 13.4078*deg ,5.8779*deg ,0.5506*deg ,-6.9792*deg ,-13.4078*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="5"> + tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool2</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal6f:TECPetal7F"/> + <Numeric name="StartCopyNo" value="57"/> + <Numeric name="RPosition" value="862.788*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="6"> + 11.25*deg ,6.75*deg ,2.25*deg ,-2.25*deg ,-6.75*deg ,-11.25*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="6"> + tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool1</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal6f:TECPetalaF"/> + <Numeric name="StartCopyNo" value="63"/> + <Numeric name="RPosition" value="937.93*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="8"> + 11.9037*deg ,7.382*deg ,5.4751*deg ,0.9535*deg ,-0.9535*deg ,-5.4751*deg ,-7.382*deg ,-11.9037*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="8"> + tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool2,tecpetpar:TECCool2,tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool2,tecpetpar:TECCool2</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal6f:TECPetalaF"/> + <Numeric name="StartCopyNo" value="71"/> + <Numeric name="RPosition" value="997.895*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="8"> + 11.6983*deg ,7.1983*deg ,6.3017*deg ,2.6983*deg ,-2.6983*deg ,-6.3017*deg ,-10.1082*deg ,-11.6983*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="8"> + tecpetpar:TECCool1,tecpetpar:TECCool5,tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool5,tecpetpar:TECCool1</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal6f:TECPetalaF"/> + <Numeric name="StartCopyNo" value="79"/> + <Numeric name="RPosition" value="1037.61*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="1"> + -9.9912*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="1"> + tecpetpar:TECCool5</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal6f:TECPetalaF"/> + <Numeric name="StartCopyNo" value="80"/> + <Numeric name="RPosition" value="1065.23*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="1"> + -9.9978*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="1"> + tecpetpar:TECCool5</Vector> + </Algorithm> + <Algorithm name="track:DDTECOptoHybAlgo"> + <rParent name="tecpetal6f:TECICBCont6F1"/> + <Numeric name="StartCopyNo" value="9"/> + <String name="ChildName" value="tecpetpar:TECOptoHybrid"/> + <Numeric name="OptoWidth" value="[tecpetpar:HybridWidth]"/> + <Numeric name="OptoHeight" value="[tecpetpar:HybridHeight]"/> + <Numeric name="Rpos" value="562.721*mm"/> + <Numeric name="Zpos" value="-[tecpetpar:HybridZ]"/> + <Vector name="Angles" type="numeric" nEntries="3"> + 11.2453*deg ,2.6765*deg ,-6.8472*deg</Vector> + </Algorithm> + <Algorithm name="track:DDTECOptoHybAlgo"> + <rParent name="tecpetal6f:TECICBCont6F2"/> + <Numeric name="StartCopyNo" value="12"/> + <String name="ChildName" value="tecpetpar:TECOptoHybrid"/> + <Numeric name="OptoWidth" value="[tecpetpar:HybridWidth]"/> + <Numeric name="OptoHeight" value="[tecpetpar:HybridHeight]"/> + <Numeric name="Rpos" value="685.052*mm"/> + <Numeric name="Zpos" value="[tecpetpar:HybridZ]"/> + <Vector name="Angles" type="numeric" nEntries="4"> + 9.6425*deg ,4.0592*deg ,-3.6616*deg ,-9.643*deg</Vector> + </Algorithm> + <Algorithm name="track:DDTECOptoHybAlgo"> + <rParent name="tecpetal6f:TECICBCont6F1"/> + <Numeric name="StartCopyNo" value="16"/> + <String name="ChildName" value="tecpetpar:TECOptoHybrid"/> + <Numeric name="OptoWidth" value="[tecpetpar:HybridWidth]"/> + <Numeric name="OptoHeight" value="[tecpetpar:HybridHeight]"/> + <Numeric name="Rpos" value="807.002*mm"/> + <Numeric name="Zpos" value="-[tecpetpar:HybridZ]"/> + <Vector name="Angles" type="numeric" nEntries="9"> + 10.2499*deg ,7.9025*deg ,5.5659*deg ,3.2235*deg ,0.8753*deg ,-1.4658*deg ,-3.801*deg ,-6.1455*deg ,-8.5563*deg</Vector> + </Algorithm> + <Algorithm name="track:DDTECOptoHybAlgo"> + <rParent name="tecpetal6f:TECICBCont6F2"/> + <Numeric name="StartCopyNo" value="25"/> + <String name="ChildName" value="tecpetpar:TECOptoHybrid"/> + <Numeric name="OptoWidth" value="[tecpetpar:HybridWidth]"/> + <Numeric name="OptoHeight" value="[tecpetpar:HybridHeight]"/> + <Numeric name="Rpos" value="977.591*mm"/> + <Numeric name="Zpos" value="[tecpetpar:HybridZ]"/> + <Vector name="Angles" type="numeric" nEntries="3"> + 8.3153*deg ,3.8227*deg ,-5.1984*deg</Vector> + </Algorithm> + <Algorithm name="track:DDTECOptoHybAlgo"> + <rParent name="tecpetal6f:TECICBCont6F2"/> + <Numeric name="StartCopyNo" value="28"/> + <String name="ChildName" value="tecpetpar:TECOptoHybridShort"/> + <Numeric name="OptoWidth" value="[tecpetpar:HybridHeight]"/> + <Numeric name="OptoHeight" value="[tecpetpar:HybridWidth]"/> + <Numeric name="Rpos" value="977.591*mm"/> + <Numeric name="Zpos" value="[tecpetpar:HybridZ]"/> + <Vector name="Angles" type="numeric" nEntries="1"> + -9.9916*deg</Vector> + </Algorithm> +</DDDefinition> diff --git a/examples/DDCMS/data/tecpetal8b.xml b/examples/DDCMS/data/tecpetal8b.xml new file mode 100644 index 0000000000000000000000000000000000000000..475dfb347594c647ace88339cb3363f97513a469 --- /dev/null +++ b/examples/DDCMS/data/tecpetal8b.xml @@ -0,0 +1,332 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tecpetal8b.xml" eval="true"> + <Constant name="zero" value="0.0*fm"/> + <Constant name="ICCZ" value="([tecpetpar:ICBThick]-[tecpetpar:ICCThick])/2"/> + </ConstantsSection> + <SolidSection label="tecpetal8b.xml"> + <Tubs name="TECPetal8B" rMin="[tecpetal3:PetalRmin]" rMax="[tecpetalb:PetalR1]" dz="[tecpetpar:PetalThick]/2" startPhi="-[tecpetalb:PetalWidth0]/2" deltaPhi="[tecpetalb:PetalWidth0]"/> + </SolidSection> + <LogicalPartSection label="tecpetal8b.xml"> + <LogicalPart name="TECPetalCont8B" category="unspecified"> + <rSolid name="tecpetal3:TECPetalCont3"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TECPetalFrame8B" category="unspecified"> + <rSolid name="tecpetal3:TECPetal3"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TECPetal8B" category="unspecified"> + <rSolid name="tecpetal8b:TECPetal8B"/> + <rMaterial name="tecmaterial:TEC_petal"/> + </LogicalPart> + <LogicalPart name="TECPetal9B" category="unspecified"> + <rSolid name="tecpetalb:TECPetal1B"/> + <rMaterial name="tecmaterial:TEC_petal"/> + </LogicalPart> + <LogicalPart name="TECPetalbB" category="unspecified"> + <rSolid name="tecpetalb:TECPetal2B"/> + <rMaterial name="tecmaterial:TEC_petal"/> + </LogicalPart> + <LogicalPart name="TECICBCont8B1" category="unspecified"> + <rSolid name="tecpetal3:TECICBCont3"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TECICBCont8B2" category="unspecified"> + <rSolid name="tecpetal3:TECICBCont3"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + </LogicalPartSection> + <PosPartSection label="tecpetal8b.xml"> + <PosPart copyNumber="1"> + <rParent name="tecpetal8b:TECPetalCont8B"/> + <rChild name="tecring3b:TECRing3B"/> + <Translation x="[zero]" y="[zero]" z="[tecring3:RingZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal8b:TECPetalCont8B"/> + <rChild name="tecring4b:TECRing4B"/> + <rRotation name="tecpetpar:180X"/> + <Translation x="[zero]" y="[zero]" z="[tecring4:RingZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal8b:TECPetalCont8B"/> + <rChild name="tecring5b:TECRing5B"/> + <Translation x="[zero]" y="[zero]" z="[tecring5:RingZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal8b:TECPetalCont8B"/> + <rChild name="tecring6b:TECRing6B"/> + <rRotation name="tecpetpar:180X"/> + <Translation x="[zero]" y="[zero]" z="[tecring6:RingZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal8b:TECPetalCont8B"/> + <rChild name="tecpetal8b:TECPetalFrame8B"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal8b:TECPetalFrame8B"/> + <rChild name="tecpetal8b:TECPetal8B"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal8b:TECPetalFrame8B"/> + <rChild name="tecpetal8b:TECPetal9B"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal8b:TECPetalFrame8B"/> + <rChild name="tecpetal8b:TECPetalbB"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal8b:TECPetalCont8B"/> + <rChild name="tecpetal8b:TECICBCont8B1"/> + <Translation x="[zero]" y="[zero]" z="-[tecpetpar:ICBZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal8b:TECPetalCont8B"/> + <rChild name="tecpetal8b:TECICBCont8B2"/> + <Translation x="[zero]" y="[zero]" z="[tecpetpar:ICBZ]"/> + </PosPart> + <PosPart copyNumber="4"> + <rParent name="tecpetal8b:TECICBCont8B1"/> + <rChild name="tecpetalb:TECICC46B1"/> + <Translation x="[zero]" y="[zero]" z="[ICCZ]"/> + </PosPart> + <PosPart copyNumber="4"> + <rParent name="tecpetal8b:TECICBCont8B1"/> + <rChild name="tecpetalb:TECICC46B2"/> + <Translation x="[zero]" y="[zero]" z="[ICCZ]"/> + </PosPart> + <PosPart copyNumber="4"> + <rParent name="tecpetal8b:TECICBCont8B1"/> + <rChild name="tecpetalb:TECICC46B3"/> + <Translation x="[zero]" y="[zero]" z="[ICCZ]"/> + </PosPart> + <PosPart copyNumber="4"> + <rParent name="tecpetal8b:TECICBCont8B2"/> + <rChild name="tecpetalb:TECICC35B1"/> + <Translation x="[zero]" y="[zero]" z="-[ICCZ]"/> + </PosPart> + <PosPart copyNumber="4"> + <rParent name="tecpetal8b:TECICBCont8B2"/> + <rChild name="tecpetalb:TECICC35B2"/> + <Translation x="[zero]" y="[zero]" z="-[ICCZ]"/> + </PosPart> + <PosPart copyNumber="4"> + <rParent name="tecpetal8b:TECICBCont8B2"/> + <rChild name="tecpetalb:TECICC35B3"/> + <Translation x="[zero]" y="[zero]" z="-[ICCZ]"/> + </PosPart> + <PosPart copyNumber="4"> + <rParent name="tecpetal8b:TECICBCont8B2"/> + <rChild name="tecpetalb:TECICC35B4"/> + <Translation x="[zero]" y="[zero]" z="-[ICCZ]"/> + </PosPart> + <PosPart copyNumber="4"> + <rParent name="tecpetal8b:TECICBCont8B2"/> + <rChild name="tecpetalb:TECICC35B5"/> + <Translation x="[zero]" y="[zero]" z="-[ICCZ]"/> + </PosPart> + <PosPart copyNumber="8"> + <rParent name="tecpetal8b:TECPetalbB"/> + <rChild name="tecwheel:TECInnerManifold"/> + <Translation x="[zero]" y="[zero]" z="[zero]"/> + </PosPart> + </PosPartSection> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal8b:TECPetal8B"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="RPosition" value="372.842*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="4"> + 10.9517*deg ,8.6238*deg ,-8.6238*deg ,-10.9554*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="4"> + tecpetpar:TECCool5,tecpetpar:TECCool3,tecpetpar:TECCool3,tecpetpar:TECCool5</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal8b:TECPetal8B"/> + <Numeric name="StartCopyNo" value="5"/> + <Numeric name="RPosition" value="438.663*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="2"> + 4.8385*deg ,-4.8385*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="2"> + tecpetpar:TECCool3,tecpetpar:TECCool3</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal8b:TECPetal8B"/> + <Numeric name="StartCopyNo" value="7"/> + <Numeric name="RPosition" value="451.736*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="3"> + 9.9308*deg ,0.9308*deg ,-9.9308*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="3"> + tecpetpar:TECCool2,tecpetpar:TECCool1,tecpetpar:TECCool1</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal8b:TECPetal8B"/> + <Numeric name="StartCopyNo" value="10"/> + <Numeric name="RPosition" value="491.272*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="2"> + 4.829*deg ,-2.1851*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="2"> + tecpetpar:TECCool5,tecpetpar:TECCool5</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal8b:TECPetal8B"/> + <Numeric name="StartCopyNo" value="12"/> + <Numeric name="RPosition" value="529.973*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="3"> + 9*deg ,0*deg ,-9*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="3"> + tecpetpar:TECCool2,tecpetpar:TECCool1,tecpetpar:TECCool1</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal8b:TECPetal9B"/> + <Numeric name="StartCopyNo" value="15"/> + <Numeric name="RPosition" value="565.026*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="4"> + 10.3812*deg ,3.9526*deg ,-3.9526*deg ,-10.3812*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="4"> + tecpetpar:TECCool2,tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool2</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal8b:TECPetal9B"/> + <Numeric name="StartCopyNo" value="19"/> + <Numeric name="RPosition" value="646.359*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="4"> + 9.6429*deg ,3.2143*deg ,-3.2143*deg ,-9.6429*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="4"> + tecpetpar:TECCool2,tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool2</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal8b:TECPetal9B"/> + <Numeric name="StartCopyNo" value="23"/> + <Numeric name="RPosition" value="688.526*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="4"> + 14.144*deg ,5.144*deg ,-5.144*deg ,-14.144*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="4"> + tecpetpar:TECCool4,tecpetpar:TECCool3,tecpetpar:TECCool3,tecpetpar:TECCool4</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal8b:TECPetal9B"/> + <Numeric name="StartCopyNo" value="27"/> + <Numeric name="RPosition" value="705.35*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="3"> + 5.0584*deg ,-3.2876*deg ,-7.7907*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="3"> + tecpetpar:TECCool5,tecpetpar:TECCool5,tecpetpar:TECCool5</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal8b:TECPetalbB"/> + <Numeric name="StartCopyNo" value="30"/> + <Numeric name="RPosition" value="777.681*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="6"> + 11.727*deg ,6.273*deg ,2.727*deg ,-2.727*deg ,-6.273*deg ,-11.727*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="6"> + tecpetpar:TECCool4,tecpetpar:TECCool4,tecpetpar:TECCool3,tecpetpar:TECCool3,tecpetpar:TECCool4,tecpetpar:TECCool4</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal8b:TECPetalbB"/> + <Numeric name="StartCopyNo" value="36"/> + <Numeric name="RPosition" value="809.853*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="11"> + 11.729*deg ,9.3832*deg ,7.0374*deg ,4.6916*deg ,2.3458*deg ,0*deg ,-2.3458*deg ,-4.6916*deg ,-7.0374*deg ,-9.3832*deg ,-11.729*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="11"> + tecpetpar:TECCool5,tecpetpar:TECCool5,tecpetpar:TECCool5,tecpetpar:TECCool5,tecpetpar:TECCool5,tecpetpar:TECCool5,tecpetpar:TECCool5,tecpetpar:TECCool5,tecpetpar:TECCool5,tecpetpar:TECCool5,tecpetpar:TECCool5</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal8b:TECPetalbB"/> + <Numeric name="StartCopyNo" value="47"/> + <Numeric name="RPosition" value="826.305*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="4"> + 10.1935*deg ,3.7649*deg ,-3.7649*deg ,-10.1935*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="4"> + tecpetpar:TECCool2,tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool2</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal8b:TECPetalbB"/> + <Numeric name="StartCopyNo" value="51"/> + <Numeric name="RPosition" value="862.788*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="6"> + 11.25*deg ,6.75*deg ,2.25*deg ,-2.25*deg ,-6.75*deg ,-11.25*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="6"> + tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool1</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal8b:TECPetalbB"/> + <Numeric name="StartCopyNo" value="57"/> + <Numeric name="RPosition" value="937.93*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="6"> + 8.6894*deg ,4.1677*deg ,2.2608*deg ,-2.2608*deg ,-4.1677*deg ,-8.6894*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="6"> + tecpetpar:TECCool2,tecpetpar:TECCool2,tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool2,tecpetpar:TECCool2</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal8b:TECPetalbB"/> + <Numeric name="StartCopyNo" value="63"/> + <Numeric name="RPosition" value="997.895*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="8"> + 11.6983*deg ,6.3017*deg ,2.6983*deg ,-1.8017*deg ,-2.6983*deg ,-6.3017*deg ,-7.1983*deg ,-11.6983*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="8"> + tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool5,tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool5,tecpetpar:TECCool1</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal8b:TECPetalbB"/> + <Numeric name="StartCopyNo" value="71"/> + <Numeric name="RPosition" value="1040.55*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="1"> + 10.0576*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="1"> + tecpetpar:TECCool5</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal8b:TECPetalbB"/> + <Numeric name="StartCopyNo" value="72"/> + <Numeric name="RPosition" value="1068.17*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="1"> + 10.0624*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="1"> + tecpetpar:TECCool5</Vector> + </Algorithm> + <Algorithm name="track:DDTECOptoHybAlgo"> + <rParent name="tecpetal8b:TECICBCont8B2"/> + <Numeric name="StartCopyNo" value="7"/> + <String name="ChildName" value="tecpetpar:TECOptoHybrid"/> + <Numeric name="OptoWidth" value="[tecpetpar:HybridWidth]"/> + <Numeric name="OptoHeight" value="[tecpetpar:HybridHeight]"/> + <Numeric name="Rpos" value="685.152*mm"/> + <Numeric name="Zpos" value="[tecpetpar:HybridZ]"/> + <Vector name="Angles" type="numeric" nEntries="3"> + 6.3214*deg ,-2.0241*deg ,-6.5265*deg</Vector> + </Algorithm> + <Algorithm name="track:DDTECOptoHybAlgo"> + <rParent name="tecpetal8b:TECICBCont8B1"/> + <Numeric name="StartCopyNo" value="10"/> + <String name="ChildName" value="tecpetpar:TECOptoHybrid"/> + <Numeric name="OptoWidth" value="[tecpetpar:HybridWidth]"/> + <Numeric name="OptoHeight" value="[tecpetpar:HybridHeight]"/> + <Numeric name="Rpos" value="807.452*mm"/> + <Numeric name="Zpos" value="-[tecpetpar:HybridZ]"/> + <Vector name="Angles" type="numeric" nEntries="11"> + 12.7924*deg ,10.4466*deg ,8.1008*deg ,5.755*deg ,3.4092*deg ,1.0634*deg ,-1.2824*deg ,-3.6282*deg ,-5.974*deg ,-8.3197*deg ,-10.6655*deg</Vector> + </Algorithm> + <Algorithm name="track:DDTECOptoHybAlgo"> + <rParent name="tecpetal8b:TECICBCont8B2"/> + <Numeric name="StartCopyNo" value="21"/> + <String name="ChildName" value="tecpetpar:TECOptoHybrid"/> + <Numeric name="OptoWidth" value="[tecpetpar:HybridWidth]"/> + <Numeric name="OptoHeight" value="[tecpetpar:HybridHeight]"/> + <Numeric name="Rpos" value="977.634*mm"/> + <Numeric name="Zpos" value="[tecpetpar:HybridZ]"/> + <Vector name="Angles" type="numeric" nEntries="3"> + 7.1858*deg ,-0.9183*deg ,-6.3149*deg</Vector> + </Algorithm> + <Algorithm name="track:DDTECOptoHybAlgo"> + <rParent name="tecpetal8b:TECICBCont8B2"/> + <Numeric name="StartCopyNo" value="1"/> + <String name="ChildName" value="tecpetpar:TECDigiOptoHybModule"/> + <Numeric name="OptoHeight" value="[tecpetpar:DOHMWidth]"/> + <Numeric name="OptoWidth" value="[tecpetpar:DOHMHeight]"/> + <Numeric name="Rpos" value="1022.726*mm"/> + <Numeric name="Zpos" value="[tecpetpar:DOHMZ]"/> + <Vector name="Angles" type="numeric" nEntries="1"> + 11.372*deg</Vector> + </Algorithm> +</DDDefinition> diff --git a/examples/DDCMS/data/tecpetal8f.xml b/examples/DDCMS/data/tecpetal8f.xml new file mode 100644 index 0000000000000000000000000000000000000000..144be04ebacdfa3eea77f1adc1a67237609f245b --- /dev/null +++ b/examples/DDCMS/data/tecpetal8f.xml @@ -0,0 +1,327 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tecpetal8f.xml" eval="true"> + <Constant name="zero" value="0.0*fm"/> + <Constant name="ICCZ" value="([tecpetpar:ICBThick]-[tecpetpar:ICCThick])/2"/> + </ConstantsSection> + <SolidSection label="tecpetal8f.xml"> + <Tubs name="TECPetal8F" rMin="[tecpetal3:PetalRmin]" rMax="[tecpetalf:PetalR1]" dz="[tecpetpar:PetalThick]/2" startPhi="-[tecpetalf:PetalWidth0]/2" deltaPhi="[tecpetalf:PetalWidth0]"/> + </SolidSection> + <LogicalPartSection label="tecpetal8f.xml"> + <LogicalPart name="TECPetalCont8F" category="unspecified"> + <rSolid name="tecpetal3:TECPetalCont3"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TECPetalFrame8F" category="unspecified"> + <rSolid name="tecpetal3:TECPetal3"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TECPetal8F" category="unspecified"> + <rSolid name="tecpetal8f:TECPetal8F"/> + <rMaterial name="tecmaterial:TEC_petal"/> + </LogicalPart> + <LogicalPart name="TECPetal9F" category="unspecified"> + <rSolid name="tecpetalf:TECPetal1F"/> + <rMaterial name="tecmaterial:TEC_petal"/> + </LogicalPart> + <LogicalPart name="TECPetalbF" category="unspecified"> + <rSolid name="tecpetalf:TECPetal2F"/> + <rMaterial name="tecmaterial:TEC_petal"/> + </LogicalPart> + <LogicalPart name="TECICBCont8F1" category="unspecified"> + <rSolid name="tecpetal3:TECICBCont3"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TECICBCont8F2" category="unspecified"> + <rSolid name="tecpetal3:TECICBCont3"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + </LogicalPartSection> + <PosPartSection label="tecpetal8f.xml"> + <PosPart copyNumber="1"> + <rParent name="tecpetal8f:TECPetalCont8F"/> + <rChild name="tecring3f:TECRing3F"/> + <Translation x="[zero]" y="[zero]" z="[tecring3:RingZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal8f:TECPetalCont8F"/> + <rChild name="tecring4f:TECRing4F"/> + <rRotation name="tecpetpar:180X"/> + <Translation x="[zero]" y="[zero]" z="[tecring4:RingZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal8f:TECPetalCont8F"/> + <rChild name="tecring5f:TECRing5F"/> + <Translation x="[zero]" y="[zero]" z="[tecring5:RingZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal8f:TECPetalCont8F"/> + <rChild name="tecring6f:TECRing6F"/> + <rRotation name="tecpetpar:180X"/> + <Translation x="[zero]" y="[zero]" z="[tecring6:RingZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal8f:TECPetalCont8F"/> + <rChild name="tecpetal8f:TECPetalFrame8F"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal8f:TECPetalFrame8F"/> + <rChild name="tecpetal8f:TECPetal8F"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal8f:TECPetalFrame8F"/> + <rChild name="tecpetal8f:TECPetal9F"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal8f:TECPetalFrame8F"/> + <rChild name="tecpetal8f:TECPetalbF"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal8f:TECPetalCont8F"/> + <rChild name="tecpetal8f:TECICBCont8F1"/> + <Translation x="[zero]" y="[zero]" z="-[tecpetpar:ICBZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecpetal8f:TECPetalCont8F"/> + <rChild name="tecpetal8f:TECICBCont8F2"/> + <Translation x="[zero]" y="[zero]" z="[tecpetpar:ICBZ]"/> + </PosPart> + <PosPart copyNumber="4"> + <rParent name="tecpetal8f:TECICBCont8F1"/> + <rChild name="tecpetalf:TECICC46F1"/> + <Translation x="[zero]" y="[zero]" z="[ICCZ]"/> + </PosPart> + <PosPart copyNumber="4"> + <rParent name="tecpetal8f:TECICBCont8F1"/> + <rChild name="tecpetalf:TECICC46F2"/> + <Translation x="[zero]" y="[zero]" z="[ICCZ]"/> + </PosPart> + <PosPart copyNumber="4"> + <rParent name="tecpetal8f:TECICBCont8F2"/> + <rChild name="tecpetalf:TECICC35F1"/> + <Translation x="[zero]" y="[zero]" z="-[ICCZ]"/> + </PosPart> + <PosPart copyNumber="4"> + <rParent name="tecpetal8f:TECICBCont8F2"/> + <rChild name="tecpetalf:TECICC35F2"/> + <Translation x="[zero]" y="[zero]" z="-[ICCZ]"/> + </PosPart> + <PosPart copyNumber="4"> + <rParent name="tecpetal8f:TECICBCont8F2"/> + <rChild name="tecpetalf:TECICC35F3"/> + <Translation x="[zero]" y="[zero]" z="-[ICCZ]"/> + </PosPart> + <PosPart copyNumber="4"> + <rParent name="tecpetal8f:TECICBCont8F2"/> + <rChild name="tecpetalf:TECICC35F4"/> + <Translation x="[zero]" y="[zero]" z="-[ICCZ]"/> + </PosPart> + <PosPart copyNumber="4"> + <rParent name="tecpetal8f:TECICBCont8F2"/> + <rChild name="tecpetalf:TECICC35F5"/> + <Translation x="[zero]" y="[zero]" z="-[ICCZ]"/> + </PosPart> + <PosPart copyNumber="7"> + <rParent name="tecpetal8f:TECPetalbF"/> + <rChild name="tecwheel:TECInnerManifold"/> + <Translation x="[zero]" y="[zero]" z="[zero]"/> + </PosPart> + </PosPartSection> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal8f:TECPetal8F"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="RPosition" value="373.084*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="3"> + 16.1238*deg ,1.1238*deg ,-16.1238*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="3"> + tecpetpar:TECCool4,tecpetpar:TECCool3,tecpetpar:TECCool3</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal8f:TECPetal8F"/> + <Numeric name="StartCopyNo" value="4"/> + <Numeric name="RPosition" value="438.663*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="4"> + 12.3385*deg ,2.6615*deg ,-2.6615*deg ,-12.3385*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="4"> + tecpetpar:TECCool4,tecpetpar:TECCool4,tecpetpar:TECCool3,tecpetpar:TECCool3</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal8f:TECPetal8F"/> + <Numeric name="StartCopyNo" value="8"/> + <Numeric name="RPosition" value="451.736*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="4"> + 14.4308*deg ,5.4308*deg ,-5.4308*deg ,-14.4308*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="4"> + tecpetpar:TECCool2,tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool2</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal8f:TECPetal8F"/> + <Numeric name="StartCopyNo" value="12"/> + <Numeric name="RPosition" value="491.326*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="4"> + 9.6429*deg ,5.2432*deg ,-5.3537*deg ,-9.7534*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="4"> + tecpetpar:TECCool5,tecpetpar:TECCool5,tecpetpar:TECCool5,tecpetpar:TECCool5</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal8f:TECPetal8F"/> + <Numeric name="StartCopyNo" value="16"/> + <Numeric name="RPosition" value="529.973*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="4"> + 13.5*deg ,4.5*deg ,-4.5*deg ,-13.5*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="4"> + tecpetpar:TECCool2,tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool2</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal8f:TECPetal9F"/> + <Numeric name="StartCopyNo" value="20"/> + <Numeric name="RPosition" value="565.026*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="7"> + 13.5955*deg ,9.3071*deg ,5.6902*deg ,0.7383*deg ,-7.1669*deg ,-8.7012*deg ,-13.5955*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="7"> + tecpetpar:TECCool1,tecpetpar:TECCool5,tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool5,tecpetpar:TECCool2</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal8f:TECPetal9F"/> + <Numeric name="StartCopyNo" value="27"/> + <Numeric name="RPosition" value="646.359*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="5"> + 12.8571*deg ,6.4286*deg ,0*deg ,-6.4286*deg ,-12.8571*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="5"> + tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool2</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal8f:TECPetal9F"/> + <Numeric name="StartCopyNo" value="32"/> + <Numeric name="RPosition" value="688.526*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="3"> + 9.644*deg ,-0.644*deg ,-9.644*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="3"> + tecpetpar:TECCool3,tecpetpar:TECCool3,tecpetpar:TECCool4</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal8f:TECPetal9F"/> + <Numeric name="StartCopyNo" value="35"/> + <Numeric name="RPosition" value="705.393*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="4"> + 8.0585*deg ,2.4756*deg ,-5.2453*deg ,-11.2274*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="4"> + tecpetpar:TECCool5,tecpetpar:TECCool5,tecpetpar:TECCool5,tecpetpar:TECCool5</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal8f:TECPetal9F"/> + <Numeric name="StartCopyNo" value="39"/> + <Numeric name="RPosition" value="777.681*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="4"> + 7.227*deg ,1.773*deg ,-1.773*deg ,-7.227*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="4"> + tecpetpar:TECCool3,tecpetpar:TECCool3,tecpetpar:TECCool4,tecpetpar:TECCool4</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal8f:TECPetal9F"/> + <Numeric name="StartCopyNo" value="43"/> + <Numeric name="RPosition" value="809.358*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="9"> + 8.8981*deg ,6.5507*deg ,4.2142*deg ,1.8718*deg ,-0.4758*deg ,-2.8175*deg ,-5.1527*deg ,-7.4972*deg ,-9.8497*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="9"> + tecpetpar:TECCool5,tecpetpar:TECCool5,tecpetpar:TECCool5,tecpetpar:TECCool5,tecpetpar:TECCool5,tecpetpar:TECCool5,tecpetpar:TECCool5,tecpetpar:TECCool5,tecpetpar:TECCool5</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal8f:TECPetal9F"/> + <Numeric name="StartCopyNo" value="52"/> + <Numeric name="RPosition" value="826.305*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="5"> + 13.4078*deg ,5.8779*deg ,0.5506*deg ,-6.9792*deg ,-13.4078*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="5"> + tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool2</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal8f:TECPetal9F"/> + <Numeric name="StartCopyNo" value="57"/> + <Numeric name="RPosition" value="862.788*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="6"> + 11.25*deg ,6.75*deg ,2.25*deg ,-2.25*deg ,-6.75*deg ,-11.25*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="6"> + tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool1</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal8f:TECPetalbF"/> + <Numeric name="StartCopyNo" value="63"/> + <Numeric name="RPosition" value="937.93*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="8"> + 11.9037*deg ,7.382*deg ,5.4751*deg ,0.9535*deg ,-0.9535*deg ,-5.4751*deg ,-7.382*deg ,-11.9037*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="8"> + tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool2,tecpetpar:TECCool2,tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool2,tecpetpar:TECCool2</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal8f:TECPetalbF"/> + <Numeric name="StartCopyNo" value="71"/> + <Numeric name="RPosition" value="997.895*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="8"> + 11.6983*deg ,7.1983*deg ,6.3017*deg ,2.6983*deg ,-2.6983*deg ,-6.3017*deg ,-10.1082*deg ,-11.6983*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="8"> + tecpetpar:TECCool1,tecpetpar:TECCool5,tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool1,tecpetpar:TECCool5,tecpetpar:TECCool1</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal8f:TECPetalbF"/> + <Numeric name="StartCopyNo" value="79"/> + <Numeric name="RPosition" value="1037.61*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="1"> + -9.9912*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="1"> + tecpetpar:TECCool5</Vector> + </Algorithm> + <Algorithm name="track:DDTECCoolAlgo"> + <rParent name="tecpetal8f:TECPetalbF"/> + <Numeric name="StartCopyNo" value="80"/> + <Numeric name="RPosition" value="1065.23*mm"/> + <Vector name="PhiPosition" type="numeric" nEntries="1"> + -9.9978*deg</Vector> + <Vector name="CoolInsert" type="string" nEntries="1"> + tecpetpar:TECCool5</Vector> + </Algorithm> + <Algorithm name="track:DDTECOptoHybAlgo"> + <rParent name="tecpetal8f:TECICBCont8F2"/> + <Numeric name="StartCopyNo" value="12"/> + <String name="ChildName" value="tecpetpar:TECOptoHybrid"/> + <Numeric name="OptoWidth" value="[tecpetpar:HybridWidth]"/> + <Numeric name="OptoHeight" value="[tecpetpar:HybridHeight]"/> + <Numeric name="Rpos" value="685.052*mm"/> + <Numeric name="Zpos" value="[tecpetpar:HybridZ]"/> + <Vector name="Angles" type="numeric" nEntries="4"> + 9.6425*deg ,4.0592*deg ,-3.6616*deg ,-9.643*deg</Vector> + </Algorithm> + <Algorithm name="track:DDTECOptoHybAlgo"> + <rParent name="tecpetal8f:TECICBCont8F1"/> + <Numeric name="StartCopyNo" value="16"/> + <String name="ChildName" value="tecpetpar:TECOptoHybrid"/> + <Numeric name="OptoWidth" value="[tecpetpar:HybridWidth]"/> + <Numeric name="OptoHeight" value="[tecpetpar:HybridHeight]"/> + <Numeric name="Rpos" value="807.002*mm"/> + <Numeric name="Zpos" value="-[tecpetpar:HybridZ]"/> + <Vector name="Angles" type="numeric" nEntries="9"> + 10.2499*deg ,7.9025*deg ,5.5659*deg ,3.2235*deg ,0.8753*deg ,-1.4658*deg ,-3.801*deg ,-6.1455*deg ,-8.5563*deg</Vector> + </Algorithm> + <Algorithm name="track:DDTECOptoHybAlgo"> + <rParent name="tecpetal8f:TECICBCont8F2"/> + <Numeric name="StartCopyNo" value="25"/> + <String name="ChildName" value="tecpetpar:TECOptoHybrid"/> + <Numeric name="OptoWidth" value="[tecpetpar:HybridWidth]"/> + <Numeric name="OptoHeight" value="[tecpetpar:HybridHeight]"/> + <Numeric name="Rpos" value="977.591*mm"/> + <Numeric name="Zpos" value="[tecpetpar:HybridZ]"/> + <Vector name="Angles" type="numeric" nEntries="3"> + 8.3153*deg ,3.8227*deg ,-5.1984*deg</Vector> + </Algorithm> + <Algorithm name="track:DDTECOptoHybAlgo"> + <rParent name="tecpetal8f:TECICBCont8F2"/> + <Numeric name="StartCopyNo" value="28"/> + <String name="ChildName" value="tecpetpar:TECOptoHybridShort"/> + <Numeric name="OptoWidth" value="[tecpetpar:HybridHeight]"/> + <Numeric name="OptoHeight" value="[tecpetpar:HybridWidth]"/> + <Numeric name="Rpos" value="977.591*mm"/> + <Numeric name="Zpos" value="[tecpetpar:HybridZ]"/> + <Vector name="Angles" type="numeric" nEntries="1"> + -9.9916*deg</Vector> + </Algorithm> +</DDDefinition> diff --git a/examples/DDCMS/data/tecpetalb.xml b/examples/DDCMS/data/tecpetalb.xml new file mode 100644 index 0000000000000000000000000000000000000000..29237d8769a2cd5c3ac8667bdd97d8e92f7f278e --- /dev/null +++ b/examples/DDCMS/data/tecpetalb.xml @@ -0,0 +1,92 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tecpetalb.xml" eval="true"> + <Constant name="PetalWidth0" value="25.8*deg"/> + <Constant name="PetalWidth1" value="29.9*deg"/> + <Constant name="PetalWidth2" value="26.9*deg"/> + <Constant name="PetalR1" value="55.50*cm"/> + <Constant name="PetalR2" value="75.60*cm"/> + <Constant name="ICC35B5shift" value="-4.54*deg"/> + </ConstantsSection> + <SolidSection label="tecpetalb.xml"> + <Tubs name="TECPetal1B" rMin="[tecpetalb:PetalR1]" rMax="[tecpetalb:PetalR2]" dz="[tecpetpar:PetalThick]/2" startPhi="-[tecpetalb:PetalWidth1]/2" deltaPhi="[tecpetalb:PetalWidth1]"/> + <Tubs name="TECPetal2B" rMin="[tecpetalb:PetalR2]" rMax="[tecpetpar:PetalRmax]" dz="[tecpetpar:PetalThick]/2" startPhi="-[tecpetalb:PetalWidth2]/2" deltaPhi="[tecpetalb:PetalWidth2]"/> + <Tubs name="TECICC1B1" rMin="391.89*mm" rMax="449.56*mm" dz="[tecpetpar:ICCThick]/2" startPhi="-2.17643*deg" deltaPhi="4.35286*deg"/> + <Tubs name="TECICC1B2" rMin="449.56*mm" rMax="493.23*mm" dz="[tecpetpar:ICCThick]/2" startPhi="-5.83087*deg" deltaPhi="11.6617*deg"/> + <Tubs name="TECICC1B3" rMin="493.23*mm" rMax="586.67*mm" dz="[tecpetpar:ICCThick]/2" startPhi="-2.17298*deg" deltaPhi="4.34596*deg"/> + <Tubs name="TECICC35B1" rMin="586.67*mm" rMax="657.37*mm" dz="[tecpetpar:ICCThick]/2" startPhi="-2.10147*deg" deltaPhi="4.20295*deg"/> + <Tubs name="TECICC35B2" rMin="657.37*mm" rMax="690.87*mm" dz="[tecpetpar:ICCThick]/2" startPhi="-12.3423*deg" deltaPhi="24.6847*deg"/> + <Tubs name="TECICC35B3" rMin="690.87*mm" rMax="915.67*mm" dz="[tecpetpar:ICCThick]/2" startPhi="-2.89888*deg" deltaPhi="5.79776*deg"/> + <Tubs name="TECICC35B4" rMin="915.67*mm" rMax="971.8*mm" dz="[tecpetpar:ICCThick]/2" startPhi="-7.10953*deg" deltaPhi="14.2191*deg"/> + <Tubs name="TECICC35B5" rMin="971.8*mm" rMax="1085.91*mm" dz="[tecpetpar:ICCThick]/2" startPhi="-3.62561*deg+[ICC35B5shift]" deltaPhi="7.25122*deg"/> + <Tubs name="TECICC0LB1" rMin="356.18*mm" rMax="390.57*mm" dz="[tecpetpar:ICCThick]/2" startPhi="-9.12831*deg" deltaPhi="18.2566*deg"/> + <Tubs name="TECICC0LB2" rMin="390.57*mm" rMax="432.42*mm" dz="[tecpetpar:ICCThick]/2" startPhi="-2.24672*deg" deltaPhi="4.49345*deg"/> + <Tubs name="TECICC2B1" rMin="542.92*mm" rMax="585.28*mm" dz="[tecpetpar:ICCThick]/2" startPhi="-6.44875*deg" deltaPhi="12.8975*deg"/> + <Tubs name="TECICC2B2" rMin="585.28*mm" rMax="637.44*mm" dz="[tecpetpar:ICCThick]/2" startPhi="-1.65027*deg" deltaPhi="3.30054*deg"/> + <Tubs name="TECICC46B1" rMin="764.83*mm" rMax="814.65*mm" dz="[tecpetpar:ICCThick]/2" startPhi="-1.45104*deg" deltaPhi="2.90208*deg"/> + <Tubs name="TECICC46B2" rMin="814.65*mm" rMax="872.36*mm" dz="[tecpetpar:ICCThick]/2" startPhi="-12.1736*deg" deltaPhi="24.3473*deg"/> + <Tubs name="TECICC46B3" rMin="872.36*mm" rMax="933.02*mm" dz="[tecpetpar:ICCThick]/2" startPhi="-2.12357*deg" deltaPhi="4.24715*deg"/> + </SolidSection> + <LogicalPartSection label="tecpetalb.xml"> + <LogicalPart name="TECICC1B1" category="unspecified"> + <rSolid name="tecpetalb:TECICC1B1"/> + <rMaterial name="tecmaterial:TEC_ICC1B"/> + </LogicalPart> + <LogicalPart name="TECICC1B2" category="unspecified"> + <rSolid name="tecpetalb:TECICC1B2"/> + <rMaterial name="tecmaterial:TEC_ICC1B"/> + </LogicalPart> + <LogicalPart name="TECICC1B3" category="unspecified"> + <rSolid name="tecpetalb:TECICC1B3"/> + <rMaterial name="tecmaterial:TEC_ICC1B"/> + </LogicalPart> + <LogicalPart name="TECICC35B1" category="unspecified"> + <rSolid name="tecpetalb:TECICC35B1"/> + <rMaterial name="tecmaterial:TEC_ICC35B"/> + </LogicalPart> + <LogicalPart name="TECICC35B2" category="unspecified"> + <rSolid name="tecpetalb:TECICC35B2"/> + <rMaterial name="tecmaterial:TEC_ICC35B"/> + </LogicalPart> + <LogicalPart name="TECICC35B3" category="unspecified"> + <rSolid name="tecpetalb:TECICC35B3"/> + <rMaterial name="tecmaterial:TEC_ICC35B"/> + </LogicalPart> + <LogicalPart name="TECICC35B4" category="unspecified"> + <rSolid name="tecpetalb:TECICC35B4"/> + <rMaterial name="tecmaterial:TEC_ICC35B"/> + </LogicalPart> + <LogicalPart name="TECICC35B5" category="unspecified"> + <rSolid name="tecpetalb:TECICC35B5"/> + <rMaterial name="tecmaterial:TEC_ICC35B"/> + </LogicalPart> + <LogicalPart name="TECICC0LB1" category="unspecified"> + <rSolid name="tecpetalb:TECICC0LB1"/> + <rMaterial name="tecmaterial:TEC_ICC0LB"/> + </LogicalPart> + <LogicalPart name="TECICC0LB2" category="unspecified"> + <rSolid name="tecpetalb:TECICC0LB2"/> + <rMaterial name="tecmaterial:TEC_ICC0LB"/> + </LogicalPart> + <LogicalPart name="TECICC2B1" category="unspecified"> + <rSolid name="tecpetalb:TECICC2B1"/> + <rMaterial name="tecmaterial:TEC_ICC2B"/> + </LogicalPart> + <LogicalPart name="TECICC2B2" category="unspecified"> + <rSolid name="tecpetalb:TECICC2B2"/> + <rMaterial name="tecmaterial:TEC_ICC2B"/> + </LogicalPart> + <LogicalPart name="TECICC46B1" category="unspecified"> + <rSolid name="tecpetalb:TECICC46B1"/> + <rMaterial name="tecmaterial:TEC_ICC46B"/> + </LogicalPart> + <LogicalPart name="TECICC46B2" category="unspecified"> + <rSolid name="tecpetalb:TECICC46B2"/> + <rMaterial name="tecmaterial:TEC_ICC46B"/> + </LogicalPart> + <LogicalPart name="TECICC46B3" category="unspecified"> + <rSolid name="tecpetalb:TECICC46B3"/> + <rMaterial name="tecmaterial:TEC_ICC46B"/> + </LogicalPart> + </LogicalPartSection> +</DDDefinition> diff --git a/examples/DDCMS/data/tecpetalf.xml b/examples/DDCMS/data/tecpetalf.xml new file mode 100644 index 0000000000000000000000000000000000000000..feab8eb05fd4fe5ca89a03fb6f525f4d2df584d6 --- /dev/null +++ b/examples/DDCMS/data/tecpetalf.xml @@ -0,0 +1,113 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tecpetalf.xml" eval="true"> + <Constant name="PetalWidth0" value="37.4*deg"/> + <Constant name="PetalWidth1" value="30.3*deg"/> + <Constant name="PetalWidth2" value="26.9*deg"/> + <Constant name="PetalR1" value="53.60*cm"/> + <Constant name="PetalR2" value="88.20*cm"/> + <Constant name="ICC35F5shift" value="3.41*deg"/> + </ConstantsSection> + <!-- TECPetal0F is defined in tecpetal{N}f.xml so that the inner radius can be altered + it would be most usefull to introduce i.e. TECPetal0Flong and TECPetal0Fshort with their + logical definitions here. then the CoolAlgo would not have to be called so often and + everything would be much tidier. However changing the names of anything seems to be no + good idea so it will stay this way + Matthias--> + <SolidSection label="tecpetalf.xml"> + <Tubs name="TECPetal1F" rMin="[tecpetalf:PetalR1]" rMax="[tecpetalf:PetalR2]" dz="[tecpetpar:PetalThick]/2" startPhi="-[tecpetalf:PetalWidth1]/2" deltaPhi="[tecpetalf:PetalWidth1]"/> + <Tubs name="TECPetal2F" rMin="[tecpetalf:PetalR2]" rMax="[tecpetpar:PetalRmax]" dz="[tecpetpar:PetalThick]/2" startPhi="-[tecpetalf:PetalWidth2]/2" deltaPhi="[tecpetalf:PetalWidth2]"/> + <Tubs name="TECICC01LF1" rMin="256*mm" rMax="280.59*mm" dz="[tecpetpar:ICCThick]/2" startPhi="-15.0295*deg" deltaPhi="30.059*deg"/> + <Tubs name="TECICC01LF2" rMin="280.59*mm" rMax="445.95*mm" dz="[tecpetpar:ICCThick]/2" startPhi="-2.22838*deg" deltaPhi="4.45675*deg"/> + <Tubs name="TECICC01LF3" rMin="445.95*mm" rMax="489.83*mm" dz="[tecpetpar:ICCThick]/2" startPhi="-14.4933*deg" deltaPhi="28.9867*deg"/> + <Tubs name="TECICC01LF4" rMin="489.83*mm" rMax="583.28*mm" dz="[tecpetpar:ICCThick]/2" startPhi="-2.60597*deg" deltaPhi="5.21194*deg"/> + <Tubs name="TECICC35F1" rMin="583.28*mm" rMax="643.28*mm" dz="[tecpetpar:ICCThick]/2" startPhi="-3.09787*deg" deltaPhi="6.19574*deg"/> + <Tubs name="TECICC35F2" rMin="643.28*mm" rMax="713.23*mm" dz="[tecpetpar:ICCThick]/2" startPhi="-8.83675*deg" deltaPhi="17.6735*deg"/> + <Tubs name="TECICC35F3" rMin="713.23*mm" rMax="943.22*mm" dz="[tecpetpar:ICCThick]/2" startPhi="-3.06064*deg" deltaPhi="6.12128*deg"/> + <Tubs name="TECICC35F4" rMin="943.22*mm" rMax="962.58*mm" dz="[tecpetpar:ICCThick]/2" startPhi="-13.3485*deg" deltaPhi="26.697*deg"/> + <Tubs name="TECICC35F5" rMin="962.58*mm" rMax="1092.71*mm" dz="[tecpetpar:ICCThick]/2" startPhi="-3.9312*deg+[ICC35F5shift]" deltaPhi="7.86239*deg"/> + <Tubs name="TECICC1SF1" rMin="407.84*mm" rMax="445.95*mm" dz="[tecpetpar:ICCThick]/2" startPhi="-2.01346*deg" deltaPhi="4.02691*deg"/> + <Tubs name="TECICC1SF2" rMin="445.95*mm" rMax="489.48*mm" dz="[tecpetpar:ICCThick]/2" startPhi="-14.1382*deg" deltaPhi="28.2764*deg"/> + <Tubs name="TECICC1SF3" rMin="489.48*mm" rMax="582.93*mm" dz="[tecpetpar:ICCThick]/2" startPhi="-2.60767*deg" deltaPhi="5.21534*deg"/> + <Tubs name="TECICC0F1" rMin="361*mm" rMax="389.81*mm" dz="[tecpetpar:ICCThick]/2" startPhi="-13.6144*deg" deltaPhi="27.2288*deg"/> + <Tubs name="TECICC0F2" rMin="389.81*mm" rMax="446.04*mm" dz="[tecpetpar:ICCThick]/2" startPhi="-1.7847*deg" deltaPhi="3.56939*deg"/> + <Tubs name="TECICC2F1" rMin="543*mm" rMax="565.1*mm" dz="[tecpetpar:ICCThick]/2" startPhi="-11.4782*deg" deltaPhi="22.9565*deg"/> + <Tubs name="TECICC2F2" rMin="565.1*mm" rMax="636.46*mm" dz="[tecpetpar:ICCThick]/2" startPhi="-1.25806*deg" deltaPhi="2.51612*deg"/> + <Tubs name="TECICC46F1" rMin="795*mm" rMax="852.44*mm" dz="[tecpetpar:ICCThick]/2" startPhi="-11.0046*deg" deltaPhi="22.0091*deg"/> + <Tubs name="TECICC46F2" rMin="852.44*mm" rMax="914.9*mm" dz="[tecpetpar:ICCThick]/2" startPhi="-1.47394*deg" deltaPhi="2.94789*deg"/> + </SolidSection> + <LogicalPartSection label="tecpetalf.xml"> + <LogicalPart name="TECICC01LF1" category="unspecified"> + <rSolid name="tecpetalf:TECICC01LF1"/> + <rMaterial name="tecmaterial:TEC_ICC01LF"/> + </LogicalPart> + <LogicalPart name="TECICC01LF2" category="unspecified"> + <rSolid name="tecpetalf:TECICC01LF2"/> + <rMaterial name="tecmaterial:TEC_ICC01LF"/> + </LogicalPart> + <LogicalPart name="TECICC01LF3" category="unspecified"> + <rSolid name="tecpetalf:TECICC01LF3"/> + <rMaterial name="tecmaterial:TEC_ICC01LF"/> + </LogicalPart> + <LogicalPart name="TECICC01LF4" category="unspecified"> + <rSolid name="tecpetalf:TECICC01LF4"/> + <rMaterial name="tecmaterial:TEC_ICC01LF"/> + </LogicalPart> + <LogicalPart name="TECICC35F1" category="unspecified"> + <rSolid name="tecpetalf:TECICC35F1"/> + <rMaterial name="tecmaterial:TEC_ICC35F"/> + </LogicalPart> + <LogicalPart name="TECICC35F2" category="unspecified"> + <rSolid name="tecpetalf:TECICC35F2"/> + <rMaterial name="tecmaterial:TEC_ICC35F"/> + </LogicalPart> + <LogicalPart name="TECICC35F3" category="unspecified"> + <rSolid name="tecpetalf:TECICC35F3"/> + <rMaterial name="tecmaterial:TEC_ICC35F"/> + </LogicalPart> + <LogicalPart name="TECICC35F4" category="unspecified"> + <rSolid name="tecpetalf:TECICC35F4"/> + <rMaterial name="tecmaterial:TEC_ICC35F"/> + </LogicalPart> + <LogicalPart name="TECICC35F5" category="unspecified"> + <rSolid name="tecpetalf:TECICC35F5"/> + <rMaterial name="tecmaterial:TEC_ICC35F"/> + </LogicalPart> + <LogicalPart name="TECICC1SF1" category="unspecified"> + <rSolid name="tecpetalf:TECICC1SF1"/> + <rMaterial name="tecmaterial:TEC_ICC1SF"/> + </LogicalPart> + <LogicalPart name="TECICC1SF2" category="unspecified"> + <rSolid name="tecpetalf:TECICC1SF2"/> + <rMaterial name="tecmaterial:TEC_ICC1SF"/> + </LogicalPart> + <LogicalPart name="TECICC1SF3" category="unspecified"> + <rSolid name="tecpetalf:TECICC1SF3"/> + <rMaterial name="tecmaterial:TEC_ICC1SF"/> + </LogicalPart> + <LogicalPart name="TECICC0F1" category="unspecified"> + <rSolid name="tecpetalf:TECICC0F1"/> + <rMaterial name="tecmaterial:TEC_ICC0F"/> + </LogicalPart> + <LogicalPart name="TECICC0F2" category="unspecified"> + <rSolid name="tecpetalf:TECICC0F2"/> + <rMaterial name="tecmaterial:TEC_ICC0F"/> + </LogicalPart> + <LogicalPart name="TECICC2F1" category="unspecified"> + <rSolid name="tecpetalf:TECICC2F1"/> + <rMaterial name="tecmaterial:TEC_ICC2F"/> + </LogicalPart> + <LogicalPart name="TECICC2F2" category="unspecified"> + <rSolid name="tecpetalf:TECICC2F2"/> + <rMaterial name="tecmaterial:TEC_ICC2F"/> + </LogicalPart> + <LogicalPart name="TECICC46F1" category="unspecified"> + <rSolid name="tecpetalf:TECICC46F1"/> + <rMaterial name="tecmaterial:TEC_ICC46F"/> + </LogicalPart> + <LogicalPart name="TECICC46F2" category="unspecified"> + <rSolid name="tecpetalf:TECICC46F2"/> + <rMaterial name="tecmaterial:TEC_ICC46F"/> + </LogicalPart> + </LogicalPartSection> +</DDDefinition> diff --git a/examples/DDCMS/data/tecpetpar.xml b/examples/DDCMS/data/tecpetpar.xml new file mode 100644 index 0000000000000000000000000000000000000000..48f99c7ac3c11256d502e76689ebe4ae2e00895d --- /dev/null +++ b/examples/DDCMS/data/tecpetpar.xml @@ -0,0 +1,86 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tecpetpar.xml" eval="true"> + <Constant name="zero" value="0.0*fm"/> + <Constant name="PetalContThick" value="50.5*mm"/> + <Constant name="PetalContWidth" value="37.5*deg"/> + <Constant name="PetalContRmax" value="110.17*cm"/> + <Constant name="HybridWidth" value="29.97*mm"/> + <Constant name="HybridHeight" value="22.99*mm"/> + <Constant name="HybridThick" value="1.0*mm"/> + <!--(real 1.5mm) in reality this sticks out into the ring volume and is compressed to keep hirachy intact--> + <Constant name="CoolR1" value="4.1791*mm"/> + <Constant name="CoolR2" value="4.8276*mm"/> + <Constant name="CoolR3" value="4.6029*mm"/> + <Constant name="CoolR4" value="6.2889*mm"/> + <Constant name="CoolR5" value="2.9221*mm"/> + <Constant name="CoolL" value="10.00*mm"/> + <Constant name="PetalThick" value="10.0*mm"/> + <Constant name="PetalWidth" value="37.4*deg"/> + <Constant name="PetalRmax" value="109.9*cm"/> + <Constant name="ICBThick" value="2.222*mm"/> + <!-- see other comments--> + <Constant name="ICBWidth" value="37.4*deg"/> + <Constant name="ICBRmax" value="110.17*cm"/> + <Constant name="ICBZ" value="([PetalThick]+[ICBThick])/2"/> + <Constant name="ICCThick" value="1.20*mm"/> + <Constant name="HybridZ" value="([ICBThick]-[HybridThick])/2"/> + <Constant name="BridgeThick" value="0.25*cm"/> + <Constant name="DOHMWidth" value="76.12*mm"/> + <Constant name="DOHMHeight" value="40.82*mm"/> + <Constant name="DOHMZ" value="[zero]"/> + <Constant name="CCUMHeight" value="31*mm"/> + <Constant name="CCUMWidth" value="31*mm"/> + <Constant name="CCUMThick" value="1.0*mm"/> + <!-- (real: 2mm)in reality this sticks out into the ring volume and is compressed to keep hirachy intact--> + <Constant name="CCUMZ" value="([ICBThick]-[CCUMThick])/2"/> + </ConstantsSection> + <RotationSection label="tecpetpar.xml"> + <Rotation name="180X" thetaX="90*deg" phiX="0*deg" thetaY="90*deg" phiY="-90*deg" thetaZ="180*deg" phiZ="0*deg"/> + </RotationSection> + <SolidSection label="tecpetpar.xml"> + <Tubs name="TECCool1" rMin="[tecpetpar:zero]" rMax="[tecpetpar:CoolR1]" dz="[tecpetpar:CoolL]/2" startPhi="0*deg" deltaPhi="360.*deg"/> + <Tubs name="TECCool2" rMin="[tecpetpar:zero]" rMax="[tecpetpar:CoolR2]" dz="[tecpetpar:CoolL]/2" startPhi="0*deg" deltaPhi="360.*deg"/> + <Tubs name="TECCool3" rMin="[tecpetpar:zero]" rMax="[tecpetpar:CoolR3]" dz="[tecpetpar:CoolL]/2" startPhi="0*deg" deltaPhi="360.*deg"/> + <Tubs name="TECCool4" rMin="[tecpetpar:zero]" rMax="[tecpetpar:CoolR4]" dz="[tecpetpar:CoolL]/2" startPhi="0*deg" deltaPhi="360.*deg"/> + <Tubs name="TECCool5" rMin="[tecpetpar:zero]" rMax="[tecpetpar:CoolR5]" dz="[tecpetpar:CoolL]/2" startPhi="0*deg" deltaPhi="360.*deg"/> + <Box name="TECOptoHybrid" dx="[tecpetpar:HybridHeight]/2" dy="[tecpetpar:HybridWidth]/2" dz="[tecpetpar:HybridThick]/2"/> + <!-- this one is flipped by 90*deg --> + <Box name="TECOptoHybridShort" dx="[tecpetpar:HybridWidth]/2" dy="[tecpetpar:HybridHeight]/2" dz="[tecpetpar:HybridThick]/2"/> + <Box name="TECDigiOptoHybModule" dx="[tecpetpar:DOHMWidth]/2" dy="[tecpetpar:DOHMHeight]/2" dz="[tecpetpar:ICBThick]/2"/> + </SolidSection> + <LogicalPartSection label="tecpetpar.xml"> + <LogicalPart name="TECCool1" category="unspecified"> + <rSolid name="tecpetpar:TECCool1"/> + <rMaterial name="tecmaterial:TEC_petalinsert"/> + </LogicalPart> + <LogicalPart name="TECCool2" category="unspecified"> + <rSolid name="tecpetpar:TECCool2"/> + <rMaterial name="tecmaterial:TEC_petalinsert"/> + </LogicalPart> + <LogicalPart name="TECCool3" category="unspecified"> + <rSolid name="tecpetpar:TECCool3"/> + <rMaterial name="tecmaterial:TEC_petalinsert"/> + </LogicalPart> + <LogicalPart name="TECCool4" category="unspecified"> + <rSolid name="tecpetpar:TECCool4"/> + <rMaterial name="tecmaterial:TEC_petalinsert"/> + </LogicalPart> + <LogicalPart name="TECCool5" category="unspecified"> + <rSolid name="tecpetpar:TECCool5"/> + <rMaterial name="tecmaterial:TEC_petalinsert"/> + </LogicalPart> + <LogicalPart name="TECOptoHybrid" category="unspecified"> + <rSolid name="tecpetpar:TECOptoHybrid"/> + <rMaterial name="tecmaterial:TEC_OptoH"/> + </LogicalPart> + <LogicalPart name="TECOptoHybridShort" category="unspecified"> + <rSolid name="tecpetpar:TECOptoHybridShort"/> + <rMaterial name="tecmaterial:TEC_OptoH"/> + </LogicalPart> + <LogicalPart name="TECDigiOptoHybModule" category="unspecified"> + <rSolid name="tecpetpar:TECDigiOptoHybModule"/> + <rMaterial name="tecmaterial:TEC_DOHM"/> + </LogicalPart> + </LogicalPartSection> +</DDDefinition> diff --git a/examples/DDCMS/data/tecring0.xml b/examples/DDCMS/data/tecring0.xml new file mode 100644 index 0000000000000000000000000000000000000000..d88ae18fcf6caf877ed0877d795d514f430899c1 --- /dev/null +++ b/examples/DDCMS/data/tecring0.xml @@ -0,0 +1,20 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tecring0.xml" eval="true"> + <Constant name="Rin" value="[tecmodule0:Rin]"/> + <Constant name="Rout" value="[tecmodule0:Rout]"/> + <Constant name="Rmin" value="234.012*mm"/> + <Constant name="NPhi" value="24"/> + <Constant name="RPos" value="[Rmin]+([tecmodule0:FullHeight]+[tecmodpar:TopFrameHeight])/2"/> + <Constant name="ModuleGap" value="3.437*mm"/> + <Constant name="RingThick" value="(2*[tecmodpar:ModuleThickDS]+ [ModuleGap])"/> + <Constant name="ModuleZ" value="([tecmodpar:ModuleThickDS]+ [ModuleGap])/2"/> + <Constant name="RingZ" value="-17.2415*mm"/> + <Constant name="BridgeR" value="279.9*mm"/> + <Constant name="BridgeZ" value="([tecpetpar:BridgeThick]-[tecmodule0:BridgeThick])/2"/> + <Constant name="BridgeFrameZ" value="[RingZ]-([tecpetpar:BridgeThick]+ [RingThick])/2"/> + </ConstantsSection> + <SolidSection label="tecring0.xml"> + <Tubs name="TECRing0" rMin="[Rin]" rMax="[Rout]" dz="[RingThick]/2" startPhi="-[tecpetpar:PetalContWidth]/2" deltaPhi="[tecpetpar:PetalContWidth]"/> + </SolidSection> +</DDDefinition> diff --git a/examples/DDCMS/data/tecring0b.xml b/examples/DDCMS/data/tecring0b.xml new file mode 100644 index 0000000000000000000000000000000000000000..7e261a3abd7f4bd001131c761fa6522789dc2779 --- /dev/null +++ b/examples/DDCMS/data/tecring0b.xml @@ -0,0 +1,30 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tecring0b.xml" eval="true"> + <Constant name="Modules" value="1"/> + <Constant name="DPhi" value="360*deg/[tecring0:NPhi]"/> + <Constant name="Phi" value="([Modules]-1)*[DPhi]"/> + <Constant name="Phi0" value="-[Phi]/2"/> + <Constant name="Bridges" value="0"/> + <Constant name="PhiBridge" value="[Phi0]"/> + <Constant name="CoolIns0" value="3333"/> + </ConstantsSection> + <LogicalPartSection label="tecring0b.xml"> + <LogicalPart name="TECRing0B" category="unspecified"> + <rSolid name="tecring0:TECRing0"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + </LogicalPartSection> + <Algorithm name="track:DDTECPhiAlgo"> + <rParent name="tecring0b:TECRing0B"/> + <String name="ChildName" value="tecmodule0:TECModule0"/> + <Numeric name="StartAngle" value="[Phi0]"/> + <Numeric name="IncrAngle" value="[DPhi]"/> + <Numeric name="Radius" value="[tecring0:RPos]"/> + <Numeric name="ZIn" value="-[tecring0:ModuleZ]"/> + <Numeric name="ZOut" value="[tecring0:ModuleZ]"/> + <Numeric name="Number" value="[Modules]"/> + <Numeric name="StartCopyNo" value="3"/> + <Numeric name="IncrCopyNo" value="1"/> + </Algorithm> +</DDDefinition> diff --git a/examples/DDCMS/data/tecring0f.xml b/examples/DDCMS/data/tecring0f.xml new file mode 100644 index 0000000000000000000000000000000000000000..f192e88a310e1f5505999e7bdad69e3e4573dffc --- /dev/null +++ b/examples/DDCMS/data/tecring0f.xml @@ -0,0 +1,47 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tecring0f.xml" eval="true"> + <Constant name="Modules" value="2"/> + <Constant name="DPhi" value="360*deg/[tecring0:NPhi]"/> + <Constant name="Phi" value="([Modules]-1)*[DPhi]"/> + <Constant name="Phi0" value="-[Phi]/2"/> + <Constant name="AngleHyb0" value="-9.375*deg"/> + <Constant name="AngleHyb1" value="-3.125*deg"/> + <Constant name="AngleHyb2" value="3.125*deg"/> + <Constant name="AngleHyb3" value="9.375*deg"/> + <Constant name="Bridges" value="1"/> + <Constant name="PhiBridge" value="[Phi0]+[DPhi]"/> + <Constant name="CoolIns0" value="4404"/> + <Constant name="CoolIns1" value="3333"/> + </ConstantsSection> + <LogicalPartSection label="tecring0f.xml"> + <LogicalPart name="TECRing0F" category="unspecified"> + <rSolid name="tecring0:TECRing0"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + </LogicalPartSection> + <Algorithm name="track:DDTECPhiAlgo"> + <rParent name="tecring0f:TECRing0F"/> + <String name="ChildName" value="tecmodule0:TECModule0"/> + <Numeric name="StartAngle" value="[Phi0]"/> + <Numeric name="IncrAngle" value="[DPhi]"/> + <Numeric name="Radius" value="[tecring0:RPos]"/> + <Numeric name="ZIn" value="[tecring0:ModuleZ]"/> + <Numeric name="ZOut" value="-[tecring0:ModuleZ]"/> + <Numeric name="Number" value="[Modules]"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + </Algorithm> + <Algorithm name="track:DDTECPhiAltAlgo"> + <rParent name="tecring0f:TECRing0F"/> + <String name="ChildName" value="tecmodule0r:TECModule0Bridge"/> + <Numeric name="StartAngle" value="[PhiBridge]"/> + <Numeric name="IncrAngle" value="2*[DPhi]"/> + <Numeric name="Radius" value="[tecring0:BridgeR]"/> + <Numeric name="ZIn" value="[tecring0:BridgeZ]"/> + <Numeric name="ZOut" value="[tecring0:BridgeZ]"/> + <Numeric name="Number" value="[Bridges]"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + </Algorithm> +</DDDefinition> diff --git a/examples/DDCMS/data/tecring1.xml b/examples/DDCMS/data/tecring1.xml new file mode 100644 index 0000000000000000000000000000000000000000..ca79d4e2be8977aaf15e9e74b032dab1003a6fc3 --- /dev/null +++ b/examples/DDCMS/data/tecring1.xml @@ -0,0 +1,20 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tecring1.xml" eval="true"> + <Constant name="Rin" value="[tecmodule1:Rin]"/> + <Constant name="Rout" value="[tecmodule1:Rout]"/> + <Constant name="Rmin" value="321.932*mm"/> + <Constant name="NPhi" value="24"/> + <Constant name="RPos" value="[Rmin]+([tecmodule1:FullHeight]+[tecmodpar:TopFrameHeight])/2"/> + <Constant name="ModuleGap" value="3.437*mm"/> + <Constant name="RingThick" value="(2*[tecmodpar:ModuleThickDS]+ [ModuleGap])"/> + <Constant name="ModuleZ" value="([tecmodpar:ModuleThickDS]+ [ModuleGap])/2"/> + <Constant name="RingZ" value="17.2785*mm"/> + <Constant name="BridgeR" value="368.9*mm"/> + <Constant name="BridgeZ" value="([tecpetpar:BridgeThick]-[tecmodule1:BridgeThick])/2"/> + <Constant name="BridgeFrameZ" value="[RingZ]+([tecpetpar:BridgeThick]+ [RingThick])/2"/> + </ConstantsSection> + <SolidSection label="tecring1.xml"> + <Tubs name="TECRing1" rMin="[Rin]" rMax="[Rout]" dz="[RingThick]/2" startPhi="-[tecpetpar:PetalContWidth]/2" deltaPhi="[tecpetpar:PetalContWidth]"/> + </SolidSection> +</DDDefinition> diff --git a/examples/DDCMS/data/tecring1b.xml b/examples/DDCMS/data/tecring1b.xml new file mode 100644 index 0000000000000000000000000000000000000000..bd0bdf3500ee72083dff978aa10ee4a4f6a3a9ef --- /dev/null +++ b/examples/DDCMS/data/tecring1b.xml @@ -0,0 +1,32 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tecring1b.xml" eval="true"> + <Constant name="Modules" value="1"/> + <Constant name="DPhi" value="360*deg/[tecring1:NPhi]"/> + <Constant name="Phi" value="([Modules]-1)*[DPhi]"/> + <Constant name="Phi0" value="-[Phi]/2"/> + <Constant name="AngleHyb0" value="-10.0*deg"/> + <Constant name="AngleHyb1" value="10.0*deg"/> + <Constant name="Bridges" value="0"/> + <Constant name="PhiBridge" value="[Phi0]"/> + <Constant name="CoolIns0" value="3333"/> + </ConstantsSection> + <LogicalPartSection label="tecring1b.xml"> + <LogicalPart name="TECRing1B" category="unspecified"> + <rSolid name="tecring1:TECRing1"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + </LogicalPartSection> + <Algorithm name="track:DDTECPhiAlgo"> + <rParent name="tecring1b:TECRing1B"/> + <String name="ChildName" value="tecmodule1:TECModule1"/> + <Numeric name="StartAngle" value="[Phi0]"/> + <Numeric name="IncrAngle" value="[DPhi]"/> + <Numeric name="Radius" value="[tecring1:RPos]"/> + <Numeric name="ZIn" value="-[tecring1:ModuleZ]"/> + <Numeric name="ZOut" value="[tecring1:ModuleZ]"/> + <Numeric name="Number" value="[Modules]"/> + <Numeric name="StartCopyNo" value="3"/> + <Numeric name="IncrCopyNo" value="1"/> + </Algorithm> +</DDDefinition> diff --git a/examples/DDCMS/data/tecring1f.xml b/examples/DDCMS/data/tecring1f.xml new file mode 100644 index 0000000000000000000000000000000000000000..5c34a136124e3d10fddb3b9d9c3b56e851976892 --- /dev/null +++ b/examples/DDCMS/data/tecring1f.xml @@ -0,0 +1,43 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tecring1f.xml" eval="true"> + <Constant name="Modules" value="2"/> + <Constant name="DPhi" value="360*deg/[tecring1:NPhi]"/> + <Constant name="Phi" value="([Modules]-1)*[DPhi]"/> + <Constant name="Phi0" value="-[Phi]/2"/> + <Constant name="Bridges" value="1"/> + <Constant name="PhiBridge" value="[Phi0]+[DPhi]"/> + <Constant name="CoolIns0" value="3333"/> + <Constant name="CoolIns1" value="4440"/> + </ConstantsSection> + <LogicalPartSection label="tecring1f.xml"> + <LogicalPart name="TECRing1F" category="unspecified"> + <rSolid name="tecring1:TECRing1"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + </LogicalPartSection> + <Algorithm name="track:DDTECPhiAlgo"> + <rParent name="tecring1f:TECRing1F"/> + <String name="ChildName" value="tecmodule1:TECModule1"/> + <Numeric name="StartAngle" value="[Phi0]"/> + <Numeric name="IncrAngle" value="[DPhi]"/> + <Numeric name="Radius" value="[tecring1:RPos]"/> + <Numeric name="ZIn" value="[tecring1:ModuleZ]"/> + <Numeric name="ZOut" value="-[tecring1:ModuleZ]"/> + <Numeric name="Number" value="[Modules]"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + </Algorithm> + <Algorithm name="track:DDTECPhiAltAlgo"> + <rParent name="tecring1f:TECRing1F"/> + <String name="ChildName" value="tecmodule1r:TECModule1Bridge"/> + <Numeric name="StartAngle" value="[PhiBridge]"/> + <Numeric name="IncrAngle" value="2*[DPhi]"/> + <Numeric name="Radius" value="[tecring1:BridgeR]"/> + <Numeric name="ZIn" value="[tecring1:BridgeZ]"/> + <Numeric name="ZOut" value="[tecring1:BridgeZ]"/> + <Numeric name="Number" value="[Bridges]"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + </Algorithm> +</DDDefinition> diff --git a/examples/DDCMS/data/tecring2.xml b/examples/DDCMS/data/tecring2.xml new file mode 100644 index 0000000000000000000000000000000000000000..c994a1701208f05235fda34429d923dc7ffd0639 --- /dev/null +++ b/examples/DDCMS/data/tecring2.xml @@ -0,0 +1,20 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tecring2.xml" eval="true"> + <Constant name="Rin" value="[tecmodule2:Rin]"/> + <Constant name="Rout" value="[tecmodule2:Rout]"/> + <Constant name="Rmin" value="391.032*mm"/> + <Constant name="NPhi" value="40"/> + <Constant name="RPos" value="[Rmin]+([tecmodule2:FullHeight]+[tecmodpar:TopFrameHeight])/2"/> + <Constant name="ModuleGap" value="3.45*mm"/> + <Constant name="RingThick" value="(2*[tecmodpar:ModuleThickSS]+ [ModuleGap])"/> + <Constant name="ModuleZ" value="([tecmodpar:ModuleThickSS]+ [ModuleGap])/2-[tecmodpar:SideFrameThick]"/> + <Constant name="RingZ" value="-13.236*mm"/> + <Constant name="BridgeR" value="449.8*mm"/> + <Constant name="BridgeZ" value="-0.5*[tecmodpar:SideFrameThick]"/> + <Constant name="BridgeFrameZ" value="[RingZ]-([tecpetpar:BridgeThick]+ [RingThick])/2"/> + </ConstantsSection> + <SolidSection label="tecring2.xml"> + <Tubs name="TECRing2" rMin="[Rin]" rMax="[Rout]" dz="[RingThick]/2" startPhi="-[tecpetpar:PetalContWidth]/2" deltaPhi="[tecpetpar:PetalContWidth]"/> + </SolidSection> +</DDDefinition> diff --git a/examples/DDCMS/data/tecring2b.xml b/examples/DDCMS/data/tecring2b.xml new file mode 100644 index 0000000000000000000000000000000000000000..284ea4d8dcef093c0eb7e1fed5b945502478c0f9 --- /dev/null +++ b/examples/DDCMS/data/tecring2b.xml @@ -0,0 +1,45 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tecring2b.xml" eval="true"> + <Constant name="Modules" value="2"/> + <Constant name="DPhi" value="360*deg/[tecring2:NPhi]"/> + <Constant name="Phi" value="([Modules]-1)*[DPhi]"/> + <Constant name="Phi0" value="-[Phi]/2"/> + <Constant name="AngleHyb0" value="-5.00*deg"/> + <Constant name="AngleHyb1" value="5.00*deg"/> + <Constant name="Bridges" value="1"/> + <Constant name="PhiBridge" value="[Phi0]"/> + <Constant name="CoolIns0" value="1111"/> + <Constant name="CoolIns1" value="2020"/> + </ConstantsSection> + <LogicalPartSection label="tecring2b.xml"> + <LogicalPart name="TECRing2B" category="unspecified"> + <rSolid name="tecring2:TECRing2"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + </LogicalPartSection> + <Algorithm name="track:DDTECPhiAlgo"> + <rParent name="tecring2b:TECRing2B"/> + <String name="ChildName" value="tecmodule2:TECModule2"/> + <Numeric name="StartAngle" value="[Phi0]"/> + <Numeric name="IncrAngle" value="[DPhi]"/> + <Numeric name="Radius" value="[tecring2:RPos]"/> + <Numeric name="ZIn" value="-[tecring2:ModuleZ]-[tecmodpar:SideFrameThick]"/> + <Numeric name="ZOut" value="[tecring2:ModuleZ]"/> + <Numeric name="Number" value="[Modules]"/> + <Numeric name="StartCopyNo" value="4"/> + <Numeric name="IncrCopyNo" value="1"/> + </Algorithm> + <Algorithm name="track:DDTECPhiAltAlgo"> + <rParent name="tecring2b:TECRing2B"/> + <String name="ChildName" value="tecmodule2:TECModule2Bridge"/> + <Numeric name="StartAngle" value="[PhiBridge]"/> + <Numeric name="IncrAngle" value="2*[DPhi]"/> + <Numeric name="Radius" value="[tecring2:BridgeR]"/> + <Numeric name="ZIn" value="[tecring2:BridgeZ]"/> + <Numeric name="ZOut" value="[tecring2:BridgeZ]"/> + <Numeric name="Number" value="[Bridges]"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + </Algorithm> +</DDDefinition> diff --git a/examples/DDCMS/data/tecring2f.xml b/examples/DDCMS/data/tecring2f.xml new file mode 100644 index 0000000000000000000000000000000000000000..30092de9bf510afb8835a4728128ae8da21d5e6c --- /dev/null +++ b/examples/DDCMS/data/tecring2f.xml @@ -0,0 +1,48 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tecring2f.xml" eval="true"> + <Constant name="Modules" value="3"/> + <Constant name="DPhi" value="360*deg/[tecring2:NPhi]"/> + <Constant name="Phi" value="([Modules]-1)*[DPhi]"/> + <Constant name="Phi0" value="-[Phi]/2"/> + <Constant name="AngleHyb0" value="-9.375*deg"/> + <Constant name="AngleHyb1" value="-3.125*deg"/> + <Constant name="AngleHyb2" value="3.125*deg"/> + <Constant name="AngleHyb3" value="9.375*deg"/> + <Constant name="Bridges" value="1"/> + <Constant name="PhiBridge" value="[Phi0]+[DPhi]"/> + <Constant name="CoolIns0" value="0202"/> + <Constant name="CoolIns1" value="1111"/> + <Constant name="CoolIns2" value="2020"/> + </ConstantsSection> + <LogicalPartSection label="tecring2f.xml"> + <LogicalPart name="TECRing2F" category="unspecified"> + <rSolid name="tecring2:TECRing2"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + </LogicalPartSection> + <Algorithm name="track:DDTECPhiAlgo"> + <rParent name="tecring2f:TECRing2F"/> + <String name="ChildName" value="tecmodule2:TECModule2"/> + <Numeric name="StartAngle" value="[Phi0]"/> + <Numeric name="IncrAngle" value="[DPhi]"/> + <Numeric name="Radius" value="[tecring2:RPos]"/> + <Numeric name="ZIn" value="[tecring2:ModuleZ]"/> + <Numeric name="ZOut" value="-[tecring2:ModuleZ]-[tecmodpar:SideFrameThick]"/> + <Numeric name="Number" value="[Modules]"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + </Algorithm> + <Algorithm name="track:DDTECPhiAltAlgo"> + <rParent name="tecring2f:TECRing2F"/> + <String name="ChildName" value="tecmodule2:TECModule2Bridge"/> + <Numeric name="StartAngle" value="[PhiBridge]"/> + <Numeric name="IncrAngle" value="2*[DPhi]"/> + <Numeric name="Radius" value="[tecring2:BridgeR]"/> + <Numeric name="ZIn" value="[tecring2:BridgeZ]"/> + <Numeric name="ZOut" value="[tecring2:BridgeZ]"/> + <Numeric name="Number" value="[Bridges]"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + </Algorithm> +</DDDefinition> diff --git a/examples/DDCMS/data/tecring3.xml b/examples/DDCMS/data/tecring3.xml new file mode 100644 index 0000000000000000000000000000000000000000..01ec4442496de19ffe788e403cfaba0b967e38a7 --- /dev/null +++ b/examples/DDCMS/data/tecring3.xml @@ -0,0 +1,20 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tecring3.xml" eval="true"> + <Constant name="Rin" value="[tecmodule3:Rin]"/> + <Constant name="Rout" value="[tecmodule3:Rout]"/> + <Constant name="Rmin" value="503.081*mm"/> + <Constant name="NPhi" value="56"/> + <Constant name="RPos" value="[Rmin]+([tecmodule3:FullHeight]+[tecmodpar:TopFrameHeight])/2"/> + <Constant name="ModuleGap" value="3.45*mm"/> + <Constant name="RingThick" value="(2*[tecmodpar:ModuleThickSS]+ [ModuleGap])"/> + <Constant name="ModuleZ" value="([tecmodpar:ModuleThickSS]+ [ModuleGap])/2 -[tecmodpar:SideFrameThick]"/> + <Constant name="RingZ" value="13.237*mm"/> + <Constant name="BridgeR" value="563.8*mm"/> + <Constant name="BridgeZ" value="-0.5*[tecmodpar:SideFrameThick]"/> + <Constant name="BridgeFrameZ" value="[RingZ]+([tecpetpar:BridgeThick]+ [RingThick])/2"/> + </ConstantsSection> + <SolidSection label="tecring3.xml"> + <Tubs name="TECRing3" rMin="[Rin]" rMax="[Rout]" dz="[RingThick]/2" startPhi="-[tecpetpar:PetalContWidth]/2" deltaPhi="[tecpetpar:PetalContWidth]"/> + </SolidSection> +</DDDefinition> diff --git a/examples/DDCMS/data/tecring3b.xml b/examples/DDCMS/data/tecring3b.xml new file mode 100644 index 0000000000000000000000000000000000000000..4d52db44ae4c445a871960f70d60de2815a84b5b --- /dev/null +++ b/examples/DDCMS/data/tecring3b.xml @@ -0,0 +1,46 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tecring3b.xml" eval="true"> + <Constant name="Modules" value="3"/> + <Constant name="DPhi" value="360*deg/[tecring3:NPhi]"/> + <Constant name="Phi" value="([Modules]-1)*[DPhi]"/> + <Constant name="Phi0" value="-[Phi]/2"/> + <Constant name="AngleHyb0" value="-7.000*deg"/> + <Constant name="AngleHyb1" value="7.000*deg"/> + <Constant name="Bridges" value="1"/> + <Constant name="PhiBridge" value="[Phi0]+[DPhi]"/> + <Constant name="CoolIns0" value="0202"/> + <Constant name="CoolIns1" value="1111"/> + <Constant name="CoolIns2" value="2020"/> + </ConstantsSection> + <LogicalPartSection label="tecring3b.xml"> + <LogicalPart name="TECRing3B" category="unspecified"> + <rSolid name="tecring3:TECRing3"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + </LogicalPartSection> + <Algorithm name="track:DDTECPhiAlgo"> + <rParent name="tecring3b:TECRing3B"/> + <String name="ChildName" value="tecmodule3:TECModule3"/> + <Numeric name="StartAngle" value="[Phi0]"/> + <Numeric name="IncrAngle" value="[DPhi]"/> + <Numeric name="Radius" value="[tecring3:RPos]"/> + <Numeric name="ZIn" value="[tecring3:ModuleZ]"/> + <Numeric name="ZOut" value="-[tecring3:ModuleZ]-[tecmodpar:SideFrameThick]"/> + <Numeric name="Number" value="[Modules]"/> + <Numeric name="StartCopyNo" value="5"/> + <Numeric name="IncrCopyNo" value="1"/> + </Algorithm> + <Algorithm name="track:DDTECPhiAltAlgo"> + <rParent name="tecring3b:TECRing3B"/> + <String name="ChildName" value="tecmodule3:TECModule3Bridge"/> + <Numeric name="StartAngle" value="[PhiBridge]"/> + <Numeric name="IncrAngle" value="2*[DPhi]"/> + <Numeric name="Radius" value="[tecring3:BridgeR]"/> + <Numeric name="ZIn" value="[tecring3:BridgeZ]"/> + <Numeric name="ZOut" value="[tecring3:BridgeZ]"/> + <Numeric name="Number" value="[Bridges]"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + </Algorithm> +</DDDefinition> diff --git a/examples/DDCMS/data/tecring3f.xml b/examples/DDCMS/data/tecring3f.xml new file mode 100644 index 0000000000000000000000000000000000000000..ccfdf78f9439da7bcf75e3fad6c2317bc453b6be --- /dev/null +++ b/examples/DDCMS/data/tecring3f.xml @@ -0,0 +1,48 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tecring3f.xml" eval="true"> + <Constant name="Modules" value="4"/> + <Constant name="DPhi" value="360*deg/[tecring3:NPhi]"/> + <Constant name="Phi" value="([Modules]-1)*[DPhi]"/> + <Constant name="Phi0" value="-[Phi]/2"/> + <Constant name="AngleHyb0" value="-9.375*deg"/> + <Constant name="AngleHyb1" value="0.000*deg"/> + <Constant name="AngleHyb2" value="9.375*deg"/> + <Constant name="Bridges" value="2"/> + <Constant name="PhiBridge" value="[Phi0]"/> + <Constant name="CoolIns0" value="0202"/> + <Constant name="CoolIns1" value="1111"/> + <Constant name="CoolIns2" value="0000"/> + <Constant name="CoolIns3" value="1111"/> + </ConstantsSection> + <LogicalPartSection label="tecring3f.xml"> + <LogicalPart name="TECRing3F" category="unspecified"> + <rSolid name="tecring3:TECRing3"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + </LogicalPartSection> + <Algorithm name="track:DDTECPhiAlgo"> + <rParent name="tecring3f:TECRing3F"/> + <String name="ChildName" value="tecmodule3:TECModule3"/> + <Numeric name="StartAngle" value="[Phi0]"/> + <Numeric name="IncrAngle" value="[DPhi]"/> + <Numeric name="Radius" value="[tecring3:RPos]"/> + <Numeric name="ZIn" value="-[tecring3:ModuleZ]-[tecmodpar:SideFrameThick]"/> + <Numeric name="ZOut" value="[tecring3:ModuleZ]"/> + <Numeric name="Number" value="[Modules]"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + </Algorithm> + <Algorithm name="track:DDTECPhiAltAlgo"> + <rParent name="tecring3f:TECRing3F"/> + <String name="ChildName" value="tecmodule3:TECModule3Bridge"/> + <Numeric name="StartAngle" value="[PhiBridge]"/> + <Numeric name="IncrAngle" value="2*[DPhi]"/> + <Numeric name="Radius" value="[tecring3:BridgeR]"/> + <Numeric name="ZIn" value="[tecring3:BridgeZ]"/> + <Numeric name="ZOut" value="[tecring3:BridgeZ]"/> + <Numeric name="Number" value="[Bridges]"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + </Algorithm> +</DDDefinition> diff --git a/examples/DDCMS/data/tecring4.xml b/examples/DDCMS/data/tecring4.xml new file mode 100644 index 0000000000000000000000000000000000000000..47a3848bb30ef632036b41ec1d198a39dcc0486f --- /dev/null +++ b/examples/DDCMS/data/tecring4.xml @@ -0,0 +1,20 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tecring4.xml" eval="true"> + <Constant name="Rin" value="[tecmodule4:Rin]"/> + <Constant name="Rout" value="[tecmodule4:Rout]"/> + <Constant name="Rmin" value="601.787*mm"/> + <Constant name="NPhi" value="40"/> + <Constant name="RPos" value="[Rmin]+([tecmodule4:FullHeight]+[tecmodpar:TopFrameHeight])/2"/> + <Constant name="ModuleGap" value="3.75*mm"/> + <Constant name="RingThick" value="(2*[tecmodpar:ModuleThickDS]+ [ModuleGap])"/> + <Constant name="ModuleZ" value="([tecmodpar:ModuleThickDS]+ [ModuleGap])/2"/> + <Constant name="RingZ" value="-17.229*mm"/> + <Constant name="BridgeR" value="685.9*mm"/> + <Constant name="BridgeZ" value="([tecpetpar:BridgeThick]-[tecmodule4:BridgeThick])/2"/> + <Constant name="BridgeFrameZ" value="[RingZ]-([tecpetpar:BridgeThick]+ [RingThick])/2"/> + </ConstantsSection> + <SolidSection label="tecring4.xml"> + <Tubs name="TECRing4" rMin="[Rin]" rMax="[Rout]" dz="[RingThick]/2" startPhi="-[tecpetpar:PetalContWidth]/2" deltaPhi="[tecpetpar:PetalContWidth]"/> + </SolidSection> +</DDDefinition> diff --git a/examples/DDCMS/data/tecring4b.xml b/examples/DDCMS/data/tecring4b.xml new file mode 100644 index 0000000000000000000000000000000000000000..8fe08dcf15135d26afa2df6c7934ef3ed8f208ac --- /dev/null +++ b/examples/DDCMS/data/tecring4b.xml @@ -0,0 +1,47 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tecring4b.xml" eval="true"> + <Constant name="Modules" value="3"/> + <Constant name="DPhi" value="360*deg/[tecring4:NPhi]"/> + <Constant name="Phi" value="([Modules]-1)*[DPhi]"/> + <Constant name="Phi0" value="-[Phi]/2"/> + <Constant name="AngleHyb0" value="-10.000*deg"/> + <Constant name="AngleHyb1" value="0.000*deg"/> + <Constant name="AngleHyb2" value="10.000*deg"/> + <Constant name="Bridges" value="1"/> + <Constant name="PhiBridge" value="[Phi0]+[DPhi]"/> + <Constant name="CoolIns0" value="4404"/> + <Constant name="CoolIns1" value="3333"/> + <Constant name="CoolIns2" value="4440"/> + </ConstantsSection> + <LogicalPartSection label="tecring4b.xml"> + <LogicalPart name="TECRing4B" category="unspecified"> + <rSolid name="tecring4:TECRing4"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + </LogicalPartSection> + <Algorithm name="track:DDTECPhiAlgo"> + <rParent name="tecring4b:TECRing4B"/> + <String name="ChildName" value="tecmodule4:TECModule4"/> + <Numeric name="StartAngle" value="[Phi0]"/> + <Numeric name="IncrAngle" value="[DPhi]"/> + <Numeric name="Radius" value="[tecring4:RPos]"/> + <Numeric name="ZIn" value="[tecring4:ModuleZ]"/> + <Numeric name="ZOut" value="-[tecring4:ModuleZ]"/> + <Numeric name="Number" value="[Modules]"/> + <Numeric name="StartCopyNo" value="3"/> + <Numeric name="IncrCopyNo" value="1"/> + </Algorithm> + <Algorithm name="track:DDTECPhiAltAlgo"> + <rParent name="tecring4b:TECRing4B"/> + <String name="ChildName" value="tecmodule4r:TECModule4Bridge"/> + <Numeric name="StartAngle" value="[PhiBridge]"/> + <Numeric name="IncrAngle" value="2*[DPhi]"/> + <Numeric name="Radius" value="[tecring4:BridgeR]"/> + <Numeric name="ZIn" value="[tecring4:BridgeZ]"/> + <Numeric name="ZOut" value="[tecring4:BridgeZ]"/> + <Numeric name="Number" value="[Bridges]"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + </Algorithm> +</DDDefinition> diff --git a/examples/DDCMS/data/tecring4f.xml b/examples/DDCMS/data/tecring4f.xml new file mode 100644 index 0000000000000000000000000000000000000000..631d0794ae0b85f3a8d2d0e5f1814138ce269749 --- /dev/null +++ b/examples/DDCMS/data/tecring4f.xml @@ -0,0 +1,47 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tecring4f.xml" eval="true"> + <Constant name="Modules" value="2"/> + <Constant name="DPhi" value="360*deg/[tecring4:NPhi]"/> + <Constant name="Phi" value="([Modules]-1)*[DPhi]"/> + <Constant name="Phi0" value="-[Phi]/2"/> + <Constant name="AngleHyb0" value="-9.375*deg"/> + <Constant name="AngleHyb1" value="-3.125*deg"/> + <Constant name="AngleHyb2" value="3.125*deg"/> + <Constant name="AngleHyb3" value="9.375*deg"/> + <Constant name="Bridges" value="1"/> + <Constant name="PhiBridge" value="[Phi0]+[DPhi]"/> + <Constant name="CoolIns0" value="4404"/> + <Constant name="CoolIns1" value="3333"/> + </ConstantsSection> + <LogicalPartSection label="tecring4f.xml"> + <LogicalPart name="TECRing4F" category="unspecified"> + <rSolid name="tecring4:TECRing4"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + </LogicalPartSection> + <Algorithm name="track:DDTECPhiAlgo"> + <rParent name="tecring4f:TECRing4F"/> + <String name="ChildName" value="tecmodule4:TECModule4"/> + <Numeric name="StartAngle" value="[Phi0]"/> + <Numeric name="IncrAngle" value="[DPhi]"/> + <Numeric name="Radius" value="[tecring4:RPos]"/> + <Numeric name="ZIn" value="[tecring4:ModuleZ]"/> + <Numeric name="ZOut" value="-[tecring4:ModuleZ]"/> + <Numeric name="Number" value="[Modules]"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + </Algorithm> + <Algorithm name="track:DDTECPhiAltAlgo"> + <rParent name="tecring4f:TECRing4F"/> + <String name="ChildName" value="tecmodule4r:TECModule4Bridge"/> + <Numeric name="StartAngle" value="[PhiBridge]"/> + <Numeric name="IncrAngle" value="2*[DPhi]"/> + <Numeric name="Radius" value="[tecring4:BridgeR]"/> + <Numeric name="ZIn" value="[tecring4:BridgeZ]"/> + <Numeric name="ZOut" value="[tecring4:BridgeZ]"/> + <Numeric name="Number" value="[Bridges]"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + </Algorithm> +</DDDefinition> diff --git a/examples/DDCMS/data/tecring5.xml b/examples/DDCMS/data/tecring5.xml new file mode 100644 index 0000000000000000000000000000000000000000..8ea76d347448b97306b32b09a2df894842ccdf8e --- /dev/null +++ b/examples/DDCMS/data/tecring5.xml @@ -0,0 +1,20 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tecring5.xml" eval="true"> + <Constant name="Rin" value="[tecmodule5:Rin]"/> + <Constant name="Rout" value="[tecmodule5:Rout]"/> + <Constant name="Rmin" value="725.41*mm"/> + <Constant name="NPhi" value="56"/> + <Constant name="RPos" value="[Rmin]+([tecmodule5:FullHeight]+[tecmodpar:TopFrameHeight])/2"/> + <Constant name="ModuleGap" value="3.45*mm"/> + <Constant name="RingThick" value="(2*[tecmodpar:ModuleThickSS]+ [ModuleGap])"/> + <Constant name="ModuleZ" value="([tecmodpar:ModuleThickSS]+ [ModuleGap])/2-[tecmodpar:SideFrameThick]"/> + <Constant name="RingZ" value="12.431*mm"/> + <Constant name="BridgeR" value="824.6*mm"/> + <Constant name="BridgeZ" value="-0.5*[tecmodpar:SideFrameThick]"/> + <Constant name="BridgeFrameZ" value="[RingZ]+([tecpetpar:BridgeThick]+ [RingThick])/2"/> + </ConstantsSection> + <SolidSection label="tecring5.xml"> + <Tubs name="TECRing5" rMin="[Rin]" rMax="[Rout]" dz="[RingThick]/2" startPhi="-[tecpetpar:PetalContWidth]/2" deltaPhi="[tecpetpar:PetalContWidth]"/> + </SolidSection> +</DDDefinition> diff --git a/examples/DDCMS/data/tecring5b.xml b/examples/DDCMS/data/tecring5b.xml new file mode 100644 index 0000000000000000000000000000000000000000..cd6ad62db1b2aba22c6b12f98014a7847ec6817d --- /dev/null +++ b/examples/DDCMS/data/tecring5b.xml @@ -0,0 +1,55 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tecring5b.xml" eval="true"> + <Constant name="Modules" value="3"/> + <Constant name="DPhi" value="360*deg/[tecring5:NPhi]"/> + <Constant name="Phi" value="([Modules]-1)*[DPhi]"/> + <Constant name="Phi0" value="-[Phi]/2"/> + <Constant name="AngleHyb0" value="-11.00*deg"/> + <Constant name="AngleHyb1" value="-8.80*deg"/> + <Constant name="AngleHyb2" value="-6.60*deg"/> + <Constant name="AngleHyb3" value="-4.40*deg"/> + <Constant name="AngleHyb4" value="-2.20*deg"/> + <Constant name="AngleHyb5" value="0.00*deg"/> + <Constant name="AngleHyb6" value="2.20*deg"/> + <Constant name="AngleHyb7" value="4.40*deg"/> + <Constant name="AngleHyb8" value="6.60*deg"/> + <Constant name="AngleHyb9" value="8.80*deg"/> + <Constant name="AngleHybA" value="11.00*deg"/> + <Constant name="Bridges" value="1"/> + <Constant name="PhiBridge" value="[Phi0]+[DPhi]"/> + <Constant name="CoolIns0" value="2202"/> + <Constant name="CoolIns1" value="1111"/> + <Constant name="CoolIns2" value="2220"/> + </ConstantsSection> + <LogicalPartSection label="tecring5b.xml"> + <LogicalPart name="TECRing5B" category="unspecified"> + <rSolid name="tecring5:TECRing5"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + </LogicalPartSection> + <Algorithm name="track:DDTECPhiAlgo"> + <rParent name="tecring5b:TECRing5B"/> + <String name="ChildName" value="tecmodule5:TECModule5"/> + <Numeric name="StartAngle" value="[Phi0]"/> + <Numeric name="IncrAngle" value="[DPhi]"/> + <Numeric name="Radius" value="[tecring5:RPos]"/> + <Numeric name="ZIn" value="[tecring5:ModuleZ]"/> + <Numeric name="ZOut" value="-[tecring5:ModuleZ]-[tecmodpar:SideFrameThick]"/> + <Numeric name="Number" value="[Modules]"/> + <Numeric name="StartCopyNo" value="5"/> + <Numeric name="IncrCopyNo" value="1"/> + </Algorithm> + <Algorithm name="track:DDTECPhiAltAlgo"> + <rParent name="tecring5b:TECRing5B"/> + <String name="ChildName" value="tecmodule5:TECModule5Bridge"/> + <Numeric name="StartAngle" value="[PhiBridge]"/> + <Numeric name="IncrAngle" value="2*[DPhi]"/> + <Numeric name="Radius" value="[tecring5:BridgeR]"/> + <Numeric name="ZIn" value="[tecring5:BridgeZ]"/> + <Numeric name="ZOut" value="[tecring5:BridgeZ]"/> + <Numeric name="Number" value="[Bridges]"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + </Algorithm> +</DDDefinition> diff --git a/examples/DDCMS/data/tecring5f.xml b/examples/DDCMS/data/tecring5f.xml new file mode 100644 index 0000000000000000000000000000000000000000..33c2950f8f21e8991e5d1a5eb056952c001e578e --- /dev/null +++ b/examples/DDCMS/data/tecring5f.xml @@ -0,0 +1,54 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tecring5f.xml" eval="true"> + <Constant name="Modules" value="4"/> + <Constant name="DPhi" value="360*deg/[tecring5:NPhi]"/> + <Constant name="Phi" value="([Modules]-1)*[DPhi]"/> + <Constant name="Phi0" value="-[Phi]/2"/> + <Constant name="AngleHyb0" value="-11.00*deg"/> + <Constant name="AngleHyb1" value="-8.25*deg"/> + <Constant name="AngleHyb2" value="-5.50*deg"/> + <Constant name="AngleHyb3" value="-2.75*deg"/> + <Constant name="AngleHyb4" value="0.00*deg"/> + <Constant name="AngleHyb5" value="2.75*deg"/> + <Constant name="AngleHyb6" value="5.50*deg"/> + <Constant name="AngleHyb7" value="8.25*deg"/> + <Constant name="AngleHyb8" value="11.00*deg"/> + <Constant name="Bridges" value="2"/> + <Constant name="PhiBridge" value="[Phi0]"/> + <Constant name="CoolIns0" value="2202"/> + <Constant name="CoolIns1" value="1111"/> + <Constant name="CoolIns2" value="2200"/> + <Constant name="CoolIns3" value="1111"/> + </ConstantsSection> + <LogicalPartSection label="tecring5f.xml"> + <LogicalPart name="TECRing5F" category="unspecified"> + <rSolid name="tecring5:TECRing5"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + </LogicalPartSection> + <Algorithm name="track:DDTECPhiAlgo"> + <rParent name="tecring5f:TECRing5F"/> + <String name="ChildName" value="tecmodule5:TECModule5"/> + <Numeric name="StartAngle" value="[Phi0]"/> + <Numeric name="IncrAngle" value="[DPhi]"/> + <Numeric name="Radius" value="[tecring5:RPos]"/> + <Numeric name="ZIn" value="-[tecring5:ModuleZ]-[tecmodpar:SideFrameThick]"/> + <Numeric name="ZOut" value="[tecring5:ModuleZ]"/> + <Numeric name="Number" value="[Modules]"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + </Algorithm> + <Algorithm name="track:DDTECPhiAltAlgo"> + <rParent name="tecring5f:TECRing5F"/> + <String name="ChildName" value="tecmodule5:TECModule5Bridge"/> + <Numeric name="StartAngle" value="[PhiBridge]"/> + <Numeric name="IncrAngle" value="2*[DPhi]"/> + <Numeric name="Radius" value="[tecring5:BridgeR]"/> + <Numeric name="ZIn" value="[tecring5:BridgeZ]"/> + <Numeric name="ZOut" value="[tecring5:BridgeZ]"/> + <Numeric name="Number" value="[Bridges]"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + </Algorithm> +</DDDefinition> diff --git a/examples/DDCMS/data/tecring6.xml b/examples/DDCMS/data/tecring6.xml new file mode 100644 index 0000000000000000000000000000000000000000..04c5fb4a285af1ed4beb2832bfa14a30b2561633 --- /dev/null +++ b/examples/DDCMS/data/tecring6.xml @@ -0,0 +1,20 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tecring6.xml" eval="true"> + <Constant name="Rin" value="[tecmodule6:Rin]"/> + <Constant name="Rout" value="[tecmodule6:Rout]"/> + <Constant name="Rmin" value="850.967*mm"/> + <Constant name="NPhi" value="80"/> + <Constant name="RPos" value="[Rmin]+([tecmodule6:FullHeight]+[tecmodpar:TopFrameHeight])/2"/> + <Constant name="ModuleGap" value="3.43*mm"/> + <Constant name="RingThick" value="(2*[tecmodpar:ModuleThickSS]+ [ModuleGap])"/> + <Constant name="ModuleZ" value="([tecmodpar:ModuleThickSS]+ [ModuleGap])/2-[tecmodpar:SideFrameThick]"/> + <Constant name="RingZ" value="-12.421*mm"/> + <Constant name="BridgeR" value="997.4*mm"/> + <Constant name="BridgeZ" value="-0.5*[tecmodpar:SideFrameThick]"/> + <Constant name="BridgeFrameZ" value="[RingZ]-([tecpetpar:BridgeThick]+ [RingThick])/2"/> + </ConstantsSection> + <SolidSection label="tecring6.xml"> + <Tubs name="TECRing6" rMin="[Rin]" rMax="[Rout]" dz="[RingThick]/2" startPhi="-[tecpetpar:PetalContWidth]/2" deltaPhi="[tecpetpar:PetalContWidth]"/> + </SolidSection> +</DDDefinition> diff --git a/examples/DDCMS/data/tecring6b.xml b/examples/DDCMS/data/tecring6b.xml new file mode 100644 index 0000000000000000000000000000000000000000..10d44efce1d68093009778bacbd87af0d93ff0ea --- /dev/null +++ b/examples/DDCMS/data/tecring6b.xml @@ -0,0 +1,50 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tecring6b.xml" eval="true"> + <Constant name="Modules" value="5"/> + <Constant name="DPhi" value="360*deg/[tecring6:NPhi]"/> + <Constant name="Phi" value="([Modules]-1)*[DPhi]"/> + <Constant name="Phi0" value="-[Phi]/2"/> + <Constant name="AngleHyb0" value="-10.00*deg"/> + <Constant name="AngleHyb1" value="0.000*deg"/> + <Constant name="AngleHyb2" value="10.00*deg"/> + <Constant name="Bridges" value="3"/> + <Constant name="PhiBridge" value="[Phi0]"/> + <Constant name="CoolIns0" value="1111"/> + <Constant name="CoolIns1" value="0000"/> + <Constant name="CoolIns2" value="1111"/> + <Constant name="CoolIns3" value="0000"/> + <Constant name="CoolIns4" value="1111"/> + </ConstantsSection> + <LogicalPartSection label="tecring6b.xml"> + <LogicalPart name="TECRing6B" category="unspecified"> + <rSolid name="tecring6:TECRing6"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + </LogicalPartSection> + <Algorithm name="track:DDTECPhiAlgo"> + <rParent name="tecring6b:TECRing6B"/> + <String name="ParentName" value="tecring6b:TECRing6B"/> + <String name="ChildName" value="tecmodule6:TECModule6"/> + <Numeric name="StartAngle" value="[Phi0]"/> + <Numeric name="IncrAngle" value="[DPhi]"/> + <Numeric name="Radius" value="[tecring6:RPos]"/> + <Numeric name="ZIn" value="-[tecring6:ModuleZ]-[tecmodpar:SideFrameThick]"/> + <Numeric name="ZOut" value="[tecring6:ModuleZ]"/> + <Numeric name="Number" value="[Modules]"/> + <Numeric name="StartCopyNo" value="6"/> + <Numeric name="IncrCopyNo" value="1"/> + </Algorithm> + <Algorithm name="track:DDTECPhiAltAlgo"> + <rParent name="tecring6b:TECRing6B"/> + <String name="ChildName" value="tecmodule6:TECModule6Bridge"/> + <Numeric name="StartAngle" value="[PhiBridge]"/> + <Numeric name="IncrAngle" value="2*[DPhi]"/> + <Numeric name="Radius" value="[tecring6:BridgeR]"/> + <Numeric name="ZIn" value="[tecring6:BridgeZ]"/> + <Numeric name="ZOut" value="[tecring6:BridgeZ]"/> + <Numeric name="Number" value="[Bridges]"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + </Algorithm> +</DDDefinition> diff --git a/examples/DDCMS/data/tecring6f.xml b/examples/DDCMS/data/tecring6f.xml new file mode 100644 index 0000000000000000000000000000000000000000..a8ad1d9606ec0b449ce3bc91b4c5e964608e826f --- /dev/null +++ b/examples/DDCMS/data/tecring6f.xml @@ -0,0 +1,46 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tecring6f.xml" eval="true"> + <Constant name="Modules" value="5"/> + <Constant name="DPhi" value="360*deg/[tecring6:NPhi]"/> + <Constant name="Phi" value="([Modules]-1)*[DPhi]"/> + <Constant name="Phi0" value="-[Phi]/2"/> + <Constant name="AngleHyb0" value="-9.375*deg"/> + <Constant name="AngleHyb1" value="-3.125*deg"/> + <Constant name="AngleHyb2" value="3.125*deg"/> + <Constant name="AngleHyb3" value="9.375*deg"/> + <Constant name="Bridges" value="3"/> + <Constant name="PhiBridge" value="[Phi0]"/> + </ConstantsSection> + <LogicalPartSection label="tecring6f.xml"> + <LogicalPart name="TECRing6F" category="unspecified"> + <rSolid name="tecring6:TECRing6"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + </LogicalPartSection> + <Algorithm name="track:DDTECPhiAlgo"> + <rParent name="tecring6f:TECRing6F"/> + <String name="ParentName" value="tecring6f:TECRing6F"/> + <String name="ChildName" value="tecmodule6:TECModule6"/> + <Numeric name="StartAngle" value="[Phi0]"/> + <Numeric name="IncrAngle" value="[DPhi]"/> + <Numeric name="Radius" value="[tecring6:RPos]"/> + <Numeric name="ZIn" value="-[tecring6:ModuleZ]-[tecmodpar:SideFrameThick]"/> + <Numeric name="ZOut" value="[tecring6:ModuleZ]"/> + <Numeric name="Number" value="[Modules]"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + </Algorithm> + <Algorithm name="track:DDTECPhiAltAlgo"> + <rParent name="tecring6f:TECRing6F"/> + <String name="ChildName" value="tecmodule6:TECModule6Bridge"/> + <Numeric name="StartAngle" value="[PhiBridge]"/> + <Numeric name="IncrAngle" value="2*[DPhi]"/> + <Numeric name="Radius" value="[tecring6:BridgeR]"/> + <Numeric name="ZIn" value="[tecring6:BridgeZ]"/> + <Numeric name="ZOut" value="[tecring6:BridgeZ]"/> + <Numeric name="Number" value="[Bridges]"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + </Algorithm> +</DDDefinition> diff --git a/examples/DDCMS/data/tecservices.xml b/examples/DDCMS/data/tecservices.xml new file mode 100644 index 0000000000000000000000000000000000000000..6a0bf582d739a7f6c45d8071c699268058e26091 --- /dev/null +++ b/examples/DDCMS/data/tecservices.xml @@ -0,0 +1,924 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tecservices.xml" eval="true"> + <Constant name="zero" value="0.0*fm"/> + <Constant name="Rin" value="[tec:WheelR]"/> + <Constant name="Rout" value="[tec:OuterSkinRin]"/> + <Constant name="Dz" value="[tec:TECDz]"/> + <Constant name="ChannelWidth" value="50*mm/([Rin]+0.5*30*mm)"/> + <Constant name="ChannelRin" value="[Rin]"/> + <Constant name="ChannelRout" value="[Rin]+30*mm"/> + <Constant name="ChannelHeight" value="1538*mm"/> + <Constant name="ChannelZ" value="0.5*[ChannelHeight]-[Dz]"/> + <!--[tec:Wheel0Z]-[tec:ZPos]-0.5*[tecwheel:DiskT]+0.5*[ChannelHeight]-77.5*mm"/--> + <Constant name="ChannelN" value="[tecwheel:FixServN]"/> + <Constant name="ChannelFi" value="[tecwheel:FixServFi]"/> + <Constant name="ChannelEndInsertWidth" value="[ChannelWidth]"/> + <Constant name="ChannelEndInsertRin" value="[ChannelRin]"/> + <Constant name="ChannelEndInsertRout" value="[ChannelRout]"/> + <Constant name="ChannelEndInsertHeight" value="21*mm"/> + <Constant name="ChannelEndInsertZ" value="0.5*[ChannelEndInsertHeight]-0.5*[ChannelHeight]"/> + <!--[tec:Wheel0Z]-[tec:ZPos]-0.5*[tecwheel:DiskT]+0.5*[ChannelHeight]-77.5*mm"/--> + <Constant name="AxialGroundingWidth" value="20*mm/([Rin]+0.5*2.5*mm)"/> + <Constant name="AxialGroundingRin" value="[Rin]"/> + <Constant name="AxialGroundingRout" value="[Rin]+2.5*mm"/> + <Constant name="AxialGroundingHeight" value="1538*mm"/> + <Constant name="AxialGroundingFi" value="0.5*[ChannelWidth]+0.5*[AxialGroundingWidth]"/> + <Constant name="GasPipeRin" value="0.5*10*mm"/> + <Constant name="GasPipeRout" value="0.5*12*mm"/> + <Constant name="GasPipeRpos" value="1119*mm"/> + <Constant name="GasPipeZ" value="[ChannelZ]+0.5*[ChannelHeight]"/> + <Constant name="GasPipeHeight" value="1460*mm"/> + <Constant name="GasPipePhi1" value="21.8*deg"/> + <Constant name="GasPipePhi2" value="66.8*deg"/> + <Constant name="GasPipePhi3" value="156.8*deg"/> + <Constant name="CoolPipeRin" value="0.5*11*mm"/> + <Constant name="CoolPipeRout" value="0.5*12*mm"/> + <Constant name="CoolPipeHeightS" value="1347*mm"/> + <Constant name="CoolPipeHeightL" value="1487*mm"/> + <Constant name="CoolPipeRpos" value="[Rin]+16.5*mm"/> + <Constant name="CoolPipeZ" value="[ChannelZ]+0.5*[ChannelHeight]"/> + <Constant name="CoolPipePhi1" value="-8.0*deg"/> + <!--relative to Service Channel --> + <Constant name="CoolPipePhi2" value="-6.33*deg"/> + <Constant name="CoolPipePhi3" value="-4.66*deg"/> + <Constant name="CoolPipePhi4" value="-3.0*deg"/> + <Constant name="CoolPipePhi5" value="3*deg"/> + <Constant name="CoolPipePhi6" value="4.66*deg"/> + <Constant name="CoolPipePhi7" value="6.33*deg"/> + <Constant name="CoolPipePhi8" value="8.0*deg"/> + <Constant name="CableRout" value="[Rout]-[CoolPipeRpos]"/> + <Constant name="CableBulkTo8" value="[Dz]-([tec:Wheel8Z]-[tec:ZPos]) - (2*[Dz]-[ChannelHeight])"/> + <Constant name="CableHeight86B" value="0.5*([tec:Wheel8Z]-[tec:Wheel6Z])+[CableBulkTo8]-0.5*[tecpetpar:PetalContThick]"/> + <Constant name="CableHeight86F" value="0.5*([tec:Wheel8Z]-[tec:Wheel6Z])+[CableBulkTo8]+0.5*[tecpetpar:PetalContThick]"/> + <Constant name="CableHeight54B" value="([tec:Wheel8Z]-[tec:Wheel5Z]) + 0.5*([tec:Wheel5Z]-[tec:Wheel4Z])+[CableBulkTo8]-0.5*[tecpetpar:PetalContThick]"/> + <Constant name="CableHeight54F" value="([tec:Wheel8Z]-[tec:Wheel5Z]) + 0.5*([tec:Wheel5Z]-[tec:Wheel4Z])+[CableBulkTo8]+0.5*[tecpetpar:PetalContThick]"/> + <Constant name="CableHeight32B" value="([tec:Wheel8Z]-[tec:Wheel3Z]) + 0.5*([tec:Wheel3Z]-[tec:Wheel2Z])+[CableBulkTo8]-0.5*[tecpetpar:PetalContThick]"/> + <Constant name="CableHeight32F" value="([tec:Wheel8Z]-[tec:Wheel3Z]) + 0.5*([tec:Wheel3Z]-[tec:Wheel2Z])+[CableBulkTo8]+0.5*[tecpetpar:PetalContThick]"/> + <Constant name="CableHeight10B" value="([tec:Wheel8Z]-[tec:Wheel1Z]) + 0.5*([tec:Wheel1Z]-[tec:Wheel0Z])+[CableBulkTo8]-0.5*[tecpetpar:PetalContThick]"/> + <Constant name="CableHeight10F" value="([tec:Wheel8Z]-[tec:Wheel1Z]) + 0.5*([tec:Wheel1Z]-[tec:Wheel0Z])+[CableBulkTo8]+0.5*[tecpetpar:PetalContThick]"/> + <Constant name="PhiCableRout" value="[Rout]"/> + <Constant name="PhiCableRin" value="[GasPipeRpos]+[GasPipeRout]"/> + <Constant name="PhiCableWidth" value="8*deg"/> + <Constant name="PhiCablePhiF" value="[ChannelFi]+[CoolPipePhi8]+asin([CableRout]/[CoolPipeRpos])"/> + <Constant name="PhiCablePhiB" value="[ChannelFi]+[CoolPipePhi1]-asin([CableRout]/[CoolPipeRpos])"/> + <Constant name="PhiCableZLF" value="[CoolPipeZ]-[CableHeight54F]-0.5*[PhiCableHeightLF]"/> + <!-- the Lower part for frontpetal--> + <Constant name="PhiCableHeightLF" value="[ChannelHeight]-[CableHeight54F]"/> + <Constant name="PhiCableZUF" value="[CoolPipeZ]-[CableHeight54F]+0.5*[PhiCableHeightUF]"/> + <!-- the Upper part for frontpetal--> + <Constant name="PhiCableHeightUF" value="[CableHeight54F]"/> + <Constant name="PhiCableZLB" value="[CoolPipeZ]-[CableHeight54B]-0.5*[PhiCableHeightLB]"/> + <!-- the Lower part for backpetal--> + <Constant name="PhiCableHeightLB" value="[ChannelHeight]-[CableHeight54B]"/> + <Constant name="PhiCableZUB" value="[CoolPipeZ]-[CableHeight54B]+0.5*[PhiCableHeightUB]"/> + <!-- the Upper part for backpetal--> + <Constant name="PhiCableHeightUB" value="[CableHeight54B]"/> + <Constant name="CraneBracketRin" value="[Rin]"/> + <Constant name="CraneBracketRout" value="[GasPipeRpos]-[GasPipeRout]"/> + <Constant name="CraneBracketHeight" value="[tecwheel:DiskT]"/> + <Constant name="CraneBracketWidth" value="2*atan(49.5*mm/[CraneBracketRout])*rad"/> + <Constant name="CraneBracketPhi1" value="90*deg"/> + <Constant name="CraneBracketPhi2" value="315*deg"/> + <Constant name="CraneBracketPhi3" value="225*deg"/> + </ConstantsSection> + <SolidSection label="tecservices.xml"> + <Tubs name="TECServices" rMin="[Rin]" rMax="[Rout]" dz="[Dz]" startPhi="0*deg" deltaPhi="360*deg"/> + <Tubs name="TECServChannel" rMin="[ChannelRin]" rMax="[ChannelRout]" dz="0.5*[ChannelHeight]" startPhi="-0.5*[ChannelWidth]" deltaPhi="[ChannelWidth]"/> + <Tubs name="TECAxGrounding" rMin="[AxialGroundingRin]" rMax="[AxialGroundingRout]" dz="0.5*[ChannelHeight]" startPhi="-0.5*[AxialGroundingWidth]" deltaPhi="[AxialGroundingWidth]"/> + <Tubs name="TECChannelEndInsert" rMin="[ChannelEndInsertRin]" rMax="[ChannelEndInsertRout]" dz="0.5*[ChannelEndInsertHeight]" startPhi="-0.5*[ChannelEndInsertWidth]" deltaPhi="[ChannelEndInsertWidth]"/> + <Tubs name="TECGasPipe" rMin="[GasPipeRin]" rMax="[GasPipeRout]" dz="0.5*[GasPipeHeight]" startPhi="0*deg" deltaPhi="360*deg"/> + <Tubs name="TECCoolPipeS" rMin="[CoolPipeRin]" rMax="[CoolPipeRout]" dz="0.5*[CoolPipeHeightS]" startPhi="0*deg" deltaPhi="360*deg"/> + <Tubs name="TECCoolPipeL" rMin="[CoolPipeRin]" rMax="[CoolPipeRout]" dz="0.5*[CoolPipeHeightL]" startPhi="0*deg" deltaPhi="360*deg"/> + <Tubs name="TECCoolantS" rMin="[zero]" rMax="[CoolPipeRin]" dz="0.5*[CoolPipeHeightS]" startPhi="0*deg" deltaPhi="360*deg"/> + <Tubs name="TECCoolantL" rMin="[zero]" rMax="[CoolPipeRin]" dz="0.5*[CoolPipeHeightL]" startPhi="0*deg" deltaPhi="360*deg"/> + <Tubs name="TECCable86B" rMin="[CoolPipeRout]" rMax="[CableRout]" dz="0.5*[CableHeight86B]" startPhi="0*deg" deltaPhi="360*deg"/> + <Tubs name="TECCable86F" rMin="[CoolPipeRout]" rMax="[CableRout]" dz="0.5*[CableHeight86F]" startPhi="0*deg" deltaPhi="360*deg"/> + <Tubs name="TECCable54B" rMin="[CoolPipeRout]" rMax="[CableRout]" dz="0.5*[CableHeight54B]" startPhi="0*deg" deltaPhi="360*deg"/> + <Tubs name="TECCable54F" rMin="[CoolPipeRout]" rMax="[CableRout]" dz="0.5*[CableHeight54F]" startPhi="0*deg" deltaPhi="360*deg"/> + <Tubs name="TECCable32B" rMin="[CoolPipeRout]" rMax="[CableRout]" dz="0.5*[CableHeight32B]" startPhi="0*deg" deltaPhi="360*deg"/> + <Tubs name="TECCable32F" rMin="[CoolPipeRout]" rMax="[CableRout]" dz="0.5*[CableHeight32F]" startPhi="0*deg" deltaPhi="360*deg"/> + <Tubs name="TECCable10B" rMin="[CoolPipeRout]" rMax="[CableRout]" dz="0.5*[CableHeight10B]" startPhi="0*deg" deltaPhi="360*deg"/> + <Tubs name="TECCable10F" rMin="[CoolPipeRout]" rMax="[CableRout]" dz="0.5*[CableHeight10F]" startPhi="0*deg" deltaPhi="360*deg"/> + <Tubs name="TECPhiCableLF" rMin="[PhiCableRin]" rMax="[PhiCableRout]" dz="0.5*[PhiCableHeightLF]" startPhi="0*deg" deltaPhi="[PhiCableWidth]"/> + <Tubs name="TECPhiCableUF" rMin="[PhiCableRin]" rMax="[PhiCableRout]" dz="0.5*[PhiCableHeightUF]" startPhi="0*deg" deltaPhi="[PhiCableWidth]"/> + <Tubs name="TECPhiCableLB" rMin="[PhiCableRin]" rMax="[PhiCableRout]" dz="0.5*[PhiCableHeightLB]" startPhi="-[PhiCableWidth]" deltaPhi="[PhiCableWidth]"/> + <Tubs name="TECPhiCableUB" rMin="[PhiCableRin]" rMax="[PhiCableRout]" dz="0.5*[PhiCableHeightUB]" startPhi="-[PhiCableWidth]" deltaPhi="[PhiCableWidth]"/> + <Tubs name="TECCCraneBracket" rMin="[CraneBracketRin]" rMax="[CraneBracketRout]" dz="0.5*[CraneBracketHeight]" startPhi="-0.5*[CraneBracketWidth]" deltaPhi="[CraneBracketWidth]"/> + </SolidSection> + <LogicalPartSection label="tecservices.xml"> + <!-- Service Channel --> + <LogicalPart name="TECServices" category="unspecified"> + <rSolid name="tecservices:TECServices"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TECServChannel" category="unspecified"> + <rSolid name="tecservices:TECServChannel"/> + <rMaterial name="tecmaterial:TEC_ServChan"/> + </LogicalPart> + <LogicalPart name="TECAxGrounding" category="unspecified"> + <rSolid name="tecservices:TECAxGrounding"/> + <rMaterial name="tecmaterial:TEC_AxGrounding"/> + </LogicalPart> + <LogicalPart name="TECChannelEndInsert" category="unspecified"> + <rSolid name="tecservices:TECChannelEndInsert"/> + <rMaterial name="tecmaterial:TEC_ServChanIns"/> + </LogicalPart> + <!-- Gas Pipes --> + <LogicalPart name="TECGasPipe" category="unspecified"> + <rSolid name="tecservices:TECGasPipe"/> + <rMaterial name="tecmaterial:TEC_GasPipe"/> + </LogicalPart> + <!-- Cooling Pipes --> + <LogicalPart name="TECCoolPipeS" category="unspecified"> + <rSolid name="tecservices:TECCoolPipeS"/> + <rMaterial name="tecmaterial:TEC_CoolPipe"/> + </LogicalPart> + <LogicalPart name="TECCoolPipeL" category="unspecified"> + <rSolid name="tecservices:TECCoolPipeL"/> + <rMaterial name="tecmaterial:TEC_CoolPipe"/> + </LogicalPart> + <LogicalPart name="TECCoolantS" category="unspecified"> + <rSolid name="tecservices:TECCoolantS"/> + <rMaterial name="trackermaterial:T_C6F14_F2_-30C"/> + </LogicalPart> + <LogicalPart name="TECCoolantL" category="unspecified"> + <rSolid name="tecservices:TECCoolantL"/> + <rMaterial name="trackermaterial:T_C6F14_F2_-30C"/> + </LogicalPart> + <LogicalPart name="TECCable86B" category="unspecified"> + <rSolid name="tecservices:TECCable86B"/> + <rMaterial name="tecmaterial:TEC_AxCable"/> + </LogicalPart> + <LogicalPart name="TECCable86F" category="unspecified"> + <rSolid name="tecservices:TECCable86F"/> + <rMaterial name="tecmaterial:TEC_AxCable"/> + </LogicalPart> + <LogicalPart name="TECCable54B" category="unspecified"> + <rSolid name="tecservices:TECCable54B"/> + <rMaterial name="tecmaterial:TEC_AxCable"/> + </LogicalPart> + <LogicalPart name="TECCable54F" category="unspecified"> + <rSolid name="tecservices:TECCable54F"/> + <rMaterial name="tecmaterial:TEC_AxCable"/> + </LogicalPart> + <LogicalPart name="TECCable32B" category="unspecified"> + <rSolid name="tecservices:TECCable32B"/> + <rMaterial name="tecmaterial:TEC_AxCable"/> + </LogicalPart> + <LogicalPart name="TECCable32F" category="unspecified"> + <rSolid name="tecservices:TECCable32F"/> + <rMaterial name="tecmaterial:TEC_AxCable"/> + </LogicalPart> + <LogicalPart name="TECCable10B" category="unspecified"> + <rSolid name="tecservices:TECCable10B"/> + <rMaterial name="tecmaterial:TEC_AxCable"/> + </LogicalPart> + <LogicalPart name="TECCable10F" category="unspecified"> + <rSolid name="tecservices:TECCable10F"/> + <rMaterial name="tecmaterial:TEC_AxCable"/> + </LogicalPart> + <!-- Phi Cables --> + <LogicalPart name="TECPhiCableLF" category="unspecified"> + <rSolid name="tecservices:TECPhiCableLF"/> + <rMaterial name="tecmaterial:TEC_PhiCableL"/> + </LogicalPart> + <LogicalPart name="TECPhiCableUF" category="unspecified"> + <rSolid name="tecservices:TECPhiCableUF"/> + <rMaterial name="tecmaterial:TEC_PhiCableU"/> + </LogicalPart> + <LogicalPart name="TECPhiCableLB" category="unspecified"> + <rSolid name="tecservices:TECPhiCableLB"/> + <rMaterial name="tecmaterial:TEC_PhiCableL"/> + </LogicalPart> + <LogicalPart name="TECPhiCableUB" category="unspecified"> + <rSolid name="tecservices:TECPhiCableUB"/> + <rMaterial name="tecmaterial:TEC_PhiCableU"/> + </LogicalPart> + <!-- Brackets--> + <LogicalPart name="TECCCraneBracket" category="unspecified"> + <rSolid name="tecservices:TECCCraneBracket"/> + <rMaterial name="tecmaterial:TEC_CraneBracket"/> + </LogicalPart> + </LogicalPartSection> + <!-- Service Channel --> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecservices:TECServices"/> + <String name="ChildName" value="tecservices:TECServChannel"/> + <Numeric name="N" value="[ChannelN]"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[ChannelFi]"/> + <Numeric name="Radius" value="[zero]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, [ChannelZ] </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecservices:TECServChannel"/> + <String name="ChildName" value="tecservices:TECChannelEndInsert"/> + <Numeric name="N" value="1"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="0"/> + <Numeric name="Radius" value="[zero]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, [ChannelEndInsertZ] </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecservices:TECServices"/> + <String name="ChildName" value="tecservices:TECAxGrounding"/> + <Numeric name="N" value="[ChannelN]"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[ChannelFi]+[AxialGroundingFi]"/> + <Numeric name="Radius" value="[zero]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, [ChannelZ] </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecservices:TECServices"/> + <String name="ChildName" value="tecservices:TECAxGrounding"/> + <Numeric name="N" value="[ChannelN]"/> + <Numeric name="StartCopyNo" value="1*[ChannelN]+1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[ChannelFi]-[AxialGroundingFi]"/> + <Numeric name="Radius" value="[zero]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, [ChannelZ] </Vector> + </Algorithm> + <!--Gas Pipes--> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecservices:TECServices"/> + <String name="ChildName" value="tecservices:TECGasPipe"/> + <Numeric name="N" value="2"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[GasPipePhi1]"/> + <Numeric name="Radius" value="[GasPipeRpos]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, [CoolPipeZ]-0.5*[GasPipeHeight] </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecservices:TECServices"/> + <String name="ChildName" value="tecservices:TECGasPipe"/> + <Numeric name="N" value="2"/> + <Numeric name="StartCopyNo" value="3"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[GasPipePhi2]"/> + <Numeric name="Radius" value="[GasPipeRpos]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, [CoolPipeZ]-0.5*[GasPipeHeight] </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecservices:TECServices"/> + <String name="ChildName" value="tecservices:TECGasPipe"/> + <Numeric name="N" value="2"/> + <Numeric name="StartCopyNo" value="5"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[GasPipePhi3]"/> + <Numeric name="Radius" value="[GasPipeRpos]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, [CoolPipeZ]-0.5*[GasPipeHeight] </Vector> + </Algorithm> + <!-- Axial CoolingPipes and cables --> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecservices:TECServices"/> + <String name="ChildName" value="tecservices:TECCoolPipeS"/> + <Numeric name="N" value="[ChannelN]"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[ChannelFi]+[CoolPipePhi1]"/> + <Numeric name="Radius" value="[CoolPipeRpos]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, [CoolPipeZ]-0.5*[CoolPipeHeightS] </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecservices:TECServices"/> + <String name="ChildName" value="tecservices:TECCoolantS"/> + <Numeric name="N" value="[ChannelN]"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[ChannelFi]+[CoolPipePhi1]"/> + <Numeric name="Radius" value="[CoolPipeRpos]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, [CoolPipeZ]-0.5*[CoolPipeHeightS] </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecservices:TECServices"/> + <String name="ChildName" value="tecservices:TECCable86B"/> + <Numeric name="N" value="[ChannelN]"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[ChannelFi]+[CoolPipePhi1]"/> + <Numeric name="Radius" value="[CoolPipeRpos]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, [CoolPipeZ]-0.5*[CableHeight86B] </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecservices:TECServices"/> + <String name="ChildName" value="tecservices:TECCoolPipeS"/> + <Numeric name="N" value="[ChannelN]"/> + <Numeric name="StartCopyNo" value="1*[ChannelN]+1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[ChannelFi]+[CoolPipePhi2]"/> + <Numeric name="Radius" value="[CoolPipeRpos]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, [CoolPipeZ]-0.5*[CoolPipeHeightS] </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecservices:TECServices"/> + <String name="ChildName" value="tecservices:TECCoolantS"/> + <Numeric name="N" value="[ChannelN]"/> + <Numeric name="StartCopyNo" value="1*[ChannelN]+1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[ChannelFi]+[CoolPipePhi2]"/> + <Numeric name="Radius" value="[CoolPipeRpos]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, [CoolPipeZ]-0.5*[CoolPipeHeightS] </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecservices:TECServices"/> + <String name="ChildName" value="tecservices:TECCable54B"/> + <Numeric name="N" value="[ChannelN]"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[ChannelFi]+[CoolPipePhi2]"/> + <Numeric name="Radius" value="[CoolPipeRpos]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, [CoolPipeZ]-0.5*[CableHeight54B] </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecservices:TECServices"/> + <String name="ChildName" value="tecservices:TECCoolPipeL"/> + <Numeric name="N" value="[ChannelN]"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[ChannelFi]+[CoolPipePhi3]"/> + <Numeric name="Radius" value="[CoolPipeRpos]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, [CoolPipeZ]-0.5*[CoolPipeHeightL] </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecservices:TECServices"/> + <String name="ChildName" value="tecservices:TECCoolantL"/> + <Numeric name="N" value="[ChannelN]"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[ChannelFi]+[CoolPipePhi3]"/> + <Numeric name="Radius" value="[CoolPipeRpos]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, [CoolPipeZ]-0.5*[CoolPipeHeightL] </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecservices:TECServices"/> + <String name="ChildName" value="tecservices:TECCable32B"/> + <Numeric name="N" value="[ChannelN]"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[ChannelFi]+[CoolPipePhi3]"/> + <Numeric name="Radius" value="[CoolPipeRpos]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, [CoolPipeZ]-0.5*[CableHeight32B] </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecservices:TECServices"/> + <String name="ChildName" value="tecservices:TECCoolPipeL"/> + <Numeric name="N" value="[ChannelN]"/> + <Numeric name="StartCopyNo" value="1*[ChannelN]+1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[ChannelFi]+[CoolPipePhi4]"/> + <Numeric name="Radius" value="[CoolPipeRpos]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, [CoolPipeZ]-0.5*[CoolPipeHeightL] </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecservices:TECServices"/> + <String name="ChildName" value="tecservices:TECCoolantL"/> + <Numeric name="N" value="[ChannelN]"/> + <Numeric name="StartCopyNo" value="1*[ChannelN]+1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[ChannelFi]+[CoolPipePhi4]"/> + <Numeric name="Radius" value="[CoolPipeRpos]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, [CoolPipeZ]-0.5*[CoolPipeHeightL] </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecservices:TECServices"/> + <String name="ChildName" value="tecservices:TECCable10B"/> + <Numeric name="N" value="[ChannelN]"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[ChannelFi]+[CoolPipePhi4]"/> + <Numeric name="Radius" value="[CoolPipeRpos]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, [CoolPipeZ]-0.5*[CableHeight10B] </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecservices:TECServices"/> + <String name="ChildName" value="tecservices:TECCoolPipeL"/> + <Numeric name="N" value="[ChannelN]"/> + <Numeric name="StartCopyNo" value="2*[ChannelN]+1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[ChannelFi]+[CoolPipePhi5]"/> + <Numeric name="Radius" value="[CoolPipeRpos]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, [CoolPipeZ]-0.5*[CoolPipeHeightL] </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecservices:TECServices"/> + <String name="ChildName" value="tecservices:TECCoolantL"/> + <Numeric name="N" value="[ChannelN]"/> + <Numeric name="StartCopyNo" value="2*[ChannelN]+1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[ChannelFi]+[CoolPipePhi5]"/> + <Numeric name="Radius" value="[CoolPipeRpos]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, [CoolPipeZ]-0.5*[CoolPipeHeightL] </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecservices:TECServices"/> + <String name="ChildName" value="tecservices:TECCable10F"/> + <Numeric name="N" value="[ChannelN]"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[ChannelFi]+[CoolPipePhi5]"/> + <Numeric name="Radius" value="[CoolPipeRpos]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, [CoolPipeZ]-0.5*[CableHeight10F] </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecservices:TECServices"/> + <String name="ChildName" value="tecservices:TECCoolPipeL"/> + <Numeric name="N" value="[ChannelN]"/> + <Numeric name="StartCopyNo" value="3*[ChannelN]+1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[ChannelFi]+[CoolPipePhi6]"/> + <Numeric name="Radius" value="[CoolPipeRpos]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, [CoolPipeZ]-0.5*[CoolPipeHeightL] </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecservices:TECServices"/> + <String name="ChildName" value="tecservices:TECCoolantL"/> + <Numeric name="N" value="[ChannelN]"/> + <Numeric name="StartCopyNo" value="3*[ChannelN]+1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[ChannelFi]+[CoolPipePhi6]"/> + <Numeric name="Radius" value="[CoolPipeRpos]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, [CoolPipeZ]-0.5*[CoolPipeHeightL] </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecservices:TECServices"/> + <String name="ChildName" value="tecservices:TECCable32F"/> + <Numeric name="N" value="[ChannelN]"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[ChannelFi]+[CoolPipePhi6]"/> + <Numeric name="Radius" value="[CoolPipeRpos]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, [CoolPipeZ]-0.5*[CableHeight32F] </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecservices:TECServices"/> + <String name="ChildName" value="tecservices:TECCoolPipeS"/> + <Numeric name="N" value="[ChannelN]"/> + <Numeric name="StartCopyNo" value="3*[ChannelN]+1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[ChannelFi]+[CoolPipePhi7]"/> + <Numeric name="Radius" value="[CoolPipeRpos]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, [CoolPipeZ]-0.5*[CoolPipeHeightS] </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecservices:TECServices"/> + <String name="ChildName" value="tecservices:TECCoolantS"/> + <Numeric name="N" value="[ChannelN]"/> + <Numeric name="StartCopyNo" value="3*[ChannelN]+1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[ChannelFi]+[CoolPipePhi7]"/> + <Numeric name="Radius" value="[CoolPipeRpos]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, [CoolPipeZ]-0.5*[CoolPipeHeightS] </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecservices:TECServices"/> + <String name="ChildName" value="tecservices:TECCable54F"/> + <Numeric name="N" value="[ChannelN]"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[ChannelFi]+[CoolPipePhi7]"/> + <Numeric name="Radius" value="[CoolPipeRpos]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, [CoolPipeZ]-0.5*[CableHeight54F] </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecservices:TECServices"/> + <String name="ChildName" value="tecservices:TECCoolPipeS"/> + <Numeric name="N" value="[ChannelN]"/> + <Numeric name="StartCopyNo" value="4*[ChannelN]+1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[ChannelFi]+[CoolPipePhi8]"/> + <Numeric name="Radius" value="[CoolPipeRpos]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, [CoolPipeZ]-0.5*[CoolPipeHeightS] </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecservices:TECServices"/> + <String name="ChildName" value="tecservices:TECCoolantS"/> + <Numeric name="N" value="[ChannelN]"/> + <Numeric name="StartCopyNo" value="4*[ChannelN]+1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[ChannelFi]+[CoolPipePhi8]"/> + <Numeric name="Radius" value="[CoolPipeRpos]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, [CoolPipeZ]-0.5*[CoolPipeHeightS] </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecservices:TECServices"/> + <String name="ChildName" value="tecservices:TECCable86F"/> + <Numeric name="N" value="[ChannelN]"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[ChannelFi]+[CoolPipePhi8]"/> + <Numeric name="Radius" value="[CoolPipeRpos]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, [CoolPipeZ]-0.5*[CableHeight86F] </Vector> + </Algorithm> + <!-- Phi Cable --> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecservices:TECServices"/> + <String name="ChildName" value="tecservices:TECPhiCableLF"/> + <Numeric name="N" value="[ChannelN]"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[PhiCablePhiF]"/> + <Numeric name="Radius" value="[zero]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, [PhiCableZLF] </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecservices:TECServices"/> + <String name="ChildName" value="tecservices:TECPhiCableUF"/> + <Numeric name="N" value="[ChannelN]"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[PhiCablePhiF]"/> + <Numeric name="Radius" value="[zero]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, [PhiCableZUF] </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecservices:TECServices"/> + <String name="ChildName" value="tecservices:TECPhiCableLB"/> + <Numeric name="N" value="[ChannelN]"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[PhiCablePhiB]"/> + <Numeric name="Radius" value="[zero]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, [PhiCableZLB] </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecservices:TECServices"/> + <String name="ChildName" value="tecservices:TECPhiCableUB"/> + <Numeric name="N" value="[ChannelN]"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[PhiCablePhiB]"/> + <Numeric name="Radius" value="[zero]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, [PhiCableZUB] </Vector> + </Algorithm> + <!-- Brackets --> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecservices:TECServices"/> + <String name="ChildName" value="tecservices:TECCCraneBracket"/> + <Numeric name="N" value="1"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[CraneBracketPhi1]"/> + <Numeric name="Radius" value="[zero]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, [tec:Wheel0Z]-[tec:ZPos] </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecservices:TECServices"/> + <String name="ChildName" value="tecservices:TECCCraneBracket"/> + <Numeric name="N" value="1"/> + <Numeric name="StartCopyNo" value="2"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[CraneBracketPhi2]"/> + <Numeric name="Radius" value="[zero]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, [tec:Wheel0Z]-[tec:ZPos] </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecservices:TECServices"/> + <String name="ChildName" value="tecservices:TECCCraneBracket"/> + <Numeric name="N" value="1"/> + <Numeric name="StartCopyNo" value="3"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[CraneBracketPhi3]"/> + <Numeric name="Radius" value="[zero]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, [tec:Wheel0Z]-[tec:ZPos] </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecservices:TECServices"/> + <String name="ChildName" value="tecservices:TECCCraneBracket"/> + <Numeric name="N" value="1"/> + <Numeric name="StartCopyNo" value="4"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[CraneBracketPhi1]"/> + <Numeric name="Radius" value="[zero]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, [tec:Wheel1Z]-[tec:ZPos] </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecservices:TECServices"/> + <String name="ChildName" value="tecservices:TECCCraneBracket"/> + <Numeric name="N" value="1"/> + <Numeric name="StartCopyNo" value="5"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[CraneBracketPhi2]"/> + <Numeric name="Radius" value="[zero]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, [tec:Wheel1Z]-[tec:ZPos] </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecservices:TECServices"/> + <String name="ChildName" value="tecservices:TECCCraneBracket"/> + <Numeric name="N" value="1"/> + <Numeric name="StartCopyNo" value="6"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[CraneBracketPhi3]"/> + <Numeric name="Radius" value="[zero]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, [tec:Wheel1Z]-[tec:ZPos] </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecservices:TECServices"/> + <String name="ChildName" value="tecservices:TECCCraneBracket"/> + <Numeric name="N" value="1"/> + <Numeric name="StartCopyNo" value="7"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[CraneBracketPhi1]"/> + <Numeric name="Radius" value="[zero]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, [tec:Wheel2Z]-[tec:ZPos] </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecservices:TECServices"/> + <String name="ChildName" value="tecservices:TECCCraneBracket"/> + <Numeric name="N" value="1"/> + <Numeric name="StartCopyNo" value="8"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[CraneBracketPhi2]"/> + <Numeric name="Radius" value="[zero]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, [tec:Wheel2Z]-[tec:ZPos] </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecservices:TECServices"/> + <String name="ChildName" value="tecservices:TECCCraneBracket"/> + <Numeric name="N" value="1"/> + <Numeric name="StartCopyNo" value="9"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[CraneBracketPhi3]"/> + <Numeric name="Radius" value="[zero]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, [tec:Wheel2Z]-[tec:ZPos] </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecservices:TECServices"/> + <String name="ChildName" value="tecservices:TECCCraneBracket"/> + <Numeric name="N" value="1"/> + <Numeric name="StartCopyNo" value="10"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[CraneBracketPhi1]"/> + <Numeric name="Radius" value="[zero]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, [tec:Wheel3Z]-[tec:ZPos] </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecservices:TECServices"/> + <String name="ChildName" value="tecservices:TECCCraneBracket"/> + <Numeric name="N" value="1"/> + <Numeric name="StartCopyNo" value="11"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[CraneBracketPhi2]"/> + <Numeric name="Radius" value="[zero]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, [tec:Wheel3Z]-[tec:ZPos] </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecservices:TECServices"/> + <String name="ChildName" value="tecservices:TECCCraneBracket"/> + <Numeric name="N" value="1"/> + <Numeric name="StartCopyNo" value="12"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[CraneBracketPhi3]"/> + <Numeric name="Radius" value="[zero]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, [tec:Wheel3Z]-[tec:ZPos] </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecservices:TECServices"/> + <String name="ChildName" value="tecservices:TECCCraneBracket"/> + <Numeric name="N" value="1"/> + <Numeric name="StartCopyNo" value="13"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[CraneBracketPhi1]"/> + <Numeric name="Radius" value="[zero]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, [tec:Wheel4Z]-[tec:ZPos] </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecservices:TECServices"/> + <String name="ChildName" value="tecservices:TECCCraneBracket"/> + <Numeric name="N" value="1"/> + <Numeric name="StartCopyNo" value="14"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[CraneBracketPhi2]"/> + <Numeric name="Radius" value="[zero]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, [tec:Wheel4Z]-[tec:ZPos] </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecservices:TECServices"/> + <String name="ChildName" value="tecservices:TECCCraneBracket"/> + <Numeric name="N" value="1"/> + <Numeric name="StartCopyNo" value="15"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[CraneBracketPhi3]"/> + <Numeric name="Radius" value="[zero]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, [tec:Wheel4Z]-[tec:ZPos] </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecservices:TECServices"/> + <String name="ChildName" value="tecservices:TECCCraneBracket"/> + <Numeric name="N" value="1"/> + <Numeric name="StartCopyNo" value="16"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[CraneBracketPhi1]"/> + <Numeric name="Radius" value="[zero]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, [tec:Wheel5Z]-[tec:ZPos] </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecservices:TECServices"/> + <String name="ChildName" value="tecservices:TECCCraneBracket"/> + <Numeric name="N" value="1"/> + <Numeric name="StartCopyNo" value="17"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[CraneBracketPhi2]"/> + <Numeric name="Radius" value="[zero]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, [tec:Wheel5Z]-[tec:ZPos] </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecservices:TECServices"/> + <String name="ChildName" value="tecservices:TECCCraneBracket"/> + <Numeric name="N" value="1"/> + <Numeric name="StartCopyNo" value="18"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[CraneBracketPhi3]"/> + <Numeric name="Radius" value="[zero]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, [tec:Wheel5Z]-[tec:ZPos] </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecservices:TECServices"/> + <String name="ChildName" value="tecservices:TECCCraneBracket"/> + <Numeric name="N" value="1"/> + <Numeric name="StartCopyNo" value="19"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[CraneBracketPhi1]"/> + <Numeric name="Radius" value="[zero]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, [tec:Wheel6Z]-[tec:ZPos] </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecservices:TECServices"/> + <String name="ChildName" value="tecservices:TECCCraneBracket"/> + <Numeric name="N" value="1"/> + <Numeric name="StartCopyNo" value="20"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[CraneBracketPhi2]"/> + <Numeric name="Radius" value="[zero]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, [tec:Wheel6Z]-[tec:ZPos] </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecservices:TECServices"/> + <String name="ChildName" value="tecservices:TECCCraneBracket"/> + <Numeric name="N" value="1"/> + <Numeric name="StartCopyNo" value="21"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[CraneBracketPhi3]"/> + <Numeric name="Radius" value="[zero]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, [tec:Wheel6Z]-[tec:ZPos] </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecservices:TECServices"/> + <String name="ChildName" value="tecservices:TECCCraneBracket"/> + <Numeric name="N" value="1"/> + <Numeric name="StartCopyNo" value="22"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[CraneBracketPhi1]"/> + <Numeric name="Radius" value="[zero]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, [tec:Wheel7Z]-[tec:ZPos] </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecservices:TECServices"/> + <String name="ChildName" value="tecservices:TECCCraneBracket"/> + <Numeric name="N" value="1"/> + <Numeric name="StartCopyNo" value="23"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[CraneBracketPhi2]"/> + <Numeric name="Radius" value="[zero]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, [tec:Wheel7Z]-[tec:ZPos] </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecservices:TECServices"/> + <String name="ChildName" value="tecservices:TECCCraneBracket"/> + <Numeric name="N" value="1"/> + <Numeric name="StartCopyNo" value="24"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[CraneBracketPhi3]"/> + <Numeric name="Radius" value="[zero]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, [tec:Wheel7Z]-[tec:ZPos] </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecservices:TECServices"/> + <String name="ChildName" value="tecservices:TECCCraneBracket"/> + <Numeric name="N" value="1"/> + <Numeric name="StartCopyNo" value="25"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[CraneBracketPhi1]"/> + <Numeric name="Radius" value="[zero]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, [tec:Wheel8Z]-[tec:ZPos] </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecservices:TECServices"/> + <String name="ChildName" value="tecservices:TECCCraneBracket"/> + <Numeric name="N" value="1"/> + <Numeric name="StartCopyNo" value="26"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[CraneBracketPhi2]"/> + <Numeric name="Radius" value="[zero]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, [tec:Wheel8Z]-[tec:ZPos] </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecservices:TECServices"/> + <String name="ChildName" value="tecservices:TECCCraneBracket"/> + <Numeric name="N" value="1"/> + <Numeric name="StartCopyNo" value="27"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[CraneBracketPhi3]"/> + <Numeric name="Radius" value="[zero]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, [tec:Wheel8Z]-[tec:ZPos] </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecservices:TECServices"/> + <String name="ChildName" value="tecservices:TECCCraneBracket"/> + <Numeric name="N" value="1"/> + <Numeric name="StartCopyNo" value="28"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[CraneBracketPhi1]"/> + <Numeric name="Radius" value="[zero]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, [tec:TECDz]-[tecbackplate:Thick]+0.5*[tecwheel:DiskT] </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecservices:TECServices"/> + <String name="ChildName" value="tecservices:TECCCraneBracket"/> + <Numeric name="N" value="1"/> + <Numeric name="StartCopyNo" value="29"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[CraneBracketPhi2]"/> + <Numeric name="Radius" value="[zero]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, [tec:TECDz]-[tecbackplate:Thick]+0.5*[tecwheel:DiskT] </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecservices:TECServices"/> + <String name="ChildName" value="tecservices:TECCCraneBracket"/> + <Numeric name="N" value="1"/> + <Numeric name="StartCopyNo" value="30"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[CraneBracketPhi3]"/> + <Numeric name="Radius" value="[zero]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, [tec:TECDz]-[tecbackplate:Thick]+0.5*[tecwheel:DiskT] </Vector> + </Algorithm> +</DDDefinition> diff --git a/examples/DDCMS/data/tecwheel.xml b/examples/DDCMS/data/tecwheel.xml new file mode 100644 index 0000000000000000000000000000000000000000..af143d5f59cb56164369f086fb7471c4777cf657 --- /dev/null +++ b/examples/DDCMS/data/tecwheel.xml @@ -0,0 +1,128 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tecwheel.xml" eval="true"> + <Constant name="zero" value="0.0*fm"/> + <Constant name="WheelRmax" value="110.30*cm"/> + <Constant name="WheelT" value="12.22*cm"/> + <Constant name="DiskT" value="1.680*cm"/> + <Constant name="NomexT" value="1.600*cm"/> + <Constant name="NomexRmax" value="[WheelRmax] - [GroundingRingThick] "/> + <Constant name="PetalContN" value="8"/> + <Constant name="PetalContZ" value="3.583*cm"/> + <Constant name="PetalContFiF" value="0.00*deg"/> + <Constant name="PetalContFiB" value="22.5*deg"/> + <Constant name="InsertR" value="13.7514*mm"/> + <Constant name="InsertL" value="16.0*mm"/> + <Constant name="InsertN" value="8"/> + <Constant name="InsertR1" value="38.00*cm"/> + <Constant name="InsertR2" value="468.5451*mm"/> + <Constant name="InsertR3" value="84.00*cm"/> + <Constant name="InsertR4" value="84.00*cm"/> + <Constant name="InsertR5" value="983.5215*mm"/> + <Constant name="InsertR6" value="983.5215*mm"/> + <Constant name="InsertFi1" value="22.50*deg"/> + <Constant name="InsertFi2" value="44.2051*deg"/> + <Constant name="InsertFi3" value="13.50*deg"/> + <Constant name="InsertFi4" value="31.50*deg"/> + <Constant name="InsertFi5" value="8.6213*deg"/> + <Constant name="InsertFi6" value="35.6213*deg"/> + <Constant name="FixSuppA" value="1485.33*mm"/> + <!--Area to calculate the deltaPhi--> + <Constant name="FixSuppR" value="22.4428*mm*mm"/> + <Constant name="FixSuppW" value="40.00*mm"/> + <!--old--> + <Constant name="FixSuppT" value="1.000*cm"/> + <Constant name="FixSuppN" value="4"/> + <Constant name="FixSuppFi" value="-67.50*deg"/> + <Constant name="FixServR" value="22.5*mm"/> + <Constant name="FixServW" value="80.0*mm / ([WheelRmax]-0.5*[FixServR])"/> + <Constant name="FixServT" value="8.5*mm"/> + <Constant name="FixServN" value="8"/> + <Constant name="FixServFi" value="-11.25*deg"/> + <Constant name="OptConnRmin" value="[WheelRmax] - [OptConnHeight]"/> + <!--depreciated--> + <Constant name="OptConnRmax" value="[WheelRmax]"/> + <!--depreciated--> + <Constant name="OptConnHeight" value="171*mm"/> + <Constant name="OptConnThick" value="46*mm"/> + <Constant name="OptConnW" value="45*deg-[tecpetpar:PetalContWidth]"/> + <!--there is not enough room for the real width--> + <Constant name="OptConnN" value="8"/> + <Constant name="OptConnT1" value="2.475*cm"/> + <Constant name="OptConnT2" value="2.25*cm"/> + <Constant name="OptConnT3" value="1.80*cm"/> + <Constant name="OptConnZ1" value="([DiskT]+[OptConnT1])/2"/> + <Constant name="OptConnZ2" value="([DiskT]+[OptConnT2])/2"/> + <Constant name="OptConnZ3" value="([DiskT]+[OptConnT3])/2"/> + <Constant name="OptConnFI1" value="[PetalContFiF]+[OptConnW]/2+[tecpetpar:PetalContWidth]/2"/> + <Constant name="OptConnFI2" value="[PetalContFiB]+[OptConnW]/2+[tecpetpar:PetalContWidth]/2"/> + <Constant name="CableW" value="0.500*cm"/> + <Constant name="CableT" value="0.210*cm"/> + <Constant name="CableTolerR" value="0.350*cm"/> + <Constant name="CableZ2" value="([DiskT]+[CableT])/2"/> + <Constant name="CableZ1" value="-[CableZ2]"/> + <Constant name="CableFi1" value="-11.25*deg"/> + <Constant name="CableFi2" value="11.25*deg"/> + <Constant name="FixServRmin" value="[WheelRmax]-[FixServR]"/> + <Constant name="CableRmax" value="[WheelRmax]-[CableTolerR]"/> + <Constant name="PetalConnZ" value="0"/> + <Constant name="PetalInManifHeight" value="14.59*mm"/> + <Constant name="PetalInManifWidth" value="2*atan(64.5*mm/(2*[tecpetpar:PetalRmax]-[PetalInManifHeight]))*rad"/> + <Constant name="PetalOutManifHeight" value="18.04*mm"/> + <Constant name="PetalOutManifWidth" value="2*atan(46*mm/(2*[tecpetpar:PetalRmax]+[PetalInManifHeight]))*rad"/> + <Constant name="PetalManifThick" value="10*mm"/> + <Constant name="GroundingRingThick" value="0.150*mm"/> + <!-- this "thick" goes in R direction! --> + <Constant name="GroundingRingWidth" value="15*mm"/> + <Constant name="AlignHolderRin" value="[NomexRmax]-12.5*mm"/> + <Constant name="AlignHolderRout" value="[NomexRmax]"/> + <Constant name="AlignHolderWidth" value="2*atan(25.98*mm/[AlignHolderRout])*rad"/> + <Constant name="AlignHolderStartPhi" value="-67.5*deg"/> + </ConstantsSection> + <SolidSection label="tecwheel.xml"> + <Tubs name="TECWheelInsert" rMin="[zero]" rMax="[InsertR]" dz="[InsertL]/2" startPhi="0*deg" deltaPhi="360.*deg"/> + <Tubs name="TECGroundingRing" rMin="[NomexRmax]" rMax="[WheelRmax]" dz="[GroundingRingWidth]/2" startPhi="0*deg" deltaPhi="360.*deg"/> + <Tubs name="TECFixService" rMin="[FixServRmin]" rMax="[NomexRmax]" dz="[FixServT]/2" startPhi="-[FixServW]/2" deltaPhi="[FixServW]"/> + <Tubs name="TECAlignHolder" rMin="[AlignHolderRin]" rMax="[AlignHolderRout]" dz="[NomexT]/2" startPhi="-[AlignHolderWidth]/2" deltaPhi="[AlignHolderWidth]"/> + <!-- the same for every petal --> + <Tubs name="TECInnerManifold" rMin="[tecpetpar:PetalRmax]-[PetalInManifHeight]" rMax="[tecpetpar:PetalRmax]" dz="[PetalManifThick]/2" startPhi="-[PetalInManifWidth]/2" deltaPhi="[PetalInManifWidth]"/> + <Tubs name="TECOuterManifold" rMin="[tecpetpar:PetalRmax]" rMax="[tecpetpar:PetalRmax]+[PetalOutManifHeight]" dz="[PetalManifThick]/2" startPhi="-[PetalOutManifWidth]/2" deltaPhi="[PetalOutManifWidth]"/> + <Tubs name="TECOptConnector" rMin="[tecpetpar:PetalRmax]-[OptConnHeight]" rMax="[tecpetpar:PetalRmax]" dz="[OptConnThick]/2" startPhi="-[OptConnW]/2" deltaPhi="[OptConnW]"/> + <Box name="TECCCUM" dx="[tecpetpar:CCUMWidth]/2" dy="[tecpetpar:CCUMHeight]/2" dz="[tecpetpar:CCUMThick]/2"/> + </SolidSection> + <LogicalPartSection label="tecwheel.xml"> + <LogicalPart name="TECWheelInsert" category="unspecified"> + <rSolid name="tecwheel:TECWheelInsert"/> + <rMaterial name="tecmaterial:TEC_wheelinsert"/> + </LogicalPart> + <LogicalPart name="TECFixService" category="unspecified"> + <rSolid name="tecwheel:TECFixService"/> + <rMaterial name="tecmaterial:TEC_FixServ"/> + </LogicalPart> + <LogicalPart name="TECGroundingRing" category="unspecified"> + <rSolid name="tecwheel:TECGroundingRing"/> + <rMaterial name="tecmaterial:TEC_GroundingRing"/> + </LogicalPart> + <LogicalPart name="TECAlignHolder" category="unspecified"> + <rSolid name="tecwheel:TECAlignHolder"/> + <rMaterial name="tecmaterial:TEC_AlignHolder"/> + </LogicalPart> + <!-- the same for all petals--> + <LogicalPart name="TECInnerManifold" category="unspecified"> + <rSolid name="tecwheel:TECInnerManifold"/> + <rMaterial name="tecmaterial:TEC_InnerManifold"/> + </LogicalPart> + <LogicalPart name="TECOuterManifold" category="unspecified"> + <rSolid name="tecwheel:TECOuterManifold"/> + <rMaterial name="tecmaterial:TEC_InnerManifold"/> + </LogicalPart> + <LogicalPart name="TECOptConnector" category="unspecified"> + <rSolid name="tecwheel:TECOptConnector"/> + <rMaterial name="tecmaterial:TEC_OptoCon"/> + </LogicalPart> + <LogicalPart name="TECCCUM" category="unspecified"> + <rSolid name="tecwheel:TECCCUM"/> + <rMaterial name="tecmaterial:TEC_CCUM"/> + </LogicalPart> + </LogicalPartSection> +</DDDefinition> diff --git a/examples/DDCMS/data/tecwheel6.xml b/examples/DDCMS/data/tecwheel6.xml new file mode 100644 index 0000000000000000000000000000000000000000..1cef9866bd6f700deed3b9f50d391b07f17a2839 --- /dev/null +++ b/examples/DDCMS/data/tecwheel6.xml @@ -0,0 +1,237 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <!-- This is the special disk which holdes the beam splitter! --> + <ConstantsSection label="tecwheel6.xml" eval="true"> + <Constant name="zero" value="0.0*fm"/> + <Constant name="FixSuppRmax" value="[tecpetal3:PetalContRmin]+ [tecwheel:FixSuppR]"/> + <Constant name="FixSuppW" value="2*[tecwheel:FixSuppA]/([FixSuppRmax]*[FixSuppRmax]-[tecpetal3:PetalContRmin]*[tecpetal3:PetalContRmin])"/> + <!-- calculate the width to fit the area at this specific radius! thus the volume will be constant!--> + <Constant name="CableL" value="([tecwheel:CableRmax]-[tecring1:Rin])"/> + <Constant name="CableR" value="([tecwheel:CableRmax]+[tecring1:Rin])/2"/> + <Constant name="BeamsplitterHeight" value="68.62*mm"/> + <Constant name="BeamsplitterWidth" value="49.25*mm"/> + <Constant name="BeamsplitterThick" value="[tecwheel:NomexT]"/> + <Constant name="BeamsplitterRA" value="845.13*mm"/> + <Constant name="BeamsplitterRB" value="570.17*mm"/> + <Constant name="BeamsplitterStartPhi" value="114*deg"/> + </ConstantsSection> + <SolidSection label="tecwheel6.xml"> + <Tubs name="TECWheel6" rMin="[tecpetal3:PetalContRmin]" rMax="[tecwheel:WheelRmax]" dz="[tecwheel:WheelT]/2" startPhi="0*deg" deltaPhi="360.*deg"/> + <Tubs name="TECWheelDisk6" rMin="[tecpetal3:PetalContRmin]" rMax="[tecwheel:WheelRmax]" dz="[tecwheel:DiskT]/2" startPhi="0*deg" deltaPhi="360.*deg"/> + <Tubs name="TECWheelNomex6" rMin="[tecpetal3:PetalContRmin]" rMax="[tecwheel:NomexRmax]" dz="[tecwheel:NomexT]/2" startPhi="0*deg" deltaPhi="360.*deg"/> + <Tubs name="TECFixSupport6" rMin="[tecpetal3:PetalContRmin]" rMax="[FixSuppRmax]" dz="[tecwheel:FixSuppT]/2" startPhi="-[FixSuppW]/2" deltaPhi="[FixSuppW]"/> + <Tubs name="TECOptConnector6" rMin="[tecwheel:OptConnRmin]" rMax="[tecwheel:OptConnRmax]" dz="[tecwheel:OptConnT2]/2" startPhi="-[tecwheel:OptConnW]/2" deltaPhi="[tecwheel:OptConnW]"/> + <Box name="TECBeamsplitter" dx="0.5*[BeamsplitterHeight]" dy="0.5*[BeamsplitterWidth]" dz="0.5*[BeamsplitterThick]"/> + </SolidSection> + <LogicalPartSection label="tecwheel6.xml"> + <LogicalPart name="TECWheel6" category="unspecified"> + <rSolid name="tecwheel6:TECWheel6"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TECWheelDisk6" category="unspecified"> + <rSolid name="tecwheel6:TECWheelDisk6"/> + <rMaterial name="tecmaterial:TEC_wheel6_CF"/> + </LogicalPart> + <LogicalPart name="TECWheelNomex6" category="unspecified"> + <rSolid name="tecwheel6:TECWheelNomex6"/> + <rMaterial name="tecmaterial:TEC_wheel6_Nomex"/> + </LogicalPart> + <LogicalPart name="TECFixSupport6" category="unspecified"> + <rSolid name="tecwheel6:TECFixSupport6"/> + <rMaterial name="tecmaterial:TEC_Fixframe"/> + </LogicalPart> + <LogicalPart name="TECOptConnector6" category="unspecified"> + <rSolid name="tecwheel6:TECOptConnector6"/> + <rMaterial name="tecmaterial:TEC_OptoCon"/> + </LogicalPart> + <LogicalPart name="TECBeamsplitter" category="unspecified"> + <rSolid name="tecwheel6:TECBeamsplitter"/> + <rMaterial name="tecmaterial:TEC_Beamsplitter"/> + </LogicalPart> + </LogicalPartSection> + <PosPartSection label="tecwheel6.xml"> + <PosPart copyNumber="1"> + <rParent name="tecwheel6:TECWheel6"/> + <rChild name="tecwheel6:TECWheelDisk6"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecwheel6:TECWheelDisk6"/> + <rChild name="tecwheel6:TECWheelNomex6"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tecwheel6:TECWheelDisk6"/> + <rChild name="tecwheel:TECGroundingRing"/> + </PosPart> + </PosPartSection> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecwheel6:TECWheel6"/> + <String name="ChildName" value="tecpetal3f:TECPetalCont3F"/> + <Numeric name="N" value="[tecwheel:PetalContN]"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[tecwheel:PetalContFiF]"/> + <Numeric name="Radius" value="[zero]"/> + <Vector name="Center" type="numeric" nEntries="3"> + 0, 0, -[tecwheel:PetalContZ] </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecwheel6:TECWheel6"/> + <String name="ChildName" value="tecpetal3b:TECPetalCont3B"/> + <Numeric name="N" value="[tecwheel:PetalContN]"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[tecwheel:PetalContFiB]"/> + <Numeric name="Radius" value="[zero]"/> + <Vector name="Center" type="numeric" nEntries="3"> + 0, 0, [tecwheel:PetalContZ] </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecwheel6:TECWheelNomex6"/> + <String name="ChildName" value="tecwheel:TECWheelInsert"/> + <Numeric name="N" value="[tecwheel:InsertN]"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[tecwheel:InsertFi1]"/> + <Numeric name="Radius" value="[tecwheel:InsertR1]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, 0 </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecwheel6:TECWheelNomex6"/> + <String name="ChildName" value="tecwheel:TECWheelInsert"/> + <Numeric name="N" value="[tecwheel:InsertN]"/> + <Numeric name="StartCopyNo" value="9"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[tecwheel:InsertFi2]"/> + <Numeric name="Radius" value="[tecwheel:InsertR2]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, 0 </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecwheel6:TECWheelNomex6"/> + <String name="ChildName" value="tecwheel:TECWheelInsert"/> + <Numeric name="N" value="[tecwheel:InsertN]"/> + <Numeric name="StartCopyNo" value="17"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[tecwheel:InsertFi3]"/> + <Numeric name="Radius" value="[tecwheel:InsertR3]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, 0 </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecwheel6:TECWheelNomex6"/> + <String name="ChildName" value="tecwheel:TECWheelInsert"/> + <Numeric name="N" value="[tecwheel:InsertN]"/> + <Numeric name="StartCopyNo" value="25"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[tecwheel:InsertFi4]"/> + <Numeric name="Radius" value="[tecwheel:InsertR4]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, 0 </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecwheel6:TECWheelNomex6"/> + <String name="ChildName" value="tecwheel:TECWheelInsert"/> + <Numeric name="N" value="[tecwheel:InsertN]"/> + <Numeric name="StartCopyNo" value="33"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[tecwheel:InsertFi5]"/> + <Numeric name="Radius" value="[tecwheel:InsertR5]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, 0 </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecwheel6:TECWheelNomex6"/> + <String name="ChildName" value="tecwheel:TECWheelInsert"/> + <Numeric name="N" value="[tecwheel:InsertN]"/> + <Numeric name="StartCopyNo" value="41"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[tecwheel:InsertFi6]"/> + <Numeric name="Radius" value="[tecwheel:InsertR6]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, 0 </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecwheel6:TECWheelNomex6"/> + <String name="ChildName" value="tecwheel6:TECFixSupport6"/> + <Numeric name="N" value="[tecwheel:FixSuppN]"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[tecwheel:FixSuppFi]"/> + <Numeric name="Radius" value="[zero]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, 0 </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecwheel6:TECWheelNomex6"/> + <String name="ChildName" value="tecwheel:TECFixService"/> + <Numeric name="N" value="[tecwheel:FixServN]"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[tecwheel:FixServFi]"/> + <Numeric name="Radius" value="[zero]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, 0 </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecwheel6:TECWheel6"/> + <String name="ChildName" value="tecwheel6:TECOptConnector6"/> + <Numeric name="N" value="[tecwheel:OptConnN]"/> + <Numeric name="StartCopyNo" value="2"/> + <Numeric name="IncrCopyNo" value="2"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[tecwheel:OptConnFI1]"/> + <Numeric name="Radius" value="[zero]"/> + <Vector name="Center" type="numeric" nEntries="3"> + 0, 0, -[tecwheel:OptConnZ2] </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecwheel6:TECWheel6"/> + <String name="ChildName" value="tecwheel6:TECOptConnector6"/> + <Numeric name="N" value="[tecwheel:OptConnN]"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="2"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[tecwheel:OptConnFI2]"/> + <Numeric name="Radius" value="[zero]"/> + <Vector name="Center" type="numeric" nEntries="3"> + 0, 0, [tecwheel:OptConnZ2] </Vector> + </Algorithm> + <!-- Alignment Holder (Sphere holder) --> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecwheel6:TECWheelNomex6"/> + <String name="ChildName" value="tecwheel:TECAlignHolder"/> + <Numeric name="N" value="4"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[tecwheel:AlignHolderStartPhi]"/> + <Numeric name="Radius" value="[zero]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, 0 </Vector> + </Algorithm> + <!-- Beamsplitter --> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecwheel6:TECWheelNomex6"/> + <String name="ChildName" value="tecwheel6:TECBeamsplitter"/> + <Numeric name="N" value="8"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[tecwheel6:BeamsplitterStartPhi]"/> + <Numeric name="Radius" value="[tecwheel6:BeamsplitterRA]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, 0 </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecwheel6:TECWheelNomex6"/> + <String name="ChildName" value="tecwheel6:TECBeamsplitter"/> + <Numeric name="N" value="8"/> + <Numeric name="StartCopyNo" value="9"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[tecwheel6:BeamsplitterStartPhi]"/> + <Numeric name="Radius" value="[tecwheel6:BeamsplitterRB]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, 0 </Vector> + </Algorithm> +</DDDefinition> diff --git a/examples/DDCMS/data/tecwheela.xml b/examples/DDCMS/data/tecwheela.xml new file mode 100644 index 0000000000000000000000000000000000000000..9e2a82e67d1384a0465ff1eb4414036be3c36385 --- /dev/null +++ b/examples/DDCMS/data/tecwheela.xml @@ -0,0 +1,190 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tecwheela.xml" eval="true"> + <Constant name="zero" value="0.0*fm"/> + <Constant name="FixSuppRmax" value="[tecpetal0:PetalContRmin]+ [tecwheel:FixSuppR]"/> + <Constant name="FixSuppW" value="2*[tecwheel:FixSuppA]/([FixSuppRmax]*[FixSuppRmax]-[tecpetal0:PetalContRmin]*[tecpetal0:PetalContRmin])"/> + <!-- calculate the width to fit the area at this specific radius! thus the volume will be constant!--> + <Constant name="CableL" value="([tecwheel:CableRmax]-[tecring0:Rin])"/> + <Constant name="CableR" value="([tecwheel:CableRmax]+[tecring0:Rin])/2"/> + </ConstantsSection> + <SolidSection label="tecwheela.xml"> + <Tubs name="TECWheelA" rMin="[tecpetal0:PetalContRmin]" rMax="[tecwheel:WheelRmax]" dz="[tecwheel:WheelT]/2" startPhi="0*deg" deltaPhi="360.*deg"/> + <Tubs name="TECWheelDiskA" rMin="[tecpetal0:PetalContRmin]" rMax="[tecwheel:WheelRmax]" dz="[tecwheel:DiskT]/2" startPhi="0*deg" deltaPhi="360.*deg"/> + <Tubs name="TECWheelNomexA" rMin="[tecpetal0:PetalContRmin]" rMax="[tecwheel:NomexRmax]" dz="[tecwheel:NomexT]/2" startPhi="0*deg" deltaPhi="360.*deg"/> + <Tubs name="TECFixSupportA" rMin="[tecpetal0:PetalContRmin]" rMax="[FixSuppRmax]" dz="[tecwheel:FixSuppT]/2" startPhi="-[FixSuppW]/2" deltaPhi="[FixSuppW]"/> + <Tubs name="TECOptConnectorA" rMin="[tecwheel:OptConnRmin]" rMax="[tecwheel:OptConnRmax]" dz="[tecwheel:OptConnT1]/2" startPhi="-[tecwheel:OptConnW]/2" deltaPhi="[tecwheel:OptConnW]"/> + </SolidSection> + <LogicalPartSection label="tecwheela.xml"> + <LogicalPart name="TECWheelA" category="unspecified"> + <rSolid name="tecwheela:TECWheelA"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TECWheelDiskA" category="unspecified"> + <rSolid name="tecwheela:TECWheelDiskA"/> + <rMaterial name="tecmaterial:TEC_wheel_CF"/> + </LogicalPart> + <LogicalPart name="TECWheelNomexA" category="unspecified"> + <rSolid name="tecwheela:TECWheelNomexA"/> + <rMaterial name="tecmaterial:TEC_wheel_Nomex"/> + </LogicalPart> + <LogicalPart name="TECFixSupportA" category="unspecified"> + <rSolid name="tecwheela:TECFixSupportA"/> + <rMaterial name="tecmaterial:TEC_Fixframe"/> + </LogicalPart> + <LogicalPart name="TECOptConnectorA" category="unspecified"> + <rSolid name="tecwheela:TECOptConnectorA"/> + <rMaterial name="tecmaterial:TEC_OptoCon"/> + </LogicalPart> + </LogicalPartSection> + <PosPartSection label="tecwheela.xml"> + <PosPart copyNumber="1"> + <rParent name="tecwheela:TECWheelA"/> + <rChild name="tecwheela:TECWheelDiskA"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecwheela:TECWheelDiskA"/> + <rChild name="tecwheela:TECWheelNomexA"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecwheela:TECWheelDiskA"/> + <rChild name="tecwheel:TECGroundingRing"/> + </PosPart> + </PosPartSection> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecwheela:TECWheelA"/> + <String name="ChildName" value="tecpetal0f:TECPetalCont0F"/> + <Numeric name="N" value="[tecwheel:PetalContN]"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[tecwheel:PetalContFiF]"/> + <Numeric name="Radius" value="[zero]"/> + <Vector name="Center" type="numeric" nEntries="3"> + 0, 0, -[tecwheel:PetalContZ] </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecwheela:TECWheelA"/> + <String name="ChildName" value="tecpetal0b:TECPetalCont0B"/> + <Numeric name="N" value="[tecwheel:PetalContN]"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[tecwheel:PetalContFiB]"/> + <Numeric name="Radius" value="[zero]"/> + <Vector name="Center" type="numeric" nEntries="3"> + 0, 0, [tecwheel:PetalContZ] </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecwheela:TECWheelNomexA"/> + <String name="ChildName" value="tecwheel:TECWheelInsert"/> + <Numeric name="N" value="[tecwheel:InsertN]"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[tecwheel:InsertFi1]"/> + <Numeric name="Radius" value="[tecwheel:InsertR1]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, 0 </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecwheela:TECWheelNomexA"/> + <String name="ChildName" value="tecwheel:TECWheelInsert"/> + <Numeric name="N" value="[tecwheel:InsertN]"/> + <Numeric name="StartCopyNo" value="9"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[tecwheel:InsertFi2]"/> + <Numeric name="Radius" value="[tecwheel:InsertR2]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, 0 </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecwheela:TECWheelNomexA"/> + <String name="ChildName" value="tecwheel:TECWheelInsert"/> + <Numeric name="N" value="[tecwheel:InsertN]"/> + <Numeric name="StartCopyNo" value="17"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[tecwheel:InsertFi3]"/> + <Numeric name="Radius" value="[tecwheel:InsertR3]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, 0 </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecwheela:TECWheelNomexA"/> + <String name="ChildName" value="tecwheel:TECWheelInsert"/> + <Numeric name="N" value="[tecwheel:InsertN]"/> + <Numeric name="StartCopyNo" value="25"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[tecwheel:InsertFi4]"/> + <Numeric name="Radius" value="[tecwheel:InsertR4]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, 0 </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecwheela:TECWheelNomexA"/> + <String name="ChildName" value="tecwheel:TECWheelInsert"/> + <Numeric name="N" value="[tecwheel:InsertN]"/> + <Numeric name="StartCopyNo" value="33"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[tecwheel:InsertFi5]"/> + <Numeric name="Radius" value="[tecwheel:InsertR5]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, 0 </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecwheela:TECWheelNomexA"/> + <String name="ChildName" value="tecwheel:TECWheelInsert"/> + <Numeric name="N" value="[tecwheel:InsertN]"/> + <Numeric name="StartCopyNo" value="41"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[tecwheel:InsertFi6]"/> + <Numeric name="Radius" value="[tecwheel:InsertR6]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, 0 </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecwheela:TECWheelNomexA"/> + <String name="ChildName" value="tecwheela:TECFixSupportA"/> + <Numeric name="N" value="[tecwheel:FixSuppN]"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[tecwheel:FixSuppFi]"/> + <Numeric name="Radius" value="[zero]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, 0 </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecwheela:TECWheelNomexA"/> + <String name="ChildName" value="tecwheel:TECFixService"/> + <Numeric name="N" value="[tecwheel:FixServN]"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[tecwheel:FixServFi]"/> + <Numeric name="Radius" value="[zero]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, 0 </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecwheela:TECWheelA"/> + <String name="ChildName" value="tecwheela:TECOptConnectorA"/> + <Numeric name="N" value="[tecwheel:OptConnN]"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="2"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[tecwheel:OptConnFI2]"/> + <Numeric name="Radius" value="[zero]"/> + <Vector name="Center" type="numeric" nEntries="3"> + 0, 0, [tecwheel:OptConnZ1] </Vector> + </Algorithm> + <!-- Alignment Holder (Sphere holder) --> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecwheela:TECWheelNomexA"/> + <String name="ChildName" value="tecwheel:TECAlignHolder"/> + <Numeric name="N" value="4"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[tecwheel:AlignHolderStartPhi]"/> + <Numeric name="Radius" value="[zero]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, 0 </Vector> + </Algorithm> +</DDDefinition> diff --git a/examples/DDCMS/data/tecwheelb.xml b/examples/DDCMS/data/tecwheelb.xml new file mode 100644 index 0000000000000000000000000000000000000000..b1d8a3671b11898938b2e5290eeba3b6d75d8978 --- /dev/null +++ b/examples/DDCMS/data/tecwheelb.xml @@ -0,0 +1,202 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tecwheelb.xml" eval="true"> + <Constant name="zero" value="0.0*fm"/> + <Constant name="FixSuppRmax" value="[tecpetal3:PetalContRmin]+ [tecwheel:FixSuppR]"/> + <Constant name="FixSuppW" value="2*[tecwheel:FixSuppA]/([FixSuppRmax]*[FixSuppRmax]-[tecpetal3:PetalContRmin]*[tecpetal3:PetalContRmin])"/> + <!-- calculate the width to fit the area at this specific radius! thus the volume will be constant!--> + <Constant name="CableL" value="([tecwheel:CableRmax]-[tecring1:Rin])"/> + <Constant name="CableR" value="([tecwheel:CableRmax]+[tecring1:Rin])/2"/> + </ConstantsSection> + <SolidSection label="tecwheelb.xml"> + <Tubs name="TECWheelB" rMin="[tecpetal3:PetalContRmin]" rMax="[tecwheel:WheelRmax]" dz="[tecwheel:WheelT]/2" startPhi="0*deg" deltaPhi="360.*deg"/> + <Tubs name="TECWheelDiskB" rMin="[tecpetal3:PetalContRmin]" rMax="[tecwheel:WheelRmax]" dz="[tecwheel:DiskT]/2" startPhi="0*deg" deltaPhi="360.*deg"/> + <Tubs name="TECWheelNomexB" rMin="[tecpetal3:PetalContRmin]" rMax="[tecwheel:NomexRmax]" dz="[tecwheel:NomexT]/2" startPhi="0*deg" deltaPhi="360.*deg"/> + <Tubs name="TECFixSupportB" rMin="[tecpetal3:PetalContRmin]" rMax="[FixSuppRmax]" dz="[tecwheel:FixSuppT]/2" startPhi="-[FixSuppW]/2" deltaPhi="[FixSuppW]"/> + <Tubs name="TECOptConnectorB" rMin="[tecwheel:OptConnRmin]" rMax="[tecwheel:OptConnRmax]" dz="[tecwheel:OptConnT2]/2" startPhi="-[tecwheel:OptConnW]/2" deltaPhi="[tecwheel:OptConnW]"/> + </SolidSection> + <LogicalPartSection label="tecwheelb.xml"> + <LogicalPart name="TECWheelB" category="unspecified"> + <rSolid name="tecwheelb:TECWheelB"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TECWheelDiskB" category="unspecified"> + <rSolid name="tecwheelb:TECWheelDiskB"/> + <rMaterial name="tecmaterial:TEC_wheel_CF"/> + </LogicalPart> + <LogicalPart name="TECWheelNomexB" category="unspecified"> + <rSolid name="tecwheelb:TECWheelNomexB"/> + <rMaterial name="tecmaterial:TEC_wheel_Nomex"/> + </LogicalPart> + <LogicalPart name="TECFixSupportB" category="unspecified"> + <rSolid name="tecwheelb:TECFixSupportB"/> + <rMaterial name="tecmaterial:TEC_Fixframe"/> + </LogicalPart> + <LogicalPart name="TECOptConnectorB" category="unspecified"> + <rSolid name="tecwheelb:TECOptConnectorB"/> + <rMaterial name="tecmaterial:TEC_OptoCon"/> + </LogicalPart> + </LogicalPartSection> + <PosPartSection label="tecwheelb.xml"> + <PosPart copyNumber="1"> + <rParent name="tecwheelb:TECWheelB"/> + <rChild name="tecwheelb:TECWheelDiskB"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecwheelb:TECWheelDiskB"/> + <rChild name="tecwheelb:TECWheelNomexB"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tecwheelb:TECWheelDiskB"/> + <rChild name="tecwheel:TECGroundingRing"/> + </PosPart> + </PosPartSection> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecwheelb:TECWheelB"/> + <String name="ChildName" value="tecpetal3f:TECPetalCont3F"/> + <Numeric name="N" value="[tecwheel:PetalContN]"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[tecwheel:PetalContFiF]"/> + <Numeric name="Radius" value="[zero]"/> + <Vector name="Center" type="numeric" nEntries="3"> + 0, 0, -[tecwheel:PetalContZ] </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecwheelb:TECWheelB"/> + <String name="ChildName" value="tecpetal3b:TECPetalCont3B"/> + <Numeric name="N" value="[tecwheel:PetalContN]"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[tecwheel:PetalContFiB]"/> + <Numeric name="Radius" value="[zero]"/> + <Vector name="Center" type="numeric" nEntries="3"> + 0, 0, [tecwheel:PetalContZ] </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecwheelb:TECWheelNomexB"/> + <String name="ChildName" value="tecwheel:TECWheelInsert"/> + <Numeric name="N" value="[tecwheel:InsertN]"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[tecwheel:InsertFi1]"/> + <Numeric name="Radius" value="[tecwheel:InsertR1]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, 0 </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecwheelb:TECWheelNomexB"/> + <String name="ChildName" value="tecwheel:TECWheelInsert"/> + <Numeric name="N" value="[tecwheel:InsertN]"/> + <Numeric name="StartCopyNo" value="9"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[tecwheel:InsertFi2]"/> + <Numeric name="Radius" value="[tecwheel:InsertR2]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, 0 </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecwheelb:TECWheelNomexB"/> + <String name="ChildName" value="tecwheel:TECWheelInsert"/> + <Numeric name="N" value="[tecwheel:InsertN]"/> + <Numeric name="StartCopyNo" value="17"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[tecwheel:InsertFi3]"/> + <Numeric name="Radius" value="[tecwheel:InsertR3]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, 0 </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecwheelb:TECWheelNomexB"/> + <String name="ChildName" value="tecwheel:TECWheelInsert"/> + <Numeric name="N" value="[tecwheel:InsertN]"/> + <Numeric name="StartCopyNo" value="25"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[tecwheel:InsertFi4]"/> + <Numeric name="Radius" value="[tecwheel:InsertR4]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, 0 </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecwheelb:TECWheelNomexB"/> + <String name="ChildName" value="tecwheel:TECWheelInsert"/> + <Numeric name="N" value="[tecwheel:InsertN]"/> + <Numeric name="StartCopyNo" value="33"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[tecwheel:InsertFi5]"/> + <Numeric name="Radius" value="[tecwheel:InsertR5]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, 0 </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecwheelb:TECWheelNomexB"/> + <String name="ChildName" value="tecwheel:TECWheelInsert"/> + <Numeric name="N" value="[tecwheel:InsertN]"/> + <Numeric name="StartCopyNo" value="41"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[tecwheel:InsertFi6]"/> + <Numeric name="Radius" value="[tecwheel:InsertR6]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, 0 </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecwheelb:TECWheelNomexB"/> + <String name="ChildName" value="tecwheelb:TECFixSupportB"/> + <Numeric name="N" value="[tecwheel:FixSuppN]"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[tecwheel:FixSuppFi]"/> + <Numeric name="Radius" value="[zero]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, 0 </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecwheelb:TECWheelNomexB"/> + <String name="ChildName" value="tecwheel:TECFixService"/> + <Numeric name="N" value="[tecwheel:FixServN]"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[tecwheel:FixServFi]"/> + <Numeric name="Radius" value="[zero]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, 0 </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecwheelb:TECWheelB"/> + <String name="ChildName" value="tecwheelb:TECOptConnectorB"/> + <Numeric name="N" value="[tecwheel:OptConnN]"/> + <Numeric name="StartCopyNo" value="2"/> + <Numeric name="IncrCopyNo" value="2"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[tecwheel:OptConnFI1]"/> + <Numeric name="Radius" value="[zero]"/> + <Vector name="Center" type="numeric" nEntries="3"> + 0, 0, -[tecwheel:OptConnZ2] </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecwheelb:TECWheelB"/> + <String name="ChildName" value="tecwheelb:TECOptConnectorB"/> + <Numeric name="N" value="[tecwheel:OptConnN]"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="2"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[tecwheel:OptConnFI2]"/> + <Numeric name="Radius" value="[zero]"/> + <Vector name="Center" type="numeric" nEntries="3"> + 0, 0, [tecwheel:OptConnZ2] </Vector> + </Algorithm> + <!-- Alignment Holder (Sphere holder) --> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecwheelb:TECWheelNomexB"/> + <String name="ChildName" value="tecwheel:TECAlignHolder"/> + <Numeric name="N" value="4"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[tecwheel:AlignHolderStartPhi]"/> + <Numeric name="Radius" value="[zero]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, 0 </Vector> + </Algorithm> +</DDDefinition> diff --git a/examples/DDCMS/data/tecwheelc.xml b/examples/DDCMS/data/tecwheelc.xml new file mode 100644 index 0000000000000000000000000000000000000000..ad99f7da1bc0b4f5671374888b9c4266f61560fa --- /dev/null +++ b/examples/DDCMS/data/tecwheelc.xml @@ -0,0 +1,202 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tecwheelc.xml" eval="true"> + <Constant name="zero" value="0.0*fm"/> + <Constant name="FixSuppRmax" value="[tecpetal3:PetalContRmin]+ [tecwheel:FixSuppR]"/> + <Constant name="FixSuppW" value="2*[tecwheel:FixSuppA]/([FixSuppRmax]*[FixSuppRmax]-[tecpetal3:PetalContRmin]*[tecpetal3:PetalContRmin])"/> + <!-- calculate the width to fit the area at this specific radius! thus the volume will be constant!--> + <Constant name="CableL" value="([tecwheel:CableRmax]-[tecring2:Rin])"/> + <Constant name="CableR" value="([tecwheel:CableRmax]+[tecring2:Rin])/2"/> + </ConstantsSection> + <SolidSection label="tecwheelc.xml"> + <Tubs name="TECWheelC" rMin="[tecpetal3:PetalContRmin]" rMax="[tecwheel:WheelRmax]" dz="[tecwheel:WheelT]/2" startPhi="0*deg" deltaPhi="360.*deg"/> + <Tubs name="TECWheelDiskC" rMin="[tecpetal3:PetalContRmin]" rMax="[tecwheel:WheelRmax]" dz="[tecwheel:DiskT]/2" startPhi="0*deg" deltaPhi="360.*deg"/> + <Tubs name="TECWheelNomexC" rMin="[tecpetal3:PetalContRmin]" rMax="[tecwheel:NomexRmax]" dz="[tecwheel:NomexT]/2" startPhi="0*deg" deltaPhi="360.*deg"/> + <Tubs name="TECFixSupportC" rMin="[tecpetal3:PetalContRmin]" rMax="[FixSuppRmax]" dz="[tecwheel:FixSuppT]/2" startPhi="-[FixSuppW]/2" deltaPhi="[FixSuppW]"/> + <Tubs name="TECOptConnectorC" rMin="[tecwheel:OptConnRmin]" rMax="[tecwheel:OptConnRmax]" dz="[tecwheel:OptConnT3]/2" startPhi="-[tecwheel:OptConnW]/2" deltaPhi="[tecwheel:OptConnW]"/> + </SolidSection> + <LogicalPartSection label="tecwheelc.xml"> + <LogicalPart name="TECWheelC" category="unspecified"> + <rSolid name="tecwheelc:TECWheelC"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TECWheelDiskC" category="unspecified"> + <rSolid name="tecwheelc:TECWheelDiskC"/> + <rMaterial name="tecmaterial:TEC_wheel_CF"/> + </LogicalPart> + <LogicalPart name="TECWheelNomexC" category="unspecified"> + <rSolid name="tecwheelc:TECWheelNomexC"/> + <rMaterial name="tecmaterial:TEC_wheel_Nomex"/> + </LogicalPart> + <LogicalPart name="TECFixSupportC" category="unspecified"> + <rSolid name="tecwheelc:TECFixSupportC"/> + <rMaterial name="tecmaterial:TEC_Fixframe"/> + </LogicalPart> + <LogicalPart name="TECOptConnectorC" category="unspecified"> + <rSolid name="tecwheelc:TECOptConnectorC"/> + <rMaterial name="tecmaterial:TEC_OptoCon"/> + </LogicalPart> + </LogicalPartSection> + <PosPartSection label="tecwheelc.xml"> + <PosPart copyNumber="1"> + <rParent name="tecwheelc:TECWheelC"/> + <rChild name="tecwheelc:TECWheelDiskC"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecwheelc:TECWheelDiskC"/> + <rChild name="tecwheelc:TECWheelNomexC"/> + </PosPart> + <PosPart copyNumber="3"> + <rParent name="tecwheelc:TECWheelDiskC"/> + <rChild name="tecwheel:TECGroundingRing"/> + </PosPart> + </PosPartSection> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecwheelc:TECWheelC"/> + <String name="ChildName" value="tecpetal6f:TECPetalCont6F"/> + <Numeric name="N" value="[tecwheel:PetalContN]"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[tecwheel:PetalContFiF]"/> + <Numeric name="Radius" value="[zero]"/> + <Vector name="Center" type="numeric" nEntries="3"> + 0, 0, -[tecwheel:PetalContZ] </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecwheelc:TECWheelC"/> + <String name="ChildName" value="tecpetal6b:TECPetalCont6B"/> + <Numeric name="N" value="[tecwheel:PetalContN]"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[tecwheel:PetalContFiB]"/> + <Numeric name="Radius" value="[zero]"/> + <Vector name="Center" type="numeric" nEntries="3"> + 0, 0, [tecwheel:PetalContZ] </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecwheelc:TECWheelNomexC"/> + <String name="ChildName" value="tecwheel:TECWheelInsert"/> + <Numeric name="N" value="[tecwheel:InsertN]"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[tecwheel:InsertFi1]"/> + <Numeric name="Radius" value="[tecwheel:InsertR1]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, 0 </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecwheelc:TECWheelNomexC"/> + <String name="ChildName" value="tecwheel:TECWheelInsert"/> + <Numeric name="N" value="[tecwheel:InsertN]"/> + <Numeric name="StartCopyNo" value="9"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[tecwheel:InsertFi2]"/> + <Numeric name="Radius" value="[tecwheel:InsertR2]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, 0 </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecwheelc:TECWheelNomexC"/> + <String name="ChildName" value="tecwheel:TECWheelInsert"/> + <Numeric name="N" value="[tecwheel:InsertN]"/> + <Numeric name="StartCopyNo" value="17"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[tecwheel:InsertFi3]"/> + <Numeric name="Radius" value="[tecwheel:InsertR3]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, 0 </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecwheelc:TECWheelNomexC"/> + <String name="ChildName" value="tecwheel:TECWheelInsert"/> + <Numeric name="N" value="[tecwheel:InsertN]"/> + <Numeric name="StartCopyNo" value="25"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[tecwheel:InsertFi4]"/> + <Numeric name="Radius" value="[tecwheel:InsertR4]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, 0 </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecwheelc:TECWheelNomexC"/> + <String name="ChildName" value="tecwheel:TECWheelInsert"/> + <Numeric name="N" value="[tecwheel:InsertN]"/> + <Numeric name="StartCopyNo" value="33"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[tecwheel:InsertFi5]"/> + <Numeric name="Radius" value="[tecwheel:InsertR5]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, 0 </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecwheelc:TECWheelNomexC"/> + <String name="ChildName" value="tecwheel:TECWheelInsert"/> + <Numeric name="N" value="[tecwheel:InsertN]"/> + <Numeric name="StartCopyNo" value="41"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[tecwheel:InsertFi6]"/> + <Numeric name="Radius" value="[tecwheel:InsertR6]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, 0 </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecwheelc:TECWheelNomexC"/> + <String name="ChildName" value="tecwheelc:TECFixSupportC"/> + <Numeric name="N" value="[tecwheel:FixSuppN]"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[tecwheel:FixSuppFi]"/> + <Numeric name="Radius" value="[zero]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, 0 </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecwheelc:TECWheelNomexC"/> + <String name="ChildName" value="tecwheel:TECFixService"/> + <Numeric name="N" value="[tecwheel:FixServN]"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[tecwheel:FixServFi]"/> + <Numeric name="Radius" value="[zero]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, 0 </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecwheelc:TECWheelC"/> + <String name="ChildName" value="tecwheelc:TECOptConnectorC"/> + <Numeric name="N" value="[tecwheel:OptConnN]"/> + <Numeric name="StartCopyNo" value="2"/> + <Numeric name="IncrCopyNo" value="2"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[tecwheel:OptConnFI1]"/> + <Numeric name="Radius" value="[zero]"/> + <Vector name="Center" type="numeric" nEntries="3"> + 0, 0, -[tecwheel:OptConnZ3] </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecwheelc:TECWheelC"/> + <String name="ChildName" value="tecwheelc:TECOptConnectorC"/> + <Numeric name="N" value="[tecwheel:OptConnN]"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="2"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[tecwheel:OptConnFI2]"/> + <Numeric name="Radius" value="[zero]"/> + <Vector name="Center" type="numeric" nEntries="3"> + 0, 0, [tecwheel:OptConnZ3] </Vector> + </Algorithm> + <!-- Alignment Holder (Sphere holder) --> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecwheelc:TECWheelNomexC"/> + <String name="ChildName" value="tecwheel:TECAlignHolder"/> + <Numeric name="N" value="4"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[tecwheel:AlignHolderStartPhi]"/> + <Numeric name="Radius" value="[zero]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, 0 </Vector> + </Algorithm> +</DDDefinition> diff --git a/examples/DDCMS/data/tecwheeld.xml b/examples/DDCMS/data/tecwheeld.xml new file mode 100644 index 0000000000000000000000000000000000000000..92219ea48f50d79317a29af9d6ca53b1fdbd71ba --- /dev/null +++ b/examples/DDCMS/data/tecwheeld.xml @@ -0,0 +1,202 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tecwheeld.xml" eval="true"> + <Constant name="zero" value="0.0*fm"/> + <Constant name="FixSuppRmax" value="[tecpetal3:PetalContRmin]+ [tecwheel:FixSuppR]"/> + <Constant name="FixSuppW" value="2*[tecwheel:FixSuppA]/([FixSuppRmax]*[FixSuppRmax]-[tecpetal3:PetalContRmin]*[tecpetal3:PetalContRmin])"/> + <!-- calculate the width to fit the area at this specific radius! thus the volume will be constant!--> + <Constant name="CableL" value="([tecwheel:CableRmax]-[tecring3:Rin])"/> + <Constant name="CableR" value="([tecwheel:CableRmax]+[tecring3:Rin])/2"/> + </ConstantsSection> + <SolidSection label="tecwheeld.xml"> + <Tubs name="TECWheelD" rMin="[tecpetal3:PetalContRmin]" rMax="[tecwheel:WheelRmax]" dz="[tecwheel:WheelT]/2" startPhi="0*deg" deltaPhi="360.*deg"/> + <Tubs name="TECWheelDiskD" rMin="[tecpetal3:PetalContRmin]" rMax="[tecwheel:WheelRmax]" dz="[tecwheel:DiskT]/2" startPhi="0*deg" deltaPhi="360.*deg"/> + <Tubs name="TECWheelNomexD" rMin="[tecpetal3:PetalContRmin]" rMax="[tecwheel:NomexRmax]" dz="[tecwheel:NomexT]/2" startPhi="0*deg" deltaPhi="360.*deg"/> + <Tubs name="TECFixSupportD" rMin="[tecpetal3:PetalContRmin]" rMax="[FixSuppRmax]" dz="[tecwheel:FixSuppT]/2" startPhi="-[FixSuppW]/2" deltaPhi="[FixSuppW]"/> + <Tubs name="TECOptConnectorD" rMin="[tecwheel:OptConnRmin]" rMax="[tecwheel:OptConnRmax]" dz="[tecwheel:OptConnT3]/2" startPhi="-[tecwheel:OptConnW]/2" deltaPhi="[tecwheel:OptConnW]"/> + </SolidSection> + <LogicalPartSection label="tecwheeld.xml"> + <LogicalPart name="TECWheelD" category="unspecified"> + <rSolid name="tecwheeld:TECWheelD"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TECWheelDiskD" category="unspecified"> + <rSolid name="tecwheeld:TECWheelDiskD"/> + <rMaterial name="tecmaterial:TEC_wheel_CF"/> + </LogicalPart> + <LogicalPart name="TECWheelNomexD" category="unspecified"> + <rSolid name="tecwheeld:TECWheelNomexD"/> + <rMaterial name="tecmaterial:TEC_wheel_Nomex"/> + </LogicalPart> + <LogicalPart name="TECFixSupportD" category="unspecified"> + <rSolid name="tecwheeld:TECFixSupportD"/> + <rMaterial name="tecmaterial:TEC_Fixframe"/> + </LogicalPart> + <LogicalPart name="TECOptConnectorD" category="unspecified"> + <rSolid name="tecwheeld:TECOptConnectorD"/> + <rMaterial name="tecmaterial:TEC_OptoCon"/> + </LogicalPart> + </LogicalPartSection> + <PosPartSection label="tecwheeld.xml"> + <PosPart copyNumber="1"> + <rParent name="tecwheeld:TECWheelD"/> + <rChild name="tecwheeld:TECWheelDiskD"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecwheeld:TECWheelDiskD"/> + <rChild name="tecwheeld:TECWheelNomexD"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tecwheeld:TECWheelDiskD"/> + <rChild name="tecwheel:TECGroundingRing"/> + </PosPart> + </PosPartSection> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecwheeld:TECWheelD"/> + <String name="ChildName" value="tecpetal8f:TECPetalCont8F"/> + <Numeric name="N" value="[tecwheel:PetalContN]"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[tecwheel:PetalContFiF]"/> + <Numeric name="Radius" value="[zero]"/> + <Vector name="Center" type="numeric" nEntries="3"> + 0, 0, -[tecwheel:PetalContZ] </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecwheeld:TECWheelD"/> + <String name="ChildName" value="tecpetal8b:TECPetalCont8B"/> + <Numeric name="N" value="[tecwheel:PetalContN]"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[tecwheel:PetalContFiB]"/> + <Numeric name="Radius" value="[zero]"/> + <Vector name="Center" type="numeric" nEntries="3"> + 0, 0, [tecwheel:PetalContZ] </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecwheeld:TECWheelNomexD"/> + <String name="ChildName" value="tecwheel:TECWheelInsert"/> + <Numeric name="N" value="[tecwheel:InsertN]"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[tecwheel:InsertFi1]"/> + <Numeric name="Radius" value="[tecwheel:InsertR1]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, 0 </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecwheeld:TECWheelNomexD"/> + <String name="ChildName" value="tecwheel:TECWheelInsert"/> + <Numeric name="N" value="[tecwheel:InsertN]"/> + <Numeric name="StartCopyNo" value="9"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[tecwheel:InsertFi2]"/> + <Numeric name="Radius" value="[tecwheel:InsertR2]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, 0 </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecwheeld:TECWheelNomexD"/> + <String name="ChildName" value="tecwheel:TECWheelInsert"/> + <Numeric name="N" value="[tecwheel:InsertN]"/> + <Numeric name="StartCopyNo" value="17"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[tecwheel:InsertFi3]"/> + <Numeric name="Radius" value="[tecwheel:InsertR3]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, 0 </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecwheeld:TECWheelNomexD"/> + <String name="ChildName" value="tecwheel:TECWheelInsert"/> + <Numeric name="N" value="[tecwheel:InsertN]"/> + <Numeric name="StartCopyNo" value="25"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[tecwheel:InsertFi4]"/> + <Numeric name="Radius" value="[tecwheel:InsertR4]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, 0 </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecwheeld:TECWheelNomexD"/> + <String name="ChildName" value="tecwheel:TECWheelInsert"/> + <Numeric name="N" value="[tecwheel:InsertN]"/> + <Numeric name="StartCopyNo" value="33"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[tecwheel:InsertFi5]"/> + <Numeric name="Radius" value="[tecwheel:InsertR5]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, 0 </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecwheeld:TECWheelNomexD"/> + <String name="ChildName" value="tecwheel:TECWheelInsert"/> + <Numeric name="N" value="[tecwheel:InsertN]"/> + <Numeric name="StartCopyNo" value="41"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[tecwheel:InsertFi6]"/> + <Numeric name="Radius" value="[tecwheel:InsertR6]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, 0 </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecwheeld:TECWheelNomexD"/> + <String name="ChildName" value="tecwheeld:TECFixSupportD"/> + <Numeric name="N" value="[tecwheel:FixSuppN]"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[tecwheel:FixSuppFi]"/> + <Numeric name="Radius" value="[zero]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, 0 </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecwheeld:TECWheelNomexD"/> + <String name="ChildName" value="tecwheel:TECFixService"/> + <Numeric name="N" value="[tecwheel:FixServN]"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[tecwheel:FixServFi]"/> + <Numeric name="Radius" value="[zero]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, 0 </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecwheeld:TECWheelD"/> + <String name="ChildName" value="tecwheeld:TECOptConnectorD"/> + <Numeric name="N" value="[tecwheel:OptConnN]"/> + <Numeric name="StartCopyNo" value="2"/> + <Numeric name="IncrCopyNo" value="2"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[tecwheel:OptConnFI1]"/> + <Numeric name="Radius" value="[zero]"/> + <Vector name="Center" type="numeric" nEntries="3"> + 0, 0, -[tecwheel:OptConnZ3] </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecwheeld:TECWheelD"/> + <String name="ChildName" value="tecwheeld:TECOptConnectorD"/> + <Numeric name="N" value="[tecwheel:OptConnN]"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="2"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[tecwheel:OptConnFI2]"/> + <Numeric name="Radius" value="[zero]"/> + <Vector name="Center" type="numeric" nEntries="3"> + 0, 0, [tecwheel:OptConnZ3] </Vector> + </Algorithm> + <!-- Alignment Holder (Sphere holder) --> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tecwheeld:TECWheelNomexD"/> + <String name="ChildName" value="tecwheel:TECAlignHolder"/> + <Numeric name="N" value="4"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[tecwheel:AlignHolderStartPhi]"/> + <Numeric name="Radius" value="[zero]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, 0 </Vector> + </Algorithm> +</DDDefinition> diff --git a/examples/DDCMS/data/tib.xml b/examples/DDCMS/data/tib.xml new file mode 100644 index 0000000000000000000000000000000000000000..e085641245d91dc23206e1774c8f98768e107851 --- /dev/null +++ b/examples/DDCMS/data/tib.xml @@ -0,0 +1,48 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tib.xml" eval="true"> + <Constant name="zero" value="0.0*fm"/> + <Constant name="Rin" value="22.20*cm"/> + <Constant name="Rout" value="54.00*cm"/> + <Constant name="TIBDz" value="716.00*mm"/> + <Constant name="SupportT" value="1.50*cm"/> + <Constant name="SupportRin" value="[tiblayer3:MFRingOutR]"/> + <Constant name="SupportRout" value="[SupportRin]+1.*mm"/> + </ConstantsSection> + <SolidSection label="tib.xml"> + <Tubs name="TIB" rMin="[Rin]" rMax="[Rout]" dz="[tib:TIBDz]" startPhi="0*deg" deltaPhi="360*deg"/> + <Tubs name="TIBOutSupport" rMin="[SupportRin]" rMax="[SupportRout]" dz="[tib:TIBDz]" startPhi="0*deg" deltaPhi="360*deg"/> + </SolidSection> + <LogicalPartSection label="tib.xml"> + <LogicalPart name="TIB" category="unspecified"> + <rSolid name="TIB"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TIBOutSupport" category="unspecified"> + <rSolid name="TIBOutSupport"/> + <rMaterial name="trackermaterial:T_CarbonFibreStr"/> + </LogicalPart> + </LogicalPartSection> + <PosPartSection label="tib.xml"> + <PosPart copyNumber="1"> + <rParent name="tib:TIB"/> + <rChild name="tib:TIBOutSupport"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tib:TIB"/> + <rChild name="tiblayer0:TIBLayer0"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tib:TIB"/> + <rChild name="tiblayer1:TIBLayer1"/> + </PosPart> + <PosPart copyNumber="3"> + <rParent name="tib:TIB"/> + <rChild name="tiblayer2:TIBLayer2"/> + </PosPart> + <PosPart copyNumber="4"> + <rParent name="tib:TIB"/> + <rChild name="tiblayer3:TIBLayer3"/> + </PosPart> + </PosPartSection> +</DDDefinition> diff --git a/examples/DDCMS/data/tiblayer0.xml b/examples/DDCMS/data/tiblayer0.xml new file mode 100644 index 0000000000000000000000000000000000000000..ded81fc735a9a37fb64236bf0b7c1980b414c197 --- /dev/null +++ b/examples/DDCMS/data/tiblayer0.xml @@ -0,0 +1,105 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tiblayer0.xml" eval="true"> + <Constant name="RadiusUp" value="([tiblayerpar:RadiusLo0]+ [tiblayerpar:DRUpLo])"/> + <Constant name="CylinderT" value="0.60*cm"/> + <Constant name="CylinderInR" value="253.0*mm"/> + <Constant name="MFRingInR" value="225.0*mm"/> + <Constant name="MFRingOutR" value="69.0*mm+[MFRingInR]"/> + </ConstantsSection> + <Algorithm name="track:DDTIBLayerAlgo"> + <rParent name="tiblayer0:TIBLayer0"/> + <String name="GeneralMaterial" value="materials:Air"/> + <Numeric name="DetectorTilt" value="[tiblayerpar:DetTilt]"/> + <Numeric name="LayerL" value="[tibstringpar:StringL]"/> + <Numeric name="RadiusLo" value="[tiblayerpar:RadiusLo0]"/> + <Numeric name="StringsLo" value="26"/> + <String name="StringDetLoName" value="tibstring0:TIBString0Lo1"/> + <Numeric name="RadiusUp" value="[tiblayer0:RadiusUp]"/> + <Numeric name="StringsUp" value="30"/> + <String name="StringDetUpName" value="tibstring0:TIBString0Up1"/> + <Numeric name="CylinderThickness" value="[CylinderT]"/> + <Numeric name="CylinderInnerRadius" value="[CylinderInR]"/> + <String name="CylinderMaterial" value="tibmaterial:TIB_CFCylinder"/> + <Numeric name="MFRingInnerRadius" value="[MFRingInR]"/> + <Numeric name="MFRingOuterRadius" value="[MFRingOutR]"/> + <Numeric name="MFRingThickness" value="[tiblayerpar:MFRingT]"/> + <Numeric name="MFRingDeltaz" value="[tiblayerpar:MFRingDz]"/> + <String name="MFIntRingMaterial" value="tibmaterial:TIB_MFIntRing"/> + <String name="MFExtRingMaterial" value="tibmaterial:TIB_MFExtRing"/> + <Numeric name="SupportThickness" value="[tiblayerpar:SupportT]"/> + <String name="CentRingMaterial" value="tibmaterial:TIB_CentRing"/> + <Vector name="CentRing1" type="numeric" nEntries="4"> + -6.15*mm, 4.*mm, [MFRingOutR]-[tiblayerpar:MFRingT], [MFRingOutR] + </Vector> + <Vector name="CentRing2" type="numeric" nEntries="4"> + 36.88*mm, 4.*mm, [MFRingInR], [MFRingInR]+[tiblayerpar:MFRingT] + </Vector> + <String name="FillerMaterial" value="trackermaterial:T_G10"/> + <Numeric name="FillerDeltaz" value="10*mm"/> + <String name="RibMaterial" value="trackermaterial:T_CarbonFibreStr"/> + <Vector name="RibWidth" type="numeric" nEntries="6"> + [tiblayerpar:RibWidth1], [tiblayerpar:RibWidth2], [tiblayerpar:RibWidth2], + [tiblayerpar:RibWidth1], [tiblayerpar:RibWidth2], [tiblayerpar:RibWidth2] + </Vector> + <Vector name="RibPhi" type="numeric" nEntries="6"> + 0*deg, 51.4*deg, 128.6*deg, 180.0*deg, 231.4*deg, 308.6*deg + </Vector> + <!-- DOHM Position in #string in the upper half shell; negative means place an AUX --> + <!-- NB String numbering here starts from 1 --> + <Vector name="DOHMListFW" type="numeric" nEntries="6"> + 2, 4, 7, 9, 12, 14 + </Vector> + <Vector name="DOHMListBW" type="numeric" nEntries="6"> + 2, 4, 7, 9, 12, 14 + </Vector> + <Numeric name="DOHMCarrierPhiOffset" value="[tiblayerpar:DOHMCarrierPhiOff]"/> + <Numeric name="DOHMtoMFDist" value="[tiblayerpar:DOHMtoMF]"/> + <String name="StringDOHMPrimName" value="tiblayerpar:TIBDOHMPrim"/> + <String name="StringDOHMAuxName" value="tiblayerpar:TIBDOHMAux"/> + <String name="DOHMCarrierMaterial" value="tibmaterial:TIB_DOHMCarrier"/> + <String name="DOHMCableMaterial" value="tibmaterial:TIB_DOHM_cable"/> + <String name="DOHMPRIMMaterial" value="tibmaterial:TIB_DOHM_PRIM"/> + <Numeric name="DOHMPRIMLength" value="[tiblayerpar:DOHM_PRIM_L]"/> + <String name="DOHMAUXMaterial" value="tibmaterial:TIB_DOHM_AUX"/> + <Numeric name="DOHMAUXLength" value="[tiblayerpar:DOHM_AUX_L]"/> + <!-- Pillar Material --> + <String name="PillarMaterial" value="tibmaterial:TIB_Pillar"/> + <!-- FW Internal Pillar Parameters --> + <Numeric name="FWIntPillarDz" value="1.0*mm"/> + <Numeric name="FWIntPillarDPhi" value="1.0*deg"/> + <Vector name="FWIntPillarPhi" type="numeric" nEntries="1"> + -1. + </Vector> + <Vector name="FWIntPillarZ" type="numeric" nEntries="1"> + 0. + </Vector> + <!-- BW Internal Pillar Parameters --> + <Numeric name="BWIntPillarDz" value="1.0*cm"/> + <Numeric name="BWIntPillarDPhi" value="1.0*deg"/> + <Vector name="BWIntPillarPhi" type="numeric" nEntries="1"> + -1. + </Vector> + <Vector name="BWIntPillarZ" type="numeric" nEntries="1"> + 0. + </Vector> + <!-- FW External Pillar Parameters --> + <Numeric name="FWExtPillarDz" value="20.5*mm"/> + <Numeric name="FWExtPillarDPhi" value="7.0*deg"/> + <Vector name="FWExtPillarPhi" type="numeric" nEntries="4"> + 56.*deg, 124.*deg, 236.*deg, 304.*deg + </Vector> + <Vector name="FWExtPillarZ" type="numeric" nEntries="4"> + 200.*mm, 200.*mm, 200.*mm, 200.*mm + </Vector> + <!-- BW External Pillar Parameters --> + <Numeric name="BWExtPillarDz" value="8.0*mm"/> + <Numeric name="BWExtPillarDPhi" value="7.0*deg"/> + <Vector name="BWExtPillarPhi" type="numeric" nEntries="4"> + 56.*deg, 124.*deg, 236.*deg, 304.*deg + </Vector> + <Vector name="BWExtPillarZ" type="numeric" nEntries="4"> + -248.*mm, -248.*mm, -248.*mm, -248.*mm + </Vector> + </Algorithm> +</DDDefinition> diff --git a/examples/DDCMS/data/tiblayer1.xml b/examples/DDCMS/data/tiblayer1.xml new file mode 100644 index 0000000000000000000000000000000000000000..19ad1a0f684b5320c64206f7a7ea5222d0fbd35b --- /dev/null +++ b/examples/DDCMS/data/tiblayer1.xml @@ -0,0 +1,105 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tiblayer1.xml" eval="true"> + <Constant name="RadiusUp" value="([tiblayerpar:RadiusLo1]+ [tiblayerpar:DRUpLo])"/> + <Constant name="CylinderT" value="0.60*cm"/> + <Constant name="CylinderInR" value="337.0*mm"/> + <Constant name="MFRingInR" value="300.0*mm"/> + <Constant name="MFRingOutR" value="75.75*mm+[MFRingInR]"/> + </ConstantsSection> + <Algorithm name="track:DDTIBLayerAlgo"> + <rParent name="tiblayer1:TIBLayer1"/> + <String name="GeneralMaterial" value="materials:Air"/> + <Numeric name="DetectorTilt" value="[tiblayerpar:DetTilt]"/> + <Numeric name="LayerL" value="[tibstringpar:StringL]"/> + <Numeric name="RadiusLo" value="[tiblayerpar:RadiusLo1]"/> + <Numeric name="StringsLo" value="34"/> + <String name="StringDetLoName" value="tibstring1:TIBString1Lo1"/> + <Numeric name="RadiusUp" value="[tiblayer1:RadiusUp]"/> + <Numeric name="StringsUp" value="38"/> + <String name="StringDetUpName" value="tibstring1:TIBString1Up1"/> + <Numeric name="CylinderThickness" value="[CylinderT]"/> + <Numeric name="CylinderInnerRadius" value="[CylinderInR]"/> + <String name="CylinderMaterial" value="tibmaterial:TIB_CFCylinder"/> + <Numeric name="MFRingInnerRadius" value="[MFRingInR]"/> + <Numeric name="MFRingOuterRadius" value="[MFRingOutR]"/> + <Numeric name="MFRingThickness" value="[tiblayerpar:MFRingT]"/> + <Numeric name="MFRingDeltaz" value="[tiblayerpar:MFRingDz]"/> + <String name="MFIntRingMaterial" value="tibmaterial:TIB_MFIntRing"/> + <String name="MFExtRingMaterial" value="tibmaterial:TIB_MFExtRing"/> + <Numeric name="SupportThickness" value="[tiblayerpar:SupportT]"/> + <String name="CentRingMaterial" value="tibmaterial:TIB_CentRing"/> + <Vector name="CentRing1" type="numeric" nEntries="4"> + -3.805*mm, 4.*mm, [MFRingOutR]-[tiblayerpar:MFRingT], [MFRingOutR] + </Vector> + <Vector name="CentRing2" type="numeric" nEntries="4"> + 12.461*mm, 4.*mm, [MFRingOutR]-[tiblayerpar:MFRingT], [MFRingOutR] + </Vector> + <String name="FillerMaterial" value="trackermaterial:T_G10"/> + <Numeric name="FillerDeltaz" value="11*mm"/> + <String name="RibMaterial" value="trackermaterial:T_CarbonFibreStr"/> + <Vector name="RibWidth" type="numeric" nEntries="6"> + [tiblayerpar:RibWidth1], [tiblayerpar:RibWidth2], [tiblayerpar:RibWidth2], + [tiblayerpar:RibWidth1], [tiblayerpar:RibWidth2], [tiblayerpar:RibWidth2] + </Vector> + <Vector name="RibPhi" type="numeric" nEntries="6"> + 0*deg, 56.8*deg, 123.2*deg, 180.0*deg, 236.8*deg, 303.2*deg + </Vector> + <!-- DOHM Position in #string in the upper half shell; negative means place an AUX --> + <!-- NB String numbering here starts from 1 --> + <Vector name="DOHMListFW" type="numeric" nEntries="8"> + 2, 4, 7, 9, 12, 14, 16, 18 + </Vector> + <Vector name="DOHMListBW" type="numeric" nEntries="8"> + 2, 4, 7, 9, 11, 13, 16, 18 + </Vector> + <Numeric name="DOHMCarrierPhiOffset" value="[tiblayerpar:DOHMCarrierPhiOff]"/> + <Numeric name="DOHMtoMFDist" value="[tiblayerpar:DOHMtoMF]"/> + <String name="StringDOHMPrimName" value="tiblayerpar:TIBDOHMPrim"/> + <String name="StringDOHMAuxName" value="tiblayerpar:TIBDOHMAux"/> + <String name="DOHMCarrierMaterial" value="tibmaterial:TIB_DOHMCarrier"/> + <String name="DOHMCableMaterial" value="tibmaterial:TIB_DOHM_cable"/> + <String name="DOHMPRIMMaterial" value="tibmaterial:TIB_DOHM_PRIM"/> + <Numeric name="DOHMPRIMLength" value="[tiblayerpar:DOHM_PRIM_L]"/> + <String name="DOHMAUXMaterial" value="tibmaterial:TIB_DOHM_AUX"/> + <Numeric name="DOHMAUXLength" value="[tiblayerpar:DOHM_AUX_L]"/> + <!-- Pillar Material --> + <String name="PillarMaterial" value="tibmaterial:TIB_Pillar"/> + <!-- FW Internal Pillar Parameters --> + <Numeric name="FWIntPillarDz" value="21.5*mm"/> + <Numeric name="FWIntPillarDPhi" value="6.*deg"/> + <Vector name="FWIntPillarPhi" type="numeric" nEntries="4"> + 56.*deg, 124.*deg, 236.*deg, 304.*deg + </Vector> + <Vector name="FWIntPillarZ" type="numeric" nEntries="4"> + 173.*mm, 173.*mm, 173.*mm, 173.*mm + </Vector> + <!-- BW Internal Pillar Parameters --> + <Numeric name="BWIntPillarDz" value="13.5*mm"/> + <Numeric name="BWIntPillarDPhi" value="6.*deg"/> + <Vector name="BWIntPillarPhi" type="numeric" nEntries="4"> + 56.*deg, 124.*deg, 236.*deg, 304.*deg + </Vector> + <Vector name="BWIntPillarZ" type="numeric" nEntries="4"> + -235.5*mm, -235.5*mm, -235.5*mm, -235.5*mm + </Vector> + <!-- FW External Pillar Parameters --> + <Numeric name="FWExtPillarDz" value="17.5*mm"/> + <Numeric name="FWExtPillarDPhi" value="7.*deg"/> + <Vector name="FWExtPillarPhi" type="numeric" nEntries="4"> + 33.*deg, 147.*deg, 213.*deg, 327.*deg + </Vector> + <Vector name="FWExtPillarZ" type="numeric" nEntries="4"> + 250.*mm, 250.*mm, 250.*mm, 250.*mm + </Vector> + <!-- BW External Pillar Parameters --> + <Numeric name="BWExtPillarDz" value="14.5*mm"/> + <Numeric name="BWExtPillarDPhi" value="7.*deg"/> + <Vector name="BWExtPillarPhi" type="numeric" nEntries="4"> + 33.*deg, 147.*deg, 213.*deg, 327.*deg + </Vector> + <Vector name="BWExtPillarZ" type="numeric" nEntries="4"> + -210.5*mm, -210.5*mm, -210.5*mm, -210.5*mm + </Vector> + </Algorithm> +</DDDefinition> diff --git a/examples/DDCMS/data/tiblayer2.xml b/examples/DDCMS/data/tiblayer2.xml new file mode 100644 index 0000000000000000000000000000000000000000..23b2e3545415b5f3239284c7a396f68c6fa8da81 --- /dev/null +++ b/examples/DDCMS/data/tiblayer2.xml @@ -0,0 +1,105 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tiblayer2.xml" eval="true"> + <Constant name="RadiusUp" value="([tiblayerpar:RadiusLo2]+ [tiblayerpar:DRUpLo])"/> + <Constant name="CylinderT" value="0.80*cm"/> + <Constant name="CylinderInR" value="415.5*mm"/> + <Constant name="MFRingInR" value="382.75*mm"/> + <Constant name="MFRingOutR" value="71.5*mm+[MFRingInR]"/> + </ConstantsSection> + <Algorithm name="track:DDTIBLayerAlgo"> + <rParent name="tiblayer2:TIBLayer2"/> + <String name="GeneralMaterial" value="materials:Air"/> + <Numeric name="DetectorTilt" value="[tiblayerpar:DetTilt]"/> + <Numeric name="LayerL" value="[tibstringpar:StringL]"/> + <Numeric name="RadiusLo" value="[tiblayerpar:RadiusLo2]"/> + <Numeric name="StringsLo" value="44"/> + <String name="StringDetLoName" value="tibstring2:TIBString2Lo1"/> + <Numeric name="RadiusUp" value="[tiblayer2:RadiusUp]"/> + <Numeric name="StringsUp" value="46"/> + <String name="StringDetUpName" value="tibstring2:TIBString2Up1"/> + <Numeric name="CylinderThickness" value="[CylinderT]"/> + <Numeric name="CylinderInnerRadius" value="[CylinderInR]"/> + <String name="CylinderMaterial" value="tibmaterial:TIB_CFCylinder"/> + <Numeric name="MFRingInnerRadius" value="[MFRingInR]"/> + <Numeric name="MFRingOuterRadius" value="[MFRingOutR]"/> + <Numeric name="MFRingThickness" value="[tiblayerpar:MFRingT]"/> + <Numeric name="MFRingDeltaz" value="[tiblayerpar:MFRingDz]"/> + <String name="MFIntRingMaterial" value="tibmaterial:TIB_MFIntRing"/> + <String name="MFExtRingMaterial" value="tibmaterial:TIB_MFExtRing"/> + <Numeric name="SupportThickness" value="[tiblayerpar:SupportT]"/> + <String name="CentRingMaterial" value="tibmaterial:TIB_CentRing"/> + <Vector name="CentRing1" type="numeric" nEntries="4"> + -15.00*mm, 4.*mm, [MFRingOutR]-[tiblayerpar:MFRingT], [MFRingOutR] + </Vector> + <Vector name="CentRing2" type="numeric" nEntries="4"> + -6.00*mm, 4.*mm, [MFRingOutR]-[tiblayerpar:MFRingT], [MFRingOutR] + </Vector> + <String name="FillerMaterial" value="trackermaterial:T_G10"/> + <Numeric name="FillerDeltaz" value="11.5*mm"/> + <String name="RibMaterial" value="trackermaterial:T_CarbonFibreStr"/> + <Vector name="RibWidth" type="numeric" nEntries="6"> + [tiblayerpar:RibWidth1], [tiblayerpar:RibWidth2], [tiblayerpar:RibWidth2], + [tiblayerpar:RibWidth1], [tiblayerpar:RibWidth2], [tiblayerpar:RibWidth2] + </Vector> + <Vector name="RibPhi" type="numeric" nEntries="6"> + 0*deg, 62.6*deg, 117.4*deg, 180.0*deg, 242.6*deg, 297.4*deg + </Vector> + <!-- DOHM Position in #string in the upper half shell; negative means place an AUX --> + <!-- NB String numbering here starts from 1 --> + <Vector name="DOHMListFW" type="numeric" nEntries="6"> + 3, -6, 10, -13, 18, -21 + </Vector> + <Vector name="DOHMListBW" type="numeric" nEntries="6"> + 3, -6, 10, -13, 18, -21 + </Vector> + <Numeric name="DOHMtoMFDist" value="[tiblayerpar:DOHMtoMF]"/> + <Numeric name="DOHMCarrierPhiOffset" value="[tiblayerpar:DOHMCarrierPhiOff]"/> + <String name="StringDOHMPrimName" value="tiblayerpar:TIBDOHMPrim"/> + <String name="StringDOHMAuxName" value="tiblayerpar:TIBDOHMAux"/> + <String name="DOHMCarrierMaterial" value="tibmaterial:TIB_DOHMCarrier"/> + <String name="DOHMCableMaterial" value="tibmaterial:TIB_DOHM_cable"/> + <String name="DOHMPRIMMaterial" value="tibmaterial:TIB_DOHM_PRIM"/> + <Numeric name="DOHMPRIMLength" value="[tiblayerpar:DOHM_PRIM_L]"/> + <String name="DOHMAUXMaterial" value="tibmaterial:TIB_DOHM_AUX"/> + <Numeric name="DOHMAUXLength" value="[tiblayerpar:DOHM_AUX_L]"/> + <!-- Pillar Material --> + <String name="PillarMaterial" value="tibmaterial:TIB_Pillar"/> + <!-- FW Internal Pillar Parameters --> + <Numeric name="FWIntPillarDz" value="14.*mm"/> + <Numeric name="FWIntPillarDPhi" value="7.5*deg"/> + <Vector name="FWIntPillarPhi" type="numeric" nEntries="4"> + 34.*deg, 146.*deg, 214.*deg, 326.*deg + </Vector> + <Vector name="FWIntPillarZ" type="numeric" nEntries="4"> + 254.*mm, 254.*mm, 254.*mm, 254.*mm + </Vector> + <!-- BW Internal Pillar Parameters --> + <Numeric name="BWIntPillarDz" value="24.*mm"/> + <Numeric name="BWIntPillarDPhi" value="7.5*deg"/> + <Vector name="BWIntPillarPhi" type="numeric" nEntries="4"> + 34.*deg, 146.*deg, 214.*deg, 326.*deg + </Vector> + <Vector name="BWIntPillarZ" type="numeric" nEntries="4"> + -181.*mm, -181.*mm, -181.*mm, -181.*mm + </Vector> + <!-- FW External Pillar Parameters --> + <Numeric name="FWExtPillarDz" value="14.5*mm"/> + <Numeric name="FWExtPillarDPhi" value="4.5*deg"/> + <Vector name="FWExtPillarPhi" type="numeric" nEntries="4"> + 52.*deg, 128.*deg, 232.*deg, 308.*deg + </Vector> + <Vector name="FWExtPillarZ" type="numeric" nEntries="4"> + 201.*mm, 201.*mm, 201.*mm, 201.*mm + </Vector> + <!-- BW External Pillar Parameters --> + <Numeric name="BWExtPillarDz" value="18.5*mm"/> + <Numeric name="BWExtPillarDPhi" value="4.5*deg"/> + <Vector name="BWExtPillarPhi" type="numeric" nEntries="4"> + 52.*deg, 128.*deg, 232.*deg, 308.*deg + </Vector> + <Vector name="BWExtPillarZ" type="numeric" nEntries="4"> + -256.5*mm, -256.5*mm, -256.5*mm, -256.5*mm + </Vector> + </Algorithm> +</DDDefinition> diff --git a/examples/DDCMS/data/tiblayer3.xml b/examples/DDCMS/data/tiblayer3.xml new file mode 100644 index 0000000000000000000000000000000000000000..4dec74dfdf6558a254f575906df85c3f88ccd7a5 --- /dev/null +++ b/examples/DDCMS/data/tiblayer3.xml @@ -0,0 +1,105 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tiblayer3.xml" eval="true"> + <Constant name="RadiusUp" value="([tiblayerpar:RadiusLo3]+ [tiblayerpar:DRUpLo])"/> + <Constant name="CylinderT" value="0.80*cm"/> + <Constant name="CylinderInR" value="495.0*mm"/> + <Constant name="MFRingInR" value="463.5*mm"/> + <Constant name="MFRingOutR" value="72.5*mm+[MFRingInR]"/> + </ConstantsSection> + <Algorithm name="track:DDTIBLayerAlgo"> + <rParent name="tiblayer3:TIBLayer3"/> + <String name="GeneralMaterial" value="materials:Air"/> + <Numeric name="DetectorTilt" value="[tiblayerpar:DetTilt]"/> + <Numeric name="LayerL" value="[tibstringpar:StringL]"/> + <Numeric name="RadiusLo" value="[tiblayerpar:RadiusLo3]"/> + <Numeric name="StringsLo" value="52"/> + <String name="StringDetLoName" value="tibstring3:TIBString3Lo1"/> + <Numeric name="RadiusUp" value="[tiblayer3:RadiusUp]"/> + <Numeric name="StringsUp" value="56"/> + <String name="StringDetUpName" value="tibstring3:TIBString3Up1"/> + <Numeric name="CylinderThickness" value="[CylinderT]"/> + <Numeric name="CylinderInnerRadius" value="[CylinderInR]"/> + <String name="CylinderMaterial" value="tibmaterial:TIB_CFCylinder"/> + <Numeric name="MFRingInnerRadius" value="[MFRingInR]"/> + <Numeric name="MFRingOuterRadius" value="[MFRingOutR]"/> + <Numeric name="MFRingThickness" value="[tiblayerpar:MFRingT]"/> + <Numeric name="MFRingDeltaz" value="[tiblayerpar:MFRingDz]"/> + <String name="MFIntRingMaterial" value="tibmaterial:TIB_MFIntRing"/> + <String name="MFExtRingMaterial" value="tibmaterial:TIB_MFExtRing"/> + <Numeric name="SupportThickness" value="[tiblayerpar:SupportT]"/> + <String name="CentRingMaterial" value="tibmaterial:TIB_CentRing"/> + <Vector name="CentRing1" type="numeric" nEntries="4"> + -0.70*mm, 8.*mm, [MFRingOutR]-[tiblayerpar:MFRingT], [MFRingOutR] + </Vector> + <Vector name="CentRing2" type="numeric" nEntries="4"> + 12.20*mm, 8.*mm, [MFRingOutR]-[tiblayerpar:MFRingT], [MFRingOutR] + </Vector> + <String name="FillerMaterial" value="trackermaterial:T_G10"/> + <Numeric name="FillerDeltaz" value="9.75*mm"/> + <String name="RibMaterial" value="trackermaterial:T_CarbonFibreStr"/> + <Vector name="RibWidth" type="numeric" nEntries="6"> + [tiblayerpar:RibWidth1], [tiblayerpar:RibWidth2], [tiblayerpar:RibWidth2], + [tiblayerpar:RibWidth1], [tiblayerpar:RibWidth2], [tiblayerpar:RibWidth2] + </Vector> + <Vector name="RibPhi" type="numeric" nEntries="6"> + 0*deg, 53.3*deg, 126.7*deg, 180.0*deg, 233.3*deg, 306.7*deg + </Vector> + <!-- DOHM Position in #string in the upper half shell; negative means place an AUX --> + <!-- NB String numbering here starts from 1 --> + <Vector name="DOHMListFW" type="numeric" nEntries="8"> + 3, -6, 10, -13, 16, -19, 24, -27 + </Vector> + <Vector name="DOHMListBW" type="numeric" nEntries="8"> + 3, -6, 9, -12, 16, -19, 23, -26 + </Vector> + <Numeric name="DOHMtoMFDist" value="[tiblayerpar:DOHMtoMF]"/> + <Numeric name="DOHMCarrierPhiOffset" value="[tiblayerpar:DOHMCarrierPhiOff]"/> + <String name="StringDOHMPrimName" value="tiblayerpar:TIBDOHMPrim"/> + <String name="StringDOHMAuxName" value="tiblayerpar:TIBDOHMAux"/> + <String name="DOHMCarrierMaterial" value="tibmaterial:TIB_DOHMCarrier"/> + <String name="DOHMCableMaterial" value="tibmaterial:TIB_DOHM_cable"/> + <String name="DOHMPRIMMaterial" value="tibmaterial:TIB_DOHM_PRIM"/> + <Numeric name="DOHMPRIMLength" value="[tiblayerpar:DOHM_PRIM_L]"/> + <String name="DOHMAUXMaterial" value="tibmaterial:TIB_DOHM_AUX"/> + <Numeric name="DOHMAUXLength" value="[tiblayerpar:DOHM_AUX_L]"/> + <!-- Pillar Material --> + <String name="PillarMaterial" value="tibmaterial:TIB_Pillar"/> + <!-- FW Internal Pillar Parameters --> + <Numeric name="FWIntPillarDz" value="23.5*mm"/> + <Numeric name="FWIntPillarDPhi" value="5.5*deg"/> + <Vector name="FWIntPillarPhi" type="numeric" nEntries="4"> + 52.*deg, 128.*deg, 232.*deg, 308.*deg + </Vector> + <Vector name="FWIntPillarZ" type="numeric" nEntries="4"> + 182.*mm, 182.*mm, 182.*mm, 182.*mm + </Vector> + <!-- BW Internal Pillar Parameters --> + <Numeric name="BWIntPillarDz" value="16.0*mm"/> + <Numeric name="BWIntPillarDPhi" value="5.5*deg"/> + <Vector name="BWIntPillarPhi" type="numeric" nEntries="4"> + 52.*deg, 128.*deg, 232.*deg, 308.*deg + </Vector> + <Vector name="BWIntPillarZ" type="numeric" nEntries="4"> + -259.*mm, -259.*mm, -259.*mm, -259.*mm + </Vector> + <!-- FW External Pillar Parameters --> + <Numeric name="FWExtPillarDz" value="1.*cm"/> + <Numeric name="FWExtPillarDPhi" value="1.*deg"/> + <Vector name="FWExtPillarPhi" type="numeric" nEntries="1"> + -1. + </Vector> + <Vector name="FWExtPillarZ" type="numeric" nEntries="1"> + -1. + </Vector> + <!-- BW External Pillar Parameters --> + <Numeric name="BWExtPillarDz" value="1.*cm"/> + <Numeric name="BWExtPillarDPhi" value="1.*deg"/> + <Vector name="BWExtPillarPhi" type="numeric" nEntries="1"> + -1. + </Vector> + <Vector name="BWExtPillarZ" type="numeric" nEntries="1"> + -1. + </Vector> + </Algorithm> +</DDDefinition> diff --git a/examples/DDCMS/data/tiblayerpar.xml b/examples/DDCMS/data/tiblayerpar.xml new file mode 100644 index 0000000000000000000000000000000000000000..ec0a3de58aad1c62827fbbc1200f4129cbe0fa70 --- /dev/null +++ b/examples/DDCMS/data/tiblayerpar.xml @@ -0,0 +1,45 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tiblayerpar.xml" eval="true"> + <Constant name="DetTilt" value="-9.00*deg"/> + <Constant name="Tolerance" value="0.25*cm"/> + <Constant name="SupportT" value="0.5*mm"/> + <Constant name="RibWidth1" value="3.50*cm"/> + <Constant name="RibWidth2" value="0.13*cm"/> + <Constant name="RadiusLo0" value="23.90*cm"/> + <Constant name="RadiusLo1" value="32.30*cm"/> + <Constant name="RadiusLo2" value="40.25*cm"/> + <Constant name="RadiusLo3" value="48.20*cm"/> + <Constant name="DRUpLo" value="3.20*cm"/> + <Constant name="MFRingT" value="8.0*mm"/> + <Constant name="MFRingDz" value="17.0*mm"/> + <Constant name="DOHMCarrierW" value="29.5*cm"/> + <Constant name="DOHMCarrierT" value="1.15*mm"/> + <Constant name="DOHMCarrierPhiOff" value="2.*deg"/> + <Constant name="DOHMtoMF" value="1.00*cm"/> + <Constant name="DOHM_PRIM_W" value="6.0*cm"/> + <Constant name="DOHM_PRIM_L" value="28.5*cm"/> + <Constant name="DOHM_PRIM_T" value="4.0*mm"/> + <Constant name="DOHM_AUX_W" value="6.0*cm"/> + <Constant name="DOHM_AUX_L" value="15.5*cm"/> + <Constant name="DOHM_AUX_T" value="4.0*mm"/> + <Constant name="Tol" value="0.1*mm"/> + </ConstantsSection> + <SolidSection label="tiblayerpar.xml"> + <Box name="TIBDOHMPrim" dx="0.5*[tiblayerpar:DOHM_PRIM_W]" dy="0.5*[tiblayerpar:DOHM_PRIM_T]" dz="0.5*[tiblayerpar:DOHM_PRIM_L]"/> + <Box name="TIBDOHMAux" dx="0.5*[tiblayerpar:DOHM_AUX_W]" dy="0.5*[tiblayerpar:DOHM_AUX_T]" dz="0.5*[tiblayerpar:DOHM_AUX_L]"/> + </SolidSection> + <LogicalPartSection label="tiblayerpar.xml"> + <LogicalPart name="TIBDOHMPrim" category="unspecified"> + <rSolid name="tiblayerpar:TIBDOHMPrim"/> + <rMaterial name="tibmaterial:TIB_DOHM"/> + </LogicalPart> + <LogicalPart name="TIBDOHMAux" category="unspecified"> + <rSolid name="tiblayerpar:TIBDOHMAux"/> + <rMaterial name="tibmaterial:TIB_AUX"/> + </LogicalPart> + </LogicalPartSection> + <RotationSection label="tiblayerpar.xml"> + <Rotation name="D180" thetaX="90*deg" phiX="0*deg" thetaY="90*deg" phiY="270*deg" thetaZ="180*deg" phiZ="0*deg"/> + </RotationSection> +</DDDefinition> diff --git a/examples/DDCMS/data/tibmaterial.xml b/examples/DDCMS/data/tibmaterial.xml new file mode 100644 index 0000000000000000000000000000000000000000..bbb90689add16e2963ac409be1220c776f3b8c63 --- /dev/null +++ b/examples/DDCMS/data/tibmaterial.xml @@ -0,0 +1,443 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <MaterialSection label="tibmaterial.xml"> + <CompositeMaterial name="TIB_DOHM" density="1.61191*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.37005"> + <rMaterial name="trackermaterial:T_FR4" /> + </MaterialFraction> + <MaterialFraction fraction="0.08736"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.00142"> + <rMaterial name="materials:Ceramic" /> + </MaterialFraction> + <MaterialFraction fraction="0.00354"> + <rMaterial name="trackermaterial:T_Barium_Titanate" /> + </MaterialFraction> + <MaterialFraction fraction="0.00254"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.00254"> + <rMaterial name="materials:Epoxy" /> + </MaterialFraction> + <MaterialFraction fraction="0.03447"> + <rMaterial name="materials:Polyethylene" /> + </MaterialFraction> + <MaterialFraction fraction="0.03446"> + <rMaterial name="materials:T_Bronze" /> + </MaterialFraction> + <MaterialFraction fraction="0.0136"> + <rMaterial name="materials:Polyethylene" /> + </MaterialFraction> + <MaterialFraction fraction="0.01693"> + <rMaterial name="materials:T_Bronze" /> + </MaterialFraction> + <MaterialFraction fraction="0.00542"> + <rMaterial name="materials:Polyethylene" /> + </MaterialFraction> + <MaterialFraction fraction="0.00325"> + <rMaterial name="materials:T_Bronze" /> + </MaterialFraction> + <MaterialFraction fraction="0.00726"> + <rMaterial name="materials:Polyethylene" /> + </MaterialFraction> + <MaterialFraction fraction="0.00453"> + <rMaterial name="materials:T_Bronze" /> + </MaterialFraction> + <MaterialFraction fraction="0.05037"> + <rMaterial name="materials:Polyethylene" /> + </MaterialFraction> + <MaterialFraction fraction="0.02052"> + <rMaterial name="materials:T_Bronze" /> + </MaterialFraction> + <MaterialFraction fraction="0.01489"> + <rMaterial name="trackermaterial:T_FR4" /> + </MaterialFraction> + <MaterialFraction fraction="0.00352"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.02114"> + <rMaterial name="materials:Polyethylene" /> + </MaterialFraction> + <MaterialFraction fraction="0.01107"> + <rMaterial name="materials:T_Bronze" /> + </MaterialFraction> + <MaterialFraction fraction="0.04416"> + <rMaterial name="tibtidcommonmaterial:TIBTID_CCUM" /> + </MaterialFraction> + <MaterialFraction fraction="0.05524"> + <rMaterial name="tibtidcommonmaterial:TIBTID_DOH" /> + </MaterialFraction> + <MaterialFraction fraction="0.02721"> + <rMaterial name="materials:Polyethylene" /> + </MaterialFraction> + <MaterialFraction fraction="0.00847"> + <rMaterial name="materials:T_Bronze" /> + </MaterialFraction> + <MaterialFraction fraction="0.00559"> + <rMaterial name="tibtidcommonmaterial:T_FiberPigtail" /> + </MaterialFraction> + <MaterialFraction fraction="0.02665"> + <rMaterial name="tibtidcommonmaterial:T_MedusaWire" /> + </MaterialFraction> + <MaterialFraction fraction="0.01497"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + <MaterialFraction fraction="0.10884"> + <rMaterial name="trackermaterial:T_CarbonFibreStr" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TIB_AUX" density="1.69155*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.34905"> + <rMaterial name="trackermaterial:T_FR4" /> + </MaterialFraction> + <MaterialFraction fraction="0.08045"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.00272"> + <rMaterial name="materials:Ceramic" /> + </MaterialFraction> + <MaterialFraction fraction="0.00517"> + <rMaterial name="trackermaterial:T_Barium_Titanate" /> + </MaterialFraction> + <MaterialFraction fraction="0.00127"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.00127"> + <rMaterial name="materials:Epoxy" /> + </MaterialFraction> + <MaterialFraction fraction="0.06357"> + <rMaterial name="materials:Polyethylene" /> + </MaterialFraction> + <MaterialFraction fraction="0.06356"> + <rMaterial name="materials:T_Bronze" /> + </MaterialFraction> + <MaterialFraction fraction="0.11042"> + <rMaterial name="materials:Polyethylene" /> + </MaterialFraction> + <MaterialFraction fraction="0.04498"> + <rMaterial name="materials:T_Bronze" /> + </MaterialFraction> + <MaterialFraction fraction="0.01786"> + <rMaterial name="trackermaterial:T_FR4" /> + </MaterialFraction> + <MaterialFraction fraction="0.00412"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.02536"> + <rMaterial name="materials:Polyethylene" /> + </MaterialFraction> + <MaterialFraction fraction="0.01328"> + <rMaterial name="materials:T_Bronze" /> + </MaterialFraction> + <MaterialFraction fraction="0.02622"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + <MaterialFraction fraction="0.1907"> + <rMaterial name="trackermaterial:T_CarbonFibreStr" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TIB_DOHMCarrier" density="0.37823*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.52099"> + <rMaterial name="trackermaterial:T_CarbonFibreStr" /> + </MaterialFraction> + <MaterialFraction fraction="0.07514"> + <rMaterial name="materials:Epoxy" /> + </MaterialFraction> + <MaterialFraction fraction="0.08092"> + <rMaterial name="materials:T_Kapton" /> + </MaterialFraction> + <MaterialFraction fraction="0.02081"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + <MaterialFraction fraction="0.26238"> + <rMaterial name="tibtidcommonmaterial:TIBTID_AmphCable" /> + </MaterialFraction> + <MaterialFraction fraction="0.03006"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + <MaterialFraction fraction="0.0097"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TIB_Flange" density="0.541944*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.71068"> + <rMaterial name="tibtidcommonmaterial:T_MedusaWire" /> + </MaterialFraction> + <MaterialFraction fraction="0.10194"> + <rMaterial name="tibtidcommonmaterial:T_Al6mmPipe" /> + </MaterialFraction> + <MaterialFraction fraction="0.08266"> + <rMaterial name="tibtidcommonmaterial:T_FiberPigtail" /> + </MaterialFraction> + <MaterialFraction fraction="0.04022"> + <rMaterial name="tibtidcommonmaterial:TIBTID_AmphCable" /> + </MaterialFraction> + <MaterialFraction fraction="0.02347"> + <rMaterial name="trackermaterial:T_CarbonFibreStr" /> + </MaterialFraction> + <MaterialFraction fraction="0.01743"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + <MaterialFraction fraction="0.0236"> + <rMaterial name="trackermaterial:T_CarbonFibreStr" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TIB_CFCylinder" density="1.74797*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.96684"> + <rMaterial name="trackermaterial:T_CarbonFibreStr" /> + </MaterialFraction> + <MaterialFraction fraction="0.01343"> + <rMaterial name="materials:T_Kapton" /> + </MaterialFraction> + <MaterialFraction fraction="0.00714"> + <rMaterial name="materials:Epoxy" /> + </MaterialFraction> + <MaterialFraction fraction="0.01259"> + <rMaterial name="trackermaterial:T_Silicone_Gel" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TIB_ModKaptonBox" density="1.43380*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.39057"> + <rMaterial name="materials:T_Kapton" /> + </MaterialFraction> + <MaterialFraction fraction="0.00612"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.00931"> + <rMaterial name="materials:Ceramic" /> + </MaterialFraction> + <MaterialFraction fraction="0.14667"> + <rMaterial name="trackermaterial:T_Barium_Titanate" /> + </MaterialFraction> + <MaterialFraction fraction="0.36669"> + <rMaterial name="trackermaterial:T_Silicone_Gel" /> + </MaterialFraction> + <MaterialFraction fraction="0.03667"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + <MaterialFraction fraction="0.04398"> + <rMaterial name="materials:Iron" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TIB_SSAOHBox" density="0.99230*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.73275"> + <rMaterial name="tibtidcommonmaterial:TIBTID_AOH" /> + </MaterialFraction> + <MaterialFraction fraction="0.05655"> + <rMaterial name="materials:Polyethylene" /> + </MaterialFraction> + <MaterialFraction fraction="0.03887"> + <rMaterial name="materials:T_Bronze" /> + </MaterialFraction> + <MaterialFraction fraction="0.06715"> + <rMaterial name="trackermaterial:T_FR4" /> + </MaterialFraction> + <MaterialFraction fraction="0.03882"> + <rMaterial name="tibtidcommonmaterial:TIBTID_HybridTails" /> + </MaterialFraction> + <MaterialFraction fraction="0.01559"> + <rMaterial name="tibtidcommonmaterial:TIBTID_HybridTails" /> + </MaterialFraction> + <MaterialFraction fraction="0.02375"> + <rMaterial name="materials:T_Kapton" /> + </MaterialFraction> + <MaterialFraction fraction="0.00532"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.0212"> + <rMaterial name="materials:Iron" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TIB_DSAOHBox" density="1.19076*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="1"> + <rMaterial name="tibmaterial:TIB_SSAOHBox" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TIB_ModHybLedge" density="5.85144*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.88449"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + <MaterialFraction fraction="0.11551"> + <rMaterial name="trackermaterial:T_CarbonFibreStr" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TIB_ModDummyLedge" density="5.51982*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.8706"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + <MaterialFraction fraction="0.1294"> + <rMaterial name="trackermaterial:T_CarbonFibreStr" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TIB_AOHLedge" density="5.57478*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="1"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TIB_CoolPipe" density="2.00806*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.50397"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + <MaterialFraction fraction="0.49603"> + <rMaterial name="trackermaterial:T_C6F14_F2_-30C" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TIB_MCable" density="2.25395*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.38359"> + <rMaterial name="materials:T_Kapton" /> + </MaterialFraction> + <MaterialFraction fraction="0.44832"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.07394"> + <rMaterial name="materials:Epoxy" /> + </MaterialFraction> + <MaterialFraction fraction="0.09415"> + <rMaterial name="tibtidcommonmaterial:T_FiberPigtail" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TIB_SSMCModConn" density="1.23046*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.03675"> + <rMaterial name="tibtidcommonmaterial:TIBTID_HybridTails" /> + </MaterialFraction> + <MaterialFraction fraction="0.01862"> + <rMaterial name="materials:T_Kapton" /> + </MaterialFraction> + <MaterialFraction fraction="0.00418"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.12499"> + <rMaterial name="trackermaterial:T_FR4" /> + </MaterialFraction> + <MaterialFraction fraction="0.01191"> + <rMaterial name="trackermaterial:T_FR4" /> + </MaterialFraction> + <MaterialFraction fraction="0.16248"> + <rMaterial name="materials:Polyethylene" /> + </MaterialFraction> + <MaterialFraction fraction="0.37555"> + <rMaterial name="materials:T_Bronze" /> + </MaterialFraction> + <MaterialFraction fraction="0.24997"> + <rMaterial name="materials:Polyethylene" /> + </MaterialFraction> + <MaterialFraction fraction="0.01556"> + <rMaterial name="materials:T_Bronze" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TIB_DSMCModConn" density="1.67201*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="1"> + <rMaterial name="tibmaterial:TIB_SSMCModConn" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TIB_MCHead" density="2.01518*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.34318"> + <rMaterial name="tibtidcommonmaterial:TIBTID_CCUM" /> + </MaterialFraction> + <MaterialFraction fraction="0.10297"> + <rMaterial name="materials:T_Kapton" /> + </MaterialFraction> + <MaterialFraction fraction="0.12034"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.01985"> + <rMaterial name="materials:Epoxy" /> + </MaterialFraction> + <MaterialFraction fraction="0.02114"> + <rMaterial name="trackermaterial:T_Barium_Titanate" /> + </MaterialFraction> + <MaterialFraction fraction="0.05639"> + <rMaterial name="materials:Polyethylene" /> + </MaterialFraction> + <MaterialFraction fraction="0.03524"> + <rMaterial name="materials:T_Bronze" /> + </MaterialFraction> + <MaterialFraction fraction="0.03524"> + <rMaterial name="materials:Polyethylene" /> + </MaterialFraction> + <MaterialFraction fraction="0.04229"> + <rMaterial name="materials:T_Bronze" /> + </MaterialFraction> + <MaterialFraction fraction="0.0141"> + <rMaterial name="materials:Polyethylene" /> + </MaterialFraction> + <MaterialFraction fraction="0.03524"> + <rMaterial name="materials:T_Bronze" /> + </MaterialFraction> + <MaterialFraction fraction="0.02819"> + <rMaterial name="materials:Polyethylene" /> + </MaterialFraction> + <MaterialFraction fraction="0.02819"> + <rMaterial name="materials:T_Bronze" /> + </MaterialFraction> + <MaterialFraction fraction="0.06344"> + <rMaterial name="materials:Polyethylene" /> + </MaterialFraction> + <MaterialFraction fraction="0.02584"> + <rMaterial name="materials:T_Bronze" /> + </MaterialFraction> + <MaterialFraction fraction="0.02834"> + <rMaterial name="tibtidcommonmaterial:T_FiberPigtail" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TIB_MFIntRing" density="1.66403*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.34788"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + <MaterialFraction fraction="0.08064"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + <MaterialFraction fraction="0.02664"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + <MaterialFraction fraction="0.36336"> + <rMaterial name="trackermaterial:T_C6F14_F2_-30C" /> + </MaterialFraction> + <MaterialFraction fraction="0.07841"> + <rMaterial name="trackermaterial:T_CarbonFibreStr" /> + </MaterialFraction> + <MaterialFraction fraction="0.01023"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + <MaterialFraction fraction="0.08908"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.00375"> + <rMaterial name="materials:Gold" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TIB_MFExtRing" density="1.68430*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.98796"> + <rMaterial name="tibmaterial:TIB_MFIntRing" /> + </MaterialFraction> + <MaterialFraction fraction="0.01204"> + <rMaterial name="tibtidcommonmaterial:TIBTID_AmphCable" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TIB_CentRing" density="3.42188*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.92603"> + <rMaterial name="trackermaterial:T_CarbonFibreStr" /> + </MaterialFraction> + <MaterialFraction fraction="0.07397"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TIB_Spacer" density="2.88571*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.87129"> + <rMaterial name="materials:Alumina" /> + </MaterialFraction> + <MaterialFraction fraction="0.12871"> + <rMaterial name="materials:Epoxy" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TIB_Pillar" density="1.7394*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.75785"> + <rMaterial name="trackermaterial:T_CarbonFibreStr" /> + </MaterialFraction> + <MaterialFraction fraction="0.24215"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + </CompositeMaterial> + </MaterialSection> +</DDDefinition> diff --git a/examples/DDCMS/data/tibmodpar.xml b/examples/DDCMS/data/tibmodpar.xml new file mode 100644 index 0000000000000000000000000000000000000000..a8a5a6093682375c36434f7da06f78c643e0ec86 --- /dev/null +++ b/examples/DDCMS/data/tibmodpar.xml @@ -0,0 +1,215 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tibmodpar.xml" eval="true"> + <Constant name="zero" value="0.0*fm"/> + <Constant name="ModuleDx" value="3.900*cm"/> + <Constant name="SSModuleDy" value="1.100*mm"/> + <Constant name="DSModuleDy" value="2.475*mm"/> + <Constant name="DSModuleSideCutDx" value="3.3*mm"/> + <Constant name="DSModuleSideCutDy" value="0.8*mm"/> + <Constant name="DSModuleSideCutX" value="36.*mm"/> + <Constant name="DSModuleSideCutY" value="1.775*mm"/> + <Constant name="SideCutExtraZ" value="0.1*mm"/> + <Constant name="ModuleDz" value="81.65*mm"/> + <Constant name="HybridDx" value="23.50*mm"/> + <Constant name="HybridDy" value="0.565*mm"/> + <Constant name="HybridDz" value="12.65*mm"/> + <Constant name="HybridZ" value="[ModuleDz]-[HybridDz]"/> + <Constant name="PARPhiDx" value="32.00*mm"/> + <Constant name="PADy" value="0.565*mm"/> + <Constant name="PARPhiDz" value="4.500*mm"/> + <Constant name="PAZ" value="[ModuleDz]-2*[HybridDz]-[PARPhiDz]"/> + <Constant name="CFFrameHybDz" value="12.40*mm"/> + <Constant name="CFFrameHybZ" value="-[tibmodpar:ModuleDz]+[tibmodpar:CFFrameHybDz]"/> + <Constant name="CFFrameHybRPhiDx" value="30.00*mm"/> + <Constant name="CFFrameDy" value="0.250*mm"/> + <Constant name="CFFrameDz" value="[ModuleDz]-[CFFrameHybDz]"/> + <Constant name="CFFrameZ" value="[ModuleDz]-[CFFrameDz]"/> + <Constant name="CFFrameHoleDx" value="30.00*mm"/> + <Constant name="CFFrameHoleDz" value="59.50*mm"/> + <Constant name="CFFrameHoleOffset" value="1.000*mm"/> + <Constant name="CFFrameHoleZ" value="[tibmodpar:WaferZ]-[tibmodpar:CFFrameHybDz]"/> + <Constant name="KaptonBoxDy" value="0.150*mm"/> + <Constant name="KaptonBoxDz" value="[ModuleDz]-[HybridDz]-[PARPhiDz]"/> + <Constant name="KaptonBoxZ" value="[tibmodpar:HybridDz]+[tibmodpar:PARPhiDz]"/> + <Constant name="KaptonBoxHoleDx" value="27.50*mm"/> + <Constant name="KaptonBoxHoleDz" value="57.50*mm"/> + <Constant name="KaptonBoxHoleZ" value="[tibmodpar:KaptonBoxHoleDz]-[tibmodpar:KaptonBoxDz]"/> + <Constant name="StereoAngle" value="5.729578*deg"/> + <Constant name="TrapSterTheta" value="atan(0.5*tan([tibmodpar:StereoAngle]))"/> + <!-- Trapezoid parameter --> + <Constant name="HybLedgeDz" value="3.60*mm"/> + <Constant name="HybLedgeSideDx" value="3.0*mm"/> + <Constant name="HybLedgeSideDz" value="12.0*mm"/> + <Constant name="DummyLedgeDz" value="5.0*mm"/> + <Constant name="LedgeBoxDx" value="[tibstringpar:CoolBoxDx]"/> + <Constant name="LedgeBoxDy" value="[tibstringpar:CoolBoxDy]-[tibstringpar:CoolPipeDy]"/> + <Constant name="SSLedgeBoxY" value="-[tibmodpar:SSModuleDy]-[tibmodpar:LedgeBoxDy]"/> + <Constant name="DSLedgeBoxY" value="-[tibmodpar:DSModuleDy]-[tibmodpar:LedgeBoxDy]"/> + <Constant name="AOHLedgeDz" value="1.5*mm"/> + <Constant name="AOHLedgeSideDx" value="1.5*mm"/> + <Constant name="AOHLedgeSideDz" value="15.0*mm"/> + <Constant name="AOHModOffset" value="6.0*mm"/> + <Constant name="AOHLedgeModOffset" value="[tibmodpar:AOHModOffset]+[tibmodpar:AOHLedgeSideDz]"/> + <Constant name="SSAOHBoxDx" value="18.0*mm"/> + <Constant name="DSAOHBoxDx" value="[tibstringpar:CoolBoxDx]"/> + <Constant name="AOHBoxDy" value="[tibmodpar:SSModuleDy]"/> + <Constant name="AOHToMod" value="6.0*mm"/> + <Constant name="AOHBoxDz" value="[tibmodpar:AOHLedgeSideDz]+0.5*[tibmodpar:AOHToMod]"/> + <Constant name="SSAOHBoxY" value="-[tibmodpar:SSModuleDy]+[tibmodpar:AOHBoxDy]"/> + <Constant name="SSAOHBoxX" value="[tibmodpar:LedgeBoxDx]-[tibmodpar:SSAOHBoxDx]"/> + <Constant name="DSAOHBoxY" value="-[tibmodpar:DSModuleDy]+[tibmodpar:AOHBoxDy]"/> + <Constant name="ModCool1Dx" value="2.350*cm"/> + <Constant name="ModCoolDy" value="0.015*cm"/> + <Constant name="ModCool1Dz" value="0.350*cm"/> + <Constant name="ModCool1X" value="0.000*cm"/> + <Constant name="ModCool1Z" value="7.800*cm"/> + <Constant name="ModCool2Dx" value="0.300*cm"/> + <Constant name="ModCool2Dz" value="1.250*cm"/> + <Constant name="ModCool2X" value="2.650*cm"/> + <Constant name="ModCool2Z" value="6.900*cm"/> + <Constant name="SSWaferDx" value="31.6440*mm"/> + <Constant name="DSWaferDx" value="31.6640*mm"/> + <Constant name="WaferDy" value="59.4805*mm"/> + <Constant name="WaferDz" value="0.160*mm"/> + <Constant name="ActiveDz" value="[WaferDz]-[tracker:BackPlaneDz]"/> + <Constant name="SSActiveDx" value="30.720*mm"/> + <!-- Actual ActiveDx=30.750mm; 30.720=pitch(=120micron)*512 --> + <Constant name="DSActiveDx" value="30.720*mm"/> + <!-- Actual ActiveDx=30.770mm; 30.720=pitch(=80micron)*768 --> + <Constant name="ActiveDy" value="58.4425*mm"/> + <Constant name="WaferZ" value="12.33*mm"/> + <Constant name="Tol" value="0.01*mm"/> + </ConstantsSection> + <SolidSection label="tibmodpar.xml"> + <Box name="TIBSSModule" dx="[tibmodpar:ModuleDx]" dy="[tibmodpar:SSModuleDy]" dz="[tibmodpar:ModuleDz]"/> + <Box name="TIBDSModuleMainPart" dx="[tibmodpar:ModuleDx]" dy="[tibmodpar:DSModuleDy]" dz="[tibmodpar:ModuleDz]"/> + <Box name="TIBDSModuleSideCutL" dx="[tibmodpar:DSModuleSideCutDx]" dy="[tibmodpar:DSModuleSideCutDy]" dz="[tibmodpar:ModuleDz]+[tibmodpar:SideCutExtraZ]"/> + <Box name="TIBDSModuleSideCutR" dx="[tibmodpar:DSModuleSideCutDx]" dy="[tibmodpar:DSModuleSideCutDy]" dz="[tibmodpar:ModuleDz]+[tibmodpar:SideCutExtraZ]"/> + <SubtractionSolid name="TIBDSModuleLeftCutted"> + <rSolid name="TIBDSModuleMainPart"/> + <rSolid name="TIBDSModuleSideCutL"/> + <Translation x="-[DSModuleSideCutX]" y="[DSModuleSideCutY]" z="0."/> + </SubtractionSolid> + <SubtractionSolid name="TIBDSModule"> + <rSolid name="TIBDSModuleLeftCutted"/> + <rSolid name="TIBDSModuleSideCutR"/> + <Translation x="[DSModuleSideCutX]" y="[DSModuleSideCutY]" z="0."/> + </SubtractionSolid> + <Box name="TIBHybrid" dx="[tibmodpar:HybridDx]" dy="[tibmodpar:HybridDy]" dz="[tibmodpar:HybridDz]"/> + <Box name="TIBPA1" dx="[PARPhiDx]" dy="[PADy]" dz="[PARPhiDz]"/> + <Box name="TIBSSWafer" dx="[tibmodpar:SSWaferDx]" dy="[tibmodpar:WaferDy]" dz="[tibmodpar:WaferDz]"/> + <Box name="TIBSSActive" dx="[tibmodpar:SSActiveDx]" dy="[tibmodpar:ActiveDy]" dz="[tibmodpar:ActiveDz]"/> + <Box name="TIBDSWafer" dx="[tibmodpar:DSWaferDx]" dy="[tibmodpar:WaferDy]" dz="[tibmodpar:WaferDz]"/> + <Box name="TIBDSActive" dx="[tibmodpar:DSActiveDx]" dy="[tibmodpar:ActiveDy]" dz="[tibmodpar:ActiveDz]"/> + <Box name="TIBModCFFrame" dx="[tibmodpar:ModuleDx]" dy="[tibmodpar:CFFrameDy]" dz="[tibmodpar:CFFrameDz]"/> + <Box name="TIBModCFFrameHole" dx="[tibmodpar:CFFrameHoleDx]" dy="[tibmodpar:CFFrameDy]" dz="[tibmodpar:CFFrameHoleDz]"/> + <Box name="TIBModCFFrameHybRPhi" dx="[tibmodpar:CFFrameHybRPhiDx]" dy="[tibmodpar:CFFrameDy]" dz="[tibmodpar:CFFrameHybDz]"/> + <Box name="TIBModKaptonBoxRPhi" dx="[tibmodpar:ModuleDx]" dy="[tibmodpar:KaptonBoxDy]" dz="[tibmodpar:KaptonBoxDz]"/> + <Box name="TIBModKaptonBoxHole" dx="[tibmodpar:KaptonBoxHoleDx]" dy="[tibmodpar:KaptonBoxDy]" dz="[tibmodpar:KaptonBoxHoleDz]"/> + <!-- Module Ledges definitions --> + <Box name="TIBModLedgeBox" dx="[tibmodpar:LedgeBoxDx]" dy="[tibmodpar:LedgeBoxDy]" dz="[tibmodpar:ModuleDz]"/> + <Box name="TIBModHybLedgeNoCut" dx="[tibmodpar:LedgeBoxDx]" dy="[tibmodpar:LedgeBoxDy]" dz="[tibmodpar:HybLedgeSideDz]"/> + <Box name="TIBModHybLedgeCut" dx="[tibmodpar:LedgeBoxDx]-2*[tibmodpar:HybLedgeSideDx]" dy="[tibmodpar:LedgeBoxDy]" dz="[tibmodpar:HybLedgeSideDz]-[tibmodpar:HybLedgeDz]"/> + <SubtractionSolid name="TIBModHybLedge"> + <rSolid name="TIBModHybLedgeNoCut"/> + <rSolid name="TIBModHybLedgeCut"/> + <Translation x="[zero]" y="[zero]" z="[tibmodpar:HybLedgeDz]"/> + </SubtractionSolid> + <Box name="TIBModDummyLedge" dx="[tibmodpar:LedgeBoxDx]" dy="[tibmodpar:LedgeBoxDy]" dz="[tibmodpar:DummyLedgeDz]"/> + <!-- AOH Ledges definitions --> + <Box name="TIBAOHLedgeNoCut" dx="[tibmodpar:LedgeBoxDx]" dy="[tibmodpar:LedgeBoxDy]" dz="[tibmodpar:AOHLedgeSideDz]"/> + <Box name="TIBAOHLedgeCut" dx="[tibmodpar:LedgeBoxDx]-2*[tibmodpar:AOHLedgeSideDx]" dy="[tibmodpar:LedgeBoxDy]" dz="[tibmodpar:AOHLedgeSideDz]-[tibmodpar:AOHLedgeDz]"/> + <SubtractionSolid name="TIBAOHLedge"> + <rSolid name="TIBAOHLedgeNoCut"/> + <rSolid name="TIBAOHLedgeCut"/> + <Translation x="[zero]" y="[zero]" z="[tibmodpar:AOHLedgeDz]"/> + </SubtractionSolid> + <!-- AOH Boxes definitions --> + <Box name="TIBSSAOHBox" dx="[tibmodpar:SSAOHBoxDx]" dy="[tibmodpar:AOHBoxDy]" dz="[tibmodpar:AOHBoxDz]"/> + <Box name="TIBDSAOHBox" dx="[tibmodpar:DSAOHBoxDx]" dy="[tibmodpar:AOHBoxDy]" dz="[tibmodpar:AOHBoxDz]"/> + </SolidSection> + <LogicalPartSection label="tibmodpar.xml"> + <LogicalPart name="TIBModCFFrameRPhi" category="unspecified"> + <rSolid name="tibmodpar:TIBModCFFrame"/> + <rMaterial name="trackermaterial:T_CarbonFibreStr"/> + </LogicalPart> + <LogicalPart name="TIBModCFFrameHybRPhi" category="unspecified"> + <rSolid name="tibmodpar:TIBModCFFrameHybRPhi"/> + <rMaterial name="trackermaterial:T_CarbonFibreStr"/> + </LogicalPart> + <LogicalPart name="TIBModCFFrameHole" category="unspecified"> + <rSolid name="tibmodpar:TIBModCFFrameHole"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TIBModKaptonBoxRPhi" category="unspecified"> + <rSolid name="tibmodpar:TIBModKaptonBoxRPhi"/> + <rMaterial name="tibmaterial:TIB_ModKaptonBox"/> + </LogicalPart> + <LogicalPart name="TIBModKaptonBoxHole" category="unspecified"> + <rSolid name="tibmodpar:TIBModKaptonBoxHole"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TIBPA1" category="unspecified"> + <rSolid name="TIBPA1"/> + <rMaterial name="tibtidcommonmaterial:TIBTID_PA"/> + </LogicalPart> + <LogicalPart name="TIBModLedgeBox" category="unspecified"> + <rSolid name="TIBModLedgeBox"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TIBModHybLedge" category="unspecified"> + <rSolid name="TIBModHybLedge"/> + <rMaterial name="tibmaterial:TIB_ModHybLedge"/> + </LogicalPart> + <LogicalPart name="TIBModDummyLedge" category="unspecified"> + <rSolid name="TIBModDummyLedge"/> + <rMaterial name="tibmaterial:TIB_ModDummyLedge"/> + </LogicalPart> + <LogicalPart name="TIBAOHLedge" category="unspecified"> + <rSolid name="TIBAOHLedge"/> + <rMaterial name="tibmaterial:TIB_AOHLedge"/> + </LogicalPart> + <LogicalPart name="TIBSSAOHBox" category="unspecified"> + <rSolid name="TIBSSAOHBox"/> + <rMaterial name="tibmaterial:TIB_SSAOHBox"/> + </LogicalPart> + <LogicalPart name="TIBDSAOHBox" category="unspecified"> + <rSolid name="TIBDSAOHBox"/> + <rMaterial name="tibmaterial:TIB_DSAOHBox"/> + </LogicalPart> + </LogicalPartSection> + <RotationSection label="tibmodpar.xml"> + <Rotation name="Rphi" thetaX="90*deg" phiX="180*deg" thetaY="0*deg" phiY="90*deg" thetaZ="90*deg" phiZ="90*deg"/> + <Rotation name="SterB" thetaX="95.7296*deg" phiX="0*deg" thetaY="5.7296*deg" phiY="0*deg" thetaZ="90*deg" phiZ="270*deg"/> + <Rotation name="SterA" thetaX="84.2704*deg" phiX="0*deg" thetaY="-5.7296*deg" phiY="0*deg" thetaZ="90*deg" phiZ="270*deg"/> + <Rotation name="CFFrameSterB" thetaX="90.*deg" phiX="180.*deg" thetaY="90.*deg" phiY="270.*deg" thetaZ="0.*deg" phiZ="0.*deg"/> + <Rotation name="CFFrameHoleSterA" thetaX="90.*deg-[StereoAngle]" phiX="0.*deg" thetaY="90.*deg" phiY="90.*deg" thetaZ="[StereoAngle]" phiZ="180.*deg"/> + <Rotation name="KaptonBoxHoleSterB" thetaX="84.2704*deg" phiX="0*deg" thetaY="-5.7296*deg" phiY="0*deg" thetaZ="90*deg" phiZ="270*deg"/> + <Rotation name="KaptonBoxHoleSterA" thetaX="[StereoAngle]" phiX="180.*deg" thetaY="90.*deg" phiY="90.*deg" thetaZ="90.*deg+[StereoAngle]" phiZ="180.*deg"/> + <Rotation name="PAB" thetaX="180*deg" phiX="0*deg" thetaY="90*deg" phiY="270*deg" thetaZ="90*deg" phiZ="180*deg"/> + <Rotation name="PAA" thetaX="180*deg" phiX="0*deg" thetaY="90*deg" phiY="90*deg" thetaZ="90*deg" phiZ="0*deg"/> + </RotationSection> + <PosPartSection label="tibmodpar.xml"> + <PosPart copyNumber="1"> + <rParent name="tibmodpar:TIBModCFFrameRPhi"/> + <rChild name="tibmodpar:TIBModCFFrameHole"/> + <Translation x="[zero]" y="[zero]" z="[tibmodpar:CFFrameHoleZ]-[tibmodpar:CFFrameHoleOffset]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibmodpar:TIBModKaptonBoxRPhi"/> + <rChild name="tibmodpar:TIBModKaptonBoxHole"/> + <Translation x="[zero]" y="[zero]" z="[tibmodpar:KaptonBoxHoleZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibmodpar:TIBModLedgeBox"/> + <rChild name="tibmodpar:TIBModHybLedge"/> + <Translation x="[zero]" y="[zero]" z="-[tibmodpar:ModuleDz]+[tibmodpar:HybLedgeSideDz]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibmodpar:TIBModLedgeBox"/> + <rChild name="tibmodpar:TIBModDummyLedge"/> + <Translation x="[zero]" y="[zero]" z="[tibmodpar:ModuleDz]-[tibmodpar:DummyLedgeDz]"/> + </PosPart> + </PosPartSection> +</DDDefinition> diff --git a/examples/DDCMS/data/tibmodule0.xml b/examples/DDCMS/data/tibmodule0.xml new file mode 100644 index 0000000000000000000000000000000000000000..c0c90dd6d406b3a29899e2f3032d1b7e90f7c011 --- /dev/null +++ b/examples/DDCMS/data/tibmodule0.xml @@ -0,0 +1,145 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tibmodule0.xml" eval="true"> + <Constant name="zero" value="0.0*fm"/> + <Constant name="ShiftX" value="5.948*mm"/> + <Constant name="SpacerDy" value="0.175*mm"/> + <Constant name="SpacerY" value="[zero]"/> + <Constant name="CFFrameRPhiY" value="[SpacerY]+[SpacerDy]+[tibmodpar:CFFrameDy]"/> + <Constant name="CFFrameSterY" value="[SpacerY]-[SpacerDy]-[tibmodpar:CFFrameDy]"/> + <Constant name="CFFrameHybSterDx" value="[tibmodpar:HybridDx]"/> + <Constant name="KaptonBoxRPhiY" value="[CFFrameRPhiY]+[tibmodpar:CFFrameDy]+[tibmodpar:KaptonBoxDy]"/> + <Constant name="KaptonBoxSterOffset" value="1.*mm"/> + <Constant name="KaptonBoxSterDz" value="([tibmodpar:WaferDy]+0.5*[tibmodule0:KaptonBoxSterOffset])/cos([tibmodpar:StereoAngle])"/> + <Constant name="KaptonBoxSterY" value="[CFFrameSterY]-[tibmodpar:CFFrameDy]-[tibmodpar:KaptonBoxDy]"/> + <Constant name="KaptonBoxHoleSterX" value="cos([tibmodpar:StereoAngle])*(cos([tibmodpar:StereoAngle])*([tibmodule0:KaptonBoxSterDz])-[tibmodpar:KaptonBoxHoleDz])"/> + <Constant name="KaptonBoxHoleSterZ" value="sin([tibmodpar:StereoAngle])*(cos([tibmodpar:StereoAngle])*([tibmodule0:KaptonBoxSterDz])-[tibmodpar:KaptonBoxHoleDz])"/> + <Constant name="HybridRPhiY" value="[CFFrameRPhiY]+[tibmodpar:CFFrameDy]+[tibmodpar:HybridDy]"/> + <Constant name="HybridSterY" value="[CFFrameSterY]-[tibmodpar:CFFrameDy]-[tibmodpar:HybridDy]"/> + <Constant name="PASterDx" value="0.5*63.680*mm"/> + <Constant name="PASterDz1" value="0.5*6.103*mm"/> + <Constant name="PASterDz2" value="[tibmodule0:PASterDz1]+[tibmodule0:PASterDx]*tan([tibmodpar:StereoAngle])"/> + <Constant name="PARPhiY" value="[tibmodule0:SpacerDy]+2*[tibmodpar:CFFrameDy]+[tibmodpar:PADy]"/> + <Constant name="PASterY" value="-[tibmodule0:SpacerDy]-2*[tibmodpar:CFFrameDy]-[tibmodpar:PADy]"/> + <Constant name="PASterX" value="5.927*mm"/> + <Constant name="PASterZ" value="[tibmodpar:ModuleDz]-2*[tibmodpar:HybridDz]-0.5*([tibmodule0:PASterDz1]+[tibmodule0:PASterDz2])"/> + <Constant name="LedgeSterDx" value="0.5*59.993*mm"/> + <Constant name="LedgeSterDy" value="0.5*([tibmodpar:DSModuleDy]-[tibmodule0:SpacerDy]-2.*[tibmodpar:CFFrameDy])"/> + <Constant name="LedgeSterDz1" value="[tibmodule0:LedgeSterDz2]+[tibmodule0:LedgeSterDx]*tan([tibmodpar:StereoAngle])"/> + <Constant name="LedgeSterDz2" value="1.600*mm"/> + <!-- Should be 2.200*mm, used 1.6*mm for weigth matching --> + <Constant name="LedgeSterY" value="-[tibmodpar:DSModuleDy]+[tibmodule0:LedgeSterDy]"/> + <Constant name="LedgeSterZ" value="[tibmodpar:ModuleDz]-0.5*[tibmodule0:LedgeSterDz1]-0.5*[tibmodule0:LedgeSterDz2]"/> + <Constant name="LedgeSideDx" value="0.5*([tibmodule0:SpacerHybDx]-[tibmodpar:HybridDx])"/> + <Constant name="LedgeSideDy" value="0.5*([tibmodpar:DSModuleDy]-[tibmodule0:SpacerDy])"/> + <Constant name="LedgeSideDz" value="12.00*mm"/> + <Constant name="LedgeSideX" value="[tibmodule0:SpacerHybDx]-[tibmodule0:LedgeSideDx]"/> + <Constant name="LedgeSideY" value="-[tibmodpar:DSModuleDy]+[tibmodule0:LedgeSideDy]"/> + <Constant name="LedgeSideZ" value="-[tibmodpar:ModuleDz]+[tibmodule0:LedgeSideDz]"/> + <Constant name="SpacerHybDx" value="[tibmodpar:CFFrameHybRPhiDx]"/> + <Constant name="SpacerHybDz" value="14.4*mm"/> + <Constant name="SpacerSideDx" value="4.00*mm"/> + <Constant name="SpacerSideDz" value="12.1*mm"/> + <Constant name="SpacerSideX" value="[SpacerHybDx]+[SpacerSideDx]"/> + <Constant name="SpacerSideZ" value="[tibmodpar:ModuleDz]-[SpacerSideDz]-25.8*mm"/> + <Constant name="SpacerLedgeDx" value="24.0*mm"/> + <Constant name="SpacerLedgeDz" value="4.00*mm"/> + <Constant name="SpacerLedgeZ" value="[tibmodpar:ModuleDz]-[SpacerLedgeDz]"/> + <Constant name="SpacerHybZ" value="[tibmodpar:ModuleDz]-[SpacerHybDz]"/> + <Constant name="ModCoolY" value="-0.1945*cm"/> + <Constant name="WaferRPhiY" value="1.135*mm"/> + <Constant name="WaferSterY" value="-1.135*mm"/> + </ConstantsSection> + <SolidSection label="tibmodule0.xml"> + <Box name="TIBModCFFrameHybSter" dx="[tibmodule0:CFFrameHybSterDx]" dy="[tibmodpar:CFFrameDy]" dz="[tibmodpar:CFFrameHybDz]"/> + <Trapezoid name="TIBModKaptonBoxSter" dz="[tibmodpar:ModuleDx]" alp1="0*deg" bl1="[tibmodule0:KaptonBoxSterDz]" tl1="[tibmodule0:KaptonBoxSterDz]" h1="[tibmodpar:KaptonBoxDy]" alp2="0*deg" bl2="[tibmodule0:KaptonBoxSterDz]" tl2="[tibmodule0:KaptonBoxSterDz]" h2="[tibmodpar:KaptonBoxDy]" phi="0*deg" theta="-[tibmodpar:StereoAngle]"/> + <Trapezoid name="TIBPA2" dz="[tibmodule0:PASterDx]" alp1="0*deg" bl1="[tibmodule0:PASterDz1]" tl1="[tibmodule0:PASterDz1]" h1="[tibmodpar:PADy]" alp2="0*deg" bl2="[tibmodule0:PASterDz2]" tl2="[tibmodule0:PASterDz2]" h2="[tibmodpar:PADy]" phi="0*deg" theta="-[tibmodpar:TrapSterTheta]"/> + <Trapezoid name="TIBLedgeSter" dz="[LedgeSterDx]" alp1="0*deg" bl1="[LedgeSterDz1]" tl1="[LedgeSterDz1]" h1="[LedgeSterDy]" alp2="0*deg" bl2="[LedgeSterDz2]" tl2="[LedgeSterDz2]" h2="[LedgeSterDy]" phi="0*deg" theta="-[tibmodpar:TrapSterTheta]"/> + <Box name="TIBLedgeSide" dx="[tibmodule0:LedgeSideDx]" dy="[tibmodule0:LedgeSideDy]" dz="[tibmodule0:LedgeSideDz]"/> + <Box name="TIBSpacerLedge" dx="[SpacerLedgeDx]" dy="[SpacerDy]" dz="[SpacerLedgeDz]"/> + <Box name="TIBSpacerHyb" dx="[SpacerHybDx]" dy="[SpacerDy]" dz="[SpacerHybDz]"/> + <Box name="TIBSpacerSide" dx="[SpacerSideDx]" dy="[SpacerDy]" dz="[SpacerSideDz]"/> + </SolidSection> + <LogicalPartSection label="tibmodule0.xml"> + <LogicalPart name="TIBModCFFrameSter" category="unspecified"> + <rSolid name="tibmodpar:TIBModCFFrame"/> + <rMaterial name="trackermaterial:T_CarbonFibreStr"/> + </LogicalPart> + <LogicalPart name="TIBModCFFrameHybSter" category="unspecified"> + <rSolid name="tibmodule0:TIBModCFFrameHybSter"/> + <rMaterial name="trackermaterial:T_CarbonFibreStr"/> + </LogicalPart> + <LogicalPart name="TIBHybrid0" category="unspecified"> + <rSolid name="tibmodpar:TIBHybrid"/> + <rMaterial name="tibtidcommonmaterial:TIBTID_Hybrid"/> + </LogicalPart> + <LogicalPart name="TIBModKaptonBoxSter" category="unspecified"> + <rSolid name="tibmodule0:TIBModKaptonBoxSter"/> + <rMaterial name="tibmaterial:TIB_ModKaptonBox"/> + </LogicalPart> + <LogicalPart name="TIBPA2" category="unspecified"> + <rSolid name="tibmodule0:TIBPA2"/> + <rMaterial name="tibtidcommonmaterial:TIBTID_PA"/> + </LogicalPart> + <LogicalPart name="TIBLedgeSter" category="unspecified"> + <rSolid name="tibmodule0:TIBLedgeSter"/> + <rMaterial name="trackermaterial:T_Aluminium"/> + </LogicalPart> + <LogicalPart name="TIBSpacerLedge" category="unspecified"> + <rSolid name="tibmodule0:TIBSpacerLedge"/> + <rMaterial name="tibmaterial:TIB_Spacer"/> + </LogicalPart> + <LogicalPart name="TIBLedgeSide" category="unspecified"> + <rSolid name="tibmodule0:TIBLedgeSide"/> + <rMaterial name="trackermaterial:T_Aluminium"/> + </LogicalPart> + <LogicalPart name="TIBSpacerHyb" category="unspecified"> + <rSolid name="tibmodule0:TIBSpacerHyb"/> + <rMaterial name="tibmaterial:TIB_Spacer"/> + </LogicalPart> + <LogicalPart name="TIBSpacerSide" category="unspecified"> + <rSolid name="tibmodule0:TIBSpacerSide"/> + <rMaterial name="tibmaterial:TIB_Spacer"/> + </LogicalPart> + <LogicalPart name="TIBWaferRphi0" category="unspecified"> + <rSolid name="tibmodpar:TIBDSWafer"/> + <rMaterial name="materials:Silicon"/> + </LogicalPart> + <LogicalPart name="TIBActiveRphi0" category="unspecified"> + <rSolid name="tibmodpar:TIBDSActive"/> + <rMaterial name="materials:Silicon"/> + </LogicalPart> + <LogicalPart name="TIBWaferSter0" category="unspecified"> + <rSolid name="tibmodpar:TIBDSWafer"/> + <rMaterial name="materials:Silicon"/> + </LogicalPart> + <LogicalPart name="TIBActiveSter0" category="unspecified"> + <rSolid name="tibmodpar:TIBDSActive"/> + <rMaterial name="materials:Silicon"/> + </LogicalPart> + </LogicalPartSection> + <PosPartSection label="tibmodule0.xml"> + <PosPart copyNumber="1"> + <rParent name="tibmodule0:TIBWaferRphi0"/> + <rChild name="tibmodule0:TIBActiveRphi0"/> + <Translation x="[zero]" y="[zero]" z="[tracker:BackPlaneDz]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibmodule0:TIBWaferSter0"/> + <rChild name="tibmodule0:TIBActiveSter0"/> + <Translation x="[zero]" y="[zero]" z="[tracker:BackPlaneDz]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibmodule0:TIBModKaptonBoxSter"/> + <rChild name="tibmodpar:TIBModKaptonBoxHole"/> + <Translation x="[KaptonBoxHoleSterX]" y="[zero]" z="[KaptonBoxHoleSterZ]"/> + <rRotation name="tibmodpar:KaptonBoxHoleSterA"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibmodule0:TIBModCFFrameSter"/> + <rChild name="tibmodpar:TIBModCFFrameHole"/> + <rRotation name="tibmodpar:CFFrameHoleSterA"/> + <Translation x="sin([tibmodpar:StereoAngle])*[tibmodpar:CFFrameHoleOffset]" y="[zero]" z="[tibmodpar:CFFrameHoleZ]-cos([tibmodpar:StereoAngle])*[tibmodpar:CFFrameHoleOffset]"/> + </PosPart> + </PosPartSection> +</DDDefinition> diff --git a/examples/DDCMS/data/tibmodule0a.xml b/examples/DDCMS/data/tibmodule0a.xml new file mode 100644 index 0000000000000000000000000000000000000000..14ddc7efc90506af2ad360c6f37e5beb03a34bad --- /dev/null +++ b/examples/DDCMS/data/tibmodule0a.xml @@ -0,0 +1,114 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tibmodule0a.xml" eval="true"> + <Constant name="zero" value="0.0*fm"/> + </ConstantsSection> + <LogicalPartSection label="tibmodule0a.xml"> + <LogicalPart name="TIBModule0A" category="unspecified"> + <rSolid name="tibmodpar:TIBDSModule"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + </LogicalPartSection> + <PosPartSection label="tibmodule0a.xml"> + <PosPart copyNumber="1"> + <rParent name="tibmodule0a:TIBModule0A"/> + <rChild name="tibmodule0:TIBWaferRphi0"/> + <rRotation name="tibmodpar:Rphi"/> + <Translation x="[zero]" y="[tibmodule0:WaferRPhiY]" z="[tibmodpar:WaferZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibmodule0a:TIBModule0A"/> + <rChild name="tibmodule0:TIBWaferSter0"/> + <rRotation name="tibmodpar:SterA"/> + <Translation x="[zero]" y="[tibmodule0:WaferSterY]" z="[tibmodpar:WaferZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibmodule0a:TIBModule0A"/> + <rChild name="tibmodule0:TIBHybrid0"/> + <Translation x="[zero]" y="[tibmodule0:HybridRPhiY]" z="-[tibmodpar:HybridZ]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tibmodule0a:TIBModule0A"/> + <rChild name="tibmodule0:TIBHybrid0"/> + <Translation x="[zero]" y="[tibmodule0:HybridSterY]" z="-[tibmodpar:HybridZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibmodule0a:TIBModule0A"/> + <rChild name="tibmodpar:TIBPA1"/> + <Translation x="[zero]" y="[tibmodule0:PARPhiY]" z="-[tibmodpar:PAZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibmodule0a:TIBModule0A"/> + <rChild name="tibmodule0:TIBPA2"/> + <rRotation name="tibmodpar:PAA"/> + <Translation x="[tibmodule0:PASterX]" y="[tibmodule0:PASterY]" z="-[tibmodule0:PASterZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibmodule0a:TIBModule0A"/> + <rChild name="tibmodule0:TIBLedgeSter"/> + <rRotation name="tibmodpar:PAA"/> + <Translation x="[zero]" y="[tibmodule0:LedgeSterY]" z="[tibmodule0:LedgeSterZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibmodule0a:TIBModule0A"/> + <rChild name="tibmodule0:TIBLedgeSide"/> + <Translation x="[tibmodule0:LedgeSideX]" y="[tibmodule0:LedgeSideY]" z="[tibmodule0:LedgeSideZ]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tibmodule0a:TIBModule0A"/> + <rChild name="tibmodule0:TIBLedgeSide"/> + <Translation x="-[tibmodule0:LedgeSideX]" y="[tibmodule0:LedgeSideY]" z="[tibmodule0:LedgeSideZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibmodule0a:TIBModule0A"/> + <rChild name="tibmodule0:TIBSpacerLedge"/> + <Translation x="[zero]" y="[tibmodule0:SpacerY]" z="[tibmodule0:SpacerLedgeZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibmodule0a:TIBModule0A"/> + <rChild name="tibmodule0:TIBSpacerHyb"/> + <Translation x="[zero]" y="[tibmodule0:SpacerY]" z="-[tibmodule0:SpacerHybZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibmodule0a:TIBModule0A"/> + <rChild name="tibmodule0:TIBSpacerSide"/> + <Translation x="[tibmodule0:SpacerSideX]" y="[tibmodule0:SpacerY]" z="-[tibmodule0:SpacerSideZ]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tibmodule0a:TIBModule0A"/> + <rChild name="tibmodule0:TIBSpacerSide"/> + <Translation x="-[tibmodule0:SpacerSideX]" y="[tibmodule0:SpacerY]" z="-[tibmodule0:SpacerSideZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibmodule0a:TIBModule0A"/> + <rChild name="tibmodpar:TIBModCFFrameRPhi"/> + <Translation x="[zero]" y="[tibmodule0:CFFrameRPhiY]" z="[tibmodpar:CFFrameZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibmodule0a:TIBModule0A"/> + <rChild name="tibmodpar:TIBModCFFrameHybRPhi"/> + <Translation x="[zero]" y="[tibmodule0:CFFrameRPhiY]" z="[tibmodpar:CFFrameHybZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibmodule0a:TIBModule0A"/> + <rChild name="tibmodpar:TIBModKaptonBoxRPhi"/> + <Translation x="[zero]" y="[tibmodule0:KaptonBoxRPhiY]" z="[tibmodpar:KaptonBoxZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibmodule0a:TIBModule0A"/> + <rChild name="tibmodule0:TIBModCFFrameSter"/> + <Translation x="[zero]" y="[tibmodule0:CFFrameSterY]" z="[tibmodpar:CFFrameZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibmodule0a:TIBModule0A"/> + <rChild name="tibmodule0:TIBModCFFrameHybSter"/> + <Translation x="[zero]" y="[tibmodule0:CFFrameSterY]" z="[tibmodpar:CFFrameHybZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibmodule0a:TIBModule0A"/> + <rChild name="tibmodule0:TIBModKaptonBoxSter"/> + <rRotation name="tibmodpar:PAA"/> + <Translation x="[zero]" y="[tibmodule0:KaptonBoxSterY]" z="[tibmodpar:WaferZ]+cos([tibmodpar:StereoAngle])*0.5*[tibmodule0:KaptonBoxSterOffset]"/> + </PosPart> + </PosPartSection> +</DDDefinition> diff --git a/examples/DDCMS/data/tibmodule0b.xml b/examples/DDCMS/data/tibmodule0b.xml new file mode 100644 index 0000000000000000000000000000000000000000..4cb33272811f6ee64455d88704d618bd8047c79e --- /dev/null +++ b/examples/DDCMS/data/tibmodule0b.xml @@ -0,0 +1,115 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tibmodule0b.xml" eval="true"> + <Constant name="zero" value="0.0*fm"/> + </ConstantsSection> + <LogicalPartSection label="tibmodule0b.xml"> + <LogicalPart name="TIBModule0B" category="unspecified"> + <rSolid name="tibmodpar:TIBDSModule"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + </LogicalPartSection> + <PosPartSection label="tibmodule0b.xml"> + <PosPart copyNumber="1"> + <rParent name="tibmodule0b:TIBModule0B"/> + <rChild name="tibmodule0:TIBWaferRphi0"/> + <rRotation name="tibmodpar:Rphi"/> + <Translation x="[zero]" y="[tibmodule0:WaferRPhiY]" z="[tibmodpar:WaferZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibmodule0b:TIBModule0B"/> + <rChild name="tibmodule0:TIBWaferSter0"/> + <rRotation name="tibmodpar:SterB"/> + <Translation x="[zero]" y="[tibmodule0:WaferSterY]" z="[tibmodpar:WaferZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibmodule0b:TIBModule0B"/> + <rChild name="tibmodule0:TIBHybrid0"/> + <Translation x="[zero]" y="[tibmodule0:HybridRPhiY]" z="-[tibmodpar:HybridZ]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tibmodule0b:TIBModule0B"/> + <rChild name="tibmodule0:TIBHybrid0"/> + <Translation x="[zero]" y="[tibmodule0:HybridSterY]" z="-[tibmodpar:HybridZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibmodule0b:TIBModule0B"/> + <rChild name="tibmodpar:TIBPA1"/> + <Translation x="[zero]" y="[tibmodule0:PARPhiY]" z="-[tibmodpar:PAZ]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tibmodule0b:TIBModule0B"/> + <rChild name="tibmodule0:TIBPA2"/> + <rRotation name="tibmodpar:PAB"/> + <Translation x="-[tibmodule0:PASterX]" y="[tibmodule0:PASterY]" z="-[tibmodule0:PASterZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibmodule0b:TIBModule0B"/> + <rChild name="tibmodule0:TIBLedgeSter"/> + <rRotation name="tibmodpar:PAB"/> + <Translation x="[zero]" y="[tibmodule0:LedgeSterY]" z="[tibmodule0:LedgeSterZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibmodule0b:TIBModule0B"/> + <rChild name="tibmodule0:TIBLedgeSide"/> + <Translation x="[tibmodule0:LedgeSideX]" y="[tibmodule0:LedgeSideY]" z="[tibmodule0:LedgeSideZ]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tibmodule0b:TIBModule0B"/> + <rChild name="tibmodule0:TIBLedgeSide"/> + <Translation x="-[tibmodule0:LedgeSideX]" y="[tibmodule0:LedgeSideY]" z="[tibmodule0:LedgeSideZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibmodule0b:TIBModule0B"/> + <rChild name="tibmodule0:TIBSpacerLedge"/> + <Translation x="[zero]" y="[tibmodule0:SpacerY]" z="[tibmodule0:SpacerLedgeZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibmodule0b:TIBModule0B"/> + <rChild name="tibmodule0:TIBSpacerHyb"/> + <Translation x="[zero]" y="[tibmodule0:SpacerY]" z="-[tibmodule0:SpacerHybZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibmodule0b:TIBModule0B"/> + <rChild name="tibmodule0:TIBSpacerSide"/> + <Translation x="[tibmodule0:SpacerSideX]" y="[tibmodule0:SpacerY]" z="-[tibmodule0:SpacerSideZ]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tibmodule0b:TIBModule0B"/> + <rChild name="tibmodule0:TIBSpacerSide"/> + <Translation x="-[tibmodule0:SpacerSideX]" y="[tibmodule0:SpacerY]" z="-[tibmodule0:SpacerSideZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibmodule0b:TIBModule0B"/> + <rChild name="tibmodpar:TIBModCFFrameRPhi"/> + <Translation x="[zero]" y="[tibmodule0:CFFrameRPhiY]" z="[tibmodpar:CFFrameZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibmodule0b:TIBModule0B"/> + <rChild name="tibmodpar:TIBModCFFrameHybRPhi"/> + <Translation x="[zero]" y="[tibmodule0:CFFrameRPhiY]" z="[tibmodpar:CFFrameHybZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibmodule0b:TIBModule0B"/> + <rChild name="tibmodpar:TIBModKaptonBoxRPhi"/> + <Translation x="[zero]" y="[tibmodule0:KaptonBoxRPhiY]" z="[tibmodpar:KaptonBoxZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibmodule0b:TIBModule0B"/> + <rChild name="tibmodule0:TIBModCFFrameSter"/> + <Translation x="[zero]" y="[tibmodule0:CFFrameSterY]" z="[tibmodpar:CFFrameZ]"/> + <rRotation name="tibmodpar:CFFrameSterB"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibmodule0b:TIBModule0B"/> + <rChild name="tibmodule0:TIBModCFFrameHybSter"/> + <Translation x="[zero]" y="[tibmodule0:CFFrameSterY]" z="[tibmodpar:CFFrameHybZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibmodule0b:TIBModule0B"/> + <rChild name="tibmodule0:TIBModKaptonBoxSter"/> + <rRotation name="tibmodpar:PAB"/> + <Translation x="[zero]" y="[tibmodule0:KaptonBoxSterY]" z="[tibmodpar:WaferZ]+cos([tibmodpar:StereoAngle])*0.5*[tibmodule0:KaptonBoxSterOffset]"/> + </PosPart> + </PosPartSection> +</DDDefinition> diff --git a/examples/DDCMS/data/tibmodule2.xml b/examples/DDCMS/data/tibmodule2.xml new file mode 100644 index 0000000000000000000000000000000000000000..814641d60df9ef63851ac70044b936c34ec34aa5 --- /dev/null +++ b/examples/DDCMS/data/tibmodule2.xml @@ -0,0 +1,67 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tibmodule2.xml" eval="true"> + <Constant name="zero" value="0.0*fm"/> + <Constant name="HybridY" value="[CFFrameY]+[tibmodpar:CFFrameDy]+[tibmodpar:HybridDy]"/> + <Constant name="PAY" value="[CFFrameY]+[tibmodpar:CFFrameDy]+[tibmodpar:PADy]"/> + <Constant name="CFFrameY" value="-[tibmodpar:SSModuleDy]+[tibmodpar:CFFrameDy]"/> + <Constant name="KaptonBoxY" value="[CFFrameY]+[tibmodpar:CFFrameDy]+[tibmodpar:KaptonBoxDy]"/> + <Constant name="WaferY" value="-0.140*mm"/> + </ConstantsSection> + <LogicalPartSection label="tibmodule2.xml"> + <LogicalPart name="TIBModule2" category="unspecified"> + <rSolid name="tibmodpar:TIBSSModule"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TIBHybrid2" category="unspecified"> + <rSolid name="tibmodpar:TIBHybrid"/> + <rMaterial name="tibtidcommonmaterial:TIBTID_Hybrid"/> + </LogicalPart> + <LogicalPart name="TIBWaferRphi2" category="unspecified"> + <rSolid name="tibmodpar:TIBSSWafer"/> + <rMaterial name="materials:Silicon"/> + </LogicalPart> + <LogicalPart name="TIBActiveRphi2" category="unspecified"> + <rSolid name="tibmodpar:TIBSSActive"/> + <rMaterial name="materials:Silicon"/> + </LogicalPart> + </LogicalPartSection> + <PosPartSection label="tibmodule2.xml"> + <PosPart copyNumber="1"> + <rParent name="tibmodule2:TIBWaferRphi2"/> + <rChild name="tibmodule2:TIBActiveRphi2"/> + <Translation x="[zero]" y="[zero]" z="[tracker:BackPlaneDz]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibmodule2:TIBModule2"/> + <rChild name="tibmodule2:TIBWaferRphi2"/> + <rRotation name="tibmodpar:Rphi"/> + <Translation x="[zero]" y="[tibmodule2:WaferY]" z="[tibmodpar:WaferZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibmodule2:TIBModule2"/> + <rChild name="tibmodule2:TIBHybrid2"/> + <Translation x="[zero]" y="[tibmodule2:HybridY]" z="-[tibmodpar:HybridZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibmodule2:TIBModule2"/> + <rChild name="tibmodpar:TIBPA1"/> + <Translation x="[zero]" y="[tibmodule2:PAY]" z="-[tibmodpar:PAZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibmodule2:TIBModule2"/> + <rChild name="tibmodpar:TIBModCFFrameRPhi"/> + <Translation x="[zero]" y="[tibmodule2:CFFrameY]" z="[tibmodpar:CFFrameZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibmodule2:TIBModule2"/> + <rChild name="tibmodpar:TIBModCFFrameHybRPhi"/> + <Translation x="[zero]" y="[tibmodule2:CFFrameY]" z="[tibmodpar:CFFrameHybZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibmodule2:TIBModule2"/> + <rChild name="tibmodpar:TIBModKaptonBoxRPhi"/> + <Translation x="[zero]" y="[tibmodule2:KaptonBoxY]" z="[tibmodpar:KaptonBoxZ]"/> + </PosPart> + </PosPartSection> +</DDDefinition> diff --git a/examples/DDCMS/data/tibstring0.xml b/examples/DDCMS/data/tibstring0.xml new file mode 100644 index 0000000000000000000000000000000000000000..d93ea861e364d611201e681dd4f1463c60716a64 --- /dev/null +++ b/examples/DDCMS/data/tibstring0.xml @@ -0,0 +1,44 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tibstring0.xml" eval="true"> + <Constant name="zero" value="0.0*fm"/> + <Constant name="StringIntOff" value="36.74*mm"/> + <Constant name="StringExtOff" value="-11.89*mm"/> + <Constant name="StringLoMinL" value="0.5*[tibstringpar:StringL]+[StringIntOff]"/> + <Constant name="StringUpMinL" value="0.5*[tibstringpar:StringL]+[StringExtOff]"/> + <Constant name="StringLoPlsL" value="0.5*[tibstringpar:StringL]-[StringIntOff]"/> + <Constant name="StringUpPlsL" value="0.5*[tibstringpar:StringL]-[StringExtOff]"/> + </ConstantsSection> + <LogicalPartSection label="tibstring0.xml"> + <LogicalPart name="TIBString0Lo1" category="unspecified"> + <rSolid name="tibstringpar:TIBDSString1"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TIBString0Up1" category="unspecified"> + <rSolid name="tibstringpar:TIBDSString1"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + </LogicalPartSection> + <PosPartSection label="tibstring0.xml"> + <PosPart copyNumber="1"> + <rParent name="tibstring0:TIBString0Lo1"/> + <rChild name="tibstring0ll:TIBString0LoMin1"/> + <Translation x="[zero]" y="[zero]" z="-[tibstring0:StringLoPlsL]/2"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibstring0:TIBString0Lo1"/> + <rChild name="tibstring0lr:TIBString0LoPls1"/> + <Translation x="[zero]" y="[zero]" z="[tibstring0:StringLoMinL]/2"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibstring0:TIBString0Up1"/> + <rChild name="tibstring0ul:TIBString0UpMin1"/> + <Translation x="[zero]" y="[zero]" z="-[tibstring0:StringUpPlsL]/2"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibstring0:TIBString0Up1"/> + <rChild name="tibstring0ur:TIBString0UpPls1"/> + <Translation x="[zero]" y="[zero]" z="[tibstring0:StringUpMinL]/2"/> + </PosPart> + </PosPartSection> +</DDDefinition> diff --git a/examples/DDCMS/data/tibstring0ll.xml b/examples/DDCMS/data/tibstring0ll.xml new file mode 100644 index 0000000000000000000000000000000000000000..9ae377973fe5eed8777692a14d033fa41f3c30f6 --- /dev/null +++ b/examples/DDCMS/data/tibstring0ll.xml @@ -0,0 +1,164 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <!-- LAYER 1 INT BW --> + <ConstantsSection label="tibstring0ll.xml" eval="true"> + <Constant name="zero" value="0.0*fm"/> + <Constant name="FBSign" value="[tibstringpar:BWSign]"/> + <Constant name="IESign" value="[tibstringpar:INT1Sign]"/> + <Constant name="MotherCableL" value="59.91*cm-2*[tibstringpar:MCHeadDz]"/> + <Constant name="ThisStringL" value="[tibstring0:StringLoMinL]"/> + <Constant name="ThatStringL" value="[tibstringpar:StringL]-[ThisStringL]"/> + <Constant name="CoolL" value="0.5*[tibstringpar:StringL]+24.88*mm-2*[tibstringpar:CoolPipeDx]"/> + <Constant name="Det0Z" value="-447.355*mm"/> + <Constant name="Det1Z" value="-242.709*mm"/> + <Constant name="Det2Z" value="-36.9380*mm"/> + <Constant name="ShiftDet" value="-[FBSign]*0.5*[ThatStringL]+[IESign]*[tibmodpar:WaferZ]"/> + <Constant name="ShiftAOHLedge" value="[ShiftDet]+[IESign]*([tibmodpar:ModuleDz]+[tibmodpar:AOHLedgeModOffset])"/> + <Constant name="ShiftAOHBox" value="[ShiftDet]+[IESign]*([tibmodpar:ModuleDz]+[tibmodpar:AOHBoxDz])"/> + <Constant name="ShiftMCModConn" value="[ShiftDet]+[IESign]*([tibmodpar:ModuleDz]+[tibstringpar:MCModConnOffset])"/> + <Constant name="MCHeadZ" value="[FBSign]*(0.5*[ThisStringL]-[tibstringpar:MCHeadDz])"/> + <Constant name="MCZ" value="[FBSign]*(0.5*[ThisStringL]-0.5*[MotherCableL]-2*[tibstringpar:MCHeadDz])"/> + <Constant name="CoolSZ" value="[FBSign]*(0.5*[ThisStringL]-0.5*[CoolL])"/> + <Constant name="CoolWZ" value="[FBSign]*([ThisStringL]/2-[CoolL]-[tibstringpar:CoolPipeDx])"/> + </ConstantsSection> + <SolidSection label="tibstring0ll.xml"> + <Box name="TIBString0LoMinCoolBox" dx="[tibstringpar:CoolBoxDx]" dy="[tibstringpar:CoolBoxDy]" dz="[ThisStringL]/2"/> + <Box name="TIBString0LoMinMainPart" dx="[tibmodpar:ModuleDx]" dy="[tibmodpar:DSModuleDy]" dz="[ThisStringL]/2"/> + <Box name="TIBString0LoMinSideCut" dx="[tibmodpar:DSModuleSideCutDx]" dy="[tibmodpar:DSModuleSideCutDy]" dz="[ThisStringL]/2+[tibmodpar:SideCutExtraZ]"/> + <Box name="TIBString0LoMinCableBox" dx="[tibstringpar:CableBoxDx]" dy="[tibstringpar:DSCableBoxDy]" dz="[ThisStringL]/2"/> + <SubtractionSolid name="TIBString0LoMinLeftCutted"> + <rSolid name="TIBString0LoMinMainPart"/> + <rSolid name="TIBString0LoMinSideCut"/> + <Translation x="-[tibmodpar:DSModuleSideCutX]" y="[tibmodpar:DSModuleSideCutY]" z="0."/> + </SubtractionSolid> + <SubtractionSolid name="TIBString0LoMinModuleBox"> + <rSolid name="TIBString0LoMinLeftCutted"/> + <rSolid name="TIBString0LoMinSideCut"/> + <Translation x="[tibmodpar:DSModuleSideCutX]" y="[tibmodpar:DSModuleSideCutY]" z="0."/> + </SubtractionSolid> + <UnionSolid name="TIBString0LoMinModAndCool"> + <rSolid name="TIBString0LoMinModuleBox"/> + <rSolid name="TIBString0LoMinCoolBox"/> + <Translation x="[zero]" y="[tibstringpar:DSCoolBoxY]" z="[zero]"/> + </UnionSolid> + <UnionSolid name="TIBString0LoMin"> + <rSolid name="TIBString0LoMinModAndCool"/> + <rSolid name="TIBString0LoMinCableBox"/> + <Translation x="[zero]" y="[tibstringpar:DSCableBoxY]" z="[zero]"/> + </UnionSolid> + <Box name="TIBString0LoMinCable" dx="[tibstringpar:MotherCableW]/2" dy="[tibstringpar:MotherCableT]/2" dz="[MotherCableL]/2"/> + <Box name="TIBString0LoMinCoolS" dx="[tibstringpar:CoolPipeDx]" dy="[tibstringpar:CoolPipeDy]" dz="[CoolL]/2"/> + <Box name="TIBString0LoMinCoolW" dx="[tibstringpar:CoolPipeX]+[tibstringpar:CoolPipeDx]" dy="[tibstringpar:CoolPipeDy]" dz="[tibstringpar:CoolPipeDx]"/> + </SolidSection> + <LogicalPartSection label="tibstring0ll.xml"> + <LogicalPart name="TIBString0LoMin1" category="unspecified"> + <rSolid name="TIBString0LoMin"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TIBString0LoMinCable" category="unspecified"> + <rSolid name="TIBString0LoMinCable"/> + <rMaterial name="tibmaterial:TIB_MCable"/> + </LogicalPart> + <LogicalPart name="TIBString0LoMinCoolS" category="unspecified"> + <rSolid name="TIBString0LoMinCoolS"/> + <rMaterial name="tibmaterial:TIB_CoolPipe"/> + </LogicalPart> + <LogicalPart name="TIBString0LoMinCoolW" category="unspecified"> + <rSolid name="TIBString0LoMinCoolW"/> + <rMaterial name="tibmaterial:TIB_CoolPipe"/> + </LogicalPart> + </LogicalPartSection> + <Algorithm name="track:DDTrackerZPosAlgo"> + <rParent name="tibstring0ll:TIBString0LoMin1"/> + <String name="ChildName" value="tibmodule0b:TIBModule0B"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Vector name="ZPositions" type="numeric" nEntries="3"> + ([Det0Z]+[ShiftDet]), ([Det1Z]+[ShiftDet]), ([Det2Z]+[ShiftDet]) </Vector> + <Vector name="Rotations" type="string" nEntries="3"> + tibstringpar:NULL, tibstringpar:NULL, tibstringpar:NULL</Vector> + </Algorithm> + <PosPartSection label="tibstring0ll.xml"> + <PosPart copyNumber="1"> + <rParent name="tibstring0ll:TIBString0LoMin1"/> + <rChild name="tibstringpar:MCHead"/> + <Translation x="[tibstringpar:MCHeadX]" y="[tibstringpar:DSMCHeadY]" z="[MCHeadZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibstring0ll:TIBString0LoMin1"/> + <rChild name="tibstring0ll:TIBString0LoMinCable"/> + <Translation x="[tibstringpar:MotherCableX]" y="[tibstringpar:DSMotherCableY]" z="[MCZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibstring0ll:TIBString0LoMin1"/> + <rChild name="tibstring0ll:TIBString0LoMinCoolS"/> + <Translation x="-[tibstringpar:CoolPipeX]" y="[tibstringpar:DSCoolPipeY]" z="[CoolSZ]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tibstring0ll:TIBString0LoMin1"/> + <rChild name="tibstring0ll:TIBString0LoMinCoolS"/> + <Translation x="[tibstringpar:CoolPipeX]" y="[tibstringpar:DSCoolPipeY]" z="[CoolSZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibstring0ll:TIBString0LoMin1"/> + <rChild name="tibstring0ll:TIBString0LoMinCoolW"/> + <Translation x="[zero]" y="[tibstringpar:DSCoolPipeY]" z="[CoolWZ]"/> + </PosPart> + </PosPartSection> + <Algorithm name="track:DDTrackerXYZPosAlgo"> + <rParent name="tibstring0ll:TIBString0LoMin1"/> + <String name="ChildName" value="tibmodpar:TIBModLedgeBox"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Vector name="XPositions" type="numeric" nEntries="3"> + [zero], [zero], [zero]</Vector> + <Vector name="YPositions" type="numeric" nEntries="3"> + [tibmodpar:DSLedgeBoxY], [tibmodpar:DSLedgeBoxY], [tibmodpar:DSLedgeBoxY]</Vector> + <Vector name="ZPositions" type="numeric" nEntries="3"> + ([Det0Z]+[ShiftDet]), ([Det1Z]+[ShiftDet]), ([Det2Z]+[ShiftDet]) </Vector> + <Vector name="Rotations" type="string" nEntries="3"> + tibstringpar:NULL, tibstringpar:NULL, tibstringpar:NULL</Vector> + </Algorithm> + <Algorithm name="track:DDTrackerXYZPosAlgo"> + <rParent name="tibstring0ll:TIBString0LoMin1"/> + <String name="ChildName" value="tibmodpar:TIBAOHLedge"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Vector name="XPositions" type="numeric" nEntries="3"> + [zero], [zero], [zero]</Vector> + <Vector name="YPositions" type="numeric" nEntries="3"> + [tibmodpar:DSLedgeBoxY], [tibmodpar:DSLedgeBoxY], [tibmodpar:DSLedgeBoxY]</Vector> + <Vector name="ZPositions" type="numeric" nEntries="3"> + ([Det0Z]+[ShiftAOHLedge]), ([Det1Z]+[ShiftAOHLedge]), ([Det2Z]+[ShiftAOHLedge]) </Vector> + <Vector name="Rotations" type="string" nEntries="3"> + tibstringpar:180D, tibstringpar:180D, tibstringpar:180D</Vector> + </Algorithm> + <Algorithm name="track:DDTrackerXYZPosAlgo"> + <rParent name="tibstring0ll:TIBString0LoMin1"/> + <String name="ChildName" value="tibmodpar:TIBDSAOHBox"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Vector name="XPositions" type="numeric" nEntries="3"> + [zero], [zero], [zero]</Vector> + <Vector name="YPositions" type="numeric" nEntries="3"> + [tibmodpar:DSAOHBoxY], [tibmodpar:DSAOHBoxY], [tibmodpar:DSAOHBoxY]</Vector> + <Vector name="ZPositions" type="numeric" nEntries="3"> + ([Det0Z]+[ShiftAOHBox]), ([Det1Z]+[ShiftAOHBox]), ([Det2Z]+[ShiftAOHBox]) </Vector> + <Vector name="Rotations" type="string" nEntries="3"> + tibstringpar:NULL, tibstringpar:NULL, tibstringpar:NULL</Vector> + </Algorithm> + <Algorithm name="track:DDTrackerXYZPosAlgo"> + <rParent name="tibstring0ll:TIBString0LoMin1"/> + <String name="ChildName" value="tibstringpar:DSMCModConn"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Vector name="XPositions" type="numeric" nEntries="3"> + [tibstringpar:MCModConnX], [tibstringpar:MCModConnX], [tibstringpar:MCModConnX]</Vector> + <Vector name="YPositions" type="numeric" nEntries="3"> + [tibstringpar:DSMCModConnY], [tibstringpar:DSMCModConnY], [tibstringpar:DSMCModConnY]</Vector> + <Vector name="ZPositions" type="numeric" nEntries="3"> + ([Det0Z]+[ShiftMCModConn]), ([Det1Z]+[ShiftMCModConn]), ([Det2Z]+[ShiftMCModConn]) </Vector> + <Vector name="Rotations" type="string" nEntries="3"> + tibstringpar:NULL, tibstringpar:NULL, tibstringpar:NULL</Vector> + </Algorithm> +</DDDefinition> diff --git a/examples/DDCMS/data/tibstring0lr.xml b/examples/DDCMS/data/tibstring0lr.xml new file mode 100644 index 0000000000000000000000000000000000000000..2b5d7c43ae9b98787ce5a2bce1f7fa8fc9272308 --- /dev/null +++ b/examples/DDCMS/data/tibstring0lr.xml @@ -0,0 +1,164 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <!-- LAYER 1 INT FW --> + <ConstantsSection label="tibstring0lr.xml" eval="true"> + <Constant name="zero" value="0.0*fm"/> + <Constant name="FBSign" value="[tibstringpar:FWSign]"/> + <Constant name="IESign" value="[tibstringpar:INT1Sign]"/> + <Constant name="MotherCableL" value="67.55*cm-2*[tibstringpar:MCHeadDz]"/> + <Constant name="ThisStringL" value="[tibstring0:StringLoPlsL]"/> + <Constant name="ThatStringL" value="[tibstringpar:StringL]-[ThisStringL]"/> + <Constant name="CoolL" value="0.5*[tibstringpar:StringL]-39.50*mm-2*[tibstringpar:CoolPipeDx]"/> + <Constant name="Det0Z" value="169.080*mm"/> + <Constant name="Det1Z" value="374.129*mm"/> + <Constant name="Det2Z" value="578.058*mm"/> + <Constant name="ShiftDet" value="-[FBSign]*0.5*[ThatStringL]+[IESign]*[tibmodpar:WaferZ]"/> + <Constant name="ShiftAOHLedge" value="[ShiftDet]+[IESign]*([tibmodpar:ModuleDz]+[tibmodpar:AOHLedgeModOffset])"/> + <Constant name="ShiftAOHBox" value="[ShiftDet]+[IESign]*([tibmodpar:ModuleDz]+[tibmodpar:AOHBoxDz])"/> + <Constant name="ShiftMCModConn" value="[ShiftDet]+[IESign]*([tibmodpar:ModuleDz]+[tibstringpar:MCModConnOffset])"/> + <Constant name="MCHeadZ" value="[FBSign]*(0.5*[ThisStringL]-[tibstringpar:MCHeadDz])"/> + <Constant name="MCZ" value="[FBSign]*(0.5*[ThisStringL]-0.5*[MotherCableL]-2*[tibstringpar:MCHeadDz])"/> + <Constant name="CoolSZ" value="[FBSign]*(0.5*[ThisStringL]-0.5*[CoolL])"/> + <Constant name="CoolWZ" value="[FBSign]*([ThisStringL]/2-[CoolL]-[tibstringpar:CoolPipeDx])"/> + </ConstantsSection> + <SolidSection label="tibstring0lr.xml"> + <Box name="TIBString0LoPlsCoolBox" dx="[tibstringpar:CoolBoxDx]" dy="[tibstringpar:CoolBoxDy]" dz="[ThisStringL]/2"/> + <Box name="TIBString0LoPlsMainPart" dx="[tibmodpar:ModuleDx]" dy="[tibmodpar:DSModuleDy]" dz="[ThisStringL]/2"/> + <Box name="TIBString0LoPlsSideCut" dx="[tibmodpar:DSModuleSideCutDx]" dy="[tibmodpar:DSModuleSideCutDy]" dz="[ThisStringL]/2+[tibmodpar:SideCutExtraZ]"/> + <Box name="TIBString0LoPlsCableBox" dx="[tibstringpar:CableBoxDx]" dy="[tibstringpar:DSCableBoxDy]" dz="[ThisStringL]/2"/> + <SubtractionSolid name="TIBString0LoPlsLeftCutted"> + <rSolid name="TIBString0LoPlsMainPart"/> + <rSolid name="TIBString0LoPlsSideCut"/> + <Translation x="-[tibmodpar:DSModuleSideCutX]" y="[tibmodpar:DSModuleSideCutY]" z="0."/> + </SubtractionSolid> + <SubtractionSolid name="TIBString0LoPlsModuleBox"> + <rSolid name="TIBString0LoPlsLeftCutted"/> + <rSolid name="TIBString0LoPlsSideCut"/> + <Translation x="[tibmodpar:DSModuleSideCutX]" y="[tibmodpar:DSModuleSideCutY]" z="0."/> + </SubtractionSolid> + <UnionSolid name="TIBString0LoPlsModAndCool"> + <rSolid name="TIBString0LoPlsModuleBox"/> + <rSolid name="TIBString0LoPlsCoolBox"/> + <Translation x="[zero]" y="[tibstringpar:DSCoolBoxY]" z="[zero]"/> + </UnionSolid> + <UnionSolid name="TIBString0LoPls"> + <rSolid name="TIBString0LoPlsModAndCool"/> + <rSolid name="TIBString0LoPlsCableBox"/> + <Translation x="[zero]" y="[tibstringpar:DSCableBoxY]" z="[zero]"/> + </UnionSolid> + <Box name="TIBString0LoPlsCable" dx="[tibstringpar:MotherCableW]/2" dy="[tibstringpar:MotherCableT]/2" dz="[MotherCableL]/2"/> + <Box name="TIBString0LoPlsCoolS" dx="[tibstringpar:CoolPipeDx]" dy="[tibstringpar:CoolPipeDy]" dz="[CoolL]/2"/> + <Box name="TIBString0LoPlsCoolW" dx="[tibstringpar:CoolPipeX]+[tibstringpar:CoolPipeDx]" dy="[tibstringpar:CoolPipeDy]" dz="[tibstringpar:CoolPipeDx]"/> + </SolidSection> + <LogicalPartSection label="tibstring0lr.xml"> + <LogicalPart name="TIBString0LoPls1" category="unspecified"> + <rSolid name="TIBString0LoPls"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TIBString0LoPlsCable" category="unspecified"> + <rSolid name="TIBString0LoPlsCable"/> + <rMaterial name="tibmaterial:TIB_MCable"/> + </LogicalPart> + <LogicalPart name="TIBString0LoPlsCoolS" category="unspecified"> + <rSolid name="TIBString0LoPlsCoolS"/> + <rMaterial name="tibmaterial:TIB_CoolPipe"/> + </LogicalPart> + <LogicalPart name="TIBString0LoPlsCoolW" category="unspecified"> + <rSolid name="TIBString0LoPlsCoolW"/> + <rMaterial name="tibmaterial:TIB_CoolPipe"/> + </LogicalPart> + </LogicalPartSection> + <Algorithm name="track:DDTrackerZPosAlgo"> + <rParent name="tibstring0lr:TIBString0LoPls1"/> + <String name="ChildName" value="tibmodule0b:TIBModule0B"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Vector name="ZPositions" type="numeric" nEntries="3"> + ([Det0Z]+[ShiftDet]), ([Det1Z]+[ShiftDet]), ([Det2Z]+[ShiftDet]) </Vector> + <Vector name="Rotations" type="string" nEntries="3"> + tibstringpar:NULL, tibstringpar:NULL, tibstringpar:NULL</Vector> + </Algorithm> + <PosPartSection label="tibstring0lr.xml"> + <PosPart copyNumber="1"> + <rParent name="tibstring0lr:TIBString0LoPls1"/> + <rChild name="tibstringpar:MCHead"/> + <Translation x="[tibstringpar:MCHeadX]" y="[tibstringpar:DSMCHeadY]" z="[MCHeadZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibstring0lr:TIBString0LoPls1"/> + <rChild name="tibstring0lr:TIBString0LoPlsCable"/> + <Translation x="[tibstringpar:MotherCableX]" y="[tibstringpar:DSMotherCableY]" z="[MCZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibstring0lr:TIBString0LoPls1"/> + <rChild name="tibstring0lr:TIBString0LoPlsCoolS"/> + <Translation x="-[tibstringpar:CoolPipeX]" y="[tibstringpar:DSCoolPipeY]" z="[CoolSZ]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tibstring0lr:TIBString0LoPls1"/> + <rChild name="tibstring0lr:TIBString0LoPlsCoolS"/> + <Translation x="[tibstringpar:CoolPipeX]" y="[tibstringpar:DSCoolPipeY]" z="[CoolSZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibstring0lr:TIBString0LoPls1"/> + <rChild name="tibstring0lr:TIBString0LoPlsCoolW"/> + <Translation x="[zero]" y="[tibstringpar:DSCoolPipeY]" z="[CoolWZ]"/> + </PosPart> + </PosPartSection> + <Algorithm name="track:DDTrackerXYZPosAlgo"> + <rParent name="tibstring0lr:TIBString0LoPls1"/> + <String name="ChildName" value="tibmodpar:TIBModLedgeBox"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Vector name="XPositions" type="numeric" nEntries="3"> + [zero], [zero], [zero]</Vector> + <Vector name="YPositions" type="numeric" nEntries="3"> + [tibmodpar:DSLedgeBoxY], [tibmodpar:DSLedgeBoxY], [tibmodpar:DSLedgeBoxY]</Vector> + <Vector name="ZPositions" type="numeric" nEntries="3"> + ([Det0Z]+[ShiftDet]), ([Det1Z]+[ShiftDet]), ([Det2Z]+[ShiftDet]) </Vector> + <Vector name="Rotations" type="string" nEntries="3"> + tibstringpar:NULL, tibstringpar:NULL, tibstringpar:NULL</Vector> + </Algorithm> + <Algorithm name="track:DDTrackerXYZPosAlgo"> + <rParent name="tibstring0lr:TIBString0LoPls1"/> + <String name="ChildName" value="tibmodpar:TIBAOHLedge"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Vector name="XPositions" type="numeric" nEntries="3"> + [zero], [zero], [zero]</Vector> + <Vector name="YPositions" type="numeric" nEntries="3"> + [tibmodpar:DSLedgeBoxY], [tibmodpar:DSLedgeBoxY], [tibmodpar:DSLedgeBoxY]</Vector> + <Vector name="ZPositions" type="numeric" nEntries="3"> + ([Det0Z]+[ShiftAOHLedge]), ([Det1Z]+[ShiftAOHLedge]), ([Det2Z]+[ShiftAOHLedge]) </Vector> + <Vector name="Rotations" type="string" nEntries="3"> + tibstringpar:NULL, tibstringpar:NULL, tibstringpar:NULL</Vector> + </Algorithm> + <Algorithm name="track:DDTrackerXYZPosAlgo"> + <rParent name="tibstring0lr:TIBString0LoPls1"/> + <String name="ChildName" value="tibmodpar:TIBDSAOHBox"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Vector name="XPositions" type="numeric" nEntries="3"> + [zero], [zero], [zero]</Vector> + <Vector name="YPositions" type="numeric" nEntries="3"> + [tibmodpar:DSAOHBoxY], [tibmodpar:DSAOHBoxY], [tibmodpar:DSAOHBoxY]</Vector> + <Vector name="ZPositions" type="numeric" nEntries="3"> + ([Det0Z]+[ShiftAOHBox]), ([Det1Z]+[ShiftAOHBox]), ([Det2Z]+[ShiftAOHBox]) </Vector> + <Vector name="Rotations" type="string" nEntries="3"> + tibstringpar:NULL, tibstringpar:NULL, tibstringpar:NULL</Vector> + </Algorithm> + <Algorithm name="track:DDTrackerXYZPosAlgo"> + <rParent name="tibstring0lr:TIBString0LoPls1"/> + <String name="ChildName" value="tibstringpar:DSMCModConn"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Vector name="XPositions" type="numeric" nEntries="3"> + [tibstringpar:MCModConnX], [tibstringpar:MCModConnX], [tibstringpar:MCModConnX]</Vector> + <Vector name="YPositions" type="numeric" nEntries="3"> + [tibstringpar:DSMCModConnY], [tibstringpar:DSMCModConnY], [tibstringpar:DSMCModConnY]</Vector> + <Vector name="ZPositions" type="numeric" nEntries="3"> + ([Det0Z]+[ShiftMCModConn]), ([Det1Z]+[ShiftMCModConn]), ([Det2Z]+[ShiftMCModConn]) </Vector> + <Vector name="Rotations" type="string" nEntries="3"> + tibstringpar:NULL, tibstringpar:NULL, tibstringpar:NULL</Vector> + </Algorithm> +</DDDefinition> diff --git a/examples/DDCMS/data/tibstring0ul.xml b/examples/DDCMS/data/tibstring0ul.xml new file mode 100644 index 0000000000000000000000000000000000000000..7195346cd6c17ac90ac395f3c4e27e1dc66f73fe --- /dev/null +++ b/examples/DDCMS/data/tibstring0ul.xml @@ -0,0 +1,164 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <!-- LAYER 1 EXT BW --> + <ConstantsSection label="tibstring0ul.xml" eval="true"> + <Constant name="zero" value="0.0*fm"/> + <Constant name="FBSign" value="[tibstringpar:BWSign]"/> + <Constant name="IESign" value="[tibstringpar:EXT1Sign]"/> + <Constant name="MotherCableL" value="68.84*cm-2*[tibstringpar:MCHeadDz]"/> + <Constant name="ThisStringL" value="[tibstring0:StringUpMinL]"/> + <Constant name="ThatStringL" value="[tibstringpar:StringL]-[ThisStringL]"/> + <Constant name="CoolL" value="0.5*[tibstringpar:StringL]-28.77*mm-2*[tibstringpar:CoolPipeDx]"/> + <Constant name="Det0Z" value="-605.456*mm"/> + <Constant name="Det1Z" value="-394.872*mm"/> + <Constant name="Det2Z" value="-160.198*mm"/> + <Constant name="ShiftDet" value="-[FBSign]*0.5*[ThatStringL]+[IESign]*[tibmodpar:WaferZ]"/> + <Constant name="ShiftAOHLedge" value="[ShiftDet]+[IESign]*([tibmodpar:ModuleDz]+[tibmodpar:AOHLedgeModOffset])"/> + <Constant name="ShiftAOHBox" value="[ShiftDet]+[IESign]*([tibmodpar:ModuleDz]+[tibmodpar:AOHBoxDz])"/> + <Constant name="ShiftMCModConn" value="[ShiftDet]+[IESign]*([tibmodpar:ModuleDz]+[tibstringpar:MCModConnOffset])"/> + <Constant name="MCHeadZ" value="[FBSign]*(0.5*[ThisStringL]-[tibstringpar:MCHeadDz])"/> + <Constant name="MCZ" value="[FBSign]*(0.5*[ThisStringL]-0.5*[MotherCableL]-2*[tibstringpar:MCHeadDz])"/> + <Constant name="CoolSZ" value="[FBSign]*(0.5*[ThisStringL]-0.5*[CoolL])"/> + <Constant name="CoolWZ" value="[FBSign]*([ThisStringL]/2-[CoolL]-[tibstringpar:CoolPipeDx])"/> + </ConstantsSection> + <SolidSection label="tibstring0ul.xml"> + <Box name="TIBString0UpMinCoolBox" dx="[tibstringpar:CoolBoxDx]" dy="[tibstringpar:CoolBoxDy]" dz="[ThisStringL]/2"/> + <Box name="TIBString0UpMinMainPart" dx="[tibmodpar:ModuleDx]" dy="[tibmodpar:DSModuleDy]" dz="[ThisStringL]/2"/> + <Box name="TIBString0UpMinSideCut" dx="[tibmodpar:DSModuleSideCutDx]" dy="[tibmodpar:DSModuleSideCutDy]" dz="[ThisStringL]/2+[tibmodpar:SideCutExtraZ]"/> + <Box name="TIBString0UpMinCableBox" dx="[tibstringpar:CableBoxDx]" dy="[tibstringpar:DSCableBoxDy]" dz="[ThisStringL]/2"/> + <SubtractionSolid name="TIBString0UpMinLeftCutted"> + <rSolid name="TIBString0UpMinMainPart"/> + <rSolid name="TIBString0UpMinSideCut"/> + <Translation x="-[tibmodpar:DSModuleSideCutX]" y="[tibmodpar:DSModuleSideCutY]" z="0."/> + </SubtractionSolid> + <SubtractionSolid name="TIBString0UpMinModuleBox"> + <rSolid name="TIBString0UpMinLeftCutted"/> + <rSolid name="TIBString0UpMinSideCut"/> + <Translation x="[tibmodpar:DSModuleSideCutX]" y="[tibmodpar:DSModuleSideCutY]" z="0."/> + </SubtractionSolid> + <UnionSolid name="TIBString0UpMinModAndCool"> + <rSolid name="TIBString0UpMinModuleBox"/> + <rSolid name="TIBString0UpMinCoolBox"/> + <Translation x="[zero]" y="[tibstringpar:DSCoolBoxY]" z="[zero]"/> + </UnionSolid> + <UnionSolid name="TIBString0UpMin"> + <rSolid name="TIBString0UpMinModAndCool"/> + <rSolid name="TIBString0UpMinCableBox"/> + <Translation x="[zero]" y="[tibstringpar:DSCableBoxY]" z="[zero]"/> + </UnionSolid> + <Box name="TIBString0UpMinCable" dx="[tibstringpar:MotherCableW]/2" dy="[tibstringpar:MotherCableT]/2" dz="[MotherCableL]/2"/> + <Box name="TIBString0UpMinCoolS" dx="[tibstringpar:CoolPipeDx]" dy="[tibstringpar:CoolPipeDy]" dz="[CoolL]/2"/> + <Box name="TIBString0UpMinCoolW" dx="[tibstringpar:CoolPipeX]+[tibstringpar:CoolPipeDx]" dy="[tibstringpar:CoolPipeDy]" dz="[tibstringpar:CoolPipeDx]"/> + </SolidSection> + <LogicalPartSection label="tibstring0ul.xml"> + <LogicalPart name="TIBString0UpMin1" category="unspecified"> + <rSolid name="TIBString0UpMin"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TIBString0UpMinCable" category="unspecified"> + <rSolid name="TIBString0UpMinCable"/> + <rMaterial name="tibmaterial:TIB_MCable"/> + </LogicalPart> + <LogicalPart name="TIBString0UpMinCoolS" category="unspecified"> + <rSolid name="TIBString0UpMinCoolS"/> + <rMaterial name="tibmaterial:TIB_CoolPipe"/> + </LogicalPart> + <LogicalPart name="TIBString0UpMinCoolW" category="unspecified"> + <rSolid name="TIBString0UpMinCoolW"/> + <rMaterial name="tibmaterial:TIB_CoolPipe"/> + </LogicalPart> + </LogicalPartSection> + <Algorithm name="track:DDTrackerZPosAlgo"> + <rParent name="tibstring0ul:TIBString0UpMin1"/> + <String name="ChildName" value="tibmodule0a:TIBModule0A"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Vector name="ZPositions" type="numeric" nEntries="3"> + ([Det0Z]+[ShiftDet]), ([Det1Z]+[ShiftDet]), ([Det2Z]+[ShiftDet]) </Vector> + <Vector name="Rotations" type="string" nEntries="3"> + tibstringpar:180D, tibstringpar:180D, tibstringpar:180D</Vector> + </Algorithm> + <PosPartSection label="tibstring0ul.xml"> + <PosPart copyNumber="1"> + <rParent name="tibstring0ul:TIBString0UpMin1"/> + <rChild name="tibstringpar:MCHead"/> + <Translation x="[tibstringpar:MCHeadX]" y="[tibstringpar:DSMCHeadY]" z="[MCHeadZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibstring0ul:TIBString0UpMin1"/> + <rChild name="tibstring0ul:TIBString0UpMinCable"/> + <Translation x="[tibstringpar:MotherCableX]" y="[tibstringpar:DSMotherCableY]" z="[MCZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibstring0ul:TIBString0UpMin1"/> + <rChild name="tibstring0ul:TIBString0UpMinCoolS"/> + <Translation x="-[tibstringpar:CoolPipeX]" y="[tibstringpar:DSCoolPipeY]" z="[CoolSZ]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tibstring0ul:TIBString0UpMin1"/> + <rChild name="tibstring0ul:TIBString0UpMinCoolS"/> + <Translation x="[tibstringpar:CoolPipeX]" y="[tibstringpar:DSCoolPipeY]" z="[CoolSZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibstring0ul:TIBString0UpMin1"/> + <rChild name="tibstring0ul:TIBString0UpMinCoolW"/> + <Translation x="[zero]" y="[tibstringpar:DSCoolPipeY]" z="[CoolWZ]"/> + </PosPart> + </PosPartSection> + <Algorithm name="track:DDTrackerXYZPosAlgo"> + <rParent name="tibstring0ul:TIBString0UpMin1"/> + <String name="ChildName" value="tibmodpar:TIBModLedgeBox"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Vector name="XPositions" type="numeric" nEntries="3"> + [zero], [zero], [zero]</Vector> + <Vector name="YPositions" type="numeric" nEntries="3"> + [tibmodpar:DSLedgeBoxY], [tibmodpar:DSLedgeBoxY], [tibmodpar:DSLedgeBoxY]</Vector> + <Vector name="ZPositions" type="numeric" nEntries="3"> + ([Det0Z]+[ShiftDet]), ([Det1Z]+[ShiftDet]), ([Det2Z]+[ShiftDet]) </Vector> + <Vector name="Rotations" type="string" nEntries="3"> + tibstringpar:180D, tibstringpar:180D, tibstringpar:180D</Vector> + </Algorithm> + <Algorithm name="track:DDTrackerXYZPosAlgo"> + <rParent name="tibstring0ul:TIBString0UpMin1"/> + <String name="ChildName" value="tibmodpar:TIBAOHLedge"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Vector name="XPositions" type="numeric" nEntries="3"> + [zero], [zero], [zero]</Vector> + <Vector name="YPositions" type="numeric" nEntries="3"> + [tibmodpar:DSLedgeBoxY], [tibmodpar:DSLedgeBoxY], [tibmodpar:DSLedgeBoxY]</Vector> + <Vector name="ZPositions" type="numeric" nEntries="3"> + ([Det0Z]+[ShiftAOHLedge]), ([Det1Z]+[ShiftAOHLedge]), ([Det2Z]+[ShiftAOHLedge]) </Vector> + <Vector name="Rotations" type="string" nEntries="3"> + tibstringpar:180D, tibstringpar:180D, tibstringpar:180D</Vector> + </Algorithm> + <Algorithm name="track:DDTrackerXYZPosAlgo"> + <rParent name="tibstring0ul:TIBString0UpMin1"/> + <String name="ChildName" value="tibmodpar:TIBDSAOHBox"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Vector name="XPositions" type="numeric" nEntries="3"> + [zero], [zero], [zero]</Vector> + <Vector name="YPositions" type="numeric" nEntries="3"> + [tibmodpar:DSAOHBoxY], [tibmodpar:DSAOHBoxY], [tibmodpar:DSAOHBoxY]</Vector> + <Vector name="ZPositions" type="numeric" nEntries="3"> + ([Det0Z]+[ShiftAOHBox]), ([Det1Z]+[ShiftAOHBox]), ([Det2Z]+[ShiftAOHBox]) </Vector> + <Vector name="Rotations" type="string" nEntries="3"> + tibstringpar:180D, tibstringpar:180D, tibstringpar:180D</Vector> + </Algorithm> + <Algorithm name="track:DDTrackerXYZPosAlgo"> + <rParent name="tibstring0ul:TIBString0UpMin1"/> + <String name="ChildName" value="tibstringpar:DSMCModConn"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Vector name="XPositions" type="numeric" nEntries="3"> + [tibstringpar:MCModConnX], [tibstringpar:MCModConnX], [tibstringpar:MCModConnX]</Vector> + <Vector name="YPositions" type="numeric" nEntries="3"> + [tibstringpar:DSMCModConnY], [tibstringpar:DSMCModConnY], [tibstringpar:DSMCModConnY]</Vector> + <Vector name="ZPositions" type="numeric" nEntries="3"> + ([Det0Z]+[ShiftMCModConn]), ([Det1Z]+[ShiftMCModConn]), ([Det2Z]+[ShiftMCModConn]) </Vector> + <Vector name="Rotations" type="string" nEntries="3"> + tibstringpar:NULL, tibstringpar:NULL, tibstringpar:NULL</Vector> + </Algorithm> +</DDDefinition> diff --git a/examples/DDCMS/data/tibstring0ur.xml b/examples/DDCMS/data/tibstring0ur.xml new file mode 100644 index 0000000000000000000000000000000000000000..8cf34eee30c171737399baefd826280967409f74 --- /dev/null +++ b/examples/DDCMS/data/tibstring0ur.xml @@ -0,0 +1,164 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <!-- LAYER 1 EXT FW --> + <ConstantsSection label="tibstring0ur.xml" eval="true"> + <Constant name="zero" value="0.0*fm"/> + <Constant name="FBSign" value="[tibstringpar:FWSign]"/> + <Constant name="IESign" value="[tibstringpar:EXT1Sign]"/> + <Constant name="MotherCableL" value="56.02*cm-2*[tibstringpar:MCHeadDz]"/> + <Constant name="ThisStringL" value="[tibstring0:StringUpPlsL]"/> + <Constant name="ThatStringL" value="[tibstringpar:StringL]-[ThisStringL]"/> + <Constant name="CoolL" value="0.5*[tibstringpar:StringL]-14.07*mm-2*[tibstringpar:CoolPipeDx]"/> + <Constant name="Det0Z" value="75.7660*mm"/> + <Constant name="Det1Z" value="310.901*mm"/> + <Constant name="Det2Z" value="544.753*mm"/> + <Constant name="ShiftDet" value="-[FBSign]*0.5*[ThatStringL]+[IESign]*[tibmodpar:WaferZ]"/> + <Constant name="ShiftAOHLedge" value="[ShiftDet]+[IESign]*([tibmodpar:ModuleDz]+[tibmodpar:AOHLedgeModOffset])"/> + <Constant name="ShiftAOHBox" value="[ShiftDet]+[IESign]*([tibmodpar:ModuleDz]+[tibmodpar:AOHBoxDz])"/> + <Constant name="ShiftMCModConn" value="[ShiftDet]+[IESign]*([tibmodpar:ModuleDz]+[tibstringpar:MCModConnOffset])"/> + <Constant name="MCHeadZ" value="[FBSign]*(0.5*[ThisStringL]-[tibstringpar:MCHeadDz])"/> + <Constant name="MCZ" value="[FBSign]*(0.5*[ThisStringL]-0.5*[MotherCableL]-2*[tibstringpar:MCHeadDz])"/> + <Constant name="CoolSZ" value="[FBSign]*(0.5*[ThisStringL]-0.5*[CoolL])"/> + <Constant name="CoolWZ" value="[FBSign]*([ThisStringL]/2-[CoolL]-[tibstringpar:CoolPipeDx])"/> + </ConstantsSection> + <SolidSection label="tibstring0ur.xml"> + <Box name="TIBString0UpPlsCoolBox" dx="[tibstringpar:CoolBoxDx]" dy="[tibstringpar:CoolBoxDy]" dz="[ThisStringL]/2"/> + <Box name="TIBString0UpPlsMainPart" dx="[tibmodpar:ModuleDx]" dy="[tibmodpar:DSModuleDy]" dz="[ThisStringL]/2"/> + <Box name="TIBString0UpPlsSideCut" dx="[tibmodpar:DSModuleSideCutDx]" dy="[tibmodpar:DSModuleSideCutDy]" dz="[ThisStringL]/2+[tibmodpar:SideCutExtraZ]"/> + <Box name="TIBString0UpPlsCableBox" dx="[tibstringpar:CableBoxDx]" dy="[tibstringpar:DSCableBoxDy]" dz="[ThisStringL]/2"/> + <SubtractionSolid name="TIBString0UpPlsLeftCutted"> + <rSolid name="TIBString0UpPlsMainPart"/> + <rSolid name="TIBString0UpPlsSideCut"/> + <Translation x="-[tibmodpar:DSModuleSideCutX]" y="[tibmodpar:DSModuleSideCutY]" z="0."/> + </SubtractionSolid> + <SubtractionSolid name="TIBString0UpPlsModuleBox"> + <rSolid name="TIBString0UpPlsLeftCutted"/> + <rSolid name="TIBString0UpPlsSideCut"/> + <Translation x="[tibmodpar:DSModuleSideCutX]" y="[tibmodpar:DSModuleSideCutY]" z="0."/> + </SubtractionSolid> + <UnionSolid name="TIBString0UpPlsModAndCool"> + <rSolid name="TIBString0UpPlsModuleBox"/> + <rSolid name="TIBString0UpPlsCoolBox"/> + <Translation x="[zero]" y="[tibstringpar:DSCoolBoxY]" z="[zero]"/> + </UnionSolid> + <UnionSolid name="TIBString0UpPls"> + <rSolid name="TIBString0UpPlsModAndCool"/> + <rSolid name="TIBString0UpPlsCableBox"/> + <Translation x="[zero]" y="[tibstringpar:DSCableBoxY]" z="[zero]"/> + </UnionSolid> + <Box name="TIBString0UpPlsCable" dx="[tibstringpar:MotherCableW]/2" dy="[tibstringpar:MotherCableT]/2" dz="[MotherCableL]/2"/> + <Box name="TIBString0UpPlsCoolS" dx="[tibstringpar:CoolPipeDx]" dy="[tibstringpar:CoolPipeDy]" dz="[CoolL]/2"/> + <Box name="TIBString0UpPlsCoolW" dx="[tibstringpar:CoolPipeX]+[tibstringpar:CoolPipeDx]" dy="[tibstringpar:CoolPipeDy]" dz="[tibstringpar:CoolPipeDx]"/> + </SolidSection> + <LogicalPartSection label="tibstring0ur.xml"> + <LogicalPart name="TIBString0UpPls1" category="unspecified"> + <rSolid name="TIBString0UpPls"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TIBString0UpPlsCable" category="unspecified"> + <rSolid name="TIBString0UpPlsCable"/> + <rMaterial name="tibmaterial:TIB_MCable"/> + </LogicalPart> + <LogicalPart name="TIBString0UpPlsCoolS" category="unspecified"> + <rSolid name="TIBString0UpPlsCoolS"/> + <rMaterial name="tibmaterial:TIB_CoolPipe"/> + </LogicalPart> + <LogicalPart name="TIBString0UpPlsCoolW" category="unspecified"> + <rSolid name="TIBString0UpPlsCoolW"/> + <rMaterial name="tibmaterial:TIB_CoolPipe"/> + </LogicalPart> + </LogicalPartSection> + <Algorithm name="track:DDTrackerZPosAlgo"> + <rParent name="tibstring0ur:TIBString0UpPls1"/> + <String name="ChildName" value="tibmodule0a:TIBModule0A"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Vector name="ZPositions" type="numeric" nEntries="3"> + ([Det0Z]+[ShiftDet]), ([Det1Z]+[ShiftDet]), ([Det2Z]+[ShiftDet]) </Vector> + <Vector name="Rotations" type="string" nEntries="3"> + tibstringpar:180D, tibstringpar:180D, tibstringpar:180D</Vector> + </Algorithm> + <PosPartSection label="tibstring0ur.xml"> + <PosPart copyNumber="1"> + <rParent name="tibstring0ur:TIBString0UpPls1"/> + <rChild name="tibstringpar:MCHead"/> + <Translation x="[tibstringpar:MCHeadX]" y="[tibstringpar:DSMCHeadY]" z="[MCHeadZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibstring0ur:TIBString0UpPls1"/> + <rChild name="tibstring0ur:TIBString0UpPlsCable"/> + <Translation x="[tibstringpar:MotherCableX]" y="[tibstringpar:DSMotherCableY]" z="[MCZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibstring0ur:TIBString0UpPls1"/> + <rChild name="tibstring0ur:TIBString0UpPlsCoolS"/> + <Translation x="-[tibstringpar:CoolPipeX]" y="[tibstringpar:DSCoolPipeY]" z="[CoolSZ]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tibstring0ur:TIBString0UpPls1"/> + <rChild name="tibstring0ur:TIBString0UpPlsCoolS"/> + <Translation x="[tibstringpar:CoolPipeX]" y="[tibstringpar:DSCoolPipeY]" z="[CoolSZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibstring0ur:TIBString0UpPls1"/> + <rChild name="tibstring0ur:TIBString0UpPlsCoolW"/> + <Translation x="[zero]" y="[tibstringpar:DSCoolPipeY]" z="[CoolWZ]"/> + </PosPart> + </PosPartSection> + <Algorithm name="track:DDTrackerXYZPosAlgo"> + <rParent name="tibstring0ur:TIBString0UpPls1"/> + <String name="ChildName" value="tibmodpar:TIBModLedgeBox"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Vector name="XPositions" type="numeric" nEntries="3"> + [zero], [zero], [zero]</Vector> + <Vector name="YPositions" type="numeric" nEntries="3"> + [tibmodpar:DSLedgeBoxY], [tibmodpar:DSLedgeBoxY], [tibmodpar:DSLedgeBoxY]</Vector> + <Vector name="ZPositions" type="numeric" nEntries="3"> + ([Det0Z]+[ShiftDet]), ([Det1Z]+[ShiftDet]), ([Det2Z]+[ShiftDet]) </Vector> + <Vector name="Rotations" type="string" nEntries="3"> + tibstringpar:180D, tibstringpar:180D, tibstringpar:180D</Vector> + </Algorithm> + <Algorithm name="track:DDTrackerXYZPosAlgo"> + <rParent name="tibstring0ur:TIBString0UpPls1"/> + <String name="ChildName" value="tibmodpar:TIBAOHLedge"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Vector name="XPositions" type="numeric" nEntries="3"> + [zero], [zero], [zero]</Vector> + <Vector name="YPositions" type="numeric" nEntries="3"> + [tibmodpar:DSLedgeBoxY], [tibmodpar:DSLedgeBoxY], [tibmodpar:DSLedgeBoxY]</Vector> + <Vector name="ZPositions" type="numeric" nEntries="3"> + ([Det0Z]+[ShiftAOHLedge]), ([Det1Z]+[ShiftAOHLedge]), ([Det2Z]+[ShiftAOHLedge]) </Vector> + <Vector name="Rotations" type="string" nEntries="3"> + tibstringpar:NULL, tibstringpar:NULL, tibstringpar:NULL</Vector> + </Algorithm> + <Algorithm name="track:DDTrackerXYZPosAlgo"> + <rParent name="tibstring0ur:TIBString0UpPls1"/> + <String name="ChildName" value="tibmodpar:TIBDSAOHBox"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Vector name="XPositions" type="numeric" nEntries="3"> + [zero], [zero], [zero]</Vector> + <Vector name="YPositions" type="numeric" nEntries="3"> + [tibmodpar:DSAOHBoxY], [tibmodpar:DSAOHBoxY], [tibmodpar:DSAOHBoxY]</Vector> + <Vector name="ZPositions" type="numeric" nEntries="3"> + ([Det0Z]+[ShiftAOHBox]), ([Det1Z]+[ShiftAOHBox]), ([Det2Z]+[ShiftAOHBox]) </Vector> + <Vector name="Rotations" type="string" nEntries="3"> + tibstringpar:180D, tibstringpar:180D, tibstringpar:180D</Vector> + </Algorithm> + <Algorithm name="track:DDTrackerXYZPosAlgo"> + <rParent name="tibstring0ur:TIBString0UpPls1"/> + <String name="ChildName" value="tibstringpar:DSMCModConn"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Vector name="XPositions" type="numeric" nEntries="3"> + [tibstringpar:MCModConnX], [tibstringpar:MCModConnX], [tibstringpar:MCModConnX]</Vector> + <Vector name="YPositions" type="numeric" nEntries="3"> + [tibstringpar:DSMCModConnY], [tibstringpar:DSMCModConnY], [tibstringpar:DSMCModConnY]</Vector> + <Vector name="ZPositions" type="numeric" nEntries="3"> + ([Det0Z]+[ShiftMCModConn]), ([Det1Z]+[ShiftMCModConn]), ([Det2Z]+[ShiftMCModConn]) </Vector> + <Vector name="Rotations" type="string" nEntries="3"> + tibstringpar:NULL, tibstringpar:NULL, tibstringpar:NULL</Vector> + </Algorithm> +</DDDefinition> diff --git a/examples/DDCMS/data/tibstring1.xml b/examples/DDCMS/data/tibstring1.xml new file mode 100644 index 0000000000000000000000000000000000000000..6f1fa9b2ee47e266b64b1bc826352b3055bf7862 --- /dev/null +++ b/examples/DDCMS/data/tibstring1.xml @@ -0,0 +1,44 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tibstring1.xml" eval="true"> + <Constant name="zero" value="0.0*fm"/> + <Constant name="StringIntOff" value="-45.15*mm"/> + <Constant name="StringExtOff" value="-2.35*mm"/> + <Constant name="StringLoMinL" value="0.5*[tibstringpar:StringL]+[StringIntOff]"/> + <Constant name="StringUpMinL" value="0.5*[tibstringpar:StringL]+[StringExtOff]"/> + <Constant name="StringLoPlsL" value="0.5*[tibstringpar:StringL]-[StringIntOff]"/> + <Constant name="StringUpPlsL" value="0.5*[tibstringpar:StringL]-[StringExtOff]"/> + </ConstantsSection> + <LogicalPartSection label="tibstring1.xml"> + <LogicalPart name="TIBString1Lo1" category="unspecified"> + <rSolid name="tibstringpar:TIBDSString1"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TIBString1Up1" category="unspecified"> + <rSolid name="tibstringpar:TIBDSString1"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + </LogicalPartSection> + <PosPartSection label="tibstring1.xml"> + <PosPart copyNumber="1"> + <rParent name="tibstring1:TIBString1Lo1"/> + <rChild name="tibstring1ll:TIBString1LoMin1"/> + <Translation x="[zero]" y="[zero]" z="-[tibstring1:StringLoPlsL]/2"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibstring1:TIBString1Lo1"/> + <rChild name="tibstring1lr:TIBString1LoPls1"/> + <Translation x="[zero]" y="[zero]" z="[tibstring1:StringLoMinL]/2"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibstring1:TIBString1Up1"/> + <rChild name="tibstring1ul:TIBString1UpMin1"/> + <Translation x="[zero]" y="[zero]" z="-[tibstring1:StringUpPlsL]/2"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibstring1:TIBString1Up1"/> + <rChild name="tibstring1ur:TIBString1UpPls1"/> + <Translation x="[zero]" y="[zero]" z="[tibstring1:StringUpMinL]/2"/> + </PosPart> + </PosPartSection> +</DDDefinition> diff --git a/examples/DDCMS/data/tibstring1ll.xml b/examples/DDCMS/data/tibstring1ll.xml new file mode 100644 index 0000000000000000000000000000000000000000..b1aa2817191d9e010410bb1c37ce43da20ab4c42 --- /dev/null +++ b/examples/DDCMS/data/tibstring1ll.xml @@ -0,0 +1,164 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <!-- LAYER 2 INT BW --> + <ConstantsSection label="tibstring1ll.xml" eval="true"> + <Constant name="zero" value="0.0*fm"/> + <Constant name="FBSign" value="[tibstringpar:BWSign]"/> + <Constant name="IESign" value="[tibstringpar:INT2Sign]"/> + <Constant name="MotherCableL" value="66.84*cm-2*[tibstringpar:MCHeadDz]"/> + <Constant name="ThisStringL" value="[tibstring1:StringLoMinL]"/> + <Constant name="ThatStringL" value="[tibstringpar:StringL]-[ThisStringL]"/> + <Constant name="CoolL" value="0.5*[tibstringpar:StringL]-49.14*mm-2*[tibstringpar:CoolPipeDx]"/> + <Constant name="Det0Z" value="-597.651*mm"/> + <Constant name="Det1Z" value="-389.269*mm"/> + <Constant name="Det2Z" value="-180.228*mm"/> + <Constant name="ShiftDet" value="-[FBSign]*0.5*[ThatStringL]+[IESign]*[tibmodpar:WaferZ]"/> + <Constant name="ShiftAOHLedge" value="[ShiftDet]+[IESign]*([tibmodpar:ModuleDz]+[tibmodpar:AOHLedgeModOffset])"/> + <Constant name="ShiftAOHBox" value="[ShiftDet]+[IESign]*([tibmodpar:ModuleDz]+[tibmodpar:AOHBoxDz])"/> + <Constant name="ShiftMCModConn" value="[ShiftDet]+[IESign]*([tibmodpar:ModuleDz]+[tibstringpar:MCModConnOffset])"/> + <Constant name="MCHeadZ" value="[FBSign]*(0.5*[ThisStringL]-[tibstringpar:MCHeadDz])"/> + <Constant name="MCZ" value="[FBSign]*(0.5*[ThisStringL]-0.5*[MotherCableL]-2*[tibstringpar:MCHeadDz])"/> + <Constant name="CoolSZ" value="[FBSign]*(0.5*[ThisStringL]-0.5*[CoolL])"/> + <Constant name="CoolWZ" value="[FBSign]*([ThisStringL]/2-[CoolL]-[tibstringpar:CoolPipeDx])"/> + </ConstantsSection> + <SolidSection label="tibstring1ll.xml"> + <Box name="TIBString1LoMinCoolBox" dx="[tibstringpar:CoolBoxDx]" dy="[tibstringpar:CoolBoxDy]" dz="[ThisStringL]/2"/> + <Box name="TIBString1LoMinMainPart" dx="[tibmodpar:ModuleDx]" dy="[tibmodpar:DSModuleDy]" dz="[ThisStringL]/2"/> + <Box name="TIBString1LoMinSideCut" dx="[tibmodpar:DSModuleSideCutDx]" dy="[tibmodpar:DSModuleSideCutDy]" dz="[ThisStringL]/2+[tibmodpar:SideCutExtraZ]"/> + <Box name="TIBString1LoMinCableBox" dx="[tibstringpar:CableBoxDx]" dy="[tibstringpar:DSCableBoxDy]" dz="[ThisStringL]/2"/> + <SubtractionSolid name="TIBString1LoMinLeftCutted"> + <rSolid name="TIBString1LoMinMainPart"/> + <rSolid name="TIBString1LoMinSideCut"/> + <Translation x="-[tibmodpar:DSModuleSideCutX]" y="[tibmodpar:DSModuleSideCutY]" z="0."/> + </SubtractionSolid> + <SubtractionSolid name="TIBString1LoMinModuleBox"> + <rSolid name="TIBString1LoMinLeftCutted"/> + <rSolid name="TIBString1LoMinSideCut"/> + <Translation x="[tibmodpar:DSModuleSideCutX]" y="[tibmodpar:DSModuleSideCutY]" z="0."/> + </SubtractionSolid> + <UnionSolid name="TIBString1LoMinModAndCool"> + <rSolid name="TIBString1LoMinModuleBox"/> + <rSolid name="TIBString1LoMinCoolBox"/> + <Translation x="[zero]" y="[tibstringpar:DSCoolBoxY]" z="[zero]"/> + </UnionSolid> + <UnionSolid name="TIBString1LoMin"> + <rSolid name="TIBString1LoMinModAndCool"/> + <rSolid name="TIBString1LoMinCableBox"/> + <Translation x="[zero]" y="[tibstringpar:DSCableBoxY]" z="[zero]"/> + </UnionSolid> + <Box name="TIBString1LoMinCable" dx="[tibstringpar:MotherCableW]/2" dy="[tibstringpar:MotherCableT]/2" dz="[MotherCableL]/2"/> + <Box name="TIBString1LoMinCoolS" dx="[tibstringpar:CoolPipeDx]" dy="[tibstringpar:CoolPipeDy]" dz="[CoolL]/2"/> + <Box name="TIBString1LoMinCoolW" dx="[tibstringpar:CoolPipeX]+[tibstringpar:CoolPipeDx]" dy="[tibstringpar:CoolPipeDy]" dz="[tibstringpar:CoolPipeDx]"/> + </SolidSection> + <LogicalPartSection label="tibstring1ll.xml"> + <LogicalPart name="TIBString1LoMin1" category="unspecified"> + <rSolid name="TIBString1LoMin"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TIBString1LoMinCable" category="unspecified"> + <rSolid name="TIBString1LoMinCable"/> + <rMaterial name="tibmaterial:TIB_MCable"/> + </LogicalPart> + <LogicalPart name="TIBString1LoMinCoolS" category="unspecified"> + <rSolid name="TIBString1LoMinCoolS"/> + <rMaterial name="tibmaterial:TIB_CoolPipe"/> + </LogicalPart> + <LogicalPart name="TIBString1LoMinCoolW" category="unspecified"> + <rSolid name="TIBString1LoMinCoolW"/> + <rMaterial name="tibmaterial:TIB_CoolPipe"/> + </LogicalPart> + </LogicalPartSection> + <Algorithm name="track:DDTrackerZPosAlgo"> + <rParent name="tibstring1ll:TIBString1LoMin1"/> + <String name="ChildName" value="tibmodule0a:TIBModule0A"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Vector name="ZPositions" type="numeric" nEntries="3"> + ([Det0Z]+[ShiftDet]), ([Det1Z]+[ShiftDet]), ([Det2Z]+[ShiftDet]) </Vector> + <Vector name="Rotations" type="string" nEntries="3"> + tibstringpar:180D, tibstringpar:180D, tibstringpar:180D</Vector> + </Algorithm> + <PosPartSection label="tibstring1ll.xml"> + <PosPart copyNumber="1"> + <rParent name="tibstring1ll:TIBString1LoMin1"/> + <rChild name="tibstringpar:MCHead"/> + <Translation x="[tibstringpar:MCHeadX]" y="[tibstringpar:DSMCHeadY]" z="[MCHeadZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibstring1ll:TIBString1LoMin1"/> + <rChild name="tibstring1ll:TIBString1LoMinCable"/> + <Translation x="[tibstringpar:MotherCableX]" y="[tibstringpar:DSMotherCableY]" z="[MCZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibstring1ll:TIBString1LoMin1"/> + <rChild name="tibstring1ll:TIBString1LoMinCoolS"/> + <Translation x="-[tibstringpar:CoolPipeX]" y="[tibstringpar:DSCoolPipeY]" z="[CoolSZ]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tibstring1ll:TIBString1LoMin1"/> + <rChild name="tibstring1ll:TIBString1LoMinCoolS"/> + <Translation x="[tibstringpar:CoolPipeX]" y="[tibstringpar:DSCoolPipeY]" z="[CoolSZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibstring1ll:TIBString1LoMin1"/> + <rChild name="tibstring1ll:TIBString1LoMinCoolW"/> + <Translation x="[zero]" y="[tibstringpar:DSCoolPipeY]" z="[CoolWZ]"/> + </PosPart> + </PosPartSection> + <Algorithm name="track:DDTrackerXYZPosAlgo"> + <rParent name="tibstring1ll:TIBString1LoMin1"/> + <String name="ChildName" value="tibmodpar:TIBModLedgeBox"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Vector name="XPositions" type="numeric" nEntries="3"> + [zero], [zero], [zero]</Vector> + <Vector name="YPositions" type="numeric" nEntries="3"> + [tibmodpar:DSLedgeBoxY], [tibmodpar:DSLedgeBoxY], [tibmodpar:DSLedgeBoxY]</Vector> + <Vector name="ZPositions" type="numeric" nEntries="3"> + ([Det0Z]+[ShiftDet]), ([Det1Z]+[ShiftDet]), ([Det2Z]+[ShiftDet]) </Vector> + <Vector name="Rotations" type="string" nEntries="3"> + tibstringpar:180D, tibstringpar:180D, tibstringpar:180D</Vector> + </Algorithm> + <Algorithm name="track:DDTrackerXYZPosAlgo"> + <rParent name="tibstring1ll:TIBString1LoMin1"/> + <String name="ChildName" value="tibmodpar:TIBAOHLedge"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Vector name="XPositions" type="numeric" nEntries="3"> + [zero], [zero], [zero]</Vector> + <Vector name="YPositions" type="numeric" nEntries="3"> + [tibmodpar:DSLedgeBoxY], [tibmodpar:DSLedgeBoxY], [tibmodpar:DSLedgeBoxY]</Vector> + <Vector name="ZPositions" type="numeric" nEntries="3"> + ([Det0Z]+[ShiftAOHLedge]), ([Det1Z]+[ShiftAOHLedge]), ([Det2Z]+[ShiftAOHLedge]) </Vector> + <Vector name="Rotations" type="string" nEntries="3"> + tibstringpar:180D, tibstringpar:180D, tibstringpar:180D</Vector> + </Algorithm> + <Algorithm name="track:DDTrackerXYZPosAlgo"> + <rParent name="tibstring1ll:TIBString1LoMin1"/> + <String name="ChildName" value="tibmodpar:TIBDSAOHBox"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Vector name="XPositions" type="numeric" nEntries="3"> + [zero], [zero], [zero]</Vector> + <Vector name="YPositions" type="numeric" nEntries="3"> + [tibmodpar:DSAOHBoxY], [tibmodpar:DSAOHBoxY], [tibmodpar:DSAOHBoxY]</Vector> + <Vector name="ZPositions" type="numeric" nEntries="3"> + ([Det0Z]+[ShiftAOHBox]), ([Det1Z]+[ShiftAOHBox]), ([Det2Z]+[ShiftAOHBox]) </Vector> + <Vector name="Rotations" type="string" nEntries="3"> + tibstringpar:180D, tibstringpar:180D, tibstringpar:180D</Vector> + </Algorithm> + <Algorithm name="track:DDTrackerXYZPosAlgo"> + <rParent name="tibstring1ll:TIBString1LoMin1"/> + <String name="ChildName" value="tibstringpar:DSMCModConn"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Vector name="XPositions" type="numeric" nEntries="3"> + [tibstringpar:MCModConnX], [tibstringpar:MCModConnX], [tibstringpar:MCModConnX]</Vector> + <Vector name="YPositions" type="numeric" nEntries="3"> + [tibstringpar:DSMCModConnY], [tibstringpar:DSMCModConnY], [tibstringpar:DSMCModConnY]</Vector> + <Vector name="ZPositions" type="numeric" nEntries="3"> + ([Det0Z]+[ShiftMCModConn]), ([Det1Z]+[ShiftMCModConn]), ([Det2Z]+[ShiftMCModConn]) </Vector> + <Vector name="Rotations" type="string" nEntries="3"> + tibstringpar:NULL, tibstringpar:NULL, tibstringpar:NULL</Vector> + </Algorithm> +</DDDefinition> diff --git a/examples/DDCMS/data/tibstring1lr.xml b/examples/DDCMS/data/tibstring1lr.xml new file mode 100644 index 0000000000000000000000000000000000000000..74409ee8deaaffebdae9cc40037e093643286316 --- /dev/null +++ b/examples/DDCMS/data/tibstring1lr.xml @@ -0,0 +1,164 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <!-- LAYER 2 INT FW --> + <ConstantsSection label="tibstring1lr.xml" eval="true"> + <Constant name="zero" value="0.0*fm"/> + <Constant name="FBSign" value="[tibstringpar:FWSign]"/> + <Constant name="IESign" value="[tibstringpar:INT2Sign]"/> + <Constant name="MotherCableL" value="60.68*cm-2*[tibstringpar:MCHeadDz]"/> + <Constant name="ThisStringL" value="[tibstring1:StringLoPlsL]"/> + <Constant name="ThatStringL" value="[tibstringpar:StringL]-[ThisStringL]"/> + <Constant name="CoolL" value="0.5*[tibstringpar:StringL]+32.44*mm-2*[tibstringpar:CoolPipeDx]"/> + <Constant name="Det0Z" value="29.3600*mm"/> + <Constant name="Det1Z" value="238.876*mm"/> + <Constant name="Det2Z" value="447.732*mm"/> + <Constant name="ShiftDet" value="-[FBSign]*0.5*[ThatStringL]+[IESign]*[tibmodpar:WaferZ]"/> + <Constant name="ShiftAOHLedge" value="[ShiftDet]+[IESign]*([tibmodpar:ModuleDz]+[tibmodpar:AOHLedgeModOffset])"/> + <Constant name="ShiftAOHBox" value="[ShiftDet]+[IESign]*([tibmodpar:ModuleDz]+[tibmodpar:AOHBoxDz])"/> + <Constant name="ShiftMCModConn" value="[ShiftDet]+[IESign]*([tibmodpar:ModuleDz]+[tibstringpar:MCModConnOffset])"/> + <Constant name="MCHeadZ" value="[FBSign]*(0.5*[ThisStringL]-[tibstringpar:MCHeadDz])"/> + <Constant name="MCZ" value="[FBSign]*(0.5*[ThisStringL]-0.5*[MotherCableL]-2*[tibstringpar:MCHeadDz])"/> + <Constant name="CoolSZ" value="[FBSign]*(0.5*[ThisStringL]-0.5*[CoolL])"/> + <Constant name="CoolWZ" value="[FBSign]*([ThisStringL]/2-[CoolL]-[tibstringpar:CoolPipeDx])"/> + </ConstantsSection> + <SolidSection label="tibstring1lr.xml"> + <Box name="TIBString1LoPlsCoolBox" dx="[tibstringpar:CoolBoxDx]" dy="[tibstringpar:CoolBoxDy]" dz="[ThisStringL]/2"/> + <Box name="TIBString1LoPlsMainPart" dx="[tibmodpar:ModuleDx]" dy="[tibmodpar:DSModuleDy]" dz="[ThisStringL]/2"/> + <Box name="TIBString1LoPlsSideCut" dx="[tibmodpar:DSModuleSideCutDx]" dy="[tibmodpar:DSModuleSideCutDy]" dz="[ThisStringL]/2+[tibmodpar:SideCutExtraZ]"/> + <Box name="TIBString1LoPlsCableBox" dx="[tibstringpar:CableBoxDx]" dy="[tibstringpar:DSCableBoxDy]" dz="[ThisStringL]/2"/> + <SubtractionSolid name="TIBString1LoPlsLeftCutted"> + <rSolid name="TIBString1LoPlsMainPart"/> + <rSolid name="TIBString1LoPlsSideCut"/> + <Translation x="-[tibmodpar:DSModuleSideCutX]" y="[tibmodpar:DSModuleSideCutY]" z="0."/> + </SubtractionSolid> + <SubtractionSolid name="TIBString1LoPlsModuleBox"> + <rSolid name="TIBString1LoPlsLeftCutted"/> + <rSolid name="TIBString1LoPlsSideCut"/> + <Translation x="[tibmodpar:DSModuleSideCutX]" y="[tibmodpar:DSModuleSideCutY]" z="0."/> + </SubtractionSolid> + <UnionSolid name="TIBString1LoPlsModAndCool"> + <rSolid name="TIBString1LoPlsModuleBox"/> + <rSolid name="TIBString1LoPlsCoolBox"/> + <Translation x="[zero]" y="[tibstringpar:DSCoolBoxY]" z="[zero]"/> + </UnionSolid> + <UnionSolid name="TIBString1LoPls"> + <rSolid name="TIBString1LoPlsModAndCool"/> + <rSolid name="TIBString1LoPlsCableBox"/> + <Translation x="[zero]" y="[tibstringpar:DSCableBoxY]" z="[zero]"/> + </UnionSolid> + <Box name="TIBString1LoPlsCable" dx="[tibstringpar:MotherCableW]/2" dy="[tibstringpar:MotherCableT]/2" dz="[MotherCableL]/2"/> + <Box name="TIBString1LoPlsCoolS" dx="[tibstringpar:CoolPipeDx]" dy="[tibstringpar:CoolPipeDy]" dz="[CoolL]/2"/> + <Box name="TIBString1LoPlsCoolW" dx="[tibstringpar:CoolPipeX]+[tibstringpar:CoolPipeDx]" dy="[tibstringpar:CoolPipeDy]" dz="[tibstringpar:CoolPipeDx]"/> + </SolidSection> + <LogicalPartSection label="tibstring1lr.xml"> + <LogicalPart name="TIBString1LoPls1" category="unspecified"> + <rSolid name="TIBString1LoPls"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TIBString1LoPlsCable" category="unspecified"> + <rSolid name="TIBString1LoPlsCable"/> + <rMaterial name="tibmaterial:TIB_MCable"/> + </LogicalPart> + <LogicalPart name="TIBString1LoPlsCoolS" category="unspecified"> + <rSolid name="TIBString1LoPlsCoolS"/> + <rMaterial name="tibmaterial:TIB_CoolPipe"/> + </LogicalPart> + <LogicalPart name="TIBString1LoPlsCoolW" category="unspecified"> + <rSolid name="TIBString1LoPlsCoolW"/> + <rMaterial name="tibmaterial:TIB_CoolPipe"/> + </LogicalPart> + </LogicalPartSection> + <Algorithm name="track:DDTrackerZPosAlgo"> + <rParent name="tibstring1lr:TIBString1LoPls1"/> + <String name="ChildName" value="tibmodule0a:TIBModule0A"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Vector name="ZPositions" type="numeric" nEntries="3"> + ([Det0Z]+[ShiftDet]), ([Det1Z]+[ShiftDet]), ([Det2Z]+[ShiftDet]) </Vector> + <Vector name="Rotations" type="string" nEntries="3"> + tibstringpar:180D, tibstringpar:180D, tibstringpar:180D</Vector> + </Algorithm> + <PosPartSection label="tibstring1lr.xml"> + <PosPart copyNumber="1"> + <rParent name="tibstring1lr:TIBString1LoPls1"/> + <rChild name="tibstringpar:MCHead"/> + <Translation x="[tibstringpar:MCHeadX]" y="[tibstringpar:DSMCHeadY]" z="[MCHeadZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibstring1lr:TIBString1LoPls1"/> + <rChild name="tibstring1lr:TIBString1LoPlsCable"/> + <Translation x="[tibstringpar:MotherCableX]" y="[tibstringpar:DSMotherCableY]" z="[MCZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibstring1lr:TIBString1LoPls1"/> + <rChild name="tibstring1lr:TIBString1LoPlsCoolS"/> + <Translation x="-[tibstringpar:CoolPipeX]" y="[tibstringpar:DSCoolPipeY]" z="[CoolSZ]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tibstring1lr:TIBString1LoPls1"/> + <rChild name="tibstring1lr:TIBString1LoPlsCoolS"/> + <Translation x="[tibstringpar:CoolPipeX]" y="[tibstringpar:DSCoolPipeY]" z="[CoolSZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibstring1lr:TIBString1LoPls1"/> + <rChild name="tibstring1lr:TIBString1LoPlsCoolW"/> + <Translation x="[zero]" y="[tibstringpar:DSCoolPipeY]" z="[CoolWZ]"/> + </PosPart> + </PosPartSection> + <Algorithm name="track:DDTrackerXYZPosAlgo"> + <rParent name="tibstring1lr:TIBString1LoPls1"/> + <String name="ChildName" value="tibmodpar:TIBModLedgeBox"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Vector name="XPositions" type="numeric" nEntries="3"> + [zero], [zero], [zero]</Vector> + <Vector name="YPositions" type="numeric" nEntries="3"> + [tibmodpar:DSLedgeBoxY], [tibmodpar:DSLedgeBoxY], [tibmodpar:DSLedgeBoxY]</Vector> + <Vector name="ZPositions" type="numeric" nEntries="3"> + ([Det0Z]+[ShiftDet]), ([Det1Z]+[ShiftDet]), ([Det2Z]+[ShiftDet]) </Vector> + <Vector name="Rotations" type="string" nEntries="3"> + tibstringpar:180D, tibstringpar:180D, tibstringpar:180D</Vector> + </Algorithm> + <Algorithm name="track:DDTrackerXYZPosAlgo"> + <rParent name="tibstring1lr:TIBString1LoPls1"/> + <String name="ChildName" value="tibmodpar:TIBAOHLedge"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Vector name="XPositions" type="numeric" nEntries="3"> + [zero], [zero], [zero]</Vector> + <Vector name="YPositions" type="numeric" nEntries="3"> + [tibmodpar:DSLedgeBoxY], [tibmodpar:DSLedgeBoxY], [tibmodpar:DSLedgeBoxY]</Vector> + <Vector name="ZPositions" type="numeric" nEntries="3"> + ([Det0Z]+[ShiftAOHLedge]), ([Det1Z]+[ShiftAOHLedge]), ([Det2Z]+[ShiftAOHLedge]) </Vector> + <Vector name="Rotations" type="string" nEntries="3"> + tibstringpar:NULL, tibstringpar:NULL, tibstringpar:NULL</Vector> + </Algorithm> + <Algorithm name="track:DDTrackerXYZPosAlgo"> + <rParent name="tibstring1lr:TIBString1LoPls1"/> + <String name="ChildName" value="tibmodpar:TIBDSAOHBox"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Vector name="XPositions" type="numeric" nEntries="3"> + [zero], [zero], [zero]</Vector> + <Vector name="YPositions" type="numeric" nEntries="3"> + [tibmodpar:DSAOHBoxY], [tibmodpar:DSAOHBoxY], [tibmodpar:DSAOHBoxY]</Vector> + <Vector name="ZPositions" type="numeric" nEntries="3"> + ([Det0Z]+[ShiftAOHBox]), ([Det1Z]+[ShiftAOHBox]), ([Det2Z]+[ShiftAOHBox]) </Vector> + <Vector name="Rotations" type="string" nEntries="3"> + tibstringpar:180D, tibstringpar:180D, tibstringpar:180D</Vector> + </Algorithm> + <Algorithm name="track:DDTrackerXYZPosAlgo"> + <rParent name="tibstring1lr:TIBString1LoPls1"/> + <String name="ChildName" value="tibstringpar:DSMCModConn"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Vector name="XPositions" type="numeric" nEntries="3"> + [tibstringpar:MCModConnX], [tibstringpar:MCModConnX], [tibstringpar:MCModConnX]</Vector> + <Vector name="YPositions" type="numeric" nEntries="3"> + [tibstringpar:DSMCModConnY], [tibstringpar:DSMCModConnY], [tibstringpar:DSMCModConnY]</Vector> + <Vector name="ZPositions" type="numeric" nEntries="3"> + ([Det0Z]+[ShiftMCModConn]), ([Det1Z]+[ShiftMCModConn]), ([Det2Z]+[ShiftMCModConn]) </Vector> + <Vector name="Rotations" type="string" nEntries="3"> + tibstringpar:NULL, tibstringpar:NULL, tibstringpar:NULL</Vector> + </Algorithm> +</DDDefinition> diff --git a/examples/DDCMS/data/tibstring1ul.xml b/examples/DDCMS/data/tibstring1ul.xml new file mode 100644 index 0000000000000000000000000000000000000000..e97cfd218dbdcc87016f4913a527d8b7f896090b --- /dev/null +++ b/examples/DDCMS/data/tibstring1ul.xml @@ -0,0 +1,164 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <!-- LAYER 2 EXT BW --> + <ConstantsSection label="tibstring1ul.xml" eval="true"> + <Constant name="zero" value="0.0*fm"/> + <Constant name="FBSign" value="[tibstringpar:BWSign]"/> + <Constant name="IESign" value="[tibstringpar:EXT2Sign]"/> + <Constant name="MotherCableL" value="55.23*cm-2*[tibstringpar:MCHeadDz]"/> + <Constant name="ThisStringL" value="[tibstring1:StringUpMinL]"/> + <Constant name="ThatStringL" value="[tibstringpar:StringL]-[ThisStringL]"/> + <Constant name="CoolL" value="0.5*[tibstringpar:StringL]-14.30*mm-2*[tibstringpar:CoolPipeDx]"/> + <Constant name="Det0Z" value="-546.373*mm"/> + <Constant name="Det1Z" value="-315.364*mm"/> + <Constant name="Det2Z" value="-83.6250*mm"/> + <Constant name="ShiftDet" value="-[FBSign]*0.5*[ThatStringL]+[IESign]*[tibmodpar:WaferZ]"/> + <Constant name="ShiftAOHLedge" value="[ShiftDet]+[IESign]*([tibmodpar:ModuleDz]+[tibmodpar:AOHLedgeModOffset])"/> + <Constant name="ShiftAOHBox" value="[ShiftDet]+[IESign]*([tibmodpar:ModuleDz]+[tibmodpar:AOHBoxDz])"/> + <Constant name="ShiftMCModConn" value="[ShiftDet]+[IESign]*([tibmodpar:ModuleDz]+[tibstringpar:MCModConnOffset])"/> + <Constant name="MCHeadZ" value="[FBSign]*(0.5*[ThisStringL]-[tibstringpar:MCHeadDz])"/> + <Constant name="MCZ" value="[FBSign]*(0.5*[ThisStringL]-0.5*[MotherCableL]-2*[tibstringpar:MCHeadDz])"/> + <Constant name="CoolSZ" value="[FBSign]*(0.5*[ThisStringL]-0.5*[CoolL])"/> + <Constant name="CoolWZ" value="[FBSign]*([ThisStringL]/2-[CoolL]-[tibstringpar:CoolPipeDx])"/> + </ConstantsSection> + <SolidSection label="tibstring1ul.xml"> + <Box name="TIBString1UpMinCoolBox" dx="[tibstringpar:CoolBoxDx]" dy="[tibstringpar:CoolBoxDy]" dz="[ThisStringL]/2"/> + <Box name="TIBString1UpMinMainPart" dx="[tibmodpar:ModuleDx]" dy="[tibmodpar:DSModuleDy]" dz="[ThisStringL]/2"/> + <Box name="TIBString1UpMinSideCut" dx="[tibmodpar:DSModuleSideCutDx]" dy="[tibmodpar:DSModuleSideCutDy]" dz="[ThisStringL]/2+[tibmodpar:SideCutExtraZ]"/> + <Box name="TIBString1UpMinCableBox" dx="[tibstringpar:CableBoxDx]" dy="[tibstringpar:DSCableBoxDy]" dz="[ThisStringL]/2"/> + <SubtractionSolid name="TIBString1UpMinLeftCutted"> + <rSolid name="TIBString1UpMinMainPart"/> + <rSolid name="TIBString1UpMinSideCut"/> + <Translation x="-[tibmodpar:DSModuleSideCutX]" y="[tibmodpar:DSModuleSideCutY]" z="0."/> + </SubtractionSolid> + <SubtractionSolid name="TIBString1UpMinModuleBox"> + <rSolid name="TIBString1UpMinLeftCutted"/> + <rSolid name="TIBString1UpMinSideCut"/> + <Translation x="[tibmodpar:DSModuleSideCutX]" y="[tibmodpar:DSModuleSideCutY]" z="0."/> + </SubtractionSolid> + <UnionSolid name="TIBString1UpMinModAndCool"> + <rSolid name="TIBString1UpMinModuleBox"/> + <rSolid name="TIBString1UpMinCoolBox"/> + <Translation x="[zero]" y="[tibstringpar:DSCoolBoxY]" z="[zero]"/> + </UnionSolid> + <UnionSolid name="TIBString1UpMin"> + <rSolid name="TIBString1UpMinModAndCool"/> + <rSolid name="TIBString1UpMinCableBox"/> + <Translation x="[zero]" y="[tibstringpar:DSCableBoxY]" z="[zero]"/> + </UnionSolid> + <Box name="TIBString1UpMinCable" dx="[tibstringpar:MotherCableW]/2" dy="[tibstringpar:MotherCableT]/2" dz="[MotherCableL]/2"/> + <Box name="TIBString1UpMinCoolS" dx="[tibstringpar:CoolPipeDx]" dy="[tibstringpar:CoolPipeDy]" dz="[CoolL]/2"/> + <Box name="TIBString1UpMinCoolW" dx="[tibstringpar:CoolPipeX]+[tibstringpar:CoolPipeDx]" dy="[tibstringpar:CoolPipeDy]" dz="[tibstringpar:CoolPipeDx]"/> + </SolidSection> + <LogicalPartSection label="tibstring1ul.xml"> + <LogicalPart name="TIBString1UpMin1" category="unspecified"> + <rSolid name="TIBString1UpMin"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TIBString1UpMinCable" category="unspecified"> + <rSolid name="TIBString1UpMinCable"/> + <rMaterial name="tibmaterial:TIB_MCable"/> + </LogicalPart> + <LogicalPart name="TIBString1UpMinCoolS" category="unspecified"> + <rSolid name="TIBString1UpMinCoolS"/> + <rMaterial name="tibmaterial:TIB_CoolPipe"/> + </LogicalPart> + <LogicalPart name="TIBString1UpMinCoolW" category="unspecified"> + <rSolid name="TIBString1UpMinCoolW"/> + <rMaterial name="tibmaterial:TIB_CoolPipe"/> + </LogicalPart> + </LogicalPartSection> + <Algorithm name="track:DDTrackerZPosAlgo"> + <rParent name="tibstring1ul:TIBString1UpMin1"/> + <String name="ChildName" value="tibmodule0b:TIBModule0B"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Vector name="ZPositions" type="numeric" nEntries="3"> + ([Det0Z]+[ShiftDet]), ([Det1Z]+[ShiftDet]), ([Det2Z]+[ShiftDet]) </Vector> + <Vector name="Rotations" type="string" nEntries="3"> + tibstringpar:NULL, tibstringpar:NULL, tibstringpar:NULL</Vector> + </Algorithm> + <PosPartSection label="tibstring1ul.xml"> + <PosPart copyNumber="1"> + <rParent name="tibstring1ul:TIBString1UpMin1"/> + <rChild name="tibstringpar:MCHead"/> + <Translation x="[tibstringpar:MCHeadX]" y="[tibstringpar:DSMCHeadY]" z="[MCHeadZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibstring1ul:TIBString1UpMin1"/> + <rChild name="tibstring1ul:TIBString1UpMinCable"/> + <Translation x="[tibstringpar:MotherCableX]" y="[tibstringpar:DSMotherCableY]" z="[MCZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibstring1ul:TIBString1UpMin1"/> + <rChild name="tibstring1ul:TIBString1UpMinCoolS"/> + <Translation x="-[tibstringpar:CoolPipeX]" y="[tibstringpar:DSCoolPipeY]" z="[CoolSZ]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tibstring1ul:TIBString1UpMin1"/> + <rChild name="tibstring1ul:TIBString1UpMinCoolS"/> + <Translation x="[tibstringpar:CoolPipeX]" y="[tibstringpar:DSCoolPipeY]" z="[CoolSZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibstring1ul:TIBString1UpMin1"/> + <rChild name="tibstring1ul:TIBString1UpMinCoolW"/> + <Translation x="[zero]" y="[tibstringpar:DSCoolPipeY]" z="[CoolWZ]"/> + </PosPart> + </PosPartSection> + <Algorithm name="track:DDTrackerXYZPosAlgo"> + <rParent name="tibstring1ul:TIBString1UpMin1"/> + <String name="ChildName" value="tibmodpar:TIBModLedgeBox"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Vector name="XPositions" type="numeric" nEntries="3"> + [zero], [zero], [zero]</Vector> + <Vector name="YPositions" type="numeric" nEntries="3"> + [tibmodpar:DSLedgeBoxY], [tibmodpar:DSLedgeBoxY], [tibmodpar:DSLedgeBoxY]</Vector> + <Vector name="ZPositions" type="numeric" nEntries="3"> + ([Det0Z]+[ShiftDet]), ([Det1Z]+[ShiftDet]), ([Det2Z]+[ShiftDet]) </Vector> + <Vector name="Rotations" type="string" nEntries="3"> + tibstringpar:NULL, tibstringpar:NULL, tibstringpar:NULL</Vector> + </Algorithm> + <Algorithm name="track:DDTrackerXYZPosAlgo"> + <rParent name="tibstring1ul:TIBString1UpMin1"/> + <String name="ChildName" value="tibmodpar:TIBAOHLedge"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Vector name="XPositions" type="numeric" nEntries="3"> + [zero], [zero], [zero]</Vector> + <Vector name="YPositions" type="numeric" nEntries="3"> + [tibmodpar:DSLedgeBoxY], [tibmodpar:DSLedgeBoxY], [tibmodpar:DSLedgeBoxY]</Vector> + <Vector name="ZPositions" type="numeric" nEntries="3"> + ([Det0Z]+[ShiftAOHLedge]), ([Det1Z]+[ShiftAOHLedge]), ([Det2Z]+[ShiftAOHLedge]) </Vector> + <Vector name="Rotations" type="string" nEntries="3"> + tibstringpar:180D, tibstringpar:180D, tibstringpar:180D</Vector> + </Algorithm> + <Algorithm name="track:DDTrackerXYZPosAlgo"> + <rParent name="tibstring1ul:TIBString1UpMin1"/> + <String name="ChildName" value="tibmodpar:TIBDSAOHBox"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Vector name="XPositions" type="numeric" nEntries="3"> + [zero], [zero], [zero]</Vector> + <Vector name="YPositions" type="numeric" nEntries="3"> + [tibmodpar:DSAOHBoxY], [tibmodpar:DSAOHBoxY], [tibmodpar:DSAOHBoxY]</Vector> + <Vector name="ZPositions" type="numeric" nEntries="3"> + ([Det0Z]+[ShiftAOHBox]), ([Det1Z]+[ShiftAOHBox]), ([Det2Z]+[ShiftAOHBox]) </Vector> + <Vector name="Rotations" type="string" nEntries="3"> + tibstringpar:NULL, tibstringpar:NULL, tibstringpar:NULL</Vector> + </Algorithm> + <Algorithm name="track:DDTrackerXYZPosAlgo"> + <rParent name="tibstring1ul:TIBString1UpMin1"/> + <String name="ChildName" value="tibstringpar:DSMCModConn"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Vector name="XPositions" type="numeric" nEntries="3"> + [tibstringpar:MCModConnX], [tibstringpar:MCModConnX], [tibstringpar:MCModConnX]</Vector> + <Vector name="YPositions" type="numeric" nEntries="3"> + [tibstringpar:DSMCModConnY], [tibstringpar:DSMCModConnY], [tibstringpar:DSMCModConnY]</Vector> + <Vector name="ZPositions" type="numeric" nEntries="3"> + ([Det0Z]+[ShiftMCModConn]), ([Det1Z]+[ShiftMCModConn]), ([Det2Z]+[ShiftMCModConn]) </Vector> + <Vector name="Rotations" type="string" nEntries="3"> + tibstringpar:NULL, tibstringpar:NULL, tibstringpar:NULL</Vector> + </Algorithm> +</DDDefinition> diff --git a/examples/DDCMS/data/tibstring1ur.xml b/examples/DDCMS/data/tibstring1ur.xml new file mode 100644 index 0000000000000000000000000000000000000000..ee26fd6499201a9edac3904958971b84a5016f34 --- /dev/null +++ b/examples/DDCMS/data/tibstring1ur.xml @@ -0,0 +1,164 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <!-- LAYER 2 EXT FW --> + <ConstantsSection label="tibstring1ur.xml" eval="true"> + <Constant name="zero" value="0.0*fm"/> + <Constant name="FBSign" value="[tibstringpar:FWSign]"/> + <Constant name="IESign" value="[tibstringpar:EXT2Sign]"/> + <Constant name="MotherCableL" value="70.00*cm-2*[tibstringpar:MCHeadDz]"/> + <Constant name="ThisStringL" value="[tibstring1:StringUpPlsL]"/> + <Constant name="ThatStringL" value="[tibstringpar:StringL]-[ThisStringL]"/> + <Constant name="CoolL" value="0.5*[tibstringpar:StringL]-18.66*mm-2*[tibstringpar:CoolPipeDx]"/> + <Constant name="Det0Z" value="148.641*mm"/> + <Constant name="Det1Z" value="380.176*mm"/> + <Constant name="Det2Z" value="605.456*mm"/> + <Constant name="ShiftDet" value="-[FBSign]*0.5*[ThatStringL]+[IESign]*[tibmodpar:WaferZ]"/> + <Constant name="ShiftAOHLedge" value="[ShiftDet]+[IESign]*([tibmodpar:ModuleDz]+[tibmodpar:AOHLedgeModOffset])"/> + <Constant name="ShiftAOHBox" value="[ShiftDet]+[IESign]*([tibmodpar:ModuleDz]+[tibmodpar:AOHBoxDz])"/> + <Constant name="ShiftMCModConn" value="[ShiftDet]+[IESign]*([tibmodpar:ModuleDz]+[tibstringpar:MCModConnOffset])"/> + <Constant name="MCHeadZ" value="[FBSign]*(0.5*[ThisStringL]-[tibstringpar:MCHeadDz])"/> + <Constant name="MCZ" value="[FBSign]*(0.5*[ThisStringL]-0.5*[MotherCableL]-2*[tibstringpar:MCHeadDz])"/> + <Constant name="CoolSZ" value="[FBSign]*(0.5*[ThisStringL]-0.5*[CoolL])"/> + <Constant name="CoolWZ" value="[FBSign]*([ThisStringL]/2-[CoolL]-[tibstringpar:CoolPipeDx])"/> + </ConstantsSection> + <SolidSection label="tibstring1ur.xml"> + <Box name="TIBString1UpPlsCoolBox" dx="[tibstringpar:CoolBoxDx]" dy="[tibstringpar:CoolBoxDy]" dz="[ThisStringL]/2"/> + <Box name="TIBString1UpPlsMainPart" dx="[tibmodpar:ModuleDx]" dy="[tibmodpar:DSModuleDy]" dz="[ThisStringL]/2"/> + <Box name="TIBString1UpPlsSideCut" dx="[tibmodpar:DSModuleSideCutDx]" dy="[tibmodpar:DSModuleSideCutDy]" dz="[ThisStringL]/2+[tibmodpar:SideCutExtraZ]"/> + <Box name="TIBString1UpPlsCableBox" dx="[tibstringpar:CableBoxDx]" dy="[tibstringpar:DSCableBoxDy]" dz="[ThisStringL]/2"/> + <SubtractionSolid name="TIBString1UpPlsLeftCutted"> + <rSolid name="TIBString1UpPlsMainPart"/> + <rSolid name="TIBString1UpPlsSideCut"/> + <Translation x="-[tibmodpar:DSModuleSideCutX]" y="[tibmodpar:DSModuleSideCutY]" z="0."/> + </SubtractionSolid> + <SubtractionSolid name="TIBString1UpPlsModuleBox"> + <rSolid name="TIBString1UpPlsLeftCutted"/> + <rSolid name="TIBString1UpPlsSideCut"/> + <Translation x="[tibmodpar:DSModuleSideCutX]" y="[tibmodpar:DSModuleSideCutY]" z="0."/> + </SubtractionSolid> + <UnionSolid name="TIBString1UpPlsModAndCool"> + <rSolid name="TIBString1UpPlsModuleBox"/> + <rSolid name="TIBString1UpPlsCoolBox"/> + <Translation x="[zero]" y="[tibstringpar:DSCoolBoxY]" z="[zero]"/> + </UnionSolid> + <UnionSolid name="TIBString1UpPls"> + <rSolid name="TIBString1UpPlsModAndCool"/> + <rSolid name="TIBString1UpPlsCableBox"/> + <Translation x="[zero]" y="[tibstringpar:DSCableBoxY]" z="[zero]"/> + </UnionSolid> + <Box name="TIBString1UpPlsCable" dx="[tibstringpar:MotherCableW]/2" dy="[tibstringpar:MotherCableT]/2" dz="[MotherCableL]/2"/> + <Box name="TIBString1UpPlsCoolS" dx="[tibstringpar:CoolPipeDx]" dy="[tibstringpar:CoolPipeDy]" dz="[CoolL]/2"/> + <Box name="TIBString1UpPlsCoolW" dx="[tibstringpar:CoolPipeX]+[tibstringpar:CoolPipeDx]" dy="[tibstringpar:CoolPipeDy]" dz="[tibstringpar:CoolPipeDx]"/> + </SolidSection> + <LogicalPartSection label="tibstring1ur.xml"> + <LogicalPart name="TIBString1UpPls1" category="unspecified"> + <rSolid name="TIBString1UpPls"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TIBString1UpPlsCable" category="unspecified"> + <rSolid name="TIBString1UpPlsCable"/> + <rMaterial name="tibmaterial:TIB_MCable"/> + </LogicalPart> + <LogicalPart name="TIBString1UpPlsCoolS" category="unspecified"> + <rSolid name="TIBString1UpPlsCoolS"/> + <rMaterial name="tibmaterial:TIB_CoolPipe"/> + </LogicalPart> + <LogicalPart name="TIBString1UpPlsCoolW" category="unspecified"> + <rSolid name="TIBString1UpPlsCoolW"/> + <rMaterial name="tibmaterial:TIB_CoolPipe"/> + </LogicalPart> + </LogicalPartSection> + <Algorithm name="track:DDTrackerZPosAlgo"> + <rParent name="tibstring1ur:TIBString1UpPls1"/> + <String name="ChildName" value="tibmodule0b:TIBModule0B"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Vector name="ZPositions" type="numeric" nEntries="3"> + ([Det0Z]+[ShiftDet]), ([Det1Z]+[ShiftDet]), ([Det2Z]+[ShiftDet]) </Vector> + <Vector name="Rotations" type="string" nEntries="3"> + tibstringpar:NULL, tibstringpar:NULL, tibstringpar:NULL</Vector> + </Algorithm> + <PosPartSection label="tibstring1ur.xml"> + <PosPart copyNumber="1"> + <rParent name="tibstring1ur:TIBString1UpPls1"/> + <rChild name="tibstringpar:MCHead"/> + <Translation x="[tibstringpar:MCHeadX]" y="[tibstringpar:DSMCHeadY]" z="[MCHeadZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibstring1ur:TIBString1UpPls1"/> + <rChild name="tibstring1ur:TIBString1UpPlsCable"/> + <Translation x="[tibstringpar:MotherCableX]" y="[tibstringpar:DSMotherCableY]" z="[MCZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibstring1ur:TIBString1UpPls1"/> + <rChild name="tibstring1ur:TIBString1UpPlsCoolS"/> + <Translation x="-[tibstringpar:CoolPipeX]" y="[tibstringpar:DSCoolPipeY]" z="[CoolSZ]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tibstring1ur:TIBString1UpPls1"/> + <rChild name="tibstring1ur:TIBString1UpPlsCoolS"/> + <Translation x="[tibstringpar:CoolPipeX]" y="[tibstringpar:DSCoolPipeY]" z="[CoolSZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibstring1ur:TIBString1UpPls1"/> + <rChild name="tibstring1ur:TIBString1UpPlsCoolW"/> + <Translation x="[zero]" y="[tibstringpar:DSCoolPipeY]" z="[CoolWZ]"/> + </PosPart> + </PosPartSection> + <Algorithm name="track:DDTrackerXYZPosAlgo"> + <rParent name="tibstring1ur:TIBString1UpPls1"/> + <String name="ChildName" value="tibmodpar:TIBModLedgeBox"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Vector name="XPositions" type="numeric" nEntries="3"> + [zero], [zero], [zero]</Vector> + <Vector name="YPositions" type="numeric" nEntries="3"> + [tibmodpar:DSLedgeBoxY], [tibmodpar:DSLedgeBoxY], [tibmodpar:DSLedgeBoxY]</Vector> + <Vector name="ZPositions" type="numeric" nEntries="3"> + ([Det0Z]+[ShiftDet]), ([Det1Z]+[ShiftDet]), ([Det2Z]+[ShiftDet]) </Vector> + <Vector name="Rotations" type="string" nEntries="3"> + tibstringpar:NULL, tibstringpar:NULL, tibstringpar:NULL</Vector> + </Algorithm> + <Algorithm name="track:DDTrackerXYZPosAlgo"> + <rParent name="tibstring1ur:TIBString1UpPls1"/> + <String name="ChildName" value="tibmodpar:TIBAOHLedge"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Vector name="XPositions" type="numeric" nEntries="3"> + [zero], [zero], [zero]</Vector> + <Vector name="YPositions" type="numeric" nEntries="3"> + [tibmodpar:DSLedgeBoxY], [tibmodpar:DSLedgeBoxY], [tibmodpar:DSLedgeBoxY]</Vector> + <Vector name="ZPositions" type="numeric" nEntries="3"> + ([Det0Z]+[ShiftAOHLedge]), ([Det1Z]+[ShiftAOHLedge]), ([Det2Z]+[ShiftAOHLedge]) </Vector> + <Vector name="Rotations" type="string" nEntries="3"> + tibstringpar:NULL, tibstringpar:NULL, tibstringpar:NULL</Vector> + </Algorithm> + <Algorithm name="track:DDTrackerXYZPosAlgo"> + <rParent name="tibstring1ur:TIBString1UpPls1"/> + <String name="ChildName" value="tibmodpar:TIBDSAOHBox"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Vector name="XPositions" type="numeric" nEntries="3"> + [zero], [zero], [zero]</Vector> + <Vector name="YPositions" type="numeric" nEntries="3"> + [tibmodpar:DSAOHBoxY], [tibmodpar:DSAOHBoxY], [tibmodpar:DSAOHBoxY]</Vector> + <Vector name="ZPositions" type="numeric" nEntries="3"> + ([Det0Z]+[ShiftAOHBox]), ([Det1Z]+[ShiftAOHBox]), ([Det2Z]+[ShiftAOHBox]) </Vector> + <Vector name="Rotations" type="string" nEntries="3"> + tibstringpar:NULL, tibstringpar:NULL, tibstringpar:NULL</Vector> + </Algorithm> + <Algorithm name="track:DDTrackerXYZPosAlgo"> + <rParent name="tibstring1ur:TIBString1UpPls1"/> + <String name="ChildName" value="tibstringpar:DSMCModConn"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Vector name="XPositions" type="numeric" nEntries="3"> + [tibstringpar:MCModConnX], [tibstringpar:MCModConnX], [tibstringpar:MCModConnX]</Vector> + <Vector name="YPositions" type="numeric" nEntries="3"> + [tibstringpar:DSMCModConnY], [tibstringpar:DSMCModConnY], [tibstringpar:DSMCModConnY]</Vector> + <Vector name="ZPositions" type="numeric" nEntries="3"> + ([Det0Z]+[ShiftMCModConn]), ([Det1Z]+[ShiftMCModConn]), ([Det2Z]+[ShiftMCModConn]) </Vector> + <Vector name="Rotations" type="string" nEntries="3"> + tibstringpar:NULL, tibstringpar:NULL, tibstringpar:NULL</Vector> + </Algorithm> +</DDDefinition> diff --git a/examples/DDCMS/data/tibstring2.xml b/examples/DDCMS/data/tibstring2.xml new file mode 100644 index 0000000000000000000000000000000000000000..dfe479b1b9d09aac92d0cd9f0a9459944d5ed17a --- /dev/null +++ b/examples/DDCMS/data/tibstring2.xml @@ -0,0 +1,44 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tibstring2.xml" eval="true"> + <Constant name="zero" value="0.0*fm"/> + <Constant name="StringIntOff" value="38.87*mm"/> + <Constant name="StringExtOff" value="-8.73*mm"/> + <Constant name="StringLoMinL" value="0.5*[tibstringpar:StringL]+[StringIntOff]"/> + <Constant name="StringUpMinL" value="0.5*[tibstringpar:StringL]+[StringExtOff]"/> + <Constant name="StringLoPlsL" value="0.5*[tibstringpar:StringL]-[StringIntOff]"/> + <Constant name="StringUpPlsL" value="0.5*[tibstringpar:StringL]-[StringExtOff]"/> + </ConstantsSection> + <LogicalPartSection label="tibstring2.xml"> + <LogicalPart name="TIBString2Lo1" category="unspecified"> + <rSolid name="tibstringpar:TIBSSString1"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TIBString2Up1" category="unspecified"> + <rSolid name="tibstringpar:TIBSSString1"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + </LogicalPartSection> + <PosPartSection label="tibstring2.xml"> + <PosPart copyNumber="1"> + <rParent name="tibstring2:TIBString2Lo1"/> + <rChild name="tibstring2ll:TIBString2LoMin1"/> + <Translation x="[zero]" y="[zero]" z="-[tibstring2:StringLoPlsL]/2"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibstring2:TIBString2Lo1"/> + <rChild name="tibstring2lr:TIBString2LoPls1"/> + <Translation x="[zero]" y="[zero]" z="[tibstring2:StringLoMinL]/2"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibstring2:TIBString2Up1"/> + <rChild name="tibstring2ul:TIBString2UpMin1"/> + <Translation x="[zero]" y="[zero]" z="-[tibstring2:StringUpPlsL]/2"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibstring2:TIBString2Up1"/> + <rChild name="tibstring2ur:TIBString2UpPls1"/> + <Translation x="[zero]" y="[zero]" z="[tibstring2:StringUpMinL]/2"/> + </PosPart> + </PosPartSection> +</DDDefinition> diff --git a/examples/DDCMS/data/tibstring2ll.xml b/examples/DDCMS/data/tibstring2ll.xml new file mode 100644 index 0000000000000000000000000000000000000000..8c58e5ad588535fa9987981a0bb8e4957a0207e7 --- /dev/null +++ b/examples/DDCMS/data/tibstring2ll.xml @@ -0,0 +1,153 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <!-- LAYER 3 INT BW --> + <ConstantsSection label="tibstring2ll.xml" eval="true"> + <Constant name="zero" value="0.0*fm"/> + <Constant name="FBSign" value="[tibstringpar:BWSign]"/> + <Constant name="IESign" value="[tibstringpar:INT3Sign]"/> + <Constant name="MotherCableL" value="59.99*cm-2*[tibstringpar:MCHeadDz]"/> + <Constant name="ThisStringL" value="[tibstring2:StringLoMinL]"/> + <Constant name="ThatStringL" value="[tibstringpar:StringL]-[ThisStringL]"/> + <Constant name="CoolL" value="0.5*[tibstringpar:StringL]+24.93*mm-2*[tibstringpar:CoolPipeDx]"/> + <Constant name="Det0Z" value="-456.191*mm"/> + <Constant name="Det1Z" value="-246.263*mm"/> + <Constant name="Det2Z" value="-36.0950*mm"/> + <Constant name="ShiftDet" value="-[FBSign]*0.5*[ThatStringL]+[IESign]*[tibmodpar:WaferZ]"/> + <Constant name="ShiftAOHLedge" value="[ShiftDet]+[IESign]*([tibmodpar:ModuleDz]+[tibmodpar:AOHLedgeModOffset])"/> + <Constant name="ShiftAOHBox" value="[ShiftDet]+[IESign]*([tibmodpar:ModuleDz]+[tibmodpar:AOHBoxDz])"/> + <Constant name="ShiftMCModConn" value="[ShiftDet]+[IESign]*([tibmodpar:ModuleDz]+[tibstringpar:MCModConnOffset])"/> + <Constant name="MCHeadZ" value="[FBSign]*(0.5*[ThisStringL]-[tibstringpar:MCHeadDz])"/> + <Constant name="MCZ" value="[FBSign]*(0.5*[ThisStringL]-0.5*[MotherCableL]-2*[tibstringpar:MCHeadDz])"/> + <Constant name="CoolSZ" value="[FBSign]*(0.5*[ThisStringL]-0.5*[CoolL])"/> + <Constant name="CoolWZ" value="[FBSign]*([ThisStringL]/2-[CoolL]-[tibstringpar:CoolPipeDx])"/> + </ConstantsSection> + <SolidSection label="tibstring2ll.xml"> + <Box name="TIBString2LoMinCoolBox" dx="[tibstringpar:CoolBoxDx]" dy="[tibstringpar:CoolBoxDy]" dz="[ThisStringL]/2"/> + <Box name="TIBString2LoMinModuleBox" dx="[tibmodpar:ModuleDx]" dy="[tibmodpar:SSModuleDy]" dz="[ThisStringL]/2"/> + <Box name="TIBString2LoMinCableBox" dx="[tibstringpar:CableBoxDx]" dy="[tibstringpar:SSCableBoxDy]" dz="[ThisStringL]/2"/> + <UnionSolid name="TIBString2LoMinModAndCool"> + <rSolid name="TIBString2LoMinModuleBox"/> + <rSolid name="TIBString2LoMinCoolBox"/> + <Translation x="[zero]" y="[tibstringpar:SSCoolBoxY]" z="[zero]"/> + </UnionSolid> + <UnionSolid name="TIBString2LoMin"> + <rSolid name="TIBString2LoMinModAndCool"/> + <rSolid name="TIBString2LoMinCableBox"/> + <Translation x="[zero]" y="[tibstringpar:SSCableBoxY]" z="[zero]"/> + </UnionSolid> + <Box name="TIBString2LoMinCable" dx="[tibstringpar:MotherCableW]/2" dy="[tibstringpar:MotherCableT]/2" dz="[MotherCableL]/2"/> + <Box name="TIBString2LoMinCoolS" dx="[tibstringpar:CoolPipeDx]" dy="[tibstringpar:CoolPipeDy]" dz="[CoolL]/2"/> + <Box name="TIBString2LoMinCoolW" dx="[tibstringpar:CoolPipeX]+[tibstringpar:CoolPipeDx]" dy="[tibstringpar:CoolPipeDy]" dz="[tibstringpar:CoolPipeDx]"/> + </SolidSection> + <LogicalPartSection label="tibstring2ll.xml"> + <LogicalPart name="TIBString2LoMin1" category="unspecified"> + <rSolid name="TIBString2LoMin"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TIBString2LoMinCable" category="unspecified"> + <rSolid name="TIBString2LoMinCable"/> + <rMaterial name="tibmaterial:TIB_MCable"/> + </LogicalPart> + <LogicalPart name="TIBString2LoMinCoolS" category="unspecified"> + <rSolid name="TIBString2LoMinCoolS"/> + <rMaterial name="tibmaterial:TIB_CoolPipe"/> + </LogicalPart> + <LogicalPart name="TIBString2LoMinCoolW" category="unspecified"> + <rSolid name="TIBString2LoMinCoolW"/> + <rMaterial name="tibmaterial:TIB_CoolPipe"/> + </LogicalPart> + </LogicalPartSection> + <Algorithm name="track:DDTrackerZPosAlgo"> + <rParent name="tibstring2ll:TIBString2LoMin1"/> + <String name="ChildName" value="tibmodule2:TIBModule2"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Vector name="ZPositions" type="numeric" nEntries="3"> + ([Det0Z]+[ShiftDet]), ([Det1Z]+[ShiftDet]), ([Det2Z]+[ShiftDet]) </Vector> + <Vector name="Rotations" type="string" nEntries="3"> + tibstringpar:NULL, tibstringpar:NULL, tibstringpar:NULL</Vector> + </Algorithm> + <PosPartSection label="tibstring2ll.xml"> + <PosPart copyNumber="1"> + <rParent name="tibstring2ll:TIBString2LoMin1"/> + <rChild name="tibstringpar:MCHead"/> + <Translation x="[tibstringpar:MCHeadX]" y="[tibstringpar:SSMCHeadY]" z="[MCHeadZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibstring2ll:TIBString2LoMin1"/> + <rChild name="tibstring2ll:TIBString2LoMinCable"/> + <Translation x="[tibstringpar:MotherCableX]" y="[tibstringpar:SSMotherCableY]" z="[MCZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibstring2ll:TIBString2LoMin1"/> + <rChild name="tibstring2ll:TIBString2LoMinCoolS"/> + <Translation x="-[tibstringpar:CoolPipeX]" y="[tibstringpar:SSCoolPipeY]" z="[CoolSZ]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tibstring2ll:TIBString2LoMin1"/> + <rChild name="tibstring2ll:TIBString2LoMinCoolS"/> + <Translation x="[tibstringpar:CoolPipeX]" y="[tibstringpar:SSCoolPipeY]" z="[CoolSZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibstring2ll:TIBString2LoMin1"/> + <rChild name="tibstring2ll:TIBString2LoMinCoolW"/> + <Translation x="[zero]" y="[tibstringpar:SSCoolPipeY]" z="[CoolWZ]"/> + </PosPart> + </PosPartSection> + <Algorithm name="track:DDTrackerXYZPosAlgo"> + <rParent name="tibstring2ll:TIBString2LoMin1"/> + <String name="ChildName" value="tibmodpar:TIBModLedgeBox"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Vector name="XPositions" type="numeric" nEntries="3"> + [zero], [zero], [zero]</Vector> + <Vector name="YPositions" type="numeric" nEntries="3"> + [tibmodpar:SSLedgeBoxY], [tibmodpar:SSLedgeBoxY], [tibmodpar:SSLedgeBoxY]</Vector> + <Vector name="ZPositions" type="numeric" nEntries="3"> + ([Det0Z]+[ShiftDet]), ([Det1Z]+[ShiftDet]), ([Det2Z]+[ShiftDet]) </Vector> + <Vector name="Rotations" type="string" nEntries="3"> + tibstringpar:NULL, tibstringpar:NULL, tibstringpar:NULL</Vector> + </Algorithm> + <Algorithm name="track:DDTrackerXYZPosAlgo"> + <rParent name="tibstring2ll:TIBString2LoMin1"/> + <String name="ChildName" value="tibmodpar:TIBAOHLedge"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Vector name="XPositions" type="numeric" nEntries="3"> + [zero], [zero], [zero]</Vector> + <Vector name="YPositions" type="numeric" nEntries="3"> + [tibmodpar:SSLedgeBoxY], [tibmodpar:SSLedgeBoxY], [tibmodpar:SSLedgeBoxY]</Vector> + <Vector name="ZPositions" type="numeric" nEntries="3"> + ([Det0Z]+[ShiftAOHLedge]), ([Det1Z]+[ShiftAOHLedge]), ([Det2Z]+[ShiftAOHLedge]) </Vector> + <Vector name="Rotations" type="string" nEntries="3"> + tibstringpar:180D, tibstringpar:180D, tibstringpar:180D</Vector> + </Algorithm> + <Algorithm name="track:DDTrackerXYZPosAlgo"> + <rParent name="tibstring2ll:TIBString2LoMin1"/> + <String name="ChildName" value="tibmodpar:TIBSSAOHBox"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Vector name="XPositions" type="numeric" nEntries="3"> + [tibmodpar:SSAOHBoxX], [tibmodpar:SSAOHBoxX], [tibmodpar:SSAOHBoxX]</Vector> + <Vector name="YPositions" type="numeric" nEntries="3"> + [tibmodpar:SSAOHBoxY], [tibmodpar:SSAOHBoxY], [tibmodpar:SSAOHBoxY]</Vector> + <Vector name="ZPositions" type="numeric" nEntries="3"> + ([Det0Z]+[ShiftAOHBox]), ([Det1Z]+[ShiftAOHBox]), ([Det2Z]+[ShiftAOHBox]) </Vector> + <Vector name="Rotations" type="string" nEntries="3"> + tibstringpar:NULL, tibstringpar:NULL, tibstringpar:NULL</Vector> + </Algorithm> + <Algorithm name="track:DDTrackerXYZPosAlgo"> + <rParent name="tibstring2ll:TIBString2LoMin1"/> + <String name="ChildName" value="tibstringpar:SSMCModConn"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Vector name="XPositions" type="numeric" nEntries="3"> + [tibstringpar:MCModConnX], [tibstringpar:MCModConnX], [tibstringpar:MCModConnX]</Vector> + <Vector name="YPositions" type="numeric" nEntries="3"> + [tibstringpar:SSMCModConnY], [tibstringpar:SSMCModConnY], [tibstringpar:SSMCModConnY]</Vector> + <Vector name="ZPositions" type="numeric" nEntries="3"> + ([Det0Z]+[ShiftMCModConn]), ([Det1Z]+[ShiftMCModConn]), ([Det2Z]+[ShiftMCModConn]) </Vector> + <Vector name="Rotations" type="string" nEntries="3"> + tibstringpar:NULL, tibstringpar:NULL, tibstringpar:NULL</Vector> + </Algorithm> +</DDDefinition> diff --git a/examples/DDCMS/data/tibstring2lr.xml b/examples/DDCMS/data/tibstring2lr.xml new file mode 100644 index 0000000000000000000000000000000000000000..68b943d8365d7827ae02b681d3cb225a2475939d --- /dev/null +++ b/examples/DDCMS/data/tibstring2lr.xml @@ -0,0 +1,153 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <!-- LAYER 3 INT FW --> + <ConstantsSection label="tibstring2lr.xml" eval="true"> + <Constant name="zero" value="0.0*fm"/> + <Constant name="FBSign" value="[tibstringpar:FWSign]"/> + <Constant name="IESign" value="[tibstringpar:INT3Sign]"/> + <Constant name="MotherCableL" value="67.44*cm-2*[tibstringpar:MCHeadDz]"/> + <Constant name="ThisStringL" value="[tibstring2:StringLoPlsL]"/> + <Constant name="ThatStringL" value="[tibstringpar:StringL]-[ThisStringL]"/> + <Constant name="CoolL" value="0.5*[tibstringpar:StringL]-42.72*mm-2*[tibstringpar:CoolPipeDx]"/> + <Constant name="Det0Z" value="174.198*mm"/> + <Constant name="Det1Z" value="384.254*mm"/> + <Constant name="Det2Z" value="593.937*mm"/> + <Constant name="ShiftDet" value="-[FBSign]*0.5*[ThatStringL]+[IESign]*[tibmodpar:WaferZ]"/> + <Constant name="ShiftAOHLedge" value="[ShiftDet]+[IESign]*([tibmodpar:ModuleDz]+[tibmodpar:AOHLedgeModOffset])"/> + <Constant name="ShiftAOHBox" value="[ShiftDet]+[IESign]*([tibmodpar:ModuleDz]+[tibmodpar:AOHBoxDz])"/> + <Constant name="ShiftMCModConn" value="[ShiftDet]+[IESign]*([tibmodpar:ModuleDz]+[tibstringpar:MCModConnOffset])"/> + <Constant name="MCHeadZ" value="[FBSign]*(0.5*[ThisStringL]-[tibstringpar:MCHeadDz])"/> + <Constant name="MCZ" value="[FBSign]*(0.5*[ThisStringL]-0.5*[MotherCableL]-2*[tibstringpar:MCHeadDz])"/> + <Constant name="CoolSZ" value="[FBSign]*(0.5*[ThisStringL]-0.5*[CoolL])"/> + <Constant name="CoolWZ" value="[FBSign]*([ThisStringL]/2-[CoolL]-[tibstringpar:CoolPipeDx])"/> + </ConstantsSection> + <SolidSection label="tibstring2lr.xml"> + <Box name="TIBString2LoPlsCoolBox" dx="[tibstringpar:CoolBoxDx]" dy="[tibstringpar:CoolBoxDy]" dz="[ThisStringL]/2"/> + <Box name="TIBString2LoPlsModuleBox" dx="[tibmodpar:ModuleDx]" dy="[tibmodpar:SSModuleDy]" dz="[ThisStringL]/2"/> + <Box name="TIBString2LoPlsCableBox" dx="[tibstringpar:CableBoxDx]" dy="[tibstringpar:SSCableBoxDy]" dz="[ThisStringL]/2"/> + <UnionSolid name="TIBString2LoPlsModAndCool"> + <rSolid name="TIBString2LoPlsModuleBox"/> + <rSolid name="TIBString2LoPlsCoolBox"/> + <Translation x="[zero]" y="[tibstringpar:SSCoolBoxY]" z="[zero]"/> + </UnionSolid> + <UnionSolid name="TIBString2LoPls"> + <rSolid name="TIBString2LoPlsModAndCool"/> + <rSolid name="TIBString2LoPlsCableBox"/> + <Translation x="[zero]" y="[tibstringpar:SSCableBoxY]" z="[zero]"/> + </UnionSolid> + <Box name="TIBString2LoPlsCable" dx="[tibstringpar:MotherCableW]/2" dy="[tibstringpar:MotherCableT]/2" dz="[MotherCableL]/2"/> + <Box name="TIBString2LoPlsCoolS" dx="[tibstringpar:CoolPipeDx]" dy="[tibstringpar:CoolPipeDy]" dz="[CoolL]/2"/> + <Box name="TIBString2LoPlsCoolW" dx="[tibstringpar:CoolPipeX]+[tibstringpar:CoolPipeDx]" dy="[tibstringpar:CoolPipeDy]" dz="[tibstringpar:CoolPipeDx]"/> + </SolidSection> + <LogicalPartSection label="tibstring2lr.xml"> + <LogicalPart name="TIBString2LoPls1" category="unspecified"> + <rSolid name="TIBString2LoPls"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TIBString2LoPlsCable" category="unspecified"> + <rSolid name="TIBString2LoPlsCable"/> + <rMaterial name="tibmaterial:TIB_MCable"/> + </LogicalPart> + <LogicalPart name="TIBString2LoPlsCoolS" category="unspecified"> + <rSolid name="TIBString2LoPlsCoolS"/> + <rMaterial name="tibmaterial:TIB_CoolPipe"/> + </LogicalPart> + <LogicalPart name="TIBString2LoPlsCoolW" category="unspecified"> + <rSolid name="TIBString2LoPlsCoolW"/> + <rMaterial name="tibmaterial:TIB_CoolPipe"/> + </LogicalPart> + </LogicalPartSection> + <Algorithm name="track:DDTrackerZPosAlgo"> + <rParent name="tibstring2lr:TIBString2LoPls1"/> + <String name="ChildName" value="tibmodule2:TIBModule2"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Vector name="ZPositions" type="numeric" nEntries="3"> + ([Det0Z]+[ShiftDet]), ([Det1Z]+[ShiftDet]), ([Det2Z]+[ShiftDet]) </Vector> + <Vector name="Rotations" type="string" nEntries="3"> + tibstringpar:NULL, tibstringpar:NULL, tibstringpar:NULL</Vector> + </Algorithm> + <PosPartSection label="tibstring2lr.xml"> + <PosPart copyNumber="1"> + <rParent name="tibstring2lr:TIBString2LoPls1"/> + <rChild name="tibstringpar:MCHead"/> + <Translation x="[tibstringpar:MCHeadX]" y="[tibstringpar:SSMCHeadY]" z="[MCHeadZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibstring2lr:TIBString2LoPls1"/> + <rChild name="tibstring2lr:TIBString2LoPlsCable"/> + <Translation x="[tibstringpar:MotherCableX]" y="[tibstringpar:SSMotherCableY]" z="[MCZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibstring2lr:TIBString2LoPls1"/> + <rChild name="tibstring2lr:TIBString2LoPlsCoolS"/> + <Translation x="-[tibstringpar:CoolPipeX]" y="[tibstringpar:SSCoolPipeY]" z="[CoolSZ]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tibstring2lr:TIBString2LoPls1"/> + <rChild name="tibstring2lr:TIBString2LoPlsCoolS"/> + <Translation x="[tibstringpar:CoolPipeX]" y="[tibstringpar:SSCoolPipeY]" z="[CoolSZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibstring2lr:TIBString2LoPls1"/> + <rChild name="tibstring2lr:TIBString2LoPlsCoolW"/> + <Translation x="[zero]" y="[tibstringpar:SSCoolPipeY]" z="[CoolWZ]"/> + </PosPart> + </PosPartSection> + <Algorithm name="track:DDTrackerXYZPosAlgo"> + <rParent name="tibstring2lr:TIBString2LoPls1"/> + <String name="ChildName" value="tibmodpar:TIBModLedgeBox"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Vector name="XPositions" type="numeric" nEntries="3"> + [zero], [zero], [zero]</Vector> + <Vector name="YPositions" type="numeric" nEntries="3"> + [tibmodpar:SSLedgeBoxY], [tibmodpar:SSLedgeBoxY], [tibmodpar:SSLedgeBoxY]</Vector> + <Vector name="ZPositions" type="numeric" nEntries="3"> + ([Det0Z]+[ShiftDet]), ([Det1Z]+[ShiftDet]), ([Det2Z]+[ShiftDet]) </Vector> + <Vector name="Rotations" type="string" nEntries="3"> + tibstringpar:NULL, tibstringpar:NULL, tibstringpar:NULL</Vector> + </Algorithm> + <Algorithm name="track:DDTrackerXYZPosAlgo"> + <rParent name="tibstring2lr:TIBString2LoPls1"/> + <String name="ChildName" value="tibmodpar:TIBAOHLedge"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Vector name="XPositions" type="numeric" nEntries="3"> + [zero], [zero], [zero]</Vector> + <Vector name="YPositions" type="numeric" nEntries="3"> + [tibmodpar:SSLedgeBoxY], [tibmodpar:SSLedgeBoxY], [tibmodpar:SSLedgeBoxY]</Vector> + <Vector name="ZPositions" type="numeric" nEntries="3"> + ([Det0Z]+[ShiftAOHLedge]), ([Det1Z]+[ShiftAOHLedge]), ([Det2Z]+[ShiftAOHLedge]) </Vector> + <Vector name="Rotations" type="string" nEntries="3"> + tibstringpar:NULL, tibstringpar:NULL, tibstringpar:NULL</Vector> + </Algorithm> + <Algorithm name="track:DDTrackerXYZPosAlgo"> + <rParent name="tibstring2lr:TIBString2LoPls1"/> + <String name="ChildName" value="tibmodpar:TIBSSAOHBox"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Vector name="XPositions" type="numeric" nEntries="3"> + [tibmodpar:SSAOHBoxX], [tibmodpar:SSAOHBoxX], [tibmodpar:SSAOHBoxX]</Vector> + <Vector name="YPositions" type="numeric" nEntries="3"> + [tibmodpar:SSAOHBoxY], [tibmodpar:SSAOHBoxY], [tibmodpar:SSAOHBoxY]</Vector> + <Vector name="ZPositions" type="numeric" nEntries="3"> + ([Det0Z]+[ShiftAOHBox]), ([Det1Z]+[ShiftAOHBox]), ([Det2Z]+[ShiftAOHBox]) </Vector> + <Vector name="Rotations" type="string" nEntries="3"> + tibstringpar:NULL, tibstringpar:NULL, tibstringpar:NULL</Vector> + </Algorithm> + <Algorithm name="track:DDTrackerXYZPosAlgo"> + <rParent name="tibstring2lr:TIBString2LoPls1"/> + <String name="ChildName" value="tibstringpar:SSMCModConn"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Vector name="XPositions" type="numeric" nEntries="3"> + [tibstringpar:MCModConnX], [tibstringpar:MCModConnX], [tibstringpar:MCModConnX]</Vector> + <Vector name="YPositions" type="numeric" nEntries="3"> + [tibstringpar:SSMCModConnY], [tibstringpar:SSMCModConnY], [tibstringpar:SSMCModConnY]</Vector> + <Vector name="ZPositions" type="numeric" nEntries="3"> + ([Det0Z]+[ShiftMCModConn]), ([Det1Z]+[ShiftMCModConn]), ([Det2Z]+[ShiftMCModConn]) </Vector> + <Vector name="Rotations" type="string" nEntries="3"> + tibstringpar:NULL, tibstringpar:NULL, tibstringpar:NULL</Vector> + </Algorithm> +</DDDefinition> diff --git a/examples/DDCMS/data/tibstring2ul.xml b/examples/DDCMS/data/tibstring2ul.xml new file mode 100644 index 0000000000000000000000000000000000000000..7da6da682d8a9d1b2e4667f02876a3409192a98d --- /dev/null +++ b/examples/DDCMS/data/tibstring2ul.xml @@ -0,0 +1,153 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <!-- LAYER 3 EXT BW --> + <ConstantsSection label="tibstring2ul.xml" eval="true"> + <Constant name="zero" value="0.0*fm"/> + <Constant name="FBSign" value="[tibstringpar:BWSign]"/> + <Constant name="IESign" value="[tibstringpar:EXT3Sign]"/> + <Constant name="MotherCableL" value="69.60*cm-2*[tibstringpar:MCHeadDz]"/> + <Constant name="ThisStringL" value="[tibstring2:StringUpMinL]"/> + <Constant name="ThatStringL" value="[tibstringpar:StringL]-[ThisStringL]"/> + <Constant name="CoolL" value="0.5*[tibstringpar:StringL]-20.57*mm-2*[tibstringpar:CoolPipeDx]"/> + <Constant name="Det0Z" value="-605.456*mm"/> + <Constant name="Det1Z" value="-379.133*mm"/> + <Constant name="Det2Z" value="-152.408*mm"/> + <Constant name="ShiftDet" value="-[FBSign]*0.5*[ThatStringL]+[IESign]*[tibmodpar:WaferZ]"/> + <Constant name="ShiftAOHLedge" value="[ShiftDet]+[IESign]*([tibmodpar:ModuleDz]+[tibmodpar:AOHLedgeModOffset])"/> + <Constant name="ShiftAOHBox" value="[ShiftDet]+[IESign]*([tibmodpar:ModuleDz]+[tibmodpar:AOHBoxDz])"/> + <Constant name="ShiftMCModConn" value="[ShiftDet]+[IESign]*([tibmodpar:ModuleDz]+[tibstringpar:MCModConnOffset])"/> + <Constant name="MCHeadZ" value="[FBSign]*(0.5*[ThisStringL]-[tibstringpar:MCHeadDz])"/> + <Constant name="MCZ" value="[FBSign]*(0.5*[ThisStringL]-0.5*[MotherCableL]-2*[tibstringpar:MCHeadDz])"/> + <Constant name="CoolSZ" value="[FBSign]*(0.5*[ThisStringL]-0.5*[CoolL])"/> + <Constant name="CoolWZ" value="[FBSign]*([ThisStringL]/2-[CoolL]-[tibstringpar:CoolPipeDx])"/> + </ConstantsSection> + <SolidSection label="tibstring2ul.xml"> + <Box name="TIBString2UpMinCoolBox" dx="[tibstringpar:CoolBoxDx]" dy="[tibstringpar:CoolBoxDy]" dz="[ThisStringL]/2"/> + <Box name="TIBString2UpMinModuleBox" dx="[tibmodpar:ModuleDx]" dy="[tibmodpar:SSModuleDy]" dz="[ThisStringL]/2"/> + <Box name="TIBString2UpMinCableBox" dx="[tibstringpar:CableBoxDx]" dy="[tibstringpar:SSCableBoxDy]" dz="[ThisStringL]/2"/> + <UnionSolid name="TIBString2UpMinModAndCool"> + <rSolid name="TIBString2UpMinModuleBox"/> + <rSolid name="TIBString2UpMinCoolBox"/> + <Translation x="[zero]" y="[tibstringpar:SSCoolBoxY]" z="[zero]"/> + </UnionSolid> + <UnionSolid name="TIBString2UpMin"> + <rSolid name="TIBString2UpMinModAndCool"/> + <rSolid name="TIBString2UpMinCableBox"/> + <Translation x="[zero]" y="[tibstringpar:SSCableBoxY]" z="[zero]"/> + </UnionSolid> + <Box name="TIBString2UpMinCable" dx="[tibstringpar:MotherCableW]/2" dy="[tibstringpar:MotherCableT]/2" dz="[MotherCableL]/2"/> + <Box name="TIBString2UpMinCoolS" dx="[tibstringpar:CoolPipeDx]" dy="[tibstringpar:CoolPipeDy]" dz="[CoolL]/2"/> + <Box name="TIBString2UpMinCoolW" dx="[tibstringpar:CoolPipeX]+[tibstringpar:CoolPipeDx]" dy="[tibstringpar:CoolPipeDy]" dz="[tibstringpar:CoolPipeDx]"/> + </SolidSection> + <LogicalPartSection label="tibstring2ul.xml"> + <LogicalPart name="TIBString2UpMin1" category="unspecified"> + <rSolid name="TIBString2UpMin"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TIBString2UpMinCable" category="unspecified"> + <rSolid name="TIBString2UpMinCable"/> + <rMaterial name="tibmaterial:TIB_MCable"/> + </LogicalPart> + <LogicalPart name="TIBString2UpMinCoolS" category="unspecified"> + <rSolid name="TIBString2UpMinCoolS"/> + <rMaterial name="tibmaterial:TIB_CoolPipe"/> + </LogicalPart> + <LogicalPart name="TIBString2UpMinCoolW" category="unspecified"> + <rSolid name="TIBString2UpMinCoolW"/> + <rMaterial name="tibmaterial:TIB_CoolPipe"/> + </LogicalPart> + </LogicalPartSection> + <Algorithm name="track:DDTrackerZPosAlgo"> + <rParent name="tibstring2ul:TIBString2UpMin1"/> + <String name="ChildName" value="tibmodule2:TIBModule2"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Vector name="ZPositions" type="numeric" nEntries="3"> + ([Det0Z]+[ShiftDet]), ([Det1Z]+[ShiftDet]), ([Det2Z]+[ShiftDet]) </Vector> + <Vector name="Rotations" type="string" nEntries="3"> + tibstringpar:180D, tibstringpar:180D, tibstringpar:180D</Vector> + </Algorithm> + <PosPartSection label="tibstring2ul.xml"> + <PosPart copyNumber="1"> + <rParent name="tibstring2ul:TIBString2UpMin1"/> + <rChild name="tibstringpar:MCHead"/> + <Translation x="[tibstringpar:MCHeadX]" y="[tibstringpar:SSMCHeadY]" z="[MCHeadZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibstring2ul:TIBString2UpMin1"/> + <rChild name="tibstring2ul:TIBString2UpMinCable"/> + <Translation x="[tibstringpar:MotherCableX]" y="[tibstringpar:SSMotherCableY]" z="[MCZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibstring2ul:TIBString2UpMin1"/> + <rChild name="tibstring2ul:TIBString2UpMinCoolS"/> + <Translation x="-[tibstringpar:CoolPipeX]" y="[tibstringpar:SSCoolPipeY]" z="[CoolSZ]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tibstring2ul:TIBString2UpMin1"/> + <rChild name="tibstring2ul:TIBString2UpMinCoolS"/> + <Translation x="[tibstringpar:CoolPipeX]" y="[tibstringpar:SSCoolPipeY]" z="[CoolSZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibstring2ul:TIBString2UpMin1"/> + <rChild name="tibstring2ul:TIBString2UpMinCoolW"/> + <Translation x="[zero]" y="[tibstringpar:SSCoolPipeY]" z="[CoolWZ]"/> + </PosPart> + </PosPartSection> + <Algorithm name="track:DDTrackerXYZPosAlgo"> + <rParent name="tibstring2ul:TIBString2UpMin1"/> + <String name="ChildName" value="tibmodpar:TIBModLedgeBox"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Vector name="XPositions" type="numeric" nEntries="3"> + [zero], [zero], [zero]</Vector> + <Vector name="YPositions" type="numeric" nEntries="3"> + [tibmodpar:SSLedgeBoxY], [tibmodpar:SSLedgeBoxY], [tibmodpar:SSLedgeBoxY]</Vector> + <Vector name="ZPositions" type="numeric" nEntries="3"> + ([Det0Z]+[ShiftDet]), ([Det1Z]+[ShiftDet]), ([Det2Z]+[ShiftDet]) </Vector> + <Vector name="Rotations" type="string" nEntries="3"> + tibstringpar:180D, tibstringpar:180D, tibstringpar:180D</Vector> + </Algorithm> + <Algorithm name="track:DDTrackerXYZPosAlgo"> + <rParent name="tibstring2ul:TIBString2UpMin1"/> + <String name="ChildName" value="tibmodpar:TIBAOHLedge"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Vector name="XPositions" type="numeric" nEntries="3"> + [zero], [zero], [zero]</Vector> + <Vector name="YPositions" type="numeric" nEntries="3"> + [tibmodpar:SSLedgeBoxY], [tibmodpar:SSLedgeBoxY], [tibmodpar:SSLedgeBoxY]</Vector> + <Vector name="ZPositions" type="numeric" nEntries="3"> + ([Det0Z]+[ShiftAOHLedge]), ([Det1Z]+[ShiftAOHLedge]), ([Det2Z]+[ShiftAOHLedge]) </Vector> + <Vector name="Rotations" type="string" nEntries="3"> + tibstringpar:180D, tibstringpar:180D, tibstringpar:180D</Vector> + </Algorithm> + <Algorithm name="track:DDTrackerXYZPosAlgo"> + <rParent name="tibstring2ul:TIBString2UpMin1"/> + <String name="ChildName" value="tibmodpar:TIBSSAOHBox"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Vector name="XPositions" type="numeric" nEntries="3"> + [tibmodpar:SSAOHBoxX], [tibmodpar:SSAOHBoxX], [tibmodpar:SSAOHBoxX]</Vector> + <Vector name="YPositions" type="numeric" nEntries="3"> + [tibmodpar:SSAOHBoxY], [tibmodpar:SSAOHBoxY], [tibmodpar:SSAOHBoxY]</Vector> + <Vector name="ZPositions" type="numeric" nEntries="3"> + ([Det0Z]+[ShiftAOHBox]), ([Det1Z]+[ShiftAOHBox]), ([Det2Z]+[ShiftAOHBox]) </Vector> + <Vector name="Rotations" type="string" nEntries="3"> + tibstringpar:180D, tibstringpar:180D, tibstringpar:180D</Vector> + </Algorithm> + <Algorithm name="track:DDTrackerXYZPosAlgo"> + <rParent name="tibstring2ul:TIBString2UpMin1"/> + <String name="ChildName" value="tibstringpar:SSMCModConn"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Vector name="XPositions" type="numeric" nEntries="3"> + [tibstringpar:MCModConnX], [tibstringpar:MCModConnX], [tibstringpar:MCModConnX]</Vector> + <Vector name="YPositions" type="numeric" nEntries="3"> + [tibstringpar:SSMCModConnY], [tibstringpar:SSMCModConnY], [tibstringpar:SSMCModConnY]</Vector> + <Vector name="ZPositions" type="numeric" nEntries="3"> + ([Det0Z]+[ShiftMCModConn]), ([Det1Z]+[ShiftMCModConn]), ([Det2Z]+[ShiftMCModConn]) </Vector> + <Vector name="Rotations" type="string" nEntries="3"> + tibstringpar:NULL, tibstringpar:NULL, tibstringpar:NULL</Vector> + </Algorithm> +</DDDefinition> diff --git a/examples/DDCMS/data/tibstring2ur.xml b/examples/DDCMS/data/tibstring2ur.xml new file mode 100644 index 0000000000000000000000000000000000000000..f7432b35ea3a9dc1e2beba60a49def54ffe16ba0 --- /dev/null +++ b/examples/DDCMS/data/tibstring2ur.xml @@ -0,0 +1,153 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <!-- LAYER 3 EXT FW --> + <ConstantsSection label="tibstring2ur.xml" eval="true"> + <Constant name="zero" value="0.0*fm"/> + <Constant name="FBSign" value="[tibstringpar:FWSign]"/> + <Constant name="IESign" value="[tibstringpar:EXT3Sign]"/> + <Constant name="MotherCableL" value="56.14*cm-2*[tibstringpar:MCHeadDz]"/> + <Constant name="ThisStringL" value="[tibstring2:StringUpPlsL]"/> + <Constant name="ThatStringL" value="[tibstringpar:StringL]-[ThisStringL]"/> + <Constant name="CoolL" value="0.5*[tibstringpar:StringL]-13.76*mm-2*[tibstringpar:CoolPipeDx]"/> + <Constant name="Det0Z" value="74.5760*mm"/> + <Constant name="Det1Z" value="301.441*mm"/> + <Constant name="Det2Z" value="527.901*mm"/> + <Constant name="ShiftDet" value="-[FBSign]*0.5*[ThatStringL]+[IESign]*[tibmodpar:WaferZ]"/> + <Constant name="ShiftAOHLedge" value="[ShiftDet]+[IESign]*([tibmodpar:ModuleDz]+[tibmodpar:AOHLedgeModOffset])"/> + <Constant name="ShiftAOHBox" value="[ShiftDet]+[IESign]*([tibmodpar:ModuleDz]+[tibmodpar:AOHBoxDz])"/> + <Constant name="ShiftMCModConn" value="[ShiftDet]+[IESign]*([tibmodpar:ModuleDz]+[tibstringpar:MCModConnOffset])"/> + <Constant name="MCHeadZ" value="[FBSign]*(0.5*[ThisStringL]-[tibstringpar:MCHeadDz])"/> + <Constant name="MCZ" value="[FBSign]*(0.5*[ThisStringL]-0.5*[MotherCableL]-2*[tibstringpar:MCHeadDz])"/> + <Constant name="CoolSZ" value="[FBSign]*(0.5*[ThisStringL]-0.5*[CoolL])"/> + <Constant name="CoolWZ" value="[FBSign]*([ThisStringL]/2-[CoolL]-[tibstringpar:CoolPipeDx])"/> + </ConstantsSection> + <SolidSection label="tibstring2ur.xml"> + <Box name="TIBString2UpPlsCoolBox" dx="[tibstringpar:CoolBoxDx]" dy="[tibstringpar:CoolBoxDy]" dz="[ThisStringL]/2"/> + <Box name="TIBString2UpPlsModuleBox" dx="[tibmodpar:ModuleDx]" dy="[tibmodpar:SSModuleDy]" dz="[ThisStringL]/2"/> + <Box name="TIBString2UpPlsCableBox" dx="[tibstringpar:CableBoxDx]" dy="[tibstringpar:SSCableBoxDy]" dz="[ThisStringL]/2"/> + <UnionSolid name="TIBString2UpPlsModAndCool"> + <rSolid name="TIBString2UpPlsModuleBox"/> + <rSolid name="TIBString2UpPlsCoolBox"/> + <Translation x="[zero]" y="[tibstringpar:SSCoolBoxY]" z="[zero]"/> + </UnionSolid> + <UnionSolid name="TIBString2UpPls"> + <rSolid name="TIBString2UpPlsModAndCool"/> + <rSolid name="TIBString2UpPlsCableBox"/> + <Translation x="[zero]" y="[tibstringpar:SSCableBoxY]" z="[zero]"/> + </UnionSolid> + <Box name="TIBString2UpPlsCable" dx="[tibstringpar:MotherCableW]/2" dy="[tibstringpar:MotherCableT]/2" dz="[MotherCableL]/2"/> + <Box name="TIBString2UpPlsCoolS" dx="[tibstringpar:CoolPipeDx]" dy="[tibstringpar:CoolPipeDy]" dz="[CoolL]/2"/> + <Box name="TIBString2UpPlsCoolW" dx="[tibstringpar:CoolPipeX]+[tibstringpar:CoolPipeDx]" dy="[tibstringpar:CoolPipeDy]" dz="[tibstringpar:CoolPipeDx]"/> + </SolidSection> + <LogicalPartSection label="tibstring2ur.xml"> + <LogicalPart name="TIBString2UpPls1" category="unspecified"> + <rSolid name="TIBString2UpPls"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TIBString2UpPlsCable" category="unspecified"> + <rSolid name="TIBString2UpPlsCable"/> + <rMaterial name="tibmaterial:TIB_MCable"/> + </LogicalPart> + <LogicalPart name="TIBString2UpPlsCoolS" category="unspecified"> + <rSolid name="TIBString2UpPlsCoolS"/> + <rMaterial name="tibmaterial:TIB_CoolPipe"/> + </LogicalPart> + <LogicalPart name="TIBString2UpPlsCoolW" category="unspecified"> + <rSolid name="TIBString2UpPlsCoolW"/> + <rMaterial name="tibmaterial:TIB_CoolPipe"/> + </LogicalPart> + </LogicalPartSection> + <Algorithm name="track:DDTrackerZPosAlgo"> + <rParent name="tibstring2ur:TIBString2UpPls1"/> + <String name="ChildName" value="tibmodule2:TIBModule2"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Vector name="ZPositions" type="numeric" nEntries="3"> + ([Det0Z]+[ShiftDet]), ([Det1Z]+[ShiftDet]), ([Det2Z]+[ShiftDet]) </Vector> + <Vector name="Rotations" type="string" nEntries="3"> + tibstringpar:180D, tibstringpar:180D, tibstringpar:180D</Vector> + </Algorithm> + <PosPartSection label="tibstring2ur.xml"> + <PosPart copyNumber="1"> + <rParent name="tibstring2ur:TIBString2UpPls1"/> + <rChild name="tibstringpar:MCHead"/> + <Translation x="[tibstringpar:MCHeadX]" y="[tibstringpar:SSMCHeadY]" z="[MCHeadZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibstring2ur:TIBString2UpPls1"/> + <rChild name="tibstring2ur:TIBString2UpPlsCable"/> + <Translation x="[tibstringpar:MotherCableX]" y="[tibstringpar:SSMotherCableY]" z="[MCZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibstring2ur:TIBString2UpPls1"/> + <rChild name="tibstring2ur:TIBString2UpPlsCoolS"/> + <Translation x="-[tibstringpar:CoolPipeX]" y="[tibstringpar:SSCoolPipeY]" z="[CoolSZ]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tibstring2ur:TIBString2UpPls1"/> + <rChild name="tibstring2ur:TIBString2UpPlsCoolS"/> + <Translation x="[tibstringpar:CoolPipeX]" y="[tibstringpar:SSCoolPipeY]" z="[CoolSZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibstring2ur:TIBString2UpPls1"/> + <rChild name="tibstring2ur:TIBString2UpPlsCoolW"/> + <Translation x="[zero]" y="[tibstringpar:SSCoolPipeY]" z="[CoolWZ]"/> + </PosPart> + </PosPartSection> + <Algorithm name="track:DDTrackerXYZPosAlgo"> + <rParent name="tibstring2ur:TIBString2UpPls1"/> + <String name="ChildName" value="tibmodpar:TIBModLedgeBox"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Vector name="XPositions" type="numeric" nEntries="3"> + [zero], [zero], [zero]</Vector> + <Vector name="YPositions" type="numeric" nEntries="3"> + [tibmodpar:SSLedgeBoxY], [tibmodpar:SSLedgeBoxY], [tibmodpar:SSLedgeBoxY]</Vector> + <Vector name="ZPositions" type="numeric" nEntries="3"> + ([Det0Z]+[ShiftDet]), ([Det1Z]+[ShiftDet]), ([Det2Z]+[ShiftDet]) </Vector> + <Vector name="Rotations" type="string" nEntries="3"> + tibstringpar:180D, tibstringpar:180D, tibstringpar:180D</Vector> + </Algorithm> + <Algorithm name="track:DDTrackerXYZPosAlgo"> + <rParent name="tibstring2ur:TIBString2UpPls1"/> + <String name="ChildName" value="tibmodpar:TIBAOHLedge"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Vector name="XPositions" type="numeric" nEntries="3"> + [zero], [zero], [zero]</Vector> + <Vector name="YPositions" type="numeric" nEntries="3"> + [tibmodpar:SSLedgeBoxY], [tibmodpar:SSLedgeBoxY], [tibmodpar:SSLedgeBoxY]</Vector> + <Vector name="ZPositions" type="numeric" nEntries="3"> + ([Det0Z]+[ShiftAOHLedge]), ([Det1Z]+[ShiftAOHLedge]), ([Det2Z]+[ShiftAOHLedge]) </Vector> + <Vector name="Rotations" type="string" nEntries="3"> + tibstringpar:NULL, tibstringpar:NULL, tibstringpar:NULL</Vector> + </Algorithm> + <Algorithm name="track:DDTrackerXYZPosAlgo"> + <rParent name="tibstring2ur:TIBString2UpPls1"/> + <String name="ChildName" value="tibmodpar:TIBSSAOHBox"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Vector name="XPositions" type="numeric" nEntries="3"> + [tibmodpar:SSAOHBoxX], [tibmodpar:SSAOHBoxX], [tibmodpar:SSAOHBoxX]</Vector> + <Vector name="YPositions" type="numeric" nEntries="3"> + [tibmodpar:SSAOHBoxY], [tibmodpar:SSAOHBoxY], [tibmodpar:SSAOHBoxY]</Vector> + <Vector name="ZPositions" type="numeric" nEntries="3"> + ([Det0Z]+[ShiftAOHBox]), ([Det1Z]+[ShiftAOHBox]), ([Det2Z]+[ShiftAOHBox]) </Vector> + <Vector name="Rotations" type="string" nEntries="3"> + tibstringpar:180D, tibstringpar:180D, tibstringpar:180D</Vector> + </Algorithm> + <Algorithm name="track:DDTrackerXYZPosAlgo"> + <rParent name="tibstring2ur:TIBString2UpPls1"/> + <String name="ChildName" value="tibstringpar:SSMCModConn"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Vector name="XPositions" type="numeric" nEntries="3"> + [tibstringpar:MCModConnX], [tibstringpar:MCModConnX], [tibstringpar:MCModConnX]</Vector> + <Vector name="YPositions" type="numeric" nEntries="3"> + [tibstringpar:SSMCModConnY], [tibstringpar:SSMCModConnY], [tibstringpar:SSMCModConnY]</Vector> + <Vector name="ZPositions" type="numeric" nEntries="3"> + ([Det0Z]+[ShiftMCModConn]), ([Det1Z]+[ShiftMCModConn]), ([Det2Z]+[ShiftMCModConn]) </Vector> + <Vector name="Rotations" type="string" nEntries="3"> + tibstringpar:NULL, tibstringpar:NULL, tibstringpar:NULL</Vector> + </Algorithm> +</DDDefinition> diff --git a/examples/DDCMS/data/tibstring3.xml b/examples/DDCMS/data/tibstring3.xml new file mode 100644 index 0000000000000000000000000000000000000000..63b17e298f6ea9606c3ed99582af6bccb3f81429 --- /dev/null +++ b/examples/DDCMS/data/tibstring3.xml @@ -0,0 +1,44 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tibstring3.xml" eval="true"> + <Constant name="zero" value="0.0*fm"/> + <Constant name="StringIntOff" value="-42.17*mm"/> + <Constant name="StringExtOff" value="6.59*mm"/> + <Constant name="StringLoMinL" value="0.5*[tibstringpar:StringL]+[StringIntOff]"/> + <Constant name="StringUpMinL" value="0.5*[tibstringpar:StringL]+[StringExtOff]"/> + <Constant name="StringLoPlsL" value="0.5*[tibstringpar:StringL]-[StringIntOff]"/> + <Constant name="StringUpPlsL" value="0.5*[tibstringpar:StringL]-[StringExtOff]"/> + </ConstantsSection> + <LogicalPartSection label="tibstring3.xml"> + <LogicalPart name="TIBString3Lo1" category="unspecified"> + <rSolid name="tibstringpar:TIBSSString1"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TIBString3Up1" category="unspecified"> + <rSolid name="tibstringpar:TIBSSString1"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + </LogicalPartSection> + <PosPartSection label="tibstring3.xml"> + <PosPart copyNumber="1"> + <rParent name="tibstring3:TIBString3Lo1"/> + <rChild name="tibstring3ll:TIBString3LoMin1"/> + <Translation x="[zero]" y="[zero]" z="-[tibstring3:StringLoPlsL]/2"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibstring3:TIBString3Lo1"/> + <rChild name="tibstring3lr:TIBString3LoPls1"/> + <Translation x="[zero]" y="[zero]" z="[tibstring3:StringLoMinL]/2"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibstring3:TIBString3Up1"/> + <rChild name="tibstring3ul:TIBString3UpMin1"/> + <Translation x="[zero]" y="[zero]" z="-[tibstring3:StringUpPlsL]/2"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibstring3:TIBString3Up1"/> + <rChild name="tibstring3ur:TIBString3UpPls1"/> + <Translation x="[zero]" y="[zero]" z="[tibstring3:StringUpMinL]/2"/> + </PosPart> + </PosPartSection> +</DDDefinition> diff --git a/examples/DDCMS/data/tibstring3ll.xml b/examples/DDCMS/data/tibstring3ll.xml new file mode 100644 index 0000000000000000000000000000000000000000..9e71f99caadcd59a4fdd2b8c212c4fb27c066bdc --- /dev/null +++ b/examples/DDCMS/data/tibstring3ll.xml @@ -0,0 +1,153 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <!-- LAYER 4 INT BW --> + <ConstantsSection label="tibstring3ll.xml" eval="true"> + <Constant name="zero" value="0.0*fm"/> + <Constant name="FBSign" value="[tibstringpar:BWSign]"/> + <Constant name="IESign" value="[tibstringpar:INT4Sign]"/> + <Constant name="MotherCableL" value="67.04*cm-2*[tibstringpar:MCHeadDz]"/> + <Constant name="ThisStringL" value="[tibstring3:StringLoMinL]"/> + <Constant name="ThatStringL" value="[tibstringpar:StringL]-[ThisStringL]"/> + <Constant name="CoolL" value="0.5*[tibstringpar:StringL]-45.52*mm-2*[tibstringpar:CoolPipeDx]"/> + <Constant name="Det0Z" value="-605.456*mm"/> + <Constant name="Det1Z" value="-391.972*mm"/> + <Constant name="Det2Z" value="-178.218*mm"/> + <Constant name="ShiftDet" value="-[FBSign]*0.5*[ThatStringL]+[IESign]*[tibmodpar:WaferZ]"/> + <Constant name="ShiftAOHLedge" value="[ShiftDet]+[IESign]*([tibmodpar:ModuleDz]+[tibmodpar:AOHLedgeModOffset])"/> + <Constant name="ShiftAOHBox" value="[ShiftDet]+[IESign]*([tibmodpar:ModuleDz]+[tibmodpar:AOHBoxDz])"/> + <Constant name="ShiftMCModConn" value="[ShiftDet]+[IESign]*([tibmodpar:ModuleDz]+[tibstringpar:MCModConnOffset])"/> + <Constant name="MCHeadZ" value="[FBSign]*(0.5*[ThisStringL]-[tibstringpar:MCHeadDz])"/> + <Constant name="MCZ" value="[FBSign]*(0.5*[ThisStringL]-0.5*[MotherCableL]-2*[tibstringpar:MCHeadDz])"/> + <Constant name="CoolSZ" value="[FBSign]*(0.5*[ThisStringL]-0.5*[CoolL])"/> + <Constant name="CoolWZ" value="[FBSign]*([ThisStringL]/2-[CoolL]-[tibstringpar:CoolPipeDx])"/> + </ConstantsSection> + <SolidSection label="tibstring3ll.xml"> + <Box name="TIBString3LoMinCoolBox" dx="[tibstringpar:CoolBoxDx]" dy="[tibstringpar:CoolBoxDy]" dz="[ThisStringL]/2"/> + <Box name="TIBString3LoMinModuleBox" dx="[tibmodpar:ModuleDx]" dy="[tibmodpar:SSModuleDy]" dz="[ThisStringL]/2"/> + <Box name="TIBString3LoMinCableBox" dx="[tibstringpar:CableBoxDx]" dy="[tibstringpar:SSCableBoxDy]" dz="[ThisStringL]/2"/> + <UnionSolid name="TIBString3LoMinModAndCool"> + <rSolid name="TIBString3LoMinModuleBox"/> + <rSolid name="TIBString3LoMinCoolBox"/> + <Translation x="[zero]" y="[tibstringpar:SSCoolBoxY]" z="[zero]"/> + </UnionSolid> + <UnionSolid name="TIBString3LoMin"> + <rSolid name="TIBString3LoMinModAndCool"/> + <rSolid name="TIBString3LoMinCableBox"/> + <Translation x="[zero]" y="[tibstringpar:SSCableBoxY]" z="[zero]"/> + </UnionSolid> + <Box name="TIBString3LoMinCable" dx="[tibstringpar:MotherCableW]/2" dy="[tibstringpar:MotherCableT]/2" dz="[MotherCableL]/2"/> + <Box name="TIBString3LoMinCoolS" dx="[tibstringpar:CoolPipeDx]" dy="[tibstringpar:CoolPipeDy]" dz="[CoolL]/2"/> + <Box name="TIBString3LoMinCoolW" dx="[tibstringpar:CoolPipeX]+[tibstringpar:CoolPipeDx]" dy="[tibstringpar:CoolPipeDy]" dz="[tibstringpar:CoolPipeDx]"/> + </SolidSection> + <LogicalPartSection label="tibstring3ll.xml"> + <LogicalPart name="TIBString3LoMin1" category="unspecified"> + <rSolid name="TIBString3LoMin"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TIBString3LoMinCable" category="unspecified"> + <rSolid name="TIBString3LoMinCable"/> + <rMaterial name="tibmaterial:TIB_MCable"/> + </LogicalPart> + <LogicalPart name="TIBString3LoMinCoolS" category="unspecified"> + <rSolid name="TIBString3LoMinCoolS"/> + <rMaterial name="tibmaterial:TIB_CoolPipe"/> + </LogicalPart> + <LogicalPart name="TIBString3LoMinCoolW" category="unspecified"> + <rSolid name="TIBString3LoMinCoolW"/> + <rMaterial name="tibmaterial:TIB_CoolPipe"/> + </LogicalPart> + </LogicalPartSection> + <Algorithm name="track:DDTrackerZPosAlgo"> + <rParent name="tibstring3ll:TIBString3LoMin1"/> + <String name="ChildName" value="tibmodule2:TIBModule2"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Vector name="ZPositions" type="numeric" nEntries="3"> + ([Det0Z]+[ShiftDet]), ([Det1Z]+[ShiftDet]), ([Det2Z]+[ShiftDet]) </Vector> + <Vector name="Rotations" type="string" nEntries="3"> + tibstringpar:180D, tibstringpar:180D, tibstringpar:180D</Vector> + </Algorithm> + <PosPartSection label="tibstring3ll.xml"> + <PosPart copyNumber="1"> + <rParent name="tibstring3ll:TIBString3LoMin1"/> + <rChild name="tibstringpar:MCHead"/> + <Translation x="[tibstringpar:MCHeadX]" y="[tibstringpar:SSMCHeadY]" z="[MCHeadZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibstring3ll:TIBString3LoMin1"/> + <rChild name="tibstring3ll:TIBString3LoMinCable"/> + <Translation x="[tibstringpar:MotherCableX]" y="[tibstringpar:SSMotherCableY]" z="[MCZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibstring3ll:TIBString3LoMin1"/> + <rChild name="tibstring3ll:TIBString3LoMinCoolS"/> + <Translation x="-[tibstringpar:CoolPipeX]" y="[tibstringpar:SSCoolPipeY]" z="[CoolSZ]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tibstring3ll:TIBString3LoMin1"/> + <rChild name="tibstring3ll:TIBString3LoMinCoolS"/> + <Translation x="[tibstringpar:CoolPipeX]" y="[tibstringpar:SSCoolPipeY]" z="[CoolSZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibstring3ll:TIBString3LoMin1"/> + <rChild name="tibstring3ll:TIBString3LoMinCoolW"/> + <Translation x="[zero]" y="[tibstringpar:SSCoolPipeY]" z="[CoolWZ]"/> + </PosPart> + </PosPartSection> + <Algorithm name="track:DDTrackerXYZPosAlgo"> + <rParent name="tibstring3ll:TIBString3LoMin1"/> + <String name="ChildName" value="tibmodpar:TIBModLedgeBox"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Vector name="XPositions" type="numeric" nEntries="3"> + [zero], [zero], [zero]</Vector> + <Vector name="YPositions" type="numeric" nEntries="3"> + [tibmodpar:SSLedgeBoxY], [tibmodpar:SSLedgeBoxY], [tibmodpar:SSLedgeBoxY]</Vector> + <Vector name="ZPositions" type="numeric" nEntries="3"> + ([Det0Z]+[ShiftDet]), ([Det1Z]+[ShiftDet]), ([Det2Z]+[ShiftDet]) </Vector> + <Vector name="Rotations" type="string" nEntries="3"> + tibstringpar:180D, tibstringpar:180D, tibstringpar:180D</Vector> + </Algorithm> + <Algorithm name="track:DDTrackerXYZPosAlgo"> + <rParent name="tibstring3ll:TIBString3LoMin1"/> + <String name="ChildName" value="tibmodpar:TIBAOHLedge"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Vector name="XPositions" type="numeric" nEntries="3"> + [zero], [zero], [zero]</Vector> + <Vector name="YPositions" type="numeric" nEntries="3"> + [tibmodpar:SSLedgeBoxY], [tibmodpar:SSLedgeBoxY], [tibmodpar:SSLedgeBoxY]</Vector> + <Vector name="ZPositions" type="numeric" nEntries="3"> + ([Det0Z]+[ShiftAOHLedge]), ([Det1Z]+[ShiftAOHLedge]), ([Det2Z]+[ShiftAOHLedge]) </Vector> + <Vector name="Rotations" type="string" nEntries="3"> + tibstringpar:180D, tibstringpar:180D, tibstringpar:180D</Vector> + </Algorithm> + <Algorithm name="track:DDTrackerXYZPosAlgo"> + <rParent name="tibstring3ll:TIBString3LoMin1"/> + <String name="ChildName" value="tibmodpar:TIBSSAOHBox"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Vector name="XPositions" type="numeric" nEntries="3"> + [tibmodpar:SSAOHBoxX], [tibmodpar:SSAOHBoxX], [tibmodpar:SSAOHBoxX]</Vector> + <Vector name="YPositions" type="numeric" nEntries="3"> + [tibmodpar:SSAOHBoxY], [tibmodpar:SSAOHBoxY], [tibmodpar:SSAOHBoxY]</Vector> + <Vector name="ZPositions" type="numeric" nEntries="3"> + ([Det0Z]+[ShiftAOHBox]), ([Det1Z]+[ShiftAOHBox]), ([Det2Z]+[ShiftAOHBox]) </Vector> + <Vector name="Rotations" type="string" nEntries="3"> + tibstringpar:180D, tibstringpar:180D, tibstringpar:180D</Vector> + </Algorithm> + <Algorithm name="track:DDTrackerXYZPosAlgo"> + <rParent name="tibstring3ll:TIBString3LoMin1"/> + <String name="ChildName" value="tibstringpar:SSMCModConn"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Vector name="XPositions" type="numeric" nEntries="3"> + [tibstringpar:MCModConnX], [tibstringpar:MCModConnX], [tibstringpar:MCModConnX]</Vector> + <Vector name="YPositions" type="numeric" nEntries="3"> + [tibstringpar:SSMCModConnY], [tibstringpar:SSMCModConnY], [tibstringpar:SSMCModConnY]</Vector> + <Vector name="ZPositions" type="numeric" nEntries="3"> + ([Det0Z]+[ShiftMCModConn]), ([Det1Z]+[ShiftMCModConn]), ([Det2Z]+[ShiftMCModConn]) </Vector> + <Vector name="Rotations" type="string" nEntries="3"> + tibstringpar:NULL, tibstringpar:NULL, tibstringpar:NULL</Vector> + </Algorithm> +</DDDefinition> diff --git a/examples/DDCMS/data/tibstring3lr.xml b/examples/DDCMS/data/tibstring3lr.xml new file mode 100644 index 0000000000000000000000000000000000000000..112fcf3ff762831c72ed3ff241f055ecd818da6b --- /dev/null +++ b/examples/DDCMS/data/tibstring3lr.xml @@ -0,0 +1,153 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <!-- LAYER 4 INT FW --> + <ConstantsSection label="tibstring3lr.xml" eval="true"> + <Constant name="zero" value="0.0*fm"/> + <Constant name="FBSign" value="[tibstringpar:FWSign]"/> + <Constant name="IESign" value="[tibstringpar:INT4Sign]"/> + <Constant name="MotherCableL" value="60.25*cm-2*[tibstringpar:MCHeadDz]"/> + <Constant name="ThisStringL" value="[tibstring3:StringLoPlsL]"/> + <Constant name="ThatStringL" value="[tibstringpar:StringL]-[ThisStringL]"/> + <Constant name="CoolL" value="0.5*[tibstringpar:StringL]+38.08*mm-2*[tibstringpar:CoolPipeDx]"/> + <Constant name="Det0Z" value="33.5070*mm"/> + <Constant name="Det1Z" value="247.444*mm"/> + <Constant name="Det2Z" value="461.110*mm"/> + <Constant name="ShiftDet" value="-[FBSign]*0.5*[ThatStringL]+[IESign]*[tibmodpar:WaferZ]"/> + <Constant name="ShiftAOHLedge" value="[ShiftDet]+[IESign]*([tibmodpar:ModuleDz]+[tibmodpar:AOHLedgeModOffset])"/> + <Constant name="ShiftAOHBox" value="[ShiftDet]+[IESign]*([tibmodpar:ModuleDz]+[tibmodpar:AOHBoxDz])"/> + <Constant name="ShiftMCModConn" value="[ShiftDet]+[IESign]*([tibmodpar:ModuleDz]+[tibstringpar:MCModConnOffset])"/> + <Constant name="MCHeadZ" value="[FBSign]*(0.5*[ThisStringL]-[tibstringpar:MCHeadDz])"/> + <Constant name="MCZ" value="[FBSign]*(0.5*[ThisStringL]-0.5*[MotherCableL]-2*[tibstringpar:MCHeadDz])"/> + <Constant name="CoolSZ" value="[FBSign]*(0.5*[ThisStringL]-0.5*[CoolL])"/> + <Constant name="CoolWZ" value="[FBSign]*([ThisStringL]/2-[CoolL]-[tibstringpar:CoolPipeDx])"/> + </ConstantsSection> + <SolidSection label="tibstring3lr.xml"> + <Box name="TIBString3LoPlsCoolBox" dx="[tibstringpar:CoolBoxDx]" dy="[tibstringpar:CoolBoxDy]" dz="[ThisStringL]/2"/> + <Box name="TIBString3LoPlsModuleBox" dx="[tibmodpar:ModuleDx]" dy="[tibmodpar:SSModuleDy]" dz="[ThisStringL]/2"/> + <Box name="TIBString3LoPlsCableBox" dx="[tibstringpar:CableBoxDx]" dy="[tibstringpar:SSCableBoxDy]" dz="[ThisStringL]/2"/> + <UnionSolid name="TIBString3LoPlsModAndCool"> + <rSolid name="TIBString3LoPlsModuleBox"/> + <rSolid name="TIBString3LoPlsCoolBox"/> + <Translation x="[zero]" y="[tibstringpar:SSCoolBoxY]" z="[zero]"/> + </UnionSolid> + <UnionSolid name="TIBString3LoPls"> + <rSolid name="TIBString3LoPlsModAndCool"/> + <rSolid name="TIBString3LoPlsCableBox"/> + <Translation x="[zero]" y="[tibstringpar:SSCableBoxY]" z="[zero]"/> + </UnionSolid> + <Box name="TIBString3LoPlsCable" dx="[tibstringpar:MotherCableW]/2" dy="[tibstringpar:MotherCableT]/2" dz="[MotherCableL]/2"/> + <Box name="TIBString3LoPlsCoolS" dx="[tibstringpar:CoolPipeDx]" dy="[tibstringpar:CoolPipeDy]" dz="[CoolL]/2"/> + <Box name="TIBString3LoPlsCoolW" dx="[tibstringpar:CoolPipeX]+[tibstringpar:CoolPipeDx]" dy="[tibstringpar:CoolPipeDy]" dz="[tibstringpar:CoolPipeDx]"/> + </SolidSection> + <LogicalPartSection label="tibstring3lr.xml"> + <LogicalPart name="TIBString3LoPls1" category="unspecified"> + <rSolid name="TIBString3LoPls"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TIBString3LoPlsCable" category="unspecified"> + <rSolid name="TIBString3LoPlsCable"/> + <rMaterial name="tibmaterial:TIB_MCable"/> + </LogicalPart> + <LogicalPart name="TIBString3LoPlsCoolS" category="unspecified"> + <rSolid name="TIBString3LoPlsCoolS"/> + <rMaterial name="tibmaterial:TIB_CoolPipe"/> + </LogicalPart> + <LogicalPart name="TIBString3LoPlsCoolW" category="unspecified"> + <rSolid name="TIBString3LoPlsCoolW"/> + <rMaterial name="tibmaterial:TIB_CoolPipe"/> + </LogicalPart> + </LogicalPartSection> + <Algorithm name="track:DDTrackerZPosAlgo"> + <rParent name="tibstring3lr:TIBString3LoPls1"/> + <String name="ChildName" value="tibmodule2:TIBModule2"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Vector name="ZPositions" type="numeric" nEntries="3"> + ([Det0Z]+[ShiftDet]), ([Det1Z]+[ShiftDet]), ([Det2Z]+[ShiftDet]) </Vector> + <Vector name="Rotations" type="string" nEntries="3"> + tibstringpar:180D, tibstringpar:180D, tibstringpar:180D</Vector> + </Algorithm> + <PosPartSection label="tibstring3lr.xml"> + <PosPart copyNumber="1"> + <rParent name="tibstring3lr:TIBString3LoPls1"/> + <rChild name="tibstringpar:MCHead"/> + <Translation x="[tibstringpar:MCHeadX]" y="[tibstringpar:SSMCHeadY]" z="[MCHeadZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibstring3lr:TIBString3LoPls1"/> + <rChild name="tibstring3lr:TIBString3LoPlsCable"/> + <Translation x="[tibstringpar:MotherCableX]" y="[tibstringpar:SSMotherCableY]" z="[MCZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibstring3lr:TIBString3LoPls1"/> + <rChild name="tibstring3lr:TIBString3LoPlsCoolS"/> + <Translation x="-[tibstringpar:CoolPipeX]" y="[tibstringpar:SSCoolPipeY]" z="[CoolSZ]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tibstring3lr:TIBString3LoPls1"/> + <rChild name="tibstring3lr:TIBString3LoPlsCoolS"/> + <Translation x="[tibstringpar:CoolPipeX]" y="[tibstringpar:SSCoolPipeY]" z="[CoolSZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibstring3lr:TIBString3LoPls1"/> + <rChild name="tibstring3lr:TIBString3LoPlsCoolW"/> + <Translation x="[zero]" y="[tibstringpar:SSCoolPipeY]" z="[CoolWZ]"/> + </PosPart> + </PosPartSection> + <Algorithm name="track:DDTrackerXYZPosAlgo"> + <rParent name="tibstring3lr:TIBString3LoPls1"/> + <String name="ChildName" value="tibmodpar:TIBModLedgeBox"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Vector name="XPositions" type="numeric" nEntries="3"> + [zero], [zero], [zero]</Vector> + <Vector name="YPositions" type="numeric" nEntries="3"> + [tibmodpar:SSLedgeBoxY], [tibmodpar:SSLedgeBoxY], [tibmodpar:SSLedgeBoxY]</Vector> + <Vector name="ZPositions" type="numeric" nEntries="3"> + ([Det0Z]+[ShiftDet]), ([Det1Z]+[ShiftDet]), ([Det2Z]+[ShiftDet]) </Vector> + <Vector name="Rotations" type="string" nEntries="3"> + tibstringpar:180D, tibstringpar:180D, tibstringpar:180D</Vector> + </Algorithm> + <Algorithm name="track:DDTrackerXYZPosAlgo"> + <rParent name="tibstring3lr:TIBString3LoPls1"/> + <String name="ChildName" value="tibmodpar:TIBAOHLedge"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Vector name="XPositions" type="numeric" nEntries="3"> + [zero], [zero], [zero]</Vector> + <Vector name="YPositions" type="numeric" nEntries="3"> + [tibmodpar:SSLedgeBoxY], [tibmodpar:SSLedgeBoxY], [tibmodpar:SSLedgeBoxY]</Vector> + <Vector name="ZPositions" type="numeric" nEntries="3"> + ([Det0Z]+[ShiftAOHLedge]), ([Det1Z]+[ShiftAOHLedge]), ([Det2Z]+[ShiftAOHLedge]) </Vector> + <Vector name="Rotations" type="string" nEntries="3"> + tibstringpar:NULL, tibstringpar:NULL, tibstringpar:NULL</Vector> + </Algorithm> + <Algorithm name="track:DDTrackerXYZPosAlgo"> + <rParent name="tibstring3lr:TIBString3LoPls1"/> + <String name="ChildName" value="tibmodpar:TIBSSAOHBox"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Vector name="XPositions" type="numeric" nEntries="3"> + [tibmodpar:SSAOHBoxX], [tibmodpar:SSAOHBoxX], [tibmodpar:SSAOHBoxX]</Vector> + <Vector name="YPositions" type="numeric" nEntries="3"> + [tibmodpar:SSAOHBoxY], [tibmodpar:SSAOHBoxY], [tibmodpar:SSAOHBoxY]</Vector> + <Vector name="ZPositions" type="numeric" nEntries="3"> + ([Det0Z]+[ShiftAOHBox]), ([Det1Z]+[ShiftAOHBox]), ([Det2Z]+[ShiftAOHBox]) </Vector> + <Vector name="Rotations" type="string" nEntries="3"> + tibstringpar:180D, tibstringpar:180D, tibstringpar:180D</Vector> + </Algorithm> + <Algorithm name="track:DDTrackerXYZPosAlgo"> + <rParent name="tibstring3lr:TIBString3LoPls1"/> + <String name="ChildName" value="tibstringpar:SSMCModConn"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Vector name="XPositions" type="numeric" nEntries="3"> + [tibstringpar:MCModConnX], [tibstringpar:MCModConnX], [tibstringpar:MCModConnX]</Vector> + <Vector name="YPositions" type="numeric" nEntries="3"> + [tibstringpar:SSMCModConnY], [tibstringpar:SSMCModConnY], [tibstringpar:SSMCModConnY]</Vector> + <Vector name="ZPositions" type="numeric" nEntries="3"> + ([Det0Z]+[ShiftMCModConn]), ([Det1Z]+[ShiftMCModConn]), ([Det2Z]+[ShiftMCModConn]) </Vector> + <Vector name="Rotations" type="string" nEntries="3"> + tibstringpar:NULL, tibstringpar:NULL, tibstringpar:NULL</Vector> + </Algorithm> +</DDDefinition> diff --git a/examples/DDCMS/data/tibstring3ul.xml b/examples/DDCMS/data/tibstring3ul.xml new file mode 100644 index 0000000000000000000000000000000000000000..37334b4e37c32f68fb775f29193e30bd285647d1 --- /dev/null +++ b/examples/DDCMS/data/tibstring3ul.xml @@ -0,0 +1,153 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <!-- LAYER 4 EXT BW --> + <ConstantsSection label="tibstring3ul.xml" eval="true"> + <Constant name="zero" value="0.0*fm"/> + <Constant name="FBSign" value="[tibstringpar:BWSign]"/> + <Constant name="IESign" value="[tibstringpar:EXT4Sign]"/> + <Constant name="MotherCableL" value="55.99*cm-2*[tibstringpar:MCHeadDz]"/> + <Constant name="ThisStringL" value="[tibstring3:StringUpMinL]"/> + <Constant name="ThatStringL" value="[tibstringpar:StringL]-[ThisStringL]"/> + <Constant name="CoolL" value="0.5*[tibstringpar:StringL]-13.19*mm-2*[tibstringpar:CoolPipeDx]"/> + <Constant name="Det0Z" value="-531.792*mm"/> + <Constant name="Det1Z" value="-304.048*mm"/> + <Constant name="Det2Z" value="-76.0150*mm"/> + <Constant name="ShiftDet" value="-[FBSign]*0.5*[ThatStringL]+[IESign]*[tibmodpar:WaferZ]"/> + <Constant name="ShiftAOHLedge" value="[ShiftDet]+[IESign]*([tibmodpar:ModuleDz]+[tibmodpar:AOHLedgeModOffset])"/> + <Constant name="ShiftAOHBox" value="[ShiftDet]+[IESign]*([tibmodpar:ModuleDz]+[tibmodpar:AOHBoxDz])"/> + <Constant name="ShiftMCModConn" value="[ShiftDet]+[IESign]*([tibmodpar:ModuleDz]+[tibstringpar:MCModConnOffset])"/> + <Constant name="MCHeadZ" value="[FBSign]*(0.5*[ThisStringL]-[tibstringpar:MCHeadDz])"/> + <Constant name="MCZ" value="[FBSign]*(0.5*[ThisStringL]-0.5*[MotherCableL]-2*[tibstringpar:MCHeadDz])"/> + <Constant name="CoolSZ" value="[FBSign]*(0.5*[ThisStringL]-0.5*[CoolL])"/> + <Constant name="CoolWZ" value="[FBSign]*([ThisStringL]/2-[CoolL]-[tibstringpar:CoolPipeDx])"/> + </ConstantsSection> + <SolidSection label="tibstring3ul.xml"> + <Box name="TIBString3UpMinCoolBox" dx="[tibstringpar:CoolBoxDx]" dy="[tibstringpar:CoolBoxDy]" dz="[ThisStringL]/2"/> + <Box name="TIBString3UpMinModuleBox" dx="[tibmodpar:ModuleDx]" dy="[tibmodpar:SSModuleDy]" dz="[ThisStringL]/2"/> + <Box name="TIBString3UpMinCableBox" dx="[tibstringpar:CableBoxDx]" dy="[tibstringpar:SSCableBoxDy]" dz="[ThisStringL]/2"/> + <UnionSolid name="TIBString3UpMinModAndCool"> + <rSolid name="TIBString3UpMinModuleBox"/> + <rSolid name="TIBString3UpMinCoolBox"/> + <Translation x="[zero]" y="[tibstringpar:SSCoolBoxY]" z="[zero]"/> + </UnionSolid> + <UnionSolid name="TIBString3UpMin"> + <rSolid name="TIBString3UpMinModAndCool"/> + <rSolid name="TIBString3UpMinCableBox"/> + <Translation x="[zero]" y="[tibstringpar:SSCableBoxY]" z="[zero]"/> + </UnionSolid> + <Box name="TIBString3UpMinCable" dx="[tibstringpar:MotherCableW]/2" dy="[tibstringpar:MotherCableT]/2" dz="[MotherCableL]/2"/> + <Box name="TIBString3UpMinCoolS" dx="[tibstringpar:CoolPipeDx]" dy="[tibstringpar:CoolPipeDy]" dz="[CoolL]/2"/> + <Box name="TIBString3UpMinCoolW" dx="[tibstringpar:CoolPipeX]+[tibstringpar:CoolPipeDx]" dy="[tibstringpar:CoolPipeDy]" dz="[tibstringpar:CoolPipeDx]"/> + </SolidSection> + <LogicalPartSection label="tibstring3ul.xml"> + <LogicalPart name="TIBString3UpMin1" category="unspecified"> + <rSolid name="TIBString3UpMin"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TIBString3UpMinCable" category="unspecified"> + <rSolid name="TIBString3UpMinCable"/> + <rMaterial name="tibmaterial:TIB_MCable"/> + </LogicalPart> + <LogicalPart name="TIBString3UpMinCoolS" category="unspecified"> + <rSolid name="TIBString3UpMinCoolS"/> + <rMaterial name="tibmaterial:TIB_CoolPipe"/> + </LogicalPart> + <LogicalPart name="TIBString3UpMinCoolW" category="unspecified"> + <rSolid name="TIBString3UpMinCoolW"/> + <rMaterial name="tibmaterial:TIB_CoolPipe"/> + </LogicalPart> + </LogicalPartSection> + <Algorithm name="track:DDTrackerZPosAlgo"> + <rParent name="tibstring3ul:TIBString3UpMin1"/> + <String name="ChildName" value="tibmodule2:TIBModule2"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Vector name="ZPositions" type="numeric" nEntries="3"> + ([Det0Z]+[ShiftDet]), ([Det1Z]+[ShiftDet]), ([Det2Z]+[ShiftDet]) </Vector> + <Vector name="Rotations" type="string" nEntries="3"> + tibstringpar:NULL, tibstringpar:NULL, tibstringpar:NULL</Vector> + </Algorithm> + <PosPartSection label="tibstring3ul.xml"> + <PosPart copyNumber="1"> + <rParent name="tibstring3ul:TIBString3UpMin1"/> + <rChild name="tibstringpar:MCHead"/> + <Translation x="[tibstringpar:MCHeadX]" y="[tibstringpar:SSMCHeadY]" z="[MCHeadZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibstring3ul:TIBString3UpMin1"/> + <rChild name="tibstring3ul:TIBString3UpMinCable"/> + <Translation x="[tibstringpar:MotherCableX]" y="[tibstringpar:SSMotherCableY]" z="[MCZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibstring3ul:TIBString3UpMin1"/> + <rChild name="tibstring3ul:TIBString3UpMinCoolS"/> + <Translation x="-[tibstringpar:CoolPipeX]" y="[tibstringpar:SSCoolPipeY]" z="[CoolSZ]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tibstring3ul:TIBString3UpMin1"/> + <rChild name="tibstring3ul:TIBString3UpMinCoolS"/> + <Translation x="[tibstringpar:CoolPipeX]" y="[tibstringpar:SSCoolPipeY]" z="[CoolSZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibstring3ul:TIBString3UpMin1"/> + <rChild name="tibstring3ul:TIBString3UpMinCoolW"/> + <Translation x="[zero]" y="[tibstringpar:SSCoolPipeY]" z="[CoolWZ]"/> + </PosPart> + </PosPartSection> + <Algorithm name="track:DDTrackerXYZPosAlgo"> + <rParent name="tibstring3ul:TIBString3UpMin1"/> + <String name="ChildName" value="tibmodpar:TIBModLedgeBox"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Vector name="XPositions" type="numeric" nEntries="3"> + [zero], [zero], [zero]</Vector> + <Vector name="YPositions" type="numeric" nEntries="3"> + [tibmodpar:SSLedgeBoxY], [tibmodpar:SSLedgeBoxY], [tibmodpar:SSLedgeBoxY]</Vector> + <Vector name="ZPositions" type="numeric" nEntries="3"> + ([Det0Z]+[ShiftDet]), ([Det1Z]+[ShiftDet]), ([Det2Z]+[ShiftDet]) </Vector> + <Vector name="Rotations" type="string" nEntries="3"> + tibstringpar:NULL, tibstringpar:NULL, tibstringpar:NULL</Vector> + </Algorithm> + <Algorithm name="track:DDTrackerXYZPosAlgo"> + <rParent name="tibstring3ul:TIBString3UpMin1"/> + <String name="ChildName" value="tibmodpar:TIBAOHLedge"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Vector name="XPositions" type="numeric" nEntries="3"> + [zero], [zero], [zero]</Vector> + <Vector name="YPositions" type="numeric" nEntries="3"> + [tibmodpar:SSLedgeBoxY], [tibmodpar:SSLedgeBoxY], [tibmodpar:SSLedgeBoxY]</Vector> + <Vector name="ZPositions" type="numeric" nEntries="3"> + ([Det0Z]+[ShiftAOHLedge]), ([Det1Z]+[ShiftAOHLedge]), ([Det2Z]+[ShiftAOHLedge]) </Vector> + <Vector name="Rotations" type="string" nEntries="3"> + tibstringpar:180D, tibstringpar:180D, tibstringpar:180D</Vector> + </Algorithm> + <Algorithm name="track:DDTrackerXYZPosAlgo"> + <rParent name="tibstring3ul:TIBString3UpMin1"/> + <String name="ChildName" value="tibmodpar:TIBSSAOHBox"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Vector name="XPositions" type="numeric" nEntries="3"> + [tibmodpar:SSAOHBoxX], [tibmodpar:SSAOHBoxX], [tibmodpar:SSAOHBoxX]</Vector> + <Vector name="YPositions" type="numeric" nEntries="3"> + [tibmodpar:SSAOHBoxY], [tibmodpar:SSAOHBoxY], [tibmodpar:SSAOHBoxY]</Vector> + <Vector name="ZPositions" type="numeric" nEntries="3"> + ([Det0Z]+[ShiftAOHBox]), ([Det1Z]+[ShiftAOHBox]), ([Det2Z]+[ShiftAOHBox]) </Vector> + <Vector name="Rotations" type="string" nEntries="3"> + tibstringpar:NULL, tibstringpar:NULL, tibstringpar:NULL</Vector> + </Algorithm> + <Algorithm name="track:DDTrackerXYZPosAlgo"> + <rParent name="tibstring3ul:TIBString3UpMin1"/> + <String name="ChildName" value="tibstringpar:SSMCModConn"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Vector name="XPositions" type="numeric" nEntries="3"> + [tibstringpar:MCModConnX], [tibstringpar:MCModConnX], [tibstringpar:MCModConnX]</Vector> + <Vector name="YPositions" type="numeric" nEntries="3"> + [tibstringpar:SSMCModConnY], [tibstringpar:SSMCModConnY], [tibstringpar:SSMCModConnY]</Vector> + <Vector name="ZPositions" type="numeric" nEntries="3"> + ([Det0Z]+[ShiftMCModConn]), ([Det1Z]+[ShiftMCModConn]), ([Det2Z]+[ShiftMCModConn]) </Vector> + <Vector name="Rotations" type="string" nEntries="3"> + tibstringpar:NULL, tibstringpar:NULL, tibstringpar:NULL</Vector> + </Algorithm> +</DDDefinition> diff --git a/examples/DDCMS/data/tibstring3ur.xml b/examples/DDCMS/data/tibstring3ur.xml new file mode 100644 index 0000000000000000000000000000000000000000..5eff5d77e783fa2dfd134593b6186caa5be52805 --- /dev/null +++ b/examples/DDCMS/data/tibstring3ur.xml @@ -0,0 +1,153 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <!-- LAYER 4 EXT FW --> + <ConstantsSection label="tibstring3ur.xml" eval="true"> + <Constant name="zero" value="0.0*fm"/> + <Constant name="FBSign" value="[tibstringpar:FWSign]"/> + <Constant name="IESign" value="[tibstringpar:EXT4Sign]"/> + <Constant name="MotherCableL" value="69.88*cm-2*[tibstringpar:MCHeadDz]"/> + <Constant name="ThisStringL" value="[tibstring3:StringUpPlsL]"/> + <Constant name="ThatStringL" value="[tibstringpar:StringL]-[ThisStringL]"/> + <Constant name="CoolL" value="0.5*[tibstringpar:StringL]-15.18*mm-2*[tibstringpar:CoolPipeDx]"/> + <Constant name="Det0Z" value="149.865*mm"/> + <Constant name="Det1Z" value="377.804*mm"/> + <Constant name="Det2Z" value="605.456*mm"/> + <Constant name="ShiftDet" value="-[FBSign]*0.5*[ThatStringL]+[IESign]*[tibmodpar:WaferZ]"/> + <Constant name="ShiftAOHLedge" value="[ShiftDet]+[IESign]*([tibmodpar:ModuleDz]+[tibmodpar:AOHLedgeModOffset])"/> + <Constant name="ShiftAOHBox" value="[ShiftDet]+[IESign]*([tibmodpar:ModuleDz]+[tibmodpar:AOHBoxDz])"/> + <Constant name="ShiftMCModConn" value="[ShiftDet]+[IESign]*([tibmodpar:ModuleDz]+[tibstringpar:MCModConnOffset])"/> + <Constant name="MCHeadZ" value="[FBSign]*(0.5*[ThisStringL]-[tibstringpar:MCHeadDz])"/> + <Constant name="MCZ" value="[FBSign]*(0.5*[ThisStringL]-0.5*[MotherCableL]-2*[tibstringpar:MCHeadDz])"/> + <Constant name="CoolSZ" value="[FBSign]*(0.5*[ThisStringL]-0.5*[CoolL])"/> + <Constant name="CoolWZ" value="[FBSign]*([ThisStringL]/2-[CoolL]-[tibstringpar:CoolPipeDx])"/> + </ConstantsSection> + <SolidSection label="tibstring3ur.xml"> + <Box name="TIBString3UpPlsCoolBox" dx="[tibstringpar:CoolBoxDx]" dy="[tibstringpar:CoolBoxDy]" dz="[ThisStringL]/2"/> + <Box name="TIBString3UpPlsModuleBox" dx="[tibmodpar:ModuleDx]" dy="[tibmodpar:SSModuleDy]" dz="[ThisStringL]/2"/> + <Box name="TIBString3UpPlsCableBox" dx="[tibstringpar:CableBoxDx]" dy="[tibstringpar:SSCableBoxDy]" dz="[ThisStringL]/2"/> + <UnionSolid name="TIBString3UpPlsModAndCool"> + <rSolid name="TIBString3UpPlsModuleBox"/> + <rSolid name="TIBString3UpPlsCoolBox"/> + <Translation x="[zero]" y="[tibstringpar:SSCoolBoxY]" z="[zero]"/> + </UnionSolid> + <UnionSolid name="TIBString3UpPls"> + <rSolid name="TIBString3UpPlsModAndCool"/> + <rSolid name="TIBString3UpPlsCableBox"/> + <Translation x="[zero]" y="[tibstringpar:SSCableBoxY]" z="[zero]"/> + </UnionSolid> + <Box name="TIBString3UpPlsCable" dx="[tibstringpar:MotherCableW]/2" dy="[tibstringpar:MotherCableT]/2" dz="[MotherCableL]/2"/> + <Box name="TIBString3UpPlsCoolS" dx="[tibstringpar:CoolPipeDx]" dy="[tibstringpar:CoolPipeDy]" dz="[CoolL]/2"/> + <Box name="TIBString3UpPlsCoolW" dx="[tibstringpar:CoolPipeX]+[tibstringpar:CoolPipeDx]" dy="[tibstringpar:CoolPipeDy]" dz="[tibstringpar:CoolPipeDx]"/> + </SolidSection> + <LogicalPartSection label="tibstring3ur.xml"> + <LogicalPart name="TIBString3UpPls1" category="unspecified"> + <rSolid name="TIBString3UpPls"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TIBString3UpPlsCable" category="unspecified"> + <rSolid name="TIBString3UpPlsCable"/> + <rMaterial name="tibmaterial:TIB_MCable"/> + </LogicalPart> + <LogicalPart name="TIBString3UpPlsCoolS" category="unspecified"> + <rSolid name="TIBString3UpPlsCoolS"/> + <rMaterial name="tibmaterial:TIB_CoolPipe"/> + </LogicalPart> + <LogicalPart name="TIBString3UpPlsCoolW" category="unspecified"> + <rSolid name="TIBString3UpPlsCoolW"/> + <rMaterial name="tibmaterial:TIB_CoolPipe"/> + </LogicalPart> + </LogicalPartSection> + <Algorithm name="track:DDTrackerZPosAlgo"> + <rParent name="tibstring3ur:TIBString3UpPls1"/> + <String name="ChildName" value="tibmodule2:TIBModule2"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Vector name="ZPositions" type="numeric" nEntries="3"> + ([Det0Z]+[ShiftDet]), ([Det1Z]+[ShiftDet]), ([Det2Z]+[ShiftDet]) </Vector> + <Vector name="Rotations" type="string" nEntries="3"> + tibstringpar:NULL, tibstringpar:NULL, tibstringpar:NULL</Vector> + </Algorithm> + <PosPartSection label="tibstring3ur.xml"> + <PosPart copyNumber="1"> + <rParent name="tibstring3ur:TIBString3UpPls1"/> + <rChild name="tibstringpar:MCHead"/> + <Translation x="[tibstringpar:MCHeadX]" y="[tibstringpar:SSMCHeadY]" z="[MCHeadZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibstring3ur:TIBString3UpPls1"/> + <rChild name="tibstring3ur:TIBString3UpPlsCable"/> + <Translation x="[tibstringpar:MotherCableX]" y="[tibstringpar:SSMotherCableY]" z="[MCZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibstring3ur:TIBString3UpPls1"/> + <rChild name="tibstring3ur:TIBString3UpPlsCoolS"/> + <Translation x="-[tibstringpar:CoolPipeX]" y="[tibstringpar:SSCoolPipeY]" z="[CoolSZ]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tibstring3ur:TIBString3UpPls1"/> + <rChild name="tibstring3ur:TIBString3UpPlsCoolS"/> + <Translation x="[tibstringpar:CoolPipeX]" y="[tibstringpar:SSCoolPipeY]" z="[CoolSZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibstring3ur:TIBString3UpPls1"/> + <rChild name="tibstring3ur:TIBString3UpPlsCoolW"/> + <Translation x="[zero]" y="[tibstringpar:SSCoolPipeY]" z="[CoolWZ]"/> + </PosPart> + </PosPartSection> + <Algorithm name="track:DDTrackerXYZPosAlgo"> + <rParent name="tibstring3ur:TIBString3UpPls1"/> + <String name="ChildName" value="tibmodpar:TIBModLedgeBox"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Vector name="XPositions" type="numeric" nEntries="3"> + [zero], [zero], [zero]</Vector> + <Vector name="YPositions" type="numeric" nEntries="3"> + [tibmodpar:SSLedgeBoxY], [tibmodpar:SSLedgeBoxY], [tibmodpar:SSLedgeBoxY]</Vector> + <Vector name="ZPositions" type="numeric" nEntries="3"> + ([Det0Z]+[ShiftDet]), ([Det1Z]+[ShiftDet]), ([Det2Z]+[ShiftDet]) </Vector> + <Vector name="Rotations" type="string" nEntries="3"> + tibstringpar:NULL, tibstringpar:NULL, tibstringpar:NULL</Vector> + </Algorithm> + <Algorithm name="track:DDTrackerXYZPosAlgo"> + <rParent name="tibstring3ur:TIBString3UpPls1"/> + <String name="ChildName" value="tibmodpar:TIBAOHLedge"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Vector name="XPositions" type="numeric" nEntries="3"> + [zero], [zero], [zero]</Vector> + <Vector name="YPositions" type="numeric" nEntries="3"> + [tibmodpar:SSLedgeBoxY], [tibmodpar:SSLedgeBoxY], [tibmodpar:SSLedgeBoxY]</Vector> + <Vector name="ZPositions" type="numeric" nEntries="3"> + ([Det0Z]+[ShiftAOHLedge]), ([Det1Z]+[ShiftAOHLedge]), ([Det2Z]+[ShiftAOHLedge]) </Vector> + <Vector name="Rotations" type="string" nEntries="3"> + tibstringpar:NULL, tibstringpar:NULL, tibstringpar:NULL</Vector> + </Algorithm> + <Algorithm name="track:DDTrackerXYZPosAlgo"> + <rParent name="tibstring3ur:TIBString3UpPls1"/> + <String name="ChildName" value="tibmodpar:TIBSSAOHBox"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Vector name="XPositions" type="numeric" nEntries="3"> + [tibmodpar:SSAOHBoxX], [tibmodpar:SSAOHBoxX], [tibmodpar:SSAOHBoxX]</Vector> + <Vector name="YPositions" type="numeric" nEntries="3"> + [tibmodpar:SSAOHBoxY], [tibmodpar:SSAOHBoxY], [tibmodpar:SSAOHBoxY]</Vector> + <Vector name="ZPositions" type="numeric" nEntries="3"> + ([Det0Z]+[ShiftAOHBox]), ([Det1Z]+[ShiftAOHBox]), ([Det2Z]+[ShiftAOHBox]) </Vector> + <Vector name="Rotations" type="string" nEntries="3"> + tibstringpar:NULL, tibstringpar:NULL, tibstringpar:NULL</Vector> + </Algorithm> + <Algorithm name="track:DDTrackerXYZPosAlgo"> + <rParent name="tibstring3ur:TIBString3UpPls1"/> + <String name="ChildName" value="tibstringpar:SSMCModConn"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Vector name="XPositions" type="numeric" nEntries="3"> + [tibstringpar:MCModConnX], [tibstringpar:MCModConnX], [tibstringpar:MCModConnX]</Vector> + <Vector name="YPositions" type="numeric" nEntries="3"> + [tibstringpar:SSMCModConnY], [tibstringpar:SSMCModConnY], [tibstringpar:SSMCModConnY]</Vector> + <Vector name="ZPositions" type="numeric" nEntries="3"> + ([Det0Z]+[ShiftMCModConn]), ([Det1Z]+[ShiftMCModConn]), ([Det2Z]+[ShiftMCModConn]) </Vector> + <Vector name="Rotations" type="string" nEntries="3"> + tibstringpar:NULL, tibstringpar:NULL, tibstringpar:NULL</Vector> + </Algorithm> +</DDDefinition> diff --git a/examples/DDCMS/data/tibstringpar.xml b/examples/DDCMS/data/tibstringpar.xml new file mode 100644 index 0000000000000000000000000000000000000000..3c073613fd33bb9d92550c17cf2a0bc6de2c315e --- /dev/null +++ b/examples/DDCMS/data/tibstringpar.xml @@ -0,0 +1,118 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tibstringpar.xml" eval="true"> + <Constant name="zero" value="0.0*fm"/> + <Constant name="StringL" value="2*[tib:TIBDz]"/> + <Constant name="BWSign" value="-1."/> + <Constant name="FWSign" value="+1."/> + <Constant name="INT1Sign" value="-1."/> + <Constant name="EXT1Sign" value="+1."/> + <Constant name="INT2Sign" value="+1."/> + <Constant name="EXT2Sign" value="-1."/> + <Constant name="INT3Sign" value="-1."/> + <Constant name="EXT3Sign" value="+1."/> + <Constant name="INT4Sign" value="+1."/> + <Constant name="EXT4Sign" value="-1."/> + <Constant name="MCHeadDx" value="16.0*mm"/> + <Constant name="MCHeadDy" value="2.5*mm"/> + <Constant name="MCHeadDz" value="22.0*mm"/> + <Constant name="MCHeadX" value="[zero]"/> + <Constant name="SSMCHeadY" value="-[tibmodpar:SSModuleDy]-2*[tibstringpar:CoolBoxDy]-2*[tibstringpar:SSCableBoxDy]+[tibstringpar:MCHeadDy]"/> + <Constant name="DSMCHeadY" value="-[tibmodpar:DSModuleDy]-2*[tibstringpar:CoolBoxDy]-2*[tibstringpar:DSCableBoxDy]+[tibstringpar:MCHeadDy]"/> + <Constant name="MotherCableW" value="2.40*cm"/> + <Constant name="MotherCableT" value="1.20*mm"/> + <Constant name="MotherCableX" value="[zero]"/> + <Constant name="SSMotherCableY" value="-[tibmodpar:SSModuleDy]-2*[tibstringpar:CoolBoxDy]-2*[tibstringpar:SSCableBoxDy]+0.5*[tibstringpar:MotherCableT]"/> + <Constant name="DSMotherCableY" value="-[tibmodpar:DSModuleDy]-2*[tibstringpar:CoolBoxDy]-2*[tibstringpar:DSCableBoxDy]+0.5*[tibstringpar:MotherCableT]"/> + <Constant name="CoolTubeD" value="2.8*mm"/> + <!-- For bw comp to be removed --> + <Constant name="CoolPipeDx" value="2.25*mm"/> + <Constant name="CoolPipeDy" value="1.05*mm"/> + <Constant name="CoolPipeX" value="27.0*mm"/> + <Constant name="SSCoolPipeY" value="-[tibmodpar:SSModuleDy]-2*[tibstringpar:CoolBoxDy]+[tibstringpar:CoolPipeDy]"/> + <Constant name="DSCoolPipeY" value="-[tibmodpar:DSModuleDy]-2*[tibstringpar:CoolBoxDy]+[tibstringpar:CoolPipeDy]"/> + <Constant name="CoolTubeW" value="[CoolTubeD]+[CoolTubeSep]"/> + <!-- For bw comp to be removed --> + <Constant name="CoolBoxDx" value="30.0*mm"/> + <Constant name="CoolBoxDy" value="1.4*mm"/> + <Constant name="SSCoolBoxY" value="-[tibmodpar:SSModuleDy]-[tibstringpar:CoolBoxDy]"/> + <Constant name="DSCoolBoxY" value="-[tibmodpar:DSModuleDy]-[tibstringpar:CoolBoxDy]"/> + <Constant name="CoolTubeSep" value="5.40*cm"/> + <Constant name="CableBoxDx" value="16.0*mm"/> + <Constant name="SSCableBoxDy" value="2.3*mm"/> + <Constant name="SSCableBoxY" value="-[tibmodpar:SSModuleDy]-2*[tibstringpar:CoolBoxDy]-[tibstringpar:SSCableBoxDy]"/> + <Constant name="DSCableBoxDy" value="1.7*mm"/> + <Constant name="DSCableBoxY" value="-[tibmodpar:DSModuleDy]-2*[tibstringpar:CoolBoxDy]-[tibstringpar:DSCableBoxDy]"/> + <Constant name="SSMCModConnDx" value="6.9*mm"/> + <Constant name="DSMCModConnDx" value="7.4*mm"/> + <Constant name="SSMCModConnDy" value="0.5*([tibmodpar:SSAOHBoxY]-[tibmodpar:AOHBoxDy]-[tibstringpar:SSMotherCableY]-0.5*[tibstringpar:MotherCableT])"/> + <Constant name="DSMCModConnDy" value="0.5*([tibmodpar:DSAOHBoxY]-[tibmodpar:AOHBoxDy]-[tibstringpar:DSMotherCableY]-0.5*[tibstringpar:MotherCableT])"/> + <Constant name="SSMCModConnDz" value="5.7*mm"/> + <Constant name="DSMCModConnDz" value="9.7*mm"/> + <Constant name="MCModConnX" value="[zero]"/> + <Constant name="SSMCModConnY" value="-[tibmodpar:SSModuleDy]-2*[tibstringpar:CoolBoxDy]-2*[tibstringpar:SSCableBoxDy]+[tibstringpar:SSMCModConnDy]+[tibstringpar:MotherCableT]"/> + <Constant name="DSMCModConnY" value="-[tibmodpar:DSModuleDy]-2*[tibstringpar:CoolBoxDy]-2*[tibstringpar:DSCableBoxDy]+[tibstringpar:DSMCModConnDy]+[tibstringpar:MotherCableT]"/> + <Constant name="MCModConnOffset" value="[tibmodpar:AOHModOffset]+[tibmodpar:AOHLedgeSideDz]"/> + <Constant name="SideCutDx" value="[tibmodpar:DSModuleSideCutDx]"/> + <Constant name="SideCutX" value="[tibmodpar:ModuleDx]-[SideCutDx]+0.3*mm"/> + </ConstantsSection> + <SolidSection label="tibstringpar.xml"> + <Box name="TIBStringCoolBox" dx="[tibstringpar:CoolBoxDx]" dy="[tibstringpar:CoolBoxDy]" dz="[tibstringpar:StringL]/2"/> + <Box name="TIBSSStringModuleBox" dx="[tibmodpar:ModuleDx]" dy="[tibmodpar:SSModuleDy]" dz="[tibstringpar:StringL]/2"/> + <Box name="TIBSSStringCableBox" dx="[tibstringpar:CableBoxDx]" dy="[tibstringpar:SSCableBoxDy]" dz="[tibstringpar:StringL]/2"/> + <UnionSolid name="TIBSSStringModAndCool"> + <rSolid name="TIBSSStringModuleBox"/> + <rSolid name="TIBStringCoolBox"/> + <Translation x="[zero]" y="[tibstringpar:SSCoolBoxY]" z="[zero]"/> + </UnionSolid> + <UnionSolid name="TIBSSString1"> + <rSolid name="TIBSSStringModAndCool"/> + <rSolid name="TIBSSStringCableBox"/> + <Translation x="[zero]" y="[tibstringpar:SSCableBoxY]" z="[zero]"/> + </UnionSolid> + <Box name="TIBDSString1MainPart" dx="[tibmodpar:ModuleDx]" dy="[tibmodpar:DSModuleDy]" dz="[tibstringpar:StringL]/2"/> + <Box name="TIBDSString1SideCut" dx="[SideCutDx]" dy="[tibmodpar:DSModuleSideCutDy]" dz="[tibstringpar:StringL]/2+[tibmodpar:SideCutExtraZ]"/> + <Box name="TIBDSStringCableBox" dx="[tibstringpar:CableBoxDx]" dy="[tibstringpar:DSCableBoxDy]" dz="[tibstringpar:StringL]/2"/> + <SubtractionSolid name="TIBDSString1LeftCutted"> + <rSolid name="TIBDSString1MainPart"/> + <rSolid name="TIBDSString1SideCut"/> + <Translation x="-[SideCutX]" y="[tibmodpar:DSModuleSideCutY]" z="[zero]"/> + </SubtractionSolid> + <SubtractionSolid name="TIBDSStringModuleBox"> + <rSolid name="TIBDSString1LeftCutted"/> + <rSolid name="TIBDSString1SideCut"/> + <Translation x="[SideCutX]" y="[tibmodpar:DSModuleSideCutY]" z="[zero]"/> + </SubtractionSolid> + <UnionSolid name="TIBDSStringModAndCool"> + <rSolid name="TIBDSStringModuleBox"/> + <rSolid name="TIBStringCoolBox"/> + <Translation x="[zero]" y="[tibstringpar:DSCoolBoxY]" z="[zero]"/> + </UnionSolid> + <UnionSolid name="TIBDSString1"> + <rSolid name="TIBDSStringModAndCool"/> + <rSolid name="TIBDSStringCableBox"/> + <Translation x="[zero]" y="[tibstringpar:DSCableBoxY]" z="[zero]"/> + </UnionSolid> + <Box name="MCHead" dx="[tibstringpar:MCHeadDx]" dy="[tibstringpar:MCHeadDy]" dz="[tibstringpar:MCHeadDz]"/> + <Box name="SSMCModConn" dx="[tibstringpar:SSMCModConnDx]" dy="[tibstringpar:SSMCModConnDy]" dz="[tibstringpar:SSMCModConnDz]"/> + <Box name="DSMCModConn" dx="[tibstringpar:DSMCModConnDx]" dy="[tibstringpar:DSMCModConnDy]" dz="[tibstringpar:DSMCModConnDz]"/> + </SolidSection> + <LogicalPartSection label="tibstringpar.xml"> + <LogicalPart name="MCHead" category="unspecified"> + <rSolid name="MCHead"/> + <rMaterial name="tibmaterial:TIB_MCHead"/> + </LogicalPart> + <LogicalPart name="SSMCModConn" category="unspecified"> + <rSolid name="SSMCModConn"/> + <rMaterial name="tibmaterial:TIB_SSMCModConn"/> + </LogicalPart> + <LogicalPart name="DSMCModConn" category="unspecified"> + <rSolid name="DSMCModConn"/> + <rMaterial name="tibmaterial:TIB_DSMCModConn"/> + </LogicalPart> + </LogicalPartSection> + <RotationSection label="tibstringpar.xml"> + <Rotation name="180D" thetaX="90*deg" phiX="180*deg" thetaY="90*deg" phiY="90*deg" thetaZ="180*deg" phiZ="0*deg"/> + <Rotation name="90XD" thetaX="90*deg" phiX="90*deg" thetaY="0*deg" phiY="0*deg" thetaZ="90*deg" phiZ="0*deg"/> + </RotationSection> +</DDDefinition> diff --git a/examples/DDCMS/data/tibtidcommonmaterial.xml b/examples/DDCMS/data/tibtidcommonmaterial.xml new file mode 100644 index 0000000000000000000000000000000000000000..e2033d46604af6d04fc00c280ac11fa24c54d21a --- /dev/null +++ b/examples/DDCMS/data/tibtidcommonmaterial.xml @@ -0,0 +1,570 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <MaterialSection label="tibtidcommonmaterial.xml"> + <CompositeMaterial name="TIBTID_CCUM" density="0.81143*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.19505"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.37418"> + <rMaterial name="trackermaterial:T_FR4" /> + </MaterialFraction> + <MaterialFraction fraction="0.00724"> + <rMaterial name="materials:Silicon" /> + </MaterialFraction> + <MaterialFraction fraction="0.02789"> + <rMaterial name="materials:SMD_metal" /> + </MaterialFraction> + <MaterialFraction fraction="0.08519"> + <rMaterial name="materials:Epoxy" /> + </MaterialFraction> + <MaterialFraction fraction="0.00067"> + <rMaterial name="materials:Silicon" /> + </MaterialFraction> + <MaterialFraction fraction="0.00469"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.00322"> + <rMaterial name="materials:Epoxy" /> + </MaterialFraction> + <MaterialFraction fraction="0.00067"> + <rMaterial name="materials:Silicon" /> + </MaterialFraction> + <MaterialFraction fraction="0.00808"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.00556"> + <rMaterial name="materials:Epoxy" /> + </MaterialFraction> + <MaterialFraction fraction="0.16432"> + <rMaterial name="materials:Polyethylene" /> + </MaterialFraction> + <MaterialFraction fraction="0.12324"> + <rMaterial name="materials:T_Bronze" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="T_FiberPigtail" density="1.08988*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.03793"> + <rMaterial name="materials:Quartz" /> + </MaterialFraction> + <MaterialFraction fraction="0.0503"> + <rMaterial name="materials:Acrylate" /> + </MaterialFraction> + <MaterialFraction fraction="0.50313"> + <rMaterial name="materials:Acrylate" /> + </MaterialFraction> + <MaterialFraction fraction="0.40864"> + <rMaterial name="materials:Polyethylene" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="T_PigtailMUConn" density="1.09775*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.30468"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.56497"> + <rMaterial name="materials:Polyethylene" /> + </MaterialFraction> + <MaterialFraction fraction="0.13035"> + <rMaterial name="materials:Polyethylene" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TIBTID_T_RuggRibbon" density="0.84212*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.67168"> + <rMaterial name="materials:Polyethylene" /> + </MaterialFraction> + <MaterialFraction fraction="0.13807"> + <rMaterial name="trackermaterial:T_Kevlar" /> + </MaterialFraction> + <MaterialFraction fraction="0.06511"> + <rMaterial name="materials:Acrylate" /> + </MaterialFraction> + <MaterialFraction fraction="0.0538"> + <rMaterial name="materials:Quartz" /> + </MaterialFraction> + <MaterialFraction fraction="0.07134"> + <rMaterial name="materials:Acrylate" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="T_Cu10mmPipe" density="3.22429*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.5279"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.4721"> + <rMaterial name="trackermaterial:T_C6F14_F2_-30C" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="T_Al6mmPipe" density="2.13004*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.3874"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + <MaterialFraction fraction="0.6126"> + <rMaterial name="trackermaterial:T_C6F14_F2_-30C" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="T_MedCABMaleConn" density="1.65926*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.10693"> + <rMaterial name="materials:Polyethylene" /> + </MaterialFraction> + <MaterialFraction fraction="0.37453"> + <rMaterial name="materials:T_Bronze" /> + </MaterialFraction> + <MaterialFraction fraction="0.11664"> + <rMaterial name="materials:Tin" /> + </MaterialFraction> + <MaterialFraction fraction="0.25758"> + <rMaterial name="materials:Brass" /> + </MaterialFraction> + <MaterialFraction fraction="0.14432"> + <rMaterial name="materials:Iron" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="T_MedCABFemaleConn" density="1.89866*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.34829"> + <rMaterial name="materials:Polyethylene" /> + </MaterialFraction> + <MaterialFraction fraction="0.28641"> + <rMaterial name="materials:T_Bronze" /> + </MaterialFraction> + <MaterialFraction fraction="0.10193"> + <rMaterial name="materials:Tin" /> + </MaterialFraction> + <MaterialFraction fraction="0.20814"> + <rMaterial name="materials:Brass" /> + </MaterialFraction> + <MaterialFraction fraction="0.05522"> + <rMaterial name="materials:Iron" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="T_MedPLCCMaleConn" density="1.45510*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.13829"> + <rMaterial name="materials:Polyethylene" /> + </MaterialFraction> + <MaterialFraction fraction="0.31405"> + <rMaterial name="materials:T_Bronze" /> + </MaterialFraction> + <MaterialFraction fraction="0.11316"> + <rMaterial name="materials:Tin" /> + </MaterialFraction> + <MaterialFraction fraction="0.28495"> + <rMaterial name="materials:Brass" /> + </MaterialFraction> + <MaterialFraction fraction="0.14956"> + <rMaterial name="materials:Iron" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="T_MedPLCCFemaleConn" density="1.75960*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.39851"> + <rMaterial name="materials:Polyethylene" /> + </MaterialFraction> + <MaterialFraction fraction="0.24109"> + <rMaterial name="materials:T_Bronze" /> + </MaterialFraction> + <MaterialFraction fraction="0.09357"> + <rMaterial name="materials:Tin" /> + </MaterialFraction> + <MaterialFraction fraction="0.22177"> + <rMaterial name="materials:Brass" /> + </MaterialFraction> + <MaterialFraction fraction="0.04505"> + <rMaterial name="materials:Iron" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="T_MedusaWire" density="2.40567*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.70862"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.29138"> + <rMaterial name="materials:Polyethylene" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TIBTID_ServiceCylinder" density="0.52518*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.47614"> + <rMaterial name="tibtidcommonmaterial:T_MedusaWire" /> + </MaterialFraction> + <MaterialFraction fraction="0.21076"> + <rMaterial name="tibtidcommonmaterial:T_Al6mmPipe" /> + </MaterialFraction> + <MaterialFraction fraction="0.16286"> + <rMaterial name="tibtidcommonmaterial:T_FiberPigtail" /> + </MaterialFraction> + <MaterialFraction fraction="0.02128"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.02601"> + <rMaterial name="materials:T_Kapton" /> + </MaterialFraction> + <MaterialFraction fraction="0.0604"> + <rMaterial name="materials:T_Kapton" /> + </MaterialFraction> + <MaterialFraction fraction="0.01334"> + <rMaterial name="trackermaterial:T_CarbonFibreStr" /> + </MaterialFraction> + <MaterialFraction fraction="0.00686"> + <rMaterial name="trackermaterial:T_G10" /> + </MaterialFraction> + <MaterialFraction fraction="0.00231"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.01469"> + <rMaterial name="materials:Polyethylene" /> + </MaterialFraction> + <MaterialFraction fraction="0.00536"> + <rMaterial name="materials:Epoxy" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TIBTID_ServiceDisk1" density="1.1412*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.26175"> + <rMaterial name="tibtidcommonmaterial:T_MedusaWire" /> + </MaterialFraction> + <MaterialFraction fraction="0.10683"> + <rMaterial name="tibtidcommonmaterial:T_Al6mmPipe" /> + </MaterialFraction> + <MaterialFraction fraction="0.0895"> + <rMaterial name="tibtidcommonmaterial:T_FiberPigtail" /> + </MaterialFraction> + <MaterialFraction fraction="0.01171"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.01429"> + <rMaterial name="materials:T_Kapton" /> + </MaterialFraction> + <MaterialFraction fraction="0.29722"> + <rMaterial name="trackermaterial:T_FR4" /> + </MaterialFraction> + <MaterialFraction fraction="0.11443"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + <MaterialFraction fraction="0.10428"> + <rMaterial name="trackermaterial:T_CarbonFibreStr" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TIBTID_ServiceDisk2" density="0.684*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.26175"> + <rMaterial name="tibtidcommonmaterial:T_MedusaWire" /> + </MaterialFraction> + <MaterialFraction fraction="0.10683"> + <rMaterial name="tibtidcommonmaterial:T_Al6mmPipe" /> + </MaterialFraction> + <MaterialFraction fraction="0.0895"> + <rMaterial name="tibtidcommonmaterial:T_FiberPigtail" /> + </MaterialFraction> + <MaterialFraction fraction="0.01171"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.01429"> + <rMaterial name="materials:T_Kapton" /> + </MaterialFraction> + <MaterialFraction fraction="0.29722"> + <rMaterial name="trackermaterial:T_FR4" /> + </MaterialFraction> + <MaterialFraction fraction="0.11443"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + <MaterialFraction fraction="0.10428"> + <rMaterial name="trackermaterial:T_CarbonFibreStr" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TIBTID_OptoPanelFront" density="0.077952*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.8808"> + <rMaterial name="tibtidcommonmaterial:TIBTID_T_RuggRibbon" /> + </MaterialFraction> + <MaterialFraction fraction="0.08973"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + <MaterialFraction fraction="0.02947"> + <rMaterial name="trackermaterial:T_FR4" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TIBTID_OptoConnectors" density="0.530415*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.12072"> + <rMaterial name="trackermaterial:T_FR4" /> + </MaterialFraction> + <MaterialFraction fraction="0.02314"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + <MaterialFraction fraction="0.00586"> + <rMaterial name="trackermaterial:T_FR4" /> + </MaterialFraction> + <MaterialFraction fraction="0.43309"> + <rMaterial name="trackermaterial:T_Ribbon12xMUConn" /> + </MaterialFraction> + <MaterialFraction fraction="0.41719"> + <rMaterial name="tibtidcommonmaterial:T_PigtailMUConn" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TIBTID_OptoPanelBackInner" density="0.181308*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.19522"> + <rMaterial name="trackermaterial:T_FR4" /> + </MaterialFraction> + <MaterialFraction fraction="0.51268"> + <rMaterial name="tibtidcommonmaterial:T_FiberPigtail" /> + </MaterialFraction> + <MaterialFraction fraction="0.03886"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + <MaterialFraction fraction="0.25324"> + <rMaterial name="trackermaterial:T_Silicone_Gel" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TIBTID_OptoPanelBackOuter" density="0.159924*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.20963"> + <rMaterial name="trackermaterial:T_FR4" /> + </MaterialFraction> + <MaterialFraction fraction="0.20893"> + <rMaterial name="tibtidcommonmaterial:TIBTID_T_RuggRibbon" /> + </MaterialFraction> + <MaterialFraction fraction="0.58144"> + <rMaterial name="tibtidcommonmaterial:T_FiberPigtail" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TIBTID_Margherita" density="1.2580195*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.25645"> + <rMaterial name="trackermaterial:T_FR4" /> + </MaterialFraction> + <MaterialFraction fraction="0.02389"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.00576"> + <rMaterial name="materials:Gold" /> + </MaterialFraction> + <MaterialFraction fraction="0.02917"> + <rMaterial name="trackermaterial:T_CarbonFibreStr" /> + </MaterialFraction> + <MaterialFraction fraction="0.00414"> + <rMaterial name="materials:T_Kapton" /> + </MaterialFraction> + <MaterialFraction fraction="0.0032"> + <rMaterial name="materials:Epoxy" /> + </MaterialFraction> + <MaterialFraction fraction="0.00158"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + <MaterialFraction fraction="0.00751"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.00228"> + <rMaterial name="materials:T_Kapton" /> + </MaterialFraction> + <MaterialFraction fraction="0.13467"> + <rMaterial name="tibtidcommonmaterial:T_MedCABMaleConn" /> + </MaterialFraction> + <MaterialFraction fraction="0.03841"> + <rMaterial name="tibtidcommonmaterial:T_MedPLCCMaleConn" /> + </MaterialFraction> + <MaterialFraction fraction="0.39282"> + <rMaterial name="tibtidcommonmaterial:T_MedusaWire" /> + </MaterialFraction> + <MaterialFraction fraction="0.07999"> + <rMaterial name="tibtidcommonmaterial:T_Al6mmPipe" /> + </MaterialFraction> + <MaterialFraction fraction="0.02012"> + <rMaterial name="materials:T_Kapton" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TIBTID_PowerConnectors" density="0.424932*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.1342"> + <rMaterial name="trackermaterial:CAB_Al60TIBTID" /> + </MaterialFraction> + <MaterialFraction fraction="0.09401"> + <rMaterial name="trackermaterial:MS_CntrlTIBTID" /> + </MaterialFraction> + <MaterialFraction fraction="0.05887"> + <rMaterial name="trackermaterial:T_RuggRibbon" /> + </MaterialFraction> + <MaterialFraction fraction="0.54781"> + <rMaterial name="tibtidcommonmaterial:T_MedCABFemaleConn" /> + </MaterialFraction> + <MaterialFraction fraction="0.16511"> + <rMaterial name="tibtidcommonmaterial:T_MedPLCCFemaleConn" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TIBTID_TSTCabAxial" density="0.89492*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.31327"> + <rMaterial name="trackermaterial:CAB_Al60TIBTID" /> + </MaterialFraction> + <MaterialFraction fraction="0.10473"> + <rMaterial name="trackermaterial:MS_CntrlTIBTID" /> + </MaterialFraction> + <MaterialFraction fraction="0.25567"> + <rMaterial name="tibtidcommonmaterial:T_Cu10mmPipe" /> + </MaterialFraction> + <MaterialFraction fraction="0.0473"> + <rMaterial name="tibtidcommonmaterial:TIBTID_T_RuggRibbon" /> + </MaterialFraction> + <MaterialFraction fraction="0.00356"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.27547"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TIBTID_TSTCabRadial" density="0.30422*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.41686"> + <rMaterial name="trackermaterial:CAB_Al60TIBTID" /> + </MaterialFraction> + <MaterialFraction fraction="0.13941"> + <rMaterial name="trackermaterial:MS_CntrlTIBTID" /> + </MaterialFraction> + <MaterialFraction fraction="0.38651"> + <rMaterial name="tibtidcommonmaterial:T_Cu10mmPipe" /> + </MaterialFraction> + <MaterialFraction fraction="0.05722"> + <rMaterial name="tibtidcommonmaterial:TIBTID_T_RuggRibbon" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TIBTID_PA" density="2.74978*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.44428"> + <rMaterial name="materials:Borosilicate_Glass" /> + </MaterialFraction> + <MaterialFraction fraction="0.48493"> + <rMaterial name="materials:Ceramic" /> + </MaterialFraction> + <MaterialFraction fraction="0.07079"> + <rMaterial name="materials:Epoxy" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TIBTID_AOH" density="0.60091*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.31344"> + <rMaterial name="trackermaterial:T_FR4" /> + </MaterialFraction> + <MaterialFraction fraction="0.23771"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.14423"> + <rMaterial name="materials:Polyethylene" /> + </MaterialFraction> + <MaterialFraction fraction="0.08645"> + <rMaterial name="materials:T_Bronze" /> + </MaterialFraction> + <MaterialFraction fraction="0.00612"> + <rMaterial name="materials:Ceramic" /> + </MaterialFraction> + <MaterialFraction fraction="0.04437"> + <rMaterial name="trackermaterial:T_Barium_Titanate" /> + </MaterialFraction> + <MaterialFraction fraction="0.01304"> + <rMaterial name="materials:Epoxy" /> + </MaterialFraction> + <MaterialFraction fraction="0.02075"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.06154"> + <rMaterial name="materials:Silicon" /> + </MaterialFraction> + <MaterialFraction fraction="0.07235"> + <rMaterial name="materials:Polyethylene" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TIBTID_DOH" density="0.79092*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.22923"> + <rMaterial name="trackermaterial:T_FR4" /> + </MaterialFraction> + <MaterialFraction fraction="0.18785"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.04401"> + <rMaterial name="materials:Polyethylene" /> + </MaterialFraction> + <MaterialFraction fraction="0.02744"> + <rMaterial name="materials:T_Bronze" /> + </MaterialFraction> + <MaterialFraction fraction="0.00145"> + <rMaterial name="materials:Ceramic" /> + </MaterialFraction> + <MaterialFraction fraction="0.01117"> + <rMaterial name="trackermaterial:T_Barium_Titanate" /> + </MaterialFraction> + <MaterialFraction fraction="0.01773"> + <rMaterial name="materials:Epoxy" /> + </MaterialFraction> + <MaterialFraction fraction="0.02595"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.03223"> + <rMaterial name="materials:Silicon" /> + </MaterialFraction> + <MaterialFraction fraction="0.07813"> + <rMaterial name="materials:Ceramic" /> + </MaterialFraction> + <MaterialFraction fraction="0.07894"> + <rMaterial name="materials:Brass" /> + </MaterialFraction> + <MaterialFraction fraction="0.21661"> + <rMaterial name="trackermaterial:T_FR4" /> + </MaterialFraction> + <MaterialFraction fraction="0.04926"> + <rMaterial name="materials:Polyethylene" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TIBTID_AmphCable" density="2.05153*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.56777"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.22996"> + <rMaterial name="materials:Polyethylene" /> + </MaterialFraction> + <MaterialFraction fraction="0.20227"> + <rMaterial name="materials:Polyethylene" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TIBTID_HybridBoard" density="3.70257*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.26413"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.03035"> + <rMaterial name="materials:T_Kapton" /> + </MaterialFraction> + <MaterialFraction fraction="0.05229"> + <rMaterial name="trackermaterial:T_Silicone_Gel" /> + </MaterialFraction> + <MaterialFraction fraction="0.65323"> + <rMaterial name="materials:Ceramic" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TIBTID_HybridTails" density="1.61323*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.32847"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.34993"> + <rMaterial name="materials:T_Kapton" /> + </MaterialFraction> + <MaterialFraction fraction="0.3216"> + <rMaterial name="trackermaterial:T_Silicone_Gel" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TIBTID_Hybrid" density="2.16228*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.8733"> + <rMaterial name="tibtidcommonmaterial:TIBTID_HybridBoard" /> + </MaterialFraction> + <MaterialFraction fraction="0.07195"> + <rMaterial name="materials:Silicon" /> + </MaterialFraction> + <MaterialFraction fraction="0.00385"> + <rMaterial name="materials:Silicon" /> + </MaterialFraction> + <MaterialFraction fraction="0.00601"> + <rMaterial name="materials:Silicon" /> + </MaterialFraction> + <MaterialFraction fraction="0.00096"> + <rMaterial name="materials:Silicon" /> + </MaterialFraction> + <MaterialFraction fraction="0.00374"> + <rMaterial name="materials:Carbon" /> + </MaterialFraction> + <MaterialFraction fraction="0.00674"> + <rMaterial name="materials:SMD_metal" /> + </MaterialFraction> + <MaterialFraction fraction="0.00466"> + <rMaterial name="materials:Alumina" /> + </MaterialFraction> + <MaterialFraction fraction="0.00541"> + <rMaterial name="materials:SMD_metal" /> + </MaterialFraction> + <MaterialFraction fraction="0.01636"> + <rMaterial name="materials:Alumina" /> + </MaterialFraction> + <MaterialFraction fraction="0.00702"> + <rMaterial name="materials:SMD_metal" /> + </MaterialFraction> + </CompositeMaterial> + </MaterialSection> +</DDDefinition> diff --git a/examples/DDCMS/data/tibtidservices.xml b/examples/DDCMS/data/tibtidservices.xml new file mode 100644 index 0000000000000000000000000000000000000000..a393af62d81838f2729605f910c9c8cf664ea256 --- /dev/null +++ b/examples/DDCMS/data/tibtidservices.xml @@ -0,0 +1,394 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tibtidservices.xml" eval="true"> + <Constant name="zero" value="0.0*fm"/> + <!-- Mother Volume (Polycone) --> + <Constant name="Rin1" value="22.20*cm"/> + <Constant name="Rin1bis" value="21.80*cm"/> + <Constant name="Rin2" value="[tid:Rout]"/> + <!-- 52.0 cm --> + <Constant name="Rin3" value="24.60*cm"/> + <!-- "dente" PXL flange --> + <Constant name="Rin4" value="113.51*cm"/> + <!-- inner R (vs beam) corrected to 113.51 cm as in reality--> + <Constant name="Rout1" value="[tib:Rout]"/> + <!-- 54.0 cm --> + <Constant name="Rout2" value="58.00*cm"/> + <!-- "dente" Margerita flange --> + <Constant name="Rout3" value="116.00*cm"/> + <!-- outer R (vs TST) [was 115.0 cm in tib.xml]; max value: 116.0 tob.xml --> + <Constant name="Zv1" value="71.6*cm"/> + <Constant name="Zv2" value="73.6*cm"/> + <!-- begin of TID envelope cf. tid.xml --> + <Constant name="Zv3" value="110.0*cm"/> + <!-- "dente" Margherita flange --> + <Constant name="Zv4" value="111.3*cm"/> + <Constant name="Zv5" value="112.1*cm"/> + <Constant name="Zv5bis" value="113.1*cm"/> + <!-- "dente" PXL flange --> + <Constant name="Zv6" value="118.0*cm"/> + <Constant name="Zv7" value="123.0*cm"/> + <Constant name="Zv8" value="282.0*cm"/> + <!-- current Z_max in .xml (true: 274.0 cm) --> + <!-- TIB flange --> + <Constant name="TIBFlangeL" value="[Zv2]-[Zv1]"/> + <Constant name="TIBFlangeZ" value="[Zv1]+[TIBFlangeL]/2"/> + <!-- PixelSupport flanges --> + <Constant name="PixelSupportFlangeL" value="[Zv5]-[Zv4]"/> + <Constant name="PixelSupportFlange2L" value="[Zv5bis]-[Zv5]"/> + <Constant name="PixelSupportFlangeZ" value="[Zv4]+[PixelSupportFlangeL]/2"/> + <Constant name="PixelSupportFlange2Z" value="[Zv4]+[PixelSupportFlangeL]+[PixelSupportFlange2L]/2"/> + <Constant name="Rin3bis" value="24.0*cm"/> + <!-- final section of TID support tube --> + <Constant name="TIDSupportL" value="4.9*cm"/> + <Constant name="TIDSupportZ" value="[Zv4]+[TIDSupportL]/2"/> + <!-- 113.75*cm --> + <!-- Power/Control connectors (medusa->CAB60) --> + <Constant name="PowerConnectorsRin" value="76.7*cm"/> + <Constant name="PowerConnectorsRout" value="95.0*cm"/> + <Constant name="PowerConnectorsL" value="3.0*cm"/> + <Constant name="PowerConnectorsZ" value="121.5*cm"/> + <!-- Margherita --> + <Constant name="MargheritaRf" value="60.6*cm"/> + <!-- "front" (lower |z|) --> + <Constant name="MargheritaRb" value="56.0*cm"/> + <!-- "back" (higher |z|) --> + <Constant name="MargheritaZf" value="[Zv6]"/> + <Constant name="MargheritaZm" value="119.7*cm"/> + <Constant name="MargheritaZb" value="[Zv7]-[PowerConnectorsL]"/> + <!-- 120.0cm --> + <!-- Service Cylinder: 73.6< |z| <116.2 cm --> + <Constant name="ServiceCylinderL" value="42.6*cm"/> + <Constant name="ServiceCylinderZ" value="[Zv2]+[ServiceCylinderL]/2"/> + <!-- Service Disk --> + <Constant name="ServiceDiskZf" value="[Zv2]+[ServiceCylinderL]"/> + <Constant name="ServiceDiskZm" value="[Zv6]"/> + <Constant name="ServiceDiskZb" value="[MargheritaZm]"/> + <Constant name="ServiceDiskRin" value="[tid:SupportRin]"/> + <Constant name="ServiceDiskRm" value="58.0*cm"/> + <Constant name="ServiceDiskRout" value="[MargheritaRf]"/> + <Constant name="ServiceDisk2Dz" value="[ServiceDiskZb]/2-[ServiceDiskZf]/2"/> + <Constant name="ServiceDisk2Z" value="[ServiceDiskZb]/2+[ServiceDiskZf]/2"/> + <!-- Optical Panel --> + <Constant name="OpticalPanelZf" value="[Zv4]"/> + <Constant name="OpticalPanelZ1" value="[MargheritaZm]"/> + <Constant name="OpticalPanelZ2" value="[MargheritaZb]"/> + <Constant name="OpticalPanelZb" value="[Zv7]"/> + <Constant name="OptoPanelFrontL" value="3.6*cm"/> + <Constant name="OptoPanelFrontZ" value="[OpticalPanelZf]+[OptoPanelFrontL]/2"/> + <Constant name="OptoConnectorsL" value="5.0*cm"/> + <Constant name="OptoConnectorsZ" value="[OpticalPanelZf]+[OptoPanelFrontL]+[OptoConnectorsL]/2"/> + <Constant name="OptoPanelBackL" value="[OpticalPanelZb]-[OpticalPanelZf]-([OptoPanelFrontL]+[OptoConnectorsL])"/> + <Constant name="OptoPanelBackZ" value="[OpticalPanelZf]+[OptoPanelFrontL]+[OptoConnectorsL]+[OptoPanelBackL]/2"/> + <!-- TST --> + <Constant name="TSTCabContRin" value="95.0*cm"/> + <Constant name="TSTCabAxialR" value="115.3*cm"/> + <Constant name="TSTCabAxialT" value="1.1*cm"/> + <Constant name="TSTCabAxialL" value="142.0*cm"/> + <Constant name="TSTCabAxialZ" value="[Zv7]+[TSTCabAxialL]/2"/> + <Constant name="TSTCabAxialAlT" value="0.1*cm"/> + <!-- TEC Rails --> + <Constant name="TECRailsRin" value="[Rin4]"/> + <!-- directly ontop of the TEC Skin--> + <Constant name="TECRailsRout" value="[TSTCabAxialR]-[TSTCabAxialT]/2"/> + <!-- directly under AxialCables--> + <Constant name="TECRailsPhi" value="-0.664*deg"/> + <Constant name="TECRailsDeltaPhi" value="7.409*deg"/> + <Constant name="TECRailsADz" value="15.30*cm"/> + <Constant name="TECRailsAZ" value="160.25*cm"/> + <Constant name="TECRailsBDz" value="26.65*cm"/> + <Constant name="TECRailsBZ" value="250.10*cm"/> + <Constant name="TECRailsConnectorDz" value="1.25*cm"/> + <Constant name="TECRailsConnectorZDist" value="14.0*cm"/> + <Constant name="TECRailsConnectorZDistB1" value="20.5*cm"/> + <Constant name="TECRailsConnectorZDistB2" value="21.5*cm"/> + <Constant name="TECRailsConnectorZDistB3" value="8.74*cm"/> + <Constant name="TECRailsSupportDz" value="2.85*cm"/> + <Constant name="TECRailsSupportZDist" value="8.0*cm"/> + <Constant name="TECRailsSupportDphi" value="2.877*deg"/> + </ConstantsSection> + <SolidSection label="tibtidservices.xml"> + <Polycone name="TIBTIDServices" startPhi="0*deg" deltaPhi="360*deg"> + <ZSection z="[Zv1]" rMin="[Rin1]" rMax="[Rout1]"/> + <ZSection z="[Zv2]" rMin="[Rin1]" rMax="[Rout1]"/> + <ZSection z="[Zv2]" rMin="[Rin2]" rMax="[Rout1]"/> + <ZSection z="[Zv3]" rMin="[Rin2]" rMax="[Rout1]"/> + <ZSection z="[Zv3]" rMin="[Rin2]" rMax="[Rout2]"/> + <ZSection z="[Zv4]" rMin="[Rin2]" rMax="[Rout2]"/> + <ZSection z="[Zv4]" rMin="[Rin1]" rMax="[Rout2]"/> + <ZSection z="[Zv5]" rMin="[Rin1]" rMax="[Rout2]"/> + <ZSection z="[Zv5]" rMin="[Rin1bis]" rMax="[Rout2]"/> + <ZSection z="[Zv5bis]" rMin="[Rin1bis]" rMax="[Rout2]"/> + <ZSection z="[Zv5bis]" rMin="[Rin3]" rMax="[Rout2]"/> + <ZSection z="[Zv6]" rMin="[Rin3]" rMax="[Rout2]"/> + <ZSection z="[Zv6]" rMin="[Rin3]" rMax="[Rout3]"/> + <ZSection z="[Zv7]" rMin="[Rin3]" rMax="[Rout3]"/> + <ZSection z="[Zv7]" rMin="[Rin4]" rMax="[Rout3]"/> + <ZSection z="[Zv8]" rMin="[Rin4]" rMax="[Rout3]"/> + </Polycone> + <!-- TID support tube not contained in tid.xml volume --> + <Tubs name="TIDSupport" rMin="[tid:SupportRin]" rMax="[tid:SupportRout]" dz="[TIDSupportL]/2" startPhi="0*deg" deltaPhi="360*deg"/> + <Tubs name="TIDSupportIn" rMin="[tid:SupportInRin]" rMax="[tid:SupportInRout]" dz="[TIDSupportL]/2" startPhi="0*deg" deltaPhi="360*deg"/> + <!-- "Flangia" TIB --> + <Tubs name="TIBFlange" rMin="[tib:Rin]" rMax="[tib:Rout]" dz="[TIBFlangeL]/2" startPhi="0*deg" deltaPhi="360*deg"/> + <!-- "Service Cylinder --> + <Tubs name="ServiceCylinder" rMin="[Rin2]" rMax="[Rout1]" dz="[ServiceCylinderL]/2" startPhi="0*deg" deltaPhi="360*deg"/> + <!-- Flanges PixelSupport --> + <Tubs name="PixelSupportFlange" rMin="[Rin1]" rMax="[Rin3]" dz="[PixelSupportFlangeL]/2" startPhi="0*deg" deltaPhi="360*deg"/> + <Tubs name="PixelSupportFlange2" rMin="[Rin1bis]" rMax="[Rin3bis]" dz="[PixelSupportFlange2L]/2" startPhi="0*deg" deltaPhi="360*deg"/> + <!-- Optical Panel --> + <Polycone name="OpticalPanel" startPhi="0*deg" deltaPhi="360*deg"> + <ZSection z="[OpticalPanelZf]" rMin="[Rin3]" rMax="[tid:SupportRin]"/> + <ZSection z="[OpticalPanelZ1]" rMin="[Rin3]" rMax="[tid:SupportRin]"/> + <ZSection z="[OpticalPanelZ1]" rMin="[Rin3]" rMax="[MargheritaRb]"/> + <ZSection z="[OpticalPanelZ2]" rMin="[Rin3]" rMax="[MargheritaRb]"/> + <ZSection z="[OpticalPanelZ2]" rMin="[Rin3]" rMax="[PowerConnectorsRin]"/> + <ZSection z="[OpticalPanelZb]" rMin="[Rin3]" rMax="[PowerConnectorsRin]"/> + </Polycone> + <!-- Optical Panel Front --> + <Tubs name="OptoPanelFront" rMin="[Rin3]" rMax="[tid:SupportRin]" dz="[OptoPanelFrontL]/2" startPhi="0*deg" deltaPhi="360*deg"/> + <!-- Optical Connectors --> + <Tubs name="OpticalConnectors" rMin="[Rin3]" rMax="[tid:SupportRin]" dz="[OptoConnectorsL]/2" startPhi="0*deg" deltaPhi="360*deg"/> + <!-- Optical Panel Back r<51.2 cm --> + <Tubs name="OptoPanelBackInner" rMin="[Rin3]" rMax="[tid:SupportRin]" dz="[OptoPanelBackL]/2" startPhi="0*deg" deltaPhi="360*deg"/> + <!-- Optical Panel Back r>51.2 cm --> + <Polycone name="OptoPanelBackOuter" startPhi="0*deg" deltaPhi="360*deg"> + <ZSection z="[OpticalPanelZ1]" rMin="[tid:SupportRin]" rMax="[MargheritaRb]"/> + <ZSection z="[OpticalPanelZ2]" rMin="[tid:SupportRin]" rMax="[MargheritaRb]"/> + <ZSection z="[OpticalPanelZ2]" rMin="[tid:SupportRin]" rMax="[PowerConnectorsRin]"/> + <ZSection z="[OpticalPanelZb]" rMin="[tid:SupportRin]" rMax="[PowerConnectorsRin]"/> + </Polycone> + <!-- "Margherita" Panel --> + <Polycone name="Margherita" startPhi="0*deg" deltaPhi="360*deg"> + <ZSection z="[MargheritaZf]" rMin="[MargheritaRf]" rMax="[TSTCabContRin]"/> + <ZSection z="[MargheritaZm]" rMin="[MargheritaRf]" rMax="[TSTCabContRin]"/> + <ZSection z="[MargheritaZm]" rMin="[MargheritaRb]" rMax="[TSTCabContRin]"/> + <ZSection z="[MargheritaZb]" rMin="[MargheritaRb]" rMax="[TSTCabContRin]"/> + </Polycone> + <!-- Service Disk --> + <Polycone name="ServiceDisk1" startPhi="0*deg" deltaPhi="360*deg"> + <ZSection z="[ServiceDiskZf]" rMin="[MargheritaRb]" rMax="[ServiceDiskRm]"/> + <ZSection z="[ServiceDiskZm]" rMin="[MargheritaRb]" rMax="[ServiceDiskRm]"/> + <ZSection z="[ServiceDiskZm]" rMin="[MargheritaRb]" rMax="[ServiceDiskRout]"/> + <ZSection z="[ServiceDiskZb]" rMin="[MargheritaRb]" rMax="[ServiceDiskRout]"/> + </Polycone> + <Tubs name="ServiceDisk2" rMin="[ServiceDiskRin]" rMax="[MargheritaRb]" dz="[ServiceDisk2Dz]" startPhi="0*deg" deltaPhi="360*deg"/> + <!-- Power/Control connectors --> + <Tubs name="PowerConnectors" rMin="[PowerConnectorsRin]" rMax="[PowerConnectorsRout]" dz="[PowerConnectorsL]/2" startPhi="0*deg" deltaPhi="360*deg"/> + <!-- TST --> + <Polycone name="TSTCabCont" startPhi="0*deg" deltaPhi="360*deg"> + <ZSection z="[Zv6]" rMin="[TSTCabContRin]" rMax="[Rout3]"/> + <ZSection z="[Zv7]" rMin="[TSTCabContRin]" rMax="[Rout3]"/> + <ZSection z="[Zv7]" rMin="[Rin4]" rMax="[Rout3]"/> + <ZSection z="[Zv8]" rMin="[Rin4]" rMax="[Rout3]"/> + </Polycone> + <Tubs name="TSTCabAxial" rMin="[TSTCabAxialR]-[TSTCabAxialT]/2" rMax="[TSTCabAxialR]+[TSTCabAxialT]/2" dz="[TSTCabAxialL]/2" startPhi="0*deg" deltaPhi="360*deg"/> + <Polycone name="TSTCabRadial" startPhi="0*deg" deltaPhi="360*deg"> + <ZSection z="[Zv6]" rMin="[TSTCabContRin]" rMax="[TSTCabContRin]"/> + <ZSection z="[Zv6]+0.8*([Zv7]-[Zv6])" rMin="[TSTCabContRin]" rMax="[TSTCabAxialR]-[TSTCabAxialAlT]+[TSTCabAxialT]/2"/> + <ZSection z="[Zv7]" rMin="[TSTCabContRin]" rMax="[TSTCabAxialR]-[TSTCabAxialAlT]+[TSTCabAxialT]/2"/> + </Polycone> + <!-- TEC Rails --> + <Tubs name="TECRailsA" rMin="[TECRailsRin]" rMax="[TECRailsRout]" dz="[TECRailsADz]" startPhi="[TECRailsDeltaPhi]/2" deltaPhi="[TECRailsDeltaPhi]"/> + <Tubs name="TECRailsB" rMin="[TECRailsRin]" rMax="[TECRailsRout]" dz="[TECRailsBDz]" startPhi="[TECRailsDeltaPhi]/2" deltaPhi="[TECRailsDeltaPhi]"/> + <Tubs name="TECRailsConnector" rMin="[TECRailsRin]" rMax="[TECRailsRout]" dz="[TECRailsConnectorDz]" startPhi="[TECRailsDeltaPhi]/2" deltaPhi="[TECRailsDeltaPhi]"/> + <Tubs name="TECRailsSupport" rMin="[TECRailsRin]" rMax="[TECRailsRout]" dz="[TECRailsSupportDz]" startPhi="[TECRailsDeltaPhi]/2+[TECRailsSupportDphi]/4" deltaPhi="[TECRailsSupportDphi]"/> + </SolidSection> + <LogicalPartSection label="tibtidservices.xml"> + <LogicalPart name="TIDSupport" category="unspecified"> + <rSolid name="TIDSupport"/> + <rMaterial name="trackermaterial:T_CarbonFibreStr"/> + </LogicalPart> + <LogicalPart name="TIDSupportIn" category="unspecified"> + <rSolid name="TIDSupportIn"/> + <rMaterial name="trackermaterial:T_Nomex"/> + </LogicalPart> + <LogicalPart name="TIBFlange" category="unspecified"> + <rSolid name="TIBFlange"/> + <rMaterial name="tibmaterial:TIB_Flange"/> + </LogicalPart> + <LogicalPart name="TIBTIDServiceCylinder" category="unspecified"> + <rSolid name="ServiceCylinder"/> + <rMaterial name="tibtidcommonmaterial:TIBTID_ServiceCylinder"/> + </LogicalPart> + <LogicalPart name="TIBTIDPxlFlange" category="unspecified"> + <rSolid name="PixelSupportFlange"/> + <rMaterial name="trackermaterial:T_FR4"/> + </LogicalPart> + <LogicalPart name="TIBTIDPxlFlange2" category="unspecified"> + <rSolid name="PixelSupportFlange2"/> + <rMaterial name="trackermaterial:T_CarbonFibreStr"/> + </LogicalPart> + <LogicalPart name="TIBTIDOpticalPanel" category="unspecified"> + <rSolid name="OpticalPanel"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TIBTIDOptoPanelFront" category="unspecified"> + <rSolid name="OptoPanelFront"/> + <rMaterial name="tibtidcommonmaterial:TIBTID_OptoPanelFront"/> + </LogicalPart> + <LogicalPart name="TIBTIDOptoConnectors" category="unspecified"> + <rSolid name="OpticalConnectors"/> + <rMaterial name="tibtidcommonmaterial:TIBTID_OptoConnectors"/> + </LogicalPart> + <LogicalPart name="TIBTIDOptoPanelBackInner" category="unspecified"> + <rSolid name="OptoPanelBackInner"/> + <rMaterial name="tibtidcommonmaterial:TIBTID_OptoPanelBackInner"/> + </LogicalPart> + <LogicalPart name="TIBTIDOptoPanelBackOuter" category="unspecified"> + <rSolid name="OptoPanelBackOuter"/> + <rMaterial name="tibtidcommonmaterial:TIBTID_OptoPanelBackOuter"/> + </LogicalPart> + <LogicalPart name="TIBTIDMargherita" category="unspecified"> + <rSolid name="Margherita"/> + <rMaterial name="tibtidcommonmaterial:TIBTID_Margherita"/> + </LogicalPart> + <LogicalPart name="TIBTIDServiceDisk1" category="unspecified"> + <rSolid name="ServiceDisk1"/> + <rMaterial name="tibtidcommonmaterial:TIBTID_ServiceDisk1"/> + </LogicalPart> + <LogicalPart name="TIBTIDServiceDisk2" category="unspecified"> + <rSolid name="ServiceDisk2"/> + <rMaterial name="tibtidcommonmaterial:TIBTID_ServiceDisk2"/> + </LogicalPart> + <LogicalPart name="TIBTIDPowerConnectors" category="unspecified"> + <rSolid name="PowerConnectors"/> + <rMaterial name="tibtidcommonmaterial:TIBTID_PowerConnectors"/> + </LogicalPart> + <LogicalPart name="TIBTIDTSTCabCont" category="unspecified"> + <rSolid name="TSTCabCont"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TIBTIDTSTCabAxial" category="unspecified"> + <rSolid name="TSTCabAxial"/> + <rMaterial name="tibtidcommonmaterial:TIBTID_TSTCabAxial"/> + </LogicalPart> + <LogicalPart name="TIBTIDTSTCabRadial" category="unspecified"> + <rSolid name="TSTCabRadial"/> + <rMaterial name="tibtidcommonmaterial:TIBTID_TSTCabRadial"/> + </LogicalPart> + <!-- TEC Rails --> + <LogicalPart name="TECRailsA" category="unspecified"> + <rSolid name="tibtidservices:TECRailsA"/> + <rMaterial name="tecmaterial:TEC_Rails"/> + </LogicalPart> + <LogicalPart name="TECRailsB" category="unspecified"> + <rSolid name="tibtidservices:TECRailsB"/> + <rMaterial name="tecmaterial:TEC_Rails"/> + </LogicalPart> + <LogicalPart name="TECRailsConnector" category="unspecified"> + <rSolid name="tibtidservices:TECRailsConnector"/> + <rMaterial name="tecmaterial:TEC_RailsConnector"/> + </LogicalPart> + <LogicalPart name="TECRailsSupport" category="unspecified"> + <rSolid name="tibtidservices:TECRailsSupport"/> + <rMaterial name="tecmaterial:TEC_RailsSupport"/> + </LogicalPart> + </LogicalPartSection> + <PosPartSection label="tibtidservices.xml"> + <PosPart copyNumber="1"> + <rParent name="tibtidservices:TIDSupport"/> + <rChild name="tibtidservices:TIDSupportIn"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibtidservices:TIBTIDOpticalPanel"/> + <rChild name="tibtidservices:TIBTIDOptoPanelFront"/> + <Translation x="[zero]" y="[zero]" z="[OptoPanelFrontZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibtidservices:TIBTIDOpticalPanel"/> + <rChild name="tibtidservices:TIBTIDOptoConnectors"/> + <Translation x="[zero]" y="[zero]" z="[OptoConnectorsZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibtidservices:TIBTIDOpticalPanel"/> + <rChild name="tibtidservices:TIBTIDOptoPanelBackInner"/> + <Translation x="[zero]" y="[zero]" z="[OptoPanelBackZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibtidservices:TIBTIDOpticalPanel"/> + <rChild name="tibtidservices:TIBTIDOptoPanelBackOuter"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibtidservices:TIBTIDTSTCabCont"/> + <rChild name="tibtidservices:TIBTIDTSTCabAxial"/> + <Translation x="[zero]" y="[zero]" z="[TSTCabAxialZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibtidservices:TIBTIDTSTCabCont"/> + <rChild name="tibtidservices:TIBTIDTSTCabRadial"/> + </PosPart> + <!-- TEC Rails: Connectors --> + <PosPart copyNumber="1"> + <rParent name="tibtidservices:TECRailsA"/> + <rChild name="tibtidservices:TECRailsConnector"/> + <Translation x="[zero]" y="[zero]" z="-[TECRailsConnectorZDist]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tibtidservices:TECRailsA"/> + <rChild name="tibtidservices:TECRailsConnector"/> + <Translation x="[zero]" y="[zero]" z="[zero]"/> + </PosPart> + <PosPart copyNumber="3"> + <rParent name="tibtidservices:TECRailsA"/> + <rChild name="tibtidservices:TECRailsConnector"/> + <Translation x="[zero]" y="[zero]" z="+[TECRailsConnectorZDist]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibtidservices:TECRailsB"/> + <rChild name="tibtidservices:TECRailsConnector"/> + <Translation x="[zero]" y="[zero]" z="(-[TECRailsConnectorZDistB3]-[TECRailsConnectorZDistB2]-[TECRailsConnectorZDistB1])/2"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tibtidservices:TECRailsB"/> + <rChild name="tibtidservices:TECRailsConnector"/> + <Translation x="[zero]" y="[zero]" z="(-[TECRailsConnectorZDistB3]-[TECRailsConnectorZDistB2]+[TECRailsConnectorZDistB1])/2"/> + </PosPart> + <PosPart copyNumber="3"> + <rParent name="tibtidservices:TECRailsB"/> + <rChild name="tibtidservices:TECRailsConnector"/> + <Translation x="[zero]" y="[zero]" z="(-[TECRailsConnectorZDistB3]+[TECRailsConnectorZDistB2]+[TECRailsConnectorZDistB1])/2"/> + </PosPart> + <PosPart copyNumber="4"> + <rParent name="tibtidservices:TECRailsB"/> + <rChild name="tibtidservices:TECRailsConnector"/> + <Translation x="[zero]" y="[zero]" z="(+[TECRailsConnectorZDistB3]+[TECRailsConnectorZDistB2]+[TECRailsConnectorZDistB1])/2"/> + </PosPart> + <!-- TEC Rails: Support --> + <PosPart copyNumber="1"> + <rParent name="tibtidservices:TECRailsA"/> + <rChild name="tibtidservices:TECRailsSupport"/> + <Translation x="[zero]" y="[zero]" z="[TECRailsSupportZDist]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibtidservices:TECRailsB"/> + <rChild name="tibtidservices:TECRailsSupport"/> + <Translation x="[zero]" y="[zero]" z="[TECRailsSupportZDist]"/> + </PosPart> + </PosPartSection> + <!-- TEC Rails --> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tibtidservices:TIBTIDTSTCabCont"/> + <String name="ChildName" value="tibtidservices:TECRailsA"/> + <Numeric name="N" value="2"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[TECRailsPhi]"/> + <Numeric name="Radius" value="[zero]"/> + <Vector name="Center" type="numeric" nEntries="3"> + 0, 0, [TECRailsAZ] </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tibtidservices:TIBTIDTSTCabCont"/> + <String name="ChildName" value="tibtidservices:TECRailsB"/> + <Numeric name="N" value="2"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[TECRailsPhi]"/> + <Numeric name="Radius" value="[zero]"/> + <Vector name="Center" type="numeric" nEntries="3"> + 0, 0, [TECRailsBZ] </Vector> + </Algorithm> +</DDDefinition> diff --git a/examples/DDCMS/data/tibtidservicesb.xml b/examples/DDCMS/data/tibtidservicesb.xml new file mode 100644 index 0000000000000000000000000000000000000000..96d4029e4087eda63dc0d2e6982cc6cd7f98a8ce --- /dev/null +++ b/examples/DDCMS/data/tibtidservicesb.xml @@ -0,0 +1,65 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tibtidservicesb.xml" eval="true"> + <Constant name="zero" value="0.0*fm"/> + </ConstantsSection> + <LogicalPartSection label="tibtidservicesb.xml"> + <LogicalPart name="TIBTIDServicesB" category="unspecified"> + <rSolid name="tibtidservices:TIBTIDServices"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + </LogicalPartSection> + <PosPartSection label="servicescylinderb.xml"> + <PosPart copyNumber="1"> + <rParent name="tibtidservicesb:TIBTIDServicesB"/> + <rChild name="tibtidservices:TIDSupport"/> + <Translation x="[zero]" y="[zero]" z="[tibtidservices:TIDSupportZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibtidservicesb:TIBTIDServicesB"/> + <rChild name="tibtidservices:TIBFlange"/> + <Translation x="[zero]" y="[zero]" z="[tibtidservices:TIBFlangeZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibtidservicesb:TIBTIDServicesB"/> + <rChild name="tibtidservices:TIBTIDServiceCylinder"/> + <Translation x="[zero]" y="[zero]" z="[tibtidservices:ServiceCylinderZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibtidservicesb:TIBTIDServicesB"/> + <rChild name="tibtidservices:TIBTIDPxlFlange"/> + <Translation x="[zero]" y="[zero]" z="[tibtidservices:PixelSupportFlangeZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibtidservicesb:TIBTIDServicesB"/> + <rChild name="tibtidservices:TIBTIDPxlFlange2"/> + <Translation x="[zero]" y="[zero]" z="[tibtidservices:PixelSupportFlange2Z]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibtidservicesb:TIBTIDServicesB"/> + <rChild name="tibtidservices:TIBTIDOpticalPanel"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibtidservicesb:TIBTIDServicesB"/> + <rChild name="tibtidservices:TIBTIDMargherita"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibtidservicesb:TIBTIDServicesB"/> + <rChild name="tibtidservices:TIBTIDServiceDisk1"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibtidservicesb:TIBTIDServicesB"/> + <rChild name="tibtidservices:TIBTIDServiceDisk2"/> + <Translation x="[zero]" y="[zero]" z="[tibtidservices:ServiceDisk2Z]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibtidservicesb:TIBTIDServicesB"/> + <rChild name="tibtidservices:TIBTIDPowerConnectors"/> + <Translation x="[zero]" y="[zero]" z="[tibtidservices:PowerConnectorsZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibtidservicesb:TIBTIDServicesB"/> + <rChild name="tibtidservices:TIBTIDTSTCabCont"/> + </PosPart> + </PosPartSection> +</DDDefinition> diff --git a/examples/DDCMS/data/tibtidservicesf.xml b/examples/DDCMS/data/tibtidservicesf.xml new file mode 100644 index 0000000000000000000000000000000000000000..c8c80d03d9d697447db10a4d451f7868143f5728 --- /dev/null +++ b/examples/DDCMS/data/tibtidservicesf.xml @@ -0,0 +1,65 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tibtidservicesf.xml" eval="true"> + <Constant name="zero" value="0.0*fm"/> + </ConstantsSection> + <LogicalPartSection label="tibtidservicesf.xml"> + <LogicalPart name="TIBTIDServicesF" category="unspecified"> + <rSolid name="tibtidservices:TIBTIDServices"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + </LogicalPartSection> + <PosPartSection label="servicescylinderf.xml"> + <PosPart copyNumber="1"> + <rParent name="tibtidservicesf:TIBTIDServicesF"/> + <rChild name="tibtidservices:TIDSupport"/> + <Translation x="[zero]" y="[zero]" z="[tibtidservices:TIDSupportZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibtidservicesf:TIBTIDServicesF"/> + <rChild name="tibtidservices:TIBFlange"/> + <Translation x="[zero]" y="[zero]" z="[tibtidservices:TIBFlangeZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibtidservicesf:TIBTIDServicesF"/> + <rChild name="tibtidservices:TIBTIDServiceCylinder"/> + <Translation x="[zero]" y="[zero]" z="[tibtidservices:ServiceCylinderZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibtidservicesf:TIBTIDServicesF"/> + <rChild name="tibtidservices:TIBTIDPxlFlange"/> + <Translation x="[zero]" y="[zero]" z="[tibtidservices:PixelSupportFlangeZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibtidservicesf:TIBTIDServicesF"/> + <rChild name="tibtidservices:TIBTIDPxlFlange2"/> + <Translation x="[zero]" y="[zero]" z="[tibtidservices:PixelSupportFlange2Z]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibtidservicesf:TIBTIDServicesF"/> + <rChild name="tibtidservices:TIBTIDOpticalPanel"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibtidservicesf:TIBTIDServicesF"/> + <rChild name="tibtidservices:TIBTIDMargherita"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibtidservicesf:TIBTIDServicesF"/> + <rChild name="tibtidservices:TIBTIDServiceDisk1"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibtidservicesf:TIBTIDServicesF"/> + <rChild name="tibtidservices:TIBTIDServiceDisk2"/> + <Translation x="[zero]" y="[zero]" z="[tibtidservices:ServiceDisk2Z]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibtidservicesf:TIBTIDServicesF"/> + <rChild name="tibtidservices:TIBTIDPowerConnectors"/> + <Translation x="[zero]" y="[zero]" z="[tibtidservices:PowerConnectorsZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tibtidservicesf:TIBTIDServicesF"/> + <rChild name="tibtidservices:TIBTIDTSTCabCont"/> + </PosPart> + </PosPartSection> +</DDDefinition> diff --git a/examples/DDCMS/data/tid.xml b/examples/DDCMS/data/tid.xml new file mode 100644 index 0000000000000000000000000000000000000000..14ea05749cfc9ae48ee56fc086182464cda2360e --- /dev/null +++ b/examples/DDCMS/data/tid.xml @@ -0,0 +1,94 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tid.xml" eval="true"> + <Constant name="zero" value="0.0*fm"/> + <Constant name="Rin" value="22.20*cm"/> + <Constant name="Rout" value="52.00*cm"/> + <Constant name="Zv1" value="73.6*cm"/> + <!-- begin of TID envelope DO NOT TOUCH IT! --> + <Constant name="Zv2" value="111.3*cm"/> + <Constant name="WheelRin" value="22.38*cm"/> + <Constant name="WheelRout" value="51.20*cm"/> + <Constant name="WheelT" value="10.4*cm"/> + <!-- MAX ALLOWED VALUE 10.5 cm --> + <Constant name="WheelDZ0" value="5.5*cm"/> + <!-- Z off of Disk1 --> + <Constant name="WheelDZ" value="12.95*cm"/> + <!-- Z pitch of Disks --> + <Constant name="Wheel0Z" value="[Zv1]+[WheelDZ0]"/> + <Constant name="Wheel1Z" value="[Wheel0Z]+[WheelDZ]"/> + <Constant name="Wheel2Z" value="[Wheel1Z]+[WheelDZ]"/> + <Constant name="RingZ" value="3.50*cm"/> + <Constant name="SupportT" value="0.10*cm"/> + <Constant name="SupportRin" value="[WheelRout]"/> + <Constant name="SupportRout" value="52.00*cm"/> + <Constant name="SupportL" value="37.7*cm"/> + <!-- 37.2+0.5 ie [SideDiskT] included --> + <Constant name="SupportZ" value="[Zv1]+[SupportL]/2"/> + <Constant name="SupportInRin" value="[SupportRin]+[SupportT]"/> + <Constant name="SupportInRout" value="[SupportRout]-[SupportT]"/> + <Constant name="SideDiskRin" value="22.80*cm"/> + <Constant name="SideDiskT" value="0.50*cm"/> + <Constant name="SideDiskZ" value="[Zv1]+[SupportL]-[SideDiskT]/2"/> + <Constant name="SideDiskInT" value="0.50*cm"/> + <!-- "manine" --> + <Constant name="WheelFixDR" value="3.1*cm"/> + <Constant name="WheelFixRout" value="[tidringpar:Rout]"/> + <Constant name="WheelFixDZ" value="1.3*cm"/> + <!-- real value is 5,5 cm but set 1.3 cm to avoid overlaps --> + <Constant name="WheelFixDPhi" value="6.15*deg"/> + <Constant name="WheelFixTR" value="0.8*cm"/> + <Constant name="WheelFixTZ" value="0.4*cm"/> + <Constant name="WheelFixPhi" value="90.0*deg"/> + </ConstantsSection> + <SolidSection label="tid.xml"> + <Polycone name="TID" startPhi="0*deg" deltaPhi="360*deg"> + <ZSection z="[Zv1]" rMin="[Rin]" rMax="[Rout]"/> + <ZSection z="[Zv2]" rMin="[Rin]" rMax="[Rout]"/> + </Polycone> + <Tubs name="TIDWheel" rMin="[WheelRin]" rMax="[WheelRout]" dz="[WheelT]/2" startPhi="0*deg" deltaPhi="360*deg"/> + <Tubs name="TIDSupport" rMin="[SupportRin]" rMax="[SupportRout]" dz="[SupportL]/2" startPhi="0*deg" deltaPhi="360*deg"/> + <Tubs name="TIDSupportIn" rMin="[SupportInRin]" rMax="[SupportInRout]" dz="[SupportL]/2" startPhi="0*deg" deltaPhi="360*deg"/> + <Tubs name="TIDSideDisk" rMin="[SideDiskRin]" rMax="[WheelRout]" dz="[SideDiskT]/2" startPhi="0*deg" deltaPhi="360*deg"/> + <Tubs name="TIDSideDiskIn" rMin="[SideDiskRin]" rMax="[WheelRout]" dz="[SideDiskInT]/2" startPhi="0*deg" deltaPhi="360*deg"/> + <Tubs name="TIDWheelFix" rMin="[WheelFixRout]-[WheelFixDR]" rMax="[WheelFixRout]" dz="[WheelFixDZ]/2" startPhi="-[WheelFixDPhi]/2" deltaPhi="[WheelFixDPhi]"/> + <Tubs name="TIDWheelFixHole" rMin="[WheelFixRout]-[WheelFixDR]" rMax="[WheelFixRout]-[WheelFixTR]" dz="([WheelFixDZ]-[WheelFixTZ])/2" startPhi="-[WheelFixDPhi]/2" deltaPhi="[WheelFixDPhi]"/> + <SubtractionSolid name="TIDWheelFixCutted"> + <rSolid name="TIDWheelFix"/> + <rSolid name="TIDWheelFixHole"/> + <Translation x="[zero]" y="[zero]" z="-[WheelFixTZ]/2"/> + </SubtractionSolid> + </SolidSection> + <LogicalPartSection label="tid.xml"> + <LogicalPart name="TIDSupport" category="unspecified"> + <rSolid name="TIDSupport"/> + <rMaterial name="trackermaterial:T_CarbonFibreStr"/> + </LogicalPart> + <LogicalPart name="TIDSupportIn" category="unspecified"> + <rSolid name="TIDSupportIn"/> + <rMaterial name="trackermaterial:T_Nomex"/> + </LogicalPart> + <LogicalPart name="TIDSideDisk" category="unspecified"> + <rSolid name="TIDSideDisk"/> + <rMaterial name="trackermaterial:T_CarbonFibreStr"/> + </LogicalPart> + <LogicalPart name="TIDSideDiskIn" category="unspecified"> + <rSolid name="TIDSideDiskIn"/> + <rMaterial name="trackermaterial:T_Nomex"/> + </LogicalPart> + <LogicalPart name="TIDWheelFixCutted" category="unspecified"> + <rSolid name="TIDWheelFixCutted"/> + <rMaterial name="tidmaterial:TID_WheelFixation"/> + </LogicalPart> + </LogicalPartSection> + <PosPartSection label="tid.xml"> + <PosPart copyNumber="1"> + <rParent name="tid:TIDSupport"/> + <rChild name="tid:TIDSupportIn"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tid:TIDSideDisk"/> + <rChild name="tid:TIDSideDiskIn"/> + </PosPart> + </PosPartSection> +</DDDefinition> diff --git a/examples/DDCMS/data/tidb.xml b/examples/DDCMS/data/tidb.xml new file mode 100644 index 0000000000000000000000000000000000000000..2d2bfbffb3374a0df84dae7073de9197902601be --- /dev/null +++ b/examples/DDCMS/data/tidb.xml @@ -0,0 +1,70 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tidb.xml" eval="true"> + <Constant name="zero" value="0.0*fm"/> + </ConstantsSection> + <LogicalPartSection label="tidb.xml"> + <LogicalPart name="TIDB" category="unspecified"> + <rSolid name="tid:TID"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TIDWheelB" category="unspecified"> + <rSolid name="tid:TIDWheel"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + </LogicalPartSection> + <PosPartSection label="tidb.xml"> + <PosPart copyNumber="1"> + <rParent name="tidb:TIDB"/> + <rChild name="tidb:TIDWheelB"/> + <Translation x="[zero]" y="[zero]" z="[tid:Wheel0Z]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tidb:TIDB"/> + <rChild name="tidb:TIDWheelB"/> + <Translation x="[zero]" y="[zero]" z="[tid:Wheel1Z]"/> + </PosPart> + <PosPart copyNumber="3"> + <rParent name="tidb:TIDB"/> + <rChild name="tidb:TIDWheelB"/> + <Translation x="[zero]" y="[zero]" z="[tid:Wheel2Z]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tidb:TIDWheelB"/> + <rChild name="tidring0b:TIDRing0B"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tidb:TIDWheelB"/> + <rChild name="tidring1b:TIDRing1B"/> + <Translation x="[zero]" y="[zero]" z="[tid:RingZ]"/> + </PosPart> + <PosPart copyNumber="3"> + <rParent name="tidb:TIDWheelB"/> + <rChild name="tidring2:TIDRing2"/> + <Translation x="[zero]" y="[zero]" z="-[tid:RingZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tidb:TIDB"/> + <rChild name="tid:TIDSupport"/> + <Translation x="[zero]" y="[zero]" z="[tid:SupportZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tidb:TIDB"/> + <rChild name="tid:TIDSideDisk"/> + <Translation x="[zero]" y="[zero]" z="[tid:SideDiskZ]"/> + </PosPart> + </PosPartSection> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tidring0b:TIDRing0B"/> + <String name="ChildName" value="tid:TIDWheelFixCutted"/> + <Numeric name="N" value="3"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[tid:WheelFixPhi]"/> + <Numeric name="Radius" value="0"/> + <Vector name="Center" type="numeric" nEntries="3"> + [zero], [zero], -([tidringpar:StructureT]+[tid:WheelFixDZ])/2 + </Vector> + </Algorithm> +</DDDefinition> diff --git a/examples/DDCMS/data/tidf.xml b/examples/DDCMS/data/tidf.xml new file mode 100644 index 0000000000000000000000000000000000000000..2f55447bf0ece4eccbde6a498f33d3674c1e3f17 --- /dev/null +++ b/examples/DDCMS/data/tidf.xml @@ -0,0 +1,70 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tidf.xml" eval="true"> + <Constant name="zero" value="0.0*fm"/> + </ConstantsSection> + <LogicalPartSection label="tidf.xml"> + <LogicalPart name="TIDF" category="unspecified"> + <rSolid name="tid:TID"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TIDWheelF" category="unspecified"> + <rSolid name="tid:TIDWheel"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + </LogicalPartSection> + <PosPartSection label="tidf.xml"> + <PosPart copyNumber="1"> + <rParent name="tidf:TIDF"/> + <rChild name="tidf:TIDWheelF"/> + <Translation x="[zero]" y="[zero]" z="[tid:Wheel0Z]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tidf:TIDF"/> + <rChild name="tidf:TIDWheelF"/> + <Translation x="[zero]" y="[zero]" z="[tid:Wheel1Z]"/> + </PosPart> + <PosPart copyNumber="3"> + <rParent name="tidf:TIDF"/> + <rChild name="tidf:TIDWheelF"/> + <Translation x="[zero]" y="[zero]" z="[tid:Wheel2Z]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tidf:TIDWheelF"/> + <rChild name="tidring0f:TIDRing0F"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tidf:TIDWheelF"/> + <rChild name="tidring1f:TIDRing1F"/> + <Translation x="[zero]" y="[zero]" z="[tid:RingZ]"/> + </PosPart> + <PosPart copyNumber="3"> + <rParent name="tidf:TIDWheelF"/> + <rChild name="tidring2:TIDRing2"/> + <Translation x="[zero]" y="[zero]" z="-[tid:RingZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tidf:TIDF"/> + <rChild name="tid:TIDSupport"/> + <Translation x="[zero]" y="[zero]" z="[tid:SupportZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tidf:TIDF"/> + <rChild name="tid:TIDSideDisk"/> + <Translation x="[zero]" y="[zero]" z="[tid:SideDiskZ]"/> + </PosPart> + </PosPartSection> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tidring0f:TIDRing0F"/> + <String name="ChildName" value="tid:TIDWheelFixCutted"/> + <Numeric name="N" value="3"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[tid:WheelFixPhi]"/> + <Numeric name="Radius" value="0"/> + <Vector name="Center" type="numeric" nEntries="3"> + [zero], [zero], -([tidringpar:StructureT]+[tid:WheelFixDZ])/2 + </Vector> + </Algorithm> +</DDDefinition> diff --git a/examples/DDCMS/data/tidmaterial.xml b/examples/DDCMS/data/tidmaterial.xml new file mode 100644 index 0000000000000000000000000000000000000000..f318846ba05b1d76b653b05ae95d6357e29392ad --- /dev/null +++ b/examples/DDCMS/data/tidmaterial.xml @@ -0,0 +1,340 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <MaterialSection label="tidmaterial.xml"> + <CompositeMaterial name="TID_Mech" density="0.25139*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.11047"> + <rMaterial name="trackermaterial:T_Nomex" /> + </MaterialFraction> + <MaterialFraction fraction="0.83359"> + <rMaterial name="trackermaterial:T_CarbonFibreStr" /> + </MaterialFraction> + <MaterialFraction fraction="0.02685"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + <MaterialFraction fraction="0.02909"> + <rMaterial name="materials:Epoxy" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TID_CoolPipe" density="2.17440*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.44661"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + <MaterialFraction fraction="0.55339"> + <rMaterial name="trackermaterial:T_C6F14_F2_-30C" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TID_CoolManifold" density="2.20750*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.48924"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + <MaterialFraction fraction="0.51076"> + <rMaterial name="trackermaterial:T_C6F14_F2_-30C" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TID_WheelFixation" density="4.95593*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.42707"> + <rMaterial name="trackermaterial:T_CarbonFibreStr" /> + </MaterialFraction> + <MaterialFraction fraction="0.57293"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TID_ICB1" density="2.21343*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.47891"> + <rMaterial name="materials:T_Kapton" /> + </MaterialFraction> + <MaterialFraction fraction="0.43924"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.00545"> + <rMaterial name="materials:T_Kapton" /> + </MaterialFraction> + <MaterialFraction fraction="0.03467"> + <rMaterial name="materials:T_Kapton" /> + </MaterialFraction> + <MaterialFraction fraction="0.02645"> + <rMaterial name="materials:T_Bronze" /> + </MaterialFraction> + <MaterialFraction fraction="0.00107"> + <rMaterial name="materials:Ceramic" /> + </MaterialFraction> + <MaterialFraction fraction="0.00279"> + <rMaterial name="trackermaterial:T_Barium_Titanate" /> + </MaterialFraction> + <MaterialFraction fraction="0.0012"> + <rMaterial name="materials:Nickel" /> + </MaterialFraction> + <MaterialFraction fraction="0.00664"> + <rMaterial name="trackermaterial:T_Barium_Titanate" /> + </MaterialFraction> + <MaterialFraction fraction="0.00358"> + <rMaterial name="materials:Nickel" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TID_ICB2" density="2.18035*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.48128"> + <rMaterial name="materials:T_Kapton" /> + </MaterialFraction> + <MaterialFraction fraction="0.44148"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.0055"> + <rMaterial name="materials:T_Kapton" /> + </MaterialFraction> + <MaterialFraction fraction="0.03245"> + <rMaterial name="materials:T_Kapton" /> + </MaterialFraction> + <MaterialFraction fraction="0.02476"> + <rMaterial name="materials:T_Bronze" /> + </MaterialFraction> + <MaterialFraction fraction="0.00108"> + <rMaterial name="materials:Ceramic" /> + </MaterialFraction> + <MaterialFraction fraction="0.00272"> + <rMaterial name="trackermaterial:T_Barium_Titanate" /> + </MaterialFraction> + <MaterialFraction fraction="0.00116"> + <rMaterial name="materials:Nickel" /> + </MaterialFraction> + <MaterialFraction fraction="0.00621"> + <rMaterial name="trackermaterial:T_Barium_Titanate" /> + </MaterialFraction> + <MaterialFraction fraction="0.00335"> + <rMaterial name="materials:Nickel" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TID_ICB3" density="2.83682*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.49183"> + <rMaterial name="materials:T_Kapton" /> + </MaterialFraction> + <MaterialFraction fraction="0.45103"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.00369"> + <rMaterial name="materials:T_Kapton" /> + </MaterialFraction> + <MaterialFraction fraction="0.02578"> + <rMaterial name="materials:T_Kapton" /> + </MaterialFraction> + <MaterialFraction fraction="0.01888"> + <rMaterial name="materials:T_Bronze" /> + </MaterialFraction> + <MaterialFraction fraction="0.00075"> + <rMaterial name="materials:Ceramic" /> + </MaterialFraction> + <MaterialFraction fraction="0.00277"> + <rMaterial name="trackermaterial:T_Barium_Titanate" /> + </MaterialFraction> + <MaterialFraction fraction="0.00119"> + <rMaterial name="materials:Nickel" /> + </MaterialFraction> + <MaterialFraction fraction="0.00265"> + <rMaterial name="trackermaterial:T_Barium_Titanate" /> + </MaterialFraction> + <MaterialFraction fraction="0.00143"> + <rMaterial name="materials:Nickel" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TID_DOHM1" density="2.69687*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.6069"> + <rMaterial name="trackermaterial:T_FR4" /> + </MaterialFraction> + <MaterialFraction fraction="0.12363"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.00474"> + <rMaterial name="materials:T_Kapton" /> + </MaterialFraction> + <MaterialFraction fraction="0.07782"> + <rMaterial name="materials:T_Kapton" /> + </MaterialFraction> + <MaterialFraction fraction="0.04334"> + <rMaterial name="materials:T_Bronze" /> + </MaterialFraction> + <MaterialFraction fraction="0.00118"> + <rMaterial name="materials:Ceramic" /> + </MaterialFraction> + <MaterialFraction fraction="0.00379"> + <rMaterial name="trackermaterial:T_Barium_Titanate" /> + </MaterialFraction> + <MaterialFraction fraction="0.00162"> + <rMaterial name="materials:Nickel" /> + </MaterialFraction> + <MaterialFraction fraction="0.00082"> + <rMaterial name="trackermaterial:T_Barium_Titanate" /> + </MaterialFraction> + <MaterialFraction fraction="0.0008"> + <rMaterial name="materials:Nickel" /> + </MaterialFraction> + <MaterialFraction fraction="0.09165"> + <rMaterial name="tibtidcommonmaterial:TIBTID_CCUM" /> + </MaterialFraction> + <MaterialFraction fraction="0.0169"> + <rMaterial name="trackermaterial:T_FR4" /> + </MaterialFraction> + <MaterialFraction fraction="0.01248"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.00259"> + <rMaterial name="materials:Alumina" /> + </MaterialFraction> + <MaterialFraction fraction="0.00078"> + <rMaterial name="materials:Carbon" /> + </MaterialFraction> + <MaterialFraction fraction="0.00192"> + <rMaterial name="materials:SMD_metal" /> + </MaterialFraction> + <MaterialFraction fraction="0.00526"> + <rMaterial name="materials:Silicon" /> + </MaterialFraction> + <MaterialFraction fraction="0.00044"> + <rMaterial name="materials:Silicon" /> + </MaterialFraction> + <MaterialFraction fraction="0.00332"> + <rMaterial name="materials:T_Kapton" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TID_DOHM2" density="2.43641*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.67179"> + <rMaterial name="trackermaterial:T_FR4" /> + </MaterialFraction> + <MaterialFraction fraction="0.13681"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.00337"> + <rMaterial name="materials:T_Kapton" /> + </MaterialFraction> + <MaterialFraction fraction="0.05528"> + <rMaterial name="materials:T_Kapton" /> + </MaterialFraction> + <MaterialFraction fraction="0.03079"> + <rMaterial name="materials:T_Bronze" /> + </MaterialFraction> + <MaterialFraction fraction="0.00084"> + <rMaterial name="materials:Ceramic" /> + </MaterialFraction> + <MaterialFraction fraction="0.00269"> + <rMaterial name="trackermaterial:T_Barium_Titanate" /> + </MaterialFraction> + <MaterialFraction fraction="0.00115"> + <rMaterial name="materials:Nickel" /> + </MaterialFraction> + <MaterialFraction fraction="0.00058"> + <rMaterial name="trackermaterial:T_Barium_Titanate" /> + </MaterialFraction> + <MaterialFraction fraction="0.00057"> + <rMaterial name="materials:Nickel" /> + </MaterialFraction> + <MaterialFraction fraction="0.0651"> + <rMaterial name="tibtidcommonmaterial:TIBTID_CCUM" /> + </MaterialFraction> + <MaterialFraction fraction="0.012"> + <rMaterial name="trackermaterial:T_FR4" /> + </MaterialFraction> + <MaterialFraction fraction="0.00887"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.00184"> + <rMaterial name="materials:Alumina" /> + </MaterialFraction> + <MaterialFraction fraction="0.00056"> + <rMaterial name="materials:Carbon" /> + </MaterialFraction> + <MaterialFraction fraction="0.00136"> + <rMaterial name="materials:SMD_metal" /> + </MaterialFraction> + <MaterialFraction fraction="0.00374"> + <rMaterial name="materials:Silicon" /> + </MaterialFraction> + <MaterialFraction fraction="0.00031"> + <rMaterial name="materials:Silicon" /> + </MaterialFraction> + <MaterialFraction fraction="0.00236"> + <rMaterial name="materials:T_Kapton" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TID_CoolInsert" density="5.46429*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="1"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="T_TIDModKaptonBox" density="1.25249*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.44711"> + <rMaterial name="materials:T_Kapton" /> + </MaterialFraction> + <MaterialFraction fraction="0.00555"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.00844"> + <rMaterial name="materials:Ceramic" /> + </MaterialFraction> + <MaterialFraction fraction="0.13306"> + <rMaterial name="trackermaterial:T_Barium_Titanate" /> + </MaterialFraction> + <MaterialFraction fraction="0.33267"> + <rMaterial name="trackermaterial:T_Silicone_Gel" /> + </MaterialFraction> + <MaterialFraction fraction="0.03327"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + <MaterialFraction fraction="0.0399"> + <rMaterial name="materials:Iron" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TID_Spacer" density="2.98720*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.89555"> + <rMaterial name="materials:Alumina" /> + </MaterialFraction> + <MaterialFraction fraction="0.10445"> + <rMaterial name="materials:Epoxy" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TID_SSAOHBox" density="0.74445*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.61394"> + <rMaterial name="tibtidcommonmaterial:TIBTID_AOH" /> + </MaterialFraction> + <MaterialFraction fraction="0.04738"> + <rMaterial name="materials:Polyethylene" /> + </MaterialFraction> + <MaterialFraction fraction="0.03257"> + <rMaterial name="materials:T_Bronze" /> + </MaterialFraction> + <MaterialFraction fraction="0.05626"> + <rMaterial name="trackermaterial:T_FR4" /> + </MaterialFraction> + <MaterialFraction fraction="0.03252"> + <rMaterial name="tibtidcommonmaterial:TIBTID_HybridTails" /> + </MaterialFraction> + <MaterialFraction fraction="0.02612"> + <rMaterial name="tibtidcommonmaterial:TIBTID_HybridTails" /> + </MaterialFraction> + <MaterialFraction fraction="0.01776"> + <rMaterial name="materials:Iron" /> + </MaterialFraction> + <MaterialFraction fraction="0.17345"> + <rMaterial name="tidmaterial:TID_CoolPipe" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TID_DSAOHBox" density="0.74445*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="1"> + <rMaterial name="tidmaterial:TID_SSAOHBox" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TID_FiberLayer" density="1.13781*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.68491"> + <rMaterial name="tibtidcommonmaterial:T_FiberPigtail" /> + </MaterialFraction> + <MaterialFraction fraction="0.31509"> + <rMaterial name="materials:T_Kapton" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TID_ModuleFix" density="1.65714*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.50611"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + <MaterialFraction fraction="0.49389"> + <rMaterial name="materials:Epoxy" /> + </MaterialFraction> + </CompositeMaterial> + </MaterialSection> +</DDDefinition> diff --git a/examples/DDCMS/data/tidmodpar.xml b/examples/DDCMS/data/tidmodpar.xml new file mode 100644 index 0000000000000000000000000000000000000000..3113c20ed859728d0f65fcc26541480ccceb76ba --- /dev/null +++ b/examples/DDCMS/data/tidmodpar.xml @@ -0,0 +1,81 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tidmodpar.xml" eval="true"> + <Constant name="DetTilt" value="0.100*rad"/> + <Constant name="ModuleThickDS" value="0.710*cm"/> + <Constant name="ModuleThickSS" value="0.552*cm"/> + <Constant name="WaferThick" value="0.032*cm"/> + <Constant name="ActiveZDS" value="0.121*cm"/> + <Constant name="ActiveZSS" value="0*cm"/> + <Constant name="PitchThick" value="0.1130*cm"/> + <Constant name="PitchZDS" value="0.1315*cm"/> + <Constant name="PitchZSS" value="0.0105*cm"/> + <Constant name="HybridHeight" value="2.53*cm"/> + <Constant name="HybridWidth" value="4.70*cm"/> + <Constant name="HybridThick" value="[PitchThick]"/> + <Constant name="HybridZDS" value="[PitchZDS]"/> + <Constant name="HybridZSS" value="[PitchZSS]"/> + <Constant name="KaptonThick" value="0.030*cm"/> + <Constant name="KaptonZDS" value="0.090*cm"/> + <Constant name="KaptonZSS" value="-0.031*cm"/> + <Constant name="KaptonOver" value="0.400*cm"/> + <Constant name="BoxFrameWidth" value="7.70*cm"/> + <Constant name="BoxFrameHeightDS" value="1.95*cm"/> + <Constant name="BoxFrameHeightSS" value="[HybridHeight]"/> + <Constant name="BoxFrameThick" value="0.050*cm"/> + <Constant name="BoxFrameZDS" value="0.050*cm"/> + <Constant name="BoxFrameZSS" value="-0.071*cm"/> + <Constant name="SideFrameThick" value="[BoxFrameThick]"/> + <Constant name="SideFrameZDS" value="[BoxFrameZDS]"/> + <Constant name="SideFrameZSS" value="[BoxFrameZSS]"/> + <Constant name="SideFrameOver" value="0.200*cm"/> + <Constant name="BottomFrameOverDS" value="0.20*cm"/> + <Constant name="BottomFrameOverSS" value="0.15*cm"/> + <Constant name="TopFrameOverDS" value="0.15*cm"/> + <Constant name="TopFrameOverSS" value="0.20*cm"/> + <Constant name="PitchStereoTolerance" value="0.02*cm"/> + <!-- Cool Insert section --> + <Constant name="CoolInsertHeightSS" value="1.4*cm"/> + <Constant name="CoolInsertWidthSS" value="0.8*cm"/> + <Constant name="CoolInsertThickSS" value="0.18*cm"/> + <Constant name="CoolInsertZSS" value="[BoxFrameZSS]-0.5*([BoxFrameThick]+[CoolInsertThickSS])"/> + <Constant name="CoolInsertHeightDS" value="1.3*cm"/> + <Constant name="CoolInsertWidthDS" value="0.7*cm"/> + <Constant name="CoolInsertThickDS" value="0.25*cm"/> + <Constant name="CoolInsertZDS" value="-([KaptonZDS]+0.5*([KaptonThick]+[CoolInsertThickDS]))"/> + <!-- Spacers Section DS modules --> + <Constant name="BottomSpacersHeight" value="2.15*cm"/> + <Constant name="BottomSpacersWidth" value="7.70*cm"/> + <Constant name="BottomSpacersThick" value="0.050*cm"/> + <Constant name="BottomSpacersZ" value="[tid:zero]"/> + <Constant name="SideSpacersHeight" value="3.1*cm"/> + <Constant name="SideSpacersWidth" value="0.9*cm"/> + <!-- ~ 25% smaller then real ones --> + <Constant name="SideSpacersThick" value="[BottomSpacersThick]"/> + <Constant name="SideSpacersZ" value="[BottomSpacersZ]"/> + </ConstantsSection> + <SolidSection label="tidmodpar.xml"> + <Box name="BottomSpacers" dx="[BottomSpacersWidth]/2" dy="[BottomSpacersThick]/2" dz="[BottomSpacersHeight]/2"/> + <Box name="SideSpacers" dx="[SideSpacersWidth]/2" dy="[SideSpacersThick]/2" dz="[SideSpacersHeight]/2"/> + </SolidSection> + <LogicalPartSection label="tidmodpar.xml"> + <LogicalPart name="TIDBottomSpacers" category="unspecified"> + <rSolid name="tidmodpar:BottomSpacers"/> + <rMaterial name="tidmaterial:TID_Spacer"/> + </LogicalPart> + <LogicalPart name="TIDSideSpacers" category="unspecified"> + <rSolid name="tidmodpar:SideSpacers"/> + <rMaterial name="tidmaterial:TID_Spacer"/> + </LogicalPart> + </LogicalPartSection> + <RotationSection label="tidmodpar.xml"> + <Rotation name="90ZD" thetaX="-90*deg" phiX="0*deg" thetaY="180*deg" phiY="0*deg" thetaZ="-90*deg" phiZ="90*deg"/> + <Rotation name="9NYX" thetaX="0*deg" phiX="0*deg" thetaY="90*deg" phiY="90*deg" thetaZ="-90*deg" phiZ="0*deg"/> + <Rotation name="9PYX" thetaX="0*deg" phiX="0*deg" thetaY="90*deg" phiY="-90*deg" thetaZ="90*deg" phiZ="0*deg"/> + <Rotation name="RFI1" thetaX="-90*deg" phiX="0*deg" thetaY="-90*deg" phiY="90*deg" thetaZ="0*deg" phiZ="0*deg"/> + <Rotation name="RFI2" thetaX="90*deg" phiX="0*deg" thetaY="90*deg" phiY="-90*deg" thetaZ="180*deg" phiZ="0*deg"/> + <Rotation name="F100" thetaX="84.2704*deg" phiX="0*deg" thetaY="90*deg" phiY="90*deg" thetaZ="5.7296*deg" phiZ="180*deg"/> + <Rotation name="G100" thetaX="-95.7296*deg" phiX="180*deg" thetaY="-90*deg" phiY="-90*deg" thetaZ="-5.7296*deg" phiZ="180*deg"/> + <Rotation name="R180" thetaX="90*deg" phiX="180*deg" thetaY="90*deg" phiY="-90*deg" thetaZ="0*deg" phiZ="0*deg"/> + </RotationSection> +</DDDefinition> diff --git a/examples/DDCMS/data/tidmodule0.xml b/examples/DDCMS/data/tidmodule0.xml new file mode 100644 index 0000000000000000000000000000000000000000..bf2657b019ed144c2ffebced6aa40b8fc1422ef0 --- /dev/null +++ b/examples/DDCMS/data/tidmodule0.xml @@ -0,0 +1,183 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tidmodule0.xml" eval="true"> + <Constant name="FullHeight" value="11.2936000*cm"/> + <Constant name="ActiveHeight" value="11.0858000*cm"/> + <Constant name="DlTop" value="9.3754000*cm"/> + <Constant name="DlBottom" value="6.3588000*cm"/> + <Constant name="SideWidthTop" value="0.1082551*cm"/> + <Constant name="SideWidthBottom" value="0.0836793*cm"/> + <Constant name="DlHybrid" value="10.403*cm"/> + <Constant name="PitchHeight" value="1.30*cm"/> + <Constant name="BottomFrameHeight" value="0.70*cm"/> + <Constant name="TopFrameHeight" value="[PitchHeight]+[tidmodpar:TopFrameOverDS]+0.6*cm"/> + <Constant name="BoxFrameHeight" value="[tidmodpar:BoxFrameHeightDS]"/> + <Constant name="SideFrameWidth" value="1.35*cm"/> + <Constant name="CoolInsertShift" value="9.78*cm"/> + <Constant name="SideSpacersShift" value="[CoolInsertShift]"/> + <!-- alias for Module Height --> + <Constant name="ModuleHeight" value="[BoxFrameHeight]+[BottomFrameHeight]+[FullHeight]+[TopFrameHeight]- [tidmodpar:TopFrameOverDS]-[tidmodpar:BottomFrameOverDS]"/> + </ConstantsSection> + <Algorithm name="track:DDTIDModuleAlgo"> + <rParent name="tidmodule0l:TIDModule0L"/> + <String name="GeneralMaterial" value="materials:Air"/> + <Numeric name="DetectorNumber" value="2"/> + <Numeric name="ModuleThick" value="[tidmodpar:ModuleThickDS]"/> + <Numeric name="DetTilt" value="[tidmodpar:DetTilt]"/> + <Numeric name="FullHeight" value="[tidmodule0:FullHeight]"/> + <Numeric name="DlTop" value="[tidmodule0:DlTop]"/> + <Numeric name="DlBottom" value="[tidmodule0:DlBottom]"/> + <Numeric name="DlHybrid" value="[tidmodule0:DlHybrid]"/> + <String name="DoComponents" value="Yes"/> + <String name="BoxFrameName" value="tidmodule0:TIDModule0BoxFrame"/> + <String name="BoxFrameMaterial" value="trackermaterial:T_CarbonFibreStr"/> + <Numeric name="BoxFrameWidth" value="[tidmodpar:BoxFrameWidth]"/> + <Numeric name="BoxFrameThick" value="[tidmodpar:BoxFrameThick]"/> + <Numeric name="BoxFrameHeight" value="[tidmodule0:BoxFrameHeight]"/> + <Numeric name="BottomFrameHeight" value="[tidmodule0:BottomFrameHeight]"/> + <Numeric name="BottomFrameOver" value="[tidmodpar:BottomFrameOverDS]"/> + <Numeric name="TopFrameHeight" value="[tidmodule0:TopFrameHeight]"/> + <Numeric name="TopFrameOver" value="[tidmodpar:TopFrameOverDS]"/> + <String name="SideFrameMaterial" value="trackermaterial:T_CarbonFibreStr"/> + <Numeric name="SideFrameWidth" value="[tidmodule0:SideFrameWidth]"/> + <Numeric name="SideFrameThick" value="[tidmodpar:SideFrameThick]"/> + <Numeric name="SideFrameOver" value="[tidmodpar:SideFrameOver]"/> + <Vector name="SideFrameName" type="string" nEntries="2"> + tidmodule0:TIDModule0RphiSideFrame, tidmodule0:TIDModule0StereoSideFrame + </Vector> + <Vector name="HoleFrameName" type="string" nEntries="2"> + tidmodule0:TIDModule0RphiFrameHole, tidmodule0:TIDModule0StereoFrameHole + </Vector> + <Vector name="HoleFrameRotation" type="string" nEntries="2"> + tidmodpar:NULL, tidmodpar:F100 + </Vector> + <String name="KaptonMaterial" value="tidmaterial:T_TIDModKaptonBox"/> + <Numeric name="KaptonThick" value="[tidmodpar:KaptonThick]"/> + <Numeric name="KaptonOver" value="[tidmodpar:KaptonOver]"/> + <Vector name="KaptonName" type="string" nEntries="2"> + tidmodule0:TIDModule0RphiKapton, tidmodule0:TIDModule0StereoKapton + </Vector> + <Vector name="HoleKaptonName" type="string" nEntries="2"> + tidmodule0:TIDModule0RphiKaptonHole, tidmodule0:TIDModule0StereoKaptonHole + </Vector> + <Vector name="HoleKaptonRotation" type="string" nEntries="2"> + tidmodpar:NULL, tidmodpar:F100 + </Vector> + <Vector name="WaferName" type="string" nEntries="2"> + tidmodule0:TIDModule0RphiWafer, tidmodule0:TIDModule0StereoWafer + </Vector> + <String name="WaferMaterial" value="materials:Silicon"/> + <Numeric name="SideWidthTop" value="[SideWidthTop]"/> + <Numeric name="SideWidthBottom" value="[SideWidthBottom]"/> + <Vector name="ActiveName" type="string" nEntries="2"> + tidmodule0:TIDModule0RphiActive, tidmodule0:TIDModule0StereoActive + </Vector> + <String name="ActiveMaterial" value="materials:Silicon"/> + <Numeric name="ActiveHeight" value="[tidmodule0:ActiveHeight]"/> + <Vector name="WaferThick" type="numeric" nEntries="2"> + [tidmodpar:WaferThick], [tidmodpar:WaferThick] + </Vector> + <String name="ActiveRotation" value="tidmodpar:90ZD"/> + <Vector name="BackPlaneThick" type="numeric" nEntries="2"> + 2*[tracker:BackPlaneDz], 2*[tracker:BackPlaneDz] + </Vector> + <String name="HybridName" value="tidmodule0:TIDModule0Hybrid"/> + <String name="HybridMaterial" value="tibtidcommonmaterial:TIBTID_Hybrid"/> + <Numeric name="HybridHeight" value="[tidmodpar:HybridHeight]"/> + <Numeric name="HybridWidth" value="[tidmodpar:HybridWidth]"/> + <Numeric name="HybridThick" value="[tidmodpar:HybridThick]"/> + <Vector name="PitchName" type="string" nEntries="2"> + tidmodule0:TIDModule0RphiPA, tidmodule0:TIDModule0StereoPA + </Vector> + <String name="PitchMaterial" value="tibtidcommonmaterial:TIBTID_PA"/> + <Numeric name="PitchHeight" value="[tidmodule0:PitchHeight]"/> + <Numeric name="PitchThick" value="[tidmodpar:PitchThick]"/> + <Numeric name="PitchStereoTolerance" value="[tidmodpar:PitchStereoTolerance]"/> + <String name="CoolInsertName" value="tidmodule0:TIDCoolInsert"/> + <String name="CoolInsertMaterial" value="tidmaterial:TID_CoolInsert"/> + <Numeric name="CoolInsertHeight" value="[tidmodpar:CoolInsertHeightDS]"/> + <Numeric name="CoolInsertThick" value="[tidmodpar:CoolInsertThickDS]"/> + <Numeric name="CoolInsertWidth" value="[tidmodpar:CoolInsertWidthDS]"/> + </Algorithm> + <Algorithm name="track:DDTIDModuleAlgo"> + <rParent name="tidmodule0r:TIDModule0R"/> + <String name="GeneralMaterial" value="materials:Air"/> + <Numeric name="DetectorNumber" value="2"/> + <Numeric name="ModuleThick" value="[tidmodpar:ModuleThickDS]"/> + <Numeric name="DetTilt" value="[tidmodpar:DetTilt]"/> + <Numeric name="FullHeight" value="[tidmodule0:FullHeight]"/> + <Numeric name="DlTop" value="[tidmodule0:DlTop]"/> + <Numeric name="DlBottom" value="[tidmodule0:DlBottom]"/> + <Numeric name="DlHybrid" value="[tidmodule0:DlHybrid]"/> + <String name="DoComponents" value="No"/> + <String name="BoxFrameName" value="tidmodule0:TIDModule0BoxFrame"/> + <String name="BoxFrameMaterial" value="trackermaterial:T_CarbonFibreStr"/> + <Numeric name="BoxFrameWidth" value="[tidmodpar:BoxFrameWidth]"/> + <Numeric name="BoxFrameThick" value="[tidmodpar:BoxFrameThick]"/> + <Numeric name="BoxFrameHeight" value="[tidmodule0:BoxFrameHeight]"/> + <Numeric name="BottomFrameHeight" value="[tidmodule0:BottomFrameHeight]"/> + <Numeric name="BottomFrameOver" value="[tidmodpar:BottomFrameOverDS]"/> + <Numeric name="TopFrameHeight" value="[tidmodule0:TopFrameHeight]"/> + <Numeric name="TopFrameOver" value="[tidmodpar:TopFrameOverDS]"/> + <String name="SideFrameMaterial" value="trackermaterial:T_CarbonFibreStr"/> + <Numeric name="SideFrameWidth" value="[tidmodule0:SideFrameWidth]"/> + <Numeric name="SideFrameThick" value="[tidmodpar:SideFrameThick]"/> + <Numeric name="SideFrameOver" value="[tidmodpar:SideFrameOver]"/> + <Vector name="SideFrameName" type="string" nEntries="2"> + tidmodule0:TIDModule0RphiSideFrame, tidmodule0:TIDModule0StereoSideFrame + </Vector> + <Vector name="HoleFrameName" type="string" nEntries="2"> + tidmodule0:TIDModule0RphiFrameHole, tidmodule0:TIDModule0StereoFrameHole + </Vector> + <Vector name="HoleFrameRotation" type="string" nEntries="2"> + tidmodpar:NULL, tidmodpar:F100 + </Vector> + <String name="KaptonMaterial" value="tidmaterial:T_TIDModKaptonBox"/> + <Numeric name="KaptonThick" value="[tidmodpar:KaptonThick]"/> + <Numeric name="KaptonOver" value="[tidmodpar:KaptonOver]"/> + <Vector name="KaptonName" type="string" nEntries="2"> + tidmodule0:TIDModule0RphiKapton, tidmodule0:TIDModule0StereoKapton + </Vector> + <Vector name="HoleKaptonName" type="string" nEntries="2"> + tidmodule0:TIDModule0RphiKaptonHole, tidmodule0:TIDModule0StereoKaptonHole + </Vector> + <Vector name="HoleKaptonRotation" type="string" nEntries="2"> + tidmodpar:NULL, tidmodpar:F100 + </Vector> + <Vector name="WaferName" type="string" nEntries="2"> + tidmodule0:TIDModule0RphiWafer, tidmodule0:TIDModule0StereoWafer + </Vector> + <String name="WaferMaterial" value="materials:Silicon"/> + <Numeric name="SideWidthTop" value="[SideWidthTop]"/> + <Numeric name="SideWidthBottom" value="[SideWidthBottom]"/> + <Vector name="ActiveName" type="string" nEntries="2"> + tidmodule0:TIDModule0RphiActive, tidmodule0:TIDModule0StereoActive + </Vector> + <String name="ActiveMaterial" value="materials:Silicon"/> + <Numeric name="ActiveHeight" value="[tidmodule0:ActiveHeight]"/> + <Vector name="WaferThick" type="numeric" nEntries="2"> + [tidmodpar:WaferThick], [tidmodpar:WaferThick] + </Vector> + <String name="ActiveRotation" value="tidmodpar:90ZD"/> + <Vector name="BackPlaneThick" type="numeric" nEntries="2"> + 2*[tracker:BackPlaneDz], 2*[tracker:BackPlaneDz] + </Vector> + <String name="HybridName" value="tidmodule0:TIDModule0Hybrid"/> + <String name="HybridMaterial" value="tibtidcommonmaterial:TIBTID_Hybrid"/> + <Numeric name="HybridHeight" value="[tidmodpar:HybridHeight]"/> + <Numeric name="HybridWidth" value="[tidmodpar:HybridWidth]"/> + <Numeric name="HybridThick" value="[tidmodpar:HybridThick]"/> + <Vector name="PitchName" type="string" nEntries="2"> + tidmodule0:TIDModule0RphiPA, tidmodule0:TIDModule0StereoPA + </Vector> + <String name="PitchMaterial" value="tibtidcommonmaterial:TIBTID_PA"/> + <Numeric name="PitchHeight" value="[tidmodule0:PitchHeight]"/> + <Numeric name="PitchThick" value="[tidmodpar:PitchThick]"/> + <Numeric name="PitchStereoTolerance" value="[tidmodpar:PitchStereoTolerance]"/> + <String name="CoolInsertName" value="tidmodule0:TIDCoolInsert"/> + <String name="CoolInsertMaterial" value="trackermaterial:T_Aluminium"/> + <Numeric name="CoolInsertHeight" value="[tidmodpar:CoolInsertHeightDS]"/> + <Numeric name="CoolInsertThick" value="[tidmodpar:CoolInsertThickDS]"/> + <Numeric name="CoolInsertWidth" value="[tidmodpar:CoolInsertWidthDS]"/> + </Algorithm> +</DDDefinition> diff --git a/examples/DDCMS/data/tidmodule0l.xml b/examples/DDCMS/data/tidmodule0l.xml new file mode 100644 index 0000000000000000000000000000000000000000..ae3289fbe2bd01169f66e64af45ad3b39f1967f7 --- /dev/null +++ b/examples/DDCMS/data/tidmodule0l.xml @@ -0,0 +1,69 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <Algorithm name="track:DDTIDModulePosAlgo"> + <rParent name="tidmodule0l:TIDModule0L"/> + <Numeric name="DetectorNumber" value="2"/> + <Numeric name="ModuleThick" value="[tidmodpar:ModuleThickDS]"/> + <Numeric name="DetTilt" value="-[tidmodpar:DetTilt]"/> + <Numeric name="FullHeight" value="[tidmodule0:FullHeight]"/> + <Numeric name="DlTop" value="[tidmodule0:DlTop]"/> + <Numeric name="DlBottom" value="[tidmodule0:DlBottom]"/> + <Numeric name="DlHybrid" value="[tidmodule0:DlHybrid]"/> + <String name="BoxFrameName" value="tidmodule0:TIDModule0BoxFrame"/> + <Numeric name="BoxFrameHeight" value="[tidmodule0:BoxFrameHeight]"/> + <Numeric name="BoxFrameWidth" value="[tidmodpar:BoxFrameWidth]"/> + <Vector name="BoxFrameZ" type="numeric" nEntries="2"> + [tidmodpar:BoxFrameZDS], -[tidmodpar:BoxFrameZDS] </Vector> + <Numeric name="BottomFrameHeight" value="[tidmodule0:BottomFrameHeight]"/> + <Numeric name="BottomFrameOver" value="[tidmodpar:BottomFrameOverDS]"/> + <Numeric name="TopFrameHeight" value="[tidmodule0:TopFrameHeight]"/> + <Numeric name="TopFrameOver" value="[tidmodpar:TopFrameOverDS]"/> + <Vector name="SideFrameName" type="string" nEntries="2"> + tidmodule0:TIDModule0RphiSideFrame, tidmodule0:TIDModule0StereoSideFrame</Vector> + <Vector name="SideFrameZ" type="numeric" nEntries="2"> + [tidmodpar:SideFrameZDS], -[tidmodpar:SideFrameZDS] </Vector> + <Vector name="SideFrameRotation" type="string" nEntries="2"> + tidmodpar:NULL, tidmodpar:NULL</Vector> + <Numeric name="SideFrameWidth" value="[tidmodule0:SideFrameWidth]"/> + <Numeric name="SideFrameOver" value="[tidmodpar:SideFrameOver]"/> + <Vector name="KaptonName" type="string" nEntries="2"> + tidmodule0:TIDModule0RphiKapton, tidmodule0:TIDModule0StereoKapton</Vector> + <Vector name="KaptonZ" type="numeric" nEntries="2"> + [tidmodpar:KaptonZDS], -[tidmodpar:KaptonZDS] </Vector> + <Vector name="KaptonRotation" type="string" nEntries="2"> + tidmodpar:NULL, tidmodpar:NULL</Vector> + <Vector name="WaferName" type="string" nEntries="2"> + tidmodule0:TIDModule0RphiWafer, tidmodule0:TIDModule0StereoWafer</Vector> + <Vector name="WaferZ" type="numeric" nEntries="2"> + [tidmodpar:ActiveZDS], -[tidmodpar:ActiveZDS] </Vector> + <Vector name="WaferRotation" type="string" nEntries="2"> + tidmodpar:RFI1, tidmodpar:F100</Vector> + <String name="HybridName" value="tidmodule0:TIDModule0Hybrid"/> + <Numeric name="HybridHeight" value="[tidmodpar:HybridHeight]"/> + <Vector name="HybridZ" type="numeric" nEntries="2"> + [tidmodpar:HybridZDS], -[tidmodpar:HybridZDS] </Vector> + <Vector name="PitchName" type="string" nEntries="2"> + tidmodule0:TIDModule0RphiPA, tidmodule0:TIDModule0StereoPA</Vector> + <Numeric name="PitchHeight" value="[tidmodule0:PitchHeight]"/> + <Vector name="PitchZ" type="numeric" nEntries="2"> + [tidmodpar:PitchZDS], -[tidmodpar:PitchZDS] </Vector> + <Vector name="PitchRotation" type="string" nEntries="2"> + tidmodpar:NULL, tidmodpar:9PYX</Vector> + <String name="CoolInsertName" value="tidmodule0:TIDCoolInsert"/> + <Numeric name="CoolInsertHeight" value="[tidmodpar:CoolInsertHeightDS]"/> + <Numeric name="CoolInsertWidth" value="[tidmodpar:CoolInsertWidthDS]"/> + <Numeric name="CoolInsertZ" value="[tidmodpar:CoolInsertZDS]"/> + <Vector name="CoolInsertShift" type="numeric" nEntries="2"> + [tid:zero], [tidmodule0:CoolInsertShift] </Vector> + <String name="DoSpacers" value="Yes"/> + <String name="BottomSpacersName" value="tidmodpar:TIDBottomSpacers"/> + <Numeric name="BottomSpacersHeight" value="[tidmodpar:BottomSpacersHeight]"/> + <Numeric name="BottomSpacersZ" value="[tidmodpar:BottomSpacersZ]"/> + <String name="SideSpacersName" value="tidmodpar:TIDSideSpacers"/> + <Numeric name="SideSpacersHeight" value="[tidmodpar:SideSpacersHeight]"/> + <Numeric name="SideSpacersZ" value="[tidmodpar:SideSpacersZ]"/> + <Numeric name="SideSpacersThick" value="[tidmodpar:SideSpacersThick]"/> + <Numeric name="SideSpacersWidth" value="[tidmodpar:SideSpacersWidth]"/> + <Numeric name="SideSpacersShift" value="[tidmodule0:SideSpacersShift]"/> + </Algorithm> +</DDDefinition> diff --git a/examples/DDCMS/data/tidmodule0r.xml b/examples/DDCMS/data/tidmodule0r.xml new file mode 100644 index 0000000000000000000000000000000000000000..c37a38ff4779096019b80f7abcf60922d4666a9f --- /dev/null +++ b/examples/DDCMS/data/tidmodule0r.xml @@ -0,0 +1,69 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <Algorithm name="track:DDTIDModulePosAlgo"> + <rParent name="tidmodule0r:TIDModule0R"/> + <Numeric name="DetectorNumber" value="2"/> + <Numeric name="ModuleThick" value="[tidmodpar:ModuleThickDS]"/> + <Numeric name="DetTilt" value="[tidmodpar:DetTilt]"/> + <Numeric name="FullHeight" value="[tidmodule0:FullHeight]"/> + <Numeric name="DlTop" value="[tidmodule0:DlTop]"/> + <Numeric name="DlBottom" value="[tidmodule0:DlBottom]"/> + <Numeric name="DlHybrid" value="[tidmodule0:DlHybrid]"/> + <String name="BoxFrameName" value="tidmodule0:TIDModule0BoxFrame"/> + <Numeric name="BoxFrameHeight" value="[tidmodule0:BoxFrameHeight]"/> + <Numeric name="BoxFrameWidth" value="[tidmodpar:BoxFrameWidth]"/> + <Vector name="BoxFrameZ" type="numeric" nEntries="2"> + [tidmodpar:BoxFrameZDS], -[tidmodpar:BoxFrameZDS] </Vector> + <Numeric name="BottomFrameHeight" value="[tidmodule0:BottomFrameHeight]"/> + <Numeric name="BottomFrameOver" value="[tidmodpar:BottomFrameOverDS]"/> + <Numeric name="TopFrameHeight" value="[tidmodule0:TopFrameHeight]"/> + <Numeric name="TopFrameOver" value="[tidmodpar:TopFrameOverDS]"/> + <Vector name="SideFrameName" type="string" nEntries="2"> + tidmodule0:TIDModule0RphiSideFrame, tidmodule0:TIDModule0StereoSideFrame</Vector> + <Vector name="SideFrameZ" type="numeric" nEntries="2"> + [tidmodpar:SideFrameZDS], -[tidmodpar:SideFrameZDS] </Vector> + <Vector name="SideFrameRotation" type="string" nEntries="2"> + tidmodpar:NULL, tidmodpar:R180</Vector> + <Numeric name="SideFrameWidth" value="[tidmodule0:SideFrameWidth]"/> + <Numeric name="SideFrameOver" value="[tidmodpar:SideFrameOver]"/> + <Vector name="KaptonName" type="string" nEntries="2"> + tidmodule0:TIDModule0RphiKapton, tidmodule0:TIDModule0StereoKapton</Vector> + <Vector name="KaptonZ" type="numeric" nEntries="2"> + [tidmodpar:KaptonZDS], -[tidmodpar:KaptonZDS] </Vector> + <Vector name="KaptonRotation" type="string" nEntries="2"> + tidmodpar:NULL, tidmodpar:R180</Vector> + <Vector name="WaferName" type="string" nEntries="2"> + tidmodule0:TIDModule0RphiWafer, tidmodule0:TIDModule0StereoWafer</Vector> + <Vector name="WaferZ" type="numeric" nEntries="2"> + [tidmodpar:ActiveZDS], -[tidmodpar:ActiveZDS] </Vector> + <Vector name="WaferRotation" type="string" nEntries="2"> + tidmodpar:RFI1, tidmodpar:G100</Vector> + <String name="HybridName" value="tidmodule0:TIDModule0Hybrid"/> + <Numeric name="HybridHeight" value="[tidmodpar:HybridHeight]"/> + <Vector name="HybridZ" type="numeric" nEntries="2"> + [tidmodpar:HybridZDS], -[tidmodpar:HybridZDS] </Vector> + <Vector name="PitchName" type="string" nEntries="2"> + tidmodule0:TIDModule0RphiPA, tidmodule0:TIDModule0StereoPA</Vector> + <Numeric name="PitchHeight" value="[tidmodule0:PitchHeight]"/> + <Vector name="PitchZ" type="numeric" nEntries="2"> + [tidmodpar:PitchZDS], -[tidmodpar:PitchZDS] </Vector> + <Vector name="PitchRotation" type="string" nEntries="2"> + tidmodpar:NULL, tidmodpar:9NYX</Vector> + <String name="CoolInsertName" value="tidmodule0:TIDCoolInsert"/> + <Numeric name="CoolInsertHeight" value="[tidmodpar:CoolInsertHeightDS]"/> + <Numeric name="CoolInsertWidth" value="[tidmodpar:CoolInsertWidthDS]"/> + <Numeric name="CoolInsertZ" value="[tidmodpar:CoolInsertZDS]"/> + <Vector name="CoolInsertShift" type="numeric" nEntries="2"> + [tid:zero], [tidmodule0:CoolInsertShift] </Vector> + <String name="DoSpacers" value="Yes"/> + <String name="BottomSpacersName" value="tidmodpar:TIDBottomSpacers"/> + <Numeric name="BottomSpacersHeight" value="[tidmodpar:BottomSpacersHeight]"/> + <Numeric name="BottomSpacersZ" value="[tidmodpar:BottomSpacersZ]"/> + <String name="SideSpacersName" value="tidmodpar:TIDSideSpacers"/> + <Numeric name="SideSpacersHeight" value="[tidmodpar:SideSpacersHeight]"/> + <Numeric name="SideSpacersZ" value="[tidmodpar:SideSpacersZ]"/> + <Numeric name="SideSpacersThick" value="[tidmodpar:SideSpacersThick]"/> + <Numeric name="SideSpacersWidth" value="[tidmodpar:SideSpacersWidth]"/> + <Numeric name="SideSpacersShift" value="[tidmodule0:SideSpacersShift]"/> + </Algorithm> +</DDDefinition> diff --git a/examples/DDCMS/data/tidmodule1.xml b/examples/DDCMS/data/tidmodule1.xml new file mode 100644 index 0000000000000000000000000000000000000000..c78deaff7d8af937ba75ee12a643a78da7f74615 --- /dev/null +++ b/examples/DDCMS/data/tidmodule1.xml @@ -0,0 +1,183 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tidmodule1.xml" eval="true"> + <Constant name="FullHeight" value="9.0236000*cm"/> + <Constant name="ActiveHeight" value="8.8160000*cm"/> + <Constant name="DlTop" value="11.2202000*cm"/> + <Constant name="DlBottom" value="8.8096000*cm"/> + <Constant name="SideWidthTop" value="0.1076928*cm"/> + <Constant name="SideWidthBottom" value="0.0822066*cm"/> + <Constant name="DlHybrid" value="12.258*cm"/> + <Constant name="PitchHeight" value="1.40*cm"/> + <Constant name="BottomFrameHeight" value="0.85*cm"/> + <Constant name="TopFrameHeight" value="[PitchHeight]+[tidmodpar:TopFrameOverDS]+0.6*cm"/> + <Constant name="BoxFrameHeight" value="[tidmodpar:BoxFrameHeightDS]"/> + <Constant name="SideFrameWidth" value="1.30*cm"/> + <Constant name="CoolInsertShift" value="9.33*cm"/> + <Constant name="SideSpacersShift" value="[CoolInsertShift]"/> + <!-- alias for Module Height --> + <Constant name="ModuleHeight" value="[BoxFrameHeight]+[BottomFrameHeight]+[FullHeight]+[TopFrameHeight]- [tidmodpar:TopFrameOverDS]-[tidmodpar:BottomFrameOverDS]"/> + </ConstantsSection> + <Algorithm name="track:DDTIDModuleAlgo"> + <rParent name="tidmodule1l:TIDModule1L"/> + <String name="GeneralMaterial" value="materials:Air"/> + <Numeric name="DetectorNumber" value="2"/> + <Numeric name="ModuleThick" value="[tidmodpar:ModuleThickDS]"/> + <Numeric name="DetTilt" value="[tidmodpar:DetTilt]"/> + <Numeric name="FullHeight" value="[tidmodule1:FullHeight]"/> + <Numeric name="DlTop" value="[tidmodule1:DlTop]"/> + <Numeric name="DlBottom" value="[tidmodule1:DlBottom]"/> + <Numeric name="DlHybrid" value="[tidmodule1:DlHybrid]"/> + <String name="DoComponents" value="Yes"/> + <String name="BoxFrameName" value="tidmodule1:TIDModule1BoxFrame"/> + <String name="BoxFrameMaterial" value="trackermaterial:T_CarbonFibreStr"/> + <Numeric name="BoxFrameWidth" value="[tidmodpar:BoxFrameWidth]"/> + <Numeric name="BoxFrameThick" value="[tidmodpar:BoxFrameThick]"/> + <Numeric name="BoxFrameHeight" value="[tidmodule1:BoxFrameHeight]"/> + <Numeric name="BottomFrameHeight" value="[tidmodule1:BottomFrameHeight]"/> + <Numeric name="BottomFrameOver" value="[tidmodpar:BottomFrameOverDS]"/> + <Numeric name="TopFrameHeight" value="[tidmodule1:TopFrameHeight]"/> + <Numeric name="TopFrameOver" value="[tidmodpar:TopFrameOverDS]"/> + <String name="SideFrameMaterial" value="trackermaterial:T_CarbonFibreStr"/> + <Numeric name="SideFrameWidth" value="[tidmodule1:SideFrameWidth]"/> + <Numeric name="SideFrameThick" value="[tidmodpar:SideFrameThick]"/> + <Numeric name="SideFrameOver" value="[tidmodpar:SideFrameOver]"/> + <Vector name="SideFrameName" type="string" nEntries="2"> + tidmodule1:TIDModule1RphiSideFrame, tidmodule1:TIDModule1StereoSideFrame + </Vector> + <Vector name="HoleFrameName" type="string" nEntries="2"> + tidmodule1:TIDModule1RphiFrameHole, tidmodule1:TIDModule1StereoFrameHole + </Vector> + <Vector name="HoleFrameRotation" type="string" nEntries="2"> + tidmodpar:NULL, tidmodpar:F100 + </Vector> + <String name="KaptonMaterial" value="tidmaterial:T_TIDModKaptonBox"/> + <Numeric name="KaptonThick" value="[tidmodpar:KaptonThick]"/> + <Numeric name="KaptonOver" value="[tidmodpar:KaptonOver]"/> + <Vector name="KaptonName" type="string" nEntries="2"> + tidmodule1:TIDModule1RphiKapton, tidmodule1:TIDModule1StereoKapton + </Vector> + <Vector name="HoleKaptonName" type="string" nEntries="2"> + tidmodule1:TIDModule1RphiKaptonHole, tidmodule1:TIDModule1StereoKaptonHole + </Vector> + <Vector name="HoleKaptonRotation" type="string" nEntries="2"> + tidmodpar:NULL, tidmodpar:F100 + </Vector> + <Vector name="WaferName" type="string" nEntries="2"> + tidmodule1:TIDModule1RphiWafer, tidmodule1:TIDModule1StereoWafer + </Vector> + <String name="WaferMaterial" value="materials:Silicon"/> + <Numeric name="SideWidthTop" value="[SideWidthTop]"/> + <Numeric name="SideWidthBottom" value="[SideWidthBottom]"/> + <Vector name="ActiveName" type="string" nEntries="2"> + tidmodule1:TIDModule1RphiActive, tidmodule1:TIDModule1StereoActive + </Vector> + <String name="ActiveMaterial" value="materials:Silicon"/> + <Numeric name="ActiveHeight" value="[tidmodule1:ActiveHeight]"/> + <Vector name="WaferThick" type="numeric" nEntries="2"> + [tidmodpar:WaferThick], [tidmodpar:WaferThick] + </Vector> + <String name="ActiveRotation" value="tidmodpar:90ZD"/> + <Vector name="BackPlaneThick" type="numeric" nEntries="2"> + 2*[tracker:BackPlaneDz], 2*[tracker:BackPlaneDz] + </Vector> + <String name="HybridName" value="tidmodule1:TIDModule1Hybrid"/> + <String name="HybridMaterial" value="tibtidcommonmaterial:TIBTID_Hybrid"/> + <Numeric name="HybridHeight" value="[tidmodpar:HybridHeight]"/> + <Numeric name="HybridWidth" value="[tidmodpar:HybridWidth]"/> + <Numeric name="HybridThick" value="[tidmodpar:HybridThick]"/> + <Vector name="PitchName" type="string" nEntries="2"> + tidmodule1:TIDModule1RphiPA, tidmodule1:TIDModule1StereoPA + </Vector> + <String name="PitchMaterial" value="tibtidcommonmaterial:TIBTID_PA"/> + <Numeric name="PitchHeight" value="[tidmodule1:PitchHeight]"/> + <Numeric name="PitchThick" value="[tidmodpar:PitchThick]"/> + <Numeric name="PitchStereoTolerance" value="[tidmodpar:PitchStereoTolerance]"/> + <String name="CoolInsertName" value="tidmodule1:TIDCoolInsert"/> + <String name="CoolInsertMaterial" value="tidmaterial:TID_CoolInsert"/> + <Numeric name="CoolInsertHeight" value="[tidmodpar:CoolInsertHeightDS]"/> + <Numeric name="CoolInsertThick" value="[tidmodpar:CoolInsertThickDS]"/> + <Numeric name="CoolInsertWidth" value="[tidmodpar:CoolInsertWidthDS]"/> + </Algorithm> + <Algorithm name="track:DDTIDModuleAlgo"> + <rParent name="tidmodule1r:TIDModule1R"/> + <String name="GeneralMaterial" value="materials:Air"/> + <Numeric name="DetectorNumber" value="2"/> + <Numeric name="ModuleThick" value="[tidmodpar:ModuleThickDS]"/> + <Numeric name="DetTilt" value="[tidmodpar:DetTilt]"/> + <Numeric name="FullHeight" value="[tidmodule1:FullHeight]"/> + <Numeric name="DlTop" value="[tidmodule1:DlTop]"/> + <Numeric name="DlBottom" value="[tidmodule1:DlBottom]"/> + <Numeric name="DlHybrid" value="[tidmodule1:DlHybrid]"/> + <String name="DoComponents" value="No"/> + <String name="BoxFrameName" value="tidmodule1:TIDModule1BoxFrame"/> + <String name="BoxFrameMaterial" value="trackermaterial:T_CarbonFibreStr"/> + <Numeric name="BoxFrameWidth" value="[tidmodpar:BoxFrameWidth]"/> + <Numeric name="BoxFrameThick" value="[tidmodpar:BoxFrameThick]"/> + <Numeric name="BoxFrameHeight" value="[tidmodule1:BoxFrameHeight]"/> + <Numeric name="BottomFrameHeight" value="[tidmodule1:BottomFrameHeight]"/> + <Numeric name="BottomFrameOver" value="[tidmodpar:BottomFrameOverDS]"/> + <Numeric name="TopFrameHeight" value="[tidmodule1:TopFrameHeight]"/> + <Numeric name="TopFrameOver" value="[tidmodpar:TopFrameOverDS]"/> + <String name="SideFrameMaterial" value="trackermaterial:T_CarbonFibreStr"/> + <Numeric name="SideFrameWidth" value="[tidmodule1:SideFrameWidth]"/> + <Numeric name="SideFrameThick" value="[tidmodpar:SideFrameThick]"/> + <Numeric name="SideFrameOver" value="[tidmodpar:SideFrameOver]"/> + <Vector name="SideFrameName" type="string" nEntries="2"> + tidmodule1:TIDModule1RphiSideFrame, tidmodule1:TIDModule1StereoSideFrame + </Vector> + <Vector name="HoleFrameName" type="string" nEntries="2"> + tidmodule1:TIDModule1RphiFrameHole, tidmodule1:TIDModule1StereoFrameHole + </Vector> + <Vector name="HoleFrameRotation" type="string" nEntries="2"> + tidmodpar:NULL, tidmodpar:F100 + </Vector> + <String name="KaptonMaterial" value="tidmaterial:T_TIDModKaptonBox"/> + <Numeric name="KaptonThick" value="[tidmodpar:KaptonThick]"/> + <Numeric name="KaptonOver" value="[tidmodpar:KaptonOver]"/> + <Vector name="KaptonName" type="string" nEntries="2"> + tidmodule1:TIDModule1RphiKapton, tidmodule1:TIDModule1StereoKapton + </Vector> + <Vector name="HoleKaptonName" type="string" nEntries="2"> + tidmodule1:TIDModule1RphiKaptonHole, tidmodule1:TIDModule1StereoKaptonHole + </Vector> + <Vector name="HoleKaptonRotation" type="string" nEntries="2"> + tidmodpar:NULL, tidmodpar:F100 + </Vector> + <Vector name="WaferName" type="string" nEntries="2"> + tidmodule1:TIDModule1RphiWafer, tidmodule1:TIDModule1StereoWafer + </Vector> + <String name="WaferMaterial" value="materials:Silicon"/> + <Numeric name="SideWidthTop" value="[SideWidthTop]"/> + <Numeric name="SideWidthBottom" value="[SideWidthBottom]"/> + <Vector name="ActiveName" type="string" nEntries="2"> + tidmodule1:TIDModule1RphiActive, tidmodule1:TIDModule1StereoActive + </Vector> + <String name="ActiveMaterial" value="materials:Silicon"/> + <Numeric name="ActiveHeight" value="[tidmodule1:ActiveHeight]"/> + <Vector name="WaferThick" type="numeric" nEntries="2"> + [tidmodpar:WaferThick], [tidmodpar:WaferThick] + </Vector> + <String name="ActiveRotation" value="tidmodpar:90ZD"/> + <Vector name="BackPlaneThick" type="numeric" nEntries="2"> + 2*[tracker:BackPlaneDz], 2*[tracker:BackPlaneDz] + </Vector> + <String name="HybridName" value="tidmodule1:TIDModule1Hybrid"/> + <String name="HybridMaterial" value="tibtidcommonmaterial:TIBTID_Hybrid"/> + <Numeric name="HybridHeight" value="[tidmodpar:HybridHeight]"/> + <Numeric name="HybridWidth" value="[tidmodpar:HybridWidth]"/> + <Numeric name="HybridThick" value="[tidmodpar:HybridThick]"/> + <Vector name="PitchName" type="string" nEntries="2"> + tidmodule1:TIDModule1RphiPA, tidmodule1:TIDModule1StereoPA + </Vector> + <String name="PitchMaterial" value="tibtidcommonmaterial:TIBTID_PA"/> + <Numeric name="PitchHeight" value="[tidmodule1:PitchHeight]"/> + <Numeric name="PitchThick" value="[tidmodpar:PitchThick]"/> + <Numeric name="PitchStereoTolerance" value="[tidmodpar:PitchStereoTolerance]"/> + <String name="CoolInsertName" value="tidmodule1:TIDCoolInsert"/> + <String name="CoolInsertMaterial" value="trackermaterial:T_Aluminium"/> + <Numeric name="CoolInsertHeight" value="[tidmodpar:CoolInsertHeightDS]"/> + <Numeric name="CoolInsertThick" value="[tidmodpar:CoolInsertThickDS]"/> + <Numeric name="CoolInsertWidth" value="[tidmodpar:CoolInsertWidthDS]"/> + </Algorithm> +</DDDefinition> diff --git a/examples/DDCMS/data/tidmodule1l.xml b/examples/DDCMS/data/tidmodule1l.xml new file mode 100644 index 0000000000000000000000000000000000000000..a3f151debf8c736f5eadcc660adb326db2ee7da6 --- /dev/null +++ b/examples/DDCMS/data/tidmodule1l.xml @@ -0,0 +1,70 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <Algorithm name="track:DDTIDModulePosAlgo"> + <rParent name="tidmodule1l:TIDModule1L"/> + <Numeric name="DetectorNumber" value="2"/> + <Numeric name="ModuleThick" value="[tidmodpar:ModuleThickDS]"/> + <Numeric name="DetTilt" value="-[tidmodpar:DetTilt]"/> + <Numeric name="FullHeight" value="[tidmodule1:FullHeight]"/> + <Numeric name="DlTop" value="[tidmodule1:DlTop]"/> + <Numeric name="DlBottom" value="[tidmodule1:DlBottom]"/> + <Numeric name="DlHybrid" value="[tidmodule1:DlHybrid]"/> + <String name="BoxFrameName" value="tidmodule1:TIDModule1BoxFrame"/> + <Numeric name="BoxFrameHeight" value="[tidmodule1:BoxFrameHeight]"/> + <Numeric name="BoxFrameWidth" value="[tidmodpar:BoxFrameWidth]"/> + <Vector name="BoxFrameZ" type="numeric" nEntries="2"> + [tidmodpar:BoxFrameZDS], -[tidmodpar:BoxFrameZDS] </Vector> + <Numeric name="BottomFrameHeight" value="[tidmodule1:BottomFrameHeight]"/> + <Numeric name="BottomFrameOver" value="[tidmodpar:BottomFrameOverDS]"/> + <Numeric name="TopFrameHeight" value="[tidmodule1:TopFrameHeight]"/> + <Numeric name="TopFrameOver" value="[tidmodpar:TopFrameOverDS]"/> + <Vector name="SideFrameName" type="string" nEntries="2"> + tidmodule1:TIDModule1RphiSideFrame, tidmodule1:TIDModule1StereoSideFrame</Vector> + <Vector name="SideFrameZ" type="numeric" nEntries="2"> + [tidmodpar:SideFrameZDS], -[tidmodpar:SideFrameZDS] </Vector> + <Vector name="SideFrameRotation" type="string" nEntries="2"> + tidmodpar:NULL, tidmodpar:NULL</Vector> + <Numeric name="SideFrameWidth" value="[tidmodule1:SideFrameWidth]"/> + <Numeric name="SideFrameOver" value="[tidmodpar:SideFrameOver]"/> + <Vector name="KaptonName" type="string" nEntries="2"> + tidmodule1:TIDModule1RphiKapton, tidmodule1:TIDModule1StereoKapton</Vector> + <Vector name="KaptonZ" type="numeric" nEntries="2"> + [tidmodpar:KaptonZDS], -[tidmodpar:KaptonZDS] </Vector> + <Vector name="KaptonRotation" type="string" nEntries="2"> + tidmodpar:NULL, tidmodpar:NULL</Vector> + <Vector name="WaferName" type="string" nEntries="2"> + tidmodule1:TIDModule1RphiWafer, tidmodule1:TIDModule1StereoWafer</Vector> + <Vector name="WaferZ" type="numeric" nEntries="2"> + [tidmodpar:ActiveZDS], -[tidmodpar:ActiveZDS] </Vector> + <Vector name="WaferRotation" type="string" nEntries="2"> + tidmodpar:RFI1, tidmodpar:F100</Vector> + <String name="HybridName" value="tidmodule1:TIDModule1Hybrid"/> + <Numeric name="HybridHeight" value="[tidmodpar:HybridHeight]"/> + <Vector name="HybridZ" type="numeric" nEntries="2"> + [tidmodpar:HybridZDS], -[tidmodpar:HybridZDS] </Vector> + <Vector name="PitchName" type="string" nEntries="2"> + tidmodule1:TIDModule1RphiPA, tidmodule1:TIDModule1StereoPA</Vector> + <Numeric name="PitchHeight" value="[tidmodule1:PitchHeight]"/> + <Vector name="PitchZ" type="numeric" nEntries="2"> + [tidmodpar:PitchZDS], -[tidmodpar:PitchZDS] </Vector> + <Vector name="PitchRotation" type="string" nEntries="2"> + tidmodpar:NULL, tidmodpar:9PYX</Vector> + <String name="CoolInsertName" value="tidmodule1:TIDCoolInsert"/> + <Numeric name="CoolInsertHeight" value="[tidmodpar:CoolInsertHeightDS]"/> + <Numeric name="CoolInsertWidth" value="[tidmodpar:CoolInsertWidthDS]"/> + <Numeric name="CoolInsertZ" value="[tidmodpar:CoolInsertZDS]"/> + <Vector name="CoolInsertShift" type="numeric" nEntries="2"> + [tid:zero], [tidmodule1:CoolInsertShift] + </Vector> + <String name="DoSpacers" value="Yes"/> + <String name="BottomSpacersName" value="tidmodpar:TIDBottomSpacers"/> + <Numeric name="BottomSpacersHeight" value="[tidmodpar:BottomSpacersHeight]"/> + <Numeric name="BottomSpacersZ" value="[tidmodpar:BottomSpacersZ]"/> + <String name="SideSpacersName" value="tidmodpar:TIDSideSpacers"/> + <Numeric name="SideSpacersHeight" value="[tidmodpar:SideSpacersHeight]"/> + <Numeric name="SideSpacersZ" value="[tidmodpar:SideSpacersZ]"/> + <Numeric name="SideSpacersThick" value="[tidmodpar:SideSpacersThick]"/> + <Numeric name="SideSpacersWidth" value="[tidmodpar:SideSpacersWidth]"/> + <Numeric name="SideSpacersShift" value="[tidmodule1:SideSpacersShift]"/> + </Algorithm> +</DDDefinition> diff --git a/examples/DDCMS/data/tidmodule1r.xml b/examples/DDCMS/data/tidmodule1r.xml new file mode 100644 index 0000000000000000000000000000000000000000..2d884bae45e27449af0d91c6dee0ab7bcb94d734 --- /dev/null +++ b/examples/DDCMS/data/tidmodule1r.xml @@ -0,0 +1,70 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <Algorithm name="track:DDTIDModulePosAlgo"> + <rParent name="tidmodule1r:TIDModule1R"/> + <Numeric name="DetectorNumber" value="2"/> + <Numeric name="ModuleThick" value="[tidmodpar:ModuleThickDS]"/> + <Numeric name="DetTilt" value="[tidmodpar:DetTilt]"/> + <Numeric name="FullHeight" value="[tidmodule1:FullHeight]"/> + <Numeric name="DlTop" value="[tidmodule1:DlTop]"/> + <Numeric name="DlBottom" value="[tidmodule1:DlBottom]"/> + <Numeric name="DlHybrid" value="[tidmodule1:DlHybrid]"/> + <String name="BoxFrameName" value="tidmodule1:TIDModule1BoxFrame"/> + <Numeric name="BoxFrameHeight" value="[tidmodule1:BoxFrameHeight]"/> + <Numeric name="BoxFrameWidth" value="[tidmodpar:BoxFrameWidth]"/> + <Vector name="BoxFrameZ" type="numeric" nEntries="2"> + [tidmodpar:BoxFrameZDS], -[tidmodpar:BoxFrameZDS] </Vector> + <Numeric name="BottomFrameHeight" value="[tidmodule1:BottomFrameHeight]"/> + <Numeric name="BottomFrameOver" value="[tidmodpar:BottomFrameOverDS]"/> + <Numeric name="TopFrameHeight" value="[tidmodule1:TopFrameHeight]"/> + <Numeric name="TopFrameOver" value="[tidmodpar:TopFrameOverDS]"/> + <Vector name="SideFrameName" type="string" nEntries="2"> + tidmodule1:TIDModule1RphiSideFrame, tidmodule1:TIDModule1StereoSideFrame</Vector> + <Vector name="SideFrameZ" type="numeric" nEntries="2"> + [tidmodpar:SideFrameZDS], -[tidmodpar:SideFrameZDS] </Vector> + <Vector name="SideFrameRotation" type="string" nEntries="2"> + tidmodpar:NULL, tidmodpar:R180</Vector> + <Numeric name="SideFrameWidth" value="[tidmodule1:SideFrameWidth]"/> + <Numeric name="SideFrameOver" value="[tidmodpar:SideFrameOver]"/> + <Vector name="KaptonName" type="string" nEntries="2"> + tidmodule1:TIDModule1RphiKapton, tidmodule1:TIDModule1StereoKapton</Vector> + <Vector name="KaptonZ" type="numeric" nEntries="2"> + [tidmodpar:KaptonZDS], -[tidmodpar:KaptonZDS] </Vector> + <Vector name="KaptonRotation" type="string" nEntries="2"> + tidmodpar:NULL, tidmodpar:R180</Vector> + <Vector name="WaferName" type="string" nEntries="2"> + tidmodule1:TIDModule1RphiWafer, tidmodule1:TIDModule1StereoWafer</Vector> + <Vector name="WaferZ" type="numeric" nEntries="2"> + [tidmodpar:ActiveZDS], -[tidmodpar:ActiveZDS] </Vector> + <Vector name="WaferRotation" type="string" nEntries="2"> + tidmodpar:RFI1, tidmodpar:G100</Vector> + <String name="HybridName" value="tidmodule1:TIDModule1Hybrid"/> + <Numeric name="HybridHeight" value="[tidmodpar:HybridHeight]"/> + <Vector name="HybridZ" type="numeric" nEntries="2"> + [tidmodpar:HybridZDS], -[tidmodpar:HybridZDS] </Vector> + <Vector name="PitchName" type="string" nEntries="2"> + tidmodule1:TIDModule1RphiPA, tidmodule1:TIDModule1StereoPA</Vector> + <Numeric name="PitchHeight" value="[tidmodule1:PitchHeight]"/> + <Vector name="PitchZ" type="numeric" nEntries="2"> + [tidmodpar:PitchZDS], -[tidmodpar:PitchZDS] </Vector> + <Vector name="PitchRotation" type="string" nEntries="2"> + tidmodpar:NULL, tidmodpar:9NYX</Vector> + <String name="CoolInsertName" value="tidmodule1:TIDCoolInsert"/> + <Numeric name="CoolInsertHeight" value="[tidmodpar:CoolInsertHeightDS]"/> + <Numeric name="CoolInsertWidth" value="[tidmodpar:CoolInsertWidthDS]"/> + <Numeric name="CoolInsertZ" value="[tidmodpar:CoolInsertZDS]"/> + <Vector name="CoolInsertShift" type="numeric" nEntries="2"> + [tid:zero], [tidmodule1:CoolInsertShift] + </Vector> + <String name="DoSpacers" value="Yes"/> + <String name="BottomSpacersName" value="tidmodpar:TIDBottomSpacers"/> + <Numeric name="BottomSpacersHeight" value="[tidmodpar:BottomSpacersHeight]"/> + <Numeric name="BottomSpacersZ" value="[tidmodpar:BottomSpacersZ]"/> + <String name="SideSpacersName" value="tidmodpar:TIDSideSpacers"/> + <Numeric name="SideSpacersHeight" value="[tidmodpar:SideSpacersHeight]"/> + <Numeric name="SideSpacersZ" value="[tidmodpar:SideSpacersZ]"/> + <Numeric name="SideSpacersThick" value="[tidmodpar:SideSpacersThick]"/> + <Numeric name="SideSpacersWidth" value="[tidmodpar:SideSpacersWidth]"/> + <Numeric name="SideSpacersShift" value="[tidmodule1:SideSpacersShift]"/> + </Algorithm> +</DDDefinition> diff --git a/examples/DDCMS/data/tidmodule2.xml b/examples/DDCMS/data/tidmodule2.xml new file mode 100644 index 0000000000000000000000000000000000000000..7d9d2ef9d0386e2cf4d26a58a879837bc41a79b8 --- /dev/null +++ b/examples/DDCMS/data/tidmodule2.xml @@ -0,0 +1,183 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tidmodule2.xml" eval="true"> + <Constant name="FullHeight" value="11.2736000*cm"/> + <Constant name="ActiveHeight" value="11.0660000*cm"/> + <Constant name="DlTop" value="8.3012000*cm"/> + <Constant name="DlBottom" value="6.4904000*cm"/> + <Constant name="SideWidthTop" value="0.1006846*cm"/> + <Constant name="SideWidthBottom" value="0.0866913*cm"/> + <Constant name="DlHybrid" value="5.887*cm"/> + <Constant name="PitchHeight" value="0.90*cm"/> + <Constant name="BottomFrameHeight" value="[PitchHeight]+[tidmodpar:BottomFrameOverSS]"/> + <Constant name="TopFrameHeight" value="[tidmodpar:TopFrameOverSS]+0.4*cm"/> + <Constant name="BoxFrameHeight" value="[tidmodpar:BoxFrameHeightSS]"/> + <Constant name="SideFrameWidth" value="1.10*cm"/> + <Constant name="CoolInsertShift" value="9.58*cm"/> + <Constant name="SideSpacersShift" value="[CoolInsertShift]"/> + <!-- alias for Module Height --> + <Constant name="ModuleHeight" value="[BoxFrameHeight]+[BottomFrameHeight]+[FullHeight]+[TopFrameHeight]- [tidmodpar:TopFrameOverSS]-[tidmodpar:BottomFrameOverSS]"/> + </ConstantsSection> + <Algorithm name="track:DDTIDModuleAlgo"> + <rParent name="tidmodule2:TIDModule2"/> + <String name="GeneralMaterial" value="materials:Air"/> + <Numeric name="DetectorNumber" value="1"/> + <Numeric name="ModuleThick" value="[tidmodpar:ModuleThickSS]"/> + <Numeric name="DetTilt" value="[tidmodpar:DetTilt]"/> + <Numeric name="FullHeight" value="[tidmodule2:FullHeight]"/> + <Numeric name="DlTop" value="[tidmodule2:DlTop]"/> + <Numeric name="DlBottom" value="[tidmodule2:DlBottom]"/> + <Numeric name="DlHybrid" value="[tidmodule2:DlHybrid]"/> + <String name="DoComponents" value="Yes"/> + <String name="BoxFrameName" value="tidmodule2:TIDModule2BoxFrame"/> + <String name="BoxFrameMaterial" value="trackermaterial:T_CarbonFibreStr"/> + <Numeric name="BoxFrameWidth" value="[tidmodpar:BoxFrameWidth]"/> + <Numeric name="BoxFrameThick" value="[tidmodpar:BoxFrameThick]"/> + <Numeric name="BoxFrameHeight" value="[tidmodule2:BoxFrameHeight]"/> + <Numeric name="BottomFrameHeight" value="[tidmodule2:BottomFrameHeight]"/> + <Numeric name="BottomFrameOver" value="[tidmodpar:BottomFrameOverSS]"/> + <Numeric name="TopFrameHeight" value="[tidmodule2:TopFrameHeight]"/> + <Numeric name="TopFrameOver" value="[tidmodpar:TopFrameOverSS]"/> + <String name="SideFrameMaterial" value="trackermaterial:T_CarbonFibreStr"/> + <Numeric name="SideFrameWidth" value="[tidmodule2:SideFrameWidth]"/> + <Numeric name="SideFrameThick" value="[tidmodpar:SideFrameThick]"/> + <Numeric name="SideFrameOver" value="[tidmodpar:SideFrameOver]"/> + <Vector name="SideFrameName" type="string" nEntries="1"> + tidmodule2:TIDModule2RphiSideFrame + </Vector> + <Vector name="HoleFrameName" type="string" nEntries="1"> + tidmodule2:TIDModule2RphiFrameHole + </Vector> + <Vector name="HoleFrameRotation" type="string" nEntries="1"> + tidmodpar:NULL + </Vector> + <String name="KaptonMaterial" value="tidmaterial:T_TIDModKaptonBox"/> + <Numeric name="KaptonThick" value="[tidmodpar:KaptonThick]"/> + <Numeric name="KaptonOver" value="[tidmodpar:KaptonOver]"/> + <Vector name="KaptonName" type="string" nEntries="1"> + tidmodule2:TIDModule2RphiKapton + </Vector> + <Vector name="HoleKaptonName" type="string" nEntries="1"> + tidmodule2:TIDModule2RphiKaptonHole + </Vector> + <Vector name="HoleKaptonRotation" type="string" nEntries="1"> + tidmodpar:NULL + </Vector> + <Vector name="WaferName" type="string" nEntries="1"> + tidmodule2:TIDModule2RphiWafer + </Vector> + <String name="WaferMaterial" value="materials:Silicon"/> + <Numeric name="SideWidthTop" value="[SideWidthTop]"/> + <Numeric name="SideWidthBottom" value="[SideWidthBottom]"/> + <Vector name="ActiveName" type="string" nEntries="1"> + tidmodule2:TIDModule2RphiActive + </Vector> + <String name="ActiveMaterial" value="materials:Silicon"/> + <Numeric name="ActiveHeight" value="[tidmodule2:ActiveHeight]"/> + <Vector name="WaferThick" type="numeric" nEntries="1"> + [tidmodpar:WaferThick] + </Vector> + <String name="ActiveRotation" value="tidmodpar:90ZD"/> + <Vector name="BackPlaneThick" type="numeric" nEntries="1"> + 2*[tracker:BackPlaneDz] + </Vector> + <String name="HybridName" value="tidmodule2:TIDModule2Hybrid"/> + <String name="HybridMaterial" value="tibtidcommonmaterial:TIBTID_Hybrid"/> + <Numeric name="HybridHeight" value="[tidmodpar:HybridHeight]"/> + <Numeric name="HybridWidth" value="[tidmodpar:HybridWidth]"/> + <Numeric name="HybridThick" value="[tidmodpar:HybridThick]"/> + <Vector name="PitchName" type="string" nEntries="1"> + tidmodule2:TIDModule2RphiPA + </Vector> + <String name="PitchMaterial" value="tibtidcommonmaterial:TIBTID_PA"/> + <Numeric name="PitchHeight" value="[tidmodule2:PitchHeight]"/> + <Numeric name="PitchThick" value="[tidmodpar:PitchThick]"/> + <Numeric name="PitchStereoTolerance" value="[tidmodpar:PitchStereoTolerance]"/> + <String name="CoolInsertName" value="tidmodule2:TIDCoolInsert"/> + <String name="CoolInsertMaterial" value="tidmaterial:TID_CoolInsert"/> + <Numeric name="CoolInsertHeight" value="[tidmodpar:CoolInsertHeightSS]"/> + <Numeric name="CoolInsertThick" value="[tidmodpar:CoolInsertThickSS]"/> + <Numeric name="CoolInsertWidth" value="[tidmodpar:CoolInsertWidthSS]"/> + </Algorithm> + <Algorithm name="track:DDTIDModulePosAlgo"> + <rParent name="tidmodule2:TIDModule2"/> + <Numeric name="DetectorNumber" value="1"/> + <Numeric name="ModuleThick" value="[tidmodpar:ModuleThickSS]"/> + <Numeric name="DetTilt" value="[tidmodpar:DetTilt]"/> + <Numeric name="FullHeight" value="[tidmodule2:FullHeight]"/> + <Numeric name="DlTop" value="[tidmodule2:DlTop]"/> + <Numeric name="DlBottom" value="[tidmodule2:DlBottom]"/> + <Numeric name="DlHybrid" value="[tidmodule2:DlHybrid]"/> + <String name="BoxFrameName" value="tidmodule2:TIDModule2BoxFrame"/> + <Numeric name="BoxFrameHeight" value="[tidmodule2:BoxFrameHeight]"/> + <Numeric name="BoxFrameWidth" value="[tidmodpar:BoxFrameWidth]"/> + <Vector name="BoxFrameZ" type="numeric" nEntries="1"> + [tidmodpar:BoxFrameZSS] + </Vector> + <Numeric name="BottomFrameHeight" value="[tidmodule2:BottomFrameHeight]"/> + <Numeric name="BottomFrameOver" value="[tidmodpar:BottomFrameOverSS]"/> + <Numeric name="TopFrameHeight" value="[tidmodule2:TopFrameHeight]"/> + <Numeric name="TopFrameOver" value="[tidmodpar:TopFrameOverSS]"/> + <Vector name="SideFrameName" type="string" nEntries="1"> + tidmodule2:TIDModule2RphiSideFrame + </Vector> + <Vector name="SideFrameZ" type="numeric" nEntries="1"> + [tidmodpar:SideFrameZSS] + </Vector> + <Vector name="SideFrameRotation" type="string" nEntries="1"> + tidmodpar:NULL + </Vector> + <Numeric name="SideFrameWidth" value="[tidmodule2:SideFrameWidth]"/> + <Numeric name="SideFrameOver" value="[tidmodpar:SideFrameOver]"/> + <Vector name="KaptonName" type="string" nEntries="1"> + tidmodule2:TIDModule2RphiKapton + </Vector> + <Vector name="KaptonZ" type="numeric" nEntries="1"> + [tidmodpar:KaptonZSS] + </Vector> + <Vector name="KaptonRotation" type="string" nEntries="1"> + tidmodpar:NULL + </Vector> + <Vector name="WaferName" type="string" nEntries="1"> + tidmodule2:TIDModule2RphiWafer + </Vector> + <Vector name="WaferZ" type="numeric" nEntries="1"> + [tidmodpar:ActiveZSS] + </Vector> + <Vector name="WaferRotation" type="string" nEntries="1"> + tidmodpar:RFI2 + </Vector> + <String name="HybridName" value="tidmodule2:TIDModule2Hybrid"/> + <Numeric name="HybridHeight" value="[tidmodpar:HybridHeight]"/> + <Vector name="HybridZ" type="numeric" nEntries="1"> + [tidmodpar:HybridZSS] + </Vector> + <Vector name="PitchName" type="string" nEntries="1"> + tidmodule2:TIDModule2RphiPA + </Vector> + <Numeric name="PitchHeight" value="[tidmodule2:PitchHeight]"/> + <Vector name="PitchZ" type="numeric" nEntries="1"> + [tidmodpar:PitchZSS] + </Vector> + <Vector name="PitchRotation" type="string" nEntries="1"> + tidmodpar:NULL + </Vector> + <String name="CoolInsertName" value="tidmodule2:TIDCoolInsert"/> + <Numeric name="CoolInsertHeight" value="[tidmodpar:CoolInsertHeightSS]"/> + <Numeric name="CoolInsertWidth" value="[tidmodpar:CoolInsertWidthSS]"/> + <Numeric name="CoolInsertZ" value="[tidmodpar:CoolInsertZSS]"/> + <Vector name="CoolInsertShift" type="numeric" nEntries="2"> + [tid:zero], [tidmodule2:CoolInsertShift]</Vector> + <String name="DoSpacers" value="No"/> + <!-- everything below is dummy for SS --> + <String name="BottomSpacersName" value="tidmodpar:TIDBottomSpacers"/> + <Numeric name="BottomSpacersHeight" value="[tidmodpar:BottomSpacersHeight]"/> + <Numeric name="BottomSpacersZ" value="[tidmodpar:BottomSpacersZ]"/> + <String name="SideSpacersName" value="tidmodpar:TIDSideSpacers"/> + <Numeric name="SideSpacersHeight" value="[tidmodpar:SideSpacersHeight]"/> + <Numeric name="SideSpacersZ" value="[tidmodpar:SideSpacersZ]"/> + <Numeric name="SideSpacersThick" value="[tidmodpar:SideSpacersThick]"/> + <Numeric name="SideSpacersWidth" value="[tidmodpar:SideSpacersWidth]"/> + <Numeric name="SideSpacersShift" value="[tidmodule2:SideSpacersShift]"/> + </Algorithm> +</DDDefinition> diff --git a/examples/DDCMS/data/tidring0.xml b/examples/DDCMS/data/tidring0.xml new file mode 100644 index 0000000000000000000000000000000000000000..f42759f4b070cb2b21feceb1a9b8ad30f24324aa --- /dev/null +++ b/examples/DDCMS/data/tidring0.xml @@ -0,0 +1,149 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tidring0.xml" eval="true"> + <Constant name="zero" value="0.0*fm"/> + <Constant name="Rmin" value="22.5261*cm"/> + <Constant name="NPhi" value="24"/> + <Constant name="PhiOff" value="0*deg"/> + <Constant name="ICBR" value="40.250*cm"/> + <Constant name="ICBTailR" value="[ICBR]+[tidringpar:ICBW]/2"/> + <Constant name="RPos" value="[Rmin]+[tidmodule0:ModuleHeight]/2"/> + <Constant name="ICCRPos" value="[Rmin]+[tidmodule0:ModuleHeight]+[tidringpar:ICCROffset]+[tidringpar:ICCH]/2"/> + <Constant name="ICBTailW" value="([tidringpar:Rout]-[ICBTailR]- [tidringpar:ICBTailTol])"/> + <Constant name="ICBTailRPos" value="([tidringpar:Rout]+[ICBTailR]- [tidringpar:ICBTailTol])/2"/> + <Constant name="CCUMrPos" value="[ICBTailR]+2*[tidringpar:ICBTailTol]+[tidringpar:CCUMW]/2"/> + <Constant name="CoolR1" value="[Rmin]+[tidmodule0:ModuleHeight]-[tidmodule0:CoolInsertShift]"/> + <Constant name="CoolR2" value="[Rmin]+[tidmodule0:ModuleHeight]-[tidmodpar:CoolInsertHeightDS]+[tidringpar:CoolD]/2"/> + <Constant name="DOHMrIn" value="44.5*cm"/> + <Constant name="DOHMrOut" value="50.5*cm"/> + <Constant name="DOHMrOff" value="-0.5*cm"/> + <Constant name="DOHMdPhi" value="18*deg"/> + <Constant name="CoolManifoldL" value="17*cm"/> + <Constant name="FlatCablerIn" value="[ICBR]+[tidringpar:ICBW]/2"/> + <Constant name="FlatCablerOut" value="[FlatCablerIn]+6*cm"/> + <Constant name="FlatCabledPhi" value="30*deg"/> + <Constant name="FlatCablephiPos" value="21*deg"/> + <!-- palced symmetrically wrt the MC at 21 deg --> + <Constant name="FlatCablephiPosOff" value="3*deg"/> + <Constant name="FlatCablephiPosL" value="[FlatCablephiPos]-[FlatCablephiPosOff]-[FlatCabledPhi]/2"/> + <Constant name="FlatCablephiPosR" value="[FlatCablephiPos]+[FlatCablephiPosOff]+[FlatCabledPhi]/2"/> + <Constant name="ModuleFixationInsertsInR" value="28.8*cm"/> + <Constant name="ModuleFixationInsertsOutR" value="37.7*cm"/> + </ConstantsSection> + <SolidSection label="tidring0.xml"> + <Tubs name="TIDRing0ICB" rMin="([ICBR]-[tidringpar:ICBW]/2)" rMax="([ICBR]+[tidringpar:ICBW]/2)" dz="[tidringpar:ICBT]/2" startPhi="0*deg" deltaPhi="360.*deg"/> + <Box name="TIDRing0ICBTail" dx="[tidringpar:ICBTailH]/2" dy="[ICBTailW]/2" dz="[tidringpar:ICBTailT]/2"/> + <Torus name="TIDRing0Cool1" innerRadius="[zero]" outerRadius="[tidringpar:CoolD]/2" torusRadius="[CoolR1]" startPhi="0*deg" deltaPhi="360.*deg"/> + <Torus name="TIDRing0Cool2" innerRadius="[zero]" outerRadius="[tidringpar:CoolD]/2" torusRadius="[CoolR2]" startPhi="0*deg" deltaPhi="360.*deg"/> + <Tubs name="TIDRing0DOHM" rMin="([DOHMrIn])" rMax="([DOHMrOut])" dz="[tidringpar:DOHMT]/2" startPhi="-[DOHMdPhi]/2" deltaPhi="[DOHMdPhi]"/> + <Tubs name="TIDRing0FiberLayer" rMin="([ICBR]-[tidringpar:ICBW]/2)" rMax="([ICBR]+[tidringpar:ICBW]/2)" dz="[tidringpar:FiberLayerT]/2" startPhi="0*deg" deltaPhi="360.*deg"/> + <Box name="TIDRing0CoolManifold" dx="[tidringpar:CoolManifoldW]/2" dy="[CoolManifoldL]/2" dz="[tidringpar:CoolManifoldT]/2"/> + <Tubs name="TIDRing0FlatCable" rMin="[FlatCablerIn]" rMax="[FlatCablerOut]" dz="[tidringpar:FlatCableT]/2" startPhi="-[FlatCabledPhi]/2" deltaPhi="[FlatCabledPhi]"/> + </SolidSection> + <LogicalPartSection label="tidring0.xml"> + <LogicalPart name="TIDStructure0" category="unspecified"> + <rSolid name="tidringpar:TIDStructure"/> + <rMaterial name="tidmaterial:TID_Mech"/> + </LogicalPart> + <LogicalPart name="TIDICC0" category="unspecified"> + <rSolid name="tidringpar:TIDICCDS"/> + <rMaterial name="tidmaterial:TID_DSAOHBox"/> + </LogicalPart> + <LogicalPart name="TIDRing0ICBTail" category="unspecified"> + <rSolid name="tidring0:TIDRing0ICBTail"/> + <rMaterial name="tidmaterial:TID_ICB1"/> + </LogicalPart> + <LogicalPart name="TIDRing0ICB" category="unspecified"> + <rSolid name="tidring0:TIDRing0ICB"/> + <rMaterial name="tidmaterial:TID_ICB1"/> + </LogicalPart> + <LogicalPart name="TIDRing0DOHM" category="unspecified"> + <rSolid name="tidring0:TIDRing0DOHM"/> + <rMaterial name="tidmaterial:TID_DOHM1"/> + </LogicalPart> + <LogicalPart name="TIDRing0Cool1" category="unspecified"> + <rSolid name="tidring0:TIDRing0Cool1"/> + <rMaterial name="tidmaterial:TID_CoolPipe"/> + </LogicalPart> + <LogicalPart name="TIDRing0Cool2" category="unspecified"> + <rSolid name="tidring0:TIDRing0Cool2"/> + <rMaterial name="tidmaterial:TID_CoolPipe"/> + </LogicalPart> + <LogicalPart name="TIDRing0FiberLayer" category="unspecified"> + <rSolid name="tidring0:TIDRing0FiberLayer"/> + <rMaterial name="tidmaterial:TID_FiberLayer"/> + </LogicalPart> + <LogicalPart name="TIDRing0CoolManifold" category="unspecified"> + <rSolid name="tidring0:TIDRing0CoolManifold"/> + <rMaterial name="tidmaterial:TID_CoolManifold"/> + </LogicalPart> + <LogicalPart name="TIDRing0FlatCable" category="unspecified"> + <rSolid name="tidring0:TIDRing0FlatCable"/> + <rMaterial name="tibtidcommonmaterial:TIBTID_AmphCable"/> + </LogicalPart> + </LogicalPartSection> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tidring0:TIDStructure0"/> + <String name="ChildName" value="tidring0:TIDRing0CoolManifold"/> + <Numeric name="N" value="2"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="113*deg"/> + <Numeric name="Radius" value="[tidringpar:CoolManifoldR]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, 0 </Vector> + </Algorithm> + <!-- Inserts for module fixation --> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tidring0:TIDStructure0"/> + <String name="ChildName" value="tidringpar:TIDModuleFix"/> + <Numeric name="N" value="24"/> + <Numeric name="StartCopyNo" value="3"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="-9.90 *deg"/> + <Numeric name="Radius" value="[ModuleFixationInsertsInR]"/> + <Vector name="Center" type="numeric" nEntries="3"> + [zero], [zero], [zero] + </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tidring0:TIDStructure0"/> + <String name="ChildName" value="tidringpar:TIDModuleFix"/> + <Numeric name="N" value="24"/> + <Numeric name="StartCopyNo" value="27"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="+9.90*deg"/> + <Numeric name="Radius" value="[ModuleFixationInsertsInR]"/> + <Vector name="Center" type="numeric" nEntries="3"> + [zero], [zero], [zero] + </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tidring0:TIDStructure0"/> + <String name="ChildName" value="tidringpar:TIDModuleFix"/> + <Numeric name="N" value="24"/> + <Numeric name="StartCopyNo" value="51"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="-5.04*deg"/> + <Numeric name="Radius" value="[ModuleFixationInsertsOutR]"/> + <Vector name="Center" type="numeric" nEntries="3"> + [zero], [zero], [zero] + </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tidring0:TIDStructure0"/> + <String name="ChildName" value="tidringpar:TIDModuleFix"/> + <Numeric name="N" value="24"/> + <Numeric name="StartCopyNo" value="75"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="+5.04*deg"/> + <Numeric name="Radius" value="[ModuleFixationInsertsOutR]"/> + <Vector name="Center" type="numeric" nEntries="3"> + [zero], [zero], [zero] + </Vector> + </Algorithm> +</DDDefinition> diff --git a/examples/DDCMS/data/tidring0b.xml b/examples/DDCMS/data/tidring0b.xml new file mode 100644 index 0000000000000000000000000000000000000000..6b119b56ff7e8315ee5057b579a96f4e43bccaa6 --- /dev/null +++ b/examples/DDCMS/data/tidring0b.xml @@ -0,0 +1,140 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tidring0b.xml" eval="true"> + <Constant name="zero" value="0.0*fm"/> + </ConstantsSection> + <LogicalPartSection label="tidring0b.xml"> + <LogicalPart name="TIDRing0B" category="unspecified"> + <rSolid name="tidringpar:TIDRing"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + </LogicalPartSection> + <PosPartSection label="tidring0b.xml"> + <PosPart copyNumber="1"> + <rParent name="tidring0b:TIDRing0B"/> + <rChild name="tidring0:TIDStructure0"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tidring0b:TIDRing0B"/> + <rChild name="tidring0:TIDRing0ICB"/> + <Translation x="[zero]" y="[zero]" z="-[tidringpar:ICBZ]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tidring0b:TIDRing0B"/> + <rChild name="tidring0:TIDRing0ICB"/> + <Translation x="[zero]" y="[zero]" z="[tidringpar:ICBZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tidring0b:TIDRing0B"/> + <rChild name="tidring0:TIDRing0Cool1"/> + <Translation x="[zero]" y="[zero]" z="-[tidringpar:CoolZ]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tidring0b:TIDRing0B"/> + <rChild name="tidring0:TIDRing0Cool1"/> + <Translation x="[zero]" y="[zero]" z="[tidringpar:CoolZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tidring0b:TIDRing0B"/> + <rChild name="tidring0:TIDRing0Cool2"/> + <Translation x="[zero]" y="[zero]" z="-[tidringpar:CoolZ]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tidring0b:TIDRing0B"/> + <rChild name="tidring0:TIDRing0Cool2"/> + <Translation x="[zero]" y="[zero]" z="[tidringpar:CoolZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tidring0b:TIDRing0B"/> + <rChild name="tidring0:TIDRing0FiberLayer"/> + <Translation x="[zero]" y="[zero]" z="-[tidringpar:FiberLayerZ]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tidring0b:TIDRing0B"/> + <rChild name="tidring0:TIDRing0FiberLayer"/> + <Translation x="[zero]" y="[zero]" z="[tidringpar:FiberLayerZ]"/> + </PosPart> + </PosPartSection> + <Algorithm name="track:DDTrackerPhiAlgo"> + <rParent name="tidring0b:TIDRing0B"/> + <String name="ChildName" value="tidring0:TIDRing0ICBTail"/> + <Numeric name="Radius" value="[tidring0:ICBTailRPos]"/> + <Numeric name="Tilt" value="-90*deg"/> + <Vector name="Phi" type="numeric" nEntries="8"> + 165.0*deg, 60.0*deg, 24.0*deg, 21.0*deg, + 345.0*deg, 240.0*deg, 204.0*deg, 201.0*deg + </Vector> + <Vector name="ZPos" type="numeric" nEntries="8"> + -[tidringpar:ICBZ], [tidringpar:ICBZ], [tidringpar:ICBZ], -[tidringpar:ICBZ], + -[tidringpar:ICBZ], [tidringpar:ICBZ], -[tidringpar:ICBZ], [tidringpar:ICBZ] + </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerPhiAlgo"> + <rParent name="tidring0b:TIDRing0B"/> + <String name="ChildName" value="tidringpar:TIDCCUMBox"/> + <Numeric name="Radius" value="[tidring0:CCUMrPos]"/> + <Numeric name="Tilt" value="0*deg"/> + <Vector name="Phi" type="numeric" nEntries="8"> + 165.0*deg, 60.0*deg, 24.0*deg, 21.0*deg, + 345.0*deg, 240.0*deg, 204.0*deg, 201.0*deg + </Vector> + <Vector name="ZPos" type="numeric" nEntries="8"> + -[tidringpar:CCUMZ], [tidringpar:CCUMZ], [tidringpar:CCUMZ], -[tidringpar:CCUMZ], + -[tidringpar:CCUMZ], [tidringpar:CCUMZ],-[tidringpar:CCUMZ], [tidringpar:CCUMZ] + </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerPhiAlgo"> + <rParent name="tidring0b:TIDRing0B"/> + <String name="ChildName" value="tidring0:TIDRing0DOHM"/> + <Numeric name="Radius" value="[tidring0:DOHMrOff]"/> + <Numeric name="Tilt" value="0*deg"/> + <Vector name="Phi" type="numeric" nEntries="2"> + 180.0*deg, 45.0*deg + </Vector> + <Vector name="ZPos" type="numeric" nEntries="2"> + -[tidringpar:DOHMZ], [tidringpar:DOHMZ] + </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerPhiAlgo"> + <rParent name="tidring0b:TIDRing0B"/> + <String name="ChildName" value="tidring0:TIDRing0FlatCable"/> + <Numeric name="Radius" value="[zero]"/> + <Numeric name="Tilt" value="0*deg"/> + <Vector name="Phi" type="numeric" nEntries="4"> + [tidring0:FlatCablephiPosL], [tidring0:FlatCablephiPosR], + [tidring0:FlatCablephiPosL]+180*deg, [tidring0:FlatCablephiPosR]+180*deg + </Vector> + <Vector name="ZPos" type="numeric" nEntries="4"> + -[tidringpar:FlatCableZ], -[tidringpar:FlatCableZ], + [tidringpar:FlatCableZ], [tidringpar:FlatCableZ] + </Vector> + </Algorithm> + <Algorithm name="track:DDTIDRingAlgo"> + <rParent name="tidring0b:TIDRing0B"/> + <Vector name="ModuleName" type="string" nEntries="2"> + tidmodule0l:TIDModule0L, tidmodule0r:TIDModule0R</Vector> + <String name="ICCName" value="tidring0:TIDICC0"/> + <Numeric name="Number" value="[tidring0:NPhi]"/> + <Numeric name="StartAngle" value="[tidring0:PhiOff]"/> + <Numeric name="ModuleR" value="[tidring0:RPos]"/> + <Vector name="ModuleZ" type="numeric" nEntries="2"> + -[tidringpar:ModuleZDS], [tidringpar:ModuleZDS] </Vector> + <Numeric name="ICCR" value="[tidring0:ICCRPos]"/> + <Numeric name="ICCShift" value="[zero]"/> + <Vector name="ICCZ" type="numeric" nEntries="2"> + -[tidringpar:ICCZ], [tidringpar:ICCZ] </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerPhiAlgo"> + <rParent name="tidring0b:TIDRing0B"/> + <String name="ChildName" value="tidringpar:TIDManifoldFix"/> + <Numeric name="Radius" value="[tidringpar:CoolManifoldR]"/> + <Numeric name="Tilt" value="-90*deg"/> + <Vector name="Phi" type="numeric" nEntries="4"> + 113.0*deg, 113.0*deg, 293.0*deg, 293.0*deg + </Vector> + <Vector name="ZPos" type="numeric" nEntries="4"> + [tidringpar:ManifoldFixZ], -[tidringpar:ManifoldFixZ], + [tidringpar:ManifoldFixZ], -[tidringpar:ManifoldFixZ] + </Vector> + </Algorithm> +</DDDefinition> diff --git a/examples/DDCMS/data/tidring0f.xml b/examples/DDCMS/data/tidring0f.xml new file mode 100644 index 0000000000000000000000000000000000000000..72798fd8e1c5d1dc365ad2ba5a0983c59b6d0d14 --- /dev/null +++ b/examples/DDCMS/data/tidring0f.xml @@ -0,0 +1,140 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tidring0f.xml" eval="true"> + <Constant name="zero" value="0.0*fm"/> + </ConstantsSection> + <LogicalPartSection label="tidring0f.xml"> + <LogicalPart name="TIDRing0F" category="unspecified"> + <rSolid name="tidringpar:TIDRing"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + </LogicalPartSection> + <PosPartSection label="tidring0f.xml"> + <PosPart copyNumber="1"> + <rParent name="tidring0f:TIDRing0F"/> + <rChild name="tidring0:TIDStructure0"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tidring0f:TIDRing0F"/> + <rChild name="tidring0:TIDRing0ICB"/> + <Translation x="[zero]" y="[zero]" z="-[tidringpar:ICBZ]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tidring0f:TIDRing0F"/> + <rChild name="tidring0:TIDRing0ICB"/> + <Translation x="[zero]" y="[zero]" z="[tidringpar:ICBZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tidring0f:TIDRing0F"/> + <rChild name="tidring0:TIDRing0Cool1"/> + <Translation x="[zero]" y="[zero]" z="-[tidringpar:CoolZ]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tidring0f:TIDRing0F"/> + <rChild name="tidring0:TIDRing0Cool1"/> + <Translation x="[zero]" y="[zero]" z="[tidringpar:CoolZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tidring0f:TIDRing0F"/> + <rChild name="tidring0:TIDRing0Cool2"/> + <Translation x="[zero]" y="[zero]" z="-[tidringpar:CoolZ]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tidring0f:TIDRing0F"/> + <rChild name="tidring0:TIDRing0Cool2"/> + <Translation x="[zero]" y="[zero]" z="[tidringpar:CoolZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tidring0f:TIDRing0F"/> + <rChild name="tidring0:TIDRing0FiberLayer"/> + <Translation x="[zero]" y="[zero]" z="-[tidringpar:FiberLayerZ]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tidring0f:TIDRing0F"/> + <rChild name="tidring0:TIDRing0FiberLayer"/> + <Translation x="[zero]" y="[zero]" z="[tidringpar:FiberLayerZ]"/> + </PosPart> + </PosPartSection> + <Algorithm name="track:DDTrackerPhiAlgo"> + <rParent name="tidring0f:TIDRing0F"/> + <String name="ChildName" value="tidring0:TIDRing0ICBTail"/> + <Numeric name="Radius" value="[tidring0:ICBTailRPos]"/> + <Numeric name="Tilt" value="-90*deg"/> + <Vector name="Phi" type="numeric" nEntries="8"> + 165.0*deg, 60.0*deg, 24.0*deg, 21.0*deg, + 345.0*deg, 240.0*deg, 204.0*deg, 201.0*deg + </Vector> + <Vector name="ZPos" type="numeric" nEntries="8"> + -[tidringpar:ICBZ], [tidringpar:ICBZ], [tidringpar:ICBZ], -[tidringpar:ICBZ], + -[tidringpar:ICBZ], [tidringpar:ICBZ], -[tidringpar:ICBZ], [tidringpar:ICBZ] + </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerPhiAlgo"> + <rParent name="tidring0f:TIDRing0F"/> + <String name="ChildName" value="tidringpar:TIDCCUMBox"/> + <Numeric name="Radius" value="[tidring0:CCUMrPos]"/> + <Numeric name="Tilt" value="0*deg"/> + <Vector name="Phi" type="numeric" nEntries="8"> + 165.0*deg, 60.0*deg, 24.0*deg, 21.0*deg, + 345.0*deg, 240.0*deg, 204.0*deg, 201.0*deg + </Vector> + <Vector name="ZPos" type="numeric" nEntries="8"> + -[tidringpar:CCUMZ], [tidringpar:CCUMZ], [tidringpar:CCUMZ], -[tidringpar:CCUMZ], + -[tidringpar:CCUMZ], [tidringpar:CCUMZ],-[tidringpar:CCUMZ], [tidringpar:CCUMZ] + </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerPhiAlgo"> + <rParent name="tidring0f:TIDRing0F"/> + <String name="ChildName" value="tidring0:TIDRing0DOHM"/> + <Numeric name="Radius" value="[tidring0:DOHMrOff]"/> + <Numeric name="Tilt" value="0*deg"/> + <Vector name="Phi" type="numeric" nEntries="2"> + 180.0*deg, 45.0*deg + </Vector> + <Vector name="ZPos" type="numeric" nEntries="2"> + -[tidringpar:DOHMZ], [tidringpar:DOHMZ] + </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerPhiAlgo"> + <rParent name="tidring0f:TIDRing0F"/> + <String name="ChildName" value="tidring0:TIDRing0FlatCable"/> + <Numeric name="Radius" value="[zero]"/> + <Numeric name="Tilt" value="0*deg"/> + <Vector name="Phi" type="numeric" nEntries="4"> + [tidring0:FlatCablephiPosL], [tidring0:FlatCablephiPosR], + [tidring0:FlatCablephiPosL]+180*deg, [tidring0:FlatCablephiPosR]+180*deg + </Vector> + <Vector name="ZPos" type="numeric" nEntries="4"> + -[tidringpar:FlatCableZ], -[tidringpar:FlatCableZ], + [tidringpar:FlatCableZ], [tidringpar:FlatCableZ] + </Vector> + </Algorithm> + <Algorithm name="track:DDTIDRingAlgo"> + <rParent name="tidring0f:TIDRing0F"/> + <Vector name="ModuleName" type="string" nEntries="2"> + tidmodule0l:TIDModule0L, tidmodule0r:TIDModule0R</Vector> + <String name="ICCName" value="tidring0:TIDICC0"/> + <Numeric name="Number" value="[tidring0:NPhi]"/> + <Numeric name="StartAngle" value="[tidring0:PhiOff]"/> + <Numeric name="ModuleR" value="[tidring0:RPos]"/> + <Vector name="ModuleZ" type="numeric" nEntries="2"> + -[tidringpar:ModuleZDS], [tidringpar:ModuleZDS] </Vector> + <Numeric name="ICCR" value="[tidring0:ICCRPos]"/> + <Numeric name="ICCShift" value="[zero]"/> + <Vector name="ICCZ" type="numeric" nEntries="2"> + -[tidringpar:ICCZ], [tidringpar:ICCZ] </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerPhiAlgo"> + <rParent name="tidring0f:TIDRing0F"/> + <String name="ChildName" value="tidringpar:TIDManifoldFix"/> + <Numeric name="Radius" value="[tidringpar:CoolManifoldR]"/> + <Numeric name="Tilt" value="-90*deg"/> + <Vector name="Phi" type="numeric" nEntries="4"> + 113.0*deg, 113.0*deg, 293.0*deg, 293.0*deg + </Vector> + <Vector name="ZPos" type="numeric" nEntries="4"> + [tidringpar:ManifoldFixZ], -[tidringpar:ManifoldFixZ], + [tidringpar:ManifoldFixZ], -[tidringpar:ManifoldFixZ] + </Vector> + </Algorithm> +</DDDefinition> diff --git a/examples/DDCMS/data/tidring1.xml b/examples/DDCMS/data/tidring1.xml new file mode 100644 index 0000000000000000000000000000000000000000..beaa0f5f538602860799e1e164bf15aafe3b131f --- /dev/null +++ b/examples/DDCMS/data/tidring1.xml @@ -0,0 +1,158 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tidring1.xml" eval="true"> + <Constant name="zero" value="0.0*fm"/> + <Constant name="Rmin" value="31.5462*cm"/> + <Constant name="NPhi" value="24"/> + <Constant name="PhiOff" value="0*deg"/> + <Constant name="ICBR" value="47.250*cm"/> + <Constant name="ICBTailR" value="[ICBR]+[tidringpar:ICBW]/2"/> + <Constant name="ICBTailH" value="8.6*cm"/> + <Constant name="RPos" value="[Rmin]+[tidmodule1:ModuleHeight]/2"/> + <Constant name="ICCRPos" value="[Rmin]+[tidmodule1:ModuleHeight]+[tidringpar:ICCROffset]+[tidringpar:ICCH]/2"/> + <Constant name="ICBTailW" value="([tidringpar:Rout]-[ICBTailR]- 4*[tidringpar:ICBTailTol])"/> + <Constant name="ICBTailRPos" value="([tidringpar:Rout]+[ICBTailR]- 4*[tidringpar:ICBTailTol])/2"/> + <Constant name="CCUMrPos" value="[tidringpar:Rout]-[tidringpar:CCUMH]/2-2*[tidringpar:ICBTailTol]"/> + <Constant name="CoolR1" value="[Rmin]+[tidmodule1:ModuleHeight]-[tidmodule1:CoolInsertShift]"/> + <Constant name="CoolR2" value="[Rmin]+[tidmodule1:ModuleHeight]-[tidmodpar:CoolInsertHeightDS]+[tidringpar:CoolD]/2"/> + <Constant name="DOHMrIn" value="44.5*cm"/> + <Constant name="DOHMrOut" value="50.5*cm"/> + <Constant name="DOHMrOff" value="-20.5*cm"/> + <Constant name="DOHMdPhi" value="18*deg"/> + <Constant name="DOHMphiPos" value="52.5*deg"/> + <Constant name="CoolManifoldL" value="14*cm"/> + <Constant name="FlatCablerIn" value="[tidringpar:Rin]"/> + <Constant name="FlatCablerOut" value="[FlatCablerIn]+22.5*cm"/> + <Constant name="FlatCabledPhi" value="90*deg"/> + <Constant name="FlatCableHolerIn" value="[tidringpar:Rin]+2.4*cm"/> + <Constant name="FlatCableHolerOut" value="[FlatCablerOut]"/> + <Constant name="FlatCableHoledPhi" value="84*deg"/> + <Constant name="FlatCablephiPosF" value="[DOHMphiPos]+[DOHMdPhi]+[FlatCabledPhi]/2"/> + <!-- tuned by eye --> + <Constant name="FlatCablephiPosB" value="[DOHMphiPos]-[DOHMdPhi]-[FlatCabledPhi]/2"/> + <!-- tuned by eye --> + <Constant name="ModuleFixationInsertsInR" value="36.4*cm"/> + <Constant name="ModuleFixationInsertsOutR" value="44.7*cm"/> + </ConstantsSection> + <SolidSection label="tidring1.xml"> + <Tubs name="TIDRing1ICB" rMin="([ICBR]-[tidringpar:ICBW]/2)" rMax="([ICBR]+[tidringpar:ICBW]/2)" dz="[tidringpar:ICBT]/2" startPhi="0*deg" deltaPhi="360.*deg"/> + <Box name="TIDRing1ICBTail" dx="[ICBTailH]/2" dy="[ICBTailW]/2" dz="[tidringpar:ICBTailT]/2"/> + <Torus name="TIDRing1Cool1" innerRadius="[zero]" outerRadius="[tidringpar:CoolD]/2" torusRadius="[CoolR1]" startPhi="0*deg" deltaPhi="360.*deg"/> + <Torus name="TIDRing1Cool2" innerRadius="[zero]" outerRadius="[tidringpar:CoolD]/2" torusRadius="[CoolR2]" startPhi="0*deg" deltaPhi="360.*deg"/> + <Tubs name="TIDRing1DOHM" rMin="([DOHMrIn])" rMax="([DOHMrOut])" dz="[tidringpar:DOHMT]/2" startPhi="-[DOHMdPhi]/2" deltaPhi="[DOHMdPhi]"/> + <Tubs name="TIDRing1FiberLayer" rMin="([ICBR]-[tidringpar:ICBW]/2)" rMax="([ICBR]+[tidringpar:ICBW]/2)" dz="[tidringpar:FiberLayerT]/2" startPhi="0*deg" deltaPhi="360.*deg"/> + <Box name="TIDRing1CoolManifold" dx="[tidringpar:CoolManifoldW]/2" dy="[CoolManifoldL]/2" dz="[tidringpar:CoolManifoldT]/2"/> + <Tubs name="TIDRing1FlatCable" rMin="[FlatCablerIn]" rMax="[FlatCablerOut]" dz="[tidringpar:FlatCableT]/2" startPhi="-[FlatCabledPhi]/2" deltaPhi="[FlatCabledPhi]"/> + <Tubs name="TIDRing1FlatCableHole" rMin="[FlatCableHolerIn]" rMax="[FlatCableHolerOut]" dz="[tidringpar:FlatCableT]/2" startPhi="-[FlatCableHoledPhi]/2" deltaPhi="[FlatCableHoledPhi]"/> + <SubtractionSolid name="TIDRing1FlatCableCutted"> + <rSolid name="TIDRing1FlatCable"/> + <rSolid name="TIDRing1FlatCableHole"/> + </SubtractionSolid> + </SolidSection> + <LogicalPartSection label="tidring1.xml"> + <LogicalPart name="TIDStructure1" category="unspecified"> + <rSolid name="tidringpar:TIDStructure"/> + <rMaterial name="tidmaterial:TID_Mech"/> + </LogicalPart> + <LogicalPart name="TIDICC1" category="unspecified"> + <rSolid name="tidringpar:TIDICCDS"/> + <rMaterial name="tidmaterial:TID_DSAOHBox"/> + </LogicalPart> + <LogicalPart name="TIDRing1ICBTail" category="unspecified"> + <rSolid name="tidring1:TIDRing1ICBTail"/> + <rMaterial name="tidmaterial:TID_ICB2"/> + </LogicalPart> + <LogicalPart name="TIDRing1ICB" category="unspecified"> + <rSolid name="tidring1:TIDRing1ICB"/> + <rMaterial name="tidmaterial:TID_ICB2"/> + </LogicalPart> + <LogicalPart name="TIDRing1DOHM" category="unspecified"> + <rSolid name="tidring1:TIDRing1DOHM"/> + <rMaterial name="tidmaterial:TID_DOHM1"/> + </LogicalPart> + <LogicalPart name="TIDRing1Cool1" category="unspecified"> + <rSolid name="tidring1:TIDRing1Cool1"/> + <rMaterial name="tidmaterial:TID_CoolPipe"/> + </LogicalPart> + <LogicalPart name="TIDRing1Cool2" category="unspecified"> + <rSolid name="tidring1:TIDRing1Cool2"/> + <rMaterial name="tidmaterial:TID_CoolPipe"/> + </LogicalPart> + <LogicalPart name="TIDRing1FiberLayer" category="unspecified"> + <rSolid name="tidring1:TIDRing1FiberLayer"/> + <rMaterial name="tidmaterial:TID_FiberLayer"/> + </LogicalPart> + <LogicalPart name="TIDRing1CoolManifold" category="unspecified"> + <rSolid name="tidring1:TIDRing1CoolManifold"/> + <rMaterial name="tidmaterial:TID_CoolManifold"/> + </LogicalPart> + <LogicalPart name="TIDRing1FlatCable" category="unspecified"> + <rSolid name="tidring1:TIDRing1FlatCableCutted"/> + <rMaterial name="tibtidcommonmaterial:TIBTID_AmphCable"/> + </LogicalPart> + </LogicalPartSection> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tidring1:TIDStructure1"/> + <String name="ChildName" value="tidring1:TIDRing1CoolManifold"/> + <Numeric name="N" value="2"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="52.5*deg"/> + <Numeric name="Radius" value="[tidringpar:CoolManifoldR]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, 0 </Vector> + </Algorithm> + <!-- Inserts for module fixation --> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tidring1:TIDStructure1"/> + <String name="ChildName" value="tidringpar:TIDModuleFix"/> + <Numeric name="N" value="24"/> + <Numeric name="StartCopyNo" value="3"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="-9.42*deg"/> + <Numeric name="Radius" value="[ModuleFixationInsertsInR]"/> + <Vector name="Center" type="numeric" nEntries="3"> + [zero], [zero], [zero] + </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tidring1:TIDStructure1"/> + <String name="ChildName" value="tidringpar:TIDModuleFix"/> + <Numeric name="N" value="24"/> + <Numeric name="StartCopyNo" value="27"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="+9.42*deg"/> + <Numeric name="Radius" value="[ModuleFixationInsertsInR]"/> + <Vector name="Center" type="numeric" nEntries="3"> + [zero], [zero], [zero] + </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tidring1:TIDStructure1"/> + <String name="ChildName" value="tidringpar:TIDModuleFix"/> + <Numeric name="N" value="24"/> + <Numeric name="StartCopyNo" value="51"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="-4.21*deg"/> + <Numeric name="Radius" value="[ModuleFixationInsertsOutR]"/> + <Vector name="Center" type="numeric" nEntries="3"> + [zero], [zero], [zero] + </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tidring1:TIDStructure1"/> + <String name="ChildName" value="tidringpar:TIDModuleFix"/> + <Numeric name="N" value="24"/> + <Numeric name="StartCopyNo" value="75"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="+4.21*deg"/> + <Numeric name="Radius" value="[ModuleFixationInsertsOutR]"/> + <Vector name="Center" type="numeric" nEntries="3"> + [zero], [zero], [zero] + </Vector> + </Algorithm> +</DDDefinition> diff --git a/examples/DDCMS/data/tidring1b.xml b/examples/DDCMS/data/tidring1b.xml new file mode 100644 index 0000000000000000000000000000000000000000..cdad898309da25b7219e4fe1c27b01155569241e --- /dev/null +++ b/examples/DDCMS/data/tidring1b.xml @@ -0,0 +1,142 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tidring1b.xml" eval="true"> + <Constant name="zero" value="0.0*fm"/> + </ConstantsSection> + <LogicalPartSection label="tidring1b.xml"> + <LogicalPart name="TIDRing1B" category="unspecified"> + <rSolid name="tidringpar:TIDRing"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + </LogicalPartSection> + <PosPartSection label="tidring1b.xml"> + <PosPart copyNumber="1"> + <rParent name="tidring1b:TIDRing1B"/> + <rChild name="tidring1:TIDStructure1"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tidring1b:TIDRing1B"/> + <rChild name="tidring1:TIDRing1ICB"/> + <Translation x="[zero]" y="[zero]" z="-[tidringpar:ICBZ]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tidring1b:TIDRing1B"/> + <rChild name="tidring1:TIDRing1ICB"/> + <Translation x="[zero]" y="[zero]" z="[tidringpar:ICBZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tidring1b:TIDRing1B"/> + <rChild name="tidring1:TIDRing1Cool1"/> + <Translation x="[zero]" y="[zero]" z="-[tidringpar:CoolZ]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tidring1b:TIDRing1B"/> + <rChild name="tidring1:TIDRing1Cool1"/> + <Translation x="[zero]" y="[zero]" z="[tidringpar:CoolZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tidring1b:TIDRing1B"/> + <rChild name="tidring1:TIDRing1Cool2"/> + <Translation x="[zero]" y="[zero]" z="-[tidringpar:CoolZ]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tidring1b:TIDRing1B"/> + <rChild name="tidring1:TIDRing1Cool2"/> + <Translation x="[zero]" y="[zero]" z="[tidringpar:CoolZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tidring1b:TIDRing1B"/> + <rChild name="tidring1:TIDRing1FiberLayer"/> + <Translation x="[zero]" y="[zero]" z="-[tidringpar:FiberLayerZ]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tidring1b:TIDRing1B"/> + <rChild name="tidring1:TIDRing1FiberLayer"/> + <Translation x="[zero]" y="[zero]" z="[tidringpar:FiberLayerZ]"/> + </PosPart> + </PosPartSection> + <Algorithm name="track:DDTrackerPhiAlgo"> + <rParent name="tidring1b:TIDRing1B"/> + <String name="ChildName" value="tidring1:TIDRing1ICBTail"/> + <Numeric name="Radius" value="[tidring1:ICBTailRPos]"/> + <Numeric name="Tilt" value="-90*deg"/> + <Vector name="Phi" type="numeric" nEntries="8"> + 167.5*deg, 117.5*deg, 77.5*deg, 27.5*deg, + 347.5*deg, 297.5*deg, 257.5*deg, 207.5*deg + </Vector> + <Vector name="ZPos" type="numeric" nEntries="8"> + -[tidringpar:ICBZ], [tidringpar:ICBZ], -[tidringpar:ICBZ], [tidringpar:ICBZ], + -[tidringpar:ICBZ], [tidringpar:ICBZ], -[tidringpar:ICBZ], [tidringpar:ICBZ] + </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerPhiAlgo"> + <rParent name="tidring1b:TIDRing1B"/> + <String name="ChildName" value="tidringpar:TIDCCUMBox"/> + <Numeric name="Radius" value="[tidring1:CCUMrPos]"/> + <Numeric name="Tilt" value="-90*deg"/> + <Vector name="Phi" type="numeric" nEntries="8"> + 167.5*deg, 117.5*deg, 77.5*deg, 27.5*deg, + 347.5*deg, 297.5*deg, 257.5*deg, 207.5*deg + </Vector> + <Vector name="ZPos" type="numeric" nEntries="8"> + -[tidringpar:CCUMZ], [tidringpar:CCUMZ],-[tidringpar:CCUMZ], [tidringpar:CCUMZ], + -[tidringpar:CCUMZ], [tidringpar:CCUMZ],-[tidringpar:CCUMZ], [tidringpar:CCUMZ] + </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerPhiAlgo"> + <rParent name="tidring1b:TIDRing1B"/> + <String name="ChildName" value="tidring1:TIDRing1DOHM"/> + <Numeric name="Radius" value="[tidring1:DOHMrOff]"/> + <Numeric name="Tilt" value="0*deg"/> + <Vector name="Phi" type="numeric" nEntries="2"> + [tidring1:DOHMphiPos], [tidring1:DOHMphiPos]+180*deg + </Vector> + <Vector name="ZPos" type="numeric" nEntries="2"> + -[tidringpar:DOHMZ], [tidringpar:DOHMZ] + </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerPhiAlgo"> + <rParent name="tidring1b:TIDRing1B"/> + <String name="ChildName" value="tidring1:TIDRing1FlatCable"/> + <Numeric name="Radius" value="[zero]"/> + <Numeric name="Tilt" value="0*deg"/> + <Vector name="Phi" type="numeric" nEntries="4"> + [tidring1:FlatCablephiPosF], [tidring1:FlatCablephiPosF]+180*deg, + [tidring1:FlatCablephiPosB], [tidring1:FlatCablephiPosB]+180*deg + </Vector> + <Vector name="ZPos" type="numeric" nEntries="4"> + -[tidringpar:FlatCableZ], -[tidringpar:FlatCableZ], + [tidringpar:FlatCableZ], [tidringpar:FlatCableZ] + </Vector> + </Algorithm> + <Algorithm name="track:DDTIDRingAlgo"> + <rParent name="tidring1b:TIDRing1B"/> + <Vector name="ModuleName" type="string" nEntries="2"> + tidmodule1l:TIDModule1L, tidmodule1r:TIDModule1R</Vector> + <String name="ICCName" value="tidring1:TIDICC1"/> + <Numeric name="Number" value="[tidring1:NPhi]"/> + <Numeric name="StartAngle" value="[tidring1:PhiOff]"/> + <Numeric name="ModuleR" value="[tidring1:RPos]"/> + <Vector name="ModuleZ" type="numeric" nEntries="2"> + -[tidringpar:ModuleZDS], [tidringpar:ModuleZDS] </Vector> + <Numeric name="ICCR" value="[tidring1:ICCRPos]"/> + <Numeric name="ICCShift" value="[zero]"/> + <Vector name="ICCZ" type="numeric" nEntries="2"> + -[tidringpar:ICCZ], [tidringpar:ICCZ] </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerPhiAlgo"> + <rParent name="tidring1b:TIDRing1B"/> + <String name="ChildName" value="tidringpar:TIDManifoldFix"/> + <Numeric name="Radius" value="[tidringpar:CoolManifoldR]"/> + <Numeric name="Tilt" value="-90*deg"/> + <Vector name="Phi" type="numeric" nEntries="4"> + 52.5*deg, 52.5*deg, 232.5*deg, 232.5*deg + </Vector> + <Vector name="ZPos" type="numeric" nEntries="4"> + [tidringpar:ManifoldFixZ]+[tidringpar:FiberLayerT]+[tidringpar:ICBT] , + -([tidringpar:ManifoldFixZ]+[tidringpar:FiberLayerT]+[tidringpar:ICBT]), + [tidringpar:ManifoldFixZ]+[tidringpar:FiberLayerT]+[tidringpar:ICBT] , + -([tidringpar:ManifoldFixZ]+[tidringpar:FiberLayerT]+[tidringpar:ICBT]) + </Vector> + </Algorithm> +</DDDefinition> diff --git a/examples/DDCMS/data/tidring1f.xml b/examples/DDCMS/data/tidring1f.xml new file mode 100644 index 0000000000000000000000000000000000000000..b23305ca1b894939495f982498bcaf4018d1bfc5 --- /dev/null +++ b/examples/DDCMS/data/tidring1f.xml @@ -0,0 +1,142 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tidring1f.xml" eval="true"> + <Constant name="zero" value="0.0*fm"/> + </ConstantsSection> + <LogicalPartSection label="tidring1f.xml"> + <LogicalPart name="TIDRing1F" category="unspecified"> + <rSolid name="tidringpar:TIDRing"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + </LogicalPartSection> + <PosPartSection label="tidring1f.xml"> + <PosPart copyNumber="1"> + <rParent name="tidring1f:TIDRing1F"/> + <rChild name="tidring1:TIDStructure1"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tidring1f:TIDRing1F"/> + <rChild name="tidring1:TIDRing1ICB"/> + <Translation x="[zero]" y="[zero]" z="-[tidringpar:ICBZ]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tidring1f:TIDRing1F"/> + <rChild name="tidring1:TIDRing1ICB"/> + <Translation x="[zero]" y="[zero]" z="[tidringpar:ICBZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tidring1f:TIDRing1F"/> + <rChild name="tidring1:TIDRing1Cool1"/> + <Translation x="[zero]" y="[zero]" z="-[tidringpar:CoolZ]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tidring1f:TIDRing1F"/> + <rChild name="tidring1:TIDRing1Cool1"/> + <Translation x="[zero]" y="[zero]" z="[tidringpar:CoolZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tidring1f:TIDRing1F"/> + <rChild name="tidring1:TIDRing1Cool2"/> + <Translation x="[zero]" y="[zero]" z="-[tidringpar:CoolZ]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tidring1f:TIDRing1F"/> + <rChild name="tidring1:TIDRing1Cool2"/> + <Translation x="[zero]" y="[zero]" z="[tidringpar:CoolZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tidring1f:TIDRing1F"/> + <rChild name="tidring1:TIDRing1FiberLayer"/> + <Translation x="[zero]" y="[zero]" z="-[tidringpar:FiberLayerZ]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tidring1f:TIDRing1F"/> + <rChild name="tidring1:TIDRing1FiberLayer"/> + <Translation x="[zero]" y="[zero]" z="[tidringpar:FiberLayerZ]"/> + </PosPart> + </PosPartSection> + <Algorithm name="track:DDTrackerPhiAlgo"> + <rParent name="tidring1f:TIDRing1F"/> + <String name="ChildName" value="tidring1:TIDRing1ICBTail"/> + <Numeric name="Radius" value="[tidring1:ICBTailRPos]"/> + <Numeric name="Tilt" value="-90*deg"/> + <Vector name="Phi" type="numeric" nEntries="8"> + 167.5*deg, 117.5*deg, 77.5*deg, 27.5*deg, + 347.5*deg, 297.5*deg, 257.5*deg, 207.5*deg + </Vector> + <Vector name="ZPos" type="numeric" nEntries="8"> + -[tidringpar:ICBZ], [tidringpar:ICBZ], -[tidringpar:ICBZ], [tidringpar:ICBZ], + -[tidringpar:ICBZ], [tidringpar:ICBZ], -[tidringpar:ICBZ], [tidringpar:ICBZ] + </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerPhiAlgo"> + <rParent name="tidring1f:TIDRing1F"/> + <String name="ChildName" value="tidringpar:TIDCCUMBox"/> + <Numeric name="Radius" value="[tidring1:CCUMrPos]"/> + <Numeric name="Tilt" value="-90*deg"/> + <Vector name="Phi" type="numeric" nEntries="8"> + 167.5*deg, 117.5*deg, 77.5*deg, 27.5*deg, + 347.5*deg, 297.5*deg, 257.5*deg, 207.5*deg + </Vector> + <Vector name="ZPos" type="numeric" nEntries="8"> + -[tidringpar:CCUMZ], [tidringpar:CCUMZ],-[tidringpar:CCUMZ], [tidringpar:CCUMZ], + -[tidringpar:CCUMZ], [tidringpar:CCUMZ],-[tidringpar:CCUMZ], [tidringpar:CCUMZ] + </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerPhiAlgo"> + <rParent name="tidring1f:TIDRing1F"/> + <String name="ChildName" value="tidring1:TIDRing1DOHM"/> + <Numeric name="Radius" value="[tidring1:DOHMrOff]"/> + <Numeric name="Tilt" value="0*deg"/> + <Vector name="Phi" type="numeric" nEntries="2"> + [tidring1:DOHMphiPos], [tidring1:DOHMphiPos]+180*deg + </Vector> + <Vector name="ZPos" type="numeric" nEntries="2"> + -[tidringpar:DOHMZ], [tidringpar:DOHMZ] + </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerPhiAlgo"> + <rParent name="tidring1f:TIDRing1F"/> + <String name="ChildName" value="tidring1:TIDRing1FlatCable"/> + <Numeric name="Radius" value="[zero]"/> + <Numeric name="Tilt" value="0*deg"/> + <Vector name="Phi" type="numeric" nEntries="4"> + [tidring1:FlatCablephiPosF], [tidring1:FlatCablephiPosF]+180*deg, + [tidring1:FlatCablephiPosB], [tidring1:FlatCablephiPosB]+180*deg + </Vector> + <Vector name="ZPos" type="numeric" nEntries="4"> + -[tidringpar:FlatCableZ], -[tidringpar:FlatCableZ], + [tidringpar:FlatCableZ], [tidringpar:FlatCableZ] + </Vector> + </Algorithm> + <Algorithm name="track:DDTIDRingAlgo"> + <rParent name="tidring1f:TIDRing1F"/> + <Vector name="ModuleName" type="string" nEntries="2"> + tidmodule1l:TIDModule1L, tidmodule1r:TIDModule1R</Vector> + <String name="ICCName" value="tidring1:TIDICC1"/> + <Numeric name="Number" value="[tidring1:NPhi]"/> + <Numeric name="StartAngle" value="[tidring1:PhiOff]"/> + <Numeric name="ModuleR" value="[tidring1:RPos]"/> + <Vector name="ModuleZ" type="numeric" nEntries="2"> + -[tidringpar:ModuleZDS], [tidringpar:ModuleZDS] </Vector> + <Numeric name="ICCR" value="[tidring1:ICCRPos]"/> + <Numeric name="ICCShift" value="[zero]"/> + <Vector name="ICCZ" type="numeric" nEntries="2"> + -[tidringpar:ICCZ], [tidringpar:ICCZ] </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerPhiAlgo"> + <rParent name="tidring1f:TIDRing1F"/> + <String name="ChildName" value="tidringpar:TIDManifoldFix"/> + <Numeric name="Radius" value="[tidringpar:CoolManifoldR]"/> + <Numeric name="Tilt" value="-90*deg"/> + <Vector name="Phi" type="numeric" nEntries="4"> + 52.5*deg, 52.5*deg, 232.5*deg, 232.5*deg + </Vector> + <Vector name="ZPos" type="numeric" nEntries="4"> + [tidringpar:ManifoldFixZ]+[tidringpar:FiberLayerT]+[tidringpar:ICBT] , + -([tidringpar:ManifoldFixZ]+[tidringpar:FiberLayerT]+[tidringpar:ICBT]), + [tidringpar:ManifoldFixZ]+[tidringpar:FiberLayerT]+[tidringpar:ICBT] , + -([tidringpar:ManifoldFixZ]+[tidringpar:FiberLayerT]+[tidringpar:ICBT]) + </Vector> + </Algorithm> +</DDDefinition> diff --git a/examples/DDCMS/data/tidring2.xml b/examples/DDCMS/data/tidring2.xml new file mode 100644 index 0000000000000000000000000000000000000000..e147d6fad52e3250bc017a160349085d2a338bb4 --- /dev/null +++ b/examples/DDCMS/data/tidring2.xml @@ -0,0 +1,287 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tidring2.xml" eval="true"> + <Constant name="zero" value="0.0*fm"/> + <Constant name="Rmin" value="35.6762*cm"/> + <Constant name="NPhi" value="40"/> + <Constant name="PhiOff" value="0*deg"/> + <Constant name="ICBR" value="33.350*cm"/> + <Constant name="ICBTailR" value="[ICBR]+[tidringpar:ICBW]/2"/> + <Constant name="RPos" value="[Rmin]+[tidmodule2:ModuleHeight]/2"/> + <Constant name="ICCRPos" value="[Rmin]-[tidringpar:ICCROffset]-[tidringpar:ICCH]/2"/> + <Constant name="ICBTailW" value="([tidringpar:Rout]-[ICBTailR]- [tidringpar:ICBTailTol])"/> + <Constant name="ICBTailRPos" value="([tidringpar:Rout]+[ICBTailR]- [tidringpar:ICBTailTol])/2"/> + <Constant name="CCUMrPos" value="[ICBTailR]-[tidringpar:CCUMH]/2"/> + <Constant name="CoolR1" value="[Rmin]+[tidmodpar:CoolInsertHeightSS]-[tidringpar:CoolD]/2"/> + <Constant name="CoolR2" value="[Rmin]+[tidmodule2:CoolInsertShift]"/> + <Constant name="DOHMrIn" value="22.8*cm"/> + <Constant name="DOHMrMed" value="26.5*cm"/> + <Constant name="DOHMrOut" value="29.5*cm"/> + <Constant name="DOHMdPhiIn" value="37*deg"/> + <Constant name="DOHMdPhiOut" value="55*deg"/> + <Constant name="DOHMrOff" value="-0.15*cm"/> + <Constant name="DOHMphiPos" value="157.5*deg"/> + <Constant name="CoolManifoldL" value="8.0*cm"/> + <Constant name="FlatCablerIn" value="[tidringpar:Rin]"/> + <Constant name="FlatCablerOut" value="[FlatCablerIn]+4*cm"/> + <Constant name="FlatCabledPhi" value="35*deg"/> + <Constant name="FlatCablephiPosOff" value="3*deg"/> + <Constant name="FlatCablephiPosL" value="[DOHMphiPos]-[FlatCablephiPosOff]-([DOHMdPhiOut]+[FlatCabledPhi])/2"/> + <Constant name="FlatCablephiPosR" value="[DOHMphiPos]+[FlatCablephiPosOff]+([DOHMdPhiOut]+[FlatCabledPhi])/2"/> + <Constant name="ModuleFixationInsertsInR" value="36.4*cm"/> + <Constant name="ModuleFixationInsertsOutR" value="45.4*cm"/> + </ConstantsSection> + <SolidSection label="tidring2.xml"> + <Tubs name="TIDRing2ICB" rMin="([ICBR]-[tidringpar:ICBW]/2)" rMax="([ICBR]+[tidringpar:ICBW]/2)" dz="[tidringpar:ICBT]/2" startPhi="0*deg" deltaPhi="360.*deg"/> + <Box name="TIDRing2ICBTail" dx="[tidringpar:ICBTailH]/2" dy="[ICBTailW]/2" dz="[tidringpar:ICBTailT]/2"/> + <Torus name="TIDRing2Cool1" innerRadius="[zero]" outerRadius="[tidringpar:CoolD]/2" torusRadius="[CoolR1]" startPhi="0*deg" deltaPhi="360.*deg"/> + <Torus name="TIDRing2Cool2" innerRadius="[zero]" outerRadius="[tidringpar:CoolD]/2" torusRadius="[CoolR2]" startPhi="0*deg" deltaPhi="360.*deg"/> + <Tubs name="TIDRing2DOHMIn" rMin="[DOHMrIn]" rMax="[DOHMrMed]" dz="[tidringpar:DOHMT]/2" startPhi="-[DOHMdPhiIn]/2" deltaPhi="[DOHMdPhiIn]"/> + <Tubs name="TIDRing2DOHMOut" rMin="[DOHMrMed]" rMax="[DOHMrOut]" dz="[tidringpar:DOHMT]/2" startPhi="-[DOHMdPhiOut]/2" deltaPhi="[DOHMdPhiOut]"/> + <UnionSolid name="TIDRing2DOHM"> + <rSolid name="TIDRing2DOHMIn"/> + <rSolid name="TIDRing2DOHMOut"/> + </UnionSolid> + <Tubs name="TIDRing2FiberLayer" rMin="([ICBR]-[tidringpar:ICBW]/2)" rMax="([ICBR]+[tidringpar:ICBW]/2)" dz="[tidringpar:FiberLayerT]/2" startPhi="0*deg" deltaPhi="360.*deg"/> + <Box name="TIDRing2CoolManifold" dx="[tidringpar:CoolManifoldW]/2" dy="[CoolManifoldL]/2" dz="[tidringpar:CoolManifoldT]/2"/> + <Tubs name="TIDRing2FlatCable" rMin="[FlatCablerIn]" rMax="[FlatCablerOut]" dz="[tidringpar:FlatCableT]/2" startPhi="-[FlatCabledPhi]/2" deltaPhi="[FlatCabledPhi]"/> + </SolidSection> + <LogicalPartSection label="tidring2.xml"> + <LogicalPart name="TIDRing2" category="unspecified"> + <rSolid name="tidringpar:TIDRing"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TIDStructure2" category="unspecified"> + <rSolid name="tidringpar:TIDStructure"/> + <rMaterial name="tidmaterial:TID_Mech"/> + </LogicalPart> + <LogicalPart name="TIDICC2" category="unspecified"> + <rSolid name="tidringpar:TIDICCSS"/> + <rMaterial name="tidmaterial:TID_SSAOHBox"/> + </LogicalPart> + <LogicalPart name="TIDRing2ICBTail" category="unspecified"> + <rSolid name="tidring2:TIDRing2ICBTail"/> + <rMaterial name="tidmaterial:TID_ICB3"/> + </LogicalPart> + <LogicalPart name="TIDRing2ICB" category="unspecified"> + <rSolid name="tidring2:TIDRing2ICB"/> + <rMaterial name="tidmaterial:TID_ICB3"/> + </LogicalPart> + <LogicalPart name="TIDRing2DOHM" category="unspecified"> + <rSolid name="tidring2:TIDRing2DOHM"/> + <rMaterial name="tidmaterial:TID_DOHM2"/> + </LogicalPart> + <LogicalPart name="TIDRing2Cool1" category="unspecified"> + <rSolid name="tidring2:TIDRing2Cool1"/> + <rMaterial name="tidmaterial:TID_CoolPipe"/> + </LogicalPart> + <LogicalPart name="TIDRing2Cool2" category="unspecified"> + <rSolid name="tidring2:TIDRing2Cool2"/> + <rMaterial name="tidmaterial:TID_CoolPipe"/> + </LogicalPart> + <LogicalPart name="TIDRing2FiberLayer" category="unspecified"> + <rSolid name="tidring2:TIDRing2FiberLayer"/> + <rMaterial name="tidmaterial:TID_FiberLayer"/> + </LogicalPart> + <LogicalPart name="TIDRing2CoolManifold" category="unspecified"> + <rSolid name="tidring2:TIDRing2CoolManifold"/> + <rMaterial name="tidmaterial:TID_CoolManifold"/> + </LogicalPart> + <LogicalPart name="TIDRing2FlatCable" category="unspecified"> + <rSolid name="tidring2:TIDRing2FlatCable"/> + <rMaterial name="tibtidcommonmaterial:TIBTID_AmphCable"/> + </LogicalPart> + </LogicalPartSection> + <PosPartSection label="tidring2.xml"> + <PosPart copyNumber="1"> + <rParent name="tidring2:TIDRing2"/> + <rChild name="tidring2:TIDStructure2"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tidring2:TIDRing2"/> + <rChild name="tidring2:TIDRing2ICB"/> + <Translation x="[zero]" y="[zero]" z="-[tidringpar:ICBZ]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tidring2:TIDRing2"/> + <rChild name="tidring2:TIDRing2ICB"/> + <Translation x="[zero]" y="[zero]" z="[tidringpar:ICBZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tidring2:TIDRing2"/> + <rChild name="tidring2:TIDRing2Cool1"/> + <Translation x="[zero]" y="[zero]" z="-[tidringpar:CoolZ]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tidring2:TIDRing2"/> + <rChild name="tidring2:TIDRing2Cool1"/> + <Translation x="[zero]" y="[zero]" z="[tidringpar:CoolZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tidring2:TIDRing2"/> + <rChild name="tidring2:TIDRing2Cool2"/> + <Translation x="[zero]" y="[zero]" z="-[tidringpar:CoolZ]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tidring2:TIDRing2"/> + <rChild name="tidring2:TIDRing2Cool2"/> + <Translation x="[zero]" y="[zero]" z="[tidringpar:CoolZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tidring2:TIDRing2"/> + <rChild name="tidring2:TIDRing2FiberLayer"/> + <Translation x="[zero]" y="[zero]" z="-[tidringpar:FiberLayerZ]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tidring2:TIDRing2"/> + <rChild name="tidring2:TIDRing2FiberLayer"/> + <Translation x="[zero]" y="[zero]" z="[tidringpar:FiberLayerZ]"/> + </PosPart> + </PosPartSection> + <Algorithm name="track:DDTrackerPhiAlgo"> + <rParent name="tidring2:TIDRing2"/> + <String name="ChildName" value="tidring2:TIDRing2ICBTail"/> + <Numeric name="Radius" value="[ICBTailRPos]"/> + <Numeric name="Tilt" value="-90*deg"/> + <Vector name="Phi" type="numeric" nEntries="8"> + 180.0*deg, 135.0*deg, 126.0*deg, 9.0*deg, + 360.0*deg, 315.0*deg, 306.0*deg, 189.0*deg + </Vector> + <Vector name="ZPos" type="numeric" nEntries="8"> + [tidringpar:ICBZ], -[tidringpar:ICBZ], [tidringpar:ICBZ], -[tidringpar:ICBZ], + [tidringpar:ICBZ], -[tidringpar:ICBZ], [tidringpar:ICBZ], -[tidringpar:ICBZ] + </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerPhiAlgo"> + <rParent name="tidring2:TIDRing2"/> + <String name="ChildName" value="tidringpar:TIDCCUMBox"/> + <Numeric name="Radius" value="[CCUMrPos]"/> + <Numeric name="Tilt" value="-90*deg"/> + <Vector name="Phi" type="numeric" nEntries="8"> + 180.0*deg, 135.0*deg, 126.0*deg, 9.0*deg, + 360.0*deg, 315.0*deg, 306.0*deg, 189.0*deg + </Vector> + <Vector name="ZPos" type="numeric" nEntries="8"> + [tidringpar:CCUMZ], -[tidringpar:CCUMZ], [tidringpar:CCUMZ], -[tidringpar:CCUMZ], + [tidringpar:CCUMZ], -[tidringpar:CCUMZ], [tidringpar:CCUMZ], -[tidringpar:CCUMZ] + </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerPhiAlgo"> + <rParent name="tidring2:TIDRing2"/> + <String name="ChildName" value="tidring2:TIDRing2DOHM"/> + <Numeric name="Radius" value="[tidring2:DOHMrOff]"/> + <Numeric name="Tilt" value="0*deg"/> + <Vector name="Phi" type="numeric" nEntries="2"> + [DOHMphiPos], [DOHMphiPos]+180*deg + </Vector> + <Vector name="ZPos" type="numeric" nEntries="2"> + -[tidringpar:DOHMZ], [tidringpar:DOHMZ] + </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerPhiAlgo"> + <rParent name="tidring2:TIDRing2"/> + <String name="ChildName" value="tidring2:TIDRing2FlatCable"/> + <Numeric name="Radius" value="[zero]"/> + <Numeric name="Tilt" value="0*deg"/> + <Vector name="Phi" type="numeric" nEntries="8"> + [FlatCablephiPosL], [FlatCablephiPosR], [FlatCablephiPosL]+180*deg, [FlatCablephiPosR]+180*deg, + [FlatCablephiPosL], [FlatCablephiPosR], [FlatCablephiPosL]+180*deg, [FlatCablephiPosR]+180*deg + </Vector> + <Vector name="ZPos" type="numeric" nEntries="8"> + -[tidringpar:FlatCableZ], -[tidringpar:FlatCableZ], -[tidringpar:FlatCableZ], -[tidringpar:FlatCableZ], + [tidringpar:FlatCableZ], [tidringpar:FlatCableZ], [tidringpar:FlatCableZ], [tidringpar:FlatCableZ] + </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tidring2:TIDStructure2"/> + <String name="ChildName" value="tidring2:TIDRing2CoolManifold"/> + <Numeric name="N" value="2"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="63.0*deg"/> + <Numeric name="Radius" value="[tidringpar:CoolManifoldR]"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, 0 </Vector> + </Algorithm> + <Algorithm name="track:DDTIDRingAlgo"> + <rParent name="tidring2:TIDRing2"/> + <Vector name="ModuleName" type="string" nEntries="2"> + tidmodule2:TIDModule2, tidmodule2:TIDModule2</Vector> + <String name="ICCName" value="tidring2:TIDICC2"/> + <Numeric name="Number" value="[NPhi]"/> + <Numeric name="StartAngle" value="[PhiOff]"/> + <Numeric name="ModuleR" value="[RPos]"/> + <Vector name="ModuleZ" type="numeric" nEntries="2"> + -[tidringpar:ModuleZSS], [tidringpar:ModuleZSS] </Vector> + <Numeric name="ICCR" value="[ICCRPos]"/> + <Numeric name="ICCShift" value="[tidringpar:ICCW]/2"/> + <Vector name="ICCZ" type="numeric" nEntries="2"> + -[tidringpar:ICCZ], [tidringpar:ICCZ] </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerPhiAlgo"> + <rParent name="tidring2:TIDRing2"/> + <String name="ChildName" value="tidringpar:TIDManifoldFix"/> + <Numeric name="Radius" value="[tidringpar:CoolManifoldR]"/> + <Numeric name="Tilt" value="-90*deg"/> + <Vector name="Phi" type="numeric" nEntries="4"> + 63.0*deg, 63.0*deg, 243.0*deg, 243.0*deg + </Vector> + <Vector name="ZPos" type="numeric" nEntries="4"> + [tidringpar:ManifoldFixZ], -[tidringpar:ManifoldFixZ], + [tidringpar:ManifoldFixZ], -[tidringpar:ManifoldFixZ] + </Vector> + </Algorithm> + <!-- Inserts for module fixation --> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tidring2:TIDStructure2"/> + <String name="ChildName" value="tidringpar:TIDModuleFixSmall"/> + <Numeric name="N" value="40"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="-5.17*deg"/> + <Numeric name="Radius" value="[ModuleFixationInsertsInR]"/> + <Vector name="Center" type="numeric" nEntries="3"> + [zero], [zero], [zero] + </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tidring2:TIDStructure2"/> + <String name="ChildName" value="tidringpar:TIDModuleFixSmall"/> + <Numeric name="N" value="40"/> + <Numeric name="StartCopyNo" value="41"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="+5.17*deg"/> + <Numeric name="Radius" value="[ModuleFixationInsertsInR]"/> + <Vector name="Center" type="numeric" nEntries="3"> + [zero], [zero], [zero] + </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tidring2:TIDStructure2"/> + <String name="ChildName" value="tidringpar:TIDModuleFix"/> + <Numeric name="N" value="40"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="-5.54*deg"/> + <Numeric name="Radius" value="[ModuleFixationInsertsOutR]"/> + <Vector name="Center" type="numeric" nEntries="3"> + [zero], [zero], [zero] + </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tidring2:TIDStructure2"/> + <String name="ChildName" value="tidringpar:TIDModuleFix"/> + <Numeric name="N" value="40"/> + <Numeric name="StartCopyNo" value="41"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="+5.54*deg"/> + <Numeric name="Radius" value="[ModuleFixationInsertsOutR]"/> + <Vector name="Center" type="numeric" nEntries="3"> + [zero], [zero], [zero] + </Vector> + </Algorithm> +</DDDefinition> diff --git a/examples/DDCMS/data/tidringpar.xml b/examples/DDCMS/data/tidringpar.xml new file mode 100644 index 0000000000000000000000000000000000000000..64a57c8baca9fa90960311f6bab34caf47824091 --- /dev/null +++ b/examples/DDCMS/data/tidringpar.xml @@ -0,0 +1,86 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tidringpar.xml" eval="true"> + <Constant name="Rin" value="22.50*cm"/> + <Constant name="Rout" value="50.90*cm"/> + <Constant name="RingT" value="3.40*cm"/> + <!-- MAX ALLOWED VALUE 3.5 cm --> + <Constant name="StructureT" value="0.80*cm"/> + <!-- DOHM --> + <Constant name="DOHMT" value="0.22*cm"/> + <Constant name="DOHMZ" value="([StructureT]+[DOHMT])/2"/> + <!-- Flat Amphenol 26 --> + <Constant name="FlatCableT" value="0.06*cm"/> + <Constant name="FlatCableZ" value="([StructureT]+[FlatCableT])/2"/> + <!-- MotherCables --> + <Constant name="ICBW" value="2.50*cm"/> + <Constant name="ICBT" value="0.12*cm"/> + <Constant name="ICBZ" value="([StructureT]+[ICBT])/2"/> + <Constant name="ICBTailH" value="3.26*cm"/> + <Constant name="ICBTailT" value="[ICBT]"/> + <Constant name="ICBTailTol" value="0.05*cm"/> + <!-- Layer of the Fiber Pigtails --> + <Constant name="FiberLayerT" value="0.05*cm"/> + <Constant name="FiberLayerZ" value="([StructureT]+2*[ICBT]+[FiberLayerT])/2"/> + <!-- Cooling Pipes --> + <Constant name="CoolD" value="0.35*cm"/> + <!-- diameter of the pipe --> + <Constant name="CoolZ" value="([StructureT]/2)+0.375*cm"/> + <!-- Cooling Manifolds --> + <Constant name="CoolManifoldR" value="49.00*cm"/> + <Constant name="CoolManifoldW" value="2.00*cm"/> + <Constant name="CoolManifoldT" value="0.80*cm"/> + <Constant name="ManifoldFixH" value="4.0*cm"/> + <Constant name="ManifoldFixW" value="5.6*cm"/> + <Constant name="ManifoldFixT" value="0.20*cm"/> + <Constant name="ManifoldFixZ" value="([StructureT]+[ManifoldFixT])/2"/> + <!-- AOH boxes (bottom side at the same height of cooling pipes) --> + <Constant name="ICCH" value="2.70*cm"/> + <Constant name="ICCW" value="2.80*cm"/> + <Constant name="ICCT" value="0.60*cm"/> + <Constant name="ICCZ" value="[CoolZ]+([ICCT]-[CoolD])/2"/> + <Constant name="ICCROffset" value="0.60*cm"/> + <!-- Modules --> + <Constant name="ModuleZDS" value="1.305*cm"/> + <Constant name="ModuleZSS" value="1.226*cm"/> + <!-- Disk inserts for the fixation of the modules --> + <Constant name="ModuleFixRin" value="0.160*cm"/> + <Constant name="ModuleFixRout" value="0.515*cm"/> + <Constant name="ModuleFixRinSmall" value="0.140*cm"/> + <Constant name="ModuleFixRoutSmall" value="0.410*cm"/> + <Constant name="ModuleFixExtraT" value="[tid:zero]"/> + <!-- CCUM boxes --> + <Constant name="CCUMH" value="3.30*cm"/> + <Constant name="CCUMW" value="2.40*cm"/> + <Constant name="CCUMT" value="0.76*cm"/> + <Constant name="CCUMZ" value="[ICBT]+[FiberLayerT]+([StructureT]+[CCUMT])/2"/> + </ConstantsSection> + <SolidSection label="tidringpar.xml"> + <Tubs name="TIDRing" rMin="[Rin]" rMax="[tid:WheelRout]" dz="[RingT]/2" startPhi="0*deg" deltaPhi="360.*deg"/> + <Tubs name="TIDStructure" rMin="[Rin]" rMax="[Rout]" dz="[StructureT]/2" startPhi="0*deg" deltaPhi="360.*deg"/> + <Box name="TIDICCSS" dx="[ICCW]/2" dy="[ICCT]/2" dz="[ICCH]/2"/> + <Box name="TIDICCDS" dx="[ICCW]" dy="[ICCT]/2" dz="[ICCH]/2"/> + <Box name="TIDCCUM" dx="[CCUMW]/2" dy="[CCUMH]/2" dz="[CCUMT]/2"/> + <Box name="TIDManifoldFix" dx="[ManifoldFixW]/2" dy="[ManifoldFixH]/2" dz="[ManifoldFixT]/2"/> + <Tubs name="TIDModuleFix" rMin="[ModuleFixRin]" rMax="[ModuleFixRout]" dz="[ModuleFixExtraT]+[StructureT]/2" startPhi="0*deg" deltaPhi="360.*deg"/> + <Tubs name="TIDModuleFixSmall" rMin="[ModuleFixRinSmall]" rMax="[ModuleFixRoutSmall]" dz="[ModuleFixExtraT]+[StructureT]/2" startPhi="0*deg" deltaPhi="360.*deg"/> + </SolidSection> + <LogicalPartSection label="tidringpar.xml"> + <LogicalPart name="TIDManifoldFix" category="unspecified"> + <rSolid name="TIDManifoldFix"/> + <rMaterial name="trackermaterial:T_Aluminium"/> + </LogicalPart> + <LogicalPart name="TIDModuleFix" category="unspecified"> + <rSolid name="TIDModuleFix"/> + <rMaterial name="tidmaterial:TID_ModuleFix"/> + </LogicalPart> + <LogicalPart name="TIDModuleFixSmall" category="unspecified"> + <rSolid name="TIDModuleFixSmall"/> + <rMaterial name="tidmaterial:TID_ModuleFix"/> + </LogicalPart> + <LogicalPart name="TIDCCUMBox" category="unspecified"> + <rSolid name="TIDCCUM"/> + <rMaterial name="tibtidcommonmaterial:TIBTID_CCUM"/> + </LogicalPart> + </LogicalPartSection> +</DDDefinition> diff --git a/examples/DDCMS/data/tob.xml b/examples/DDCMS/data/tob.xml new file mode 100644 index 0000000000000000000000000000000000000000..d9c4243bd802a0507bb3a496b2be563a10595b01 --- /dev/null +++ b/examples/DDCMS/data/tob.xml @@ -0,0 +1,1404 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tob.xml" eval="true"> + <Constant name="zero" value="0.0*fm"/> + <Constant name="Rin1" value="54.0*cm"/> + <Constant name="Rin2" value="58.0*cm"/> + <Constant name="Rin3" value="1.160*m"/> + <Constant name="Rout" value="1.169*m"/> + <Constant name="Zv0" value="1.100*m"/> + <Constant name="Zv1" value="1.160*m"/> + <Constant name="Zv2" value="1.180*m"/> + <Constant name="Zv3" value="2.820*m"/> + <Constant name="StiffenerL" value="720*mm"/> + <Constant name="StiffenerR" value="0.400*cm"/> + <Constant name="RailTopDy" value="8.5*mm"/> + <Constant name="RailBottomDy" value="15*mm"/> + <Constant name="RailDx" value="4.3*mm"/> + <Constant name="RailL" value="1.100*m"/> + <Constant name="RailInX" value="54.433*cm"/> + <Constant name="StiffenerY" value="2.700*cm"/> + <Constant name="AlPieceR0" value="1.161*m"/> + <Constant name="AlPieceR1" value="1.164*m"/> + <Constant name="AlPieceR2" value="1.169*m"/> + <Constant name="AlPiecePhi1" value="1.535*deg"/> + <Constant name="AlPiecePhi2" value="175.535*deg"/> + <Constant name="AlPiecePhi3" value="1.580*deg"/> + <Constant name="AlPiecePhi4" value="175.180*deg"/> + <Constant name="AlPieceDPhi1" value="4.930*deg"/> + <Constant name="AlPieceDPhi2" value="2.930*deg"/> + <Constant name="AlPieceDPhi3" value="0.240*deg"/> + <Constant name="AlPieceDPhi4" value="3.240*deg"/> + <Constant name="AlPieceDz1" value="5.000*cm"/> + <Constant name="AlPieceDz2" value="0.500*cm"/> + <Constant name="AlPieceZ" value="69.00*cm"/> + <Constant name="CFTubeRin1" value="1.142*m"/> + <Constant name="CFTubeRout1" value="1.160*m"/> + <Constant name="CFTubeRin2" value="55.00*cm"/> + <Constant name="CFTubeRout2" value="57.80*cm"/> + <Constant name="CFTubeL1" value="27.80*cm"/> + <Constant name="CFTubeL2" value="38.80*cm"/> + <Constant name="CFTubeZ" value="69.00*cm"/> + <Constant name="NomexTubeRin1" value="1.1425*m"/> + <Constant name="NomexTubeRout1" value="1.1595*m"/> + <Constant name="NomexTubeRin2" value="55.05*cm"/> + <Constant name="NomexTubeRout2" value="57.75*cm"/> + <Constant name="NomexTubeF1" value="48.633*deg"/> + <Constant name="NomexTubeF2" value="29.346*deg"/> + <Constant name="NomexTubeF3" value="35.774*deg"/> + <Constant name="NomexInPhi1" value="48.214*deg"/> + <Constant name="NomexInPhi2" value="90.000*deg"/> + <Constant name="NomexInPhi3" value="131.790*deg"/> + <Constant name="NomexInPhi4" value="183.214*deg"/> + <Constant name="NomexInPhi5" value="228.214*deg"/> + <Constant name="NomexInPhi6" value="273.214*deg"/> + <Constant name="NomexInPhi7" value="315.000*deg"/> + <Constant name="NomexInPhi8" value="356.785*deg"/> + <Constant name="AlignTubeDx" value="1.150*cm"/> + <Constant name="AlignTubeDy" value="1.338*cm"/> + <Constant name="AlignTubeT" value="0.200*cm"/> + <Constant name="AlignPhi1" value="22.500*deg"/> + <Constant name="AlignPhi2" value="73.928*deg"/> + <Constant name="AlignPhi3" value="106.071*deg"/> + <Constant name="AlignPhi4" value="157.500*deg"/> + <Constant name="AlignPhi5" value="208.929*deg"/> + <Constant name="AlignPhi6" value="247.500*deg"/> + <Constant name="AlignPhi7" value="298.929*deg"/> + <Constant name="AlignPhi8" value="331.071*deg"/> + <Constant name="PottingRin1" value="1.142*m"/> + <Constant name="PottingRout1" value="1.157*m"/> + <Constant name="PottingRin2" value="55.00*cm"/> + <Constant name="PottingRout2" value="57.80*cm"/> + <Constant name="PottingL" value="0.200*cm"/> + <Constant name="PottingZ1" value="108.00*cm"/> + <Constant name="PottingZ2" value="30.00*cm"/> + <Constant name="PottingZ3" value="28.20*cm"/> + <Constant name="ConnectRin1" value="1.157*m"/> + <Constant name="ConnectRout1" value="1.160*m"/> + <Constant name="ConnectL1" value="1.000*cm"/> + <Constant name="ConnectZ11" value="1.090*m"/> + <Constant name="ConnectZ12" value="29.00*cm"/> + <Constant name="ConnectDphi1" value="4.95*deg"/> + <Constant name="ConnectRin2" value="1.141*m"/> + <Constant name="ConnectRout2" value="1.142*m"/> + <Constant name="ExtraConnectL" value="1.360*cm"/> + <Constant name="ConnectStartPhi" value="11.25*deg"/> + <Constant name="ConnectL2" value="2.000*cm+[ExtraConnectL]"/> + <Constant name="ConnectZ21" value="1.058*m-[ExtraConnectL]"/> + <Constant name="ConnectZ22" value="32.20*cm+[ExtraConnectL]"/> + <Constant name="ConnectZ23" value="25.80*cm-[ExtraConnectL]"/> + <Constant name="ConnectDphi2" value="3.51*deg"/> + <Constant name="ConnectRin3" value="1.160*m"/> + <Constant name="ConnectRout3" value="1.161*m"/> + <Constant name="ConnectL3" value="2.000*cm+[ExtraConnectL]"/> + <Constant name="ConnectL23" value="1.000*mm"/> + <Constant name="Connect23ZOffset" value="([ConnectL3]-[ConnectL23])"/> + <Constant name="ConnectDphi3" value="3.46*deg"/> + <Constant name="ConnectRin4" value="57.80*cm"/> + <Constant name="ConnectRout4" value="58.10*cm"/> + <Constant name="ConnectL4" value="1.000*cm"/> + <Constant name="ConnectDphi4" value="9.89*deg"/> + <Constant name="ConnectRin5" value="54.90*cm"/> + <Constant name="ConnectRout5" value="55.00*cm"/> + <Constant name="ConnectL5" value="2.000*cm+[ExtraConnectL]"/> + <Constant name="ConnectDphi5" value="7.30*deg"/> + <Constant name="ConnectRin6" value="57.80*cm"/> + <Constant name="ConnectRout6" value="57.90*cm"/> + <Constant name="ConnectL6" value="2.000*cm+[ExtraConnectL]"/> + <Constant name="ConnectL56" value="[ConnectL23]"/> + <Constant name="Connect56ZOffset" value="([ConnectL6]-[ConnectL56])"/> + <Constant name="ConnectDphi6" value="6.93*deg"/> + <Constant name="Layer0Rin" value="58.20*cm"/> + <Constant name="Layer0Rout" value="64.24*cm"/> + <Constant name="Layer0LowR" value="59.20*cm"/> + <Constant name="Layer0HighR" value="62.40*cm"/> + <Constant name="Layer0CoolRa" value="65.40*cm"/> + <Constant name="Layer0CoolRr" value="66.40*cm"/> + <Constant name="Layer1Rin" value="66.60*cm"/> + <Constant name="Layer1Rout" value="72.80*cm"/> + <Constant name="Layer1LowR" value="67.60*cm"/> + <Constant name="Layer1HighR" value="70.80*cm"/> + <Constant name="Layer1CoolRa" value="74.00*cm"/> + <Constant name="Layer1CoolRr" value="75.00*cm"/> + <Constant name="Layer2Rin" value="75.40*cm"/> + <Constant name="Layer2Rout" value="81.40*cm"/> + <Constant name="Layer2LowR" value="76.40*cm"/> + <Constant name="Layer2HighR" value="79.60*cm"/> + <Constant name="Layer2CoolRa" value="82.50*cm"/> + <Constant name="Layer2CoolRr" value="83.50*cm"/> + <Constant name="Layer3Rin" value="84.10*cm"/> + <Constant name="Layer3Rout" value="89.90*cm"/> + <Constant name="Layer3LowR" value="85.20*cm"/> + <Constant name="Layer3HighR" value="88.40*cm"/> + <Constant name="Layer3CoolRa" value="91.10*cm"/> + <Constant name="Layer3CoolRr" value="92.10*cm"/> + <Constant name="Layer4Rin" value="93.80*cm"/> + <Constant name="Layer4Rout" value="99.60*cm"/> + <Constant name="Layer4LowR" value="94.90*cm"/> + <Constant name="Layer4HighR" value="98.10*cm"/> + <Constant name="Layer4CoolRa" value="100.70*cm"/> + <Constant name="Layer4CoolRr" value="101.70*cm"/> + <Constant name="Layer5Rin" value="105.30*cm"/> + <Constant name="Layer5Rout" value="111.10*cm"/> + <Constant name="Layer5LowR" value="106.40*cm"/> + <Constant name="Layer5HighR" value="109.60*cm"/> + <Constant name="Layer5CoolRa" value="112.20*cm"/> + <Constant name="Layer5CoolRr" value="113.20*cm"/> + <Constant name="RibRin" value="58.10*cm"/> + <Constant name="RibRout" value="115.70*cm"/> + <Constant name="RibDZ" value="0.350*cm"/> + <Constant name="RibZ1" value="109.0*cm"/> + <Constant name="RibZ2" value="29.00*cm"/> + <Constant name="SideDiskDz" value="3.250*cm"/> + <Constant name="SideDiskZ" value="114.05*cm"/> + <Constant name="DetectorTilt" value="0*deg"/> + <Constant name="AxCableRin" value="[Rin3]"/> + <Constant name="AxCableRout" value="[Rout]"/> + <Constant name="AxCableT" value="0.210*cm"/> + <Constant name="AxCableDz" value="([Zv3]-[Zv1])/2"/> + <Constant name="AxCableW" value="22.5*deg"/> + <Constant name="AxCableZ" value="([Zv1]+[Zv3])/2"/> + <Constant name="DOHMsDz" value="0.3*cm"/> + <Constant name="DOHMW" value="47*mm"/> + <Constant name="DOHML" value="71.5*mm"/> + <Constant name="DOHMT" value="3.0*mm"/> + <Constant name="DOHMRadius1" value="690*mm"/> + <Constant name="DOHMRadius2" value="860*mm"/> + <Constant name="DOHMRadius3" value="1040*mm"/> + <Constant name="DOHM_R1_phi1" value="9.417*deg"/> + <Constant name="DOHM_R1_phi2" value="45.383*deg"/> + <Constant name="DOHM_R1_phi3" value="65.583*deg"/> + <Constant name="DOHM_R1_phi4" value="85.118*deg"/> + <Constant name="DOHM_R1_phi5" value="108.583*deg"/> + <Constant name="DOHM_R1_phi6" value="135.918*deg"/> + <Constant name="DOHM_R1_phi7" value="162.083*deg"/> + <Constant name="DOHM_R1_phi8" value="186.918*deg"/> + <Constant name="DOHM_R1_phi9" value="208.083*deg"/> + <Constant name="DOHM_R1_phi10" value="227.418*deg"/> + <Constant name="DOHM_R1_phi11" value="251.083*deg"/> + <Constant name="DOHM_R1_phi12" value="282.418*deg"/> + <Constant name="DOHM_R1_phi13" value="302.083*deg"/> + <Constant name="DOHM_R1_phi14" value="325.918*deg"/> + <Constant name="DOHM_R1_phi15" value="346.083*deg"/> + <Constant name="DOHM_R2_phi1" value="4.066*deg"/> + <Constant name="DOHM_R2_phi2" value="20.066*deg"/> + <Constant name="DOHM_R2_phi3" value="52.066*deg"/> + <Constant name="DOHM_R2_phi4" value="68.066*deg"/> + <Constant name="DOHM_R2_phi5" value="105.567*deg"/> + <Constant name="DOHM_R2_phi6" value="134.067*deg"/> + <Constant name="DOHM_R2_phi7" value="153.067*deg"/> + <Constant name="DOHM_R2_phi8" value="176.067*deg"/> + <Constant name="DOHM_R2_phi9" value="194.067*deg"/> + <Constant name="DOHM_R2_phi10" value="225.567*deg"/> + <Constant name="DOHM_R2_phi11" value="244.067*deg"/> + <Constant name="DOHM_R2_phi12" value="276.067*deg"/> + <Constant name="DOHM_R2_phi13" value="291.067*deg"/> + <Constant name="DOHM_R2_phi14" value="322.067*deg"/> + <Constant name="DOHM_R2_phi15" value="341.067*deg"/> + <Constant name="DOHM_R3_phi1" value="4.055*deg"/> + <Constant name="DOHM_R3_phi2" value="36.055*deg"/> + <Constant name="DOHM_R3_phi3" value="50.055*deg"/> + <Constant name="DOHM_R3_phi4" value="78.055*deg"/> + <Constant name="DOHM_R3_phi5" value="92.055*deg"/> + <Constant name="DOHM_R3_phi6" value="125.055*deg"/> + <Constant name="DOHM_R3_phi7" value="140.055*deg"/> + <Constant name="DOHM_R3_phi8" value="176.055*deg"/> + <Constant name="DOHM_R3_phi9" value="189.055*deg"/> + <Constant name="DOHM_R3_phi10" value="218.055*deg"/> + <Constant name="DOHM_R3_phi11" value="231.055*deg"/> + <Constant name="DOHM_R3_phi12" value="257.055*deg"/> + <Constant name="DOHM_R3_phi13" value="270.055*deg"/> + <Constant name="DOHM_R3_phi14" value="303.055*deg"/> + <Constant name="DOHM_R3_phi15" value="317.055*deg"/> + <Constant name="DOHM_R3_phi16" value="350.055*deg"/> + <Constant name="Tol" value="0.0*mm"/> + </ConstantsSection> + <SolidSection label="tob.xml"> + <Polycone name="TOB" startPhi="0*deg" deltaPhi="360*deg"> + <ZSection z="-[Zv3]" rMin="[Rin3]" rMax="[Rout]"/> + <ZSection z="-[Zv2]" rMin="[Rin3]" rMax="[Rout]"/> + <ZSection z="-[Zv2]" rMin="[Rin2]" rMax="[Rout]"/> + <ZSection z="-[Zv1]" rMin="[Rin2]" rMax="[Rout]"/> + <ZSection z="-[Zv0]" rMin="[Rin2]" rMax="[Rout]"/> + <ZSection z="-[Zv0]" rMin="[Rin1]" rMax="[Rout]"/> + <ZSection z="[Zv0]" rMin="[Rin1]" rMax="[Rout]"/> + <ZSection z="[Zv0]" rMin="[Rin2]" rMax="[Rout]"/> + <ZSection z="[Zv1]" rMin="[Rin2]" rMax="[Rout]"/> + <ZSection z="[Zv2]" rMin="[Rin2]" rMax="[Rout]"/> + <ZSection z="[Zv2]" rMin="[Rin3]" rMax="[Rout]"/> + <ZSection z="[Zv3]" rMin="[Rin3]" rMax="[Rout]"/> + </Polycone> + <Tubs name="TIBStiffener" rMin="[zero]" rMax="[StiffenerR]" dz="[StiffenerL]" startPhi="0*deg" deltaPhi="360*deg"/> + <Box name="TIBRailTop" dx="[RailDx]" dy="[RailTopDy]" dz="[RailL]"/> + <Box name="TIBRailBottom" dx="[RailDx]" dy="[RailBottomDy]" dz="[RailL]"/> + <Tubs name="TOBAlPiece1" rMin="[AlPieceR0]" rMax="[AlPieceR1]" dz="[AlPieceDz1]" startPhi="[AlPiecePhi1]" deltaPhi="[AlPieceDPhi1]"/> + <Tubs name="TOBAlPiece2" rMin="[AlPieceR0]" rMax="[AlPieceR1]" dz="[AlPieceDz1]" startPhi="[AlPiecePhi2]" deltaPhi="[AlPieceDPhi2]"/> + <Tubs name="TOBAlPiece3" rMin="[AlPieceR1]" rMax="[AlPieceR2]" dz="[AlPieceDz2]" startPhi="[AlPiecePhi3]" deltaPhi="[AlPieceDPhi3]"/> + <Tubs name="TOBAlPiece4" rMin="[AlPieceR1]" rMax="[AlPieceR2]" dz="[AlPieceDz2]" startPhi="[AlPiecePhi4]" deltaPhi="[AlPieceDPhi4]"/> + <Tubs name="TOBCFTube1" rMin="[CFTubeRin1]" rMax="[CFTubeRout1]" dz="[CFTubeL1]" startPhi="0*deg" deltaPhi="360*deg"/> + <Tubs name="TOBCFTube2" rMin="[CFTubeRin1]" rMax="[CFTubeRout1]" dz="[CFTubeL2]" startPhi="0*deg" deltaPhi="360*deg"/> + <Tubs name="TOBCFTube3" rMin="[CFTubeRin2]" rMax="[CFTubeRout2]" dz="[CFTubeL1]" startPhi="0*deg" deltaPhi="360*deg"/> + <Tubs name="TOBCFTube4" rMin="[CFTubeRin2]" rMax="[CFTubeRout2]" dz="[CFTubeL2]" startPhi="0*deg" deltaPhi="360*deg"/> + <Tubs name="TOBNomexTube1" rMin="[NomexTubeRin1]" rMax="[NomexTubeRout1]" dz="[CFTubeL1]" startPhi="0*deg" deltaPhi="360*deg"/> + <Tubs name="TOBNomexTube2" rMin="[NomexTubeRin1]" rMax="[NomexTubeRout1]" dz="[CFTubeL2]" startPhi="0*deg" deltaPhi="360*deg"/> + <Tubs name="TOBNomexTube3" rMin="[NomexTubeRin2]" rMax="[NomexTubeRout2]" dz="[CFTubeL1]" startPhi="0*deg" deltaPhi="360*deg"/> + <Tubs name="TOBNomexT3In1" rMin="[NomexTubeRin2]" rMax="[NomexTubeRout2]" dz="[CFTubeL1]" startPhi="-[NomexTubeF1]/2" deltaPhi="[NomexTubeF1]"/> + <Tubs name="TOBNomexT3In2" rMin="[NomexTubeRin2]" rMax="[NomexTubeRout2]" dz="[CFTubeL1]" startPhi="-[NomexTubeF2]/2" deltaPhi="[NomexTubeF2]"/> + <Tubs name="TOBNomexT3In3" rMin="[NomexTubeRin2]" rMax="[NomexTubeRout2]" dz="[CFTubeL1]" startPhi="-[NomexTubeF3]/2" deltaPhi="[NomexTubeF3]"/> + <Box name="TOBAlignTube3" dx="[AlignTubeDx]" dy="[AlignTubeDy]" dz="[CFTubeL1]"/> + <Box name="TOBAlignT3In" dx="([AlignTubeDx]-[AlignTubeT])" dy="([AlignTubeDy]-[AlignTubeT])" dz="[CFTubeL1]"/> + <Tubs name="TOBNomexTube4" rMin="[NomexTubeRin2]" rMax="[NomexTubeRout2]" dz="[CFTubeL2]" startPhi="0*deg" deltaPhi="360*deg"/> + <Box name="TOBAlignTube4" dx="[AlignTubeDx]" dy="[AlignTubeDy]" dz="[CFTubeL2]"/> + <Box name="TOBAlignT4In" dx="([AlignTubeDx]-[AlignTubeT])" dy="([AlignTubeDy]-[AlignTubeT])" dz="[CFTubeL2]"/> + <Tubs name="TOBNomexT4In1" rMin="[NomexTubeRin2]" rMax="[NomexTubeRout2]" dz="[CFTubeL2]" startPhi="-[NomexTubeF1]/2" deltaPhi="[NomexTubeF1]"/> + <Tubs name="TOBNomexT4In2" rMin="[NomexTubeRin2]" rMax="[NomexTubeRout2]" dz="[CFTubeL2]" startPhi="-[NomexTubeF2]/2" deltaPhi="[NomexTubeF2]"/> + <Tubs name="TOBNomexT4In3" rMin="[NomexTubeRin2]" rMax="[NomexTubeRout2]" dz="[CFTubeL2]" startPhi="-[NomexTubeF3]/2" deltaPhi="[NomexTubeF3]"/> + <Tubs name="TOBPotting1" rMin="[PottingRin1]" rMax="[PottingRout1]" dz="[PottingL]" startPhi="0*deg" deltaPhi="360*deg"/> + <Tubs name="TOBPotting2" rMin="[PottingRin2]" rMax="[PottingRout2]" dz="[PottingL]" startPhi="0*deg" deltaPhi="360*deg"/> + <Tubs name="TOBPotting2I1" rMin="[PottingRin2]" rMax="[PottingRout2]" dz="[PottingL]" startPhi="-[NomexTubeF1]/2" deltaPhi="[NomexTubeF1]"/> + <Tubs name="TOBPotting2I2" rMin="[PottingRin2]" rMax="[PottingRout2]" dz="[PottingL]" startPhi="-[NomexTubeF2]/2" deltaPhi="[NomexTubeF2]"/> + <Tubs name="TOBPotting2I3" rMin="[PottingRin2]" rMax="[PottingRout2]" dz="[PottingL]" startPhi="-[NomexTubeF3]/2" deltaPhi="[NomexTubeF3]"/> + <Tubs name="TOBConnect1" rMin="[ConnectRin1]" rMax="[ConnectRout1]" dz="[ConnectL1]" startPhi="0*deg" deltaPhi="360*deg"/> + <Tubs name="TOBAlConnect1" rMin="[ConnectRin1]" rMax="[ConnectRout1]" dz="[ConnectL1]" startPhi="-[ConnectDphi1]/2" deltaPhi="[ConnectDphi1]"/> + <Tubs name="TOBConnect2" rMin="[ConnectRin2]" rMax="[ConnectRout2]" dz="[ConnectL2]" startPhi="0*deg" deltaPhi="360*deg"/> + <Tubs name="TOBAlConnect2" rMin="[ConnectRin2]" rMax="[ConnectRout2]" dz="[ConnectL2]" startPhi="-[ConnectDphi2]/2" deltaPhi="[ConnectDphi2]"/> + <Tubs name="TOBConnect3" rMin="[ConnectRin3]" rMax="[ConnectRout3]" dz="[ConnectL3]" startPhi="0*deg" deltaPhi="360*deg"/> + <Tubs name="TOBAlConnect3" rMin="[ConnectRin3]" rMax="[ConnectRout3]" dz="[ConnectL3]" startPhi="-[ConnectDphi3]/2" deltaPhi="[ConnectDphi3]"/> + <Tubs name="TOBConnect23" rMin="[ConnectRout2]" rMax="[ConnectRin3]" dz="[ConnectL23]" startPhi="0*deg" deltaPhi="360*deg"/> + <Tubs name="TOBAlConnect23" rMin="[ConnectRout2]" rMax="[ConnectRin3]" dz="[ConnectL23]" startPhi="-[ConnectDphi3]/2" deltaPhi="[ConnectDphi3]"/> + <Tubs name="TOBConnect4" rMin="[ConnectRin4]" rMax="[ConnectRout4]" dz="[ConnectL4]" startPhi="0*deg" deltaPhi="360*deg"/> + <Tubs name="TOBAlConnect4" rMin="[ConnectRin4]" rMax="[ConnectRout4]" dz="[ConnectL4]" startPhi="-[ConnectDphi4]/2" deltaPhi="[ConnectDphi4]"/> + <Tubs name="TOBConnect5" rMin="[ConnectRin5]" rMax="[ConnectRout5]" dz="[ConnectL5]" startPhi="0*deg" deltaPhi="360*deg"/> + <Tubs name="TOBAlConnect5" rMin="[ConnectRin5]" rMax="[ConnectRout5]" dz="[ConnectL5]" startPhi="-[ConnectDphi5]/2" deltaPhi="[ConnectDphi5]"/> + <Tubs name="TOBConnect6" rMin="[ConnectRin6]" rMax="[ConnectRout6]" dz="[ConnectL6]" startPhi="0*deg" deltaPhi="360*deg"/> + <Tubs name="TOBAlConnect6" rMin="[ConnectRin6]" rMax="[ConnectRout6]" dz="[ConnectL6]" startPhi="-[ConnectDphi6]/2" deltaPhi="[ConnectDphi6]"/> + <Tubs name="TOBConnect56" rMin="[ConnectRout5]" rMax="[ConnectRin6]" dz="[ConnectL56]" startPhi="0*deg" deltaPhi="360*deg"/> + <Tubs name="TOBAlConnect56" rMin="[ConnectRout5]" rMax="[ConnectRin6]" dz="[ConnectL56]" startPhi="-[ConnectDphi6]/2" deltaPhi="[ConnectDphi6]"/> + <Tubs name="TOBMidRib0" rMin="[ConnectRin5]" rMax="[Layer0Rin]" dz="[RibDZ]" startPhi="0*deg" deltaPhi="360*deg"/> + <Tubs name="TOBMidRib1" rMin="[Layer0Rout]" rMax="[Layer1Rin]" dz="[RibDZ]" startPhi="0*deg" deltaPhi="360*deg"/> + <Tubs name="TOBMidRib2" rMin="[Layer1Rout]" rMax="[Layer2Rin]" dz="[RibDZ]" startPhi="0*deg" deltaPhi="360*deg"/> + <Tubs name="TOBMidRib3" rMin="[Layer2Rout]" rMax="[Layer3Rin]" dz="[RibDZ]" startPhi="0*deg" deltaPhi="360*deg"/> + <Tubs name="TOBMidRib4" rMin="[Layer3Rout]" rMax="[Layer4Rin]" dz="[RibDZ]" startPhi="0*deg" deltaPhi="360*deg"/> + <Tubs name="TOBMidRib5" rMin="[Layer4Rout]" rMax="[Layer5Rin]" dz="[RibDZ]" startPhi="0*deg" deltaPhi="360*deg"/> + <Tubs name="TOBMidRib6" rMin="[Layer5Rout]" rMax="[RibRout]" dz="[RibDZ]" startPhi="0*deg" deltaPhi="360*deg"/> + <Tubs name="TOBLayer0" rMin="[Layer0Rin]" rMax="[Layer0Rout]" dz="[tobrodpar:RodL]" startPhi="0*deg" deltaPhi="360*deg"/> + <Tubs name="TOBLayer1" rMin="[Layer1Rin]" rMax="[Layer1Rout]" dz="[tobrodpar:RodL]" startPhi="0*deg" deltaPhi="360*deg"/> + <Tubs name="TOBLayer2" rMin="[Layer2Rin]" rMax="[Layer2Rout]" dz="[tobrodpar:RodL]" startPhi="0*deg" deltaPhi="360*deg"/> + <Tubs name="TOBLayer3" rMin="[Layer3Rin]" rMax="[Layer3Rout]" dz="[tobrodpar:RodL]" startPhi="0*deg" deltaPhi="360*deg"/> + <Tubs name="TOBLayer4" rMin="[Layer4Rin]" rMax="[Layer4Rout]" dz="[tobrodpar:RodL]" startPhi="0*deg" deltaPhi="360*deg"/> + <Tubs name="TOBLayer5" rMin="[Layer5Rin]" rMax="[Layer5Rout]" dz="[tobrodpar:RodL]" startPhi="0*deg" deltaPhi="360*deg"/> + <Tubs name="TOBSideDisk" rMin="[Rin2]" rMax="[Rin3]" dz="[SideDiskDz]" startPhi="0*deg" deltaPhi="360*deg"/> + <Tubs name="TOBAxCabCont" rMin="[AxCableRin]" rMax="[AxCableRout]" dz="[AxCableDz]" startPhi="0*deg" deltaPhi="360*deg"/> + <Tubs name="TOBDOHMs" rMin="[Rin2]" rMax="[Rin3]" dz="[DOHMsDz]" startPhi="0*deg" deltaPhi="360*deg"/> + <Box name="TOBDOHM" dx="[DOHMW]" dy="[DOHML]" dz="[DOHMT]-[Tol]"/> + </SolidSection> + <LogicalPartSection label="tob.xml"> + <LogicalPart name="TOB" category="unspecified"> + <rSolid name="TOB"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TIBStiffener" category="unspecified"> + <rSolid name="TIBStiffener"/> + <rMaterial name="trackermaterial:T_CarbonFibreStr"/> + </LogicalPart> + <LogicalPart name="TIBRailTop" category="unspecified"> + <rSolid name="TIBRailTop"/> + <rMaterial name="tobmaterial:TIB_RailTop"/> + </LogicalPart> + <LogicalPart name="TIBRailBottom" category="unspecified"> + <rSolid name="TIBRailBottom"/> + <rMaterial name="tobmaterial:TIB_RailBottom"/> + </LogicalPart> + <LogicalPart name="TOBAlPiece1" category="unspecified"> + <rSolid name="TOBAlPiece1"/> + <rMaterial name="trackermaterial:T_Aluminium"/> + </LogicalPart> + <LogicalPart name="TOBAlPiece2" category="unspecified"> + <rSolid name="TOBAlPiece2"/> + <rMaterial name="trackermaterial:T_Aluminium"/> + </LogicalPart> + <LogicalPart name="TOBAlPiece3" category="unspecified"> + <rSolid name="TOBAlPiece3"/> + <rMaterial name="trackermaterial:T_Aluminium"/> + </LogicalPart> + <LogicalPart name="TOBAlPiece4" category="unspecified"> + <rSolid name="TOBAlPiece4"/> + <rMaterial name="trackermaterial:T_Aluminium"/> + </LogicalPart> + <LogicalPart name="TOBCFTube1" category="unspecified"> + <rSolid name="TOBCFTube1"/> + <rMaterial name="tobmaterial:TOB_CF_Str"/> + </LogicalPart> + <LogicalPart name="TOBCFTube2" category="unspecified"> + <rSolid name="TOBCFTube2"/> + <rMaterial name="tobmaterial:TOB_CF_Str"/> + </LogicalPart> + <LogicalPart name="TOBCFTube3" category="unspecified"> + <rSolid name="TOBCFTube3"/> + <rMaterial name="tobmaterial:TOB_CF_Str"/> + </LogicalPart> + <LogicalPart name="TOBCFTube4" category="unspecified"> + <rSolid name="TOBCFTube4"/> + <rMaterial name="tobmaterial:TOB_CF_Str"/> + </LogicalPart> + <LogicalPart name="TOBNomexTube1" category="unspecified"> + <rSolid name="TOBNomexTube1"/> + <rMaterial name="tobmaterial:TOB_Nomex"/> + </LogicalPart> + <LogicalPart name="TOBNomexTube2" category="unspecified"> + <rSolid name="TOBNomexTube2"/> + <rMaterial name="tobmaterial:TOB_Nomex"/> + </LogicalPart> + <LogicalPart name="TOBNomexTube3" category="unspecified"> + <rSolid name="TOBNomexTube3"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TOBNomexT3In1" category="unspecified"> + <rSolid name="TOBNomexT3In1"/> + <rMaterial name="tobmaterial:TOB_Nomex"/> + </LogicalPart> + <LogicalPart name="TOBNomexT3In2" category="unspecified"> + <rSolid name="TOBNomexT3In2"/> + <rMaterial name="tobmaterial:TOB_Nomex"/> + </LogicalPart> + <LogicalPart name="TOBNomexT3In3" category="unspecified"> + <rSolid name="TOBNomexT3In3"/> + <rMaterial name="tobmaterial:TOB_Nomex"/> + </LogicalPart> + <LogicalPart name="TOBAlignTube3" category="unspecified"> + <rSolid name="TOBAlignTube3"/> + <rMaterial name="tobmaterial:TOB_CF_Str"/> + </LogicalPart> + <LogicalPart name="TOBAlignT3In" category="unspecified"> + <rSolid name="TOBAlignT3In"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TOBNomexTube4" category="unspecified"> + <rSolid name="TOBNomexTube4"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TOBNomexT4In1" category="unspecified"> + <rSolid name="TOBNomexT4In1"/> + <rMaterial name="tobmaterial:TOB_Nomex"/> + </LogicalPart> + <LogicalPart name="TOBNomexT4In2" category="unspecified"> + <rSolid name="TOBNomexT4In2"/> + <rMaterial name="tobmaterial:TOB_Nomex"/> + </LogicalPart> + <LogicalPart name="TOBNomexT4In3" category="unspecified"> + <rSolid name="TOBNomexT4In3"/> + <rMaterial name="tobmaterial:TOB_Nomex"/> + </LogicalPart> + <LogicalPart name="TOBAlignTube4" category="unspecified"> + <rSolid name="TOBAlignTube4"/> + <rMaterial name="tobmaterial:TOB_CF_Str"/> + </LogicalPart> + <LogicalPart name="TOBAlignT4In" category="unspecified"> + <rSolid name="TOBAlignT4In"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TOBPotting1" category="unspecified"> + <rSolid name="TOBPotting1"/> + <rMaterial name="tobmaterial:TOB_Epoxy"/> + </LogicalPart> + <LogicalPart name="TOBPotting2" category="unspecified"> + <rSolid name="TOBPotting2"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TOBPotting2I1" category="unspecified"> + <rSolid name="TOBPotting2I1"/> + <rMaterial name="tobmaterial:TOB_Epoxy"/> + </LogicalPart> + <LogicalPart name="TOBPotting2I2" category="unspecified"> + <rSolid name="TOBPotting2I2"/> + <rMaterial name="tobmaterial:TOB_Epoxy"/> + </LogicalPart> + <LogicalPart name="TOBPotting2I3" category="unspecified"> + <rSolid name="TOBPotting2I3"/> + <rMaterial name="tobmaterial:TOB_Epoxy"/> + </LogicalPart> + <LogicalPart name="TOBConnect1" category="unspecified"> + <rSolid name="TOBConnect1"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TOBAlConnect1" category="unspecified"> + <rSolid name="TOBAlConnect1"/> + <rMaterial name="tobmaterial:TOB_AlCentralConnect"/> + </LogicalPart> + <LogicalPart name="TOBConnect2" category="unspecified"> + <rSolid name="TOBConnect2"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TOBAlConnect2" category="unspecified"> + <rSolid name="TOBAlConnect2"/> + <rMaterial name="tobmaterial:TOB_AlSideConnect"/> + </LogicalPart> + <LogicalPart name="TOBConnect3" category="unspecified"> + <rSolid name="TOBConnect3"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TOBAlConnect3" category="unspecified"> + <rSolid name="TOBAlConnect3"/> + <rMaterial name="tobmaterial:TOB_AlSideConnect"/> + </LogicalPart> + <LogicalPart name="TOBConnect23" category="unspecified"> + <rSolid name="TOBConnect23"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TOBAlConnect23" category="unspecified"> + <rSolid name="TOBAlConnect23"/> + <rMaterial name="trackermaterial:T_Aluminium"/> + </LogicalPart> + <LogicalPart name="TOBConnect4" category="unspecified"> + <rSolid name="TOBConnect4"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TOBAlConnect4" category="unspecified"> + <rSolid name="TOBAlConnect4"/> + <rMaterial name="tobmaterial:TOB_AlCentralConnect"/> + </LogicalPart> + <LogicalPart name="TOBConnect5" category="unspecified"> + <rSolid name="TOBConnect5"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TOBAlConnect5" category="unspecified"> + <rSolid name="TOBAlConnect5"/> + <rMaterial name="tobmaterial:TOB_AlSideConnect"/> + </LogicalPart> + <LogicalPart name="TOBConnect6" category="unspecified"> + <rSolid name="TOBConnect6"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TOBAlConnect6" category="unspecified"> + <rSolid name="TOBAlConnect6"/> + <rMaterial name="tobmaterial:TOB_AlSideConnect"/> + </LogicalPart> + <LogicalPart name="TOBConnect56" category="unspecified"> + <rSolid name="TOBConnect56"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TOBAlConnect56" category="unspecified"> + <rSolid name="TOBAlConnect56"/> + <rMaterial name="trackermaterial:T_Aluminium"/> + </LogicalPart> + <LogicalPart name="TOBMidRib0" category="unspecified"> + <rSolid name="TOBMidRib0"/> + <rMaterial name="tobmaterial:TOB_middle_ribs"/> + </LogicalPart> + <LogicalPart name="TOBMidRib1" category="unspecified"> + <rSolid name="TOBMidRib1"/> + <rMaterial name="tobmaterial:TOB_middle_ribs"/> + </LogicalPart> + <LogicalPart name="TOBMidRib2" category="unspecified"> + <rSolid name="TOBMidRib2"/> + <rMaterial name="tobmaterial:TOB_middle_ribs"/> + </LogicalPart> + <LogicalPart name="TOBMidRib3" category="unspecified"> + <rSolid name="TOBMidRib3"/> + <rMaterial name="tobmaterial:TOB_middle_ribs"/> + </LogicalPart> + <LogicalPart name="TOBMidRib4" category="unspecified"> + <rSolid name="TOBMidRib4"/> + <rMaterial name="tobmaterial:TOB_middle_ribs"/> + </LogicalPart> + <LogicalPart name="TOBMidRib5" category="unspecified"> + <rSolid name="TOBMidRib5"/> + <rMaterial name="tobmaterial:TOB_middle_ribs"/> + </LogicalPart> + <LogicalPart name="TOBMidRib6" category="unspecified"> + <rSolid name="TOBMidRib6"/> + <rMaterial name="tobmaterial:TOB_middle_ribs"/> + </LogicalPart> + <LogicalPart name="TOBDOHM" category="unspecified"> + <rSolid name="TOBDOHM"/> + <rMaterial name="tobmaterial:TOB_DOHM"/> + </LogicalPart> + <LogicalPart name="TOBLayer0" category="unspecified"> + <rSolid name="TOBLayer0"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TOBLayer1" category="unspecified"> + <rSolid name="TOBLayer1"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TOBLayer2" category="unspecified"> + <rSolid name="TOBLayer2"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TOBLayer3" category="unspecified"> + <rSolid name="TOBLayer3"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TOBLayer4" category="unspecified"> + <rSolid name="TOBLayer4"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TOBLayer5" category="unspecified"> + <rSolid name="TOBLayer5"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TOBSideDisk" category="unspecified"> + <rSolid name="TOBSideDisk"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TOBAxCabCont" category="unspecified"> + <rSolid name="TOBAxCabCont"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TOBDOHMs" category="unspecified"> + <rSolid name="TOBDOHMs"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + </LogicalPartSection> + <PosPartSection label="tob.xml"> + <PosPart copyNumber="1"> + <rParent name="tob:TOB"/> + <rChild name="tob:TIBStiffener"/> + <Translation x="[RailInX]" y="[StiffenerY]" z="[zero]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tob:TOB"/> + <rChild name="tob:TIBStiffener"/> + <Translation x="-[RailInX]" y="[StiffenerY]" z="[zero]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tob:TOB"/> + <rChild name="tob:TIBRailTop"/> + <Translation x="[RailInX]" y="-[RailTopDy]" z="[zero]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tob:TOB"/> + <rChild name="tob:TIBRailTop"/> + <Translation x="-[RailInX]" y="-[RailTopDy]" z="[zero]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tob:TOB"/> + <rChild name="tob:TIBRailBottom"/> + <Translation x="[RailInX]" y="-2*[RailTopDy]-[RailBottomDy]" z="[zero]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tob:TOB"/> + <rChild name="tob:TIBRailBottom"/> + <Translation x="-[RailInX]" y="-2*[RailTopDy]-[RailBottomDy]" z="[zero]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tob:TOB"/> + <rChild name="tob:TOBAlPiece1"/> + <Translation x="[zero]" y="[zero]" z="-[AlPieceZ]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tob:TOB"/> + <rChild name="tob:TOBAlPiece1"/> + <Translation x="[zero]" y="[zero]" z="[AlPieceZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tob:TOB"/> + <rChild name="tob:TOBAlPiece2"/> + <Translation x="[zero]" y="[zero]" z="-[AlPieceZ]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tob:TOB"/> + <rChild name="tob:TOBAlPiece2"/> + <Translation x="[zero]" y="[zero]" z="[AlPieceZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tob:TOB"/> + <rChild name="tob:TOBAlPiece3"/> + <Translation x="[zero]" y="[zero]" z="-[AlPieceZ]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tob:TOB"/> + <rChild name="tob:TOBAlPiece3"/> + <Translation x="[zero]" y="[zero]" z="[AlPieceZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tob:TOB"/> + <rChild name="tob:TOBAlPiece4"/> + <Translation x="[zero]" y="[zero]" z="-[AlPieceZ]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tob:TOB"/> + <rChild name="tob:TOBAlPiece4"/> + <Translation x="[zero]" y="[zero]" z="[AlPieceZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tob:TOB"/> + <rChild name="tob:TOBCFTube1"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tob:TOBCFTube1"/> + <rChild name="tob:TOBNomexTube1"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tob:TOB"/> + <rChild name="tob:TOBCFTube2"/> + <Translation x="[zero]" y="[zero]" z="[CFTubeZ]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tob:TOB"/> + <rChild name="tob:TOBCFTube2"/> + <Translation x="[zero]" y="[zero]" z="-[CFTubeZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tob:TOBCFTube2"/> + <rChild name="tob:TOBNomexTube2"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tob:TOB"/> + <rChild name="tob:TOBCFTube3"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tob:TOBCFTube3"/> + <rChild name="tob:TOBNomexTube3"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tob:TOBAlignTube3"/> + <rChild name="tob:TOBAlignT3In"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tob:TOB"/> + <rChild name="tob:TOBCFTube4"/> + <Translation x="[zero]" y="[zero]" z="[CFTubeZ]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tob:TOB"/> + <rChild name="tob:TOBCFTube4"/> + <Translation x="[zero]" y="[zero]" z="-[CFTubeZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tob:TOBCFTube4"/> + <rChild name="tob:TOBNomexTube4"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tob:TOBAlignTube4"/> + <rChild name="tob:TOBAlignT4In"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tob:TOB"/> + <rChild name="tob:TOBLayer0"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tob:TOB"/> + <rChild name="tob:TOBLayer1"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tob:TOB"/> + <rChild name="tob:TOBLayer2"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tob:TOB"/> + <rChild name="tob:TOBLayer3"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tob:TOB"/> + <rChild name="tob:TOBLayer4"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tob:TOB"/> + <rChild name="tob:TOBLayer5"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tob:TOB"/> + <rChild name="tob:TOBSideDisk"/> + <Translation x="[zero]" y="[zero]" z="[SideDiskZ]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tob:TOB"/> + <rChild name="tob:TOBSideDisk"/> + <rRotation name="tobrodpar:180D"/> + <Translation x="[zero]" y="[zero]" z="-[SideDiskZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tob:TOB"/> + <rChild name="tob:TOBDOHMs"/> + <Translation x="[zero]" y="[zero]" z="[SideDiskZ]+[SideDiskDz]+[DOHMsDz]+[Tol]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tob:TOB"/> + <rChild name="tob:TOBDOHMs"/> + <Translation x="[zero]" y="[zero]" z="-([SideDiskZ]+[SideDiskDz]+[DOHMsDz]+[Tol])"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tob:TOB"/> + <rChild name="tob:TOBAxCabCont"/> + <Translation x="[zero]" y="[zero]" z="[AxCableZ]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tob:TOB"/> + <rChild name="tob:TOBAxCabCont"/> + <Translation x="[zero]" y="[zero]" z="-[AxCableZ]"/> + </PosPart> + </PosPartSection> + <Algorithm name="track:DDTrackerZPosAlgo"> + <rParent name="tob:TOB"/> + <String name="ChildName" value="tob:TOBPotting1"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Vector name="ZPositions" type="numeric" nEntries="6"> + -[PottingZ1],-[PottingZ2],-[PottingZ3], [PottingZ3], [PottingZ2], [PottingZ1] + </Vector> + <Vector name="Rotations" type="string" nEntries="6"> + tobrodpar:NULL, tobrodpar:NULL, tobrodpar:NULL, tobrodpar:NULL, + tobrodpar:NULL, tobrodpar:NULL</Vector> + </Algorithm> + <Algorithm name="track:DDTrackerZPosAlgo"> + <rParent name="tob:TOB"/> + <String name="ChildName" value="tob:TOBPotting2"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Vector name="ZPositions" type="numeric" nEntries="6"> + -[PottingZ1],-[PottingZ2],-[PottingZ3], [PottingZ3], [PottingZ2], [PottingZ1] + </Vector> + <Vector name="Rotations" type="string" nEntries="6"> + tobrodpar:NULL, tobrodpar:NULL, tobrodpar:NULL, tobrodpar:NULL, + tobrodpar:NULL, tobrodpar:NULL</Vector> + </Algorithm> + <Algorithm name="track:DDTrackerZPosAlgo"> + <rParent name="tob:TOB"/> + <String name="ChildName" value="tob:TOBConnect2"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Vector name="ZPositions" type="numeric" nEntries="6"> + -[ConnectZ21],-[ConnectZ22],-[ConnectZ23], [ConnectZ23], + [ConnectZ22], [ConnectZ21] </Vector> + <Vector name="Rotations" type="string" nEntries="6"> + tobrodpar:NULL, tobrodpar:NULL, tobrodpar:NULL, tobrodpar:NULL, + tobrodpar:NULL, tobrodpar:NULL</Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tob:TOBConnect2"/> + <String name="ChildName" value="tob:TOBAlConnect2"/> + <Numeric name="N" value="16"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[ConnectStartPhi]"/> + <Numeric name="Radius" value="0"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, 0 </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tob:TOBConnect2"/> + <String name="ChildName" value="tob:TOBAlConnect2"/> + <Numeric name="N" value="2"/> + <Numeric name="StartCopyNo" value="17"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="0*deg"/> + <Numeric name="Radius" value="0"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, 0 </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerZPosAlgo"> + <rParent name="tob:TOB"/> + <String name="ChildName" value="tob:TOBConnect3"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Vector name="ZPositions" type="numeric" nEntries="6"> + -[ConnectZ21],-[ConnectZ22],-[ConnectZ23], [ConnectZ23], + [ConnectZ22], [ConnectZ21] </Vector> + <Vector name="Rotations" type="string" nEntries="6"> + tobrodpar:NULL, tobrodpar:NULL, tobrodpar:NULL, tobrodpar:NULL, + tobrodpar:NULL, tobrodpar:NULL</Vector> + </Algorithm> + <Algorithm name="track:DDTrackerZPosAlgo"> + <rParent name="tob:TOB"/> + <String name="ChildName" value="tob:TOBConnect23"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Vector name="ZPositions" type="numeric" nEntries="6"> + -[ConnectZ21]-[Connect23ZOffset],-[ConnectZ22]+[Connect23ZOffset],-[ConnectZ23]-[Connect23ZOffset], [ConnectZ23]+[Connect23ZOffset], + [ConnectZ22]-[Connect23ZOffset], [ConnectZ21]+[Connect23ZOffset] </Vector> + <Vector name="Rotations" type="string" nEntries="6"> + tobrodpar:NULL, tobrodpar:NULL, tobrodpar:NULL, tobrodpar:NULL, + tobrodpar:NULL, tobrodpar:NULL</Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tob:TOBConnect3"/> + <String name="ChildName" value="tob:TOBAlConnect3"/> + <Numeric name="N" value="16"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[ConnectStartPhi]"/> + <Numeric name="Radius" value="0"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, 0 </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tob:TOBConnect3"/> + <String name="ChildName" value="tob:TOBAlConnect3"/> + <Numeric name="N" value="2"/> + <Numeric name="StartCopyNo" value="17"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="0*deg"/> + <Numeric name="Radius" value="0"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, 0 </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tob:TOBConnect23"/> + <String name="ChildName" value="tob:TOBAlConnect23"/> + <Numeric name="N" value="16"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[ConnectStartPhi]"/> + <Numeric name="Radius" value="0"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, 0 </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tob:TOBConnect23"/> + <String name="ChildName" value="tob:TOBAlConnect23"/> + <Numeric name="N" value="2"/> + <Numeric name="StartCopyNo" value="17"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="0*deg"/> + <Numeric name="Radius" value="0"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, 0 </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tob:TOBConnect4"/> + <String name="ChildName" value="tob:TOBAlConnect4"/> + <Numeric name="N" value="2"/> + <Numeric name="StartCopyNo" value="17"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="0*deg"/> + <Numeric name="Radius" value="0"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, 0 </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerZPosAlgo"> + <rParent name="tob:TOB"/> + <String name="ChildName" value="tob:TOBConnect5"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Vector name="ZPositions" type="numeric" nEntries="6"> + -[ConnectZ21],-[ConnectZ22],-[ConnectZ23], [ConnectZ23], + [ConnectZ22], [ConnectZ21] </Vector> + <Vector name="Rotations" type="string" nEntries="6"> + tobrodpar:NULL, tobrodpar:NULL, tobrodpar:NULL, tobrodpar:NULL, + tobrodpar:NULL, tobrodpar:NULL</Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tob:TOBConnect5"/> + <String name="ChildName" value="tob:TOBAlConnect5"/> + <Numeric name="N" value="16"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[ConnectStartPhi]"/> + <Numeric name="Radius" value="0"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, 0 </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tob:TOBConnect5"/> + <String name="ChildName" value="tob:TOBAlConnect5"/> + <Numeric name="N" value="2"/> + <Numeric name="StartCopyNo" value="17"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="0*deg"/> + <Numeric name="Radius" value="0"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, 0 </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerZPosAlgo"> + <rParent name="tob:TOB"/> + <String name="ChildName" value="tob:TOBConnect6"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Vector name="ZPositions" type="numeric" nEntries="6"> + -[ConnectZ21],-[ConnectZ22],-[ConnectZ23], [ConnectZ23], + [ConnectZ22], [ConnectZ21] </Vector> + <Vector name="Rotations" type="string" nEntries="6"> + tobrodpar:NULL, tobrodpar:NULL, tobrodpar:NULL, tobrodpar:NULL, + tobrodpar:NULL, tobrodpar:NULL</Vector> + </Algorithm> + <Algorithm name="track:DDTrackerZPosAlgo"> + <rParent name="tob:TOB"/> + <String name="ChildName" value="tob:TOBConnect56"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Vector name="ZPositions" type="numeric" nEntries="6"> + -[ConnectZ21]-[Connect56ZOffset],-[ConnectZ22]+[Connect56ZOffset],-[ConnectZ23]-[Connect56ZOffset], [ConnectZ23]+[Connect56ZOffset], + [ConnectZ22]-[Connect56ZOffset], [ConnectZ21]+[Connect56ZOffset] </Vector> + <Vector name="Rotations" type="string" nEntries="6"> + tobrodpar:NULL, tobrodpar:NULL, tobrodpar:NULL, tobrodpar:NULL, + tobrodpar:NULL, tobrodpar:NULL</Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tob:TOBConnect6"/> + <String name="ChildName" value="tob:TOBAlConnect6"/> + <Numeric name="N" value="16"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[ConnectStartPhi]"/> + <Numeric name="Radius" value="0"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, 0 </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tob:TOBConnect6"/> + <String name="ChildName" value="tob:TOBAlConnect6"/> + <Numeric name="N" value="2"/> + <Numeric name="StartCopyNo" value="17"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="0*deg"/> + <Numeric name="Radius" value="0"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, 0 </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tob:TOBConnect56"/> + <String name="ChildName" value="tob:TOBAlConnect56"/> + <Numeric name="N" value="16"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="[ConnectStartPhi]"/> + <Numeric name="Radius" value="0"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, 0 </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="tob:TOBConnect56"/> + <String name="ChildName" value="tob:TOBAlConnect56"/> + <Numeric name="N" value="2"/> + <Numeric name="StartCopyNo" value="17"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="0*deg"/> + <Numeric name="Radius" value="0"/> + <Vector name="Center" type="numeric" nEntries="3"> 0, 0, 0 </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerZPosAlgo"> + <rParent name="tob:TOB"/> + <String name="ChildName" value="tob:TOBMidRib0"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Vector name="ZPositions" type="numeric" nEntries="4"> + -[RibZ1], -[RibZ2], [RibZ2], [RibZ1] </Vector> + <Vector name="Rotations" type="string" nEntries="4"> + tobrodpar:NULL, tobrodpar:NULL, tobrodpar:NULL, tobrodpar:NULL</Vector> + </Algorithm> + <Algorithm name="track:DDTrackerZPosAlgo"> + <rParent name="tob:TOB"/> + <String name="ChildName" value="tob:TOBMidRib1"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Vector name="ZPositions" type="numeric" nEntries="4"> + -[RibZ1], -[RibZ2], [RibZ2], [RibZ1] </Vector> + <Vector name="Rotations" type="string" nEntries="4"> + tobrodpar:NULL, tobrodpar:NULL, tobrodpar:NULL, tobrodpar:NULL</Vector> + </Algorithm> + <Algorithm name="track:DDTrackerZPosAlgo"> + <rParent name="tob:TOB"/> + <String name="ChildName" value="tob:TOBMidRib2"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Vector name="ZPositions" type="numeric" nEntries="4"> + -[RibZ1], -[RibZ2], [RibZ2], [RibZ1] </Vector> + <Vector name="Rotations" type="string" nEntries="4"> + tobrodpar:NULL, tobrodpar:NULL, tobrodpar:NULL, tobrodpar:NULL</Vector> + </Algorithm> + <Algorithm name="track:DDTrackerZPosAlgo"> + <rParent name="tob:TOB"/> + <String name="ChildName" value="tob:TOBMidRib3"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Vector name="ZPositions" type="numeric" nEntries="4"> + -[RibZ1], -[RibZ2], [RibZ2], [RibZ1] </Vector> + <Vector name="Rotations" type="string" nEntries="4"> + tobrodpar:NULL, tobrodpar:NULL, tobrodpar:NULL, tobrodpar:NULL</Vector> + </Algorithm> + <Algorithm name="track:DDTrackerZPosAlgo"> + <rParent name="tob:TOB"/> + <String name="ChildName" value="tob:TOBMidRib4"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Vector name="ZPositions" type="numeric" nEntries="4"> + -[RibZ1], -[RibZ2], [RibZ2], [RibZ1] </Vector> + <Vector name="Rotations" type="string" nEntries="4"> + tobrodpar:NULL, tobrodpar:NULL, tobrodpar:NULL, tobrodpar:NULL</Vector> + </Algorithm> + <Algorithm name="track:DDTrackerZPosAlgo"> + <rParent name="tob:TOB"/> + <String name="ChildName" value="tob:TOBMidRib5"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Vector name="ZPositions" type="numeric" nEntries="4"> + -[RibZ1], -[RibZ2], [RibZ2], [RibZ1] </Vector> + <Vector name="Rotations" type="string" nEntries="4"> + tobrodpar:NULL, tobrodpar:NULL, tobrodpar:NULL, tobrodpar:NULL</Vector> + </Algorithm> + <Algorithm name="track:DDTrackerZPosAlgo"> + <rParent name="tob:TOB"/> + <String name="ChildName" value="tob:TOBMidRib6"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Vector name="ZPositions" type="numeric" nEntries="4"> + -[RibZ1], -[RibZ2], [RibZ2], [RibZ1] </Vector> + <Vector name="Rotations" type="string" nEntries="4"> + tobrodpar:NULL, tobrodpar:NULL, tobrodpar:NULL, tobrodpar:NULL</Vector> + </Algorithm> + <Algorithm name="track:DDTrackerPhiAltAlgo"> + <rParent name="tob:TOBLayer0"/> + <String name="ChildName" value="tobrod0:TOBRod0"/> + <Numeric name="Tilt" value="[DetectorTilt]"/> + <Numeric name="StartAngle" value="5.3571*deg"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="RadiusIn" value="[Layer0LowR]"/> + <Numeric name="RadiusOut" value="[Layer0HighR]"/> + <Numeric name="ZPosition" value="[zero]"/> + <Numeric name="Number" value="42"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + </Algorithm> + <Algorithm name="track:DDTrackerPhiAltAlgo"> + <rParent name="tob:TOBLayer1"/> + <String name="ChildName" value="tobrod1:TOBRod1"/> + <Numeric name="Tilt" value="[DetectorTilt]"/> + <Numeric name="StartAngle" value="2.1601*deg"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="RadiusIn" value="[Layer1LowR]"/> + <Numeric name="RadiusOut" value="[Layer1HighR]"/> + <Numeric name="ZPosition" value="[zero]"/> + <Numeric name="Number" value="48"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + </Algorithm> + <Algorithm name="track:DDTrackerPhiAltAlgo"> + <rParent name="tob:TOBLayer2"/> + <String name="ChildName" value="tobrod2:TOBRod2"/> + <Numeric name="Tilt" value="[DetectorTilt]"/> + <Numeric name="StartAngle" value="13.0309*deg"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="RadiusIn" value="[Layer2LowR]"/> + <Numeric name="RadiusOut" value="[Layer2HighR]"/> + <Numeric name="ZPosition" value="[zero]"/> + <Numeric name="Number" value="54"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + </Algorithm> + <Algorithm name="track:DDTrackerPhiAltAlgo"> + <rParent name="tob:TOBLayer3"/> + <String name="ChildName" value="tobrod3:TOBRod3"/> + <Numeric name="Tilt" value="[DetectorTilt]"/> + <Numeric name="StartAngle" value="1.5802*deg"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="RadiusIn" value="[Layer3LowR]"/> + <Numeric name="RadiusOut" value="[Layer3HighR]"/> + <Numeric name="ZPosition" value="[zero]"/> + <Numeric name="Number" value="60"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + </Algorithm> + <Algorithm name="track:DDTrackerPhiAltAlgo"> + <rParent name="tob:TOBLayer4"/> + <String name="ChildName" value="tobrod4:TOBRod4"/> + <Numeric name="Tilt" value="[DetectorTilt]"/> + <Numeric name="StartAngle" value="8.4397*deg"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="RadiusIn" value="[Layer4LowR]"/> + <Numeric name="RadiusOut" value="[Layer4HighR]"/> + <Numeric name="ZPosition" value="[zero]"/> + <Numeric name="Number" value="66"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + </Algorithm> + <Algorithm name="track:DDTrackerPhiAltAlgo"> + <rParent name="tob:TOBLayer5"/> + <String name="ChildName" value="tobrod5:TOBRod5"/> + <Numeric name="Tilt" value="[DetectorTilt]"/> + <Numeric name="StartAngle" value="1.3779*deg"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="RadiusIn" value="[Layer5LowR]"/> + <Numeric name="RadiusOut" value="[Layer5HighR]"/> + <Numeric name="ZPosition" value="[zero]"/> + <Numeric name="Number" value="74"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + </Algorithm> + <Algorithm name="track:DDTrackerPhiAlgo"> + <rParent name="tob:TOBNomexTube3"/> + <String name="ChildName" value="tob:TOBNomexT3In1"/> + <Numeric name="Radius" value="[zero]"/> + <Numeric name="Tilt" value="0*deg"/> + <Vector name="Phi" type="numeric" nEntries="5"> + [NomexInPhi1], [NomexInPhi3], [NomexInPhi4], [NomexInPhi6], [NomexInPhi8] + </Vector> + <Vector name="ZPos" type="numeric" nEntries="5"> + [zero], [zero], [zero], [zero], [zero] + </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerPhiAlgo"> + <rParent name="tob:TOBNomexTube3"/> + <String name="ChildName" value="tob:TOBNomexT3In2"/> + <Numeric name="Radius" value="[zero]"/> + <Numeric name="Tilt" value="0*deg"/> + <Vector name="Phi" type="numeric" nEntries="2"> + [NomexInPhi2], [NomexInPhi7] + </Vector> + <Vector name="ZPos" type="numeric" nEntries="2"> + [zero], [zero] + </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerPhiAlgo"> + <rParent name="tob:TOBNomexTube3"/> + <String name="ChildName" value="tob:TOBNomexT3In3"/> + <Numeric name="Radius" value="[zero]"/> + <Numeric name="Tilt" value="0*deg"/> + <Vector name="Phi" type="numeric" nEntries="1"> + [NomexInPhi5] + </Vector> + <Vector name="ZPos" type="numeric" nEntries="1"> + [zero] + </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerPhiAlgo"> + <rParent name="tob:TOBNomexTube3"/> + <String name="ChildName" value="tob:TOBAlignTube3"/> + <Numeric name="Radius" value="([NomexTubeRin2]+[NomexTubeRout2])/2"/> + <Numeric name="Tilt" value="0*deg"/> + <Vector name="Phi" type="numeric" nEntries="8"> + [AlignPhi1], [AlignPhi2], [AlignPhi3], [AlignPhi4], + [AlignPhi5], [AlignPhi6], [AlignPhi7], [AlignPhi8] + </Vector> + <Vector name="ZPos" type="numeric" nEntries="8"> + [zero], [zero], [zero], [zero], [zero], [zero], [zero], [zero] + </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerPhiAlgo"> + <rParent name="tob:TOBNomexTube4"/> + <String name="ChildName" value="tob:TOBNomexT4In1"/> + <Numeric name="Radius" value="[zero]"/> + <Numeric name="Tilt" value="0*deg"/> + <Vector name="Phi" type="numeric" nEntries="5"> + [NomexInPhi1], [NomexInPhi3], [NomexInPhi4], [NomexInPhi6], [NomexInPhi8] + </Vector> + <Vector name="ZPos" type="numeric" nEntries="5"> + [zero], [zero], [zero], [zero], [zero] + </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerPhiAlgo"> + <rParent name="tob:TOBNomexTube4"/> + <String name="ChildName" value="tob:TOBNomexT4In2"/> + <Numeric name="Radius" value="[zero]"/> + <Numeric name="Tilt" value="0*deg"/> + <Vector name="Phi" type="numeric" nEntries="2"> + [NomexInPhi2], [NomexInPhi7] + </Vector> + <Vector name="ZPos" type="numeric" nEntries="2"> + [zero], [zero] + </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerPhiAlgo"> + <rParent name="tob:TOBNomexTube4"/> + <String name="ChildName" value="tob:TOBNomexT4In3"/> + <Numeric name="Radius" value="[zero]"/> + <Numeric name="Tilt" value="0*deg"/> + <Vector name="Phi" type="numeric" nEntries="1"> + [NomexInPhi5] + </Vector> + <Vector name="ZPos" type="numeric" nEntries="1"> + [zero] + </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerPhiAlgo"> + <rParent name="tob:TOBNomexTube4"/> + <String name="ChildName" value="tob:TOBAlignTube4"/> + <Numeric name="Radius" value="([NomexTubeRin2]+[NomexTubeRout2])/2"/> + <Numeric name="Tilt" value="0*deg"/> + <Vector name="Phi" type="numeric" nEntries="8"> + [AlignPhi1], [AlignPhi2], [AlignPhi3], [AlignPhi4], + [AlignPhi5], [AlignPhi6], [AlignPhi7], [AlignPhi8] + </Vector> + <Vector name="ZPos" type="numeric" nEntries="8"> + [zero], [zero], [zero], [zero], [zero], [zero], [zero], [zero] + </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerPhiAlgo"> + <rParent name="tob:TOBPotting2"/> + <String name="ChildName" value="tob:TOBPotting2I1"/> + <Numeric name="Radius" value="[zero]"/> + <Numeric name="Tilt" value="0*deg"/> + <Vector name="Phi" type="numeric" nEntries="5"> + [NomexInPhi1], [NomexInPhi3], [NomexInPhi4], [NomexInPhi6], [NomexInPhi8] + </Vector> + <Vector name="ZPos" type="numeric" nEntries="5"> + [zero], [zero], [zero], [zero], [zero] + </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerPhiAlgo"> + <rParent name="tob:TOBPotting2"/> + <String name="ChildName" value="tob:TOBPotting2I2"/> + <Numeric name="Radius" value="[zero]"/> + <Numeric name="Tilt" value="0*deg"/> + <Vector name="Phi" type="numeric" nEntries="2"> + [NomexInPhi2], [NomexInPhi7] + </Vector> + <Vector name="ZPos" type="numeric" nEntries="2"> + [zero], [zero] + </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerPhiAlgo"> + <rParent name="tob:TOBPotting2"/> + <String name="ChildName" value="tob:TOBPotting2I3"/> + <Numeric name="Radius" value="[zero]"/> + <Numeric name="Tilt" value="0*deg"/> + <Vector name="Phi" type="numeric" nEntries="1"> + [NomexInPhi5] + </Vector> + <Vector name="ZPos" type="numeric" nEntries="1"> + [zero] + </Vector> + </Algorithm> + <Algorithm name="track:DDTOBRadCableAlgo"> + <rParent name="tob:TOBSideDisk"/> + <Numeric name="DiskDz" value="[SideDiskDz]"/> + <Numeric name="RMax" value="[Rin3]"/> + <Numeric name="CableT" value="0.7*cm"/> + <Vector name="RodRin" type="numeric" nEntries="6"> + [Layer0LowR], [Layer1LowR], [Layer2LowR], + [Layer3LowR], [Layer4LowR], [Layer5LowR] + </Vector> + <Vector name="RodRout" type="numeric" nEntries="6"> + [Layer0HighR], [Layer1HighR], [Layer2HighR], + [Layer3HighR], [Layer4HighR], [Layer5HighR] + </Vector> + <Vector name="CableMaterial" type="string" nEntries="6"> + tobmaterial:TOB_rad_services1, tobmaterial:TOB_rad_services2, + tobmaterial:TOB_rad_services3, tobmaterial:TOB_rad_services4, + tobmaterial:TOB_rad_services5, tobmaterial:TOB_rad_services6 + </Vector> + <Numeric name="ConnW" value="4.0*cm"/> + <Numeric name="ConnT" value="2.3*cm"/> + <Vector name="ConnMaterial" type="string" nEntries="6"> + tobmaterial:TOB_rib1, tobmaterial:TOB_rib2, tobmaterial:TOB_rib3, + tobmaterial:TOB_rib4, tobmaterial:TOB_rib5, tobmaterial:TOB_rib6 + </Vector> + <Numeric name="CoolRin" value="[zero]"/> + <Numeric name="CoolRout1" value="3.0*mm"/> + <Numeric name="CoolRout2" value="2.8*mm"/> + <Numeric name="CoolStartPhi1" value="0*deg"/> + <Numeric name="CoolDeltaPhi1" value="360*deg"/> + <Numeric name="CoolStartPhi2" value="0*deg"/> + <Numeric name="CoolDeltaPhi2" value="360*deg"/> + <Vector name="CoolR1" type="numeric" nEntries="6"> + [Layer0CoolRa], [Layer1CoolRa], [Layer2CoolRa], + [Layer3CoolRa], [Layer4CoolRa], [Layer5CoolRa] + </Vector> + <Vector name="CoolR2" type="numeric" nEntries="6"> + [Layer0CoolRr], [Layer1CoolRr], [Layer2CoolRr], + [Layer3CoolRr], [Layer4CoolRr], [Layer5CoolRr] + </Vector> + <String name="CoolMaterial1" value="trackermaterial:T_CuNi"/> + <String name="CoolMaterial2" value="trackermaterial:T_C6F14_F2_-30C"/> + <Vector name="RingName" type="string" nEntries="6"> + 1, 2, 3, 4, 5, 6 + </Vector> + </Algorithm> + <Algorithm name="track:DDTOBAxCableAlgo"> + <rParent name="tob:TOBAxCabCont"/> + <Vector name="SectorNumber" type="string" nEntries="18"> + 1 , 2 , 3 , 4 , 5 , 6 , + 7 , 8 , 9 , 10 , 11 , 12 , + 13 , 14 , 15 , 16 , 17 , 18 + </Vector> + <Numeric name="SectorRin" value="[AxCableRin]"/> + <Numeric name="SectorRout" value="[AxCableRout]"/> + <Numeric name="SectorDz" value="[AxCableDz]"/> + <Numeric name="SectorDeltaPhi_B" value="2*deg"/> + <Vector name="SectorStartPhi" type="numeric" nEntries="18"> + -10*deg , 10*deg , 30*deg , 50*deg , 70*deg , 90*deg , + 110*deg , 130*deg , 150*deg , 170*deg , 190*deg , 210*deg , + 230*deg , 250*deg , 270*deg , 290*deg , 310*deg , 330*deg + </Vector> + <Vector name="SectorMaterial_A" type="string" nEntries="18"> + materials:Air , tobmaterial:TOB_ax_services_A2 , + tobmaterial:TOB_ax_services_A3 , tobmaterial:TOB_ax_services_A4 , + tobmaterial:TOB_ax_services_A5 , materials:Air , + tobmaterial:TOB_ax_services_A7 , tobmaterial:TOB_ax_services_A8 , + tobmaterial:TOB_ax_services_A9 , materials:Air , + tobmaterial:TOB_ax_services_A11 , tobmaterial:TOB_ax_services_A12 , + tobmaterial:TOB_ax_services_A13 , tobmaterial:TOB_ax_services_A14 , + materials:Air , tobmaterial:TOB_ax_services_A16 , + tobmaterial:TOB_ax_services_A17 , tobmaterial:TOB_ax_services_A18 + </Vector> + <Vector name="SectorMaterial_B" type="string" nEntries="18"> + materials:Air , tobmaterial:TOB_ax_services_B2 , + tobmaterial:TOB_ax_services_B3 , tobmaterial:TOB_ax_services_B4 , + tobmaterial:TOB_ax_services_B5 , tobmaterial:TOB_ax_services_B6 , + tobmaterial:TOB_ax_services_B7 , tobmaterial:TOB_ax_services_B8 , + tobmaterial:TOB_ax_services_B9 , materials:Air , + tobmaterial:TOB_ax_services_B11 , tobmaterial:TOB_ax_services_B12 , + tobmaterial:TOB_ax_services_B13 , tobmaterial:TOB_ax_services_B14 , + tobmaterial:TOB_ax_services_B15 , tobmaterial:TOB_ax_services_B16 , + tobmaterial:TOB_ax_services_B17 , tobmaterial:TOB_ax_services_B18 + </Vector> + <Vector name="SectorMaterial_C" type="string" nEntries="18"> + materials:Air , tobmaterial:TOB_ax_services_C2 , + tobmaterial:TOB_ax_services_C3 , tobmaterial:TOB_ax_services_C4 , + materials:Air , tobmaterial:TOB_ax_services_C6 , + tobmaterial:TOB_ax_services_C7 , tobmaterial:TOB_ax_services_C8 , + tobmaterial:TOB_ax_services_C9 , materials:Air , + tobmaterial:TOB_ax_services_C11 , tobmaterial:TOB_ax_services_C12 , + tobmaterial:TOB_ax_services_C13 , materials:Air , + tobmaterial:TOB_ax_services_C15 , tobmaterial:TOB_ax_services_C16 , + tobmaterial:TOB_ax_services_C17 , tobmaterial:TOB_ax_services_C18 + </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerPhiAlgo"> + <rParent name="tob:TOBDOHMs"/> + <String name="ChildName" value="tob:TOBDOHM"/> + <Numeric name="Radius" value="[DOHMRadius1]"/> + <Numeric name="Tilt" value="0*deg"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Vector name="Phi" type="numeric" nEntries="15"> + [DOHM_R1_phi1] , [DOHM_R1_phi2] , [DOHM_R1_phi3] , [DOHM_R1_phi4] , [DOHM_R1_phi5] , + [DOHM_R1_phi6] , [DOHM_R1_phi7] , [DOHM_R1_phi8] , [DOHM_R1_phi9] , [DOHM_R1_phi10] , + [DOHM_R1_phi11] , [DOHM_R1_phi12] , [DOHM_R1_phi13] , [DOHM_R1_phi14] , [DOHM_R1_phi15] + </Vector> + <Vector name="ZPos" type="numeric" nEntries="15"> + [zero] , [zero] , [zero] , [zero] , [zero] , + [zero] , [zero] , [zero] , [zero] , [zero] , + [zero] , [zero] , [zero] , [zero] , [zero] + </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerPhiAlgo"> + <rParent name="tob:TOBDOHMs"/> + <String name="ChildName" value="tob:TOBDOHM"/> + <Numeric name="Radius" value="[DOHMRadius2]"/> + <Numeric name="Tilt" value="0*deg"/> + <Numeric name="StartCopyNo" value="16"/> + <Numeric name="IncrCopyNo" value="1"/> + <Vector name="Phi" type="numeric" nEntries="15"> + [DOHM_R2_phi1] , [DOHM_R2_phi2] , [DOHM_R2_phi3] , [DOHM_R2_phi4] , [DOHM_R2_phi5] , + [DOHM_R2_phi6] , [DOHM_R2_phi7] , [DOHM_R2_phi8] , [DOHM_R2_phi9] , [DOHM_R2_phi10] , + [DOHM_R2_phi11] , [DOHM_R2_phi12] , [DOHM_R2_phi13] , [DOHM_R2_phi14] , [DOHM_R2_phi15] + </Vector> + <Vector name="ZPos" type="numeric" nEntries="15"> + [zero] , [zero] , [zero] , [zero] , [zero] , + [zero] , [zero] , [zero] , [zero] , [zero] , + [zero] , [zero] , [zero] , [zero] , [zero] + </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerPhiAlgo"> + <rParent name="tob:TOBDOHMs"/> + <String name="ChildName" value="tob:TOBDOHM"/> + <Numeric name="Radius" value="[DOHMRadius3]"/> + <Numeric name="Tilt" value="0*deg"/> + <Numeric name="StartCopyNo" value="31"/> + <Numeric name="IncrCopyNo" value="1"/> + <Vector name="Phi" type="numeric" nEntries="16"> + [DOHM_R3_phi1] , [DOHM_R3_phi2] , [DOHM_R3_phi3] , [DOHM_R3_phi4] , [DOHM_R3_phi5] , + [DOHM_R3_phi6] , [DOHM_R3_phi7] , [DOHM_R3_phi8] , [DOHM_R3_phi9] , [DOHM_R3_phi10] , + [DOHM_R3_phi11] , [DOHM_R3_phi12] , [DOHM_R3_phi13] , [DOHM_R3_phi14] , [DOHM_R3_phi15] , + [DOHM_R3_phi16] + </Vector> + <Vector name="ZPos" type="numeric" nEntries="16"> + [zero] , [zero] , [zero] , [zero] , [zero] , + [zero] , [zero] , [zero] , [zero] , [zero] , + [zero] , [zero] , [zero] , [zero] , [zero] , + [zero] + </Vector> + </Algorithm> +</DDDefinition> diff --git a/examples/DDCMS/data/tobmaterial.xml b/examples/DDCMS/data/tobmaterial.xml new file mode 100644 index 0000000000000000000000000000000000000000..ac544987094088e645a7f7ce1b20ed99e6359c3a --- /dev/null +++ b/examples/DDCMS/data/tobmaterial.xml @@ -0,0 +1,2248 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <MaterialSection label="tobmaterial.xml"> + <CompositeMaterial name="TOB_PA_rphi" density="2.33941*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.60133"> + <rMaterial name="materials:Borosilicate_Glass" /> + </MaterialFraction> + <MaterialFraction fraction="0.39867"> + <rMaterial name="materials:Ceramic" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TOB_PA_ster" density="2.52355*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.61865"> + <rMaterial name="materials:Borosilicate_Glass" /> + </MaterialFraction> + <MaterialFraction fraction="0.38135"> + <rMaterial name="materials:Ceramic" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TOB_frame_ele" density="1.53600*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.99614"> + <rMaterial name="trackermaterial:T_CarbonFibreStr" /> + </MaterialFraction> + <MaterialFraction fraction="0.00386"> + <rMaterial name="materials:T_Kapton" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TOB_hybrid_supp" density="3.05582*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="1.00000"> + <rMaterial name="materials:Ceramic" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TOB_mod_cool1" density="3.96724*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.81568"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + <MaterialFraction fraction="0.18432"> + <rMaterial name="materials:Steel-008" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TOB_mod_cool2" density="4.39847*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.65993"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + <MaterialFraction fraction="0.12667"> + <rMaterial name="materials:Steel-008" /> + </MaterialFraction> + <MaterialFraction fraction="0.21341"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TOB_mod_comp" density="1.37093*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="1.00000"> + <rMaterial name="trackermaterial:T_CarbonFibreStr" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TOB_sid_rail1" density="1.75613*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.77208"> + <rMaterial name="trackermaterial:T_CarbonFibreStr" /> + </MaterialFraction> + <MaterialFraction fraction="0.11196"> + <rMaterial name="materials:T_Kapton" /> + </MaterialFraction> + <MaterialFraction fraction="0.06609"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.00796"> + <rMaterial name="materials:Polyethylene" /> + </MaterialFraction> + <MaterialFraction fraction="0.00598"> + <rMaterial name="materials:BGA" /> + </MaterialFraction> + <MaterialFraction fraction="0.00796"> + <rMaterial name="trackermaterial:T_G10" /> + </MaterialFraction> + <MaterialFraction fraction="0.01800"> + <rMaterial name="trackermaterial:T_Barium_Titanate" /> + </MaterialFraction> + <MaterialFraction fraction="0.00996"> + <rMaterial name="materials:Ceramic" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TOB_sid_rail2" density="1.51100*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.89734"> + <rMaterial name="trackermaterial:T_CarbonFibreStr" /> + </MaterialFraction> + <MaterialFraction fraction="0.09311"> + <rMaterial name="materials:T_Kapton" /> + </MaterialFraction> + <MaterialFraction fraction="0.00955"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TOB_sid_rail1st" density="1.74227*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.77823"> + <rMaterial name="trackermaterial:T_CarbonFibreStr" /> + </MaterialFraction> + <MaterialFraction fraction="0.10526"> + <rMaterial name="materials:T_Kapton" /> + </MaterialFraction> + <MaterialFraction fraction="0.06627"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.00802"> + <rMaterial name="materials:Polyethylene" /> + </MaterialFraction> + <MaterialFraction fraction="0.00603"> + <rMaterial name="materials:BGA" /> + </MaterialFraction> + <MaterialFraction fraction="0.00802"> + <rMaterial name="trackermaterial:T_G10" /> + </MaterialFraction> + <MaterialFraction fraction="0.01815"> + <rMaterial name="trackermaterial:T_Barium_Titanate" /> + </MaterialFraction> + <MaterialFraction fraction="0.01004"> + <rMaterial name="materials:Ceramic" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TOB_sid_rail2st" density="1.50659*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.89997"> + <rMaterial name="trackermaterial:T_CarbonFibreStr" /> + </MaterialFraction> + <MaterialFraction fraction="0.09045"> + <rMaterial name="materials:T_Kapton" /> + </MaterialFraction> + <MaterialFraction fraction="0.00958"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TOB_ele12" density="2.60162*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.07534"> + <rMaterial name="materials:T_Kapton" /> + </MaterialFraction> + <MaterialFraction fraction="0.66125"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.02667"> + <rMaterial name="materials:SMD_metal" /> + </MaterialFraction> + <MaterialFraction fraction="0.09994"> + <rMaterial name="materials:Epoxy" /> + </MaterialFraction> + <MaterialFraction fraction="0.00522"> + <rMaterial name="materials:Carbon" /> + </MaterialFraction> + <MaterialFraction fraction="0.03021"> + <rMaterial name="materials:Alumina" /> + </MaterialFraction> + <MaterialFraction fraction="0.09855"> + <rMaterial name="materials:Silicon" /> + </MaterialFraction> + <MaterialFraction fraction="0.00282"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TOB_ele34" density="2.60162*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.07534"> + <rMaterial name="materials:T_Kapton" /> + </MaterialFraction> + <MaterialFraction fraction="0.66125"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.02667"> + <rMaterial name="materials:SMD_metal" /> + </MaterialFraction> + <MaterialFraction fraction="0.09994"> + <rMaterial name="materials:Epoxy" /> + </MaterialFraction> + <MaterialFraction fraction="0.00522"> + <rMaterial name="materials:Carbon" /> + </MaterialFraction> + <MaterialFraction fraction="0.03021"> + <rMaterial name="materials:Alumina" /> + </MaterialFraction> + <MaterialFraction fraction="0.09855"> + <rMaterial name="materials:Silicon" /> + </MaterialFraction> + <MaterialFraction fraction="0.00282"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TOB_ele56" density="2.72686*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.07188"> + <rMaterial name="materials:T_Kapton" /> + </MaterialFraction> + <MaterialFraction fraction="0.63088"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.02842"> + <rMaterial name="materials:SMD_metal" /> + </MaterialFraction> + <MaterialFraction fraction="0.09535"> + <rMaterial name="materials:Epoxy" /> + </MaterialFraction> + <MaterialFraction fraction="0.00554"> + <rMaterial name="materials:Carbon" /> + </MaterialFraction> + <MaterialFraction fraction="0.03055"> + <rMaterial name="materials:Alumina" /> + </MaterialFraction> + <MaterialFraction fraction="0.13336"> + <rMaterial name="materials:Silicon" /> + </MaterialFraction> + <MaterialFraction fraction="0.00403"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TOB_Sens_Interface" density="0.75665*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.99111"> + <rMaterial name="trackermaterial:T_Silicone_Gel" /> + </MaterialFraction> + <MaterialFraction fraction="0.00881"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + <MaterialFraction fraction="0.00008"> + <rMaterial name="materials:Silicon" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TOB_L12_ICC1" density="1.21506*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.52633"> + <rMaterial name="trackermaterial:T_G10" /> + </MaterialFraction> + <MaterialFraction fraction="0.23122"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.12043"> + <rMaterial name="materials:Epoxy" /> + </MaterialFraction> + <MaterialFraction fraction="0.00629"> + <rMaterial name="materials:Ceramic" /> + </MaterialFraction> + <MaterialFraction fraction="0.09695"> + <rMaterial name="trackermaterial:T_Barium_Titanate" /> + </MaterialFraction> + <MaterialFraction fraction="0.00692"> + <rMaterial name="materials:T_Kapton" /> + </MaterialFraction> + <MaterialFraction fraction="0.01186"> + <rMaterial name="materials:Brass" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TOB_L12_ICC2" density="1.30529*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.48697"> + <rMaterial name="trackermaterial:T_G10" /> + </MaterialFraction> + <MaterialFraction fraction="0.24364"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.12506"> + <rMaterial name="materials:Epoxy" /> + </MaterialFraction> + <MaterialFraction fraction="0.00606"> + <rMaterial name="materials:Ceramic" /> + </MaterialFraction> + <MaterialFraction fraction="0.11564"> + <rMaterial name="trackermaterial:T_Barium_Titanate" /> + </MaterialFraction> + <MaterialFraction fraction="0.00834"> + <rMaterial name="materials:T_Kapton" /> + </MaterialFraction> + <MaterialFraction fraction="0.01428"> + <rMaterial name="materials:Brass" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TOB_L34_ICC1" density="0.82946*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.54002"> + <rMaterial name="trackermaterial:T_G10" /> + </MaterialFraction> + <MaterialFraction fraction="0.23153"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.11265"> + <rMaterial name="materials:Epoxy" /> + </MaterialFraction> + <MaterialFraction fraction="0.007"> + <rMaterial name="materials:Ceramic" /> + </MaterialFraction> + <MaterialFraction fraction="0.09505"> + <rMaterial name="trackermaterial:T_Barium_Titanate" /> + </MaterialFraction> + <MaterialFraction fraction="0.00507"> + <rMaterial name="materials:T_Kapton" /> + </MaterialFraction> + <MaterialFraction fraction="0.00868"> + <rMaterial name="materials:Brass" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TOB_L34_ICC2" density="0.81274*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.50881"> + <rMaterial name="trackermaterial:T_G10" /> + </MaterialFraction> + <MaterialFraction fraction="0.22587"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.11652"> + <rMaterial name="materials:Epoxy" /> + </MaterialFraction> + <MaterialFraction fraction="0.00657"> + <rMaterial name="materials:Ceramic" /> + </MaterialFraction> + <MaterialFraction fraction="0.12407"> + <rMaterial name="trackermaterial:T_Barium_Titanate" /> + </MaterialFraction> + <MaterialFraction fraction="0.00670"> + <rMaterial name="materials:T_Kapton" /> + </MaterialFraction> + <MaterialFraction fraction="0.01147"> + <rMaterial name="materials:Brass" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TOB_L56_ICC1" density="0.85619*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.51768"> + <rMaterial name="trackermaterial:T_G10" /> + </MaterialFraction> + <MaterialFraction fraction="0.1161"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.05821"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.09756"> + <rMaterial name="materials:Epoxy" /> + </MaterialFraction> + <MaterialFraction fraction="0.00547"> + <rMaterial name="trackermaterial:T_G10" /> + </MaterialFraction> + <MaterialFraction fraction="0.00678"> + <rMaterial name="materials:Ceramic" /> + </MaterialFraction> + <MaterialFraction fraction="0.09209"> + <rMaterial name="trackermaterial:T_Barium_Titanate" /> + </MaterialFraction> + <MaterialFraction fraction="0.00491"> + <rMaterial name="materials:Epoxy" /> + </MaterialFraction> + <MaterialFraction fraction="0.00564"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.00353"> + <rMaterial name="materials:T_Kapton" /> + </MaterialFraction> + <MaterialFraction fraction="0.04434"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.00139"> + <rMaterial name="materials:T_Kapton" /> + </MaterialFraction> + <MaterialFraction fraction="0.00667"> + <rMaterial name="materials:Epoxy" /> + </MaterialFraction> + <MaterialFraction fraction="0.00841"> + <rMaterial name="materials:Brass" /> + </MaterialFraction> + <MaterialFraction fraction="0"> + <rMaterial name="materials:Air" /> + </MaterialFraction> + <MaterialFraction fraction="0.03122"> + <rMaterial name="materials:Ceramic" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TOB_L56_ICC2" density="0.88614*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.45982"> + <rMaterial name="trackermaterial:T_G10" /> + </MaterialFraction> + <MaterialFraction fraction="0.09073"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.07611"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.12696"> + <rMaterial name="materials:Epoxy" /> + </MaterialFraction> + <MaterialFraction fraction="0.00684"> + <rMaterial name="trackermaterial:T_G10" /> + </MaterialFraction> + <MaterialFraction fraction="0.00602"> + <rMaterial name="materials:Ceramic" /> + </MaterialFraction> + <MaterialFraction fraction="0.11379"> + <rMaterial name="trackermaterial:T_Barium_Titanate" /> + </MaterialFraction> + <MaterialFraction fraction="0.00521"> + <rMaterial name="materials:Epoxy" /> + </MaterialFraction> + <MaterialFraction fraction="0.00554"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.00441"> + <rMaterial name="materials:T_Kapton" /> + </MaterialFraction> + <MaterialFraction fraction="0.05545"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.00173"> + <rMaterial name="materials:T_Kapton" /> + </MaterialFraction> + <MaterialFraction fraction="0.00834"> + <rMaterial name="materials:Epoxy" /> + </MaterialFraction> + <MaterialFraction fraction="0"> + <rMaterial name="materials:Air" /> + </MaterialFraction> + <MaterialFraction fraction="0.03904"> + <rMaterial name="materials:Ceramic" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TOB_AOH" density="1.80152*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.26137"> + <rMaterial name="trackermaterial:T_G10" /> + </MaterialFraction> + <MaterialFraction fraction="0.19822"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.07208"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.12027"> + <rMaterial name="materials:Epoxy" /> + </MaterialFraction> + <MaterialFraction fraction="0.0051"> + <rMaterial name="materials:Ceramic" /> + </MaterialFraction> + <MaterialFraction fraction="0.0276"> + <rMaterial name="trackermaterial:T_Barium_Titanate" /> + </MaterialFraction> + <MaterialFraction fraction="0.01088"> + <rMaterial name="materials:Epoxy" /> + </MaterialFraction> + <MaterialFraction fraction="0.0173"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0"> + <rMaterial name="materials:Air" /> + </MaterialFraction> + <MaterialFraction fraction="0.27912"> + <rMaterial name="materials:Ceramic" /> + </MaterialFraction> + <MaterialFraction fraction="0.00805"> + <rMaterial name="materials:T_Kapton" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TOB_CCUM" density="0.92095*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.69356"> + <rMaterial name="trackermaterial:T_G10" /> + </MaterialFraction> + <MaterialFraction fraction="0.17904"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.08818"> + <rMaterial name="materials:Epoxy" /> + </MaterialFraction> + <MaterialFraction fraction="0.00313"> + <rMaterial name="materials:Ceramic" /> + </MaterialFraction> + <MaterialFraction fraction="0.03007"> + <rMaterial name="trackermaterial:T_Barium_Titanate" /> + </MaterialFraction> + <MaterialFraction fraction="0.00603"> + <rMaterial name="materials:BGA" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TOB_CONN12" density="1.41913*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.00638"> + <rMaterial name="trackermaterial:T_G10" /> + </MaterialFraction> + <MaterialFraction fraction="0.001"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.0545"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.01058"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + <MaterialFraction fraction="0.00624"> + <rMaterial name="trackermaterial:T_Silicone_Gel" /> + </MaterialFraction> + <MaterialFraction fraction="0.02384"> + <rMaterial name="materials:Polyethylene" /> + </MaterialFraction> + <MaterialFraction fraction="0.10559"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.00377"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + <MaterialFraction fraction="0.00221"> + <rMaterial name="trackermaterial:T_Silicone_Gel" /> + </MaterialFraction> + <MaterialFraction fraction="0.03578"> + <rMaterial name="materials:Polyethylene" /> + </MaterialFraction> + <MaterialFraction fraction="0.00418"> + <rMaterial name="materials:Epoxy" /> + </MaterialFraction> + <MaterialFraction fraction="0.00383"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + <MaterialFraction fraction="0.00971"> + <rMaterial name="materials:Polyethylene" /> + </MaterialFraction> + <MaterialFraction fraction="0.00435"> + <rMaterial name="materials:T_Kapton" /> + </MaterialFraction> + <MaterialFraction fraction="0.00534"> + <rMaterial name="materials:BGA" /> + </MaterialFraction> + <MaterialFraction fraction="0.00375"> + <rMaterial name="materials:Epoxy" /> + </MaterialFraction> + <MaterialFraction fraction="0.0007"> + <rMaterial name="materials:BGA" /> + </MaterialFraction> + <MaterialFraction fraction="0.00732"> + <rMaterial name="trackermaterial:T_G10" /> + </MaterialFraction> + <MaterialFraction fraction="0.0018"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.00526"> + <rMaterial name="trackermaterial:T_G10" /> + </MaterialFraction> + <MaterialFraction fraction="0.00051"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.01317"> + <rMaterial name="trackermaterial:Optical_Fiber" /> + </MaterialFraction> + <MaterialFraction fraction="0.03821"> + <rMaterial name="materials:T_Kapton" /> + </MaterialFraction> + <MaterialFraction fraction="0.31415"> + <rMaterial name="materials:T_Kapton" /> + </MaterialFraction> + <MaterialFraction fraction="0.32868"> + <rMaterial name="trackermaterial:T_Ribbon12xMUConn" /> + </MaterialFraction> + <MaterialFraction fraction="0.00914"> + <rMaterial name="trackermaterial:T_RuggRibbon" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TOB_CONN34" density="0.92279*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.00982"> + <rMaterial name="trackermaterial:T_G10" /> + </MaterialFraction> + <MaterialFraction fraction="0.00154"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.08382"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.01627"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + <MaterialFraction fraction="0.00959"> + <rMaterial name="trackermaterial:T_Silicone_Gel" /> + </MaterialFraction> + <MaterialFraction fraction="0.03667"> + <rMaterial name="materials:Polyethylene" /> + </MaterialFraction> + <MaterialFraction fraction="0.16238"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.0058"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + <MaterialFraction fraction="0.0034"> + <rMaterial name="trackermaterial:T_Silicone_Gel" /> + </MaterialFraction> + <MaterialFraction fraction="0.05502"> + <rMaterial name="materials:Polyethylene" /> + </MaterialFraction> + <MaterialFraction fraction="0.00643"> + <rMaterial name="materials:Epoxy" /> + </MaterialFraction> + <MaterialFraction fraction="0.00588"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + <MaterialFraction fraction="0.01494"> + <rMaterial name="materials:Polyethylene" /> + </MaterialFraction> + <MaterialFraction fraction="0.00669"> + <rMaterial name="materials:T_Kapton" /> + </MaterialFraction> + <MaterialFraction fraction="0.00821"> + <rMaterial name="materials:BGA" /> + </MaterialFraction> + <MaterialFraction fraction="0.00576"> + <rMaterial name="materials:Epoxy" /> + </MaterialFraction> + <MaterialFraction fraction="0.00108"> + <rMaterial name="materials:BGA" /> + </MaterialFraction> + <MaterialFraction fraction="0.01126"> + <rMaterial name="trackermaterial:T_G10" /> + </MaterialFraction> + <MaterialFraction fraction="0.00276"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.0081"> + <rMaterial name="trackermaterial:T_G10" /> + </MaterialFraction> + <MaterialFraction fraction="0.00079"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.01013"> + <rMaterial name="trackermaterial:Optical_Fiber" /> + </MaterialFraction> + <MaterialFraction fraction="0.03233"> + <rMaterial name="materials:T_Kapton" /> + </MaterialFraction> + <MaterialFraction fraction="0.24158"> + <rMaterial name="materials:T_Kapton" /> + </MaterialFraction> + <MaterialFraction fraction="0.25273"> + <rMaterial name="trackermaterial:T_Ribbon12xMUConn" /> + </MaterialFraction> + <MaterialFraction fraction="0.00703"> + <rMaterial name="trackermaterial:T_RuggRibbon" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TOB_CONN56" density="1.29029*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.00702"> + <rMaterial name="trackermaterial:T_G10" /> + </MaterialFraction> + <MaterialFraction fraction="0.0011"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.05995"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.01163"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + <MaterialFraction fraction="0.00686"> + <rMaterial name="trackermaterial:T_Silicone_Gel" /> + </MaterialFraction> + <MaterialFraction fraction="0.02622"> + <rMaterial name="materials:Polyethylene" /> + </MaterialFraction> + <MaterialFraction fraction="0.11613"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.00415"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + <MaterialFraction fraction="0.00243"> + <rMaterial name="trackermaterial:T_Silicone_Gel" /> + </MaterialFraction> + <MaterialFraction fraction="0.03935"> + <rMaterial name="materials:Polyethylene" /> + </MaterialFraction> + <MaterialFraction fraction="0.0046"> + <rMaterial name="materials:Epoxy" /> + </MaterialFraction> + <MaterialFraction fraction="0.00421"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + <MaterialFraction fraction="0.01068"> + <rMaterial name="materials:Polyethylene" /> + </MaterialFraction> + <MaterialFraction fraction="0.00478"> + <rMaterial name="materials:T_Kapton" /> + </MaterialFraction> + <MaterialFraction fraction="0.00587"> + <rMaterial name="materials:BGA" /> + </MaterialFraction> + <MaterialFraction fraction="0.00412"> + <rMaterial name="materials:Epoxy" /> + </MaterialFraction> + <MaterialFraction fraction="0.00077"> + <rMaterial name="materials:BGA" /> + </MaterialFraction> + <MaterialFraction fraction="0.00805"> + <rMaterial name="trackermaterial:T_G10" /> + </MaterialFraction> + <MaterialFraction fraction="0.00198"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.00579"> + <rMaterial name="trackermaterial:T_G10" /> + </MaterialFraction> + <MaterialFraction fraction="0.00056"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.01086"> + <rMaterial name="trackermaterial:Optical_Fiber" /> + </MaterialFraction> + <MaterialFraction fraction="0.03467"> + <rMaterial name="materials:T_Kapton" /> + </MaterialFraction> + <MaterialFraction fraction="0.25916"> + <rMaterial name="materials:T_Kapton" /> + </MaterialFraction> + <MaterialFraction fraction="0.3615"> + <rMaterial name="trackermaterial:T_Ribbon12xMUConn" /> + </MaterialFraction> + <MaterialFraction fraction="0.00754"> + <rMaterial name="trackermaterial:T_RuggRibbon" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TOB_optfib_L12" density="1.52360*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.28236"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.22972"> + <rMaterial name="materials:Polyethylene" /> + </MaterialFraction> + <MaterialFraction fraction="0.03712"> + <rMaterial name="materials:Polyethylene" /> + </MaterialFraction> + <MaterialFraction fraction="0.45081"> + <rMaterial name="trackermaterial:Optical_Fiber" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TOB_optfib_L34" density="0.84381*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.33607"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.27343"> + <rMaterial name="materials:Polyethylene" /> + </MaterialFraction> + <MaterialFraction fraction="0.04951"> + <rMaterial name="materials:Polyethylene" /> + </MaterialFraction> + <MaterialFraction fraction="0.34099"> + <rMaterial name="trackermaterial:Optical_Fiber" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TOB_optfib_L56" density="0.98768*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.28712"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.2336"> + <rMaterial name="materials:Polyethylene" /> + </MaterialFraction> + <MaterialFraction fraction="0.0423"> + <rMaterial name="materials:Polyethylene" /> + </MaterialFraction> + <MaterialFraction fraction="0.43699"> + <rMaterial name="trackermaterial:Optical_Fiber" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TOB_ICB" density="3.22606*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.70424"> + <rMaterial name="trackermaterial:T_G10" /> + </MaterialFraction> + <MaterialFraction fraction="0.2645"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.00469"> + <rMaterial name="materials:Ceramic" /> + </MaterialFraction> + <MaterialFraction fraction="0.02117"> + <rMaterial name="trackermaterial:T_Barium_Titanate" /> + </MaterialFraction> + <MaterialFraction fraction="0.00505"> + <rMaterial name="materials:Epoxy" /> + </MaterialFraction> + <MaterialFraction fraction="0.00036"> + <rMaterial name="materials:BGA" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TOB_DOH" density="1.74606*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.10021"> + <rMaterial name="trackermaterial:T_G10" /> + </MaterialFraction> + <MaterialFraction fraction="0.08241"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.01198"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.01924"> + <rMaterial name="materials:Epoxy" /> + </MaterialFraction> + <MaterialFraction fraction="0.00063"> + <rMaterial name="materials:Ceramic" /> + </MaterialFraction> + <MaterialFraction fraction="0.00484"> + <rMaterial name="trackermaterial:T_Barium_Titanate" /> + </MaterialFraction> + <MaterialFraction fraction="0.00779"> + <rMaterial name="materials:Epoxy" /> + </MaterialFraction> + <MaterialFraction fraction="0.01236"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0"> + <rMaterial name="materials:Air" /> + </MaterialFraction> + <MaterialFraction fraction="0"> + <rMaterial name="materials:Air" /> + </MaterialFraction> + <MaterialFraction fraction="0"> + <rMaterial name="materials:Air" /> + </MaterialFraction> + <MaterialFraction fraction="0.00288"> + <rMaterial name="materials:T_Kapton" /> + </MaterialFraction> + <MaterialFraction fraction="0.22186"> + <rMaterial name="trackermaterial:Optical_Fiber" /> + </MaterialFraction> + <MaterialFraction fraction="0.06318"> + <rMaterial name="materials:T_Kapton" /> + </MaterialFraction> + <MaterialFraction fraction="0.47262"> + <rMaterial name="materials:T_Kapton" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TOB_DOHM" density="1.63791*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.28501"> + <rMaterial name="trackermaterial:T_G10" /> + </MaterialFraction> + <MaterialFraction fraction="0.04856"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.01248"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.01885"> + <rMaterial name="materials:Epoxy" /> + </MaterialFraction> + <MaterialFraction fraction="0.0002"> + <rMaterial name="materials:Ceramic" /> + </MaterialFraction> + <MaterialFraction fraction="0.00419"> + <rMaterial name="trackermaterial:T_Barium_Titanate" /> + </MaterialFraction> + <MaterialFraction fraction="0.00399"> + <rMaterial name="materials:Epoxy" /> + </MaterialFraction> + <MaterialFraction fraction="0.00255"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.03088"> + <rMaterial name="trackermaterial:T_G10" /> + </MaterialFraction> + <MaterialFraction fraction="0"> + <rMaterial name="materials:Air" /> + </MaterialFraction> + <MaterialFraction fraction="0.00398"> + <rMaterial name="materials:Epoxy" /> + </MaterialFraction> + <MaterialFraction fraction="0.00254"> + <rMaterial name="materials:BGA" /> + </MaterialFraction> + <MaterialFraction fraction="0.00142"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.22035"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + <MaterialFraction fraction="0.08615"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + <MaterialFraction fraction="0.01596"> + <rMaterial name="materials:Brass" /> + </MaterialFraction> + <MaterialFraction fraction="0.00131"> + <rMaterial name="materials:Brass" /> + </MaterialFraction> + <MaterialFraction fraction="0.15624"> + <rMaterial name="trackermaterial:T_Ribbon12xMUConn" /> + </MaterialFraction> + <MaterialFraction fraction="0.10535"> + <rMaterial name="tobmaterial:TOB_DOH" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TIB_RailTop" density="1.97*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="1."> + <rMaterial name="trackermaterial:T_CarbonFibreStr" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TIB_RailBottom" density="0.83*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.95"> + <rMaterial name="trackermaterial:T_CarbonFibreStr" /> + </MaterialFraction> + <MaterialFraction fraction="0.05"> + <rMaterial name="trackermaterial:T_Rohacell" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TOB_AlSideConnect" density="4.54*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="1."> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TOB_AlCentralConnect" density="3.19*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="1."> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TOB_CF_Str" density="1.69*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="1."> + <rMaterial name="trackermaterial:T_CarbonFibreStr" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TOB_Epoxy" density="2.64*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="1."> + <rMaterial name="materials:Epoxy" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TOB_Nomex" density="32*mg/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="1."> + <rMaterial name="trackermaterial:T_Nomex" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TOB_middle_ribs" density="1.55*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="1."> + <rMaterial name="trackermaterial:T_CarbonFibreStr" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TOB_plate_A" density="674*mg/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="1.00000000"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TOB_plate_B" density="2.526*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="1.00000000"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TOB_plate_C" density="2*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="1.00000000"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TOB_rad_services1" density="0.78663*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.16746"> + <rMaterial name="trackermaterial:CAB_Al48" /> + </MaterialFraction> + <MaterialFraction fraction="0"> + <rMaterial name="trackermaterial:CAB_Al36" /> + </MaterialFraction> + <MaterialFraction fraction="0.03062"> + <rMaterial name="trackermaterial:T_RuggRibbon" /> + </MaterialFraction> + <MaterialFraction fraction="0.00452"> + <rMaterial name="trackermaterial:T_RuggRibbon" /> + </MaterialFraction> + <MaterialFraction fraction="0.01166"> + <rMaterial name="trackermaterial:T_RuggRibbon" /> + </MaterialFraction> + <MaterialFraction fraction="0.01448"> + <rMaterial name="trackermaterial:TOB_Ribbon12xMUConn" /> + </MaterialFraction> + <MaterialFraction fraction="0.08301"> + <rMaterial name="trackermaterial:TOB_DOHM_PowerConn" /> + </MaterialFraction> + <MaterialFraction fraction="0.03826"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.64997"> + <rMaterial name="trackermaterial:T_C6F14_F2_-30C" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TOB_rad_services2" density="1.40155*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.17833"> + <rMaterial name="trackermaterial:CAB_Al48" /> + </MaterialFraction> + <MaterialFraction fraction="0"> + <rMaterial name="trackermaterial:CAB_Al36" /> + </MaterialFraction> + <MaterialFraction fraction="0.03222"> + <rMaterial name="trackermaterial:T_RuggRibbon" /> + </MaterialFraction> + <MaterialFraction fraction="0.00487"> + <rMaterial name="trackermaterial:T_RuggRibbon" /> + </MaterialFraction> + <MaterialFraction fraction="0.00579"> + <rMaterial name="trackermaterial:T_RuggRibbon" /> + </MaterialFraction> + <MaterialFraction fraction="0.00685"> + <rMaterial name="trackermaterial:TOB_Ribbon12xMUConn" /> + </MaterialFraction> + <MaterialFraction fraction="0.0896"> + <rMaterial name="trackermaterial:TOB_DOHM_PowerConn" /> + </MaterialFraction> + <MaterialFraction fraction="0.03793"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.64441"> + <rMaterial name="trackermaterial:T_C6F14_F2_-30C" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TOB_rad_services3" density="1.76307*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.12662"> + <rMaterial name="trackermaterial:CAB_Al48" /> + </MaterialFraction> + <MaterialFraction fraction="0.0707"> + <rMaterial name="trackermaterial:CAB_Al36" /> + </MaterialFraction> + <MaterialFraction fraction="0.03052"> + <rMaterial name="trackermaterial:T_RuggRibbon" /> + </MaterialFraction> + <MaterialFraction fraction="0.00536"> + <rMaterial name="trackermaterial:T_RuggRibbon" /> + </MaterialFraction> + <MaterialFraction fraction="0.00411"> + <rMaterial name="trackermaterial:T_RuggRibbon" /> + </MaterialFraction> + <MaterialFraction fraction="0.00487"> + <rMaterial name="trackermaterial:TOB_Ribbon12xMUConn" /> + </MaterialFraction> + <MaterialFraction fraction="0.09163"> + <rMaterial name="trackermaterial:TOB_DOHM_PowerConn" /> + </MaterialFraction> + <MaterialFraction fraction="0.03703"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.62915"> + <rMaterial name="trackermaterial:T_C6F14_F2_-30C" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TOB_rad_services4" density="2.07459*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.09677"> + <rMaterial name="trackermaterial:CAB_Al48" /> + </MaterialFraction> + <MaterialFraction fraction="0.11456"> + <rMaterial name="trackermaterial:CAB_Al36" /> + </MaterialFraction> + <MaterialFraction fraction="0.03033"> + <rMaterial name="trackermaterial:T_RuggRibbon" /> + </MaterialFraction> + <MaterialFraction fraction="0.006"> + <rMaterial name="trackermaterial:T_RuggRibbon" /> + </MaterialFraction> + <MaterialFraction fraction="0.00314"> + <rMaterial name="trackermaterial:T_RuggRibbon" /> + </MaterialFraction> + <MaterialFraction fraction="0.00337"> + <rMaterial name="trackermaterial:TOB_Ribbon12xMUConn" /> + </MaterialFraction> + <MaterialFraction fraction="0.09787"> + <rMaterial name="trackermaterial:TOB_DOHM_PowerConn" /> + </MaterialFraction> + <MaterialFraction fraction="0.03602"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.61194"> + <rMaterial name="trackermaterial:T_C6F14_F2_-30C" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TOB_rad_services5" density="2.42471*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.07424"> + <rMaterial name="trackermaterial:CAB_Al48" /> + </MaterialFraction> + <MaterialFraction fraction="0.14105"> + <rMaterial name="trackermaterial:CAB_Al36" /> + </MaterialFraction> + <MaterialFraction fraction="0.03734"> + <rMaterial name="trackermaterial:T_RuggRibbon" /> + </MaterialFraction> + <MaterialFraction fraction="0.00703"> + <rMaterial name="trackermaterial:T_RuggRibbon" /> + </MaterialFraction> + <MaterialFraction fraction="0.00241"> + <rMaterial name="trackermaterial:T_RuggRibbon" /> + </MaterialFraction> + <MaterialFraction fraction="0.00218"> + <rMaterial name="trackermaterial:TOB_Ribbon12xMUConn" /> + </MaterialFraction> + <MaterialFraction fraction="0.09683"> + <rMaterial name="trackermaterial:TOB_DOHM_PowerConn" /> + </MaterialFraction> + <MaterialFraction fraction="0.03552"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.60339"> + <rMaterial name="trackermaterial:T_C6F14_F2_-30C" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TOB_rad_services6" density="2.86547*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.05738"> + <rMaterial name="trackermaterial:CAB_Al48" /> + </MaterialFraction> + <MaterialFraction fraction="0.15196"> + <rMaterial name="trackermaterial:CAB_Al36" /> + </MaterialFraction> + <MaterialFraction fraction="0.05736"> + <rMaterial name="trackermaterial:T_RuggRibbon" /> + </MaterialFraction> + <MaterialFraction fraction="0.01002"> + <rMaterial name="trackermaterial:T_RuggRibbon" /> + </MaterialFraction> + <MaterialFraction fraction="0.00186"> + <rMaterial name="trackermaterial:T_RuggRibbon" /> + </MaterialFraction> + <MaterialFraction fraction="0.00242"> + <rMaterial name="trackermaterial:TOB_Ribbon12xMUConn" /> + </MaterialFraction> + <MaterialFraction fraction="0.11577"> + <rMaterial name="trackermaterial:TOB_DOHM_PowerConn" /> + </MaterialFraction> + <MaterialFraction fraction="0.03353"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.56969"> + <rMaterial name="trackermaterial:T_C6F14_F2_-30C" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TOB_rib1" density="0.32766*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.00231"> + <rMaterial name="trackermaterial:T_G10" /> + </MaterialFraction> + <MaterialFraction fraction="0.00029"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.00244"> + <rMaterial name="trackermaterial:T_G10" /> + </MaterialFraction> + <MaterialFraction fraction="0.00037"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.01656"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.0135"> + <rMaterial name="materials:Epoxy" /> + </MaterialFraction> + <MaterialFraction fraction="0.0797"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.01456"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + <MaterialFraction fraction="0.00856"> + <rMaterial name="trackermaterial:T_Silicone_Gel" /> + </MaterialFraction> + <MaterialFraction fraction="0.03531"> + <rMaterial name="materials:Polyethylene" /> + </MaterialFraction> + <MaterialFraction fraction="0.04779"> + <rMaterial name="materials:Polyethylene" /> + </MaterialFraction> + <MaterialFraction fraction="0.00438"> + <rMaterial name="trackermaterial:T_G10" /> + </MaterialFraction> + <MaterialFraction fraction="0.01044"> + <rMaterial name="materials:Brass" /> + </MaterialFraction> + <MaterialFraction fraction="0.00319"> + <rMaterial name="materials:Epoxy" /> + </MaterialFraction> + <MaterialFraction fraction="0.00204"> + <rMaterial name="materials:BGA" /> + </MaterialFraction> + <MaterialFraction fraction="0.02224"> + <rMaterial name="materials:Polyethylene" /> + </MaterialFraction> + <MaterialFraction fraction="0.11503"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.06666"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.0184"> + <rMaterial name="materials:Polyethylene" /> + </MaterialFraction> + <MaterialFraction fraction="0.00876"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + <MaterialFraction fraction="0.02224"> + <rMaterial name="materials:Polyethylene" /> + </MaterialFraction> + <MaterialFraction fraction="0.005"> + <rMaterial name="materials:T_Kapton" /> + </MaterialFraction> + <MaterialFraction fraction="0.01222"> + <rMaterial name="materials:BGA" /> + </MaterialFraction> + <MaterialFraction fraction="0.00958"> + <rMaterial name="materials:Epoxy" /> + </MaterialFraction> + <MaterialFraction fraction="0.09861"> + <rMaterial name="trackermaterial:CAB_Al48" /> + </MaterialFraction> + <MaterialFraction fraction="0"> + <rMaterial name="trackermaterial:CAB_Al36" /> + </MaterialFraction> + <MaterialFraction fraction="0.01571"> + <rMaterial name="trackermaterial:T_RuggRibbon" /> + </MaterialFraction> + <MaterialFraction fraction="0.19901"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.16509"> + <rMaterial name="materials:Epoxy" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TOB_rib2" density="0.32900*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.00231"> + <rMaterial name="trackermaterial:T_G10" /> + </MaterialFraction> + <MaterialFraction fraction="0.00029"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.00244"> + <rMaterial name="trackermaterial:T_G10" /> + </MaterialFraction> + <MaterialFraction fraction="0.00037"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.01656"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.0135"> + <rMaterial name="materials:Epoxy" /> + </MaterialFraction> + <MaterialFraction fraction="0.0797"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.01456"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + <MaterialFraction fraction="0.00856"> + <rMaterial name="trackermaterial:T_Silicone_Gel" /> + </MaterialFraction> + <MaterialFraction fraction="0.0353"> + <rMaterial name="materials:Polyethylene" /> + </MaterialFraction> + <MaterialFraction fraction="0.04778"> + <rMaterial name="materials:Polyethylene" /> + </MaterialFraction> + <MaterialFraction fraction="0.00438"> + <rMaterial name="trackermaterial:T_G10" /> + </MaterialFraction> + <MaterialFraction fraction="0.01044"> + <rMaterial name="materials:Brass" /> + </MaterialFraction> + <MaterialFraction fraction="0.00319"> + <rMaterial name="materials:Epoxy" /> + </MaterialFraction> + <MaterialFraction fraction="0.00204"> + <rMaterial name="materials:BGA" /> + </MaterialFraction> + <MaterialFraction fraction="0.02224"> + <rMaterial name="materials:Polyethylene" /> + </MaterialFraction> + <MaterialFraction fraction="0.11503"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.06667"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.0184"> + <rMaterial name="materials:Polyethylene" /> + </MaterialFraction> + <MaterialFraction fraction="0.00876"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + <MaterialFraction fraction="0.02224"> + <rMaterial name="materials:Polyethylene" /> + </MaterialFraction> + <MaterialFraction fraction="0.005"> + <rMaterial name="materials:T_Kapton" /> + </MaterialFraction> + <MaterialFraction fraction="0.01222"> + <rMaterial name="materials:BGA" /> + </MaterialFraction> + <MaterialFraction fraction="0.00958"> + <rMaterial name="materials:Epoxy" /> + </MaterialFraction> + <MaterialFraction fraction="0.09861"> + <rMaterial name="trackermaterial:CAB_Al48" /> + </MaterialFraction> + <MaterialFraction fraction="0"> + <rMaterial name="trackermaterial:CAB_Al36" /> + </MaterialFraction> + <MaterialFraction fraction="0.01571"> + <rMaterial name="trackermaterial:T_RuggRibbon" /> + </MaterialFraction> + <MaterialFraction fraction="0.19902"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.1651"> + <rMaterial name="materials:Epoxy" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TOB_rib3" density="0.31373*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.00188"> + <rMaterial name="trackermaterial:T_G10" /> + </MaterialFraction> + <MaterialFraction fraction="0.00024"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.00198"> + <rMaterial name="trackermaterial:T_G10" /> + </MaterialFraction> + <MaterialFraction fraction="0.0003"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.01348"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.01099"> + <rMaterial name="materials:Epoxy" /> + </MaterialFraction> + <MaterialFraction fraction="0.07554"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.0138"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + <MaterialFraction fraction="0.00811"> + <rMaterial name="trackermaterial:T_Silicone_Gel" /> + </MaterialFraction> + <MaterialFraction fraction="0.03346"> + <rMaterial name="materials:Polyethylene" /> + </MaterialFraction> + <MaterialFraction fraction="0.04529"> + <rMaterial name="materials:Polyethylene" /> + </MaterialFraction> + <MaterialFraction fraction="0.00356"> + <rMaterial name="trackermaterial:T_G10" /> + </MaterialFraction> + <MaterialFraction fraction="0.0085"> + <rMaterial name="materials:Brass" /> + </MaterialFraction> + <MaterialFraction fraction="0.0026"> + <rMaterial name="materials:Epoxy" /> + </MaterialFraction> + <MaterialFraction fraction="0.00166"> + <rMaterial name="materials:BGA" /> + </MaterialFraction> + <MaterialFraction fraction="0.02328"> + <rMaterial name="materials:Polyethylene" /> + </MaterialFraction> + <MaterialFraction fraction="0.1204"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.06978"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.01926"> + <rMaterial name="materials:Polyethylene" /> + </MaterialFraction> + <MaterialFraction fraction="0.00917"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + <MaterialFraction fraction="0.02328"> + <rMaterial name="materials:Polyethylene" /> + </MaterialFraction> + <MaterialFraction fraction="0.00524"> + <rMaterial name="materials:T_Kapton" /> + </MaterialFraction> + <MaterialFraction fraction="0.01279"> + <rMaterial name="materials:BGA" /> + </MaterialFraction> + <MaterialFraction fraction="0.01002"> + <rMaterial name="materials:Epoxy" /> + </MaterialFraction> + <MaterialFraction fraction="0"> + <rMaterial name="trackermaterial:CAB_Al48" /> + </MaterialFraction> + <MaterialFraction fraction="0.09605"> + <rMaterial name="trackermaterial:CAB_Al36" /> + </MaterialFraction> + <MaterialFraction fraction="0.00822"> + <rMaterial name="trackermaterial:T_RuggRibbon" /> + </MaterialFraction> + <MaterialFraction fraction="0.20831"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.1728"> + <rMaterial name="materials:Epoxy" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TOB_rib4" density="0.31523*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.00192"> + <rMaterial name="trackermaterial:T_G10" /> + </MaterialFraction> + <MaterialFraction fraction="0.00024"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.00203"> + <rMaterial name="trackermaterial:T_G10" /> + </MaterialFraction> + <MaterialFraction fraction="0.00031"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.01378"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.01123"> + <rMaterial name="materials:Epoxy" /> + </MaterialFraction> + <MaterialFraction fraction="0.07721"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.01411"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + <MaterialFraction fraction="0.00829"> + <rMaterial name="trackermaterial:T_Silicone_Gel" /> + </MaterialFraction> + <MaterialFraction fraction="0.0342"> + <rMaterial name="materials:Polyethylene" /> + </MaterialFraction> + <MaterialFraction fraction="0.04629"> + <rMaterial name="materials:Polyethylene" /> + </MaterialFraction> + <MaterialFraction fraction="0.00364"> + <rMaterial name="trackermaterial:T_G10" /> + </MaterialFraction> + <MaterialFraction fraction="0.00868"> + <rMaterial name="materials:Brass" /> + </MaterialFraction> + <MaterialFraction fraction="0.00266"> + <rMaterial name="materials:Epoxy" /> + </MaterialFraction> + <MaterialFraction fraction="0.0017"> + <rMaterial name="materials:BGA" /> + </MaterialFraction> + <MaterialFraction fraction="0.02314"> + <rMaterial name="materials:Polyethylene" /> + </MaterialFraction> + <MaterialFraction fraction="0.11964"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.06934"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.01914"> + <rMaterial name="materials:Polyethylene" /> + </MaterialFraction> + <MaterialFraction fraction="0.00912"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + <MaterialFraction fraction="0.02314"> + <rMaterial name="materials:Polyethylene" /> + </MaterialFraction> + <MaterialFraction fraction="0.0052"> + <rMaterial name="materials:T_Kapton" /> + </MaterialFraction> + <MaterialFraction fraction="0.01271"> + <rMaterial name="materials:BGA" /> + </MaterialFraction> + <MaterialFraction fraction="0.00996"> + <rMaterial name="materials:Epoxy" /> + </MaterialFraction> + <MaterialFraction fraction="0"> + <rMaterial name="trackermaterial:CAB_Al48" /> + </MaterialFraction> + <MaterialFraction fraction="0.09545"> + <rMaterial name="trackermaterial:CAB_Al36" /> + </MaterialFraction> + <MaterialFraction fraction="0.00817"> + <rMaterial name="trackermaterial:T_RuggRibbon" /> + </MaterialFraction> + <MaterialFraction fraction="0.207"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.17172"> + <rMaterial name="materials:Epoxy" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TOB_rib5" density="0.31300*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.00174"> + <rMaterial name="trackermaterial:T_G10" /> + </MaterialFraction> + <MaterialFraction fraction="0.00022"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.00184"> + <rMaterial name="trackermaterial:T_G10" /> + </MaterialFraction> + <MaterialFraction fraction="0.00028"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.01248"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.01017"> + <rMaterial name="materials:Epoxy" /> + </MaterialFraction> + <MaterialFraction fraction="0.07823"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.0143"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + <MaterialFraction fraction="0.0084"> + <rMaterial name="trackermaterial:T_Silicone_Gel" /> + </MaterialFraction> + <MaterialFraction fraction="0.03466"> + <rMaterial name="materials:Polyethylene" /> + </MaterialFraction> + <MaterialFraction fraction="0.04691"> + <rMaterial name="materials:Polyethylene" /> + </MaterialFraction> + <MaterialFraction fraction="0.0033"> + <rMaterial name="trackermaterial:T_G10" /> + </MaterialFraction> + <MaterialFraction fraction="0.00787"> + <rMaterial name="materials:Brass" /> + </MaterialFraction> + <MaterialFraction fraction="0.00241"> + <rMaterial name="materials:Epoxy" /> + </MaterialFraction> + <MaterialFraction fraction="0.00154"> + <rMaterial name="materials:BGA" /> + </MaterialFraction> + <MaterialFraction fraction="0.02305"> + <rMaterial name="materials:Polyethylene" /> + </MaterialFraction> + <MaterialFraction fraction="0.11922"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.06909"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.01907"> + <rMaterial name="materials:Polyethylene" /> + </MaterialFraction> + <MaterialFraction fraction="0.00908"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + <MaterialFraction fraction="0.02305"> + <rMaterial name="materials:Polyethylene" /> + </MaterialFraction> + <MaterialFraction fraction="0.00519"> + <rMaterial name="materials:T_Kapton" /> + </MaterialFraction> + <MaterialFraction fraction="0.01267"> + <rMaterial name="materials:BGA" /> + </MaterialFraction> + <MaterialFraction fraction="0.00993"> + <rMaterial name="materials:Epoxy" /> + </MaterialFraction> + <MaterialFraction fraction="0"> + <rMaterial name="trackermaterial:CAB_Al48" /> + </MaterialFraction> + <MaterialFraction fraction="0.09511"> + <rMaterial name="trackermaterial:CAB_Al36" /> + </MaterialFraction> + <MaterialFraction fraction="0.01283"> + <rMaterial name="trackermaterial:T_RuggRibbon" /> + </MaterialFraction> + <MaterialFraction fraction="0.20627"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.17111"> + <rMaterial name="materials:Epoxy" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TOB_rib6" density="0.30602*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.00159"> + <rMaterial name="trackermaterial:T_G10" /> + </MaterialFraction> + <MaterialFraction fraction="0.0002"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.00168"> + <rMaterial name="trackermaterial:T_G10" /> + </MaterialFraction> + <MaterialFraction fraction="0.00026"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.01141"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.0093"> + <rMaterial name="materials:Epoxy" /> + </MaterialFraction> + <MaterialFraction fraction="0.0715"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.01306"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + <MaterialFraction fraction="0.00768"> + <rMaterial name="trackermaterial:T_Silicone_Gel" /> + </MaterialFraction> + <MaterialFraction fraction="0.03167"> + <rMaterial name="materials:Polyethylene" /> + </MaterialFraction> + <MaterialFraction fraction="0.04287"> + <rMaterial name="materials:Polyethylene" /> + </MaterialFraction> + <MaterialFraction fraction="0.00302"> + <rMaterial name="trackermaterial:T_G10" /> + </MaterialFraction> + <MaterialFraction fraction="0.00719"> + <rMaterial name="materials:Brass" /> + </MaterialFraction> + <MaterialFraction fraction="0.0022"> + <rMaterial name="materials:Epoxy" /> + </MaterialFraction> + <MaterialFraction fraction="0.0014"> + <rMaterial name="materials:BGA" /> + </MaterialFraction> + <MaterialFraction fraction="0.02362"> + <rMaterial name="materials:Polyethylene" /> + </MaterialFraction> + <MaterialFraction fraction="0.12216"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.0708"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.01954"> + <rMaterial name="materials:Polyethylene" /> + </MaterialFraction> + <MaterialFraction fraction="0.00931"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + <MaterialFraction fraction="0.02362"> + <rMaterial name="materials:Polyethylene" /> + </MaterialFraction> + <MaterialFraction fraction="0.00531"> + <rMaterial name="materials:T_Kapton" /> + </MaterialFraction> + <MaterialFraction fraction="0.01298"> + <rMaterial name="materials:BGA" /> + </MaterialFraction> + <MaterialFraction fraction="0.01017"> + <rMaterial name="materials:Epoxy" /> + </MaterialFraction> + <MaterialFraction fraction="0"> + <rMaterial name="trackermaterial:CAB_Al48" /> + </MaterialFraction> + <MaterialFraction fraction="0.09746"> + <rMaterial name="trackermaterial:CAB_Al36" /> + </MaterialFraction> + <MaterialFraction fraction="0.0133"> + <rMaterial name="trackermaterial:T_RuggRibbon" /> + </MaterialFraction> + <MaterialFraction fraction="0.21136"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.17533"> + <rMaterial name="materials:Epoxy" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TOB_ax_services_A2" density="0.89125*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.5716"> + <rMaterial name="trackermaterial:CAB_Al36" /> + </MaterialFraction> + <MaterialFraction fraction="0.18427"> + <rMaterial name="trackermaterial:CAB_Al48" /> + </MaterialFraction> + <MaterialFraction fraction="0.07157"> + <rMaterial name="trackermaterial:TOB_DOHM_PowerConn" /> + </MaterialFraction> + <MaterialFraction fraction="0.00959"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.16296"> + <rMaterial name="trackermaterial:T_C6F14_F2_-30C" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TOB_ax_services_A3" density="0.83126*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.55157"> + <rMaterial name="trackermaterial:CAB_Al36" /> + </MaterialFraction> + <MaterialFraction fraction="0.26343"> + <rMaterial name="trackermaterial:CAB_Al48" /> + </MaterialFraction> + <MaterialFraction fraction="0"> + <rMaterial name="trackermaterial:TOB_DOHM_PowerConn" /> + </MaterialFraction> + <MaterialFraction fraction="0.01028"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.17472"> + <rMaterial name="trackermaterial:T_C6F14_F2_-30C" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TOB_ax_services_A4" density="0.64868*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.62828"> + <rMaterial name="trackermaterial:CAB_Al36" /> + </MaterialFraction> + <MaterialFraction fraction="0.25318"> + <rMaterial name="trackermaterial:CAB_Al48" /> + </MaterialFraction> + <MaterialFraction fraction="0"> + <rMaterial name="trackermaterial:TOB_DOHM_PowerConn" /> + </MaterialFraction> + <MaterialFraction fraction="0.00659"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.11195"> + <rMaterial name="trackermaterial:T_C6F14_F2_-30C" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TOB_ax_services_A5" density="0.88745*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.63146"> + <rMaterial name="trackermaterial:CAB_Al36" /> + </MaterialFraction> + <MaterialFraction fraction="0.12337"> + <rMaterial name="trackermaterial:CAB_Al48" /> + </MaterialFraction> + <MaterialFraction fraction="0.07188"> + <rMaterial name="trackermaterial:TOB_DOHM_PowerConn" /> + </MaterialFraction> + <MaterialFraction fraction="0.00963"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.16366"> + <rMaterial name="trackermaterial:T_C6F14_F2_-30C" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TOB_ax_services_A7" density="0.75817*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.53755"> + <rMaterial name="trackermaterial:CAB_Al36" /> + </MaterialFraction> + <MaterialFraction fraction="0.36103"> + <rMaterial name="trackermaterial:CAB_Al48" /> + </MaterialFraction> + <MaterialFraction fraction="0"> + <rMaterial name="trackermaterial:TOB_DOHM_PowerConn" /> + </MaterialFraction> + <MaterialFraction fraction="0.00564"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.09578"> + <rMaterial name="trackermaterial:T_C6F14_F2_-30C" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TOB_ax_services_A8" density="0.84410*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.48282"> + <rMaterial name="trackermaterial:CAB_Al36" /> + </MaterialFraction> + <MaterialFraction fraction="0.25942"> + <rMaterial name="trackermaterial:CAB_Al48" /> + </MaterialFraction> + <MaterialFraction fraction="0.07557"> + <rMaterial name="trackermaterial:TOB_DOHM_PowerConn" /> + </MaterialFraction> + <MaterialFraction fraction="0.01013"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.17207"> + <rMaterial name="trackermaterial:T_C6F14_F2_-30C" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TOB_ax_services_A9" density="0.75437*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.60779"> + <rMaterial name="trackermaterial:CAB_Al36" /> + </MaterialFraction> + <MaterialFraction fraction="0.29028"> + <rMaterial name="trackermaterial:CAB_Al48" /> + </MaterialFraction> + <MaterialFraction fraction="0"> + <rMaterial name="trackermaterial:TOB_DOHM_PowerConn" /> + </MaterialFraction> + <MaterialFraction fraction="0.00567"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.09627"> + <rMaterial name="trackermaterial:T_C6F14_F2_-30C" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TOB_ax_services_A11" density="0.89125*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.5716"> + <rMaterial name="trackermaterial:CAB_Al36" /> + </MaterialFraction> + <MaterialFraction fraction="0.18427"> + <rMaterial name="trackermaterial:CAB_Al48" /> + </MaterialFraction> + <MaterialFraction fraction="0.07157"> + <rMaterial name="trackermaterial:TOB_DOHM_PowerConn" /> + </MaterialFraction> + <MaterialFraction fraction="0.00959"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.16296"> + <rMaterial name="trackermaterial:T_C6F14_F2_-30C" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TOB_ax_services_A12" density="0.71200*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.57132"> + <rMaterial name="trackermaterial:CAB_Al36" /> + </MaterialFraction> + <MaterialFraction fraction="0.15348"> + <rMaterial name="trackermaterial:CAB_Al48" /> + </MaterialFraction> + <MaterialFraction fraction="0.05961"> + <rMaterial name="trackermaterial:TOB_DOHM_PowerConn" /> + </MaterialFraction> + <MaterialFraction fraction="0.01198"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.2036"> + <rMaterial name="trackermaterial:T_C6F14_F2_-30C" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TOB_ax_services_A13" density="0.75437*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.60779"> + <rMaterial name="trackermaterial:CAB_Al36" /> + </MaterialFraction> + <MaterialFraction fraction="0.29028"> + <rMaterial name="trackermaterial:CAB_Al48" /> + </MaterialFraction> + <MaterialFraction fraction="0"> + <rMaterial name="trackermaterial:TOB_DOHM_PowerConn" /> + </MaterialFraction> + <MaterialFraction fraction="0.00567"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.09627"> + <rMaterial name="trackermaterial:T_C6F14_F2_-30C" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TOB_ax_services_A14" density="0.88745*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.63146"> + <rMaterial name="trackermaterial:CAB_Al36" /> + </MaterialFraction> + <MaterialFraction fraction="0.12337"> + <rMaterial name="trackermaterial:CAB_Al48" /> + </MaterialFraction> + <MaterialFraction fraction="0.07188"> + <rMaterial name="trackermaterial:TOB_DOHM_PowerConn" /> + </MaterialFraction> + <MaterialFraction fraction="0.00963"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.16366"> + <rMaterial name="trackermaterial:T_C6F14_F2_-30C" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TOB_ax_services_A16" density="0.81815*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.5604"> + <rMaterial name="trackermaterial:CAB_Al36" /> + </MaterialFraction> + <MaterialFraction fraction="0.26765"> + <rMaterial name="trackermaterial:CAB_Al48" /> + </MaterialFraction> + <MaterialFraction fraction="0.07796"> + <rMaterial name="trackermaterial:TOB_DOHM_PowerConn" /> + </MaterialFraction> + <MaterialFraction fraction="0.00522"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.08876"> + <rMaterial name="trackermaterial:T_C6F14_F2_-30C" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TOB_ax_services_A17" density="0.72557*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.5617"> + <rMaterial name="trackermaterial:CAB_Al36" /> + </MaterialFraction> + <MaterialFraction fraction="0.22635"> + <rMaterial name="trackermaterial:CAB_Al48" /> + </MaterialFraction> + <MaterialFraction fraction="0"> + <rMaterial name="trackermaterial:TOB_DOHM_PowerConn" /> + </MaterialFraction> + <MaterialFraction fraction="0.01178"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.20017"> + <rMaterial name="trackermaterial:T_C6F14_F2_-30C" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TOB_ax_services_A18" density="0.75437*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.60779"> + <rMaterial name="trackermaterial:CAB_Al36" /> + </MaterialFraction> + <MaterialFraction fraction="0.29028"> + <rMaterial name="trackermaterial:CAB_Al48" /> + </MaterialFraction> + <MaterialFraction fraction="0"> + <rMaterial name="trackermaterial:TOB_DOHM_PowerConn" /> + </MaterialFraction> + <MaterialFraction fraction="0.00567"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.09627"> + <rMaterial name="trackermaterial:T_C6F14_F2_-30C" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TOB_ax_services_B2" density="1.48936*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.51373"> + <rMaterial name="trackermaterial:T_RuggRibbon" /> + </MaterialFraction> + <MaterialFraction fraction="0.48627"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TOB_ax_services_B3" density="1.35203*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.46433"> + <rMaterial name="trackermaterial:T_RuggRibbon" /> + </MaterialFraction> + <MaterialFraction fraction="0.53567"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TOB_ax_services_B4" density="1.35203*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.46433"> + <rMaterial name="trackermaterial:T_RuggRibbon" /> + </MaterialFraction> + <MaterialFraction fraction="0.53567"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TOB_ax_services_B5" density="1.46974*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.50723"> + <rMaterial name="trackermaterial:T_RuggRibbon" /> + </MaterialFraction> + <MaterialFraction fraction="0.49277"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TOB_ax_services_B6" density="1.50898*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.52005"> + <rMaterial name="trackermaterial:T_RuggRibbon" /> + </MaterialFraction> + <MaterialFraction fraction="0.47995"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TOB_ax_services_B7" density="1.27356*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.43133"> + <rMaterial name="trackermaterial:T_RuggRibbon" /> + </MaterialFraction> + <MaterialFraction fraction="0.56867"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TOB_ax_services_B8" density="1.33241*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.45645"> + <rMaterial name="trackermaterial:T_RuggRibbon" /> + </MaterialFraction> + <MaterialFraction fraction="0.54355"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TOB_ax_services_B9" density="1.50898*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.52005"> + <rMaterial name="trackermaterial:T_RuggRibbon" /> + </MaterialFraction> + <MaterialFraction fraction="0.47995"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TOB_ax_services_B11" density="1.29318*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.43995"> + <rMaterial name="trackermaterial:T_RuggRibbon" /> + </MaterialFraction> + <MaterialFraction fraction="0.56005"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TOB_ax_services_B12" density="1.50898*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.52005"> + <rMaterial name="trackermaterial:T_RuggRibbon" /> + </MaterialFraction> + <MaterialFraction fraction="0.47995"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TOB_ax_services_B13" density="1.50898*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.52005"> + <rMaterial name="trackermaterial:T_RuggRibbon" /> + </MaterialFraction> + <MaterialFraction fraction="0.47995"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TOB_ax_services_B14" density="1.50898*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.52005"> + <rMaterial name="trackermaterial:T_RuggRibbon" /> + </MaterialFraction> + <MaterialFraction fraction="0.47995"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TOB_ax_services_B15" density="1.48936*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.51373"> + <rMaterial name="trackermaterial:T_RuggRibbon" /> + </MaterialFraction> + <MaterialFraction fraction="0.48627"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TOB_ax_services_B16" density="1.43050*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.49372"> + <rMaterial name="trackermaterial:T_RuggRibbon" /> + </MaterialFraction> + <MaterialFraction fraction="0.50628"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TOB_ax_services_B17" density="1.46974*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.50723"> + <rMaterial name="trackermaterial:T_RuggRibbon" /> + </MaterialFraction> + <MaterialFraction fraction="0.49277"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TOB_ax_services_B18" density="1.46974*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.50723"> + <rMaterial name="trackermaterial:T_RuggRibbon" /> + </MaterialFraction> + <MaterialFraction fraction="0.49277"> + <rMaterial name="trackermaterial:T_Aluminium" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TOB_ax_services_C2" density="0.87379*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.52472"> + <rMaterial name="trackermaterial:CAB_Al36" /> + </MaterialFraction> + <MaterialFraction fraction="0.25061"> + <rMaterial name="trackermaterial:CAB_Al48" /> + </MaterialFraction> + <MaterialFraction fraction="0.04867"> + <rMaterial name="trackermaterial:TOB_DOHM_PowerConn" /> + </MaterialFraction> + <MaterialFraction fraction="0.00978"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.16622"> + <rMaterial name="trackermaterial:T_C6F14_F2_-30C" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TOB_ax_services_C3" density="0.73462*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.55478"> + <rMaterial name="trackermaterial:CAB_Al36" /> + </MaterialFraction> + <MaterialFraction fraction="0.14904"> + <rMaterial name="trackermaterial:CAB_Al48" /> + </MaterialFraction> + <MaterialFraction fraction="0.08683"> + <rMaterial name="trackermaterial:TOB_DOHM_PowerConn" /> + </MaterialFraction> + <MaterialFraction fraction="0.01164"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.19771"> + <rMaterial name="trackermaterial:T_C6F14_F2_-30C" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TOB_ax_services_C4" density="0.74595*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.54636"> + <rMaterial name="trackermaterial:CAB_Al36" /> + </MaterialFraction> + <MaterialFraction fraction="0.29355"> + <rMaterial name="trackermaterial:CAB_Al48" /> + </MaterialFraction> + <MaterialFraction fraction="0.05701"> + <rMaterial name="trackermaterial:TOB_DOHM_PowerConn" /> + </MaterialFraction> + <MaterialFraction fraction="0.00573"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.09735"> + <rMaterial name="trackermaterial:T_C6F14_F2_-30C" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TOB_ax_services_C6" density="0.86619*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.64696"> + <rMaterial name="trackermaterial:CAB_Al36" /> + </MaterialFraction> + <MaterialFraction fraction="0.1264"> + <rMaterial name="trackermaterial:CAB_Al48" /> + </MaterialFraction> + <MaterialFraction fraction="0.04909"> + <rMaterial name="trackermaterial:TOB_DOHM_PowerConn" /> + </MaterialFraction> + <MaterialFraction fraction="0.00987"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.16768"> + <rMaterial name="trackermaterial:T_C6F14_F2_-30C" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TOB_ax_services_C7" density="0.75057*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.67874"> + <rMaterial name="trackermaterial:CAB_Al36" /> + </MaterialFraction> + <MaterialFraction fraction="0.21881"> + <rMaterial name="trackermaterial:CAB_Al48" /> + </MaterialFraction> + <MaterialFraction fraction="0"> + <rMaterial name="trackermaterial:TOB_DOHM_PowerConn" /> + </MaterialFraction> + <MaterialFraction fraction="0.0057"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.09675"> + <rMaterial name="trackermaterial:T_C6F14_F2_-30C" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TOB_ax_services_C8" density="0.71715*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.49725"> + <rMaterial name="trackermaterial:CAB_Al36" /> + </MaterialFraction> + <MaterialFraction fraction="0.229"> + <rMaterial name="trackermaterial:CAB_Al48" /> + </MaterialFraction> + <MaterialFraction fraction="0.0593"> + <rMaterial name="trackermaterial:TOB_DOHM_PowerConn" /> + </MaterialFraction> + <MaterialFraction fraction="0.01192"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.20252"> + <rMaterial name="trackermaterial:T_C6F14_F2_-30C" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TOB_ax_services_C9" density="0.81055*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.69136"> + <rMaterial name="trackermaterial:CAB_Al36" /> + </MaterialFraction> + <MaterialFraction fraction="0.13508"> + <rMaterial name="trackermaterial:CAB_Al48" /> + </MaterialFraction> + <MaterialFraction fraction="0.07869"> + <rMaterial name="trackermaterial:TOB_DOHM_PowerConn" /> + </MaterialFraction> + <MaterialFraction fraction="0.00527"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.08959"> + <rMaterial name="trackermaterial:T_C6F14_F2_-30C" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TOB_ax_services_C11" density="0.83126*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.55157"> + <rMaterial name="trackermaterial:CAB_Al36" /> + </MaterialFraction> + <MaterialFraction fraction="0.26343"> + <rMaterial name="trackermaterial:CAB_Al48" /> + </MaterialFraction> + <MaterialFraction fraction="0"> + <rMaterial name="trackermaterial:TOB_DOHM_PowerConn" /> + </MaterialFraction> + <MaterialFraction fraction="0.01028"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.17472"> + <rMaterial name="trackermaterial:T_C6F14_F2_-30C" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TOB_ax_services_C12" density="0.73842*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.48294"> + <rMaterial name="trackermaterial:CAB_Al36" /> + </MaterialFraction> + <MaterialFraction fraction="0.22241"> + <rMaterial name="trackermaterial:CAB_Al48" /> + </MaterialFraction> + <MaterialFraction fraction="0.08638"> + <rMaterial name="trackermaterial:TOB_DOHM_PowerConn" /> + </MaterialFraction> + <MaterialFraction fraction="0.01158"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.19669"> + <rMaterial name="trackermaterial:T_C6F14_F2_-30C" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TOB_ax_services_C13" density="0.75437*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.60779"> + <rMaterial name="trackermaterial:CAB_Al36" /> + </MaterialFraction> + <MaterialFraction fraction="0.29028"> + <rMaterial name="trackermaterial:CAB_Al48" /> + </MaterialFraction> + <MaterialFraction fraction="0"> + <rMaterial name="trackermaterial:TOB_DOHM_PowerConn" /> + </MaterialFraction> + <MaterialFraction fraction="0.00567"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.09627"> + <rMaterial name="trackermaterial:T_C6F14_F2_-30C" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TOB_ax_services_C15" density="0.88745*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.63146"> + <rMaterial name="trackermaterial:CAB_Al36" /> + </MaterialFraction> + <MaterialFraction fraction="0.12337"> + <rMaterial name="trackermaterial:CAB_Al48" /> + </MaterialFraction> + <MaterialFraction fraction="0.07188"> + <rMaterial name="trackermaterial:TOB_DOHM_PowerConn" /> + </MaterialFraction> + <MaterialFraction fraction="0.00963"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.16366"> + <rMaterial name="trackermaterial:T_C6F14_F2_-30C" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TOB_ax_services_C16" density="0.75437*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.60779"> + <rMaterial name="trackermaterial:CAB_Al36" /> + </MaterialFraction> + <MaterialFraction fraction="0.29028"> + <rMaterial name="trackermaterial:CAB_Al48" /> + </MaterialFraction> + <MaterialFraction fraction="0"> + <rMaterial name="trackermaterial:TOB_DOHM_PowerConn" /> + </MaterialFraction> + <MaterialFraction fraction="0.00567"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.09627"> + <rMaterial name="trackermaterial:T_C6F14_F2_-30C" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TOB_ax_services_C17" density="0.79316*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.4496"> + <rMaterial name="trackermaterial:CAB_Al36" /> + </MaterialFraction> + <MaterialFraction fraction="0.27608"> + <rMaterial name="trackermaterial:CAB_Al48" /> + </MaterialFraction> + <MaterialFraction fraction="0.08042"> + <rMaterial name="trackermaterial:TOB_DOHM_PowerConn" /> + </MaterialFraction> + <MaterialFraction fraction="0.01078"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.18312"> + <rMaterial name="trackermaterial:T_C6F14_F2_-30C" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TOB_ax_services_C18" density="0.81055*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="0.69136"> + <rMaterial name="trackermaterial:CAB_Al36" /> + </MaterialFraction> + <MaterialFraction fraction="0.13508"> + <rMaterial name="trackermaterial:CAB_Al48" /> + </MaterialFraction> + <MaterialFraction fraction="0.07869"> + <rMaterial name="trackermaterial:TOB_DOHM_PowerConn" /> + </MaterialFraction> + <MaterialFraction fraction="0.00527"> + <rMaterial name="trackermaterial:T_Copper" /> + </MaterialFraction> + <MaterialFraction fraction="0.08959"> + <rMaterial name="trackermaterial:T_C6F14_F2_-30C" /> + </MaterialFraction> + </CompositeMaterial> + <CompositeMaterial name="TOB_rod" density="1.796*g/cm3" method="mixture by weight" symbol=" "> + <MaterialFraction fraction="1."> + <rMaterial name="trackermaterial:T_CarbonFibreStr" /> + </MaterialFraction> + </CompositeMaterial> + </MaterialSection> +</DDDefinition> diff --git a/examples/DDCMS/data/tobmodpar.xml b/examples/DDCMS/data/tobmodpar.xml new file mode 100644 index 0000000000000000000000000000000000000000..0a52fe67fd5c58d306f5bda390cb559984562df6 --- /dev/null +++ b/examples/DDCMS/data/tobmodpar.xml @@ -0,0 +1,178 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tobmodpar.xml" eval="true"> + <Constant name="ModuleDx" value="6.000*cm"/> + <Constant name="ModuleDy" value="0.440*cm"/> + <Constant name="ModuleDz" value="12.075*cm"/> + <Constant name="HybridDx" value="3.000*cm"/> + <Constant name="HybridDy" value="0.025*cm"/> + <Constant name="HybridDz" value="1.250*cm"/> + <Constant name="HybridY" value="0.215*cm"/> + <Constant name="HybridZ" value="9.965*cm"/> + <Constant name="PADx" value="4.300*cm"/> + <Constant name="PADy" value="0.055*cm"/> + <Constant name="PA1Dz" value="0.625*cm"/> + <Constant name="PA2Dz1" value="0.8215*cm"/> + <Constant name="PA2Dz2" value="0.3900*cm"/> + <Constant name="PA2Theta" value="2.87237*deg"/> + <Constant name="PAY" value="0.185*cm"/> + <Constant name="PAZ" value="8.060*cm"/> + <Constant name="SideRailDx" value="0.850*cm"/> + <Constant name="SideRailDy" value="0.040*cm"/> + <Constant name="SideRailDz" value="10.50*cm"/> + <Constant name="SideRailX" value="5.150*cm"/> + <Constant name="SideRailY" value="0.125*cm"/> + <Constant name="SideRailZ" value="1.575*cm"/> + <Constant name="FrameDx" value="6.000*cm"/> + <Constant name="FrameDy" value="0.03125*cm"/> + <Constant name="FrameDz" value="2.250*cm"/> + <Constant name="FrameY" value="0.05275*cm"/> + <Constant name="FrameZ" value="9.825*cm"/> + <Constant name="HybSupDx" value="3.500*cm"/> + <Constant name="HybSupDy" value="0.030*cm"/> + <Constant name="HybSupDz" value="1.665*cm"/> + <Constant name="HybSupY" value="0.115*cm"/> + <Constant name="HybSupZ" value="10.35*cm"/> + <Constant name="ModCool1Dx" value="0.800*cm"/> + <Constant name="ModCoolDy" value="0.015*cm"/> + <Constant name="ModCool1Dz" value="1.000*cm"/> + <Constant name="ModCool1X" value="5.200*cm"/> + <Constant name="ModCool1Y" value="0.069*cm"/> + <Constant name="ModCool1Z" value="2.125*cm"/> + <Constant name="ModCool2Dx" value="0.750*cm"/> + <Constant name="ModCool2Dz" value="1.400*cm"/> + <Constant name="ModCool2X" value="5.250*cm"/> + <Constant name="ModCool2Y" value="0.100*cm"/> + <Constant name="ModCool2Z" value="10.325*cm"/> + <Constant name="ModCoolComp1Dx" value="0.800*cm"/> + <Constant name="ModCoolCompDy" value="0.015*cm"/> + <Constant name="ModCoolComp1Dz" value="1.300*cm"/> + <Constant name="ModCoolComp1X" value="5.200*cm"/> + <Constant name="ModCoolComp1Y" value="0.039*cm"/> + <Constant name="ModCoolComp1Z" value="2.125*cm"/> + <Constant name="ModCoolComp2Dx" value="0.800*cm"/> + <Constant name="ModCoolComp2Dz" value="1.300*cm"/> + <Constant name="ModCoolComp2X" value="5.200*cm"/> + <Constant name="ModCoolComp2Y" value="0.130*cm"/> + <Constant name="ModCoolComp2Z" value="10.325*cm"/> + <Constant name="Tilt" value="5.7296*deg"/> + <Constant name="TiltX" value="(90.0*deg-[Tilt])"/> + <Constant name="WaferDx" value="4.818*cm"/> + <Constant name="WaferDy" value="9.450*cm"/> + <Constant name="WaferDz" value="0.025*cm"/> + <Constant name="WaferY" value="0.215*cm"/> + <Constant name="WaferZ" value="2.125*cm"/> + <Constant name="ActiveDx" value="4.6848*cm"/> + <Constant name="ActiveDy" value="9.3067*cm"/> + <Constant name="ActiveDz" value="[WaferDz]-[tracker:BackPlaneDz]"/> + <Constant name="InactiveDy" value="0.1553*cm"/> + <Constant name="GlueDx1" value="4.6848*cm"/> + <Constant name="GlueDx2" value="4.30*cm"/> + <Constant name="GlueDy" value="0.275*cm"/> + <Constant name="GlueDz" value="0.1*cm"/> + <Constant name="GlueSi1Y" value="0.340*cm"/> + <Constant name="GlueSi2Y" value="0.015*cm"/> + <Constant name="GluePAY" value="0.340*cm"/> + <Constant name="GluePAZ" value="7.435*cm"/> + <Constant name="PAX" value="[WaferDy]*sin([Tilt])"/> + <Constant name="GluePAX" value="[WaferDy]*sin([Tilt])"/> + <Constant name="PAYst" value="0.260*cm"/> + <Constant name="GluePAYst" value="0.390*cm"/> + </ConstantsSection> + <SolidSection label="tobmodpar.xml"> + <Box name="TOBModule" dx="[tobmodpar:ModuleDx]" dy="[tobmodpar:ModuleDy]" dz="[tobmodpar:ModuleDz]"/> + <Box name="TOBHybrid" dx="[tobmodpar:HybridDx]" dy="[tobmodpar:HybridDy]" dz="[tobmodpar:HybridDz]"/> + <Box name="TOBWaferRphi" dx="[tobmodpar:WaferDx]" dy="[tobmodpar:WaferDy]" dz="[tobmodpar:WaferDz]"/> + <Box name="TOBActiveRphi" dx="[tobmodpar:ActiveDx]" dy="[tobmodpar:ActiveDy]" dz="[tobmodpar:ActiveDz]"/> + <Box name="TOBPA1" dx="[PADx]" dy="[PADy]" dz="[PA1Dz]"/> + <Trapezoid name="TOBPA2" dz="[PADx]" alp1="0*deg" bl1="[PA2Dz1]" tl1="[PA2Dz1]" h1="[PADy]" alp2="0*deg" bl2="[PA2Dz2]" tl2="[PA2Dz2]" h2="[PADy]" phi="0*deg" theta="[PA2Theta]"/> + <Box name="TOBEncapsulant1" dx="[GlueDx1]" dy="[GlueDy]" dz="[GlueDz]"/> + <Box name="TOBEncapsulant2" dx="[GlueDx2]" dy="[GlueDy]" dz="[GlueDz]"/> + <Box name="TOBEncapsulant3" dx="[GlueDx1]" dy="[GlueDy]*2" dz="[GlueDz]/2"/> + <Box name="TOBSideRailL" dx="[SideRailDx]" dy="[SideRailDy]" dz="[SideRailDz]"/> + <Box name="TOBSideRailR" dx="[SideRailDx]" dy="[SideRailDy]" dz="[SideRailDz]"/> + <Box name="TOBFrame" dx="[FrameDx]" dy="[FrameDy]" dz="[FrameDz]"/> + <Box name="TOBHybSup" dx="[HybSupDx]" dy="[HybSupDy]" dz="[HybSupDz]"/> + <Box name="TOBModCool1" dx="[ModCool1Dx]" dy="[ModCoolDy]" dz="[ModCool1Dz]"/> + <Box name="TOBModCool2" dx="[ModCool2Dx]" dy="[ModCoolDy]" dz="[ModCool2Dz]"/> + <Box name="TOBModCoolComp1" dx="[ModCoolComp1Dx]" dy="[ModCoolCompDy]" dz="[ModCoolComp1Dz]"/> + <Box name="TOBModCoolComp2" dx="[ModCoolComp2Dx]" dy="[ModCoolCompDy]" dz="[ModCoolComp2Dz]"/> + <Box name="TOBInactive" dx="[ActiveDx]" dy="[InactiveDy]" dz="[ActiveDz]"/> + </SolidSection> + <LogicalPartSection label="tobmodpar.xml"> + <LogicalPart name="TOBPA1" category="unspecified"> + <rSolid name="TOBPA1"/> + <rMaterial name="tobmaterial:TOB_PA_rphi"/> + </LogicalPart> + <LogicalPart name="TOBPA2" category="unspecified"> + <rSolid name="TOBPA2"/> + <rMaterial name="tobmaterial:TOB_PA_ster"/> + </LogicalPart> + <LogicalPart name="TOBPAEncaps" category="unspecified"> + <rSolid name="TOBEncapsulant1"/> + <rMaterial name="tobmaterial:TOB_Sens_Interface"/> + </LogicalPart> + <LogicalPart name="TOBPAEncapsSt" category="unspecified"> + <rSolid name="TOBEncapsulant3"/> + <rMaterial name="tobmaterial:TOB_Sens_Interface"/> + </LogicalPart> + <LogicalPart name="TOBSideRailL" category="unspecified"> + <rSolid name="TOBSideRailL"/> + <rMaterial name="tobmaterial:TOB_sid_rail1"/> + </LogicalPart> + <LogicalPart name="TOBSideRailR" category="unspecified"> + <rSolid name="TOBSideRailR"/> + <rMaterial name="tobmaterial:TOB_sid_rail2"/> + </LogicalPart> + <LogicalPart name="TOBSideRailLst" category="unspecified"> + <rSolid name="TOBSideRailL"/> + <rMaterial name="tobmaterial:TOB_sid_rail1st"/> + </LogicalPart> + <LogicalPart name="TOBSideRailRst" category="unspecified"> + <rSolid name="TOBSideRailR"/> + <rMaterial name="tobmaterial:TOB_sid_rail2st"/> + </LogicalPart> + <LogicalPart name="TOBFrame" category="unspecified"> + <rSolid name="TOBFrame"/> + <rMaterial name="tobmaterial:TOB_frame_ele"/> + </LogicalPart> + <LogicalPart name="TOBHybSup" category="unspecified"> + <rSolid name="TOBHybSup"/> + <rMaterial name="tobmaterial:TOB_hybrid_supp"/> + </LogicalPart> + <LogicalPart name="TOBModCool1" category="unspecified"> + <rSolid name="TOBModCool1"/> + <rMaterial name="tobmaterial:TOB_mod_cool1"/> + </LogicalPart> + <LogicalPart name="TOBModCool2" category="unspecified"> + <rSolid name="TOBModCool2"/> + <rMaterial name="tobmaterial:TOB_mod_cool2"/> + </LogicalPart> + <LogicalPart name="TOBModCoolComp1" category="unspecified"> + <rSolid name="TOBModCoolComp1"/> + <rMaterial name="tobmaterial:TOB_mod_comp"/> + </LogicalPart> + <LogicalPart name="TOBModCoolComp2" category="unspecified"> + <rSolid name="TOBModCoolComp2"/> + <rMaterial name="trackermaterial:T_CarbonFibreStr"/> + </LogicalPart> + <LogicalPart name="TOBInactive" category="unspecified"> + <rSolid name="TOBInactive"/> + <rMaterial name="materials:Silicon"/> + </LogicalPart> + <LogicalPart name="TOBSiEncaps" category="unspecified"> + <rSolid name="TOBEncapsulant1"/> + <rMaterial name="tobmaterial:TOB_Sens_Interface"/> + </LogicalPart> + <LogicalPart name="TOBSiBackEncaps" category="unspecified"> + <rSolid name="TOBEncapsulant2"/> + <rMaterial name="trackermaterial:T_Silicone_Gel"/> + </LogicalPart> + </LogicalPartSection> + <RotationSection label="tobmodpar.xml"> + <Rotation name="Rphi" thetaX="90*deg" phiX="0*deg" thetaY="0*deg" phiY="0*deg" thetaZ="-90*deg" phiZ="90*deg"/> + <Rotation name="Ster" thetaX="[TiltX]" phiX="180*deg" thetaY="[Tilt]" phiY="0*deg" thetaZ="90*deg" phiZ="90*deg"/> + <Rotation name="PA" thetaX="0*deg" phiX="0*deg" thetaY="90*deg" phiY="90*deg" thetaZ="-90*deg" phiZ="0*deg"/> + <Rotation name="Activ" thetaX="90*deg" phiX="180*deg" thetaY="90*deg" phiY="270*deg" thetaZ="0*deg" phiZ="0*deg"/> + </RotationSection> +</DDDefinition> diff --git a/examples/DDCMS/data/tobmodule0.xml b/examples/DDCMS/data/tobmodule0.xml new file mode 100644 index 0000000000000000000000000000000000000000..4141dffebc849d0e237903cfd50df7ed30519c93 --- /dev/null +++ b/examples/DDCMS/data/tobmodule0.xml @@ -0,0 +1,267 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tobmodule0.xml" eval="true"> + <Constant name="zero" value="0.0*fm"/> + </ConstantsSection> + <SolidSection label="tobmodule0.xml"> + <Box name="TOBModCool01" dx="[tobmodpar:ModCool1Dx]" dy="[tobmodpar:ModCoolDy]" dz="[tobmodpar:ModCool1Dz]"/> + <Box name="TOBModCool02" dx="[tobmodpar:ModCool2Dx]" dy="[tobmodpar:ModCoolDy]" dz="[tobmodpar:ModCool2Dz]"/> + <Box name="TOBWaferSter0" dx="[tobmodpar:WaferDx]" dy="[tobmodpar:WaferDy]" dz="[tobmodpar:WaferDz]"/> + <Box name="TOBActiveSter0" dx="[tobmodpar:ActiveDx]" dy="[tobmodpar:ActiveDy]" dz="[tobmodpar:ActiveDz]"/> + <Box name="TOBModCoolComp01" dx="[tobmodpar:ModCoolComp1Dx]" dy="[tobmodpar:ModCoolCompDy]" dz="[tobmodpar:ModCoolComp1Dz]"/> + <Box name="TOBModCoolComp02" dx="[tobmodpar:ModCoolComp2Dx]" dy="[tobmodpar:ModCoolCompDy]" dz="[tobmodpar:ModCoolComp2Dz]"/> + </SolidSection> + <LogicalPartSection label="tobmodule0.xml"> + <LogicalPart name="TOBModule0" category="unspecified"> + <rSolid name="tobmodpar:TOBModule"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TOBHybrid0" category="unspecified"> + <rSolid name="tobmodpar:TOBHybrid"/> + <rMaterial name="tobmaterial:TOB_ele12"/> + </LogicalPart> + <LogicalPart name="TOBModCool01" category="unspecified"> + <rSolid name="TOBModCool01"/> + <rMaterial name="tobmaterial:TOB_mod_cool1"/> + </LogicalPart> + <LogicalPart name="TOBModCool02" category="unspecified"> + <rSolid name="TOBModCool02"/> + <rMaterial name="tobmaterial:TOB_mod_cool2"/> + </LogicalPart> + <LogicalPart name="TOBWaferRphi0" category="unspecified"> + <rSolid name="tobmodpar:TOBWaferRphi"/> + <rMaterial name="materials:Silicon"/> + </LogicalPart> + <LogicalPart name="TOBActiveRphi0" category="unspecified"> + <rSolid name="tobmodpar:TOBActiveRphi"/> + <rMaterial name="materials:Silicon"/> + </LogicalPart> + <LogicalPart name="TOBWaferSter0" category="unspecified"> + <rSolid name="TOBWaferSter0"/> + <rMaterial name="materials:Silicon"/> + </LogicalPart> + <LogicalPart name="TOBActiveSter0" category="unspecified"> + <rSolid name="TOBActiveSter0"/> + <rMaterial name="materials:Silicon"/> + </LogicalPart> + <LogicalPart name="TOBModCoolComp01" category="unspecified"> + <rSolid name="TOBModCoolComp01"/> + <rMaterial name="tobmaterial:TOB_mod_comp"/> + </LogicalPart> + <LogicalPart name="TOBModCoolComp02" category="unspecified"> + <rSolid name="TOBModCoolComp02"/> + <rMaterial name="trackermaterial:T_CarbonFibreStr"/> + </LogicalPart> + </LogicalPartSection> + <PosPartSection label="tobmodule0.xml"> + <PosPart copyNumber="1"> + <rParent name="tobmodule0:TOBWaferRphi0"/> + <rChild name="tobmodule0:TOBActiveRphi0"/> + <Translation x="[zero]" y="[zero]" z="[tracker:BackPlaneDz]"/> + <rRotation name="tobmodpar:Activ"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tobmodule0:TOBActiveRphi0"/> + <rChild name="tobmodpar:TOBInactive"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tobmodule0:TOBWaferSter0"/> + <rChild name="tobmodule0:TOBActiveSter0"/> + <Translation x="[zero]" y="[zero]" z="[tracker:BackPlaneDz]"/> + <rRotation name="tobmodpar:Activ"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tobmodule0:TOBActiveSter0"/> + <rChild name="tobmodpar:TOBInactive"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tobmodule0:TOBModule0"/> + <rChild name="tobmodule0:TOBWaferRphi0"/> + <rRotation name="tobmodpar:Rphi"/> + <Translation x="[zero]" y="-[tobmodpar:WaferY]" z="-[tobmodpar:WaferZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tobmodule0:TOBModule0"/> + <rChild name="tobmodule0:TOBWaferSter0"/> + <rRotation name="tobmodpar:Ster"/> + <Translation x="[zero]" y="[tobmodpar:WaferY]" z="-[tobmodpar:WaferZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tobmodule0:TOBModule0"/> + <rChild name="tobmodpar:TOBSiEncaps"/> + <rRotation name="tobmodpar:Rphi"/> + <Translation x="[zero]" y="-[tobmodpar:GlueSi1Y]" z="-[tobmodpar:WaferZ]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tobmodule0:TOBModule0"/> + <rChild name="tobmodpar:TOBSiEncaps"/> + <rRotation name="tobmodpar:Ster"/> + <Translation x="[zero]" y="[tobmodpar:GlueSi1Y]" z="-[tobmodpar:WaferZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tobmodule0:TOBModule0"/> + <rChild name="tobmodpar:TOBSiBackEncaps"/> + <rRotation name="tobmodpar:Rphi"/> + <Translation x="[zero]" y="-[tobmodpar:GlueSi2Y]" z="-[tobmodpar:WaferZ]-[tobmodpar:GlueDy]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tobmodule0:TOBModule0"/> + <rChild name="tobmodpar:TOBSiBackEncaps"/> + <rRotation name="tobmodpar:Rphi"/> + <Translation x="[zero]" y="[tobmodpar:GlueSi2Y]" z="-[tobmodpar:WaferZ]+[tobmodpar:GlueDy]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tobmodule0:TOBModule0"/> + <rChild name="tobmodule0:TOBHybrid0"/> + <Translation x="[zero]" y="-[tobmodpar:HybridY]" z="[tobmodpar:HybridZ]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tobmodule0:TOBModule0"/> + <rChild name="tobmodule0:TOBHybrid0"/> + <Translation x="[zero]" y="[tobmodpar:HybridY]" z="[tobmodpar:HybridZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tobmodule0:TOBModule0"/> + <rChild name="tobmodpar:TOBPA1"/> + <Translation x="[zero]" y="-[tobmodpar:PAY]" z="[tobmodpar:PAZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tobmodule0:TOBModule0"/> + <rChild name="tobmodpar:TOBPA2"/> + <rRotation name="tobmodpar:PA"/> + <Translation x="[tobmodpar:PAX]" y="[tobmodpar:PAYst]" z="[tobmodpar:PAZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tobmodule0:TOBModule0"/> + <rChild name="tobmodpar:TOBPAEncaps"/> + <rRotation name="tobmodpar:Rphi"/> + <Translation x="[zero]" y="-[tobmodpar:GluePAY]" z="[tobmodpar:GluePAZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tobmodule0:TOBModule0"/> + <rChild name="tobmodpar:TOBPAEncapsSt"/> + <rRotation name="tobmodpar:Ster"/> + <Translation x="[tobmodpar:GluePAX]" y="[tobmodpar:GluePAYst]" z="[tobmodpar:GluePAZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tobmodule0:TOBModule0"/> + <rChild name="tobmodpar:TOBSideRailL"/> + <Translation x="-[tobmodpar:SideRailX]" y="-[tobmodpar:SideRailY]" z="-[tobmodpar:SideRailZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tobmodule0:TOBModule0"/> + <rChild name="tobmodpar:TOBSideRailR"/> + <Translation x="[tobmodpar:SideRailX]" y="-[tobmodpar:SideRailY]" z="-[tobmodpar:SideRailZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tobmodule0:TOBModule0"/> + <rChild name="tobmodpar:TOBSideRailLst"/> + <Translation x="[tobmodpar:SideRailX]" y="[tobmodpar:SideRailY]" z="-[tobmodpar:SideRailZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tobmodule0:TOBModule0"/> + <rChild name="tobmodpar:TOBSideRailRst"/> + <Translation x="-[tobmodpar:SideRailX]" y="[tobmodpar:SideRailY]" z="-[tobmodpar:SideRailZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tobmodule0:TOBModule0"/> + <rChild name="tobmodpar:TOBFrame"/> + <Translation x="[zero]" y="-[tobmodpar:FrameY]" z="[tobmodpar:FrameZ]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tobmodule0:TOBModule0"/> + <rChild name="tobmodpar:TOBFrame"/> + <Translation x="[zero]" y="[tobmodpar:FrameY]" z="[tobmodpar:FrameZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tobmodule0:TOBModule0"/> + <rChild name="tobmodpar:TOBHybSup"/> + <Translation x="[zero]" y="-[tobmodpar:HybSupY]" z="[tobmodpar:HybSupZ]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tobmodule0:TOBModule0"/> + <rChild name="tobmodpar:TOBHybSup"/> + <Translation x="[zero]" y="[tobmodpar:HybSupY]" z="[tobmodpar:HybSupZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tobmodule0:TOBModule0"/> + <rChild name="tobmodpar:TOBModCool1"/> + <Translation x="-[tobmodpar:ModCool1X]" y="-[tobmodpar:ModCool1Y]" z="-[tobmodpar:ModCool1Z]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tobmodule0:TOBModule0"/> + <rChild name="tobmodpar:TOBModCool1"/> + <Translation x="[tobmodpar:ModCool1X]" y="-[tobmodpar:ModCool1Y]" z="-[tobmodpar:ModCool1Z]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tobmodule0:TOBModule0"/> + <rChild name="tobmodpar:TOBModCoolComp1"/> + <Translation x="-[tobmodpar:ModCoolComp1X]" y="-[tobmodpar:ModCoolComp1Y]" z="-[tobmodpar:ModCoolComp1Z]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tobmodule0:TOBModule0"/> + <rChild name="tobmodpar:TOBModCoolComp1"/> + <Translation x="[tobmodpar:ModCoolComp1X]" y="-[tobmodpar:ModCoolComp1Y]" z="-[tobmodpar:ModCoolComp1Z]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tobmodule0:TOBModule0"/> + <rChild name="tobmodpar:TOBModCool2"/> + <Translation x="-[tobmodpar:ModCool2X]" y="-[tobmodpar:ModCool2Y]" z="[tobmodpar:ModCool2Z]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tobmodule0:TOBModule0"/> + <rChild name="tobmodpar:TOBModCool2"/> + <Translation x="[tobmodpar:ModCool2X]" y="-[tobmodpar:ModCool2Y]" z="[tobmodpar:ModCool2Z]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tobmodule0:TOBModule0"/> + <rChild name="tobmodpar:TOBModCoolComp2"/> + <Translation x="-[tobmodpar:ModCoolComp2X]" y="-[tobmodpar:ModCoolComp2Y]" z="[tobmodpar:ModCoolComp2Z]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tobmodule0:TOBModule0"/> + <rChild name="tobmodpar:TOBModCoolComp2"/> + <Translation x="[tobmodpar:ModCoolComp2X]" y="-[tobmodpar:ModCoolComp2Y]" z="[tobmodpar:ModCoolComp2Z]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tobmodule0:TOBModule0"/> + <rChild name="tobmodule0:TOBModCool01"/> + <Translation x="-[tobmodpar:ModCool1X]" y="[tobmodpar:ModCool1Y]" z="-[tobmodpar:ModCool1Z]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tobmodule0:TOBModule0"/> + <rChild name="tobmodule0:TOBModCool01"/> + <Translation x="[tobmodpar:ModCool1X]" y="[tobmodpar:ModCool1Y]" z="-[tobmodpar:ModCool1Z]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tobmodule0:TOBModule0"/> + <rChild name="tobmodule0:TOBModCoolComp01"/> + <Translation x="-[tobmodpar:ModCoolComp1X]" y="[tobmodpar:ModCoolComp1Y]" z="-[tobmodpar:ModCoolComp1Z]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tobmodule0:TOBModule0"/> + <rChild name="tobmodule0:TOBModCoolComp01"/> + <Translation x="[tobmodpar:ModCoolComp1X]" y="[tobmodpar:ModCoolComp1Y]" z="-[tobmodpar:ModCoolComp1Z]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tobmodule0:TOBModule0"/> + <rChild name="tobmodule0:TOBModCool02"/> + <Translation x="-[tobmodpar:ModCool2X]" y="[tobmodpar:ModCool2Y]" z="[tobmodpar:ModCool2Z]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tobmodule0:TOBModule0"/> + <rChild name="tobmodule0:TOBModCool02"/> + <Translation x="[tobmodpar:ModCool2X]" y="[tobmodpar:ModCool2Y]" z="[tobmodpar:ModCool2Z]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tobmodule0:TOBModule0"/> + <rChild name="tobmodule0:TOBModCoolComp02"/> + <Translation x="-[tobmodpar:ModCoolComp2X]" y="[tobmodpar:ModCoolComp2Y]" z="[tobmodpar:ModCoolComp2Z]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tobmodule0:TOBModule0"/> + <rChild name="tobmodule0:TOBModCoolComp02"/> + <Translation x="[tobmodpar:ModCoolComp2X]" y="[tobmodpar:ModCoolComp2Y]" z="[tobmodpar:ModCoolComp2Z]"/> + </PosPart> + </PosPartSection> +</DDDefinition> diff --git a/examples/DDCMS/data/tobmodule2.xml b/examples/DDCMS/data/tobmodule2.xml new file mode 100644 index 0000000000000000000000000000000000000000..279b548ba8b9bf247310e4a58b155d422fbb4533 --- /dev/null +++ b/examples/DDCMS/data/tobmodule2.xml @@ -0,0 +1,130 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tobmodule2.xml" eval="true"> + <Constant name="zero" value="0.0*fm"/> + </ConstantsSection> + <LogicalPartSection label="tobmodule2.xml"> + <LogicalPart name="TOBModule2" category="unspecified"> + <rSolid name="tobmodpar:TOBModule"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TOBHybrid2" category="unspecified"> + <rSolid name="tobmodpar:TOBHybrid"/> + <rMaterial name="tobmaterial:TOB_ele34"/> + </LogicalPart> + <LogicalPart name="TOBWaferRphi2" category="unspecified"> + <rSolid name="tobmodpar:TOBWaferRphi"/> + <rMaterial name="materials:Silicon"/> + </LogicalPart> + <LogicalPart name="TOBActiveRphi2" category="unspecified"> + <rSolid name="tobmodpar:TOBActiveRphi"/> + <rMaterial name="materials:Silicon"/> + </LogicalPart> + </LogicalPartSection> + <PosPartSection label="tobmodule2.xml"> + <PosPart copyNumber="1"> + <rParent name="tobmodule2:TOBWaferRphi2"/> + <rChild name="tobmodule2:TOBActiveRphi2"/> + <Translation x="[zero]" y="[zero]" z="[tracker:BackPlaneDz]"/> + <rRotation name="tobmodpar:Activ"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tobmodule2:TOBActiveRphi2"/> + <rChild name="tobmodpar:TOBInactive"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tobmodule2:TOBModule2"/> + <rChild name="tobmodule2:TOBWaferRphi2"/> + <rRotation name="tobmodpar:Rphi"/> + <Translation x="[zero]" y="-[tobmodpar:WaferY]" z="-[tobmodpar:WaferZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tobmodule2:TOBModule2"/> + <rChild name="tobmodpar:TOBSiEncaps"/> + <rRotation name="tobmodpar:Rphi"/> + <Translation x="[zero]" y="-[tobmodpar:GlueSi1Y]" z="-[tobmodpar:WaferZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tobmodule2:TOBModule2"/> + <rChild name="tobmodpar:TOBSiBackEncaps"/> + <rRotation name="tobmodpar:Rphi"/> + <Translation x="[zero]" y="-[tobmodpar:GlueSi2Y]" z="-[tobmodpar:WaferZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tobmodule2:TOBModule2"/> + <rChild name="tobmodule2:TOBHybrid2"/> + <Translation x="[zero]" y="-[tobmodpar:HybridY]" z="[tobmodpar:HybridZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tobmodule2:TOBModule2"/> + <rChild name="tobmodpar:TOBPA1"/> + <Translation x="[zero]" y="-[tobmodpar:PAY]" z="[tobmodpar:PAZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tobmodule2:TOBModule2"/> + <rChild name="tobmodpar:TOBPAEncaps"/> + <rRotation name="tobmodpar:Rphi"/> + <Translation x="[zero]" y="-[tobmodpar:GluePAY]" z="[tobmodpar:GluePAZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tobmodule2:TOBModule2"/> + <rChild name="tobmodpar:TOBSideRailL"/> + <Translation x="-[tobmodpar:SideRailX]" y="-[tobmodpar:SideRailY]" z="-[tobmodpar:SideRailZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tobmodule2:TOBModule2"/> + <rChild name="tobmodpar:TOBSideRailR"/> + <Translation x="[tobmodpar:SideRailX]" y="-[tobmodpar:SideRailY]" z="-[tobmodpar:SideRailZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tobmodule2:TOBModule2"/> + <rChild name="tobmodpar:TOBFrame"/> + <Translation x="[zero]" y="-[tobmodpar:FrameY]" z="[tobmodpar:FrameZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tobmodule2:TOBModule2"/> + <rChild name="tobmodpar:TOBHybSup"/> + <Translation x="[zero]" y="-[tobmodpar:HybSupY]" z="[tobmodpar:HybSupZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tobmodule2:TOBModule2"/> + <rChild name="tobmodpar:TOBModCool1"/> + <Translation x="-[tobmodpar:ModCool1X]" y="-[tobmodpar:ModCool1Y]" z="-[tobmodpar:ModCool1Z]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tobmodule2:TOBModule2"/> + <rChild name="tobmodpar:TOBModCool1"/> + <Translation x="[tobmodpar:ModCool1X]" y="-[tobmodpar:ModCool1Y]" z="-[tobmodpar:ModCool1Z]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tobmodule2:TOBModule2"/> + <rChild name="tobmodpar:TOBModCoolComp1"/> + <Translation x="-[tobmodpar:ModCoolComp1X]" y="-[tobmodpar:ModCoolComp1Y]" z="-[tobmodpar:ModCoolComp1Z]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tobmodule2:TOBModule2"/> + <rChild name="tobmodpar:TOBModCoolComp1"/> + <Translation x="[tobmodpar:ModCoolComp1X]" y="-[tobmodpar:ModCoolComp1Y]" z="-[tobmodpar:ModCoolComp1Z]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tobmodule2:TOBModule2"/> + <rChild name="tobmodpar:TOBModCool2"/> + <Translation x="-[tobmodpar:ModCool2X]" y="-[tobmodpar:ModCool2Y]" z="[tobmodpar:ModCool2Z]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tobmodule2:TOBModule2"/> + <rChild name="tobmodpar:TOBModCool2"/> + <Translation x="[tobmodpar:ModCool2X]" y="-[tobmodpar:ModCool2Y]" z="[tobmodpar:ModCool2Z]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tobmodule2:TOBModule2"/> + <rChild name="tobmodpar:TOBModCoolComp2"/> + <Translation x="-[tobmodpar:ModCoolComp2X]" y="-[tobmodpar:ModCoolComp2Y]" z="[tobmodpar:ModCoolComp2Z]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tobmodule2:TOBModule2"/> + <rChild name="tobmodpar:TOBModCoolComp2"/> + <Translation x="[tobmodpar:ModCoolComp2X]" y="-[tobmodpar:ModCoolComp2Y]" z="[tobmodpar:ModCoolComp2Z]"/> + </PosPart> + </PosPartSection> +</DDDefinition> diff --git a/examples/DDCMS/data/tobmodule4.xml b/examples/DDCMS/data/tobmodule4.xml new file mode 100644 index 0000000000000000000000000000000000000000..552a871a3912087c1ac230ac896525c07809eafa --- /dev/null +++ b/examples/DDCMS/data/tobmodule4.xml @@ -0,0 +1,130 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tobmodule4.xml" eval="true"> + <Constant name="zero" value="0.0*fm"/> + </ConstantsSection> + <LogicalPartSection label="tobmodule4.xml"> + <LogicalPart name="TOBModule4" category="unspecified"> + <rSolid name="tobmodpar:TOBModule"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TOBHybrid4" category="unspecified"> + <rSolid name="tobmodpar:TOBHybrid"/> + <rMaterial name="tobmaterial:TOB_ele56"/> + </LogicalPart> + <LogicalPart name="TOBWaferRphi4" category="unspecified"> + <rSolid name="tobmodpar:TOBWaferRphi"/> + <rMaterial name="materials:Silicon"/> + </LogicalPart> + <LogicalPart name="TOBActiveRphi4" category="unspecified"> + <rSolid name="tobmodpar:TOBActiveRphi"/> + <rMaterial name="materials:Silicon"/> + </LogicalPart> + </LogicalPartSection> + <PosPartSection label="tobmodule4.xml"> + <PosPart copyNumber="1"> + <rParent name="tobmodule4:TOBWaferRphi4"/> + <rChild name="tobmodule4:TOBActiveRphi4"/> + <Translation x="[zero]" y="[zero]" z="[tracker:BackPlaneDz]"/> + <rRotation name="tobmodpar:Activ"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tobmodule4:TOBActiveRphi4"/> + <rChild name="tobmodpar:TOBInactive"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tobmodule4:TOBModule4"/> + <rChild name="tobmodule4:TOBWaferRphi4"/> + <rRotation name="tobmodpar:Rphi"/> + <Translation x="[zero]" y="-[tobmodpar:WaferY]" z="-[tobmodpar:WaferZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tobmodule4:TOBModule4"/> + <rChild name="tobmodpar:TOBSiEncaps"/> + <rRotation name="tobmodpar:Rphi"/> + <Translation x="[zero]" y="-[tobmodpar:GlueSi1Y]" z="-[tobmodpar:WaferZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tobmodule4:TOBModule4"/> + <rChild name="tobmodpar:TOBSiBackEncaps"/> + <rRotation name="tobmodpar:Rphi"/> + <Translation x="[zero]" y="-[tobmodpar:GlueSi2Y]" z="-[tobmodpar:WaferZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tobmodule4:TOBModule4"/> + <rChild name="tobmodule4:TOBHybrid4"/> + <Translation x="[zero]" y="-[tobmodpar:HybridY]" z="[tobmodpar:HybridZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tobmodule4:TOBModule4"/> + <rChild name="tobmodpar:TOBPA1"/> + <Translation x="[zero]" y="-[tobmodpar:PAY]" z="[tobmodpar:PAZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tobmodule4:TOBModule4"/> + <rChild name="tobmodpar:TOBPAEncaps"/> + <rRotation name="tobmodpar:Rphi"/> + <Translation x="[zero]" y="-[tobmodpar:GluePAY]" z="[tobmodpar:GluePAZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tobmodule4:TOBModule4"/> + <rChild name="tobmodpar:TOBSideRailL"/> + <Translation x="-[tobmodpar:SideRailX]" y="-[tobmodpar:SideRailY]" z="-[tobmodpar:SideRailZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tobmodule4:TOBModule4"/> + <rChild name="tobmodpar:TOBSideRailR"/> + <Translation x="[tobmodpar:SideRailX]" y="-[tobmodpar:SideRailY]" z="-[tobmodpar:SideRailZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tobmodule4:TOBModule4"/> + <rChild name="tobmodpar:TOBFrame"/> + <Translation x="[zero]" y="-[tobmodpar:FrameY]" z="[tobmodpar:FrameZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tobmodule4:TOBModule4"/> + <rChild name="tobmodpar:TOBHybSup"/> + <Translation x="[zero]" y="-[tobmodpar:HybSupY]" z="[tobmodpar:HybSupZ]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tobmodule4:TOBModule4"/> + <rChild name="tobmodpar:TOBModCool1"/> + <Translation x="-[tobmodpar:ModCool1X]" y="-[tobmodpar:ModCool1Y]" z="-[tobmodpar:ModCool1Z]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tobmodule4:TOBModule4"/> + <rChild name="tobmodpar:TOBModCool1"/> + <Translation x="[tobmodpar:ModCool1X]" y="-[tobmodpar:ModCool1Y]" z="-[tobmodpar:ModCool1Z]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tobmodule4:TOBModule4"/> + <rChild name="tobmodpar:TOBModCoolComp1"/> + <Translation x="-[tobmodpar:ModCoolComp1X]" y="-[tobmodpar:ModCoolComp1Y]" z="-[tobmodpar:ModCoolComp1Z]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tobmodule4:TOBModule4"/> + <rChild name="tobmodpar:TOBModCoolComp1"/> + <Translation x="[tobmodpar:ModCoolComp1X]" y="-[tobmodpar:ModCoolComp1Y]" z="-[tobmodpar:ModCoolComp1Z]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tobmodule4:TOBModule4"/> + <rChild name="tobmodpar:TOBModCool2"/> + <Translation x="-[tobmodpar:ModCool2X]" y="-[tobmodpar:ModCool2Y]" z="[tobmodpar:ModCool2Z]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tobmodule4:TOBModule4"/> + <rChild name="tobmodpar:TOBModCool2"/> + <Translation x="[tobmodpar:ModCool2X]" y="-[tobmodpar:ModCool2Y]" z="[tobmodpar:ModCool2Z]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tobmodule4:TOBModule4"/> + <rChild name="tobmodpar:TOBModCoolComp2"/> + <Translation x="-[tobmodpar:ModCoolComp2X]" y="-[tobmodpar:ModCoolComp2Y]" z="[tobmodpar:ModCoolComp2Z]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tobmodule4:TOBModule4"/> + <rChild name="tobmodpar:TOBModCoolComp2"/> + <Translation x="[tobmodpar:ModCoolComp2X]" y="-[tobmodpar:ModCoolComp2Y]" z="[tobmodpar:ModCoolComp2Z]"/> + </PosPart> + </PosPartSection> +</DDDefinition> diff --git a/examples/DDCMS/data/tobrod0.xml b/examples/DDCMS/data/tobrod0.xml new file mode 100644 index 0000000000000000000000000000000000000000..2fa93358cd924e889ce8fe1a3a6fe610fd66d860 --- /dev/null +++ b/examples/DDCMS/data/tobrod0.xml @@ -0,0 +1,26 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tobrod0.xml" eval="true"> + <Constant name="zero" value="0.0*fm"/> + </ConstantsSection> + <LogicalPartSection label="tobrod0.xml"> + <LogicalPart name="TOBRod0" category="unspecified"> + <rSolid name="tobrodpar:TOBRod"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + </LogicalPartSection> + <PosPartSection label="tobrod0.xml"> + <PosPart copyNumber="1"> + <rParent name="tobrod0:TOBRod0"/> + <rChild name="tobrod0l:TOBRod0L"/> + <rRotation name="tobrodpar:R180"/> + <Translation x="[zero]" y="[zero]" z="-([tobrodpar:RodL]-[tobrodpar:RodDL])/2"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tobrod0:TOBRod0"/> + <rChild name="tobrod0h:TOBRod0H"/> + <rRotation name="tobrodpar:R180"/> + <Translation x="[zero]" y="[zero]" z="([tobrodpar:RodL]-[tobrodpar:RodDL])/2"/> + </PosPart> + </PosPartSection> +</DDDefinition> diff --git a/examples/DDCMS/data/tobrod0c.xml b/examples/DDCMS/data/tobrod0c.xml new file mode 100644 index 0000000000000000000000000000000000000000..4f39d1a11157ec59622886744059352bc225ec0b --- /dev/null +++ b/examples/DDCMS/data/tobrod0c.xml @@ -0,0 +1,71 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tobrod0c.xml" eval="true"> + <Constant name="zero" value="0.0*fm"/> + </ConstantsSection> + <SolidSection label="tobrod0c.xml"> + <Tubs name="TOBSideCoolTube0" rMin="[zero]" rMax="[tobrodpar:CoolTubeHeavyR]" dz="[tobrodpar:SideCoolL]" startPhi="0*deg" deltaPhi="360*deg"/> + <Tubs name="TOBSideCoolFluid0" rMin="[zero]" rMax="[tobrodpar:CoolFluidHeavyR]" dz="[tobrodpar:SideCoolL]" startPhi="0*deg" deltaPhi="360*deg"/> + <Tubs name="TOBEndCoolTube0" rMin="[zero]" rMax="[tobrodpar:CoolTubeHeavyR]" dz="[tobrodpar:EndCoolL]" startPhi="0*deg" deltaPhi="360*deg"/> + <Tubs name="TOBEndCoolFluid0" rMin="[zero]" rMax="[tobrodpar:CoolFluidHeavyR]" dz="[tobrodpar:EndCoolL]" startPhi="0*deg" deltaPhi="360*deg"/> + <Box name="TOBOptFibre0" dx="[tobrodpar:OptFibreW]" dy="[tobrodpar:OptFibreH]" dz="[tobrodpar:OptFibreL]"/> + <Box name="TOBPlate01" dx="[tobrodpar:SideClampDx]" dy="[tobrodpar:SideClampDy]" dz="[tobrodpar:SideClampHDz]"/> + <Box name="TOBPlate02" dx="[tobrodpar:SideClampDx]" dy="[tobrodpar:SideClampDy]" dz="[tobrodpar:SideClampHDz]"/> + </SolidSection> + <LogicalPartSection label="tobrod0c.xml"> + <LogicalPart name="TOBSideCoolTube0" category="unspecified"> + <rSolid name="TOBSideCoolTube0"/> + <rMaterial name="trackermaterial:T_CuNi"/> + </LogicalPart> + <LogicalPart name="TOBSideCoolFluid0" category="unspecified"> + <rSolid name="TOBSideCoolFluid0"/> + <rMaterial name="trackermaterial:T_C6F14_F2_-30C"/> + </LogicalPart> + <LogicalPart name="TOBEndCoolTube0" category="unspecified"> + <rSolid name="TOBEndCoolTube0"/> + <rMaterial name="trackermaterial:T_CuNi"/> + </LogicalPart> + <LogicalPart name="TOBEndCoolFluid0" category="unspecified"> + <rSolid name="TOBEndCoolFluid0"/> + <rMaterial name="trackermaterial:T_C6F14_F2_-30C"/> + </LogicalPart> + <LogicalPart name="TOBOptFibre0" category="unspecified"> + <rSolid name="TOBOptFibre0"/> + <rMaterial name="tobmaterial:TOB_optfib_L12"/> + </LogicalPart> + <LogicalPart name="TOBPlate01" category="unspecified"> + <rSolid name="TOBPlate01"/> + <rMaterial name="tobmaterial:TOB_plate_B"/> + </LogicalPart> + <LogicalPart name="TOBPlate02" category="unspecified"> + <rSolid name="TOBPlate02"/> + <rMaterial name="tobmaterial:TOB_plate_C"/> + </LogicalPart> + <LogicalPart name="TOBICC01" category="unspecified"> + <rSolid name="tobrodpar:TOBICC1"/> + <rMaterial name="tobmaterial:TOB_L12_ICC1"/> + </LogicalPart> + <LogicalPart name="TOBICC02" category="unspecified"> + <rSolid name="tobrodpar:TOBICC2"/> + <rMaterial name="tobmaterial:TOB_L12_ICC2"/> + </LogicalPart> + <LogicalPart name="TOBRodConn0" category="unspecified"> + <rSolid name="tobrodpar:TOBRodConn"/> + <rMaterial name="tobmaterial:TOB_CONN12"/> + </LogicalPart> + <LogicalPart name="TOBCCUM0" category="unspecified"> + <rSolid name="tobrodpar:TOBCCUM"/> + <rMaterial name="tobmaterial:TOB_CCUM"/> + </LogicalPart> + </LogicalPartSection> + <PosPartSection label="tobrod0c.xml"> + <PosPart copyNumber="1"> + <rParent name="tobrod0c:TOBSideCoolTube0"/> + <rChild name="tobrod0c:TOBSideCoolFluid0"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tobrod0c:TOBEndCoolTube0"/> + <rChild name="tobrod0c:TOBEndCoolFluid0"/> + </PosPart> + </PosPartSection> +</DDDefinition> diff --git a/examples/DDCMS/data/tobrod0h.xml b/examples/DDCMS/data/tobrod0h.xml new file mode 100644 index 0000000000000000000000000000000000000000..05c2422e926e518ed4d487747d7c277bf65b0dd5 --- /dev/null +++ b/examples/DDCMS/data/tobrod0h.xml @@ -0,0 +1,144 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tobrod0h.xml" eval="true"> + <Constant name="zero" value="0.0*fm"/> + </ConstantsSection> + <LogicalPartSection label="tobrod0h.xml"> + <LogicalPart name="TOBRod0H" category="unspecified"> + <rSolid name="tobrodpar:TOBRodH"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TOBRodCentral0H" category="unspecified"> + <rSolid name="tobrodpar:TOBRodCentralH"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + </LogicalPartSection> + <PosPartSection label="tobrod0h.xml"> + <PosPart copyNumber="1"> + <rParent name="tobrod0h:TOBRod0H"/> + <rChild name="tobrod0h:TOBRodCentral0H"/> + </PosPart> + </PosPartSection> + <Algorithm name="track:DDTOBRodAlgo"> + <rParent name="tobrod0h:TOBRod0H"/> + <Numeric name="Shift" value="-([tobrodpar:RodL]-[tobrodpar:RodDL])/2"/> + <String name="CentralName" value="tobrod0h:TOBRodCentral0H"/> + <Vector name="SideRodName" type="string" nEntries="2"> + tobrodpar:TOBSideRod1, tobrodpar:TOBSideRod2 + </Vector> + <Vector name="SideRodX" type="numeric" nEntries="2"> + -[tobrodpar:SideRodX], [tobrodpar:SideRodX] + </Vector> + <Vector name="SideRodY" type="numeric" nEntries="2"> + [tobrodpar:RodY], -[tobrodpar:RodY] + </Vector> + <Vector name="SideRodZ" type="numeric" nEntries="2"> + [zero], [tobrodpar:RodDL] + </Vector> + <String name="EndRod1Name" value="tobrodpar:TOBEndRod1"/> + <Vector name="EndRod1Y" type="numeric" nEntries="2"> + -[tobrodpar:RodY], [tobrodpar:RodY] + </Vector> + <Vector name="EndRod1Z" type="numeric" nEntries="2"> + [tobrodpar:EndRod1Z], [tobrodpar:EndRod1Z] + </Vector> + <String name="EndRod2Name" value="tobrodpar:TOBEndRod2"/> + <Numeric name="EndRod2Y" value="-[tobrodpar:EndRod2Y]"/> + <Numeric name="EndRod2Z" value="[tobrodpar:EndRod2Z]"/> + <String name="CableName" value="tobrodpar:TOBCable"/> + <Numeric name="CableZ" value="[tobrodpar:CableZ]"/> + <String name="ClampName" value="tobrodpar:TOBClamp"/> + <Vector name="ClampX" type="numeric" nEntries="4"> + -[tobrodpar:ClampX], -[tobrodpar:ClampX], [tobrodpar:ClampX], + [tobrodpar:ClampX] + </Vector> + <Vector name="ClampZ" type="numeric" nEntries="4"> + [tobrodpar:ClampZ2], [tobrodpar:ClampZ1], [tobrodpar:ClampZ2], + [tobrodpar:ClampZ1] + </Vector> + <String name="SideCoolName" value="tobrod0c:TOBSideCoolTube0"/> + <Vector name="SideCoolX" type="numeric" nEntries="2"> + -[tobrodpar:SideCoolX], [tobrodpar:SideCoolX] + </Vector> + <Vector name="SideCoolY" type="numeric" nEntries="2"> + -[tobrodpar:SideCoolY], -[tobrodpar:SideCoolY] + </Vector> + <Vector name="SideCoolZ" type="numeric" nEntries="2"> + [tobrodpar:SideCoolZ], [tobrodpar:SideCoolZ] + </Vector> + <String name="EndCoolName" value="tobrod0c:TOBEndCoolTube0"/> + <String name="EndCoolRot" value="tobrodpar:90XD"/> + <Numeric name="EndCoolY" value="-[tobrodpar:EndCoolY]"/> + <Numeric name="EndCoolZ" value="[tobrodpar:EndCoolZ]"/> + <String name="OptFibreName" value="tobrod0c:TOBOptFibre0"/> + <Vector name="optFibreX" type="numeric" nEntries="2"> + -[tobrodpar:OptFibreX], [tobrodpar:OptFibreX] + </Vector> + <Vector name="optFibreZ" type="numeric" nEntries="2"> + [tobrodpar:OptFibreZ], [tobrodpar:OptFibreZ] + </Vector> + <String name="SideClamp1Name" value="tobrod0c:TOBPlate01"/> + <Vector name="SideClampX" type="numeric" nEntries="12"> + -[tobrodpar:SideClampX], [tobrodpar:SideClampX], -[tobrodpar:SideClampX], + [tobrodpar:SideClampX], -[tobrodpar:SideClampX], [tobrodpar:SideClampX], + -[tobrodpar:SideClampX], [tobrodpar:SideClampX], -[tobrodpar:SideClampX], + [tobrodpar:SideClampX], -[tobrodpar:SideClampX], [tobrodpar:SideClampX] + </Vector> + <Vector name="SideClamp1DZ" type="numeric" nEntries="12"> + -[tobrodpar:SideClamp1Z],-[tobrodpar:SideClamp1Z],-[tobrodpar:SideClamp1Z], + -[tobrodpar:SideClamp1Z],-[tobrodpar:SideClamp1Z],-[tobrodpar:SideClamp1Z], + -[tobrodpar:SideClamp1Z],-[tobrodpar:SideClamp1Z], [tobrodpar:SideClamp1Z], + [tobrodpar:SideClamp1Z], [tobrodpar:SideClamp1Z], [tobrodpar:SideClamp1Z] + </Vector> + <String name="SideClamp2Name" value="tobrod0c:TOBPlate02"/> + <Vector name="SideClamp2DZ" type="numeric" nEntries="12"> + [tobrodpar:SideClamp2Z], [tobrodpar:SideClamp2Z], [tobrodpar:SideClamp2Z], + [tobrodpar:SideClamp2Z], [tobrodpar:SideClamp2Z], [tobrodpar:SideClamp2Z], + [tobrodpar:SideClamp2Z], [tobrodpar:SideClamp2Z],-[tobrodpar:SideClamp2Z], + -[tobrodpar:SideClamp2Z],-[tobrodpar:SideClamp2Z],-[tobrodpar:SideClamp2Z] + </Vector> + <String name="ModuleName" value="tobmodule0:TOBModule0"/> + <Vector name="ModuleRot" type="string" nEntries="6"> + tobrodpar:NULL, tobrodpar:NULL, tobrodpar:NULL, + tobrodpar:NULL, tobrodpar:180D, tobrodpar:180D</Vector> + <Vector name="ModuleY" type="numeric" nEntries="6"> + [tobrodpar:ModuleY], -[tobrodpar:ModuleY], [tobrodpar:ModuleY], + -[tobrodpar:ModuleY], [tobrodpar:ModuleY], -[tobrodpar:ModuleY] + </Vector> + <Vector name="ModuleZ" type="numeric" nEntries="6"> + [tobrodpar:ModuleZ07], [tobrodpar:ModuleZ08], [tobrodpar:ModuleZ09], + [tobrodpar:ModuleZ10], [tobrodpar:ModuleZ11], [tobrodpar:ModuleZ12] + </Vector> + <Vector name="ICCName" type="string" nEntries="6"> + tobrod0c:TOBICC01, tobrod0c:TOBICC01, tobrod0c:TOBICC02, + tobrod0c:TOBICC02, tobrod0c:TOBCCUM0, tobrod0c:TOBRodConn0 + </Vector> + <Vector name="ICCY" type="numeric" nEntries="6"> + [tobrodpar:ICCY1], -[tobrodpar:ICCY1], [tobrodpar:ICCY1], + -[tobrodpar:ICCY1], [tobrodpar:ICCY2], [tobrodpar:ICCY1] + </Vector> + <Vector name="ICCZ" type="numeric" nEntries="6"> + [tobrodpar:ICCZ07], [tobrodpar:ICCZ08], [tobrodpar:ICCZ09], + [tobrodpar:ICCZ10], [tobrodpar:ICCZ11], [tobrodpar:ICCZ12] + </Vector> + <String name="AOHName" value="tobrodpar:TOBAOH"/> + <Vector name="AOHCopies" type="numeric" nEntries="6"> + 2 , 2 , 4 , 4 , 0 , 0 + </Vector> + <Vector name="AOHx" type="numeric" nEntries="6"> + -[tobrodpar:AOHx] , [tobrodpar:AOHx] , + [tobrodpar:AOHx] , [tobrodpar:AOHx] , + [zero] , [zero] + </Vector> + <Vector name="AOHy" type="numeric" nEntries="6"> + [tobrodpar:AOHy] , -[tobrodpar:AOHy] , + [tobrodpar:AOHy] , -[tobrodpar:AOHy] , + [zero] , [zero] + </Vector> + <Vector name="AOHz" type="numeric" nEntries="6"> + [zero] , [zero] , + [tobrodpar:AOHz] , -[tobrodpar:AOHz] , + [zero] , [zero] + </Vector> + </Algorithm> +</DDDefinition> diff --git a/examples/DDCMS/data/tobrod0l.xml b/examples/DDCMS/data/tobrod0l.xml new file mode 100644 index 0000000000000000000000000000000000000000..a2f04044e8267d1bb6242c4831c2fb349ba93362 --- /dev/null +++ b/examples/DDCMS/data/tobrod0l.xml @@ -0,0 +1,144 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tobrod0l.xml" eval="true"> + <Constant name="zero" value="0.0*fm"/> + </ConstantsSection> + <LogicalPartSection label="tobrod0l.xml"> + <LogicalPart name="TOBRod0L" category="unspecified"> + <rSolid name="tobrodpar:TOBRodL"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TOBRodCentral0L" category="unspecified"> + <rSolid name="tobrodpar:TOBRodCentralL"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + </LogicalPartSection> + <PosPartSection label="tobrod0l.xml"> + <PosPart copyNumber="1"> + <rParent name="tobrod0l:TOBRod0L"/> + <rChild name="tobrod0l:TOBRodCentral0L"/> + </PosPart> + </PosPartSection> + <Algorithm name="track:DDTOBRodAlgo"> + <rParent name="tobrod0l:TOBRod0L"/> + <Numeric name="Shift" value="([tobrodpar:RodL]-[tobrodpar:RodDL])/2"/> + <String name="CentralName" value="tobrod0l:TOBRodCentral0L"/> + <Vector name="SideRodName" type="string" nEntries="2"> + tobrodpar:TOBSideRod1, tobrodpar:TOBSideRod2 + </Vector> + <Vector name="SideRodX" type="numeric" nEntries="2"> + -[tobrodpar:SideRodX], [tobrodpar:SideRodX] + </Vector> + <Vector name="SideRodY" type="numeric" nEntries="2"> + -[tobrodpar:RodY], [tobrodpar:RodY] + </Vector> + <Vector name="SideRodZ" type="numeric" nEntries="2"> + [zero], -[tobrodpar:RodDL] + </Vector> + <String name="EndRod1Name" value="tobrodpar:TOBEndRod1"/> + <Vector name="EndRod1Y" type="numeric" nEntries="2"> + -[tobrodpar:RodY], [tobrodpar:RodY] + </Vector> + <Vector name="EndRod1Z" type="numeric" nEntries="2"> + -[tobrodpar:EndRod1Z], -[tobrodpar:EndRod1Z] + </Vector> + <String name="EndRod2Name" value="tobrodpar:TOBEndRod2"/> + <Numeric name="EndRod2Y" value="[tobrodpar:EndRod2Y]"/> + <Numeric name="EndRod2Z" value="-[tobrodpar:EndRod2Z]"/> + <String name="CableName" value="tobrodpar:TOBCable"/> + <Numeric name="CableZ" value="-[tobrodpar:CableZ]"/> + <String name="ClampName" value="tobrodpar:TOBClamp"/> + <Vector name="ClampX" type="numeric" nEntries="4"> + -[tobrodpar:ClampX], -[tobrodpar:ClampX], [tobrodpar:ClampX], + [tobrodpar:ClampX] + </Vector> + <Vector name="ClampZ" type="numeric" nEntries="4"> + -[tobrodpar:ClampZ1], -[tobrodpar:ClampZ2], -[tobrodpar:ClampZ1], + -[tobrodpar:ClampZ2] + </Vector> + <String name="SideCoolName" value="tobrod0c:TOBSideCoolTube0"/> + <Vector name="SideCoolX" type="numeric" nEntries="2"> + -[tobrodpar:SideCoolX], [tobrodpar:SideCoolX] + </Vector> + <Vector name="SideCoolY" type="numeric" nEntries="2"> + [tobrodpar:SideCoolY], [tobrodpar:SideCoolY] + </Vector> + <Vector name="SideCoolZ" type="numeric" nEntries="2"> + -[tobrodpar:SideCoolZ], -[tobrodpar:SideCoolZ] + </Vector> + <String name="EndCoolName" value="tobrod0c:TOBEndCoolTube0"/> + <String name="EndCoolRot" value="tobrodpar:90XD"/> + <Numeric name="EndCoolY" value="[tobrodpar:EndCoolY]"/> + <Numeric name="EndCoolZ" value="-[tobrodpar:EndCoolZ]"/> + <String name="OptFibreName" value="tobrod0c:TOBOptFibre0"/> + <Vector name="optFibreX" type="numeric" nEntries="2"> + -[tobrodpar:OptFibreX], [tobrodpar:OptFibreX] + </Vector> + <Vector name="optFibreZ" type="numeric" nEntries="2"> + -[tobrodpar:OptFibreZ], -[tobrodpar:OptFibreZ] + </Vector> + <String name="SideClamp1Name" value="tobrod0c:TOBPlate01"/> + <Vector name="SideClampX" type="numeric" nEntries="12"> + -[tobrodpar:SideClampX], [tobrodpar:SideClampX], -[tobrodpar:SideClampX], + [tobrodpar:SideClampX], -[tobrodpar:SideClampX], [tobrodpar:SideClampX], + -[tobrodpar:SideClampX], [tobrodpar:SideClampX], -[tobrodpar:SideClampX], + [tobrodpar:SideClampX], -[tobrodpar:SideClampX], [tobrodpar:SideClampX] + </Vector> + <Vector name="SideClamp1DZ" type="numeric" nEntries="12"> + -[tobrodpar:SideClamp1Z],-[tobrodpar:SideClamp1Z],-[tobrodpar:SideClamp1Z], + -[tobrodpar:SideClamp1Z], [tobrodpar:SideClamp1Z], [tobrodpar:SideClamp1Z], + [tobrodpar:SideClamp1Z], [tobrodpar:SideClamp1Z], [tobrodpar:SideClamp1Z], + [tobrodpar:SideClamp1Z], [tobrodpar:SideClamp1Z], [tobrodpar:SideClamp1Z] + </Vector> + <String name="SideClamp2Name" value="tobrod0c:TOBPlate02"/> + <Vector name="SideClamp2DZ" type="numeric" nEntries="12"> + [tobrodpar:SideClamp2Z], [tobrodpar:SideClamp2Z], [tobrodpar:SideClamp2Z], + [tobrodpar:SideClamp2Z],-[tobrodpar:SideClamp2Z],-[tobrodpar:SideClamp2Z], + -[tobrodpar:SideClamp2Z],-[tobrodpar:SideClamp2Z],-[tobrodpar:SideClamp2Z], + -[tobrodpar:SideClamp2Z],-[tobrodpar:SideClamp2Z],-[tobrodpar:SideClamp2Z] + </Vector> + <String name="ModuleName" value="tobmodule0:TOBModule0"/> + <Vector name="ModuleRot" type="string" nEntries="6"> + tobrodpar:NULL, tobrodpar:NULL, tobrodpar:180D, + tobrodpar:180D, tobrodpar:180D, tobrodpar:180D</Vector> + <Vector name="ModuleY" type="numeric" nEntries="6"> + [tobrodpar:ModuleY], -[tobrodpar:ModuleY], [tobrodpar:ModuleY], + -[tobrodpar:ModuleY], [tobrodpar:ModuleY], -[tobrodpar:ModuleY] + </Vector> + <Vector name="ModuleZ" type="numeric" nEntries="6"> + [tobrodpar:ModuleZ01], [tobrodpar:ModuleZ02], [tobrodpar:ModuleZ03], + [tobrodpar:ModuleZ04], [tobrodpar:ModuleZ05], [tobrodpar:ModuleZ06] + </Vector> + <Vector name="ICCName" type="string" nEntries="6"> + tobrod0c:TOBRodConn0, tobrod0c:TOBCCUM0, tobrod0c:TOBICC02, + tobrod0c:TOBICC02, tobrod0c:TOBICC01, tobrod0c:TOBICC01 + </Vector> + <Vector name="ICCY" type="numeric" nEntries="6"> + -[tobrodpar:ICCY1], -[tobrodpar:ICCY2], [tobrodpar:ICCY1], + -[tobrodpar:ICCY1], [tobrodpar:ICCY1], -[tobrodpar:ICCY1] + </Vector> + <Vector name="ICCZ" type="numeric" nEntries="6"> + [tobrodpar:ICCZ01], [tobrodpar:ICCZ02], [tobrodpar:ICCZ03], + [tobrodpar:ICCZ04], [tobrodpar:ICCZ05], [tobrodpar:ICCZ06] + </Vector> + <String name="AOHName" value="tobrodpar:TOBAOH"/> + <Vector name="AOHCopies" type="numeric" nEntries="6"> + 0 , 0 , 4 , 4 , 2 , 2 + </Vector> + <Vector name="AOHx" type="numeric" nEntries="6"> + [zero] , [zero] , + [tobrodpar:AOHx] , [tobrodpar:AOHx] , + [tobrodpar:AOHx] , -[tobrodpar:AOHx] + </Vector> + <Vector name="AOHy" type="numeric" nEntries="6"> + [zero] , [zero] , + [tobrodpar:AOHy] , -[tobrodpar:AOHy] , + [tobrodpar:AOHy] , -[tobrodpar:AOHy] + </Vector> + <Vector name="AOHz" type="numeric" nEntries="6"> + [zero] , [zero] , + [tobrodpar:AOHz] , -[tobrodpar:AOHz] , + [zero] , [zero] + </Vector> + </Algorithm> +</DDDefinition> diff --git a/examples/DDCMS/data/tobrod1.xml b/examples/DDCMS/data/tobrod1.xml new file mode 100644 index 0000000000000000000000000000000000000000..a92e39745067961d1d9bd048d889f888a17dda7b --- /dev/null +++ b/examples/DDCMS/data/tobrod1.xml @@ -0,0 +1,26 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tobrod1.xml" eval="true"> + <Constant name="zero" value="0.0*fm"/> + </ConstantsSection> + <LogicalPartSection label="tobrod1.xml"> + <LogicalPart name="TOBRod1" category="unspecified"> + <rSolid name="tobrodpar:TOBRod"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + </LogicalPartSection> + <PosPartSection label="tobrod1.xml"> + <PosPart copyNumber="1"> + <rParent name="tobrod1:TOBRod1"/> + <rChild name="tobrod1l:TOBRod1L"/> + <rRotation name="tobrodpar:180X"/> + <Translation x="[zero]" y="[zero]" z="([tobrodpar:RodL]-[tobrodpar:RodDL])/2"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tobrod1:TOBRod1"/> + <rChild name="tobrod1h:TOBRod1H"/> + <rRotation name="tobrodpar:180X"/> + <Translation x="[zero]" y="[zero]" z="-([tobrodpar:RodL]-[tobrodpar:RodDL])/2"/> + </PosPart> + </PosPartSection> +</DDDefinition> diff --git a/examples/DDCMS/data/tobrod1h.xml b/examples/DDCMS/data/tobrod1h.xml new file mode 100644 index 0000000000000000000000000000000000000000..cd8ad1384cb8a1e770179d461dc77a2843e0cf7e --- /dev/null +++ b/examples/DDCMS/data/tobrod1h.xml @@ -0,0 +1,144 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tobrod1h.xml" eval="true"> + <Constant name="zero" value="0.0*fm"/> + </ConstantsSection> + <LogicalPartSection label="tobrod1h.xml"> + <LogicalPart name="TOBRod1H" category="unspecified"> + <rSolid name="tobrodpar:TOBRodH"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TOBRodCentral1H" category="unspecified"> + <rSolid name="tobrodpar:TOBRodCentralH"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + </LogicalPartSection> + <PosPartSection label="tobrod1h.xml"> + <PosPart copyNumber="1"> + <rParent name="tobrod1h:TOBRod1H"/> + <rChild name="tobrod1h:TOBRodCentral1H"/> + </PosPart> + </PosPartSection> + <Algorithm name="track:DDTOBRodAlgo"> + <rParent name="tobrod1h:TOBRod1H"/> + <Numeric name="Shift" value="-([tobrodpar:RodL]-[tobrodpar:RodDL])/2"/> + <String name="CentralName" value="tobrod1h:TOBRodCentral1H"/> + <Vector name="SideRodName" type="string" nEntries="2"> + tobrodpar:TOBSideRod1, tobrodpar:TOBSideRod2 + </Vector> + <Vector name="SideRodX" type="numeric" nEntries="2"> + -[tobrodpar:SideRodX], [tobrodpar:SideRodX] + </Vector> + <Vector name="SideRodY" type="numeric" nEntries="2"> + [tobrodpar:RodY], -[tobrodpar:RodY] + </Vector> + <Vector name="SideRodZ" type="numeric" nEntries="2"> + [zero], [tobrodpar:RodDL] + </Vector> + <String name="EndRod1Name" value="tobrodpar:TOBEndRod1"/> + <Vector name="EndRod1Y" type="numeric" nEntries="2"> + -[tobrodpar:RodY], [tobrodpar:RodY] + </Vector> + <Vector name="EndRod1Z" type="numeric" nEntries="2"> + [tobrodpar:EndRod1Z], [tobrodpar:EndRod1Z] + </Vector> + <String name="EndRod2Name" value="tobrodpar:TOBEndRod2"/> + <Numeric name="EndRod2Y" value="-[tobrodpar:EndRod2Y]"/> + <Numeric name="EndRod2Z" value="[tobrodpar:EndRod2Z]"/> + <String name="CableName" value="tobrodpar:TOBCable"/> + <Numeric name="CableZ" value="[tobrodpar:CableZ]"/> + <String name="ClampName" value="tobrodpar:TOBClamp"/> + <Vector name="ClampX" type="numeric" nEntries="4"> + -[tobrodpar:ClampX], -[tobrodpar:ClampX], [tobrodpar:ClampX], + [tobrodpar:ClampX] + </Vector> + <Vector name="ClampZ" type="numeric" nEntries="4"> + [tobrodpar:ClampZ2], [tobrodpar:ClampZ1], [tobrodpar:ClampZ2], + [tobrodpar:ClampZ1] + </Vector> + <String name="SideCoolName" value="tobrod0c:TOBSideCoolTube0"/> + <Vector name="SideCoolX" type="numeric" nEntries="2"> + -[tobrodpar:SideCoolX], [tobrodpar:SideCoolX] + </Vector> + <Vector name="SideCoolY" type="numeric" nEntries="2"> + -[tobrodpar:SideCoolY], -[tobrodpar:SideCoolY] + </Vector> + <Vector name="SideCoolZ" type="numeric" nEntries="2"> + [tobrodpar:SideCoolZ], [tobrodpar:SideCoolZ] + </Vector> + <String name="EndCoolName" value="tobrod0c:TOBEndCoolTube0"/> + <String name="EndCoolRot" value="tobrodpar:90XD"/> + <Numeric name="EndCoolY" value="-[tobrodpar:EndCoolY]"/> + <Numeric name="EndCoolZ" value="[tobrodpar:EndCoolZ]"/> + <String name="OptFibreName" value="tobrod0c:TOBOptFibre0"/> + <Vector name="optFibreX" type="numeric" nEntries="2"> + -[tobrodpar:OptFibreX], [tobrodpar:OptFibreX] + </Vector> + <Vector name="optFibreZ" type="numeric" nEntries="2"> + [tobrodpar:OptFibreZ], [tobrodpar:OptFibreZ] + </Vector> + <String name="SideClamp1Name" value="tobrod0c:TOBPlate01"/> + <Vector name="SideClampX" type="numeric" nEntries="12"> + -[tobrodpar:SideClampX], [tobrodpar:SideClampX], -[tobrodpar:SideClampX], + [tobrodpar:SideClampX], -[tobrodpar:SideClampX], [tobrodpar:SideClampX], + -[tobrodpar:SideClampX], [tobrodpar:SideClampX], -[tobrodpar:SideClampX], + [tobrodpar:SideClampX], -[tobrodpar:SideClampX], [tobrodpar:SideClampX] + </Vector> + <Vector name="SideClamp1DZ" type="numeric" nEntries="12"> + -[tobrodpar:SideClamp1Z],-[tobrodpar:SideClamp1Z],-[tobrodpar:SideClamp1Z], + -[tobrodpar:SideClamp1Z],-[tobrodpar:SideClamp1Z],-[tobrodpar:SideClamp1Z], + -[tobrodpar:SideClamp1Z],-[tobrodpar:SideClamp1Z], [tobrodpar:SideClamp1Z], + [tobrodpar:SideClamp1Z], [tobrodpar:SideClamp1Z], [tobrodpar:SideClamp1Z] + </Vector> + <String name="SideClamp2Name" value="tobrod0c:TOBPlate02"/> + <Vector name="SideClamp2DZ" type="numeric" nEntries="12"> + [tobrodpar:SideClamp2Z], [tobrodpar:SideClamp2Z], [tobrodpar:SideClamp2Z], + [tobrodpar:SideClamp2Z], [tobrodpar:SideClamp2Z], [tobrodpar:SideClamp2Z], + [tobrodpar:SideClamp2Z], [tobrodpar:SideClamp2Z],-[tobrodpar:SideClamp2Z], + -[tobrodpar:SideClamp2Z],-[tobrodpar:SideClamp2Z],-[tobrodpar:SideClamp2Z] + </Vector> + <String name="ModuleName" value="tobmodule0:TOBModule0"/> + <Vector name="ModuleRot" type="string" nEntries="6"> + tobrodpar:R180, tobrodpar:R180, tobrodpar:R180, + tobrodpar:R180, tobrodpar:180X, tobrodpar:180X</Vector> + <Vector name="ModuleY" type="numeric" nEntries="6"> + [tobrodpar:ModuleY], -[tobrodpar:ModuleY], [tobrodpar:ModuleY], + -[tobrodpar:ModuleY], [tobrodpar:ModuleY], -[tobrodpar:ModuleY] + </Vector> + <Vector name="ModuleZ" type="numeric" nEntries="6"> + [tobrodpar:ModuleZ07], [tobrodpar:ModuleZ08], [tobrodpar:ModuleZ09], + [tobrodpar:ModuleZ10], [tobrodpar:ModuleZ11], [tobrodpar:ModuleZ12] + </Vector> + <Vector name="ICCName" type="string" nEntries="6"> + tobrod0c:TOBICC01, tobrod0c:TOBICC01, tobrod0c:TOBICC02, + tobrod0c:TOBICC02, tobrod0c:TOBCCUM0, tobrod0c:TOBRodConn0 + </Vector> + <Vector name="ICCY" type="numeric" nEntries="6"> + [tobrodpar:ICCY1], -[tobrodpar:ICCY1], [tobrodpar:ICCY1], + -[tobrodpar:ICCY1], [tobrodpar:ICCY2], [tobrodpar:ICCY1] + </Vector> + <Vector name="ICCZ" type="numeric" nEntries="6"> + [tobrodpar:ICCZ07], [tobrodpar:ICCZ08], [tobrodpar:ICCZ09], + [tobrodpar:ICCZ10], [tobrodpar:ICCZ11], [tobrodpar:ICCZ12] + </Vector> + <String name="AOHName" value="tobrodpar:TOBAOH"/> + <Vector name="AOHCopies" type="numeric" nEntries="6"> + 2 , 2 , 4 , 4 , 0 , 0 + </Vector> + <Vector name="AOHx" type="numeric" nEntries="6"> + -[tobrodpar:AOHx] , [tobrodpar:AOHx] , + [tobrodpar:AOHx] , [tobrodpar:AOHx] , + [zero] , [zero] + </Vector> + <Vector name="AOHy" type="numeric" nEntries="6"> + [tobrodpar:AOHy] , -[tobrodpar:AOHy] , + [tobrodpar:AOHy] , -[tobrodpar:AOHy] , + [zero] , [zero] + </Vector> + <Vector name="AOHz" type="numeric" nEntries="6"> + [zero] , [zero] , + [tobrodpar:AOHz] , -[tobrodpar:AOHz] , + [zero] , [zero] + </Vector> + </Algorithm> +</DDDefinition> diff --git a/examples/DDCMS/data/tobrod1l.xml b/examples/DDCMS/data/tobrod1l.xml new file mode 100644 index 0000000000000000000000000000000000000000..776006d8319431a51d57ca63993e99237072b62c --- /dev/null +++ b/examples/DDCMS/data/tobrod1l.xml @@ -0,0 +1,144 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tobrod1l.xml" eval="true"> + <Constant name="zero" value="0.0*fm"/> + </ConstantsSection> + <LogicalPartSection label="tobrod1l.xml"> + <LogicalPart name="TOBRod1L" category="unspecified"> + <rSolid name="tobrodpar:TOBRodL"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TOBRodCentral1L" category="unspecified"> + <rSolid name="tobrodpar:TOBRodCentralL"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + </LogicalPartSection> + <PosPartSection label="tobrod1l.xml"> + <PosPart copyNumber="1"> + <rParent name="tobrod1l:TOBRod1L"/> + <rChild name="tobrod1l:TOBRodCentral1L"/> + </PosPart> + </PosPartSection> + <Algorithm name="track:DDTOBRodAlgo"> + <rParent name="tobrod1l:TOBRod1L"/> + <Numeric name="Shift" value="([tobrodpar:RodL]-[tobrodpar:RodDL])/2"/> + <String name="CentralName" value="tobrod1l:TOBRodCentral1L"/> + <Vector name="SideRodName" type="string" nEntries="2"> + tobrodpar:TOBSideRod1, tobrodpar:TOBSideRod2 + </Vector> + <Vector name="SideRodX" type="numeric" nEntries="2"> + -[tobrodpar:SideRodX], [tobrodpar:SideRodX] + </Vector> + <Vector name="SideRodY" type="numeric" nEntries="2"> + -[tobrodpar:RodY], [tobrodpar:RodY] + </Vector> + <Vector name="SideRodZ" type="numeric" nEntries="2"> + [zero], -[tobrodpar:RodDL] + </Vector> + <String name="EndRod1Name" value="tobrodpar:TOBEndRod1"/> + <Vector name="EndRod1Y" type="numeric" nEntries="2"> + -[tobrodpar:RodY], [tobrodpar:RodY] + </Vector> + <Vector name="EndRod1Z" type="numeric" nEntries="2"> + -[tobrodpar:EndRod1Z], -[tobrodpar:EndRod1Z] + </Vector> + <String name="EndRod2Name" value="tobrodpar:TOBEndRod2"/> + <Numeric name="EndRod2Y" value="[tobrodpar:EndRod2Y]"/> + <Numeric name="EndRod2Z" value="-[tobrodpar:EndRod2Z]"/> + <String name="CableName" value="tobrodpar:TOBCable"/> + <Numeric name="CableZ" value="-[tobrodpar:CableZ]"/> + <String name="ClampName" value="tobrodpar:TOBClamp"/> + <Vector name="ClampX" type="numeric" nEntries="4"> + -[tobrodpar:ClampX], -[tobrodpar:ClampX], [tobrodpar:ClampX], + [tobrodpar:ClampX] + </Vector> + <Vector name="ClampZ" type="numeric" nEntries="4"> + -[tobrodpar:ClampZ1], -[tobrodpar:ClampZ2], -[tobrodpar:ClampZ1], + -[tobrodpar:ClampZ2] + </Vector> + <String name="SideCoolName" value="tobrod0c:TOBSideCoolTube0"/> + <Vector name="SideCoolX" type="numeric" nEntries="2"> + -[tobrodpar:SideCoolX], [tobrodpar:SideCoolX] + </Vector> + <Vector name="SideCoolY" type="numeric" nEntries="2"> + [tobrodpar:SideCoolY], [tobrodpar:SideCoolY] + </Vector> + <Vector name="SideCoolZ" type="numeric" nEntries="2"> + -[tobrodpar:SideCoolZ], -[tobrodpar:SideCoolZ] + </Vector> + <String name="EndCoolName" value="tobrod0c:TOBEndCoolTube0"/> + <String name="EndCoolRot" value="tobrodpar:90XD"/> + <Numeric name="EndCoolY" value="[tobrodpar:EndCoolY]"/> + <Numeric name="EndCoolZ" value="-[tobrodpar:EndCoolZ]"/> + <String name="OptFibreName" value="tobrod0c:TOBOptFibre0"/> + <Vector name="optFibreX" type="numeric" nEntries="2"> + -[tobrodpar:OptFibreX], [tobrodpar:OptFibreX] + </Vector> + <Vector name="optFibreZ" type="numeric" nEntries="2"> + -[tobrodpar:OptFibreZ], -[tobrodpar:OptFibreZ] + </Vector> + <String name="SideClamp1Name" value="tobrod0c:TOBPlate01"/> + <Vector name="SideClampX" type="numeric" nEntries="12"> + -[tobrodpar:SideClampX], [tobrodpar:SideClampX], -[tobrodpar:SideClampX], + [tobrodpar:SideClampX], -[tobrodpar:SideClampX], [tobrodpar:SideClampX], + -[tobrodpar:SideClampX], [tobrodpar:SideClampX], -[tobrodpar:SideClampX], + [tobrodpar:SideClampX], -[tobrodpar:SideClampX], [tobrodpar:SideClampX] + </Vector> + <Vector name="SideClamp1DZ" type="numeric" nEntries="12"> + -[tobrodpar:SideClamp1Z],-[tobrodpar:SideClamp1Z],-[tobrodpar:SideClamp1Z], + -[tobrodpar:SideClamp1Z], [tobrodpar:SideClamp1Z], [tobrodpar:SideClamp1Z], + [tobrodpar:SideClamp1Z], [tobrodpar:SideClamp1Z], [tobrodpar:SideClamp1Z], + [tobrodpar:SideClamp1Z], [tobrodpar:SideClamp1Z], [tobrodpar:SideClamp1Z] + </Vector> + <String name="SideClamp2Name" value="tobrod0c:TOBPlate02"/> + <Vector name="SideClamp2DZ" type="numeric" nEntries="12"> + [tobrodpar:SideClamp2Z], [tobrodpar:SideClamp2Z], [tobrodpar:SideClamp2Z], + [tobrodpar:SideClamp2Z],-[tobrodpar:SideClamp2Z],-[tobrodpar:SideClamp2Z], + -[tobrodpar:SideClamp2Z],-[tobrodpar:SideClamp2Z],-[tobrodpar:SideClamp2Z], + -[tobrodpar:SideClamp2Z],-[tobrodpar:SideClamp2Z],-[tobrodpar:SideClamp2Z] + </Vector> + <String name="ModuleName" value="tobmodule0:TOBModule0"/> + <Vector name="ModuleRot" type="string" nEntries="6"> + tobrodpar:R180, tobrodpar:R180, tobrodpar:180X, + tobrodpar:180X, tobrodpar:180X, tobrodpar:180X</Vector> + <Vector name="ModuleY" type="numeric" nEntries="6"> + [tobrodpar:ModuleY], -[tobrodpar:ModuleY], [tobrodpar:ModuleY], + -[tobrodpar:ModuleY], [tobrodpar:ModuleY], -[tobrodpar:ModuleY] + </Vector> + <Vector name="ModuleZ" type="numeric" nEntries="6"> + [tobrodpar:ModuleZ01], [tobrodpar:ModuleZ02], [tobrodpar:ModuleZ03], + [tobrodpar:ModuleZ04], [tobrodpar:ModuleZ05], [tobrodpar:ModuleZ06] + </Vector> + <Vector name="ICCName" type="string" nEntries="6"> + tobrod0c:TOBRodConn0, tobrod0c:TOBCCUM0, tobrod0c:TOBICC02, + tobrod0c:TOBICC02, tobrod0c:TOBICC01, tobrod0c:TOBICC01 + </Vector> + <Vector name="ICCY" type="numeric" nEntries="6"> + -[tobrodpar:ICCY1], -[tobrodpar:ICCY2], [tobrodpar:ICCY1], + -[tobrodpar:ICCY1], [tobrodpar:ICCY1], -[tobrodpar:ICCY1] + </Vector> + <Vector name="ICCZ" type="numeric" nEntries="6"> + [tobrodpar:ICCZ01], [tobrodpar:ICCZ02], [tobrodpar:ICCZ03], + [tobrodpar:ICCZ04], [tobrodpar:ICCZ05], [tobrodpar:ICCZ06] + </Vector> + <String name="AOHName" value="tobrodpar:TOBAOH"/> + <Vector name="AOHCopies" type="numeric" nEntries="6"> + 0 , 0 , 4 , 4 , 2 , 2 + </Vector> + <Vector name="AOHx" type="numeric" nEntries="6"> + [zero] , [zero] , + [tobrodpar:AOHx] , [tobrodpar:AOHx] , + [tobrodpar:AOHx] , -[tobrodpar:AOHx] + </Vector> + <Vector name="AOHy" type="numeric" nEntries="6"> + [zero] , [zero] , + [tobrodpar:AOHy] , -[tobrodpar:AOHy] , + [tobrodpar:AOHy] , -[tobrodpar:AOHy] + </Vector> + <Vector name="AOHz" type="numeric" nEntries="6"> + [zero] , [zero] , + [tobrodpar:AOHz] , -[tobrodpar:AOHz] , + [zero] , [zero] + </Vector> + </Algorithm> +</DDDefinition> diff --git a/examples/DDCMS/data/tobrod2.xml b/examples/DDCMS/data/tobrod2.xml new file mode 100644 index 0000000000000000000000000000000000000000..4328e1110867bf1432725e53210b4e68737dbc83 --- /dev/null +++ b/examples/DDCMS/data/tobrod2.xml @@ -0,0 +1,26 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tobrod2.xml" eval="true"> + <Constant name="zero" value="0.0*fm"/> + </ConstantsSection> + <LogicalPartSection label="tobrod2.xml"> + <LogicalPart name="TOBRod2" category="unspecified"> + <rSolid name="tobrodpar:TOBRod"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + </LogicalPartSection> + <PosPartSection label="tobrod2.xml"> + <PosPart copyNumber="1"> + <rParent name="tobrod2:TOBRod2"/> + <rChild name="tobrod2l:TOBRod2L"/> + <rRotation name="tobrodpar:R180"/> + <Translation x="[zero]" y="[zero]" z="-([tobrodpar:RodL]-[tobrodpar:RodDL])/2"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tobrod2:TOBRod2"/> + <rChild name="tobrod2h:TOBRod2H"/> + <rRotation name="tobrodpar:R180"/> + <Translation x="[zero]" y="[zero]" z="([tobrodpar:RodL]-[tobrodpar:RodDL])/2"/> + </PosPart> + </PosPartSection> +</DDDefinition> diff --git a/examples/DDCMS/data/tobrod2c.xml b/examples/DDCMS/data/tobrod2c.xml new file mode 100644 index 0000000000000000000000000000000000000000..0ff8d42bd623422b85f5954b8170d844c163871e --- /dev/null +++ b/examples/DDCMS/data/tobrod2c.xml @@ -0,0 +1,71 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tobrod2c.xml" eval="true"> + <Constant name="zero" value="0.0*fm"/> + </ConstantsSection> + <SolidSection label="tobrod2c.xml"> + <Tubs name="TOBSideCoolTube2" rMin="[zero]" rMax="[tobrodpar:CoolTubeLightR]" dz="[tobrodpar:SideCoolL]" startPhi="0*deg" deltaPhi="360*deg"/> + <Tubs name="TOBSideCoolFluid2" rMin="[zero]" rMax="[tobrodpar:CoolFluidLightR]" dz="[tobrodpar:SideCoolL]" startPhi="0*deg" deltaPhi="360*deg"/> + <Tubs name="TOBEndCoolTube2" rMin="[zero]" rMax="[tobrodpar:CoolTubeLightR]" dz="[tobrodpar:EndCoolL]" startPhi="0*deg" deltaPhi="360*deg"/> + <Tubs name="TOBEndCoolFluid2" rMin="[zero]" rMax="[tobrodpar:CoolFluidLightR]" dz="[tobrodpar:EndCoolL]" startPhi="0*deg" deltaPhi="360*deg"/> + <Box name="TOBOptFibre2" dx="[tobrodpar:OptFibreW]" dy="[tobrodpar:OptFibreH]" dz="[tobrodpar:OptFibreL]"/> + <Box name="TOBPlate21" dx="[tobrodpar:SideClampDx]" dy="[tobrodpar:SideClampDy]" dz="[tobrodpar:SideClampLDz]"/> + <Box name="TOBPlate22" dx="[tobrodpar:SideClampDx]" dy="[tobrodpar:SideClampDy]" dz="[tobrodpar:SideClampLDz]"/> + </SolidSection> + <LogicalPartSection label="tobrod2c.xml"> + <LogicalPart name="TOBSideCoolTube2" category="unspecified"> + <rSolid name="TOBSideCoolTube2"/> + <rMaterial name="trackermaterial:T_CuNi"/> + </LogicalPart> + <LogicalPart name="TOBSideCoolFluid2" category="unspecified"> + <rSolid name="TOBSideCoolFluid2"/> + <rMaterial name="trackermaterial:T_C6F14_F2_-30C"/> + </LogicalPart> + <LogicalPart name="TOBEndCoolTube2" category="unspecified"> + <rSolid name="TOBEndCoolTube2"/> + <rMaterial name="trackermaterial:T_CuNi"/> + </LogicalPart> + <LogicalPart name="TOBEndCoolFluid2" category="unspecified"> + <rSolid name="TOBEndCoolFluid2"/> + <rMaterial name="trackermaterial:T_C6F14_F2_-30C"/> + </LogicalPart> + <LogicalPart name="TOBOptFibre2" category="unspecified"> + <rSolid name="TOBOptFibre2"/> + <rMaterial name="tobmaterial:TOB_optfib_L34"/> + </LogicalPart> + <LogicalPart name="TOBPlate21" category="unspecified"> + <rSolid name="TOBPlate21"/> + <rMaterial name="tobmaterial:TOB_plate_B"/> + </LogicalPart> + <LogicalPart name="TOBPlate22" category="unspecified"> + <rSolid name="TOBPlate22"/> + <rMaterial name="tobmaterial:TOB_plate_C"/> + </LogicalPart> + <LogicalPart name="TOBICC21" category="unspecified"> + <rSolid name="tobrodpar:TOBICC1"/> + <rMaterial name="tobmaterial:TOB_L34_ICC1"/> + </LogicalPart> + <LogicalPart name="TOBICC22" category="unspecified"> + <rSolid name="tobrodpar:TOBICC2"/> + <rMaterial name="tobmaterial:TOB_L34_ICC2"/> + </LogicalPart> + <LogicalPart name="TOBRodConn2" category="unspecified"> + <rSolid name="tobrodpar:TOBRodConn"/> + <rMaterial name="tobmaterial:TOB_CONN34"/> + </LogicalPart> + <LogicalPart name="TOBCCUM2" category="unspecified"> + <rSolid name="tobrodpar:TOBCCUM"/> + <rMaterial name="tobmaterial:TOB_CCUM"/> + </LogicalPart> + </LogicalPartSection> + <PosPartSection label="tobrod2c.xml"> + <PosPart copyNumber="1"> + <rParent name="tobrod2c:TOBSideCoolTube2"/> + <rChild name="tobrod2c:TOBSideCoolFluid2"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tobrod2c:TOBEndCoolTube2"/> + <rChild name="tobrod2c:TOBEndCoolFluid2"/> + </PosPart> + </PosPartSection> +</DDDefinition> diff --git a/examples/DDCMS/data/tobrod2h.xml b/examples/DDCMS/data/tobrod2h.xml new file mode 100644 index 0000000000000000000000000000000000000000..f84dcc6d596465cb946588a0fc8fe091cfde122a --- /dev/null +++ b/examples/DDCMS/data/tobrod2h.xml @@ -0,0 +1,144 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tobrod2h.xml" eval="true"> + <Constant name="zero" value="0.0*fm"/> + </ConstantsSection> + <LogicalPartSection label="tobrod2h.xml"> + <LogicalPart name="TOBRod2H" category="unspecified"> + <rSolid name="tobrodpar:TOBRodH"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TOBRodCentral2H" category="unspecified"> + <rSolid name="tobrodpar:TOBRodCentralH"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + </LogicalPartSection> + <PosPartSection label="tobrod2h.xml"> + <PosPart copyNumber="1"> + <rParent name="tobrod2h:TOBRod2H"/> + <rChild name="tobrod2h:TOBRodCentral2H"/> + </PosPart> + </PosPartSection> + <Algorithm name="track:DDTOBRodAlgo"> + <rParent name="tobrod2h:TOBRod2H"/> + <Numeric name="Shift" value="-([tobrodpar:RodL]-[tobrodpar:RodDL])/2"/> + <String name="CentralName" value="tobrod2h:TOBRodCentral2H"/> + <Vector name="SideRodName" type="string" nEntries="2"> + tobrodpar:TOBSideRod1, tobrodpar:TOBSideRod2 + </Vector> + <Vector name="SideRodX" type="numeric" nEntries="2"> + -[tobrodpar:SideRodX], [tobrodpar:SideRodX] + </Vector> + <Vector name="SideRodY" type="numeric" nEntries="2"> + [tobrodpar:RodY], -[tobrodpar:RodY] + </Vector> + <Vector name="SideRodZ" type="numeric" nEntries="2"> + [zero], [tobrodpar:RodDL] + </Vector> + <String name="EndRod1Name" value="tobrodpar:TOBEndRod1"/> + <Vector name="EndRod1Y" type="numeric" nEntries="2"> + -[tobrodpar:RodY], [tobrodpar:RodY] + </Vector> + <Vector name="EndRod1Z" type="numeric" nEntries="2"> + [tobrodpar:EndRod1Z], [tobrodpar:EndRod1Z] + </Vector> + <String name="EndRod2Name" value="tobrodpar:TOBEndRod2"/> + <Numeric name="EndRod2Y" value="-[tobrodpar:EndRod2Y]"/> + <Numeric name="EndRod2Z" value="[tobrodpar:EndRod2Z]"/> + <String name="CableName" value="tobrodpar:TOBCable"/> + <Numeric name="CableZ" value="[tobrodpar:CableZ]"/> + <String name="ClampName" value="tobrodpar:TOBClamp"/> + <Vector name="ClampX" type="numeric" nEntries="4"> + -[tobrodpar:ClampX], -[tobrodpar:ClampX], [tobrodpar:ClampX], + [tobrodpar:ClampX] + </Vector> + <Vector name="ClampZ" type="numeric" nEntries="4"> + [tobrodpar:ClampZ2], [tobrodpar:ClampZ1], [tobrodpar:ClampZ2], + [tobrodpar:ClampZ1] + </Vector> + <String name="SideCoolName" value="tobrod2c:TOBSideCoolTube2"/> + <Vector name="SideCoolX" type="numeric" nEntries="2"> + -[tobrodpar:SideCoolX], [tobrodpar:SideCoolX] + </Vector> + <Vector name="SideCoolY" type="numeric" nEntries="2"> + -[tobrodpar:SideCoolY], -[tobrodpar:SideCoolY] + </Vector> + <Vector name="SideCoolZ" type="numeric" nEntries="2"> + [tobrodpar:SideCoolZ], [tobrodpar:SideCoolZ] + </Vector> + <String name="EndCoolName" value="tobrod2c:TOBEndCoolTube2"/> + <String name="EndCoolRot" value="tobrodpar:90XD"/> + <Numeric name="EndCoolY" value="-[tobrodpar:EndCoolY]"/> + <Numeric name="EndCoolZ" value="[tobrodpar:EndCoolZ]"/> + <String name="OptFibreName" value="tobrod2c:TOBOptFibre2"/> + <Vector name="optFibreX" type="numeric" nEntries="2"> + -[tobrodpar:OptFibreX], [tobrodpar:OptFibreX] + </Vector> + <Vector name="optFibreZ" type="numeric" nEntries="2"> + [tobrodpar:OptFibreZ], [tobrodpar:OptFibreZ] + </Vector> + <String name="SideClamp1Name" value="tobrod2c:TOBPlate21"/> + <Vector name="SideClampX" type="numeric" nEntries="12"> + -[tobrodpar:SideClampX], [tobrodpar:SideClampX], -[tobrodpar:SideClampX], + [tobrodpar:SideClampX], -[tobrodpar:SideClampX], [tobrodpar:SideClampX], + -[tobrodpar:SideClampX], [tobrodpar:SideClampX], -[tobrodpar:SideClampX], + [tobrodpar:SideClampX], -[tobrodpar:SideClampX], [tobrodpar:SideClampX] + </Vector> + <Vector name="SideClamp1DZ" type="numeric" nEntries="12"> + -[tobrodpar:SideClamp1Z],-[tobrodpar:SideClamp1Z],-[tobrodpar:SideClamp1Z], + -[tobrodpar:SideClamp1Z],-[tobrodpar:SideClamp1Z],-[tobrodpar:SideClamp1Z], + -[tobrodpar:SideClamp1Z],-[tobrodpar:SideClamp1Z], [tobrodpar:SideClamp1Z], + [tobrodpar:SideClamp1Z], [tobrodpar:SideClamp1Z], [tobrodpar:SideClamp1Z] + </Vector> + <String name="SideClamp2Name" value="tobrod2c:TOBPlate22"/> + <Vector name="SideClamp2DZ" type="numeric" nEntries="12"> + [tobrodpar:SideClamp2Z], [tobrodpar:SideClamp2Z], [tobrodpar:SideClamp2Z], + [tobrodpar:SideClamp2Z], [tobrodpar:SideClamp2Z], [tobrodpar:SideClamp2Z], + [tobrodpar:SideClamp2Z], [tobrodpar:SideClamp2Z],-[tobrodpar:SideClamp2Z], + -[tobrodpar:SideClamp2Z],-[tobrodpar:SideClamp2Z],-[tobrodpar:SideClamp2Z] + </Vector> + <String name="ModuleName" value="tobmodule2:TOBModule2"/> + <Vector name="ModuleRot" type="string" nEntries="6"> + tobrodpar:NULL, tobrodpar:R180, tobrodpar:NULL, + tobrodpar:R180, tobrodpar:180D, tobrodpar:180X</Vector> + <Vector name="ModuleY" type="numeric" nEntries="6"> + [tobrodpar:ModuleY], -[tobrodpar:ModuleY], [tobrodpar:ModuleY], + -[tobrodpar:ModuleY], [tobrodpar:ModuleY], -[tobrodpar:ModuleY] + </Vector> + <Vector name="ModuleZ" type="numeric" nEntries="6"> + [tobrodpar:ModuleZ07], [tobrodpar:ModuleZ08], [tobrodpar:ModuleZ09], + [tobrodpar:ModuleZ10], [tobrodpar:ModuleZ11], [tobrodpar:ModuleZ12] + </Vector> + <Vector name="ICCName" type="string" nEntries="6"> + tobrod2c:TOBICC21, tobrod2c:TOBICC21, tobrod2c:TOBICC22, + tobrod2c:TOBICC22, tobrod2c:TOBCCUM2, tobrod2c:TOBRodConn2 + </Vector> + <Vector name="ICCY" type="numeric" nEntries="6"> + [tobrodpar:ICCY1], -[tobrodpar:ICCY1], [tobrodpar:ICCY1], + -[tobrodpar:ICCY1], [tobrodpar:ICCY2], [tobrodpar:ICCY1] + </Vector> + <Vector name="ICCZ" type="numeric" nEntries="6"> + [tobrodpar:ICCZ07], [tobrodpar:ICCZ08], [tobrodpar:ICCZ09], + [tobrodpar:ICCZ10], [tobrodpar:ICCZ11], [tobrodpar:ICCZ12] + </Vector> + <String name="AOHName" value="tobrodpar:TOBAOH"/> + <Vector name="AOHCopies" type="numeric" nEntries="6"> + 1 , 1 , 2 , 2 , 0 , 0 + </Vector> + <Vector name="AOHx" type="numeric" nEntries="6"> + -[tobrodpar:AOHx] , [tobrodpar:AOHx] , + [tobrodpar:AOHx] , [tobrodpar:AOHx] , + [zero] , [zero] + </Vector> + <Vector name="AOHy" type="numeric" nEntries="6"> + [tobrodpar:AOHy] , -[tobrodpar:AOHy] , + [tobrodpar:AOHy] , -[tobrodpar:AOHy] , + [zero] , [zero] + </Vector> + <Vector name="AOHz" type="numeric" nEntries="6"> + [zero] , [zero] , + [tobrodpar:AOHz] , -[tobrodpar:AOHz] , + [zero] , [zero] + </Vector> + </Algorithm> +</DDDefinition> diff --git a/examples/DDCMS/data/tobrod2l.xml b/examples/DDCMS/data/tobrod2l.xml new file mode 100644 index 0000000000000000000000000000000000000000..d7463b9812cb60df35053ba08c0d523564aee190 --- /dev/null +++ b/examples/DDCMS/data/tobrod2l.xml @@ -0,0 +1,144 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tobrod2l.xml" eval="true"> + <Constant name="zero" value="0.0*fm"/> + </ConstantsSection> + <LogicalPartSection label="tobrod2l.xml"> + <LogicalPart name="TOBRod2L" category="unspecified"> + <rSolid name="tobrodpar:TOBRodL"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TOBRodCentral2L" category="unspecified"> + <rSolid name="tobrodpar:TOBRodCentralL"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + </LogicalPartSection> + <PosPartSection label="tobrod2l.xml"> + <PosPart copyNumber="1"> + <rParent name="tobrod2l:TOBRod2L"/> + <rChild name="tobrod2l:TOBRodCentral2L"/> + </PosPart> + </PosPartSection> + <Algorithm name="track:DDTOBRodAlgo"> + <rParent name="tobrod2l:TOBRod2L"/> + <Numeric name="Shift" value="([tobrodpar:RodL]-[tobrodpar:RodDL])/2"/> + <String name="CentralName" value="tobrod2l:TOBRodCentral2L"/> + <Vector name="SideRodName" type="string" nEntries="2"> + tobrodpar:TOBSideRod1, tobrodpar:TOBSideRod2 + </Vector> + <Vector name="SideRodX" type="numeric" nEntries="2"> + -[tobrodpar:SideRodX], [tobrodpar:SideRodX] + </Vector> + <Vector name="SideRodY" type="numeric" nEntries="2"> + -[tobrodpar:RodY], [tobrodpar:RodY] + </Vector> + <Vector name="SideRodZ" type="numeric" nEntries="2"> + [zero], -[tobrodpar:RodDL] + </Vector> + <String name="EndRod1Name" value="tobrodpar:TOBEndRod1"/> + <Vector name="EndRod1Y" type="numeric" nEntries="2"> + -[tobrodpar:RodY], [tobrodpar:RodY] + </Vector> + <Vector name="EndRod1Z" type="numeric" nEntries="2"> + -[tobrodpar:EndRod1Z], -[tobrodpar:EndRod1Z] + </Vector> + <String name="EndRod2Name" value="tobrodpar:TOBEndRod2"/> + <Numeric name="EndRod2Y" value="[tobrodpar:EndRod2Y]"/> + <Numeric name="EndRod2Z" value="-[tobrodpar:EndRod2Z]"/> + <String name="CableName" value="tobrodpar:TOBCable"/> + <Numeric name="CableZ" value="-[tobrodpar:CableZ]"/> + <String name="ClampName" value="tobrodpar:TOBClamp"/> + <Vector name="ClampX" type="numeric" nEntries="4"> + -[tobrodpar:ClampX], -[tobrodpar:ClampX], [tobrodpar:ClampX], + [tobrodpar:ClampX] + </Vector> + <Vector name="ClampZ" type="numeric" nEntries="4"> + -[tobrodpar:ClampZ1], -[tobrodpar:ClampZ2], -[tobrodpar:ClampZ1], + -[tobrodpar:ClampZ2] + </Vector> + <String name="SideCoolName" value="tobrod2c:TOBSideCoolTube2"/> + <Vector name="SideCoolX" type="numeric" nEntries="2"> + -[tobrodpar:SideCoolX], [tobrodpar:SideCoolX] + </Vector> + <Vector name="SideCoolY" type="numeric" nEntries="2"> + [tobrodpar:SideCoolY], [tobrodpar:SideCoolY] + </Vector> + <Vector name="SideCoolZ" type="numeric" nEntries="2"> + -[tobrodpar:SideCoolZ], -[tobrodpar:SideCoolZ] + </Vector> + <String name="EndCoolName" value="tobrod2c:TOBEndCoolTube2"/> + <String name="EndCoolRot" value="tobrodpar:90XD"/> + <Numeric name="EndCoolY" value="[tobrodpar:EndCoolY]"/> + <Numeric name="EndCoolZ" value="-[tobrodpar:EndCoolZ]"/> + <String name="OptFibreName" value="tobrod2c:TOBOptFibre2"/> + <Vector name="optFibreX" type="numeric" nEntries="2"> + -[tobrodpar:OptFibreX], [tobrodpar:OptFibreX] + </Vector> + <Vector name="optFibreZ" type="numeric" nEntries="2"> + -[tobrodpar:OptFibreZ], -[tobrodpar:OptFibreZ] + </Vector> + <String name="SideClamp1Name" value="tobrod2c:TOBPlate21"/> + <Vector name="SideClampX" type="numeric" nEntries="12"> + -[tobrodpar:SideClampX], [tobrodpar:SideClampX], -[tobrodpar:SideClampX], + [tobrodpar:SideClampX], -[tobrodpar:SideClampX], [tobrodpar:SideClampX], + -[tobrodpar:SideClampX], [tobrodpar:SideClampX], -[tobrodpar:SideClampX], + [tobrodpar:SideClampX], -[tobrodpar:SideClampX], [tobrodpar:SideClampX] + </Vector> + <Vector name="SideClamp1DZ" type="numeric" nEntries="12"> + -[tobrodpar:SideClamp1Z],-[tobrodpar:SideClamp1Z],-[tobrodpar:SideClamp1Z], + -[tobrodpar:SideClamp1Z], [tobrodpar:SideClamp1Z], [tobrodpar:SideClamp1Z], + [tobrodpar:SideClamp1Z], [tobrodpar:SideClamp1Z], [tobrodpar:SideClamp1Z], + [tobrodpar:SideClamp1Z], [tobrodpar:SideClamp1Z], [tobrodpar:SideClamp1Z] + </Vector> + <String name="SideClamp2Name" value="tobrod2c:TOBPlate22"/> + <Vector name="SideClamp2DZ" type="numeric" nEntries="12"> + [tobrodpar:SideClamp2Z], [tobrodpar:SideClamp2Z], [tobrodpar:SideClamp2Z], + [tobrodpar:SideClamp2Z],-[tobrodpar:SideClamp2Z],-[tobrodpar:SideClamp2Z], + -[tobrodpar:SideClamp2Z],-[tobrodpar:SideClamp2Z],-[tobrodpar:SideClamp2Z], + -[tobrodpar:SideClamp2Z],-[tobrodpar:SideClamp2Z],-[tobrodpar:SideClamp2Z] + </Vector> + <String name="ModuleName" value="tobmodule2:TOBModule2"/> + <Vector name="ModuleRot" type="string" nEntries="6"> + tobrodpar:NULL, tobrodpar:R180, tobrodpar:180D, + tobrodpar:180X, tobrodpar:180D, tobrodpar:180X</Vector> + <Vector name="ModuleY" type="numeric" nEntries="6"> + [tobrodpar:ModuleY], -[tobrodpar:ModuleY], [tobrodpar:ModuleY], + -[tobrodpar:ModuleY], [tobrodpar:ModuleY], -[tobrodpar:ModuleY] + </Vector> + <Vector name="ModuleZ" type="numeric" nEntries="6"> + [tobrodpar:ModuleZ01], [tobrodpar:ModuleZ02], [tobrodpar:ModuleZ03], + [tobrodpar:ModuleZ04], [tobrodpar:ModuleZ05], [tobrodpar:ModuleZ06] + </Vector> + <Vector name="ICCName" type="string" nEntries="6"> + tobrod2c:TOBRodConn2, tobrod2c:TOBCCUM2, tobrod2c:TOBICC22, + tobrod2c:TOBICC22, tobrod2c:TOBICC21, tobrod2c:TOBICC21 + </Vector> + <Vector name="ICCY" type="numeric" nEntries="6"> + -[tobrodpar:ICCY1], -[tobrodpar:ICCY2], [tobrodpar:ICCY1], + -[tobrodpar:ICCY1], [tobrodpar:ICCY1], -[tobrodpar:ICCY1] + </Vector> + <Vector name="ICCZ" type="numeric" nEntries="6"> + [tobrodpar:ICCZ01], [tobrodpar:ICCZ02], [tobrodpar:ICCZ03], + [tobrodpar:ICCZ04], [tobrodpar:ICCZ05], [tobrodpar:ICCZ06] + </Vector> + <String name="AOHName" value="tobrodpar:TOBAOH"/> + <Vector name="AOHCopies" type="numeric" nEntries="6"> + 0 , 0 , 2 , 2 , 1 , 1 + </Vector> + <Vector name="AOHx" type="numeric" nEntries="6"> + [zero] , [zero] , + [tobrodpar:AOHx] , [tobrodpar:AOHx] , + [tobrodpar:AOHx] , -[tobrodpar:AOHx] + </Vector> + <Vector name="AOHy" type="numeric" nEntries="6"> + [zero] , [zero] , + [tobrodpar:AOHy] , -[tobrodpar:AOHy] , + [tobrodpar:AOHy] , -[tobrodpar:AOHy] + </Vector> + <Vector name="AOHz" type="numeric" nEntries="6"> + [zero] , [zero] , + [tobrodpar:AOHz] , -[tobrodpar:AOHz] , + [zero] , [zero] + </Vector> + </Algorithm> +</DDDefinition> diff --git a/examples/DDCMS/data/tobrod3.xml b/examples/DDCMS/data/tobrod3.xml new file mode 100644 index 0000000000000000000000000000000000000000..8e7c0bffbb4e6a6235a21e6e08b4bef74f55203a --- /dev/null +++ b/examples/DDCMS/data/tobrod3.xml @@ -0,0 +1,26 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tobrod3.xml" eval="true"> + <Constant name="zero" value="0.0*fm"/> + </ConstantsSection> + <LogicalPartSection label="tobrod3.xml"> + <LogicalPart name="TOBRod3" category="unspecified"> + <rSolid name="tobrodpar:TOBRod"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + </LogicalPartSection> + <PosPartSection label="tobrod3.xml"> + <PosPart copyNumber="1"> + <rParent name="tobrod3:TOBRod3"/> + <rChild name="tobrod3l:TOBRod3L"/> + <rRotation name="tobrodpar:180X"/> + <Translation x="[zero]" y="[zero]" z="([tobrodpar:RodL]-[tobrodpar:RodDL])/2"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tobrod3:TOBRod3"/> + <rChild name="tobrod3h:TOBRod3H"/> + <rRotation name="tobrodpar:180X"/> + <Translation x="[zero]" y="[zero]" z="-([tobrodpar:RodL]-[tobrodpar:RodDL])/2"/> + </PosPart> + </PosPartSection> +</DDDefinition> diff --git a/examples/DDCMS/data/tobrod3h.xml b/examples/DDCMS/data/tobrod3h.xml new file mode 100644 index 0000000000000000000000000000000000000000..0a409cb96e904c413711155349ddd8710f2b1f5e --- /dev/null +++ b/examples/DDCMS/data/tobrod3h.xml @@ -0,0 +1,144 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tobrod3h.xml" eval="true"> + <Constant name="zero" value="0.0*fm"/> + </ConstantsSection> + <LogicalPartSection label="tobrod3h.xml"> + <LogicalPart name="TOBRod3H" category="unspecified"> + <rSolid name="tobrodpar:TOBRodH"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TOBRodCentral3H" category="unspecified"> + <rSolid name="tobrodpar:TOBRodCentralH"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + </LogicalPartSection> + <PosPartSection label="tobrod3h.xml"> + <PosPart copyNumber="1"> + <rParent name="tobrod3h:TOBRod3H"/> + <rChild name="tobrod3h:TOBRodCentral3H"/> + </PosPart> + </PosPartSection> + <Algorithm name="track:DDTOBRodAlgo"> + <rParent name="tobrod3h:TOBRod3H"/> + <Numeric name="Shift" value="-([tobrodpar:RodL]-[tobrodpar:RodDL])/2"/> + <String name="CentralName" value="tobrod3h:TOBRodCentral3H"/> + <Vector name="SideRodName" type="string" nEntries="2"> + tobrodpar:TOBSideRod1, tobrodpar:TOBSideRod2 + </Vector> + <Vector name="SideRodX" type="numeric" nEntries="2"> + -[tobrodpar:SideRodX], [tobrodpar:SideRodX] + </Vector> + <Vector name="SideRodY" type="numeric" nEntries="2"> + [tobrodpar:RodY], -[tobrodpar:RodY] + </Vector> + <Vector name="SideRodZ" type="numeric" nEntries="2"> + [zero], [tobrodpar:RodDL] + </Vector> + <String name="EndRod1Name" value="tobrodpar:TOBEndRod1"/> + <Vector name="EndRod1Y" type="numeric" nEntries="2"> + -[tobrodpar:RodY], [tobrodpar:RodY] + </Vector> + <Vector name="EndRod1Z" type="numeric" nEntries="2"> + [tobrodpar:EndRod1Z], [tobrodpar:EndRod1Z] + </Vector> + <String name="EndRod2Name" value="tobrodpar:TOBEndRod2"/> + <Numeric name="EndRod2Y" value="-[tobrodpar:EndRod2Y]"/> + <Numeric name="EndRod2Z" value="[tobrodpar:EndRod2Z]"/> + <String name="CableName" value="tobrodpar:TOBCable"/> + <Numeric name="CableZ" value="[tobrodpar:CableZ]"/> + <String name="ClampName" value="tobrodpar:TOBClamp"/> + <Vector name="ClampX" type="numeric" nEntries="4"> + -[tobrodpar:ClampX], -[tobrodpar:ClampX], [tobrodpar:ClampX], + [tobrodpar:ClampX] + </Vector> + <Vector name="ClampZ" type="numeric" nEntries="4"> + [tobrodpar:ClampZ2], [tobrodpar:ClampZ1], [tobrodpar:ClampZ2], + [tobrodpar:ClampZ1] + </Vector> + <String name="SideCoolName" value="tobrod2c:TOBSideCoolTube2"/> + <Vector name="SideCoolX" type="numeric" nEntries="2"> + -[tobrodpar:SideCoolX], [tobrodpar:SideCoolX] + </Vector> + <Vector name="SideCoolY" type="numeric" nEntries="2"> + -[tobrodpar:SideCoolY], -[tobrodpar:SideCoolY] + </Vector> + <Vector name="SideCoolZ" type="numeric" nEntries="2"> + [tobrodpar:SideCoolZ], [tobrodpar:SideCoolZ] + </Vector> + <String name="EndCoolName" value="tobrod2c:TOBEndCoolTube2"/> + <String name="EndCoolRot" value="tobrodpar:90XD"/> + <Numeric name="EndCoolY" value="-[tobrodpar:EndCoolY]"/> + <Numeric name="EndCoolZ" value="[tobrodpar:EndCoolZ]"/> + <String name="OptFibreName" value="tobrod2c:TOBOptFibre2"/> + <Vector name="optFibreX" type="numeric" nEntries="2"> + -[tobrodpar:OptFibreX], [tobrodpar:OptFibreX] + </Vector> + <Vector name="optFibreZ" type="numeric" nEntries="2"> + [tobrodpar:OptFibreZ], [tobrodpar:OptFibreZ] + </Vector> + <String name="SideClamp1Name" value="tobrod2c:TOBPlate21"/> + <Vector name="SideClampX" type="numeric" nEntries="12"> + -[tobrodpar:SideClampX], [tobrodpar:SideClampX], -[tobrodpar:SideClampX], + [tobrodpar:SideClampX], -[tobrodpar:SideClampX], [tobrodpar:SideClampX], + -[tobrodpar:SideClampX], [tobrodpar:SideClampX], -[tobrodpar:SideClampX], + [tobrodpar:SideClampX], -[tobrodpar:SideClampX], [tobrodpar:SideClampX] + </Vector> + <Vector name="SideClamp1DZ" type="numeric" nEntries="12"> + -[tobrodpar:SideClamp1Z],-[tobrodpar:SideClamp1Z],-[tobrodpar:SideClamp1Z], + -[tobrodpar:SideClamp1Z],-[tobrodpar:SideClamp1Z],-[tobrodpar:SideClamp1Z], + -[tobrodpar:SideClamp1Z],-[tobrodpar:SideClamp1Z], [tobrodpar:SideClamp1Z], + [tobrodpar:SideClamp1Z], [tobrodpar:SideClamp1Z], [tobrodpar:SideClamp1Z] + </Vector> + <String name="SideClamp2Name" value="tobrod2c:TOBPlate22"/> + <Vector name="SideClamp2DZ" type="numeric" nEntries="12"> + [tobrodpar:SideClamp2Z], [tobrodpar:SideClamp2Z], [tobrodpar:SideClamp2Z], + [tobrodpar:SideClamp2Z], [tobrodpar:SideClamp2Z], [tobrodpar:SideClamp2Z], + [tobrodpar:SideClamp2Z], [tobrodpar:SideClamp2Z],-[tobrodpar:SideClamp2Z], + -[tobrodpar:SideClamp2Z],-[tobrodpar:SideClamp2Z],-[tobrodpar:SideClamp2Z] + </Vector> + <String name="ModuleName" value="tobmodule2:TOBModule2"/> + <Vector name="ModuleRot" type="string" nEntries="6"> + tobrodpar:NULL, tobrodpar:R180, tobrodpar:NULL, + tobrodpar:R180, tobrodpar:180D, tobrodpar:180X</Vector> + <Vector name="ModuleY" type="numeric" nEntries="6"> + [tobrodpar:ModuleY], -[tobrodpar:ModuleY], [tobrodpar:ModuleY], + -[tobrodpar:ModuleY], [tobrodpar:ModuleY], -[tobrodpar:ModuleY] + </Vector> + <Vector name="ModuleZ" type="numeric" nEntries="6"> + [tobrodpar:ModuleZ07], [tobrodpar:ModuleZ08], [tobrodpar:ModuleZ09], + [tobrodpar:ModuleZ10], [tobrodpar:ModuleZ11], [tobrodpar:ModuleZ12] + </Vector> + <Vector name="ICCName" type="string" nEntries="6"> + tobrod2c:TOBICC21, tobrod2c:TOBICC21, tobrod2c:TOBICC22, + tobrod2c:TOBICC22, tobrod2c:TOBCCUM2, tobrod2c:TOBRodConn2 + </Vector> + <Vector name="ICCY" type="numeric" nEntries="6"> + [tobrodpar:ICCY1], -[tobrodpar:ICCY1], [tobrodpar:ICCY1], + -[tobrodpar:ICCY1], [tobrodpar:ICCY2], [tobrodpar:ICCY1] + </Vector> + <Vector name="ICCZ" type="numeric" nEntries="6"> + [tobrodpar:ICCZ07], [tobrodpar:ICCZ08], [tobrodpar:ICCZ09], + [tobrodpar:ICCZ10], [tobrodpar:ICCZ11], [tobrodpar:ICCZ12] + </Vector> + <String name="AOHName" value="tobrodpar:TOBAOH"/> + <Vector name="AOHCopies" type="numeric" nEntries="6"> + 1 , 1 , 2 , 2 , 0 , 0 + </Vector> + <Vector name="AOHx" type="numeric" nEntries="6"> + -[tobrodpar:AOHx] , [tobrodpar:AOHx] , + [tobrodpar:AOHx] , [tobrodpar:AOHx] , + [zero] , [zero] + </Vector> + <Vector name="AOHy" type="numeric" nEntries="6"> + [tobrodpar:AOHy] , -[tobrodpar:AOHy] , + [tobrodpar:AOHy] , -[tobrodpar:AOHy] , + [zero] , [zero] + </Vector> + <Vector name="AOHz" type="numeric" nEntries="6"> + [zero] , [zero] , + [tobrodpar:AOHz] , -[tobrodpar:AOHz] , + [zero] , [zero] + </Vector> + </Algorithm> +</DDDefinition> diff --git a/examples/DDCMS/data/tobrod3l.xml b/examples/DDCMS/data/tobrod3l.xml new file mode 100644 index 0000000000000000000000000000000000000000..3683bac4aaa20b10fbc71b7fcdebbe906a662138 --- /dev/null +++ b/examples/DDCMS/data/tobrod3l.xml @@ -0,0 +1,144 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tobrod3l.xml" eval="true"> + <Constant name="zero" value="0.0*fm"/> + </ConstantsSection> + <LogicalPartSection label="tobrod3l.xml"> + <LogicalPart name="TOBRod3L" category="unspecified"> + <rSolid name="tobrodpar:TOBRodL"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TOBRodCentral3L" category="unspecified"> + <rSolid name="tobrodpar:TOBRodCentralL"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + </LogicalPartSection> + <PosPartSection label="tobrod3l.xml"> + <PosPart copyNumber="1"> + <rParent name="tobrod3l:TOBRod3L"/> + <rChild name="tobrod3l:TOBRodCentral3L"/> + </PosPart> + </PosPartSection> + <Algorithm name="track:DDTOBRodAlgo"> + <rParent name="tobrod3l:TOBRod3L"/> + <Numeric name="Shift" value="([tobrodpar:RodL]-[tobrodpar:RodDL])/2"/> + <String name="CentralName" value="tobrod3l:TOBRodCentral3L"/> + <Vector name="SideRodName" type="string" nEntries="2"> + tobrodpar:TOBSideRod1, tobrodpar:TOBSideRod2 + </Vector> + <Vector name="SideRodX" type="numeric" nEntries="2"> + -[tobrodpar:SideRodX], [tobrodpar:SideRodX] + </Vector> + <Vector name="SideRodY" type="numeric" nEntries="2"> + -[tobrodpar:RodY], [tobrodpar:RodY] + </Vector> + <Vector name="SideRodZ" type="numeric" nEntries="2"> + [zero], -[tobrodpar:RodDL] + </Vector> + <String name="EndRod1Name" value="tobrodpar:TOBEndRod1"/> + <Vector name="EndRod1Y" type="numeric" nEntries="2"> + -[tobrodpar:RodY], [tobrodpar:RodY] + </Vector> + <Vector name="EndRod1Z" type="numeric" nEntries="2"> + -[tobrodpar:EndRod1Z], -[tobrodpar:EndRod1Z] + </Vector> + <String name="EndRod2Name" value="tobrodpar:TOBEndRod2"/> + <Numeric name="EndRod2Y" value="[tobrodpar:EndRod2Y]"/> + <Numeric name="EndRod2Z" value="-[tobrodpar:EndRod2Z]"/> + <String name="CableName" value="tobrodpar:TOBCable"/> + <Numeric name="CableZ" value="-[tobrodpar:CableZ]"/> + <String name="ClampName" value="tobrodpar:TOBClamp"/> + <Vector name="ClampX" type="numeric" nEntries="4"> + -[tobrodpar:ClampX], -[tobrodpar:ClampX], [tobrodpar:ClampX], + [tobrodpar:ClampX] + </Vector> + <Vector name="ClampZ" type="numeric" nEntries="4"> + -[tobrodpar:ClampZ1], -[tobrodpar:ClampZ2], -[tobrodpar:ClampZ1], + -[tobrodpar:ClampZ2] + </Vector> + <String name="SideCoolName" value="tobrod2c:TOBSideCoolTube2"/> + <Vector name="SideCoolX" type="numeric" nEntries="2"> + -[tobrodpar:SideCoolX], [tobrodpar:SideCoolX] + </Vector> + <Vector name="SideCoolY" type="numeric" nEntries="2"> + [tobrodpar:SideCoolY], [tobrodpar:SideCoolY] + </Vector> + <Vector name="SideCoolZ" type="numeric" nEntries="2"> + -[tobrodpar:SideCoolZ], -[tobrodpar:SideCoolZ] + </Vector> + <String name="EndCoolName" value="tobrod2c:TOBEndCoolTube2"/> + <String name="EndCoolRot" value="tobrodpar:90XD"/> + <Numeric name="EndCoolY" value="[tobrodpar:EndCoolY]"/> + <Numeric name="EndCoolZ" value="-[tobrodpar:EndCoolZ]"/> + <String name="OptFibreName" value="tobrod2c:TOBOptFibre2"/> + <Vector name="optFibreX" type="numeric" nEntries="2"> + -[tobrodpar:OptFibreX], [tobrodpar:OptFibreX] + </Vector> + <Vector name="optFibreZ" type="numeric" nEntries="2"> + -[tobrodpar:OptFibreZ], -[tobrodpar:OptFibreZ] + </Vector> + <String name="SideClamp1Name" value="tobrod2c:TOBPlate21"/> + <Vector name="SideClampX" type="numeric" nEntries="12"> + -[tobrodpar:SideClampX], [tobrodpar:SideClampX], -[tobrodpar:SideClampX], + [tobrodpar:SideClampX], -[tobrodpar:SideClampX], [tobrodpar:SideClampX], + -[tobrodpar:SideClampX], [tobrodpar:SideClampX], -[tobrodpar:SideClampX], + [tobrodpar:SideClampX], -[tobrodpar:SideClampX], [tobrodpar:SideClampX] + </Vector> + <Vector name="SideClamp1DZ" type="numeric" nEntries="12"> + -[tobrodpar:SideClamp1Z],-[tobrodpar:SideClamp1Z],-[tobrodpar:SideClamp1Z], + -[tobrodpar:SideClamp1Z], [tobrodpar:SideClamp1Z], [tobrodpar:SideClamp1Z], + [tobrodpar:SideClamp1Z], [tobrodpar:SideClamp1Z], [tobrodpar:SideClamp1Z], + [tobrodpar:SideClamp1Z], [tobrodpar:SideClamp1Z], [tobrodpar:SideClamp1Z] + </Vector> + <String name="SideClamp2Name" value="tobrod2c:TOBPlate22"/> + <Vector name="SideClamp2DZ" type="numeric" nEntries="12"> + [tobrodpar:SideClamp2Z], [tobrodpar:SideClamp2Z], [tobrodpar:SideClamp2Z], + [tobrodpar:SideClamp2Z],-[tobrodpar:SideClamp2Z],-[tobrodpar:SideClamp2Z], + -[tobrodpar:SideClamp2Z],-[tobrodpar:SideClamp2Z],-[tobrodpar:SideClamp2Z], + -[tobrodpar:SideClamp2Z],-[tobrodpar:SideClamp2Z],-[tobrodpar:SideClamp2Z] + </Vector> + <String name="ModuleName" value="tobmodule2:TOBModule2"/> + <Vector name="ModuleRot" type="string" nEntries="6"> + tobrodpar:NULL, tobrodpar:R180, tobrodpar:180D, + tobrodpar:180X, tobrodpar:180D, tobrodpar:180X</Vector> + <Vector name="ModuleY" type="numeric" nEntries="6"> + [tobrodpar:ModuleY], -[tobrodpar:ModuleY], [tobrodpar:ModuleY], + -[tobrodpar:ModuleY], [tobrodpar:ModuleY], -[tobrodpar:ModuleY] + </Vector> + <Vector name="ModuleZ" type="numeric" nEntries="6"> + [tobrodpar:ModuleZ01], [tobrodpar:ModuleZ02], [tobrodpar:ModuleZ03], + [tobrodpar:ModuleZ04], [tobrodpar:ModuleZ05], [tobrodpar:ModuleZ06] + </Vector> + <Vector name="ICCName" type="string" nEntries="6"> + tobrod2c:TOBRodConn2, tobrod2c:TOBCCUM2, tobrod2c:TOBICC22, + tobrod2c:TOBICC22, tobrod2c:TOBICC21, tobrod2c:TOBICC21 + </Vector> + <Vector name="ICCY" type="numeric" nEntries="6"> + -[tobrodpar:ICCY1], -[tobrodpar:ICCY2], [tobrodpar:ICCY1], + -[tobrodpar:ICCY1], [tobrodpar:ICCY1], -[tobrodpar:ICCY1] + </Vector> + <Vector name="ICCZ" type="numeric" nEntries="6"> + [tobrodpar:ICCZ01], [tobrodpar:ICCZ02], [tobrodpar:ICCZ03], + [tobrodpar:ICCZ04], [tobrodpar:ICCZ05], [tobrodpar:ICCZ06] + </Vector> + <String name="AOHName" value="tobrodpar:TOBAOH"/> + <Vector name="AOHCopies" type="numeric" nEntries="6"> + 0 , 0 , 2 , 2 , 1 , 1 + </Vector> + <Vector name="AOHx" type="numeric" nEntries="6"> + [zero] , [zero] , + [tobrodpar:AOHx] , [tobrodpar:AOHx] , + [tobrodpar:AOHx] , -[tobrodpar:AOHx] + </Vector> + <Vector name="AOHy" type="numeric" nEntries="6"> + [zero] , [zero] , + [tobrodpar:AOHy] , -[tobrodpar:AOHy] , + [tobrodpar:AOHy] , -[tobrodpar:AOHy] + </Vector> + <Vector name="AOHz" type="numeric" nEntries="6"> + [zero] , [zero] , + [tobrodpar:AOHz] , -[tobrodpar:AOHz] , + [zero] , [zero] + </Vector> + </Algorithm> +</DDDefinition> diff --git a/examples/DDCMS/data/tobrod4.xml b/examples/DDCMS/data/tobrod4.xml new file mode 100644 index 0000000000000000000000000000000000000000..8720763f42ec1301e29888c0a0341967d14d9cdd --- /dev/null +++ b/examples/DDCMS/data/tobrod4.xml @@ -0,0 +1,26 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tobrod4.xml" eval="true"> + <Constant name="zero" value="0.0*fm"/> + </ConstantsSection> + <LogicalPartSection label="tobrod4.xml"> + <LogicalPart name="TOBRod4" category="unspecified"> + <rSolid name="tobrodpar:TOBRod"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + </LogicalPartSection> + <PosPartSection label="tobrod4.xml"> + <PosPart copyNumber="1"> + <rParent name="tobrod4:TOBRod4"/> + <rChild name="tobrod4l:TOBRod4L"/> + <rRotation name="tobrodpar:R180"/> + <Translation x="[zero]" y="[zero]" z="-([tobrodpar:RodL]-[tobrodpar:RodDL])/2"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tobrod4:TOBRod4"/> + <rChild name="tobrod4h:TOBRod4H"/> + <rRotation name="tobrodpar:R180"/> + <Translation x="[zero]" y="[zero]" z="([tobrodpar:RodL]-[tobrodpar:RodDL])/2"/> + </PosPart> + </PosPartSection> +</DDDefinition> diff --git a/examples/DDCMS/data/tobrod4c.xml b/examples/DDCMS/data/tobrod4c.xml new file mode 100644 index 0000000000000000000000000000000000000000..ee8b86f3ff13e069af7ba6d2bb90b4de34838295 --- /dev/null +++ b/examples/DDCMS/data/tobrod4c.xml @@ -0,0 +1,71 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tobrod4c.xml" eval="true"> + <Constant name="zero" value="0.0*fm"/> + </ConstantsSection> + <SolidSection label="tobrod4c.xml"> + <Tubs name="TOBSideCoolTube4" rMin="[zero]" rMax="[tobrodpar:CoolTubeLightR]" dz="[tobrodpar:SideCoolL]" startPhi="0*deg" deltaPhi="360*deg"/> + <Tubs name="TOBSideCoolFluid4" rMin="[zero]" rMax="[tobrodpar:CoolFluidLightR]" dz="[tobrodpar:SideCoolL]" startPhi="0*deg" deltaPhi="360*deg"/> + <Tubs name="TOBEndCoolTube4" rMin="[zero]" rMax="[tobrodpar:CoolTubeLightR]" dz="[tobrodpar:EndCoolL]" startPhi="0*deg" deltaPhi="360*deg"/> + <Tubs name="TOBEndCoolFluid4" rMin="[zero]" rMax="[tobrodpar:CoolFluidLightR]" dz="[tobrodpar:EndCoolL]" startPhi="0*deg" deltaPhi="360*deg"/> + <Box name="TOBOptFibre4" dx="[tobrodpar:OptFibreW]" dy="[tobrodpar:OptFibreH]" dz="[tobrodpar:OptFibreL]"/> + <Box name="TOBPlate41" dx="[tobrodpar:SideClampDx]" dy="[tobrodpar:SideClampDy]" dz="[tobrodpar:SideClampLDz]"/> + <Box name="TOBPlate42" dx="[tobrodpar:SideClampDx]" dy="[tobrodpar:SideClampDy]" dz="[tobrodpar:SideClampLDz]"/> + </SolidSection> + <LogicalPartSection label="tobrod4c.xml"> + <LogicalPart name="TOBSideCoolTube4" category="unspecified"> + <rSolid name="TOBSideCoolTube4"/> + <rMaterial name="trackermaterial:T_CuNi"/> + </LogicalPart> + <LogicalPart name="TOBSideCoolFluid4" category="unspecified"> + <rSolid name="TOBSideCoolFluid4"/> + <rMaterial name="trackermaterial:T_C6F14_F2_-30C"/> + </LogicalPart> + <LogicalPart name="TOBEndCoolTube4" category="unspecified"> + <rSolid name="TOBEndCoolTube4"/> + <rMaterial name="trackermaterial:T_CuNi"/> + </LogicalPart> + <LogicalPart name="TOBEndCoolFluid4" category="unspecified"> + <rSolid name="TOBEndCoolFluid4"/> + <rMaterial name="trackermaterial:T_C6F14_F2_-30C"/> + </LogicalPart> + <LogicalPart name="TOBOptFibre4" category="unspecified"> + <rSolid name="TOBOptFibre4"/> + <rMaterial name="tobmaterial:TOB_optfib_L56"/> + </LogicalPart> + <LogicalPart name="TOBPlate41" category="unspecified"> + <rSolid name="TOBPlate41"/> + <rMaterial name="tobmaterial:TOB_plate_B"/> + </LogicalPart> + <LogicalPart name="TOBPlate42" category="unspecified"> + <rSolid name="TOBPlate42"/> + <rMaterial name="tobmaterial:TOB_plate_C"/> + </LogicalPart> + <LogicalPart name="TOBICC41" category="unspecified"> + <rSolid name="tobrodpar:TOBICC1"/> + <rMaterial name="tobmaterial:TOB_L56_ICC1"/> + </LogicalPart> + <LogicalPart name="TOBICC42" category="unspecified"> + <rSolid name="tobrodpar:TOBICC2"/> + <rMaterial name="tobmaterial:TOB_L56_ICC2"/> + </LogicalPart> + <LogicalPart name="TOBRodConn4" category="unspecified"> + <rSolid name="tobrodpar:TOBRodConn"/> + <rMaterial name="tobmaterial:TOB_CONN56"/> + </LogicalPart> + <LogicalPart name="TOBCCUM4" category="unspecified"> + <rSolid name="tobrodpar:TOBCCUM"/> + <rMaterial name="tobmaterial:TOB_CCUM"/> + </LogicalPart> + </LogicalPartSection> + <PosPartSection label="tobrod4c.xml"> + <PosPart copyNumber="1"> + <rParent name="tobrod4c:TOBSideCoolTube4"/> + <rChild name="tobrod4c:TOBSideCoolFluid4"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tobrod4c:TOBEndCoolTube4"/> + <rChild name="tobrod4c:TOBEndCoolFluid4"/> + </PosPart> + </PosPartSection> +</DDDefinition> diff --git a/examples/DDCMS/data/tobrod4h.xml b/examples/DDCMS/data/tobrod4h.xml new file mode 100644 index 0000000000000000000000000000000000000000..c6e46ad47b4411e54346f25b6a34c1cfefde2e74 --- /dev/null +++ b/examples/DDCMS/data/tobrod4h.xml @@ -0,0 +1,144 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tobrod4h.xml" eval="true"> + <Constant name="zero" value="0.0*fm"/> + </ConstantsSection> + <LogicalPartSection label="tobrod4h.xml"> + <LogicalPart name="TOBRod4H" category="unspecified"> + <rSolid name="tobrodpar:TOBRodH"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TOBRodCentral4H" category="unspecified"> + <rSolid name="tobrodpar:TOBRodCentralH"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + </LogicalPartSection> + <PosPartSection label="tobrod4h.xml"> + <PosPart copyNumber="1"> + <rParent name="tobrod4h:TOBRod4H"/> + <rChild name="tobrod4h:TOBRodCentral4H"/> + </PosPart> + </PosPartSection> + <Algorithm name="track:DDTOBRodAlgo"> + <rParent name="tobrod4h:TOBRod4H"/> + <Numeric name="Shift" value="-([tobrodpar:RodL]-[tobrodpar:RodDL])/2"/> + <String name="CentralName" value="tobrod4h:TOBRodCentral4H"/> + <Vector name="SideRodName" type="string" nEntries="2"> + tobrodpar:TOBSideRod1, tobrodpar:TOBSideRod2 + </Vector> + <Vector name="SideRodX" type="numeric" nEntries="2"> + -[tobrodpar:SideRodX], [tobrodpar:SideRodX] + </Vector> + <Vector name="SideRodY" type="numeric" nEntries="2"> + [tobrodpar:RodY], -[tobrodpar:RodY] + </Vector> + <Vector name="SideRodZ" type="numeric" nEntries="2"> + [zero], [tobrodpar:RodDL] + </Vector> + <String name="EndRod1Name" value="tobrodpar:TOBEndRod1"/> + <Vector name="EndRod1Y" type="numeric" nEntries="2"> + -[tobrodpar:RodY], [tobrodpar:RodY] + </Vector> + <Vector name="EndRod1Z" type="numeric" nEntries="2"> + [tobrodpar:EndRod1Z], [tobrodpar:EndRod1Z] + </Vector> + <String name="EndRod2Name" value="tobrodpar:TOBEndRod2"/> + <Numeric name="EndRod2Y" value="-[tobrodpar:EndRod2Y]"/> + <Numeric name="EndRod2Z" value="[tobrodpar:EndRod2Z]"/> + <String name="CableName" value="tobrodpar:TOBCable"/> + <Numeric name="CableZ" value="[tobrodpar:CableZ]"/> + <String name="ClampName" value="tobrodpar:TOBClamp"/> + <Vector name="ClampX" type="numeric" nEntries="4"> + -[tobrodpar:ClampX], -[tobrodpar:ClampX], [tobrodpar:ClampX], + [tobrodpar:ClampX] + </Vector> + <Vector name="ClampZ" type="numeric" nEntries="4"> + [tobrodpar:ClampZ2], [tobrodpar:ClampZ1], [tobrodpar:ClampZ2], + [tobrodpar:ClampZ1] + </Vector> + <String name="SideCoolName" value="tobrod4c:TOBSideCoolTube4"/> + <Vector name="SideCoolX" type="numeric" nEntries="2"> + -[tobrodpar:SideCoolX], [tobrodpar:SideCoolX] + </Vector> + <Vector name="SideCoolY" type="numeric" nEntries="2"> + -[tobrodpar:SideCoolY], -[tobrodpar:SideCoolY] + </Vector> + <Vector name="SideCoolZ" type="numeric" nEntries="2"> + [tobrodpar:SideCoolZ], [tobrodpar:SideCoolZ] + </Vector> + <String name="EndCoolName" value="tobrod4c:TOBEndCoolTube4"/> + <String name="EndCoolRot" value="tobrodpar:90XD"/> + <Numeric name="EndCoolY" value="-[tobrodpar:EndCoolY]"/> + <Numeric name="EndCoolZ" value="[tobrodpar:EndCoolZ]"/> + <String name="OptFibreName" value="tobrod4c:TOBOptFibre4"/> + <Vector name="optFibreX" type="numeric" nEntries="2"> + -[tobrodpar:OptFibreX], [tobrodpar:OptFibreX] + </Vector> + <Vector name="optFibreZ" type="numeric" nEntries="2"> + [tobrodpar:OptFibreZ], [tobrodpar:OptFibreZ] + </Vector> + <String name="SideClamp1Name" value="tobrod4c:TOBPlate41"/> + <Vector name="SideClampX" type="numeric" nEntries="12"> + -[tobrodpar:SideClampX], [tobrodpar:SideClampX], -[tobrodpar:SideClampX], + [tobrodpar:SideClampX], -[tobrodpar:SideClampX], [tobrodpar:SideClampX], + -[tobrodpar:SideClampX], [tobrodpar:SideClampX], -[tobrodpar:SideClampX], + [tobrodpar:SideClampX], -[tobrodpar:SideClampX], [tobrodpar:SideClampX] + </Vector> + <Vector name="SideClamp1DZ" type="numeric" nEntries="12"> + -[tobrodpar:SideClamp1Z],-[tobrodpar:SideClamp1Z],-[tobrodpar:SideClamp1Z], + -[tobrodpar:SideClamp1Z],-[tobrodpar:SideClamp1Z],-[tobrodpar:SideClamp1Z], + -[tobrodpar:SideClamp1Z],-[tobrodpar:SideClamp1Z], [tobrodpar:SideClamp1Z], + [tobrodpar:SideClamp1Z], [tobrodpar:SideClamp1Z], [tobrodpar:SideClamp1Z] + </Vector> + <String name="SideClamp2Name" value="tobrod4c:TOBPlate42"/> + <Vector name="SideClamp2DZ" type="numeric" nEntries="12"> + [tobrodpar:SideClamp2Z], [tobrodpar:SideClamp2Z], [tobrodpar:SideClamp2Z], + [tobrodpar:SideClamp2Z], [tobrodpar:SideClamp2Z], [tobrodpar:SideClamp2Z], + [tobrodpar:SideClamp2Z], [tobrodpar:SideClamp2Z],-[tobrodpar:SideClamp2Z], + -[tobrodpar:SideClamp2Z],-[tobrodpar:SideClamp2Z],-[tobrodpar:SideClamp2Z] + </Vector> + <String name="ModuleName" value="tobmodule4:TOBModule4"/> + <Vector name="ModuleRot" type="string" nEntries="6"> + tobrodpar:NULL, tobrodpar:R180, tobrodpar:NULL, + tobrodpar:R180, tobrodpar:180D, tobrodpar:180X</Vector> + <Vector name="ModuleY" type="numeric" nEntries="6"> + [tobrodpar:ModuleY], -[tobrodpar:ModuleY], [tobrodpar:ModuleY], + -[tobrodpar:ModuleY], [tobrodpar:ModuleY], -[tobrodpar:ModuleY] + </Vector> + <Vector name="ModuleZ" type="numeric" nEntries="6"> + [tobrodpar:ModuleZ07], [tobrodpar:ModuleZ08], [tobrodpar:ModuleZ09], + [tobrodpar:ModuleZ10], [tobrodpar:ModuleZ11], [tobrodpar:ModuleZ12] + </Vector> + <Vector name="ICCName" type="string" nEntries="6"> + tobrod4c:TOBICC41, tobrod4c:TOBICC41, tobrod4c:TOBICC42, + tobrod4c:TOBICC42, tobrod4c:TOBCCUM4, tobrod4c:TOBRodConn4 + </Vector> + <Vector name="ICCY" type="numeric" nEntries="6"> + [tobrodpar:ICCY1], -[tobrodpar:ICCY1], [tobrodpar:ICCY1], + -[tobrodpar:ICCY1], [tobrodpar:ICCY2], [tobrodpar:ICCY1] + </Vector> + <Vector name="ICCZ" type="numeric" nEntries="6"> + [tobrodpar:ICCZ07], [tobrodpar:ICCZ08], [tobrodpar:ICCZ09], + [tobrodpar:ICCZ10], [tobrodpar:ICCZ11], [tobrodpar:ICCZ12] + </Vector> + <String name="AOHName" value="tobrodpar:TOBAOH"/> + <Vector name="AOHCopies" type="numeric" nEntries="6"> + 1 , 1 , 2 , 2 , 0 , 0 + </Vector> + <Vector name="AOHx" type="numeric" nEntries="6"> + -[tobrodpar:AOHx] , [tobrodpar:AOHx] , + [tobrodpar:AOHx] , [tobrodpar:AOHx] , + [zero] , [zero] + </Vector> + <Vector name="AOHy" type="numeric" nEntries="6"> + [tobrodpar:AOHy] , -[tobrodpar:AOHy] , + [tobrodpar:AOHy] , -[tobrodpar:AOHy] , + [zero] , [zero] + </Vector> + <Vector name="AOHz" type="numeric" nEntries="6"> + [zero] , [zero] , + [tobrodpar:AOHz] , -[tobrodpar:AOHz] , + [zero] , [zero] + </Vector> + </Algorithm> +</DDDefinition> diff --git a/examples/DDCMS/data/tobrod4l.xml b/examples/DDCMS/data/tobrod4l.xml new file mode 100644 index 0000000000000000000000000000000000000000..3402a4469d56337ea5a2ebe9645421fd75953189 --- /dev/null +++ b/examples/DDCMS/data/tobrod4l.xml @@ -0,0 +1,144 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tobrod4l.xml" eval="true"> + <Constant name="zero" value="0.0*fm"/> + </ConstantsSection> + <LogicalPartSection label="tobrod4l.xml"> + <LogicalPart name="TOBRod4L" category="unspecified"> + <rSolid name="tobrodpar:TOBRodL"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TOBRodCentral4L" category="unspecified"> + <rSolid name="tobrodpar:TOBRodCentralL"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + </LogicalPartSection> + <PosPartSection label="tobrod4l.xml"> + <PosPart copyNumber="1"> + <rParent name="tobrod4l:TOBRod4L"/> + <rChild name="tobrod4l:TOBRodCentral4L"/> + </PosPart> + </PosPartSection> + <Algorithm name="track:DDTOBRodAlgo"> + <rParent name="tobrod4l:TOBRod4L"/> + <Numeric name="Shift" value="([tobrodpar:RodL]-[tobrodpar:RodDL])/2"/> + <String name="CentralName" value="tobrod4l:TOBRodCentral4L"/> + <Vector name="SideRodName" type="string" nEntries="2"> + tobrodpar:TOBSideRod1, tobrodpar:TOBSideRod2 + </Vector> + <Vector name="SideRodX" type="numeric" nEntries="2"> + -[tobrodpar:SideRodX], [tobrodpar:SideRodX] + </Vector> + <Vector name="SideRodY" type="numeric" nEntries="2"> + -[tobrodpar:RodY], [tobrodpar:RodY] + </Vector> + <Vector name="SideRodZ" type="numeric" nEntries="2"> + [zero], -[tobrodpar:RodDL] + </Vector> + <String name="EndRod1Name" value="tobrodpar:TOBEndRod1"/> + <Vector name="EndRod1Y" type="numeric" nEntries="2"> + -[tobrodpar:RodY], [tobrodpar:RodY] + </Vector> + <Vector name="EndRod1Z" type="numeric" nEntries="2"> + -[tobrodpar:EndRod1Z], -[tobrodpar:EndRod1Z] + </Vector> + <String name="EndRod2Name" value="tobrodpar:TOBEndRod2"/> + <Numeric name="EndRod2Y" value="[tobrodpar:EndRod2Y]"/> + <Numeric name="EndRod2Z" value="-[tobrodpar:EndRod2Z]"/> + <String name="CableName" value="tobrodpar:TOBCable"/> + <Numeric name="CableZ" value="-[tobrodpar:CableZ]"/> + <String name="ClampName" value="tobrodpar:TOBClamp"/> + <Vector name="ClampX" type="numeric" nEntries="4"> + -[tobrodpar:ClampX], -[tobrodpar:ClampX], [tobrodpar:ClampX], + [tobrodpar:ClampX] + </Vector> + <Vector name="ClampZ" type="numeric" nEntries="4"> + -[tobrodpar:ClampZ1], -[tobrodpar:ClampZ2], -[tobrodpar:ClampZ1], + -[tobrodpar:ClampZ2] + </Vector> + <String name="SideCoolName" value="tobrod4c:TOBSideCoolTube4"/> + <Vector name="SideCoolX" type="numeric" nEntries="2"> + -[tobrodpar:SideCoolX], [tobrodpar:SideCoolX] + </Vector> + <Vector name="SideCoolY" type="numeric" nEntries="2"> + [tobrodpar:SideCoolY], [tobrodpar:SideCoolY] + </Vector> + <Vector name="SideCoolZ" type="numeric" nEntries="2"> + -[tobrodpar:SideCoolZ], -[tobrodpar:SideCoolZ] + </Vector> + <String name="EndCoolName" value="tobrod4c:TOBEndCoolTube4"/> + <String name="EndCoolRot" value="tobrodpar:90XD"/> + <Numeric name="EndCoolY" value="[tobrodpar:EndCoolY]"/> + <Numeric name="EndCoolZ" value="-[tobrodpar:EndCoolZ]"/> + <String name="OptFibreName" value="tobrod4c:TOBOptFibre4"/> + <Vector name="optFibreX" type="numeric" nEntries="2"> + -[tobrodpar:OptFibreX], [tobrodpar:OptFibreX] + </Vector> + <Vector name="optFibreZ" type="numeric" nEntries="2"> + -[tobrodpar:OptFibreZ], -[tobrodpar:OptFibreZ] + </Vector> + <String name="SideClamp1Name" value="tobrod4c:TOBPlate41"/> + <Vector name="SideClampX" type="numeric" nEntries="12"> + -[tobrodpar:SideClampX], [tobrodpar:SideClampX], -[tobrodpar:SideClampX], + [tobrodpar:SideClampX], -[tobrodpar:SideClampX], [tobrodpar:SideClampX], + -[tobrodpar:SideClampX], [tobrodpar:SideClampX], -[tobrodpar:SideClampX], + [tobrodpar:SideClampX], -[tobrodpar:SideClampX], [tobrodpar:SideClampX] + </Vector> + <Vector name="SideClamp1DZ" type="numeric" nEntries="12"> + -[tobrodpar:SideClamp1Z],-[tobrodpar:SideClamp1Z],-[tobrodpar:SideClamp1Z], + -[tobrodpar:SideClamp1Z], [tobrodpar:SideClamp1Z], [tobrodpar:SideClamp1Z], + [tobrodpar:SideClamp1Z], [tobrodpar:SideClamp1Z], [tobrodpar:SideClamp1Z], + [tobrodpar:SideClamp1Z], [tobrodpar:SideClamp1Z], [tobrodpar:SideClamp1Z] + </Vector> + <String name="SideClamp2Name" value="tobrod4c:TOBPlate42"/> + <Vector name="SideClamp2DZ" type="numeric" nEntries="12"> + [tobrodpar:SideClamp2Z], [tobrodpar:SideClamp2Z], [tobrodpar:SideClamp2Z], + [tobrodpar:SideClamp2Z],-[tobrodpar:SideClamp2Z],-[tobrodpar:SideClamp2Z], + -[tobrodpar:SideClamp2Z],-[tobrodpar:SideClamp2Z],-[tobrodpar:SideClamp2Z], + -[tobrodpar:SideClamp2Z],-[tobrodpar:SideClamp2Z],-[tobrodpar:SideClamp2Z] + </Vector> + <String name="ModuleName" value="tobmodule4:TOBModule4"/> + <Vector name="ModuleRot" type="string" nEntries="6"> + tobrodpar:NULL, tobrodpar:R180, tobrodpar:180D, + tobrodpar:180X, tobrodpar:180D, tobrodpar:180X</Vector> + <Vector name="ModuleY" type="numeric" nEntries="6"> + [tobrodpar:ModuleY], -[tobrodpar:ModuleY], [tobrodpar:ModuleY], + -[tobrodpar:ModuleY], [tobrodpar:ModuleY], -[tobrodpar:ModuleY] + </Vector> + <Vector name="ModuleZ" type="numeric" nEntries="6"> + [tobrodpar:ModuleZ01], [tobrodpar:ModuleZ02], [tobrodpar:ModuleZ03], + [tobrodpar:ModuleZ04], [tobrodpar:ModuleZ05], [tobrodpar:ModuleZ06] + </Vector> + <Vector name="ICCName" type="string" nEntries="6"> + tobrod4c:TOBRodConn4, tobrod4c:TOBCCUM4, tobrod4c:TOBICC42, + tobrod4c:TOBICC42, tobrod4c:TOBICC41, tobrod4c:TOBICC41 + </Vector> + <Vector name="ICCY" type="numeric" nEntries="6"> + -[tobrodpar:ICCY1], -[tobrodpar:ICCY2], [tobrodpar:ICCY1], + -[tobrodpar:ICCY1], [tobrodpar:ICCY1], -[tobrodpar:ICCY1] + </Vector> + <Vector name="ICCZ" type="numeric" nEntries="6"> + [tobrodpar:ICCZ01], [tobrodpar:ICCZ02], [tobrodpar:ICCZ03], + [tobrodpar:ICCZ04], [tobrodpar:ICCZ05], [tobrodpar:ICCZ06] + </Vector> + <String name="AOHName" value="tobrodpar:TOBAOH"/> + <Vector name="AOHCopies" type="numeric" nEntries="6"> + 0 , 0 , 2 , 2 , 1 , 1 + </Vector> + <Vector name="AOHx" type="numeric" nEntries="6"> + [zero] , [zero] , + [tobrodpar:AOHx] , [tobrodpar:AOHx] , + [tobrodpar:AOHx] , -[tobrodpar:AOHx] + </Vector> + <Vector name="AOHy" type="numeric" nEntries="6"> + [zero] , [zero] , + [tobrodpar:AOHy] , -[tobrodpar:AOHy] , + [tobrodpar:AOHy] , -[tobrodpar:AOHy] + </Vector> + <Vector name="AOHz" type="numeric" nEntries="6"> + [zero] , [zero] , + [tobrodpar:AOHz] , -[tobrodpar:AOHz] , + [zero] , [zero] + </Vector> + </Algorithm> +</DDDefinition> diff --git a/examples/DDCMS/data/tobrod5.xml b/examples/DDCMS/data/tobrod5.xml new file mode 100644 index 0000000000000000000000000000000000000000..63d5a052fca134a763c99a293eae61efb9c2bad2 --- /dev/null +++ b/examples/DDCMS/data/tobrod5.xml @@ -0,0 +1,26 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tobrod5.xml" eval="true"> + <Constant name="zero" value="0.0*fm"/> + </ConstantsSection> + <LogicalPartSection label="tobrod5.xml"> + <LogicalPart name="TOBRod5" category="unspecified"> + <rSolid name="tobrodpar:TOBRod"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + </LogicalPartSection> + <PosPartSection label="tobrod5.xml"> + <PosPart copyNumber="1"> + <rParent name="tobrod5:TOBRod5"/> + <rChild name="tobrod5l:TOBRod5L"/> + <rRotation name="tobrodpar:180X"/> + <Translation x="[zero]" y="[zero]" z="([tobrodpar:RodL]-[tobrodpar:RodDL])/2"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="tobrod5:TOBRod5"/> + <rChild name="tobrod5h:TOBRod5H"/> + <rRotation name="tobrodpar:180X"/> + <Translation x="[zero]" y="[zero]" z="-([tobrodpar:RodL]-[tobrodpar:RodDL])/2"/> + </PosPart> + </PosPartSection> +</DDDefinition> diff --git a/examples/DDCMS/data/tobrod5h.xml b/examples/DDCMS/data/tobrod5h.xml new file mode 100644 index 0000000000000000000000000000000000000000..d81623992d7e7672149c734ae26211e78acbe13a --- /dev/null +++ b/examples/DDCMS/data/tobrod5h.xml @@ -0,0 +1,144 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tobrod5h.xml" eval="true"> + <Constant name="zero" value="0.0*fm"/> + </ConstantsSection> + <LogicalPartSection label="tobrod5h.xml"> + <LogicalPart name="TOBRod5H" category="unspecified"> + <rSolid name="tobrodpar:TOBRodH"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TOBRodCentral5H" category="unspecified"> + <rSolid name="tobrodpar:TOBRodCentralH"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + </LogicalPartSection> + <PosPartSection label="tobrod5h.xml"> + <PosPart copyNumber="1"> + <rParent name="tobrod5h:TOBRod5H"/> + <rChild name="tobrod5h:TOBRodCentral5H"/> + </PosPart> + </PosPartSection> + <Algorithm name="track:DDTOBRodAlgo"> + <rParent name="tobrod5h:TOBRod5H"/> + <Numeric name="Shift" value="-([tobrodpar:RodL]-[tobrodpar:RodDL])/2"/> + <String name="CentralName" value="tobrod5h:TOBRodCentral5H"/> + <Vector name="SideRodName" type="string" nEntries="2"> + tobrodpar:TOBSideRod1, tobrodpar:TOBSideRod2 + </Vector> + <Vector name="SideRodX" type="numeric" nEntries="2"> + -[tobrodpar:SideRodX], [tobrodpar:SideRodX] + </Vector> + <Vector name="SideRodY" type="numeric" nEntries="2"> + [tobrodpar:RodY], -[tobrodpar:RodY] + </Vector> + <Vector name="SideRodZ" type="numeric" nEntries="2"> + [zero], [tobrodpar:RodDL] + </Vector> + <String name="EndRod1Name" value="tobrodpar:TOBEndRod1"/> + <Vector name="EndRod1Y" type="numeric" nEntries="2"> + -[tobrodpar:RodY], [tobrodpar:RodY] + </Vector> + <Vector name="EndRod1Z" type="numeric" nEntries="2"> + [tobrodpar:EndRod1Z], [tobrodpar:EndRod1Z] + </Vector> + <String name="EndRod2Name" value="tobrodpar:TOBEndRod2"/> + <Numeric name="EndRod2Y" value="-[tobrodpar:EndRod2Y]"/> + <Numeric name="EndRod2Z" value="[tobrodpar:EndRod2Z]"/> + <String name="CableName" value="tobrodpar:TOBCable"/> + <Numeric name="CableZ" value="[tobrodpar:CableZ]"/> + <String name="ClampName" value="tobrodpar:TOBClamp"/> + <Vector name="ClampX" type="numeric" nEntries="4"> + -[tobrodpar:ClampX], -[tobrodpar:ClampX], [tobrodpar:ClampX], + [tobrodpar:ClampX] + </Vector> + <Vector name="ClampZ" type="numeric" nEntries="4"> + [tobrodpar:ClampZ2], [tobrodpar:ClampZ1], [tobrodpar:ClampZ2], + [tobrodpar:ClampZ1] + </Vector> + <String name="SideCoolName" value="tobrod4c:TOBSideCoolTube4"/> + <Vector name="SideCoolX" type="numeric" nEntries="2"> + -[tobrodpar:SideCoolX], [tobrodpar:SideCoolX] + </Vector> + <Vector name="SideCoolY" type="numeric" nEntries="2"> + -[tobrodpar:SideCoolY], -[tobrodpar:SideCoolY] + </Vector> + <Vector name="SideCoolZ" type="numeric" nEntries="2"> + [tobrodpar:SideCoolZ], [tobrodpar:SideCoolZ] + </Vector> + <String name="EndCoolName" value="tobrod4c:TOBEndCoolTube4"/> + <String name="EndCoolRot" value="tobrodpar:90XD"/> + <Numeric name="EndCoolY" value="-[tobrodpar:EndCoolY]"/> + <Numeric name="EndCoolZ" value="[tobrodpar:EndCoolZ]"/> + <String name="OptFibreName" value="tobrod4c:TOBOptFibre4"/> + <Vector name="optFibreX" type="numeric" nEntries="2"> + -[tobrodpar:OptFibreX], [tobrodpar:OptFibreX] + </Vector> + <Vector name="optFibreZ" type="numeric" nEntries="2"> + [tobrodpar:OptFibreZ], [tobrodpar:OptFibreZ] + </Vector> + <String name="SideClamp1Name" value="tobrod4c:TOBPlate41"/> + <Vector name="SideClampX" type="numeric" nEntries="12"> + -[tobrodpar:SideClampX], [tobrodpar:SideClampX], -[tobrodpar:SideClampX], + [tobrodpar:SideClampX], -[tobrodpar:SideClampX], [tobrodpar:SideClampX], + -[tobrodpar:SideClampX], [tobrodpar:SideClampX], -[tobrodpar:SideClampX], + [tobrodpar:SideClampX], -[tobrodpar:SideClampX], [tobrodpar:SideClampX] + </Vector> + <Vector name="SideClamp1DZ" type="numeric" nEntries="12"> + -[tobrodpar:SideClamp1Z],-[tobrodpar:SideClamp1Z],-[tobrodpar:SideClamp1Z], + -[tobrodpar:SideClamp1Z],-[tobrodpar:SideClamp1Z],-[tobrodpar:SideClamp1Z], + -[tobrodpar:SideClamp1Z],-[tobrodpar:SideClamp1Z], [tobrodpar:SideClamp1Z], + [tobrodpar:SideClamp1Z], [tobrodpar:SideClamp1Z], [tobrodpar:SideClamp1Z] + </Vector> + <String name="SideClamp2Name" value="tobrod4c:TOBPlate42"/> + <Vector name="SideClamp2DZ" type="numeric" nEntries="12"> + [tobrodpar:SideClamp2Z], [tobrodpar:SideClamp2Z], [tobrodpar:SideClamp2Z], + [tobrodpar:SideClamp2Z], [tobrodpar:SideClamp2Z], [tobrodpar:SideClamp2Z], + [tobrodpar:SideClamp2Z], [tobrodpar:SideClamp2Z],-[tobrodpar:SideClamp2Z], + -[tobrodpar:SideClamp2Z],-[tobrodpar:SideClamp2Z],-[tobrodpar:SideClamp2Z] + </Vector> + <String name="ModuleName" value="tobmodule4:TOBModule4"/> + <Vector name="ModuleRot" type="string" nEntries="6"> + tobrodpar:NULL, tobrodpar:R180, tobrodpar:NULL, + tobrodpar:R180, tobrodpar:180D, tobrodpar:180X</Vector> + <Vector name="ModuleY" type="numeric" nEntries="6"> + [tobrodpar:ModuleY], -[tobrodpar:ModuleY], [tobrodpar:ModuleY], + -[tobrodpar:ModuleY], [tobrodpar:ModuleY], -[tobrodpar:ModuleY] + </Vector> + <Vector name="ModuleZ" type="numeric" nEntries="6"> + [tobrodpar:ModuleZ07], [tobrodpar:ModuleZ08], [tobrodpar:ModuleZ09], + [tobrodpar:ModuleZ10], [tobrodpar:ModuleZ11], [tobrodpar:ModuleZ12] + </Vector> + <Vector name="ICCName" type="string" nEntries="6"> + tobrod4c:TOBICC41, tobrod4c:TOBICC41, tobrod4c:TOBICC42, + tobrod4c:TOBICC42, tobrod4c:TOBCCUM4, tobrod4c:TOBRodConn4 + </Vector> + <Vector name="ICCY" type="numeric" nEntries="6"> + [tobrodpar:ICCY1], -[tobrodpar:ICCY1], [tobrodpar:ICCY1], + -[tobrodpar:ICCY1], [tobrodpar:ICCY2], [tobrodpar:ICCY1] + </Vector> + <Vector name="ICCZ" type="numeric" nEntries="6"> + [tobrodpar:ICCZ07], [tobrodpar:ICCZ08], [tobrodpar:ICCZ09], + [tobrodpar:ICCZ10], [tobrodpar:ICCZ11], [tobrodpar:ICCZ12] + </Vector> + <String name="AOHName" value="tobrodpar:TOBAOH"/> + <Vector name="AOHCopies" type="numeric" nEntries="6"> + 1 , 1 , 2 , 2 , 0 , 0 + </Vector> + <Vector name="AOHx" type="numeric" nEntries="6"> + -[tobrodpar:AOHx] , [tobrodpar:AOHx] , + [tobrodpar:AOHx] , [tobrodpar:AOHx] , + [zero] , [zero] + </Vector> + <Vector name="AOHy" type="numeric" nEntries="6"> + [tobrodpar:AOHy] , -[tobrodpar:AOHy] , + [tobrodpar:AOHy] , -[tobrodpar:AOHy] , + [zero] , [zero] + </Vector> + <Vector name="AOHz" type="numeric" nEntries="6"> + [zero] , [zero] , + [tobrodpar:AOHz] , -[tobrodpar:AOHz] , + [zero] , [zero] + </Vector> + </Algorithm> +</DDDefinition> diff --git a/examples/DDCMS/data/tobrod5l.xml b/examples/DDCMS/data/tobrod5l.xml new file mode 100644 index 0000000000000000000000000000000000000000..b4de5ada180ab6e8354eaea2f4c69d9374918c23 --- /dev/null +++ b/examples/DDCMS/data/tobrod5l.xml @@ -0,0 +1,144 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tobrod5l.xml" eval="true"> + <Constant name="zero" value="0.0*fm"/> + </ConstantsSection> + <LogicalPartSection label="tobrod5l.xml"> + <LogicalPart name="TOBRod5L" category="unspecified"> + <rSolid name="tobrodpar:TOBRodL"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TOBRodCentral5L" category="unspecified"> + <rSolid name="tobrodpar:TOBRodCentralL"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + </LogicalPartSection> + <PosPartSection label="tobrod5l.xml"> + <PosPart copyNumber="1"> + <rParent name="tobrod5l:TOBRod5L"/> + <rChild name="tobrod5l:TOBRodCentral5L"/> + </PosPart> + </PosPartSection> + <Algorithm name="track:DDTOBRodAlgo"> + <rParent name="tobrod5l:TOBRod5L"/> + <Numeric name="Shift" value="([tobrodpar:RodL]-[tobrodpar:RodDL])/2"/> + <String name="CentralName" value="tobrod5l:TOBRodCentral5L"/> + <Vector name="SideRodName" type="string" nEntries="2"> + tobrodpar:TOBSideRod1, tobrodpar:TOBSideRod2 + </Vector> + <Vector name="SideRodX" type="numeric" nEntries="2"> + -[tobrodpar:SideRodX], [tobrodpar:SideRodX] + </Vector> + <Vector name="SideRodY" type="numeric" nEntries="2"> + -[tobrodpar:RodY], [tobrodpar:RodY] + </Vector> + <Vector name="SideRodZ" type="numeric" nEntries="2"> + [zero], -[tobrodpar:RodDL] + </Vector> + <String name="EndRod1Name" value="tobrodpar:TOBEndRod1"/> + <Vector name="EndRod1Y" type="numeric" nEntries="2"> + -[tobrodpar:RodY], [tobrodpar:RodY] + </Vector> + <Vector name="EndRod1Z" type="numeric" nEntries="2"> + -[tobrodpar:EndRod1Z], -[tobrodpar:EndRod1Z] + </Vector> + <String name="EndRod2Name" value="tobrodpar:TOBEndRod2"/> + <Numeric name="EndRod2Y" value="[tobrodpar:EndRod2Y]"/> + <Numeric name="EndRod2Z" value="-[tobrodpar:EndRod2Z]"/> + <String name="CableName" value="tobrodpar:TOBCable"/> + <Numeric name="CableZ" value="-[tobrodpar:CableZ]"/> + <String name="ClampName" value="tobrodpar:TOBClamp"/> + <Vector name="ClampX" type="numeric" nEntries="4"> + -[tobrodpar:ClampX], -[tobrodpar:ClampX], [tobrodpar:ClampX], + [tobrodpar:ClampX] + </Vector> + <Vector name="ClampZ" type="numeric" nEntries="4"> + -[tobrodpar:ClampZ1], -[tobrodpar:ClampZ2], -[tobrodpar:ClampZ1], + -[tobrodpar:ClampZ2] + </Vector> + <String name="SideCoolName" value="tobrod4c:TOBSideCoolTube4"/> + <Vector name="SideCoolX" type="numeric" nEntries="2"> + -[tobrodpar:SideCoolX], [tobrodpar:SideCoolX] + </Vector> + <Vector name="SideCoolY" type="numeric" nEntries="2"> + [tobrodpar:SideCoolY], [tobrodpar:SideCoolY] + </Vector> + <Vector name="SideCoolZ" type="numeric" nEntries="2"> + -[tobrodpar:SideCoolZ], -[tobrodpar:SideCoolZ] + </Vector> + <String name="EndCoolName" value="tobrod4c:TOBEndCoolTube4"/> + <String name="EndCoolRot" value="tobrodpar:90XD"/> + <Numeric name="EndCoolY" value="[tobrodpar:EndCoolY]"/> + <Numeric name="EndCoolZ" value="-[tobrodpar:EndCoolZ]"/> + <String name="OptFibreName" value="tobrod4c:TOBOptFibre4"/> + <Vector name="optFibreX" type="numeric" nEntries="2"> + -[tobrodpar:OptFibreX], [tobrodpar:OptFibreX] + </Vector> + <Vector name="optFibreZ" type="numeric" nEntries="2"> + -[tobrodpar:OptFibreZ], -[tobrodpar:OptFibreZ] + </Vector> + <String name="SideClamp1Name" value="tobrod4c:TOBPlate41"/> + <Vector name="SideClampX" type="numeric" nEntries="12"> + -[tobrodpar:SideClampX], [tobrodpar:SideClampX], -[tobrodpar:SideClampX], + [tobrodpar:SideClampX], -[tobrodpar:SideClampX], [tobrodpar:SideClampX], + -[tobrodpar:SideClampX], [tobrodpar:SideClampX], -[tobrodpar:SideClampX], + [tobrodpar:SideClampX], -[tobrodpar:SideClampX], [tobrodpar:SideClampX] + </Vector> + <Vector name="SideClamp1DZ" type="numeric" nEntries="12"> + -[tobrodpar:SideClamp1Z],-[tobrodpar:SideClamp1Z],-[tobrodpar:SideClamp1Z], + -[tobrodpar:SideClamp1Z], [tobrodpar:SideClamp1Z], [tobrodpar:SideClamp1Z], + [tobrodpar:SideClamp1Z], [tobrodpar:SideClamp1Z], [tobrodpar:SideClamp1Z], + [tobrodpar:SideClamp1Z], [tobrodpar:SideClamp1Z], [tobrodpar:SideClamp1Z] + </Vector> + <String name="SideClamp2Name" value="tobrod4c:TOBPlate42"/> + <Vector name="SideClamp2DZ" type="numeric" nEntries="12"> + [tobrodpar:SideClamp2Z], [tobrodpar:SideClamp2Z], [tobrodpar:SideClamp2Z], + [tobrodpar:SideClamp2Z],-[tobrodpar:SideClamp2Z],-[tobrodpar:SideClamp2Z], + -[tobrodpar:SideClamp2Z],-[tobrodpar:SideClamp2Z],-[tobrodpar:SideClamp2Z], + -[tobrodpar:SideClamp2Z],-[tobrodpar:SideClamp2Z],-[tobrodpar:SideClamp2Z] + </Vector> + <String name="ModuleName" value="tobmodule4:TOBModule4"/> + <Vector name="ModuleRot" type="string" nEntries="6"> + tobrodpar:NULL, tobrodpar:R180, tobrodpar:180D, + tobrodpar:180X, tobrodpar:180D, tobrodpar:180X</Vector> + <Vector name="ModuleY" type="numeric" nEntries="6"> + [tobrodpar:ModuleY], -[tobrodpar:ModuleY], [tobrodpar:ModuleY], + -[tobrodpar:ModuleY], [tobrodpar:ModuleY], -[tobrodpar:ModuleY] + </Vector> + <Vector name="ModuleZ" type="numeric" nEntries="6"> + [tobrodpar:ModuleZ01], [tobrodpar:ModuleZ02], [tobrodpar:ModuleZ03], + [tobrodpar:ModuleZ04], [tobrodpar:ModuleZ05], [tobrodpar:ModuleZ06] + </Vector> + <Vector name="ICCName" type="string" nEntries="6"> + tobrod4c:TOBRodConn4, tobrod4c:TOBCCUM4, tobrod4c:TOBICC42, + tobrod4c:TOBICC42, tobrod4c:TOBICC41, tobrod4c:TOBICC41 + </Vector> + <Vector name="ICCY" type="numeric" nEntries="6"> + -[tobrodpar:ICCY1], -[tobrodpar:ICCY2], [tobrodpar:ICCY1], + -[tobrodpar:ICCY1], [tobrodpar:ICCY1], -[tobrodpar:ICCY1] + </Vector> + <Vector name="ICCZ" type="numeric" nEntries="6"> + [tobrodpar:ICCZ01], [tobrodpar:ICCZ02], [tobrodpar:ICCZ03], + [tobrodpar:ICCZ04], [tobrodpar:ICCZ05], [tobrodpar:ICCZ06] + </Vector> + <String name="AOHName" value="tobrodpar:TOBAOH"/> + <Vector name="AOHCopies" type="numeric" nEntries="6"> + 0 , 0 , 2 , 2 , 1 , 1 + </Vector> + <Vector name="AOHx" type="numeric" nEntries="6"> + [zero] , [zero] , + [tobrodpar:AOHx] , [tobrodpar:AOHx] , + [tobrodpar:AOHx] , -[tobrodpar:AOHx] + </Vector> + <Vector name="AOHy" type="numeric" nEntries="6"> + [zero] , [zero] , + [tobrodpar:AOHy] , -[tobrodpar:AOHy] , + [tobrodpar:AOHy] , -[tobrodpar:AOHy] + </Vector> + <Vector name="AOHz" type="numeric" nEntries="6"> + [zero] , [zero] , + [tobrodpar:AOHz] , -[tobrodpar:AOHz] , + [zero] , [zero] + </Vector> + </Algorithm> +</DDDefinition> diff --git a/examples/DDCMS/data/tobrodpar.xml b/examples/DDCMS/data/tobrodpar.xml new file mode 100644 index 0000000000000000000000000000000000000000..6680e125848951377f129f1bf2d3343b239138be --- /dev/null +++ b/examples/DDCMS/data/tobrodpar.xml @@ -0,0 +1,176 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tobrodpar.xml" eval="true"> + <Constant name="RodW" value="8.250*cm"/> + <Constant name="RodT" value="1.000*cm"/> + <Constant name="RodL" value="110.80*cm"/> + <Constant name="RodDL" value="1.00*cm"/> + <Constant name="CentralRodW" value="6.250*cm"/> + <Constant name="SideRodW" value="0.600*cm"/> + <Constant name="SideRodT" value="0.060*cm"/> + <Constant name="SideRodX" value="6.850*cm"/> + <Constant name="RodY" value="0.790*cm"/> + <Constant name="EndRod1Z" value="110.2*cm"/> + <Constant name="EndRodT" value="0.055*cm"/> + <Constant name="EndRodL" value="1.300*cm"/> + <Constant name="EndRod2Y" value="0.845*cm"/> + <Constant name="EndRod2Z" value="2.450*cm"/> + <Constant name="CoolTubeLightR" value="0.110*cm"/> + <Constant name="CoolTubeHeavyR" value="0.125*cm"/> + <Constant name="CoolFluidLightR" value="0.100*cm"/> + <Constant name="CoolFluidHeavyR" value="0.115*cm"/> + <Constant name="SideCoolL" value="53.95*cm"/> + <Constant name="SideCoolX" value="6.550*cm"/> + <Constant name="SideCoolY" value="0.200*cm"/> + <Constant name="SideCoolZ" value="56.85*cm"/> + <Constant name="EndCoolL" value="6.250*cm"/> + <Constant name="EndCoolY" value="0.200*cm"/> + <Constant name="EndCoolZ" value="3.100*cm"/> + <Constant name="OptFibreW" value="0.150*cm"/> + <Constant name="OptFibreH" value="0.330*cm"/> + <Constant name="OptFibreL" value="37.50*cm"/> + <Constant name="OptFibreX" value="7.100*cm"/> + <Constant name="OptFibreZ" value="63.35*cm"/> + <Constant name="ClampDx" value="0.350*cm"/> + <Constant name="ClampDy" value="0.780*cm"/> + <Constant name="ClampDz" value="0.850*cm"/> + <Constant name="ClampX" value="7.850*cm"/> + <Constant name="ClampZ1" value="109.0*cm"/> + <Constant name="ClampZ2" value="29.00*cm"/> + <Constant name="SideClampDx" value="0.575*cm"/> + <Constant name="SideClampDy" value="0.145*cm"/> + <Constant name="SideClampLDz" value="1.900*cm"/> + <Constant name="SideClampHDz" value="2.000*cm"/> + <Constant name="SideClampX" value="6.825*cm"/> + <Constant name="SideClamp1Z" value="2.125*cm"/> + <Constant name="SideClamp2Z" value="9.775*cm"/> + <Constant name="CableDx" value="2.500*cm"/> + <Constant name="CableDy" value="0.050*cm"/> + <Constant name="CableDz" value="38.25*cm"/> + <Constant name="CableZ" value="62.25*cm"/> + <Constant name="ICCDx" value="5.900*cm"/> + <Constant name="ICCDy" value="0.125*cm"/> + <Constant name="ICC1Dz" value="2.200*cm"/> + <Constant name="ICC2Dz" value="3.400*cm"/> + <Constant name="ConnDx" value="5.900*cm"/> + <Constant name="ConnDy" value="0.250*cm"/> + <Constant name="ConnDz" value="3.750*cm"/> + <Constant name="CCUMDx" value="5.900*cm"/> + <Constant name="CCUMDy" value="0.125*cm"/> + <Constant name="CCUMDz" value="3.500*cm"/> + <Constant name="ModuleY" value="0.5425*cm"/> + <Constant name="ModuleZ01" value="-96.8564*cm"/> + <Constant name="ModuleZ02" value="-78.3454*cm"/> + <Constant name="ModuleZ03" value="-65.5084*cm"/> + <Constant name="ModuleZ04" value="-47.1914*cm"/> + <Constant name="ModuleZ05" value="-29.4404*cm"/> + <Constant name="ModuleZ06" value="-11.3564*cm"/> + <Constant name="ModuleZ07" value="11.3564*cm"/> + <Constant name="ModuleZ08" value="29.4404*cm"/> + <Constant name="ModuleZ09" value="48.1014*cm"/> + <Constant name="ModuleZ10" value="65.5084*cm"/> + <Constant name="ModuleZ11" value="80.1174*cm"/> + <Constant name="ModuleZ12" value="96.8564*cm"/> + <Constant name="ICCY1" value="0.525*cm"/> + <Constant name="ICCY2" value="0.400*cm"/> + <Constant name="ICCZ01" value="-105.00*cm"/> + <Constant name="ICCZ02" value="-96.60*cm"/> + <Constant name="ICCZ03" value="-81.20*cm"/> + <Constant name="ICCZ04" value="-62.75*cm"/> + <Constant name="ICCZ05" value="-44.05*cm"/> + <Constant name="ICCZ06" value="-25.85*cm"/> + <Constant name="ICCZ07" value="25.85*cm"/> + <Constant name="ICCZ08" value="44.05*cm"/> + <Constant name="ICCZ09" value="64.10*cm"/> + <Constant name="ICCZ10" value="81.20*cm"/> + <Constant name="ICCZ11" value="96.60*cm"/> + <Constant name="ICCZ12" value="105.00*cm"/> + <Constant name="zero" value="0.0*fm"/> + <Constant name="Tol" value="0.0*mm"/> + <Constant name="AOHDx" value="0.5*3.000*cm"/> + <Constant name="AOHDy" value="0.5*0.200*cm"/> + <Constant name="AOHDz" value="0.5*2.300*cm"/> + <Constant name="AOHx" value="[ICCDx]-[AOHDx]-13*mm"/> + <Constant name="AOHy" value="[ICCDy]+[AOHDy]+[Tol]"/> + <Constant name="AOHz" value="12*mm"/> + </ConstantsSection> + <RotationSection label="tobrodpar.xml"> + <Rotation name="000D" thetaX="90*deg" phiX="0*deg" thetaY="90*deg" phiY="90*deg" thetaZ="0*deg" phiZ="0*deg"/> + <Rotation name="180D" thetaX="90*deg" phiX="180*deg" thetaY="90*deg" phiY="90*deg" thetaZ="180*deg" phiZ="0*deg"/> + <Rotation name="180X" thetaX="90*deg" phiX="0*deg" thetaY="90*deg" phiY="-90*deg" thetaZ="180*deg" phiZ="0*deg"/> + <Rotation name="90XD" thetaX="90*deg" phiX="90*deg" thetaY="0*deg" phiY="0*deg" thetaZ="90*deg" phiZ="0*deg"/> + <Rotation name="R180" thetaX="90*deg" phiX="180*deg" thetaY="90*deg" phiY="-90*deg" thetaZ="0*deg" phiZ="0*deg"/> + </RotationSection> + <SolidSection label="tobrodpar.xml"> + <Box name="TOBSideRod1" dx="[SideRodW]" dy="[SideRodT]" dz="([RodL]+[RodDL])/2"/> + <Box name="TOBSideRod2" dx="[SideRodW]" dy="[SideRodT]" dz="([RodL]-[RodDL])/2"/> + <Box name="TOBEndRod1" dx="[CentralRodW]" dy="[SideRodT]" dz="[SideRodW]"/> + <Box name="TOBEndRod2" dx="[CentralRodW]" dy="[EndRodT]" dz="[EndRodL]"/> + <Box name="TOBClamp" dx="[ClampDx]" dy="[ClampDy]" dz="[ClampDz]"/> + <Box name="TOBCable" dx="[CableDx]" dy="[CableDy]" dz="[CableDz]"/> + <Box name="TOBICC1" dx="[ICCDx]" dy="[ICCDy]" dz="[ICC1Dz]"/> + <Box name="TOBICC2" dx="[ICCDx]" dy="[ICCDy]" dz="[ICC2Dz]"/> + <Box name="TOBRodConn" dx="[ConnDx]" dy="[ConnDy]" dz="[ConnDz]"/> + <Box name="TOBCCUM" dx="[CCUMDx]" dy="[CCUMDy]" dz="[CCUMDz]"/> + <Box name="TOBRod" dx="[RodW]" dy="[RodT]" dz="[RodL]"/> + <Box name="TOBRodout" dx="[RodW]" dy="[RodT]" dz="([RodL]+[RodDL])/2"/> + <Box name="TOBRodin" dx="[RodW]+[Tol]" dy="([RodT]/2+[Tol])" dz="[RodDL]"/> + <Box name="TOBAOH" dx="[AOHDx]" dy="[AOHDy]" dz="[AOHDz]"/> + <SubtractionSolid name="TOBRodL"> + <rSolid name="TOBRodout"/> + <rSolid name="TOBRodin"/> + <rRotation name="tobrodpar:000D"/> + <Translation x="[zero]" y="[RodT]/2" z="([RodL]-[RodDL])/2"/> + </SubtractionSolid> + <SubtractionSolid name="TOBRodH"> + <rSolid name="TOBRodout"/> + <rSolid name="TOBRodin"/> + <rRotation name="tobrodpar:000D"/> + <Translation x="[zero]" y="-[RodT]/2" z="-([RodL]-[RodDL])/2"/> + </SubtractionSolid> + <Box name="TOBRod1Cent" dx="[CentralRodW]" dy="[RodT]" dz="([RodL]+[RodDL])/2"/> + <Box name="TOBRod2Cent" dx="([CentralRodW]+[Tol])" dy="([RodT]/2+[Tol])" dz="[RodDL]"/> + <SubtractionSolid name="TOBRodCentralL"> + <rSolid name="TOBRod1Cent"/> + <rSolid name="TOBRod2Cent"/> + <rRotation name="tobrodpar:000D"/> + <Translation x="[zero]" y="[RodT]/2" z="([RodL]-[RodDL])/2"/> + </SubtractionSolid> + <SubtractionSolid name="TOBRodCentralH"> + <rSolid name="TOBRod1Cent"/> + <rSolid name="TOBRod2Cent"/> + <rRotation name="tobrodpar:000D"/> + <Translation x="[zero]" y="-[RodT]/2" z="-([RodL]-[RodDL])/2"/> + </SubtractionSolid> + </SolidSection> + <LogicalPartSection label="tobrodpar.xml"> + <LogicalPart name="TOBSideRod1" category="unspecified"> + <rSolid name="TOBSideRod1"/> + <rMaterial name="tobmaterial:TOB_rod"/> + </LogicalPart> + <LogicalPart name="TOBSideRod2" category="unspecified"> + <rSolid name="TOBSideRod2"/> + <rMaterial name="tobmaterial:TOB_rod"/> + </LogicalPart> + <LogicalPart name="TOBEndRod1" category="unspecified"> + <rSolid name="TOBEndRod1"/> + <rMaterial name="tobmaterial:TOB_rod"/> + </LogicalPart> + <LogicalPart name="TOBEndRod2" category="unspecified"> + <rSolid name="TOBEndRod2"/> + <rMaterial name="tobmaterial:TOB_rod"/> + </LogicalPart> + <LogicalPart name="TOBClamp" category="unspecified"> + <rSolid name="TOBClamp"/> + <rMaterial name="tobmaterial:TOB_plate_A"/> + </LogicalPart> + <LogicalPart name="TOBCable" category="unspecified"> + <rSolid name="TOBCable"/> + <rMaterial name="tobmaterial:TOB_ICB"/> + </LogicalPart> + <LogicalPart name="TOBAOH" category="unspecified"> + <rSolid name="TOBAOH"/> + <rMaterial name="tobmaterial:TOB_AOH"/> + </LogicalPart> + </LogicalPartSection> +</DDDefinition> diff --git a/examples/DDCMS/data/tracker.xml b/examples/DDCMS/data/tracker.xml new file mode 100644 index 0000000000000000000000000000000000000000..e3af37e26dda093f05a3f382969c976502b2eb56 --- /dev/null +++ b/examples/DDCMS/data/tracker.xml @@ -0,0 +1,25 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="tobrodpar.xml" eval="true"> + <Constant name="BackPlaneDz" value="0.015*mm"/> + </ConstantsSection> + <SolidSection label="tracker.xml"> + <Polycone name="Tracker" startPhi="0*deg" deltaPhi="360*deg"> + <ZSection z="-[cms:TrackBeamZ2]" rMin="[cms:TrackBeamR2]" rMax="[cms:TrackCalorR]"/> + <ZSection z="-[cms:TrackBeamZ1]" rMin="[cms:TrackBeamR1]" rMax="[cms:TrackCalorR]"/> + <ZSection z="[cms:TrackBeamZ1]" rMin="[cms:TrackBeamR1]" rMax="[cms:TrackCalorR]"/> + <ZSection z="[cms:TrackBeamZ2]" rMin="[cms:TrackBeamR2]" rMax="[cms:TrackCalorR]"/> + </Polycone> + </SolidSection> + <LogicalPartSection label="tracker.xml"> + <LogicalPart name="Tracker" category="unspecified"> + <rSolid name="Tracker"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + </LogicalPartSection> + <RotationSection label="tracker.xml"> + <Rotation name="180D" thetaX="90*deg" phiX="180*deg" thetaY="90*deg" phiY="90*deg" thetaZ="180*deg" phiZ="0*deg"/> + <Rotation name="R180" thetaX="90*deg" phiX="180*deg" thetaY="90*deg" phiY="-90*deg" thetaZ="0*deg" phiZ="0*deg"/> + <Rotation name="PAA" thetaX="180*deg" phiX="0*deg" thetaY="90*deg" phiY="90*deg" thetaZ="90*deg" phiZ="0*deg"/> + </RotationSection> +</DDDefinition> diff --git a/examples/DDCMS/data/trackerParameters.xml b/examples/DDCMS/data/trackerParameters.xml new file mode 100644 index 0000000000000000000000000000000000000000..1622383889aacae772cbd11f242bfc62de0677b6 --- /dev/null +++ b/examples/DDCMS/data/trackerParameters.xml @@ -0,0 +1,45 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="trackerParameters.xml" eval="true"> + <Vector name="vPars" type="numeric" nEntries="6"> + 80, 52, 1, 2, 0, 0 + </Vector> + <Vector name="Subdetector1" type="numeric" nEntries="6"> + 16, 8, 2, 0xF, 0xFF, 0x3F + </Vector> + <Vector name="Subdetector2" type="numeric" nEntries="10"> + 23, 16, 10, 8, 2, 0x3, 0xF, 0x3F, 0x3, 0x3F + </Vector> + <Vector name="Subdetector3" type="numeric" nEntries="12"> + 14, 12, 10, 4, 2, 0, 0x7, 0x3, 0x3, 0x3F, 0x3, 0x3 + </Vector> + <Vector name="Subdetector4" type="numeric" nEntries="12"> + 13, 11, 9, 7, 2, 0, 0x3, 0x3, 0x3, 0x3, 0x1F, 0x3 + </Vector> + <Vector name="Subdetector5" type="numeric" nEntries="10"> + 14, 12, 5, 2, 0, 0x7, 0x3, 0x7F, 0x7, 0x3 + </Vector> + <Vector name="Subdetector6" type="numeric" nEntries="14"> + 18, 14, 12, 8, 5, 2, 0, 0x3, 0xF, 0x3, 0xF, 0x7, 0x7, 0x3 + </Vector> + <Vector name="detIdShifts" type="numeric" nEntries="36"> + -1, 23, -1, + 13, -1, 18, + + 16, 16, 14, + 11, 14, 14, + + 8, 8, 4, + 9, 5, 8, + + 2, 2, 2, + 2, 2, 5, + + 0, 0, 0, + 0, 0, 2, + + -1, -1, -1, + -1, -1, 0 + </Vector> + </ConstantsSection> +</DDDefinition> diff --git a/examples/DDCMS/data/trackerStructureTopology.xml b/examples/DDCMS/data/trackerStructureTopology.xml new file mode 100644 index 0000000000000000000000000000000000000000..96d7131a05de1eb2e8c470fb145b4bb5e36a5088 --- /dev/null +++ b/examples/DDCMS/data/trackerStructureTopology.xml @@ -0,0 +1,321 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <SpecParSection label="spec-pars2.xml"> + <SpecPar name="FullTrackerPar"> + <PartSelector path="//Tracker"/> + <Parameter name="TkDDDStructure" value="FullTracker"/> + </SpecPar> + <SpecPar name="PixelBarrelSubDetPar"> + <PartSelector path="//PixelBarrel"/> + <Parameter name="TkDDDStructure" value="PixelBarrel"/> + </SpecPar> + <SpecPar name="PixelBarrelLayerPar"> + <PartSelector path="//PixelBarrelLayer0"/> + <PartSelector path="//PixelBarrelLayer1"/> + <PartSelector path="//PixelBarrelLayer2"/> + <Parameter name="TkDDDStructure" value="PixelBarrelLayer"/> + </SpecPar> + <SpecPar name="PixelBarrelLadderPar"> + <PartSelector path="//PixelBarrelLadderHalf"/> + <PartSelector path="//PixelBarrelLadderFull"/> + <Parameter name="TkDDDStructure" value="PixelBarrelLadder"/> + </SpecPar> + <SpecPar name="PixelBarrelModulePar"> + <PartSelector path="//PixelBarrelActiveFull"/> + <PartSelector path="//PixelBarrelActiveHalf"/> + <Parameter name="TkDDDStructure" value="PixelBarrelDet"/> + </SpecPar> + <SpecPar name="PixelEndcapSubDetPar"> + <PartSelector path="//PixelForwardZPlus"/> + <PartSelector path="//PixelForwardZMinus"/> + <Parameter name="TkDDDStructure" value="PixelEndcapSubDet"/> + </SpecPar> + <SpecPar name="PixelEndcapDiskPar"> + <PartSelector path="//PixelForwardDiskZMinus"/> + <PartSelector path="//PixelForwardDiskZPlus"/> + <Parameter name="TkDDDStructure" value="PixelEndcapDisk"/> + </SpecPar> + <SpecPar name="PixelEndcapPanelPar"> + <PartSelector path="//PixelForwardPanel3Left"/> + <PartSelector path="//PixelForwardPanel3Right"/> + <PartSelector path="//PixelForwardPanel4Right"/> + <PartSelector path="//PixelForwardPanel4Left"/> + <Parameter name="TkDDDStructure" value="PixelEndcapPanel"/> + </SpecPar> + <SpecPar name="PixelEndcapDetPar"> + <PartSelector path="//PixelForwardActive1x2"/> + <PartSelector path="//PixelForwardActive1x5"/> + <PartSelector path="//PixelForwardActive2x3"/> + <PartSelector path="//PixelForwardActive2x4"/> + <PartSelector path="//PixelForwardActive2x5"/> + <Parameter name="TkDDDStructure" value="PixelEndcapDet"/> + </SpecPar> + <SpecPar name="TIBSubDetPar"> + <PartSelector path="//TIB"/> + <Parameter name="TkDDDStructure" value="TIB"/> + </SpecPar> + <SpecPar name="TIBSubDetLayerPar"> + <PartSelector path="//TIBLayer0"/> + <PartSelector path="//TIBLayer1"/> + <PartSelector path="//TIBLayer2"/> + <PartSelector path="//TIBLayer3"/> + <Parameter name="TkDDDStructure" value="TIBLayer"/> + </SpecPar> + <!--definire plus e minus--> + <SpecPar name="TIBSubDetStringPar"> + <PartSelector path="//TIBString0LoMin1"/> + <PartSelector path="//TIBString0LoPls1"/> + <PartSelector path="//TIBString0UpMin1"/> + <PartSelector path="//TIBString0UpPls1"/> + <PartSelector path="//TIBString1LoMin1"/> + <PartSelector path="//TIBString1LoPls1"/> + <PartSelector path="//TIBString1UpMin1"/> + <PartSelector path="//TIBString1UpPls1"/> + <PartSelector path="//TIBString2LoMin1"/> + <PartSelector path="//TIBString2LoPls1"/> + <PartSelector path="//TIBString2UpMin1"/> + <PartSelector path="//TIBString2UpPls1"/> + <PartSelector path="//TIBString3LoMin1"/> + <PartSelector path="//TIBString3LoPls1"/> + <PartSelector path="//TIBString3UpMin1"/> + <PartSelector path="//TIBString3UpPls1"/> + <Parameter name="TkDDDStructure" value="TIBString"/> + </SpecPar> + <SpecPar name="TIBSubDetGluedDetPar"> + <PartSelector path="//TIBModule0A"/> + <PartSelector path="//TIBModule0B"/> + <Parameter name="TkDDDStructure" value="TIBGluedDet"/> + </SpecPar> + <SpecPar name="TIBSubDetDetPar"> + <PartSelector path="//TIBActiveRphi0"/> + <PartSelector path="//TIBActiveSter0"/> + <PartSelector path="//TIBActiveRphi2"/> + <Parameter name="TkDDDStructure" value="TIBDet"/> + </SpecPar> + <SpecPar name="TIDSubDetPar"> + <PartSelector path="//TIDB"/> + <PartSelector path="//TIDF"/> + <Parameter name="TkDDDStructure" value="TID"/> + </SpecPar> + <SpecPar name="TIDSubDetWheelPar"> + <PartSelector path="//TIDWheelB"/> + <PartSelector path="//TIDWheelF"/> + <Parameter name="TkDDDStructure" value="TIDWheel"/> + </SpecPar> + <SpecPar name="TIDSubDetRingPar"> + <PartSelector path="//TIDRing0F"/> + <PartSelector path="//TIDRing1F"/> + <PartSelector path="//TIDRing0B"/> + <PartSelector path="//TIDRing1B"/> + <PartSelector path="//TIDRing2"/> + <Parameter name="TkDDDStructure" value="TIDRing"/> + </SpecPar> + <SpecPar name="TIDSubDetGluedDetPar"> + <PartSelector path="//TIDModule0L"/> + <PartSelector path="//TIDModule0R"/> + <PartSelector path="//TIDModule1L"/> + <PartSelector path="//TIDModule1R"/> + <Parameter name="TkDDDStructure" value="TIDGluedDet"/> + </SpecPar> + <SpecPar name="TIDSubDetDetPar"> + <PartSelector path="//TIDModule0RphiActive"/> + <PartSelector path="//TIDModule0StereoActive"/> + <PartSelector path="//TIDModule1RphiActive"/> + <PartSelector path="//TIDModule1StereoActive"/> + <PartSelector path="//TIDModule2RphiActive"/> + <Parameter name="TkDDDStructure" value="TIDDet"/> + </SpecPar> + <SpecPar name="TOBSubDetPar"> + <PartSelector path="//TOB"/> + <Parameter name="TkDDDStructure" value="TOB"/> + </SpecPar> + <SpecPar name="TOBSubDetLayerPar"> + <PartSelector path="//TOBLayer0"/> + <PartSelector path="//TOBLayer1"/> + <PartSelector path="//TOBLayer2"/> + <PartSelector path="//TOBLayer3"/> + <PartSelector path="//TOBLayer4"/> + <PartSelector path="//TOBLayer5"/> + <Parameter name="TkDDDStructure" value="TOBLayer"/> + </SpecPar> + <SpecPar name="TOBSubDetRodPar"> + <PartSelector path="//TOBRod0L"/> + <PartSelector path="//TOBRod0H"/> + <PartSelector path="//TOBRod1L"/> + <PartSelector path="//TOBRod1H"/> + <PartSelector path="//TOBRod2L"/> + <PartSelector path="//TOBRod2H"/> + <PartSelector path="//TOBRod3L"/> + <PartSelector path="//TOBRod3H"/> + <PartSelector path="//TOBRod4L"/> + <PartSelector path="//TOBRod4H"/> + <PartSelector path="//TOBRod5L"/> + <PartSelector path="//TOBRod5H"/> + <Parameter name="TkDDDStructure" value="TOBRod"/> + </SpecPar> + <SpecPar name="TOBSubDetGluedDetPar"> + <PartSelector path="//TOBModule0"/> + <Parameter name="TkDDDStructure" value="TOBGluedDet"/> + </SpecPar> + <SpecPar name="TOBSubDetDetPar"> + <PartSelector path="//TOBActiveRphi0"/> + <PartSelector path="//TOBActiveSter0"/> + <PartSelector path="//TOBActiveRphi2"/> + <PartSelector path="//TOBActiveRphi4"/> + <Parameter name="TkDDDStructure" value="TOBDet"/> + </SpecPar> + <SpecPar name="TECSubDetPar"> + <PartSelector path="//TEC"/> + <Parameter name="TkDDDStructure" value="TEC"/> + </SpecPar> + <SpecPar name="TECSubDetWheelPar"> + <PartSelector path="//TECWheelA"/> + <PartSelector path="//TECWheelB"/> + <PartSelector path="//TECWheel6"/> + <!-- special disk that contains the beamsplitters (for alignment)--> + <PartSelector path="//TECWheelC"/> + <PartSelector path="//TECWheelD"/> + <Parameter name="TkDDDStructure" value="TECWheel"/> + </SpecPar> + <SpecPar name="TECSubDetPetalPar"> + <PartSelector path="//TECPetalCont0F"/> + <PartSelector path="//TECPetalCont0B"/> + <PartSelector path="//TECPetalCont3F"/> + <PartSelector path="//TECPetalCont3B"/> + <PartSelector path="//TECPetalCont6F"/> + <PartSelector path="//TECPetalCont6B"/> + <PartSelector path="//TECPetalCont8F"/> + <PartSelector path="//TECPetalCont8B"/> + <Parameter name="TkDDDStructure" value="TECPetal"/> + </SpecPar> + <SpecPar name="TECSubDetRingPar"> + <PartSelector path="//TECRing0F"/> + <PartSelector path="//TECRing0B"/> + <PartSelector path="//TECRing1F"/> + <PartSelector path="//TECRing1B"/> + <PartSelector path="//TECRing2F"/> + <PartSelector path="//TECRing2B"/> + <PartSelector path="//TECRing3F"/> + <PartSelector path="//TECRing3B"/> + <PartSelector path="//TECRing4F"/> + <PartSelector path="//TECRing4B"/> + <PartSelector path="//TECRing5F"/> + <PartSelector path="//TECRing5B"/> + <PartSelector path="//TECRing6F"/> + <PartSelector path="//TECRing6B"/> + <Parameter name="TkDDDStructure" value="TECRing"/> + </SpecPar> + <SpecPar name="TECSubDetGluedDetPar"> + <PartSelector path="//TECModule0"/> + <PartSelector path="//TECModule1"/> + <PartSelector path="//TECModule4"/> + <Parameter name="TkDDDStructure" value="TECGluedDet"/> + </SpecPar> + <SpecPar name="TECSubDetDetPar"> + <PartSelector path="//TECModule0RphiActive"/> + <PartSelector path="//TECModule0StereoActive"/> + <PartSelector path="//TECModule1RphiActive"/> + <PartSelector path="//TECModule1StereoActive"/> + <PartSelector path="//TECModule2RphiActive"/> + <PartSelector path="//TECModule3RphiActive"/> + <PartSelector path="//TECModule4RphiActive"/> + <PartSelector path="//TECModule4StereoActive"/> + <PartSelector path="//TECModule5RphiActive"/> + <PartSelector path="//TECModule6RphiActive"/> + <Parameter name="TkDDDStructure" value="TECDet"/> + </SpecPar> + <SpecPar name="TrackerStereoDetectorsPar"> + <PartSelector path="//TIBActiveSter0"/> + <PartSelector path="//TIDModule0StereoActive"/> + <PartSelector path="//TIDModule1StereoActive"/> + <PartSelector path="//TOBActiveSter0"/> + <PartSelector path="//TECModule0StereoActive"/> + <PartSelector path="//TECModule1StereoActive"/> + <PartSelector path="//TECModule4StereoActive"/> + <Parameter name="TrackerStereoDetectors" value="true"/> + </SpecPar> + <SpecPar name="TrackerAPVNumber6Par"> + <PartSelector path="//TIBActiveRphi0"/> + <PartSelector path="//TIBActiveSter0"/> + <PartSelector path="//TIDModule0RphiActive"/> + <PartSelector path="//TIDModule0StereoActive"/> + <PartSelector path="//TIDModule1RphiActive"/> + <PartSelector path="//TIDModule1StereoActive"/> + <PartSelector path="//TOBActiveRphi4"/> + <PartSelector path="//TECModule0RphiActive"/> + <PartSelector path="//TECModule0StereoActive"/> + <PartSelector path="//TECModule1RphiActive"/> + <PartSelector path="//TECModule1StereoActive"/> + <PartSelector path="//TECModule4RphiActive"/> + <PartSelector path="//TECModule4StereoActive"/> + <Parameter name="SiliconAPVNumber" value="6"/> + </SpecPar> + <SpecPar name="TrackerAPVNumber4Par"> + <PartSelector path="//TIBActiveRphi2"/> + <PartSelector path="//TIDModule2RphiActive"/> + <PartSelector path="//TOBActiveRphi0"/> + <PartSelector path="//TOBActiveSter0"/> + <PartSelector path="//TOBActiveRphi2"/> + <PartSelector path="//TECModule2RphiActive"/> + <PartSelector path="//TECModule3RphiActive"/> + <PartSelector path="//TECModule5RphiActive"/> + <PartSelector path="//TECModule6RphiActive"/> + <Parameter name="SiliconAPVNumber" value="4"/> + </SpecPar> + <SpecPar name="PixelROCRowsPar"> + <PartSelector path="//PixelBarrelActiveFull"/> + <PartSelector path="//PixelBarrelActiveHalf"/> + <PartSelector path="//PixelForwardActive1x2"/> + <PartSelector path="//PixelForwardActive1x5"/> + <PartSelector path="//PixelForwardActive2x3"/> + <PartSelector path="//PixelForwardActive2x4"/> + <PartSelector path="//PixelForwardActive2x5"/> + <Parameter name="PixelROCRows" value="80"/> + </SpecPar> + <SpecPar name="PixelROCColsPar"> + <PartSelector path="//PixelBarrelActiveFull"/> + <PartSelector path="//PixelBarrelActiveHalf"/> + <PartSelector path="//PixelForwardActive1x2"/> + <PartSelector path="//PixelForwardActive1x5"/> + <PartSelector path="//PixelForwardActive2x3"/> + <PartSelector path="//PixelForwardActive2x4"/> + <PartSelector path="//PixelForwardActive2x5"/> + <Parameter name="PixelROCCols" value="52"/> + </SpecPar> + <SpecPar name="PixelROC_XPar"> + <PartSelector path="//PixelBarrelActiveFull"/> + <PartSelector path="//PixelForwardActive2x3"/> + <PartSelector path="//PixelForwardActive2x4"/> + <PartSelector path="//PixelForwardActive2x5"/> + <Parameter name="PixelROC_X" value="2"/> + </SpecPar> + <SpecPar name="PixelROC_X_HalfPar"> + <PartSelector path="//PixelBarrelActiveHalf"/> + <PartSelector path="//PixelForwardActive1x2"/> + <PartSelector path="//PixelForwardActive1x5"/> + <Parameter name="PixelROC_X" value="1"/> + </SpecPar> + <SpecPar name="PixelROC_YPar"> + <PartSelector path="//PixelBarrelActiveFull"/> + <PartSelector path="//PixelBarrelActiveHalf"/> + <Parameter name="PixelROC_Y" value="8"/> + </SpecPar> + <SpecPar name="PixelROC_Y2Par"> + <PartSelector path="//PixelForwardActive1x2"/> + <Parameter name="PixelROC_Y" value="2"/> + </SpecPar> + <SpecPar name="PixelROC_Y3Par"> + <PartSelector path="//PixelForwardActive2x3"/> + <Parameter name="PixelROC_Y" value="3"/> + </SpecPar> + <SpecPar name="PixelROC_Y4Par"> + <PartSelector path="//PixelForwardActive2x4"/> + <Parameter name="PixelROC_Y" value="4"/> + </SpecPar> + <SpecPar name="PixelROC_Y5Par"> + <PartSelector path="//PixelForwardActive1x5"/> + <PartSelector path="//PixelForwardActive2x5"/> + <Parameter name="PixelROC_Y" value="5"/> + </SpecPar> + </SpecParSection> +</DDDefinition> diff --git a/examples/DDCMS/data/trackerbulkhead.xml b/examples/DDCMS/data/trackerbulkhead.xml new file mode 100644 index 0000000000000000000000000000000000000000..81532897010c5e32e140796469c16e03814d962f --- /dev/null +++ b/examples/DDCMS/data/trackerbulkhead.xml @@ -0,0 +1,293 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="trackerbulkhead.xml" eval="true"> + <Constant name="zero" value="0.0*fm"/> + <Constant name="Rin" value="190*mm"/> + <Constant name="Rout" value="1.233*m"/> + <Constant name="Thick" value="[BulkheadThick]+[BHDiskThick]+[BHCoversThick]"/> + <Constant name="BulkheadZ" value="[tob:Zv3]+0.5*[Thick]"/> + <!--should be 4mm behind TEC is at the end of tob to prevent overlaps--> + <Constant name="BulkheadThick" value="89*mm"/> + <Constant name="BulkheadRout" value="1053*mm"/> + <Constant name="BulkheadRin" value="[tecpetal3:PetalContRmin]"/> + <Constant name="PatchpanelR4" value="1105*mm"/> + <!-- inside of the outer cable region. NOTE: there is a (historical?) gap between R3 and R4 --> + <Constant name="PatchpanelR3" value="[BulkheadRout]"/> + <!-- outside of bulkhead region--> + <Constant name="PatchpanelR2" value="645*mm"/> + <!-- outside of the inner pixel region--> + <Constant name="PatchpanelR1" value="[AlignRingRout]"/> + <!-- inside of the inner pixel region--> + <Constant name="PatchpanelThick" value="[BulkheadThick]"/> + <Constant name="TECPatchpanelWidth" value="35*deg"/> + <!-- <Constant name="PIXPatchpanelWidth1" value="20*deg"/> --> + <Constant name="PIXPatchpanelWidth1" value="10*deg"/> + <Constant name="PIXPatchpanelWidth2" value="160*deg"/> + <Constant name="PIXPatchpanelPhi" value="-100*deg"/> + <Constant name="TECPatchpanelPhi" value="10*deg"/> + <Constant name="PpBoxWidth" value="175*mm"/> + <!-- <Constant name="PpBoxLengthL" value="298.19*mm"/> --> + <Constant name="PpConnectorsLength" value="50.*mm"/> + <Constant name="PpConnectorsThick" value="15.*mm"/> + <!-- <Constant name="PpBoxLengthL" value="154.96*mm"/> --> + <!-- <Constant name="PpBoxLengthL" value="129.96*mm"/> --> + <Constant name="PpBoxLengthL" value="104.96*mm"/> + <!-- <Constant name="PpBoxLengthS" value="143.23*mm"/> --> + <!-- <Constant name="PpBoxLengthS" value="118.23*mm"/> --> + <Constant name="PpBoxLengthS" value="93.23*mm"/> + <Constant name="PpBoxThick" value="0.5*43.43*mm"/> + <Constant name="PpBoxSideX" value="20.2*mm"/> + <Constant name="PpBoxSideY" value="12.5*mm"/> + <Constant name="PpBoxDistX" value="35*mm"/> + <Constant name="PpBoxDistY" value="14*mm"/> + <Constant name="CtrlBoxWidth" value="75*mm"/> + <Constant name="CtrlBoxLength" value="195*mm"/> + <Constant name="CtrlBoxThick" value="25*mm"/> + <Constant name="CtrlBoxDistX" value="73.35*mm"/> + <Constant name="CtrlBoxDistY" value="12.85*mm"/> + <Constant name="AlignRingRin" value="235*mm"/> + <Constant name="AlignRingRout" value="365*mm"/> + <Constant name="AlignRingThick" value="48.5*mm"/> + <Constant name="PixelCablesRin" value="[Rin]"/> + <!-- cables going to pixel patchpanel --> + <Constant name="PixelCablesRout" value="[AlignRingRout]"/> + <Constant name="PixelCablesThick" value="12.2*mm"/> + <Constant name="BHDiskRin" value="[BulkheadRin]"/> + <Constant name="BHDiskRout" value="[BulkheadRout]"/> + <Constant name="BHDiskThick" value="5*mm"/> + <Constant name="BHCoversRin" value="[BulkheadRin]"/> + <Constant name="BHCoversRout" value="[BulkheadRout]"/> + <Constant name="BHCoversThick" value="1.1*mm"/> + </ConstantsSection> + <SolidSection label="trackerbulkhead.xml"> + <Tubs name="TrackerBulkhead" rMin="[Rin]" rMax="[Rout]" dz="0.5*[Thick]" startPhi="0*deg" deltaPhi="360*deg"/> + <Tubs name="BHDisk" rMin="[BHDiskRin]" rMax="[BHDiskRout]" dz="0.5*[BHDiskThick]" startPhi="0*deg" deltaPhi="360*deg"/> + <Tubs name="BHCovers" rMin="[BHCoversRin]" rMax="[BHCoversRout]" dz="0.5*[BHCoversThick]" startPhi="0*deg" deltaPhi="360*deg"/> + <Tubs name="OuterCables" rMin="[PatchpanelR4]" rMax="[Rout]" dz="0.5*[Thick]" startPhi="0*deg" deltaPhi="360*deg"/> + <Tubs name="TECPatchpanel" rMin="[PatchpanelR2]" rMax="[PatchpanelR3]" dz="0.5*[PatchpanelThick]" startPhi="-[TECPatchpanelWidth]" deltaPhi="[TECPatchpanelWidth]"/> + <Tubs name="PIXPatchpanel1" rMin="[PatchpanelR1]" rMax="[PatchpanelR3]" dz="0.5*[PatchpanelThick]" startPhi="-2*[PIXPatchpanelWidth1]" deltaPhi="[PIXPatchpanelWidth1]"/> + <Tubs name="PIXPatchpanel1b" rMin="[PatchpanelR1]" rMax="[PatchpanelR3]" dz="0.5*[PatchpanelThick]" startPhi="-2*[PIXPatchpanelWidth1]" deltaPhi="[PIXPatchpanelWidth1]"/> + <Tubs name="PIXPatchpanel2" rMin="[PatchpanelR1]" rMax="[PatchpanelR2]" dz="0.5*[PatchpanelThick]" startPhi="-[PIXPatchpanelWidth2]" deltaPhi="[PIXPatchpanelWidth2]"/> + <Tubs name="TECAlignRing" rMin="[AlignRingRin]" rMax="[AlignRingRout]" dz="0.5*[AlignRingThick]" startPhi="0*deg" deltaPhi="360*deg"/> + <Tubs name="PixelCables" rMin="[PixelCablesRin]" rMax="[PixelCablesRout]" dz="0.5*[PixelCablesThick]" startPhi="0*deg" deltaPhi="360*deg"/> + <Box name="TECPpConnectors" dx="0.5*[PpConnectorsLength]" dy="0.5*[PpBoxWidth]" dz="0.5*[PpConnectorsThick]"/> + <Box name="TECPpBoxC" dx="0.5*[PpConnectorsLength]" dy="0.5*[PpBoxWidth]" dz="0.5*[PpBoxThick]"/> + <Box name="TECPpBoxL" dx="0.5*[PpBoxLengthL]" dy="0.5*[PpBoxWidth]" dz="0.5*[PpBoxThick]"/> + <Box name="TECPpBoxS" dx="0.5*[PpBoxLengthS]" dy="0.5*[PpBoxWidth]" dz="[PpBoxThick]"/> + <Box name="TECCtrlBox" dx="0.5*[CtrlBoxLength]" dy="0.5*[CtrlBoxWidth]" dz="0.5*[CtrlBoxThick]"/> + </SolidSection> + <LogicalPartSection label="trackerbulkhead.xml"> + <LogicalPart name="TrackerBulkhead" category="unspecified"> + <rSolid name="trackerbulkhead:TrackerBulkhead"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="BHDisk" category="unspecified"> + <rSolid name="BHDisk"/> + <rMaterial name="tecmaterial:TEC_BHDisk"/> + </LogicalPart> + <LogicalPart name="BHCovers" category="unspecified"> + <rSolid name="BHCovers"/> + <rMaterial name="tecmaterial:TEC_BHCovers"/> + </LogicalPart> + <LogicalPart name="OuterCables" category="unspecified"> + <rSolid name="trackerbulkhead:OuterCables"/> + <rMaterial name="trackermaterial:Tk_panels_up"/> + </LogicalPart> + <LogicalPart name="TECPatchpanel" category="unspecified"> + <rSolid name="trackerbulkhead:TECPatchpanel"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="PIXPatchpanel1" category="unspecified"> + <rSolid name="trackerbulkhead:PIXPatchpanel1"/> + <rMaterial name="trackermaterial:Tk_panels_mid1"/> + </LogicalPart> + <LogicalPart name="PIXPatchpanel1b" category="unspecified"> + <rSolid name="trackerbulkhead:PIXPatchpanel1b"/> + <rMaterial name="trackermaterial:Tk_panels_mid1b"/> + </LogicalPart> + <LogicalPart name="PIXPatchpanel2" category="unspecified"> + <rSolid name="trackerbulkhead:PIXPatchpanel2"/> + <rMaterial name="trackermaterial:Tk_panels_mid2"/> + </LogicalPart> + <LogicalPart name="TECAlignRing" category="unspecified"> + <rSolid name="trackerbulkhead:TECAlignRing"/> + <rMaterial name="tecmaterial:TEC_AlignRing"/> + </LogicalPart> + <LogicalPart name="PixelCables" category="unspecified"> + <rSolid name="trackerbulkhead:PixelCables"/> + <rMaterial name="pixbarmaterial:PixelBarrelSupTubCables"/> + </LogicalPart> + <LogicalPart name="TECPpConnectors" category="unspecified"> + <rSolid name="trackerbulkhead:TECPpConnectors"/> + <rMaterial name="tecmaterial:TEC_Connectors"/> + </LogicalPart> + <LogicalPart name="TECPpBoxC" category="unspecified"> + <rSolid name="trackerbulkhead:TECPpBoxC"/> + <rMaterial name="tecmaterial:TEC_PatchpanelBox"/> + </LogicalPart> + <LogicalPart name="TECPpBoxL" category="unspecified"> + <rSolid name="trackerbulkhead:TECPpBoxL"/> + <rMaterial name="tecmaterial:TEC_PatchpanelBox"/> + </LogicalPart> + <LogicalPart name="TECPpBoxS" category="unspecified"> + <rSolid name="trackerbulkhead:TECPpBoxS"/> + <rMaterial name="tecmaterial:TEC_PatchpanelBox"/> + </LogicalPart> + <LogicalPart name="TECCtrlBox" category="unspecified"> + <rSolid name="trackerbulkhead:TECCtrlBox"/> + <rMaterial name="tecmaterial:TEC_PatchCtrlBox"/> + </LogicalPart> + </LogicalPartSection> + <PosPartSection label="trackerbulkhead.xml"> + <PosPart copyNumber="1"> + <rParent name="tracker:Tracker"/> + <rChild name="trackerbulkhead:TrackerBulkhead"/> + <Translation x="[zero]" y="[zero]" z="[BulkheadZ]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tracker:Tracker"/> + <rChild name="trackerbulkhead:TrackerBulkhead"/> + <Translation x="[zero]" y="[zero]" z="-[BulkheadZ]"/> + <rRotation name="tracker:180D"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="trackerbulkhead:TrackerBulkhead"/> + <rChild name="trackerbulkhead:BHDisk"/> + <Translation x="[zero]" y="[zero]" z="-0.5*[Thick]+0.5*[BHDiskThick]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="trackerbulkhead:TrackerBulkhead"/> + <rChild name="trackerbulkhead:BHCovers"/> + <Translation x="[zero]" y="[zero]" z="0.5*[Thick]-0.5*[BHCoversThick]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="trackerbulkhead:TrackerBulkhead"/> + <rChild name="trackerbulkhead:OuterCables"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="trackerbulkhead:TrackerBulkhead"/> + <rChild name="trackerbulkhead:TECAlignRing"/> + <Translation x="[zero]" y="[zero]" z="-0.5*[Thick]+0.5*[AlignRingThick]+[BHDiskThick]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="trackerbulkhead:TrackerBulkhead"/> + <rChild name="trackerbulkhead:PixelCables"/> + <Translation x="[zero]" y="[zero]" z="-0.5*[Thick]+0.5*[PixelCablesThick]+[AlignRingThick]+[BHDiskThick]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="trackerbulkhead:TECPatchpanel"/> + <rChild name="trackerbulkhead:TECPpConnectors"/> + <Translation x="[PatchpanelR2]+0.5*[PpConnectorsLength]+[PpBoxSideX]" y="-0.5*[PpBoxWidth]-[PpBoxSideY]" z="-0.5*[PatchpanelThick]+0.5*[PpBoxThick]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="trackerbulkhead:TECPatchpanel"/> + <rChild name="trackerbulkhead:TECPpConnectors"/> + <Translation x="[PatchpanelR2]+[PpConnectorsLength]+[PpBoxLengthL]+0.5*[PpConnectorsLength]+[PpBoxSideX]" y="-0.5*[PpBoxWidth]-[PpBoxSideY]" z="-0.5*[PatchpanelThick]+0.5*[PpBoxThick]"/> + </PosPart> + <PosPart copyNumber="3"> + <rParent name="trackerbulkhead:TECPatchpanel"/> + <rChild name="trackerbulkhead:TECPpConnectors"/> + <Translation x="[PatchpanelR2]+0.5*[PpConnectorsLength]+[PpBoxSideX]-[PpBoxDistX]" y="-1.5*[PpBoxWidth]-[PpBoxSideY]-[PpBoxDistY]" z="-0.5*[PatchpanelThick]+0.5*[PpBoxThick]"/> + </PosPart> + <PosPart copyNumber="4"> + <rParent name="trackerbulkhead:TECPatchpanel"/> + <rChild name="trackerbulkhead:TECPpConnectors"/> + <Translation x="[PatchpanelR2]+[PpConnectorsLength]+[PpBoxLengthL]+0.5*[PpConnectorsLength]+[PpBoxSideX]-[PpBoxDistX]" y="-1.5*[PpBoxWidth]-[PpBoxSideY]-[PpBoxDistY]" z="-0.5*[PatchpanelThick]+0.5*[PpBoxThick]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="trackerbulkhead:TECPatchpanel"/> + <rChild name="trackerbulkhead:TECPpBoxC"/> + <Translation x="[PatchpanelR2]+[PpConnectorsLength]+[PpBoxLengthL]+0.5*[PpConnectorsLength]+[PpBoxSideX]" y="-0.5*[PpBoxWidth]-[PpBoxSideY]" z="-0.5*[PatchpanelThick]+[PpConnectorsThick]+0.5*[PpBoxThick]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="trackerbulkhead:TECPatchpanel"/> + <rChild name="trackerbulkhead:TECPpBoxC"/> + <Translation x="[PatchpanelR2]+[PpConnectorsLength]+[PpBoxLengthL]+0.5*[PpConnectorsLength]+[PpBoxSideX]-[PpBoxDistX]" y="-1.5*[PpBoxWidth]-[PpBoxSideY]-[PpBoxDistY]" z="-0.5*[PatchpanelThick]+[PpConnectorsThick]+0.5*[PpBoxThick]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="trackerbulkhead:TECPatchpanel"/> + <rChild name="trackerbulkhead:TECPpBoxL"/> + <Translation x="[PatchpanelR2]+[PpConnectorsLength]+0.5*[PpBoxLengthL]+[PpBoxSideX]" y="-0.5*[PpBoxWidth]-[PpBoxSideY]" z="-0.5*[PatchpanelThick]+0.5*[PpBoxThick]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="trackerbulkhead:TECPatchpanel"/> + <rChild name="trackerbulkhead:TECPpBoxL"/> + <Translation x="[PatchpanelR2]+[PpConnectorsLength]+0.5*[PpBoxLengthL]+[PpBoxSideX]-[PpBoxDistX]" y="-1.5*[PpBoxWidth]-[PpBoxSideY]-[PpBoxDistY]" z="-0.5*[PatchpanelThick]+0.5*[PpBoxThick]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="trackerbulkhead:TECPatchpanel"/> + <rChild name="trackerbulkhead:TECPpBoxS"/> + <Translation x="[PatchpanelR2]+[PpConnectorsLength]+[PpBoxLengthL]+[PpConnectorsLength]+0.5*[PpBoxLengthS]+[PpBoxSideX]" y="-0.5*[PpBoxWidth]-[PpBoxSideY]" z="-0.5*[PatchpanelThick]+[PpBoxThick]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="trackerbulkhead:TECPatchpanel"/> + <rChild name="trackerbulkhead:TECPpBoxS"/> + <Translation x="[PatchpanelR2]+[PpConnectorsLength]+[PpBoxLengthL]+[PpConnectorsLength]+0.5*[PpBoxLengthS]+[PpBoxSideX]-[PpBoxDistX]" y="-1.5*[PpBoxWidth]-[PpBoxSideY]-[PpBoxDistY]" z="-0.5*[PatchpanelThick]+[PpBoxThick]"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="trackerbulkhead:TECPatchpanel"/> + <rChild name="trackerbulkhead:TECCtrlBox"/> + <Translation x="[PatchpanelR2]+0.5*[CtrlBoxLength]+[PpBoxSideX]+[CtrlBoxDistX]" y="-[PpBoxSideY]-2*[PpBoxWidth]-[PpBoxDistY]-[CtrlBoxDistY]-0.5*[CtrlBoxWidth]" z="-0.5*[PatchpanelThick]+0.5*[CtrlBoxThick]"/> + </PosPart> + </PosPartSection> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="trackerbulkhead:TrackerBulkhead"/> + <String name="ChildName" value="trackerbulkhead:TECPatchpanel"/> + <Numeric name="N" value="4"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="-[TECPatchpanelPhi]"/> + <Numeric name="Radius" value="[zero]"/> + <Vector name="Center" type="numeric" nEntries="3"> + 0, 0, 0.5*([BHDiskThick] - [BHCoversThick]) </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="trackerbulkhead:TrackerBulkhead"/> + <String name="ChildName" value="trackerbulkhead:TECPatchpanel"/> + <Numeric name="N" value="4"/> + <Numeric name="StartCopyNo" value="5"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="-[TECPatchpanelPhi]-[TECPatchpanelWidth]"/> + <Numeric name="Radius" value="[zero]"/> + <Vector name="Center" type="numeric" nEntries="3"> + 0, 0, 0.5*([BHDiskThick] - [BHCoversThick]) </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="trackerbulkhead:TrackerBulkhead"/> + <String name="ChildName" value="trackerbulkhead:PIXPatchpanel1"/> + <Numeric name="N" value="2"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="-[PIXPatchpanelPhi]"/> + <Numeric name="Radius" value="[zero]"/> + <Vector name="Center" type="numeric" nEntries="3"> + 0, 0,0.5*([BHDiskThick] - [BHCoversThick]) </Vector> +</Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="trackerbulkhead:TrackerBulkhead"/> + <String name="ChildName" value="trackerbulkhead:PIXPatchpanel1b"/> + <Numeric name="N" value="2"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="-[PIXPatchpanelPhi]+10*deg"/> + <Numeric name="Radius" value="[zero]"/> + <Vector name="Center" type="numeric" nEntries="3"> + 0, 0,0.5*([BHDiskThick] - [BHCoversThick]) </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerAngular"> + <rParent name="trackerbulkhead:TrackerBulkhead"/> + <String name="ChildName" value="trackerbulkhead:PIXPatchpanel2"/> + <Numeric name="N" value="2"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <Numeric name="RangeAngle" value="360*deg"/> + <Numeric name="StartAngle" value="-[TECPatchpanelPhi]-2*[TECPatchpanelWidth]-2*[PIXPatchpanelWidth1]"/> + <Numeric name="Radius" value="[zero]"/> + <Vector name="Center" type="numeric" nEntries="3"> + 0, 0, 0.5*([BHDiskThick] - [BHCoversThick]) </Vector> + </Algorithm> +</DDDefinition> diff --git a/examples/DDCMS/data/trackerother.xml b/examples/DDCMS/data/trackerother.xml new file mode 100644 index 0000000000000000000000000000000000000000..485afad32fea01d025cc17bd0f9ccd739bc4844c --- /dev/null +++ b/examples/DDCMS/data/trackerother.xml @@ -0,0 +1,388 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="trackerother.xml" eval="true"> + <Constant name="zero" value="0.0*fm"/> + <Constant name="OuterCylinderRin" value="1.169*m"/> + <Constant name="OuterCylinderRout" value="1.223*m"/> + <Constant name="OuterCylinderL" value="2.650*m"/> + <Constant name="ThermalScreenRin" value="1.181*m"/> + <Constant name="ThermalScreenRout" value="1.193*m"/> + <Constant name="ThermalScreenL" value="2.450*m"/> + <Constant name="ThermalScreenR1" value="[ThermalScreenRin]+3*mm"/> + <Constant name="ThermalScreenR2" value="[ThermalScreenR1]+8*mm"/> + <Constant name="SupportTubeRin" value="[ThermalScreenRout]"/> + <Constant name="SupportTubeRout" value="1.223*m"/> + <Constant name="SupportTubeR1" value="[SupportTubeRin]+2*mm"/> + <Constant name="SupportTubeR2" value="[SupportTubeR1]+25.950*mm"/> + <Constant name="SupportTubeR3" value="[SupportTubeR2]+2*mm"/> + <Constant name="SupportTubeL" value="2.650*m"/> + <Constant name="SupportTubeInsertR" value="5*mm"/> + <Constant name="SupportTubeInsertDz" value="([SupportTubeRout]-[SupportTubeRin])/2-0.010*mm"/> + <Constant name="SupportTubeInsert1Dz" value="([SupportTubeR1]-[SupportTubeRin])/2-0.010*mm"/> + <Constant name="SupportTubeInsert2Dz" value="([SupportTubeR2]-[SupportTubeR1])/2-0.010*mm"/> + <Constant name="SupportTubeInsert3Dz" value="([SupportTubeR3]-[SupportTubeR2])/2-0.010*mm"/> + <Constant name="SupportTubeInsert4Dz" value="([SupportTubeRout]-[SupportTubeR3])/2-0.010*mm"/> + <Constant name="SupportTubeInsertZoff" value="-2.574*m"/> + <Constant name="SupportTubeInsertZpitch" value="143*mm"/> + <Constant name="ThermalScreenManifoldL" value="([SupportTubeL]-[ThermalScreenL])/2"/> + <Constant name="ThermalScreenPlaceholderL" value="3*mm"/> + <Constant name="TrackerRailRout" value="[ThermalScreenRout]"/> + <Constant name="TrackerRailRin" value="[TrackerRailRout]-24*mm"/> + <Constant name="TrackerRailPhiLo" value="-0.067*rad"/> + <Constant name="TrackerRailPhiRange" value="0.10*rad"/> + <Constant name="TrackerRailDR1" value="2*mm"/> + <Constant name="TrackerRailPhi1" value="-0.066892*rad"/> + <Constant name="TrackerRailPhi2" value="-0.012701*rad"/> + <Constant name="TrackerRailPhi3" value="0.016935*rad"/> + <Constant name="TrackerRailPhi4" value="0.0212*rad"/> + <Constant name="TOBRailR" value="5*mm"/> + <Constant name="TOBRailRpos" value="1177*mm"/> + <Constant name="Tol" value="0.0*mm"/> + </ConstantsSection> + <SolidSection label="trackerother.xml"> + <!-- TRACKER SUPPORT TUBE AND THERMAL SCREEN --> + <Tubs name="TrackerOuterCylinder" rMin="[OuterCylinderRin]+[Tol]" rMax="[OuterCylinderRout]" dz="[OuterCylinderL]" startPhi="0*deg" deltaPhi="360*deg"/> + <Tubs name="TrackerThermalScreen" rMin="[ThermalScreenRin]+[Tol]" rMax="[ThermalScreenRout]-[Tol]" dz="[ThermalScreenL]" startPhi="4*deg" deltaPhi="172*deg"/> + <Tubs name="TrackerThermalScreenCooling" rMin="[ThermalScreenRin]+[Tol]" rMax="[ThermalScreenR1]-[Tol]" dz="[ThermalScreenL]" startPhi="4*deg" deltaPhi="172*deg"/> + <Tubs name="TrackerThermalScreenFoam" rMin="[ThermalScreenR1]+[Tol]" rMax="[ThermalScreenR2]-[Tol]" dz="[ThermalScreenL]" startPhi="4*deg" deltaPhi="172*deg"/> + <Tubs name="TrackerThermalScreenShield" rMin="[ThermalScreenR2]+[Tol]" rMax="[ThermalScreenRout]-[Tol]" dz="[ThermalScreenL]" startPhi="4*deg" deltaPhi="172*deg"/> + <Tubs name="TrackerThermalScreenManifold" rMin="[ThermalScreenRin]+[Tol]" rMax="[ThermalScreenRout]-[Tol]" dz="[ThermalScreenManifoldL]" startPhi="4*deg" deltaPhi="172*deg"/> + <Tubs name="TrackerThermalScreenPlaceholder" rMin="[ThermalScreenRin]+[Tol]" rMax="[ThermalScreenRout]-[Tol]" dz="[ThermalScreenPlaceholderL]" startPhi="4*deg" deltaPhi="172*deg"/> + <Tubs name="TrackerSupportTube" rMin="[SupportTubeRin]+[Tol]" rMax="[SupportTubeRout]-[Tol]" dz="[SupportTubeL]" startPhi="0*deg" deltaPhi="360*deg"/> + <Tubs name="TrackerSupportTubeCFSkin1" rMin="[SupportTubeRin]+[Tol]" rMax="[SupportTubeR1]-[Tol]" dz="[SupportTubeL]" startPhi="0*deg" deltaPhi="360*deg"/> + <Tubs name="TrackerSupportTubeNomex" rMin="[SupportTubeR1]+[Tol]" rMax="[SupportTubeR2]-[Tol]" dz="[SupportTubeL]" startPhi="0*deg" deltaPhi="360*deg"/> + <Tubs name="TrackerSupportTubeCFSkin2" rMin="[SupportTubeR2]+[Tol]" rMax="[SupportTubeR3]-[Tol]" dz="[SupportTubeL]" startPhi="0*deg" deltaPhi="360*deg"/> + <Tubs name="TrackerSupportTubeShield" rMin="[SupportTubeR3]+[Tol]" rMax="[SupportTubeRout]-[Tol]" dz="[SupportTubeL]" startPhi="0*deg" deltaPhi="360*deg"/> + <Tubs name="TrackerSupportTubeInsert" rMin="[zero]" rMax="[SupportTubeInsertR]" dz="[SupportTubeInsertDz]" startPhi="0*deg" deltaPhi="360*deg"/> + <Tubs name="TrackerSupportTubeInsertCFSkin1" rMin="[zero]" rMax="[SupportTubeInsertR]" dz="[SupportTubeInsert1Dz]" startPhi="0*deg" deltaPhi="360*deg"/> + <Tubs name="TrackerSupportTubeInsertNomex" rMin="[zero]" rMax="[SupportTubeInsertR]" dz="[SupportTubeInsert2Dz]" startPhi="0*deg" deltaPhi="360*deg"/> + <Tubs name="TrackerSupportTubeInsertCFSkin2" rMin="[zero]" rMax="[SupportTubeInsertR]" dz="[SupportTubeInsert3Dz]" startPhi="0*deg" deltaPhi="360*deg"/> + <Tubs name="TrackerSupportTubeInsertShield" rMin="[zero]" rMax="[SupportTubeInsertR]" dz="[SupportTubeInsert4Dz]" startPhi="0*deg" deltaPhi="360*deg"/> + <Tubs name="TrackerRail" rMin="[TrackerRailRin]+[Tol]" rMax="[TrackerRailRout]-[Tol]" dz="[SupportTubeL]" startPhi="[TrackerRailPhiLo]" deltaPhi="[TrackerRailPhiRange]"/> + <Tubs name="TrackerRailNomex" rMin="[TrackerRailRin]+[TrackerRailDR1]+[Tol]" rMax="[TrackerRailRout]-[TrackerRailDR1]-[Tol]" dz="[SupportTubeL]" startPhi="[TrackerRailPhi1]" deltaPhi="[TrackerRailPhi2]-[TrackerRailPhi1]"/> + <Tubs name="TrackerRailCFSkin1" rMin="[TrackerRailRin]+[Tol]" rMax="[TrackerRailRin]+[TrackerRailDR1]-[Tol]" dz="[SupportTubeL]" startPhi="[TrackerRailPhi1]" deltaPhi="[TrackerRailPhi2]-[TrackerRailPhi1]"/> + <Tubs name="TrackerRailCFSkin2" rMin="[TrackerRailRout]-[TrackerRailDR1]+[Tol]" rMax="[TrackerRailRout]-[Tol]" dz="[SupportTubeL]" startPhi="[TrackerRailPhi1]" deltaPhi="[TrackerRailPhi2]-[TrackerRailPhi1]"/> + <Tubs name="TrackerRailCF" rMin="[TrackerRailRin]+[Tol]" rMax="[TrackerRailRout]-[Tol]" dz="[SupportTubeL]" startPhi="[TrackerRailPhi2]" deltaPhi="[TrackerRailPhi3]-[TrackerRailPhi2]"/> + <Tubs name="TOBRail" rMin="[zero]" rMax="[TOBRailR]" dz="[SupportTubeL]" startPhi="0*deg" deltaPhi="360*deg"/> + </SolidSection> + <LogicalPartSection label="trackerother.xml"> + <!-- TRACKER SUPPORT TUBE AND THERMAL SCREEN --> + <LogicalPart name="TrackerOuterCylinder" category="unspecified"> + <rSolid name="TrackerOuterCylinder"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TrackerThermalScreen" category="unspecified"> + <rSolid name="TrackerThermalScreen"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TrackerThermalScreenCooling" category="unspecified"> + <rSolid name="TrackerThermalScreenCooling"/> + <rMaterial name="trackermaterial:TS_Cooling"/> + </LogicalPart> + <LogicalPart name="TrackerThermalScreenFoam" category="unspecified"> + <rSolid name="TrackerThermalScreenFoam"/> + <rMaterial name="trackermaterial:T_Rohacell"/> + </LogicalPart> + <LogicalPart name="TrackerThermalScreenShield" category="unspecified"> + <rSolid name="TrackerThermalScreenShield"/> + <rMaterial name="trackermaterial:TS_Shield"/> + </LogicalPart> + <LogicalPart name="TrackerThermalScreenManifold" category="unspecified"> + <rSolid name="TrackerThermalScreenManifold"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TrackerThermalScreenPlaceholder" category="unspecified"> + <rSolid name="TrackerThermalScreenPlaceholder"/> + <rMaterial name="trackermaterial:T_StainlessSteel"/> + </LogicalPart> + <LogicalPart name="TrackerSupportTube" category="unspecified"> + <rSolid name="TrackerSupportTube"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TrackerSupportTubeCFSkin1" category="unspecified"> + <rSolid name="TrackerSupportTubeCFSkin1"/> + <rMaterial name="trackermaterial:T_CarbonFibreStr"/> + </LogicalPart> + <LogicalPart name="TrackerSupportTubeNomex" category="unspecified"> + <rSolid name="TrackerSupportTubeNomex"/> + <rMaterial name="trackermaterial:T_Nomex"/> + </LogicalPart> + <LogicalPart name="TrackerSupportTubeCFSkin2" category="unspecified"> + <rSolid name="TrackerSupportTubeCFSkin2"/> + <rMaterial name="trackermaterial:T_CarbonFibreStr"/> + </LogicalPart> + <LogicalPart name="TrackerSupportTubeShield" category="unspecified"> + <rSolid name="TrackerSupportTubeShield"/> + <rMaterial name="trackermaterial:T_Aluminium"/> + </LogicalPart> + <LogicalPart name="TrackerSupportTubeInsert" category="unspecified"> + <rSolid name="TrackerSupportTubeInsert"/> + <rMaterial name="trackermaterial:T_CarbonFibreStr"/> + </LogicalPart> + <LogicalPart name="TrackerSupportTubeInsertCFSkin1" category="unspecified"> + <rSolid name="TrackerSupportTubeInsertCFSkin1"/> + <rMaterial name="trackermaterial:T_CarbonFibreStr"/> + </LogicalPart> + <LogicalPart name="TrackerSupportTubeInsertNomex" category="unspecified"> + <rSolid name="TrackerSupportTubeInsertNomex"/> + <rMaterial name="trackermaterial:T_CarbonFibreStr"/> + </LogicalPart> + <LogicalPart name="TrackerSupportTubeInsertCFSkin2" category="unspecified"> + <rSolid name="TrackerSupportTubeInsertCFSkin2"/> + <rMaterial name="trackermaterial:T_CarbonFibreStr"/> + </LogicalPart> + <LogicalPart name="TrackerSupportTubeInsertShield" category="unspecified"> + <rSolid name="TrackerSupportTubeInsertShield"/> + <rMaterial name="trackermaterial:T_CarbonFibreStr"/> + </LogicalPart> + <LogicalPart name="TrackerRail" category="unspecified"> + <rSolid name="TrackerRail"/> + <rMaterial name="materials:Air"/> + </LogicalPart> + <LogicalPart name="TrackerRailNomex" category="unspecified"> + <rSolid name="TrackerRailNomex"/> + <rMaterial name="trackermaterial:T_Nomex"/> + </LogicalPart> + <LogicalPart name="TrackerRailCFSkin1" category="unspecified"> + <rSolid name="TrackerRailCFSkin1"/> + <rMaterial name="trackermaterial:T_CarbonFibreStr"/> + </LogicalPart> + <LogicalPart name="TrackerRailCFSkin2" category="unspecified"> + <rSolid name="TrackerRailCFSkin2"/> + <rMaterial name="trackermaterial:T_CarbonFibreStr"/> + </LogicalPart> + <LogicalPart name="TrackerRailCF" category="unspecified"> + <rSolid name="TrackerRailCF"/> + <rMaterial name="trackermaterial:T_CarbonFibreStr"/> + </LogicalPart> + <LogicalPart name="TOBRail" category="unspecified"> + <rSolid name="TOBRail"/> + <rMaterial name="trackermaterial:T_CarbonFibreStr"/> + </LogicalPart> + </LogicalPartSection> + <PosPartSection label="trackerother.xml"> + <!-- TRACKER SUPPORT TUBE AND THERMAL SCREEN --> + <PosPart copyNumber="1"> + <rParent name="tracker:Tracker"/> + <rChild name="trackerother:TrackerOuterCylinder"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="trackerother:TrackerOuterCylinder"/> + <rChild name="trackerother:TrackerThermalScreen"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="trackerother:TrackerOuterCylinder"/> + <rChild name="trackerother:TrackerThermalScreen"/> + <rRotation name="tracker:R180"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="trackerother:TrackerThermalScreen"/> + <rChild name="trackerother:TrackerThermalScreenCooling"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="trackerother:TrackerThermalScreen"/> + <rChild name="trackerother:TrackerThermalScreenFoam"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="trackerother:TrackerThermalScreen"/> + <rChild name="trackerother:TrackerThermalScreenShield"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="trackerother:TrackerOuterCylinder"/> + <rChild name="trackerother:TrackerSupportTube"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="trackerother:TrackerSupportTube"/> + <rChild name="trackerother:TrackerSupportTubeCFSkin1"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="trackerother:TrackerSupportTube"/> + <rChild name="trackerother:TrackerSupportTubeNomex"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="trackerother:TrackerSupportTube"/> + <rChild name="trackerother:TrackerSupportTubeCFSkin2"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="trackerother:TrackerSupportTube"/> + <rChild name="trackerother:TrackerSupportTubeShield"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="trackerother:TrackerThermalScreenManifold"/> + <rChild name="trackerother:TrackerThermalScreenPlaceholder"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="trackerother:TrackerOuterCylinder"/> + <rChild name="trackerother:TrackerThermalScreenManifold"/> + <Translation x="[zero]" y="[zero]" z="[ThermalScreenL]+[ThermalScreenManifoldL]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="trackerother:TrackerOuterCylinder"/> + <rChild name="trackerother:TrackerThermalScreenManifold"/> + <rRotation name="tracker:R180"/> + <Translation x="[zero]" y="[zero]" z="[ThermalScreenL]+[ThermalScreenManifoldL]"/> + </PosPart> + <PosPart copyNumber="3"> + <rParent name="trackerother:TrackerOuterCylinder"/> + <rChild name="trackerother:TrackerThermalScreenManifold"/> + <Translation x="[zero]" y="[zero]" z="-([ThermalScreenL]+[ThermalScreenManifoldL])"/> + </PosPart> + <PosPart copyNumber="4"> + <rParent name="trackerother:TrackerOuterCylinder"/> + <rChild name="trackerother:TrackerThermalScreenManifold"/> + <rRotation name="tracker:R180"/> + <Translation x="[zero]" y="[zero]" z="-([ThermalScreenL]+[ThermalScreenManifoldL])"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="trackerother:TrackerOuterCylinder"/> + <rChild name="trackerother:TrackerRail"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="trackerother:TrackerOuterCylinder"/> + <rChild name="trackerother:TrackerRail"/> + <rRotation name="tracker:180D"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="trackerother:TrackerRail"/> + <rChild name="trackerother:TrackerRailNomex"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="trackerother:TrackerRail"/> + <rChild name="trackerother:TrackerRailCFSkin1"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="trackerother:TrackerRail"/> + <rChild name="trackerother:TrackerRailCFSkin2"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="trackerother:TrackerRail"/> + <rChild name="trackerother:TrackerRailCF"/> + </PosPart> + <PosPart copyNumber="1"> + <rParent name="trackerother:TrackerRail"/> + <rChild name="trackerother:TOBRail"/> + <Translation x="[TOBRailRpos]*cos([TrackerRailPhi4])" y="[TOBRailRpos]*sin([TrackerRailPhi4])" z="[zero]"/> + </PosPart> + </PosPartSection> + <!-- TRACKER SUPPORT TUBE AND THERMAL SCREEN --> + <Algorithm name="track:DDTrackerLinear"> + <rParent name="trackerother:TrackerSupportTubeCFSkin1"/> + <String name="ChildName" value="trackerother:TrackerSupportTubeInsertCFSkin1"/> + <Numeric name="Number" value="36"/> + <Numeric name="Theta" value="0*deg"/> + <Numeric name="Phi" value="0*deg"/> + <Numeric name="Offset" value="[SupportTubeInsertZoff]"/> + <Numeric name="Delta" value="[SupportTubeInsertZpitch]"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <String name="Rotation" value="tracker:PAA"/> + <Vector name="Center" type="numeric" nEntries="3"> + [SupportTubeRin]+[SupportTubeInsert1Dz], [zero], [zero] + </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerLinear"> + <rParent name="trackerother:TrackerSupportTubeCFSkin1"/> + <String name="ChildName" value="trackerother:TrackerSupportTubeInsertCFSkin1"/> + <Numeric name="Number" value="36"/> + <Numeric name="Theta" value="0*deg"/> + <Numeric name="Phi" value="0*deg"/> + <Numeric name="Offset" value="[SupportTubeInsertZoff]"/> + <Numeric name="Delta" value="[SupportTubeInsertZpitch]"/> + <Numeric name="StartCopyNo" value="37"/> + <Numeric name="IncrCopyNo" value="1"/> + <String name="Rotation" value="tracker:PAA"/> + <Vector name="Center" type="numeric" nEntries="3"> + -([SupportTubeRin]+[SupportTubeInsert1Dz]), [zero], [zero] + </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerLinear"> + <rParent name="trackerother:TrackerSupportTubeNomex"/> + <String name="ChildName" value="trackerother:TrackerSupportTubeInsertNomex"/> + <Numeric name="Number" value="36"/> + <Numeric name="Theta" value="0*deg"/> + <Numeric name="Phi" value="0*deg"/> + <Numeric name="Offset" value="[SupportTubeInsertZoff]"/> + <Numeric name="Delta" value="[SupportTubeInsertZpitch]"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <String name="Rotation" value="tracker:PAA"/> + <Vector name="Center" type="numeric" nEntries="3"> + [SupportTubeR1]+[SupportTubeInsert2Dz], [zero], [zero] + </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerLinear"> + <rParent name="trackerother:TrackerSupportTubeNomex"/> + <String name="ChildName" value="trackerother:TrackerSupportTubeInsertNomex"/> + <Numeric name="Number" value="36"/> + <Numeric name="Theta" value="0*deg"/> + <Numeric name="Phi" value="0*deg"/> + <Numeric name="Offset" value="[SupportTubeInsertZoff]"/> + <Numeric name="Delta" value="[SupportTubeInsertZpitch]"/> + <Numeric name="StartCopyNo" value="37"/> + <Numeric name="IncrCopyNo" value="1"/> + <String name="Rotation" value="tracker:PAA"/> + <Vector name="Center" type="numeric" nEntries="3"> + -([SupportTubeR1]+[SupportTubeInsert2Dz]), [zero], [zero] + </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerLinear"> + <rParent name="trackerother:TrackerSupportTubeCFSkin2"/> + <String name="ChildName" value="trackerother:TrackerSupportTubeInsertCFSkin2"/> + <Numeric name="Number" value="36"/> + <Numeric name="Theta" value="0*deg"/> + <Numeric name="Phi" value="0*deg"/> + <Numeric name="Offset" value="[SupportTubeInsertZoff]"/> + <Numeric name="Delta" value="[SupportTubeInsertZpitch]"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <String name="Rotation" value="tracker:PAA"/> + <Vector name="Center" type="numeric" nEntries="3"> + [SupportTubeR2]+[SupportTubeInsert3Dz], [zero], [zero] + </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerLinear"> + <rParent name="trackerother:TrackerSupportTubeCFSkin2"/> + <String name="ChildName" value="trackerother:TrackerSupportTubeInsertCFSkin2"/> + <Numeric name="Number" value="36"/> + <Numeric name="Theta" value="0*deg"/> + <Numeric name="Phi" value="0*deg"/> + <Numeric name="Offset" value="[SupportTubeInsertZoff]"/> + <Numeric name="Delta" value="[SupportTubeInsertZpitch]"/> + <Numeric name="StartCopyNo" value="37"/> + <Numeric name="IncrCopyNo" value="1"/> + <String name="Rotation" value="tracker:PAA"/> + <Vector name="Center" type="numeric" nEntries="3"> + -([SupportTubeR2]+[SupportTubeInsert3Dz]), [zero], [zero] + </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerLinear"> + <rParent name="trackerother:TrackerSupportTubeShield"/> + <String name="ChildName" value="trackerother:TrackerSupportTubeInsertShield"/> + <Numeric name="Number" value="36"/> + <Numeric name="Theta" value="0*deg"/> + <Numeric name="Phi" value="0*deg"/> + <Numeric name="Offset" value="[SupportTubeInsertZoff]"/> + <Numeric name="Delta" value="[SupportTubeInsertZpitch]"/> + <Numeric name="StartCopyNo" value="1"/> + <Numeric name="IncrCopyNo" value="1"/> + <String name="Rotation" value="tracker:PAA"/> + <Vector name="Center" type="numeric" nEntries="3"> + [SupportTubeR3]+[SupportTubeInsert4Dz], [zero], [zero] + </Vector> + </Algorithm> + <Algorithm name="track:DDTrackerLinear"> + <rParent name="trackerother:TrackerSupportTubeShield"/> + <String name="ChildName" value="trackerother:TrackerSupportTubeInsertShield"/> + <Numeric name="Number" value="36"/> + <Numeric name="Theta" value="0*deg"/> + <Numeric name="Phi" value="0*deg"/> + <Numeric name="Offset" value="[SupportTubeInsertZoff]"/> + <Numeric name="Delta" value="[SupportTubeInsertZpitch]"/> + <Numeric name="StartCopyNo" value="37"/> + <Numeric name="IncrCopyNo" value="1"/> + <String name="Rotation" value="tracker:PAA"/> + <Vector name="Center" type="numeric" nEntries="3"> + -([SupportTubeR3]+[SupportTubeInsert4Dz]), [zero], [zero] + </Vector> + </Algorithm> +</DDDefinition> diff --git a/examples/DDCMS/data/trackerpixbar.xml b/examples/DDCMS/data/trackerpixbar.xml new file mode 100644 index 0000000000000000000000000000000000000000..41c64508135ba5d2cd2f77915d74b713aceb6990 --- /dev/null +++ b/examples/DDCMS/data/trackerpixbar.xml @@ -0,0 +1,9 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <PosPartSection label="trackerpixbar.xml"> + <PosPart copyNumber="1"> + <rParent name="tracker:Tracker"/> + <rChild name="pixbar:PixelBarrel"/> + </PosPart> + </PosPartSection> +</DDDefinition> diff --git a/examples/DDCMS/data/trackerpixfwd.xml b/examples/DDCMS/data/trackerpixfwd.xml new file mode 100644 index 0000000000000000000000000000000000000000..ba606869d39fb7384147696e60e9630eb22600ba --- /dev/null +++ b/examples/DDCMS/data/trackerpixfwd.xml @@ -0,0 +1,20 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="trackerpixfwd.xml" eval="true"> + <Constant name="zero" value="0.0*fm"/> + <Constant name="zPos" value="[pixfwd:ZPixelForward]"/> + </ConstantsSection> + <PosPartSection label="trackerpixfwd.xml"> + <PosPart copyNumber="1"> + <rParent name="tracker:Tracker"/> + <rChild name="pixfwd:PixelForwardZPlus"/> + <Translation x="[zero]" y="[zero]" z="[zPos]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tracker:Tracker"/> + <rChild name="pixfwd:PixelForwardZMinus"/> + <Translation x="[zero]" y="[zero]" z="-[zPos]"/> + <rRotation name="pixfwdCommon:Y180"/> + </PosPart> + </PosPartSection> +</DDDefinition> diff --git a/examples/DDCMS/data/trackertec.xml b/examples/DDCMS/data/trackertec.xml new file mode 100644 index 0000000000000000000000000000000000000000..f0500144631ccb1b638431ce7638f2f73a53a2d9 --- /dev/null +++ b/examples/DDCMS/data/trackertec.xml @@ -0,0 +1,19 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <ConstantsSection label="trackertec.xml" eval="true"> + <Constant name="zero" value="0.0*fm"/> + </ConstantsSection> + <PosPartSection label="trackertec.xml"> + <PosPart copyNumber="1"> + <rParent name="tracker:Tracker"/> + <rChild name="tec:TEC"/> + <Translation x="[zero]" y="[zero]" z="[tec:ZPos]"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tracker:Tracker"/> + <rChild name="tec:TEC"/> + <rRotation name="tracker:180D"/> + <Translation x="[zero]" y="[zero]" z="-[tec:ZPos]"/> + </PosPart> + </PosPartSection> +</DDDefinition> diff --git a/examples/DDCMS/data/trackertib.xml b/examples/DDCMS/data/trackertib.xml new file mode 100644 index 0000000000000000000000000000000000000000..0f5a2fee54b9f00dcb4d26bea024bea718ae0941 --- /dev/null +++ b/examples/DDCMS/data/trackertib.xml @@ -0,0 +1,9 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <PosPartSection label="trackertib.xml"> + <PosPart copyNumber="1"> + <rParent name="tracker:Tracker"/> + <rChild name="tib:TIB"/> + </PosPart> + </PosPartSection> +</DDDefinition> diff --git a/examples/DDCMS/data/trackertibtidservices.xml b/examples/DDCMS/data/trackertibtidservices.xml new file mode 100644 index 0000000000000000000000000000000000000000..17eff414573d36a10132e50f7e631036e9ec6abe --- /dev/null +++ b/examples/DDCMS/data/trackertibtidservices.xml @@ -0,0 +1,14 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <PosPartSection label="tibtidservices.xml"> + <PosPart copyNumber="1"> + <rParent name="tracker:Tracker"/> + <rChild name="tibtidservicesf:TIBTIDServicesF"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tracker:Tracker"/> + <rChild name="tibtidservicesb:TIBTIDServicesB"/> + <rRotation name="tracker:180D"/> + </PosPart> + </PosPartSection> +</DDDefinition> diff --git a/examples/DDCMS/data/trackertid.xml b/examples/DDCMS/data/trackertid.xml new file mode 100644 index 0000000000000000000000000000000000000000..6318f4bdc8e9246528d4ae905cfa09d6e29afcea --- /dev/null +++ b/examples/DDCMS/data/trackertid.xml @@ -0,0 +1,14 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <PosPartSection label="trackertid.xml"> + <PosPart copyNumber="1"> + <rParent name="tracker:Tracker"/> + <rChild name="tidf:TIDF"/> + </PosPart> + <PosPart copyNumber="2"> + <rParent name="tracker:Tracker"/> + <rChild name="tidb:TIDB"/> + <rRotation name="tracker:180D"/> + </PosPart> + </PosPartSection> +</DDDefinition> diff --git a/examples/DDCMS/data/trackertob.xml b/examples/DDCMS/data/trackertob.xml new file mode 100644 index 0000000000000000000000000000000000000000..921eece57f395e4ce078bd8772da99e1c8a23806 --- /dev/null +++ b/examples/DDCMS/data/trackertob.xml @@ -0,0 +1,9 @@ +<?xml version="1.0"?> +<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd"> + <PosPartSection label="trackertob.xml"> + <PosPart copyNumber="1"> + <rParent name="tracker:Tracker"/> + <rChild name="tob:TOB"/> + </PosPart> + </PosPartSection> +</DDDefinition>