CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
SiPixelDetInfoFileReader.cc
Go to the documentation of this file.
1 // -*- C++ -*-
2 // Package: SiPixelESProducers
3 // Class: SiPixelDetInfoFileReader
4 // Original Author: V.Chiochia
5 // Created: Mon May 20 10:04:31 CET 2007
6 // $Id: SiPixelDetInfoFileReader.cc,v 1.1 2007/08/08 16:22:30 chiochia Exp $
7 
11 //#include "FWCore/ParameterSet/interface/FileInPath.h"
12 
13 using namespace cms;
14 using namespace std;
15 
16 
18 
19 // if(filePath==std::string("")){
20 // filePath = edm::FileInPath(std::string("CalibTracker/SiPixelCommon/data/SiPixelDetInfo.dat") ).fullPath();
21 // }
22 
23  detData_.clear();
24  detIds_.clear();
25 
26  inputFile_.open(filePath.c_str());
27 
28  if (inputFile_.is_open()){
29 
30  for(;;) {
31 
32  uint32_t detid;
33  int ncols;
34  int nrows;
35 
36  inputFile_ >> detid >> ncols >> nrows ;
37 
38  if (!(inputFile_.eof() || inputFile_.fail())){
39 
40  detIds_.push_back(detid);
41 
42  //inputFile_ >> numberOfAPVs;
43  //inputFile_ >> stripLength;
44 
45  // edm::LogInfo("SiPixelDetInfoFileReader::SiPixelDetInfoFileReader") << detid <<" " <<numberOfAPVs <<" " <<stripLength << " "<< thickness<< endl;
46 
47  std::map<uint32_t, std::pair<int, int> >::const_iterator it = detData_.find(detid);
48 
49  if( it==detData_.end() ){
50 
51  detData_[detid]=pair<int, int>(ncols,nrows);
52 
53  }
54  else{
55  edm::LogError("SiPixelDetInfoFileReader::SiPixelDetInfoFileReader") <<"DetId " << detid << " already found on file. Ignoring new data"<<endl;
56  detIds_.pop_back();
57  continue;
58  }
59  }
60  else if (inputFile_.eof()){
61 
62  edm::LogInfo("SiPixelDetInfoFileReader::SiPixelDetInfoFileReader - END of file reached")<<endl;
63  break;
64 
65  }
66  else if (inputFile_.fail()) {
67 
68  edm::LogError("SiPixelDetInfoFileReader::SiPixelDetInfoFileReader - ERROR while reading file")<<endl;
69  break;
70  }
71  }
72 
73  inputFile_.close();
74 
75  }
76  else {
77 
78  edm::LogError("SiPixelDetInfoFileReader::SiPixelDetInfoFileReader - Unable to open file")<<endl;
79  return;
80 
81  }
82 
83 
84 // int i=0;
85 // for(std::map<uint32_t, std::pair<unsigned short, double> >::iterator it =detData_.begin(); it!=detData_.end(); it++ ) {
86 // std::cout<< it->first << " " << (it->second).first << " " << (it->second).second<<endl;
87 // i++;
88 // }
89 // std::cout<<i;
90 
91 
92 }
93 //
94 // Destructor
95 //
97 
98  edm::LogInfo("SiPixelDetInfoFileReader::~SiPixelDetInfoFileReader");
99 }
100 //
101 // get DetId's
102 //
103 const std::vector<uint32_t> & SiPixelDetInfoFileReader::getAllDetIds() const{
104 
105  return detIds_;
106 
107 }
108 //
109 // get method
110 //
111 const std::pair<int, int> & SiPixelDetInfoFileReader::getDetUnitDimensions(uint32_t detId) const{
112 
113  std::map<uint32_t, std::pair<int, int> >::const_iterator it = detData_.find(detId);
114 
115  if(it!=detData_.end()){
116 
117  return (*it).second;
118 
119  }
120  else{
121 
122  static std::pair< int, int> defaultValue(0,0);
123  edm::LogWarning("SiPixelDetInfoFileReader::getDetUnitDimensions - Unable to find requested detid. Returning invalid data ")<<endl;
124  return defaultValue;
125 
126  }
127 
128 }
129 
const std::pair< int, int > & getDetUnitDimensions(uint32_t detId) const
const std::vector< uint32_t > & getAllDetIds() const
SiPixelDetInfoFileReader(std::string filePath)