15 : id_(config.getParameter<std::
string>(
"identifier")),
16 data_tag_(config.getParameter<std::
string>(
"dataTag")),
17 since_run_(config.getParameter<unsigned long long>(
"sinceRun")),
18 input_file_(config.getParameter<edm::FileInPath>(
"inputFile").
fullPath()),
19 wheel_not_side_(config.getParameter<bool>(
"wheelNotSide")),
20 wos_fed_(config.getParameter<std::
vector<int> >(
"wheelOrSideFED")),
21 n_sectors_(config.getParameter<unsigned int>(
"nSectors")),
22 wos_sector_amc_(wos_fed_.
size(), std::
vector<int>(n_sectors_, 0)),
23 txt_file_(config.getUntrackedParameter<std::
string>(
"txtFile",
"")) {
24 std::vector<long long> wos_sector_amc_packed(config.
getParameter<std::vector<long long> >(
"wheelOrSideSectorAMC"));
26 if (
wos_fed_.size() != wos_sector_amc_packed.size()) {
27 throw cms::Exception(
"RPCAMCLinkMapHandler") <<
"Refuse to handle inconsistent input: "
28 <<
"sizes of wheelOrSideFED and wheelOrSideSectorAMC don't match";
31 std::vector<std::vector<int> >::iterator sector_amc =
wos_sector_amc_.begin();
32 for (std::vector<long long>::const_iterator sector_amc_packed = wos_sector_amc_packed.begin();
33 sector_amc_packed != wos_sector_amc_packed.end();
34 ++sector_amc_packed, ++sector_amc) {
35 for (
unsigned int sector = 0; sector <
n_sectors_; ++sector) {
36 sector_amc->at(sector) = ((*sector_amc_packed) >> (4 * (n_sectors_ - sector - 1))) & 0xf;
52 unsigned int wos, sector, amc_number, amc_input;
54 std::unique_ptr<RPCAMCLinkMap> amc_link_map_object(
new RPCAMCLinkMap());
59 std::istringstream
conv;
63 input_file >> amc_name >> amc_input >> link_name;
64 std::getline(input_file, line);
71 next = amc_name.find_first_not_of(
"+-0123456789", pos);
73 conv.str(amc_name.substr(pos, next - pos));
78 next = amc_name.find_first_not_of(
"+-0123456789", pos);
79 if (next == std::string::npos)
80 next = amc_name.size();
82 conv.str(amc_name.substr(pos, next - pos));
85 wos = (amc_name.at(4) ==
'n' ? 0 : 1);
87 conv.str(amc_name.substr(5, 1));
93 <<
"Found sector greater than the number of sectors: " << sector <<
" > " <<
n_sectors_;
105 amc_link_map.insert(std::pair<RPCAMCLink, RPCLBLink>(
RPCAMCLink(
wos_fed_.at(wos), amc_number, amc_input), lb_link));
107 input_file >> amc_name >> amc_input >> link_name;
108 std::getline(input_file, line);
115 for (
auto const link : amc_link_map) {
116 ofstream <<
link.first <<
": " <<
link.second << std::endl;
120 edm::LogInfo(
"RPCAMCLinkMapHandler") <<
"Add to transfer list";
std::string id() const override
~RPCAMCLinkMapHandler() override
RPCAMCLinkMapHandler(edm::ParameterSet const &config)
std::vector< std::pair< RPCAMCLinkMap *, Time_t > > m_to_transfer
std::map< RPCAMCLink, RPCLBLink > map_type
Log< level::Info, false > LogInfo
T getParameter(std::string const &) const
std::vector< std::vector< int > > wos_sector_amc_
tuple config
parse the configuration file
static void parse(std::string const &name, RPCLBLink &lb_link)
tuple size
Write out results.
void getNewObjects() override
std::vector< int > wos_fed_
cond::TagInfo_t const & tagInfo() const