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