CMS 3D CMS Logo

OuterTrackerMonitorTTCluster.cc
Go to the documentation of this file.
1 // -*- C++ -*-
2 //
3 // Package: Phase2OuterTracker
4 // Class: Phase2OuterTracker
5 //
13 //
14 // Original Author: Isabelle Helena J De Bruyn
15 // Created: Mon, 10 Feb 2014 13:57:08 GMT
16 //
17 
18 // system include files
19 #include <memory>
20 #include <vector>
21 #include <numeric>
22 #include <iostream>
23 #include <fstream>
24 
25 // user include files
36 
37 
38 //
39 // constructors and destructor
40 //
42 : dqmStore_(edm::Service<DQMStore>().operator->()), conf_(iConfig)
43 {
44  topFolderName_ = conf_.getParameter<std::string>("TopFolderName");
45  tagTTClustersToken_ = consumes<edmNew::DetSetVector< TTCluster< Ref_Phase2TrackerDigi_ > > > (conf_.getParameter<edm::InputTag>("TTClusters") );
46 }
47 
49 {
50  // do anything here that needs to be done at desctruction time
51  // (e.g. close files, deallocate resources etc.)
52 }
53 
54 //
55 // member functions
56 //
57 
58 // ------------ method called for each event ------------
60 {
63  iEvent.getByToken( tagTTClustersToken_, Phase2TrackerDigiTTClusterHandle );
64 
67  const TrackerTopology* tTopo;
68  iSetup.get< TrackerTopologyRcd >().get(tTopoHandle);
69  tTopo = tTopoHandle.product();
70 
71  edm::ESHandle< TrackerGeometry > tGeometryHandle;
72  const TrackerGeometry* theTrackerGeometry;
73  iSetup.get< TrackerDigiGeometryRecord >().get( tGeometryHandle );
74  theTrackerGeometry = tGeometryHandle.product();
75 
76 
78  typename edmNew::DetSetVector< TTCluster< Ref_Phase2TrackerDigi_ > >::const_iterator inputIter;
79  typename edmNew::DetSet< TTCluster< Ref_Phase2TrackerDigi_ > >::const_iterator contentIter;
80  for ( inputIter = Phase2TrackerDigiTTClusterHandle->begin();
81  inputIter != Phase2TrackerDigiTTClusterHandle->end();
82  ++inputIter )
83  {
84  for(contentIter = inputIter->begin(); contentIter != inputIter->end(); ++contentIter)
85  {
86  //Make reference cluster
88 
89  DetId detIdClu = theTrackerGeometry->idToDet( tempCluRef->getDetId() )->geographicalId();
90  unsigned int memberClu = tempCluRef->getStackMember();
91  unsigned int widClu = tempCluRef->findWidth();
92 
93  MeasurementPoint mp = tempCluRef->findAverageLocalCoordinates();
94  const GeomDet* theGeomDet = theTrackerGeometry->idToDet(detIdClu);
95  Global3DPoint posClu = theGeomDet->surface().toGlobal( theGeomDet->topology().localPosition(mp) );
96 
97  double eta = posClu.eta();
98 
99  Cluster_W->Fill(widClu, memberClu);
100  Cluster_Eta->Fill(eta);
101  Cluster_RZ->Fill( posClu.z(), posClu.perp() );
102 
103  if ( detIdClu.subdetId() == static_cast<int>(StripSubdetector::TOB) ) // Phase 2 Outer Tracker Barrel
104  {
105 
106  if ( memberClu == 0 ) Cluster_IMem_Barrel->Fill(tTopo->layer(detIdClu));
107  else Cluster_OMem_Barrel->Fill(tTopo->layer(detIdClu));
108 
109  Cluster_Barrel_XY->Fill( posClu.x(), posClu.y() );
110  Cluster_Barrel_XY_Zoom->Fill( posClu.x(), posClu.y() );
111 
112  } // end if isBarrel
113  else if ( detIdClu.subdetId() == static_cast<int>(StripSubdetector::TID) ) // Phase 2 Outer Tracker Endcap
114  {
115 
116  if ( memberClu == 0 )
117  {
118  Cluster_IMem_Endcap_Disc->Fill(tTopo->layer(detIdClu)); // returns wheel
119  Cluster_IMem_Endcap_Ring->Fill(tTopo->tidRing(detIdClu));
120  }
121  else
122  {
123  Cluster_OMem_Endcap_Disc->Fill(tTopo->layer(detIdClu)); // returns wheel
124  Cluster_OMem_Endcap_Ring->Fill(tTopo->tidRing(detIdClu));
125  }
126 
127  if ( posClu.z() > 0 )
128  {
129  Cluster_Endcap_Fw_XY->Fill( posClu.x(), posClu.y() );
130  Cluster_Endcap_Fw_RZ_Zoom->Fill( posClu.z(), posClu.perp() );
131  if (memberClu == 0) Cluster_IMem_Endcap_Ring_Fw[tTopo->layer(detIdClu)-1]->Fill(tTopo->tidRing(detIdClu));
132  else Cluster_OMem_Endcap_Ring_Fw[tTopo->layer(detIdClu)-1]->Fill(tTopo->tidRing(detIdClu));
133  }
134  else
135  {
136  Cluster_Endcap_Bw_XY->Fill( posClu.x(), posClu.y() );
137  Cluster_Endcap_Bw_RZ_Zoom->Fill( posClu.z(), posClu.perp() );
138  if (memberClu == 0) Cluster_IMem_Endcap_Ring_Bw[tTopo->layer(detIdClu)-1]->Fill(tTopo->tidRing(detIdClu));
139  else Cluster_OMem_Endcap_Ring_Bw[tTopo->layer(detIdClu)-1]->Fill(tTopo->tidRing(detIdClu));
140  }
141 
142  } // end if isEndcap
143  } // end loop contentIter
144  } // end loop inputIter
145 } // end of method
146 
147 // ------------ method called once each job just before starting event loop ------------
148 void
150 {
152 
153  dqmStore_->setCurrentFolder(topFolderName_+"/Clusters/NClusters");
154 
155  // NClusters
156  edm::ParameterSet psTTCluster_Barrel = conf_.getParameter<edm::ParameterSet>("TH1TTCluster_Barrel");
157  HistoName = "NClusters_IMem_Barrel";
158  Cluster_IMem_Barrel = dqmStore_->book1D(HistoName, HistoName,
159  psTTCluster_Barrel.getParameter<int32_t>("Nbinsx"),
160  psTTCluster_Barrel.getParameter<double>("xmin"),
161  psTTCluster_Barrel.getParameter<double>("xmax"));
162  Cluster_IMem_Barrel->setAxisTitle("Barrel Layer", 1);
163  Cluster_IMem_Barrel->setAxisTitle("# L1 Clusters", 2);
164 
165  HistoName = "NClusters_OMem_Barrel";
166  Cluster_OMem_Barrel = dqmStore_->book1D(HistoName, HistoName,
167  psTTCluster_Barrel.getParameter<int32_t>("Nbinsx"),
168  psTTCluster_Barrel.getParameter<double>("xmin"),
169  psTTCluster_Barrel.getParameter<double>("xmax"));
170  Cluster_OMem_Barrel->setAxisTitle("Barrel Layer", 1);
171  Cluster_OMem_Barrel->setAxisTitle("# L1 Clusters", 2);
172 
173  edm::ParameterSet psTTCluster_ECDisc = conf_.getParameter<edm::ParameterSet>("TH1TTCluster_ECDiscs");
174  HistoName = "NClusters_IMem_Endcap_Disc";
175  Cluster_IMem_Endcap_Disc = dqmStore_->book1D(HistoName, HistoName,
176  psTTCluster_ECDisc.getParameter<int32_t>("Nbinsx"),
177  psTTCluster_ECDisc.getParameter<double>("xmin"),
178  psTTCluster_ECDisc.getParameter<double>("xmax"));
179  Cluster_IMem_Endcap_Disc->setAxisTitle("Endcap Disc", 1);
180  Cluster_IMem_Endcap_Disc->setAxisTitle("# L1 Clusters", 2);
181 
182  HistoName = "NClusters_OMem_Endcap_Disc";
183  Cluster_OMem_Endcap_Disc = dqmStore_->book1D(HistoName, HistoName,
184  psTTCluster_ECDisc.getParameter<int32_t>("Nbinsx"),
185  psTTCluster_ECDisc.getParameter<double>("xmin"),
186  psTTCluster_ECDisc.getParameter<double>("xmax"));
187  Cluster_OMem_Endcap_Disc->setAxisTitle("Endcap Disc", 1);
188  Cluster_OMem_Endcap_Disc->setAxisTitle("# L1 Clusters", 2);
189 
190  edm::ParameterSet psTTCluster_ECRing = conf_.getParameter<edm::ParameterSet>("TH1TTCluster_ECRings");
191  HistoName = "NClusters_IMem_Endcap_Ring";
192  Cluster_IMem_Endcap_Ring = dqmStore_->book1D(HistoName, HistoName,
193  psTTCluster_ECRing.getParameter<int32_t>("Nbinsx"),
194  psTTCluster_ECRing.getParameter<double>("xmin"),
195  psTTCluster_ECRing.getParameter<double>("xmax"));
196  Cluster_IMem_Endcap_Ring->setAxisTitle("Endcap Ring", 1);
197  Cluster_IMem_Endcap_Ring->setAxisTitle("# L1 Clusters", 2);
198 
199  HistoName = "NClusters_OMem_Endcap_Ring";
200  Cluster_OMem_Endcap_Ring = dqmStore_->book1D(HistoName, HistoName,
201  psTTCluster_ECRing.getParameter<int32_t>("Nbinsx"),
202  psTTCluster_ECRing.getParameter<double>("xmin"),
203  psTTCluster_ECRing.getParameter<double>("xmax"));
204  Cluster_OMem_Endcap_Ring->setAxisTitle("Endcap Ring", 1);
205  Cluster_OMem_Endcap_Ring->setAxisTitle("# L1 Clusters", 2);
206 
207  for (int i = 0; i < 5; i++)
208  {
209  HistoName = "NClusters_IMem_Disc+"+std::to_string(i+1);
210  Cluster_IMem_Endcap_Ring_Fw[i] = dqmStore_ ->book1D(HistoName, HistoName,
211  psTTCluster_ECRing.getParameter<int32_t>("Nbinsx"),
212  psTTCluster_ECRing.getParameter<double>("xmin"),
213  psTTCluster_ECRing.getParameter<double>("xmax"));
214  Cluster_IMem_Endcap_Ring_Fw[i]->setAxisTitle("Endcap Ring",1);
215  Cluster_IMem_Endcap_Ring_Fw[i]->setAxisTitle("# L1 Clusters ",2);
216  }
217 
218  for (int i = 0; i < 5; i++)
219  {
220  HistoName = "NClusters_IMem_Disc-"+std::to_string(i+1);
221  Cluster_IMem_Endcap_Ring_Bw[i] = dqmStore_ ->book1D(HistoName, HistoName,
222  psTTCluster_ECRing.getParameter<int32_t>("Nbinsx"),
223  psTTCluster_ECRing.getParameter<double>("xmin"),
224  psTTCluster_ECRing.getParameter<double>("xmax"));
225  Cluster_IMem_Endcap_Ring_Bw[i]->setAxisTitle("Endcap Ring",1);
226  Cluster_IMem_Endcap_Ring_Bw[i]->setAxisTitle("# L1 Clusters ",2);
227  }
228 
229  for (int i = 0; i < 5; i++)
230  {
231  HistoName = "NClusters_OMem_Disc+"+std::to_string(i+1);
232  Cluster_OMem_Endcap_Ring_Fw[i] = dqmStore_ ->book1D(HistoName, HistoName,
233  psTTCluster_ECRing.getParameter<int32_t>("Nbinsx"),
234  psTTCluster_ECRing.getParameter<double>("xmin"),
235  psTTCluster_ECRing.getParameter<double>("xmax"));
236  Cluster_OMem_Endcap_Ring_Fw[i]->setAxisTitle("Endcap Ring",1);
237  Cluster_OMem_Endcap_Ring_Fw[i]->setAxisTitle("# L1 Clusters ",2);
238  }
239 
240  for (int i = 0; i < 5; i++)
241  {
242  HistoName = "NClusters_OMem_Disc-"+std::to_string(i+1);
243  Cluster_OMem_Endcap_Ring_Bw[i] = dqmStore_ ->book1D(HistoName, HistoName,
244  psTTCluster_ECRing.getParameter<int32_t>("Nbinsx"),
245  psTTCluster_ECRing.getParameter<double>("xmin"),
246  psTTCluster_ECRing.getParameter<double>("xmax"));
247  Cluster_OMem_Endcap_Ring_Bw[i]->setAxisTitle("Endcap Ring",1);
248  Cluster_OMem_Endcap_Ring_Bw[i]->setAxisTitle("# L1 Clusters ",2);
249  }
250 
251 
253 
254  //Cluster Width
255  edm::ParameterSet psTTClusterWidth = conf_.getParameter<edm::ParameterSet>("TH2TTCluster_Width");
256  HistoName = "Cluster_W";
257  Cluster_W = dqmStore_->book2D(HistoName, HistoName,
258  psTTClusterWidth.getParameter<int32_t>("Nbinsx"),
259  psTTClusterWidth.getParameter<double>("xmin"),
260  psTTClusterWidth.getParameter<double>("xmax"),
261  psTTClusterWidth.getParameter<int32_t>("Nbinsy"),
262  psTTClusterWidth.getParameter<double>("ymin"),
263  psTTClusterWidth.getParameter<double>("ymax"));
264  Cluster_W->setAxisTitle("L1 Cluster Width", 1);
265  Cluster_W->setAxisTitle("Stack Member", 2);
266 
267  //Cluster eta distribution
268  edm::ParameterSet psTTClusterEta = conf_.getParameter<edm::ParameterSet>("TH1TTCluster_Eta");
269  HistoName = "Cluster_Eta";
270  Cluster_Eta = dqmStore_->book1D(HistoName, HistoName,
271  psTTClusterEta.getParameter<int32_t>("Nbinsx"),
272  psTTClusterEta.getParameter<double>("xmin"),
273  psTTClusterEta.getParameter<double>("xmax"));
274  Cluster_Eta->setAxisTitle("#eta", 1);
275  Cluster_Eta->setAxisTitle("# L1 Clusters", 2);
276 
277  dqmStore_->setCurrentFolder(topFolderName_+"/Clusters/Position");
278 
279  //Position plots
280  edm::ParameterSet psTTCluster_Barrel_XY = conf_.getParameter<edm::ParameterSet>("TH2TTCluster_Position");
281  HistoName = "Cluster_Barrel_XY";
282  Cluster_Barrel_XY = dqmStore_->book2D(HistoName, HistoName,
283  psTTCluster_Barrel_XY.getParameter<int32_t>("Nbinsx"),
284  psTTCluster_Barrel_XY.getParameter<double>("xmin"),
285  psTTCluster_Barrel_XY.getParameter<double>("xmax"),
286  psTTCluster_Barrel_XY.getParameter<int32_t>("Nbinsy"),
287  psTTCluster_Barrel_XY.getParameter<double>("ymin"),
288  psTTCluster_Barrel_XY.getParameter<double>("ymax"));
289  Cluster_Barrel_XY->setAxisTitle("L1 Cluster Barrel position x [cm]", 1);
290  Cluster_Barrel_XY->setAxisTitle("L1 Cluster Barrel position y [cm]", 2);
291 
292  edm::ParameterSet psTTCluster_Barrel_XY_Zoom = conf_.getParameter<edm::ParameterSet>("TH2TTCluster_Barrel_XY_Zoom");
293  HistoName = "Cluster_Barrel_XY_Zoom";
294  Cluster_Barrel_XY_Zoom = dqmStore_->book2D(HistoName, HistoName,
295  psTTCluster_Barrel_XY_Zoom.getParameter<int32_t>("Nbinsx"),
296  psTTCluster_Barrel_XY_Zoom.getParameter<double>("xmin"),
297  psTTCluster_Barrel_XY_Zoom.getParameter<double>("xmax"),
298  psTTCluster_Barrel_XY_Zoom.getParameter<int32_t>("Nbinsy"),
299  psTTCluster_Barrel_XY_Zoom.getParameter<double>("ymin"),
300  psTTCluster_Barrel_XY_Zoom.getParameter<double>("ymax"));
301  Cluster_Barrel_XY_Zoom->setAxisTitle("L1 Cluster Barrel position x [cm]", 1);
302  Cluster_Barrel_XY_Zoom->setAxisTitle("L1 Cluster Barrel position y [cm]", 2);
303 
304  edm::ParameterSet psTTCluster_Endcap_Fw_XY = conf_.getParameter<edm::ParameterSet>("TH2TTCluster_Position");
305  HistoName = "Cluster_Endcap_Fw_XY";
306  Cluster_Endcap_Fw_XY = dqmStore_->book2D(HistoName, HistoName,
307  psTTCluster_Endcap_Fw_XY.getParameter<int32_t>("Nbinsx"),
308  psTTCluster_Endcap_Fw_XY.getParameter<double>("xmin"),
309  psTTCluster_Endcap_Fw_XY.getParameter<double>("xmax"),
310  psTTCluster_Endcap_Fw_XY.getParameter<int32_t>("Nbinsy"),
311  psTTCluster_Endcap_Fw_XY.getParameter<double>("ymin"),
312  psTTCluster_Endcap_Fw_XY.getParameter<double>("ymax"));
313  Cluster_Endcap_Fw_XY->setAxisTitle("L1 Cluster Forward Endcap position x [cm]", 1);
314  Cluster_Endcap_Fw_XY->setAxisTitle("L1 Cluster Forward Endcap position y [cm]", 2);
315 
316  edm::ParameterSet psTTCluster_Endcap_Bw_XY = conf_.getParameter<edm::ParameterSet>("TH2TTCluster_Position");
317  HistoName = "Cluster_Endcap_Bw_XY";
318  Cluster_Endcap_Bw_XY = dqmStore_->book2D(HistoName, HistoName,
319  psTTCluster_Endcap_Bw_XY.getParameter<int32_t>("Nbinsx"),
320  psTTCluster_Endcap_Bw_XY.getParameter<double>("xmin"),
321  psTTCluster_Endcap_Bw_XY.getParameter<double>("xmax"),
322  psTTCluster_Endcap_Bw_XY.getParameter<int32_t>("Nbinsy"),
323  psTTCluster_Endcap_Bw_XY.getParameter<double>("ymin"),
324  psTTCluster_Endcap_Bw_XY.getParameter<double>("ymax"));
325  Cluster_Endcap_Bw_XY->setAxisTitle("L1 Cluster Backward Endcap position x [cm]", 1);
326  Cluster_Endcap_Bw_XY->setAxisTitle("L1 Cluster Backward Endcap position y [cm]", 2);
327 
328  //TTCluster #rho vs. z
329  edm::ParameterSet psTTCluster_RZ = conf_.getParameter<edm::ParameterSet>("TH2TTCluster_RZ");
330  HistoName = "Cluster_RZ";
331  Cluster_RZ = dqmStore_->book2D(HistoName, HistoName,
332  psTTCluster_RZ.getParameter<int32_t>("Nbinsx"),
333  psTTCluster_RZ.getParameter<double>("xmin"),
334  psTTCluster_RZ.getParameter<double>("xmax"),
335  psTTCluster_RZ.getParameter<int32_t>("Nbinsy"),
336  psTTCluster_RZ.getParameter<double>("ymin"),
337  psTTCluster_RZ.getParameter<double>("ymax"));
338  Cluster_RZ->setAxisTitle("L1 Cluster position z [cm]", 1);
339  Cluster_RZ->setAxisTitle("L1 Cluster position #rho [cm]", 2);
340 
341  //TTCluster Forward Endcap #rho vs. z
342  edm::ParameterSet psTTCluster_Endcap_Fw_RZ_Zoom = conf_.getParameter<edm::ParameterSet>("TH2TTCluster_Endcap_Fw_RZ_Zoom");
343  HistoName = "Cluster_Endcap_Fw_RZ_Zoom";
344  Cluster_Endcap_Fw_RZ_Zoom = dqmStore_->book2D(HistoName, HistoName,
345  psTTCluster_Endcap_Fw_RZ_Zoom.getParameter<int32_t>("Nbinsx"),
346  psTTCluster_Endcap_Fw_RZ_Zoom.getParameter<double>("xmin"),
347  psTTCluster_Endcap_Fw_RZ_Zoom.getParameter<double>("xmax"),
348  psTTCluster_Endcap_Fw_RZ_Zoom.getParameter<int32_t>("Nbinsy"),
349  psTTCluster_Endcap_Fw_RZ_Zoom.getParameter<double>("ymin"),
350  psTTCluster_Endcap_Fw_RZ_Zoom.getParameter<double>("ymax"));
351  Cluster_Endcap_Fw_RZ_Zoom->setAxisTitle("L1 Cluster Forward Endcap position z [cm]", 1);
352  Cluster_Endcap_Fw_RZ_Zoom->setAxisTitle("L1 Cluster Forward Endcap position #rho [cm]", 2);
353 
354  //TTCluster Backward Endcap #rho vs. z
355  edm::ParameterSet psTTCluster_Endcap_Bw_RZ_Zoom = conf_.getParameter<edm::ParameterSet>("TH2TTCluster_Endcap_Bw_RZ_Zoom");
356  HistoName = "Cluster_Endcap_Bw_RZ_Zoom";
357  Cluster_Endcap_Bw_RZ_Zoom = dqmStore_->book2D(HistoName, HistoName,
358  psTTCluster_Endcap_Bw_RZ_Zoom.getParameter<int32_t>("Nbinsx"),
359  psTTCluster_Endcap_Bw_RZ_Zoom.getParameter<double>("xmin"),
360  psTTCluster_Endcap_Bw_RZ_Zoom.getParameter<double>("xmax"),
361  psTTCluster_Endcap_Bw_RZ_Zoom.getParameter<int32_t>("Nbinsy"),
362  psTTCluster_Endcap_Bw_RZ_Zoom.getParameter<double>("ymin"),
363  psTTCluster_Endcap_Bw_RZ_Zoom.getParameter<double>("ymax"));
364  Cluster_Endcap_Bw_RZ_Zoom->setAxisTitle("L1 Cluster Backward Endcap position z [cm]", 1);
365  Cluster_Endcap_Bw_RZ_Zoom->setAxisTitle("L1 Cluster Backward Endcap position #rho [cm]", 2);
366 
367 }//end of method
368 
369 // ------------ method called once each job just after ending the event loop ------------
370 void
372 {
373 
374 }
375 
GlobalPoint toGlobal(const Point2DBase< Scalar, LocalTag > lp) const
Definition: Surface.h:106
T getParameter(std::string const &) const
edm::Ref< typename HandleT::element_type, typename HandleT::element_type::value_type::value_type > makeRefTo(const HandleT &iHandle, typename HandleT::element_type::value_type::const_iterator itIter)
int i
Definition: DBlmapReader.cc:9
const_iterator end(bool update=false) const
T perp() const
Definition: PV3DBase.h:72
unsigned int tidRing(const DetId &id) const
MonitorElement * book1D(const char *name, const char *title, int nchX, double lowX, double highX)
Book 1D histogram.
Definition: DQMStore.cc:1031
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:457
virtual const Topology & topology() const
Definition: GeomDet.cc:81
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:17
T y() const
Definition: PV3DBase.h:63
virtual void beginRun(const edm::Run &, const edm::EventSetup &)
const Plane & surface() const
The nominal surface of the GeomDet.
Definition: GeomDet.h:42
void Fill(long long x)
int iEvent
Definition: GenABIO.cc:230
OuterTrackerMonitorTTCluster(const edm::ParameterSet &)
T z() const
Definition: PV3DBase.h:64
int subdetId() const
get the contents of the subdetector field (not cast into any detector&#39;s numbering enum) ...
Definition: DetId.h:37
edm::EDGetTokenT< edmNew::DetSetVector< TTCluster< Ref_Phase2TrackerDigi_ > > > tagTTClustersToken_
Definition: DetId.h:18
virtual void analyze(const edm::Event &, const edm::EventSetup &)
NOTE: this is needed even if it seems not.
Definition: TTCluster.h:27
const T & get() const
Definition: EventSetup.h:56
virtual LocalPoint localPosition(const MeasurementPoint &) const =0
std::string HistoName
unsigned int layer(const DetId &id) const
T eta() const
Definition: PV3DBase.h:76
HLT enums.
MonitorElement * book2D(const char *name, const char *title, int nchX, double lowX, double highX, int nchY, double lowY, double highY)
Book 2D histogram.
Definition: DQMStore.cc:1159
T x() const
Definition: PV3DBase.h:62
void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
T const * product() const
Definition: ESHandle.h:86
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:737
const_iterator begin(bool update=false) const
Definition: Run.h:42
const TrackerGeomDet * idToDet(DetId) const