diff --git a/reco/L1/CMakeLists.txt b/reco/L1/CMakeLists.txt
index 1dd572a61b4d98e4ae3e825b1147aad35b533054..4d4deee982232758e129366e258b4f6622a4487c 100644
--- a/reco/L1/CMakeLists.txt
+++ b/reco/L1/CMakeLists.txt
@@ -32,8 +32,6 @@ set(SRCS
   CbmL1TrackMerger.cxx 
   CbmL1TofMerger.cxx
  # L1AlgoInputData.cxx
-  #OffLineInterface/CbmL1RichENNRingFinder.cxx
-  #OffLineInterface/CbmL1RichENNRingFinderParallel.cxx 
   OffLineInterface/CbmL1StsTrackFinder.cxx 
   OffLineInterface/CbmL1GlobalTrackFinder.cxx 
   OffLineInterface/CbmL1GlobalFindTracksEvents.cxx
@@ -41,7 +39,6 @@ set(SRCS
   #OffLineInterface / CbmL1MuchHit.cxx
   #OffLineInterface / CbmL1MuchTrack.cxx
   #OffLineInterface / CbmL1MuchFinderQa.cxx
-  #OffLineInterface/CbmL1RichRingQa.cxx
   #OffLineInterface / CbmL1SttHit.cxx
   #OffLineInterface / CbmL1SttTrackFinder.cxx
   #OffLineInterface / CbmL1SttTrack.cxx 
diff --git a/reco/L1/L1LinkDef.h b/reco/L1/L1LinkDef.h
index 686ad40584ff2c6ccda09030d1c7e6fec271e5a8..152819d5b8d7caee5feae0c09dc26d3778532cfc 100644
--- a/reco/L1/L1LinkDef.h
+++ b/reco/L1/L1LinkDef.h
@@ -11,7 +11,6 @@
 #pragma link off all functions;
 
 #pragma link C++ class CbmL1 + ;
-//#pragma link C++ class CbmL1RichENNRingFinder + ;
 #pragma link C++ class CbmL1StsTrackFinder + ;
 //#pragma link C++ class  CbmL1TrdTrackFinderSts+;
 #pragma link C++ class CbmL1TrackMerger + ;
@@ -20,7 +19,6 @@
 //#pragma link C++ class  CbmL1MuchHit+;
 //#pragma link C++ class  CbmL1MuchTrack+;
 //#pragma link C++ class  CbmL1MuchFinderQa+;
-//#pragma link C++ class CbmL1RichRingQa + ;
 #pragma link C++ class CbmL1TrdTracklet + ;
 #pragma link C++ class CbmL1TrdTracklet4 + ;
 #pragma link C++ class CbmL1GlobalTrackFinder + ;
diff --git a/reco/detectors/rich/CMakeLists.txt b/reco/detectors/rich/CMakeLists.txt
index c0105f9f1232e9fb222404994059d5b73855e65a..6e9d3f88911b98b3bbd1f231f75258f40dcdb5df 100644
--- a/reco/detectors/rich/CMakeLists.txt
+++ b/reco/detectors/rich/CMakeLists.txt
@@ -33,6 +33,7 @@ set(SRCS
   qa/CbmRichUrqmdTest.cxx
   qa/CbmRichGeoTestOpt.cxx
   qa/CbmRichRecoQa.cxx
+  qa/CbmL1RichRingQa.cxx
 
   unpack/CbmRichUnpackAlgo.cxx
   unpack/CbmRichUnpackAlgo2022.cxx
@@ -43,9 +44,12 @@ set(SRCS
 
 set(NO_DICT_SRCS
   CbmRichConverter.cxx
+
   finder/CbmRichRingFinderIdeal.cxx
   finder/CbmRichRingFinderHoughImpl.cxx
   finder/CbmRichRingFinderHough.cxx
+  finder/CbmL1RichENNRingFinder.cxx
+  finder/CbmL1RichENNRingFinderParallel.cxx 
 
   fitter/CbmRichRingFitterCircle.cxx
   fitter/CbmRichRingFitterCOP.cxx
diff --git a/reco/detectors/rich/CbmRichRecoLinkDef.h b/reco/detectors/rich/CbmRichRecoLinkDef.h
index d6f65b9be93ec90c7da90cdde9173879b34db3b1..8739d2c8657490ca67fcc988c48c37ab0dd8b886 100644
--- a/reco/detectors/rich/CbmRichRecoLinkDef.h
+++ b/reco/detectors/rich/CbmRichRecoLinkDef.h
@@ -31,6 +31,7 @@
 #pragma link C++ class CbmRichRingFitterQa + ;
 #pragma link C++ class CbmRichRecoQa + ;
 #pragma link C++ class CbmRichRecoTbQa + ;
+#pragma link C++ class CbmL1RichRingQa + ;
 
 //unpack
 #pragma link C++ class CbmRichUnpackAlgo + ;
diff --git a/reco/detectors/rich/CbmRichReconstruction.cxx b/reco/detectors/rich/CbmRichReconstruction.cxx
index 68d2e066fd636d5827e87ead60f220023b675c0e..a93c762a51d00a75aabbf9730c74ccb23e3081c9 100644
--- a/reco/detectors/rich/CbmRichReconstruction.cxx
+++ b/reco/detectors/rich/CbmRichReconstruction.cxx
@@ -16,7 +16,8 @@
 #include "CbmRichRing.h"
 //#include "prototype/CbmRichProtProjectionProducer.h"
 
-//#include "CbmL1RichENNRingFinder.h"
+#include "CbmL1RichENNRingFinder.h"
+#include "CbmL1RichENNRingFinderParallel.h"
 #include "CbmRichRingFinderHough.h"
 #include "CbmRichRingFinderIdeal.h"
 #include "CbmRichTrackExtrapolationBase.h"
@@ -24,7 +25,6 @@
 #include "CbmRichTrackExtrapolationKF.h"
 #include "CbmRichTrackExtrapolationLittrack.h"
 #include "CbmRichTrackExtrapolationMirrorIdeal.h"
-//#include "CbmL1RichENNRingFinderParallel.h"
 //#include "prototype/CbmRichProtRingFinderHough.h"
 
 #include "CbmEvent.h"
@@ -197,13 +197,14 @@ void CbmRichReconstruction::InitFinder()
   else if (fFinderName == "ideal") {
     fRingFinder = new CbmRichRingFinderIdeal();
   }
-  /* else if (fFinderName == "enn") {
-     fRingFinder = new CbmL1RichENNRingFinder(0);
-     }
-     else if ((fFinderName == "enn_parallel")) {
-
-     fRingFinder = new CbmL1RichENNRingFinderParallel(0);
-     } else if (fFinderName == "hough_prototype") {
+  else if (fFinderName == "enn") {
+    fRingFinder = new CbmL1RichENNRingFinder(0);
+  }
+  else if ((fFinderName == "enn_parallel")) {
+    fRingFinder = new CbmL1RichENNRingFinderParallel(0);
+  }
+  /*
+  else if (fFinderName == "hough_prototype") {
      fRingFinder = new CbmRichProtRingFinderHough();
      }*/
   else {
diff --git a/reco/detectors/rich/alignment/CbmRichReconstruction.cxx b/reco/detectors/rich/alignment/CbmRichReconstruction.cxx
index dd7e41f541734b63e97d53dd1243dc4d0779e043..658623e62a7630ee91505ed5d153f9a8544a5151 100644
--- a/reco/detectors/rich/alignment/CbmRichReconstruction.cxx
+++ b/reco/detectors/rich/alignment/CbmRichReconstruction.cxx
@@ -16,7 +16,8 @@
 #include "CbmRichRing.h"
 //#include "prototype/CbmRichProtProjectionProducer.h"
 
-//#include "CbmL1RichENNRingFinder.h"
+#include "CbmL1RichENNRingFinder.h"
+#include "CbmL1RichENNRingFinderParallel.h"
 #include "CbmRichRingFinderHough.h"
 #include "CbmRichRingFinderIdeal.h"
 #include "CbmRichTrackExtrapolationBase.h"
@@ -24,7 +25,6 @@
 #include "CbmRichTrackExtrapolationKF.h"
 #include "CbmRichTrackExtrapolationLittrack.h"
 #include "CbmRichTrackExtrapolationMirrorIdeal.h"
-//#include "CbmL1RichENNRingFinderParallel.h"
 //#include "prototype/CbmRichProtRingFinderHough.h"
 
 #include "CbmGlobalTrack.h"
@@ -172,12 +172,14 @@ void CbmRichReconstruction::InitFinder()
   else if (fFinderName == "ideal") {
     fRingFinder = new CbmRichRingFinderIdeal();
   }
-  /*else if (fFinderName == "enn") {
+  else if (fFinderName == "enn") {
     fRingFinder = new CbmL1RichENNRingFinder(0);
-    }
-    else if ((fFinderName == "enn_parallel")) {
+  }
+  else if ((fFinderName == "enn_parallel")) {
     fRingFinder = new CbmL1RichENNRingFinderParallel(0);
-    } else if (fFinderName == "hough_prototype") {
+  }
+  /*
+    else if (fFinderName == "hough_prototype") {
     fRingFinder = new CbmRichProtRingFinderHough();
     }*/
   else {
diff --git a/reco/L1/OffLineInterface/CbmL1RichENNRingFinder.cxx b/reco/detectors/rich/finder/CbmL1RichENNRingFinder.cxx
similarity index 93%
rename from reco/L1/OffLineInterface/CbmL1RichENNRingFinder.cxx
rename to reco/detectors/rich/finder/CbmL1RichENNRingFinder.cxx
index 14cb15635098f7e3caf7a5777c7c38628abc3226..1c64dfde02838b5fc5ac3f31bc0beeff07d66229 100644
--- a/reco/L1/OffLineInterface/CbmL1RichENNRingFinder.cxx
+++ b/reco/detectors/rich/finder/CbmL1RichENNRingFinder.cxx
@@ -46,9 +46,7 @@ using std::sqrt;
 using std::vector;
 
 
-ClassImp(CbmL1RichENNRingFinder)
-
-  CbmL1RichENNRingFinder::CbmL1RichENNRingFinder(Int_t verbose)
+CbmL1RichENNRingFinder::CbmL1RichENNRingFinder(Int_t verbose)
   : finder(new CbmL1RichENNRingFinderParallel(verbose))
   , fRecoTime(0)
   , fNEvents(0)
diff --git a/reco/L1/OffLineInterface/CbmL1RichENNRingFinder.h b/reco/detectors/rich/finder/CbmL1RichENNRingFinder.h
similarity index 94%
rename from reco/L1/OffLineInterface/CbmL1RichENNRingFinder.h
rename to reco/detectors/rich/finder/CbmL1RichENNRingFinder.h
index 3c0807986a9ffc625c21fa25755d251882e55774..9da1e95a475ab48feb42e3dd318d6d8e1a85b986 100644
--- a/reco/L1/OffLineInterface/CbmL1RichENNRingFinder.h
+++ b/reco/detectors/rich/finder/CbmL1RichENNRingFinder.h
@@ -23,9 +23,6 @@
 
 #include "CbmRichRingFinder.h"
 
-#include "TStopwatch.h"
-#include "TString.h"
-
 #include <vector>
 
 class ENNHit;
@@ -61,9 +58,6 @@ private:
   CbmL1RichENNRingFinderParallel* finder;
   Float_t fRecoTime;
   Int_t fNEvents;
-
-public:
-  ClassDef(CbmL1RichENNRingFinder, 1);
 };
 
 #endif
diff --git a/reco/L1/OffLineInterface/CbmL1RichENNRingFinderParallel.cxx b/reco/detectors/rich/finder/CbmL1RichENNRingFinderParallel.cxx
similarity index 100%
rename from reco/L1/OffLineInterface/CbmL1RichENNRingFinderParallel.cxx
rename to reco/detectors/rich/finder/CbmL1RichENNRingFinderParallel.cxx
diff --git a/reco/L1/OffLineInterface/CbmL1RichENNRingFinderParallel.h b/reco/detectors/rich/finder/CbmL1RichENNRingFinderParallel.h
similarity index 99%
rename from reco/L1/OffLineInterface/CbmL1RichENNRingFinderParallel.h
rename to reco/detectors/rich/finder/CbmL1RichENNRingFinderParallel.h
index 2bc1e80bccd70d44163ed66e178d292ca7e42ea9..9daca1c082716bf1b0b231a1431abe8b495e5131 100644
--- a/reco/L1/OffLineInterface/CbmL1RichENNRingFinderParallel.h
+++ b/reco/detectors/rich/finder/CbmL1RichENNRingFinderParallel.h
@@ -212,8 +212,6 @@ private:
   TStopwatch fTimers[NTimers];    // timers for different parts of algorithm
   TString fTimersNames[NTimers];  // names which are correspond to the timers.
   TStopwatch& GetTimer(TString t);
-
-public:
 };
 
 #endif
diff --git a/reco/L1/OffLineInterface/CbmL1RichRingQa.cxx b/reco/detectors/rich/qa/CbmL1RichRingQa.cxx
similarity index 100%
rename from reco/L1/OffLineInterface/CbmL1RichRingQa.cxx
rename to reco/detectors/rich/qa/CbmL1RichRingQa.cxx
diff --git a/reco/L1/OffLineInterface/CbmL1RichRingQa.h b/reco/detectors/rich/qa/CbmL1RichRingQa.h
similarity index 100%
rename from reco/L1/OffLineInterface/CbmL1RichRingQa.h
rename to reco/detectors/rich/qa/CbmL1RichRingQa.h