16{
17
18 static const uint32_t min_packet_size = 2;
19
20 robFrag.check ();
21
22 uint32_t nWords = robFrag.rod_ndata ();
23 const uint32_t *bs = robFrag.rod_data ();
26
27 while (remaining >= min_packet_size)
28 {
29 try
30 {
31 std::shared_ptr<Muon::nsw::NSWTriggerElink> elink;
32
34 std::shared_ptr<Muon::nsw::NSWTriggerMML1AElink> tmplink = std::make_shared<Muon::nsw::NSWTriggerMML1AElink>(pp, remaining);
35 elink = tmplink;
37 std::shared_ptr<Muon::nsw::NSWTriggerMMMonElink> tmplink = std::make_shared<Muon::nsw::NSWTriggerMMMonElink>(pp, remaining);
38 elink = tmplink;
40 std::shared_ptr<Muon::nsw::NSWPadTriggerL1a> tmplink = std::make_shared<Muon::nsw::NSWPadTriggerL1a>(pp, remaining);
41 elink = tmplink;
43 std::shared_ptr<Muon::nsw::NSWTriggerSTGL1AElink> tmplink = std::make_shared<Muon::nsw::NSWTriggerSTGL1AElink>(pp, remaining);
44 elink = tmplink;
45 } else {
46 std::shared_ptr<Muon::nsw::NSWTriggerElink> tmplink = std::make_shared<Muon::nsw::NSWTriggerElink>(pp, remaining);
47 elink = std::move(tmplink);
48 }
49
51 pp += elink->nwords();
52 remaining -= elink->nwords();;
53
54 }
55 catch (Muon::nsw::NSWTriggerException &e) {
56
57
59 ERS_DEBUG(1, "Following exception found");
60 ERS_DEBUG(1,
e.what());
62 break;
63 }
64 catch (std::exception &e) {
65
67 ERS_DEBUG(1, "Following exception found");
68 ERS_DEBUG(1,
e.what());
70 break;
71 }
72 }
73
74 if ( remaining > 0 ) {
78 }
79
80}
std::string m_triggerType
std::vector< std::shared_ptr< Muon::nsw::NSWTriggerElink > > m_elinks
std::string format(const std::string &str, const T &arg)