diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/CMakeLists.txt b/analysis/PWGC2F/femtoscopy/nicafemto/CMakeLists.txt index d13d09552e4f8cda808a54c79eb9614b58180b2a..53efc9d7f828f8e1a6272a2cb59a8b228afee5a3 100644 --- a/analysis/PWGC2F/femtoscopy/nicafemto/CMakeLists.txt +++ b/analysis/PWGC2F/femtoscopy/nicafemto/CMakeLists.txt @@ -28,17 +28,11 @@ set(NICA_CBM_FORMAT ${CBMDATA_DIR}/mvd ${NICA_CBM}/format ${NICA_CBM}/format/combined - ${NICA_CBM}/format/full - ${NICA_CBM}/format/global - ${NICA_CBM}/format/matched - ${NICA_CBM}/format/mc ${NICA_CBM}/format/anatree ${NICA_CBM}/format/anatree/reco ${NICA_CBM}/format/anatree/mc ${NICA_CBM}/format/anatree/femto ${NICA_CBM}/format/unigen - ${NICA_CBM}/format/hits - ${NICA_CBM}/format/matched_hits ) set(NICAFEMTO_CUTS diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/cuts/CMakeLists.txt b/analysis/PWGC2F/femtoscopy/nicafemto/cuts/CMakeLists.txt index 96dce6787d8b41f31602d8253d52251c512bb347..85ee30f4d51a9f74498b27d3fc4c413d57f17897 100644 --- a/analysis/PWGC2F/femtoscopy/nicafemto/cuts/CMakeLists.txt +++ b/analysis/PWGC2F/femtoscopy/nicafemto/cuts/CMakeLists.txt @@ -11,13 +11,8 @@ ${NICA_CBM_FORMAT} ${KF_HEADERS} ${NICA_CBM}/helpers ${NICA_CBM}/cuts -${NICA_CBM}/cuts/rawcuts/trackcuts -${NICA_CBM}/cuts/rawcuts/paircuts -${NICA_CBM}/cuts/rawcuts -${NICA_CBM}/cuts/commoncuts/pair -${NICA_CBM}/cuts/commoncuts/track -${NICA_CBM}/cuts/anatreecuts/pair -${NICA_CBM}/cuts/anatreecuts/track +${NICA_CBM}/cuts/pair +${NICA_CBM}/cuts/track ) Set(SYSTEM_INCLUDE_DIRECTORIES @@ -41,21 +36,14 @@ Link_Directories(${LINK_DIRECTORIES}) # List of source files set(SRCS - rawcuts/paircuts/CbmAvXYCut.cxx - rawcuts/paircuts/CbmSailorCowboyCut.cxx - rawcuts/trackcuts/CbmHasTofTrackCut.cxx - rawcuts/trackcuts/CbmMCPointsCuts.cxx - rawcuts/trackcuts/CbmStsFarDetectorHit.cxx - rawcuts/trackcuts/CbmStsStationsCut.cxx - rawcuts/trackcuts/CbmStsTrackHitsCut.cxx - rawcuts/trackcuts/CbmTofTrackCuts.cxx - commoncuts/pair/CbmDeltaPhiDeltaThetaCut.cxx - commoncuts/pair/CbmStsExitSepCut.cxx - commoncuts/track/CbmTofM2PolyCut.cxx - anatreecuts/pair/CbmBasicFemtoPairCut.cxx - anatreecuts/track/CbmBasicTrackCuts.cxx - anatreecuts/track/CbmNHitsCut.cxx - anatreecuts/track/CbmTofCut.cxx + pair/CbmBasicFemtoPairCut.cxx + pair/CbmDeltaPhiDeltaThetaCut.cxx + pair/CbmStsExitSepCut.cxx + + track/CbmBasicTrackCuts.cxx + track/CbmNHitsCut.cxx + track/CbmTofCut.cxx + track/CbmTofM2PolyCut.cxx ) Set(HEADERS ) diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/cuts/NicaCbmCutsLinkDef.h b/analysis/PWGC2F/femtoscopy/nicafemto/cuts/NicaCbmCutsLinkDef.h index fea2b61eacd6142314efe07fe4a6c44790063f25..d7177b16cb03b8e14b239bfc18a74c136a4a825e 100644 --- a/analysis/PWGC2F/femtoscopy/nicafemto/cuts/NicaCbmCutsLinkDef.h +++ b/analysis/PWGC2F/femtoscopy/nicafemto/cuts/NicaCbmCutsLinkDef.h @@ -2,28 +2,9 @@ #pragma link off all classes; #pragma link off all functions; -#pragma link C++ class CbmStsTrackHitsCut + ; -#pragma link C++ class CbmTofM2PolyCut + ; - -#pragma link C++ class NicaCbmMCPointsCut + ; -#pragma link C++ class NicaCbmStsPointsCut + ; -#pragma link C++ class NicaCbmMvdPointsCut + ; -#pragma link C++ class NicaCbmRichPointsCut + ; -#pragma link C++ class NicaCbmMuchPointsCut + ; -#pragma link C++ class NicaCbmTrdPointsCut + ; -#pragma link C++ class NicaCbmTofPointsCut + ; -#pragma link C++ class NicaCbmEcalPointsCut + ; -#pragma link C++ class NicaCbmPsdPointsCut + ; -#pragma link C++ class CbmTofTrackCuts + ; -#pragma link C++ class CbmTofM2Cut + ; -#pragma link C++ class CbmTofMassCut + ; -#pragma link C++ class CbmStsFarDetectorHit + ; -#pragma link C++ class CbmHasTofTrackCut + ; -#pragma link C++ class CbmStsStationsCut + ; +#pragma link C++ class CbmTofM2PolyCut + ; #pragma link C++ class CbmStsExitSepCut + ; -#pragma link C++ class CbmSailorCowboyCut + ; -#pragma link C++ class CbmAvXYCut + ; #pragma link C++ class CbmDeltaPhiDeltaThetaStarCut + ; #pragma link C++ class CbmDeltaPhiDeltaThetaCut + ; @@ -32,7 +13,3 @@ #pragma link C++ class CbmNHitsCut + ; #pragma link C++ class CbmTofCut + ; #pragma link C++ class CbmBasicFemtoPairCut + ; - -#pragma link C++ class CbmDeltaPhiDeltaThetaStarCut + ; -#pragma link C++ class CbmDeltaPhiDeltaThetaCut + ; -#pragma link C++ class CbmStsExitSepCut + ; diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/cuts/anatreecuts/track/CbmBasicTrackCuts.cxx b/analysis/PWGC2F/femtoscopy/nicafemto/cuts/anatreecuts/track/CbmBasicTrackCuts.cxx deleted file mode 100644 index a8a1fee92ca094c2962c3fecef1d0787b8ed7163..0000000000000000000000000000000000000000 --- a/analysis/PWGC2F/femtoscopy/nicafemto/cuts/anatreecuts/track/CbmBasicTrackCuts.cxx +++ /dev/null @@ -1,214 +0,0 @@ -/* - * CbmBasicTrackCut.cxx - * - * Created on: 22 wrz 2020 - * Author: Daniel Wielanek - * E-mail: daniel.wielanek@gmail.com - * Warsaw University of Technology, Faculty of Physics - */ - -#include "CbmBasicTrackCuts.h" - -#include "CbmNHitsCut.h" -#include "CbmTofCut.h" -#include "NicaCutMonitorX.h" -#include "NicaCutMonitorXY.h" -#include "NicaStdString.h" -#include "NicaTrackChargeCut.h" -#include "NicaTrackChi2Cut.h" -#include "NicaTrackDCACut.h" -#include "NicaTrackEtaCut.h" -#include "NicaTrackPCut.h" -#include "NicaTrackPtCut.h" - -CbmBasicTrackCuts::CbmBasicTrackCuts() { - fMonitorSettingsChi2 = TVector3(20, 0, 10); - fMonitorsSettingsKin[0] = TVector3(100, -2, 6); - fMonitorsSettingsKin[1] = TVector3(100, 0, 3); - fMonitorSettingsTof[0] = TVector3(100, 0, 2); - fMonitorSettingsTof[1] = TVector3(140, -0.2, 1.2); - fMonitorSettingsNHits = TVector3(10, 0, 10); - fMonitorSettingsDCA[0] = TVector3(100, 0, 10); - fMonitorSettingsDCA[1] = TVector3(100, 0, 10); - AddCut(NicaTrackChargeCut()); //0 - AddCut(CbmNHitsCut()); //1 - AddCut(NicaTrackChi2Cut()); //2 - AddCut(NicaTrackPCut()); //3 - AddCut(NicaTrackPtCut()); //4 - AddCut(NicaTrackEtaCut()); //5 - AddCut(NicaTrackDCACut()); //6 - AddCut(CbmTofCut()); //7 -} - -NicaTrackChargeCut* CbmBasicTrackCuts::GetChargeCut() const { - return (NicaTrackChargeCut*) this->CutAt(0); -} - -CbmNHitsCut* CbmBasicTrackCuts::GetNHitsCut() const { - return (CbmNHitsCut*) this->CutAt(1); -} - -NicaTrackChi2Cut* CbmBasicTrackCuts::GetChi2Cut() const { - return (NicaTrackChi2Cut*) this->CutAt(2); -} - -NicaTrackPCut* CbmBasicTrackCuts::GetPCut() const { - return (NicaTrackPCut*) this->CutAt(3); -} - -NicaTrackPtCut* CbmBasicTrackCuts::GetPtCut() const { - return (NicaTrackPtCut*) this->CutAt(4); -} - -NicaTrackEtaCut* CbmBasicTrackCuts::GetEtaCut() const { - return (NicaTrackEtaCut*) this->CutAt(5); -} - -NicaTrackDCACut* CbmBasicTrackCuts::GetDCACut() const { - return (NicaTrackDCACut*) this->CutAt(6); -} - -void CbmBasicTrackCuts::CreateBasicMonitors() { - TString opt = ""; - Int_t step = 0; - TString params = GetGlobalCutOption(); - if (NicaStd::FindParam(params, "re")) { opt = "re"; } - if (NicaStd::FindParam(params, "im")) { - opt = "im"; - step = 1; - } - NicaCutMonitorX nHits(GetNHitsCut()->CutName(opt), step); - nHits.SetXaxis(fMonitorSettingsNHits.X(), - fMonitorSettingsNHits.Y(), - fMonitorSettingsNHits.Z()); - AddCutMonitor(nHits); - - NicaCutMonitorX nchi(GetChi2Cut()->CutName(opt), step); - nchi.SetXaxis(fMonitorSettingsChi2.X(), - fMonitorSettingsChi2.Y(), - fMonitorSettingsChi2.Z()); - AddCutMonitor(nchi); - - NicaCutMonitorXY kinM( - GetEtaCut()->CutName(opt), step, GetPtCut()->CutName(opt), step); - kinM.SetXaxis(fMonitorsSettingsKin[0].X(), - fMonitorsSettingsKin[0].Y(), - fMonitorsSettingsKin[0].Z()); - kinM.SetYaxis(fMonitorsSettingsKin[1].X(), - fMonitorsSettingsKin[1].Y(), - fMonitorsSettingsKin[1].Z()); - AddCutMonitor(kinM); - - NicaCutMonitorXY tofM(GetPCut()->CutName(opt), - step, - GetTofCut()->CutName(opt), - step + GetTofCut()->M2()); - tofM.SetXaxis(fMonitorSettingsTof[0].X(), - fMonitorSettingsTof[0].Y(), - fMonitorSettingsTof[0].Z()); - tofM.SetYaxis(fMonitorSettingsTof[1].X(), - fMonitorSettingsTof[1].Y(), - fMonitorSettingsTof[1].Z()); - AddCutMonitor(tofM); - - NicaCutMonitorXY dcaM(GetDCACut()->CutName(opt), - step + GetDCACut()->DCAz(), - GetDCACut()->CutName(opt), - step + GetDCACut()->DCAxy()); - dcaM.SetXaxis(fMonitorSettingsDCA[0].X(), - fMonitorSettingsDCA[0].Y(), - fMonitorSettingsDCA[0].Z()); - dcaM.SetYaxis(fMonitorSettingsDCA[1].X(), - fMonitorSettingsDCA[1].Y(), - fMonitorSettingsDCA[1].Z()); - AddCutMonitor(dcaM); -} - -void CbmBasicTrackCuts::SetCharge(Int_t charge) { - GetChargeCut()->SetMinAndMax(charge); -} - -void CbmBasicTrackCuts::SetNHits(Int_t min, Int_t max) { - GetNHitsCut()->SetMinMax(min, max); -} - -void CbmBasicTrackCuts::SetPt(Double_t min, Double_t max) { - GetPtCut()->SetMinMax(min, max); -} - -void CbmBasicTrackCuts::SetEta(Double_t min, Double_t max) { - GetEtaCut()->SetMinMax(min, max); -} - -void CbmBasicTrackCuts::SetM2(Double_t min, Double_t max) { - GetTofCut()->SetMinMax(min, max); -} - -void CbmBasicTrackCuts::SetDCAXY(Double_t min, Double_t max) { - GetDCACut()->SetMinMax(min, max, GetDCACut()->DCAxy()); -} - -void CbmBasicTrackCuts::SetDCAZ(Double_t min, Double_t max) { - GetDCACut()->SetMinMax(min, max, GetDCACut()->DCAz()); -} - -void CbmBasicTrackCuts::SetTofMonitorPAxis(Int_t nbins, - Double_t min, - Double_t max) { - fMonitorSettingsTof[0].SetXYZ(nbins, min, max); -} - -void CbmBasicTrackCuts::SetTofMonitorM2Axis(Int_t nbins, - Double_t min, - Double_t max) { - fMonitorSettingsTof[1].SetXYZ(nbins, min, max); -} - -void CbmBasicTrackCuts::SetPtEtaMonitorPtAxis(Int_t nbins, - Double_t min, - Double_t max) { - fMonitorsSettingsKin[1].SetXYZ(nbins, min, max); -} - -void CbmBasicTrackCuts::SetPtEtaMonitorEtaAxis(Int_t nbins, - Double_t min, - Double_t max) { - fMonitorsSettingsKin[0].SetXYZ(nbins, min, max); -} - -void CbmBasicTrackCuts::SetNHitsMonitorAxis(Int_t nbins, - Double_t min, - Double_t max) { - fMonitorSettingsNHits.SetXYZ(nbins, min, max); -} - -void CbmBasicTrackCuts::SetChi2MonitorAxis(Int_t nbins, - Double_t min, - Double_t max) { - fMonitorSettingsChi2.SetXYZ(nbins, min, max); -} - -void CbmBasicTrackCuts::SetDCAMonitorZAxis(Int_t nbins, - Double_t min, - Double_t max) { - fMonitorSettingsDCA[0].SetXYZ(nbins, min, max); -} - -void CbmBasicTrackCuts::SetDCAMonitorXYAxis(Int_t nbins, - Double_t min, - Double_t max) { - fMonitorSettingsDCA[1].SetXYZ(nbins, min, max); -} - -CbmTofCut* CbmBasicTrackCuts::GetTofCut() const { - return (CbmTofCut*) this->CutAt(7); -} - -void CbmBasicTrackCuts::AcceptOnlyWithTofHit(Bool_t val) { - if (val) - GetTofCut()->AcceptTracksOnlyWithToF(); - else - GetTofCut()->SetMinMax(0, 1, 1); -} - -CbmBasicTrackCuts::~CbmBasicTrackCuts() {} diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/cuts/anatreecuts/pair/CbmBasicFemtoPairCut.cxx b/analysis/PWGC2F/femtoscopy/nicafemto/cuts/pair/CbmBasicFemtoPairCut.cxx similarity index 68% rename from analysis/PWGC2F/femtoscopy/nicafemto/cuts/anatreecuts/pair/CbmBasicFemtoPairCut.cxx rename to analysis/PWGC2F/femtoscopy/nicafemto/cuts/pair/CbmBasicFemtoPairCut.cxx index b3da5bd0f895c93d4538d014950dec8c3bbdd7c8..a0fe383868399e6d4a8ed8721168ba9567a5b8b9 100644 --- a/analysis/PWGC2F/femtoscopy/nicafemto/cuts/anatreecuts/pair/CbmBasicFemtoPairCut.cxx +++ b/analysis/PWGC2F/femtoscopy/nicafemto/cuts/pair/CbmBasicFemtoPairCut.cxx @@ -10,10 +10,12 @@ #include "CbmDeltaPhiDeltaThetaCut.h" #include "CbmStsExitSepCut.h" + #include "NicaCutMonitorX.h" #include "NicaCutMonitorXY.h" -CbmBasicFemtoPairCut::CbmBasicFemtoPairCut() { +CbmBasicFemtoPairCut::CbmBasicFemtoPairCut() +{ AddCut(CbmStsExitSepCut()); AddCut(CbmDeltaPhiDeltaThetaStarCut()); SetSeparationMonitorAxis(100, 0, 10); @@ -21,23 +23,22 @@ CbmBasicFemtoPairCut::CbmBasicFemtoPairCut() { SetDeltaEtaStarAxis(100, -0.1, 0.1); } -void CbmBasicFemtoPairCut::SetDeltaPhiStarCut(Double_t min, Double_t max) { +void CbmBasicFemtoPairCut::SetDeltaPhiStarCut(Double_t min, Double_t max) +{ GetDeltaPhiEtaStarCut()->SetMinMax(min, max, 0); } -void CbmBasicFemtoPairCut::SetDeltaEtaStarCut(Double_t min, Double_t max) { +void CbmBasicFemtoPairCut::SetDeltaEtaStarCut(Double_t min, Double_t max) +{ GetDeltaPhiEtaStarCut()->SetMinMax(min, max, 1); } -void CbmBasicFemtoPairCut::SetR(Double_t R) { - GetDeltaPhiEtaStarCut()->SetR(R); -} +void CbmBasicFemtoPairCut::SetR(Double_t R) { GetDeltaPhiEtaStarCut()->SetR(R); } -void CbmBasicFemtoPairCut::SetSTSExitSeparationCut(Double_t min, Double_t max) { - GetStsExitCut()->SetMinMax(min, max); -} +void CbmBasicFemtoPairCut::SetSTSExitSeparationCut(Double_t min, Double_t max) { GetStsExitCut()->SetMinMax(min, max); } -void CbmBasicFemtoPairCut::CreateBasicMonitors() { +void CbmBasicFemtoPairCut::CreateBasicMonitors() +{ TString opt = ""; Int_t step = 0; TString params = GetGlobalCutOption(); @@ -49,14 +50,10 @@ void CbmBasicFemtoPairCut::CreateBasicMonitors() { NicaCutMonitorX exitM(GetStsExitCut()->CutName(opt), step); exitM.SetXaxis(fExitSeparation.X(), fExitSeparation.Y(), fExitSeparation.Z()); AddCutMonitor(exitM); - NicaCutMonitorXY phiM(GetDeltaPhiEtaStarCut()->CutName(opt), - 0 + step, - GetDeltaPhiEtaStarCut()->CutName(opt), + NicaCutMonitorXY phiM(GetDeltaPhiEtaStarCut()->CutName(opt), 0 + step, GetDeltaPhiEtaStarCut()->CutName(opt), 1 + step); - phiM.SetXaxis( - fMonitorPhiPair[0].X(), fMonitorPhiPair[0].Y(), fMonitorPhiPair[0].Z()); - phiM.SetYaxis( - fMonitorPhiPair[1].X(), fMonitorPhiPair[1].Y(), fMonitorPhiPair[1].Z()); + phiM.SetXaxis(fMonitorPhiPair[0].X(), fMonitorPhiPair[0].Y(), fMonitorPhiPair[0].Z()); + phiM.SetYaxis(fMonitorPhiPair[1].X(), fMonitorPhiPair[1].Y(), fMonitorPhiPair[1].Z()); AddCutMonitor(phiM); } diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/cuts/anatreecuts/pair/CbmBasicFemtoPairCut.h b/analysis/PWGC2F/femtoscopy/nicafemto/cuts/pair/CbmBasicFemtoPairCut.h similarity index 73% rename from analysis/PWGC2F/femtoscopy/nicafemto/cuts/anatreecuts/pair/CbmBasicFemtoPairCut.h rename to analysis/PWGC2F/femtoscopy/nicafemto/cuts/pair/CbmBasicFemtoPairCut.h index ad0f2486b8a785d4fe7f3cdbe366a1a566941d16..2851cbf2c3418460c7564ecc9111d55411861f0a 100644 --- a/analysis/PWGC2F/femtoscopy/nicafemto/cuts/anatreecuts/pair/CbmBasicFemtoPairCut.h +++ b/analysis/PWGC2F/femtoscopy/nicafemto/cuts/pair/CbmBasicFemtoPairCut.h @@ -9,33 +9,24 @@ #ifndef CBMBASICFEMTOPAIRCUT_H_ #define CBMBASICFEMTOPAIRCUT_H_ -#include "NicaCutsAndMonitors.h" #include <TVector3.h> +#include "NicaCutsAndMonitors.h" + class CbmStsExitSepCut; class CbmDeltaPhiDeltaThetaStarCut; class CbmBasicFemtoPairCut : public NicaCutsAndMonitors { TVector3 fMonitorPhiPair[2]; TVector3 fExitSeparation; - CbmStsExitSepCut* GetStsExitCut() const { - return (CbmStsExitSepCut*) CutAt(0); - } - CbmDeltaPhiDeltaThetaStarCut* GetDeltaPhiEtaStarCut() const { - return (CbmDeltaPhiDeltaThetaStarCut*) CutAt(1); - } + CbmStsExitSepCut* GetStsExitCut() const { return (CbmStsExitSepCut*) CutAt(0); } + CbmDeltaPhiDeltaThetaStarCut* GetDeltaPhiEtaStarCut() const { return (CbmDeltaPhiDeltaThetaStarCut*) CutAt(1); } public: CbmBasicFemtoPairCut(); - void SetSeparationMonitorAxis(Int_t nbins, Double_t min, Double_t max) { - fExitSeparation.SetXYZ(nbins, min, max); - } - void SetDeltaPhiStarAxis(Int_t bin, Double_t min, Double_t max) { - fMonitorPhiPair[0].SetXYZ(bin, min, max); - } - void SetDeltaEtaStarAxis(Int_t bin, Double_t min, Double_t max) { - fMonitorPhiPair[1].SetXYZ(bin, min, max); - } + void SetSeparationMonitorAxis(Int_t nbins, Double_t min, Double_t max) { fExitSeparation.SetXYZ(nbins, min, max); } + void SetDeltaPhiStarAxis(Int_t bin, Double_t min, Double_t max) { fMonitorPhiPair[0].SetXYZ(bin, min, max); } + void SetDeltaEtaStarAxis(Int_t bin, Double_t min, Double_t max) { fMonitorPhiPair[1].SetXYZ(bin, min, max); } void SetDeltaPhiStarCut(Double_t min, Double_t max); void SetDeltaEtaStarCut(Double_t min, Double_t max); void SetR(Double_t R); diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/cuts/commoncuts/pair/CbmDeltaPhiDeltaThetaCut.cxx b/analysis/PWGC2F/femtoscopy/nicafemto/cuts/pair/CbmDeltaPhiDeltaThetaCut.cxx similarity index 65% rename from analysis/PWGC2F/femtoscopy/nicafemto/cuts/commoncuts/pair/CbmDeltaPhiDeltaThetaCut.cxx rename to analysis/PWGC2F/femtoscopy/nicafemto/cuts/pair/CbmDeltaPhiDeltaThetaCut.cxx index de4da8578847b833035d706aa74fe9311ea03666..d71deeeaa56bf2ab387a32fdbbd2f58eb0aae102 100644 --- a/analysis/PWGC2F/femtoscopy/nicafemto/cuts/commoncuts/pair/CbmDeltaPhiDeltaThetaCut.cxx +++ b/analysis/PWGC2F/femtoscopy/nicafemto/cuts/pair/CbmDeltaPhiDeltaThetaCut.cxx @@ -11,8 +11,11 @@ #include "CbmHbtTrack.h" #include "CbmHelix.h" -#include "NicaCbmATTrack.h" -#include "NicaCbmGlobalTrack.h" + +#include <TLorentzVector.h> +#include <TVector3.h> + +#include "NicaCbmTrack.h" #include "NicaCut.h" #include "NicaEvent.h" #include "NicaPackage.h" @@ -21,28 +24,27 @@ #include "NicaTrack.h" #include "NicaTwoTrack.h" -#include <TLorentzVector.h> -#include <TVector3.h> - CbmDeltaPhiDeltaThetaStarCut::CbmDeltaPhiDeltaThetaStarCut() : NicaTwoTrackCut(2) , fR(0.0) - , fDataType(NicaCbmFormats::ECbmFormatType::kUnknown) { + , fDataType(NicaCbmFormats::ECbmFormatType::kUnknown) +{ SetUnitName("#Delta#phi^{*} [rad]", 0); SetUnitName("#Delta#eta^{*} [rad]", 1); } -Bool_t CbmDeltaPhiDeltaThetaStarCut::Init(Int_t task_id) { - fDataType = - NicaCbmFormats::GetFormatType(task_id, ENicaFormatDepth::kBuffered); +Bool_t CbmDeltaPhiDeltaThetaStarCut::Init(Int_t task_id) +{ + fDataType = NicaCbmFormats::GetFormatType(task_id, ENicaFormatDepth::kBuffered); if (fDataType == NicaCbmFormats::ECbmFormatType::kUnknown) return kFALSE; return kTRUE; } -Bool_t CbmDeltaPhiDeltaThetaStarCut::Pass(NicaTwoTrack* pair) { +Bool_t CbmDeltaPhiDeltaThetaStarCut::Pass(NicaTwoTrack* pair) +{ TVector3 mom1, mom2; switch (fDataType) { - case NicaCbmFormats::ECbmFormatType::kCbmRoot: { + case NicaCbmFormats::ECbmFormatType::kAnaTree: { NicaCbmTrack* tr1 = static_cast<NicaCbmTrack*>(pair->GetTrack1()); NicaCbmTrack* tr2 = static_cast<NicaCbmTrack*>(pair->GetTrack2()); CbmHelix* h1 = tr1->GetHelix(); @@ -50,14 +52,6 @@ Bool_t CbmDeltaPhiDeltaThetaStarCut::Pass(NicaTwoTrack* pair) { h1->Eval(fR + tr1->GetEvent()->GetVertex()->Z(), mom1); h2->Eval(fR + tr2->GetEvent()->GetVertex()->Z(), mom2); } break; - case NicaCbmFormats::ECbmFormatType::kAnaTree: { - NicaCbmATTrack* tr1 = static_cast<NicaCbmATTrack*>(pair->GetTrack1()); - NicaCbmATTrack* tr2 = static_cast<NicaCbmATTrack*>(pair->GetTrack2()); - CbmHelix* h1 = tr1->GetHelix(); - CbmHelix* h2 = tr2->GetHelix(); - h1->Eval(fR + tr1->GetEvent()->GetVertex()->Z(), mom1); - h2->Eval(fR + tr2->GetEvent()->GetVertex()->Z(), mom2); - } break; case NicaCbmFormats::ECbmFormatType::kHbt: { CbmHbtTrack* tr1 = static_cast<CbmHbtTrack*>(pair->GetTrack1()); CbmHbtTrack* tr2 = static_cast<CbmHbtTrack*>(pair->GetTrack2()); @@ -73,21 +67,21 @@ Bool_t CbmDeltaPhiDeltaThetaStarCut::Pass(NicaTwoTrack* pair) { SetValue(mom1.Phi() - mom2.Phi(), 0); //dleta phi SetValue(mom1.Theta() - mom2.Theta(), 1); - if (GetValue(0) > GetMin(0) && GetValue(0) < GetMax(0) - && GetValue(1) > GetMin(1) && GetValue(1) < GetMax(1)) { + if (GetValue(0) > GetMin(0) && GetValue(0) < GetMax(0) && GetValue(1) > GetMin(1) && GetValue(1) < GetMax(1)) { return ForcedUpdate(kFALSE); } return ForcedUpdate(kTRUE); } -NicaPackage* CbmDeltaPhiDeltaThetaStarCut::Report() const { +NicaPackage* CbmDeltaPhiDeltaThetaStarCut::Report() const +{ NicaPackage* pack = NicaTwoTrackCut::Report(); pack->AddObject(new NicaParameterDouble("R", fR)); return pack; } -CbmDeltaPhiDeltaThetaStarCut& CbmDeltaPhiDeltaThetaStarCut:: -operator=(const CbmDeltaPhiDeltaThetaStarCut& other) { +CbmDeltaPhiDeltaThetaStarCut& CbmDeltaPhiDeltaThetaStarCut::operator=(const CbmDeltaPhiDeltaThetaStarCut& other) +{ if (this == &other) return *this; fDataType = other.fDataType; return *this; @@ -95,20 +89,21 @@ operator=(const CbmDeltaPhiDeltaThetaStarCut& other) { CbmDeltaPhiDeltaThetaStarCut::~CbmDeltaPhiDeltaThetaStarCut() {} -CbmDeltaPhiDeltaThetaCut::CbmDeltaPhiDeltaThetaCut() : NicaTwoTrackCut(2) { +CbmDeltaPhiDeltaThetaCut::CbmDeltaPhiDeltaThetaCut() : NicaTwoTrackCut(2) +{ SetUnitName("#Delta#phi [rad]", 0); SetUnitName("#Delta#eta [rad]", 1); } Bool_t CbmDeltaPhiDeltaThetaCut::Init(Int_t /*task_id*/) { return kTRUE; } -Bool_t CbmDeltaPhiDeltaThetaCut::Pass(NicaTwoTrack* pair) { - NicaCbmTrack* tr1 = static_cast<NicaCbmTrack*>(pair->GetTrack1()); - NicaCbmTrack* tr2 = static_cast<NicaCbmTrack*>(pair->GetTrack2()); +Bool_t CbmDeltaPhiDeltaThetaCut::Pass(NicaTwoTrack* pair) +{ + NicaTrack* tr1 = static_cast<NicaTrack*>(pair->GetTrack1()); + NicaTrack* tr2 = static_cast<NicaTrack*>(pair->GetTrack2()); SetValue(tr1->GetMomentum()->Phi() - tr2->GetMomentum()->Phi(), 0); SetValue(tr1->GetMomentum()->Theta() - tr2->GetMomentum()->Theta(), 1); - if (GetValue(0) > GetMin(0) && GetValue(0) < GetMax(0) - && GetValue(1) > GetMin(1) && GetValue(1) < GetMax(1)) { + if (GetValue(0) > GetMin(0) && GetValue(0) < GetMax(0) && GetValue(1) > GetMin(1) && GetValue(1) < GetMax(1)) { return ForcedUpdate(kFALSE); } return ForcedUpdate(kTRUE); diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/cuts/commoncuts/pair/CbmDeltaPhiDeltaThetaCut.h b/analysis/PWGC2F/femtoscopy/nicafemto/cuts/pair/CbmDeltaPhiDeltaThetaCut.h similarity index 90% rename from analysis/PWGC2F/femtoscopy/nicafemto/cuts/commoncuts/pair/CbmDeltaPhiDeltaThetaCut.h rename to analysis/PWGC2F/femtoscopy/nicafemto/cuts/pair/CbmDeltaPhiDeltaThetaCut.h index cacb2fd9c7c88b582660445e171d686590f89eb6..325d2f5abd204e9a10f105d3890990cb23579ff0 100644 --- a/analysis/PWGC2F/femtoscopy/nicafemto/cuts/commoncuts/pair/CbmDeltaPhiDeltaThetaCut.h +++ b/analysis/PWGC2F/femtoscopy/nicafemto/cuts/pair/CbmDeltaPhiDeltaThetaCut.h @@ -9,7 +9,6 @@ #ifndef CBMDELTAPHIDELTATHETACUT_H_ #define CBMDELTAPHIDELTATHETACUT_H_ #include "NicaCbmFormatTypes.h" -#include "NicaCbmTrack.h" #include "NicaTwoTrackCut.h" class CbmDeltaPhiDeltaThetaStarCut : public NicaTwoTrackCut { @@ -18,8 +17,7 @@ class CbmDeltaPhiDeltaThetaStarCut : public NicaTwoTrackCut { public: CbmDeltaPhiDeltaThetaStarCut(); - CbmDeltaPhiDeltaThetaStarCut& - operator=(const CbmDeltaPhiDeltaThetaStarCut& other); + CbmDeltaPhiDeltaThetaStarCut& operator=(const CbmDeltaPhiDeltaThetaStarCut& other); void SetR(Double_t r) { fR = r; } virtual Bool_t Init(Int_t task_id = 0); Bool_t Pass(NicaTwoTrack* pair); diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/cuts/commoncuts/pair/CbmStsExitSepCut.cxx b/analysis/PWGC2F/femtoscopy/nicafemto/cuts/pair/CbmStsExitSepCut.cxx similarity index 58% rename from analysis/PWGC2F/femtoscopy/nicafemto/cuts/commoncuts/pair/CbmStsExitSepCut.cxx rename to analysis/PWGC2F/femtoscopy/nicafemto/cuts/pair/CbmStsExitSepCut.cxx index f14176d55dc987c810c282ec2fc607d27caaf4b2..236df8fc4b95bb8e350267330b19c114b09cc2a0 100644 --- a/analysis/PWGC2F/femtoscopy/nicafemto/cuts/commoncuts/pair/CbmStsExitSepCut.cxx +++ b/analysis/PWGC2F/femtoscopy/nicafemto/cuts/pair/CbmStsExitSepCut.cxx @@ -10,45 +10,31 @@ #include "CbmHbtTrack.h" #include "CbmHelix.h" -#include "NicaCbmATTrack.h" -#include "NicaExpEvent.h" -#include "NicaTwoTrack.h" #include <TLorentzVector.h> #include <TVector3.h> -CbmStsExitSepCut::CbmStsExitSepCut() - : NicaTwoTrackCut(1), fDataType(NicaCbmFormats::ECbmFormatType::kUnknown) { +#include "NicaCbmTrack.h" +#include "NicaExpEvent.h" +#include "NicaTwoTrack.h" + +CbmStsExitSepCut::CbmStsExitSepCut() : NicaTwoTrackCut(1), fDataType(NicaCbmFormats::ECbmFormatType::kUnknown) +{ SetUnitName("StsExitSep [cm]"); SetMinMax(0, 1E+5); } -Bool_t CbmStsExitSepCut::Pass(NicaTwoTrack* pair) { +Bool_t CbmStsExitSepCut::Pass(NicaTwoTrack* pair) +{ CbmHelix *h1 = nullptr, *h2 = nullptr; TLorentzVector *Pos1 = nullptr, *Pos2 = nullptr; Double_t dist = 0; switch (fDataType) { - case NicaCbmFormats::ECbmFormatType::kCbmRoot: { + case NicaCbmFormats::ECbmFormatType::kAnaTree: { NicaCbmTrack* tr1 = static_cast<NicaCbmTrack*>(pair->GetTrack1()); NicaCbmTrack* tr2 = static_cast<NicaCbmTrack*>(pair->GetTrack2()); - Pos1 = static_cast<NicaExpEvent*>(tr1->GetEvent())->GetVertex(); - Pos2 = static_cast<NicaExpEvent*>(tr2->GetEvent())->GetVertex(); - - h1 = tr1->GetHelix(); - h2 = tr2->GetHelix(); - TVector3 pos1 = h1->Eval(101.1 + Pos1->Z()); - TVector3 pos2 = h2->Eval(101.1 + Pos2->Z()); - pos1.SetX(pos1.X() - Pos1->X()); - pos1.SetY(pos1.Y() - Pos1->Y()); - pos2.SetX(pos2.X() - Pos2->X()); - pos2.SetY(pos2.Y() - Pos2->Y()); - dist = (pos1 - pos2).Mag(); - } break; - case NicaCbmFormats::ECbmFormatType::kAnaTree: { - NicaCbmATTrack* tr1 = static_cast<NicaCbmATTrack*>(pair->GetTrack1()); - NicaCbmATTrack* tr2 = static_cast<NicaCbmATTrack*>(pair->GetTrack2()); - Pos1 = static_cast<NicaExpEvent*>(tr1->GetEvent())->GetVertex(); - Pos2 = static_cast<NicaExpEvent*>(tr2->GetEvent())->GetVertex(); + Pos1 = static_cast<NicaExpEvent*>(tr1->GetEvent())->GetVertex(); + Pos2 = static_cast<NicaExpEvent*>(tr2->GetEvent())->GetVertex(); h1 = tr1->GetHelix(); h2 = tr2->GetHelix(); @@ -75,9 +61,9 @@ Bool_t CbmStsExitSepCut::Pass(NicaTwoTrack* pair) { return Validate(); } -Bool_t CbmStsExitSepCut::Init(Int_t task_id) { - fDataType = - NicaCbmFormats::GetFormatType(task_id, ENicaFormatDepth::kBuffered); +Bool_t CbmStsExitSepCut::Init(Int_t task_id) +{ + fDataType = NicaCbmFormats::GetFormatType(task_id, ENicaFormatDepth::kBuffered); if (fDataType == NicaCbmFormats::ECbmFormatType::kUnknown) return kFALSE; return kTRUE; } diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/cuts/commoncuts/pair/CbmStsExitSepCut.h b/analysis/PWGC2F/femtoscopy/nicafemto/cuts/pair/CbmStsExitSepCut.h similarity index 96% rename from analysis/PWGC2F/femtoscopy/nicafemto/cuts/commoncuts/pair/CbmStsExitSepCut.h rename to analysis/PWGC2F/femtoscopy/nicafemto/cuts/pair/CbmStsExitSepCut.h index e1add337494f380831c1b2bd07b84a739da86e35..761c32fc313f3d594f54158b149db596fab26540 100644 --- a/analysis/PWGC2F/femtoscopy/nicafemto/cuts/commoncuts/pair/CbmStsExitSepCut.h +++ b/analysis/PWGC2F/femtoscopy/nicafemto/cuts/pair/CbmStsExitSepCut.h @@ -10,7 +10,6 @@ #define PAIRCUTS_CBMSTSEXITSEPCUT_H_ #include "NicaCbmFormatTypes.h" -#include "NicaCbmTrack.h" #include "NicaTwoTrackCut.h" diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/cuts/rawcuts/paircuts/CbmAvXYCut.cxx b/analysis/PWGC2F/femtoscopy/nicafemto/cuts/rawcuts/paircuts/CbmAvXYCut.cxx deleted file mode 100644 index f1cdc95c34398a4d9c6e6c5ff48e50ed8043edd3..0000000000000000000000000000000000000000 --- a/analysis/PWGC2F/femtoscopy/nicafemto/cuts/rawcuts/paircuts/CbmAvXYCut.cxx +++ /dev/null @@ -1,56 +0,0 @@ -/* - * CbmAvXYCut.cpp - * - * Created on: 15 cze 2020 - * Author: Daniel Wielanek - * E-mail: daniel.wielanek@gmail.com - * Warsaw University of Technology, Faculty of Physics - */ -#include "CbmAvXYCut.h" - -#include "CbmHelix.h" -#include "NicaExpEvent.h" -#include "NicaTwoTrack.h" - -#include <TLorentzVector.h> -#include <TVector3.h> - -CbmAvXYCut::CbmAvXYCut() : NicaTwoTrackCut(2) { - SetUnitName("X_{av} [cm]", 0); - SetUnitName("Y_{av} [cm]", 1); - SetMinMax(-90, 90, 0); - SetMinMax(-90, 90, 1); -} - -Bool_t CbmAvXYCut::Init(Int_t task_id) { - if (FormatInhertis("NicaCbmEvent", task_id) - || FormatInhertis("NicaCbmGlobalMCEvent", task_id)) { - return kTRUE; - } - return kFALSE; -} - -Bool_t CbmAvXYCut::Pass(NicaTwoTrack* pair) { - NicaCbmTrack* tr1 = static_cast<NicaCbmTrack*>(pair->GetTrack1()); - NicaCbmTrack* tr2 = static_cast<NicaCbmTrack*>(pair->GetTrack2()); - TLorentzVector* Pos1 = - static_cast<NicaExpEvent*>(tr1->GetEvent())->GetVertex(); - TLorentzVector* Pos2 = - static_cast<NicaExpEvent*>(tr2->GetEvent())->GetVertex(); - - CbmHelix* h1 = tr1->GetHelix(); - CbmHelix* h2 = tr2->GetHelix(); - TVector3 pos1 = h1->Eval(50.1 + Pos1->Z()); - TVector3 pos2 = h2->Eval(50.1 + Pos2->Z()); - pos1.SetX(pos1.X() - Pos1->X()); - pos1.SetY(pos1.Y() - Pos1->Y()); - pos2.SetX(pos2.X() - Pos2->X()); - pos2.SetY(pos2.Y() - Pos2->Y()); - - TVector3 av = pos1 + pos2; - SetValue(av.X() * 0.5, 0); - SetValue(av.Y() * 0.5, 1); - return Validate(); -} - -CbmAvXYCut::~CbmAvXYCut() {} diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/cuts/rawcuts/paircuts/CbmAvXYCut.h b/analysis/PWGC2F/femtoscopy/nicafemto/cuts/rawcuts/paircuts/CbmAvXYCut.h deleted file mode 100644 index a386b3d82ef31fbfc40ccd81e2273d0b5ae7c591..0000000000000000000000000000000000000000 --- a/analysis/PWGC2F/femtoscopy/nicafemto/cuts/rawcuts/paircuts/CbmAvXYCut.h +++ /dev/null @@ -1,24 +0,0 @@ -/* - * CbmAvXYCut.h - * - * Created on: 15 cze 2020 - * Author: Daniel Wielanek - * E-mail: daniel.wielanek@gmail.com - * Warsaw University of Technology, Faculty of Physics - */ -#ifndef CBM_NOV_ANALYSIS_CBMFEMTO_CUTS_PAIRCUTS_CBMAVXYCUT_H_ -#define CBM_NOV_ANALYSIS_CBMFEMTO_CUTS_PAIRCUTS_CBMAVXYCUT_H_ - -#include "NicaCbmTrack.h" -#include "NicaTwoTrackCut.h" - -class CbmAvXYCut : public NicaTwoTrackCut { -public: - CbmAvXYCut(); - virtual Bool_t Init(Int_t task_id = 0); - Bool_t Pass(NicaTwoTrack* pair); - virtual ~CbmAvXYCut(); - ClassDef(CbmAvXYCut, 1) -}; - -#endif /* CBM_NOV_ANALYSIS_CBMFEMTO_CUTS_PAIRCUTS_CBMAVXYCUT_H_ */ diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/cuts/rawcuts/paircuts/CbmSailorCowboyCut.cxx b/analysis/PWGC2F/femtoscopy/nicafemto/cuts/rawcuts/paircuts/CbmSailorCowboyCut.cxx deleted file mode 100644 index 6201a6a9b76f758900c8e473e741036f0d27e4ee..0000000000000000000000000000000000000000 --- a/analysis/PWGC2F/femtoscopy/nicafemto/cuts/rawcuts/paircuts/CbmSailorCowboyCut.cxx +++ /dev/null @@ -1,65 +0,0 @@ -/* - * CbmSailorCowboyCut.cxx - * - * Created on: 9 cze 2020 - * Author: Daniel Wielanek - * E-mail: daniel.wielanek@gmail.com - * Warsaw University of Technology, Faculty of Physics - */ -#include "CbmSailorCowboyCut.h" - -#include "CbmHelix.h" -#include "CbmStsExitSepCut.h" -#include "NicaExpEvent.h" -#include "NicaTwoTrack.h" - - -CbmSailorCowboyCut::CbmSailorCowboyCut() : NicaTwoTrackCut(1) { - SetUnitName("Sail Cow [Au]", 0); - SetMinMax(0, 1); -} - -CbmSailorCowboyCut::~CbmSailorCowboyCut() {} - -Bool_t CbmSailorCowboyCut::Init(Int_t task_id) { - if (FormatInhertis("NicaCbmEvent", task_id) - || FormatInhertis("NicaCbmGlobalMCEvent", task_id)) { - return kTRUE; - } - return kFALSE; -} - -Bool_t CbmSailorCowboyCut::Pass(NicaTwoTrack* pair) { - NicaCbmTrack* tr1 = static_cast<NicaCbmTrack*>(pair->GetTrack1()); - NicaCbmTrack* tr2 = static_cast<NicaCbmTrack*>(pair->GetTrack2()); - TLorentzVector* Pos1 = - static_cast<NicaExpEvent*>(tr1->GetEvent())->GetVertex(); - TLorentzVector* Pos2 = - static_cast<NicaExpEvent*>(tr2->GetEvent())->GetVertex(); - - CbmHelix* h1 = tr1->GetHelix(); - CbmHelix* h2 = tr2->GetHelix(); - TVector3 pos1[4], pos2[4]; - pos1[0] = h1->Eval(Pos1->Z()); - pos2[0] = h2->Eval(Pos2->Z()); - pos1[1] = h1->Eval(Pos1->Z() + 25.0); - pos2[1] = h2->Eval(Pos2->Z() + 25.0); - pos1[2] = h1->Eval(Pos1->Z() + 50.0); - pos2[2] = h2->Eval(Pos2->Z() + 50.0); - pos1[3] = h1->Eval(Pos1->Z() + 75.0); - pos2[3] = h2->Eval(Pos2->Z() + 75.0); - Double_t minXY = -1000.0; - for (int i = 0; i < 4; i++) { - Double_t dx = (pos1[i].X() - Pos1->X()) - (pos2[i].X() - Pos2->X()); - Double_t dy = (pos1[i].Y() - Pos1->Y()) - (pos2[i].Y() - Pos2->Y()); - Double_t dR = dx * dx + dy * dy; - if (dR < minXY) { //distance smaller than previous - cowboy - SetValue(Cowboy()); - return Validate(); - } else { - minXY = dR; - } - } - SetValue(Sailor()); - return Validate(); -} diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/cuts/rawcuts/paircuts/CbmSailorCowboyCut.h b/analysis/PWGC2F/femtoscopy/nicafemto/cuts/rawcuts/paircuts/CbmSailorCowboyCut.h deleted file mode 100644 index 38688dc8c3ee736c63b60cb9f1cdbe1c80567e20..0000000000000000000000000000000000000000 --- a/analysis/PWGC2F/femtoscopy/nicafemto/cuts/rawcuts/paircuts/CbmSailorCowboyCut.h +++ /dev/null @@ -1,29 +0,0 @@ -/* - * CbmSailorCowboyCut.h - * - * Created on: 9 cze 2020 - * Author: Daniel Wielanek - * E-mail: daniel.wielanek@gmail.com - * Warsaw University of Technology, Faculty of Physics - */ -#ifndef CBM_NOV_ANALYSIS_CBMFEMTO_CUTS_PAIRCUTS_CBMSAILORCOWBOYCUT_H_ -#define CBM_NOV_ANALYSIS_CBMFEMTO_CUTS_PAIRCUTS_CBMSAILORCOWBOYCUT_H_ - -#include "NicaCbmTrack.h" -#include "NicaTwoTrackCut.h" - -class CbmSailorCowboyCut : public NicaTwoTrackCut { - -public: - CbmSailorCowboyCut(); - static Int_t Cowboy() { return 1; }; - static Int_t Sailor() { return 0; }; - void AcceptSailor() { SetMinAndMax(Sailor()); }; - void AcceptCowboy() { SetMinAndMax(Cowboy()); }; - virtual ~CbmSailorCowboyCut(); - virtual Bool_t Init(Int_t task_id = 0); - Bool_t Pass(NicaTwoTrack* pair); - ClassDef(CbmSailorCowboyCut, 1) -}; - -#endif /* CBM_NOV_ANALYSIS_CBMFEMTO_CUTS_PAIRCUTS_CBMSAILORCOWBOYCUT_H_ */ diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/cuts/rawcuts/trackcuts/CbmHasTofTrackCut.cxx b/analysis/PWGC2F/femtoscopy/nicafemto/cuts/rawcuts/trackcuts/CbmHasTofTrackCut.cxx deleted file mode 100644 index 2a8ae84cb9399f7b743fe78289f07f515ac9b4eb..0000000000000000000000000000000000000000 --- a/analysis/PWGC2F/femtoscopy/nicafemto/cuts/rawcuts/trackcuts/CbmHasTofTrackCut.cxx +++ /dev/null @@ -1,32 +0,0 @@ -/* - * CbmTofTrackCut.cxx - * - * Created on: 17 lip 2019 - * Author: Daniel Wielanek - * E-mail: daniel.wielanek@gmail.com - * Warsaw University of Technology, Faculty of Physics - */ -#include "CbmHasTofTrackCut.h" - -#include "NicaCbmTrack.h" -CbmHasTofTrackCut::CbmHasTofTrackCut() : NicaTrackCut(1) {} - -Bool_t CbmHasTofTrackCut::Init(Int_t format_id) { - fInit = kTRUE; - if (FormatInhertis("NicaCbmEvent", format_id)) { return kTRUE; } - return kFALSE; -} - -Bool_t CbmHasTofTrackCut::Pass(NicaTrack* track) { - NicaCbmTrack* tr = (NicaCbmTrack*) track; - CbmTofHit* tof = tr->GetTofHit(); - if (tof == NULL) { - SetValue(0); - return ForcedUpdate(kFALSE); - } else { - SetValue(1); - return ForcedUpdate(kTRUE); - } -} - -CbmHasTofTrackCut::~CbmHasTofTrackCut() {} diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/cuts/rawcuts/trackcuts/CbmHasTofTrackCut.h b/analysis/PWGC2F/femtoscopy/nicafemto/cuts/rawcuts/trackcuts/CbmHasTofTrackCut.h deleted file mode 100644 index 09353786658a05081285209e58030dfb1d2a34c5..0000000000000000000000000000000000000000 --- a/analysis/PWGC2F/femtoscopy/nicafemto/cuts/rawcuts/trackcuts/CbmHasTofTrackCut.h +++ /dev/null @@ -1,23 +0,0 @@ -/* - * CbmTofTrackCut.h - * - * Created on: 17 lip 2019 - * Author: Daniel Wielanek - * E-mail: daniel.wielanek@gmail.com - * Warsaw University of Technology, Faculty of Physics - */ -#ifndef CBMTOFTRACKCUT_H_ -#define CBMTOFTRACKCUT_H_ - -#include "NicaTrackCut.h" - -class CbmHasTofTrackCut : public NicaTrackCut { -public: - CbmHasTofTrackCut(); - virtual Bool_t Init(Int_t format_id = 0); - virtual Bool_t Pass(NicaTrack* track); - virtual ~CbmHasTofTrackCut(); - ClassDef(CbmHasTofTrackCut, 1) -}; - -#endif /* CBMTOFTRACKCUT_H_ */ diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/cuts/rawcuts/trackcuts/CbmMCPointsCuts.cxx b/analysis/PWGC2F/femtoscopy/nicafemto/cuts/rawcuts/trackcuts/CbmMCPointsCuts.cxx deleted file mode 100644 index 4d2f40577b93749764720e370c55f84b0c1bdf57..0000000000000000000000000000000000000000 --- a/analysis/PWGC2F/femtoscopy/nicafemto/cuts/rawcuts/trackcuts/CbmMCPointsCuts.cxx +++ /dev/null @@ -1,101 +0,0 @@ -/* - * CbmMCPointsCuts.cxx - * - * Created on: 18 lip 2019 - * Author: Daniel Wielanek - * E-mail: daniel.wielanek@gmail.com - * Warsaw University of Technology, Faculty of Physics - */ -#include "CbmMCPointsCuts.h" - -#include "NicaCbmMCTrack.h" - -NicaCbmMCPointsCut::NicaCbmMCPointsCut(Int_t params) : NicaTrackCut(params) {} - -Bool_t NicaCbmMCPointsCut::Init(Int_t format_id) { - if (FormatInhertis("NicaCbmMCEvent", format_id)) { - fInit = kTRUE; - return kTRUE; - } - return kFALSE; -} - -NicaCbmStsPointsCut::NicaCbmStsPointsCut() : NicaCbmMCPointsCut(1) { - SetUnitName("N_{STS Points} [N]", 0); -} - -Bool_t NicaCbmStsPointsCut::Pass(NicaTrack* track) { - NicaCbmMCTrack* tr = (NicaCbmMCTrack*) track; - SetValue(tr->GetNPoints(ECbmModuleId::kSts)); - return Validate(); -} - -NicaCbmMvdPointsCut::NicaCbmMvdPointsCut() : NicaCbmMCPointsCut(1) { - SetUnitName("N_{MVD Points} [N]", 0); -} - -Bool_t NicaCbmMvdPointsCut::Pass(NicaTrack* track) { - NicaCbmMCTrack* tr = (NicaCbmMCTrack*) track; - SetValue(tr->GetNPoints(ECbmModuleId::kMvd)); - return Validate(); -} - -NicaCbmRichPointsCut::NicaCbmRichPointsCut() : NicaCbmMCPointsCut(1) { - SetUnitName("N_{RICH Points} [N]", 0); -} - -Bool_t NicaCbmRichPointsCut::Pass(NicaTrack* track) { - NicaCbmMCTrack* tr = (NicaCbmMCTrack*) track; - SetValue(tr->GetNPoints(ECbmModuleId::kRich)); - return Validate(); -} - -NicaCbmMuchPointsCut::NicaCbmMuchPointsCut() : NicaCbmMCPointsCut(1) { - SetUnitName("N_{MUCH Points} [N]", 0); -} - -Bool_t NicaCbmMuchPointsCut::Pass(NicaTrack* track) { - NicaCbmMCTrack* tr = (NicaCbmMCTrack*) track; - SetValue(tr->GetNPoints(ECbmModuleId::kMuch)); - return Validate(); -} - -NicaCbmTrdPointsCut::NicaCbmTrdPointsCut() : NicaCbmMCPointsCut(1) { - SetUnitName("N_{TRD Points} [N]", 0); -} - -Bool_t NicaCbmTrdPointsCut::Pass(NicaTrack* track) { - NicaCbmMCTrack* tr = (NicaCbmMCTrack*) track; - SetValue(tr->GetNPoints(ECbmModuleId::kTrd)); - return Validate(); -} - -NicaCbmTofPointsCut::NicaCbmTofPointsCut() : NicaCbmMCPointsCut(1) { - SetUnitName("N_{TOFPoints} [N]", 0); -} - -Bool_t NicaCbmTofPointsCut::Pass(NicaTrack* track) { - NicaCbmMCTrack* tr = (NicaCbmMCTrack*) track; - SetValue(tr->GetNPoints(ECbmModuleId::kTof)); - return Validate(); -} - -NicaCbmEcalPointsCut::NicaCbmEcalPointsCut() : NicaCbmMCPointsCut(1) { - SetUnitName("N_{ECALPoints} [N]", 0); -} - -Bool_t NicaCbmEcalPointsCut::Pass(NicaTrack* track) { - NicaCbmMCTrack* tr = (NicaCbmMCTrack*) track; - SetValue(tr->GetNPoints(ECbmModuleId::kEcal)); - return Validate(); -} - -NicaCbmPsdPointsCut::NicaCbmPsdPointsCut() : NicaCbmMCPointsCut(1) { - SetUnitName("N_{PSD Points} [N]", 0); -} - -Bool_t NicaCbmPsdPointsCut::Pass(NicaTrack* track) { - NicaCbmMCTrack* tr = (NicaCbmMCTrack*) track; - SetValue(tr->GetNPoints(ECbmModuleId::kPsd)); - return Validate(); -} diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/cuts/rawcuts/trackcuts/CbmMCPointsCuts.h b/analysis/PWGC2F/femtoscopy/nicafemto/cuts/rawcuts/trackcuts/CbmMCPointsCuts.h deleted file mode 100644 index 54db4b90943e6b9fa954dfde036aec372d9cc007..0000000000000000000000000000000000000000 --- a/analysis/PWGC2F/femtoscopy/nicafemto/cuts/rawcuts/trackcuts/CbmMCPointsCuts.h +++ /dev/null @@ -1,88 +0,0 @@ -/* - * CbmMCPointsCuts.h - * - * Created on: 18 lip 2019 - * Author: Daniel Wielanek - * E-mail: daniel.wielanek@gmail.com - * Warsaw University of Technology, Faculty of Physics - */ -#ifndef CBMMCPOINTSCUTS_H_ -#define CBMMCPOINTSCUTS_H_ - -#include "NicaCbmTrack.h" -#include "NicaTrackCut.h" - -class NicaCbmMCPointsCut : public NicaTrackCut { -public: - NicaCbmMCPointsCut(Int_t params); - virtual Bool_t Init(Int_t format_id); - virtual ~NicaCbmMCPointsCut() {}; - ClassDef(NicaCbmMCPointsCut, 1); -}; - -class NicaCbmStsPointsCut : public NicaCbmMCPointsCut { -public: - NicaCbmStsPointsCut(); - Bool_t Pass(NicaTrack* track); - virtual ~NicaCbmStsPointsCut() {}; - ClassDef(NicaCbmStsPointsCut, 1); -}; - -class NicaCbmMvdPointsCut : public NicaCbmMCPointsCut { -public: - NicaCbmMvdPointsCut(); - Bool_t Pass(NicaTrack* track); - virtual ~NicaCbmMvdPointsCut() {}; - ClassDef(NicaCbmMvdPointsCut, 1); -}; - -class NicaCbmRichPointsCut : public NicaCbmMCPointsCut { -public: - NicaCbmRichPointsCut(); - Bool_t Pass(NicaTrack* track); - virtual ~NicaCbmRichPointsCut() {}; - ClassDef(NicaCbmRichPointsCut, 1); -}; - -class NicaCbmMuchPointsCut : public NicaCbmMCPointsCut { -public: - NicaCbmMuchPointsCut(); - Bool_t Pass(NicaTrack* track); - virtual ~NicaCbmMuchPointsCut() {}; - ClassDef(NicaCbmMuchPointsCut, 1); -}; - -class NicaCbmTrdPointsCut : public NicaCbmMCPointsCut { -public: - NicaCbmTrdPointsCut(); - Bool_t Pass(NicaTrack* track); - virtual ~NicaCbmTrdPointsCut() {}; - ClassDef(NicaCbmTrdPointsCut, 1); -}; - -class NicaCbmTofPointsCut : public NicaCbmMCPointsCut { -public: - NicaCbmTofPointsCut(); - Bool_t Pass(NicaTrack* track); - virtual ~NicaCbmTofPointsCut() {}; - ClassDef(NicaCbmTofPointsCut, 1); -}; - -class NicaCbmEcalPointsCut : public NicaCbmMCPointsCut { -public: - NicaCbmEcalPointsCut(); - Bool_t Pass(NicaTrack* track); - virtual ~NicaCbmEcalPointsCut() {}; - ClassDef(NicaCbmEcalPointsCut, 1); -}; - -class NicaCbmPsdPointsCut : public NicaCbmMCPointsCut { -public: - NicaCbmPsdPointsCut(); - Bool_t Pass(NicaTrack* track); - virtual ~NicaCbmPsdPointsCut() {}; - ClassDef(NicaCbmPsdPointsCut, 1); -}; - - -#endif /* NICA_CBM_CUTS_TRACKCUTS_CBMMCPOINTSCUTS_H_ */ diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/cuts/rawcuts/trackcuts/CbmStsFarDetectorHit.cxx b/analysis/PWGC2F/femtoscopy/nicafemto/cuts/rawcuts/trackcuts/CbmStsFarDetectorHit.cxx deleted file mode 100644 index 94ca6f7bef37539f0fc4a830b2453aa386973f2b..0000000000000000000000000000000000000000 --- a/analysis/PWGC2F/femtoscopy/nicafemto/cuts/rawcuts/trackcuts/CbmStsFarDetectorHit.cxx +++ /dev/null @@ -1,28 +0,0 @@ -/* - * CbmStsFarDetectorHit.cxx - * - * Created on: 31 lip 2019 - * Author: Daniel Wielanek - * E-mail: daniel.wielanek@gmail.com - * Warsaw University of Technology, Faculty of Physics - */ - -#include "CbmStsFarDetectorHit.h" - -#include "CbmGlobalTrack.h" - -CbmStsFarDetectorHit::CbmStsFarDetectorHit() : NicaTrackCut(1) { - SetUnitName("FarHit [N]"); - SetMinMax(0, 10); -} - -Bool_t CbmStsFarDetectorHit::Pass(NicaTrack* track) { - CbmGlobalTrack* tr = (CbmGlobalTrack*) track; - Int_t n = 0; - if (tr->GetTrdTrackIndex() >= 0) n++; - if (tr->GetTofHitIndex() >= 0) n++; - SetValue(n); - return Validate(); -} - -CbmStsFarDetectorHit::~CbmStsFarDetectorHit() {} diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/cuts/rawcuts/trackcuts/CbmStsFarDetectorHit.h b/analysis/PWGC2F/femtoscopy/nicafemto/cuts/rawcuts/trackcuts/CbmStsFarDetectorHit.h deleted file mode 100644 index 4744e4c49087916c0befc84e21323bc33020c545..0000000000000000000000000000000000000000 --- a/analysis/PWGC2F/femtoscopy/nicafemto/cuts/rawcuts/trackcuts/CbmStsFarDetectorHit.h +++ /dev/null @@ -1,22 +0,0 @@ -/* - * CbmStsFarDetectorHit.h - * - * Created on: 31 lip 2019 - * Author: Daniel Wielanek - * E-mail: daniel.wielanek@gmail.com - * Warsaw University of Technology, Faculty of Physics - */ -#ifndef CBMSTSFARDETECTORHIT_H_ -#define CBMSTSFARDETECTORHIT_H_ - -#include "NicaTrackCut.h" - -class CbmStsFarDetectorHit : public NicaTrackCut { -public: - CbmStsFarDetectorHit(); - Bool_t Pass(NicaTrack* track); - virtual ~CbmStsFarDetectorHit(); - ClassDef(CbmStsFarDetectorHit, 1) -}; - -#endif /* CBMSTSFARDETECTORHIT_H_ */ diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/cuts/rawcuts/trackcuts/CbmStsStationsCut.cxx b/analysis/PWGC2F/femtoscopy/nicafemto/cuts/rawcuts/trackcuts/CbmStsStationsCut.cxx deleted file mode 100644 index 585a141924214a5689de466e1434638bfbefe378..0000000000000000000000000000000000000000 --- a/analysis/PWGC2F/femtoscopy/nicafemto/cuts/rawcuts/trackcuts/CbmStsStationsCut.cxx +++ /dev/null @@ -1,34 +0,0 @@ -/* - * CbmStsStationsCut.cxx - * - * Created on: 7 sie 2019 - * Author: Daniel Wielanek - * E-mail: daniel.wielanek@gmail.com - * Warsaw University of Technology, Faculty of Physics - */ -#include "CbmStsStationsCut.h" - -#include "CbmStsTrack.h" -#include "NicaCbmTrack.h" - -CbmStsStationsCut::CbmStsStationsCut() : NicaTrackCut(1) { - SetUnitName("N_{STS stations}"); -} - -Bool_t CbmStsStationsCut::Init(Int_t format_id) { - fInit = kTRUE; - return FormatInhertis("NicaCbmEvent", format_id); -} - -Bool_t CbmStsStationsCut::Pass(NicaTrack* tr) { - NicaCbmTrack* track = (NicaCbmTrack*) tr; - CbmStsTrack* sts = track->GetStsTrack(); - if (!sts) { - SetValue(0); - return ForcedUpdate(kFALSE); - } - // SetValue(sts->GetStationsNo()); - return Validate(); -} - -CbmStsStationsCut::~CbmStsStationsCut() {} diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/cuts/rawcuts/trackcuts/CbmStsStationsCut.h b/analysis/PWGC2F/femtoscopy/nicafemto/cuts/rawcuts/trackcuts/CbmStsStationsCut.h deleted file mode 100644 index cb4d4e8535b4dce3d9a24cfd70eaec41d483b1b3..0000000000000000000000000000000000000000 --- a/analysis/PWGC2F/femtoscopy/nicafemto/cuts/rawcuts/trackcuts/CbmStsStationsCut.h +++ /dev/null @@ -1,23 +0,0 @@ -/* - * CbmStsStationsCut.h - * - * Created on: 7 sie 2019 - * Author: Daniel Wielanek - * E-mail: daniel.wielanek@gmail.com - * Warsaw University of Technology, Faculty of Physics - */ -#ifndef CBMSTSSTATIONSCUT_H_ -#define CBMSTSSTATIONSCUT_H_ - -#include "NicaTrackCut.h" - -class CbmStsStationsCut : public NicaTrackCut { -public: - CbmStsStationsCut(); - Bool_t Init(Int_t format_id = 0); - Bool_t Pass(NicaTrack* h); - virtual ~CbmStsStationsCut(); - ClassDef(CbmStsStationsCut, 1) -}; - -#endif /* NICA_CBM_CUTS_TRACKCUTS_CBMSTSSTATIONSCUT_H_ */ diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/cuts/rawcuts/trackcuts/CbmStsTrackHitsCut.cxx b/analysis/PWGC2F/femtoscopy/nicafemto/cuts/rawcuts/trackcuts/CbmStsTrackHitsCut.cxx deleted file mode 100644 index c0188697c15e7a284b455e9440a1b8671bc26ab2..0000000000000000000000000000000000000000 --- a/analysis/PWGC2F/femtoscopy/nicafemto/cuts/rawcuts/trackcuts/CbmStsTrackHitsCut.cxx +++ /dev/null @@ -1,43 +0,0 @@ -/* - * CbmStsTrackHitsCut.cxx - * - * Created on: 17 lip 2019 - * Author: Daniel Wielanek - * E-mail: daniel.wielanek@gmail.com - * Warsaw University of Technology, Faculty of Physics - */ -#include "CbmStsTrackHitsCut.h" - -#include "CbmStsTrack.h" - -CbmStsTrackHitsCut::CbmStsTrackHitsCut() : NicaTrackCut(3) { - SetUnitName("STS hits [N]", Sts()); - SetUnitName("MV Dhits [N]", Mvd()); - SetUnitName("STS+MVD hits [N]", StsMvd()); - SetMinMax(0, 1000, Sts()); - SetMinMax(0, 1000, Mvd()); - SetMinMax(0, 1000, StsMvd()); -} - -Bool_t CbmStsTrackHitsCut::Pass(NicaTrack* track) { - NicaCbmTrack* tr = (NicaCbmTrack*) track; - CbmStsTrack* sts_tr = tr->GetStsTrack(); - if (sts_tr == NULL) { - SetValue(0, Sts()); - SetValue(0, Mvd()); - SetValue(0, StsMvd()); - } else { - SetValue(sts_tr->GetNofStsHits(), Sts()); - SetValue(sts_tr->GetNofMvdHits(), Mvd()); - SetValue(sts_tr->GetNofHits(), StsMvd()); - } - return Validate(); -} - -Bool_t CbmStsTrackHitsCut::Init(Int_t format_id) { - fInit = kTRUE; - if (FormatInhertis("NicaCbmEvent", format_id)) { return kTRUE; } - return kFALSE; -} - -CbmStsTrackHitsCut::~CbmStsTrackHitsCut() {} diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/cuts/rawcuts/trackcuts/CbmStsTrackHitsCut.h b/analysis/PWGC2F/femtoscopy/nicafemto/cuts/rawcuts/trackcuts/CbmStsTrackHitsCut.h deleted file mode 100644 index e92f9d8980fb0c899c3d258f1f25c162bbdd6af7..0000000000000000000000000000000000000000 --- a/analysis/PWGC2F/femtoscopy/nicafemto/cuts/rawcuts/trackcuts/CbmStsTrackHitsCut.h +++ /dev/null @@ -1,33 +0,0 @@ -/* - * CbmStsTrackHitsCut.h - * - * Created on: 17 lip 2019 - * Author: Daniel Wielanek - * E-mail: daniel.wielanek@gmail.com - * Warsaw University of Technology, Faculty of Physics - */ -#ifndef CBMSTSTRACKHITSCUT_H_ -#define CBMSTSTRACKHITSCUT_H_ - -#include "CbmStsTrack.h" -#include "NicaCbmTrack.h" -#include "NicaTrackCut.h" - -class CbmStsTrackHitsCut : public NicaTrackCut { -public: - CbmStsTrackHitsCut(); - static Int_t Sts() { return 0; }; - static Int_t Mvd() { return 1; }; - static Int_t StsMvd() { return 2; } - void SetNStsHits(Int_t min, Int_t max = 100) { SetMinMax(min, max, Sts()); }; - void SetNMvdHits(Int_t min, Int_t max = 100) { SetMinMax(min, max, Mvd()); }; - void SetNStsMvdHits(Int_t min, Int_t max = 100) { - SetMinMax(min, max, StsMvd()); - }; - virtual Bool_t Init(Int_t format_id = 0); - virtual Bool_t Pass(NicaTrack* track); - virtual ~CbmStsTrackHitsCut(); - ClassDef(CbmStsTrackHitsCut, 1) -}; - -#endif /* CBMSTSTRACKHITSCUT_H_ */ diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/cuts/rawcuts/trackcuts/CbmTofTrackCuts.cxx b/analysis/PWGC2F/femtoscopy/nicafemto/cuts/rawcuts/trackcuts/CbmTofTrackCuts.cxx deleted file mode 100644 index 858e9ba425721819fb393cab6cbd2269d8fffe62..0000000000000000000000000000000000000000 --- a/analysis/PWGC2F/femtoscopy/nicafemto/cuts/rawcuts/trackcuts/CbmTofTrackCuts.cxx +++ /dev/null @@ -1,110 +0,0 @@ -/* - * CbmTofTrackCuts.cxx - * - * Created on: 31 lip 2019 - * Author: Daniel Wielanek - * E-mail: daniel.wielanek@gmail.com - * Warsaw University of Technology, Faculty of Physics - */ -#include "CbmTofTrackCuts.h" - -#include "CbmGlobalTrack.h" -#include "CbmTofHit.h" -#include "NicaCbmTrack.h" - -CbmTofTrackCuts::CbmTofTrackCuts() - : NicaTrackCut(2), fOneOverC(1.0 / 29.99792458) { - SetUnitName("#beta [c]", Beta()); - SetUnitName("m^2 [GeV^2/c^4]", M2()); - SetMinMax(0, 2, Beta()); - SetMinMax(-10, 10, M2()); -} - -void CbmTofTrackCuts::SetM2Cut(Double_t min, Double_t max) { - SetMinMax(min, max, M2()); -} - -void CbmTofTrackCuts::SetBetaCut(Double_t min, Double_t max) { - SetMinMax(min, max, Beta()); -} - -Bool_t CbmTofTrackCuts::Pass(NicaTrack* track) { - NicaCbmTrack* tr = (NicaCbmTrack*) track; - Double_t l = tr->GetTrackLenght(); - CbmTofHit* h = tr->GetTofHit(); - if (h == NULL) { - SetValue(2, Beta()); - SetValue(-1000, M2()); - return ForcedUpdate(kFALSE); - } - Double_t t = h->GetTime(); - Double_t beta = l / t / (29.9792458); - Double_t p = tr->GetMomentum()->P(); - Double_t m2 = p * p * (1. / beta / beta - 1.); - SetValue(beta, Beta()); - SetValue(m2, M2()); - return Validate(); -} - -CbmTofTrackCuts::~CbmTofTrackCuts() {} - -CbmTofM2Cut::CbmTofM2Cut() : fOneOverC(1.0 / 29.99792458) { - SetUnitName("m^2 [GeV^2/c^4]"); -} - -Bool_t CbmTofM2Cut::Pass(NicaTrack* track) { - NicaCbmTrack* tr = (NicaCbmTrack*) track; - Double_t l = tr->GetTrackLenght(); - CbmTofHit* h = tr->GetTofHit(); - if (h == NULL) { - SetValue(-1000); - return ForcedUpdate(kFALSE); - } - Double_t p = tr->GetMomentum()->P(); - Double_t t = h->GetTime(); - Double_t beta = l / t / (29.9792458); - Double_t m2 = p * p * (1. / beta / beta - 1.); - SetValue(m2); - Double_t min = fLowLine[0] + fLowLine[1] * p + fLowLine[2] * p * p; - Double_t max = fHighLine[0] + fHighLine[1] * p + fHighLine[2] * p * p; - if (m2 > max || m2 < min) { return ForcedUpdate(kFALSE); } - return Validate(); -} - -CbmTofM2Cut::~CbmTofM2Cut() {} - -CbmTofMassCut::CbmTofMassCut() : fOneOverC(1.0 / 29.99792458) { - SetUnitName("m [GeV/c]"); -} - -Bool_t CbmTofMassCut::Pass(NicaTrack* track) { - NicaCbmTrack* tr = (NicaCbmTrack*) track; - Double_t l = tr->GetTrackLenght(); - CbmTofHit* h = tr->GetTofHit(); - if (h == NULL) { - SetValue(-1000); - return ForcedUpdate(kFALSE); - } - Double_t t = h->GetTime(); - Double_t beta = l / t / (29.9792458); - Double_t p = tr->GetMomentum()->P(); - Double_t gamma = 1. / (TMath::Sqrt(1. - beta * beta)); - Double_t m = p / beta / gamma; - SetValue(m); - return Validate(); -} - -CbmTofMassCut::~CbmTofMassCut() {} - -Bool_t CbmTofM2Cut::Init(Int_t format_id) { - fInit = kTRUE; - return FormatInhertis("NicaCbmEvent", format_id); -} - -CbmTofM2Cut::CbmTofM2Cut(const CbmTofM2Cut& other) - : NicaTrackToFMass2Cut(other), fOneOverC(1.0 / 29.99792458) { - for (int i = 0; i < 3; i++) { - fLowLine[i] = other.fLowLine[i]; - fHighLine[i] = other.fHighLine[i]; - } -} diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/cuts/rawcuts/trackcuts/CbmTofTrackCuts.h b/analysis/PWGC2F/femtoscopy/nicafemto/cuts/rawcuts/trackcuts/CbmTofTrackCuts.h deleted file mode 100644 index 950295ed06d8f88d8aadb3eef2cd28dfac210250..0000000000000000000000000000000000000000 --- a/analysis/PWGC2F/femtoscopy/nicafemto/cuts/rawcuts/trackcuts/CbmTofTrackCuts.h +++ /dev/null @@ -1,50 +0,0 @@ -/* - * CbmTofTrackCuts.h - * - * Created on: 31 lip 2019 - * Author: Daniel Wielanek - * E-mail: daniel.wielanek@gmail.com - * Warsaw University of Technology, Faculty of Physics - */ -#ifndef NICA_CBM_CUTS_TRACKCUTS_CBMTOFTRACKCUTS_H_ -#define NICA_CBM_CUTS_TRACKCUTS_CBMTOFTRACKCUTS_H_ - -#include "NicaTrackCut.h" -#include "NicaTrackToFMass2Cut.h" - -class CbmTofTrackCuts : public NicaTrackCut { - const Double_t fOneOverC; - -public: - CbmTofTrackCuts(); - static Int_t M2() { return 0; } - static Int_t Beta() { return 1; } - void SetM2Cut(Double_t min, Double_t max); - void SetBetaCut(Double_t min, Double_t max); - Bool_t Pass(NicaTrack* track); - virtual ~CbmTofTrackCuts(); - ClassDef(CbmTofTrackCuts, 1) -}; - -class CbmTofM2Cut : public NicaTrackToFMass2Cut { - const Double_t fOneOverC; - -public: - CbmTofM2Cut(); - CbmTofM2Cut(const CbmTofM2Cut& other); - virtual Bool_t Init(Int_t format_id = 0); - Bool_t Pass(NicaTrack* track); - virtual ~CbmTofM2Cut(); - ClassDef(CbmTofM2Cut, 1) -}; - -class CbmTofMassCut : public NicaTrackCut { - const Double_t fOneOverC; - -public: - CbmTofMassCut(); - Bool_t Pass(NicaTrack* track); - virtual ~CbmTofMassCut(); - ClassDef(CbmTofMassCut, 1) -}; -#endif /* NICA_CBM_CUTS_TRACKCUTS_CBMTOFTRACKCUTS_H_ */ diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/cuts/track/CbmBasicTrackCuts.cxx b/analysis/PWGC2F/femtoscopy/nicafemto/cuts/track/CbmBasicTrackCuts.cxx new file mode 100644 index 0000000000000000000000000000000000000000..bb22330e1ba545c37d6c615e0f19ee939eb0c264 --- /dev/null +++ b/analysis/PWGC2F/femtoscopy/nicafemto/cuts/track/CbmBasicTrackCuts.cxx @@ -0,0 +1,157 @@ +/* + * CbmBasicTrackCut.cxx + * + * Created on: 22 wrz 2020 + * Author: Daniel Wielanek + * E-mail: daniel.wielanek@gmail.com + * Warsaw University of Technology, Faculty of Physics + */ + +#include "CbmBasicTrackCuts.h" + +#include "CbmNHitsCut.h" +#include "CbmTofCut.h" + +#include "NicaCutMonitorX.h" +#include "NicaCutMonitorXY.h" +#include "NicaStdString.h" +#include "NicaTrackChargeCut.h" +#include "NicaTrackChi2Cut.h" +#include "NicaTrackDCACut.h" +#include "NicaTrackEtaCut.h" +#include "NicaTrackPCut.h" +#include "NicaTrackPtCut.h" + +CbmBasicTrackCuts::CbmBasicTrackCuts() +{ + fMonitorSettingsChi2 = TVector3(20, 0, 10); + fMonitorsSettingsKin[0] = TVector3(100, -2, 6); + fMonitorsSettingsKin[1] = TVector3(100, 0, 3); + fMonitorSettingsTof[0] = TVector3(100, 0, 2); + fMonitorSettingsTof[1] = TVector3(140, -0.2, 1.2); + fMonitorSettingsNHits = TVector3(10, 0, 10); + fMonitorSettingsDCA[0] = TVector3(100, 0, 10); + fMonitorSettingsDCA[1] = TVector3(100, 0, 10); + AddCut(NicaTrackChargeCut()); //0 + AddCut(CbmNHitsCut()); //1 + AddCut(NicaTrackChi2Cut()); //2 + AddCut(NicaTrackPCut()); //3 + AddCut(NicaTrackPtCut()); //4 + AddCut(NicaTrackEtaCut()); //5 + AddCut(NicaTrackDCACut()); //6 + AddCut(CbmTofCut()); //7 +} + +NicaTrackChargeCut* CbmBasicTrackCuts::GetChargeCut() const { return (NicaTrackChargeCut*) this->CutAt(0); } + +CbmNHitsCut* CbmBasicTrackCuts::GetNHitsCut() const { return (CbmNHitsCut*) this->CutAt(1); } + +NicaTrackChi2Cut* CbmBasicTrackCuts::GetChi2Cut() const { return (NicaTrackChi2Cut*) this->CutAt(2); } + +NicaTrackPCut* CbmBasicTrackCuts::GetPCut() const { return (NicaTrackPCut*) this->CutAt(3); } + +NicaTrackPtCut* CbmBasicTrackCuts::GetPtCut() const { return (NicaTrackPtCut*) this->CutAt(4); } + +NicaTrackEtaCut* CbmBasicTrackCuts::GetEtaCut() const { return (NicaTrackEtaCut*) this->CutAt(5); } + +NicaTrackDCACut* CbmBasicTrackCuts::GetDCACut() const { return (NicaTrackDCACut*) this->CutAt(6); } + +void CbmBasicTrackCuts::CreateBasicMonitors() +{ + TString opt = ""; + Int_t step = 0; + TString params = GetGlobalCutOption(); + if (NicaStd::FindParam(params, "re")) { opt = "re"; } + if (NicaStd::FindParam(params, "im")) { + opt = "im"; + step = 1; + } + NicaCutMonitorX nHits(GetNHitsCut()->CutName(opt), step); + nHits.SetXaxis(fMonitorSettingsNHits.X(), fMonitorSettingsNHits.Y(), fMonitorSettingsNHits.Z()); + AddCutMonitor(nHits); + + NicaCutMonitorX nchi(GetChi2Cut()->CutName(opt), step); + nchi.SetXaxis(fMonitorSettingsChi2.X(), fMonitorSettingsChi2.Y(), fMonitorSettingsChi2.Z()); + AddCutMonitor(nchi); + + NicaCutMonitorXY kinM(GetEtaCut()->CutName(opt), step, GetPtCut()->CutName(opt), step); + kinM.SetXaxis(fMonitorsSettingsKin[0].X(), fMonitorsSettingsKin[0].Y(), fMonitorsSettingsKin[0].Z()); + kinM.SetYaxis(fMonitorsSettingsKin[1].X(), fMonitorsSettingsKin[1].Y(), fMonitorsSettingsKin[1].Z()); + AddCutMonitor(kinM); + + NicaCutMonitorXY tofM(GetPCut()->CutName(opt), step, GetTofCut()->CutName(opt), step + GetTofCut()->M2()); + tofM.SetXaxis(fMonitorSettingsTof[0].X(), fMonitorSettingsTof[0].Y(), fMonitorSettingsTof[0].Z()); + tofM.SetYaxis(fMonitorSettingsTof[1].X(), fMonitorSettingsTof[1].Y(), fMonitorSettingsTof[1].Z()); + AddCutMonitor(tofM); + + NicaCutMonitorXY dcaM(GetDCACut()->CutName(opt), step + GetDCACut()->DCAz(), GetDCACut()->CutName(opt), + step + GetDCACut()->DCAxy()); + dcaM.SetXaxis(fMonitorSettingsDCA[0].X(), fMonitorSettingsDCA[0].Y(), fMonitorSettingsDCA[0].Z()); + dcaM.SetYaxis(fMonitorSettingsDCA[1].X(), fMonitorSettingsDCA[1].Y(), fMonitorSettingsDCA[1].Z()); + AddCutMonitor(dcaM); +} + +void CbmBasicTrackCuts::SetCharge(Int_t charge) { GetChargeCut()->SetMinAndMax(charge); } + +void CbmBasicTrackCuts::SetNHits(Int_t min, Int_t max) { GetNHitsCut()->SetMinMax(min, max); } + +void CbmBasicTrackCuts::SetPt(Double_t min, Double_t max) { GetPtCut()->SetMinMax(min, max); } + +void CbmBasicTrackCuts::SetEta(Double_t min, Double_t max) { GetEtaCut()->SetMinMax(min, max); } + +void CbmBasicTrackCuts::SetM2(Double_t min, Double_t max) { GetTofCut()->SetMinMax(min, max); } + +void CbmBasicTrackCuts::SetDCAXY(Double_t min, Double_t max) { GetDCACut()->SetMinMax(min, max, GetDCACut()->DCAxy()); } + +void CbmBasicTrackCuts::SetDCAZ(Double_t min, Double_t max) { GetDCACut()->SetMinMax(min, max, GetDCACut()->DCAz()); } + +void CbmBasicTrackCuts::SetTofMonitorPAxis(Int_t nbins, Double_t min, Double_t max) +{ + fMonitorSettingsTof[0].SetXYZ(nbins, min, max); +} + +void CbmBasicTrackCuts::SetTofMonitorM2Axis(Int_t nbins, Double_t min, Double_t max) +{ + fMonitorSettingsTof[1].SetXYZ(nbins, min, max); +} + +void CbmBasicTrackCuts::SetPtEtaMonitorPtAxis(Int_t nbins, Double_t min, Double_t max) +{ + fMonitorsSettingsKin[1].SetXYZ(nbins, min, max); +} + +void CbmBasicTrackCuts::SetPtEtaMonitorEtaAxis(Int_t nbins, Double_t min, Double_t max) +{ + fMonitorsSettingsKin[0].SetXYZ(nbins, min, max); +} + +void CbmBasicTrackCuts::SetNHitsMonitorAxis(Int_t nbins, Double_t min, Double_t max) +{ + fMonitorSettingsNHits.SetXYZ(nbins, min, max); +} + +void CbmBasicTrackCuts::SetChi2MonitorAxis(Int_t nbins, Double_t min, Double_t max) +{ + fMonitorSettingsChi2.SetXYZ(nbins, min, max); +} + +void CbmBasicTrackCuts::SetDCAMonitorZAxis(Int_t nbins, Double_t min, Double_t max) +{ + fMonitorSettingsDCA[0].SetXYZ(nbins, min, max); +} + +void CbmBasicTrackCuts::SetDCAMonitorXYAxis(Int_t nbins, Double_t min, Double_t max) +{ + fMonitorSettingsDCA[1].SetXYZ(nbins, min, max); +} + +CbmTofCut* CbmBasicTrackCuts::GetTofCut() const { return (CbmTofCut*) this->CutAt(7); } + +void CbmBasicTrackCuts::AcceptOnlyWithTofHit(Bool_t val) +{ + if (val) GetTofCut()->AcceptTracksOnlyWithToF(); + else + GetTofCut()->SetMinMax(0, 1, 1); +} + +CbmBasicTrackCuts::~CbmBasicTrackCuts() {} diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/cuts/anatreecuts/track/CbmBasicTrackCuts.h b/analysis/PWGC2F/femtoscopy/nicafemto/cuts/track/CbmBasicTrackCuts.h similarity index 100% rename from analysis/PWGC2F/femtoscopy/nicafemto/cuts/anatreecuts/track/CbmBasicTrackCuts.h rename to analysis/PWGC2F/femtoscopy/nicafemto/cuts/track/CbmBasicTrackCuts.h diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/cuts/anatreecuts/track/CbmNHitsCut.cxx b/analysis/PWGC2F/femtoscopy/nicafemto/cuts/track/CbmNHitsCut.cxx similarity index 63% rename from analysis/PWGC2F/femtoscopy/nicafemto/cuts/anatreecuts/track/CbmNHitsCut.cxx rename to analysis/PWGC2F/femtoscopy/nicafemto/cuts/track/CbmNHitsCut.cxx index 844b69170cccd70fd330fbbdc09892e3be89c98e..676cd83481398635917340025649ebd1c4e44949 100644 --- a/analysis/PWGC2F/femtoscopy/nicafemto/cuts/anatreecuts/track/CbmNHitsCut.cxx +++ b/analysis/PWGC2F/femtoscopy/nicafemto/cuts/track/CbmNHitsCut.cxx @@ -8,16 +8,15 @@ */ #include "CbmNHitsCut.h" -#include "NicaCbmATTrack.h" +#include "NicaCbmTrack.h" CbmNHitsCut::CbmNHitsCut() : NicaTrackExpCut(1) { SetUnitName("N_{hits}"); } -Bool_t CbmNHitsCut::Init(Int_t task_id) { - return FormatInhertis("NicaCbmATEvent", task_id); -} +Bool_t CbmNHitsCut::Init(Int_t task_id) { return FormatInhertis("NicaCbmEvent", task_id); } -Bool_t CbmNHitsCut::Pass(NicaTrack* track) { - NicaCbmATTrack* tr = (NicaCbmATTrack*) track; +Bool_t CbmNHitsCut::Pass(NicaTrack* track) +{ + NicaCbmTrack* tr = (NicaCbmTrack*) track; SetValue(tr->GetNHits()); return Validate(); } diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/cuts/anatreecuts/track/CbmNHitsCut.h b/analysis/PWGC2F/femtoscopy/nicafemto/cuts/track/CbmNHitsCut.h similarity index 100% rename from analysis/PWGC2F/femtoscopy/nicafemto/cuts/anatreecuts/track/CbmNHitsCut.h rename to analysis/PWGC2F/femtoscopy/nicafemto/cuts/track/CbmNHitsCut.h diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/cuts/anatreecuts/track/CbmTofCut.cxx b/analysis/PWGC2F/femtoscopy/nicafemto/cuts/track/CbmTofCut.cxx similarity index 63% rename from analysis/PWGC2F/femtoscopy/nicafemto/cuts/anatreecuts/track/CbmTofCut.cxx rename to analysis/PWGC2F/femtoscopy/nicafemto/cuts/track/CbmTofCut.cxx index 73a31723742b68fe849e6c34d40c34ec90520f3a..e76a5bced83f331d93b29582fa360ee940693d3f 100644 --- a/analysis/PWGC2F/femtoscopy/nicafemto/cuts/anatreecuts/track/CbmTofCut.cxx +++ b/analysis/PWGC2F/femtoscopy/nicafemto/cuts/track/CbmTofCut.cxx @@ -8,21 +8,20 @@ */ #include "CbmTofCut.h" -#include "NicaCbmATTrack.h" +#include "NicaCbmTrack.h" -CbmTofCut::CbmTofCut() : NicaTrackToFMass2Cut(2) { - SetUnitName("Flag [AU]", 1); -} +CbmTofCut::CbmTofCut() : NicaTrackToFMass2Cut(2) { SetUnitName("Flag [AU]", 1); } -Bool_t CbmTofCut::Init(Int_t task_id) { - if (FormatInhertis("NicaCbmATEvent", task_id, ENicaFormatDepth::kNonBuffered)) - return kTRUE; +Bool_t CbmTofCut::Init(Int_t task_id) +{ + if (FormatInhertis("NicaCbmEvent", task_id, ENicaFormatDepth::kNonBuffered)) return kTRUE; return kFALSE; } -Bool_t CbmTofCut::Pass(NicaTrack* track) { - NicaCbmATTrack* reco = (NicaCbmATTrack*) track; - NicaToFTrack* tof = reco->GetTofTrack(); +Bool_t CbmTofCut::Pass(NicaTrack* track) +{ + NicaCbmTrack* reco = (NicaCbmTrack*) track; + NicaToFTrack* tof = reco->GetTofTrack(); SetValue(tof->GetFlag(), Flag()); SetValue(tof->GetMass2(), M2()); Double_t m2 = tof->GetMass2(); diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/cuts/anatreecuts/track/CbmTofCut.h b/analysis/PWGC2F/femtoscopy/nicafemto/cuts/track/CbmTofCut.h similarity index 100% rename from analysis/PWGC2F/femtoscopy/nicafemto/cuts/anatreecuts/track/CbmTofCut.h rename to analysis/PWGC2F/femtoscopy/nicafemto/cuts/track/CbmTofCut.h diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/cuts/commoncuts/track/CbmTofM2PolyCut.cxx b/analysis/PWGC2F/femtoscopy/nicafemto/cuts/track/CbmTofM2PolyCut.cxx similarity index 73% rename from analysis/PWGC2F/femtoscopy/nicafemto/cuts/commoncuts/track/CbmTofM2PolyCut.cxx rename to analysis/PWGC2F/femtoscopy/nicafemto/cuts/track/CbmTofM2PolyCut.cxx index a963743dacc48d4b62ea03f099bcff016a184ee7..f75746df68c7e8c0e06f7def3f923bf7c83ca61c 100644 --- a/analysis/PWGC2F/femtoscopy/nicafemto/cuts/commoncuts/track/CbmTofM2PolyCut.cxx +++ b/analysis/PWGC2F/femtoscopy/nicafemto/cuts/track/CbmTofM2PolyCut.cxx @@ -7,15 +7,16 @@ * Warsaw University of Technology, Faculty of Physics */ #include "CbmTofM2PolyCut.h" + #include "CbmDetectorID.h" + #include "NicaExpTrack.h" CbmTofM2PolyCut::CbmTofM2PolyCut() {} -Bool_t CbmTofM2PolyCut::Pass(NicaTrack* track) { - NicaToFTrack* tof = - (NicaToFTrack*) static_cast<NicaExpTrack*>(track)->GetDetTrack( - NicaCbmDetectorID::kTOF); +Bool_t CbmTofM2PolyCut::Pass(NicaTrack* track) +{ + NicaToFTrack* tof = (NicaToFTrack*) static_cast<NicaExpTrack*>(track)->GetDetTrack(NicaCbmDetectorID::kTOF); if (tof->GetFlag() == 0) { SetValue(NicaToFTrack::DummyVal()); } SetValue(tof->GetMass2()); return Validate(); diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/cuts/commoncuts/track/CbmTofM2PolyCut.h b/analysis/PWGC2F/femtoscopy/nicafemto/cuts/track/CbmTofM2PolyCut.h similarity index 100% rename from analysis/PWGC2F/femtoscopy/nicafemto/cuts/commoncuts/track/CbmTofM2PolyCut.h rename to analysis/PWGC2F/femtoscopy/nicafemto/cuts/track/CbmTofM2PolyCut.h diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/format/CMakeLists.txt b/analysis/PWGC2F/femtoscopy/nicafemto/format/CMakeLists.txt index 5bf8ee101edbe3a555406e90456b66547a900d6c..18c33724107504cb5ede3c599604ef1a2fe4b968 100644 --- a/analysis/PWGC2F/femtoscopy/nicafemto/format/CMakeLists.txt +++ b/analysis/PWGC2F/femtoscopy/nicafemto/format/CMakeLists.txt @@ -37,33 +37,12 @@ Link_Directories(${LINK_DIRECTORIES}) # List of source files set(SRCS + NicaCbmFormatTypes.cxx -combined/NicaCbmGlobalMCEvent.cxx -combined/NicaCbmATFullEvent.cxx +combined/NicaCbmFullEvent.cxx combined/CbmHbtFullEvent.cxx -full/NicaCbmEvent.cxx -full/NicaCbmEventInterface.cxx -full/NicaCbmTrack.cxx -full/NicaCbmTrackInterface.cxx - -mc/NicaCbmMCEvent.cxx -mc/NicaCbmMCEventInterface.cxx -mc/NicaCbmMCTrack.cxx -mc/NicaCbmMCTrackInterface.cxx - -global/NicaCbmGlobalEvent.cxx -global/NicaCbmGlobalEventInterface.cxx -global/NicaCbmGlobalTrack.cxx -global/NicaCbmGlobalTrackInterface.cxx - - -matched/NicaCbmMatchedEvent.cxx -matched/NicaCbmMatchedEventInterface.cxx -matched/NicaCbmMatchedTrack.cxx -matched/NicaCbmMatchedTrackInterface.cxx - unigen/NicaGeneratorReadUnigen.cxx unigen/NicaGeneratorWriteUnigen.cxx unigen/NicaUnigenSource.cxx @@ -72,14 +51,14 @@ unigen/NicaUnigenEventInterface.cxx unigen/NicaUnigenTrack.cxx unigen/NicaUnigenTrackInterface.cxx -anatree/mc/NicaCbmATMCEvent.cxx -anatree/mc/NicaCbmATMCEventInterface.cxx -anatree/mc/NicaCbmATMCTrack.cxx -anatree/mc/NicaCbmATMCTrackInterface.cxx -anatree/reco/NicaCbmATEvent.cxx -anatree/reco/NicaCbmATEventInterface.cxx -anatree/reco/NicaCbmATTrack.cxx -anatree/reco/NicaCbmATTrackInterface.cxx +anatree/mc/NicaCbmMCEvent.cxx +anatree/mc/NicaCbmMCEventInterface.cxx +anatree/mc/NicaCbmMCTrack.cxx +anatree/mc/NicaCbmMCTrackInterface.cxx +anatree/reco/NicaCbmEvent.cxx +anatree/reco/NicaCbmEventInterface.cxx +anatree/reco/NicaCbmTrack.cxx +anatree/reco/NicaCbmTrackInterface.cxx anatree/femto/CbmHbtTrack.cxx anatree/femto/CbmHbtEvent.cxx anatree/CbmAnaTreeContainer.cxx diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/format/NicaCbmFormatLinkDef.h b/analysis/PWGC2F/femtoscopy/nicafemto/format/NicaCbmFormatLinkDef.h index 98e6d4539f4b94d5c010a6ed4d288d6cd78d4818..a90257d528ee79e9eb385e7e90d2caf8dcdb0e5d 100644 --- a/analysis/PWGC2F/femtoscopy/nicafemto/format/NicaCbmFormatLinkDef.h +++ b/analysis/PWGC2F/femtoscopy/nicafemto/format/NicaCbmFormatLinkDef.h @@ -10,36 +10,13 @@ #pragma link off all classes; #pragma link off all functions; -#pragma link C++ enum NicaCbmEvent::ECbmMode; #pragma link C++ namespace NicaCbmFormats; -#pragma link C++ enum NicaCbmFormats::ECbmFormatType; - -#pragma link C++ class NicaCbmGlobalMCEvent + ; #pragma link C++ class CbmHbtFullEvent + ; +#pragma link C++ class NicaCbmFullEvent + ; #pragma link C++ class CbmHbtEvent + ; #pragma link C++ class CbmHbtTrack + ; -#pragma link C++ class NicaCbmEvent + ; -#pragma link C++ class NicaCbmEventInterface + ; -#pragma link C++ class NicaCbmTrack + ; -#pragma link C++ class NicaCbmTrackInterface + ; - -#pragma link C++ class NicaCbmGlobalEvent + ; -#pragma link C++ class NicaCbmGlobalEventInterface + ; -#pragma link C++ class NicaCbmGlobalTrack + ; -#pragma link C++ class NicaCbmGlobalTrackInterface + ; - -#pragma link C++ class NicaCbmMatchedEvent + ; -#pragma link C++ class NicaCbmMatchedEventInterface + ; -#pragma link C++ class NicaCbmMatchedTrackInterface + ; -#pragma link C++ class NicaCbmMatchedTrack + ; - -#pragma link C++ class NicaCbmMCEvent + ; -#pragma link C++ class NicaCbmMCEventInterface + ; -#pragma link C++ class NicaCbmMCTrack + ; -#pragma link C++ class NicaCbmMCTrackInterface + ; - #pragma link C++ class NicaGeneratorReadUnigen + ; #pragma link C++ class NicaGeneratorWriteUnigen + ; #pragma link C++ class NicaUnigenEvent + ; @@ -48,15 +25,17 @@ #pragma link C++ class NicaUnigenTrack + ; #pragma link C++ class NicaUnigenTrackInterface + ; -#pragma link C++ class NicaCbmATMCEvent + ; -#pragma link C++ class NicaCbmATMCEventInterface + ; -#pragma link C++ class NicaCbmATMCTrack + ; -#pragma link C++ class NicaCbmATMCTrackInterface + ; -#pragma link C++ class NicaCbmATEvent + ; -#pragma link C++ class NicaCbmATEventInterface + ; -#pragma link C++ class NicaCbmATTrack + ; -#pragma link C++ class NicaCbmATTrackInterface + ; +#pragma link C++ class NicaCbmMCEvent + ; +#pragma link C++ class NicaCbmMCEventInterface + ; +#pragma link C++ class NicaCbmMCTrack + ; +#pragma link C++ class NicaCbmMCTrackInterface + ; + +#pragma link C++ class NicaCbmEvent + ; +#pragma link C++ class NicaCbmEventInterface + ; +#pragma link C++ class NicaCbmTrack + ; +#pragma link C++ class NicaCbmTrackInterface + ; + #pragma link C++ class CbmAnaTreeRecoSourceContainer + ; #pragma link C++ class CbmAnaTreeMcSourceContainer + ; #pragma link C++ class CbmAnaTreeSource + ; -#pragma link C++ class NicaCbmATFullEvent + ; + diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/format/NicaCbmFormatTypes.cxx b/analysis/PWGC2F/femtoscopy/nicafemto/format/NicaCbmFormatTypes.cxx index ea9197e049afd062d275d11cea2bdeddfaaa533e..766cd3d1bc012e6af544aa3aa12c3db44897b20a 100644 --- a/analysis/PWGC2F/femtoscopy/nicafemto/format/NicaCbmFormatTypes.cxx +++ b/analysis/PWGC2F/femtoscopy/nicafemto/format/NicaCbmFormatTypes.cxx @@ -8,21 +8,20 @@ */ #include "NicaCbmFormatTypes.h" + #include "NicaDataFormatManager.h" #include "NicaEvent.h" #include "NicaStd.h" -namespace NicaCbmFormats { +namespace NicaCbmFormats +{ - ECbmFormatType GetFormatType(Int_t task_id, ENicaFormatDepth depth) { - const NicaEvent* ev = - NicaDataFormatManager::Instance()->GetFormat(task_id, depth); - if (ev->InheritsFrom("NicaCbmEvent")) { - return ECbmFormatType::kCbmRoot; - } else if (ev->InheritsFrom("NicaCbmATEvent")) { - return ECbmFormatType::kAnaTree; - } else if (ev->InheritsFrom("CbmHbtEvent")) { + ECbmFormatType GetFormatType(Int_t task_id, ENicaFormatDepth depth) + { + const NicaEvent* ev = NicaDataFormatManager::Instance()->GetFormat(task_id, depth); + if (ev->InheritsFrom("NicaCbmEvent")) { return ECbmFormatType::kAnaTree; } + else if (ev->InheritsFrom("CbmHbtEvent")) { return ECbmFormatType::kHbt; } return ECbmFormatType::kUnknown; diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/format/NicaCbmFormatTypes.h b/analysis/PWGC2F/femtoscopy/nicafemto/format/NicaCbmFormatTypes.h index 8da6b269569c3c72cce2b82443e81ef6a47a678f..23038bffda6bd8397b942c07561d5262637b544b 100644 --- a/analysis/PWGC2F/femtoscopy/nicafemto/format/NicaCbmFormatTypes.h +++ b/analysis/PWGC2F/femtoscopy/nicafemto/format/NicaCbmFormatTypes.h @@ -11,11 +11,16 @@ #include "NicaDataFormatManager.h" -namespace NicaCbmFormats { +namespace NicaCbmFormats +{ - enum class ECbmFormatType { kCbmRoot, kAnaTree, kHbt, kUnknown }; - ECbmFormatType GetFormatType(Int_t task_id, - ENicaFormatDepth depht = ENicaFormatDepth::kAll); + enum class ECbmFormatType + { + kAnaTree, + kHbt, + kUnknown + }; + ECbmFormatType GetFormatType(Int_t task_id, ENicaFormatDepth depht = ENicaFormatDepth::kAll); } // namespace NicaCbmFormats diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/CbmAnaTreeContainer.cxx b/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/CbmAnaTreeContainer.cxx index f0002acd13c5ea4407b99d14afe8d86cedd98846..74a5813b22d70ea58d7234dd2469184fb5b796ef 100644 --- a/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/CbmAnaTreeContainer.cxx +++ b/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/CbmAnaTreeContainer.cxx @@ -7,10 +7,13 @@ * Warsaw University of Technology, Faculty of Physics */ #include "CbmAnaTreeContainer.h" -#include "AnalysisTree/Matching.hpp" + #include <TChain.h> -Bool_t CbmAnaTreeRecoSourceContainer::ConnectToTree(TChain* tree) { +#include "AnalysisTree/Matching.hpp" + +Bool_t CbmAnaTreeRecoSourceContainer::ConnectToTree(TChain* tree) +{ fEvent = new AnalysisTree::EventHeader(); fVtxTracks = new AnalysisTree::TrackDetector(); fTofHits = new AnalysisTree::HitDetector(); @@ -35,7 +38,8 @@ Bool_t CbmAnaTreeRecoSourceContainer::ConnectToTree(TChain* tree) { return kTRUE; } -Bool_t CbmAnaTreeMcSourceContainer::ConnectToTree(TChain* tree) { +Bool_t CbmAnaTreeMcSourceContainer::ConnectToTree(TChain* tree) +{ fEvent = new AnalysisTree::EventHeader(); fParticles = new AnalysisTree::Particles(); if (tree->GetBranch("SimEventHeader") == nullptr) return kFALSE; diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/CbmAnaTreeContainer.h b/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/CbmAnaTreeContainer.h index 24d6122e46a14234a06d3a9f1332d0a3958ba313..1e54289eaa67616df7acf98529600f02eabb95cd 100644 --- a/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/CbmAnaTreeContainer.h +++ b/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/CbmAnaTreeContainer.h @@ -14,7 +14,6 @@ #include "AnalysisTree/Detector.hpp" #include "AnalysisTree/EventHeader.hpp" #include "AnalysisTree/Matching.hpp" -//#include "Matching.hpp" class TChain; @@ -23,7 +22,7 @@ struct AnaTreeRecoIds { Int_t vtx_dcax, vtx_dcay, vtx_dcaz; Int_t vtx_vtxchi2, vtx_chi2; Int_t vtx_q, vtx_nhits, vtx_mvdhits; - + Int_t vtx_x, vtx_cx0, vtx_cov1; Int_t tof_mass2; }; @@ -43,13 +42,14 @@ public: , fTofHits(nullptr) , fVtx2Mc(nullptr) {}; Bool_t ConnectToTree(TChain* tree); - AnalysisTree::EventHeader* GetEventHeader() const { return fEvent; }; - AnalysisTree::TrackDetector* GetVtxTracks() const { return fVtxTracks; }; - AnalysisTree::HitDetector* GetTofHits() const { return fTofHits; }; - AnalysisTree::Matching* GetVtx2ToFMatch() const { return fVtx2Tof; }; - AnalysisTree::Matching* GetVtx2Sim() const { return fVtx2Mc; }; - AnaTreeRecoIds& GetFieldIds() { return fVtxIds; } - virtual ~CbmAnaTreeRecoSourceContainer() { + inline AnalysisTree::EventHeader* GetEventHeader() const { return fEvent; }; + inline AnalysisTree::TrackDetector* GetVtxTracks() const { return fVtxTracks; }; + inline AnalysisTree::HitDetector* GetTofHits() const { return fTofHits; }; + inline AnalysisTree::Matching* GetVtx2ToFMatch() const { return fVtx2Tof; }; + inline AnalysisTree::Matching* GetVtx2Sim() const { return fVtx2Mc; }; + inline AnaTreeRecoIds& GetFieldIds() { return fVtxIds; } + virtual ~CbmAnaTreeRecoSourceContainer() + { if (fEvent) { delete fEvent; delete fVtxTracks; @@ -66,6 +66,7 @@ struct AnaTreeMcIds { Int_t pdg, motherId, mass; Int_t event_b; Int_t event_psi; + Int_t freezX, freezY, freezZ, freezT; }; class CbmAnaTreeMcSourceContainer : public TNamed { @@ -76,10 +77,11 @@ class CbmAnaTreeMcSourceContainer : public TNamed { public: CbmAnaTreeMcSourceContainer() : fEvent(nullptr), fParticles(nullptr) {}; Bool_t ConnectToTree(TChain* tree); - AnaTreeMcIds& GetFieldIds() { return fIds; }; - AnalysisTree::EventHeader* GetEventHeader() const { return fEvent; }; - AnalysisTree::Particles* GetParticles() const { return fParticles; }; - virtual ~CbmAnaTreeMcSourceContainer() { + inline AnaTreeMcIds& GetFieldIds() { return fIds; }; + inline AnalysisTree::EventHeader* GetEventHeader() const { return fEvent; }; + inline AnalysisTree::Particles* GetParticles() const { return fParticles; }; + virtual ~CbmAnaTreeMcSourceContainer() + { if (fEvent) { delete fEvent; delete fParticles; diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/CbmAnaTreeObjectTrack.cxx b/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/CbmAnaTreeObjectTrack.cxx index d7b6e49650cb401003390a2613a39b8e32b0babd..d26ee2516bc9dd6a66ac10587e2e6d87df40cd93 100644 --- a/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/CbmAnaTreeObjectTrack.cxx +++ b/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/CbmAnaTreeObjectTrack.cxx @@ -8,18 +8,19 @@ */ #include "CbmAnaTreeObjectTrack.h" -CbmAnaTreeObjectTrack::CbmAnaTreeObjectTrack() - : fTreeParticle(nullptr), fTreeTrack(nullptr), fTreeHit(nullptr) {} +CbmAnaTreeObjectTrack::CbmAnaTreeObjectTrack() : fTreeParticle(nullptr), fTreeTrack(nullptr), fTreeHit(nullptr) {} CbmAnaTreeObjectTrack::~CbmAnaTreeObjectTrack() {} CbmAnaTreeObjectTrack::CbmAnaTreeObjectTrack(const CbmAnaTreeObjectTrack& other) : fTreeParticle(other.fTreeParticle) , fTreeTrack(other.fTreeTrack) - , fTreeHit(other.fTreeTrack) {} + , fTreeHit(other.fTreeTrack) +{ +} -CbmAnaTreeObjectTrack& CbmAnaTreeObjectTrack:: -operator=(const CbmAnaTreeObjectTrack& other) { +CbmAnaTreeObjectTrack& CbmAnaTreeObjectTrack::operator=(const CbmAnaTreeObjectTrack& other) +{ if (this == &other) return *this; fTreeParticle = other.fTreeParticle; fTreeTrack = other.fTreeTrack; diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/CbmAnaTreeObjectTrack.h b/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/CbmAnaTreeObjectTrack.h index d4a6ea4034277c2f3f542322681cf9c4f0a0f8ad..cacf2d078ca313a5bc366dc0e708d989c8315ade 100644 --- a/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/CbmAnaTreeObjectTrack.h +++ b/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/CbmAnaTreeObjectTrack.h @@ -9,10 +9,11 @@ #ifndef CBMROOT_ANALYSIS_PWGC2F_FEMTOSCOPY_NICAFEMTO_FORMAT_ANATREE_CBMANATREEOBJECTTRACK_H_ #define CBMROOT_ANALYSIS_PWGC2F_FEMTOSCOPY_NICAFEMTO_FORMAT_ANATREE_CBMANATREEOBJECTTRACK_H_ +#include <TObject.h> + #include "AnalysisTree/Detector.hpp" #include "AnalysisTree/Hit.hpp" #include "AnalysisTree/Particle.hpp" -#include <TObject.h> class CbmAnaTreeObjectTrack : public TObject { AnalysisTree::Particle* fTreeParticle; diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/CbmAnaTreeSource.cxx b/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/CbmAnaTreeSource.cxx index b4803bbadfb70b8140cf481f9a248380e47243fa..d3f59b1ea27384ad52d7275cabf95981e499ba1e 100644 --- a/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/CbmAnaTreeSource.cxx +++ b/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/CbmAnaTreeSource.cxx @@ -8,36 +8,44 @@ */ #include "CbmAnaTreeSource.h" -#include "AnalysisTree/Configuration.hpp" #include "CbmAnaTreeContainer.h" -#include "FairLogger.h" -#include "FairRootManager.h" + +#include <FairLogger.h> +#include <FairRootManager.h> + #include <TBranch.h> #include <TChain.h> #include <TFile.h> + #include <fstream> +#include "AnalysisTree/Configuration.hpp" -CbmAnaTreeSource::CbmAnaTreeSource() : CbmAnaTreeSource("") {} -CbmAnaTreeSource::CbmAnaTreeSource(TString inFile) +CbmAnaTreeSource::CbmAnaTreeSource() : CbmAnaTreeSource("", "aTree") {} + +CbmAnaTreeSource::CbmAnaTreeSource(TString inFile, TString treeName) : fNFiles(1) + , fTreeName(treeName) , fChain(nullptr) , fFileName(nullptr) , fContainerReco(nullptr) - , fContainerSim(nullptr) { + , fContainerSim(nullptr) +{ fFileName = new TString[1]; fFileName[0] = inFile; } -CbmAnaTreeSource::~CbmAnaTreeSource() { +CbmAnaTreeSource::~CbmAnaTreeSource() +{ if (fFileName) delete[] fFileName; } -Bool_t CbmAnaTreeSource::Init() { +Bool_t CbmAnaTreeSource::Init() +{ LOG(debug) << "Init source "; FairRootManager* mngr = FairRootManager::Instance(); - fChain = new TChain("aTree"); + fChain = new TChain(fTreeName); //new name of tree? TString first_file_name; if (fFileName[0].EndsWith(".root")) { for (int i = 0; i < fNFiles; i++) { @@ -45,7 +53,8 @@ Bool_t CbmAnaTreeSource::Init() { fChain->Add(fFileName[i]); } first_file_name = fFileName[0]; - } else { // this is long list + } + else { // this is long list std::ifstream list; list.open(fFileName[0]); bool first = true; @@ -58,7 +67,8 @@ Bool_t CbmAnaTreeSource::Init() { first_file_name = temp; first = false; } - } else { + } + else { break; } LOG(debug) << "Adding file " << temp << " to chain"; @@ -82,21 +92,16 @@ Bool_t CbmAnaTreeSource::Init() { LoadConf(first_file_name); mngr->SetInChain(fChain, -1); if (fContainerReco) { - mngr->Register("CbmAnaTreeSourceContainer.", - "CbmAnaTreeSourceContainer", - fContainerReco, - kFALSE); + mngr->Register("CbmAnaTreeSourceContainer.", "CbmAnaTreeSourceContainer", fContainerReco, kFALSE); } if (fContainerSim) { - mngr->Register("CbmAnaTreeMcSourceContainer.", - "CbmAnaTreeMcSourceContainer", - fContainerSim, - kFALSE); + mngr->Register("CbmAnaTreeMcSourceContainer.", "CbmAnaTreeMcSourceContainer", fContainerSim, kFALSE); } return kTRUE; } -Int_t CbmAnaTreeSource::ReadEvent(UInt_t unsignedInt) { +Int_t CbmAnaTreeSource::ReadEvent(UInt_t unsignedInt) +{ fChain->GetEntry(unsignedInt); return 0; } @@ -110,53 +115,40 @@ void CbmAnaTreeSource::LoadConf(TString name) { TFile* f = new TFile(name); // TTree *tree = (TTree*)f->Get("aTree"); - AnalysisTree::Configuration* conf = - (AnalysisTree::Configuration*) f->Get("Configuration"); + AnalysisTree::Configuration* conf = (AnalysisTree::Configuration*) f->Get("Configuration"); if (fContainerReco) { - fContainerReco->GetFieldIds().vtx_px = - conf->GetBranchConfig("VtxTracks").GetFieldId("px"); - fContainerReco->GetFieldIds().vtx_py = - conf->GetBranchConfig("VtxTracks").GetFieldId("py"); - fContainerReco->GetFieldIds().vtx_pz = - conf->GetBranchConfig("VtxTracks").GetFieldId("pz"); - fContainerReco->GetFieldIds().vtx_dcax = - conf->GetBranchConfig("VtxTracks").GetFieldId("dcax"); - fContainerReco->GetFieldIds().vtx_dcay = - conf->GetBranchConfig("VtxTracks").GetFieldId("dcay"); - fContainerReco->GetFieldIds().vtx_dcaz = - conf->GetBranchConfig("VtxTracks").GetFieldId("dcaz"); - - fContainerReco->GetFieldIds().vtx_chi2 = - conf->GetBranchConfig("VtxTracks").GetFieldId("chi2"); - fContainerReco->GetFieldIds().vtx_vtxchi2 = - conf->GetBranchConfig("VtxTracks").GetFieldId("vtx_chi2"); - fContainerReco->GetFieldIds().vtx_q = - conf->GetBranchConfig("VtxTracks").GetFieldId("q"); - fContainerReco->GetFieldIds().vtx_nhits = - conf->GetBranchConfig("VtxTracks").GetFieldId("nhits"); - fContainerReco->GetFieldIds().vtx_mvdhits = - conf->GetBranchConfig("VtxTracks").GetFieldId("nhits_mvd"); - - fContainerReco->GetFieldIds().tof_mass2 = - conf->GetBranchConfig("TofHits").GetFieldId("mass2"); + fContainerReco->GetFieldIds().vtx_px = conf->GetBranchConfig("VtxTracks").GetFieldId("px"); + fContainerReco->GetFieldIds().vtx_py = conf->GetBranchConfig("VtxTracks").GetFieldId("py"); + fContainerReco->GetFieldIds().vtx_pz = conf->GetBranchConfig("VtxTracks").GetFieldId("pz"); + fContainerReco->GetFieldIds().vtx_dcax = conf->GetBranchConfig("VtxTracks").GetFieldId("dcax"); + fContainerReco->GetFieldIds().vtx_dcay = conf->GetBranchConfig("VtxTracks").GetFieldId("dcay"); + fContainerReco->GetFieldIds().vtx_dcaz = conf->GetBranchConfig("VtxTracks").GetFieldId("dcaz"); + + fContainerReco->GetFieldIds().vtx_chi2 = conf->GetBranchConfig("VtxTracks").GetFieldId("chi2"); + fContainerReco->GetFieldIds().vtx_vtxchi2 = conf->GetBranchConfig("VtxTracks").GetFieldId("vtx_chi2"); + fContainerReco->GetFieldIds().vtx_q = conf->GetBranchConfig("VtxTracks").GetFieldId("q"); + fContainerReco->GetFieldIds().vtx_nhits = conf->GetBranchConfig("VtxTracks").GetFieldId("nhits"); + fContainerReco->GetFieldIds().vtx_mvdhits = conf->GetBranchConfig("VtxTracks").GetFieldId("nhits_mvd"); + + fContainerReco->GetFieldIds().tof_mass2 = conf->GetBranchConfig("TofHits").GetFieldId("mass2"); + + fContainerReco->GetFieldIds().vtx_x = conf->GetBranchConfig("VtxTracks").GetFieldId("x"); + fContainerReco->GetFieldIds().vtx_cx0 = conf->GetBranchConfig("VtxTracks").GetFieldId("cx0"); + fContainerReco->GetFieldIds().vtx_cov1 = conf->GetBranchConfig("VtxTracks").GetFieldId("cov1"); } if (fContainerSim) { - fContainerSim->GetFieldIds().px = - conf->GetBranchConfig("SimParticles").GetFieldId("px"); - fContainerSim->GetFieldIds().py = - conf->GetBranchConfig("SimParticles").GetFieldId("py"); - fContainerSim->GetFieldIds().pz = - conf->GetBranchConfig("SimParticles").GetFieldId("pz"); - fContainerSim->GetFieldIds().mass = - conf->GetBranchConfig("SimParticles").GetFieldId("mass"); - fContainerSim->GetFieldIds().pdg = - conf->GetBranchConfig("SimParticles").GetFieldId("pid"); - fContainerSim->GetFieldIds().motherId = - conf->GetBranchConfig("SimParticles").GetFieldId("mother_id"); - fContainerSim->GetFieldIds().event_b = - conf->GetBranchConfig("SimEventHeader").GetFieldId("b"); - fContainerSim->GetFieldIds().event_psi = - conf->GetBranchConfig("SimEventHeader").GetFieldId("psi_RP"); + fContainerSim->GetFieldIds().px = conf->GetBranchConfig("SimParticles").GetFieldId("px"); + fContainerSim->GetFieldIds().py = conf->GetBranchConfig("SimParticles").GetFieldId("py"); + fContainerSim->GetFieldIds().pz = conf->GetBranchConfig("SimParticles").GetFieldId("pz"); + fContainerSim->GetFieldIds().mass = conf->GetBranchConfig("SimParticles").GetFieldId("mass"); + fContainerSim->GetFieldIds().pdg = conf->GetBranchConfig("SimParticles").GetFieldId("pid"); + fContainerSim->GetFieldIds().motherId = conf->GetBranchConfig("SimParticles").GetFieldId("mother_id"); + fContainerSim->GetFieldIds().event_b = conf->GetBranchConfig("SimEventHeader").GetFieldId("b"); + fContainerSim->GetFieldIds().event_psi = conf->GetBranchConfig("SimEventHeader").GetFieldId("psi_RP"); + fContainerSim->GetFieldIds().freezX = conf->GetBranchConfig("SimParticles").GetFieldId("xfreez"); + fContainerSim->GetFieldIds().freezY = conf->GetBranchConfig("SimParticles").GetFieldId("yfreez"); + fContainerSim->GetFieldIds().freezZ = conf->GetBranchConfig("SimParticles").GetFieldId("zfreez"); + fContainerSim->GetFieldIds().freezT = conf->GetBranchConfig("SimParticles").GetFieldId("tfreez"); } /// Restore old global file and folder pointer to avoid messing with FairRoot @@ -167,7 +159,8 @@ void CbmAnaTreeSource::LoadConf(TString name) { delete f; } -void CbmAnaTreeSource::AddFile(TString file) { +void CbmAnaTreeSource::AddFile(TString file) +{ TString* temp = fFileName; fFileName = new TString[fNFiles + 1]; for (int i = 0; i < fNFiles; i++) { @@ -178,6 +171,4 @@ void CbmAnaTreeSource::AddFile(TString file) { fNFiles = fNFiles + 1; } -Int_t CbmAnaTreeSource::CheckMaxEventNo(Int_t /*int1*/) { - return fChain->GetEntries(); -} +Int_t CbmAnaTreeSource::CheckMaxEventNo(Int_t /*int1*/) { return fChain->GetEntries(); } diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/CbmAnaTreeSource.h b/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/CbmAnaTreeSource.h index d5dce709aa4b58af01428bbec56d214dd44224e8..fed0f256b36d7d87d2d7784f9c2872b1fbd8e3c0 100644 --- a/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/CbmAnaTreeSource.h +++ b/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/CbmAnaTreeSource.h @@ -13,14 +13,17 @@ */ #include <FairSource.h> + #include <TString.h> + class CbmAnaTreeMcSourceContainer; class CbmAnaTreeRecoSourceContainer; class TChain; class CbmAnaTreeSource : public FairSource { Int_t fNFiles; + TString fTreeName; TChain* fChain; TString* fFileName; //[fNFiles] CbmAnaTreeRecoSourceContainer* fContainerReco; @@ -37,8 +40,9 @@ public: /** * main constructor * @param inFile unigen file + * @param treename name of the tree with data */ - CbmAnaTreeSource(TString inFile); + CbmAnaTreeSource(TString inFile, TString treeName = "rTree"); /** * copy constructor * @param source @@ -54,15 +58,14 @@ public: virtual Bool_t ActivateObject(TObject**, const char*) { return kFALSE; } virtual Source_Type GetSourceType() { return kFILE; }; virtual void SetParUnpackers() {}; + virtual Bool_t SpecifyRunId() { return kTRUE; }; virtual Bool_t InitUnpackers() { return kTRUE; }; virtual Bool_t ReInitUnpackers() { return kTRUE; }; virtual Int_t CheckMaxEventNo(Int_t = 0); virtual void ReadBranchEvent(const char* /*BrName*/) {}; virtual void ReadBranchEvent(const char* /*BrName*/, Int_t /*Event*/) {}; virtual void FillEventHeader(FairEventHeader* /*feh*/) {}; - CbmAnaTreeRecoSourceContainer* GetRecoContainer() const { - return fContainerReco; - }; + CbmAnaTreeRecoSourceContainer* GetRecoContainer() const { return fContainerReco; }; CbmAnaTreeMcSourceContainer* GetSimContainer() const { return fContainerSim; } void SetRunId(Int_t runId) { fRunId = runId; } ClassDef(CbmAnaTreeSource, 1) diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/femto/CbmHbtEvent.cxx b/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/femto/CbmHbtEvent.cxx index 6b61635253e3b723233d0fca3981300f27121b46..7d9b30f4856b2d05c4bad51132d444f958bce752 100644 --- a/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/femto/CbmHbtEvent.cxx +++ b/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/femto/CbmHbtEvent.cxx @@ -9,26 +9,27 @@ #include "CbmHbtEvent.h" #include "CbmHbtTrack.h" -#include "NicaCbmATEvent.h" + +#include "NicaCbmEvent.h" CbmHbtEvent::CbmHbtEvent() : NicaExpEvent("CbmHbtTrack") {} -Bool_t CbmHbtEvent::IsCompatible(const NicaEvent* non_buffered) const { - if (non_buffered->InheritsFrom("NicaCbmATEvent")) return kTRUE; +Bool_t CbmHbtEvent::IsCompatible(const NicaEvent* non_buffered) const +{ + if (non_buffered->InheritsFrom("NicaCbmEvent")) return kTRUE; return kFALSE; } -void CbmHbtEvent::ShallowCopyTracks(NicaEvent* event) { +void CbmHbtEvent::ShallowCopyTracks(NicaEvent* event) +{ fTracks->Clear(); fTotalTracksNo = event->GetTotalTrackNo(); fTracks->ExpandCreateFast(fTotalTracksNo); for (int i = 0; i < fTotalTracksNo; i++) { - NicaCbmATTrack* from = (NicaCbmATTrack*) event->GetTrack(i); - CbmHbtTrack* to = (CbmHbtTrack*) fTracks->UncheckedAt(i); + NicaCbmTrack* from = (NicaCbmTrack*) event->GetTrack(i); + CbmHbtTrack* to = (CbmHbtTrack*) fTracks->UncheckedAt(i); + to->ResetTrack(i, this); to->CopyData(from); - from->SetEvent(this); - to->GetLink()->ClearLinks(); - to->GetLink()->SetLink(0, i); } } diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/femto/CbmHbtTrack.cxx b/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/femto/CbmHbtTrack.cxx index 798c6113a5a2ce2110d21de6548f72ab456ba6fd..78dfe6653fd42e8713f6c45c22ee0ed5b8bc11aa 100644 --- a/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/femto/CbmHbtTrack.cxx +++ b/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/femto/CbmHbtTrack.cxx @@ -9,7 +9,8 @@ #include "CbmHbtTrack.h" #include "CbmHbtEvent.h" -#include "NicaCbmATTrack.h" + +#include "NicaCbmTrack.h" CbmHbtTrack::CbmHbtTrack() : NicaExpTrack() @@ -17,15 +18,19 @@ CbmHbtTrack::CbmHbtTrack() , fMomAt(new TVector3()) , fHelix(new CbmHelix()) , fRPos(0) - , fRMom(0) {} + , fRMom(0) +{ +} -CbmHbtTrack::~CbmHbtTrack() { +CbmHbtTrack::~CbmHbtTrack() +{ if (fPosAt) delete fPosAt; if (fMomAt) delete fMomAt; if (fHelix) delete fHelix; } -CbmHbtTrack::CbmHbtTrack(const CbmHbtTrack& other) : NicaExpTrack(other) { +CbmHbtTrack::CbmHbtTrack(const CbmHbtTrack& other) : NicaExpTrack(other) +{ fPosAt = new TVector3(*other.fPosAt); fMomAt = new TVector3(*other.fMomAt); fHelix = new CbmHelix(*other.fHelix); @@ -33,7 +38,8 @@ CbmHbtTrack::CbmHbtTrack(const CbmHbtTrack& other) : NicaExpTrack(other) { fRMom = other.fRMom; } -CbmHbtTrack& CbmHbtTrack::operator=(const CbmHbtTrack& other) { +CbmHbtTrack& CbmHbtTrack::operator=(const CbmHbtTrack& other) +{ if (this == &other) return *this; NicaExpTrack::operator=(other); *fPosAt = *other.fPosAt; @@ -44,22 +50,24 @@ CbmHbtTrack& CbmHbtTrack::operator=(const CbmHbtTrack& other) { return *this; } -void CbmHbtTrack::CopyData(NicaTrack* other) { +void CbmHbtTrack::CopyData(NicaTrack* other) +{ NicaExpTrack::CopyData(other); - *fHelix = *((NicaCbmATTrack*) other)->GetHelix(); + *fHelix = *((NicaCbmTrack*) other)->GetHelix(); fRPos = fRMom = -1; } -void CbmHbtTrack::CalculatePosAt(Double_t R) { +void CbmHbtTrack::CalculatePosAt(Double_t R) +{ if (fRPos == R) return; TLorentzVector* vertex = GetEvent()->GetVertex(); TVector3 pos = GetHelix()->Eval(vertex->Z() + R); - fPosAt->SetXYZ( - pos.X() - vertex->X(), pos.Y() - vertex->Y(), pos.Z() - vertex->Z()); + fPosAt->SetXYZ(pos.X() - vertex->X(), pos.Y() - vertex->Y(), pos.Z() - vertex->Z()); fRPos = R; } -void CbmHbtTrack::CalculateMomAt(Double_t R) { +void CbmHbtTrack::CalculateMomAt(Double_t R) +{ if (fRMom == R) return; TLorentzVector* vertex = GetEvent()->GetVertex(); GetHelix()->Eval(vertex->Z() + R, *fMomAt); diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/femto/CbmHbtTrack.h b/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/femto/CbmHbtTrack.h index afa3844bf71e81105ac850cd05a13eb7184846f3..33819af2394065b4dc2bc8cf688a8465f18816b3 100644 --- a/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/femto/CbmHbtTrack.h +++ b/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/femto/CbmHbtTrack.h @@ -10,9 +10,11 @@ #define CBMHBTTRACK_H_ #include "CbmHelix.h" -#include "NicaExpTrack.h" + #include <TVector3.h> +#include "NicaExpTrack.h" + class CbmHbtTrack : public NicaExpTrack { TVector3* fPosAt; diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/mc/NicaCbmATMCEvent.cxx b/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/mc/NicaCbmATMCEvent.cxx deleted file mode 100644 index 90e303cf1942f9e25edf341b4315d9805dafcaf9..0000000000000000000000000000000000000000 --- a/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/mc/NicaCbmATMCEvent.cxx +++ /dev/null @@ -1,66 +0,0 @@ -/* - * NicaCbmDstMcEvent.cxx - * - * Created on: 17 wrz 2020 - * Author: Daniel Wielanek - * E-mail: daniel.wielanek@gmail.com - * Warsaw University of Technology, Faculty of Physics - */ -#include "NicaCbmATMCEvent.h" - -#include "AnalysisTree/EventHeader.hpp" -#include "AnalysisTree/Particle.hpp" -#include "CbmAnaTreeSource.h" -#include "NicaCbmATMCEventInterface.h" -#include "NicaCbmATMCTrack.h" - -NicaCbmATMCEvent::NicaCbmATMCEvent() : NicaMCEvent("NicaCbmATMCTrack") {} - -void NicaCbmATMCEvent::CreateSource() { - fSource = new NicaCbmATMCEventInterface(); -} - -NicaCbmATMCEvent::NicaCbmATMCEvent(const NicaCbmATMCEvent& other) - : NicaMCEvent(other) {} - -void NicaCbmATMCEvent::Update() { - NicaCbmATMCEventInterface* s = - static_cast<NicaCbmATMCEventInterface*>(fSource); - CbmAnaTreeMcSourceContainer* data = - (CbmAnaTreeMcSourceContainer*) s->GetRawEventPointer(); - AnaTreeMcIds conf = data->GetFieldIds(); - fTotalTracksNo = data->GetParticles()->GetNumberOfChannels(); - fB = data->GetEventHeader()->GetField<Float_t>(conf.event_b); - fPhi = data->GetEventHeader()->GetField<Float_t>(conf.event_psi); - fTracks->Clear(); - fTracks->ExpandCreateFast(fTotalTracksNo); - - for (int i = 0; i < fTotalTracksNo; i++) { - NicaCbmATMCTrack* track = (NicaCbmATMCTrack*) fTracks->UncheckedAt(i); - track->SetEvent(this); - AnalysisTree::Particle particle = data->GetParticles()->GetChannel(i); - Double_t px = particle.GetField<float>(conf.px); - Double_t py = particle.GetField<float>(conf.py); - Double_t pz = particle.GetField<float>(conf.pz); - Double_t mass = particle.GetField<float>(conf.mass); - Int_t mother_id = particle.GetField<int>(conf.motherId); - Int_t pid = particle.GetField<int>(conf.pdg); - track->GetMomentum()->SetXYZM(px, py, pz, mass); - track->SetPdg(pid); - track->SetMotherIndex(mother_id); - track->GetLink()->ClearLinks(); - track->GetLink()->SetLink(0, i); - if (mother_id < 0) { - track->SetPrimary(); - } else { - track->SetMotherIndex(track->GetMotherIndex()); - } - track->SetCharge(CalculateCharge(pid)); - } -} - -Bool_t NicaCbmATMCEvent::ExistInTree() const { - return CheckBranches(1, "CbmAnaTreeMcSourceContainer."); -} - -NicaCbmATMCEvent::~NicaCbmATMCEvent() {} diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/mc/NicaCbmATMCEvent.h b/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/mc/NicaCbmATMCEvent.h deleted file mode 100644 index b2914dbda1693c2290f85eff924badb75ee5e250..0000000000000000000000000000000000000000 --- a/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/mc/NicaCbmATMCEvent.h +++ /dev/null @@ -1,29 +0,0 @@ -/* - * NicaCbmDstMcEvent.h - * - * Created on: 17 wrz 2020 - * Author: Daniel Wielanek - * E-mail: daniel.wielanek@gmail.com - * Warsaw University of Technology, Faculty of Physics - */ -#ifndef NICACBMATMCEVENT_H_ -#define NICACBMATMCEVENT_H_ - -#include "NicaMCEvent.h" - -class NicaCbmATMCEvent : public NicaMCEvent { -protected: - virtual void CreateSource(); - -public: - NicaCbmATMCEvent(); - NicaCbmATMCEvent(const NicaCbmATMCEvent& other); - virtual void Update(); - virtual NicaEvent* GetNewEvent() const { return new NicaCbmATMCEvent(); }; - virtual Bool_t ExistInTree() const; - virtual TString GetFormatName() const { return "CbmATMCEvent"; }; - virtual ~NicaCbmATMCEvent(); - ClassDef(NicaCbmATMCEvent, 1) -}; - -#endif /* NICACBMATMCEVENT_H_ */ diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/mc/NicaCbmATMCEventInterface.cxx b/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/mc/NicaCbmATMCEventInterface.cxx deleted file mode 100644 index 95c9e6bf5b62b8418e7d56ef9cb966a913c89399..0000000000000000000000000000000000000000 --- a/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/mc/NicaCbmATMCEventInterface.cxx +++ /dev/null @@ -1,72 +0,0 @@ -/* - * NicaCbmDstMcEventInterface.cxx - * - * Created on: 17 wrz 2020 - * Author: Daniel Wielanek - * E-mail: daniel.wielanek@gmail.com - * Warsaw University of Technology, Faculty of Physics - */ -#include "NicaCbmATMCEventInterface.h" - -#include "FairRootManager.h" - -#include "CbmAnaTreeContainer.h" - -NicaCbmATMCEventInterface::NicaCbmATMCEventInterface() - : fDataContainer(nullptr) {} - -void NicaCbmATMCEventInterface::ConnectToTree() { - FairRootManager* manager = FairRootManager::Instance(); - if (CanDeleteEvent()) { delete fDataContainer; } - fDataContainer = (CbmAnaTreeMcSourceContainer*) manager->GetObject( - "CbmAnaTreeMcSourceContainer."); -} - -void NicaCbmATMCEventInterface::Register(Bool_t write) { - FairRootManager* manager = FairRootManager::Instance(); - manager->Register("CbmAnaTreeMcSourceContainer.", - "CbmAnaTreeMcSourceContainer.", - fDataContainer, - write); -} - -void NicaCbmATMCEventInterface::CopyData(NicaEventInterface* s) { - NicaCbmATMCEventInterface* ev = (NicaCbmATMCEventInterface*) s; - *fDataContainer = *ev->fDataContainer; //TODO make assignment operator -} - -void NicaCbmATMCEventInterface::Compress(Int_t* /*map*/, Int_t /*map_size*/) { - //TODO -} - -void NicaCbmATMCEventInterface::CopyAndCompress(NicaEventInterface* s, - Int_t* /*map*/, - Int_t /*map_size*/) { - CopyData(s); -} - -void NicaCbmATMCEventInterface::FillTrackInterface( - NicaTrackInterface* /*track*/, - Int_t /*index*/) {} - -Int_t NicaCbmATMCEventInterface::GetTotalTrackNo() const { - return fDataContainer->GetParticles()->GetNumberOfChannels(); -} - -TObject* NicaCbmATMCEventInterface::GetRawTrackPointer(Int_t /*index*/) const { - return nullptr; -} - -TLorentzVector NicaCbmATMCEventInterface::GetVertexError() const { - return TLorentzVector(0, 0, 0, 0); -} - -TLorentzVector NicaCbmATMCEventInterface::GetVertex() const { - AnalysisTree::EventHeader* header = fDataContainer->GetEventHeader(); - return TLorentzVector( - header->GetVertexX(), header->GetVertexY(), header->GetVertexZ(), 0); -} - -NicaCbmATMCEventInterface::~NicaCbmATMCEventInterface() { - if (CanDeleteEvent()) delete fDataContainer; -} diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/mc/NicaCbmATMCTrackInterface.cxx b/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/mc/NicaCbmATMCTrackInterface.cxx deleted file mode 100644 index 0b60b8a71209c72a6fb611aa71d1ea8a0ba22ab0..0000000000000000000000000000000000000000 --- a/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/mc/NicaCbmATMCTrackInterface.cxx +++ /dev/null @@ -1,13 +0,0 @@ -/* - * NicaCbmATMMCTrackInterface.cxx - * - * Created on: 21 wrz 2020 - * Author: Daniel Wielanek - * E-mail: daniel.wielanek@gmail.com - * Warsaw University of Technology, Faculty of Physics - */ -#include "NicaCbmATMCTrackInterface.h" - -NicaCbmATMCTrackInterface::NicaCbmATMCTrackInterface() {} - -NicaCbmATMCTrackInterface::~NicaCbmATMCTrackInterface() {} diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/mc/NicaCbmMCEvent.cxx b/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/mc/NicaCbmMCEvent.cxx new file mode 100644 index 0000000000000000000000000000000000000000..579fcc6bc6ec9a4f044bb3485322b3cec3610637 --- /dev/null +++ b/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/mc/NicaCbmMCEvent.cxx @@ -0,0 +1,71 @@ +/* + * NicaCbmDstMcEvent.cxx + * + * Created on: 17 wrz 2020 + * Author: Daniel Wielanek + * E-mail: daniel.wielanek@gmail.com + * Warsaw University of Technology, Faculty of Physics + */ + +#include "NicaCbmMCEvent.h" + +#include "CbmAnaTreeSource.h" + +#include "AnalysisTree/EventHeader.hpp" +#include "AnalysisTree/Particle.hpp" +#include "NicaCbmMCEventInterface.h" +#include "NicaCbmMCTrack.h" + +NicaCbmMCEvent::NicaCbmMCEvent() : NicaMCEvent("NicaCbmMCTrack") {} + +void NicaCbmMCEvent::CreateSource() { fSource = new NicaCbmMCEventInterface(); } + +NicaCbmMCEvent::NicaCbmMCEvent(const NicaCbmMCEvent& other) : NicaMCEvent(other) {} + +void NicaCbmMCEvent::Update() +{ + NicaCbmMCEventInterface* s = static_cast<NicaCbmMCEventInterface*>(fSource); + CbmAnaTreeMcSourceContainer* data = (CbmAnaTreeMcSourceContainer*) s->GetRawEventPointer(); + AnaTreeMcIds conf = data->GetFieldIds(); + fTotalTracksNo = data->GetParticles()->GetNumberOfChannels(); + fB = data->GetEventHeader()->GetField<Float_t>(conf.event_b); + fPhi = data->GetEventHeader()->GetField<Float_t>(conf.event_psi); + fTracks->Clear(); + fTracks->ExpandCreateFast(fTotalTracksNo); + Bool_t UseFreez = kTRUE; + if (conf.freezX == AnalysisTree::UndefValueShort) UseFreez = kFALSE; + + + for (int i = 0; i < fTotalTracksNo; i++) { + NicaCbmMCTrack* track = (NicaCbmMCTrack*) fTracks->UncheckedAt(i); + track->ResetTrack(i, this); + AnalysisTree::Particle particle = data->GetParticles()->GetChannel(i); + Double_t px = particle.GetField<float>(conf.px); + Double_t py = particle.GetField<float>(conf.py); + Double_t pz = particle.GetField<float>(conf.pz); + Double_t mass = particle.GetField<float>(conf.mass); + + Int_t mother_id = particle.GetField<int>(conf.motherId); + Int_t pid = particle.GetField<int>(conf.pdg); + track->GetMomentum()->SetXYZM(px, py, pz, mass); + track->SetPdg(pid); + if (UseFreez) { + Double_t x = particle.GetField<float>(conf.freezX); + Double_t y = particle.GetField<float>(conf.freezY); + Double_t z = particle.GetField<float>(conf.freezZ); + Double_t t = particle.GetField<float>(conf.freezT); + track->GetFreezoutPosition()->SetXYZT(x, y, z, t); + } + + track->SetMotherIndex(mother_id); + if (mother_id < 0) { track->SetPrimary(); } + else { + track->SetMotherIndex(track->GetMotherIndex()); + } + track->SetCharge(CalculateCharge(pid)); + } +} + +Bool_t NicaCbmMCEvent::ExistInTree() const { return CheckBranches(1, "CbmAnaTreeMcSourceContainer."); } + +NicaCbmMCEvent::~NicaCbmMCEvent() {} diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/format/mc/NicaCbmMCEvent.h b/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/mc/NicaCbmMCEvent.h similarity index 70% rename from analysis/PWGC2F/femtoscopy/nicafemto/format/mc/NicaCbmMCEvent.h rename to analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/mc/NicaCbmMCEvent.h index 9e4856e5767e5f2792f6684472410160684136cd..bb7e60bfc1dff1a726a03dc7eba00860f8e5f179 100644 --- a/analysis/PWGC2F/femtoscopy/nicafemto/format/mc/NicaCbmMCEvent.h +++ b/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/mc/NicaCbmMCEvent.h @@ -1,15 +1,16 @@ /* - * NicaCbmMCEvent.h + * NicaCbmDstMcEvent.h * - * Created on: 20 wrz 2018 + * Created on: 17 wrz 2020 * Author: Daniel Wielanek * E-mail: daniel.wielanek@gmail.com * Warsaw University of Technology, Faculty of Physics */ -#ifndef BMN_NICA_BMN_FORMAT_MC_NICACBMMCEVENT_H_ -#define BMN_NICA_BMN_FORMAT_MC_NICACBMMCEVENT_H_ +#ifndef NICACBMATMCEVENT_H_ +#define NICACBMATMCEVENT_H_ #include "NicaMCEvent.h" + class NicaCbmMCEvent : public NicaMCEvent { protected: virtual void CreateSource(); @@ -18,10 +19,11 @@ public: NicaCbmMCEvent(); NicaCbmMCEvent(const NicaCbmMCEvent& other); virtual void Update(); + virtual NicaEvent* GetNewEvent() const { return new NicaCbmMCEvent(); }; virtual Bool_t ExistInTree() const; virtual TString GetFormatName() const { return "CbmMCEvent"; }; virtual ~NicaCbmMCEvent(); ClassDef(NicaCbmMCEvent, 1) }; -#endif /* BMN_NICA_BMN_FORMAT_MC_NICACBMMCEVENT_H_ */ +#endif /* NICACBMATMCEVENT_H_ */ diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/mc/NicaCbmMCEventInterface.cxx b/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/mc/NicaCbmMCEventInterface.cxx new file mode 100644 index 0000000000000000000000000000000000000000..a25ada065979d0ddaeb5960243b2301cf2d0ed17 --- /dev/null +++ b/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/mc/NicaCbmMCEventInterface.cxx @@ -0,0 +1,63 @@ +/* + * NicaCbmDstMcEventInterface.cxx + * + * Created on: 17 wrz 2020 + * Author: Daniel Wielanek + * E-mail: daniel.wielanek@gmail.com + * Warsaw University of Technology, Faculty of Physics + */ +#include "NicaCbmMCEventInterface.h" + +#include "CbmAnaTreeContainer.h" + +#include <FairRootManager.h> + +NicaCbmMCEventInterface::NicaCbmMCEventInterface() : fDataContainer(nullptr) {} + +void NicaCbmMCEventInterface::ConnectToTree() +{ + FairRootManager* manager = FairRootManager::Instance(); + if (CanDeleteEvent()) { delete fDataContainer; } + fDataContainer = (CbmAnaTreeMcSourceContainer*) manager->GetObject("CbmAnaTreeMcSourceContainer."); +} + +void NicaCbmMCEventInterface::Register(Bool_t write) +{ + FairRootManager* manager = FairRootManager::Instance(); + manager->Register("CbmAnaTreeMcSourceContainer.", "CbmAnaTreeMcSourceContainer.", fDataContainer, write); +} + +void NicaCbmMCEventInterface::CopyData(NicaEventInterface* s) +{ + NicaCbmMCEventInterface* ev = (NicaCbmMCEventInterface*) s; + *fDataContainer = *ev->fDataContainer; //TODO make assignment operator +} + +void NicaCbmMCEventInterface::Compress(Int_t* /*map*/, Int_t /*map_size*/) +{ + //TODO +} + +void NicaCbmMCEventInterface::CopyAndCompress(NicaEventInterface* s, Int_t* /*map*/, Int_t /*map_size*/) +{ + CopyData(s); +} + +void NicaCbmMCEventInterface::FillTrackInterface(NicaTrackInterface* /*track*/, Int_t /*index*/) {} + +Int_t NicaCbmMCEventInterface::GetTotalTrackNo() const { return fDataContainer->GetParticles()->GetNumberOfChannels(); } + +TObject* NicaCbmMCEventInterface::GetRawTrackPointer(Int_t /*index*/) const { return nullptr; } + +TLorentzVector NicaCbmMCEventInterface::GetVertexError() const { return TLorentzVector(0, 0, 0, 0); } + +TLorentzVector NicaCbmMCEventInterface::GetVertex() const +{ + AnalysisTree::EventHeader* header = fDataContainer->GetEventHeader(); + return TLorentzVector(header->GetVertexX(), header->GetVertexY(), header->GetVertexZ(), 0); +} + +NicaCbmMCEventInterface::~NicaCbmMCEventInterface() +{ + if (CanDeleteEvent()) delete fDataContainer; +} diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/mc/NicaCbmATMCEventInterface.h b/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/mc/NicaCbmMCEventInterface.h similarity index 73% rename from analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/mc/NicaCbmATMCEventInterface.h rename to analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/mc/NicaCbmMCEventInterface.h index 871d8bb06dc8bff945981defea3ee5f4e12fc04d..275fd26d155adec860e23418e35da9b87022468f 100644 --- a/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/mc/NicaCbmATMCEventInterface.h +++ b/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/mc/NicaCbmMCEventInterface.h @@ -9,16 +9,16 @@ #ifndef NICACBMATMCEVENTINTERFACE_H_ #define NICACBMATMCEVENTINTERFACE_H_ +#include "CbmAnaTreeContainer.h" + #include <TVector3.h> -#include "CbmAnaTreeContainer.h" -#include "NicaCbmGlobalTrackInterface.h" +#include "NicaCbmMCTrackInterface.h" #include "NicaMCEventInterface.h" class CbmAnaTreeMcSourceContainer; -class NicaCbmATMCEvent; -class NicaCbmATMCEventInterface : public NicaMCEventInterface { - friend class NicaCbmATMCEvent; +class NicaCbmMCEventInterface : public NicaMCEventInterface { + friend class NicaCbmMCEvent; protected: CbmAnaTreeMcSourceContainer* fDataContainer; @@ -26,28 +26,24 @@ protected: void Register(Bool_t write); public: - NicaCbmATMCEventInterface(); + NicaCbmMCEventInterface(); virtual void CopyData(NicaEventInterface* s); virtual void Compress(Int_t* map, Int_t map_size); - virtual void - CopyAndCompress(NicaEventInterface* s, Int_t* map, Int_t map_size); + virtual void CopyAndCompress(NicaEventInterface* s, Int_t* map, Int_t map_size); virtual void FillTrackInterface(NicaTrackInterface* track, Int_t index); virtual Int_t GetTotalTrackNo() const; virtual TObject* GetRawEventPointer() const { return fDataContainer; }; - virtual NicaTrackInterface* GetTrackInterface() const { - return new NicaCbmGlobalTrackInterface(); - } + virtual NicaTrackInterface* GetTrackInterface() const { return new NicaCbmMCTrackInterface(); } virtual TObject* GetRawTrackPointer(Int_t index) const; /** GETTERS AND SETTERS **/ virtual void SetRunInfoId(Int_t /*i*/) {}; virtual Int_t GetRunInfoId() const { return 0; }; - ; virtual void SetMagneticField(TVector3 /*mag*/) const {}; virtual TVector3 GetMagneticField() const { return TVector3(0, 0, 0); }; virtual TLorentzVector GetVertexError() const; virtual TLorentzVector GetVertex() const; - virtual ~NicaCbmATMCEventInterface(); - ClassDef(NicaCbmATMCEventInterface, 1) + virtual ~NicaCbmMCEventInterface(); + ClassDef(NicaCbmMCEventInterface, 1) }; #endif /* NICACBMATMCEVENTINTERFACE_H_ */ diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/mc/NicaCbmATMCTrack.cxx b/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/mc/NicaCbmMCTrack.cxx similarity index 63% rename from analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/mc/NicaCbmATMCTrack.cxx rename to analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/mc/NicaCbmMCTrack.cxx index 39871f37428ee895b8454ad314ab500bc3c34005..41949dc8a0184f212b12872d71536fce9cd2577d 100644 --- a/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/mc/NicaCbmATMCTrack.cxx +++ b/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/mc/NicaCbmMCTrack.cxx @@ -6,8 +6,8 @@ * E-mail: daniel.wielanek@gmail.com * Warsaw University of Technology, Faculty of Physics */ -#include "NicaCbmATMCTrack.h" +#include "NicaCbmMCTrack.h" -NicaCbmATMCTrack::NicaCbmATMCTrack() {} +NicaCbmMCTrack::NicaCbmMCTrack() {} -NicaCbmATMCTrack::~NicaCbmATMCTrack() {} +NicaCbmMCTrack::~NicaCbmMCTrack() {} diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/mc/NicaCbmATMCTrack.h b/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/mc/NicaCbmMCTrack.h similarity index 70% rename from analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/mc/NicaCbmATMCTrack.h rename to analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/mc/NicaCbmMCTrack.h index 1bae96ff4b2f463ba095b4c64feb88e4fc2afcc0..a5969ad42f62521d9703f75fa817d0f732ffb1af 100644 --- a/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/mc/NicaCbmATMCTrack.h +++ b/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/mc/NicaCbmMCTrack.h @@ -10,11 +10,11 @@ #define NICACBMATMCTRACK_H_ #include "NicaMCTrack.h" -class NicaCbmATMCTrack : public NicaMCTrack { +class NicaCbmMCTrack : public NicaMCTrack { public: - NicaCbmATMCTrack(); - virtual ~NicaCbmATMCTrack(); - ClassDef(NicaCbmATMCTrack, 1) + NicaCbmMCTrack(); + virtual ~NicaCbmMCTrack(); + ClassDef(NicaCbmMCTrack, 1) }; #endif /* NICACBMATMCTRACK_H_ */ diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/format/mc/NicaCbmMCTrackInterface.cxx b/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/mc/NicaCbmMCTrackInterface.cxx similarity index 82% rename from analysis/PWGC2F/femtoscopy/nicafemto/format/mc/NicaCbmMCTrackInterface.cxx rename to analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/mc/NicaCbmMCTrackInterface.cxx index 21ee0b09123d3a09b79e2286a18d36c0bd7f2f9a..ccefe16fc830afee5771294d9959136253ae9b44 100644 --- a/analysis/PWGC2F/femtoscopy/nicafemto/format/mc/NicaCbmMCTrackInterface.cxx +++ b/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/mc/NicaCbmMCTrackInterface.cxx @@ -1,7 +1,7 @@ /* - * NicaCbmMCTrackInterface.cxx + * NicaCbmATMMCTrackInterface.cxx * - * Created on: 20 wrz 2018 + * Created on: 21 wrz 2020 * Author: Daniel Wielanek * E-mail: daniel.wielanek@gmail.com * Warsaw University of Technology, Faculty of Physics diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/mc/NicaCbmATMCTrackInterface.h b/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/mc/NicaCbmMCTrackInterface.h similarity index 67% rename from analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/mc/NicaCbmATMCTrackInterface.h rename to analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/mc/NicaCbmMCTrackInterface.h index fa1927dab45bc29d7895ac74c4535d970fb5d2a2..e4eab8e37df4d38d0ab3d17b3581b6148c7e9738 100644 --- a/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/mc/NicaCbmATMCTrackInterface.h +++ b/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/mc/NicaCbmMCTrackInterface.h @@ -11,11 +11,11 @@ #include "NicaMCTrackInterface.h" -class NicaCbmATMCTrackInterface : public NicaMCTrackInterface { +class NicaCbmMCTrackInterface : public NicaMCTrackInterface { public: - NicaCbmATMCTrackInterface(); - virtual ~NicaCbmATMCTrackInterface(); - ClassDef(NicaCbmATMCTrackInterface, 1) + NicaCbmMCTrackInterface(); + virtual ~NicaCbmMCTrackInterface(); + ClassDef(NicaCbmMCTrackInterface, 1) }; #endif /* NICACBMATMMCTRACKINTERFACE_H_ */ diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/reco/NicaCbmATEvent.cxx b/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/reco/NicaCbmATEvent.cxx deleted file mode 100644 index 41615d2b51a1460ca81f2545de86e4fc3b9fa7b1..0000000000000000000000000000000000000000 --- a/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/reco/NicaCbmATEvent.cxx +++ /dev/null @@ -1,107 +0,0 @@ -/* - * NicaCbmEvent.cxx - * - * Created on: 3 gru 2018 - * Author: Daniel Wielanek - * E-mail: daniel.wielanek@gmail.com - * Warsaw University of Technology, Faculty of Physics - */ -#include "NicaCbmATEvent.h" - -#include "AnalysisTree/Constants.hpp" -#include "AnalysisTree/Matching.hpp" -#include "NicaDetectorID.h" -#include "NicaEvent.h" -#include <TVector3.h> -#include <iostream> - -#include "NicaCbmATEventInterface.h" -#include "NicaCbmATTrack.h" - -NicaCbmATEvent::NicaCbmATEvent() : NicaExpEvent("NicaCbmATTrack") {} - -void NicaCbmATEvent::ShallowCopyTracks(NicaEvent* event) { - fTracks->Clear(); - fTotalTracksNo = event->GetTotalTrackNo(); - fTracks->ExpandCreateFast(fTotalTracksNo); - NicaCbmATEvent* Event = (NicaCbmATEvent*) event; - for (int i = 0; i < fTotalTracksNo; i++) { - NicaCbmATTrack* from = (NicaCbmATTrack*) Event->fTracks->UncheckedAt(i); - NicaCbmATTrack* to = (NicaCbmATTrack*) fTracks->UncheckedAt(i); - NicaEvent* temp_event = from->GetEvent(); - from->SetEvent(this); - to->CopyData(from); - from->SetEvent(temp_event); - to->GetLink()->ClearLinks(); - to->GetLink()->SetLink(0, i); - } -} - -void NicaCbmATEvent::ShallowCopyEvent(NicaEvent* event) { - NicaExpEvent::ShallowCopyEvent(event); -} - -void NicaCbmATEvent::CreateSource() { fSource = new NicaCbmATEventInterface(); } - -NicaCbmATEvent::NicaCbmATEvent(const NicaCbmATEvent& other) - : NicaExpEvent(other) { - if (other.fSource) CreateSource(); -} - -void NicaCbmATEvent::Update() { - fTracks->Clear(); - NicaCbmATEventInterface* interface = (NicaCbmATEventInterface*) fSource; - CbmAnaTreeRecoSourceContainer* container = - (CbmAnaTreeRecoSourceContainer*) interface->GetRawEventPointer(); - fTotalTracksNo = interface->GetTotalTrackNo(); - if (fTotalTracksNo > 1000) { fTotalTracksNo = 0; } - TLorentzVector start = interface->GetVertex(); - fVertex->SetXYZT(start.X(), start.Y(), start.Z(), start.T()); - fTracks->ExpandCreateFast(fTotalTracksNo); - AnaTreeRecoIds ids = container->GetFieldIds(); - for (int i = 0; i < fTotalTracksNo; i++) { - AnalysisTree::Track p = container->GetVtxTracks()->GetChannel(i); - AnalysisTree::ShortInt_t match = - container->GetVtx2ToFMatch()->GetMatchDirect(i); - NicaCbmATTrack* track = (NicaCbmATTrack*) fTracks->UncheckedAt(i); - track->SetEvent(this); - track->SetChi2(p.GetField<float>(ids.vtx_chi2)); - track->SetVertexChi2(p.GetField<float>(ids.vtx_vtxchi2)); - track->GetMomentum()->SetPxPyPzE(p.GetPx(), p.GetPy(), p.GetPz(), 0); - track->GetDCA()->SetXYZ(p.GetField<float>(ids.vtx_dcax), - p.GetField<float>(ids.vtx_dcay), - p.GetField<float>(ids.vtx_dcaz)); - track->SetNHits(p.GetField<int>(ids.vtx_nhits)); - track->SetCharge(p.GetField<int>(ids.vtx_q)); - TVector3 mom(p.GetPx(), p.GetPy(), p.GetPz()); - TVector3 pos( - track->GetDCA()->X(), track->GetDCA()->Y(), track->GetDCA()->Z()); - track->GetHelix()->Build(pos, mom, track->GetCharge()); - NicaToFTrack* tof = - (NicaToFTrack*) track->GetDetTrack(NicaDetectorID::kTOF); - if (match == AnalysisTree::UndefValueShort) { - //no tof - tof->SetMass2(NicaToFTrack::DummyVal()); - tof->SetBeta(NicaToFTrack::DummyVal()); - tof->SetFlag(0); - } else { - AnalysisTree::Hit tof_hit = container->GetTofHits()->GetChannel(match); - Double_t P = track->GetMomentum()->P(); - Double_t m2 = tof_hit.GetField<float>(ids.tof_mass2); - Double_t E = TMath::Sqrt(mom * mom + m2); - Double_t beta = P / E; - tof->SetMass2(m2); - tof->SetBeta(beta); - tof->SetFlag(1); - } - track->GetLink()->SetLink(0, i); - } -} - -NicaCbmATEvent::NicaCbmATEvent(TString classname) : NicaExpEvent(classname) {} - -NicaCbmATEvent::~NicaCbmATEvent() {} - -Bool_t NicaCbmATEvent::ExistInTree() const { - return CheckBranches(1, "CbmAnaTreeSourceContainer."); -} diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/reco/NicaCbmATEvent.h b/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/reco/NicaCbmATEvent.h deleted file mode 100644 index a0c05249a355e16b7c7253ce698cdec37b19132b..0000000000000000000000000000000000000000 --- a/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/reco/NicaCbmATEvent.h +++ /dev/null @@ -1,34 +0,0 @@ -/* - * NicaCbmEvent.h - * - * Created on: 3 gru 2018 - * Author: Daniel Wielanek - * E-mail: daniel.wielanek@gmail.com - * Warsaw University of Technology, Faculty of Physics - */ -#ifndef NICACBMDSTEVENT_H_ -#define NICACBMDSTEVENT_H_ - -#include "NicaCbmATTrack.h" -#include "NicaExpEvent.h" - -class NicaCbmATEvent : public NicaExpEvent { -protected: - virtual void ShallowCopyTracks(NicaEvent* event); - virtual void ShallowCopyEvent(NicaEvent* event); - virtual void CreateSource(); - NicaCbmATEvent(TString classname); - -public: - NicaCbmATEvent(); - NicaCbmATEvent(const NicaCbmATEvent& other); - virtual void Update(); - virtual Bool_t ExistInTree() const; - NicaTrack* GetNewTrack() const { return new NicaCbmATTrack(); }; - virtual NicaEvent* GetNewEvent() const { return new NicaCbmATEvent(); }; - virtual TString GetFormatName() const { return "NicaCbmATEvent"; }; - virtual ~NicaCbmATEvent(); - ClassDef(NicaCbmATEvent, 1) -}; - -#endif /* NICACBMDSTEVENT_H_ */ diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/reco/NicaCbmATEventInterface.cxx b/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/reco/NicaCbmATEventInterface.cxx deleted file mode 100644 index 1ab4bacca181d2b2d7e4e9822c8080a91c19dd54..0000000000000000000000000000000000000000 --- a/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/reco/NicaCbmATEventInterface.cxx +++ /dev/null @@ -1,81 +0,0 @@ -/* - * NicaCbmEventInterface.cxx - * - * Created on: 3 gru 2018 - * Author: Daniel Wielanek - * E-mail: daniel.wielanek@gmail.com - * Warsaw University of Technology, Faculty of Physics - */ - -#include "NicaCbmATEventInterface.h" - -#include <FairRootManager.h> -#include <RtypesCore.h> -#include <TObjArray.h> -#include <stddef.h> - -#include "CbmAnaTreeSource.h" -#include "CbmGlobalTrack.h" -#include "CbmStsTrack.h" -#include "CbmTofTrack.h" - -NicaCbmATEventInterface::NicaCbmATEventInterface() : fDataContainer(nullptr) {} - -void NicaCbmATEventInterface::ConnectToTree() { - FairRootManager* manager = FairRootManager::Instance(); - if (CanDeleteEvent()) { delete fDataContainer; } - - fDataContainer = (CbmAnaTreeRecoSourceContainer*) manager->GetObject( - "CbmAnaTreeSourceContainer."); -} - -void NicaCbmATEventInterface::Register(Bool_t write) { - FairRootManager* manager = FairRootManager::Instance(); - manager->Register("CbmAnaTreeSourceContainer.", - "CbmAnaTreeSourceContainer.", - fDataContainer, - write); -} - -void NicaCbmATEventInterface::CopyData(NicaEventInterface* s) { - NicaCbmATEventInterface* ev = (NicaCbmATEventInterface*) s; - *fDataContainer = *ev->fDataContainer; //TODO make assignment operator -} - -void NicaCbmATEventInterface::Compress(Int_t* /*map*/, Int_t /*map_size*/) { - //NOT AVAIABLE IN ANATREE -} - -void NicaCbmATEventInterface::CopyAndCompress(NicaEventInterface* s, - Int_t* /*map*/, - Int_t /*map_size*/) { - NicaCbmATEventInterface* ev = (NicaCbmATEventInterface*) s; - *fDataContainer = *ev->fDataContainer; -} - -void NicaCbmATEventInterface::FillTrackInterface(NicaTrackInterface* /*track*/, - Int_t /*index*/) { - // OPS NO POINTER TO TOBJECT ! -} - -Int_t NicaCbmATEventInterface::GetTotalTrackNo() const { - return fDataContainer->GetVtxTracks()->GetNumberOfChannels(); -} - -TObject* NicaCbmATEventInterface::GetRawTrackPointer(Int_t /*index*/) const { - return nullptr; -} - -TLorentzVector NicaCbmATEventInterface::GetVertexError() const { - return TLorentzVector(0, 0, 0, 0); -} - -TLorentzVector NicaCbmATEventInterface::GetVertex() const { - AnalysisTree::EventHeader* header = fDataContainer->GetEventHeader(); - return TLorentzVector( - header->GetVertexX(), header->GetVertexY(), header->GetVertexZ(), 0); -} - -NicaCbmATEventInterface::~NicaCbmATEventInterface() { - if (CanDeleteEvent()) { delete fDataContainer; } -} diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/reco/NicaCbmATTrack.cxx b/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/reco/NicaCbmATTrack.cxx deleted file mode 100644 index 3ca3c94085931fdcc184279756db18f9f209dbd2..0000000000000000000000000000000000000000 --- a/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/reco/NicaCbmATTrack.cxx +++ /dev/null @@ -1,49 +0,0 @@ -/* - * NicaCbmTrack.cxx - * - * Created on: 3 gru 2018 - * Author: Daniel Wielanek - * E-mail: daniel.wielanek@gmail.com - * Warsaw University of Technology, Faculty of Physics - */ -#include "NicaCbmATTrack.h" - -#include "CbmHelix.h" -#include "NicaCbmATEventInterface.h" -#include "NicaDetectorID.h" -#include "NicaExpEvent.h" - -NicaCbmATTrack::NicaCbmATTrack() - : fTofTrack(new NicaToFTrack()), fHelix(new CbmHelix()), fChi2Vertex(0) {} - -NicaCbmATTrack::NicaCbmATTrack(const NicaCbmATTrack& other) - : NicaExpTrack(other) - , fTofTrack(new NicaToFTrack(*other.fTofTrack)) - , fHelix(new CbmHelix(*other.fHelix)) - , fChi2Vertex(other.fChi2Vertex) {} - -NicaCbmATTrack& NicaCbmATTrack::operator=(const NicaCbmATTrack& other) { - if (this == &other) return *this; - NicaExpTrack::operator=(other); - *fTofTrack = *other.fTofTrack; - *fHelix = *other.fHelix; - fChi2Vertex = other.fChi2Vertex; - return *this; -} - -TObject* NicaCbmATTrack::GetDetTrack(const UInt_t detID) const { - if (detID == NicaDetectorID::kTOF) { return fTofTrack; } - return nullptr; -} - -NicaCbmATTrack::~NicaCbmATTrack() { - delete fTofTrack; - delete fHelix; -} - -void NicaCbmATTrack::CopyData(NicaTrack* other) { - NicaExpTrack::CopyData(other); - *fTofTrack = *(static_cast<NicaCbmATTrack*>(other))->fTofTrack; - *fHelix = *(static_cast<NicaCbmATTrack*>(other))->fHelix; - fChi2Vertex = (static_cast<NicaCbmATTrack*>(other))->fChi2Vertex; -} diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/reco/NicaCbmATTrackInterface.cxx b/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/reco/NicaCbmATTrackInterface.cxx deleted file mode 100644 index c01f8b44d999f59bea4cc72e7e63ddda1a3d60f3..0000000000000000000000000000000000000000 --- a/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/reco/NicaCbmATTrackInterface.cxx +++ /dev/null @@ -1,13 +0,0 @@ -/* - * NicaCbmTrackInterface.cxx - * - * Created on: 3 gru 2018 - * Author: Daniel Wielanek - * E-mail: daniel.wielanek@gmail.com - * Warsaw University of Technology, Faculty of Physics - */ -#include "NicaCbmATTrackInterface.h" - -NicaCbmATTrackInterface::NicaCbmATTrackInterface() {} - -NicaCbmATTrackInterface::~NicaCbmATTrackInterface() {} diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/reco/NicaCbmEvent.cxx b/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/reco/NicaCbmEvent.cxx new file mode 100644 index 0000000000000000000000000000000000000000..ed2b2ca7d0de8bc3ab0f9d0d699bb559bee78d43 --- /dev/null +++ b/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/reco/NicaCbmEvent.cxx @@ -0,0 +1,82 @@ +/* + * NicaCbmEvent.cxx + * + * Created on: 3 gru 2018 + * Author: Daniel Wielanek + * E-mail: daniel.wielanek@gmail.com + * Warsaw University of Technology, Faculty of Physics + */ +#include "NicaCbmEvent.h" + +#include <TVector3.h> + +#include <iostream> + +#include "AnalysisTree/Constants.hpp" +#include "AnalysisTree/Matching.hpp" +#include "NicaCbmEventInterface.h" +#include "NicaCbmTrack.h" +#include "NicaDataFormat.h" +#include "NicaEvent.h" + +NicaCbmEvent::NicaCbmEvent() : NicaExpEvent("NicaCbmTrack") {} + +void NicaCbmEvent::CreateSource() { fSource = new NicaCbmEventInterface(); } + +NicaCbmEvent::NicaCbmEvent(const NicaCbmEvent& other) : NicaExpEvent(other) +{ + if (other.fSource) CreateSource(); +} + +void NicaCbmEvent::Update() +{ + fTracks->Clear(); + NicaCbmEventInterface* interface = (NicaCbmEventInterface*) fSource; + CbmAnaTreeRecoSourceContainer* container = (CbmAnaTreeRecoSourceContainer*) interface->GetRawEventPointer(); + fTotalTracksNo = interface->GetTotalTrackNo(); + if (fTotalTracksNo > 1000) { fTotalTracksNo = 0; } + TLorentzVector start = interface->GetVertex(); + fVertex->SetXYZT(start.X(), start.Y(), start.Z(), start.T()); + fTracks->ExpandCreateFast(fTotalTracksNo); + AnaTreeRecoIds ids = container->GetFieldIds(); + for (int i = 0; i < fTotalTracksNo; i++) { + AnalysisTree::Track p = container->GetVtxTracks()->GetChannel(i); + AnalysisTree::ShortInt_t match = container->GetVtx2ToFMatch()->GetMatchDirect(i); + NicaCbmTrack* track = (NicaCbmTrack*) fTracks->UncheckedAt(i); + track->ResetTrack(i, this); + track->SetChi2(p.GetField<float>(ids.vtx_chi2)); + track->SetVertexChi2(p.GetField<float>(ids.vtx_vtxchi2)); + track->GetMomentum()->SetPxPyPzE(p.GetPx(), p.GetPy(), p.GetPz(), 0); + track->GetDCA()->SetXYZ(p.GetField<float>(ids.vtx_dcax), p.GetField<float>(ids.vtx_dcay), + p.GetField<float>(ids.vtx_dcaz)); + track->SetNHits(p.GetField<int>(ids.vtx_nhits)); + track->SetCharge(p.GetField<int>(ids.vtx_q)); + track->SetNMvdHits(p.GetField<int>(ids.vtx_mvdhits)); + TVector3 mom(p.GetPx(), p.GetPy(), p.GetPz()); + TVector3 pos(track->GetDCA()->X(), track->GetDCA()->Y(), track->GetDCA()->Z()); + track->GetHelix()->Build(pos, mom, track->GetCharge()); + NicaToFTrack* tof = (NicaToFTrack*) track->GetDetTrack(NicaDetectorID::kTOF); + if (match == AnalysisTree::UndefValueShort) { + //no tof + tof->SetMass2(NicaToFTrack::DummyVal()); + tof->SetBeta(NicaToFTrack::DummyVal()); + tof->SetFlag(0); + } + else { + AnalysisTree::Hit tof_hit = container->GetTofHits()->GetChannel(match); + Double_t P = track->GetMomentum()->P(); + Double_t m2 = tof_hit.GetField<float>(ids.tof_mass2); + Double_t E = TMath::Sqrt(mom * mom + m2); + Double_t beta = P / E; + tof->SetMass2(m2); + tof->SetBeta(beta); + tof->SetFlag(1); + } + } +} + +NicaCbmEvent::NicaCbmEvent(TString classname) : NicaExpEvent(classname) {} + +NicaCbmEvent::~NicaCbmEvent() {} + +Bool_t NicaCbmEvent::ExistInTree() const { return CheckBranches(1, "CbmAnaTreeSourceContainer."); } diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/reco/NicaCbmEvent.h b/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/reco/NicaCbmEvent.h new file mode 100644 index 0000000000000000000000000000000000000000..d33631e55c0e8015c71dbb0b1806a363dfc19c18 --- /dev/null +++ b/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/reco/NicaCbmEvent.h @@ -0,0 +1,32 @@ +/* + * NicaCbmEvent.h + * + * Created on: 3 gru 2018 + * Author: Daniel Wielanek + * E-mail: daniel.wielanek@gmail.com + * Warsaw University of Technology, Faculty of Physics + */ +#ifndef NICACBMDSTEVENT_H_ +#define NICACBMDSTEVENT_H_ + +#include "NicaCbmTrack.h" +#include "NicaExpEvent.h" + +class NicaCbmEvent : public NicaExpEvent { +protected: + virtual void CreateSource(); + NicaCbmEvent(TString classname); + +public: + NicaCbmEvent(); + NicaCbmEvent(const NicaCbmEvent& other); + virtual void Update(); + virtual Bool_t ExistInTree() const; + virtual NicaTrack* GetNewTrack() const { return new NicaCbmTrack(); }; + virtual NicaEvent* GetNewEvent() const { return new NicaCbmEvent(); }; + virtual TString GetFormatName() const { return "NicaCbmEvent"; }; + virtual ~NicaCbmEvent(); + ClassDef(NicaCbmEvent, 1) +}; + +#endif /* NICACBMDSTEVENT_H_ */ diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/reco/NicaCbmEventInterface.cxx b/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/reco/NicaCbmEventInterface.cxx new file mode 100644 index 0000000000000000000000000000000000000000..de642e245dc391d9bb38b4b7ed68bdb036b8571f --- /dev/null +++ b/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/reco/NicaCbmEventInterface.cxx @@ -0,0 +1,77 @@ +/* + * NicaCbmEventInterface.cxx + * + * Created on: 3 gru 2018 + * Author: Daniel Wielanek + * E-mail: daniel.wielanek@gmail.com + * Warsaw University of Technology, Faculty of Physics + */ + +#include "NicaCbmEventInterface.h" + +#include "CbmAnaTreeSource.h" +#include "CbmGlobalTrack.h" +#include "CbmStsTrack.h" +#include "CbmTofTrack.h" + +#include <FairRootManager.h> + +#include <RtypesCore.h> +#include <TObjArray.h> + +#include <stddef.h> + +NicaCbmEventInterface::NicaCbmEventInterface() : fDataContainer(nullptr) {} + +void NicaCbmEventInterface::ConnectToTree() +{ + FairRootManager* manager = FairRootManager::Instance(); + if (CanDeleteEvent()) { delete fDataContainer; } + + fDataContainer = (CbmAnaTreeRecoSourceContainer*) manager->GetObject("CbmAnaTreeSourceContainer."); +} + +void NicaCbmEventInterface::Register(Bool_t write) +{ + FairRootManager* manager = FairRootManager::Instance(); + manager->Register("CbmAnaTreeSourceContainer.", "CbmAnaTreeSourceContainer.", fDataContainer, write); +} + +void NicaCbmEventInterface::CopyData(NicaEventInterface* s) +{ + NicaCbmEventInterface* ev = (NicaCbmEventInterface*) s; + *fDataContainer = *ev->fDataContainer; //TODO make assignment operator +} + +void NicaCbmEventInterface::Compress(Int_t* /*map*/, Int_t /*map_size*/) +{ + //NOT AVAIABLE IN ANATREE +} + +void NicaCbmEventInterface::CopyAndCompress(NicaEventInterface* s, Int_t* /*map*/, Int_t /*map_size*/) +{ + NicaCbmEventInterface* ev = (NicaCbmEventInterface*) s; + *fDataContainer = *ev->fDataContainer; +} + +void NicaCbmEventInterface::FillTrackInterface(NicaTrackInterface* /*track*/, Int_t /*index*/) +{ + // OPS NO POINTER TO TOBJECT ! +} + +Int_t NicaCbmEventInterface::GetTotalTrackNo() const { return fDataContainer->GetVtxTracks()->GetNumberOfChannels(); } + +TObject* NicaCbmEventInterface::GetRawTrackPointer(Int_t /*index*/) const { return nullptr; } + +TLorentzVector NicaCbmEventInterface::GetVertexError() const { return TLorentzVector(0, 0, 0, 0); } + +TLorentzVector NicaCbmEventInterface::GetVertex() const +{ + AnalysisTree::EventHeader* header = fDataContainer->GetEventHeader(); + return TLorentzVector(header->GetVertexX(), header->GetVertexY(), header->GetVertexZ(), 0); +} + +NicaCbmEventInterface::~NicaCbmEventInterface() +{ + if (CanDeleteEvent()) { delete fDataContainer; } +} diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/reco/NicaCbmATEventInterface.h b/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/reco/NicaCbmEventInterface.h similarity index 76% rename from analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/reco/NicaCbmATEventInterface.h rename to analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/reco/NicaCbmEventInterface.h index b0663930bbf478541c217c36e35796fd08d99356..92ca548fb9166d0fe409d415334f198d6f0d14af 100644 --- a/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/reco/NicaCbmATEventInterface.h +++ b/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/reco/NicaCbmEventInterface.h @@ -9,32 +9,30 @@ #ifndef NICACBMATRECOEVENTINTERFACE_H_ #define NICACBMATRECOEVENTINTERFACE_H_ +#include "CbmAnaTreeContainer.h" + #include <Rtypes.h> #include <RtypesCore.h> #include <TVector3.h> -#include "CbmAnaTreeContainer.h" -#include "NicaCbmGlobalTrackInterface.h" +#include "NicaCbmTrackInterface.h" #include "NicaExpEventInterface.h" -class NicaCbmATEventInterface : public NicaExpEventInterface { +class NicaCbmEventInterface : public NicaExpEventInterface { protected: CbmAnaTreeRecoSourceContainer* fDataContainer; virtual void ConnectToTree(); void Register(Bool_t write); public: - NicaCbmATEventInterface(); + NicaCbmEventInterface(); virtual void CopyData(NicaEventInterface* s); virtual void Compress(Int_t* map, Int_t map_size); - virtual void - CopyAndCompress(NicaEventInterface* s, Int_t* map, Int_t map_size); + virtual void CopyAndCompress(NicaEventInterface* s, Int_t* map, Int_t map_size); virtual void FillTrackInterface(NicaTrackInterface* track, Int_t index); virtual Int_t GetTotalTrackNo() const; virtual TObject* GetRawEventPointer() const { return fDataContainer; }; - virtual NicaTrackInterface* GetTrackInterface() const { - return new NicaCbmGlobalTrackInterface(); - } + virtual NicaTrackInterface* GetTrackInterface() const { return new NicaCbmTrackInterface(); } virtual TObject* GetRawTrackPointer(Int_t index) const; /** GETTERS AND SETTERS **/ virtual void SetRunInfoId(Int_t /*i*/) {}; @@ -44,8 +42,8 @@ public: virtual TVector3 GetMagneticField() const { return TVector3(0, 0, 0); }; virtual TLorentzVector GetVertexError() const; virtual TLorentzVector GetVertex() const; - virtual ~NicaCbmATEventInterface(); - ClassDef(NicaCbmATEventInterface, 1) + virtual ~NicaCbmEventInterface(); + ClassDef(NicaCbmEventInterface, 1) }; #endif /* NICACBMATRECOEVENTINTERFACE_H_ */ diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/reco/NicaCbmTrack.cxx b/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/reco/NicaCbmTrack.cxx new file mode 100644 index 0000000000000000000000000000000000000000..b110f823ee99e2ac0fb22ea2d1d3f5ec9f57099e --- /dev/null +++ b/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/reco/NicaCbmTrack.cxx @@ -0,0 +1,58 @@ +/* + * NicaCbmTrack.cxx + * + * Created on: 3 gru 2018 + * Author: Daniel Wielanek + * E-mail: daniel.wielanek@gmail.com + * Warsaw University of Technology, Faculty of Physics + */ +#include "NicaCbmTrack.h" + +#include "CbmHelix.h" + +#include "NicaCbmEventInterface.h" +#include "NicaDataFormat.h" +#include "NicaExpEvent.h" + +NicaCbmTrack::NicaCbmTrack() : fTofTrack(new NicaToFTrack()), fHelix(new CbmHelix()), fChi2Vertex(0), fMvdHits(0) {} + +NicaCbmTrack::NicaCbmTrack(const NicaCbmTrack& other) + : NicaExpTrack(other) + , fTofTrack(new NicaToFTrack(*other.fTofTrack)) + , fHelix(new CbmHelix(*other.fHelix)) + , fChi2Vertex(other.fChi2Vertex) + , fMvdHits(other.fMvdHits) +{ +} + +NicaCbmTrack& NicaCbmTrack::operator=(const NicaCbmTrack& other) +{ + if (this == &other) return *this; + NicaExpTrack::operator=(other); + *fTofTrack = *other.fTofTrack; + *fHelix = *other.fHelix; + fChi2Vertex = other.fChi2Vertex; + fMvdHits = other.fMvdHits; + return *this; +} + +TObject* NicaCbmTrack::GetDetTrack(const UInt_t detID) const +{ + if (detID == NicaDetectorID::kTOF) { return fTofTrack; } + return nullptr; +} + +NicaCbmTrack::~NicaCbmTrack() +{ + delete fTofTrack; + delete fHelix; +} + +void NicaCbmTrack::CopyData(NicaTrack* other) +{ + NicaExpTrack::CopyData(other); + *fTofTrack = *(static_cast<NicaCbmTrack*>(other))->fTofTrack; + *fHelix = *(static_cast<NicaCbmTrack*>(other))->fHelix; + fChi2Vertex = (static_cast<NicaCbmTrack*>(other))->fChi2Vertex; + fMvdHits = (static_cast<NicaCbmTrack*>(other))->fMvdHits; +} diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/reco/NicaCbmATTrack.h b/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/reco/NicaCbmTrack.h similarity index 68% rename from analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/reco/NicaCbmATTrack.h rename to analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/reco/NicaCbmTrack.h index 64e3d334f318a05f16add233da4b808e710ed6c7..61b540e803ae55d0830ff4c3cc9d2492a7f3257a 100644 --- a/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/reco/NicaCbmATTrack.h +++ b/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/reco/NicaCbmTrack.h @@ -9,33 +9,37 @@ #ifndef NICACBMATRECOTRACK_H_ #define NICACBMATRECOTRACK_H_ -#include "AnalysisTree/Detector.hpp" -#include "AnalysisTree/Particle.hpp" #include "CbmGlobalTrack.h" #include "CbmHelix.h" -#include "NicaCbmATEventInterface.h" + +#include "AnalysisTree/Detector.hpp" +#include "AnalysisTree/Particle.hpp" +#include "NicaCbmEventInterface.h" #include "NicaExpTrack.h" #include "NicaToFTrack.h" class CbmHelix; -class NicaCbmATTrackInterface; -class NicaCbmATTrack : public NicaExpTrack { +class NicaCbmTrackInterface; +class NicaCbmTrack : public NicaExpTrack { NicaToFTrack* fTofTrack; CbmHelix* fHelix; Float_t fChi2Vertex; + Int_t fMvdHits; public: - NicaCbmATTrack(); - NicaCbmATTrack(const NicaCbmATTrack& other); - NicaCbmATTrack& operator=(const NicaCbmATTrack& other); + NicaCbmTrack(); + NicaCbmTrack(const NicaCbmTrack& other); + NicaCbmTrack& operator=(const NicaCbmTrack& other); NicaToFTrack* GetTofTrack() { return fTofTrack; }; CbmHelix* GetHelix() const { return fHelix; }; Double_t GetVertexChi2() const { return fChi2Vertex; }; + Int_t GetNMvdHits() const { return fMvdHits; }; void SetVertexChi2(Double_t v) { fChi2Vertex = v; }; + void SetNMvdHits(Int_t h) { fMvdHits = h; }; virtual void CopyData(NicaTrack* other); virtual TObject* GetDetTrack(const UInt_t detID) const; - virtual ~NicaCbmATTrack(); - ClassDef(NicaCbmATTrack, 1) + virtual ~NicaCbmTrack(); + ClassDef(NicaCbmTrack, 1) }; #endif /* NICACBMATRECOTRACK_H_ */ diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/format/full/NicaCbmTrackInterface.cxx b/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/reco/NicaCbmTrackInterface.cxx similarity index 58% rename from analysis/PWGC2F/femtoscopy/nicafemto/format/full/NicaCbmTrackInterface.cxx rename to analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/reco/NicaCbmTrackInterface.cxx index 26073c396a8916faf83464c4bfa0cc15fe271809..bca8a5a863a671f1484f85a16ecf3aa42dd01d7c 100644 --- a/analysis/PWGC2F/femtoscopy/nicafemto/format/full/NicaCbmTrackInterface.cxx +++ b/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/reco/NicaCbmTrackInterface.cxx @@ -1,18 +1,13 @@ /* * NicaCbmTrackInterface.cxx * - * Created on: 11 lip 2019 + * Created on: 3 gru 2018 * Author: Daniel Wielanek * E-mail: daniel.wielanek@gmail.com * Warsaw University of Technology, Faculty of Physics */ #include "NicaCbmTrackInterface.h" -NicaCbmTrackInterface::NicaCbmTrackInterface() - : fStsTrack(NULL) - , fTofTrack(NULL) - , fTrdTrack(NULL) - , fRichRing(NULL) - , fMuchTrack(NULL) {} +NicaCbmTrackInterface::NicaCbmTrackInterface() {} NicaCbmTrackInterface::~NicaCbmTrackInterface() {} diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/reco/NicaCbmATTrackInterface.h b/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/reco/NicaCbmTrackInterface.h similarity index 64% rename from analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/reco/NicaCbmATTrackInterface.h rename to analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/reco/NicaCbmTrackInterface.h index 9239ccab18f9523640c2242ed3b9c0d98d82388f..f3c813a59dc1a52d534ca79e6504336b702aa51b 100644 --- a/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/reco/NicaCbmATTrackInterface.h +++ b/analysis/PWGC2F/femtoscopy/nicafemto/format/anatree/reco/NicaCbmTrackInterface.h @@ -10,13 +10,13 @@ #define NICACBMATRECOTRACKINTERFACE_H_ #include "CbmStsTrack.h" -#include "NicaCbmGlobalTrackInterface.h" + #include "NicaTrackInterface.h" -class NicaCbmATTrackInterface : public NicaTrackInterface { +class NicaCbmTrackInterface : public NicaTrackInterface { public: - NicaCbmATTrackInterface(); - virtual ~NicaCbmATTrackInterface(); - ClassDef(NicaCbmATTrackInterface, 1) + NicaCbmTrackInterface(); + virtual ~NicaCbmTrackInterface(); + ClassDef(NicaCbmTrackInterface, 1) }; #endif /* NICACBMATTRACKINTERFACE_H_ */ diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/format/combined/CbmHbtFullEvent.cxx b/analysis/PWGC2F/femtoscopy/nicafemto/format/combined/CbmHbtFullEvent.cxx index f578b190f954dc6ca511a1581e8f9fe9a2cf197e..20e2cdd149c18bc940f010f1b67258183e2b1907 100644 --- a/analysis/PWGC2F/femtoscopy/nicafemto/format/combined/CbmHbtFullEvent.cxx +++ b/analysis/PWGC2F/femtoscopy/nicafemto/format/combined/CbmHbtFullEvent.cxx @@ -7,13 +7,13 @@ * Warsaw University of Technology, Faculty of Physics */ #include "CbmHbtFullEvent.h" + #include "CbmHbtEvent.h" #include "CbmHbtFullEvent.h" -#include "NicaCbmATMCEvent.h" +#include "NicaCbmMCEvent.h" -CbmHbtFullEvent::CbmHbtFullEvent() - : NicaComplexEvent(new CbmHbtEvent(), new NicaCbmATMCEvent()) {} +CbmHbtFullEvent::CbmHbtFullEvent() : NicaComplexEvent(new CbmHbtEvent(), new NicaCbmMCEvent()) {} CbmHbtFullEvent::~CbmHbtFullEvent() {} diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/format/combined/NicaCbmATFullEvent.cxx b/analysis/PWGC2F/femtoscopy/nicafemto/format/combined/NicaCbmFullEvent.cxx similarity index 52% rename from analysis/PWGC2F/femtoscopy/nicafemto/format/combined/NicaCbmATFullEvent.cxx rename to analysis/PWGC2F/femtoscopy/nicafemto/format/combined/NicaCbmFullEvent.cxx index 07c24cf5a97f8cadfae7149b9059abfef199428d..59452a8211996e14d546b97da9726acf830a479b 100644 --- a/analysis/PWGC2F/femtoscopy/nicafemto/format/combined/NicaCbmATFullEvent.cxx +++ b/analysis/PWGC2F/femtoscopy/nicafemto/format/combined/NicaCbmFullEvent.cxx @@ -7,46 +7,44 @@ * Warsaw University of Technology, Faculty of Physics */ -#include "NicaCbmATFullEvent.h" +#include "NicaCbmFullEvent.h" #include "AnalysisTree/Constants.hpp" -#include "NicaCbmATEvent.h" -#include "NicaCbmATEventInterface.h" -#include "NicaCbmATMCEvent.h" +#include "NicaCbmEvent.h" +#include "NicaCbmEventInterface.h" +#include "NicaCbmMCEvent.h" #include "NicaComplexTrack.h" -NicaCbmATFullEvent::NicaCbmATFullEvent() - : NicaComplexEvent(new NicaCbmATEvent(), new NicaCbmATMCEvent()) {} +NicaCbmFullEvent::NicaCbmFullEvent() : NicaComplexEvent(new NicaCbmEvent(), new NicaCbmMCEvent()) {} -void NicaCbmATFullEvent::Update() { +void NicaCbmFullEvent::Update() +{ fImgEvent->Update(); fRealEvent->Update(); NicaEvent::ShallowCopyEvent(fRealEvent); fTracks->Clear(); fTotalTracksNo = fRealEvent->GetTotalTrackNo(); fTracks->ExpandCreateFast(fTotalTracksNo); - NicaCbmATEventInterface* s = (NicaCbmATEventInterface*) fSource; - CbmAnaTreeRecoSourceContainer* reco = - (CbmAnaTreeRecoSourceContainer*) s->GetRawEventPointer(); + NicaCbmEventInterface* s = (NicaCbmEventInterface*) fSource; + CbmAnaTreeRecoSourceContainer* reco = (CbmAnaTreeRecoSourceContainer*) s->GetRawEventPointer(); for (Int_t i = 0; i < fTotalTracksNo; i++) { NicaComplexTrack* track = (NicaComplexTrack*) fTracks->UncheckedAt(i); + track->ResetTrack(i, this); track->SetRealTrack(fRealEvent->GetTrack(i)); track->NicaTrack::CopyData(fRealEvent->GetTrack(i)); Int_t match = reco->GetVtx2Sim()->GetMatchDirect(i); - if (match < 0 || match == AnalysisTree::UndefValueInt) { - track->SetImgTrack(nullptr); - } else { + if (match < 0 || match == AnalysisTree::UndefValueInt) { track->SetImgTrack(nullptr); } + else { track->SetImgTrack(fImgEvent->GetTrack(match)); track->SetMatchID(match); } - track->SetEvent(this); } } -NicaEvent* NicaCbmATFullEvent::GetNewEvent() const { - return new NicaCbmATFullEvent(); -} +NicaEvent* NicaCbmFullEvent::GetNewEvent() const { return new NicaCbmFullEvent(); } + +NicaCbmFullEvent::~NicaCbmFullEvent() {} -NicaCbmATFullEvent::~NicaCbmATFullEvent() {} +NicaCbmFullEvent::NicaCbmFullEvent(NicaEvent* re, NicaEvent* im) : NicaComplexEvent(re, im) {} diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/format/combined/NicaCbmATFullEvent.h b/analysis/PWGC2F/femtoscopy/nicafemto/format/combined/NicaCbmFullEvent.h similarity index 61% rename from analysis/PWGC2F/femtoscopy/nicafemto/format/combined/NicaCbmATFullEvent.h rename to analysis/PWGC2F/femtoscopy/nicafemto/format/combined/NicaCbmFullEvent.h index 0aa1cd8c7e404cdc7c0eed01268c4901e1044267..75ab31bd488a209c2a0f08c882f06f7460430506 100644 --- a/analysis/PWGC2F/femtoscopy/nicafemto/format/combined/NicaCbmATFullEvent.h +++ b/analysis/PWGC2F/femtoscopy/nicafemto/format/combined/NicaCbmFullEvent.h @@ -14,14 +14,17 @@ * class for analyses that base on anatree events */ -class NicaCbmATFullEvent : public NicaComplexEvent { +class NicaCbmFullEvent : public NicaComplexEvent { +protected: + NicaCbmFullEvent(NicaEvent* re, NicaEvent* im); + public: - NicaCbmATFullEvent(); + NicaCbmFullEvent(); virtual void Update(); - virtual TString GetFormatName() const { return "NicaGlobalMCEvent"; }; + virtual TString GetFormatName() const { return "NicaCbmFullEvent"; }; virtual NicaEvent* GetNewEvent() const; - virtual ~NicaCbmATFullEvent(); - ClassDef(NicaCbmATFullEvent, 1) + virtual ~NicaCbmFullEvent(); + ClassDef(NicaCbmFullEvent, 1) }; #endif /* NICACBMATEVENT_H_ */ diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/format/combined/NicaCbmGlobalMCEvent.cxx b/analysis/PWGC2F/femtoscopy/nicafemto/format/combined/NicaCbmGlobalMCEvent.cxx deleted file mode 100644 index c1865baf388e5c431f3cd5368cbf07d7b08fe9cb..0000000000000000000000000000000000000000 --- a/analysis/PWGC2F/femtoscopy/nicafemto/format/combined/NicaCbmGlobalMCEvent.cxx +++ /dev/null @@ -1,87 +0,0 @@ -/* - * NicaBmnGlobalMCEvent.cxx - * - * Created on: 20 wrz 2018 - * Author: Daniel Wielanek - * E-mail: daniel.wielanek@gmail.com - * Warsaw University of Technology, Faculty of Physics - */ - -#include "NicaCbmGlobalMCEvent.h" - -#include <TClonesArray.h> -#include <TObjArray.h> -#include <stddef.h> - -#include "CbmLink.h" -#include "NicaCbmGlobalTrack.h" -#include "NicaCbmMCEvent.h" -#include "NicaCbmMCTrack.h" -#include "NicaCbmMatchedEvent.h" -#include "NicaCbmMatchedEventInterface.h" -#include "NicaComplexTrack.h" -#include "NicaEvent.h" - -void NicaCbmGlobalMCEvent::Update() { - fImgEvent->Update(); - fRealEvent->Update(); - NicaEvent::ShallowCopyEvent(fRealEvent); - fTracks->Clear(); - fTotalTracksNo = fRealEvent->GetTotalTrackNo(); - fTracks->ExpandCreateFast(fTotalTracksNo); - NicaCbmMatchedEventInterface* interface = - (NicaCbmMatchedEventInterface*) fRealEvent->GetSource(); - for (int i = 0; i < fTotalTracksNo; i++) { - NicaComplexTrack* track = (NicaComplexTrack*) fTracks->UncheckedAt(i); - track->SetRealTrack(fRealEvent->GetTrack(i)); - track->NicaTrack::CopyData(fRealEvent->GetTrack(i)); - //now lets look for MC track - interface->FillTrackInterface(fRealTrackInterface, i); - CbmTrackMatchNew* link = NULL; - Int_t id_match; - switch (fMatching) { - case ECbmModuleId::kSts: link = fRealTrackInterface->GetLinkSts(); break; - case ECbmModuleId::kTof: link = fRealTrackInterface->GetLinkTof(); break; - case ECbmModuleId::kTrd: link = fRealTrackInterface->GetLinkTrd(); break; - case ECbmModuleId::kRich: - link = fRealTrackInterface->GetLinkRich(); - break; - case ECbmModuleId::kMuch: - link = fRealTrackInterface->GetLinkMuch(); - break; - default: break; - } - id_match = link->GetMatchedLink().GetIndex(); - if (id_match < 0) { - track->SetImgTrack(NULL); - track->SetMatchID(-1); - } else { - NicaCbmMCTrack* mc = (NicaCbmMCTrack*) fImgEvent->GetTrack(id_match); - track->SetImgTrack(mc); - track->SetMatchID(id_match); - } - track->SetEvent(this); - } -} - -Bool_t NicaCbmGlobalMCEvent::ExistInTree() const { - if (fImgEvent && fRealEvent) { - if (fImgEvent->ExistInTree() && fRealEvent->ExistInTree()) { return kTRUE; } - } - return kFALSE; -} - -NicaCbmGlobalMCEvent::NicaCbmGlobalMCEvent(NicaCbmSetup mode, - ECbmModuleId match) - : NicaComplexEvent(new NicaCbmMatchedEvent(mode), new NicaCbmMCEvent()) - , fMatching(match) - , fSetup(mode) { - fRealTrackInterface = new NicaCbmMatchedTrackInterface(); -} - -NicaEvent* NicaCbmGlobalMCEvent::GetNewEvent() const { - return new NicaCbmGlobalMCEvent( - ((NicaCbmMatchedEvent*) fRealEvent)->GetMode(), fMatching); -} - -NicaCbmGlobalMCEvent::~NicaCbmGlobalMCEvent() { delete fRealTrackInterface; } diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/format/combined/NicaCbmGlobalMCEvent.h b/analysis/PWGC2F/femtoscopy/nicafemto/format/combined/NicaCbmGlobalMCEvent.h deleted file mode 100644 index 8dd90339b43ec07d3f3e456747c9b6ae9a6a4f42..0000000000000000000000000000000000000000 --- a/analysis/PWGC2F/femtoscopy/nicafemto/format/combined/NicaCbmGlobalMCEvent.h +++ /dev/null @@ -1,38 +0,0 @@ -/* - * NicaBmnGlobalMCEvent.h - * - * Created on: 20 wrz 2018 - * Author: Daniel Wielanek - * E-mail: daniel.wielanek@gmail.com - * Warsaw University of Technology, Faculty of Physics - */ -#ifndef NICABMNGLOBALMCEVENT_H_ -#define NICABMNGLOBALMCEVENT_H_ - -#include <Rtypes.h> -#include <RtypesCore.h> -#include <TString.h> - -#include "CbmDefs.h" -#include "CbmDetectorID.h" -#include "NicaCbmEvent.h" -#include "NicaCbmMatchedTrackInterface.h" -#include "NicaComplexEvent.h" - -class NicaCbmGlobalMCEvent : public NicaComplexEvent { - const ECbmModuleId fMatching; - const NicaCbmSetup fSetup; - NicaCbmMatchedTrackInterface* fRealTrackInterface; - -public: - NicaCbmGlobalMCEvent(NicaCbmSetup mode = NicaCbmSetup::kSis100Hadron, - ECbmModuleId match = ECbmModuleId::kSts); - virtual void Update(); - virtual Bool_t ExistInTree() const; - virtual TString GetFormatName() const { return "NicaGlobalMCEvent"; }; - virtual NicaEvent* GetNewEvent() const; - virtual ~NicaCbmGlobalMCEvent(); - ClassDef(NicaCbmGlobalMCEvent, 1) -}; - -#endif /* NICABMNGLOBALMCEVENT_H_ */ diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/format/full/NicaCbmEvent.cxx b/analysis/PWGC2F/femtoscopy/nicafemto/format/full/NicaCbmEvent.cxx deleted file mode 100644 index 615e31038749a2b189801ad5af82ac98e4ea2155..0000000000000000000000000000000000000000 --- a/analysis/PWGC2F/femtoscopy/nicafemto/format/full/NicaCbmEvent.cxx +++ /dev/null @@ -1,145 +0,0 @@ -/* - * NicaCbmMatcheEvent.cxx - * - * Created on: 11 lip 2019 - * Author: Daniel Wielanek - * E-mail: daniel.wielanek@gmail.com - * Warsaw University of Technology, Faculty of Physics - */ -#include "NicaCbmEvent.h" -#include "CbmMuchTrack.h" -#include "CbmRichRing.h" -#include "CbmStsTrack.h" -#include "CbmTofHit.h" -#include "CbmTrdTrack.h" -#include "NicaCbmEventInterface.h" -#include "NicaCbmTrack.h" -NicaCbmEvent::NicaCbmEvent(NicaCbmSetup mode) - : NicaCbmGlobalEvent("NicaCbmTrack") - , fMode(mode) - , fTrdTracks(NULL) - , fRichRings(NULL) - , fMuchTracks(NULL) { - fStsTracks = new NicaTrackClones("CbmStsTrack", "", ""); - fTofHits = new NicaTrackClones("CbmTofHit", "", ""); - - switch (fMode) { - case NicaCbmSetup::kSis100Electron: - fRichRings = new NicaTrackClones("CbmRichRing", "", ""); - fTrdTracks = new NicaTrackClones("CbmTrdTrack", "", ""); - break; - case NicaCbmSetup::kSis100Hadron: - fTrdTracks = new NicaTrackClones("CbmTrdTrack", "", ""); - break; - case NicaCbmSetup::kSis100Muon: - fMuchTracks = new NicaTrackClones("CbmMuchTrack", "", ""); - fTrdTracks = new NicaTrackClones("CbmTrdTrack", "", ""); - break; - case NicaCbmSetup::kSis100Mini: break; - } -} - -void NicaCbmEvent::ShallowCopyTracks(NicaEvent* event) { - NicaCbmEvent* ev = (NicaCbmEvent*) event; - fStsTracks->CopyFrom<CbmStsTrack>(ev->fStsTracks->GetArray()); - fTofHits->CopyFrom<CbmTofHit>(ev->fTofHits->GetArray()); - switch (fMode) { - case NicaCbmSetup::kSis100Electron: - fTrdTracks->CopyFrom<CbmTrdTrack>(ev->fTrdTracks->GetArray()); - fRichRings->CopyFrom<CbmRichRing>(ev->fRichRings->GetArray()); - break; - case NicaCbmSetup::kSis100Hadron: - fTrdTracks->CopyFrom<CbmTrdTrack>(ev->fTrdTracks->GetArray()); - break; - case NicaCbmSetup::kSis100Muon: - fMuchTracks->CopyFrom<CbmMuchTrack>(ev->fMuchTracks->GetArray()); - fTrdTracks->CopyFrom<CbmTrdTrack>(ev->fTrdTracks->GetArray()); - break; - case NicaCbmSetup::kSis100Mini: break; - } - NicaCbmGlobalEvent::ShallowCopyTracks(event); -} - -void NicaCbmEvent::ShallowCopyEvent(NicaEvent* event) { - NicaCbmGlobalEvent::ShallowCopyEvent(event); -} - -void NicaCbmEvent::CreateSource() { - fSource = new NicaCbmEventInterface(fMode); -} - -void NicaCbmEvent::Update() { - NicaCbmEventInterface* interface = (NicaCbmEventInterface*) fSource; - fStsTracks->CopyFrom<CbmStsTrack>(interface->fStsTracks->GetArray()); - fTofHits->CopyFrom<CbmTofHit>(interface->fTofHits->GetArray()); - switch (fMode) { - case NicaCbmSetup::kSis100Electron: - fTrdTracks->CopyFrom<CbmTrdTrack>(interface->fTrdTracks->GetArray()); - fRichRings->CopyFrom<CbmRichRing>(interface->fRichRings->GetArray()); - break; - case NicaCbmSetup::kSis100Hadron: - fTrdTracks->CopyFrom<CbmTrdTrack>(interface->fTrdTracks->GetArray()); - break; - case NicaCbmSetup::kSis100Muon: - fTrdTracks->CopyFrom<CbmTrdTrack>(interface->fTrdTracks->GetArray()); - fMuchTracks->CopyFrom<CbmMuchTrack>(interface->fMuchTracks->GetArray()); - break; - case NicaCbmSetup::kSis100Mini: break; - } - NicaCbmGlobalEvent::Update(); -} - -TString NicaCbmEvent::GetFormatName() const { return "CbmEvent"; } - -NicaCbmEvent::NicaCbmEvent(TString classname, NicaCbmSetup mode) - : NicaCbmGlobalEvent(classname) - , fMode(mode) - , fRichRings(NULL) - , fMuchTracks(NULL) { - fStsTracks = new NicaTrackClones("CbmStsTrack", "StsTrack", "STS"); - fTofHits = new NicaTrackClones("CbmTofHit", "TofHit", "TOF"); - switch (fMode) { - case NicaCbmSetup::kSis100Electron: { - fTrdTracks = new NicaTrackClones("CbmTrdTrack", "TrdTrack", "TRD"); - fRichRings = new NicaTrackClones("CbmRichRing", "RichRing", ""); - } break; - case NicaCbmSetup::kSis100Hadron: - fTrdTracks = new NicaTrackClones("CbmTrdTrack", "TrdTrack", "TRD"); - break; - case NicaCbmSetup::kSis100Muon: { - fTrdTracks = new NicaTrackClones("CbmTrdTrack", "TrdTrack", "TRD"); - fMuchTracks = new NicaTrackClones("CbmMuchTrack", "MuchTrack", "MUCH"); - } break; - case NicaCbmSetup::kSis100Mini: { - - } break; - } -} - -Bool_t NicaCbmEvent::ExistInTree() const { - Bool_t exists = kFALSE; - switch (fMode) { - case NicaCbmSetup::kSis100Electron: - exists = CheckBranches(4, "StsTrack", "TofHit", "TrdTrack", "RichRing"); - break; - case NicaCbmSetup::kSis100Muon: - exists = CheckBranches(4, "StsTrack", "TofHit", "TrdTrack", "MuchTrack"); - break; - case NicaCbmSetup::kSis100Hadron: - exists = CheckBranches(3, "StsTrack", "TofHit", "TrdTrack"); - break; - case NicaCbmSetup::kSis100Mini: - exists = CheckBranches(2, "StsTrack", "TofHit"); - break; - } - if (exists == kFALSE) return kFALSE; - return NicaCbmGlobalEvent::ExistInTree(); -} - -NicaCbmEvent::~NicaCbmEvent() { - delete fStsTracks; - delete fTofHits; - if (fTrdTracks) delete fTrdTracks; - if (fRichRings) delete fRichRings; - if (fMuchTracks) delete fMuchTracks; -} diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/format/full/NicaCbmEvent.h b/analysis/PWGC2F/femtoscopy/nicafemto/format/full/NicaCbmEvent.h deleted file mode 100644 index 04f584dabb8e6477bab256c815f3d56031f387af..0000000000000000000000000000000000000000 --- a/analysis/PWGC2F/femtoscopy/nicafemto/format/full/NicaCbmEvent.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * NicaCbmMatcheEvent.h - * - * Created on: 11 lip 2019 - * Author: Daniel Wielanek - * E-mail: daniel.wielanek@gmail.com - * Warsaw University of Technology, Faculty of Physics - */ -#ifndef NICACBMMATCHEEVENT_H_ -#define NICACBMMATCHEEVENT_H_ - -#include "CbmDetectorID.h" -#include "NicaCbmGlobalEvent.h" -#include "NicaTrackClones.h" -class NicaCbmEvent : public NicaCbmGlobalEvent { -public: -protected: - NicaCbmSetup fMode; - NicaTrackClones* fStsTracks; - NicaTrackClones* fTrdTracks; - NicaTrackClones* fTofHits; - NicaTrackClones* fRichRings; - NicaTrackClones* fMuchTracks; - virtual void ShallowCopyTracks(NicaEvent* event); - virtual void ShallowCopyEvent(NicaEvent* event); - virtual void CreateSource(); - NicaCbmEvent(TString classname, NicaCbmSetup mode); - -public: - NicaCbmEvent(NicaCbmSetup mode = NicaCbmSetup::kSis100Hadron); - NicaCbmSetup GetMode() const { return fMode; } - virtual Bool_t ExistInTree() const; - NicaTrackClones* GetStsTracks() const { return fStsTracks; } - NicaTrackClones* GetTofHits() const { return fTofHits; } - NicaTrackClones* GetTrdTracks() const { return fTrdTracks; } - NicaTrackClones* GetRichRings() const { return fRichRings; }; - NicaTrackClones* GetMuchTracks() const { return fMuchTracks; }; - virtual void Update(); - virtual TString GetFormatName() const; - virtual NicaEvent* GetNewEvent() const { return new NicaCbmEvent(fMode); }; - virtual ~NicaCbmEvent(); - ClassDef(NicaCbmEvent, 1) -}; - -#endif /* NICACBMMATCHEEVENT_H_ */ diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/format/full/NicaCbmEventInterface.cxx b/analysis/PWGC2F/femtoscopy/nicafemto/format/full/NicaCbmEventInterface.cxx deleted file mode 100644 index 85b019fb205dcb65613d3f920ca1527e8253df46..0000000000000000000000000000000000000000 --- a/analysis/PWGC2F/femtoscopy/nicafemto/format/full/NicaCbmEventInterface.cxx +++ /dev/null @@ -1,180 +0,0 @@ -/* - * NicaCbmMatchedEventInterface.cxx - * - * Created on: 11 lip 2019 - * Author: Daniel Wielanek - * E-mail: daniel.wielanek@gmail.com - * Warsaw University of Technology, Faculty of Physics - */ - -#include "NicaCbmEventInterface.h" - -#include "CbmGlobalTrack.h" -#include "CbmLink.h" -#include "CbmMuchTrack.h" -#include "CbmRichRing.h" -#include "CbmStsTrack.h" -#include "CbmTofHit.h" -#include "CbmTrdTrack.h" -#include "NicaCbmEvent.h" -#include "NicaCbmTrack.h" -#include "NicaCbmTrackInterface.h" -#include "NicaTrackClones.h" -#include <FairRootManager.h> -#include <RtypesCore.h> -#include <TClonesArray.h> - -NicaCbmEventInterface::NicaCbmEventInterface(NicaCbmSetup mode) - : fMode(mode), fTrdTracks(NULL), fMuchTracks(NULL), fRichRings(NULL) { - fStsTracks = new NicaTrackClones("CbmStsTrack", "StsTrack", "STS"); - fTofHits = new NicaTrackClones("CbmTofHit", "TofHit", "TOF"); - switch (fMode) { - case NicaCbmSetup::kSis100Electron: { - fTrdTracks = new NicaTrackClones("CbmTrdTrack", "TrdTrack", "TRD"); - fRichRings = new NicaTrackClones("CbmRichRing", "RichRing", ""); - } break; - case NicaCbmSetup::kSis100Hadron: { - fTrdTracks = new NicaTrackClones("CbmTrdTrack", "TrdTrack", "TRD"); - } break; - case NicaCbmSetup::kSis100Muon: { - fTrdTracks = new NicaTrackClones("CbmTrdTrack", "TrdTrack", "TRD"); - fMuchTracks = new NicaTrackClones("CbmMuchTrack", "MuchTrack", "MUCH"); - } break; - case NicaCbmSetup::kSis100Mini: { - - } break; - } -} - -void NicaCbmEventInterface::ConnectToTree() { - NicaCbmGlobalEventInterface::ConnectToTree(); - fStsTracks->GetFromTree(); - fTofHits->GetFromTree(); - switch (fMode) { - case NicaCbmSetup::kSis100Electron: { - fTrdTracks->GetFromTree(); - fRichRings->GetFromTree(); - } break; - case NicaCbmSetup::kSis100Hadron: { - fTrdTracks->GetFromTree(); - } break; - case NicaCbmSetup::kSis100Muon: { - fTrdTracks->GetFromTree(); - fMuchTracks->GetFromTree(); - } break; - case NicaCbmSetup::kSis100Mini: { - - } break; - } -} - -void NicaCbmEventInterface::Register(Bool_t write) { - NicaCbmGlobalEventInterface::Register(write); - fStsTracks->Register(write); - fTofHits->Register(write); - switch (fMode) { - case NicaCbmSetup::kSis100Electron: { - fTrdTracks->Register(write); - fRichRings->Register(write); - } break; - case NicaCbmSetup::kSis100Hadron: fTrdTracks->Register(write); break; - case NicaCbmSetup::kSis100Muon: { - fTrdTracks->Register(write); - fMuchTracks->Register(write); - } break; - case NicaCbmSetup::kSis100Mini: { - - } break; - } -} - -void NicaCbmEventInterface::CopyData(NicaEventInterface* s) { - NicaCbmGlobalEventInterface::CopyData(s); - NicaCbmEventInterface* interface = (NicaCbmEventInterface*) s; - fStsTracks->CopyFrom<CbmStsTrack>(interface->fStsTracks->GetArray()); - fTofHits->CopyFrom<CbmTofHit>(interface->fTofHits->GetArray()); - - switch (fMode) { - case NicaCbmSetup::kSis100Electron: { - fTrdTracks->CopyFrom<CbmTrdTrack>(interface->fTrdTracks->GetArray()); - fRichRings->CopyFrom<CbmRichRing>(interface->fRichRings->GetArray()); - } break; - case NicaCbmSetup::kSis100Hadron: - fTrdTracks->CopyFrom<CbmTrdTrack>(interface->fTrdTracks->GetArray()); - break; - case NicaCbmSetup::kSis100Muon: { - fTrdTracks->CopyFrom<CbmTrdTrack>(interface->fTrdTracks->GetArray()); - fMuchTracks->CopyFrom<CbmMuchTrack>(interface->fMuchTracks->GetArray()); - } break; - case NicaCbmSetup::kSis100Mini: { - - } break; - } -} - -void NicaCbmEventInterface::Compress(Int_t* map, Int_t map_size) { - NicaCbmGlobalEventInterface::Compress(map, map_size); - //TODO make compression -} - -void NicaCbmEventInterface::CopyAndCompress(NicaEventInterface* s, - Int_t* map, - Int_t map_size) { - NicaCbmGlobalEventInterface::CopyAndCompress(s, map, map_size); - NicaCbmEventInterface* interface = (NicaCbmEventInterface*) s; - //TODO compression - fStsTracks->CopyFrom<CbmStsTrack>(interface->fStsTracks->GetArray()); - fTofHits->CopyFrom<CbmTofHit>(interface->fTofHits->GetArray()); - if (fTrdTracks) - fTrdTracks->CopyFrom<CbmTrdTrack>(interface->fTrdTracks->GetArray()); - if (fRichRings) - fRichRings->CopyFrom<CbmRichRing>(interface->fRichRings->GetArray()); - if (fMuchTracks) - fMuchTracks->CopyFrom<CbmMuchTrack>(interface->fMuchTracks->GetArray()); -} - -void NicaCbmEventInterface::FillTrackInterface(NicaTrackInterface* track, - Int_t index) { - NicaCbmTrackInterface* cbm_track = (NicaCbmTrackInterface*) track; - cbm_track->SetRawTrack(fTracks->UncheckedAt(index)); - CbmGlobalTrack* glob = (CbmGlobalTrack*) fTracks->UncheckedAt(index); - cbm_track->SetStsTrack( - (CbmStsTrack*) fStsTracks->UncheckedAt(glob->GetStsTrackIndex())); - cbm_track->SetTofHit( - (CbmTofHit*) fTofHits->UncheckedAt(glob->GetTofHitIndex())); - switch (fMode) { - case NicaCbmSetup::kSis100Electron: { - cbm_track->SetTrdTrack( - (CbmTrdTrack*) fTrdTracks->UncheckedAt(glob->GetTrdTrackIndex())); - cbm_track->SetRichRing( - (CbmRichRing*) fRichRings->UncheckedAt(glob->GetRichRingIndex())); - } break; - case NicaCbmSetup::kSis100Hadron: - cbm_track->SetTrdTrack( - (CbmTrdTrack*) fTrdTracks->UncheckedAt(glob->GetTrdTrackIndex())); - break; - case NicaCbmSetup::kSis100Muon: { - cbm_track->SetTrdTrack( - (CbmTrdTrack*) fTrdTracks->UncheckedAt(glob->GetTrdTrackIndex())); - cbm_track->SetMuchTrack( - (CbmMuchTrack*) fMuchTracks->UncheckedAt(glob->GetMuchTrackIndex())); - } break; - case NicaCbmSetup::kSis100Mini: { - - } break; - } -} - -TObject* NicaCbmEventInterface::GetRawTrackPointer(Int_t index) const { - return NicaCbmGlobalEventInterface::GetRawTrackPointer(index); -} - -NicaCbmEventInterface::~NicaCbmEventInterface() { - if (CanDeleteEvent()) { - if (fStsTracks) delete fStsTracks; - if (fTofHits) delete fTofHits; - if (fTrdTracks) delete fTrdTracks; - if (fRichRings) delete fRichRings; - if (fMuchTracks) delete fMuchTracks; - } -} diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/format/full/NicaCbmEventInterface.h b/analysis/PWGC2F/femtoscopy/nicafemto/format/full/NicaCbmEventInterface.h deleted file mode 100644 index 1232fa045eeac41126e1ac7c7d97fe099d35476f..0000000000000000000000000000000000000000 --- a/analysis/PWGC2F/femtoscopy/nicafemto/format/full/NicaCbmEventInterface.h +++ /dev/null @@ -1,57 +0,0 @@ -/* - * NicaCbmMatchedEventInterface.h - * - * Created on: 11 lip 2019 - * Author: Daniel Wielanek - * E-mail: daniel.wielanek@gmail.com - * Warsaw University of Technology, Faculty of Physics - */ -#ifndef NICACBMEVENTINTERFACE_H_ -#define NICACBMEVENTINTERFACE_H_ - -#include "CbmDefs.h" -#include "CbmDetectorID.h" -#include "NicaCbmGlobalEvent.h" -#include "NicaCbmGlobalEventInterface.h" -#include "NicaCbmTrackInterface.h" -#include "NicaTrackClones.h" - -class NicaCbmEvent; -class NicaCbmEventInterface : public NicaCbmGlobalEventInterface { -public: - friend class NicaCbmEvent; - -protected: - const NicaCbmSetup fMode; - NicaTrackClones* fStsTracks; - NicaTrackClones* fTrdTracks; - NicaTrackClones* fMuchTracks; - NicaTrackClones* fTofHits; - NicaTrackClones* fRichRings; - virtual void ConnectToTree(); - void Register(Bool_t write); - -public: - NicaCbmEventInterface(NicaCbmSetup mode = NicaCbmSetup::kSis100Electron); - NicaTrackClones* GetStsTracks() const { return fStsTracks; } - NicaTrackClones* GetTrdTracks() const { return fTrdTracks; } - NicaTrackClones* GetMuchTracks() const { return fMuchTracks; } - NicaTrackClones* GetTofHits() const { return fTofHits; } - NicaTrackClones* GetRichRings() const { return fRichRings; } - NicaCbmSetup GetMode() const { return fMode; }; - virtual void CopyData(NicaEventInterface* s); - virtual void Compress(Int_t* map, Int_t map_size); - virtual void - CopyAndCompress(NicaEventInterface* s, Int_t* map, Int_t map_size); - virtual void FillTrackInterface(NicaTrackInterface* track, Int_t index); - virtual NicaTrackInterface* GetTrackInterface() const { - return new NicaCbmTrackInterface(); - } - virtual TObject* GetRawTrackPointer(Int_t index) const; - /** GETTERS AND SETTERS **/ - virtual ~NicaCbmEventInterface(); - ClassDef(NicaCbmEventInterface, 1) -}; - - -#endif /* NICACBMEVENTINTERFACE_H_ */ diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/format/full/NicaCbmTrack.cxx b/analysis/PWGC2F/femtoscopy/nicafemto/format/full/NicaCbmTrack.cxx deleted file mode 100644 index 3f33aaba3bb90b14fb97c9e17b8e126a0b5ddf3b..0000000000000000000000000000000000000000 --- a/analysis/PWGC2F/femtoscopy/nicafemto/format/full/NicaCbmTrack.cxx +++ /dev/null @@ -1,125 +0,0 @@ -/* - * NicaCbmTrack.cxx - * - * Created on: 11 lip 2019 - * Author: Daniel Wielanek - * E-mail: daniel.wielanek@gmail.com - * Warsaw University of Technology, Faculty of Physics - */ -#include "NicaCbmTrack.h" -#include "NicaCbmEvent.h" -#include "NicaCbmEventInterface.h" -#include "NicaTrackClones.h" - -NicaCbmTrack::NicaCbmTrack() - : fStsTrack(NULL) - , fTofHit(NULL) - , fTrdTrack(NULL) - , fRichRing(NULL) - , fMuchTrack(NULL) - , fTofTrack(new NicaToFTrack()) - , fStsTrackIndex(-1) - , fTofTrackIndex(-1) - , fTrdTrackIndex(-1) - , fRichRingIndex(-1) - , fMuchTrackIndex(-1) { - fTofTrack->SetFlag(-1); -} - -TObject* NicaCbmTrack::GetDetTrack(const UInt_t detID) const { - if (detID == NicaDetectorID::kTOF) { return fTofTrack; } - return nullptr; -} - -NicaCbmTrack::~NicaCbmTrack() { delete fTofTrack; } - -void NicaCbmTrack::Update(CbmGlobalTrack* track, - NicaCbmGlobalEventInterface* interface) { - NicaCbmEventInterface* evint = (NicaCbmEventInterface*) interface; - NicaCbmGlobalTrack::Update(track, interface); - fStsTrackIndex = track->GetStsTrackIndex(); - fTofTrackIndex = track->GetTofHitIndex(); - NicaCbmSetup mode = evint->GetMode(); - if (mode != NicaCbmSetup::kSis100Mini) - fTrdTrackIndex = track->GetTrdTrackIndex(); - if (mode == NicaCbmSetup::kSis100Electron) - fRichRingIndex = track->GetRichRingIndex(); - else if (mode == NicaCbmSetup::kSis100Muon) - fMuchTrackIndex = track->GetMuchTrackIndex(); - if (fStsTrackIndex >= 0) - SetStsTrack( - (CbmStsTrack*) evint->GetStsTracks()->UncheckedAt(fStsTrackIndex)); - else - SetStsTrack(NULL); - if (fTofTrackIndex >= 0) { - CbmTofHit* hit = - (CbmTofHit*) evint->GetTofHits()->UncheckedAt(fTofTrackIndex); - SetTofHit(hit); - Double_t t = hit->GetTime(); - Double_t beta = GetTrackLenght() / t / (29.9792458); - Double_t p = GetMomentum()->P(); - Double_t m2 = p * p * (1. / beta / beta - 1.); - fTofTrack->SetMass2(m2); - fTofTrack->SetBeta(beta); - fTofTrack->SetFlag(1); - if (m2 > 0) { - SetMass(TMath::Sqrt(m2)); - } else { - SetMass(TMath::Sqrt(-m2)); - } - } else { - fTofTrack->SetFlag(0); - fTofTrack->SetMass2(-100); - fTofTrack->SetBeta(-1); - SetTofHit(NULL); - SetMass(-2); - } - if (fTrdTrackIndex >= 0) - SetTrdTrack( - (CbmTrdTrack*) evint->GetTrdTracks()->UncheckedAt(fTrdTrackIndex)); - else - SetTrdTrack(NULL); - if (fRichRingIndex >= 0) - SetRichRing( - (CbmRichRing*) evint->GetRichRings()->UncheckedAt(fRichRingIndex)); - else - SetRichRing(NULL); - if (fMuchTrackIndex >= 0) - SetMuchTrack( - (CbmMuchTrack*) evint->GetMuchTracks()->UncheckedAt(fMuchTrackIndex)); - else - SetMuchTrack(NULL); -} - -void NicaCbmTrack::CopyData(NicaTrack* track) { - NicaCbmGlobalTrack::CopyData(track); - NicaCbmTrack* other = (NicaCbmTrack*) track; - fStsTrackIndex = other->fStsTrackIndex; - fTofTrackIndex = other->fTofTrackIndex; - fTrdTrackIndex = other->fTrdTrackIndex; - fRichRingIndex = other->fRichRingIndex; - fMuchTrackIndex = other->fMuchTrackIndex; - NicaCbmEvent* ev = (NicaCbmEvent*) GetEvent(); - if (fStsTrackIndex >= 0) - fStsTrack = (CbmStsTrack*) ev->GetStsTracks()->UncheckedAt(fStsTrackIndex); - else - fStsTrack = NULL; - if (fTofTrackIndex >= 0) - fTofHit = (CbmTofHit*) ev->GetTofHits()->UncheckedAt(fTofTrackIndex); - else - fTofHit = NULL; - if (fTrdTrackIndex >= 0) - fTrdTrack = (CbmTrdTrack*) ev->GetTrdTracks()->UncheckedAt(fTrdTrackIndex); - else - fTrdTrack = NULL; - if (fRichRingIndex >= 0) - fRichRing = (CbmRichRing*) ev->GetRichRings()->UncheckedAt(fRichRingIndex); - else - fRichRing = NULL; - if (fMuchTrackIndex >= 0) - fMuchTrack = - (CbmMuchTrack*) ev->GetMuchTracks()->UncheckedAt(fMuchTrackIndex); - else - fMuchTrack = NULL; - *fTofTrack = *other->fTofTrack; -} diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/format/full/NicaCbmTrack.h b/analysis/PWGC2F/femtoscopy/nicafemto/format/full/NicaCbmTrack.h deleted file mode 100644 index a862ad74644020f45e7353c7693a827c9587a3e1..0000000000000000000000000000000000000000 --- a/analysis/PWGC2F/femtoscopy/nicafemto/format/full/NicaCbmTrack.h +++ /dev/null @@ -1,64 +0,0 @@ -/* - * NicaCbmTrack.h - * - * Created on: 11 lip 2019 - * Author: Daniel Wielanek - * E-mail: daniel.wielanek@gmail.com - * Warsaw University of Technology, Faculty of Physics - */ -#ifndef NICACBMTRACK_H_ -#define NICACBMTRACK_H_ - -#include "CbmMuchTrack.h" -#include "CbmRichRing.h" -#include "CbmStsTrack.h" -#include "CbmTofHit.h" -#include "CbmTofTrack.h" -#include "CbmTrdTrack.h" -#include "NicaCbmGlobalTrack.h" -#include "NicaToFTrack.h" -class NicaCbmTrack : public NicaCbmGlobalTrack { - CbmStsTrack* fStsTrack; - CbmTofHit* fTofHit; - CbmTrdTrack* fTrdTrack; - CbmRichRing* fRichRing; - CbmMuchTrack* fMuchTrack; - NicaToFTrack* fTofTrack; - Int_t fStsTrackIndex; - Int_t fTofTrackIndex; - Int_t fTrdTrackIndex; - Int_t fRichRingIndex; - Int_t fMuchTrackIndex; - -public: - NicaCbmTrack(); - virtual void Update(CbmGlobalTrack* track, - NicaCbmGlobalEventInterface* interface); - virtual void CopyData(NicaTrack* track); - CbmStsTrack* GetStsTrack() const { return fStsTrack; } - CbmTofHit* GetTofHit() const { return fTofHit; } - CbmTrdTrack* GetTrdTrack() const { return fTrdTrack; } - CbmRichRing* GetRichRing() const { return fRichRing; }; - CbmMuchTrack* GetMuchTrack() const { return fMuchTrack; }; - Int_t GetStsTrackIndex() const { return fStsTrackIndex; } - Int_t GetTofHitIndex() const { return fTofTrackIndex; } - Int_t GetTrdTrackIndex() const { return fTrdTrackIndex; } - Int_t GetRichRingIndex() const { return fRichRingIndex; }; - Int_t GetMuchIndex() const { return fMuchTrackIndex; }; - void SetStsTrackIndex(Int_t stsTrackId) { fStsTrackIndex = stsTrackId; } - void SetTofTrackIndex(Int_t tofTrackId) { fTofTrackIndex = tofTrackId; } - void SetTrdTrackIndex(Int_t trdTrackId) { fTrdTrackIndex = trdTrackId; } - void SetRichRingIndex(Int_t no) { fRichRingIndex = no; }; - void SetMuchIndex(Int_t id) { fMuchTrackIndex = id; }; - void SetStsTrack(CbmStsTrack* stsTrack) { fStsTrack = stsTrack; } - void SetTofHit(CbmTofHit* tofTrack) { fTofHit = tofTrack; } - void SetTrdTrack(CbmTrdTrack* trdTrack) { fTrdTrack = trdTrack; } - void SetRichRing(CbmRichRing* tr) { fRichRing = tr; }; - void SetMuchTrack(CbmMuchTrack* tr) { fMuchTrack = tr; }; - /** curently return only pointer to ToF **/ - virtual TObject* GetDetTrack(const UInt_t detID) const; - virtual ~NicaCbmTrack(); - ClassDef(NicaCbmTrack, 1) -}; - -#endif /* NICACBMTRACK_H_ */ diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/format/full/NicaCbmTrackInterface.h b/analysis/PWGC2F/femtoscopy/nicafemto/format/full/NicaCbmTrackInterface.h deleted file mode 100644 index 46d0633556edaa4702619d06973a1e71cdeb9124..0000000000000000000000000000000000000000 --- a/analysis/PWGC2F/femtoscopy/nicafemto/format/full/NicaCbmTrackInterface.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * NicaCbmTrackInterface.h - * - * Created on: 11 lip 2019 - * Author: Daniel Wielanek - * E-mail: daniel.wielanek@gmail.com - * Warsaw University of Technology, Faculty of Physics - */ -#ifndef NICACBMTRACKINTERFACE_H_ -#define NICACBMTRACKINTERFACE_H_ - -#include "CbmLink.h" -#include "CbmMuchTrack.h" -#include "CbmRichRing.h" -#include "CbmStsTrack.h" -#include "CbmTofHit.h" -#include "CbmTofTrack.h" -#include "CbmTrdTrack.h" -#include "NicaCbmGlobalTrack.h" -#include "NicaCbmGlobalTrackInterface.h" - -class NicaCbmTrackInterface : public NicaCbmGlobalTrackInterface { - CbmStsTrack* fStsTrack; - CbmTofHit* fTofTrack; - CbmTrdTrack* fTrdTrack; - CbmRichRing* fRichRing; - CbmMuchTrack* fMuchTrack; - -public: - NicaCbmTrackInterface(); - void SetStsTrack(CbmStsTrack* tr) { fStsTrack = tr; }; - void SetTofHit(CbmTofHit* tr) { fTofTrack = tr; } - void SetTrdTrack(CbmTrdTrack* tr) { fTrdTrack = tr; }; - void SetRichRing(CbmRichRing* tr) { fRichRing = tr; }; - void SetMuchTrack(CbmMuchTrack* tr) { fMuchTrack = tr; } - CbmStsTrack* GetStsTrack() const { return fStsTrack; }; - CbmTofHit* GetTofHit() const { return fTofTrack; }; - CbmRichRing* GetRichRing() const { return fRichRing; }; - CbmMuchTrack* GetMuchTrack() const { return fMuchTrack; }; - CbmTrdTrack* GetTrdTrack() const { return fTrdTrack; } - virtual ~NicaCbmTrackInterface(); - ClassDef(NicaCbmTrackInterface, 1) -}; - -#endif /* NICACBMTRACKINTERFACE_H_ */ diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/format/global/NicaCbmGlobalEvent.cxx b/analysis/PWGC2F/femtoscopy/nicafemto/format/global/NicaCbmGlobalEvent.cxx deleted file mode 100644 index 5c52be0e97fb1ebf48a584626218730c77c8f442..0000000000000000000000000000000000000000 --- a/analysis/PWGC2F/femtoscopy/nicafemto/format/global/NicaCbmGlobalEvent.cxx +++ /dev/null @@ -1,70 +0,0 @@ -/* - * NicaCbmEvent.cxx - * - * Created on: 3 gru 2018 - * Author: Daniel Wielanek - * E-mail: daniel.wielanek@gmail.com - * Warsaw University of Technology, Faculty of Physics - */ -#include "NicaCbmGlobalEvent.h" -#include "NicaCbmGlobalEventInterface.h" -#include "NicaCbmGlobalTrack.h" -#include "NicaEvent.h" - -NicaCbmGlobalEvent::NicaCbmGlobalEvent() : NicaExpEvent("NicaCbmGlobalTrack") {} - -void NicaCbmGlobalEvent::ShallowCopyTracks(NicaEvent* event) { - fTracks->Clear(); - fTotalTracksNo = event->GetTotalTrackNo(); - fTracks->ExpandCreateFast(fTotalTracksNo); - NicaCbmGlobalEvent* Event = (NicaCbmGlobalEvent*) event; - for (int i = 0; i < fTotalTracksNo; i++) { - NicaCbmGlobalTrack* from = - (NicaCbmGlobalTrack*) Event->fTracks->UncheckedAt(i); - NicaCbmGlobalTrack* to = (NicaCbmGlobalTrack*) fTracks->UncheckedAt(i); - NicaEvent* temp_event = from->GetEvent(); - from->SetEvent(this); - to->CopyData(from); - from->SetEvent(temp_event); - } -} - -void NicaCbmGlobalEvent::ShallowCopyEvent(NicaEvent* event) { - NicaExpEvent::ShallowCopyEvent(event); -} - -void NicaCbmGlobalEvent::CreateSource() { - fSource = new NicaCbmGlobalEventInterface(); -} - -NicaCbmGlobalEvent::NicaCbmGlobalEvent(const NicaCbmGlobalEvent& other) - : NicaExpEvent(other) { - if (other.fSource) CreateSource(); -} - -void NicaCbmGlobalEvent::Update() { - fTracks->Clear(); - NicaCbmGlobalEventInterface* interface = - (NicaCbmGlobalEventInterface*) fSource; - fTotalTracksNo = interface->GetTotalTrackNo(); - TLorentzVector start = interface->GetVertex(); - fVertex->SetXYZT(start.X(), start.Y(), start.Z(), start.T()); - fTracks->ExpandCreateFast(fTotalTracksNo); - for (int i = 0; i < fTotalTracksNo; i++) { - CbmGlobalTrack* tr_cbm = (CbmGlobalTrack*) interface->GetRawTrackPointer(i); - NicaCbmGlobalTrack* tr_nica = (NicaCbmGlobalTrack*) fTracks->UncheckedAt(i); - tr_nica->SetEvent(this); - tr_nica->Update(tr_cbm, interface); - tr_nica->GetLink()->ClearLinks(); - tr_nica->GetLink()->SetLink(0, i); - } -} - -NicaCbmGlobalEvent::NicaCbmGlobalEvent(TString classname) - : NicaExpEvent(classname) {} - -NicaCbmGlobalEvent::~NicaCbmGlobalEvent() {} - -Bool_t NicaCbmGlobalEvent::ExistInTree() const { - return CheckBranches(2, "PrimaryVertex.", "GlobalTrack"); -} diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/format/global/NicaCbmGlobalEvent.h b/analysis/PWGC2F/femtoscopy/nicafemto/format/global/NicaCbmGlobalEvent.h deleted file mode 100644 index 64d0ec6e8bb729391a981507b3ac23f343787720..0000000000000000000000000000000000000000 --- a/analysis/PWGC2F/femtoscopy/nicafemto/format/global/NicaCbmGlobalEvent.h +++ /dev/null @@ -1,31 +0,0 @@ -/* - * NicaCbmEvent.h - * - * Created on: 3 gru 2018 - * Author: Daniel Wielanek - * E-mail: daniel.wielanek@gmail.com - * Warsaw University of Technology, Faculty of Physics - */ -#ifndef NICACBMGLOBEVENT_H_ -#define NICACBMGLOBEVENT_H_ - -#include "NicaExpEvent.h" - -class NicaCbmGlobalEvent : public NicaExpEvent { -protected: - virtual void ShallowCopyTracks(NicaEvent* event); - virtual void ShallowCopyEvent(NicaEvent* event); - virtual void CreateSource(); - NicaCbmGlobalEvent(TString classname); - -public: - NicaCbmGlobalEvent(); - NicaCbmGlobalEvent(const NicaCbmGlobalEvent& other); - virtual void Update(); - virtual Bool_t ExistInTree() const; - virtual TString GetFormatName() const { return "CbmGlobalEvent"; }; - virtual ~NicaCbmGlobalEvent(); - ClassDef(NicaCbmGlobalEvent, 1) -}; - -#endif /* NICACBMGLOBEVENT_H_ */ diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/format/global/NicaCbmGlobalEventInterface.cxx b/analysis/PWGC2F/femtoscopy/nicafemto/format/global/NicaCbmGlobalEventInterface.cxx deleted file mode 100644 index 482b08bf5ca818bee52e7385572ed591a9161e06..0000000000000000000000000000000000000000 --- a/analysis/PWGC2F/femtoscopy/nicafemto/format/global/NicaCbmGlobalEventInterface.cxx +++ /dev/null @@ -1,88 +0,0 @@ -/* - * NicaCbmEventInterface.cxx - * - * Created on: 3 gru 2018 - * Author: Daniel Wielanek - * E-mail: daniel.wielanek@gmail.com - * Warsaw University of Technology, Faculty of Physics - */ - -#include "NicaCbmGlobalEventInterface.h" - -#include <FairRootManager.h> -#include <RtypesCore.h> -#include <TObjArray.h> -#include <stddef.h> - -#include "CbmGlobalTrack.h" -#include "CbmStsTrack.h" -#include "CbmTofTrack.h" - -NicaCbmGlobalEventInterface::NicaCbmGlobalEventInterface() - : fVertex(NULL), fTracks(NULL) { - fVertex = new CbmVertex(); - fTracks = new NicaTrackClones("CbmGlobalTrack", "GlobalTrack", ""); -} - -void NicaCbmGlobalEventInterface::ConnectToTree() { - FairRootManager* manager = FairRootManager::Instance(); - if (CanDeleteEvent()) { - delete fVertex; - fTracks->DeleteClones(); - } - fVertex = (CbmVertex*) manager->GetObject("PrimaryVertex."); - fTracks->GetFromTree(); -} - -void NicaCbmGlobalEventInterface::Register(Bool_t write) { - FairRootManager* manager = FairRootManager::Instance(); - manager->Register("PrimaryVertex.", "PrimaryVertex.", fVertex, write); - fTracks->Register(write); -} - -void NicaCbmGlobalEventInterface::CopyData(NicaEventInterface* s) { - NicaCbmGlobalEventInterface* ev = (NicaCbmGlobalEventInterface*) s; - *fVertex = *ev->fVertex; - fTracks->CopyFrom<CbmGlobalTrack>(ev->fTracks->GetArray()); -} - -void NicaCbmGlobalEventInterface::Compress(Int_t* map, Int_t map_size) { - fTracks->Compress(map, map_size); -} - -void NicaCbmGlobalEventInterface::CopyAndCompress(NicaEventInterface* s, - Int_t* map, - Int_t map_size) { - NicaCbmGlobalEventInterface* ev = (NicaCbmGlobalEventInterface*) s; - *fVertex = *ev->fVertex; - fTracks->CopyCompress<CbmGlobalTrack>(ev->fTracks->GetArray(), map, map_size); -} - -void NicaCbmGlobalEventInterface::FillTrackInterface(NicaTrackInterface* track, - Int_t index) { - NicaCbmGlobalTrackInterface* cbm_track = (NicaCbmGlobalTrackInterface*) track; - cbm_track->SetRawTrack(fTracks->UncheckedAt(index)); -} - -Int_t NicaCbmGlobalEventInterface::GetTotalTrackNo() const { - return fTracks->GetEntriesFast(); -} - -TObject* NicaCbmGlobalEventInterface::GetRawTrackPointer(Int_t index) const { - return fTracks->UncheckedAt(index); -} - -TLorentzVector NicaCbmGlobalEventInterface::GetVertexError() const { - return TLorentzVector(0, 0, 0, 0); -} - -TLorentzVector NicaCbmGlobalEventInterface::GetVertex() const { - return TLorentzVector(fVertex->GetX(), fVertex->GetY(), fVertex->GetZ(), 0); -} - -NicaCbmGlobalEventInterface::~NicaCbmGlobalEventInterface() { - if (CanDeleteEvent()) { - if (fVertex) delete fVertex; - if (fTracks) delete fTracks; - } -} diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/format/global/NicaCbmGlobalEventInterface.h b/analysis/PWGC2F/femtoscopy/nicafemto/format/global/NicaCbmGlobalEventInterface.h deleted file mode 100644 index 52b6facd7a8727624b49a45c019d8897d4ba6f64..0000000000000000000000000000000000000000 --- a/analysis/PWGC2F/femtoscopy/nicafemto/format/global/NicaCbmGlobalEventInterface.h +++ /dev/null @@ -1,51 +0,0 @@ -/* - * NicaCbmEventInterface.h - * - * Created on: 3 gru 2018 - * Author: Daniel Wielanek - * E-mail: daniel.wielanek@gmail.com - * Warsaw University of Technology, Faculty of Physics - */ -#ifndef NICACBMGLOBALEVENTINTERFACE_H_ -#define NICACBMGLOBALEVENTINTERFACE_H_ - -#include "CbmVertex.h" -#include "NicaCbmGlobalTrackInterface.h" -#include "NicaExpEventInterface.h" -#include "NicaTrackClones.h" -#include "TClonesArray.h" - - -class NicaCbmGlobalEventInterface : public NicaExpEventInterface { -protected: - CbmVertex* fVertex; - NicaTrackClones* fTracks; - virtual void ConnectToTree(); - void Register(Bool_t write); - -public: - NicaCbmGlobalEventInterface(); - virtual void CopyData(NicaEventInterface* s); - virtual void Compress(Int_t* map, Int_t map_size); - virtual void - CopyAndCompress(NicaEventInterface* s, Int_t* map, Int_t map_size); - virtual void FillTrackInterface(NicaTrackInterface* track, Int_t index); - virtual Int_t GetTotalTrackNo() const; - virtual TObject* GetRawEventPointer() const { return fVertex; }; - virtual NicaTrackInterface* GetTrackInterface() const { - return new NicaCbmGlobalTrackInterface(); - } - virtual TObject* GetRawTrackPointer(Int_t index) const; - /** GETTERS AND SETTERS **/ - virtual void SetRunInfoId(Int_t /*i*/) {}; - virtual Int_t GetRunInfoId() const { return 0; }; - ; - virtual void SetMagneticField(TVector3 /*mag*/) const {}; - virtual TVector3 GetMagneticField() const { return TVector3(0, 0, 0); }; - virtual TLorentzVector GetVertexError() const; - virtual TLorentzVector GetVertex() const; - virtual ~NicaCbmGlobalEventInterface(); - ClassDef(NicaCbmGlobalEventInterface, 1) -}; - -#endif /* NICACBMGLOBALEVENTINTERFACE_H_ */ diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/format/global/NicaCbmGlobalTrack.cxx b/analysis/PWGC2F/femtoscopy/nicafemto/format/global/NicaCbmGlobalTrack.cxx deleted file mode 100644 index 22651ba279449b45bda04039cbd7f20e8fe52321..0000000000000000000000000000000000000000 --- a/analysis/PWGC2F/femtoscopy/nicafemto/format/global/NicaCbmGlobalTrack.cxx +++ /dev/null @@ -1,68 +0,0 @@ -/* - * NicaCbmTrack.cxx - * - * Created on: 3 gru 2018 - * Author: Daniel Wielanek - * E-mail: daniel.wielanek@gmail.com - * Warsaw University of Technology, Faculty of Physics - */ -#include "NicaCbmGlobalTrack.h" -#include "NicaCbmGlobalEventInterface.h" -#include "NicaExpEvent.h" - -NicaCbmGlobalTrack::NicaCbmGlobalTrack() - : fFirstPoint(new TVector3(0, 0, 0)), fLastPoint(new TVector3(0, 0, 0)) {} - -NicaCbmGlobalTrack::NicaCbmGlobalTrack(const NicaCbmGlobalTrack& other) - : NicaExpTrack(other) { - fFirstPoint = new TVector3(*other.fFirstPoint); - fLastPoint = new TVector3(*other.fLastPoint); - fHelix = other.fHelix; -} - -NicaCbmGlobalTrack& NicaCbmGlobalTrack:: -operator=(const NicaCbmGlobalTrack& other) { - if (this == &other) return *this; - NicaExpTrack::operator=(other); - *fFirstPoint = *other.fFirstPoint; - *fLastPoint = *other.fLastPoint; - fHelix = other.fHelix; - return *this; -} - -void NicaCbmGlobalTrack::Update(CbmGlobalTrack* track, - NicaCbmGlobalEventInterface* /*interface*/) { - SetChi2(track->GetChi2()); - SetTrackLenght(track->GetLength()); - const FairTrackParam* par = track->GetParamFirst(); - fFirstPoint->SetXYZ(par->GetX(), par->GetY(), par->GetZ()); - const FairTrackParam* par2 = track->GetParamLast(); - fLastPoint->SetXYZ(par2->GetX(), par2->GetY(), par2->GetZ()); - const CbmTrackParam* track_param = track->GetParamVertex(); - GetMomentum()->SetXYZM( - track_param->GetPx(), track_param->GetPy(), track_param->GetPz(), 0); - - const NicaExpEvent* ev = (NicaExpEvent*) GetEvent(); - fHelix.Build(track); - GetDCA()->SetXYZ(track_param->GetX() - ev->GetVertex()->X(), - track_param->GetY() - ev->GetVertex()->Y(), - track_param->GetZ() - ev->GetVertex()->Z()); - Double_t qp = track_param->GetQp(); - if (qp > 0) - SetCharge(1); - else - SetCharge(-1); -} - -void NicaCbmGlobalTrack::CopyData(NicaTrack* other) { - NicaExpTrack::CopyData(other); - NicaCbmGlobalTrack* track = (NicaCbmGlobalTrack*) other; - *fFirstPoint = *track->fFirstPoint; - *fLastPoint = *track->fLastPoint; - fHelix = track->fHelix; -} - -NicaCbmGlobalTrack::~NicaCbmGlobalTrack() { - delete fFirstPoint; - delete fLastPoint; -} diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/format/global/NicaCbmGlobalTrack.h b/analysis/PWGC2F/femtoscopy/nicafemto/format/global/NicaCbmGlobalTrack.h deleted file mode 100644 index 237ae36cade365d2ea2f45d71d7e95b52d013c9f..0000000000000000000000000000000000000000 --- a/analysis/PWGC2F/femtoscopy/nicafemto/format/global/NicaCbmGlobalTrack.h +++ /dev/null @@ -1,35 +0,0 @@ -/* - * NicaCbmTrack.h - * - * Created on: 3 gru 2018 - * Author: Daniel Wielanek - * E-mail: daniel.wielanek@gmail.com - * Warsaw University of Technology, Faculty of Physics - */ -#ifndef NICACBMGLOBTRACK_H_ -#define NICACBMGLOBTRACK_H_ - -#include "CbmGlobalTrack.h" -#include "CbmHelix.h" -#include "NicaCbmGlobalEventInterface.h" -#include "NicaExpTrack.h" -#include "NicaToFTrack.h" - -class NicaCbmGlobalTrackInterface; -class NicaCbmGlobalTrack : public NicaExpTrack { - TVector3 *fFirstPoint, *fLastPoint; - CbmHelix fHelix; - -public: - NicaCbmGlobalTrack(); - NicaCbmGlobalTrack(const NicaCbmGlobalTrack& other); - NicaCbmGlobalTrack& operator=(const NicaCbmGlobalTrack& other); - virtual void Update(CbmGlobalTrack* track, - NicaCbmGlobalEventInterface* interface); - CbmHelix* GetHelix() { return &fHelix; }; - virtual void CopyData(NicaTrack* other); - virtual ~NicaCbmGlobalTrack(); - ClassDef(NicaCbmGlobalTrack, 1) -}; - -#endif /* NICACBMGLOBTRACK_H_ */ diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/format/global/NicaCbmGlobalTrackInterface.cxx b/analysis/PWGC2F/femtoscopy/nicafemto/format/global/NicaCbmGlobalTrackInterface.cxx deleted file mode 100644 index a9c605ed5c394a338ed9aab345e0edcf5f729f02..0000000000000000000000000000000000000000 --- a/analysis/PWGC2F/femtoscopy/nicafemto/format/global/NicaCbmGlobalTrackInterface.cxx +++ /dev/null @@ -1,13 +0,0 @@ -/* - * NicaCbmTrackInterface.cxx - * - * Created on: 3 gru 2018 - * Author: Daniel Wielanek - * E-mail: daniel.wielanek@gmail.com - * Warsaw University of Technology, Faculty of Physics - */ -#include "NicaCbmGlobalTrackInterface.h" - -NicaCbmGlobalTrackInterface::NicaCbmGlobalTrackInterface() {} - -NicaCbmGlobalTrackInterface::~NicaCbmGlobalTrackInterface() {} diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/format/global/NicaCbmGlobalTrackInterface.h b/analysis/PWGC2F/femtoscopy/nicafemto/format/global/NicaCbmGlobalTrackInterface.h deleted file mode 100644 index bb432263cd6a644a9bddb1ca55ce230a725ddf39..0000000000000000000000000000000000000000 --- a/analysis/PWGC2F/femtoscopy/nicafemto/format/global/NicaCbmGlobalTrackInterface.h +++ /dev/null @@ -1,21 +0,0 @@ -/* - * NicaCbmTrackInterface.h - * - * Created on: 3 gru 2018 - * Author: Daniel Wielanek - * E-mail: daniel.wielanek@gmail.com - * Warsaw University of Technology, Faculty of Physics - */ -#ifndef NICACBMGLOBTRACKINTERFACE_H_ -#define NICACBMGLOBTRACKINTERFACE_H_ - -#include "CbmStsTrack.h" -#include "NicaTrackInterface.h" -class NicaCbmGlobalTrackInterface : public NicaTrackInterface { -public: - NicaCbmGlobalTrackInterface(); - virtual ~NicaCbmGlobalTrackInterface(); - ClassDef(NicaCbmGlobalTrackInterface, 1) -}; - -#endif /* NICACBMGLOBTRACKINTERFACE_H_ */ diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/format/matched/NicaCbmMatchedEvent.cxx b/analysis/PWGC2F/femtoscopy/nicafemto/format/matched/NicaCbmMatchedEvent.cxx deleted file mode 100644 index bcf319c9ab9e050b7f7384d1ff27f2145ff5a7ee..0000000000000000000000000000000000000000 --- a/analysis/PWGC2F/femtoscopy/nicafemto/format/matched/NicaCbmMatchedEvent.cxx +++ /dev/null @@ -1,52 +0,0 @@ -/* - * NicaCbmMatchedEvent.cxx - * - * Created on: 12 lip 2019 - * Author: Daniel Wielanek - * E-mail: daniel.wielanek@gmail.com - * Warsaw University of Technology, Faculty of Physics - */ -#include "NicaCbmMatchedEvent.h" -#include "FairRootManager.h" -#include "NicaCbmMatchedEventInterface.h" -#include "NicaCbmMatchedTrack.h" -void NicaCbmMatchedEvent::CreateSource() { - fSource = new NicaCbmMatchedEventInterface(GetMode()); -} - -NicaCbmMatchedEvent::NicaCbmMatchedEvent(NicaCbmSetup mode) - : NicaCbmEvent("NicaCbmMatchedTrack", mode) {} - -Bool_t NicaCbmMatchedEvent::ExistInTree() const { - switch (fMode) { - case NicaCbmSetup::kSis100Electron: - if (!CheckBranches(4, - "StsTrackMatch", - "TofHitMatch", - "TrdTrackMatch", - "RichRingMatch")) - return kFALSE; - break; - case NicaCbmSetup::kSis100Muon: - if (!CheckBranches(4, - "StsTrackMatch", - "TofHitMatch", - "TrdTrackMatch", - "MuchTrackMatch")) - return kFALSE; - break; - case NicaCbmSetup::kSis100Hadron: { - if (!CheckBranches(3, "StsTrackMatch", "TofHitMatch", "TrdTrackMatch")) - return kFALSE; - } break; - default: - if (!CheckBranches(2, "StsTrackMatch", "TofHitMatch")) return kFALSE; - break; - } - return NicaCbmEvent::ExistInTree(); -} - -NicaCbmMatchedEvent::~NicaCbmMatchedEvent() {} - -NicaCbmMatchedEvent::NicaCbmMatchedEvent(TString classname, NicaCbmSetup mode) - : NicaCbmEvent(classname, mode) {} diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/format/matched/NicaCbmMatchedEvent.h b/analysis/PWGC2F/femtoscopy/nicafemto/format/matched/NicaCbmMatchedEvent.h deleted file mode 100644 index 3966a4755d111df864f714b316a74c6ae1b42fc3..0000000000000000000000000000000000000000 --- a/analysis/PWGC2F/femtoscopy/nicafemto/format/matched/NicaCbmMatchedEvent.h +++ /dev/null @@ -1,32 +0,0 @@ -/* - * NicaCbmMatchedEvent.h - * - * Created on: 12 lip 2019 - * Author: Daniel Wielanek - * E-mail: daniel.wielanek@gmail.com - * Warsaw University of Technology, Faculty of Physics - */ -#ifndef NICACBMMATCHEDEVENT_H_ -#define NICACBMMATCHEDEVENT_H_ - -#include "CbmDefs.h" -#include "NicaCbmEvent.h" - -class NicaCbmMatchedEvent : public NicaCbmEvent { -protected: - virtual void CreateSource(); - NicaCbmMatchedEvent(TString classname, - NicaCbmSetup mode = NicaCbmSetup::kSis100Hadron); - -public: - NicaCbmMatchedEvent(NicaCbmSetup mode = NicaCbmSetup::kSis100Hadron); - virtual Bool_t ExistInTree() const; - virtual NicaEvent* GetNewEvent() const { - return new NicaCbmMatchedEvent(fMode); - }; - virtual TString GetFormatName() const { return "CbmMatchedEvent"; }; - virtual ~NicaCbmMatchedEvent(); - ClassDef(NicaCbmMatchedEvent, 1) -}; - -#endif /* NICACBMMATCHEDEVENT_H_ */ diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/format/matched/NicaCbmMatchedEventInterface.cxx b/analysis/PWGC2F/femtoscopy/nicafemto/format/matched/NicaCbmMatchedEventInterface.cxx deleted file mode 100644 index f39c422bcc6632a5b8ec2ebf6d6e4d04edd2d5c1..0000000000000000000000000000000000000000 --- a/analysis/PWGC2F/femtoscopy/nicafemto/format/matched/NicaCbmMatchedEventInterface.cxx +++ /dev/null @@ -1,141 +0,0 @@ -/* - * NicaCbmMatchedEventInterface.cxx - * - * Created on: 12 lip 2019 - * Author: Daniel Wielanek - * E-mail: daniel.wielanek@gmail.com - * Warsaw University of Technology, Faculty of Physics - */ -#include "NicaCbmMatchedEventInterface.h" -#include "NicaCbmEvent.h" -#include "NicaCbmMatchedTrackInterface.h" - -NicaCbmMatchedEventInterface::NicaCbmMatchedEventInterface(NicaCbmSetup mode) - : NicaCbmEventInterface(mode) - , fTrdMatches(NULL) - , fMuchMatches(NULL) - , fRichMatches(NULL) { - fStsMatches = new NicaTrackClones("CbmTrackMatchNew", "StsTrackMatch", "STS"); - fTofMatches = new NicaTrackClones("CbmTrackMatchNew", "TofHitMatch", "TOF"); - switch (fMode) { - case NicaCbmSetup::kSis100Electron: { - fTrdMatches = - new NicaTrackClones("CbmTrackMatchNew", "TrdTrackMatch", "TRD"); - fRichMatches = - new NicaTrackClones("CbmTrackMatchNew", "RichRingMatch", "RICH"); - } break; - case NicaCbmSetup::kSis100Hadron: - fTrdMatches = - new NicaTrackClones("CbmTrackMatchNew", "TrdTrackMatch", "TRD"); - break; - case NicaCbmSetup::kSis100Mini: { - - } break; - case NicaCbmSetup::kSis100Muon: { - fTrdMatches = - new NicaTrackClones("CbmTrackMatchNew", "TrdTrackMatch", "TRD"); - fMuchMatches = - new NicaTrackClones("CbmTrackMatchNew", "MuchTrackMatch", "MUCH"); - } break; - } -} - -void NicaCbmMatchedEventInterface::ConnectToTree() { - NicaCbmEventInterface::ConnectToTree(); - if (CanDeleteEvent()) { - fStsMatches->DeleteClones(); - fTofMatches->DeleteClones(); - switch (fMode) { - case NicaCbmSetup::kSis100Electron: { - fRichMatches->DeleteClones(); - fTrdMatches->DeleteClones(); - } break; - case NicaCbmSetup::kSis100Hadron: fTrdMatches->DeleteClones(); break; - case NicaCbmSetup::kSis100Muon: { - fTrdMatches->DeleteClones(); - fMuchMatches->DeleteClones(); - } break; - case NicaCbmSetup::kSis100Mini: { - } break; - } - } - fStsMatches->GetFromTree(); - fTofMatches->GetFromTree(); - if (fTrdMatches) fTrdMatches->GetFromTree(); - if (fRichMatches) fRichMatches->GetFromTree(); - if (fMuchMatches) fMuchMatches->GetFromTree(); -} - -void NicaCbmMatchedEventInterface::Register(Bool_t write) { - NicaCbmEventInterface::Register(write); - fStsMatches->Register(write); - fTofMatches->Register(write); - if (fTrdMatches) fTrdMatches->Register(write); - if (fMuchMatches) fMuchMatches->Register(write); - if (fRichMatches) fRichMatches->Register(write); -} - -void NicaCbmMatchedEventInterface::CopyData(NicaEventInterface* s) { - NicaCbmEventInterface::CopyData(s); - NicaCbmMatchedEventInterface* interface = (NicaCbmMatchedEventInterface*) s; - fStsMatches->CopyFrom<CbmTrackMatchNew>(interface->GetStsMatches()); - fTofMatches->CopyFrom<CbmTrackMatchNew>(interface->GetTofMatches()); - if (fTrdMatches) - fTrdMatches->CopyFrom<CbmTrackMatchNew>(interface->GetTrdMatches()); - if (fMuchMatches) - fMuchMatches->CopyFrom<CbmTrackMatchNew>(interface->GetMuchMatches()); - if (fRichMatches) - fRichMatches->CopyFrom<CbmTrackMatchNew>(interface->GetRichMatches()); -} - -void NicaCbmMatchedEventInterface::Compress(Int_t* map, Int_t map_size) { - NicaCbmEventInterface::Compress(map, map_size); - //TODO make compression -} - -void NicaCbmMatchedEventInterface::CopyAndCompress(NicaEventInterface* s, - Int_t* map, - Int_t map_size) { - NicaCbmEventInterface::CopyAndCompress(s, map, map_size); - NicaCbmMatchedEventInterface* interface = (NicaCbmMatchedEventInterface*) s; - fStsMatches->CopyFrom<CbmTrackMatchNew>(interface->GetStsMatches()); - fTofMatches->CopyFrom<CbmTrackMatchNew>(interface->GetTofMatches()); - if (fTrdMatches) - fTrdMatches->CopyFrom<CbmTrackMatchNew>(interface->GetTrdMatches()); - if (fMuchMatches) - fMuchMatches->CopyFrom<CbmTrackMatchNew>(interface->GetMuchMatches()); - if (fRichMatches) - fRichMatches->CopyFrom<CbmTrackMatchNew>(interface->GetRichMatches()); -} - -void NicaCbmMatchedEventInterface::FillTrackInterface(NicaTrackInterface* track, - Int_t index) { - NicaCbmEventInterface::FillTrackInterface(track, index); - NicaCbmMatchedTrackInterface* Track = (NicaCbmMatchedTrackInterface*) track; - CbmGlobalTrack* glob = (CbmGlobalTrack*) fTracks->UncheckedAt(index); - Track->SetLinkSts( - (CbmTrackMatchNew*) fStsMatches->UncheckedAt(glob->GetStsTrackIndex())); - Track->SetLinkTof( - (CbmTrackMatchNew*) fTofMatches->UncheckedAt(glob->GetTofHitIndex())); - if (fTrdMatches) - Track->SetLinkTrd( - (CbmTrackMatchNew*) fTrdMatches->UncheckedAt(glob->GetTrdTrackIndex())); - if (fMuchMatches) { - Track->SetLinkMuch( - (CbmTrackMatchNew*) fMuchMatches->UncheckedAt(glob->GetMuchTrackIndex())); - } - if (fRichMatches) { - Track->SetLinkRich( - (CbmTrackMatchNew*) fRichMatches->UncheckedAt(glob->GetRichRingIndex())); - } -} - -NicaCbmMatchedEventInterface::~NicaCbmMatchedEventInterface() { - if (CanDeleteEvent()) { - if (fStsMatches) delete fStsMatches; - if (fTofMatches) delete fTofMatches; - if (fTrdMatches) delete fTrdMatches; - if (fRichMatches) delete fRichMatches; - if (fMuchMatches) delete fMuchMatches; - } -} diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/format/matched/NicaCbmMatchedEventInterface.h b/analysis/PWGC2F/femtoscopy/nicafemto/format/matched/NicaCbmMatchedEventInterface.h deleted file mode 100644 index 71f07259494d0ad2eced095f2125d5351746b9e8..0000000000000000000000000000000000000000 --- a/analysis/PWGC2F/femtoscopy/nicafemto/format/matched/NicaCbmMatchedEventInterface.h +++ /dev/null @@ -1,47 +0,0 @@ -/* - * NicaCbmMatchedEventInterface.h - * - * Created on: 12 lip 2019 - * Author: Daniel Wielanek - * E-mail: daniel.wielanek@gmail.com - * Warsaw University of Technology, Faculty of Physics - */ -#ifndef NICACBMMATCHEDEVENTINTERFACE_H_ -#define NICACBMMATCHEDEVENTINTERFACE_H_ - -#include "NicaCbmEventInterface.h" -#include "NicaCbmMatchedTrackInterface.h" -class NicaCbmEvent; -class NicaCbmMatchedEvent; -class NicaCbmMatchedEventInterface : public NicaCbmEventInterface { - friend class NicaCbmMatchedEvent; - -protected: - NicaTrackClones* fStsMatches; - NicaTrackClones* fTofMatches; - NicaTrackClones* fTrdMatches; - NicaTrackClones* fMuchMatches; - NicaTrackClones* fRichMatches; - virtual void ConnectToTree(); - void Register(Bool_t write); - -public: - NicaCbmMatchedEventInterface(NicaCbmSetup mode = NicaCbmSetup::kSis100Hadron); - TClonesArray* GetStsMatches() const { return fStsMatches->GetArray(); }; - TClonesArray* GetTofMatches() const { return fTofMatches->GetArray(); }; - TClonesArray* GetTrdMatches() const { return fTrdMatches->GetArray(); }; - TClonesArray* GetRichMatches() const { return fRichMatches->GetArray(); }; - TClonesArray* GetMuchMatches() const { return fMuchMatches->GetArray(); }; - virtual void CopyData(NicaEventInterface* s); - virtual void Compress(Int_t* map, Int_t map_size); - virtual void - CopyAndCompress(NicaEventInterface* s, Int_t* map, Int_t map_size); - virtual void FillTrackInterface(NicaTrackInterface* track, Int_t index); - virtual NicaTrackInterface* GetTrackInterface() const { - return new NicaCbmMatchedTrackInterface(); - } - virtual ~NicaCbmMatchedEventInterface(); - ClassDef(NicaCbmMatchedEventInterface, 1) -}; - -#endif /* NICA_CBM_FORMAT_MATCHED_NICACBMMATCHEDEVENTINTERFACE_H_ */ diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/format/matched/NicaCbmMatchedTrack.cxx b/analysis/PWGC2F/femtoscopy/nicafemto/format/matched/NicaCbmMatchedTrack.cxx deleted file mode 100644 index 53f3773794859a0d9637d5016a28351e327e075d..0000000000000000000000000000000000000000 --- a/analysis/PWGC2F/femtoscopy/nicafemto/format/matched/NicaCbmMatchedTrack.cxx +++ /dev/null @@ -1,110 +0,0 @@ -/* - * NicaCbmMatchedTrack.cxx - * - * Created on: 12 lip 2019 - * Author: Daniel Wielanek - * E-mail: daniel.wielanek@gmail.com - * Warsaw University of Technology, Faculty of Physics - */ -#include "NicaCbmMatchedTrack.h" -#include "NicaCbmEvent.h" -#include "NicaCbmMatchedEventInterface.h" - -NicaCbmMatchedTrack::NicaCbmMatchedTrack() - : fStsMCIndex(-1) - , fTrdMCIndex(-1) - , fTofMCIndex(-1) - , fRichMCIndex(-1) - , fMuchMCIndex(-1) {} - -NicaCbmMatchedTrack::~NicaCbmMatchedTrack() {} - -void NicaCbmMatchedTrack::Update(CbmGlobalTrack* track, - NicaCbmGlobalEventInterface* interface) { - NicaCbmTrack::Update(track, interface); - NicaCbmMatchedEventInterface* ev = (NicaCbmMatchedEventInterface*) interface; - CbmTrackMatchNew* match_sts = NULL; - CbmTrackMatchNew* match_tof = NULL; - CbmTrackMatchNew* match_trd = NULL; - CbmTrackMatchNew* match_rich = NULL; - CbmTrackMatchNew* match_much = NULL; - - if (GetStsTrackIndex() >= 0) - match_sts = - (CbmTrackMatchNew*) ev->GetStsMatches()->UncheckedAt(GetStsTrackIndex()); - if (GetTofHitIndex() >= 0) - match_tof = - (CbmTrackMatchNew*) ev->GetTofMatches()->UncheckedAt(GetTofHitIndex()); - - - if (match_sts) { - fStsMCIndex = match_sts->GetMatchedLink().GetIndex(); - } else { - fStsMCIndex = -1; - } - if (match_tof) { - fTofMCIndex = match_tof->GetMatchedLink().GetIndex(); - } else { - fTofMCIndex = -1; - } - NicaCbmSetup mode = ev->GetMode(); - switch (mode) { - case NicaCbmSetup::kSis100Electron: { - if (GetTrdTrackIndex() >= 0) - match_trd = (CbmTrackMatchNew*) ev->GetTrdMatches()->UncheckedAt( - GetTrdTrackIndex()); - if (GetRichRingIndex() >= 0) - match_rich = (CbmTrackMatchNew*) ev->GetRichMatches()->UncheckedAt( - GetRichRingIndex()); - if (match_rich) { - fRichMCIndex = match_rich->GetMatchedLink().GetIndex(); - } else { - fRichMCIndex = -1; - } - if (match_trd) { - fTrdMCIndex = match_trd->GetMatchedLink().GetIndex(); - } else { - fTrdMCIndex = -1; - } - } break; - case NicaCbmSetup::kSis100Hadron: { - if (GetTrdTrackIndex() >= 0) - match_trd = (CbmTrackMatchNew*) ev->GetTrdMatches()->UncheckedAt( - GetTrdTrackIndex()); - if (match_trd) { - fTrdMCIndex = match_trd->GetMatchedLink().GetIndex(); - } else { - fTrdMCIndex = -1; - } - } break; - case NicaCbmSetup::kSis100Muon: { - if (GetTrdTrackIndex() >= 0) - match_trd = (CbmTrackMatchNew*) ev->GetTrdMatches()->UncheckedAt( - GetTrdTrackIndex()); - if (GetMuchIndex() >= 0) - match_much = - (CbmTrackMatchNew*) ev->GetMuchMatches()->UncheckedAt(GetMuchIndex()); - if (match_much) { - fMuchMCIndex = match_much->GetMatchedLink().GetIndex(); - } else { - fMuchMCIndex = -1; - } - if (match_trd) { - fTrdMCIndex = match_trd->GetMatchedLink().GetIndex(); - } else { - fTrdMCIndex = -1; - } - } break; - default: break; - } -} - -void NicaCbmMatchedTrack::CopyData(NicaTrack* track) { - NicaCbmTrack::CopyData(track); - NicaCbmMatchedTrack* tr = (NicaCbmMatchedTrack*) track; - fStsMCIndex = tr->GetStsMcIndex(); - fTofMCIndex = tr->GetTofMcIndex(); - fTrdMCIndex = tr->GetTrdMcIndex(); - fRichMCIndex = tr->GetRichMcIndex(); - fMuchMCIndex = tr->GetMuchMcIndex(); -} diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/format/matched/NicaCbmMatchedTrack.h b/analysis/PWGC2F/femtoscopy/nicafemto/format/matched/NicaCbmMatchedTrack.h deleted file mode 100644 index aca7693d18b5c1d7ea51ac52eaa4383761ef6e6c..0000000000000000000000000000000000000000 --- a/analysis/PWGC2F/femtoscopy/nicafemto/format/matched/NicaCbmMatchedTrack.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * NicaCbmMatchedTrack.h - * - * Created on: 12 lip 2019 - * Author: Daniel Wielanek - * E-mail: daniel.wielanek@gmail.com - * Warsaw University of Technology, Faculty of Physics - */ -#ifndef NICACBMMATCHEDTRACK_H_ -#define NICACBMMATCHEDTRACK_H_ - -#include "NicaCbmGlobalEventInterface.h" -#include "NicaCbmTrack.h" - -class NicaCbmMatchedTrack : public NicaCbmTrack { - Int_t fStsMCIndex; - Int_t fTrdMCIndex; - Int_t fTofMCIndex; - Int_t fRichMCIndex; - Int_t fMuchMCIndex; - -public: - NicaCbmMatchedTrack(); - virtual void CopyData(NicaTrack* track); - virtual void Update(CbmGlobalTrack* track, - NicaCbmGlobalEventInterface* interface); - Int_t GetStsMcIndex() const { return fStsMCIndex; } - Int_t GetTofMcIndex() const { return fTofMCIndex; } - Int_t GetTrdMcIndex() const { return fTrdMCIndex; } - Int_t GetRichMcIndex() const { return fRichMCIndex; } - Int_t GetMuchMcIndex() const { return fMuchMCIndex; } - void SetStsMcIndex(Int_t stsMcIndex) { fStsMCIndex = stsMcIndex; } - void SetTofMcIndex(Int_t tofMcIndex) { fTofMCIndex = tofMcIndex; } - void SetTrdMcIndex(Int_t trdMcIndex) { fTrdMCIndex = trdMcIndex; } - void SetRichMcIndex(Int_t richMcIndex) { fTrdMCIndex = richMcIndex; } - void SetMuchMcIndex(Int_t muchIndex) { fMuchMCIndex = muchIndex; }; - virtual ~NicaCbmMatchedTrack(); - ClassDef(NicaCbmMatchedTrack, 1) -}; - -#endif /* NICA_CBM_FORMAT_MATCHED_NICACBMMATCHEDTRACK_H_ */ diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/format/matched/NicaCbmMatchedTrackInterface.cxx b/analysis/PWGC2F/femtoscopy/nicafemto/format/matched/NicaCbmMatchedTrackInterface.cxx deleted file mode 100644 index 50157ae8267ba6502902dddca70b1fef1766152e..0000000000000000000000000000000000000000 --- a/analysis/PWGC2F/femtoscopy/nicafemto/format/matched/NicaCbmMatchedTrackInterface.cxx +++ /dev/null @@ -1,18 +0,0 @@ -/* - * NicaCbmMatchedTrackInterface.cxx - * - * Created on: 12 lip 2019 - * Author: Daniel Wielanek - * E-mail: daniel.wielanek@gmail.com - * Warsaw University of Technology, Faculty of Physics - */ -#include "NicaCbmMatchedTrackInterface.h" - -NicaCbmMatchedTrackInterface::NicaCbmMatchedTrackInterface() - : fStsLink(NULL) - , fTofLink(NULL) - , fTrdLink(NULL) - , fRichLink(NULL) - , fMuchLink(NULL) {} - -NicaCbmMatchedTrackInterface::~NicaCbmMatchedTrackInterface() {} diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/format/matched/NicaCbmMatchedTrackInterface.h b/analysis/PWGC2F/femtoscopy/nicafemto/format/matched/NicaCbmMatchedTrackInterface.h deleted file mode 100644 index b0395c56b240db6b78db7ad2fd6a11d53790ba11..0000000000000000000000000000000000000000 --- a/analysis/PWGC2F/femtoscopy/nicafemto/format/matched/NicaCbmMatchedTrackInterface.h +++ /dev/null @@ -1,38 +0,0 @@ -/* - * NicaCbmMatchedTrackInterface.h - * - * Created on: 12 lip 2019 - * Author: Daniel Wielanek - * E-mail: daniel.wielanek@gmail.com - * Warsaw University of Technology, Faculty of Physics - */ -#ifndef NICACBMMATCHEDTRACKINTERFACE_H_ -#define NICACBMMATCHEDTRACKINTERFACE_H_ - -#include "CbmTrackMatchNew.h" -#include "NicaCbmTrackInterface.h" - -class NicaCbmMatchedTrackInterface : public NicaCbmTrackInterface { - CbmTrackMatchNew* fStsLink; - CbmTrackMatchNew* fTofLink; - CbmTrackMatchNew* fTrdLink; - CbmTrackMatchNew* fRichLink; - CbmTrackMatchNew* fMuchLink; - -public: - NicaCbmMatchedTrackInterface(); - void SetLinkSts(CbmTrackMatchNew* link) { fStsLink = link; } - void SetLinkTof(CbmTrackMatchNew* link) { fTofLink = link; }; - void SetLinkTrd(CbmTrackMatchNew* link) { fTrdLink = link; }; - void SetLinkMuch(CbmTrackMatchNew* link) { fMuchLink = link; }; - void SetLinkRich(CbmTrackMatchNew* link) { fRichLink = link; }; - CbmTrackMatchNew* GetLinkSts() const { return fStsLink; } - CbmTrackMatchNew* GetLinkTof() const { return fTofLink; }; - CbmTrackMatchNew* GetLinkTrd() const { return fTrdLink; }; - CbmTrackMatchNew* GetLinkMuch() const { return fMuchLink; }; - CbmTrackMatchNew* GetLinkRich() const { return fRichLink; }; - virtual ~NicaCbmMatchedTrackInterface(); - ClassDef(NicaCbmMatchedTrackInterface, 1) -}; - -#endif /* NICA_CBM_FORMAT_MATCHED_NICACBMMATCHEDTRACKINTERFACE_H_ */ diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/format/mc/NicaCbmMCEvent.cxx b/analysis/PWGC2F/femtoscopy/nicafemto/format/mc/NicaCbmMCEvent.cxx deleted file mode 100644 index 0edf1814bc0624f7d190b20bf8f7f7effc24e6ab..0000000000000000000000000000000000000000 --- a/analysis/PWGC2F/femtoscopy/nicafemto/format/mc/NicaCbmMCEvent.cxx +++ /dev/null @@ -1,59 +0,0 @@ -/* - * NicaCbmMCEvent.cxx - * - * Created on: 20 wrz 2018 - * Author: Daniel Wielanek - * E-mail: daniel.wielanek@gmail.com - * Warsaw University of Technology, Faculty of Physics - */ -#include "NicaCbmMCEvent.h" -#include "CbmMCTrack.h" -#include "FairLogger.h" -#include "FairRootManager.h" -#include "NicaCbmMCEventInterface.h" -#include "NicaCbmMCTrack.h" - -NicaCbmMCEvent::NicaCbmMCEvent() : NicaMCEvent("NicaCbmMCTrack") { - fSource = new NicaCbmMCEventInterface(); -} - -NicaCbmMCEvent::~NicaCbmMCEvent() {} - -void NicaCbmMCEvent::CreateSource() { fSource = new NicaCbmMCEventInterface(); } - -void NicaCbmMCEvent::Update() { - FairMCEventHeader* event = - (FairMCEventHeader*) ((NicaCbmMCEventInterface*) fSource)->fEvent; - TClonesArray* tracks = - (TClonesArray*) ((NicaCbmMCEventInterface*) fSource)->fCbmTracks; - fB = event->GetB(); - fVertex->SetXYZT(event->GetX(), event->GetY(), event->GetZ(), event->GetT()); - fTracks->Clear(); - fTotalTracksNo = tracks->GetEntriesFast(); - fTracks->ExpandCreateFast(fTotalTracksNo); - for (int i = 0; i < tracks->GetEntriesFast(); i++) { - CbmMCTrack* track = (CbmMCTrack*) tracks->UncheckedAt(i); - Double_t charge = CalculateCharge(track->GetPdgCode()); - NicaCbmMCTrack* mc = (NicaCbmMCTrack*) fTracks->UncheckedAt(i); - mc->SetEvent(this); - mc->GetLink()->ClearLinks(); - mc->Update(track, charge); - mc->GetLink()->SetLink(0, i); - } -} - -NicaCbmMCEvent::NicaCbmMCEvent(const NicaCbmMCEvent& other) - : NicaMCEvent(other) {} - -Bool_t NicaCbmMCEvent::ExistInTree() const { - FairRootManager* manager = FairRootManager::Instance(); - Int_t header = manager->CheckBranch("MCEventHeader.") - + manager->CheckBranch("EventHeader."); - LOG(debug) << "Branch MCEventHeader. " - << manager->CheckBranch("MCEventHeader."); - LOG(debug) << "Branch EventHeader. " << manager->CheckBranch("EventHeader."); - LOG(debug) << "Branch MCTrack " << manager->CheckBranch("MCTrack"); - Int_t tracks = manager->CheckBranch("MCTrack"); - if ((header + tracks) >= 2) { return kTRUE; } - return kFALSE; -} diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/format/mc/NicaCbmMCEventInterface.cxx b/analysis/PWGC2F/femtoscopy/nicafemto/format/mc/NicaCbmMCEventInterface.cxx deleted file mode 100644 index 6741a4264b13199fa0004148d150a7cc5432c672..0000000000000000000000000000000000000000 --- a/analysis/PWGC2F/femtoscopy/nicafemto/format/mc/NicaCbmMCEventInterface.cxx +++ /dev/null @@ -1,124 +0,0 @@ -/* - * NicaCbmMCEventInterface.cxx - * - * Created on: 20 wrz 2018 - * Author: Daniel Wielanek - * E-mail: daniel.wielanek@gmail.com - * Warsaw University of Technology, Faculty of Physics - */ -#include "NicaCbmMCEventInterface.h" -#include "CbmMCTrack.h" -#include "FairRootManager.h" -#include "NicaCbmMCTrackInterface.h" - -NicaCbmMCEventInterface::NicaCbmMCEventInterface() { - fEvent = new FairMCEventHeader(); - fCbmTracks = new TClonesArray("CbmMCTrack"); -} - -void NicaCbmMCEventInterface::Register(Bool_t write) { - if (fEvent == NULL) { - fEvent = new FairMCEventHeader(); - fCbmTracks = new TClonesArray("CbmMCTrack", 1000); - } - FairRootManager* manager = FairRootManager::Instance(); - TString event_name = "MCEventHeader."; - TString track_name = "MCTrack"; - manager->Register(event_name, "MCEventHeader", fEvent, write); - manager->Register(track_name, "CbmMCTrack", fCbmTracks, write); -} - -void NicaCbmMCEventInterface::Clear(Option_t* opt) { fCbmTracks->Clear(opt); } - -void NicaCbmMCEventInterface::Compress(Int_t* map, Int_t map_size) { - Int_t track_pos = 0; - for (int i = 0; i < map_size; i++) { - Int_t good_track = map[i]; - for (int j = track_pos; j < good_track; j++) { - fCbmTracks->RemoveAt(j); - } - track_pos = good_track + 1; - } - fCbmTracks->Compress(); -} - -void NicaCbmMCEventInterface::CopyData(NicaEventInterface* s) { - FairMCEventHeader* header = - (FairMCEventHeader*) ((NicaCbmMCEventInterface*) s)->fEvent; - TClonesArray* tracks = - (TClonesArray*) ((NicaCbmMCEventInterface*) s)->fCbmTracks; - fEvent->SetRunID(header->GetRunID()); - fEvent->SetEventID(header->GetEventID()); - fEvent->SetVertex(header->GetX(), header->GetY(), header->GetZ()); - fEvent->SetRotX(header->GetRotX()); - fEvent->SetRotY(header->GetRotY()); - fEvent->SetRotZ(header->GetRotZ()); - fEvent->SetB(header->GetB()); - fEvent->SetNPrim(header->GetNPrim()); - fCbmTracks->Clear(); - fCbmTracks->ExpandCreateFast(tracks->GetEntriesFast()); - for (int i = 0; i < fCbmTracks->GetEntriesFast(); i++) { - CbmMCTrack* from = - (CbmMCTrack*) ((NicaCbmMCEventInterface*) s)->fCbmTracks->UncheckedAt(i); - CbmMCTrack* to = (CbmMCTrack*) fCbmTracks->UncheckedAt(i); - *to = *from; - } -} - -void NicaCbmMCEventInterface::CopyAndCompress(NicaEventInterface* s, - Int_t* map, - Int_t map_size) { - FairMCEventHeader* header = - (FairMCEventHeader*) ((NicaCbmMCEventInterface*) s)->fEvent; - fEvent->SetRunID(header->GetRunID()); - fEvent->SetEventID(header->GetEventID()); - fEvent->SetVertex(header->GetX(), header->GetY(), header->GetZ()); - fEvent->SetRotX(header->GetRotX()); - fEvent->SetRotY(header->GetRotY()); - fEvent->SetRotZ(header->GetRotZ()); - fEvent->SetB(header->GetB()); - fEvent->SetNPrim(header->GetNPrim()); - fCbmTracks->Clear(); - for (int i = 0; i < map_size; i++) { - CbmMCTrack* from = (CbmMCTrack*) ((NicaCbmMCEventInterface*) s) - ->fCbmTracks->UncheckedAt(map[i]); - CbmMCTrack* to = (CbmMCTrack*) fCbmTracks->ConstructedAt(i); - *to = *from; - } -} - -void NicaCbmMCEventInterface::FillTrackInterface(NicaTrackInterface* track, - Int_t index) { - track->SetRawTrack(fCbmTracks->UncheckedAt(index)); -} - -NicaTrackInterface* NicaCbmMCEventInterface::GetTrackInterface() const { - return new NicaCbmMCTrackInterface(); -} - -TLorentzVector NicaCbmMCEventInterface::GetVertex() const { - TLorentzVector vec; - TVector3 vec3d; - fEvent->GetVertex(vec3d); - vec.SetXYZT(vec3d.X(), vec3d.Y(), vec3d.Z(), 0); - return vec; -} - -NicaCbmMCEventInterface::~NicaCbmMCEventInterface() { - if (CanDeleteEvent()) { - if (fEvent) delete fEvent; - if (fCbmTracks) delete fCbmTracks; - } -} - -void NicaCbmMCEventInterface::ConnectToTree() { - FairRootManager* manager = FairRootManager::Instance(); - if (CanDeleteEvent()) { - if (fEvent) delete fEvent; - if (fCbmTracks) delete fCbmTracks; - } - fEvent = (FairMCEventHeader*) manager->GetObject("MCEventHeader."); - if (fEvent == NULL) - fEvent = (FairMCEventHeader*) manager->GetObject("EventHeader."); - fCbmTracks = (TClonesArray*) manager->GetObject("MCTrack"); -} diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/format/mc/NicaCbmMCEventInterface.h b/analysis/PWGC2F/femtoscopy/nicafemto/format/mc/NicaCbmMCEventInterface.h deleted file mode 100644 index 18b665c143ab0dc91cf0c9dbfdaa79a30c120747..0000000000000000000000000000000000000000 --- a/analysis/PWGC2F/femtoscopy/nicafemto/format/mc/NicaCbmMCEventInterface.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * NicaCbmMCEventInterface.h - * - * Created on: 20 wrz 2018 - * Author: Daniel Wielanek - * E-mail: daniel.wielanek@gmail.com - * Warsaw University of Technology, Faculty of Physics - */ -#ifndef BMN_NICA_BMN_FORMAT_MC_NICACBMMCEVENTINTERFACE_H_ -#define BMN_NICA_BMN_FORMAT_MC_NICACBMMCEVENTINTERFACE_H_ - -#include "FairMCEventHeader.h" -#include "NicaMCEventInterface.h" -#include <TClonesArray.h> - -class NicaCbmMCEvent; -class NicaCbmMCEventInterface : public NicaMCEventInterface { - friend class NicaCbmMCEvent; - -protected: - FairMCEventHeader* fEvent; - TClonesArray* fCbmTracks; - virtual void ConnectToTree(); - -public: - NicaCbmMCEventInterface(); - virtual Int_t GetTotalTrackNo() const { - return fCbmTracks->GetEntriesFast(); - }; - virtual void Register(Bool_t write); - virtual void Clear(Option_t* opt = ""); - virtual void Compress(Int_t* map, Int_t map_size); - virtual void CopyData(NicaEventInterface* s); - virtual void - CopyAndCompress(NicaEventInterface* s, Int_t* map, Int_t map_size); - virtual void FillTrackInterface(NicaTrackInterface* track, Int_t index); - virtual TObject* GetRawEventPointer() const { return fEvent; }; - virtual TObject* GetRawTrackPointer(Int_t index) const { - return fCbmTracks->UncheckedAt(index); - } - virtual NicaTrackInterface* GetTrackInterface() const; - /** GETTERS SETTERS */ - virtual void SetVertex(Double_t x, Double_t y, Double_t z) { - fEvent->SetVertex(x, y, z); - }; - virtual void SetPhi(Double_t /*phi*/, Double_t /*phi_error*/) {}; - virtual void SetB(Double_t /*b*/) {}; - virtual Double_t GetB() const { return 0; }; - virtual Double_t GetPhi() const { return 0; }; - virtual Double_t GetPhiError() const { return 0; }; - virtual TLorentzVector GetVertex() const; - virtual ~NicaCbmMCEventInterface(); - ClassDef(NicaCbmMCEventInterface, 1) -}; - -#endif /* BMN_NICA_BMN_FORMAT_MC_NICACBMMCEVENTINTERFACE_H_ */ diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/format/mc/NicaCbmMCTrack.cxx b/analysis/PWGC2F/femtoscopy/nicafemto/format/mc/NicaCbmMCTrack.cxx deleted file mode 100644 index c9643df51d31dc0d024abe22c96c031a1157c6c0..0000000000000000000000000000000000000000 --- a/analysis/PWGC2F/femtoscopy/nicafemto/format/mc/NicaCbmMCTrack.cxx +++ /dev/null @@ -1,145 +0,0 @@ -/* - * NicaCbmMCTrack.cxx - * - * Created on: 20 wrz 2018 - * Author: Daniel Wielanek - * E-mail: daniel.wielanek@gmail.com - * Warsaw University of Technology, Faculty of Physics - */ -#include "NicaCbmMCTrack.h" - -#include <Logger.h> - -NicaCbmMCTrack::NicaCbmMCTrack() : fNPoints(0) {} - -void NicaCbmMCTrack::Update(CbmMCTrack* mc, Double_t charge) { - GetMomentum()->SetPxPyPzE( - mc->GetPx(), mc->GetPy(), mc->GetPz(), mc->GetEnergy()); - SetMotherIndex(mc->GetMotherId()); - if (GetMotherIndex() > -1) { - SetMotherIndex(mc->GetMotherId()); - } else { - SetPrimary(); - } - SetStatus(0); - SetCharge(charge); - SetPdg(mc->GetPdgCode()); - GetStartPosition()->SetXYZT( - mc->GetStartX(), mc->GetStartY(), mc->GetStartZ(), mc->GetStartT()); - SetNPoints(ECbmModuleId::kRef, mc->GetNPoints(ECbmModuleId::kRef)); - SetNPoints(ECbmModuleId::kMvd, mc->GetNPoints(ECbmModuleId::kMvd)); - SetNPoints(ECbmModuleId::kSts, mc->GetNPoints(ECbmModuleId::kSts)); - SetNPoints(ECbmModuleId::kRich, mc->GetNPoints(ECbmModuleId::kRich)); - SetNPoints(ECbmModuleId::kMuch, mc->GetNPoints(ECbmModuleId::kMuch)); - SetNPoints(ECbmModuleId::kTrd, mc->GetNPoints(ECbmModuleId::kTrd)); - SetNPoints(ECbmModuleId::kTof, mc->GetNPoints(ECbmModuleId::kTof)); - SetNPoints(ECbmModuleId::kEcal, mc->GetNPoints(ECbmModuleId::kEcal)); - SetNPoints(ECbmModuleId::kPsd, mc->GetNPoints(ECbmModuleId::kPsd)); -} - -NicaCbmMCTrack::~NicaCbmMCTrack() {} - -void NicaCbmMCTrack::SetNPoints(ECbmModuleId iDet, Int_t nPoints) { - switch (iDet) { - case ECbmModuleId::kRef: { - if (nPoints < 0) - nPoints = 0; - else if (nPoints > 1) - nPoints = 1; - fNPoints = (fNPoints & (~1)) | nPoints; - } break; - case ECbmModuleId::kMvd: { - if (nPoints < 0) - nPoints = 0; - else if (nPoints > 7) - nPoints = 7; - fNPoints = (fNPoints & (~(7 << 1))) | (nPoints << 1); - } break; - case ECbmModuleId::kSts: { - if (nPoints < 0) - nPoints = 0; - else if (nPoints > 31) - nPoints = 31; - fNPoints = (fNPoints & (~(31 << 4))) | (nPoints << 4); - } break; - case ECbmModuleId::kRich: { - if (nPoints < 0) - nPoints = 0; - else if (nPoints > 1) - nPoints = 1; - fNPoints = (fNPoints & (~(1 << 9))) | (nPoints << 9); - } break; - case ECbmModuleId::kMuch: { - if (nPoints < 0) - nPoints = 0; - else if (nPoints > 31) - nPoints = 31; - fNPoints = (fNPoints & (~(31 << 10))) | (nPoints << 10); - } break; - case ECbmModuleId::kTrd: { - if (nPoints < 0) - nPoints = 0; - else if (nPoints > 31) - nPoints = 31; - fNPoints = (fNPoints & (~(31 << 15))) | (nPoints << 15); - } break; - case ECbmModuleId::kTof: { - if (nPoints < 0) - nPoints = 0; - else if (nPoints > 15) - nPoints = 15; - fNPoints = (fNPoints & (~(15 << 20))) | (nPoints << 20); - } break; - case ECbmModuleId::kEcal: { - if (nPoints < 0) - nPoints = 0; - else if (nPoints > 1) - nPoints = 1; - fNPoints = (fNPoints & (~(1 << 24))) | (nPoints << 24); - } break; - case ECbmModuleId::kPsd: { - if (nPoints < 0) - nPoints = 0; - else if (nPoints > 1) - nPoints = 1; - fNPoints = (fNPoints & (~(1 << 25))) | (nPoints << 25); - } break; - default: break; - } -} - -Int_t NicaCbmMCTrack::GetNPoints(ECbmModuleId detId) const { - switch (detId) { - case ECbmModuleId::kRef: return (fNPoints & 1); break; - case ECbmModuleId::kMvd: { - return ((fNPoints & (7 << 1)) >> 1); - } break; - case ECbmModuleId::kSts: { - return ((fNPoints & (31 << 4)) >> 4); - } break; - case ECbmModuleId::kRich: { - return ((fNPoints & (1 << 9)) >> 9); - } break; - case ECbmModuleId::kMuch: { - return ((fNPoints & (31 << 10)) >> 10); - } break; - case ECbmModuleId::kTrd: { - return ((fNPoints & (31 << 15)) >> 15); - } break; - case ECbmModuleId::kTof: { - return ((fNPoints & (15 << 20)) >> 20); - } break; - case ECbmModuleId::kEcal: { - return ((fNPoints & (1 << 24)) >> 24); - } break; - case ECbmModuleId::kPsd: { - return ((fNPoints & (1 << 25)) >> 25); - } break; - default: return 0; break; - } -} - -void NicaCbmMCTrack::CopyData(NicaTrack* other) { - NicaMCTrack::CopyData(other); - this->fNPoints = ((NicaCbmMCTrack*) other)->fNPoints; -} diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/format/mc/NicaCbmMCTrack.h b/analysis/PWGC2F/femtoscopy/nicafemto/format/mc/NicaCbmMCTrack.h deleted file mode 100644 index 11b5587401bdfa4288f5d431ff6d5bf8e817038d..0000000000000000000000000000000000000000 --- a/analysis/PWGC2F/femtoscopy/nicafemto/format/mc/NicaCbmMCTrack.h +++ /dev/null @@ -1,28 +0,0 @@ -/* - * NicaCbmMCTrack.h - * - * Created on: 20 wrz 2018 - * Author: Daniel Wielanek - * E-mail: daniel.wielanek@gmail.com - * Warsaw University of Technology, Faculty of Physics - */ -#ifndef NICACBMMCTRACK_H_ -#define NICACBMMCTRACK_H_ - -#include "CbmMCTrack.h" -#include "NicaMCTrack.h" - -class NicaCbmMCTrack : public NicaMCTrack { - Int_t fNPoints; - -public: - NicaCbmMCTrack(); - void SetNPoints(ECbmModuleId iDet, Int_t np); - Int_t GetNPoints(ECbmModuleId detId) const; - virtual void CopyData(NicaTrack* other); - virtual void Update(CbmMCTrack* mc, Double_t charge); - virtual ~NicaCbmMCTrack(); - ClassDef(NicaCbmMCTrack, 1) -}; - -#endif /* BMN_NICA_BMN_FORMAT_MC_NICACBMMCTRACK_H_ */ diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/format/mc/NicaCbmMCTrackInterface.h b/analysis/PWGC2F/femtoscopy/nicafemto/format/mc/NicaCbmMCTrackInterface.h deleted file mode 100644 index ee9e1ea0f76815c781364522605393155da71b93..0000000000000000000000000000000000000000 --- a/analysis/PWGC2F/femtoscopy/nicafemto/format/mc/NicaCbmMCTrackInterface.h +++ /dev/null @@ -1,20 +0,0 @@ -/* - * NicaCbmMCTrackInterface.h - * - * Created on: 20 wrz 2018 - * Author: Daniel Wielanek - * E-mail: daniel.wielanek@gmail.com - * Warsaw University of Technology, Faculty of Physics - */ -#ifndef BMN_NICA_BMN_FORMAT_MC_NICACBMMCTRACKINTERFACE_H_ -#define BMN_NICA_BMN_FORMAT_MC_NICACBMMCTRACKINTERFACE_H_ -#include "NicaMCTrackInterface.h" - -class NicaCbmMCTrackInterface : public NicaMCTrackInterface { -public: - NicaCbmMCTrackInterface(); - virtual ~NicaCbmMCTrackInterface(); - ClassDef(NicaCbmMCTrackInterface, 1) -}; - -#endif /* BMN_NICA_BMN_FORMAT_MC_NICACBMMCTRACKINTERFACE_H_ */ diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/format/unigen/NicaGeneratorReadUnigen.cxx b/analysis/PWGC2F/femtoscopy/nicafemto/format/unigen/NicaGeneratorReadUnigen.cxx index 2823612afe12d56eda51c12850338c6070e1b474..8085889bca8622a34209a710f67a89aefb3fc417 100644 --- a/analysis/PWGC2F/femtoscopy/nicafemto/format/unigen/NicaGeneratorReadUnigen.cxx +++ b/analysis/PWGC2F/femtoscopy/nicafemto/format/unigen/NicaGeneratorReadUnigen.cxx @@ -9,13 +9,14 @@ #include "NicaGeneratorReadUnigen.h" +#include <TString.h> + #include "NicaGeneratorParametersArray.h" #include "NicaGeneratorRead.h" -#include <TString.h> - -Int_t NicaGeneratorReadUnigen::ReadEvent() { +Int_t NicaGeneratorReadUnigen::ReadEvent() +{ Int_t status = NicaGeneratorReadTree::ReadEvent(); if (status != EventOk()) return status; fEventParameters->SetInt(fInEvent->GetEventNr(), fEventNr_Id); @@ -48,7 +49,8 @@ Int_t NicaGeneratorReadUnigen::ReadEvent() { return EventOk(); } -Int_t NicaGeneratorReadUnigen::Reopen() { +Int_t NicaGeneratorReadUnigen::Reopen() +{ Int_t stat = NicaGeneratorReadTree::Reopen(); if (stat != FileOk()) { return stat; } if (fInEvent == NULL) fInEvent = new UEvent(); @@ -57,8 +59,7 @@ Int_t NicaGeneratorReadUnigen::Reopen() { return FileOk(); } -NicaGeneratorReadUnigen::NicaGeneratorReadUnigen(TString name, - Bool_t multi_mode) +NicaGeneratorReadUnigen::NicaGeneratorReadUnigen(TString name, Bool_t multi_mode) : NicaGeneratorReadTree(name, "events", "event", multi_mode) , fInEvent(NULL) , fStatus_Id(0) @@ -75,11 +76,13 @@ NicaGeneratorReadUnigen::NicaGeneratorReadUnigen(TString name, , fWeight_Id(0) , fENes_Id(0) , fEStepNr_Id(0) - , fEStepT_Id(0) { + , fEStepT_Id(0) +{ fInEvent = new UEvent(); } -void NicaGeneratorReadUnigen::CheckParameters() { +void NicaGeneratorReadUnigen::CheckParameters() +{ NicaGeneratorRead::CheckParameters(); fStatus_Id = CheckParameter("status"); fParent_Id = CheckParameter("parent"); diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/format/unigen/NicaGeneratorReadUnigen.h b/analysis/PWGC2F/femtoscopy/nicafemto/format/unigen/NicaGeneratorReadUnigen.h index d4761ebafa816d4ef5d2be5d5fc8b0dd737cc72a..2e027acdcea92c5f9f6cbbc13c85c99dfa2246c2 100644 --- a/analysis/PWGC2F/femtoscopy/nicafemto/format/unigen/NicaGeneratorReadUnigen.h +++ b/analysis/PWGC2F/femtoscopy/nicafemto/format/unigen/NicaGeneratorReadUnigen.h @@ -9,10 +9,10 @@ #ifndef _NICAGENERATORREADUNIGEN_H_ #define _NICAGENERATORREADUNIGEN_H_ -#include "NicaGeneratorReadTree.h" #include <TBranch.h> #include <TTree.h> +#include "NicaGeneratorReadTree.h" #include "UEvent.h" #include "UParticle.h" @@ -23,8 +23,7 @@ class NicaGeneratorReadUnigen : public NicaGeneratorReadTree { private: UEvent* fInEvent; - Int_t fStatus_Id, fParent_Id, fParentDecay_Id, fMate_Id, fDecay_Id, - fChild1_Id, fChild2_Id; + Int_t fStatus_Id, fParent_Id, fParentDecay_Id, fMate_Id, fDecay_Id, fChild1_Id, fChild2_Id; Int_t fX_Id, fY_Id, fZ_Id, fT_Id, fWeight_Id; Int_t fENes_Id, fEStepNr_Id, fEStepT_Id; diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/format/unigen/NicaGeneratorWriteUnigen.cxx b/analysis/PWGC2F/femtoscopy/nicafemto/format/unigen/NicaGeneratorWriteUnigen.cxx index 4ad6e1833e27ecf8c1619e5137e51b5e3012253c..bf63985bb9c57451cac82633acc0d7fb046cea77 100644 --- a/analysis/PWGC2F/femtoscopy/nicafemto/format/unigen/NicaGeneratorWriteUnigen.cxx +++ b/analysis/PWGC2F/femtoscopy/nicafemto/format/unigen/NicaGeneratorWriteUnigen.cxx @@ -9,15 +9,16 @@ #include "NicaGeneratorWriteUnigen.h" -#include "NicaGeneratorParametersArray.h" -#include "NicaRunSim.h" - #include <FairLogger.h> #include <FairTask.h> + #include <TTree.h> -NicaGeneratorWriteUnigen::NicaGeneratorWriteUnigen() - : NicaGeneratorWrite(4, 3, 1, 0, 9, 9, 0, 0) { +#include "NicaGeneratorParametersArray.h" +#include "NicaRunSim.h" + +NicaGeneratorWriteUnigen::NicaGeneratorWriteUnigen() : NicaGeneratorWrite(4, 3, 1, 0, 9, 9, 0, 0) +{ fEvent = new UEvent(); // parameter 0 is reserverd for random stuff ! //register event parameters int @@ -25,21 +26,13 @@ NicaGeneratorWriteUnigen::NicaGeneratorWriteUnigen() //register event parameters double Register(3, "B", "Phi", "Step_t"); //register track int parameters - Register(9, - "index", - "pdg", - "status", - "parent", - "parent_decay", - "mate", - "decay", - "first_child", - "last_child"); + Register(9, "index", "pdg", "status", "parent", "parent_decay", "mate", "decay", "first_child", "last_child"); //register track double parameters Register(9, "px", "py", "pz", "e", "frx", "fry", "frz", "frt", "weight"); } -InitStatus NicaGeneratorWriteUnigen::Init() { +InitStatus NicaGeneratorWriteUnigen::Init() +{ InitStatus stat = NicaGeneratorWrite::Init(); NicaRunSim* manager = NicaRunSim::Instance(); manager->GetTree()->Branch("event", &fEvent); @@ -49,7 +42,8 @@ InitStatus NicaGeneratorWriteUnigen::Init() { void NicaGeneratorWriteUnigen::ClearEvent() { fEvent->Clear(); } -void NicaGeneratorWriteUnigen::AddEvent() { +void NicaGeneratorWriteUnigen::AddEvent() +{ fEvent->SetNes(fEventParameters->GetInt(1)); fEvent->SetStepNr(fEventParameters->GetInt(2)); fEvent->SetEventNr(fEventParameters->GetInt(4)); @@ -58,7 +52,8 @@ void NicaGeneratorWriteUnigen::AddEvent() { fEvent->SetStepT(fEventParameters->GetDouble(3)); } -void NicaGeneratorWriteUnigen::AddParticle() { +void NicaGeneratorWriteUnigen::AddParticle() +{ Int_t child[2] = {fTrackParameters->GetInt(8), fTrackParameters->GetInt(9)}; fEvent->AddParticle(fTrackParameters->GetInt(1), //index fTrackParameters->GetInt(2), //pdg @@ -67,15 +62,9 @@ void NicaGeneratorWriteUnigen::AddParticle() { fTrackParameters->GetInt(5), //parent_decay fTrackParameters->GetInt(6), //mate fTrackParameters->GetInt(7), //decay - child, - fTrackParameters->GetDouble(1), - fTrackParameters->GetDouble(2), - fTrackParameters->GetDouble(3), - fTrackParameters->GetDouble(4), - fTrackParameters->GetDouble(5), - fTrackParameters->GetDouble(6), - fTrackParameters->GetDouble(7), - fTrackParameters->GetDouble(8), + child, fTrackParameters->GetDouble(1), fTrackParameters->GetDouble(2), + fTrackParameters->GetDouble(3), fTrackParameters->GetDouble(4), fTrackParameters->GetDouble(5), + fTrackParameters->GetDouble(6), fTrackParameters->GetDouble(7), fTrackParameters->GetDouble(8), fTrackParameters->GetDouble(9)); } diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/format/unigen/NicaUnigenEvent.cxx b/analysis/PWGC2F/femtoscopy/nicafemto/format/unigen/NicaUnigenEvent.cxx index 02b57a1eb45b6e7d6b39c102da9a0e874ec29119..1368cd2a22001f9a43cc117f615cff441eebbbce 100644 --- a/analysis/PWGC2F/femtoscopy/nicafemto/format/unigen/NicaUnigenEvent.cxx +++ b/analysis/PWGC2F/femtoscopy/nicafemto/format/unigen/NicaUnigenEvent.cxx @@ -9,21 +9,23 @@ #include "NicaUnigenEvent.h" -#include "NicaEventInterface.h" -#include "NicaLink.h" -#include "NicaMCTrack.h" -#include "NicaTrack.h" -#include "NicaUnigenEventInterface.h" - #include <FairRootManager.h> + #include <TClonesArray.h> #include <TDatabasePDG.h> #include <TLorentzVector.h> #include <TParticlePDG.h> +#include "NicaEventInterface.h" +#include "NicaLink.h" +#include "NicaMCTrack.h" +#include "NicaTrack.h" +#include "NicaUnigenEventInterface.h" + NicaUnigenEvent::NicaUnigenEvent() : NicaMCEvent("NicaUnigenTrack") {} -void NicaUnigenEvent::Update() { +void NicaUnigenEvent::Update() +{ UEvent* temp = ((NicaUnigenEventInterface*) fSource)->fEvent; fB = temp->GetB(); fPhi = temp->GetPhi(); @@ -35,43 +37,35 @@ void NicaUnigenEvent::Update() { Double_t charge = 0; if (pdg_part) { charge = pdg_part->Charge() / 3.0; } NicaMCTrack* target_track = (NicaMCTrack*) fTracks->ConstructedAt(i); - - target_track->SetID(i); + target_track->ResetTrack(i, this); target_track->SetCharge(charge); target_track->SetPdg(particle->GetPdg()); - target_track->GetLink()->ClearLinks(); - target_track->GetLink()->SetLink(0, i); - if (particle->GetParent() < 0) { - target_track->SetPrimary(); - } else { + if (particle->GetParent() < 0) { target_track->SetPrimary(); } + else { target_track->SetMotherIndex(particle->GetParent()); } - target_track->GetMomentum()->SetPxPyPzE( - particle->Px(), particle->Py(), particle->Pz(), particle->E()); - target_track->GetFreezoutPosition()->SetXYZT( - particle->X(), particle->Y(), particle->Z(), particle->T()); + target_track->GetMomentum()->SetPxPyPzE(particle->Px(), particle->Py(), particle->Pz(), particle->E()); + target_track->GetFreezoutPosition()->SetXYZT(particle->X(), particle->Y(), particle->Z(), particle->T()); target_track->SetStatus(particle->GetStatus()); - target_track->SetEvent(this); } } -void NicaUnigenEvent::Clear(Option_t* opt) { +void NicaUnigenEvent::Clear(Option_t* opt) +{ NicaMCEvent::Clear(opt); if (fSource) fSource->Clear(opt); } -NicaUnigenEvent::NicaUnigenEvent(const NicaUnigenEvent& other) - : NicaMCEvent(other) {} +NicaUnigenEvent::NicaUnigenEvent(const NicaUnigenEvent& other) : NicaMCEvent(other) {} -void NicaUnigenEvent::CreateSource() { - fSource = new NicaUnigenEventInterface(); -} +void NicaUnigenEvent::CreateSource() { fSource = new NicaUnigenEventInterface(); } NicaUnigenEvent::~NicaUnigenEvent() {} TString NicaUnigenEvent::GetFormatName() const { return "UnigenFormat"; } -Bool_t NicaUnigenEvent::ExistInTree() const { +Bool_t NicaUnigenEvent::ExistInTree() const +{ FairRootManager* manager = FairRootManager::Instance(); if (manager->CheckBranch("UEvent.")) { return kTRUE; } return kFALSE; diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/format/unigen/NicaUnigenEventInterface.cxx b/analysis/PWGC2F/femtoscopy/nicafemto/format/unigen/NicaUnigenEventInterface.cxx index 6e8901e69a189564c6824b5d498988c9cb952cd8..bb9d917df7767aff3b5550fb6aec9c0067102699 100644 --- a/analysis/PWGC2F/femtoscopy/nicafemto/format/unigen/NicaUnigenEventInterface.cxx +++ b/analysis/PWGC2F/femtoscopy/nicafemto/format/unigen/NicaUnigenEventInterface.cxx @@ -7,14 +7,15 @@ * Warsaw University of Technology, Faculty of Physics */ #include "NicaUnigenEventInterface.h" + #include "FairRootManager.h" + #include "NicaUnigenTrackInterface.h" -NicaUnigenEventInterface::NicaUnigenEventInterface() : fEvent(NULL) { - fEvent = new UEvent(); -} +NicaUnigenEventInterface::NicaUnigenEventInterface() : fEvent(NULL) { fEvent = new UEvent(); } -void NicaUnigenEventInterface::Compress(Int_t* map, Int_t map_size) { +void NicaUnigenEventInterface::Compress(Int_t* map, Int_t map_size) +{ Int_t track_pos = 0; for (int i = 0; i < map_size; i++) { Int_t good_track = map[i]; @@ -25,7 +26,8 @@ void NicaUnigenEventInterface::Compress(Int_t* map, Int_t map_size) { } } -void NicaUnigenEventInterface::CopyData(NicaEventInterface* s) { +void NicaUnigenEventInterface::CopyData(NicaEventInterface* s) +{ #ifdef UNIGEN_OLD CopyUnigen(((NicaUnigenEventInterface*) s)->fEvent, fEvent); #else @@ -33,9 +35,8 @@ void NicaUnigenEventInterface::CopyData(NicaEventInterface* s) { #endif } -void NicaUnigenEventInterface::CopyAndCompress(NicaEventInterface* s, - Int_t* map, - Int_t map_size) { +void NicaUnigenEventInterface::CopyAndCompress(NicaEventInterface* s, Int_t* map, Int_t map_size) +{ NicaUnigenEventInterface* ev = (NicaUnigenEventInterface*) s; fEvent->SetB(ev->fEvent->GetB()); fEvent->SetPhi(ev->fEvent->GetPhi()); @@ -55,7 +56,8 @@ void NicaUnigenEventInterface::CopyAndCompress(NicaEventInterface* s, } } -void NicaUnigenEventInterface::ConnectToTree() { +void NicaUnigenEventInterface::ConnectToTree() +{ FairRootManager* manager = FairRootManager::Instance(); if (CanDeleteEvent()) { if (fEvent) delete fEvent; @@ -63,7 +65,8 @@ void NicaUnigenEventInterface::ConnectToTree() { fEvent = (UEvent*) manager->GetObject("UEvent."); } -void NicaUnigenEventInterface::Boost(Double_t vx, Double_t vy, Double_t vz) { +void NicaUnigenEventInterface::Boost(Double_t vx, Double_t vy, Double_t vz) +{ for (int i = 0; i < fEvent->GetNpa(); i++) { UParticle* p = fEvent->GetParticle(i); TLorentzVector mom = p->GetMomentum(); @@ -75,28 +78,29 @@ void NicaUnigenEventInterface::Boost(Double_t vx, Double_t vy, Double_t vz) { } } -NicaUnigenEventInterface::~NicaUnigenEventInterface() { +NicaUnigenEventInterface::~NicaUnigenEventInterface() +{ if (CanDeleteEvent()) { if (fEvent) delete fEvent; } } -NicaTrackInterface* NicaUnigenEventInterface::GetTrackInterface() const { - return new NicaUnigenTrackInterface(); -} +NicaTrackInterface* NicaUnigenEventInterface::GetTrackInterface() const { return new NicaUnigenTrackInterface(); } -void NicaUnigenEventInterface::Register(Bool_t write) { +void NicaUnigenEventInterface::Register(Bool_t write) +{ if (fEvent == NULL) fEvent = new UEvent(); FairRootManager* manager = FairRootManager::Instance(); manager->Register("Event", "", (TNamed*) fEvent, write); } -void NicaUnigenEventInterface::FillTrackInterface(NicaTrackInterface* track, - Int_t index) { +void NicaUnigenEventInterface::FillTrackInterface(NicaTrackInterface* track, Int_t index) +{ track->SetRawTrack(fEvent->GetParticle(index)); } #ifdef UNIGEN_OLD -void NicaUnigenEventInterface::CopyUnigen(UEvent* from, UEvent* to) { +void NicaUnigenEventInterface::CopyUnigen(UEvent* from, UEvent* to) +{ to->GetParticleList()->Clear(); to->SetB(from->GetB()); to->SetPhi(from->GetPhi()); diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/format/unigen/NicaUnigenEventInterface.h b/analysis/PWGC2F/femtoscopy/nicafemto/format/unigen/NicaUnigenEventInterface.h index d2d8c1d99e97a51c2af6e006a2c82f23dee36702..c3c3673be82f0b21ba685c49035218d07555f710 100644 --- a/analysis/PWGC2F/femtoscopy/nicafemto/format/unigen/NicaUnigenEventInterface.h +++ b/analysis/PWGC2F/femtoscopy/nicafemto/format/unigen/NicaUnigenEventInterface.h @@ -34,21 +34,16 @@ public: virtual void Register(Bool_t write); virtual void Compress(Int_t* map, Int_t map_size); virtual void CopyData(NicaEventInterface* s); - virtual void - CopyAndCompress(NicaEventInterface* s, Int_t* map, Int_t map_size); + virtual void CopyAndCompress(NicaEventInterface* s, Int_t* map, Int_t map_size); virtual void FillTrackInterface(NicaTrackInterface* track, Int_t index); TObject* GetRawEventPointer() const { return fEvent; }; - virtual TObject* GetRawTrackPointer(Int_t index) const { - return fEvent->GetParticle(index); - }; + virtual TObject* GetRawTrackPointer(Int_t index) const { return fEvent->GetParticle(index); }; virtual NicaTrackInterface* GetTrackInterface() const; virtual void Clear(Option_t* opt = "") { fEvent->Clear(opt); }; /** GETTER SETTER SECTION*/ virtual void SetB(Double_t b) { fEvent->SetB(b); }; virtual void SetVertex(Double_t /*x*/, Double_t /*y*/, Double_t /*z*/) {}; - virtual void SetPhi(Double_t phi, Double_t /*phi_error*/) { - fEvent->SetPhi(phi); - }; + virtual void SetPhi(Double_t phi, Double_t /*phi_error*/) { fEvent->SetPhi(phi); }; virtual Double_t GetB() const { return fEvent->GetB(); }; virtual Double_t GetPhi() const { return fEvent->GetPhi(); }; virtual ~NicaUnigenEventInterface(); diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/format/unigen/NicaUnigenSource.cxx b/analysis/PWGC2F/femtoscopy/nicafemto/format/unigen/NicaUnigenSource.cxx index df71fd758a9b2242bf2d4c71f790deb85c82d14b..4a51cc9a32a9567858ed040e1e675e3da201cb9b 100644 --- a/analysis/PWGC2F/femtoscopy/nicafemto/format/unigen/NicaUnigenSource.cxx +++ b/analysis/PWGC2F/femtoscopy/nicafemto/format/unigen/NicaUnigenSource.cxx @@ -8,7 +8,7 @@ */ #include "NicaUnigenSource.h" -#include "FairRootManager.h" +#include <FairRootManager.h> #include <Logger.h> #include <TBranch.h> @@ -19,31 +19,34 @@ #include "UEvent.h" #include "UParticle.h" -NicaUnigenSource::NicaUnigenSource() - : fUnigenChain(NULL), fFileName("data.root"), fEvent(NULL) {} -NicaUnigenSource::NicaUnigenSource(TString inFile) - : fUnigenChain(NULL), fFileName(inFile), fEvent(NULL) {} +NicaUnigenSource::NicaUnigenSource() : fUnigenChain(NULL), fEvent(NULL) {} -NicaUnigenSource::~NicaUnigenSource() { +NicaUnigenSource::NicaUnigenSource(TString inFile) : fUnigenChain(NULL), fEvent(NULL) { fFileName.push_back(inFile); } + +NicaUnigenSource::~NicaUnigenSource() +{ if (fUnigenChain) delete fUnigenChain; } -Bool_t NicaUnigenSource::Init() { +Bool_t NicaUnigenSource::Init() +{ FairRootManager* mngr = FairRootManager::Instance(); fUnigenChain = new TChain("events"); - if (fFileName.EndsWith(".root")) { - LOG(debug) << "NicaUnigenSource: opening single file" << fFileName; - fUnigenChain->Add(fFileName); - } else { // this is long list + if (fFileName[0].EndsWith(".root")) { + for (auto i : fFileName) { + LOG(debug) << "NicaUnigenSource: opening single file" << i; + fUnigenChain->Add(i); + } + } + else { // this is long list std::ifstream list; - list.open(fFileName); + list.open(fFileName[0]); do { TString temp; list >> temp; - if (temp.Length() > 1) { - fUnigenChain->Add(temp); - } else { + if (temp.Length() > 1) { fUnigenChain->Add(temp); } + else { break; } LOG(debug) << "Adding file " << temp << " to chain"; @@ -56,7 +59,8 @@ Bool_t NicaUnigenSource::Init() { fUnigenChain->Print(); fUnigenChain->SetBranchStatus("event", 1); fUnigenChain->SetBranchAddress("event", &fEvent); - } else { + } + else { std::cout << "Event read II" << std::endl; fUnigenChain->SetBranchStatus("UEvent.", 1); fUnigenChain->SetBranchAddress("UEvent.", &fEvent); @@ -66,7 +70,8 @@ Bool_t NicaUnigenSource::Init() { return kTRUE; } -Int_t NicaUnigenSource::ReadEvent(UInt_t unsignedInt) { +Int_t NicaUnigenSource::ReadEvent(UInt_t unsignedInt) +{ //std::cout<<"READING EVENT " <<unsignedInt<<std::endl; fUnigenChain->GetEntry(unsignedInt); // std::cout<<"xxx"<<std::endl; @@ -75,7 +80,8 @@ Int_t NicaUnigenSource::ReadEvent(UInt_t unsignedInt) { void NicaUnigenSource::Close() {} -void NicaUnigenSource::Boost(Double_t vx, Double_t vy, Double_t vz) { +void NicaUnigenSource::Boost(Double_t vx, Double_t vy, Double_t vz) +{ for (int i = 0; i < fEvent->GetNpa(); i++) { UParticle* p = fEvent->GetParticle(i); TLorentzVector mom = p->GetMomentum(); @@ -87,6 +93,4 @@ void NicaUnigenSource::Boost(Double_t vx, Double_t vy, Double_t vz) { } } -Int_t NicaUnigenSource::CheckMaxEventNo(Int_t /*int1*/) { - return fUnigenChain->GetEntries(); -} +Int_t NicaUnigenSource::CheckMaxEventNo(Int_t /*int1*/) { return fUnigenChain->GetEntries(); } diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/format/unigen/NicaUnigenSource.h b/analysis/PWGC2F/femtoscopy/nicafemto/format/unigen/NicaUnigenSource.h index 438ff8739a34c53c6503b398c9f6775afe100ed0..765f2750dc0b4fd441e36bc4b0eb181b17d80dbd 100644 --- a/analysis/PWGC2F/femtoscopy/nicafemto/format/unigen/NicaUnigenSource.h +++ b/analysis/PWGC2F/femtoscopy/nicafemto/format/unigen/NicaUnigenSource.h @@ -11,13 +11,17 @@ /** *class only for reading pure unigen files */ -#include "FairFileSource.h" + + +#include <FairFileSource.h> + #include <TChain.h> #include "UEvent.h" + class NicaUnigenSource : public FairSource { TChain* fUnigenChain; - TString fFileName; + std::vector<TString> fFileName; UEvent* fEvent; public: @@ -35,6 +39,7 @@ public: * @param source */ NicaUnigenSource(const NicaUnigenSource& source) = delete; + void AddFile(TString name) { fFileName.push_back(name); }; NicaUnigenSource& operator=(const NicaUnigenSource&) = delete; virtual void Boost(Double_t vx, Double_t vy, Double_t vz); virtual ~NicaUnigenSource(); diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/format/unigen/NicaUnigenTrack.h b/analysis/PWGC2F/femtoscopy/nicafemto/format/unigen/NicaUnigenTrack.h index 91619fd7e9e4f81dad21e73868780a088b663803..b2980bceb8d46437b0991c5ed8bf77e46f13770b 100644 --- a/analysis/PWGC2F/femtoscopy/nicafemto/format/unigen/NicaUnigenTrack.h +++ b/analysis/PWGC2F/femtoscopy/nicafemto/format/unigen/NicaUnigenTrack.h @@ -14,6 +14,7 @@ #include "NicaMCTrack.h" #include "UParticle.h" + /** * class for representation of track from unigen in "fake" format */ diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/format/unigen/NicaUnigenTrackInterface.h b/analysis/PWGC2F/femtoscopy/nicafemto/format/unigen/NicaUnigenTrackInterface.h index a606ef58c4a0a4d4aa5362dd9ef2df971c4f585d..a024ee104bdb8f2345769c6be2f2fe2fb2213854 100644 --- a/analysis/PWGC2F/femtoscopy/nicafemto/format/unigen/NicaUnigenTrackInterface.h +++ b/analysis/PWGC2F/femtoscopy/nicafemto/format/unigen/NicaUnigenTrackInterface.h @@ -18,7 +18,8 @@ class NicaUnigenTrackInterface : public NicaMCTrackInterface { public: NicaUnigenTrackInterface(); void SetID(Int_t id) { ((UParticle*) fRawObject)->SetUniqueID(id); }; - void SetPxPyPzE(Double_t px, Double_t py, Double_t pz, Double_t e) { + void SetPxPyPzE(Double_t px, Double_t py, Double_t pz, Double_t e) + { ((UParticle*) fRawObject)->SetMomentum(px, py, pz, e); }; void SetStatus(Int_t stat) { ((UParticle*) fRawObject)->SetStatus(stat); }; diff --git a/analysis/PWGC2F/femtoscopy/nicafemto/helpers/CbmDetectorID.h b/analysis/PWGC2F/femtoscopy/nicafemto/helpers/CbmDetectorID.h index 9a9a7b8283d31f93da9b0eda1f32491e36c12ce3..0b180d03f162a446b11ced2c31cd5899c159f67e 100644 --- a/analysis/PWGC2F/femtoscopy/nicafemto/helpers/CbmDetectorID.h +++ b/analysis/PWGC2F/femtoscopy/nicafemto/helpers/CbmDetectorID.h @@ -9,7 +9,7 @@ #ifndef CBMROOT_NICA_CBM_HELPERS_CBMDETECTORID_H_ #define CBMROOT_NICA_CBM_HELPERS_CBMDETECTORID_H_ -#include "NicaDetectorID.h" +#include "NicaDataFormat.h" namespace NicaCbmDetectorID { const UInt_t kTOF = NicaDetectorID::kTOF; diff --git a/analysis/common/analysis_tree_converter/CMakeLists.txt b/analysis/common/analysis_tree_converter/CMakeLists.txt index f918cbeec0d0616ad22a007520bf102f51d49de1..a4b18142c2e0101b34d62926a5da8e12159b7cd9 100644 --- a/analysis/common/analysis_tree_converter/CMakeLists.txt +++ b/analysis/common/analysis_tree_converter/CMakeLists.txt @@ -39,6 +39,7 @@ Set(INCLUDE_DIRECTORIES ${CBMROOT_SOURCE_DIR}/reco/L1/ParticleFinder ${KFParticle_INCLUDE_DIR} ${AnalysisTree_INCLUDE_DIR} + ${CBMROOT_SOURCE_DIR}/sim/transport/generators/unigen ) Include_Directories (${INCLUDE_DIRECTORIES}) @@ -81,6 +82,7 @@ Set(DEPENDENCIES CbmBase KF L1 + CbmSimGenerators Vc.a) Set(DEFINITIONS -DDO_TPCCATRACKER_EFF_PERFORMANCE -DNonhomogeneousField -DCBM -DUSE_TIMERS) diff --git a/analysis/common/analysis_tree_converter/CbmConverterManager.h b/analysis/common/analysis_tree_converter/CbmConverterManager.h index ce3b9ebdb80c65f4ad9d0f26ab6c58c90ae45bcb..7be50dd637a0d1b9d0f3e71869e317acf119d8e5 100644 --- a/analysis/common/analysis_tree_converter/CbmConverterManager.h +++ b/analysis/common/analysis_tree_converter/CbmConverterManager.h @@ -34,10 +34,7 @@ public: void SetSystem(const std::string& system) { system_ = system; } void SetBeamMomentum(float beam_mom) { beam_mom_ = beam_mom; } - void SetOutputName(std::string file, std::string tree = "aTree") - { - task_manager_->SetOutputName(std::move(file), std::move(tree)); - } + void SetOutputName(std::string file, std::string tree = "rTree") { task_manager_->SetOutputName(file, tree); } private: void FillDataHeader(); diff --git a/analysis/common/analysis_tree_converter/CbmSimTracksConverter.cxx b/analysis/common/analysis_tree_converter/CbmSimTracksConverter.cxx index 6b3b4ceae2c8bd8f225b2da02fcd18c49a6b89c6..7b177aeda7ed9ccc536c699a5d9aba08b7c30943 100644 --- a/analysis/common/analysis_tree_converter/CbmSimTracksConverter.cxx +++ b/analysis/common/analysis_tree_converter/CbmSimTracksConverter.cxx @@ -2,22 +2,36 @@ #include "CbmMCTrack.h" +#include "FairLogger.h" +#include "FairMCEventHeader.h" #include "FairRootManager.h" -#include "TClonesArray.h" +#include <TClonesArray.h> +#include <TDirectory.h> +#include <TFile.h> +#include <TRandom.h> +#include <TString.h> +#include <TTree.h> -#include <AnalysisTree/TaskManager.hpp> #include <cassert> #include <vector> +#include "AnalysisTree/TaskManager.hpp" +#include "UEvent.h" +#include "UParticle.h" +#include "URun.h" + ClassImp(CbmSimTracksConverter) void CbmSimTracksConverter::Init() { assert(!out_branch_.empty()); - auto* ioman = FairRootManager::Instance(); + auto* ioman = FairRootManager::Instance(); + + cbm_mc_tracks_ = (TClonesArray*) ioman->GetObject("MCTrack"); + cbm_header_ = (FairMCEventHeader*) ioman->GetObject(fEventHeaderBranch); AnalysisTree::BranchConfig sim_particles_branch(out_branch_, AnalysisTree::DetType::kParticle); sim_particles_branch.AddField<int>("mother_id", "id of mother particle, -1 for primaries"); @@ -25,6 +39,40 @@ ClassImp(CbmSimTracksConverter) sim_particles_branch.AddField<int>("geant_process_id", ""); sim_particles_branch.AddFields<int>({"n_hits_mvd", "n_hits_sts", "n_hits_trd"}, "Number of hits in the detector"); + //TDirectory* currentDir = gDirectory; + if (fUnigenFile.Length() > 0) { + fFile = new TFile(fUnigenFile, "READ"); + fFile->Print(); + if (fFile->IsOpen()) { + fTree = (TTree*) fFile->Get("events"); + if (fTree) fUseUnigen = kTRUE; + fTree->SetBranchAddress("event", &fUnigenEvent); + URun* run = dynamic_cast<URun*>(fFile->Get("run")); + if (run == nullptr) { + LOG(error) << "CbmSimTracksConverter: No run description in urqmd file!"; + delete fFile; + fFile = nullptr; + fUseUnigen = kFALSE; + } + else { + Double_t mProt = 0.938272; + Double_t pTarg = run->GetPTarg(); // target momentum per nucleon + Double_t pProj = run->GetPProj(); // projectile momentum per nucleon + Double_t eTarg = TMath::Sqrt(pProj * pProj + mProt * mProt); + fBetaCM = pTarg / eTarg; + } + } + } + else { + LOG(info) << "lack of unigen file" << fUnigenFile; + } + + if (fUseUnigen) { + sim_particles_branch.AddField<float>("xfreez", "x freezout coordinate fm/c"); + sim_particles_branch.AddField<float>("yfreez", "y freezout coordinate fm/c"); + sim_particles_branch.AddField<float>("zfreez", "z freezout coordinate fm/c"); + sim_particles_branch.AddField<float>("tfreez", "t freezout coordinate fm/c"); + } auto* man = AnalysisTree::TaskManager::GetInstance(); man->AddBranch(out_branch_, sim_tracks_, sim_particles_branch); } @@ -34,6 +82,12 @@ void CbmSimTracksConverter::Exec() assert(cbm_mc_tracks_); out_indexes_map_.clear(); + if (fUseUnigen) { + fTree->GetEntry(fEntry++); + const Double_t unigen_phi = fUnigenEvent->GetPhi(); + const Double_t mc_phi = cbm_header_->GetRotZ(); + fDeltaPhi = mc_phi - unigen_phi; + } sim_tracks_->ClearChannels(); auto* out_config_ = AnalysisTree::TaskManager::GetInstance()->GetConfig(); const auto& branch = out_config_->GetBranchConfig(out_branch_); @@ -45,6 +99,15 @@ void CbmSimTracksConverter::Exec() const int icbm_id = branch.GetFieldId("cbmroot_id"); sim_tracks_->Reserve(nMcTracks); + int freezX = 0, freezY = 0, freezZ = 0, freezT = 0; + if (fUseUnigen) { + freezX = out_config_->GetBranchConfig(sim_tracks_->GetId()).GetFieldId("xfreez"); + freezY = out_config_->GetBranchConfig(sim_tracks_->GetId()).GetFieldId("yfreez"); + freezZ = out_config_->GetBranchConfig(sim_tracks_->GetId()).GetFieldId("zfreez"); + freezT = out_config_->GetBranchConfig(sim_tracks_->GetId()).GetFieldId("tfreez"); + } + + const Double_t nsTofmc = 1. / (0.3356 * 1E-15); for (int iMcTrack = 0; iMcTrack < nMcTracks; ++iMcTrack) { const auto* mctrack = (CbmMCTrack*) cbm_mc_tracks_->At(iMcTrack); @@ -74,6 +137,44 @@ void CbmSimTracksConverter::Exec() track.SetField(int(p->second), imother_id); } } + if (fUseUnigen) { + if (mctrack->GetMotherId() == -1) { // is primary + if (iMcTrack >= fUnigenEvent->GetNpa()) { // skip embedded (?) tracks + track.SetField(float(gRandom->Gaus(0, 200)), freezX); + track.SetField(float(gRandom->Gaus(0, 200)), freezY); + track.SetField(float(gRandom->Gaus(0, 200)), freezZ); + track.SetField(float(gRandom->Gaus(0, 200)), freezT); + } + else { + UParticle* p = fUnigenEvent->GetParticle(iMcTrack); + TLorentzVector boostedX = p->GetPosition(); + boostedX.Boost(0, 0, -fBetaCM); + boostedX.RotateZ(fDeltaPhi); + track.SetField(float(boostedX.X()), freezX); + track.SetField(float(boostedX.Y()), freezY); + track.SetField(float(boostedX.Z()), freezZ); + track.SetField(float(boostedX.T()), freezT); + } + } + else { + Double_t x = mctrack->GetStartX() - cbm_header_->GetX(); + Double_t y = mctrack->GetStartY() - cbm_header_->GetY(); + Double_t z = mctrack->GetStartZ() - cbm_header_->GetZ(); + Double_t t = mctrack->GetStartT() - cbm_header_->GetT(); + + track.SetField(float(x * 1.E+13), freezX); + track.SetField(float(y * 1.E+13), freezY); + track.SetField(float(z * 1.E+13), freezZ); + track.SetField(float(t * nsTofmc), freezT); + } + } } } -CbmSimTracksConverter::~CbmSimTracksConverter() { delete sim_tracks_; }; +CbmSimTracksConverter::~CbmSimTracksConverter() +{ + delete sim_tracks_; + if (fFile) { + // fFile->Close(); + // delete fFile; + } +}; diff --git a/analysis/common/analysis_tree_converter/CbmSimTracksConverter.h b/analysis/common/analysis_tree_converter/CbmSimTracksConverter.h index e969a06b8a9b899fb89fddd9fd0ebe4dd4ccb0c2..2bc65cd39bdc0fa2914bec88a684e58654022c63 100644 --- a/analysis/common/analysis_tree_converter/CbmSimTracksConverter.h +++ b/analysis/common/analysis_tree_converter/CbmSimTracksConverter.h @@ -3,14 +3,32 @@ #include "CbmConverterTask.h" +#include <TString.h> + #include "AnalysisTree/Detector.hpp" class TClonesArray; +class UEvent; +class TFile; +class TTree; +class FairMCEventHeader; class CbmSimTracksConverter final : public CbmConverterTask { + + public: - explicit CbmSimTracksConverter(std::string out_branch_name, std::string match_to = "") - : CbmConverterTask(std::move(out_branch_name), std::move(match_to)) {}; + explicit CbmSimTracksConverter(std::string out_branch_name, std::string match_to = "", std::string unigen_name = "", + std::string mc_eventheader = "MCEventHeader.") + : CbmConverterTask(std::move(out_branch_name), std::move(match_to)) + , fUnigenEvent(nullptr) + , fFile(nullptr) + , fTree(nullptr) + , fUnigenFile(unigen_name) + , fEventHeaderBranch(mc_eventheader) + , fEntry(0) + , fUseUnigen(kFALSE) + , fDeltaPhi(0) + , fBetaCM(0) {}; ~CbmSimTracksConverter() final; @@ -20,7 +38,17 @@ public: private: AnalysisTree::Particles* sim_tracks_ {nullptr}; + FairMCEventHeader* cbm_header_ {nullptr}; TClonesArray* cbm_mc_tracks_ {nullptr}; + UEvent* fUnigenEvent; + TFile* fFile; + TTree* fTree; + TString fUnigenFile; + TString fEventHeaderBranch; + Int_t fEntry; + Bool_t fUseUnigen; + Double_t fDeltaPhi; + Double_t fBetaCM; // CM velocity in the lab frame ClassDef(CbmSimTracksConverter, 1) }; diff --git a/external/InstallNicaFemto.cmake b/external/InstallNicaFemto.cmake index f77aba58ff81f1dc816996d5e15e3a61e08759ce..dfa5714cf645367f11e351b34152a8a33ca77946 100644 --- a/external/InstallNicaFemto.cmake +++ b/external/InstallNicaFemto.cmake @@ -1,4 +1,4 @@ -set(NICAFEMTO_VERSION 7b5fe1ef06433c55ee9f11efef05872c177f273f) +set(NICAFEMTO_VERSION 0350ba6a6c4548d5a5b880d8698c25446525723c) set(NICAFEMTO_SRC_URL "https://git.jinr.ru/nica/nicafemto.git") set(NICAFEMTO_DESTDIR "${CMAKE_BINARY_DIR}/external/NICAFEMTO-prefix") diff --git a/macro/analysis/cbmfemto/hbt_anatree.C b/macro/analysis/cbmfemto/hbt_anatree.C index b2bda782a9143501f2e63e0fb8532f7fc940a266..55249fc8a45d588bc3844c6887586308ce476f15 100644 --- a/macro/analysis/cbmfemto/hbt_anatree.C +++ b/macro/analysis/cbmfemto/hbt_anatree.C @@ -1,3 +1,4 @@ + /* * hbt_anatree.C * @@ -10,12 +11,6 @@ * example macro for pi-pi analysis */ #ifndef __CLING__ -#include <FairLogger.h> -#include <FairRunAna.h> -#include <RtypesCore.h> -#include <TString.h> -#include <iostream> - #include "CbmAnaTreeSource.h" #include "CbmBasicFemtoPairCut.h" #include "CbmBasicTrackCuts.h" @@ -27,10 +22,23 @@ #include "CbmStsExitSepCut.h" #include "CbmStsTrackHitsCut.h" #include "CbmTofTrackCuts.h" +#include "data/CbmDefs.h" + #include "FairFileSource.h" #include "FairParRootFileIo.h" -#include "NicaCbmATFullEvent.h" +#include <FairLogger.h> +#include <FairRunAna.h> + +#include "TFile.h" +#include <RtypesCore.h> +#include <TStopwatch.h> +#include <TString.h> +#include <TTimer.h> + +#include <iostream> + #include "NicaCbmFirstTask.h" +#include "NicaCbmFullEvent.h" #include "NicaCbmGlobalMCEvent.h" #include "NicaCbmMCEvent.h" #include "NicaCut.h" @@ -64,11 +72,6 @@ #include "NicaTrackPtCut.h" #include "NicaTrackPzCut.h" #include "NicaTwoTrackFemtoQinvCut.h" -#include "TFile.h" -#include <TStopwatch.h> -#include <TTimer.h> - -#include "data/CbmDefs.h" using namespace std; #endif @@ -78,11 +81,11 @@ using namespace std; #define KRONOS -void SetEventCut(NicaEventAna* task) { +void SetEventCut(NicaEventAna* task) +{ NicaEventVertexCut vtx; task->AddCut(vtx, "im"); - NicaCutMonitorXY vtxM( - vtx.CutName("im"), vtx.Z(), vtx.CutName("im"), vtx.Rt()); + NicaCutMonitorXY vtxM(vtx.CutName("im"), vtx.Z(), vtx.CutName("im"), vtx.Rt()); vtxM.SetXaxis(100, 0, 1); vtxM.SetYaxis(200, 0, 2); task->AddCutMonitor(vtxM); @@ -97,7 +100,8 @@ void SetEventCut(NicaEventAna* task) { task->AddCutMonitor(phiM); task->AddCutMonitor(bM); } -void SetTrackCuts(NicaEventAna* task, Bool_t mc = kTRUE) { +void SetTrackCuts(NicaEventAna* task, Bool_t mc = kTRUE) +{ CbmBasicTrackCuts basic; basic.SetCharge(-1); basic.SetM2(-0.1, 0.1); @@ -110,7 +114,8 @@ void SetTrackCuts(NicaEventAna* task, Bool_t mc = kTRUE) { if (mc) { task->AddCut(pid, "im"); } } -void SetPairCuts(NicaTwoTrackAna* task) { +void SetPairCuts(NicaTwoTrackAna* task) +{ CbmBasicFemtoPairCut combinedCut; combinedCut.SetR(25); combinedCut.SetDeltaPhiStarCut(-0.01, 0.01); @@ -122,9 +127,8 @@ void SetPairCuts(NicaTwoTrackAna* task) { task->AddCutsAndMonitors(combinedCut); } -void hbt_anatree( - TString inFile = "/media/daniel/WD/anatree/1.analysistree.root", - TString outFile = "test2.root") { +void hbt_anatree(TString inFile = "/media/daniel/WD/anatree/1.analysistree.root", TString outFile = "test2.root") +{ FairRunAna* ana = new FairRunAna(); // inFile = "/home/daniel/temp/00001.mini.root"; FairSource* source = new CbmAnaTreeSource(inFile); @@ -137,8 +141,7 @@ void hbt_anatree( log->SetLogVerbosityLevel("high"); NicaFemtoBasicAna* task = new NicaFemtoBasicAna(); - task->SetCorrFctn(NicaFemtoCorrFuncKt( - NicaFemto1DCF("cf", 100, 0, 1, ENicaFemtoKinematics::kLCMS), {0, 10})); + task->SetCorrFctn(NicaFemtoCorrFuncKt(NicaFemto1DCF("cf", 100, 0, 1, ENicaFemtoKinematics::kLCMS), {0, 10})); task->SetOption(NicaTwoTrackAna::BackgroundOptionMixed()); task->SetWeight(NicaFemtoWeightGenerator()); task->SetPdg(211); @@ -148,11 +151,11 @@ void hbt_anatree( * speed up analysis by using compression and special HBT format * the sts exit distance and phi* are calculated once per track */ - task->SetFormat(new NicaCbmATFullEvent(), ENicaFormatDepth::kNonBuffered); + task->SetFormat(new NicaCbmFullEvent(), ENicaFormatDepth::kNonBuffered); task->SetFormat(new CbmHbtFullEvent(), ENicaFormatDepth::kBuffered); task->SetFormatOption(NicaEventAna::EFormatOption::kCompress); #else - task->SetFormat(new NicaCbmATFullEvent()); + task->SetFormat(new NicaCbmFullEvent()); #endif SetEventCut(task); SetTrackCuts(task); diff --git a/macro/analysis/cbmfemto/show_hbt.C b/macro/analysis/cbmfemto/show_hbt.C index a6d927ade0509302adb5e8f2e78f5995364295f6..8f2aacad3a0125e184ec5a05568d65e41581eb89 100644 --- a/macro/analysis/cbmfemto/show_hbt.C +++ b/macro/analysis/cbmfemto/show_hbt.C @@ -8,7 +8,6 @@ */ #ifndef __CLING__ - #include "NicaAnaFile.h" #include "NicaFemto1DCF.h" #include "NicaFemtoCorrFuncKt.h" diff --git a/macro/analysis/common/analysis_tree_converter/batch/batch_run.sh b/macro/analysis/common/analysis_tree_converter/batch/batch_run.sh index 305b6354b25e2bf78bba62276f3b8d377e580a5d..26a5557610d2b7a0746147d8bb42073e8a4815d4 100755 --- a/macro/analysis/common/analysis_tree_converter/batch/batch_run.sh +++ b/macro/analysis/common/analysis_tree_converter/batch/batch_run.sh @@ -36,4 +36,5 @@ cp $MACRO_DIR/run_analysis_tree_maker.C ./ root -l -q -b "run_transport.C($N_EVENTS, \"$SETUP\", \"$DATA_SET\", \"$INPUT_FILE\")" >& log_tr_$INDEX.txt root -l -q -b "run_digi.C(\"$DATA_SET\", $N_EVENTS, \"$DATA_SET\", -1)" >& log_digi_$INDEX.txt root -l -q -b "run_reco_event.C($N_EVENTS, \"$DATA_SET\", \"$SETUP\")" >& log_reco_$INDEX.txt -root -l -q -b "run_analysis_tree_maker.C(\"$DATA_SET\", \"$SETUP\")" >& log_$INDEX.txt +root -l -q -b "run_analysis_tree_maker.C(\"$DATA_SET\", \"$SETUP\",\"$INPUT_FILE\")" >& log_$INDEX.txt + diff --git a/macro/analysis/common/analysis_tree_converter/run_analysis_tree_maker.C b/macro/analysis/common/analysis_tree_converter/run_analysis_tree_maker.C index a5d35d3126ed692e4c96f02c6f4f15560cd73074..b06805607b4cf0b6905de826110618899a385bfb 100644 --- a/macro/analysis/common/analysis_tree_converter/run_analysis_tree_maker.C +++ b/macro/analysis/common/analysis_tree_converter/run_analysis_tree_maker.C @@ -1,6 +1,7 @@ -void run_analysis_tree_maker(TString dataSet = "../../../run/test", - TString setupName = "sis100_electron") { +void run_analysis_tree_maker(TString dataSet = "../../../run/test", TString setupName = "sis100_electron", + TString unigenFile = "") +{ const std::string system = "Au+Au"; // TODO can we read it automatically? const float beam_mom = 12.; @@ -15,13 +16,13 @@ void run_analysis_tree_maker(TString dataSet = "../../../run/test", // ------------------------------------------------------------------------ // ----- In- and output file names ------------------------------------ - TString traFile = dataSet + ".tra.root"; - TString rawFile = dataSet + ".event.raw.root"; - TString recFile = dataSet + ".rec.root"; - TString geoFile = dataSet + ".geo.root"; - TString parFile = dataSet + ".par.root"; - const std::string outFile = - dataSet.Data() + std::string(".analysistree.root"); + TString traFile = dataSet + ".tra.root"; + TString rawFile = dataSet + ".event.raw.root"; + TString recFile = dataSet + ".rec.root"; + TString geoFile = dataSet + ".geo.root"; + TString parFile = dataSet + ".par.root"; + const std::string outFile = dataSet.Data() + std::string(".analysistree.root"); + if (unigenFile.Length() == 0) { unigenFile = srcDir + "/input/urqmd.auau.10gev.centr.root"; } // ------------------------------------------------------------------------ // ----- Remove old CTest runtime dependency file ---------------------- @@ -32,8 +33,7 @@ void run_analysis_tree_maker(TString dataSet = "../../../run/test", // ----- Load the geometry setup ------------------------------------- std::cout << std::endl; - const TString setupFile = - srcDir + "/geometry/setup/setup_" + setupName + ".C"; + const TString setupFile = srcDir + "/geometry/setup/setup_" + setupName + ".C"; const TString setupFunct = "setup_" + setupName + "()"; std::cout << "-I- " << myName << ": Loading macro " << setupFile << std::endl; @@ -51,9 +51,9 @@ void run_analysis_tree_maker(TString dataSet = "../../../run/test", auto* parFileList = new TList(); std::cout << "-I- " << myName << ": Using raw file " << rawFile << std::endl; - std::cout << "-I- " << myName << ": Using parameter file " << parFile - << std::endl; + std::cout << "-I- " << myName << ": Using parameter file " << parFile << std::endl; std::cout << "-I- " << myName << ": Using reco file " << recFile << std::endl; + if (unigenFile.Length() > 0) std::cout << "-I- " << myName << ": Using unigen file " << unigenFile << std::endl; // ----- Reconstruction run ------------------------------------------- auto* run = new FairRunAna(); @@ -82,14 +82,12 @@ void run_analysis_tree_maker(TString dataSet = "../../../run/test", auto* l1 = new CbmL1("CbmL1", 1, 3); if (setup->IsActive(ECbmModuleId::kMvd)) { setup->GetGeoTag(ECbmModuleId::kMvd, geoTag); - const TString mvdMatBudgetFileName = - srcDir + "/parameters/mvd/mvd_matbudget_" + geoTag + ".root"; + const TString mvdMatBudgetFileName = srcDir + "/parameters/mvd/mvd_matbudget_" + geoTag + ".root"; l1->SetMvdMaterialBudgetFileName(mvdMatBudgetFileName.Data()); } if (setup->IsActive(ECbmModuleId::kSts)) { setup->GetGeoTag(ECbmModuleId::kSts, geoTag); - const TString stsMatBudgetFileName = - srcDir + "/parameters/sts/sts_matbudget_" + geoTag + ".root"; + const TString stsMatBudgetFileName = srcDir + "/parameters/sts/sts_matbudget_" + geoTag + ".root"; l1->SetStsMaterialBudgetFileName(stsMatBudgetFileName.Data()); } run->AddTask(l1); @@ -97,8 +95,7 @@ void run_analysis_tree_maker(TString dataSet = "../../../run/test", // --- TRD pid tasks if (setup->IsActive(ECbmModuleId::kTrd)) { - CbmTrdSetTracksPidLike* trdLI = - new CbmTrdSetTracksPidLike("TRDLikelihood", "TRDLikelihood"); + CbmTrdSetTracksPidLike* trdLI = new CbmTrdSetTracksPidLike("TRDLikelihood", "TRDLikelihood"); trdLI->SetUseMCInfo(kTRUE); trdLI->SetUseMomDependence(kTRUE); run->AddTask(trdLI); @@ -116,10 +113,9 @@ void run_analysis_tree_maker(TString dataSet = "../../../run/test", man->AddTask(new CbmSimEventHeaderConverter("SimEventHeader")); man->AddTask(new CbmRecEventHeaderConverter("RecEventHeader")); - man->AddTask(new CbmSimTracksConverter("SimParticles")); + man->AddTask(new CbmSimTracksConverter("SimParticles", "", unigenFile.Data())); - CbmStsTracksConverter* taskCbmStsTracksConverter = - new CbmStsTracksConverter("VtxTracks", "SimParticles"); + CbmStsTracksConverter* taskCbmStsTracksConverter = new CbmStsTracksConverter("VtxTracks", "SimParticles"); taskCbmStsTracksConverter->SetIsWriteKFInfo(); taskCbmStsTracksConverter->SetIsReproduceCbmKFPF(); man->AddTask(taskCbmStsTracksConverter); diff --git a/macro/analysis/common/qa/run_qa_to_html.C b/macro/analysis/common/qa/run_qa_to_html.C new file mode 100644 index 0000000000000000000000000000000000000000..a12c6aa917edd91bd56b33457bceb11c7a6ac02e --- /dev/null +++ b/macro/analysis/common/qa/run_qa_to_html.C @@ -0,0 +1,57 @@ +/* + * run_qa_to_html.C + * simple macro for export of QA into html report + * note: due to some security settings in modern browsers, the histograms are not working on local data, to browse them upload + * report to server, you can also use command "python3 -m http.server" + * Created on: 11 mar 2021 + * Author: Daniel Wielanek + * E-mail: daniel.wielanek@gmail.com + * Warsaw University of Technology, Faculty of Physics + */ + +void run_qa_to_html(TString rootFile = "cbm_qa.root", TString outDir = "html") +{ + TFile* f = new TFile(rootFile); + TList* list = f->GetListOfKeys(); + gSystem->mkdir(outDir); + NicaHtmlFile* html = new NicaHtmlFile(Form("%s/index.html", outDir.Data())); + NicaHtmlTable table("main_table", "nicatable", ""); + NicaHtmlRow row1("", "red_", ""); //id/class/style + NicaHtmlCellCol cell1("HtmlReport", 2); + row1.AddContent(cell1); + table.AddContent(row1); + Int_t histo_count = 0; + for (int i = 0; i < list->GetEntries(); i++) { + TKey* key = (TKey*) list->At(i); + TObject* obj = f->Get(key->GetName()); + if (obj->InheritsFrom("TDirectory")) { + TDirectory* dir = (TDirectory*) obj; + TList* dirList = dir->GetListOfKeys(); + NicaHtmlRow dirRow("", "green_", ""); + dirRow.AddContent(NicaHtmlCell(dir->GetName())); + NicaHtmlCell cell2; + cell2.SetStringContent(NicaHtmlCore::GetHideButtonRow(Form("list_%i", i), "Show/Hide")); + dirRow.AddContent(cell2); + table.AddContent(dirRow); + for (int j = 0; j < dirList->GetEntries(); j++) { + TKey* key2 = (TKey*) dirList->At(j); + TObject* hobj = dir->Get(key2->GetName()); + if (hobj->InheritsFrom("TH1")) { + TH1* histo = (TH1*) hobj; + NicaHtmlRow rowHist("", Form("list_%i light_blue", i), "display:none"); + NicaHtmlCell cellName(key2->GetName()); + cellName.SetClass("light_blue"); + rowHist.AddContent(cellName); + NicaHtmlCell cellContent; + cellContent.SetStringContent(NicaHtmlCore::GetLinkToHistogram(histo, histo_count++, outDir)); + rowHist.AddContent(cellContent); + table.AddContent(rowHist); + } + } + } + } + f->Close(); + html->AddContent(table); + html->Save(); + delete html; +}