84{
87
88
89 SmartIF<IGeoModelSvc> geoModel{service("GeoModelSvc")};
91
92 std::string atlasVersion = geoModel->atlasVersion();
93 std::string tileVersion = geoModel->tileVersionOverride();
94
95 std::string versionTag = tileVersion.empty()? atlasVersion : tileVersion;
96 std::string versionNode = tileVersion.empty()? "ATLAS" : "TileCal";
97
98 if (versionTag == "AUTO") {
99 versionTag = "TileCal-00";
100 versionNode = "TileCal";
101 }
102 if (atlasVersion.compare(0,9,"ATLAS-CTB") == 0 || tileVersion.compare(0,6,"TileTB") == 0) {
103 ATH_MSG_INFO(
"CTB geometry detected: " << atlasVersion <<
" " << tileVersion);
105 }
106
107
108 GeoModelExperiment* theExpt = nullptr;
110
112
113 ServiceHandle<IGeoDbTagSvc> geoDbTag(
"GeoDbTagSvc",
name());
115
116
117 ServiceHandle<IRDBAccessSvc> accessSvc(geoDbTag->getParamSvcName(),
name());
119
120
121 GeoModelIO::ReadGeoModel* sqliteReader = geoDbTag->getSqliteReader();
122
123
124
125 bool sqliteInput = false;
126 if (sqliteReader) sqliteInput = true;
127 TileDddbManager_ptr dbManager(
new TileDddbManager(&*accessSvc,versionTag,versionNode, sqliteInput));
128 m_manager =
new TileDetDescrManager(dbManager);
129
130
132 ATH_MSG_WARNING(
"New TileAtlasFactory can not be used because TileGlobals do not exist in Database");
135 }
136
138
139 m_switches.addPlatesToCell = dbManager->addPlatesToCell();
145
147
149
150
151 if (sqliteReader) {
152 TileDetectorFactoryLite theTileFactoryLite(
detStore().operator->(),
154 sqliteReader,
155 accessSvc.operator->(),
157 &log,
158 true);
159 theTileFactoryLite.create(world);
160 } else {
161
163
164
165
167 TileCablingService::getInstance_nc()->setTestBeam(true);
169 theTileTBFactory.
create(world);
170 return true;
171 }();
172
174 std::vector<GeoPhysVol *> volumePtrs;
175 std::vector<double> volumePositions;
177 theTileFactory.create(world);
178
179 } else {
181 theTileFactory.create(world);
182 }
183 }
185
187
188
191
192
193
196
197 return StatusCode::SUCCESS;
198
199 }
200
201 return StatusCode::FAILURE;
202}
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_WARNING(x)
#define CHECK(...)
Evaluate an expression and check for errors.
std::shared_ptr< TileDddbManager > TileDddbManager_ptr
#define ATLAS_THREAD_SAFE
GeoPhysVol * getPhysVol()
Destructor.
void addManager(const GeoVDetectorManager *)
virtual void create(GeoPhysVol *world) override
Creation of Test Beam Tile geometry.
msgSvc
Provide convenience handles for various services.
retrieve(aClass, aKey=None)