diff --git a/algo/ca/core/CMakeLists.txt b/algo/ca/core/CMakeLists.txt index 9d71e4f047cda3ed42baa968e2e581398ec50ff9..cee9a629f9910e0674adcb5885eed4252d55b11b 100644 --- a/algo/ca/core/CMakeLists.txt +++ b/algo/ca/core/CMakeLists.txt @@ -20,12 +20,8 @@ target_include_directories(CaCore target_compile_definitions(CaCore PUBLIC NO_ROOT) target_link_libraries(CaCore - OnlineDataLog - external::fles_ipc - xpu + Vc::Vc Boost::serialization - external::yaml-cpp - external::fles_logging ) install(TARGETS CaCore DESTINATION lib) @@ -36,6 +32,7 @@ install(DIRECTORY pars TYPE INCLUDE FILES_MATCHING PATTERN "*.h") install( FILES data/CaTrack.h + pars/CaConstants.h simd/CaSimd.h simd/CaSimdVc.h simd/CaSimdPseudo.h diff --git a/algo/ca/core/data/CaTrack.h b/algo/ca/core/data/CaTrack.h index 3c8520b4ac9bcfe8cfaa97b9f06d760d852095c8..cbb0788173f180dfe18d0513b013e948708df7c6 100644 --- a/algo/ca/core/data/CaTrack.h +++ b/algo/ca/core/data/CaTrack.h @@ -25,6 +25,7 @@ #include <limits> +#include "CaSimd.h" namespace cbm::algo::ca { /// @class cbm::algo::ca::Track @@ -35,39 +36,38 @@ namespace cbm::algo::ca /// class Track { public: - using fscal = float; static constexpr float kNaN {std::numeric_limits<float>::signaling_NaN()}; static constexpr int kNparTr {8}; static constexpr int kNparCov {28}; // TODO: SZh. 14.09.2023: Replace with std::array - unsigned char NHits {0}; ///< Number of hits in track - fscal TFirst[kNparTr] {kNaN}; ///< Track parameters on the first station - fscal CFirst[kNparCov] {kNaN}; ///< Track parameter covariation matrix elements on the first station - fscal TLast[kNparTr] {kNaN}; ///< Track parameters on the last station - fscal CLast[kNparCov] {kNaN}; ///< Track parameter covariation matrix elements on the second station - fscal Tpv[kNparTr] {kNaN}; ///< Track parameters in the primary vertex - fscal Cpv[kNparCov] {kNaN}; ///< Track parameter covariation matrix elements in the primary vertex - fscal chi2 {kNaN}; ///< Track fit chi-square value - short int NDF {0}; ///< Track fit NDF value + unsigned char fNofHits {0}; ///< Number of hits in track + fscal fParFirst[kNparTr] {kNaN}; ///< Track parameters on the first station + fscal fCovFirst[kNparCov] {kNaN}; ///< Track parameter covariation matrix elements on the first station + fscal fParLast[kNparTr] {kNaN}; ///< Track parameters on the last station + fscal fCovLast[kNparCov] {kNaN}; ///< Track parameter covariation matrix elements on the second station + fscal fParPV[kNparTr] {kNaN}; ///< Track parameters in the primary vertex + fscal fCovPV[kNparCov] {kNaN}; ///< Track parameter covariation matrix elements in the primary vertex + fscal fChi2 {kNaN}; ///< Track fit chi-square value + short int fNDF {0}; ///< Track fit NDF value friend class boost::serialization::access; template<class Archive> void serialize(Archive& ar, const unsigned int /*version*/) { - ar& NHits; + ar& fNofHits; for (int i = 0; i < kNparTr; ++i) { - ar& TFirst[i]; - ar& TLast[i]; - ar& Tpv[i]; + ar& fParFirst[i]; + ar& fParLast[i]; + ar& fParPV[i]; } for (int i = 0; i < kNparCov; ++i) { - ar& CFirst[i]; - ar& CLast[i]; - ar& Cpv[i]; + ar& fCovFirst[i]; + ar& fCovLast[i]; + ar& fCovPV[i]; } - ar& chi2; - ar& NDF; + ar& fChi2; + ar& fNDF; } }; } // namespace cbm::algo::ca diff --git a/reco/L1/L1Algo/L1Constants.h b/algo/ca/core/pars/CaConstants.h similarity index 95% rename from reco/L1/L1Algo/L1Constants.h rename to algo/ca/core/pars/CaConstants.h index 6b8012a991b7ba3294f9ed3a27486050195ac9de..d21238b7e471f568c1b3b568a494bf3cb8d171be 100644 --- a/reco/L1/L1Algo/L1Constants.h +++ b/algo/ca/core/pars/CaConstants.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2022 GSI Helmholtzzentrum fuer Schwerionenforschung, Darmstadt +/* Copyright (C) 2022-2023 GSI Helmholtzzentrum fuer Schwerionenforschung, Darmstadt SPDX-License-Identifier: GPL-3.0-only Authors: Sergey Gorbunov, Sergei Zharko [committer] */ @@ -9,8 +9,8 @@ * @author S.Zharko <s.zharko@gsi.de> ***********************************************************************************************************/ -#ifndef L1Constants_h -#define L1Constants_h 1 +#ifndef CA_CORE_CONSTANTS +#define CA_CORE_CONSTANTS 1 #include "CaSimd.h" using cbm::algo::ca::fmask; @@ -18,7 +18,7 @@ using cbm::algo::ca::fscal; // TODO: remove "using" from headers using cbm::algo::ca::fvec; // TODO: remove "using" from headers /// Namespace contains compile-time constants definition for the L1 tracking algorithm -namespace L1Constants +namespace cbm::algo::ca::constants { using cbm::algo::ca::fvec; @@ -69,12 +69,13 @@ namespace L1Constants { /* Particle masses used for track fit */ constexpr float kMuonMass = 0.10565800f; ///< Muon mass [GeV/c2] !! TODO: discrepancy in last two digits - constexpr float kPionMass = 0.13957039f; ///< Pion mass [GeV/c2] - constexpr float kKaonMass = 0.493677f; ///< Kaon mass [GeV/c2] (PDG 22.08.2023) + constexpr float kPionMass = 0.13957039f; ///< Pion mass [GeV/c2] + constexpr float kKaonMass = 0.493677f; ///< Kaon mass [GeV/c2] (PDG 22.08.2023) constexpr float kElectronMass = 0.000511f; ///< Electron mass [GeV/c2] constexpr float kProtonMass = 0.93827209f; ///< Proton mass [GeV/c2] (0.93827208816 - PDG 11.08.2022) constexpr double kSpeedOfLight = 29.9792458; ///< Speed of light [cm/ns] constexpr float kSpeedOfLightF = 29.9792; ///< Speed of light [cm/ns] (single precision) + constexpr double kSpeedOfLightInv = 1 / kSpeedOfLight; ///< Inverse speed of light [cm/ns] constexpr float kSpeedOfLightInvF = 1 / kSpeedOfLightF; ///< Inverse speed of light [cm/ns] (single precision) } // namespace phys @@ -92,9 +93,6 @@ namespace L1Constants constexpr int kAlignment = 16; ///< Default alignment of data (bytes) } // namespace misc - // Units - - // Colors of terminal log namespace clrs { @@ -196,7 +194,10 @@ namespace L1Constants constexpr char kGYbr[] = "\e[1;7;37m"; ///< bold-reverse grey constexpr char kWTbr[] = "\e[1;7;38m"; ///< bold-reverse white } // namespace clrs -} // end namespace L1Constants +} // namespace cbm::algo::ca::constants + +/// TEMPORARY !!!! +using namespace cbm::algo::ca; -#endif // L1Constants_h +#endif // CA_CORE_CONSTANTS diff --git a/reco/L1/CMakeLists.txt b/reco/L1/CMakeLists.txt index 1150d541a790ec46dc4fd6e5c54a295df97f9438..6ec4f9ab04368430d4b6060e58240cd25597eb57 100644 --- a/reco/L1/CMakeLists.txt +++ b/reco/L1/CMakeLists.txt @@ -17,6 +17,7 @@ set(INCLUDE_DIRECTORIES ${CMAKE_CURRENT_SOURCE_DIR}/L1Algo/utils ${CMAKE_CURRENT_SOURCE_DIR}/catools ${CMAKE_CURRENT_SOURCE_DIR}/utils + ) set(SRCS @@ -211,7 +212,7 @@ install(FILES CbmL1Counters.h L1Algo/L1Event.h L1Algo/L1EventMatch.h L1Algo/L1ObjectInitController.h - L1Algo/L1Constants.h + #L1Algo/L1Constants.h L1Algo/L1Utils.h L1Algo/L1SimdSerializer.h L1Algo/L1TrackPar.h diff --git a/reco/L1/CbmCaMCModule.cxx b/reco/L1/CbmCaMCModule.cxx index 71f4dc3fa3e5b7a9814e93b0f13f92725875012b..3087db20f2f990585d32223b34dea1157e1f66b4 100644 --- a/reco/L1/CbmCaMCModule.cxx +++ b/reco/L1/CbmCaMCModule.cxx @@ -45,9 +45,9 @@ // ** Action definition functions ** // ********************************* +using cbm::algo::ca::constants::clrs::kCL; // clear log +using cbm::algo::ca::constants::clrs::kRDb; // red bold log using cbm::ca::MCModule; -using L1Constants::clrs::kCL; // clear log -using L1Constants::clrs::kRDb; // red bold log // --------------------------------------------------------------------------------------------------------------------- // diff --git a/reco/L1/CbmCaMCModule.h b/reco/L1/CbmCaMCModule.h index d817e97e15429165df373037ee8268510aa2bfda..d1d97861a186b33c6b71fd1d9a7c2a575c02b5bb 100644 --- a/reco/L1/CbmCaMCModule.h +++ b/reco/L1/CbmCaMCModule.h @@ -39,10 +39,10 @@ #include <string_view> #include <type_traits> +#include "CaConstants.h" #include "CaMonitor.h" #include "CaToolsMCData.h" #include "CaToolsMCPoint.h" -#include "L1Constants.h" #include "L1InputData.h" #include "L1Parameters.h" #include "L1Undef.h" @@ -124,7 +124,7 @@ namespace cbm::ca /// @brief Sets first hit indexes container in different detectors /// @param source Array of indexes - void RegisterFirstHitIndexes(const std::array<int, L1Constants::size::kMaxNdetectors + 1>& source) + void RegisterFirstHitIndexes(const std::array<int, constants::size::kMaxNdetectors + 1>& source) { fpvFstHitId = &source; } @@ -261,7 +261,7 @@ namespace cbm::ca /// @brief Pointer to array of first hit indexes in the detector subsystem /// /// This array must be initialized in the run initialization function. - const std::array<int, L1Constants::size::kMaxNdetectors + 1>* fpvFstHitId = nullptr; + const std::array<int, constants::size::kMaxNdetectors + 1>* fpvFstHitId = nullptr; }; } // namespace cbm::ca diff --git a/reco/L1/CbmCaTimeSliceReader.cxx b/reco/L1/CbmCaTimeSliceReader.cxx index ffa58bc595c32384554e2575c6bb933a1c38dc02..5857683c4194db49f0928f28ee04331b9fed5df8 100644 --- a/reco/L1/CbmCaTimeSliceReader.cxx +++ b/reco/L1/CbmCaTimeSliceReader.cxx @@ -22,15 +22,15 @@ #include <algorithm> #include <numeric> -#include "L1Constants.h" +#include "CaConstants.h" #include "L1InputData.h" #include "L1Parameters.h" using ca::tools::HitRecord; +using cbm::algo::ca::constants::clrs::kCL; // clear log +using cbm::algo::ca::constants::clrs::kGNb; // green bold log +using cbm::algo::ca::constants::clrs::kRDb; // red bold log using cbm::ca::TimeSliceReader; -using L1Constants::clrs::kCL; // clear log -using L1Constants::clrs::kGNb; // green bold log -using L1Constants::clrs::kRDb; // red bold log // --------------------------------------------------------------------------------------------------------------------- // diff --git a/reco/L1/CbmCaTimeSliceReader.h b/reco/L1/CbmCaTimeSliceReader.h index 271f3c4286275b4cce0a65c91aeac69476099af1..823a5d0a9adfca94254b184ef4c23bf274826433 100644 --- a/reco/L1/CbmCaTimeSliceReader.h +++ b/reco/L1/CbmCaTimeSliceReader.h @@ -29,8 +29,8 @@ #include "TClonesArray.h" +#include "CaConstants.h" #include "CaToolsHitRecord.h" -#include "L1Constants.h" #include "L1Vector.h" @@ -200,7 +200,7 @@ namespace cbm::ca int fNofHitKeys = 0; ///< Recorded number of hit keys int fFirstHitKey = 0; ///< First index of hit key for the detector subsystem - std::array<int, L1Constants::size::kMaxNdetectors + 1> fvHitFirstIndexDet = {{0}}; ///< First hit index in detector + std::array<int, constants::size::kMaxNdetectors + 1> fvHitFirstIndexDet = {{0}}; ///< First hit index in detector }; } // namespace cbm::ca diff --git a/reco/L1/CbmL1.cxx b/reco/L1/CbmL1.cxx index 21a76099e39e58bdce8d165acd6e531d76cf2cad..7ac966a811f627603b64098e0454b78a533f4c7d 100644 --- a/reco/L1/CbmL1.cxx +++ b/reco/L1/CbmL1.cxx @@ -769,36 +769,36 @@ void CbmL1::Reconstruct(CbmEvent* event) int trackFirstHit = 0; for (L1Vector<CaTrack>::iterator it = fpAlgo->fRecoTracks.begin(); it != fpAlgo->fRecoTracks.end(); - trackFirstHit += it->NHits, it++) { + trackFirstHit += it->fNofHits, it++) { CbmL1Track t; for (int i = 0; i < L1TrackPar::kNparTr; i++) { - t.T[i] = it->TFirst[i]; - t.TLast[i] = it->TLast[i]; - t.Tpv[i] = it->Tpv[i]; + t.T[i] = it->fParFirst[i]; + t.TLast[i] = it->fParLast[i]; + t.Tpv[i] = it->fParPV[i]; } for (int i = 0; i < L1TrackPar::kNparCov; ++i) { - t.C[i] = it->CFirst[i]; - t.CLast[i] = it->CLast[i]; - t.Cpv[i] = it->Cpv[i]; + t.C[i] = it->fCovFirst[i]; + t.CLast[i] = it->fCovLast[i]; + t.Cpv[i] = it->fCovPV[i]; } - t.chi2 = it->chi2; - t.NDF = it->NDF; + t.chi2 = it->fChi2; + t.NDF = it->fNDF; t.Hits.clear(); - t.mass = fpAlgo->fDefaultMass; // pion mass + t.mass = fpAlgo->fDefaultMass; // muon mass t.is_electron = 0; t.SetId(fvRecoTracks.size()); - for (int i = 0; i < it->NHits; i++) { + for (int i = 0; i < it->fNofHits; i++) { int caHitId = fpAlgo->fRecoHits[trackFirstHit + i]; int cbmHitID = fpAlgo->GetInputData().GetHit(caHitId).ID; t.Hits.push_back(cbmHitID); } fvRecoTracks.push_back(t); - fMonitor.Increment(EMonitorKey::kRecoHit, it->NHits); + fMonitor.Increment(EMonitorKey::kRecoHit, it->fNofHits); } fMonitor.Increment(EMonitorKey::kRecoTrack, fvRecoTracks.size()); @@ -1022,7 +1022,7 @@ void CbmL1::IdealTrackFinder() if (MC.Hits.size() < 4) continue; CaTrack algoTr; - algoTr.NHits = 0; + algoTr.fNofHits = 0; L1Vector<int> hitIndices("CbmL1::hitIndices", fpAlgo->GetParameters()->GetNstationsActive(), -1); @@ -1039,11 +1039,11 @@ void CbmL1::IdealTrackFinder() if (hitI < 0) continue; // fpAlgo->fRecoHits.push_back(hitI); - algoTr.NHits++; + algoTr.fNofHits++; } - if (algoTr.NHits < 3) continue; + if (algoTr.fNofHits < 3) continue; for (int iH = 0; iH < fpAlgo->GetParameters()->GetNstationsActive(); iH++) { const int hitI = hitIndices[iH]; @@ -1051,12 +1051,12 @@ void CbmL1::IdealTrackFinder() fpAlgo->fRecoHits.push_back(hitI); } - algoTr.TFirst[0] = MC.x; - algoTr.TFirst[1] = MC.y; - algoTr.TFirst[2] = MC.px / MC.pz; - algoTr.TFirst[3] = MC.py / MC.pz; - algoTr.TFirst[4] = MC.q / MC.p; - algoTr.TFirst[5] = MC.z; + algoTr.fParFirst[0] = MC.x; + algoTr.fParFirst[1] = MC.y; + algoTr.fParFirst[2] = MC.px / MC.pz; + algoTr.fParFirst[3] = MC.py / MC.pz; + algoTr.fParFirst[4] = MC.q / MC.p; + algoTr.fParFirst[5] = MC.z; fpAlgo->fRecoTracks.push_back(algoTr); } diff --git a/reco/L1/CbmL1MCTrack.cxx b/reco/L1/CbmL1MCTrack.cxx index cdf746c11edfcc0e6d8512d56774657958309d58..c61997e712d4d4719045cabed7cfa0a9ff6adb5e 100644 --- a/reco/L1/CbmL1MCTrack.cxx +++ b/reco/L1/CbmL1MCTrack.cxx @@ -26,9 +26,12 @@ #include <iomanip> #include <sstream> +#include "CaConstants.h" #include "L1Algo/L1Algo.h" #include "L1Algo/L1Hit.h" +using cbm::algo::ca::constants::size::kMaxNstations; + CbmL1MCTrack::CbmL1MCTrack(double mass_, double q_, TVector3 vr, TLorentzVector vp, int _ID, int _mother_ID, int _pdg, unsigned int _process_ID) : mass(mass_) @@ -108,7 +111,7 @@ void CbmL1MCTrack::CountHitStations() { CbmL1* L1 = CbmL1::Instance(); - int stationNhits[L1Constants::size::kMaxNstations] {0}; + int stationNhits[kMaxNstations] {0}; for (unsigned int iH = 0; iH < Hits.size(); iH++) { CbmL1HitDebugInfo& sh = L1->fvHitDebugInfo[Hits[iH]]; diff --git a/reco/L1/L1Algo/L1Algo.cxx b/reco/L1/L1Algo/L1Algo.cxx index c1beb7096694856925b4e332a8149b0f382b9855..a5757b368fa6ccf5ef81b76773487aa4901f2076 100644 --- a/reco/L1/L1Algo/L1Algo.cxx +++ b/reco/L1/L1Algo/L1Algo.cxx @@ -12,7 +12,7 @@ L1Algo::L1Algo() { - for (unsigned int i = 0; i < L1Constants::size::kMaxNstations; i++) { + for (unsigned int i = 0; i < constants::size::kMaxNstations; i++) { vGridTime[i].AllocateMemory(); fTriplets[i].SetName(std::stringstream() << "L1Algo::fTriplets[" << i << "]"); } @@ -62,7 +62,7 @@ void L1Algo::ResetSliceData() fTrackCandidates.clear(); fTrackCandidates.reserve(nHits / 10); - for (unsigned int iS = 0; iS < L1Constants::size::kMaxNstations; iS++) { + for (unsigned int iS = 0; iS < constants::size::kMaxNstations; iS++) { int nHitsStation = fSliceHitIds[iS].size(); fTriplets[iS].clear(); fTriplets[iS].reserve(2 * nHitsStation); diff --git a/reco/L1/L1Algo/L1Algo.h b/reco/L1/L1Algo/L1Algo.h index f74298118a3f50b0d7df68c802e4c62576bfe562..ec05275691cc9de1b3dc983ce7667b9c146720ea 100644 --- a/reco/L1/L1Algo/L1Algo.h +++ b/reco/L1/L1Algo/L1Algo.h @@ -28,6 +28,7 @@ class L1AlgoDraw; #include <limits> #include <map> +#include "CaConstants.h" #include "CaTrack.h" #include "L1Branch.h" #include "L1CloneMerger.h" @@ -50,8 +51,8 @@ class CbmL1MCTrack; // ** Types definition (global) ** // ******************************* -using L1StationsArray_t = std::array<L1Station, L1Constants::size::kMaxNstations>; -using L1MaterialArray_t = std::array<L1Material, L1Constants::size::kMaxNstations>; +using L1StationsArray_t = std::array<L1Station, constants::size::kMaxNstations>; +using L1MaterialArray_t = std::array<L1Material, constants::size::kMaxNstations>; using Tindex = int; // TODO: Replace with L1HitIndex_t, if suitable #ifdef PULLS @@ -266,7 +267,7 @@ private: int fNfieldStations {0}; ///< number of stations in the field region //alignas(16) L1StationsArray_t fStations {}; ///< array of L1Station objects //alignas(16) L1MaterialArray_t fRadThick {}; ///< material for each station - float fDefaultMass {L1Constants::phys::kMuonMass}; ///< mass of the propagated particle [GeV/c2] + float fDefaultMass {constants::phys::kMuonMass}; ///< mass of the propagated particle [GeV/c2] // *************************** @@ -282,12 +283,12 @@ private: public: L1Vector<L1HitTimeInfo> fHitTimeInfo; - L1Grid vGrid[L1Constants::size::kMaxNstations]; ///< - L1Grid vGridTime[L1Constants::size::kMaxNstations]; ///< + L1Grid vGrid[constants::size::kMaxNstations]; ///< + L1Grid vGridTime[constants::size::kMaxNstations]; ///< - fscal fMaxRangeX[L1Constants::size::kMaxNstations]; - fscal fMaxRangeY[L1Constants::size::kMaxNstations]; - fscal fMaxRangeT[L1Constants::size::kMaxNstations]; + fscal fMaxRangeX[constants::size::kMaxNstations]; + fscal fMaxRangeY[constants::size::kMaxNstations]; + fscal fMaxRangeT[constants::size::kMaxNstations]; double fCaRecoTime {0.}; // time of the track finder + fitter @@ -299,14 +300,14 @@ public: L1Vector<L1HitIndex_t> fSliceRecoHits {"L1Algo::fSliceRecoHits"}; ///< packed hits of reconstructed tracks /// Created triplets vs station index - L1Vector<L1Triplet> fTriplets[L1Constants::size::kMaxNstations] {{"L1Algo::fTriplets"}}; + L1Vector<L1Triplet> fTriplets[constants::size::kMaxNstations] {{"L1Algo::fTriplets"}}; /// Track candidates created out of adjacent triplets before the final track selection. /// The candidates may share any amount of hits. L1Vector<L1Branch> fTrackCandidates {"L1Algo::fTrackCandidates"}; ///< indices of the sub-slice hits - L1Vector<L1HitIndex_t> fSliceHitIds[L1Constants::size::kMaxNstations] {"L1Algo::fSliceHitIds"}; + L1Vector<L1HitIndex_t> fSliceHitIds[constants::size::kMaxNstations] {"L1Algo::fSliceHitIds"}; L1Vector<L1Hit> fGridHits {"L1Algo::fGridHits"}; ///< hits, ordered with respect to their grid bins L1Vector<L1Hit> fGridHitsBuf {"L1Algo::fGridHitsBuf"}; ///< hits, ordered with respect to their grid bins @@ -317,8 +318,8 @@ public: L1Vector<L1HitPoint> fGridPoints {"L1Algo::fGridPoints"}; ///< grid points parallel to fGridHits L1Vector<L1HitPoint> fGridPointsBuf {"L1Algo::fGridPointsBuf"}; - L1HitIndex_t fGridHitStartIndex[L1Constants::size::kMaxNstations + 1] {0}; - L1HitIndex_t fGridHitStopIndex[L1Constants::size::kMaxNstations + 1] {0}; + L1HitIndex_t fGridHitStartIndex[constants::size::kMaxNstations + 1] {0}; + L1HitIndex_t fGridHitStopIndex[constants::size::kMaxNstations + 1] {0}; L1Vector<int> fStripToTrack {"L1Algo::fStripToTrack"}; // strip to track pointers @@ -402,10 +403,10 @@ private: [[gnu::always_inline]] inline unsigned int L1Algo::PackTripletId(unsigned int iStation, unsigned int iTriplet) { #ifndef FAST_CODE - assert(iStation < L1Constants::size::kMaxNstations); - assert(iTriplet < L1Constants::size::kMaxNtriplets); + assert(iStation < constants::size::kMaxNstations); + assert(iTriplet < constants::size::kMaxNtriplets); #endif - constexpr unsigned int kMoveStation = L1Constants::size::kTripletBits; + constexpr unsigned int kMoveStation = constants::size::kTripletBits; return (iStation << kMoveStation) + iTriplet; } @@ -413,7 +414,7 @@ private: // [[gnu::always_inline]] inline unsigned int L1Algo::TripletId2Station(unsigned int id) { - constexpr unsigned int kMoveStation = L1Constants::size::kTripletBits; + constexpr unsigned int kMoveStation = constants::size::kTripletBits; return id >> kMoveStation; } @@ -421,7 +422,7 @@ private: // [[gnu::always_inline]] inline unsigned int L1Algo::TripletId2Triplet(unsigned int id) { - constexpr unsigned int kTripletMask = (1u << L1Constants::size::kTripletBits) - 1u; + constexpr unsigned int kTripletMask = (1u << constants::size::kTripletBits) - 1u; return id & kTripletMask; } diff --git a/reco/L1/L1Algo/L1BaseStationInfo.cxx b/reco/L1/L1Algo/L1BaseStationInfo.cxx index c5b214ecb83f7568aff506a42b2357c2833b8f10..8792fa2c3c23bd56e3f89c3eb37fa8cc1db097b2 100644 --- a/reco/L1/L1Algo/L1BaseStationInfo.cxx +++ b/reco/L1/L1Algo/L1BaseStationInfo.cxx @@ -17,9 +17,9 @@ #include <Logger.h> // L1Algo core +#include "CaConstants.h" #include "L1Assert.h" #include "L1BaseStationInfo.h" -#include "L1Constants.h" #include "L1Def.h" // C++ STL #include <iomanip> @@ -139,8 +139,8 @@ void L1BaseStationInfo::SetFieldFunction( L1MASSERT(0, fInitController.GetFlag(EInitKey::kYmax), "Attempt to set magnetic field slice before Ymax size of the station"); // TODO: Change names of variables according to convention (S.Zh.) - constexpr int M = L1Constants::size::kMaxFieldApproxPolynomialOrder; - constexpr int N = L1Constants::size::kMaxNFieldApproxCoefficients; + constexpr int M = constants::size::kMaxFieldApproxPolynomialOrder; + constexpr int N = constants::size::kMaxNFieldApproxCoefficients; constexpr int D = 3; ///> number of dimensions // SLE initialization diff --git a/reco/L1/L1Algo/L1CAIteration.cxx b/reco/L1/L1Algo/L1CAIteration.cxx index 060fec635671fa8f4c68593f275c87ff29f62728..9483a27565dad855cf73ab586a5725594743932b 100644 --- a/reco/L1/L1Algo/L1CAIteration.cxx +++ b/reco/L1/L1Algo/L1CAIteration.cxx @@ -14,9 +14,8 @@ #include <limits> #include <sstream> -#include "L1Constants.h" +#include "CaConstants.h" -using namespace L1Constants::size; // --------------------------------------------------------------------------------------------------------------------- // @@ -26,6 +25,7 @@ L1CAIteration::L1CAIteration(const std::string& name) : fName(name) {} // bool L1CAIteration::Check() const { + using constants::size::kMaxNstations; constexpr float kMaxFloat = std::numeric_limits<float>::max(); bool res = true; // TODO: SZh 06.10.2022: These values should be tuned. At the moment the std::numeric_limits<T>::max value is used for diff --git a/reco/L1/L1Algo/L1CaTrackFinder.cxx b/reco/L1/L1Algo/L1CaTrackFinder.cxx index c4e0841016bc4c6e1ba603f0d4785d5b3a5017fd..1ad290493866bb3ac102d99df4d29c54b5ddefe4 100644 --- a/reco/L1/L1Algo/L1CaTrackFinder.cxx +++ b/reco/L1/L1Algo/L1CaTrackFinder.cxx @@ -181,10 +181,10 @@ void L1Algo::CaTrackFinder() int trackFirstHit = 0; for (L1Vector<Track>::iterator it = fSliceRecoTracks.begin(); it != fSliceRecoTracks.end(); - trackFirstHit += it->NHits, it++) { + trackFirstHit += it->fNofHits, it++) { bool isTrackCompletelyInOverlap = true; - for (int ih = 0; ih < it->NHits; ih++) { + for (int ih = 0; ih < it->fNofHits; ih++) { int caHitId = fSliceRecoHits[trackFirstHit + ih]; L1HitTimeInfo& info = fHitTimeInfo[caHitId]; if (info.fEventTimeMax < tsStart) { // this hit is before the overlap @@ -203,7 +203,7 @@ void L1Algo::CaTrackFinder() // // release the track hits - for (int i = 0; i < it->NHits; i++) { + for (int i = 0; i < it->fNofHits; i++) { int caHitId = fSliceRecoHits[trackFirstHit + i]; const auto& h = fInputData.GetHit(caHitId); fvHitKeyFlags[h.f] = 0; @@ -213,7 +213,7 @@ void L1Algo::CaTrackFinder() else { // save the track fRecoTracks.push_back(*it); // mark the track hits as used - for (int i = 0; i < it->NHits; i++) { + for (int i = 0; i < it->fNofHits; i++) { int caHitId = fSliceRecoHits[trackFirstHit + i]; const auto& h = fInputData.GetHit(caHitId); fvHitKeyFlags[h.f] = 1; diff --git a/reco/L1/L1Algo/L1CaTrackFinderSlice.cxx b/reco/L1/L1Algo/L1CaTrackFinderSlice.cxx index 42ed8f1e5a5a428d428b02eb3eee0b28730bedc4..9f14b1b5df619a855bdcb7412609883c46df9eca 100644 --- a/reco/L1/L1Algo/L1CaTrackFinderSlice.cxx +++ b/reco/L1/L1Algo/L1CaTrackFinderSlice.cxx @@ -165,7 +165,7 @@ void L1Algo::CaTrackFinderSlice() // static Tindex stat_nDoublets[fNFindIterations] = {0}; static Tindex stat_nTriplets[fNFindIterations] = {0}; - static Tindex stat_nLevels[L1Constants::size::kMaxNstations - 2][fNFindIterations] = {{0}}; + static Tindex stat_nLevels[constants::size::kMaxNstations - 2][fNFindIterations] = {{0}}; static Tindex stat_nCalls[fNFindIterations] = {0}; // n calls of CAFindTrack static Tindex stat_nTrCandidates[fNFindIterations] = {0}; @@ -441,7 +441,7 @@ void L1Algo::CaTrackFinderSlice() if (fpCurrentIteration->GetTrackFromTripletsFlag()) { min_level = 0; } L1Branch curr_tr; - L1Branch new_tr[L1Constants::size::kMaxNstations]; + L1Branch new_tr[constants::size::kMaxNstations]; L1Branch best_tr; fscal curr_chi2 = 0; @@ -665,7 +665,7 @@ void L1Algo::CaTrackFinderSlice() sumTime += (hit.t - timeFlight); } Track t; - t.NHits = tr.NHits; + t.fNofHits = tr.NHits; fSliceRecoTracks.push_back(t); if (0) { // SG debug cout << "store track " << iCandidate << " chi2= " << tr.chi2 << endl; @@ -742,7 +742,7 @@ void L1Algo::CaTrackFinderSlice() } // for (int isec // ---- Loop over Track Finder iterations: END -----------------------------------------------------------// - if constexpr (L1Constants::control::kIfMergeClones) { + if constexpr (constants::control::kIfMergeClones) { //CAMergeClones(); // Fit tracks this->L1KFTrackFitter(); diff --git a/reco/L1/L1Algo/L1CloneMerger.cxx b/reco/L1/L1Algo/L1CloneMerger.cxx index d4346f0cb601bd9bf3a1f6c14b713ac33f6a7563..2145c9f355196d18b6dd8c04d75176bd28cdeb4b 100644 --- a/reco/L1/L1Algo/L1CloneMerger.cxx +++ b/reco/L1/L1Algo/L1CloneMerger.cxx @@ -67,7 +67,7 @@ void L1CloneMerger::Exec(L1Vector<Track>& extTracks, L1Vector<L1HitIndex_t>& ext for (int iTr = 0; iTr < nTracks; iTr++) { firstHit[iTr] = start_hit; firstStation[iTr] = frAlgo.GetInputData().GetHit(extRecoHits[start_hit]).iSt; - start_hit += extTracks[iTr].NHits - 1; + start_hit += extTracks[iTr].fNofHits - 1; lastHit[iTr] = start_hit; lastStation[iTr] = frAlgo.GetInputData().GetHit(extRecoHits[start_hit]).iSt; start_hit++; @@ -100,20 +100,20 @@ void L1CloneMerger::Exec(L1Vector<Track>& extTracks, L1Vector<L1HitIndex_t>& ext #pragma omp parallel for #endif for (int iTr = 0; iTr < nTracks; iTr++) { - if (extTracks[iTr].NHits > maxLengthForMerge) continue; + if (extTracks[iTr].fNofHits > maxLengthForMerge) continue; for (int jTr = 0; jTr < nTracks; jTr++) { - if (extTracks[jTr].NHits > maxLengthForMerge) continue; + if (extTracks[jTr].fNofHits > maxLengthForMerge) continue; if (iTr == jTr) continue; if (firstStation[iTr] <= lastStation[jTr]) continue; unsigned short stab = firstStation[iTr]; - Tb.copyFromArrays(extTracks[iTr].TFirst, extTracks[iTr].CFirst); + Tb.copyFromArrays(extTracks[iTr].fParFirst, extTracks[iTr].fCovFirst); fitB.SetQp0(fitB.Tr().qp); unsigned short staf = lastStation[jTr]; - Tf.copyFromArrays(extTracks[jTr].TLast, extTracks[jTr].CLast); + Tf.copyFromArrays(extTracks[jTr].fParLast, extTracks[jTr].fCovLast); fitF.SetQp0(fitF.Tr().qp); if (Tf.nTimeMeasurements[0] > 0 && Tb.nTimeMeasurements[0] > 0) { @@ -179,7 +179,7 @@ void L1CloneMerger::Exec(L1Vector<Track>& extTracks, L1Vector<L1HitIndex_t>& ext if (neighbour[iTr] < kNoNeighbour) { isStored[neighbour[iTr]] = true; - fTracksNew.back().NHits += extTracks[neighbour[iTr]].NHits; + fTracksNew.back().fNofHits += extTracks[neighbour[iTr]].fNofHits; for (L1HitIndex_t HI = firstHit[neighbour[iTr]]; HI <= lastHit[neighbour[iTr]]; HI++) fRecoHitsNew.push_back(extRecoHits[HI]); } diff --git a/reco/L1/L1Algo/L1CloneMerger.h b/reco/L1/L1Algo/L1CloneMerger.h index 8f75a2a2e19d7b2fc7952c7675c71a6b1bb79898..f4e89d8e060e6cfc51212901d1033ea438c5f474 100644 --- a/reco/L1/L1Algo/L1CloneMerger.h +++ b/reco/L1/L1Algo/L1CloneMerger.h @@ -10,6 +10,7 @@ #ifndef L1CloneMerger_h #define L1CloneMerger_h 1 +#include "CaConstants.h" // TEMPORARY FOR fvec, fscal #include "L1Def.h" #include "L1Hit.h" // For L1HitIndex_t #include "L1Vector.h" diff --git a/reco/L1/L1Algo/L1ConfigRW.cxx b/reco/L1/L1Algo/L1ConfigRW.cxx index 328ebc7bd3a6a14f0702c5feda75918a1257da18..ffb911eb8482b34e86a0a47487512676ec9df9d1 100644 --- a/reco/L1/L1Algo/L1ConfigRW.cxx +++ b/reco/L1/L1Algo/L1ConfigRW.cxx @@ -18,7 +18,7 @@ #include <yaml-cpp/yaml.h> -#include "L1Constants.h" +#include "CaConstants.h" #include "L1InitManager.h" using namespace std::string_literals; @@ -214,7 +214,7 @@ std::vector<std::set<int>> L1ConfigRW::ReadInactiveStationMap() if (node && node.size()) { std::unordered_map<std::string, int> mDetNameToID; - for (int iDet = 0; iDet < L1Constants::size::kMaxNdetectors; ++iDet) { + for (int iDet = 0; iDet < constants::size::kMaxNdetectors; ++iDet) { auto detName = boost::algorithm::to_lower_copy(fpInitManager->GetDetectorName(static_cast<L1DetectorID>(iDet))); if (!detName.size()) { continue; } mDetNameToID[detName] = iDet; diff --git a/reco/L1/L1Algo/L1Field.cxx b/reco/L1/L1Algo/L1Field.cxx index c50562a226645fc3311d4b2914eb5dcf1d5169d0..7d68667756cf95607574654d32ead62aa60b6ba4 100644 --- a/reco/L1/L1Algo/L1Field.cxx +++ b/reco/L1/L1Algo/L1Field.cxx @@ -60,7 +60,7 @@ std::ostream& operator<<(std::ostream& out, const L1FieldValue& B) // L1FieldSlice::L1FieldSlice() { - for (int i = 0; i < L1Constants::size::kMaxNFieldApproxCoefficients; ++i) { + for (int i = 0; i < constants::size::kMaxNFieldApproxCoefficients; ++i) { cx[i] = undef::kFvc; cy[i] = undef::kFvc; cz[i] = undef::kFvc; @@ -73,7 +73,7 @@ L1FieldSlice::L1FieldSlice() void L1FieldSlice::CheckConsistency() const { /* Check SIMD data vectors for consistent initialization */ - for (int i = 0; i < L1Constants::size::kMaxNFieldApproxCoefficients; ++i) { + for (int i = 0; i < constants::size::kMaxNFieldApproxCoefficients; ++i) { L1Utils::CheckSimdVectorEquality(cx[i], "L1FieldSlice: cx"); L1Utils::CheckSimdVectorEquality(cy[i], "L1FieldSlice: cy"); L1Utils::CheckSimdVectorEquality(cz[i], "L1FieldSlice: cz"); @@ -135,7 +135,7 @@ std::string L1FieldSlice::ToString(int indentLevel) const constexpr char indentChar = '\t'; std::string indent(indentLevel, indentChar); aStream << indent << "idx CX CY CZ"; - for (int i = 0; i < L1Constants::size::kMaxNFieldApproxCoefficients; ++i) { + for (int i = 0; i < constants::size::kMaxNFieldApproxCoefficients; ++i) { aStream << '\n' << indent; aStream << std::setw(3) << std::setfill(' ') << i << ' '; aStream << std::setw(12) << std::setfill(' ') << cx[i][0] << ' '; diff --git a/reco/L1/L1Algo/L1Field.h b/reco/L1/L1Algo/L1Field.h index e8069ce082cc578f84b5106fa9b74bab08222825..55cd1da5c897b65f7f16b6de268b26c6ef82b1d5 100644 --- a/reco/L1/L1Algo/L1Field.h +++ b/reco/L1/L1Algo/L1Field.h @@ -7,7 +7,7 @@ #include <string> -#include "L1Constants.h" +#include "CaConstants.h" #include "L1Def.h" #include "L1SimdSerializer.h" #include "L1Undef.h" @@ -92,12 +92,10 @@ public: // NOTE: We don't use an initialization of arrays here because we cannot be sure // if the underlying type (fvec) has a default constructor, but // we are sure, that it can be initialized with a float. (S.Zharko) - fvec cx - [L1Constants::size::kMaxNFieldApproxCoefficients]; ///< Polynomial coefficients for x-component of the field value - fvec cy - [L1Constants::size::kMaxNFieldApproxCoefficients]; ///< Polynomial coefficients for y-component of the field value - fvec cz - [L1Constants::size::kMaxNFieldApproxCoefficients]; ///< Polynomial coefficients for z-component of the field value + static constexpr auto kMaxNFieldApproxCoefficients = constants::size::kMaxNFieldApproxCoefficients; + fvec cx[kMaxNFieldApproxCoefficients]; ///< Polynomial coefficients for x-component of the field value + fvec cy[kMaxNFieldApproxCoefficients]; ///< Polynomial coefficients for y-component of the field value + fvec cz[kMaxNFieldApproxCoefficients]; ///< Polynomial coefficients for z-component of the field value fvec z {undef::kFvc}; ///< z coordinate of the slice diff --git a/reco/L1/L1Algo/L1Hit.h b/reco/L1/L1Algo/L1Hit.h index 88999fa034b80bf58472a61986a8a0d5c71f1060..5db416e2df7ab4d76de34b7f576d0fff6207b7a9 100644 --- a/reco/L1/L1Algo/L1Hit.h +++ b/reco/L1/L1Algo/L1Hit.h @@ -14,10 +14,9 @@ #include <boost/serialization/access.hpp> -#include "L1Constants.h" -using L1HitIndex_t = unsigned /*short*/ int; ///< Index of L1Hit -using L1StripIndex_t = unsigned /*short*/ int; ///< Index of the station strip +using L1HitIndex_t = unsigned int; ///< Index of L1Hit +using L1StripIndex_t = unsigned int; ///< Index of the station strip /// /// L1Hit class describes a generic hit for CA tracker diff --git a/reco/L1/L1Algo/L1HitPoint.h b/reco/L1/L1Algo/L1HitPoint.h index 8cf9d874ced37eca2041386625f1dfba179fe7ba..34083cf55cf4973df8d2bc4147abcfab3e16e738 100644 --- a/reco/L1/L1Algo/L1HitPoint.h +++ b/reco/L1/L1Algo/L1HitPoint.h @@ -5,6 +5,7 @@ #ifndef _L1HitPoint_h_ #define _L1HitPoint_h_ +#include "CaConstants.h" #include "L1Hit.h" /// contain strips positions and coordinates of the hit diff --git a/reco/L1/L1Algo/L1IODataManager.cxx b/reco/L1/L1Algo/L1IODataManager.cxx index 66d695fc590552099f21f7d9c13f4b08dff2b348..bdb5d46ce7f1aaebd986a74e3a6be53424abba60 100644 --- a/reco/L1/L1Algo/L1IODataManager.cxx +++ b/reco/L1/L1Algo/L1IODataManager.cxx @@ -25,7 +25,7 @@ bool L1IODataManager::SendInputData(L1Algo* pAlgo) InitData(); // Check data before input - if (CheckInputData<L1Constants::control::kInputDataQaLevel>()) { + if (CheckInputData<constants::control::kInputDataQaLevel>()) { assert(pAlgo); pAlgo->ReceiveInputData(std::move(fInputData)); return true; @@ -42,7 +42,7 @@ bool L1IODataManager::SendInputData(L1InputData& destination) InitData(); // Check data before input - if (CheckInputData<L1Constants::control::kInputDataQaLevel>()) { + if (CheckInputData<constants::control::kInputDataQaLevel>()) { destination = std::move(fInputData); assert(this->GetNofHits() == 0); return true; @@ -80,7 +80,7 @@ void L1IODataManager::ResetInputData(L1HitIndex_t nHits) noexcept L1InputData tmp; fInputData.Swap(tmp); fLastStreamId = -1; - fInputData.fStreamStartIndices.reserve(2000); // TODO: What are these numbers? Please, put them into L1Constants.h + fInputData.fStreamStartIndices.reserve(2000); // TODO: What are these numbers? Please, put them into constants.h fInputData.fStreamStopIndices.reserve(2000); fInputData.fHits.reserve(nHits); } @@ -93,7 +93,7 @@ void L1IODataManager::InitData() //std::cout << "N data streams: " << fInputData.fStreamStartIndices.size() << std::endl; - // TODO: SZh 14.08.2023: Move the max allowed number of streams to the L1Constants.h + // TODO: SZh 14.08.2023: Move the max allowed number of streams to the constants.h if (fInputData.fStreamStartIndices.size() > 3000) { LOG(warning) << "L1: unexpected order of input data: too many data streams!!! "; fInputData.fStreamStartIndices.reduce(3000); @@ -111,7 +111,7 @@ void L1IODataManager::InitData() void L1IODataManager::WriteInputData(const std::string& fileName) const { // Check current data object for consistency - if (!CheckInputData<L1Constants::control::kInputDataQaLevel>()) { + if (!CheckInputData<constants::control::kInputDataQaLevel>()) { LOG(error) << "L1: input data writer: attempt to write invalid input data object to file \"" << fileName << "\""; return; } diff --git a/reco/L1/L1Algo/L1IODataManager.h b/reco/L1/L1Algo/L1IODataManager.h index b7902481d6b81077285cf27457398ffd47f466de..0787d8b1a8baaff85cc79c6055e9f87d4918890a 100644 --- a/reco/L1/L1Algo/L1IODataManager.h +++ b/reco/L1/L1Algo/L1IODataManager.h @@ -10,7 +10,7 @@ #ifndef L1IODataManager_h #define L1IODataManager_h 1 -#include "L1Constants.h" +#include "CaConstants.h" #include "L1InputData.h" class L1Algo; @@ -18,7 +18,7 @@ class L1Algo; /// Class L1IODataManager defines the interface for input and output data flow in the L1 tracking algorithm /// -class alignas(L1Constants::misc::kAlignment) L1IODataManager { +class alignas(constants::misc::kAlignment) L1IODataManager { public: // *************************** // ** Member functions list ** diff --git a/reco/L1/L1Algo/L1InitManager.cxx b/reco/L1/L1Algo/L1InitManager.cxx index 0f0f49120eecc6e57d5c74bd5234c507ab0f1736..49d602b0af1d50c4ddb0e149a76b6f91abffd2d9 100644 --- a/reco/L1/L1Algo/L1InitManager.cxx +++ b/reco/L1/L1Algo/L1InitManager.cxx @@ -20,9 +20,9 @@ #include "L1Assert.h" #include "L1ConfigRW.h" -using L1Constants::clrs::kCL; // end colored log -using L1Constants::clrs::kGNb; // bold green log -using L1Constants::clrs::kRDb; // bold red log +using constants::clrs::kCL; // end colored log +using constants::clrs::kGNb; // bold green log +using constants::clrs::kRDb; // bold red log // ---------------------------------------------------------------------------------------------------------------------- // @@ -340,15 +340,15 @@ void L1InitManager::ReadSearchWindows(const std::string& fileName) ia >> swBuffer; int iStationID = swBuffer.GetStationID(); int iTrackGrID = swBuffer.GetTrackGroupID(); - if (iStationID < 0 || iStationID > L1Constants::size::kMaxNstations) { + if (iStationID < 0 || iStationID > constants::size::kMaxNstations) { errMsg << "\t- wrong station id for entry " << iW << ": " << iStationID << " (should be between 0 and " - << L1Constants::size::kMaxNstations << ")\n"; + << constants::size::kMaxNstations << ")\n"; } - if (iTrackGrID < 0 || iTrackGrID > L1Constants::size::kMaxNtrackGroups) { + if (iTrackGrID < 0 || iTrackGrID > constants::size::kMaxNtrackGroups) { errMsg << "\t- wrong track group id for entry " << iW << ": " << iTrackGrID << " (should be between 0 and " - << L1Constants::size::kMaxNtrackGroups << ")\n"; + << constants::size::kMaxNtrackGroups << ")\n"; } - fParameters.fSearchWindows[iTrackGrID * L1Constants::size::kMaxNstations + iStationID] = swBuffer; + fParameters.fSearchWindows[iTrackGrID * constants::size::kMaxNstations + iStationID] = swBuffer; } if (errMsg.str().size()) { LOG(fatal) << "L1InitManager: some errors occurred while reading search windows: " << errMsg.str(); @@ -508,11 +508,11 @@ void L1InitManager::CheckStationsInfoInit() if (!bStationsFinalized) { LOG(fatal) << "At least one of the L1BaseStationInfo objects is not finalized"; } // (2) Check for maximum allowed number of stations - if (fParameters.GetNstationsGeometry() > L1Constants::size::kMaxNstations) { + if (fParameters.GetNstationsGeometry() > constants::size::kMaxNstations) { LOG(fatal) << "Actual total number of registered stations in geometry (" << fParameters.GetNstationsGeometry() - << ") is larger then possible (" << L1Constants::size::kMaxNstations + << ") is larger then possible (" << constants::size::kMaxNstations << "). Please, select another set of active tracking detectors or recompile the code with enlarged" - << " L1Constants::size::kMaxNstations value"; + << " constants::size::kMaxNstations value"; } } fInitController.SetFlag(EInitKey::kStationsInfo, ifInitPassed); diff --git a/reco/L1/L1Algo/L1InitManager.h b/reco/L1/L1Algo/L1InitManager.h index b73102b3fb8cc744fe4fec04d7197b0c8a42f9b0..65cd46ca053228c860f862665fdd88329822b33e 100644 --- a/reco/L1/L1Algo/L1InitManager.h +++ b/reco/L1/L1Algo/L1InitManager.h @@ -17,9 +17,9 @@ #include <type_traits> #include <unordered_map> +#include "CaConstants.h" #include "L1BaseStationInfo.h" #include "L1CAIteration.h" -#include "L1Constants.h" #include "L1EArray.h" #include "L1Field.h" #include "L1ObjectInitController.h" @@ -95,7 +95,7 @@ private: using L1FieldFunction_t = std::function<void(const double (&xyz)[3], double (&B)[3])>; using InitController_t = L1ObjectInitController<static_cast<int>(EInitKey::kEnd), EInitKey>; template<typename T> - using L1DetectorIDArr_t = std::array<T, L1Constants::size::kMaxNdetectors>; + using L1DetectorIDArr_t = std::array<T, constants::size::kMaxNdetectors>; public: /// Default constructor @@ -227,8 +227,8 @@ public: template<size_t Size> void SetDetectorNames(const std::array<const char*, Size>& container) { - static_assert(Size <= L1Constants::size::kMaxNdetectors, - "Please, be ensured that the L1Constants::size::kMaxNdetectors is not lower then the " + static_assert(Size <= constants::size::kMaxNdetectors, + "Please, be ensured that the constants::size::kMaxNdetectors is not lower then the " "L1DetectorID::kEND value, provided by your setup"); std::copy(container.begin(), container.end(), fvDetectorNames.begin()); } diff --git a/reco/L1/L1Algo/L1InputData.h b/reco/L1/L1Algo/L1InputData.h index ae5c8a930b5cdb6d0d1ef701bd35bcae6162863d..75f29174869f2b9c1bd0094afb475887d653f490 100644 --- a/reco/L1/L1Algo/L1InputData.h +++ b/reco/L1/L1Algo/L1InputData.h @@ -13,13 +13,14 @@ #include <boost/serialization/access.hpp> #include <boost/serialization/array.hpp> +#include "CaConstants.h" #include "L1Hit.h" #include "L1Vector.h" /// Class L1InputData represents a block of the input data to the L1 tracking algorithm per event or time slice. /// Filling of the L1InputData is carried out with L1IODataManager class /// -class alignas(L1Constants::misc::kAlignment) L1InputData { +class alignas(constants::misc::kAlignment) L1InputData { public: // ************************** // ** Friend classes list ** diff --git a/reco/L1/L1Algo/L1Parameters.cxx b/reco/L1/L1Algo/L1Parameters.cxx index 184c118030be32a4119f6dbc5fb3b52e8517712b..5b74c59a66c43d059421da9b8b34debd3cccbb29 100644 --- a/reco/L1/L1Algo/L1Parameters.cxx +++ b/reco/L1/L1Algo/L1Parameters.cxx @@ -206,10 +206,10 @@ void L1Parameters::Print(int /*verbosityLevel*/) const { LOG(info) << ToString() // std::string L1Parameters::ToString(int verbosity, int indentLevel) const { - using L1Constants::clrs::kCL; // color the log text - using L1Constants::clrs::kCLb; - using L1Constants::clrs::kGN; - using L1Constants::clrs::kRD; + using constants::clrs::kCL; // color the log text + using constants::clrs::kCLb; + using constants::clrs::kGN; + using constants::clrs::kRD; using std::setfill; using std::setw; std::stringstream msg {}; @@ -223,11 +223,11 @@ std::string L1Parameters::ToString(int verbosity, int indentLevel) const msg << " ----- CA parameters list -----\n"; msg << indent << kCLb << "COMPILE TIME CONSTANTS:\n" << kCL; - msg << indent << indentCh << "Bits to code one station: " << L1Constants::size::kStationBits << '\n'; - msg << indent << indentCh << "Bits to code one triplet: " << L1Constants::size::kTripletBits << '\n'; - msg << indent << indentCh << "Max number of detectors: " << L1Constants::size::kMaxNdetectors << '\n'; - msg << indent << indentCh << "Max number of stations: " << L1Constants::size::kMaxNstations << '\n'; - msg << indent << indentCh << "Max number of triplets: " << L1Constants::size::kMaxNtriplets << '\n'; + msg << indent << indentCh << "Bits to code one station: " << constants::size::kStationBits << '\n'; + msg << indent << indentCh << "Bits to code one triplet: " << constants::size::kTripletBits << '\n'; + msg << indent << indentCh << "Max number of detectors: " << constants::size::kMaxNdetectors << '\n'; + msg << indent << indentCh << "Max number of stations: " << constants::size::kMaxNstations << '\n'; + msg << indent << indentCh << "Max number of triplets: " << constants::size::kMaxNtriplets << '\n'; msg << indent << kCLb << "RUNTIME CONSTANTS:\n" << kCL; msg << indent << indentCh << "Random seed: " << fRandomSeed << '\n'; msg << indent << indentCh << "Max number of doublets per singlet: " << fMaxDoubletsPerSinglet << '\n'; @@ -243,13 +243,13 @@ std::string L1Parameters::ToString(int verbosity, int indentLevel) const } msg << indent << indentCh << kCLb << "NUMBER OF STATIONS:\n" << kCL; msg << indent << indentCh << indentCh << "Number of stations (Geometry): "; - for (int iDet = 0; iDet < L1Constants::size::kMaxNdetectors; ++iDet) { + for (int iDet = 0; iDet < constants::size::kMaxNdetectors; ++iDet) { msg << setw(2) << setfill(' ') << this->GetNstationsGeometry(static_cast<L1DetectorID>(iDet)) << ' '; } msg << " | total = " << setw(2) << setfill(' ') << this->GetNstationsGeometry(); msg << '\n'; msg << indent << indentCh << indentCh << "Number of stations (Active): "; - for (int iDet = 0; iDet < L1Constants::size::kMaxNdetectors; ++iDet) { + for (int iDet = 0; iDet < constants::size::kMaxNdetectors; ++iDet) { msg << setw(2) << setfill(' ') << this->GetNstationsActive(static_cast<L1DetectorID>(iDet)) << ' '; } msg << " | total = " << setw(2) << setfill(' ') << this->GetNstationsActive(); diff --git a/reco/L1/L1Algo/L1Parameters.h b/reco/L1/L1Algo/L1Parameters.h index 4b0a650f7f6861f7c7bacf26defb9445c4b8aa1e..5b27bc361f538aee93b044e8d939762d1360dc76 100644 --- a/reco/L1/L1Algo/L1Parameters.h +++ b/reco/L1/L1Algo/L1Parameters.h @@ -18,8 +18,8 @@ #include <type_traits> #include <utility> +#include "CaConstants.h" #include "L1CAIteration.h" -#include "L1Constants.h" #include "L1Material.h" #include "L1SearchWindow.h" #include "L1Station.h" @@ -31,15 +31,15 @@ enum class L1DetectorID; /// Type definitions for used containers using L1IterationsContainer_t = L1Vector<L1CAIteration>; -using L1StationsContainer_t = std::array<L1Station, L1Constants::size::kMaxNstations>; -using L1MaterialContainer_t = std::array<L1Material, L1Constants::size::kMaxNstations>; +using L1StationsContainer_t = std::array<L1Station, constants::size::kMaxNstations>; +using L1MaterialContainer_t = std::array<L1Material, constants::size::kMaxNstations>; /// Class L1Parameters represents a container for all external parameters of the L1 tracking algorithm, /// including geometry parameters and physics cuts. The instance of the L1Parameters is constructed inside /// L1InitManager class and then moved to the L1Algo instance. /// -class alignas(L1Constants::misc::kAlignment) L1Parameters { +class alignas(constants::misc::kAlignment) L1Parameters { // ******************************** // ** Friend classes declaration ** @@ -49,7 +49,7 @@ class alignas(L1Constants::misc::kAlignment) L1Parameters { using L1DetectorID_t = std::underlying_type_t<L1DetectorID>; template<typename T> - using StationArray_t = std::array<T, L1Constants::size::kMaxNstations>; + using StationArray_t = std::array<T, constants::size::kMaxNstations>; public: /// Default constructor @@ -144,7 +144,7 @@ public: { assert(iStation < fNstationsActiveTotal && iStation > 0); assert(iTrackGr < int(fCAIterations.size())); - return fSearchWindows[iTrackGr * L1Constants::size::kMaxNstations + iStation]; + return fSearchWindows[iTrackGr * constants::size::kMaxNstations + iStation]; } /// @brief Gets reference to the array of station thickness map @@ -221,41 +221,41 @@ private: unsigned int fMaxDoubletsPerSinglet {150}; ///< Upper-bound cut on max number of doublets per one singlet unsigned int fMaxTripletPerDoublets {15}; ///< Upper-bound cut on max number of triplets per one doublet - alignas(L1Constants::misc::kAlignment) L1IterationsContainer_t fCAIterations {}; ///< L1 tracking iterations vector + alignas(constants::misc::kAlignment) L1IterationsContainer_t fCAIterations {}; ///< L1 tracking iterations vector /************************* ** Geometry parameters ** *************************/ /// Target position - alignas(L1Constants::misc::kAlignment) std::array<fvec, /*nDimensions*/ 3> fTargetPos {L1Utils::kNaN, L1Utils::kNaN, - L1Utils::kNaN}; + alignas(constants::misc::kAlignment) std::array<fvec, /*nDimensions*/ 3> fTargetPos {L1Utils::kNaN, L1Utils::kNaN, + L1Utils::kNaN}; /// Field value object at primary vertex (between target and the first station) - alignas(L1Constants::misc::kAlignment) L1FieldValue fVertexFieldValue {}; + alignas(constants::misc::kAlignment) L1FieldValue fVertexFieldValue {}; /// Field region object at primary vertex (between target and the first station) - alignas(L1Constants::misc::kAlignment) L1FieldRegion fVertexFieldRegion {}; + alignas(constants::misc::kAlignment) L1FieldRegion fVertexFieldRegion {}; /// Array of stations - alignas(L1Constants::misc::kAlignment) L1StationsContainer_t fStations {}; + alignas(constants::misc::kAlignment) L1StationsContainer_t fStations {}; /// Array of station thickness map - alignas(L1Constants::misc::kAlignment) L1MaterialContainer_t fThickMap {}; + alignas(constants::misc::kAlignment) L1MaterialContainer_t fThickMap {}; // ** Station layout arrays ** /// @brief First index of the station on the particular detector /// The last element of the array corresponds to the total number of geometry stations - alignas(L1Constants::misc::kAlignment) std::array<int, L1Constants::size::kMaxNdetectors + 1> fvFirstGeoId {}; + alignas(constants::misc::kAlignment) std::array<int, constants::size::kMaxNdetectors + 1> fvFirstGeoId {}; /// @brief Map of (local, det) to geo indices /// /// @note Usage: /// iStGeo = fvLocaToGeoIdMap[fvFirstGeoId[iDet] + iStLocal]; /// geo index. - alignas(L1Constants::misc::kAlignment) StationArray_t<int> fvLocalToGeoIdMap {}; + alignas(constants::misc::kAlignment) StationArray_t<int> fvLocalToGeoIdMap {}; /// @brief Map of geo to (local, det) indices - alignas(L1Constants::misc::kAlignment) StationArray_t<std::pair<L1DetectorID, int>> fvGeoToLocalIdMap {}; + alignas(constants::misc::kAlignment) StationArray_t<std::pair<L1DetectorID, int>> fvGeoToLocalIdMap {}; /// @brief Map of geo to active indices /// @@ -264,26 +264,25 @@ private: /// @example Let stations 1 and 4 be inactive. Then: /// geometry index: 0 1 2 3 4 5 6 7 8 9 0 0 0 0 /// active index: 0 -1 1 2 -1 3 4 5 6 7 0 0 0 0 - alignas(L1Constants::misc::kAlignment) StationArray_t<int> fvGeoToActiveMap {}; + alignas(constants::misc::kAlignment) StationArray_t<int> fvGeoToActiveMap {}; /// @brief Map of active to geo indices - alignas(L1Constants::misc::kAlignment) StationArray_t<int> fvActiveToGeoMap {}; + alignas(constants::misc::kAlignment) StationArray_t<int> fvActiveToGeoMap {}; - alignas(L1Constants::misc::kAlignment) int fNstationsActiveTotal = -1; ///< total number of active tracking stations + alignas(constants::misc::kAlignment) int fNstationsActiveTotal = -1; ///< total number of active tracking stations /// @brief Map of search windows vs. active station global index and tracks group /// /// The tracks group can be defined by minimum momentum (fast/all tracks), origin (primary/secondary) and particle /// type (electron, muon, all). Other options also can be added - alignas(L1Constants::misc::kAlignment) - std::array<L1SearchWindow, L1Constants::size::kMaxNstations* L1Constants::size::kMaxNtrackGroups> fSearchWindows = - {}; + alignas(constants::misc::kAlignment) + std::array<L1SearchWindow, constants::size::kMaxNstations* constants::size::kMaxNtrackGroups> fSearchWindows = {}; int fGhostSuppression = 0; ///< flag: if true, ghost tracks are suppressed int fRandomSeed = 1; ///< random seed - float fDefaultMass = L1Constants::phys::kMuonMass; + float fDefaultMass = constants::phys::kMuonMass; // *************************** // ** Flags for development ** diff --git a/reco/L1/L1Algo/L1TrackFitter.cxx b/reco/L1/L1Algo/L1TrackFitter.cxx index 8414ac51eed82b8c9aef84f1745d633c13d2bb64..b594b4eb7b4b9500d7e273ed82a64992a8bf4cd8 100644 --- a/reco/L1/L1Algo/L1TrackFitter.cxx +++ b/reco/L1/L1Algo/L1TrackFitter.cxx @@ -49,14 +49,14 @@ void L1Algo::L1KFTrackFitter() // Spatial-time position of a hit vs. station and track in the portion - fvec x[L1Constants::size::kMaxNstations]; // Hit position along the x-axis [cm] - fvec y[L1Constants::size::kMaxNstations]; // Hit position along the y-axis [cm] - L1XYMeasurementInfo cov_xy[L1Constants::size::kMaxNstations]; // Covariance matrix for x,y + fvec x[constants::size::kMaxNstations]; // Hit position along the x-axis [cm] + fvec y[constants::size::kMaxNstations]; // Hit position along the y-axis [cm] + L1XYMeasurementInfo cov_xy[constants::size::kMaxNstations]; // Covariance matrix for x,y - fvec z[L1Constants::size::kMaxNstations]; // Hit position along the z-axis (precised) [cm] + fvec z[constants::size::kMaxNstations]; // Hit position along the z-axis (precised) [cm] - fvec time[L1Constants::size::kMaxNstations]; // Hit time [ns] - fvec dt2[L1Constants::size::kMaxNstations]; // Hit time uncertainty [ns] squared + fvec time[constants::size::kMaxNstations]; // Hit time [ns] + fvec dt2[constants::size::kMaxNstations]; // Hit time uncertainty [ns] squared fvec x_first; fvec y_first; @@ -75,9 +75,9 @@ void L1Algo::L1KFTrackFitter() fvec dt2_last; // fvec dt2_lst; /// TODO: Why are there two different variables for the time error on the last station? - fvec By[L1Constants::size::kMaxNstations]; - fmask w[L1Constants::size::kMaxNstations]; - fmask w_time[L1Constants::size::kMaxNstations]; // !!! + fvec By[constants::size::kMaxNstations]; + fmask w[constants::size::kMaxNstations]; + fmask w_time[constants::size::kMaxNstations]; // !!! fvec y_temp; fvec x_temp; @@ -87,10 +87,10 @@ void L1Algo::L1KFTrackFitter() fvec z_start; fvec z_end; - L1FieldValue fB[L1Constants::size::kMaxNstations], fB_temp _fvecalignment; + L1FieldValue fB[constants::size::kMaxNstations], fB_temp _fvecalignment; - fvec ZSta[L1Constants::size::kMaxNstations]; + fvec ZSta[constants::size::kMaxNstations]; for (int ista = 0; ista < nStations; ista++) { ZSta[ista] = sta[ista].fZ; cov_xy[ista].C00 = 1.f; @@ -124,8 +124,8 @@ void L1Algo::L1KFTrackFitter() for (int iVec = 0; iVec < nTracks_SIMD; iVec++) { - int nHitsTrack = t[iVec]->NHits; - int iSta[L1Constants::size::kMaxNstations]; + int nHitsTrack = t[iVec]->fNofHits; + int iSta[constants::size::kMaxNstations]; for (int ih = 0; ih < nHitsTrack; ih++) { @@ -286,13 +286,13 @@ void L1Algo::L1KFTrackFitter() if (kGlobal == fTrackingMode) { Tf.qp = fitpv.Tr().qp; } for (int iVec = 0; iVec < nTracks_SIMD; iVec++) { - Tf.copyToArrays(iVec, t[iVec]->TFirst, t[iVec]->CFirst); - t[iVec]->chi2 = Tf.chi2[iVec]; - t[iVec]->NDF = (int) Tf.NDF[iVec]; + Tf.copyToArrays(iVec, t[iVec]->fParFirst, t[iVec]->fCovFirst); + t[iVec]->fChi2 = Tf.chi2[iVec]; + t[iVec]->fNDF = (int) Tf.NDF[iVec]; } for (int iVec = 0; iVec < nTracks_SIMD; iVec++) { - fitpv.Tr().copyToArrays(iVec, t[iVec]->Tpv, t[iVec]->Cpv); + fitpv.Tr().copyToArrays(iVec, t[iVec]->fParPV, t[iVec]->fCovPV); } if (iter == 1) { break; } // only 1.5 iterations @@ -358,9 +358,9 @@ void L1Algo::L1KFTrackFitter() if (kGlobal == fTrackingMode) { Tl.qp = fitpv.Tr().qp; } for (int iVec = 0; iVec < nTracks_SIMD; iVec++) { - Tl.copyToArrays(iVec, t[iVec]->TLast, t[iVec]->CLast); - t[iVec]->chi2 = Tl.chi2[iVec]; - t[iVec]->NDF = (int) Tl.NDF[iVec]; + Tl.copyToArrays(iVec, t[iVec]->fParLast, t[iVec]->fCovLast); + t[iVec]->fChi2 = Tl.chi2[iVec]; + t[iVec]->fNDF = (int) Tl.NDF[iVec]; } } // iter diff --git a/reco/L1/L1Algo/L1TripletConstructor.cxx b/reco/L1/L1Algo/L1TripletConstructor.cxx index d07a1552a3e5555db010e815a1b832e5cbc499d1..3e4785f8364e15c419bb63468505f729a0c6119a 100644 --- a/reco/L1/L1Algo/L1TripletConstructor.cxx +++ b/reco/L1/L1Algo/L1TripletConstructor.cxx @@ -70,7 +70,7 @@ void L1TripletConstructor::InitStations(int istal, int istam, int istar) } fFit.SetParticleMass(fAlgo->GetDefaultParticleMass()); - if (fAlgo->fpCurrentIteration->GetElectronFlag()) { fFit.SetParticleMass(L1Constants::phys::kElectronMass); } + if (fAlgo->fpCurrentIteration->GetElectronFlag()) { fFit.SetParticleMass(constants::phys::kElectronMass); } fFit.SetMask(fmask::One()); fIsInitialized = true; @@ -383,7 +383,7 @@ void L1TripletConstructor::FitTriplets() L1Fit fit; fit.SetMask(fmask::One()); - if (fAlgo->fpCurrentIteration->GetElectronFlag()) { fit.SetParticleMass(L1Constants::phys::kElectronMass); } + if (fAlgo->fpCurrentIteration->GetElectronFlag()) { fit.SetParticleMass(constants::phys::kElectronMass); } else { fit.SetParticleMass(fAlgo->GetDefaultParticleMass()); } diff --git a/reco/L1/L1Algo/utils/L1AlgoDraw.cxx b/reco/L1/L1Algo/utils/L1AlgoDraw.cxx index 329a2c660313b1bb79e839dafdbea3bcd06aacc1..63aebd7ac79566b35e2f84e66b38e7c0e7e28932 100644 --- a/reco/L1/L1Algo/utils/L1AlgoDraw.cxx +++ b/reco/L1/L1Algo/utils/L1AlgoDraw.cxx @@ -239,8 +239,8 @@ void L1AlgoDraw::DrawRecoTracks() int curRecoHit = 0; L1Vector<L1HitIndex_t>& recoHits = algo->fSliceRecoHits; for (vector<Track>::iterator it = algo->fSliceRecoTracks.begin(); it != algo->fSliceRecoTracks.end(); ++it) { - Track& T = *it; - int nHits = T.NHits; + Track& T = *it; + int nHits = T.fNofHits; // if (nHits > 5) continue; // draw clones // YZ->cd(); YZ->Update(); // XZ->cd(); XZ->Update(); diff --git a/reco/L1/catools/CaToolsMCData.h b/reco/L1/catools/CaToolsMCData.h index a20946c73b5a94dc8fc05cc5feb10b9622681b54..dedd743afcf5e497b5442991db4ee4c61de3d740 100644 --- a/reco/L1/catools/CaToolsMCData.h +++ b/reco/L1/catools/CaToolsMCData.h @@ -13,10 +13,10 @@ #include <numeric> #include <string> +#include "CaConstants.h" #include "CaToolsLinkKey.h" #include "CaToolsMCPoint.h" #include "CaToolsMCTrack.h" -#include "L1Constants.h" #include "L1EArray.h" #include "L1Vector.h" @@ -184,8 +184,8 @@ namespace ca::tools L1Vector<MCPoint> fvPoints = {"ca::tools::MCData::fvPoints"}; ///< Container of points L1Vector<MCTrack> fvTracks = {"ca::tools::MCData::fvTracks"}; ///< Container of tracks - std::array<int, L1Constants::size::kMaxNdetectors> fvNofPointsOrig = {0}; ///< Total number of points by detector - std::array<int, L1Constants::size::kMaxNdetectors> fvNofPointsUsed = {0}; ///< Number of points used vs. detector + std::array<int, constants::size::kMaxNdetectors> fvNofPointsOrig = {0}; ///< Total number of points by detector + std::array<int, constants::size::kMaxNdetectors> fvNofPointsUsed = {0}; ///< Number of points used vs. detector std::unordered_map<LinkKey, int> fmPointLinkMap = {}; ///< MC point internal index vs. link std::unordered_map<LinkKey, int> fmTrackLinkMap = {}; ///< MC track internal index vs. link diff --git a/reco/L1/catools/CaToolsMCPoint.h b/reco/L1/catools/CaToolsMCPoint.h index 5b5466dcd2398e78a13079a3e222bb3553b05ef9..a2744b2fce2521b8f4122eeef8b045bd2da8c09a 100644 --- a/reco/L1/catools/CaToolsMCPoint.h +++ b/reco/L1/catools/CaToolsMCPoint.h @@ -12,8 +12,8 @@ #include <string> +#include "CaConstants.h" #include "CaToolsLinkKey.h" -#include "L1Constants.h" #include "L1Undef.h" #include "L1Vector.h" @@ -21,6 +21,8 @@ enum class L1DetectorID; namespace ca::tools { + namespace phys = cbm::algo::ca::constants::phys; + /// @brief Class describes a unified MC-point, used in CA tracking QA analysis /// class MCPoint { @@ -76,19 +78,19 @@ namespace ca::tools /// @brief Gets inverse speed at reference z of station [ns/cm] int GetInvSpeed() const { - return std::sqrt(1. + GetMass() * GetMass() / GetP() / GetP()) * L1Constants::phys::kSpeedOfLightInv; + return std::sqrt(1. + GetMass() * GetMass() / GetP() / GetP()) * constants::phys::kSpeedOfLightInv; } /// @brief Gets inverse speed at entrance to station [ns/cm] int GetInvSpeedIn() const { - return std::sqrt(1. + GetMass() * GetMass() / GetPIn() / GetPIn()) * L1Constants::phys::kSpeedOfLightInv; + return std::sqrt(1. + GetMass() * GetMass() / GetPIn() / GetPIn()) * constants::phys::kSpeedOfLightInv; } /// @brief Gets inverse speed at exit of station [ns/cm] int GetInvSpeedOut() const { - return std::sqrt(1. + GetMass() * GetMass() / GetPOut() / GetPOut()) * L1Constants::phys::kSpeedOfLightInv; + return std::sqrt(1. + GetMass() * GetMass() / GetPOut() / GetPOut()) * constants::phys::kSpeedOfLightInv; } /// @brief Gets container of matched hit indexes diff --git a/reco/L1/catools/CaToolsMCTrack.h b/reco/L1/catools/CaToolsMCTrack.h index c2dcd38e57c6ef4496858309574273025201795a..7d11d749f0e4759ffa647c727dec208c27ba187b 100644 --- a/reco/L1/catools/CaToolsMCTrack.h +++ b/reco/L1/catools/CaToolsMCTrack.h @@ -17,7 +17,6 @@ #include <functional> #include "CaToolsLinkKey.h" -#include "L1Constants.h" #include "L1Undef.h" #include "L1Vector.h" diff --git a/reco/L1/catools/CaToolsWindowFinder.cxx b/reco/L1/catools/CaToolsWindowFinder.cxx index 501bc325746b4f67b02d04ec72f635dacbb84d4c..fe51859d19d4840a5cb97809a39e2dda0242a266 100644 --- a/reco/L1/catools/CaToolsWindowFinder.cxx +++ b/reco/L1/catools/CaToolsWindowFinder.cxx @@ -24,13 +24,13 @@ #include <yaml-cpp/yaml.h> +#include "CaConstants.h" #include "CaToolsWFExpression.h" #include "L1ConfigRW.h" -#include "L1Constants.h" #include "L1SearchWindow.h" using namespace ca::tools; -using namespace L1Constants::clrs; // for colored logs +using namespace cbm::algo::ca::constants::clrs; // for colored logs ClassImp(ca::tools::WindowFinder); diff --git a/reco/L1/qa/CbmCaInputQaBase.cxx b/reco/L1/qa/CbmCaInputQaBase.cxx index 4b54e7c81b9db7f5fa9715d384d27a6869e295ec..5c5ef2a9fbd50e40caca9835c68f96d42fa43dac 100644 --- a/reco/L1/qa/CbmCaInputQaBase.cxx +++ b/reco/L1/qa/CbmCaInputQaBase.cxx @@ -55,10 +55,9 @@ #include <numeric> #include <tuple> -#include "L1Constants.h" - -namespace phys = L1Constants::phys; // from L1Constants.h +#include "CaConstants.h" +using cbm::algo::ca::constants::phys::kSpeedOfLight; // --------------------------------------------------------------------------------------------------------------------- // @@ -488,7 +487,7 @@ void CbmCaInputQaBase<DetID>::FillHistograms() double shiftZ = fHitQaData.GetHitZ() - zMC; // Difference between hit and point z positions double xMCs = xMC + shiftZ * pxMC / pzMC; double yMCs = yMC + shiftZ * pyMC / pzMC; - double tMCs = tMC + shiftZ / (pzMC * phys::kSpeedOfLight) * sqrt(mass * mass + pMC * pMC); + double tMCs = tMC + shiftZ / (pzMC * kSpeedOfLight) * sqrt(mass * mass + pMC * pMC); fHitQaData.SetPointTime(tMCs); fHitQaData.SetPointX(xMCs); diff --git a/reco/L1/qa/CbmCaInputQaSts.cxx b/reco/L1/qa/CbmCaInputQaSts.cxx index e12ab9e10e567e26669179446bdbe2b33e5d8d2b..fd814c877ec11f398f24693d5eadd6c69b983ab4 100644 --- a/reco/L1/qa/CbmCaInputQaSts.cxx +++ b/reco/L1/qa/CbmCaInputQaSts.cxx @@ -45,12 +45,8 @@ #include <numeric> #include <tuple> -#include "L1Constants.h" - ClassImp(CbmCaInputQaSts); -namespace phys = L1Constants::phys; // from L1Constants.h - // --------------------------------------------------------------------------------------------------------------------- // CbmCaInputQaSts::CbmCaInputQaSts(int verbose, bool isMCUsed) : CbmCaInputQaBase("CbmCaInputQaSts", verbose, isMCUsed) diff --git a/reco/L1/qa/CbmCaInputQaTof.cxx b/reco/L1/qa/CbmCaInputQaTof.cxx index a2bb124366c5f7b3bb5a89ee17301433a43bcfb6..71e90d76e81026078062d3a969dd6a213a5eb6d0 100644 --- a/reco/L1/qa/CbmCaInputQaTof.cxx +++ b/reco/L1/qa/CbmCaInputQaTof.cxx @@ -36,12 +36,9 @@ #include <numeric> #include "CaToolsLinkKey.h" -#include "L1Constants.h" ClassImp(CbmCaInputQaTof); -namespace phys = L1Constants::phys; // from L1Constants.h - // --------------------------------------------------------------------------------------------------------------------- // CbmCaInputQaTof::CbmCaInputQaTof(int verbose, bool isMCUsed) : CbmCaInputQaBase("CbmCaInputQaTof", verbose, isMCUsed) diff --git a/reco/L1/qa/CbmCaTrackFitQa.h b/reco/L1/qa/CbmCaTrackFitQa.h index a76ccd2426c353f44f8f26626bbaa79aee2fec63..cf346daff1ccd7d8a7c03484bfa255ae89f34862 100644 --- a/reco/L1/qa/CbmCaTrackFitQa.h +++ b/reco/L1/qa/CbmCaTrackFitQa.h @@ -14,7 +14,7 @@ #include <array> -#include "L1Constants.h" +#include "CaConstants.h" #include "L1EArray.h" #include "L1Field.h" #include "L1Fit.h" @@ -199,7 +199,7 @@ namespace cbm::ca TString fsTitle = ""; ///< Title of the point - double fMass = L1Constants::phys::kMuonMass; /// Mass of particle + double fMass = constants::phys::kMuonMass; /// Mass of particle }; // ***************************** diff --git a/reco/L1/utils/CbmCaIdealHitProducerDet.h b/reco/L1/utils/CbmCaIdealHitProducerDet.h index 6393f354c3b6dc416aad60ff3b59e27ae4b7b9cc..60c28c88d08b1ec56e38298eeed3f9430bf2e232 100644 --- a/reco/L1/utils/CbmCaIdealHitProducerDet.h +++ b/reco/L1/utils/CbmCaIdealHitProducerDet.h @@ -55,7 +55,6 @@ #include "CaAlgoRandom.h" #include "CaUvConverter.h" -#include "L1Constants.h" #include "L1Def.h" #include "L1Undef.h"