CMS 3D CMS Logo

SiStripApvGainReader.cc
Go to the documentation of this file.
5 
7 
8 #include <iostream>
9 #include <cstdio>
10 #include <sys/time.h>
11 
12 
13 using namespace cms;
14 
16  printdebug_(iConfig.getUntrackedParameter<bool>("printDebug",true)),
17  formatedOutput_(iConfig.getUntrackedParameter<std::string>("outputFile","")),
18  gainType_ (iConfig.getUntrackedParameter<uint32_t>("gainType",1))
19  {}
20 
22 
24 
25  edm::ESHandle<SiStripGain> SiStripApvGain_;
26  iSetup.get<SiStripGainRcd>().get(SiStripApvGain_);
27  edm::LogInfo("SiStripApvGainReader") << "[SiStripApvGainReader::analyze] End Reading SiStripApvGain" << std::endl;
28 
29  std::vector<uint32_t> detid;
30  SiStripApvGain_->getDetIds(detid);
31  edm::LogInfo("Number of detids ") << detid.size() << std::endl;
32 
33  FILE* pFile=nullptr;
34  if(formatedOutput_!="")pFile=fopen(formatedOutput_.c_str(), "w");
35 
36  for (size_t id=0;id<detid.size();id++){
37  SiStripApvGain::Range range=SiStripApvGain_->getRange(detid[id], gainType_);
38  if(printdebug_){
39  int apv=0;
40  for(int it=0;it<range.second-range.first;it++){
41  edm::LogInfo("SiStripApvGainReader") << "detid " << detid[id] << " \t " << apv++ << " \t " << SiStripApvGain_->getApvGain(it,range) << std::endl;
42  }
43  }
44 
45  if(pFile){
46  fprintf(pFile,"%i ",detid[id]);
47  for(int it=0;it<range.second-range.first;it++){
48  fprintf(pFile,"%f ", SiStripApvGain_->getApvGain(it,range) );
49  }fprintf(pFile, "\n");
50  }
51 
52  }
53 
54  if(pFile)fclose(pFile);
55 }
static float getApvGain(const uint16_t &apv, const SiStripApvGain::Range &range)
Definition: SiStripGain.h:73
std::pair< ContainerIterator, ContainerIterator > Range
void getDetIds(std::vector< uint32_t > &DetIds_) const
ATTENTION: we assume the detIds are the same as those from the first gain.
Definition: SiStripGain.cc:108
void analyze(const edm::Event &, const edm::EventSetup &) override
const T & get() const
Definition: EventSetup.h:58
SiStripApvGainReader(const edm::ParameterSet &)
const SiStripApvGain::Range getRange(uint32_t detID) const
Definition: SiStripGain.h:70