CMS 3D CMS Logo

newSiStripO2O.cc

Go to the documentation of this file.
00001 #include "OnlineDB/SiStripO2O/plugins/newSiStripO2O.h"
00002 #include "OnlineDB/SiStripESSources/interface/SiStripCondObjBuilderFromDb.h"
00003 #include "CalibFormats/SiStripObjects/interface/SiStripQuality.h"
00004 
00005 newSiStripO2O::newSiStripO2O( const edm::ParameterSet& pset ):
00006   UsingDb_(pset.getUntrackedParameter<bool>("UsingDb",true))
00007 {}
00008 
00009 newSiStripO2O::~newSiStripO2O(){
00010   edm::LogInfo("newSiStripO2O") << "[newSiStripO2O::~newSiStripO2O]"
00011                              << " Destructing object...";
00012 }
00013    
00014 void newSiStripO2O::analyze(const edm::Event& evt, const edm::EventSetup& iSetup){
00015   
00016   unsigned int run=evt.id().run();
00017   std::cout << "RunNb " << run << std::endl;
00018   
00019   SiStripCondObjBuilderFromDb condObjBuilder;
00020   
00021   condObjBuilder.buildCondObj();
00022 
00023 
00024   SiStripFedCabling *cabling_cpy = condObjBuilder.getFedCabling();
00025 
00026   SiStripDetCabling* det_cabling=new SiStripDetCabling(*cabling_cpy);
00027 
00028   SiStripPedestals *ped_cpy = condObjBuilder.getPedestals();
00029   SiStripPedestals *ped = condObjBuilder.getPedestals();
00030 
00031   SiStripNoises *noise_cpy = condObjBuilder.getNoises();
00032   SiStripNoises *noise = condObjBuilder.getNoises();
00033 
00034 
00035   vector<uint32_t> det_ids;
00036   det_cabling->addActiveDetectorsRawIds(det_ids);
00037   if ( det_ids.empty() ) {
00038     edm::LogWarning("SiStripO2O")
00039       << "detids vetor empty";
00040   }  
00041   edm::LogInfo("SiStripO2O") << " Cabling Found " << det_ids.size() << " active DetIds";
00042   if (edm::isDebugEnabled()){
00043     // Iterate through active DetIds
00044     vector<uint32_t>::const_iterator det_id = det_ids.begin();
00045     for ( ; det_id != det_ids.end(); det_id++ ) {
00046       LogTrace("SiStripO2O") << " mySiStripO2O detid " << *det_id << std::endl;
00047     }    
00048   }
00049 
00050   det_ids.clear();
00051   SiStripDetCabling det_cabling_cpy( *cabling_cpy );
00052   det_cabling_cpy.addActiveDetectorsRawIds(det_ids);
00053   if ( det_ids.empty() ) {
00054     edm::LogWarning("SiStripO2O")
00055       << "detids vetor empty";
00056   }  
00057   edm::LogInfo("SiStripO2O") << " Cabling_cpy Found " << det_ids.size() << " active DetIds";
00058   if (edm::isDebugEnabled()){
00059     // Iterate through active DetIds
00060     vector<uint32_t>::const_iterator det_id = det_ids.begin();
00061     for ( ; det_id != det_ids.end(); det_id++ ) {
00062       LogTrace("SiStripO2O") << " cabling_cpy detid " << *det_id << std::endl;
00063     }    
00064   }
00065 
00066   //COPY NOISE
00067   
00068 
00069   std::vector<uint32_t> ndetid;
00070   noise->getDetIds(ndetid);
00071   edm::LogInfo("SiStripO2O") << " Noise Found " << ndetid.size() << " DetIds";
00072   for (size_t id=0;id<ndetid.size();id++){
00073     SiStripNoises::Range range=noise->getRange(ndetid[id]);
00074 
00075     if (edm::isDebugEnabled()){
00076       int strip=0;
00077       LogTrace("SiStripO2O")  << "NOISE detid " << ndetid[id] << " \t"
00078                               << " strip " << strip << " \t"
00079                               << noise->getNoise(strip,range)     << " \t" 
00080         //<< noise->getDisable(strip,range)   << " \t" 
00081                               << std::endl;         
00082     } 
00083   }
00084 
00085   //COPY PED
00086   std::vector<uint32_t> pdetid;
00087   ped->getDetIds(pdetid);
00088   edm::LogInfo("SiStripO2O") << " Peds Found " << pdetid.size() << " DetIds";
00089   for (size_t id=0;id<pdetid.size();id++){
00090     SiStripPedestals::Range range=ped->getRange(pdetid[id]);
00091     if (edm::isDebugEnabled()){
00092       int strip=0;
00093       LogTrace("SiStripO2O")  << "PED detid " << pdetid[id] << " \t"
00094                               << " strip " << strip << " \t"
00095                               << ped->getPed   (strip,range)   << " \t" 
00096                               << std::endl;         
00097     } 
00098   }  
00099 
00100   //End now write data in DB
00101   if(UsingDb_){
00102     edm::LogInfo("SiStripO2O") << "calling PoolDBOutputService" << std::endl;
00103     edm::Service<cond::service::PoolDBOutputService> mydbservice;
00104 
00105     if( mydbservice.isAvailable() ){
00106 
00107       if( mydbservice->isNewTagRequest("SiStripPedestalsRcd") ){
00108         edm::LogInfo("SiStripO2O") << "new tag requested for SiStripPedestalsRcd" << std::endl;
00109         mydbservice->createNewIOV<SiStripPedestals>(ped_cpy,mydbservice->beginOfTime(),mydbservice->endOfTime(),"SiStripPedestalsRcd");      
00110       } else {
00111         edm::LogInfo("SiStripO2O") << "append to existing tag for SiStripPedestalsRcd" << std::endl;
00112         mydbservice->appendSinceTime<SiStripPedestals>(ped_cpy,mydbservice->currentTime(),"SiStripPedestalsRcd");
00113       }
00114       
00115       if( mydbservice->isNewTagRequest("SiStripNoisesRcd") ){
00116         edm::LogInfo("SiStripO2O") << "new tag requested for SiStripNoisesRcd" << std::endl;
00117         mydbservice->createNewIOV<SiStripNoises>(noise_cpy,mydbservice->beginOfTime(),mydbservice->endOfTime(),"SiStripNoisesRcd");      
00118       } else {
00119         edm::LogInfo("SiStripO2O") << "append to existing tag for SiStripNoisesRcd" << std::endl;
00120         mydbservice->appendSinceTime<SiStripNoises>(noise_cpy,mydbservice->currentTime(),"SiStripNoisesRcd");      
00121       }
00122      
00123       if( mydbservice->isNewTagRequest("SiStripFedCablingRcd") ){
00124         edm::LogInfo("SiStripO2O") << "new tag requested for SiStripFedCablingRcd" << std::endl;
00125         mydbservice->createNewIOV<SiStripFedCabling>(cabling_cpy,mydbservice->beginOfTime(),mydbservice->endOfTime(),"SiStripFedCablingRcd");      
00126       } else {
00127         edm::LogInfo("SiStripO2O") << "append to existing tag for SiStripFedCablingRcd" << std::endl;
00128         mydbservice->appendSinceTime<SiStripFedCabling>(cabling_cpy,mydbservice->currentTime(),"SiStripFedCablingRcd"); 
00129       }
00130 
00131       if( mydbservice->isNewTagRequest("SiStripThresholdRcd") ){
00132         edm::LogInfo("SiStripO2O") << "new tag requested for SiStripThresholdRcd" << std::endl;
00133         mydbservice->createNewIOV<SiStripThreshold>(condObjBuilder.getThreshold(),mydbservice->beginOfTime(),mydbservice->endOfTime(),"SiStripThresholdRcd");      
00134       } else {
00135         edm::LogInfo("SiStripO2O") << "append to existing tag for SiStripThresholdRcd" << std::endl;
00136         mydbservice->appendSinceTime<SiStripThreshold>(condObjBuilder.getThreshold(),mydbservice->currentTime(),"SiStripThresholdRcd"); 
00137       }
00138 
00139       SiStripQuality qobj=SiStripQuality(*(condObjBuilder.getQuality()));
00140       SiStripBadStrip* obj= new SiStripBadStrip(qobj); 
00141       if( mydbservice->isNewTagRequest("SiStripBadStripRcd") ){
00142         edm::LogInfo("SiStripO2O") << "new tag requested for SiStripBadStripRcd" << std::endl;
00143         mydbservice->createNewIOV<SiStripBadStrip>(obj,mydbservice->beginOfTime(),mydbservice->endOfTime(),"SiStripBadStripRcd");      
00144       } else {
00145         edm::LogInfo("SiStripO2O") << "append to existing tag for SiStripBadStripRcd" << std::endl;
00146         mydbservice->appendSinceTime<SiStripBadStrip>(obj,mydbservice->currentTime(),"SiStripBadStripRcd"); 
00147       }
00148 
00149       //edm::LogInfo("SiStripO2O")  << " finished to upload data " << std::endl;    
00150     }else{
00151       edm::LogError("newSiStripO2O")<<"Service is unavailable"<<std::endl;
00152     }    
00153   }
00154 }
00155 

Generated on Tue Jun 9 17:40:54 2009 for CMSSW by  doxygen 1.5.4