diff --git a/reco/alignment/CbmBbaAlignmentTask.cxx b/reco/alignment/CbmBbaAlignmentTask.cxx index 4fe3516ad5c83023b8811931dd2c206c96a607fb..32fd5c4c3329bbc5b1f0c60cadc0bd65584cc6ed 100644 --- a/reco/alignment/CbmBbaAlignmentTask.cxx +++ b/reco/alignment/CbmBbaAlignmentTask.cxx @@ -470,6 +470,12 @@ void CbmBbaAlignmentTask::Finish() s.fSensorId = n.fHitAddress; // TODO: get the station index from n.fHitSystemId, n.fHitAddress s.fTrackingStation = n.fMaterialLayer; + if (s.fSystemId == ECbmModuleId::kTrd || s.fSystemId == ECbmModuleId::kTrd2d) { + s.fSensorId = s.fTrackingStation; + } + else if (s.fSystemId == ECbmModuleId::kTof) { + s.fSensorId = CbmTofAddress::GetRpcFullId(n.fHitAddress); + } sensorSet.insert(s); } } @@ -482,9 +488,16 @@ void CbmBbaAlignmentTask::Finish() for (auto& t : fTracks) { for (auto& n : t.fUnalignedTrack.fNodes) { Sensor s; - s.fSystemId = n.fHitSystemId; - s.fSensorId = n.fHitAddress; - auto iter = sensorSet.find(s); + s.fSystemId = n.fHitSystemId; + s.fSensorId = n.fHitAddress; + s.fTrackingStation = n.fMaterialLayer; + if (s.fSystemId == ECbmModuleId::kTrd || s.fSystemId == ECbmModuleId::kTrd2d) { + s.fSensorId = s.fTrackingStation; + } + else if (s.fSystemId == ECbmModuleId::kTof) { + s.fSensorId = CbmTofAddress::GetRpcFullId(n.fHitAddress); + } + auto iter = sensorSet.find(s); assert(iter != sensorSet.end()); int iSensor = std::distance(sensorSet.begin(), iter); n.fReference1 = iSensor; @@ -492,7 +505,7 @@ void CbmBbaAlignmentTask::Finish() t.fAlignedTrack = t.fUnalignedTrack; } - if (1) { // one alignment body per tracking station + if (0) { // one alignment body per tracking station fNalignmentBodies = fNtrackingStations;