|
| 1 | +#ifndef DO_ROUND_TRIP_C |
| 2 | +#define DO_ROUND_TRIP_C |
| 3 | + |
| 4 | +#include <intt/InttMapping.h> |
| 5 | +R__LOAD_LIBRARY(libintt.so) |
| 6 | + |
| 7 | +#include <boost/format.hpp> |
| 8 | + |
| 9 | +void |
| 10 | +print ( |
| 11 | + InttNameSpace::RawData_s const& rawdata |
| 12 | +) { |
| 13 | + std::cout << (boost::format ( |
| 14 | + "RawData_s { .felix_server = %1d, .felix_channel = %2d, .chip = %2d, .channel = %3d }") |
| 15 | + % rawdata.felix_server % rawdata.felix_channel % rawdata.chip % rawdata.channel).str(); |
| 16 | +} |
| 17 | + |
| 18 | +void |
| 19 | +print ( |
| 20 | + InttNameSpace::Online_s const& online |
| 21 | +) { |
| 22 | + std::cout << (boost::format ( |
| 23 | + "Online_s { .lyr = %1d, .ldr = %2d, .arm = %2d, .chp = %2d, .chn = %3d }") |
| 24 | + % online.lyr % online.ldr % online.arm % online.chp % online.chn).str(); |
| 25 | +} |
| 26 | + |
| 27 | +void |
| 28 | +print ( |
| 29 | + InttNameSpace::Offline_s const& offline |
| 30 | +) { |
| 31 | + std::cout << (boost::format ( |
| 32 | + "Online_s { .layer = %1d, .ladder_phi = %2d, .ladder_z = %2d, .strip_x = %2d, .strip_y = %3d }") |
| 33 | + % offline.layer % offline.ladder_phi % offline.ladder_z % offline.strip_x % offline.strip_y).str(); |
| 34 | +} |
| 35 | + |
| 36 | +void |
| 37 | +do_round_trip ( |
| 38 | +) { |
| 39 | + |
| 40 | + for (int felix_server = 0; felix_server < 8; ++felix_server) { |
| 41 | + for (int felix_channel = 0; felix_channel < 14; ++felix_channel) { |
| 42 | + for (int chip = 0; chip < 26; ++chip) { |
| 43 | + for (int channel = 0; channel < 128; ++channel) { |
| 44 | + |
| 45 | + InttNameSpace::RawData_s rawdata; |
| 46 | + rawdata.felix_server = felix_server; |
| 47 | + rawdata.felix_channel = felix_channel; |
| 48 | + rawdata.chip = chip; |
| 49 | + rawdata.channel = channel; |
| 50 | + |
| 51 | + InttNameSpace::Online_s online = InttNameSpace::ToOnline(rawdata); |
| 52 | + InttNameSpace::Offline_s offline = InttNameSpace::ToOffline(rawdata); |
| 53 | + |
| 54 | + print(rawdata); std::cout << std::endl; |
| 55 | + print(online); std::cout << std::endl; |
| 56 | + print(offline); std::cout << std::endl; |
| 57 | + |
| 58 | + // Checks |
| 59 | + if (InttNameSpace::ToRawData(online) != rawdata) { |
| 60 | + std::cout << "Problem on line " << __LINE__ << std::endl; |
| 61 | + } |
| 62 | + |
| 63 | + if (InttNameSpace::ToRawData(offline) != rawdata) { |
| 64 | + std::cout << "Problem on line " << __LINE__ << std::endl; |
| 65 | + } |
| 66 | + |
| 67 | + if (InttNameSpace::ToOnline(offline) != online) { |
| 68 | + std::cout << "Problem on line " << __LINE__ << std::endl; |
| 69 | + } |
| 70 | + |
| 71 | + if (InttNameSpace::ToOffline(online) != offline) { |
| 72 | + std::cout << "Problem on line " << __LINE__ << std::endl; |
| 73 | + } |
| 74 | + } |
| 75 | + } |
| 76 | + } |
| 77 | + } |
| 78 | +} |
| 79 | + |
| 80 | +#endif//DO_ROUND_TRIP_C |
0 commit comments