CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Attributes
AlcaBeamSpotHarvester Class Reference

#include <AlcaBeamSpotHarvester.h>

Inheritance diagram for AlcaBeamSpotHarvester:
edm::EDAnalyzer

Public Member Functions

 AlcaBeamSpotHarvester (const edm::ParameterSet &)
 Constructor. More...
 
virtual void analyze (const edm::Event &, const edm::EventSetup &)
 
virtual void beginJob (void)
 
virtual void beginLuminosityBlock (const edm::LuminosityBlock &, const edm::EventSetup &)
 
virtual void beginRun (const edm::Run &, const edm::EventSetup &)
 
virtual void endJob (void)
 
virtual void endLuminosityBlock (const edm::LuminosityBlock &, const edm::EventSetup &)
 
virtual void endRun (const edm::Run &, const edm::EventSetup &)
 
virtual ~AlcaBeamSpotHarvester ()
 Destructor. More...
 
- Public Member Functions inherited from edm::EDAnalyzer
 EDAnalyzer ()
 
std::string workerType () const
 
virtual ~EDAnalyzer ()
 

Private Attributes

std::string beamSpotOutputBase_
 
edm::ParameterSet metadataForOfflineDropBox_
 
std::string outputrecordName_
 
double sigmaZValue_
 
AlcaBeamSpotManager theAlcaBeamSpotManager_
 

Additional Inherited Members

- Public Types inherited from edm::EDAnalyzer
typedef EDAnalyzer ModuleType
 
typedef WorkerT< EDAnalyzerWorkerType
 
- Static Public Member Functions inherited from edm::EDAnalyzer
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
- Protected Member Functions inherited from edm::EDAnalyzer
CurrentProcessingContext const * currentContext () const
 

Detailed Description

No description available.

Date:
2010/08/13 22:35:16
Revision:
1.4
Author
L. Uplegger F. Yumiceva - Fermilab

Definition at line 17 of file AlcaBeamSpotHarvester.h.

Constructor & Destructor Documentation

AlcaBeamSpotHarvester::AlcaBeamSpotHarvester ( const edm::ParameterSet iConfig)

Constructor.

Definition at line 38 of file AlcaBeamSpotHarvester.cc.

38  :
39  beamSpotOutputBase_ (iConfig.getParameter<ParameterSet>("AlcaBeamSpotHarvesterParameters").getUntrackedParameter<std::string>("BeamSpotOutputBase")),
40  outputrecordName_ (iConfig.getParameter<ParameterSet>("AlcaBeamSpotHarvesterParameters").getUntrackedParameter<std::string>("outputRecordName", "BeamSpotObjectsRcd")),
41  sigmaZValue_ (iConfig.getParameter<ParameterSet>("AlcaBeamSpotHarvesterParameters").getUntrackedParameter<double>("SigmaZValue")),
42  theAlcaBeamSpotManager_(iConfig),
43  metadataForOfflineDropBox_(iConfig.getParameter<ParameterSet>("metadataOfflineDropBox"))
44 {
45 }
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
edm::ParameterSet metadataForOfflineDropBox_
AlcaBeamSpotManager theAlcaBeamSpotManager_
AlcaBeamSpotHarvester::~AlcaBeamSpotHarvester ( )
virtual

Destructor.

Definition at line 48 of file AlcaBeamSpotHarvester.cc.

48 {}

Member Function Documentation

void AlcaBeamSpotHarvester::analyze ( const edm::Event iEvent,
const edm::EventSetup  
)
virtual

Implements edm::EDAnalyzer.

Definition at line 57 of file AlcaBeamSpotHarvester.cc.

57  {
58 // edm::LogInfo("AlcaBeamSpotHarvester")
59 // << "Lumi: " << iEvent.luminosityBlock()
60 // << " Time: " << iEvent.time().unixTime()
61 // << std::endl;
62 }
void AlcaBeamSpotHarvester::beginJob ( void  )
virtual

Reimplemented from edm::EDAnalyzer.

Definition at line 51 of file AlcaBeamSpotHarvester.cc.

51 {}
void AlcaBeamSpotHarvester::beginLuminosityBlock ( const edm::LuminosityBlock ,
const edm::EventSetup  
)
virtual

Reimplemented from edm::EDAnalyzer.

Definition at line 186 of file AlcaBeamSpotHarvester.cc.

186 {}
void AlcaBeamSpotHarvester::beginRun ( const edm::Run ,
const edm::EventSetup  
)
virtual

Reimplemented from edm::EDAnalyzer.

Definition at line 65 of file AlcaBeamSpotHarvester.cc.

References AlcaBeamSpotManager::reset(), and theAlcaBeamSpotManager_.

65  {
67 }
AlcaBeamSpotManager theAlcaBeamSpotManager_
void AlcaBeamSpotHarvester::endJob ( void  )
virtual

Reimplemented from edm::EDAnalyzer.

Definition at line 54 of file AlcaBeamSpotHarvester.cc.

54 {}
void AlcaBeamSpotHarvester::endLuminosityBlock ( const edm::LuminosityBlock iLumi,
const edm::EventSetup  
)
virtual

Reimplemented from edm::EDAnalyzer.

Definition at line 189 of file AlcaBeamSpotHarvester.cc.

References AlcaBeamSpotManager::readLumi(), and theAlcaBeamSpotManager_.

189  {
191 }
void readLumi(const edm::LuminosityBlock &)
AlcaBeamSpotManager theAlcaBeamSpotManager_
void AlcaBeamSpotHarvester::endRun ( const edm::Run iRun,
const edm::EventSetup  
)
virtual

Reimplemented from edm::EDAnalyzer.

Definition at line 70 of file AlcaBeamSpotHarvester.cc.

References beamSpotOutputBase_, cond::DbSession::connectionString(), AlcaBeamSpotManager::createWeightedPayloads(), lut2db_cfg::filename, edm::ParameterSet::getParameterNames(), AlcaBeamSpotManager::getPayloads(), edm::ParameterSet::getUntrackedParameter(), i, edm::RunBase::id(), edm::Service< T >::isAvailable(), cond::service::PoolDBOutputService::isNewTagRequest(), j, combine::key, metadataForOfflineDropBox_, outputrecordName_, edm::JobReport::reportAnalysisFile(), edm::RunID::run(), cond::service::PoolDBOutputService::session(), BeamSpotObjects::SetBeamWidthX(), BeamSpotObjects::SetBeamWidthY(), BeamSpotObjects::SetBetaStar(), BeamSpotObjects::SetCovariance(), BeamSpotObjects::Setdxdz(), BeamSpotObjects::Setdydz(), BeamSpotObjects::SetEmittanceX(), BeamSpotObjects::SetEmittanceY(), BeamSpotObjects::SetPosition(), BeamSpotObjects::SetSigmaZ(), BeamSpotObjects::SetType(), sigmaZValue_, cond::service::PoolDBOutputService::tag(), theAlcaBeamSpotManager_, and cond::service::PoolDBOutputService::writeOne().

