CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
SiStripDetInfoFileWriter.cc
Go to the documentation of this file.
1 // -*- C++ -*-
2 // Package: SiStripCommon
3 // Class: SiStripDetInfoFileWriter
4 // Original Author: G. Bruno
5 // Created: Mon May 20 10:04:31 CET 2007
6 // $Id: SiStripDetInfoFileWriter.cc,v 1.3 2010/01/19 11:49:24 bbetchar Exp $
7 
12 
18 
19 
20 using namespace cms;
21 using namespace std;
22 
23 
25 
26 
27  edm::LogInfo("SiStripDetInfoFileWriter::SiStripDetInfoFileWriter");
28 
29  filePath_ = iConfig.getUntrackedParameter<std::string>("FilePath",std::string("SiStripDetInfo.dat"));
30 
31 }
32 
33 
35 
36  edm::LogInfo("SiStripDetInfoFileWriter::~SiStripDetInfoFileWriter");
37 }
38 
39 
40 
42 
43 
44  outputFile_.open(filePath_.c_str());
45 
46  if (outputFile_.is_open()){
47 
48 
50 
51  iSetup.get<TrackerDigiGeometryRecord>().get( pDD );
52 
53  edm::LogInfo("SiStripDetInfoFileWriter::beginRun - got geometry ")<<std::endl;
54 
55 
56  edm::LogInfo("SiStripDetInfoFileWriter") <<" There are "<<pDD->detUnits().size() <<" detectors"<<std::endl;
57 
58  for(TrackerGeometry::DetUnitContainer::const_iterator it = pDD->detUnits().begin(); it != pDD->detUnits().end(); it++){
59 
60  const StripGeomDetUnit* mit = dynamic_cast<StripGeomDetUnit*>(*it);
61 
62  if(mit!=0){
63 
64  uint32_t detid=(mit->geographicalId()).rawId();
65  double stripLength = mit->specificTopology().stripLength();
66  unsigned short numberOfAPVs= mit->specificTopology().nstrips()/128;
67  float thickness=mit->specificSurface().bounds().thickness();
68 
69 
70  if(numberOfAPVs<1 || numberOfAPVs>6 ) {
71  edm::LogError("SiStripDetInfoFileWriter")<<" Problem with Number of strips in detector.. "<< mit->specificTopology().nstrips() << "Will not write this entry to file"<< endl;
72  continue;
73  }
74 
75  outputFile_ << detid << " "<< numberOfAPVs << " " << stripLength << " "<< thickness << "\n";
76 
77  }
78 
79  }
80 
81  outputFile_.close();
82 
83  }
84 
85  else {
86 
87  edm::LogError("SiStripDetInfoFileWriter::beginRun - Unable to open file")<<endl;
88  return;
89 
90  }
91 
92 }
93 
94 
virtual int nstrips() const =0
T getUntrackedParameter(std::string const &, T const &) const
virtual const StripTopology & specificTopology() const
Returns a reference to the strip proxy topology.
const BoundPlane & specificSurface() const
Same as surface(), kept for backward compatibility.
Definition: GeomDet.h:38
virtual float thickness() const =0
virtual float stripLength() const =0
SiStripDetInfoFileWriter(const edm::ParameterSet &)
DetId geographicalId() const
The label of this GeomDet.
Definition: GeomDet.h:72
const Bounds & bounds() const
Definition: BoundSurface.h:89
const T & get() const
Definition: EventSetup.h:55
void beginRun(const edm::EventSetup &iSetup)