Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00014
00015
00016
00017
00018
00019
00020
00021 #include "RecoLuminosity/ROOTSchema/interface/LumiFileWriter.hh"
00022 #include "RecoLuminosity/ROOTSchema/interface/ROOTSchema.h"
00023 #include "RecoLuminosity/TCPReceiver/interface/TCPReceiver.h"
00024
00025 #include "RecoLuminosity/TCPReceiver/interface/LumiStructures.hh"
00026
00027
00028 #include "FWCore/Framework/interface/Frameworkfwd.h"
00029 #include "FWCore/Framework/interface/EDAnalyzer.h"
00030
00031 #include "FWCore/Framework/interface/MakerMacros.h"
00032 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00033
00034
00035 #include <iostream>
00036
00037 LumiFileWriter::LumiFileWriter(const edm::ParameterSet& iConfig){
00038
00039
00040 unsigned int listenPort = iConfig.getUntrackedParameter< unsigned int >("SourcePort", 51002);
00041 unsigned int AquireMode = iConfig.getUntrackedParameter< unsigned int >("AquireMode", 0);
00042 DistribIP1 = iConfig.getUntrackedParameter< std::string >("PrimaryHLXDAQIP", "vmepcS2F17-18");
00043 DistribIP2 = iConfig.getUntrackedParameter< std::string >("SecondaryHLXDAQIP", "vmepcS2F17-19");
00044 reconTime = iConfig.getUntrackedParameter< unsigned int >("ReconnectionTime",60);
00045
00046 HLXTCP_ = new HCAL_HLX::TCPReceiver( listenPort, DistribIP1, AquireMode );
00047 LumiSchema_ = new HCAL_HLX::ROOTSchema();
00048
00049
00050 std::string lumiFileDir = iConfig.getUntrackedParameter< std::string >("LumiFileDir","./");
00051 std::string lumiFileType = iConfig.getUntrackedParameter< std::string >("LumiFileType","RAW");
00052
00053 LumiSchema_->SetLSDir( lumiFileDir );
00054 LumiSchema_->SetFileType( lumiFileType );
00055
00056
00057 std::string MergedOutputDir = iConfig.getUntrackedParameter< std::string >("MergedOutDir", "./");
00058
00059 LumiSchema_->SetMergeDir(MergedOutputDir);
00060
00061
00062 unsigned int NBINS = iConfig.getUntrackedParameter< unsigned int >("NBINS", 297);
00063 double XMIN = iConfig.getUntrackedParameter< double >("XMIN", 0);
00064 double XMAX = iConfig.getUntrackedParameter< double >("XMAX", 3564);
00065 std::string webOutputDir = iConfig.getUntrackedParameter< std::string >("WBMOutDir", "./");
00066
00067 LumiSchema_->SetWebDir(webOutputDir);
00068 LumiSchema_->SetHistoBins( NBINS, XMIN, XMAX );
00069
00070 bMerge_ = iConfig.getUntrackedParameter< bool >("MergeFiles", false );
00071 bWBM_ = iConfig.getUntrackedParameter< bool >("CreateWebPage", false );
00072 bTransfer_ = iConfig.getUntrackedParameter< bool >("TransferToDBS", false );
00073
00074 LumiSchema_->SetMergeFiles( bMerge_ );
00075 LumiSchema_->SetTransferFiles( bTransfer_ );
00076 LumiSchema_->SetCreateWebPage( bWBM_ );
00077
00078 lumiSection_ = new HCAL_HLX::LUMI_SECTION;
00079 }
00080
00081 LumiFileWriter::~LumiFileWriter()
00082 {
00083
00084 delete HLXTCP_;
00085 delete LumiSchema_;
00086 delete lumiSection_;
00087 }
00088
00089 void LumiFileWriter::analyze(const edm::Event& iEvent,
00090 const edm::EventSetup& iSetup){
00091
00092 while(HLXTCP_->IsConnected() == false){
00093 HLXTCP_->SetIP( DistribIP1 );
00094 if( HLXTCP_->Connect() != 1){
00095 std::cout << "Failed to connect to " << DistribIP1 << "." << std::endl;
00096 sleep( 1 );
00097 std::cout << "Trying " << DistribIP2 << std::endl;
00098 HLXTCP_->SetIP( DistribIP2 );
00099 if( HLXTCP_->Connect() == 1) break;
00100 std::cout << "Failed to connect to " << DistribIP2 << "." << std::endl;
00101 std::cout << " Reconnect in " << reconTime << " seconds." << std::endl;
00102 sleep(reconTime);
00103 }
00104 }
00105 if( HLXTCP_->IsConnected() == true ){
00106 std::cout << "Successfully connected." << std::endl;
00107 }
00108
00109
00110
00111 if( HLXTCP_->ReceiveLumiSection(*lumiSection_) == 1 ){
00112
00113 std::cout << "Processing LumiSection" << std::endl;
00114 LumiSchema_->ProcessSection(*lumiSection_);
00115
00116 }else{
00117 HLXTCP_->Disconnect();
00118 LumiSchema_->EndRun();
00119 }
00120 }
00121
00122
00123 void
00124 LumiFileWriter::beginJob()
00125 {}
00126
00127
00128 void
00129 LumiFileWriter::endJob() {
00130
00131 HLXTCP_->Disconnect();
00132 LumiSchema_->EndRun();
00133 }
00134
00135
00136 DEFINE_FWK_MODULE(LumiFileWriter);