diff --git a/reco/L1/L1Algo/L1Algo.cxx b/reco/L1/L1Algo/L1Algo.cxx
index 5b2a9dbfb08c5c3e9220fd7768aeb3b24d233a45..4e558d9ffdc280ad1376e0867f8e6cc08ee3aa57 100644
--- a/reco/L1/L1Algo/L1Algo.cxx
+++ b/reco/L1/L1Algo/L1Algo.cxx
@@ -245,6 +245,8 @@ void L1Algo::Init(const L1Vector<fscal>& geo, const bool UseHitErrors, const Tra
   // Fill L1Station array
   fInitManager.TransferL1StationArray(fStationsNew);
 
+  // Fill L1CAIteration array
+  fInitManager.Tra
 
   LOG(debug) << "**********************************************************************";
   LOG(debug) << "*  New L1Algo initialization cross check  (tmp log, to be removed!)  *";
diff --git a/reco/L1/L1Algo/L1InitManager.h b/reco/L1/L1Algo/L1InitManager.h
index e88a58a22c867396939b8448c1a237292836bd20..0bd0f8e518480710c69c098b820583da04961402 100644
--- a/reco/L1/L1Algo/L1InitManager.h
+++ b/reco/L1/L1Algo/L1InitManager.h
@@ -201,6 +201,10 @@ private:
 
   L1Vector<L1CAIteration> fCAIterationsContainer {};  ///> Container for CA track finder iterations
   int fCAIterationsNumberCrosscheck {-1};  ///> Number of iterations to be passed (must be used for cross-checks)
+
+  /* Pointer to L1Parameters object */
+  /// Pointer to L1Parameters object, which will be copied to L1Algo after checks
+  L1Parameters * fParametersPtr {nullptr};
 };
 
 #endif
diff --git a/reco/L1/L1Algo/L1Parameters.h b/reco/L1/L1Algo/L1Parameters.h
index 539325cf455d3e180b18719eb3eaeff4f0ea45b0..74396339d3551c7bb977609462a8ccc91d7b5532 100644
--- a/reco/L1/L1Algo/L1Parameters.h
+++ b/reco/L1/L1Algo/L1Parameters.h
@@ -75,8 +75,6 @@ public:
   void SetMaxDoubletsPerSinglet(unsigned int value) { fMaxDoubletsPerSinglet = value; }
   /// Sets upper-bound cut on max number of triplets per one doublet
   void SetMaxTripletPerDoublets(unsigned int value) { fMaxTripletPerDoublets = value; }
-  /// Sets the vector of track finder iterations
-  void SetCAIterations(const L1Vector<L1CAIteration>& input) { fCAIterationsContainer = input; }
 
   //
   // GETTERS
@@ -85,8 +83,11 @@ public:
   unsigned int GetMaxDoubletsPerSinglet() const { return fMaxDoubletsPerSinglet; }
   /// Gets upper-bound cut on max number of triplets per one doublet
   unsigned int GetMaxTripletPerDoublets() const { return fMaxTripletPerDoublets; }
-  /// Gets track finder iteration vector
-  const L1Vector<L1CAIteration>& GetCAIterations() const { return fCAIterationsContainer; }
+
+  /// Provides access to L1CAIteration vector (modifiable)
+  L1Vector<L1CAIteration>& CAIterationsContainer() { return fCAIterationsContainer; }
+  /// Provides access to L1CAIteration vector (const)
+  const L1Vector<L1CAIteration>& CAIterationsContainer() const { return fCAIterationsContainer; }
 
 
 private: