31 {
32 StatusCode sc = Gaudi::svcLocator()->service( "BesGlobalTrigSvc", m_tmpSvc );
33 m_pIBGT = dynamic_cast<BesGlobalTrigSvc*>( m_tmpSvc );
34
35 NLtrk1 = false;
36 NLtrk2 = false;
37 NLtrkN = false;
38 LTrk_BB = false;
39 NStrk1 = false;
40 NStrk2 = false;
41 NStrkN = false;
42 STrk_BB = false;
43 NItrk1 = false;
44 NItrk2 = false;
45
46 if ( !m_MdcTCount ) std::cerr << "can not initialize mdcTCount" << std::endl;
47 m_MdcTCount->GetTCount();
48 int nItrk1 = m_MdcTCount->GetnItrkSL1();
49 int nItrk2 = m_MdcTCount->GetnItrkSL2();
50
51
52
53 int MAXMDCTRACK = m_pIBGT->getMAXMDCTRACK();
54 if ( ( nItrk1 >= 1 ) || ( nItrk2 >= 1 ) ) NItrk1 = true;
55 if ( ( nItrk1 >= 1 ) && ( nItrk2 >= 1 ) ) NItrk2 = true;
56
57
58 std::vector<int> stmp;
59 std::vector<int>::iterator siter;
60 stmp.clear();
61 stmp = m_MdcTCount->GetstrackId();
62 int nstrk = stmp.size();
63 if ( nstrk >= 1 ) NStrk1 = true;
64 if ( nstrk >= 2 ) NStrk2 = true;
65 if ( nstrk >= MAXMDCTRACK ) NStrkN = true;
66
67
68
69 for ( siter = stmp.begin(); siter != stmp.end(); siter++ )
70 {
71 for ( int i = 0; i < 15; i++ )
72 {
73 if ( ( ( *siter ) + i + 57 ) > 127 )
74 {
75 int id;
76 id = ( *siter ) + i + 57 - 128;
77 if ( find( stmp.begin(), stmp.end(), id ) != stmp.end() )
78 {
79 STrk_BB = true;
80 break;
81 }
82 }
83 else
84 {
85 int id;
86 id = ( *siter ) + i + 57;
87 if ( find( stmp.begin(), stmp.end(), id ) != stmp.end() )
88 {
89 STrk_BB = true;
90 break;
91 }
92 }
93 }
94
95 if ( STrk_BB == true ) break;
96 }
97
98 std::vector<int> ltmp;
99 std::vector<int>::iterator liter;
100 ltmp.clear();
101 ltmp = m_MdcTCount->GetltrackId();
102 int nltrk = ltmp.size();
103 if ( nltrk >= 1 ) NLtrk1 = true;
104 if ( nltrk >= 2 ) NLtrk2 = true;
105 if ( nltrk >= MAXMDCTRACK ) NLtrkN = true;
106
107 for ( liter = ltmp.begin(); liter != ltmp.end(); liter++ )
108 {
109 for ( int i = 0; i < 15; i++ )
110 {
111 if ( ( ( *liter ) + i + 57 ) > 127 )
112 {
113 int id;
114 id = ( *liter ) + i + 57 - 128;
115 if ( find( ltmp.begin(), ltmp.end(), id ) != ltmp.end() )
116 {
117 LTrk_BB = true;
118 break;
119 }
120 }
121 else
122 {
123 int id;
124 id = ( *liter ) + i + 57;
125 if ( find( ltmp.begin(), ltmp.end(), id ) != ltmp.end() )
126 {
127 LTrk_BB = true;
128 break;
129 }
130 }
131 }
132
133 if ( LTrk_BB == true ) break;
134 }
135
136
137 m_pIBGT->setSTrk_BB( STrk_BB );
138 m_pIBGT->setNStrkN( NStrkN );
139 m_pIBGT->setNStrk2( NStrk2 );
140 m_pIBGT->setNStrk1( NStrk1 );
141 m_pIBGT->setLTrk_BB( LTrk_BB );
142 m_pIBGT->setNLtrkN( NLtrkN );
143 m_pIBGT->setNLtrk2( NLtrk2 );
144 m_pIBGT->setNLtrk1( NLtrk1 );
145 m_pIBGT->setNItrk2( NItrk2 );
146 m_pIBGT->setNItrk1( NItrk1 );
147}