| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

In This Package:

DbiCableSvc.cc

Go to the documentation of this file.
00001 #include "DbiCableSvc.h"
00002 #include "GaudiKernel/IMessageSvc.h"
00003 
00004 #include "genDbi/GFeeCableMap.h"
00005 
00006 #include "Conventions/Hardware.h"
00007 #include "Conventions/Electronics.h"
00008 #include "DatabaseInterface/Dbi.h"
00009 #include "DatabaseInterface/DbiResultAgg.h"
00010 #include "DatabaseInterface/DbiCascader.h"
00011 #include "DatabaseInterface/DbiConfigSet.h"
00012 #include "DatabaseInterface/DbiLogEntry.h"
00013 #include "DatabaseInterface/DbiResultKey.h"
00014 #include "DatabaseInterface/DbiResultNonAgg.h"
00015 #include "DatabaseInterface/DbiResultPtr.h"
00016 #include "DatabaseInterface/DbiResultSet.h"
00017 #include "DatabaseInterface/DbiServices.h"
00018 #include "DatabaseInterface/DbiValRecSet.h"
00019 #include "DatabaseInterface/DbiLog.h"
00020 #include "DatabaseInterface/DbiCache.h"
00021 #include "DatabaseInterface/DbiSqlContext.h"
00022 #include <sstream>
00023 #include <fstream>
00024 
00025 DayaBay::Detector DbiCableSvc::s_unknownSiteDet = 
00026   DayaBay::Detector(Site::kUnknown,DetectorId::kUnknown);
00027 
00028 DayaBay::Detector DbiCableSvc::s_allSiteDet = 
00029   DayaBay::Detector(Site::kAll,DetectorId::kAll);
00030 
00031 DbiCableSvc::DbiCableSvc(const std::string& name, ISvcLocator *svc)
00032     : Service(name,svc)
00033 {
00034 }
00035 
00036 DbiCableSvc::~DbiCableSvc()
00037 {
00038 }
00039 
00040 StatusCode DbiCableSvc::initialize()
00041 {
00042     this->Service::initialize();
00043 
00044     // Prepare the message service for reporting
00045 /*  IMessageSvc* msg = msgSvc();//cxs 2010-12-7
00046     if( !msg ){    
00047       return StatusCode::FAILURE;
00048     }
00049 */
00050     MsgStream msg(msgSvc(),name());
00051     feeLastResult = 0;   //cxs 2010-10-28.
00052     return StatusCode::SUCCESS;
00053 }
00054 
00055 StatusCode DbiCableSvc::finalize()
00056 {
00057     return this->Service::finalize();
00058 }
00059 
00060 StatusCode DbiCableSvc::queryInterface(const InterfaceID& riid, 
00061                                           void** ppvInterface)
00062 {
00063     StatusCode sc = StatusCode::FAILURE;
00064     if (ppvInterface) {
00065         *ppvInterface = 0;
00066     
00067         if (ICableSvc::interfaceID().versionMatch(riid)) {
00068             *ppvInterface = static_cast<ICableSvc*>(this);
00069             sc = StatusCode::SUCCESS;
00070             addRef();
00071         }
00072         else sc = Service::queryInterface( riid, ppvInterface );    
00073     }
00074     return sc;
00075 }
00076 
00077 const std::vector<DayaBay::HardwareId>& DbiCableSvc::hardwareIds(const ServiceMode& serviceMode)
00078 {
00079   readFeeTable(serviceMode);
00080   return m_hardwareIds;
00081 }
00082 
00083 const std::vector<DayaBay::PmtHardwareId>& DbiCableSvc::pmtHardwareIds(const ServiceMode& serviceMode)
00084 {
00085   readFeeTable(serviceMode);
00086   return m_pmtHardwareIds;
00087 }
00088 
00089 const std::vector<DayaBay::RpcHardwareId>& DbiCableSvc::rpcHardwareIds(const ServiceMode& serviceMode)
00090 {
00091   readFeeTable(serviceMode);
00092   return m_rpcHardwareIds;
00093 }
00094 
00095 const std::vector<DayaBay::FeeHardwareId>& DbiCableSvc::feeHardwareIds(const ServiceMode& serviceMode)
00096 {
00097   readFeeTable(serviceMode);
00098   return m_feeHardwareIds;
00099 }
00100 
00101 const std::vector<DayaBay::FecHardwareId>& DbiCableSvc::fecHardwareIds(const ServiceMode& serviceMode)
00102 {
00103   readFeeTable(serviceMode);
00104   return m_fecHardwareIds;
00105 }
00106 
00107 const std::vector<DayaBay::DetectorSensor>& DbiCableSvc::sensors(const ServiceMode& svcMode)
00108 {
00109   readFeeTable(svcMode);
00110   DayaBay::Detector siteDetId(svcMode.context().GetSite(), 
00111                               svcMode.context().GetDetId());
00112   std::map<DayaBay::Detector,std::vector<DayaBay::DetectorSensor> >::iterator iter;
00113   iter = m_sensorsBySiteDet.find(siteDetId);
00114   if( iter != m_sensorsBySiteDet.end() ){
00115     // Found site / det
00116     return iter->second;
00117   }
00118   std::ostringstream msgStr;
00119 /*msgStr << "sensors(): No sensors for site / detector ID: " << siteDetId; //cxs 2010-12-8
00120   msg->reportMessage("DbiCableSvc",MSG::WARNING,msgStr.str());
00121 */
00122   return m_sensorsBySiteDet[s_unknownSiteDet];
00123 }
00124 
00125 const std::vector<DayaBay::AdPmtSensor>& DbiCableSvc::adPmtSensors(const ServiceMode& svcMode)
00126 {
00127   readFeeTable(svcMode);
00128   DayaBay::Detector siteDetId(svcMode.context().GetSite(), 
00129                               svcMode.context().GetDetId());
00130   std::map<DayaBay::Detector,std::vector<DayaBay::AdPmtSensor> >::iterator iter;
00131   iter = m_adPmtSensorsBySiteDet.find(siteDetId);
00132   if( iter != m_adPmtSensorsBySiteDet.end() ){
00133     // Found site / det
00134     return iter->second;
00135   }
00136   std::ostringstream msgStr;
00137 /*msgStr << "adPmtSensors(): No sensors for site / detector ID: " << siteDetId; //cxs 2010-12-8
00138   msg->reportMessage("DbiCableSvc",MSG::WARNING,msgStr.str());
00139 */
00140   return m_adPmtSensorsBySiteDet[s_unknownSiteDet];
00141 }
00142 
00143 const std::vector<DayaBay::PoolPmtSensor>& DbiCableSvc::poolPmtSensors(const ServiceMode& svcMode)
00144 {
00145   readFeeTable(svcMode);
00146   DayaBay::Detector siteDetId(svcMode.context().GetSite(), 
00147                               svcMode.context().GetDetId());
00148   std::map<DayaBay::Detector,std::vector<DayaBay::PoolPmtSensor> >::iterator iter;
00149   iter = m_poolPmtSensorsBySiteDet.find(siteDetId);
00150   if( iter != m_poolPmtSensorsBySiteDet.end() ){
00151     // Found site / det
00152     return iter->second;
00153   }
00154   std::ostringstream msgStr;
00155 /*msgStr << "poolPmtSensors(): No sensors for site / detector ID: "<< siteDetId;//cxs 2010-12-8
00156   msg->reportMessage("DbiCableSvc",MSG::WARNING,msgStr.str());
00157 */
00158   return m_poolPmtSensorsBySiteDet[s_unknownSiteDet];
00159 }
00160 
00161 const std::vector<DayaBay::RpcSensor>& DbiCableSvc::rpcSensors(const ServiceMode& svcMode)
00162 {
00163   readFeeTable(svcMode);
00164   DayaBay::Detector siteDetId(svcMode.context().GetSite(), 
00165                               svcMode.context().GetDetId());
00166   std::map<DayaBay::Detector,std::vector<DayaBay::RpcSensor> >::iterator iter;
00167   iter = m_rpcSensorsBySiteDet.find(siteDetId);
00168   if( iter != m_rpcSensorsBySiteDet.end() ){
00169     // Found site / det
00170     return iter->second;
00171   }
00172   std::ostringstream msgStr;
00173 /*msgStr << "rpcSensors(): No sensors for site / detector ID: "<< siteDetId;//cxs 2010-12-8
00174   msg->reportMessage("DbiCableSvc",MSG::WARNING,msgStr.str());
00175 */
00176   return m_rpcSensorsBySiteDet[s_unknownSiteDet];
00177 }
00178 
00179 const std::vector<DayaBay::ElecChannelId>& DbiCableSvc::elecChannelIds(const ServiceMode& svcMode)
00180 {
00181   readFeeTable(svcMode);
00182   DayaBay::Detector siteDetId(svcMode.context().GetSite(), 
00183                               svcMode.context().GetDetId());
00184   std::map<DayaBay::Detector,std::vector<DayaBay::ElecChannelId> >::iterator iter;
00185   iter = m_elecChannelIdsBySiteDet.find(siteDetId);
00186   if( iter != m_elecChannelIdsBySiteDet.end() ){
00187     // Found site / det
00188     return iter->second;
00189   }
00190   std::ostringstream msgStr;
00191 /*msgStr << "elecChannelIds(): No sensors for site / detector ID: "<< siteDetId; //cxs 2010-12-8
00192   msg->reportMessage("DbiCableSvc",MSG::WARNING,msgStr.str());
00193 */
00194   return m_elecChannelIdsBySiteDet[s_unknownSiteDet];
00195 }
00196 
00197 const std::vector<DayaBay::FeeChannelId>& DbiCableSvc::feeChannelIds(const ServiceMode& svcMode)
00198 {
00199   readFeeTable(svcMode);
00200   DayaBay::Detector siteDetId(svcMode.context().GetSite(), 
00201                               svcMode.context().GetDetId());
00202   std::map<DayaBay::Detector,std::vector<DayaBay::FeeChannelId> >::iterator iter;
00203   iter = m_feeChannelIdsBySiteDet.find(siteDetId);
00204   if( iter != m_feeChannelIdsBySiteDet.end() ){
00205     // Found site / det
00206     return iter->second;
00207   }
00208   std::ostringstream msgStr;
00209 /*msgStr << "feeChannelIds(): No sensors for site / detector ID: " << siteDetId; //cxs 2010-12-8
00210   msg->reportMessage("DbiCableSvc",MSG::WARNING,msgStr.str());
00211 */
00212   return m_feeChannelIdsBySiteDet[s_unknownSiteDet];
00213 }
00214 
00215 const std::vector<DayaBay::FecChannelId>& DbiCableSvc::fecChannelIds(const ServiceMode& svcMode)
00216 {
00217   DayaBay::Detector siteDetId(svcMode.context().GetSite(), 
00218                               svcMode.context().GetDetId());
00219   std::map<DayaBay::Detector,std::vector<DayaBay::FecChannelId> >::iterator iter;
00220   iter = m_fecChannelIdsBySiteDet.find(siteDetId);
00221   if( iter != m_fecChannelIdsBySiteDet.end() ){
00222     // Found site / det
00223     return iter->second;
00224   }
00225   std::ostringstream msgStr;
00226 /*msgStr << "fecChannelIds(): No sensors for site / detector ID: " << siteDetId; //cxs 2010-12-8
00227   msg->reportMessage("DbiCableSvc",MSG::WARNING,msgStr.str());
00228 */
00229   return m_fecChannelIdsBySiteDet[s_unknownSiteDet];
00230 }
00231 
00232 DayaBay::ElecChannelId DbiCableSvc::elecChannelId(
00233                                           const DayaBay::DetectorSensor& sensId,
00234                                           const ServiceMode& svcMode)
00235 {
00236   readFeeTable(svcMode);
00237   std::map<DayaBay::DetectorSensor,DayaBay::ElecChannelId>::iterator iter;
00238   iter = m_channelBySensor.find(sensId);
00239   if( iter != m_channelBySensor.end() ){
00240     // Found channel
00241     return iter->second;
00242   }
00243   std::ostringstream msgStr;
00244 /*msgStr << "elecChannelId(): No electronics channel for sensor ID: " << sensId; //cxs 2010-12-8
00245   msg->reportMessage("DbiCableSvc",MSG::WARNING,msgStr.str());
00246 */
00247   return DayaBay::ElecChannelId(0);
00248 }
00249 
00250 DayaBay::FeeChannelId DbiCableSvc::feeChannelId(
00251                                             const DayaBay::AdPmtSensor& sensId,
00252                                             const ServiceMode& svcMode)
00253 {
00254   readFeeTable(svcMode);
00255   return DayaBay::FeeChannelId(elecChannelId(sensId,svcMode).fullPackedData());
00256 }
00257 
00258 DayaBay::FeeChannelId DbiCableSvc::feeChannelId(
00259                                           const DayaBay::PoolPmtSensor& sensId,
00260                                           const ServiceMode& svcMode)
00261 {
00262   readFeeTable(svcMode);
00263   return DayaBay::FeeChannelId(elecChannelId(sensId,svcMode).fullPackedData());
00264 }
00265 
00266 DayaBay::FecChannelId DbiCableSvc::fecChannelId(
00267                                               const DayaBay::RpcSensor& sensId,
00268                                               const ServiceMode& svcMode)
00269 {
00270   return DayaBay::FecChannelId(elecChannelId(sensId,svcMode).fullPackedData());
00271 }
00272 
00273 DayaBay::DetectorSensor DbiCableSvc::sensor(
00274                                      const DayaBay::ElecChannelId& elecChannel,
00275                                      const ServiceMode& svcMode)
00276 {
00277   readFeeTable(svcMode);
00278   std::map<DayaBay::ElecChannelId,DayaBay::DetectorSensor>::iterator iter;
00279   iter = m_sensorByChannel.find(elecChannel);
00280   if( iter != m_sensorByChannel.end() ){
00281     // Found sensor
00282     return iter->second;
00283   }
00284   std::ostringstream msgStr;
00285 /*msgStr << "elecChannelId(): No sensor ID for electronics channel: " //cxs 2010-12-8
00286          << elecChannel;
00287   msg->reportMessage("DbiCableSvc",MSG::WARNING,msgStr.str());
00288 */
00289   return DayaBay::DetectorSensor(0);
00290 }
00291 
00292 DayaBay::AdPmtSensor DbiCableSvc::adPmtSensor(
00293                                        const DayaBay::FeeChannelId& feeChannel,
00294                                        const ServiceMode& svcMode)
00295 {
00296   return DayaBay::AdPmtSensor(sensor(feeChannel,svcMode).fullPackedData());
00297 }
00298 
00299 DayaBay::PoolPmtSensor DbiCableSvc::poolPmtSensor(
00300                                        const DayaBay::FeeChannelId& feeChannel,
00301                                        const ServiceMode& svcMode)
00302 {
00303   return DayaBay::PoolPmtSensor(sensor(feeChannel,svcMode).fullPackedData());
00304 }
00305 
00306 DayaBay::RpcSensor DbiCableSvc::rpcSensor(
00307                                        const DayaBay::FecChannelId& fecChannel,
00308                                        const ServiceMode& svcMode)
00309 {
00310   return DayaBay::RpcSensor(sensor(fecChannel,svcMode).fullPackedData());
00311 }
00312 
00313 DayaBay::HardwareId DbiCableSvc::hardwareId(
00314                                          const DayaBay::DetectorSensor& sensId,
00315                                          const ServiceMode& svcMode)
00316 {
00317   readFeeTable(svcMode);
00318   std::map<DayaBay::DetectorSensor,DayaBay::HardwareId>::iterator iter;
00319   iter = m_hardwareBySensor.find(sensId);
00320   if( iter != m_hardwareBySensor.end() ){
00321     // Found hardware
00322     return iter->second;
00323   }
00324   std::ostringstream msgStr;
00325 /*msgStr << "hardwareId(): No hardware ID for sensor ID: " << sensId; //cxs 2010-12-8
00326   msg->reportMessage("DbiCableSvc",MSG::WARNING,msgStr.str());
00327 */
00328   return DayaBay::HardwareId(0);
00329 }
00330 
00331 DayaBay::PmtHardwareId DbiCableSvc::pmtHardwareId(
00332                                             const DayaBay::AdPmtSensor& sensId,
00333                                             const ServiceMode& svcMode)
00334 {
00335   readFeeTable(svcMode);
00336   return DayaBay::PmtHardwareId(hardwareId(sensId,svcMode).fullPackedData());
00337 }
00338 
00339 DayaBay::PmtHardwareId DbiCableSvc::pmtHardwareId(
00340                                           const DayaBay::PoolPmtSensor& sensId,
00341                                           const ServiceMode& svcMode)
00342 {
00343   readFeeTable(svcMode);
00344   return DayaBay::PmtHardwareId(hardwareId(sensId,svcMode).fullPackedData());
00345 }
00346 
00347 DayaBay::RpcHardwareId DbiCableSvc::rpcHardwareId(
00348                                               const DayaBay::RpcSensor& sensId,
00349                                               const ServiceMode& svcMode)
00350 {
00351   readFeeTable(svcMode);
00352   return DayaBay::RpcHardwareId(hardwareId(sensId,svcMode).fullPackedData());
00353 }
00354 
00355 DayaBay::DetectorSensor DbiCableSvc::sensor(
00356                                          const DayaBay::HardwareId& hardwareId,
00357                                          const ServiceMode& svcMode)
00358 {
00359   readFeeTable(svcMode);
00360   std::map<DayaBay::HardwareId,DayaBay::DetectorSensor>::iterator iter;
00361   iter = m_sensorByHardware.find(hardwareId);
00362   if( iter != m_sensorByHardware.end() ){
00363     // Found sensor
00364     return iter->second;
00365   }
00366   std::ostringstream msgStr;
00367 /*msgStr << "sensor(): No sensor for hardware ID: " << hardwareId; //cxs 2010-12-8
00368   msg->reportMessage("DbiCableSvc",MSG::WARNING,msgStr.str());
00369 */
00370   return DayaBay::DetectorSensor(0);
00371 }
00372 
00373 DayaBay::AdPmtSensor DbiCableSvc::adPmtSensor(
00374                                            const DayaBay::PmtHardwareId& pmtId,
00375                                            const ServiceMode& svcMode)
00376 {
00377   return DayaBay::AdPmtSensor(sensor(pmtId,svcMode).fullPackedData());
00378 }
00379 
00380 DayaBay::PoolPmtSensor DbiCableSvc::poolPmtSensor(
00381                                            const DayaBay::PmtHardwareId& pmtId,
00382                                            const ServiceMode& svcMode)
00383 {
00384   return DayaBay::PoolPmtSensor(sensor(pmtId,svcMode).fullPackedData());
00385 }
00386 
00387 DayaBay::RpcSensor DbiCableSvc::rpcSensor(
00388                                            const DayaBay::RpcHardwareId& rpcId,
00389                                            const ServiceMode& svcMode)
00390 {
00391   return DayaBay::RpcSensor(sensor(rpcId, svcMode).fullPackedData());
00392 }
00393 
00394 DayaBay::HardwareId DbiCableSvc::hardwareId(
00395                                      const DayaBay::ElecChannelId& elecChannel,
00396                                      const ServiceMode& svcMode)
00397 {
00398   readFeeTable(svcMode);
00399   std::map<DayaBay::ElecChannelId,DayaBay::HardwareId>::iterator iter;
00400   iter = m_hardwareByChannel.find(elecChannel);
00401   if( iter != m_hardwareByChannel.end() ){
00402     // Found hardware
00403     return iter->second;
00404   }
00405   std::ostringstream msgStr;
00406 /*msgStr << "hardwareId(): No hardware ID for electronics channel: " //cxs 2010-12-8
00407          << elecChannel;
00408   msg->reportMessage("DbiCableSvc",MSG::WARNING,msgStr.str());
00409 */
00410   return DayaBay::HardwareId(0);
00411 }
00412 
00413 DayaBay::FeeHardwareId DbiCableSvc::feeHardwareId(
00414                                        const DayaBay::FeeChannelId& feeChannel,
00415                                        const ServiceMode& svcMode)
00416 {
00417   readFeeTable(svcMode);
00418   return DayaBay::FeeHardwareId(hardwareId(feeChannel,svcMode).fullPackedData());
00419 }
00420 
00421 DayaBay::FecHardwareId DbiCableSvc::fecHardwareId(
00422                                        const DayaBay::FecChannelId& fecChannel,
00423                                        const ServiceMode& svcMode)
00424 {
00425   return DayaBay::FecHardwareId(hardwareId(fecChannel,svcMode).fullPackedData());
00426 }
00427 
00428 DayaBay::ElecChannelId DbiCableSvc::elecChannelId(
00429                                          const DayaBay::HardwareId& hardwareId,
00430                                          const ServiceMode& svcMode)
00431 {
00432   readFeeTable(svcMode);
00433   std::map<DayaBay::HardwareId,DayaBay::ElecChannelId>::iterator iter;
00434   iter = m_channelByHardware.find(hardwareId);
00435   if( iter != m_channelByHardware.end() ){
00436     // Found channel
00437     return iter->second;
00438   }
00439   std::ostringstream msgStr;
00440 /*msgStr << "elecChannelId(): No electronics channel for hardware ID: " 
00441          << hardwareId;
00442   msg->reportMessage("DbiCableSvc",MSG::WARNING,msgStr.str());
00443 */
00444   return DayaBay::ElecChannelId(0);
00445 }
00446 
00447 DayaBay::FeeChannelId DbiCableSvc::feeChannelId(
00448                                    const DayaBay::FeeHardwareId& feeHardwareId,
00449                                    const ServiceMode& svcMode)
00450 {
00451   readFeeTable(svcMode);
00452   return DayaBay::FeeChannelId(elecChannelId(feeHardwareId,svcMode).fullPackedData());
00453 }
00454 
00455 DayaBay::FecChannelId DbiCableSvc::fecChannelId(
00456                                    const DayaBay::FecHardwareId& fecHardwareId,
00457                                    const ServiceMode& svcMode)
00458 {
00459   return DayaBay::FecChannelId(elecChannelId(fecHardwareId,svcMode).fullPackedData());
00460 }
00461 
00462 
00463 inline int DbiCableSvc::readFeeTable(const ServiceMode& serviceMode){  //XiaoSu Chen 2010/10/28
00464   if(serviceMode.context() == feeLastContext){  
00465     return 2;    
00466   }
00467   feeLastContext = serviceMode.context();      
00468 
00469   DbiResultPtr<GFeeCableMap> pr("FeeCableMap",feeLastContext,feeLastContext.GetDetId());
00470   const DbiResultKey* thisResult= pr.GetKey(); 
00471   if(feeLastResult == 0){                      
00472     feeLastResult = thisResult;
00473   }else if(thisResult->IsEqualTo(feeLastResult))
00474   {
00475     return 2;
00476   }else{
00477     feeLastResult = thisResult;
00478   }
00479   m_elecChannelIdsBySiteDet.clear();
00480   m_feeChannelIdsBySiteDet.clear();
00481   m_channelByHardware.clear();
00482   m_hardwareByChannel.clear();
00483   m_sensorsBySiteDet.clear();
00484   m_channelBySensor.clear();
00485   m_sensorByChannel.clear();
00486   m_hardwareBySensor.clear();
00487   m_sensorByHardware.clear();
00488   m_poolPmtSensorsBySiteDet.clear();
00489   m_adPmtSensorsBySiteDet.clear();
00490   unsigned int numRows = pr.GetNumRows();
00491   std::cout << "Database rows = " << numRows << std::endl;
00492   const GFeeCableMap* row ;
00493   for (unsigned int idx=0; idx < numRows; idx++) {
00494         row = pr.GetRowByIndex(idx);
00495         int sensorId = row->GetSensorId().fullPackedData();
00496         DayaBay::FeeChannelId feeChannel(row->GetFeeChannelId());
00497         DayaBay::FeeHardwareId feeHardware(row->GetFeeHardwareId());
00498         DayaBay::PmtHardwareId pmtHardware(row->GetPmtHardwareId());
00499         // Make map by site / detector
00500         DayaBay::Detector siteId(feeChannel.site(), DetectorId::kAll);
00501         DayaBay::Detector detector(feeChannel.site(), feeChannel.detectorId());
00502         m_elecChannelIdsBySiteDet[s_allSiteDet].push_back(feeChannel);
00503         m_elecChannelIdsBySiteDet[siteId].push_back(feeChannel);
00504         m_elecChannelIdsBySiteDet[detector].push_back(feeChannel);
00505         m_feeChannelIdsBySiteDet[s_allSiteDet].push_back(feeChannel);
00506         m_feeChannelIdsBySiteDet[siteId].push_back(feeChannel);
00507         m_feeChannelIdsBySiteDet[detector].push_back(feeChannel);
00508         // Make hardware connections
00509         m_channelByHardware[feeHardware] = feeChannel;
00510         m_hardwareByChannel[feeChannel] = feeHardware;
00511 
00512         // Make PMT connections
00513         if( sensorId == 0 ){
00514           // Unconnected FEE channel
00515           continue;
00516         }
00517         DayaBay::DetectorSensor sensor(sensorId);
00518         m_sensorsBySiteDet[s_allSiteDet].push_back(sensor);
00519         m_sensorsBySiteDet[siteId].push_back(sensor);
00520         m_sensorsBySiteDet[detector].push_back(sensor);
00521         m_channelBySensor[sensor] = feeChannel;
00522         m_sensorByChannel[feeChannel] = sensor;
00523         m_hardwareBySensor[sensor] = pmtHardware;
00524         m_sensorByHardware[pmtHardware] = sensor;
00525         if(sensor.detectorId() == DetectorId::kIWS
00526            || sensor.detectorId() == DetectorId::kOWS){
00527           DayaBay::PoolPmtSensor poolPmt(sensorId);
00528           m_poolPmtSensorsBySiteDet[s_allSiteDet].push_back(poolPmt);
00529           m_poolPmtSensorsBySiteDet[siteId].push_back(poolPmt);
00530           m_poolPmtSensorsBySiteDet[detector].push_back(poolPmt);
00531         }else{
00532           DayaBay::AdPmtSensor adPmt(sensorId);
00533           m_adPmtSensorsBySiteDet[s_allSiteDet].push_back(adPmt);
00534           m_adPmtSensorsBySiteDet[siteId].push_back(adPmt);
00535           m_adPmtSensorsBySiteDet[detector].push_back(adPmt);
00536         }
00537   }
00538 }
00539 
00540 
00541 
00542 
| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

Generated on Mon Apr 11 20:21:48 2011 for DbiDataSvc by doxygen 1.4.7