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;
+}