21#include <b2bii/modules/B2BIIMdstInput/B2BIIFixMdstModule.h>
22#include "belle_legacy/panther/panther.h"
23#include "belle_legacy/tables/brecon.h"
24#include "belle_legacy/tables/mdst.h"
25#include "belle_legacy/tables/belletdf.h"
38 Belle::Brecon_Manager& breconmgr = Belle::Brecon_Manager::get_manager();
39 if (!breconmgr.count())
return;
40 Belle::Mdst_pi0_Manager& pi0mgr = Belle::Mdst_pi0_Manager::get_manager();
42 for (std::vector<Belle::Brecon>::iterator it = breconmgr.begin();
43 it != breconmgr.end(); ++it) {
46 if (std::abs((*it).pcode()) != 111)
continue;
47 const int da_first((*it).daFirst());
48 const int da_last((*it).daLast());
49 if (da_first < 1 || da_last < 1)
continue;
50 if (da_last - da_first != 1)
continue;
51 const Belle::Brecon& gamma1(breconmgr[da_first - 1]);
52 const Belle::Brecon& gamma2(breconmgr[da_last - 1]);
53 if (gamma1.stable() != 2 || gamma2.stable() != 2)
continue;
57 const Belle::Panther_ID g1(gamma1.idmdst());
58 const Belle::Panther_ID g2(gamma2.idmdst());
59 for (std::vector<Belle::Mdst_pi0>::const_iterator it2 = pi0mgr.begin();
60 it2 != pi0mgr.end(); ++it2) {
61 const Belle::Panther_ID da1((*it2).gamma_ID(0));
62 const Belle::Panther_ID da2((*it2).gamma_ID(1));
63 if ((g1 == da1 && g2 == da2) || (g1 == da2 && g2 == da1)) {
64 pi0_ID = (int)(*it2).get_ID();
void fix_pi0_brecon(void)
Fix relation gamma<->pi0 in brecon table.
Abstract base class for different kinds of events.