CMS 3D CMS Logo

DetIdSelectorTest.cc
Go to the documentation of this file.
1 // -*- C++ -*-
2 //
3 // Package: SiStripTools
4 // Class: DetIdSelectorTest
5 //
13 //
14 // Original Author: Andrea Venturi
15 // Created: Tue Jul 19 11:56:00 CEST 2009
16 //
17 //
18 
19 // system include files
20 #include <memory>
21 
22 // user include files
23 #include <vector>
24 #include <string>
25 
28 
31 
33 
35 
38 
43 
47 
48 //******** Single include for the TkMap *************
51 //***************************************************
52 
53 //
54 // class decleration
55 //
56 
58 public:
59  explicit DetIdSelectorTest(const edm::ParameterSet&);
60  ~DetIdSelectorTest() override;
61 
62 private:
63  void beginJob() override;
64  void analyze(const edm::Event&, const edm::EventSetup&) override;
65  void endJob() override;
66 
67  // ----------member data ---------------------------
68 
69  std::vector<DetIdSelector> detidsels_;
70  std::unique_ptr<TkHistoMap> tkhisto_;
72 };
73 
74 //
75 // constants, enums and typedefs
76 //
77 
78 //
79 // static data member definitions
80 //
81 
82 //
83 // constructors and destructor
84 //
86  //now do what ever initialization is needed
87 
88  std::vector<edm::ParameterSet> selconfigs = iConfig.getParameter<std::vector<edm::ParameterSet> >("selections");
89 
90  for (std::vector<edm::ParameterSet>::const_iterator selconfig = selconfigs.begin(); selconfig != selconfigs.end();
91  ++selconfig) {
92  DetIdSelector selection(*selconfig);
93  detidsels_.push_back(selection);
94  }
95 
96  tkmap_.setPalette(1);
97  tkmap_.addPixel(true);
98 }
99 
101  // do anything here that needs to be done at desctruction time
102  // (e.g. close files, deallocate resources etc.)
103 }
104 
105 //
106 // member functions
107 //
108 
109 // ------------ method called to for each event ------------
111  using namespace edm;
112 
113  if (!tkhisto_) {
114  edm::ESHandle<TkDetMap> tkDetMapHandle;
115  iSetup.get<TrackerTopologyRcd>().get(tkDetMapHandle);
116  tkhisto_ = std::make_unique<TkHistoMap>(tkDetMapHandle.product(), "SelectorTest", "SelectorTest", -1);
117  }
118 
119  {
120  edm::ESHandle<GeometricDet> geomDetHandle;
121  iSetup.get<IdealGeometryRecord>().get(geomDetHandle);
122  const auto detids = TrackerGeometryUtils::getSiStripDetIds(*geomDetHandle);
123 
124  for (std::vector<uint32_t>::const_iterator detid = detids.begin(); detid != detids.end(); ++detid) {
125  LogDebug("DetID") << *detid;
126  int index = 0;
127  for (std::vector<DetIdSelector>::const_iterator detidsel = detidsels_.begin(); detidsel != detidsels_.end();
128  ++detidsel) {
129  if (detidsel->isSelected(*detid)) {
130  LogDebug("selected") << "Selected by selection " << index;
131  unsigned int det = *detid;
132  tkhisto_->add(det, index);
133  tkmap_.fill_current_val(det, index);
134  }
135  ++index;
136  }
137  }
138  }
139 
140  {
141  edm::FileInPath fp("CalibTracker/SiPixelESProducers/data/PixelSkimmedGeometry.txt");
142 
143  SiPixelDetInfoFileReader pxlreader(fp.fullPath());
144  const std::vector<uint32_t>& detids = pxlreader.getAllDetIds();
145 
146  for (std::vector<uint32_t>::const_iterator detid = detids.begin(); detid != detids.end(); ++detid) {
147  LogDebug("DetID") << *detid;
148  int index = 0;
149  for (std::vector<DetIdSelector>::const_iterator detidsel = detidsels_.begin(); detidsel != detidsels_.end();
150  ++detidsel) {
151  if (detidsel->isSelected(*detid)) {
152  LogDebug("selected") << "Selected by selection " << index;
153  unsigned int det = *detid;
154  // tkhisto_->add(det,index);
155  tkmap_.fill_current_val(det, index);
156  }
157  ++index;
158  }
159  }
160  }
161 
162  /*
163  edm::ESHandle<TrackerGeometry> pDD;
164  iSetup.get<TrackerDigiGeometryRecord>().get( pDD );
165 
166  for (TrackerGeometry::DetContainer::const_iterator it = pDD->dets().begin(); it != pDD->dets().end(); it++){
167 
168  if(dynamic_cast<PixelGeomDetUnit*>((*it))!=0){
169  DetId detId = (*it)->geographicalId();
170  LogDebug("DetID") << detId.rawId();
171  int index=0;
172  for(std::vector<DetIdSelector>::const_iterator detidsel=detidsels_.begin();detidsel!=detidsels_.end();++detidsel) {
173  if(detidsel->isSelected(detId)) {
174  LogDebug("selected") << " Selected by selection " << index;
175  // tkhisto_->add(det,index);
176  tkmap_.fill_current_val(detId.rawId(),index);
177  }
178  ++index;
179  }
180 
181  }
182 
183  }
184  */
185 }
186 
187 // ------------ method called once each job just before starting event loop ------------
189 
190 // ------------ method called once each job just after ending the event loop ------------
192  // tkhisto_->dumpInTkMap(&tkmap);
193  std::string mapname = "SelectorTest.png";
194  tkmap_.save(true, 0, 0, mapname, 5700, 2400);
195 
196  std::string rootmapname = "TKMap_Selectortest.root";
197  tkhisto_->save(rootmapname);
198 }
199 
200 //define this as a plug-in
#define LogDebug(id)
T getParameter(std::string const &) const
const std::vector< uint32_t > & getAllDetIds() const
void addPixel(bool addPixelfl)
Definition: TrackerMap.h:161
void endJob() override
#define nullptr
selection
main part
Definition: corrVsCorr.py:100
std::unique_ptr< TkHistoMap > tkhisto_
void beginJob() override
void analyze(const edm::Event &, const edm::EventSetup &) override
~DetIdSelectorTest() override
DetIdSelectorTest(const edm::ParameterSet &)
int iEvent
Definition: GenABIO.cc:224
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:16
void setPalette(int numpalette)
Definition: TrackerMap.h:155
void save(bool print_total=true, float minval=0., float maxval=0., std::string s="svgmap.svg", int width=1500, int height=800)
Definition: TrackerMap.cc:811
std::vector< uint32_t > getSiStripDetIds(const GeometricDet &geomDet)
Definition: utils.cc:4
std::vector< DetIdSelector > detidsels_
HLT enums.
T get() const
Definition: EventSetup.h:73
std::string fullPath() const
Definition: FileInPath.cc:163
void fill_current_val(int idmod, float current_val)
Definition: TrackerMap.cc:3259
T const * product() const
Definition: ESHandle.h:86