diff --git a/algo/ca/TrackingChain.cxx b/algo/ca/TrackingChain.cxx index b5899b3163f7363d3f86dbfcc816a0e681fc5dee..a572e708e203b13204fe6b5c7d2bfbdad74409b2 100644 --- a/algo/ca/TrackingChain.cxx +++ b/algo/ca/TrackingChain.cxx @@ -20,11 +20,11 @@ #include <boost/archive/binary_oarchive.hpp> #include <fstream> +#include <set> #include <unordered_map> #include <fmt/format.h> #include <xpu/host.h> -#include <set> using namespace cbm::algo; @@ -268,13 +268,13 @@ void TrackingChain::ReadHits(PartitionedSpan<const ca::HitTypes_t::at<DetID>> hi const auto& [vHits, extHitAddress] = hits.Partition(iPartition); // ---- Define data stream and station index //int64_t dataStream = dataStreamDet | extHitAddress; - int iStLocal = fpSetup->GetTrackingStation<ca::ToFlesSubsystem<DetID>()>(extHitAddress); + int iStLocal = fpSetup->GetTrackingStation<ca::ToFlesSubsystem<DetID>()>(extHitAddress); if (iStLocal < 0) { continue; // Station is not used for tracking (e.g. TOF SMtype 5) } int iStActive = fCaFramework.GetParameters().GetStationIndexActive(iStLocal, DetID); - + //size_t iOffset = hits.Offsets()[iPartition]; if (iStActive < 0) { continue; // legit @@ -294,17 +294,17 @@ void TrackingChain::ReadHits(PartitionedSpan<const ca::HitTypes_t::at<DetID>> hi // switch (extHitAddress) { // case 0x5: // if (!(fabs(hit.Z() - 116.77) < 10)) { - // L_(info) << "AAAAAA!!!!!!!!! " << extHitAddress << ' ' << hit.Z(); + // L_(info) << "DBG! " << extHitAddress << ' ' << hit.Z(); // } // break; // case 0x15: // if (!(fabs(hit.Z() - 163.8) < 10)) { - // L_(info) << "AAAAAA!!!!!!!!! " << extHitAddress << ' ' << hit.Z(); + // L_(info) << "DBG! " << extHitAddress << ' ' << hit.Z(); // } // break; // case 0x25: // if (!(fabs(hit.Z() - 190.8) < 10)) { - // L_(info) << "AAAAAA!!!!!!!!! " << extHitAddress << ' ' << hit.Z(); + // L_(info) << "DBG! " << extHitAddress << ' ' << hit.Z(); // } // break; // } diff --git a/algo/ca/TrackingSetup.h b/algo/ca/TrackingSetup.h index a5f9abf75d7bb7e582c42ec78745f1676e420b04..ba678c4e3bc8429c8aeb40d53faf664b23262b07 100644 --- a/algo/ca/TrackingSetup.h +++ b/algo/ca/TrackingSetup.h @@ -54,7 +54,7 @@ namespace cbm::algo else if constexpr (DetID == fles::Subsystem::TOF) { return fTof.GetTrackingStation(address); } - return -1; // Default: no station is assigned, hit will be skept ! + return -1; // Default: no station is assigned, hit will be skept ! } /// \brief Set detector subsystem usage diff --git a/algo/detectors/sts/TrackingInterface.cxx b/algo/detectors/sts/TrackingInterface.cxx index fa667fdecf5c88d789b2609b7cbfc295ae00c274..fad68ead46f0add9509b57b26272df92646fa4fe 100644 --- a/algo/detectors/sts/TrackingInterface.cxx +++ b/algo/detectors/sts/TrackingInterface.cxx @@ -16,17 +16,14 @@ using cbm::algo::sts::TrackingInterface; // --------------------------------------------------------------------------------------------------------------------- // -void TrackingInterface::Init() -{ - L_(info) << "STS: TrackingInterface initialization"; -} +void TrackingInterface::Init() { L_(info) << "STS: TrackingInterface initialization"; } // --------------------------------------------------------------------------------------------------------------------- // int TrackingInterface::GetTrackingStation(uint32_t address) const { // NOTE: SZh 30.04.2024: - // This returns the valid STS station index at least for mCBM at beamtimes 2022 and 2024. There is no + // This returns the valid STS station index at least for mCBM at beamtimes 2022 and 2024. There is no // guarantie, that it will work for other setups, should be cross-checked. return CbmStsAddress::GetElementId(address, kStsUnit); } diff --git a/algo/detectors/sts/TrackingInterface.h b/algo/detectors/sts/TrackingInterface.h index a037cd2fbc567d03b4d43e42c45bef0291e72dcc..472863eef1ae472ae62f66416d9b1f1cf90853de 100644 --- a/algo/detectors/sts/TrackingInterface.h +++ b/algo/detectors/sts/TrackingInterface.h @@ -35,4 +35,4 @@ namespace cbm::algo::sts /// \return Local index of tracking station int GetTrackingStation(uint32_t address) const; }; -} // namespace cbm::algo::tof +} // namespace cbm::algo::sts diff --git a/algo/detectors/trd/TrackingInterface.cxx b/algo/detectors/trd/TrackingInterface.cxx index 7ad681daa4cf197807ea0b41294a7e383b3dcb4a..7b119cb64d96faaae286794f32a74e90af339de5 100644 --- a/algo/detectors/trd/TrackingInterface.cxx +++ b/algo/detectors/trd/TrackingInterface.cxx @@ -16,14 +16,8 @@ using cbm::algo::trd::TrackingInterface; // --------------------------------------------------------------------------------------------------------------------- // -void TrackingInterface::Init() -{ - L_(info) << "TRD: TrackingInterface initialization"; -} +void TrackingInterface::Init() { L_(info) << "TRD: TrackingInterface initialization"; } // --------------------------------------------------------------------------------------------------------------------- // -int TrackingInterface::GetTrackingStation(uint32_t address) const -{ - return CbmTrdAddress::GetLayerId(address); -} +int TrackingInterface::GetTrackingStation(uint32_t address) const { return CbmTrdAddress::GetLayerId(address); } diff --git a/algo/detectors/trd/TrackingInterface.h b/algo/detectors/trd/TrackingInterface.h index 16eedf721d408d015914503a0f6a8ccb04804233..e5f1bf05e8c65a9e5393174a00c13c467b26807a 100644 --- a/algo/detectors/trd/TrackingInterface.h +++ b/algo/detectors/trd/TrackingInterface.h @@ -35,4 +35,4 @@ namespace cbm::algo::trd /// \return Local index of tracking station int GetTrackingStation(uint32_t address) const; }; -} // namespace cbm::algo::tof +} // namespace cbm::algo::trd diff --git a/core/detectors/tof/CbmTofTrackingInterface.cxx b/core/detectors/tof/CbmTofTrackingInterface.cxx index 5135054088e8e9fa504b1e9d9a03224063301689..1f11a22e7dfd5d454a7136a8cc5d19eee443868c 100644 --- a/core/detectors/tof/CbmTofTrackingInterface.cxx +++ b/core/detectors/tof/CbmTofTrackingInterface.cxx @@ -69,6 +69,9 @@ InitStatus CbmTofTrackingInterface::Init() fTofStationZMin.resize(nStations, std::numeric_limits<double>::max()); fTofStationZMax.resize(nStations, std::numeric_limits<double>::lowest()); + std::vector<std::set<double>> mRpcZ; + mRpcZ.resize(nStations, std::set<double>{}); + fmAddressToStation.clear(); for (int iSmType = 0; iSmType < fDigiBdfPar->GetNbSmTypes(); ++iSmType) { for (int iSm = 0; iSm < fDigiBdfPar->GetNbSm(iSmType); ++iSm) { @@ -99,6 +102,7 @@ InitStatus CbmTofTrackingInterface::Init() if (5 == iSmType) { continue; } // Skip Bmon if (iStation < 0) { continue; } + mRpcZ[iStation].insert(chPosZ); fTofStationZ[iStation] += chPosZ; // FIXME: Sizes of stations are incorrect if (chPosZ > fTofStationZMax[iStation]) { fTofStationZMax[iStation] = chPosZ; } @@ -114,7 +118,7 @@ InitStatus CbmTofTrackingInterface::Init() } /// Get the average values - for (int iSt = 0; iSt < this->GetNtrackingStations(); ++iSt) { + for (int iSt = 0; iSt < nStations; ++iSt) { fTofStationZ[iSt] = fTofStationZ[iSt] / nTofStationModules[iSt]; } diff --git a/core/detectors/tof/CbmTofTrackingInterface.h b/core/detectors/tof/CbmTofTrackingInterface.h index 5e7b06eca2764e5e3184e0d34cb5f77196f93746..515bed959ab850d2bafbc85c72db6f87cfe13db7 100644 --- a/core/detectors/tof/CbmTofTrackingInterface.h +++ b/core/detectors/tof/CbmTofTrackingInterface.h @@ -129,12 +129,12 @@ public: /// Gets max z of the station /// \param stationId Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1]) /// \return max Z of the station [cm] - double GetZmax(int stationId) const { return GetZref(stationId) + 5.; } + double GetZmax(int stationId) const { return fTofStationZMax[stationId] + 0.5; } /// @brief Gets min z of the station /// @param stationId Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1]) /// @return min Z of the station [cm] - double GetZmin(int stationId) const { return GetZref(stationId) - 5.; } + double GetZmin(int stationId) const { return fTofStationZMin[stationId] - 0.5; } /// @brief Check if station provides time measurements /// @param stationId Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1]) diff --git a/macro/beamtime/mcbm2024/CMakeLists.txt b/macro/beamtime/mcbm2024/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..56a2a539ab95c2c89735c29663c9eae51a8f17bd --- /dev/null +++ b/macro/beamtime/mcbm2024/CMakeLists.txt @@ -0,0 +1,26 @@ + +# ROOT macros, par files, documentation files, bash scripts +Install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + DESTINATION share/cbmroot/macro/beamtime + FILES_MATCHING PATTERN "*.C" + PATTERN "*.par" + PATTERN "*.md" + PATTERN "*.sh" + ) +# # RICH calibration file, resolve symlink to get the full file +# Get_filename_component(_resolvedRichFile ${CMAKE_CURRENT_SOURCE_DIR}/icd_offset_it_0.data REALPATH) +# Install(FILES ${_resolvedRichFile} +# DESTINATION share/cbmroot/macro/beamtime/mcbm2022 +# ) +# +# # SLURM scripts, bash scripts +# Install(DIRECTORY online +# DESTINATION share/cbmroot/macro/beamtime/mcbm2022 +# FILES_MATCHING PATTERN "*.sbatch" +# PATTERN "*.sh" +# ) +# +# # Just the empty folder for output +# Install(DIRECTORY data +# DESTINATION share/cbmroot/macro/beamtime/mcbm2022 +# PATTERN "*" EXCLUDE)