From 95867f634763ce65ac0ed43956765d2403f308af Mon Sep 17 00:00:00 2001 From: "se.gorbunov" <se.gorbunov@gsi.de> Date: Fri, 9 Sep 2022 22:15:34 +0000 Subject: [PATCH] L1: remove simd classes from CbmL1FPFitter interface --- analysis/PWGCHA/jpsi/CMakeLists.txt | 2 - analysis/PWGCHA/jpsi/CbmAnaJpsiUtils.h | 3 +- .../dielectron/conversion/CMakeLists.txt | 2 - .../conversion/CbmAnaConversion.cxx | 5 +- .../conversion/CbmAnaConversionPhotons.cxx | 5 +- .../conversion/CbmAnaConversionPhotons2.cxx | 5 +- .../conversion/CbmAnaConversionRecoFull.cxx | 6 +- .../conversion/CbmAnaConversionTest.cxx | 10 ++- .../conversion/CbmAnaConversionTest2.cxx | 6 +- .../PWGDIL/dielectron/lmvm/CMakeLists.txt | 2 - analysis/PWGDIL/dielectron/lmvm/LmvmUtils.cxx | 3 +- .../dielectron/papaframework/CMakeLists.txt | 2 - .../papaframework/PairAnalysisPairKF.cxx | 4 -- .../papaframework/PairAnalysisPairLV.cxx | 3 - .../papaframework/PairAnalysisTrack.cxx | 4 +- .../analysis_tree_converter/CMakeLists.txt | 64 +++++++++---------- .../CbmStsTracksConverter.cxx | 18 ++---- reco/KF/CbmKFParticleFinder.cxx | 34 ++-------- reco/KF/CbmKFParticleInterface.cxx | 31 +++------ reco/KF/KFQA/CbmKFTrackQa.cxx | 3 +- reco/L1/ParticleFinder/CbmL1PFFitter.cxx | 59 +++++++++++++++-- reco/L1/ParticleFinder/CbmL1PFFitter.h | 21 +++--- 22 files changed, 135 insertions(+), 157 deletions(-) diff --git a/analysis/PWGCHA/jpsi/CMakeLists.txt b/analysis/PWGCHA/jpsi/CMakeLists.txt index 832b91e37d..f7b087c1f7 100644 --- a/analysis/PWGCHA/jpsi/CMakeLists.txt +++ b/analysis/PWGCHA/jpsi/CMakeLists.txt @@ -18,8 +18,6 @@ ${CBMROOT_SOURCE_DIR}/algo ${CBMROOT_SOURCE_DIR}/reco/KF ${CBMROOT_SOURCE_DIR}/reco/KF/Interface -${CBMROOT_SOURCE_DIR}/reco/L1 -${CBMROOT_SOURCE_DIR}/reco/L1/L1Algo ${CBMROOT_SOURCE_DIR}/reco/L1/ParticleFinder ${CBMROOT_SOURCE_DIR}/rich diff --git a/analysis/PWGCHA/jpsi/CbmAnaJpsiUtils.h b/analysis/PWGCHA/jpsi/CbmAnaJpsiUtils.h index f44b9b0edb..03c69afb6c 100644 --- a/analysis/PWGCHA/jpsi/CbmAnaJpsiUtils.h +++ b/analysis/PWGCHA/jpsi/CbmAnaJpsiUtils.h @@ -17,7 +17,6 @@ #include <vector> -#include "L1Field.h" class CbmAnaJpsiUtils { public: @@ -32,7 +31,7 @@ public: std::vector<CbmStsTrack> stsTracks; stsTracks.resize(1); stsTracks[0] = *stsTrack; - std::vector<L1FieldRegion> vField; + std::vector<CbmL1PFFitter::PFFieldRegion> vField; std::vector<float> chiPrim; fPFFitter.GetChiToVertex(stsTracks, vField, chiPrim, kfVertex, 3e6); cand->fChi2sts = stsTracks[0].GetChiSq() / stsTracks[0].GetNDF(); diff --git a/analysis/PWGDIL/dielectron/conversion/CMakeLists.txt b/analysis/PWGDIL/dielectron/conversion/CMakeLists.txt index 7e0f93cb24..0f66ea8f70 100644 --- a/analysis/PWGDIL/dielectron/conversion/CMakeLists.txt +++ b/analysis/PWGDIL/dielectron/conversion/CMakeLists.txt @@ -20,8 +20,6 @@ ${CBMROOT_SOURCE_DIR}/reco/base ${CBMROOT_SOURCE_DIR}/reco/KF ${CBMROOT_SOURCE_DIR}/reco/KF/Interface -${CBMROOT_SOURCE_DIR}/reco/L1 -${CBMROOT_SOURCE_DIR}/reco/L1/L1Algo ${CBMROOT_SOURCE_DIR}/reco/L1/ParticleFinder ${CBMROOT_SOURCE_DIR}/reco/littrack/cbm/elid diff --git a/analysis/PWGDIL/dielectron/conversion/CbmAnaConversion.cxx b/analysis/PWGDIL/dielectron/conversion/CbmAnaConversion.cxx index d28fde2603..172d962b95 100644 --- a/analysis/PWGDIL/dielectron/conversion/CbmAnaConversion.cxx +++ b/analysis/PWGDIL/dielectron/conversion/CbmAnaConversion.cxx @@ -33,7 +33,6 @@ #include <Logger.h> #include "KFParticleTopoReconstructor.h" -#include "L1Field.h" // includes of standard c++ classes or ROOT classes @@ -997,7 +996,7 @@ void CbmAnaConversion::Exec(Option_t*) vector<CbmStsTrack> stsTracks; stsTracks.resize(1); stsTracks[0] = *stsTrack; - vector<L1FieldRegion> vField; + vector<CbmL1PFFitter::PFFieldRegion> vField; vector<float> chiPrim; fPFFitter.GetChiToVertex(stsTracks, vField, chiPrim, fKFVertex, 3e6); //cand.chi2sts = stsTracks[0].GetChiSq() / stsTracks[0].GetNDF(); @@ -1012,7 +1011,7 @@ void CbmAnaConversion::Exec(Option_t*) vector<CbmStsTrack> stsTracks_electron; stsTracks_electron.resize(1); stsTracks_electron[0] = *stsTrack; - vector<L1FieldRegion> vField_electron; + vector<CbmL1PFFitter::PFFieldRegion> vField_electron; vector<float> chiPrim_electron; vector<int> pidHypo_electron; pidHypo_electron.push_back(11); diff --git a/analysis/PWGDIL/dielectron/conversion/CbmAnaConversionPhotons.cxx b/analysis/PWGDIL/dielectron/conversion/CbmAnaConversionPhotons.cxx index 986ead09b6..075e1214e2 100644 --- a/analysis/PWGDIL/dielectron/conversion/CbmAnaConversionPhotons.cxx +++ b/analysis/PWGDIL/dielectron/conversion/CbmAnaConversionPhotons.cxx @@ -23,7 +23,6 @@ #include "FairRootManager.h" #include <Logger.h> -#include "L1Field.h" //#include "CbmStsKFTrackFitter.h" #include "CbmAnaConversionCutSettings.h" #include "CbmLitGlobalElectronId.h" @@ -765,7 +764,7 @@ void CbmAnaConversionPhotons::Exec() vector<CbmStsTrack> stsTracks; stsTracks.resize(1); stsTracks[0] = *stsTrack; - vector<L1FieldRegion> vField; + vector<CbmL1PFFitter::PFFieldRegion> vField; vector<float> chiPrim; fPFFitter.GetChiToVertex(stsTracks, vField, chiPrim, fKFVertex, 3e6); //cand.chi2sts = stsTracks[0].GetChiSq() / stsTracks[0].GetNDF(); @@ -779,7 +778,7 @@ void CbmAnaConversionPhotons::Exec() vector<CbmStsTrack> stsTracks_electron; stsTracks_electron.resize(1); stsTracks_electron[0] = *stsTrack; - vector<L1FieldRegion> vField_electron; + vector<CbmL1PFFitter::PFFieldRegion> vField_electron; vector<float> chiPrim_electron; vector<int> pidHypo_electron; pidHypo_electron.push_back(11); diff --git a/analysis/PWGDIL/dielectron/conversion/CbmAnaConversionPhotons2.cxx b/analysis/PWGDIL/dielectron/conversion/CbmAnaConversionPhotons2.cxx index 0decf642e1..57da175329 100644 --- a/analysis/PWGDIL/dielectron/conversion/CbmAnaConversionPhotons2.cxx +++ b/analysis/PWGDIL/dielectron/conversion/CbmAnaConversionPhotons2.cxx @@ -26,7 +26,6 @@ #include "FairRootManager.h" #include <Logger.h> -#include "L1Field.h" //#include "CbmStsKFTrackFitter.h" #include "CbmAnaConversionCutSettings.h" #include "CbmAnaConversionKinematicParams.h" @@ -637,7 +636,7 @@ void CbmAnaConversionPhotons2::Exec() vector<CbmStsTrack> stsTracks; stsTracks.resize(1); stsTracks[0] = *stsTrack; - vector<L1FieldRegion> vField; + vector<CbmL1PFFitter::PFFieldRegion> vField; vector<float> chiPrim; fPFFitter.GetChiToVertex(stsTracks, vField, chiPrim, fKFVertex, 3e6); //cand.chi2sts = stsTracks[0].GetChiSq() / stsTracks[0].GetNDF(); @@ -652,7 +651,7 @@ void CbmAnaConversionPhotons2::Exec() vector<CbmStsTrack> stsTracks_electron; stsTracks_electron.resize(1); stsTracks_electron[0] = *stsTrack; - vector<L1FieldRegion> vField_electron; + vector<CbmL1PFFitter::PFFieldRegion> vField_electron; vector<float> chiPrim_electron; vector<int> pidHypo_electron; pidHypo_electron.push_back(11); diff --git a/analysis/PWGDIL/dielectron/conversion/CbmAnaConversionRecoFull.cxx b/analysis/PWGDIL/dielectron/conversion/CbmAnaConversionRecoFull.cxx index dd8b1691df..5501328e75 100644 --- a/analysis/PWGDIL/dielectron/conversion/CbmAnaConversionRecoFull.cxx +++ b/analysis/PWGDIL/dielectron/conversion/CbmAnaConversionRecoFull.cxx @@ -37,8 +37,6 @@ #include "FairRootManager.h" #include <Logger.h> -#include "L1Field.h" - #define M2E 2.6112004954086e-7 using namespace std; @@ -1130,7 +1128,7 @@ void CbmAnaConversionRecoFull::Exec() vector<CbmStsTrack> stsTracks; stsTracks.resize(1); stsTracks[0] = *stsTrack; - vector<L1FieldRegion> vField; + vector<CbmL1PFFitter::PFFieldRegion> vField; vector<float> chiPrim; fPFFitter.GetChiToVertex(stsTracks, vField, chiPrim, fKFVertex, 3e6); //cand.chi2sts = stsTracks[0].GetChiSq() / stsTracks[0].GetNDF(); @@ -1219,7 +1217,7 @@ void CbmAnaConversionRecoFull::Exec() vector<CbmStsTrack> stsTracks_electron; stsTracks_electron.resize(1); stsTracks_electron[0] = *stsTrack; - vector<L1FieldRegion> vField_electron; + vector<CbmL1PFFitter::PFFieldRegion> vField_electron; vector<float> chiPrim_electron; vector<int> pidHypo_electron; pidHypo_electron.push_back(11); diff --git a/analysis/PWGDIL/dielectron/conversion/CbmAnaConversionTest.cxx b/analysis/PWGDIL/dielectron/conversion/CbmAnaConversionTest.cxx index df994c5d42..91754a0bef 100644 --- a/analysis/PWGDIL/dielectron/conversion/CbmAnaConversionTest.cxx +++ b/analysis/PWGDIL/dielectron/conversion/CbmAnaConversionTest.cxx @@ -29,8 +29,6 @@ #include <algorithm> #include <map> -#include "L1Field.h" - using namespace std; @@ -515,7 +513,7 @@ void CbmAnaConversionTest::DoSTSonlyAnalysis() vector<CbmStsTrack> stsTracks; stsTracks.resize(1); stsTracks[0] = *stsTrack; - vector<L1FieldRegion> vField; + vector<CbmL1PFFitter::PFFieldRegion> vField; vector<float> chiPrim; fPFFitter.GetChiToVertex(stsTracks, vField, chiPrim, fKFVertex, 3e6); //cand.chi2sts = stsTracks[0].GetChiSq() / stsTracks[0].GetNDF(); @@ -530,7 +528,7 @@ void CbmAnaConversionTest::DoSTSonlyAnalysis() vector<CbmStsTrack> stsTracks_electron; stsTracks_electron.resize(1); stsTracks_electron[0] = *stsTrack; - vector<L1FieldRegion> vField_electron; + vector<CbmL1PFFitter::PFFieldRegion> vField_electron; vector<float> chiPrim_electron; vector<int> pidHypo_electron; pidHypo_electron.push_back(11); @@ -1190,7 +1188,7 @@ Bool_t CbmAnaConversionTest::HasRichInd(Int_t gtIndex, Int_t arrayIndex) vector<CbmStsTrack> stsTracks; stsTracks.resize(1); stsTracks[0] = *stsTrack; - vector<L1FieldRegion> vField; + vector<CbmL1PFFitter::PFFieldRegion> vField; vector<float> chiPrim; fPFFitter.GetChiToVertex(stsTracks, vField, chiPrim, fKFVertex, 3e6); //cand.chi2sts = stsTracks[0].GetChiSq() / stsTracks[0].GetNDF(); @@ -1206,7 +1204,7 @@ Bool_t CbmAnaConversionTest::HasRichInd(Int_t gtIndex, Int_t arrayIndex) vector<CbmStsTrack> stsTracks_electron; stsTracks_electron.resize(1); stsTracks_electron[0] = *stsTrack; - vector<L1FieldRegion> vField_electron; + vector<CbmL1PFFitter::PFFieldRegion> vField_electron; vector<float> chiPrim_electron; vector<int> pidHypo_electron; pidHypo_electron.push_back(11); diff --git a/analysis/PWGDIL/dielectron/conversion/CbmAnaConversionTest2.cxx b/analysis/PWGDIL/dielectron/conversion/CbmAnaConversionTest2.cxx index 8670847653..1fa60300b0 100644 --- a/analysis/PWGDIL/dielectron/conversion/CbmAnaConversionTest2.cxx +++ b/analysis/PWGDIL/dielectron/conversion/CbmAnaConversionTest2.cxx @@ -28,8 +28,6 @@ #include <algorithm> #include <map> -#include "L1Field.h" - using namespace std; @@ -322,7 +320,7 @@ void CbmAnaConversionTest2::Exec() vector<CbmStsTrack> stsTracks; stsTracks.resize(1); stsTracks[0] = *stsTrack; - vector<L1FieldRegion> vField; + vector<CbmL1PFFitter::PFFieldRegion> vField; vector<float> chiPrim; fPFFitter.GetChiToVertex(stsTracks, vField, chiPrim, fKFVertex, 3e6); //cand.chi2sts = stsTracks[0].GetChiSq() / stsTracks[0].GetNDF(); @@ -337,7 +335,7 @@ void CbmAnaConversionTest2::Exec() vector<CbmStsTrack> stsTracks_electron; stsTracks_electron.resize(1); stsTracks_electron[0] = *stsTrack; - vector<L1FieldRegion> vField_electron; + vector<CbmL1PFFitter::PFFieldRegion> vField_electron; vector<float> chiPrim_electron; vector<int> pidHypo_electron; pidHypo_electron.push_back(11); diff --git a/analysis/PWGDIL/dielectron/lmvm/CMakeLists.txt b/analysis/PWGDIL/dielectron/lmvm/CMakeLists.txt index 7df5fd1769..5a4f7094d6 100644 --- a/analysis/PWGDIL/dielectron/lmvm/CMakeLists.txt +++ b/analysis/PWGDIL/dielectron/lmvm/CMakeLists.txt @@ -21,8 +21,6 @@ ${CBMROOT_SOURCE_DIR}/algo ${CBMROOT_SOURCE_DIR}/reco/KF ${CBMROOT_SOURCE_DIR}/reco/KF/Interface -${CBMROOT_SOURCE_DIR}/reco/L1 -${CBMROOT_SOURCE_DIR}/reco/L1/L1Algo ${CBMROOT_SOURCE_DIR}/reco/L1/ParticleFinder ${CBMROOT_SOURCE_DIR}/rich diff --git a/analysis/PWGDIL/dielectron/lmvm/LmvmUtils.cxx b/analysis/PWGDIL/dielectron/lmvm/LmvmUtils.cxx index 2d7dde947d..620bc0b56b 100644 --- a/analysis/PWGDIL/dielectron/lmvm/LmvmUtils.cxx +++ b/analysis/PWGDIL/dielectron/lmvm/LmvmUtils.cxx @@ -17,7 +17,6 @@ #include <iostream> -#include "L1Field.h" #include "LmvmCand.h" #include "LmvmDef.h" @@ -32,7 +31,7 @@ void LmvmUtils::CalculateAndSetTrackParams(LmvmCand* cand, CbmStsTrack* stsTrack vector<CbmStsTrack> stsTracks; stsTracks.resize(1); stsTracks[0] = *stsTrack; - vector<L1FieldRegion> vField; + vector<CbmL1PFFitter::PFFieldRegion> vField; vector<float> chiPrim; fPFFitter.GetChiToVertex(stsTracks, vField, chiPrim, kfVertex, 3e6); cand->fChi2sts = stsTracks[0].GetChiSq() / stsTracks[0].GetNDF(); diff --git a/analysis/PWGDIL/dielectron/papaframework/CMakeLists.txt b/analysis/PWGDIL/dielectron/papaframework/CMakeLists.txt index 2c341fb546..2dd93270a1 100644 --- a/analysis/PWGDIL/dielectron/papaframework/CMakeLists.txt +++ b/analysis/PWGDIL/dielectron/papaframework/CMakeLists.txt @@ -27,9 +27,7 @@ ${CBMROOT_SOURCE_DIR}/reco/KF ${CBMROOT_SOURCE_DIR}/reco/KF/Interface ${KFParticle_INCLUDE_DIR} -${CBMROOT_SOURCE_DIR}/reco/L1 ${CBMROOT_SOURCE_DIR}/reco/L1/ParticleFinder -${CBMROOT_SOURCE_DIR}/reco/L1/L1Algo ${CBMROOT_SOURCE_DIR}/reco/littrack ${CBMROOT_SOURCE_DIR}/reco/littrack/cbm diff --git a/analysis/PWGDIL/dielectron/papaframework/PairAnalysisPairKF.cxx b/analysis/PWGDIL/dielectron/papaframework/PairAnalysisPairKF.cxx index ce99c12102..01feddd1e5 100644 --- a/analysis/PWGDIL/dielectron/papaframework/PairAnalysisPairKF.cxx +++ b/analysis/PWGDIL/dielectron/papaframework/PairAnalysisPairKF.cxx @@ -12,16 +12,12 @@ #include "CbmKFParticleInterface.h" #include "CbmKFTrack.h" -#include "CbmL1.h" -#include "CbmL1PFFitter.h" #include "CbmMCTrack.h" #include "CbmVertex.h" #include <TDatabasePDG.h> #include "KFParticle.h" -#include "L1Algo.h" -#include "L1Field.h" #include "PairAnalysisTrack.h" ClassImp(PairAnalysisPairKF) diff --git a/analysis/PWGDIL/dielectron/papaframework/PairAnalysisPairLV.cxx b/analysis/PWGDIL/dielectron/papaframework/PairAnalysisPairLV.cxx index 73084956cc..ec78ce749c 100644 --- a/analysis/PWGDIL/dielectron/papaframework/PairAnalysisPairLV.cxx +++ b/analysis/PWGDIL/dielectron/papaframework/PairAnalysisPairLV.cxx @@ -12,13 +12,10 @@ #include "PairAnalysisPairLV.h" -#include "CbmL1.h" #include "CbmMCTrack.h" #include <TDatabasePDG.h> -#include "L1Algo.h" -#include "L1Field.h" #include "PairAnalysisTrack.h" ClassImp(PairAnalysisPairLV) diff --git a/analysis/PWGDIL/dielectron/papaframework/PairAnalysisTrack.cxx b/analysis/PWGDIL/dielectron/papaframework/PairAnalysisTrack.cxx index 0e9f15fdcc..674aa7f4fb 100644 --- a/analysis/PWGDIL/dielectron/papaframework/PairAnalysisTrack.cxx +++ b/analysis/PWGDIL/dielectron/papaframework/PairAnalysisTrack.cxx @@ -50,8 +50,6 @@ #include <vector> -#include "L1Field.h" - ClassImp(PairAnalysisTrack) PairAnalysisTrack::PairAnalysisTrack() @@ -306,7 +304,7 @@ void PairAnalysisTrack::Refit(Int_t pidHypo) vector<CbmStsTrack> stsTracks; stsTracks.resize(1); stsTracks[0] = *fStsTrack; - vector<L1FieldRegion> vField; + vector<CbmL1PFFitter::PFFieldRegion> vField; vector<float> chiPrim; vector<int> pidHypos; pidHypos.push_back(pidHypo); diff --git a/analysis/common/analysis_tree_converter/CMakeLists.txt b/analysis/common/analysis_tree_converter/CMakeLists.txt index 8824520699..30e59d5bea 100644 --- a/analysis/common/analysis_tree_converter/CMakeLists.txt +++ b/analysis/common/analysis_tree_converter/CMakeLists.txt @@ -1,19 +1,18 @@ Set(LIBRARY_NAME CbmAnalysisTreeInterface) set(SRCS - CbmConverterManager.cxx - CbmConverterTask.cxx - CbmSimEventHeaderConverter.cxx - CbmRecEventHeaderConverter.cxx - CbmStsTracksConverter.cxx - CbmSimTracksConverter.cxx - CbmPsdModulesConverter.cxx - CbmTofHitsConverter.cxx - CbmTrdTracksConverter.cxx - CbmRichRingsConverter.cxx - CbmMatchEvents.cxx - ) - + CbmConverterManager.cxx + CbmConverterTask.cxx + CbmSimEventHeaderConverter.cxx + CbmRecEventHeaderConverter.cxx + CbmStsTracksConverter.cxx + CbmSimTracksConverter.cxx + CbmPsdModulesConverter.cxx + CbmTofHitsConverter.cxx + CbmTrdTracksConverter.cxx + CbmRichRingsConverter.cxx + CbmMatchEvents.cxx +) Set(INCLUDE_DIRECTORIES ${CMAKE_CURRENT_SOURCE_DIR} @@ -36,53 +35,52 @@ Set(INCLUDE_DIRECTORIES ${CBMROOT_SOURCE_DIR}/sim/transport/geosetup ${CBMROOT_SOURCE_DIR}/reco/KF - ${CBMROOT_SOURCE_DIR}/reco/L1 - ${CBMROOT_SOURCE_DIR}/reco/L1/L1Algo + ${CBMROOT_SOURCE_DIR}/reco/L1/ParticleFinder ${CBMROOT_SOURCE_DIR}/sim/transport/generators/unigen ) -Include_Directories (${INCLUDE_DIRECTORIES}) +Include_Directories(${INCLUDE_DIRECTORIES}) Set(SYSTEM_INCLUDE_DIRECTORIES ${BASE_INCLUDE_DIRECTORIES} - ${Boost_INCLUDE_DIR} + ${Boost_INCLUDE_DIR} ${KFParticle_INCLUDE_DIR} ${AnalysisTree_INCLUDE_DIR} ) -Include_Directories (SYSTEM ${SYSTEM_INCLUDE_DIRECTORIES}) +Include_Directories(SYSTEM ${SYSTEM_INCLUDE_DIRECTORIES}) -set (LINK_DIRECTORIES +set(LINK_DIRECTORIES ${AnalysisTree_LIBRARY_DIR} ${KFParticle_LIB_DIR} ${FAIRROOT_LIBRARY_DIR} ${ROOT_LIBRARY_DIR} ${Boost_LIBRARY_DIRS} ) - + link_directories(${LINK_DIRECTORIES}) -IF (SSE_FOUND) +IF(SSE_FOUND) Message(STATUS "${LIBRARY_NAME} will be compiled with SSE support") ADD_DEFINITIONS(-DHAVE_SSE) SET_SOURCE_FILES_PROPERTIES(${SRCS} PROPERTIES COMPILE_FLAGS "-msse -O3") -ELSE (SSE_FOUND) +ELSE(SSE_FOUND) MESSAGE(STATUS "${LIBRARY_NAME} will be compiled without SSE support") SET_SOURCE_FILES_PROPERTIES(${SRCS} PROPERTIES COMPILE_FLAGS "-msse -O3") -ENDIF (SSE_FOUND) +ENDIF(SSE_FOUND) Set(LINKDEF CbmAnalysisTreeInterfaceLinkDef.h) Set(_AnalysisTree_LIB AnalysisTreeBase AnalysisTreeInfra) -Set(DEPENDENCIES - ${_AnalysisTree_LIB} - Algo - CbmData - CbmBase - KFParticleInterface - L1 - CbmSimGenerators +Set(DEPENDENCIES + ${_AnalysisTree_LIB} + Algo + CbmData + CbmBase + KFParticleInterface + L1 + CbmSimGenerators ) Set(DEFINITIONS -DDO_TPCCATRACKER_EFF_PERFORMANCE -DNonhomogeneousField -DCBM -DUSE_TIMERS) @@ -92,7 +90,7 @@ ADD_DEFINITIONS(${DEFINITIONS}) GENERATE_LIBRARY() Install(FILES ../../../macro/analysis/common/analysis_tree_converter/run_analysis_tree_maker.C - DESTINATION share/cbmroot/macro/analysis_tree - ) + DESTINATION share/cbmroot/macro/analysis_tree +) Add_Dependencies(CbmAnalysisTreeInterface ANALYSISTREE) diff --git a/analysis/common/analysis_tree_converter/CbmStsTracksConverter.cxx b/analysis/common/analysis_tree_converter/CbmStsTracksConverter.cxx index b45f40dbb7..719b634438 100644 --- a/analysis/common/analysis_tree_converter/CbmStsTracksConverter.cxx +++ b/analysis/common/analysis_tree_converter/CbmStsTracksConverter.cxx @@ -6,13 +6,13 @@ #include "CbmDefs.h" #include "CbmEvent.h" +#include "CbmL1PFFitter.h" #include "CbmMCDataManager.h" #include "CbmMCTrack.h" #include "CbmStsTrack.h" #include "CbmTrackMatchNew.h" #include "CbmVertex.h" #include "Interface/CbmKFVertex.h" -#include "ParticleFinder/CbmL1PFFitter.h" #include "FairRootManager.h" @@ -24,7 +24,6 @@ #include <cmath> #include "AnalysisTree/Matching.hpp" -#include "L1Field.h" ClassImp(CbmStsTracksConverter); @@ -106,7 +105,7 @@ float CbmStsTracksConverter::ExtrapolateToVertex(CbmStsTrack* sts_track, Analysi std::vector<CbmStsTrack> tracks = {*sts_track}; CbmL1PFFitter fitter; std::vector<float> chi2_to_vtx; - std::vector<L1FieldRegion> field; + std::vector<CbmL1PFFitter::PFFieldRegion> field; CbmKFVertex kfVertex = CbmKFVertex(*cbm_prim_vertex_); if (is_reproduce_cbmkfpf_) { std::vector<int> pdgVector = {pdg}; @@ -116,16 +115,9 @@ float CbmStsTracksConverter::ExtrapolateToVertex(CbmStsTrack* sts_track, Analysi *sts_track = tracks[0]; if (is_write_kfinfo_) { - track.SetField(float(field.at(0).cx0[0]), imf_); - track.SetField(float(field.at(0).cx1[0]), imf_ + 1); - track.SetField(float(field.at(0).cx2[0]), imf_ + 2); - track.SetField(float(field.at(0).cy0[0]), imf_ + 3); - track.SetField(float(field.at(0).cy1[0]), imf_ + 4); - track.SetField(float(field.at(0).cy2[0]), imf_ + 5); - track.SetField(float(field.at(0).cz0[0]), imf_ + 6); - track.SetField(float(field.at(0).cz1[0]), imf_ + 7); - track.SetField(float(field.at(0).cz2[0]), imf_ + 8); - track.SetField(float(field.at(0).z0[0]), imf_ + 9); + for (int i = 0; i < 10; i++) { + track.SetField(field[0].fP[i], imf_ + i); + } } return chi2_to_vtx[0]; diff --git a/reco/KF/CbmKFParticleFinder.cxx b/reco/KF/CbmKFParticleFinder.cxx index 41d872337f..3fe4e58b7f 100644 --- a/reco/KF/CbmKFParticleFinder.cxx +++ b/reco/KF/CbmKFParticleFinder.cxx @@ -19,8 +19,6 @@ #include "FairRunAna.h" -#include "L1Field.h" - //KF Particle headers #include <Logger.h> @@ -277,38 +275,20 @@ void CbmKFParticleFinder::Exec(Option_t* /*opt*/) kfVertex.GetRefZ() = fCbmPrimVertex->GetZ(); } - vector<L1FieldRegion> vField, vFieldAtLastPoint; + vector<CbmL1PFFitter::PFFieldRegion> vField, vFieldAtLastPoint; fitter.Fit(vRTracks, pdg); fitter.GetChiToVertex(vRTracks, vField, vChiToPrimVtx, kfVertex, 3); fitter.CalculateFieldRegionAtLastPoint(vRTracks, vFieldAtLastPoint); vector<KFFieldVector> vFieldVector(ntracks), vFieldVectorAtLastPoint(ntracks); for (Int_t iTr = 0; iTr < ntracks; iTr++) { - int entrSIMD = iTr % fvec::size(); - int entrVec = iTr / fvec::size(); - vFieldVector[iTr].fField[0] = vField[entrVec].cx0[entrSIMD]; - vFieldVector[iTr].fField[1] = vField[entrVec].cx1[entrSIMD]; - vFieldVector[iTr].fField[2] = vField[entrVec].cx2[entrSIMD]; - vFieldVector[iTr].fField[3] = vField[entrVec].cy0[entrSIMD]; - vFieldVector[iTr].fField[4] = vField[entrVec].cy1[entrSIMD]; - vFieldVector[iTr].fField[5] = vField[entrVec].cy2[entrSIMD]; - vFieldVector[iTr].fField[6] = vField[entrVec].cz0[entrSIMD]; - vFieldVector[iTr].fField[7] = vField[entrVec].cz1[entrSIMD]; - vFieldVector[iTr].fField[8] = vField[entrVec].cz2[entrSIMD]; - vFieldVector[iTr].fField[9] = vField[entrVec].z0[entrSIMD]; + for (int i = 0; i < 10; i++) { + vFieldVector[iTr].fField[i] = vField[iTr].fP[i]; + } } for (Int_t iTr = 0; iTr < ntracks; iTr++) { - int entrSIMD = iTr % fvec::size(); - int entrVec = iTr / fvec::size(); - vFieldVectorAtLastPoint[iTr].fField[0] = vFieldAtLastPoint[entrVec].cx0[entrSIMD]; - vFieldVectorAtLastPoint[iTr].fField[1] = vFieldAtLastPoint[entrVec].cx1[entrSIMD]; - vFieldVectorAtLastPoint[iTr].fField[2] = vFieldAtLastPoint[entrVec].cx2[entrSIMD]; - vFieldVectorAtLastPoint[iTr].fField[3] = vFieldAtLastPoint[entrVec].cy0[entrSIMD]; - vFieldVectorAtLastPoint[iTr].fField[4] = vFieldAtLastPoint[entrVec].cy1[entrSIMD]; - vFieldVectorAtLastPoint[iTr].fField[5] = vFieldAtLastPoint[entrVec].cy2[entrSIMD]; - vFieldVectorAtLastPoint[iTr].fField[6] = vFieldAtLastPoint[entrVec].cz0[entrSIMD]; - vFieldVectorAtLastPoint[iTr].fField[7] = vFieldAtLastPoint[entrVec].cz1[entrSIMD]; - vFieldVectorAtLastPoint[iTr].fField[8] = vFieldAtLastPoint[entrVec].cz2[entrSIMD]; - vFieldVectorAtLastPoint[iTr].fField[9] = vFieldAtLastPoint[entrVec].z0[entrSIMD]; + for (int i = 0; i < 10; i++) { + vFieldVectorAtLastPoint[iTr].fField[i] = vFieldAtLastPoint[iTr].fP[i]; + } } if (!fSuperEventAnalysis) { diff --git a/reco/KF/CbmKFParticleInterface.cxx b/reco/KF/CbmKFParticleInterface.cxx index 690f4ca947..a7fcce39ca 100644 --- a/reco/KF/CbmKFParticleInterface.cxx +++ b/reco/KF/CbmKFParticleInterface.cxx @@ -12,8 +12,6 @@ #include "CbmL1PFFitter.h" #include "CbmStsTrack.h" -#include "L1Field.h" - //KF Particle headers #include "KFPTrackVector.h" #include "KFParticle.h" @@ -42,7 +40,7 @@ void CbmKFParticleInterface::SetKFParticleFromStsTrack(CbmStsTrack* track, KFPar vector<float> vChiToPrimVtx; CbmKFVertex kfVertex; - vector<L1FieldRegion> vField; + vector<CbmL1PFFitter::PFFieldRegion> vField; fitter.GetChiToVertex(vRTracks, vField, vChiToPrimVtx, kfVertex, -3); KFPTrackVector tracks; @@ -116,26 +114,15 @@ void CbmKFParticleInterface::SetKFParticleFromStsTrack(CbmStsTrack* track, KFPar cov[19] = cbpz * pz + b * cpzpz; cov[20] = cpzpz; - float field[10]; - int entrSIMD = iTr % fvec::size(); - int entrVec = iTr / fvec::size(); - field[0] = vField[entrVec].cx0[entrSIMD]; - field[1] = vField[entrVec].cx1[entrSIMD]; - field[2] = vField[entrVec].cx2[entrSIMD]; - field[3] = vField[entrVec].cy0[entrSIMD]; - field[4] = vField[entrVec].cy1[entrSIMD]; - field[5] = vField[entrVec].cy2[entrSIMD]; - field[6] = vField[entrVec].cz0[entrSIMD]; - field[7] = vField[entrVec].cz1[entrSIMD]; - field[8] = vField[entrVec].cz2[entrSIMD]; - field[9] = vField[entrVec].z0[entrSIMD]; - - for (Int_t iP = 0; iP < 6; iP++) + for (Int_t iP = 0; iP < 6; iP++) { tracks.SetParameter(par[iP], iP, iTr); - for (Int_t iC = 0; iC < 21; iC++) + } + for (Int_t iC = 0; iC < 21; iC++) { tracks.SetCovariance(cov[iC], iC, iTr); - for (Int_t iF = 0; iF < 10; iF++) - tracks.SetFieldCoefficient(field[iF], iF, iTr); + } + for (Int_t iF = 0; iF < 10; iF++) { + tracks.SetFieldCoefficient(vField[iTr].fP[iF], iF, iTr); + } tracks.SetId(1, iTr); tracks.SetPDG(pdg, iTr); tracks.SetQ(q, iTr); @@ -165,7 +152,7 @@ void CbmKFParticleInterface::ExtrapolateTrackToPV(const CbmStsTrack* track, CbmV assert(pv); if (pv) kfVertex = CbmKFVertex(*pv); - vector<L1FieldRegion> vField; + vector<CbmL1PFFitter::PFFieldRegion> vField; fitter.GetChiToVertex(vRTracks, vField, vChiToPrimVtx, kfVertex, 1000000.f); chiPrim = vChiToPrimVtx[0]; diff --git a/reco/KF/KFQA/CbmKFTrackQa.cxx b/reco/KF/KFQA/CbmKFTrackQa.cxx index 3f56e4b62f..79a4ef8e83 100644 --- a/reco/KF/KFQA/CbmKFTrackQa.cxx +++ b/reco/KF/KFQA/CbmKFTrackQa.cxx @@ -22,7 +22,6 @@ #include "KFParticleMatch.h" #include "KFParticleTopoReconstructor.h" #include "KFTopoPerformance.h" -#include "L1Field.h" //ROOT headers #include "TClonesArray.h" @@ -428,7 +427,7 @@ void CbmKFTrackQa::Exec(Option_t* /*opt*/) CbmL1PFFitter fitter; vector<float> vChiToPrimVtx; - vector<L1FieldRegion> vField; + vector<CbmL1PFFitter::PFFieldRegion> vField; fitter.Fit(vRTracks, pdg); fitter.GetChiToVertex(vRTracks, vField, vChiToPrimVtx, kfVertex, 3000000); diff --git a/reco/L1/ParticleFinder/CbmL1PFFitter.cxx b/reco/L1/ParticleFinder/CbmL1PFFitter.cxx index 9d4d40709f..5e62200417 100644 --- a/reco/L1/ParticleFinder/CbmL1PFFitter.cxx +++ b/reco/L1/ParticleFinder/CbmL1PFFitter.cxx @@ -39,6 +39,7 @@ #include "L1Algo.h" // Also defines L1Parameters #include "L1Def.h" #include "L1Extrapolation.h" +#include "L1Field.h" #include "L1Filtration.h" #include "L1Fit.h" #include "L1MaterialInfo.h" @@ -60,6 +61,43 @@ CbmL1PFFitter::CbmL1PFFitter() {} CbmL1PFFitter::~CbmL1PFFitter() {} +inline void CbmL1PFFitter::PFFieldRegion::setFromL1FieldRegion(const L1FieldRegion& fld, int i) +{ + fP[0] = fld.cx0[i]; + fP[1] = fld.cx1[i]; + fP[2] = fld.cx2[i]; + + fP[3] = fld.cy0[i]; + fP[4] = fld.cy1[i]; + fP[5] = fld.cy2[i]; + + fP[6] = fld.cz0[i]; + fP[7] = fld.cz1[i]; + fP[8] = fld.cz2[i]; + + fP[9] = fld.z0[i]; +} + +inline void CbmL1PFFitter::PFFieldRegion::getL1FieldRegion(L1FieldRegion& fld, int i) +{ + fld.cx0[i] = fP[0]; + fld.cx1[i] = fP[1]; + fld.cx2[i] = fP[2]; + + fld.cy0[i] = fP[3]; + fld.cy1[i] = fP[4]; + fld.cy2[i] = fP[5]; + + fld.cz0[i] = fP[6]; + fld.cz1[i] = fP[7]; + fld.cz2[i] = fP[8]; + + fld.z0[i] = fP[9]; +} + +inline CbmL1PFFitter::PFFieldRegion::PFFieldRegion(const L1FieldRegion& fld, int i) { setFromL1FieldRegion(fld, i); } + + void FilterFirst(L1TrackPar& track, fvec& x, fvec& y, L1Station& st) { track.C00 = st.XYInfo.C00; @@ -396,7 +434,7 @@ void CbmL1PFFitter::Fit(vector<CbmStsTrack>& Tracks, vector<int>& pidHypo) delete[] fB; } -void CbmL1PFFitter::GetChiToVertex(vector<CbmStsTrack>& Tracks, vector<L1FieldRegion>& field, vector<float>& chiToVtx, +void CbmL1PFFitter::GetChiToVertex(vector<CbmStsTrack>& Tracks, vector<PFFieldRegion>& field, vector<float>& chiToVtx, CbmKFVertex& primVtx, float chiPrim) { chiToVtx.reserve(Tracks.size()); @@ -495,7 +533,9 @@ void CbmL1PFFitter::GetChiToVertex(vector<CbmStsTrack>& Tracks, vector<L1FieldRe fB[0] = CbmL1::Instance()->fpAlgo->GetParameters()->GetVertexFieldValue(); zField[0] = CbmL1::Instance()->fpAlgo->GetParameters()->GetTargetPositionZ(); fld.Set(fB[2], zField[2], fB[1], zField[1], fB[0], zField[0]); - field.push_back(fld); + for (int i = 0; i < nTracks_SIMD; i++) { + field.emplace_back(fld, i); + } for (int iSt = nStations - 4; iSt >= 0; iSt--) { @@ -567,7 +607,7 @@ void CbmL1PFFitter::GetChiToVertex(vector<CbmStsTrack>& Tracks, vector<L1FieldRe delete[] zSta; } -void CbmL1PFFitter::CalculateFieldRegion(vector<CbmStsTrack>& Tracks, vector<L1FieldRegion>& field) +void CbmL1PFFitter::CalculateFieldRegion(vector<CbmStsTrack>& Tracks, vector<PFFieldRegion>& field) { field.reserve(Tracks.size()); @@ -635,11 +675,13 @@ void CbmL1PFFitter::CalculateFieldRegion(vector<CbmStsTrack>& Tracks, vector<L1F fB[0] = CbmL1::Instance()->fpAlgo->GetParameters()->GetVertexFieldValue(); zField[0] = CbmL1::Instance()->fpAlgo->GetParameters()->GetTargetPositionZ(); fld.Set(fB[2], zField[2], fB[1], zField[1], fB[0], zField[0]); - field.push_back(fld); + for (int i = 0; i < nTracks_SIMD; i++) { + field.emplace_back(fld, i); + } } } -void CbmL1PFFitter::CalculateFieldRegionAtLastPoint(vector<CbmStsTrack>& Tracks, vector<L1FieldRegion>& field) +void CbmL1PFFitter::CalculateFieldRegionAtLastPoint(vector<CbmStsTrack>& Tracks, vector<PFFieldRegion>& field) { field.reserve(Tracks.size()); @@ -666,8 +708,9 @@ void CbmL1PFFitter::CalculateFieldRegionAtLastPoint(vector<CbmStsTrack>& Tracks, for (unsigned short itrack = 0; itrack < N_vTracks; itrack += fvec::size()) { if (N_vTracks - itrack < static_cast<unsigned short>(fvec::size())) nTracks_SIMD = N_vTracks - itrack; - for (int i = 0; i < nTracks_SIMD; i++) + for (int i = 0; i < nTracks_SIMD; i++) { t[i] = &Tracks[itrack + i]; // current track + } for (int iVec = 0; iVec < nTracks_SIMD; iVec++) { int nHitsTrackMvd = t[iVec]->GetNofMvdHits(); @@ -708,6 +751,8 @@ void CbmL1PFFitter::CalculateFieldRegionAtLastPoint(vector<CbmStsTrack>& Tracks, } fld.Set(fB[0], zField[0], fB[1], zField[1], fB[2], zField[2]); - field.push_back(fld); + for (int i = 0; i < nTracks_SIMD; i++) { + field.emplace_back(fld, i); + } } } diff --git a/reco/L1/ParticleFinder/CbmL1PFFitter.h b/reco/L1/ParticleFinder/CbmL1PFFitter.h index 946e7c747e..2189862fad 100644 --- a/reco/L1/ParticleFinder/CbmL1PFFitter.h +++ b/reco/L1/ParticleFinder/CbmL1PFFitter.h @@ -22,25 +22,30 @@ #include <vector> -class CbmL1Track; class CbmStsTrack; -class L1TrackPar; -class L1UMeasurementInfo; -struct L1MaterialInfo; -class L1Station; class L1FieldRegion; class CbmKFVertex; class CbmL1PFFitter { public: + // A container for parameters of L1FieldRegion + struct PFFieldRegion { + PFFieldRegion() {} + PFFieldRegion(const L1FieldRegion&, int i); + void setFromL1FieldRegion(const L1FieldRegion&, int i); + void getL1FieldRegion(L1FieldRegion&, int i); + + float fP[10] {0.}; + }; + CbmL1PFFitter(); ~CbmL1PFFitter(); //functions for fitting CbmStsTrack void Fit(std::vector<CbmStsTrack>& Tracks, std::vector<int>& pidHypo); - void CalculateFieldRegion(std::vector<CbmStsTrack>& Tracks, std::vector<L1FieldRegion>& Field); - void CalculateFieldRegionAtLastPoint(std::vector<CbmStsTrack>& Tracks, std::vector<L1FieldRegion>& field); - void GetChiToVertex(std::vector<CbmStsTrack>& Tracks, std::vector<L1FieldRegion>& field, std::vector<float>& chiToVtx, + void CalculateFieldRegion(std::vector<CbmStsTrack>& Tracks, std::vector<PFFieldRegion>& Field); + void CalculateFieldRegionAtLastPoint(std::vector<CbmStsTrack>& Tracks, std::vector<PFFieldRegion>& field); + void GetChiToVertex(std::vector<CbmStsTrack>& Tracks, std::vector<PFFieldRegion>& field, std::vector<float>& chiToVtx, CbmKFVertex& primVtx, float chiPrim = -1); }; #endif -- GitLab