diff --git a/core/detectors/trd/CbmTrdParManager.cxx b/core/detectors/trd/CbmTrdParManager.cxx
index 0b747d2f1c613abd66cef4146cdbcf63dc7bfd4e..ef69c4d7bf44383ad96c6c26b13cf643fa0ddf50 100644
--- a/core/detectors/trd/CbmTrdParManager.cxx
+++ b/core/detectors/trd/CbmTrdParManager.cxx
@@ -435,6 +435,54 @@ bool CbmTrdParManager::CreateParFilesFromGeometry(TString outDir) {
   return true;  // check if rtdb->writeContainers() could be used to run a bool check and return that bool instead of saveOutput void
 }
 
+// ---- GetParSetList ----
+void CbmTrdParManager::GetParSetList(std::vector<CbmTrdParSet*>* parSetList) {
+  // std::vector<CbmTrdParSet*> parSetList;
+  CbmTrdParSet* parSet = nullptr;
+  for (Int_t iParSetType = (Int_t) ECbmTrdParSets::kBegin;
+       iParSetType <= (Int_t) ECbmTrdParSets::kEnd;
+       iParSetType++) {
+    switch (iParSetType) {
+      case (Int_t) ECbmTrdParSets::kCbmTrdParSetAsic:
+        parSet = new CbmTrdParSetAsic();
+        break;
+      case (Int_t) ECbmTrdParSets::kCbmTrdParSetDigi:
+        parSet = new CbmTrdParSetDigi();
+        break;
+      case (Int_t) ECbmTrdParSets::kCbmTrdParSetGain:
+        parSet = new CbmTrdParSetGain();
+        break;
+      case (Int_t) ECbmTrdParSets::kCbmTrdParSetGas:
+        parSet = new CbmTrdParSetGas();
+        break;
+    }
+    parSetList->emplace_back(parSet);
+  }
+}
+
+// ---- GetParFileExtensions ----
+void CbmTrdParManager::GetParFileExtensions(std::vector<std::string>* vec) {
+  for (Int_t iParSetType = (Int_t) ECbmTrdParSets::kBegin;
+       iParSetType <= (Int_t) ECbmTrdParSets::kEnd;
+       iParSetType++) {
+    switch (iParSetType) {
+      case (Int_t) ECbmTrdParSets::kCbmTrdParSetAsic:
+        vec->emplace_back("asic");
+        break;
+      case (Int_t) ECbmTrdParSets::kCbmTrdParSetDigi:
+        vec->emplace_back("digi");
+        break;
+      case (Int_t) ECbmTrdParSets::kCbmTrdParSetGain:
+        vec->emplace_back("gas");
+        break;
+      case (Int_t) ECbmTrdParSets::kCbmTrdParSetGas:
+        vec->emplace_back("gain");
+        break;
+    }
+  }
+}
+
+
 // void CbmTrdParManager::FillDigiPar()
 // {
 //   printf("CbmTrdParManager::FillDigiPar()\n");
diff --git a/core/detectors/trd/CbmTrdParManager.h b/core/detectors/trd/CbmTrdParManager.h
index 44b19c8cd0a41293ddd49a511c08c901b690d770..b11e63cde8ec5c629c97c9dc8cc1e58072159528 100644
--- a/core/detectors/trd/CbmTrdParManager.h
+++ b/core/detectors/trd/CbmTrdParManager.h
@@ -21,6 +21,7 @@
 #include "FairTask.h"  // for FairTask, InitStatus
 
 #include "CbmTrdHardwareSetupR.h"  //for CbmTrdHardwareSetupR
+#include "CbmTrdParSet.h"          // for GetParSetList
 
 class CbmTrdGeoHandler;
 class CbmTrdParSetAsic;
@@ -34,50 +35,66 @@ class CbmTrdParSetGas;
  */
 class CbmTrdParManager : public FairTask {
 public:
+  enum class ECbmTrdParSets : Int_t {
+    kBegin            = 0,
+    kCbmTrdParSetAsic = kBegin,
+    kCbmTrdParSetDigi,
+    kCbmTrdParSetGain,
+    kCbmTrdParSetGas,
+    kEnd = kCbmTrdParSetGas
+  };
   /**
-    * \brief Default constructor.
-    * \param[in] fasp switch between ASICs. Default SPADIC (fasp == kFALSE)
-    * \sa SetFASP(Bool_t) 
-    **/
+   * @brief enumerator for organising the existing parameter sets of the trd
+   *
+   */
+
+  /**
+   * \brief Default constructor.
+   * \param[in] fasp switch between ASICs. Default SPADIC (fasp == kFALSE)
+   * \sa SetFASP(Bool_t)
+   **/
   CbmTrdParManager(Bool_t fasp = kFALSE);
 
   /**
-    * \brief Destructor.
-    **/
+   * \brief Destructor.
+   **/
   virtual ~CbmTrdParManager();
 
   /**
-    * \breif Inherited from FairTask.
-    **/
+   * \brief Inherited from FairTask.
+   **/
   virtual InitStatus Init();
 
   /**
-    * \brief Inherited from FairTask.
-    **/
+   * \brief Inherited from FairTask.
+   **/
   virtual void SetParContainers();
 
   /**
-    * \brief Change the default ASIC to FASP
-    **/
+   * \brief Change the default ASIC to FASP
+   **/
   virtual void SetFASP(Bool_t set = kTRUE) { fFASP = set; }
 
   /**
-    * \brief Inherited from FairTask.
-    **/
+   * \brief Inherited from FairTask.
+   **/
   virtual void Exec(Option_t* option);
 
   /**
-    * \brief Inherited from FairTask.
-    **/
+   * \brief Inherited from FairTask.
+   **/
   virtual void Finish();
 
   /**
-    * \brief Create parameter files from geometry in gGeoManager
-    * A run macro can be found in the trd cbm.gsi git repository
-    **/
+   * \brief Create parameter files from geometry in gGeoManager
+   * A run macro can be found in the trd cbm.gsi git repository
+   **/
   bool CreateParFilesFromGeometry(bool createRootFileOutput,
                                   TString outDir = "");
 
+  static void GetParSetList(std::vector<CbmTrdParSet*>* parSetList);
+  static void GetParFileExtensions(std::vector<std::string>* vec);
+
 private:
   void CreateModuleParameters(const TString& path);
   bool CreateParFilesFromGeometry(TString outDir = "");
@@ -103,4 +120,4 @@ private:
 
   ClassDef(CbmTrdParManager, 2)
 };
-#endif  //CBMTRDPARMANAGER_H
+#endif  // CBMTRDPARMANAGER_H