Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2023-03-17 11:00:27

0001 #ifndef FFFNAMINGSCHEMA_H_
0002 #define FFFNAMINGSCHEMA_H_
0003 
0004 #include <iomanip>
0005 #include <sstream>
0006 #include <unistd.h>
0007 
0008 namespace fffnaming {
0009 
0010   inline std::string runLumiPrefix(const unsigned int run, const unsigned int ls) {
0011     std::stringstream ss;
0012     ss << "run" << std::setfill('0') << std::setw(6) << run << "_ls" << std::setfill('0') << std::setw(4) << ls;
0013     return ss.str();
0014   }
0015 
0016   inline void runLumiPrefixFill(std::stringstream& ss, const unsigned int run, const unsigned int ls) {
0017     ss << "run" << std::setfill('0') << std::setw(6) << run << "_ls" << std::setfill('0') << std::setw(4) << ls;
0018   }
0019 
0020   inline std::string eolsFileName(const unsigned int run, const unsigned int ls) {
0021     std::stringstream ss;
0022     runLumiPrefixFill(ss, run, ls);
0023     ss << "_EoLS.jsn";
0024     return ss.str();
0025   }
0026 
0027   inline std::string bolsFileName(const unsigned int run, const unsigned int ls) {
0028     std::stringstream ss;
0029     runLumiPrefixFill(ss, run, ls);
0030     ss << "_BoLS.jsn";
0031     return ss.str();
0032   }
0033 
0034   inline std::string eorFileName(const unsigned int run) {
0035     std::stringstream ss;
0036     ss << "run" << std::setfill('0') << std::setw(6) << run << "_ls0000"
0037        << "_EoR.jsn";
0038     return ss.str();
0039   }
0040 
0041   inline std::string inputJsonFileName(const unsigned int run, const unsigned int ls, const unsigned int index) {
0042     std::stringstream ss;
0043     runLumiPrefixFill(ss, run, ls);
0044     ss << "_index" << std::setfill('0') << std::setw(6) << index << ".jsn";
0045     return ss.str();
0046   }
0047 
0048   inline std::string inputRawFileName(const unsigned int run, const unsigned int ls, const unsigned int index) {
0049     std::stringstream ss;
0050     runLumiPrefixFill(ss, run, ls);
0051     ss << "_index" << std::setfill('0') << std::setw(6) << index << ".raw";
0052     return ss.str();
0053   }
0054 
0055   inline std::string initFileNameWithPid(const unsigned int run, const unsigned int ls, std::string const& stream) {
0056     std::stringstream ss;
0057     runLumiPrefixFill(ss, run, ls);
0058     ss << "_" << stream << "_pid" << std::setfill('0') << std::setw(5) << getpid() << ".ini";
0059     return ss.str();
0060   }
0061 
0062   inline std::string initTempFileNameWithPid(const unsigned int run, const unsigned int ls, std::string const& stream) {
0063     std::stringstream ss;
0064     runLumiPrefixFill(ss, run, ls);
0065     ss << "_" << stream << "_pid" << std::setfill('0') << std::setw(5) << getpid() << ".initemp";
0066     return ss.str();
0067   }
0068 
0069   inline std::string initFileNameWithInstance(const unsigned int run,
0070                                               const unsigned int ls,
0071                                               std::string const& stream,
0072                                               std::string const& instance) {
0073     std::stringstream ss;
0074     runLumiPrefixFill(ss, run, ls);
0075     ss << "_" << stream << "_" << instance << ".ini";
0076     return ss.str();
0077   }
0078 
0079   inline std::string streamerDataFileNameWithPid(const unsigned int run,
0080                                                  const unsigned int ls,
0081                                                  std::string const& stream) {
0082     std::stringstream ss;
0083     runLumiPrefixFill(ss, run, ls);
0084     ss << "_" << stream << "_pid" << std::setfill('0') << std::setw(5) << getpid() << ".dat";
0085     return ss.str();
0086   }
0087 
0088   inline std::string streamerDataFileNameWithInstance(const unsigned int run,
0089                                                       const unsigned int ls,
0090                                                       std::string const& stream,
0091                                                       std::string const& instance) {
0092     std::stringstream ss;
0093     runLumiPrefixFill(ss, run, ls);
0094     ss << "_" << stream << "_" << instance << ".dat";
0095     return ss.str();
0096   }
0097 
0098   inline std::string streamerDataChecksumFileNameWithInstance(const unsigned int run,
0099                                                               const unsigned int ls,
0100                                                               std::string const& stream,
0101                                                               std::string const& instance) {
0102     std::stringstream ss;
0103     runLumiPrefixFill(ss, run, ls);
0104     ss << "_" << stream << "_" << instance << ".checksum";
0105     return ss.str();
0106   }
0107 
0108   inline std::string streamerJsonFileNameWithPid(const unsigned int run,
0109                                                  const unsigned int ls,
0110                                                  std::string const& stream) {
0111     std::stringstream ss;
0112     runLumiPrefixFill(ss, run, ls);
0113     ss << "_" << stream << "_pid" << std::setfill('0') << std::setw(5) << getpid() << ".jsn";
0114     return ss.str();
0115   }
0116 
0117   inline std::string streamerJsonFileNameWithInstance(const unsigned int run,
0118                                                       const unsigned int ls,
0119                                                       std::string const& stream,
0120                                                       std::string const& instance) {
0121     std::stringstream ss;
0122     runLumiPrefixFill(ss, run, ls);
0123     ss << "_stream" << stream << "_" << instance << ".jsn";
0124     return ss.str();
0125   }
0126 
0127   inline std::string protocolBufferHistogramFileNameWithPid(const unsigned int run,
0128                                                             const unsigned int ls,
0129                                                             std::string const& stream) {
0130     std::stringstream ss;
0131     runLumiPrefixFill(ss, run, ls);
0132     ss << "_" << stream << "_pid" << std::setfill('0') << std::setw(5) << getpid() << ".pb";
0133     return ss.str();
0134   }
0135 
0136   inline std::string protocolBufferHistogramFileNameWithInstance(const unsigned int run,
0137                                                                  const unsigned int ls,
0138                                                                  std::string const& stream,
0139                                                                  std::string const& instance) {
0140     std::stringstream ss;
0141     runLumiPrefixFill(ss, run, ls);
0142     ss << "_" << stream << "_" << instance << ".pb";
0143     return ss.str();
0144   }
0145 
0146   inline std::string rootHistogramFileNameWithPid(const unsigned int run,
0147                                                   const unsigned int ls,
0148                                                   std::string const& stream) {
0149     std::stringstream ss;
0150     runLumiPrefixFill(ss, run, ls);
0151     ss << "_" << stream << "_pid" << std::setfill('0') << std::setw(5) << getpid() << ".root";
0152     return ss.str();
0153   }
0154 
0155   inline std::string rootHistogramFileNameWithInstance(const unsigned int run,
0156                                                        const unsigned int ls,
0157                                                        std::string const& stream,
0158                                                        std::string const& instance) {
0159     std::stringstream ss;
0160     runLumiPrefixFill(ss, run, ls);
0161     ss << "_" << stream << "_" << instance << ".root";
0162     return ss.str();
0163   }
0164 
0165   inline std::string genericFileName(const unsigned int run,
0166                                      const unsigned int ls,
0167                                      std::string const& typePrefix,
0168                                      std::string const& typeSuffix,
0169                                      unsigned int typeWidth,
0170                                      std::string const& instancePrefix,
0171                                      std::string const& instanceSuffix,
0172                                      unsigned int instanceWidth,
0173                                      std::string const& fileExtension) {
0174     std::stringstream ss;
0175     runLumiPrefixFill(ss, run, ls);
0176     ss << "_";
0177     if (!typePrefix.empty())
0178       ss << typePrefix;
0179     if (typeWidth)
0180       ss << std::setfill('0') << std::setw(typeWidth);
0181     ss << typeSuffix;
0182     if (!instanceSuffix.empty()) {
0183       ss << "_";
0184       if (!instancePrefix.empty())
0185         ss << instancePrefix;
0186       if (instanceWidth)
0187         ss << std::setfill('0') << std::setw(instanceWidth);
0188       ss << instanceSuffix;
0189     }
0190     if (!fileExtension.empty())
0191       ss << "." << fileExtension;
0192     return ss.str();
0193   }
0194 
0195 };  // namespace fffnaming
0196 #endif