48 //Get total energy ,energy of right part and left part divided by z=0.The energy threshold
49 of each trigger cell is 30*MeV. for(int i=0;i<TrigConf::TCTHETANO_B;i++) for(int
50 j=0;j<TrigConf::TCPHINO_B;j++)
52 double BEnergy = m_EmcTCFinder->getBTC_ADC(i,j);
54 //set each barrel trigger cell energy to service
55 m_pIBGT->setBTCEnergy(i,j,BEnergy);
57 int blkId = m_EmcTCFinder->getBLKId(i,j);
58 //low energy threshold of trigger cell
59 if(m_EmcTCFinder->getBTCEnergy(i,j) < L1TC_GATE) BEnergy = 0.;
61 BLK[blkId] +=BEnergy;//Get each block energy for babar trigger
64 for(int i =0;i<TrigConf::TCTHETANO_E;i++)
65 for(int j =0;j<TrigConf::TCPHINO_E;j++)
67 double EEnergy = m_EmcTCFinder->getEETC_ADC(i,j);
68 //set each barrel trigger cell energy to service
69 m_pIBGT->setEETCEnergy(i,j,EEnergy);
70 //low energy threshold of trigger cell
71 if(m_EmcTCFinder->getEETCEnergy(i,j) < L1TC_GATE) EEnergy = 0.;
73 if(j >= 0 && j < TrigConf::TCPHINO_E/2) EEBLK[0] += EEnergy; // north energy block
74 else EEBLK[1] += EEnergy; // south energy block
76 double WEnergy = m_EmcTCFinder->getWETC_ADC(i,j);
77 //set each barrel trigger cell energy to service
78 m_pIBGT->setWETCEnergy(i,j,WEnergy);
79 //low energy threshold of trigger cell
80 if(m_EmcTCFinder->getWETCEnergy(i,j) < L1TC_GATE) WEnergy = 0.;
82 if(j >= 0 && j < TrigConf::TCPHINO_E/2) WEBLK[0] += WEnergy; // north energy block
83 else WEBLK[1] += WEnergy;
86 std::vector<double> BlockE;
89 double bmean[12] = {8.02,10.1,12.3,7.43,14.8,13.0,12.5,13.2,10.9,12.3,14.7,15.7};
90 double bsigma[12] = {0.88,0.52,0.9,0.72,0.7,0.82,0.64,0.78,0.72,0.76,0.54,0.64};
92 {3.28,3.15,3.01,3.12,3.09,3.22,2.90,2.89,2.97,3.00,3.02,3.15};//run10584
94 for(int i = 0; i < 12; i++) {
95 //double block_E = (BLK[i]/bratio[i] - 0xa +
96 RandGauss::shoot(bmean[i],bsigma[i]))*m_pIBGT->getEnergy_Ratio(); //mv convert to adc double
97 block_E = (BLK[i] - 0xa); //mv convert to adc if(block_E < 0) block_E = 0; _TotE += block_E;
98 //Total energy of emc including barrel and endcaps _BTotE += block_E;//Total energy of barrel
103 _LTotE += block_E;//Total energy of left part emc(left barrel and west endcap)
104 _LBTotE += block_E;//Total energy of left part emc (only barrel)
108 _RTotE += block_E;//Total energy of right part emc(right barrel and east endcap)
109 _RBTotE += block_E;//Total energy of right part emc (only barrel)
111 //BlockE.push_back(block_E);
112 BlockE.push_back(BLK[i]);
115 double emean[2] = {11.8,12.4};
116 double esigma[2] = {0.77,0.43};
117 double eratio[2] = {3.19,3.19};
119 double wmean[2] = {19.9,8.89};
120 double wsigma[2] = {0.63,0.51};
121 double wratio[2] = {3.19,3.19};
123 for(int i = 0; i < 2; i++) {
124 //double wblock_E = (WEBLK[i]/wratio[i] - 0xa +
125 RandGauss::shoot(wmean[i],wsigma[i]))*m_pIBGT->getEnergy_Ratio(); double wblock_E = (WEBLK[i]
127 //double wblock_E = WEBLK[i]*0.51 - 14.4 - 0xa + RandGauss::shoot(wmean[i],wsigma[i]);
128 double eblock_E = (EEBLK[i] - 0xa);
129 //double eblock_E = (EEBLK[i]/eratio[i] - 0xa +
130 RandGauss::shoot(emean[i],esigma[i]))*m_pIBGT->getEnergy_Ratio();
131 //double eblock_E = EEBLK[i]*0.51 - 14.4 - 0xa + RandGauss::shoot(emean[i],esigma[i]);
132 if(wblock_E < 0) wblock_E = 0;
133 if(eblock_E < 0) eblock_E = 0;
135 _TotE += eblock_E;//Total energy of emc including barrel and endcaps
136 _RTotE += eblock_E;//Total energy of right part emc(right barrel and east endcap)
137 _ETotE += eblock_E;//Total energy of west and east endcaps
138 _EETotE += eblock_E;//Total energy of east endcap
139 //_EETotE += EEBLK[i];//Total energy of east endcap
141 _TotE += wblock_E;//Total energy of emc including barrel and endcaps
142 _LTotE += wblock_E;//Total energy of left part emc(left barrel and west endcap)
143 _ETotE += wblock_E;//Total energy of west and east endcaps
144 _WETotE += wblock_E;//Total energy of west endcap
145 //_WETotE += WEBLK[i];//Total energy of west endcap
149 for (
int i = 0; i < 12; i++ ) BLK[i] = 0;
150 for (
int i = 0; i < 2; i++ )
158 for (
int i = 0; i < 12; i++ ) { BLK[i] = m_EmcTCFinder->getBLKE( i + 2 ); }
160 for (
int i = 0; i < 2; i++ )
162 EEBLK[i] = m_EmcTCFinder->getBLKE( i );
163 WEBLK[i] = m_EmcTCFinder->getBLKE( i + 14 );
166 std::vector<double> BlockE;
169 double bmean[12] = { 8.02, 10.1, 12.3, 7.43, 14.8, 13.0,
170 12.5, 13.2, 10.9, 12.3, 14.7, 15.7 };
171 double bsigma[12] = { 0.88, 0.52, 0.9, 0.72, 0.7, 0.82, 0.64, 0.78, 0.72, 0.76, 0.54, 0.64 };
173 for (
int i = 0; i < 12; i++ )
175 double block_E = ( BLK[i] * 0.333 - 0xa +
176 RandGauss::shoot( bmean[i], bsigma[i] ) );
177 if ( block_E < 0 ) block_E = 0;
191 BlockE.push_back( block_E );
194 double emean[2] = { 11.8, 12.4 };
195 double esigma[2] = { 0.77, 0.43 };
197 double wmean[2] = { 19.9, 8.89 };
198 double wsigma[2] = { 0.63, 0.51 };
200 for (
int i = 0; i < 2; i++ )
202 double wblock_E = ( WEBLK[i] * 0.333 - 0xa + RandGauss::shoot( wmean[i], wsigma[i] ) );
203 double eblock_E = ( EEBLK[i] * 0.333 - 0xa + RandGauss::shoot( emean[i], esigma[i] ) );
204 if ( wblock_E < 0 ) wblock_E = 0;
205 if ( eblock_E < 0 ) eblock_E = 0;
218 ISvcLocator* svcLocator = Gaudi::svcLocator();
219 StatusCode sc = svcLocator->service(
"BesGlobalTrigSvc", m_tmpSvc );
224 m_pIBGT->setEmcLTotE( _LTotE );
225 m_pIBGT->setEmcRTotE( _RTotE );
226 m_pIBGT->setEmcBTotE( _BTotE );
227 m_pIBGT->setEmcETotE( _ETotE );
228 m_pIBGT->setEmcLBTotE( _LBTotE );
229 m_pIBGT->setEmcRBTotE( _RBTotE );
230 m_pIBGT->setEmcWETotE( _WETotE );
231 m_pIBGT->setEmcEETotE( _EETotE );
232 m_pIBGT->setEmcBlockE( BlockE );