70  {
72  std::map<edm::LuminosityBlockNumber_t,reco::BeamSpot> beamSpotMap = theAlcaBeamSpotManager_.getPayloads();
74 // cond::ExportIOVUtilities utilities;
75  if(poolDbService.isAvailable() ) {
76  for(AlcaBeamSpotManager::bsMap_iterator it=beamSpotMap.begin(); it!=beamSpotMap.end();it++){
77  BeamSpotObjects *aBeamSpot = new BeamSpotObjects();
78  aBeamSpot->SetType(it->second.type());
79  aBeamSpot->SetPosition(it->second.x0(),it->second.y0(),it->second.z0());
80  if(sigmaZValue_ == -1){
81  aBeamSpot->SetSigmaZ(it->second.sigmaZ());
82  }
83  else{
84  aBeamSpot->SetSigmaZ(sigmaZValue_);
85  }
86  aBeamSpot->Setdxdz(it->second.dxdz());
87  aBeamSpot->Setdydz(it->second.dydz());
88  aBeamSpot->SetBeamWidthX(it->second.BeamWidthX());
89  aBeamSpot->SetBeamWidthY(it->second.BeamWidthY());
90  aBeamSpot->SetEmittanceX(it->second.emittanceX());
91  aBeamSpot->SetEmittanceY(it->second.emittanceY());
92  aBeamSpot->SetBetaStar(it->second.betaStar() );
93 
94  for (int i=0; i<7; ++i) {
95  for (int j=0; j<7; ++j) {
96  aBeamSpot->SetCovariance(i,j,it->second.covariance(i,j));
97  }
98  }
99 
100  if(sigmaZValue_ > 0){
101  aBeamSpot->SetCovariance(3,3,0.000025);
102  }
103 
104  cond::Time_t thisIOV = 1;
105 
106 
107 
108  // run based
109  if (beamSpotOutputBase_ == "runbased" ) {
110  thisIOV = (cond::Time_t) iRun.id().run();
111  }
112  // lumi based
113  else if (beamSpotOutputBase_ == "lumibased" ) {
114  edm::LuminosityBlockID lu(iRun.id().run(),it->first);
115  thisIOV = (cond::Time_t)(lu.value());
116  }
117  if (poolDbService->isNewTagRequest(outputrecordName_) ) {
118  edm::LogInfo("AlcaBeamSpotHarvester")
119  << "new tag requested" << std::endl;
120  //poolDbService->createNewIOV<BeamSpotObjects>(aBeamSpot, poolDbService->beginOfTime(),poolDbService->endOfTime(),"BeamSpotObjectsRcd");
121 
122  //poolDbService->createNewIOV<BeamSpotObjects>(aBeamSpot, poolDbService->currentTime(), poolDbService->endOfTime(),"BeamSpotObjectsRcd");
123  poolDbService->writeOne<BeamSpotObjects>(aBeamSpot, thisIOV, outputrecordName_);
124  }
125  else {
126  edm::LogInfo("AlcaBeamSpotHarvester")
127  << "no new tag requested, appending IOV" << std::endl;
128  //poolDbService->appendSinceTime<BeamSpotObjects>(aBeamSpot, poolDbService->currentTime(),"BeamSpotObjectsRcd");
129  poolDbService->writeOne<BeamSpotObjects>(aBeamSpot, thisIOV, outputrecordName_);
130  }
131 
132 
133 
134 
135 /*
136  int argc = 15;
137  const char* argv[] = {"endRun"
138  ,"-d","sqlite_file:combined.db"
139  ,"-s","sqlite_file:testbs2.db"
140  ,"-l","sqlite_file:log.db"
141  ,"-i","TestLSBasedBS"
142  ,"-t","TestLSBasedBS"
143  ,"-b","1"
144  ,"-e","10"
145  };
146 
147  edm::LogInfo("AlcaBeamSpotHarvester")
148  << "Running utilities!"
149  << utilities.run(argc,(char**)argv);
150  edm::LogInfo("AlcaBeamSpotHarvester")
151  << "Run utilities!"
152  << std::endl;
153 */
154  }
155 
156 
157 
159  if (jr.isAvailable()) {
160  std::map<std::string, std::string> jrInfo;
161  jrInfo["Source"] = "AlcaHarvesting";
162  jrInfo["FileClass"] = "ALCA";
163 
164 
165  jrInfo["inputtag"] = poolDbService->tag(outputrecordName_);
166  if(beamSpotOutputBase_ == "runbased") {
167  jrInfo["Timetype"] = "runnumber";
168  } else if(beamSpotOutputBase_ == "lumibased") {
169  jrInfo["Timetype"] = "lumiid";
170  }
171  std::vector<std::string> paramKeys = metadataForOfflineDropBox_.getParameterNames();
172  for(std::vector<std::string>::const_iterator key = paramKeys.begin();
173  key != paramKeys.end();
174  ++key) {
175  jrInfo[*key] = metadataForOfflineDropBox_.getUntrackedParameter<std::string>(*key);
176  }
177  std::string filename = poolDbService->session().connectionString();
178  jr->reportAnalysisFile(filename, jrInfo);
179  }
180 
181 
182  }
183 }
T getUntrackedParameter(std::string const &, T const &) const
int i
Definition: DBlmapReader.cc:9
const std::string & connectionString() const
Definition: DbSession.cc:133
edm::ParameterSet metadataForOfflineDropBox_
RunID const & id() const
Definition: RunBase.h:43
RunNumber_t run() const
Definition: RunID.h:44
void SetSigmaZ(double val)
set sigma Z, RMS bunch length
void reportAnalysisFile(std::string const &fileName, std::map< std::string, std::string > const &fileData)
Definition: JobReport.cc:652
std::map< edm::LuminosityBlockNumber_t, reco::BeamSpot >::iterator bsMap_iterator
void SetCovariance(int i, int j, double val)
set i,j element of the full covariance matrix 7x7
void Setdydz(double val)
set dydz slope, crossing angle in XZ
std::string tag(const std::string &recordName)
const std::map< edm::LuminosityBlockNumber_t, reco::BeamSpot > & getPayloads(void)
unsigned long long Time_t
Definition: Time.h:16
bool isNewTagRequest(const std::string &recordName)
void SetEmittanceX(double val)
set emittance
bool isAvailable() const
Definition: Service.h:47
int j
Definition: DBlmapReader.cc:9
void writeOne(T *payload, Time_t time, const std::string &recordName, bool withlogging=false)
void Setdxdz(double val)
set dxdz slope, crossing angle
std::vector< std::string > getParameterNames() const
void SetBetaStar(double val)
set beta star
void SetType(int type)
set beam type
void SetEmittanceY(double val)
set emittance
void SetBeamWidthX(double val)
set average transverse beam width X
void SetBeamWidthY(double val)
set average transverse beam width Y
AlcaBeamSpotManager theAlcaBeamSpotManager_
list key
Definition: combine.py:13
tuple filename
Definition: lut2db_cfg.py:20
void SetPosition(double x, double y, double z)
set XYZ position

Member Data Documentation

std::string AlcaBeamSpotHarvester::beamSpotOutputBase_
private

Definition at line 38 of file AlcaBeamSpotHarvester.h.

Referenced by endRun().

edm::ParameterSet AlcaBeamSpotHarvester::metadataForOfflineDropBox_
private

Definition at line 45 of file AlcaBeamSpotHarvester.h.

Referenced by endRun().

std::string AlcaBeamSpotHarvester::outputrecordName_
private

Definition at line 39 of file AlcaBeamSpotHarvester.h.

Referenced by endRun().

double AlcaBeamSpotHarvester::sigmaZValue_
private

Definition at line 40 of file AlcaBeamSpotHarvester.h.

Referenced by endRun().

AlcaBeamSpotManager AlcaBeamSpotHarvester::theAlcaBeamSpotManager_
private

Definition at line 43 of file AlcaBeamSpotHarvester.h.

Referenced by beginRun(), endLuminosityBlock(), and endRun().