#include <BesGlobalTrigSvc.h>
Inheritance diagram for BesGlobalTrigSvc:
|
00094 : Service( name, svc ),m_MdcTrig(0),m_TofTrig(0),m_EmcTrig(0),m_MucTrig(0),m_TMTrig(0) 00095 { 00096 trigTableFile = std::string(getenv( "TRIGGERROOT" )); 00097 trigTableFile += std::string("/share/TriggerTable.txt"); 00098 declareProperty("TrigTableCon", trigTableFile); 00099 declareProperty("TofLayerControl", m_tofLayer = 2); 00100 declareProperty("L1TC_GATE", L1TC_GATE = 70); 00101 declareProperty("L1TC_THRESH", L1TC_THRESH = 130); 00102 declareProperty("L1ETOT_L", L1ETOT_L = 0x56); 00103 declareProperty("L1ETOT_M", L1ETOT_M = 0xba); //0xba(run10584),0x190,0x10a(run9571) 00104 declareProperty("L1ETOT_BR", L1ETOT_BR = 0x19a);//0x216,0x19a 00105 declareProperty("L1ETOT_EC", L1ETOT_EC = 0x19a);//0x1bd,0x19a 00106 declareProperty("L1EBL_BR", L1EBL_BR = 0x30); 00107 declareProperty("L1EBL_EC", L1EBL_EC = 0x1ec); 00108 declareProperty("L1EDIFF_BR", L1EDIFF_BR = 0xf6); 00109 declareProperty("L1EDIFF_EC", L1EDIFF_EC = 0xe1); 00110 declareProperty("L1BLK_GATE", L1BLK_GATE = 0x30); 00111 declareProperty("L1EBL_Z", L1EBL_Z = 0xa4); 00112 declareProperty("MAXMDCTRACK", MAXMDCTRACK = 4); 00113 declareProperty("TM_ENDCAP_MODE", tm_endcap = 0); 00114 declareProperty("Energy_Ratio", Energy_Ratio = 1.); 00115 }
|
|
00117 { 00118 }
|
|
|
|
|
|
Finalise the service.
|
|
Finalise the service.
00234 { 00235 MsgStream log( msgSvc(), name() ); 00236 log << MSG::INFO << "Service finalized successfully" << endreq; 00237 return StatusCode::SUCCESS; 00238 }
|
|
00083 { return emcBarrelGate; }
|
|
00083 { return emcBarrelGate; }
|
|
00226 { return emc_BClus_PHI; }
|
|
00226 { return emc_BClus_PHI; }
|
|
00223 { return emc_BClusBB; }
|
|
00223 { return emc_BClusBB; }
|
|
00228 { return emc_BEtot_H; }
|
|
00228 { return emc_BEtot_H; }
|
|
00235 { return emc_BL_BBLK; }
|
|
00235 { return emc_BL_BBLK; }
|
|
00236 { return emc_BL_EBLK; }
|
|
00236 { return emc_BL_EBLK; }
|
|
00232 { return emc_BL_Z; }
|
|
00232 { return emc_BL_Z; }
|
|
00252 { return emcBTCEnergy[theta][phi]; }
|
|
00252 { return emcBTCEnergy[theta][phi]; }
|
|
00168 { return tof_BTofBB; }
|
|
00168 { return tof_BTofBB; }
|
|
Implements IBesGlobalTrigSvc. 00173 { return btofHitMap; }
|
|
Implements IBesGlobalTrigSvc. 00173 { return btofHitMap; }
|
|
00225 { return emc_Clus_Z; }
|
|
00225 { return emc_Clus_Z; }
|
|
00233 { return emc_Diff_B; }
|
|
00233 { return emc_Diff_B; }
|
|
00234 { return emc_Diff_E; }
|
|
00234 { return emc_Diff_E; }
|
|
00227 { return emc_EClus_PHI; }
|
|
00227 { return emc_EClus_PHI; }
|
|
00224 { return emc_EClusBB; }
|
|
00224 { return emc_EClusBB; }
|
|
00254 { return emcEETCEnergy[theta][phi]; }
|
|
00254 { return emcEETCEnergy[theta][phi]; }
|
|
00229 { return emc_EEtot_H; }
|
|
00229 { return emc_EEtot_H; }
|
|
00239 { return emcBlockE; };
|
|
00239 { return emcBlockE; };
|
|
Implements IBesGlobalTrigSvc. 00246 { return emcBTotE; }
|
|
Implements IBesGlobalTrigSvc. 00246 { return emcBTotE; }
|
|
Implements IBesGlobalTrigSvc. 00256 { return emcClusE; }
|
|
Implements IBesGlobalTrigSvc. 00256 { return emcClusE; }
|
|
00255 { return emcClusId; }
|
|
00255 { return emcClusId; }
|
|
00251 { return emcEETotE; }
|
|
00251 { return emcEETotE; }
|
|
Implements IBesGlobalTrigSvc. 00247 { return emcETotE; }
|
|
Implements IBesGlobalTrigSvc. 00247 { return emcETotE; }
|
|
00248 { return emcLBTotE; }
|
|
00248 { return emcLBTotE; }
|
|
Implements IBesGlobalTrigSvc. 00244 { return emcLTotE; }
|
|
Implements IBesGlobalTrigSvc. 00244 { return emcLTotE; }
|
|
00240 { return emcNbCluster; }
|
|
00240 { return emcNbCluster; }
|
|
00242 { return emcNeeCluster; }
|
|
00242 { return emcNeeCluster; }
|
|
00241 { return emcNweCluster; }
|
|
00241 { return emcNweCluster; }
|
|
00249 { return emcRBTotE; }
|
|
00249 { return emcRBTotE; }
|
|
Implements IBesGlobalTrigSvc. 00245 { return emcRTotE; }
|
|
Implements IBesGlobalTrigSvc. 00245 { return emcRTotE; }
|
|
Implements IBesGlobalTrigSvc. 00243 { return emcTotE; }
|
|
Implements IBesGlobalTrigSvc. 00243 { return emcTotE; }
|
|
00250 { return emcWETotE; }
|
|
00250 { return emcWETotE; }
|
|
00313 { return tm_endcap; }
|
|
00313 { return tm_endcap; }
|
|
00084 { return emcEndGate; }
|
|
00084 { return emcEndGate; }
|
|
00081 { return Energy_Ratio; }
|
|
00081 { return Energy_Ratio; }
|
|
00169 { return tof_ETofBB; }
|
|
00169 { return tof_ETofBB; }
|
|
Implements IBesGlobalTrigSvc. 00174 { return etofHitMap; }
|
|
Implements IBesGlobalTrigSvc. 00174 { return etofHitMap; }
|
|
00230 { return emc_Etot_L; }
|
|
00230 { return emc_Etot_L; }
|
|
00231 { return emc_Etot_M; }
|
|
00231 { return emc_Etot_M; }
|
|
00049 { return m_evttime; }
|
|
00049 { return m_evttime; }
|
|
Implements IBesGlobalTrigSvc. 00052 { return m_goodEvent; };
|
|
Implements IBesGlobalTrigSvc. 00052 { return m_goodEvent; };
|
|
Implements IBesGlobalTrigSvc. 00106 { return ifpass; }
|
|
Implements IBesGlobalTrigSvc. 00106 { return ifpass; }
|
|
|
|
00357 { 00358 L1BLK_GATE = m_RealizationSvc->getVthBalBLK(); 00359 return L1BLK_GATE; 00360 }
|
|
|
|
00337 { 00338 L1EBL_BR = m_RealizationSvc->getVthBalBLK(); 00339 return L1EBL_BR; 00340 }
|
|
|
|
00342 { 00343 L1EBL_EC = m_RealizationSvc->getVthBalEEMC(); 00344 return L1EBL_EC; 00345 }
|
|
|
|
00362 { 00363 L1EBL_Z = m_RealizationSvc->getVthBLZ(); 00364 return L1EBL_Z; 00365 }
|
|
00067 { return L1EBL_Z_Peak; }
|
|
00067 { return L1EBL_Z_Peak; }
|
|
00068 { return L1EBL_Z_Sigma; }
|
|
00068 { return L1EBL_Z_Sigma; }
|
|
|
|
00347 { 00348 L1EDIFF_BR = m_RealizationSvc->getVthDiffB(); 00349 return L1EDIFF_BR; 00350 }
|
|
|
|
00352 { 00353 L1EDIFF_EC = m_RealizationSvc->getVthDiffE(); 00354 return L1EDIFF_EC; 00355 }
|
|
|
|
00327 { 00328 L1ETOT_BR = m_RealizationSvc->getVthBEtotH(); 00329 return L1ETOT_BR; 00330 }
|
|
00063 { return L1ETOT_BR_Peak; }
|
|
00063 { return L1ETOT_BR_Peak; }
|
|
00064 { return L1ETOT_BR_Sigma; }
|
|
00064 { return L1ETOT_BR_Sigma; }
|
|
|
|
00332 { 00333 L1ETOT_EC = m_RealizationSvc->getVthEEtotH(); 00334 return L1ETOT_EC; 00335 }
|
|
00065 { return L1ETOT_EC_Peak; }
|
|
00065 { return L1ETOT_EC_Peak; }
|
|
00066 { return L1ETOT_EC_Sigma; }
|
|
00066 { return L1ETOT_EC_Sigma; }
|
|
|
|
00317 { 00318 L1ETOT_L = m_RealizationSvc->getVthEtotL(); 00319 return L1ETOT_L; 00320 }
|
|
00059 { return L1ETOT_L_Peak; }
|
|
00059 { return L1ETOT_L_Peak; }
|
|
00060 { return L1ETOT_L_Sigma; }
|
|
00060 { return L1ETOT_L_Sigma; }
|
|
|
|
00322 { 00323 L1ETOT_M = m_RealizationSvc->getVthEtotM(); 00324 return L1ETOT_M; 00325 }
|
|
00061 { return L1ETOT_M_Peak; }
|
|
00061 { return L1ETOT_M_Peak; }
|
|
00062 { return L1ETOT_M_Sigma; }
|
|
00062 { return L1ETOT_M_Sigma; }
|
|
00057 { return L1TC_GATE; }
|
|
00057 { return L1TC_GATE; }
|
|
00058 { return L1TC_THRESH; }
|
|
00058 { return L1TC_THRESH; }
|
|
00136 { return mdc_LTrk_BB; }
|
|
00136 { return mdc_LTrk_BB; }
|
|
00080 { return MAXMDCTRACK; }
|
|
00080 { return MAXMDCTRACK; }
|
|
Implements IBesGlobalTrigSvc. 00144 { return mdcLtrkId; }
|
|
Implements IBesGlobalTrigSvc. 00144 { return mdcLtrkId; }
|
|
Implements IBesGlobalTrigSvc. 00143 { return mdcStrkId; }
|
|
Implements IBesGlobalTrigSvc. 00143 { return mdcStrkId; }
|
|
00271 { return muc_BB3478; }
|
|
00271 { return muc_BB3478; }
|
|
00272 { return muc_BB37; }
|
|
00272 { return muc_BB37; }
|
|
00276 { return muc_vhitLayer; }
|
|
00276 { return muc_vhitLayer; }
|
|
00277 { return muc_vhitSeg; }
|
|
00277 { return muc_vhitSeg; }
|
|
00278 { return muc_index; }
|
|
00278 { return muc_index; }
|
|
00275 { return muc_vlayerSeg; }
|
|
00275 { return muc_vlayerSeg; }
|
|
00288 { return muc_n3ltracktotal; }
|
|
00288 { return muc_n3ltracktotal; }
|
|
00280 { return muc_nhitBR; }
|
|
00280 { return muc_nhitBR; }
|
|
00279 { return muc_nhitEE; }
|
|
00279 { return muc_nhitEE; }
|
|
00282 { return muc_nhitTotal; }
|
|
00282 { return muc_nhitTotal; }
|
|
00281 { return muc_nhitWE; }
|
|
00281 { return muc_nhitWE; }
|
|
00283 { return muc_nlayerBR; }
|
|
00283 { return muc_nlayerBR; }
|
|
00285 { return muc_nlayerEE; }
|
|
00285 { return muc_nlayerEE; }
|
|
00284 { return muc_nlayerWE; }
|
|
00284 { return muc_nlayerWE; }
|
|
00286 { return muc_ntrackBR; }
|
|
00286 { return muc_ntrackBR; }
|
|
00287 { return muc_ntrackEC; }
|
|
00287 { return muc_ntrackEC; }
|
|
00221 { return emc_NBClus1; }
|
|
00221 { return emc_NBClus1; }
|
|
00163 { return tof_NBTof1; }
|
|
00163 { return tof_NBTof1; }
|
|
00164 { return tof_NBTof2; }
|
|
00164 { return tof_NBTof2; }
|
|
00219 { return emc_NClus1; }
|
|
00219 { return emc_NClus1; }
|
|
00220 { return emc_NClus2; }
|
|
00220 { return emc_NClus2; }
|
|
00222 { return emc_NEClus1; }
|
|
00222 { return emc_NEClus1; }
|
|
00165 { return tof_NETof1; }
|
|
00165 { return tof_NETof1; }
|
|
00166 { return tof_NETof2; }
|
|
00166 { return tof_NETof2; }
|
|
00140 { return mdc_NItrk1; }
|
|
00140 { return mdc_NItrk1; }
|
|
00141 { return mdc_NItrk2; }
|
|
00141 { return mdc_NItrk2; }
|
|
00139 { return mdc_NLtrk1; }
|
|
00139 { return mdc_NLtrk1; }
|
|
00138 { return mdc_NLtrk2; }
|
|
00138 { return mdc_NLtrk2; }
|
|
00137 { return mdc_NLtrkN; }
|
|
00137 { return mdc_NLtrkN; }
|
|
00135 { return mdc_NStrk1; }
|
|
00135 { return mdc_NStrk1; }
|
|
00134 { return mdc_NStrk2; }
|
|
00134 { return mdc_NStrk2; }
|
|
00133 { return mdc_NStrkN; }
|
|
00133 { return mdc_NStrkN; }
|
|
00167 { return tof_NTof1; }
|
|
00167 { return tof_NTof1; }
|
|
00111 { return m_runMode; }
|
|
00111 { return m_runMode; }
|
|
00132 { return mdc_STrk_BB; }
|
|
00132 { return mdc_STrk_BB; }
|
|
00304 { return tm_ATrk_BB; }
|
|
00304 { return tm_ATrk_BB; }
|
|
00307 { return tm_BTrk_BB; }
|
|
00307 { return tm_BTrk_BB; }
|
|
00310 { return tm_CTrk_BB; }
|
|
00310 { return tm_CTrk_BB; }
|
|
00302 { return tm_NATrk1; }
|
|
00302 { return tm_NATrk1; }
|
|
00303 { return tm_NATrk2; }
|
|
00303 { return tm_NATrk2; }
|
|
00305 { return tm_NBTrk1; }
|
|
00305 { return tm_NBTrk1; }
|
|
00306 { return tm_NBTrk2; }
|
|
00306 { return tm_NBTrk2; }
|
|
00308 { return tm_NCTrk1; }
|
|
00308 { return tm_NCTrk1; }
|
|
00309 { return tm_NCTrk2; }
|
|
00309 { return tm_NCTrk2; }
|
|
00172 { return tofHitPos; }
|
|
00172 { return tofHitPos; }
|
|
00085 { return m_tofLayer; }
|
|
00085 { return m_tofLayer; }
|
|
00089 { return m_trigChannel; }
|
|
00088 { return m_trigChannel[i]; }
|
|
00089 { return m_trigChannel; }
|
|
00088 { return m_trigChannel[i]; }
|
|
00095 { return m_trigCondition; }
|
|
Implements IBesGlobalTrigSvc. 00094 { return m_trigCondition[i]; }
|
|
00095 { return m_trigCondition; }
|
|
Implements IBesGlobalTrigSvc. 00094 { return m_trigCondition[i]; }
|
|
00253 { return emcWETCEnergy[theta][phi]; }
|
|
00253 { return emcWETCEnergy[theta][phi]; }
|
|
Implements IBesGlobalTrigSvc. |
|
Implements IBesGlobalTrigSvc. 00384 { 00385 //initialize 00386 ifpass = false; 00387 trigOut.clear(); 00388 00389 for(int i = 0; i < 16; i++) { 00390 if(i < 16) m_trigChannel[i] = 0; 00391 } 00392 00393 MsgStream log(msgSvc(), name()); 00394 00395 //get Muc trigger information 00396 muc_vlayerSeg = m_MucTrig->getNlayerSeg(); 00397 00398 muc_nlayerEE = m_MucTrig->getNlayerPart(0); 00399 muc_nlayerBR = m_MucTrig->getNlayerPart(1); 00400 muc_nlayerWE = m_MucTrig->getNlayerPart(2); 00401 muc_vhitLayer = m_MucTrig->getNhitLayer(); 00402 muc_vhitSeg = m_MucTrig->getNhitSeg(); 00403 muc_nhitEE = m_MucTrig->getNhitPart(0); 00404 muc_nhitBR = m_MucTrig->getNhitPart(1); 00405 muc_nhitWE = m_MucTrig->getNhitPart(2); 00406 muc_nhitTotal = m_MucTrig->getNhitTotal(); 00407 00408 //set trigger condition id 00409 StatusCode status; 00410 //StatusCode status = setTrigCondition(); 00411 00412 //make out trigger conditon table; 00413 for(unsigned int i = 0; i < 48; i++) { 00414 for(unsigned int j = 0; j < trigChannel.size(); j++) { 00415 if(trigCond[i]) trigOut.push_back(1); 00416 else trigOut.push_back(0); 00417 } 00418 } 00419 00420 //compare trigger table and trigger output 00421 00422 for(unsigned int i=0; i<channelNo.size(); i++) 00423 { 00424 if(channelNo.size() > 16) { 00425 log << MSG::FATAL <<"Trigger Channel is greater than 16!!!!!" << endreq; 00426 return StatusCode::FAILURE; 00427 } 00428 int condition = 0; 00429 int conditionNo = 0; 00430 if(channelNo[i]==0) 00431 { 00432 m_trigChannel[i] = 0; //data structure member in TDS 00433 continue; 00434 } 00435 else 00436 { 00437 log<<MSG::INFO<<trigChannel[i]<<": "; 00438 for(unsigned int j=0; j<trigCondName.size(); j++) 00439 { 00440 if(trigTable[i+j*channelNo.size()]=="1"&&trigOut[i+j*channelNo.size()]==1) condition++; 00441 if(trigTable[i+j*channelNo.size()]=="0"&&trigOut[i+j*channelNo.size()]==0) condition++; 00442 if(trigTable[i+j*channelNo.size()]=="1") log<<MSG::INFO<<trigCondName[j]<<" "; 00443 if(trigTable[i+j*channelNo.size()]=="0") log<<MSG::INFO<<"anti_"<<trigCondName[j]<<" "; 00444 } 00445 for(unsigned int k=0; k<trigCondName.size(); k++) 00446 { 00447 if(trigTable[i+k*channelNo.size()]=="1"||trigTable[i+k*channelNo.size()]=="0") { 00448 log<<MSG::INFO<<trigOut[i+k*channelNo.size()]<<" "; 00449 conditionNo++; } 00450 } 00451 log<<MSG::INFO<<endreq; 00452 if((condition == conditionNo) && conditionNo!=0) { 00453 ifpass = true; 00454 m_trigChannel[i] = 1; //data structure member in TDS 00455 } 00456 else { 00457 m_trigChannel[i] = 0; //data structure member in TDS 00458 } 00459 } 00460 } 00461 00462 return status; 00463 }
|
|
|
|
00255 { 00256 MsgStream log( msgSvc(), name() ); 00257 log << MSG::DEBUG << "handle: " << inc.type() << endreq; 00258 if ( inc.type() != "NewRun" ){ 00259 return; 00260 } 00261 log << MSG::DEBUG << "Begin New Run" << endreq; 00262 if(m_RealizationSvc->UseDBFlag() == true && m_RealizationSvc->ifReadTrg() == true) { 00263 00264 std::vector<uint32_t> trgTable_DB = m_RealizationSvc->getTrgTable(); 00265 00266 trigChannel.clear(); 00267 trigCondName.clear(); 00268 trigTable.clear(); 00269 channelNo.clear(); 00270 00271 for(unsigned int i = 0, mask = 1; i <16; i++,mask<<=1) { 00272 if(trgTable_DB[0] & mask) { 00273 if(i == 9) channelNo.push_back(0); 00274 else channelNo.push_back(1); 00275 } 00276 else channelNo.push_back(0); 00277 std::ostringstream osname; 00278 osname << "Channel_"<<i; 00279 std::string name = osname.str(); 00280 trigChannel.push_back(name); 00281 } 00282 00283 string table_tmp[16][64]; 00284 for(unsigned int i = 1; i <65; i++) { 00285 for(unsigned int j = 0; j <16; j++) { 00286 int bit2 = (trgTable_DB[i]>>2*j) & 0x3; 00287 int row = (int) (i-1)/4; 00288 int column = ((i-1)%4)*16 + j; 00289 if(bit2 == 0) table_tmp[row][column] = "1"; 00290 else if(bit2 == 1) table_tmp[row][column] = "0"; 00291 else table_tmp[row][column] = "-"; 00292 } 00293 } 00294 00295 for(int j = 0; j < 48; j++) { 00296 trigCondName.push_back(COND_NAME[j]); 00297 for(int i = 0; i < 16; i++) { 00298 trigTable.push_back(table_tmp[i][j]); 00299 } 00300 } 00301 //print 00302 for(unsigned int i=0;i<trigChannel.size();i++){ cout<<" "<<trigChannel[i]<<" ";} 00303 cout<<endl; 00304 for(unsigned int i=0;i<channelNo.size();i++){ cout<<" "<<channelNo[i]<<" ";} 00305 cout<<endl; 00306 for(unsigned int j=0;j<trigCondName.size();j++) 00307 { 00308 cout<<setw(15)<<trigCondName[j]<<" "; 00309 for(unsigned int i=0+j*trigChannel.size();i<trigChannel.size()+j*trigChannel.size();i++) 00310 { cout<<trigTable[i]<<" ";} 00311 cout<<endl; 00312 } 00313 } 00314 00315 }
|
|
Initialise the service (Inherited Service overrides).
|
|
Initialise the service (Inherited Service overrides).
00123 { 00124 MsgStream log(msgSvc(), name()); 00125 00126 StatusCode sc = Service::initialize(); 00127 if( sc.isFailure() ) return sc; 00128 00129 StatusCode status; 00130 // Get the references to the services that are needed by the ApplicationMgr itself 00131 IIncidentSvc* incsvc; 00132 status = service("IncidentSvc", incsvc); 00133 int priority = 100; 00134 if( status.isSuccess() ){ 00135 incsvc -> addListener(this, "NewRun", priority); 00136 } 00137 00138 IRealizationSvc *tmpReal; 00139 status = service("RealizationSvc",tmpReal); 00140 if (!status.isSuccess()) 00141 { 00142 log << MSG::FATAL << " Could not initialize Realization Service" << endreq; 00143 } else { 00144 m_RealizationSvc=dynamic_cast<RealizationSvc*>(tmpReal); 00145 } 00146 00147 m_MdcTrig = new BesMdcTrig(); 00148 m_TofTrig = new BesTofTrig(); 00149 m_EmcTrig = new BesEmcTrig(); 00150 m_MucTrig = new BesMucTrig(); 00151 m_TMTrig = new BesTMTrig(); 00152 00153 if(!m_MdcTrig) log<<MSG::FATAL<<"can not get BesMdcTrig pointer "<<endreq; 00154 if(!m_TofTrig) log<<MSG::FATAL<<"can not get BesTofTrig pointer "<<endreq; 00155 if(!m_EmcTrig) log<<MSG::FATAL<<"can not get BesEmcTrig pointer "<<endreq; 00156 if(!m_MucTrig) log<<MSG::FATAL<<"can not get BesMucTrig pointer "<<endreq; 00157 if(!m_TMTrig) log<<MSG::FATAL<<"can not get BesTMTrig pointer "<<endreq; 00158 00159 trigChannel.clear(); 00160 trigCondName.clear(); 00161 trigTable.clear(); 00162 channelNo.clear(); 00163 00164 if(m_RealizationSvc->UseDBFlag() == false) { 00165 ifstream infile; 00166 infile.open(trigTableFile.c_str(),ios_base::in); 00167 if(!infile) log<<MSG::FATAL<<"can not open Trigger Table file: "<<trigTableFile<<endreq; 00168 char line[ 255 ]; 00169 // Skip the header 00170 do{ 00171 infile.getline( line, 255 ); 00172 } while( line[0] != 'C' ); 00173 //the name of each trigger channel 00174 std::string chan; 00175 int num; 00176 char* token = strtok( line, " " ); 00177 do{ 00178 if ( token ) { 00179 chan = token; 00180 token = strtok( NULL, " " ); 00181 if(chan!="CHANNEL") trigChannel.push_back(chan); 00182 } 00183 else continue; 00184 }while ( token != NULL ); 00185 //use this trigger channel, yes or no ? 00186 infile.getline( line, 255 ); 00187 token = strtok( line, " " ); 00188 do{ 00189 if( token ) { 00190 chan = token; 00191 token = strtok(NULL, " "); 00192 num = atoi(chan.c_str()); 00193 channelNo.push_back(num); 00194 } 00195 else continue; 00196 }while ( token!=NULL); 00197 00198 while(infile) { 00199 infile.getline( line, 255 ); 00200 if(line[0]==' ') continue; 00201 if(line[0]=='#') break; 00202 token = strtok( line, " " ); 00203 do{ 00204 if(token) { 00205 chan = token; 00206 token = strtok(NULL," "); 00207 if(chan=="1"||chan=="0"||chan=="-") { trigTable.push_back(chan); } 00208 else { 00209 trigCondName.push_back(chan); 00210 } 00211 } 00212 else continue; 00213 }while (token!=NULL); 00214 } 00215 00216 for(unsigned int i=0;i<trigChannel.size();i++){ cout<<" "<<trigChannel[i]<<" ";} 00217 cout<<endl; 00218 for(unsigned int i=0;i<channelNo.size();i++){ cout<<" "<<channelNo[i]<<" ";} 00219 cout<<endl; 00220 for(unsigned int j=0;j<trigCondName.size();j++) 00221 { 00222 cout<<trigCondName[j]<<" "; 00223 for(unsigned int i=0+j*trigChannel.size();i<trigChannel.size()+j*trigChannel.size();i++) 00224 { cout<<trigTable[i]<<" ";} 00225 cout<<endl; 00226 } 00227 infile.close(); 00228 } 00229 00230 return StatusCode::SUCCESS; 00231 }
|
|
00015 { return IID_IBesGlobalTrigSvc; }
|
|
00015 { return IID_IBesGlobalTrigSvc; }
|
|
|
|
00245 { 00246 if ( IBesGlobalTrigSvc::interfaceID().versionMatch(riid) ) { 00247 *ppvInterface = (IBesGlobalTrigSvc*)this; 00248 }else{ 00249 return Service::queryInterface(riid, ppvInterface); 00250 } 00251 addRef(); 00252 return StatusCode::SUCCESS; 00253 }
|
|
00185 { emc_BClus_PHI = i; }
|
|
00185 { emc_BClus_PHI = i; }
|
|
00182 { emc_BClusBB = i; }
|
|
00182 { emc_BClusBB = i; }
|
|
00187 { emc_BEtot_H = i; }
|
|
00187 { emc_BEtot_H = i; }
|
|
00194 { emc_BL_BBLK = i; }
|
|
00194 { emc_BL_BBLK = i; }
|
|
00195 { emc_BL_EBLK = i; }
|
|
00195 { emc_BL_EBLK = i; }
|
|
00191 { emc_BL_Z = i; }
|
|
00191 { emc_BL_Z = i; }
|
|
00210 { emcBTCEnergy[theta][phi] = energy; }
|
|
00210 { emcBTCEnergy[theta][phi] = energy; }
|
|
00149 { tof_BTofBB = i; }
|
|
00149 { tof_BTofBB = i; }
|
|
00158 { btofHitMap = i; }
|
|
00158 { btofHitMap = i; }
|
|
00184 { emc_Clus_Z = i; }
|
|
00184 { emc_Clus_Z = i; }
|
|
00192 { emc_Diff_B = i; }
|
|
00192 { emc_Diff_B = i; }
|
|
00193 { emc_Diff_E = i; }
|
|
00193 { emc_Diff_E = i; }
|
|
00186 { emc_EClus_PHI = i; }
|
|
00186 { emc_EClus_PHI = i; }
|
|
00183 { emc_EClusBB = i; }
|
|
00183 { emc_EClusBB = i; }
|
|
00212 { emcEETCEnergy[theta][phi] = energy; }
|
|
00212 { emcEETCEnergy[theta][phi] = energy; }
|
|
00188 { emc_EEtot_H = i; }
|
|
00188 { emc_EEtot_H = i; }
|
|
00213 { emcBlockE = i; }
|
|
00213 { emcBlockE = i; }
|
|
00204 { emcBTotE = i; }
|
|
00204 { emcBTotE = i; }
|
|
00215 { emcClusE = i; }
|
|
00215 { emcClusE = i; }
|
|
00214 { emcClusId = i; }
|
|
00214 { emcClusId = i; }
|
|
00209 { emcEETotE = i; }
|
|
00209 { emcEETotE = i; }
|
|
00205 { emcETotE = i; }
|
|
00205 { emcETotE = i; }
|
|
00206 { emcLBTotE = i; }
|
|
00206 { emcLBTotE = i; }
|
|
00202 { emcLTotE = i; }
|
|
00202 { emcLTotE = i; }
|
|
00198 { emcNbCluster = i; }
|
|
00198 { emcNbCluster = i; }
|
|
00200 { emcNeeCluster = i; }
|
|
00200 { emcNeeCluster = i; }
|
|
00199 { emcNweCluster = i; }
|
|
00199 { emcNweCluster = i; }
|
|
00207 { emcRBTotE = i; }
|
|
00207 { emcRBTotE = i; }
|
|
00203 { emcRTotE = i; }
|
|
00203 { emcRTotE = i; }
|
|
00201 { emcTotE = i; }
|
|
00201 { emcTotE = i; }
|
|
00208 { emcWETotE = i; }
|
|
00208 { emcWETotE = i; }
|
|
00148 { tof_ETofBB = i; }
|
|
00148 { tof_ETofBB = i; }
|
|
00159 { etofHitMap = i; }
|
|
00159 { etofHitMap = i; }
|
|
00189 { emc_Etot_L = i; }
|
|
00189 { emc_Etot_L = i; }
|
|
00190 { emc_Etot_M = i; }
|
|
00190 { emc_Etot_M = i; }
|
|
00048 { m_evttime = i; };
|
|
00048 { m_evttime = i; };
|
|
Implements IBesGlobalTrigSvc. 00051 { m_goodEvent = i; };
|
|
Implements IBesGlobalTrigSvc. 00051 { m_goodEvent = i; };
|
|
00104 { ifpass = i; }
|
|
00104 { ifpass = i; }
|
|
00119 { mdc_LTrk_BB = i; }
|
|
00119 { mdc_LTrk_BB = i; }
|
|
00128 { mdcLtrkId = i; }
|
|
00128 { mdcLtrkId = i; }
|
|
00127 { mdcStrkId = i; }
|
|
00127 { mdcStrkId = i; }
|
|
00260 { muc_BB3478 = i; }
|
|
00260 { muc_BB3478 = i; }
|
|
00261 { muc_BB37 = i; }
|
|
00261 { muc_BB37 = i; }
|
|
00264 { muc_index = i; }
|
|
00264 { muc_index = i; }
|
|
00267 { muc_n3ltracktotal = i; }
|
|
00267 { muc_n3ltracktotal = i; }
|
|
00265 { muc_ntrackBR = i; }
|
|
00265 { muc_ntrackBR = i; }
|
|
00266 { muc_ntrackEC = i; }
|
|
00266 { muc_ntrackEC = i; }
|
|
00180 { emc_NBClus1 = i; }
|
|
00180 { emc_NBClus1 = i; }
|
|
00153 { tof_NBTof1 = i; }
|
|
00153 { tof_NBTof1 = i; }
|
|
00152 { tof_NBTof2 = i; }
|
|
00152 { tof_NBTof2 = i; }
|
|
00178 { emc_NClus1 = i; }
|
|
00178 { emc_NClus1 = i; }
|
|
00179 { emc_NClus2 = i; }
|
|
00179 { emc_NClus2 = i; }
|
|
00181 { emc_NEClus1 = i; }
|
|
00181 { emc_NEClus1 = i; }
|
|
00151 { tof_NETof1 = i; }
|
|
00151 { tof_NETof1 = i; }
|
|
00150 { tof_NETof2 = i; }
|
|
00150 { tof_NETof2 = i; }
|
|
00123 { mdc_NItrk1 = i; }
|
|
00123 { mdc_NItrk1 = i; }
|
|
00124 { mdc_NItrk2 = i; }
|
|
00124 { mdc_NItrk2 = i; }
|
|
00122 { mdc_NLtrk1 = i; }
|
|
00122 { mdc_NLtrk1 = i; }
|
|
00121 { mdc_NLtrk2 = i; }
|
|
00121 { mdc_NLtrk2 = i; }
|
|
00120 { mdc_NLtrkN = i; }
|
|
00120 { mdc_NLtrkN = i; }
|
|
00118 { mdc_NStrk1 = i; }
|
|
00118 { mdc_NStrk1 = i; }
|
|
00117 { mdc_NStrk2 = i; }
|
|
00117 { mdc_NStrk2 = i; }
|
|
00116 { mdc_NStrkN = i; }
|
|
00116 { mdc_NStrkN = i; }
|
|
00154 { tof_NTof1 = i; }
|
|
00154 { tof_NTof1 = i; }
|
|
00109 { m_runMode = mode; }
|
|
00109 { m_runMode = mode; }
|
|
00115 { mdc_STrk_BB = i; }
|
|
00115 { mdc_STrk_BB = i; }
|
|
00293 { tm_ATrk_BB = i; }
|
|
00293 { tm_ATrk_BB = i; }
|
|
00296 { tm_BTrk_BB = i; }
|
|
00296 { tm_BTrk_BB = i; }
|
|
00299 { tm_CTrk_BB = i; }
|
|
00299 { tm_CTrk_BB = i; }
|
|
00291 { tm_NATrk1 = i; }
|
|
00291 { tm_NATrk1 = i; }
|
|
00292 { tm_NATrk2 = i; }
|
|
00292 { tm_NATrk2 = i; }
|
|
00294 { tm_NBTrk1 = i; }
|
|
00294 { tm_NBTrk1 = i; }
|
|
00295 { tm_NBTrk2 = i; }
|
|
00295 { tm_NBTrk2 = i; }
|
|
00297 { tm_NCTrk1 = i; }
|
|
00297 { tm_NCTrk1 = i; }
|
|
00298 { tm_NCTrk2 = i; }
|
|
00298 { tm_NCTrk2 = i; }
|
|
00157 { tofHitPos = i; }
|
|
00157 { tofHitPos = i; }
|
|
00091 { m_trigChannel[i] = j; }
|
|
00091 { m_trigChannel[i] = j; }
|
|
00097 { 00098 trigCond[i] = j; 00099 if(j) m_trigCondition[i] = 1; 00100 else m_trigCondition[i] = 0; 00101 }
|
|
00097 { 00098 trigCond[i] = j; 00099 if(j) m_trigCondition[i] = 1; 00100 else m_trigCondition[i] = 0; 00101 }
|
|
|
|
00466 { 00467 for(int i = 0; i < 48; i++) { 00468 trigCond[i] = false; 00469 m_trigCondition[i] = 0; 00470 } 00471 00472 trigCond[0] = emc_NClus1; 00473 trigCond[1] = emc_NClus2; 00474 trigCond[2] = emc_BClusBB; 00475 trigCond[3] = emc_EClusBB; 00476 trigCond[4] = emc_Clus_Z; 00477 trigCond[5] = emc_BClus_PHI; 00478 trigCond[6] = emc_EClus_PHI; 00479 trigCond[7] = emc_BEtot_H; 00480 trigCond[8] = emc_EEtot_H; 00481 trigCond[9] = emc_Etot_L; 00482 trigCond[10] = emc_Etot_M; 00483 trigCond[11] = emc_BL_Z; 00484 trigCond[12] = emc_NBClus1; 00485 trigCond[13] = emc_NEClus1; 00486 trigCond[14] = emc_BL_BBLK; 00487 trigCond[15] = emc_BL_EBLK; 00488 trigCond[16] = tof_ETofBB; 00489 trigCond[17] = tof_BTofBB; 00490 trigCond[18] = tof_NETof2; 00491 trigCond[19] = tof_NETof1; 00492 trigCond[20] = tof_NBTof2; 00493 trigCond[21] = tof_NBTof1; 00494 trigCond[22] = tof_NTof1; 00495 trigCond[23] = tm_CTrk_BB; 00496 trigCond[24] = tm_NCTrk2; 00497 trigCond[25] = tm_NCTrk1; 00498 trigCond[26] = tm_BTrk_BB; 00499 trigCond[27] = tm_NBTrk2; 00500 trigCond[28] = tm_NBTrk1; 00501 trigCond[29] = tm_ATrk_BB; 00502 trigCond[30] = tm_NATrk2; 00503 trigCond[31] = tm_NATrk1; 00504 trigCond[32] = muc_BB3478; 00505 trigCond[33] = muc_BB37; 00506 trigCond[34] = false; 00507 trigCond[35] = false; 00508 trigCond[36] = false; 00509 trigCond[37] = false; 00510 trigCond[38] = mdc_STrk_BB; 00511 trigCond[39] = mdc_NStrkN; 00512 trigCond[40] = mdc_NStrk2; 00513 trigCond[41] = mdc_NStrk1; 00514 trigCond[42] = mdc_LTrk_BB; 00515 trigCond[43] = mdc_NLtrkN; 00516 trigCond[44] = mdc_NLtrk2; 00517 trigCond[45] = mdc_NLtrk1; 00518 trigCond[46] = mdc_NItrk2; 00519 trigCond[47] = mdc_NItrk1; 00520 00521 MsgStream log(msgSvc(), name()); 00522 if(trigCondName.size() != 48) { 00523 log << MSG::FATAL << "The trigger condition CAN NOT be successfully read!!!" << endreq; 00524 return StatusCode::FAILURE; 00525 } 00526 00527 for(unsigned int i = 0; i < 48; i++) { 00528 if(trigCond[i]) m_trigCondition[i] = 1; //data structure member in TDS 00529 } 00530 00531 return StatusCode::SUCCESS; 00532 }
|
|
00211 { emcWETCEnergy[theta][phi] = energy; }
|
|
00211 { emcWETCEnergy[theta][phi] = energy; }
|
|
|
|
00375 { 00376 if(m_EmcTrig) m_EmcTrig->startEmcTrig(); 00377 }
|
|
|
|
00367 { 00368 if(m_MdcTrig) m_MdcTrig->startMdcTrig(); 00369 }
|
|
|
|
00379 { 00380 if(m_TMTrig) m_TMTrig->startTMTrig(); 00381 }
|
|
|
|
00371 { 00372 if(m_TofTrig) m_TofTrig->startTofTrig(); 00373 }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|