+
+ TString path, alignName;
+ next.GetPath(path);
+ Int_t id = node->GetVolume()->GetNumber();
+ if (IS_NODE_HALF(name)) {
+ currentDet = name[1];
+ currentHalf = name[3];
+ alignName = Form("FMD/FMD%c_%c", currentDet, currentHalf);
+ }
+ if (IS_NODE_SENSOR(name)) {
+ Char_t ring = name[1];
+ Int_t lvl = next.GetLevel();
+ TGeoNode* parent = next.GetNode(lvl-1);
+ Int_t copy = parent->GetNumber();
+ alignName = Form("FMD/FMD%c_%c/FMD%c_%02d",
+ currentDet, currentHalf, ring, copy);
+ }
+ if (alignName.IsNull()) continue;
+ if (!gGeoManager->GetAlignableEntry(alignName.Data())) {
+ AliWarning(Form("No alignable entry for %s, using path %s",
+ alignName.Data(), path.Data()));
+ alignName = path;
+ }
+ AliFMDDebug(1, ("Making alignment for %s -> %s (%d)",
+ alignName.Data(), path.Data(), id));
+ if (IS_NODE_HALF(name)) MakeAlignHalf(alignName, id);
+ if (IS_NODE_SENSOR(name)) MakeAlignSensor(alignName, id);
+#if 0
+ if (!(IS_NODE_HALF(name) && TESTBIT(fMask, kHalves)) &&
+ !(IS_NODE_SENSOR(name) && TESTBIT(fMask, kSensors)))
+ continue;
+