CMS 3D CMS Logo

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
SiPixelMuonHLT.cc
Go to the documentation of this file.
1 // -*- C++ -*-
2 //
3 // Package: SiPixelMuonHLT
4 // Class: SiPixelMuonHLT
5 //
13 //
15 // Original Author: Dan Duggan
16 // Created:
17 // $Id: SiPixelMuonHLT.cc,v 1.7 2010/04/27 10:51:04 duggan Exp $
18 //
21 #include <string>
22 #include <stdlib.h>
23 
25  conf_(iConfig)
26 {
27 
28  parameters_ = iConfig;
29 
30  verbose_ = parameters_.getUntrackedParameter < bool > ("verbose", false);
31  monitorName_ = parameters_.getUntrackedParameter < std::string > ("monitorName", "HLT/HLTMonMuon");
32  saveOUTput_ = parameters_.getUntrackedParameter < bool > ("saveOUTput", true);
33 
34  //tags
35  clusterCollectionTag_ = parameters_.getUntrackedParameter < edm::InputTag > ("clusterCollectionTag", edm::InputTag ("hltSiPixelClusters"));
36  rechitsCollectionTag_ = parameters_.getUntrackedParameter < edm::InputTag > ("rechitsCollectionTag", edm::InputTag ("hltSiPixelRecHits"));
37  l3MuonCollectionTag_ = parameters_.getUntrackedParameter < edm::InputTag > ("l3MuonCollectionTag", edm::InputTag ("hltL3MuonCandidates"));
39 
41  edm::LogInfo ("PixelHLTDQM") << "SiPixelMuonHLT::SiPixelMuonHLT: Got DQM BackEnd interface"<<std::endl;
42  outputFile_ = parameters_.getUntrackedParameter < std::string > ("outputFile", "");
43  if (outputFile_.size () != 0)
44  edm::LogWarning ("HLTMuonDQMSource") << "Muon HLT Monitoring histograms will be saved to " << outputFile_ << std::endl;
45  else
46  outputFile_ = "PixelHLTDQM.root";
48  if (theDMBE != NULL) theDMBE->setCurrentFolder (monitorName_);
50 
51 }
52 
54 {
55  // do anything here that needs to be done at desctruction time
56  // (e.g. close files, deallocate resources etc.)
57  edm::LogInfo ("PixelHLTDQM") << "SiPixelMuonHLT::~SiPixelMuonHLT: Destructor"<<std::endl;
58 
59 }
60 
62 
63  edm::LogInfo ("PixelHLTDQM") << " SiPixelMuonHLT::beginJob - Initialisation ... " << std::endl;
64  eventNo = 0;
65 
66 }
67 
68 
70  if(saveOUTput_){
71  edm::LogInfo ("PixelHLTDQM") << " SiPixelMuonHLT::endJob - Saving Root File " << std::endl;
72  theDMBE->save( outputFile_.c_str() );
73  }
74 }
75 
76 //------------------------------------------------------------------
77 // Method called for every event
78 //------------------------------------------------------------------
80 {
81  eventNo++;
82 
84  iSetup.get < TrackerDigiGeometryRecord > ().get (TG);
85  const TrackerGeometry *theTrackerGeometry = TG.product ();
86  const TrackerGeometry & theTracker (*theTrackerGeometry);
88  reco::RecoChargedCandidateCollection::const_iterator cand;
91 
92  bool GotClusters = true;
93  bool GotRecHits = true;
94  bool GotL3Muons = true;
95 
96  iEvent.getByLabel("hltSiPixelClusters", clusters);
97  if(!clusters.isValid()){
98  edm::LogInfo("PixelHLTDQM") << "No pix clusters, cannot run for event " << iEvent.eventAuxiliary ().event() <<" run: "<<iEvent.eventAuxiliary ().run() << std::endl;
99  GotClusters = false;
100  }
101  iEvent.getByLabel("hltSiPixelRecHits", rechits);
102  if(!rechits.isValid()){
103  edm::LogInfo("PixelHLTDQM") << "No pix rechits, cannot run for event " << iEvent.eventAuxiliary ().event() <<" run: "<<iEvent.eventAuxiliary ().run() << std::endl;
104  GotRecHits = false;
105  }
106  iEvent.getByLabel (l3MuonCollectionTag_, l3mucands);
107  if(!l3mucands.isValid()){
108  edm::LogInfo("PixelHLTDQM") << "No L3 Muons, cannot run for event " << iEvent.eventAuxiliary ().event() <<" run: "<<iEvent.eventAuxiliary ().run() << std::endl;
109  GotL3Muons = false;
110  }
111 
112  if (GotClusters){
113  if(!clusters.failedToGet ())
114  {
115  int NBarrel[4] = {0,0,0,0};
116  int NEndcap[5] = {0,0,0,0,0};
117  for (size_t i = 0; i < clusters->size(); ++i){
118  const SiPixelCluster* clust = clusters->data(i);
119  clust->charge();
121  uint detID = clusters->id(i);
122  const PixelGeomDetUnit *PixGeom = dynamic_cast < const PixelGeomDetUnit * >(theTracker.idToDet (detID));
123  const PixelTopology *topol = dynamic_cast < const PixelTopology * >(&(PixGeom->specificTopology ()));
124  // get the cluster position in local coordinates (cm)
125  LocalPoint clustlp = topol->localPosition (MeasurementPoint(clust->x(),clust->y()));
126  GlobalPoint clustgp = PixGeom->surface ().toGlobal (clustlp);
127  if(PixGeom->geographicalId().subdetId() == 1){ //1 Defines a barrel hit
128  int clustLay = PXBDetId(detID).layer();
129  //Eta-Phi
130  MEContainerAllBarrelEtaPhi[0]->Fill(clustgp.eta(),clustgp.phi());
131  MEContainerAllBarrelZPhi[0]->Fill(clustgp.z(),clustgp.phi());
132  MEContainerAllBarrelEtaPhi[clustLay]->Fill(clustgp.eta(),clustgp.phi());
133  MEContainerAllBarrelZPhi[clustLay]->Fill(clustgp.z(),clustgp.phi());
134  //Eta
135  MEContainerAllBarrelEta[0]->Fill(clustgp.eta());
136  MEContainerAllBarrelZ[0]->Fill(clustgp.z());
137  MEContainerAllBarrelEta[clustLay]->Fill(clustgp.eta());
138  MEContainerAllBarrelZ[clustLay]->Fill(clustgp.z());
139  //Phi
140  MEContainerAllBarrelPhi[0]->Fill(clustgp.phi());
141  MEContainerAllBarrelPhi[clustLay]->Fill(clustgp.phi());
142  ++NBarrel[0]; //N clusters all layers
143  ++NBarrel[clustLay]; //N clusters all layers
144  }
146  if(PixGeom->geographicalId().subdetId() == 2){ //2 Defines a Endcap hit
147  int clustDisk = PXFDetId(detID).disk();
148  if( PXFDetId(detID).side() == 2)
149  clustDisk = clustDisk +2;//neg z disks have ID 3 and 4
150  MEContainerAllEndcapXY[0]->Fill(clustgp.x(),clustgp.y());
151  MEContainerAllEndcapXY[clustDisk]->Fill(clustgp.x(),clustgp.y());
152  MEContainerAllEndcapPhi[0]->Fill(clustgp.phi());
153  MEContainerAllEndcapPhi[clustDisk]->Fill(clustgp.phi());
154  ++NEndcap[0];
155  ++NEndcap[clustDisk];
156  }
157 
158  }
159  MEContainerAllBarrelN[0]->Fill(NBarrel[0]);
160  for (int lay = 1; lay < 4; ++lay)
161  MEContainerAllBarrelN[lay]->Fill(NBarrel[lay]);
162  MEContainerAllEndcapN[0]->Fill(NEndcap[0]);
163  for (int disk = 1; disk < 5; ++disk)
164  MEContainerAllEndcapN[disk]->Fill(NEndcap[disk]);
165  }//if clust (!failedToGet)
166  }
167  bool doRecHits = false;
168 
169  if (GotRecHits && doRecHits){
170  if(!rechits.failedToGet ())
171  {
172  for (size_t i = 0; i < rechits->size(); ++i){
173  const SiPixelRecHit* myhit = rechits->data(i);
174  uint detID = rechits->id(i);
175  const PixelGeomDetUnit *PixGeom = dynamic_cast < const PixelGeomDetUnit * >(theTracker.idToDet (detID));
176  //edm::LogInfo("PixelHLTDQM") << "" << PixGeom->geographicalId().subdetId() << std::endl;
177  //const PixelTopology *topol = dynamic_cast < const PixelTopology * >(&(PixGeom->specificTopology ()));
178  // get the hit position in local coordinates (cm)
179  //LocalPoint hitlp = topol->localPosition (MeasurementPoint(myhit->x(),myhit->y()));
180  if(PixGeom->geographicalId().subdetId() == 1 && myhit->hasPositionAndError()){
181  GlobalPoint hitgp = PixGeom->surface ().toGlobal (myhit->localPosition());
182  edm::LogInfo("PixelHLTDQM") << " (From SiPixelRecHit) Hit Eta: " << hitgp.eta() << " Hit Phi: " << hitgp.phi() << std::endl;
183  }
184  }
185  }
186  }
187  if(GotL3Muons){
188  if(!l3mucands.failedToGet ())
189  {
190  int NBarrel[4] = {0,0,0,0};
191  int NEndcap[5] = {0,0,0,0,0};
192  for (cand = l3mucands->begin (); cand != l3mucands->end (); ++cand){
193  reco::TrackRef l3tk = cand->get < reco::TrackRef > ();
194  for (size_t hit = 0; hit < l3tk->recHitsSize (); hit++){
195  if (l3tk->recHit (hit)->isValid () == true && l3tk->recHit (hit)->geographicalId ().det () == DetId::Tracker){
196  int detID = l3tk->recHit(hit)->geographicalId().rawId();
197  //if hit is in pixel detector say true
198  bool IdMatch = typeid(*(l3tk->recHit(hit))) == typeid(SiPixelRecHit);
199  if (IdMatch){
200  const SiPixelRecHit *pixhit = dynamic_cast < const SiPixelRecHit * >(l3tk->recHit(hit).get());
201  if((*pixhit).isValid() == true){
202  edm::Ref<edmNew::DetSetVector<SiPixelCluster>, SiPixelCluster> const& pixclust = (*pixhit).cluster();
203  if (!(*pixhit).cluster().isAvailable())
204  {continue;}
205  const PixelGeomDetUnit *PixGeom = dynamic_cast < const PixelGeomDetUnit * >(theTracker.idToDet (detID));
206  const PixelTopology *topol = dynamic_cast < const PixelTopology * >(&(PixGeom->specificTopology ()));
207  LocalPoint clustlp = topol->localPosition (MeasurementPoint(pixclust->x(),pixclust->y()));
208  GlobalPoint clustgp = PixGeom->surface ().toGlobal (clustlp);
209  if(l3tk->recHit(hit)->geographicalId().subdetId() == 1){ //1 Defines a barrel hit
210  //get the cluster position in local coordinates (cm)
211  int clustLay = PXBDetId(detID).layer();
212  MEContainerOnTrackBarrelEtaPhi[0]->Fill(clustgp.eta(),clustgp.phi());
213  MEContainerOnTrackBarrelZPhi[0]->Fill(clustgp.z(),clustgp.phi());
214  MEContainerOnTrackBarrelEtaPhi[clustLay]->Fill(clustgp.eta(),clustgp.phi());
215  MEContainerOnTrackBarrelZPhi[clustLay]->Fill(clustgp.z(),clustgp.phi());
216  MEContainerOnTrackBarrelEta[0]->Fill(clustgp.eta());
217  MEContainerOnTrackBarrelZ[0]->Fill(clustgp.z());
218  MEContainerOnTrackBarrelEta[clustLay]->Fill(clustgp.eta());
219  MEContainerOnTrackBarrelZ[clustLay]->Fill(clustgp.z());
220  MEContainerOnTrackBarrelPhi[0]->Fill(clustgp.phi());
221  MEContainerOnTrackBarrelPhi[clustLay]->Fill(clustgp.phi());
222  ++NBarrel[0];
223  ++NBarrel[clustLay];
224  }//subdet ==1
225  if(l3tk->recHit(hit)->geographicalId().subdetId() == 2){ //2 Defines a Endcap hit
226  int clustDisk = PXFDetId(detID).disk();
227  if( PXFDetId(detID).disk() == 2)
228  clustDisk = clustDisk +2;
229  MEContainerOnTrackEndcapXY[0]->Fill(clustgp.x(),clustgp.y());
230  MEContainerOnTrackEndcapXY[clustDisk]->Fill(clustgp.x(),clustgp.y());
231  MEContainerOnTrackEndcapPhi[0]->Fill(clustgp.phi());
232  MEContainerOnTrackEndcapPhi[clustDisk]->Fill(clustgp.phi());
233  ++NEndcap[0];
234  ++NEndcap[clustDisk];
235  }//subdet ==2
236  }//pixhit valid
237  }//typeid match
238  }//l3tk->recHit (hit)->isValid () == true
239  }//loop over RecHits
240  }//loop over l3mucands
241  MEContainerOnTrackBarrelN[0]->Fill(NBarrel[0]);
242  for (int lay = 1; lay < 4; ++lay)
243  MEContainerOnTrackBarrelN[lay]->Fill(NBarrel[lay]);
244  MEContainerOnTrackEndcapN[0]->Fill(NEndcap[0]);
245  for (int disk = 1; disk < 5; ++disk)
246  MEContainerOnTrackEndcapN[disk]->Fill(NEndcap[disk]);
247 
248  }//if l3mucands
249  }
250 }
251 
253 {
254  monitorName_ = monitorName_+"/SiPixel";
255  int NBinsEta = 100;
256  int NBinsPhi = 80;
257  float EtaMax = 3.0;
258  float ZMax = 28.0;
259  int NBinsZ = 112;
260  float PhiMax = 3.142;
261  int NBinsN = 800;
262  float NMax = 800.;
263  int NBinsX = 100;
264  int NBinsY = 100;
265  float XMax = 20.;
266  float YMax = 20.;
267  std::string histoname;
268  std::string title;
269 
270  theDMBE->setCurrentFolder (monitorName_ + "/Barrel");
271  std::string layerLabel[4] = {"All_Layers", "Layer1", "Layer2", "Layer3"};
272  for (unsigned int i = 0; i < 4; i++)
273  {
276  //Eta-Phi
277  histoname = "EtaPhiAllBarrelMap_" + layerLabel[i];
278  title = "#eta-#phi Pixel Barrel Cluster Occupancy Map for " + layerLabel[i];
279  MEContainerAllBarrelEtaPhi[i] = theDMBE->book2D (histoname, title, NBinsEta, -EtaMax, EtaMax, NBinsPhi, -PhiMax, PhiMax);
280  //Z-Phi
281  histoname = "ZPhiAllBarrelMap_" + layerLabel[i];
282  title = "Z-#phi Pixel Barrel Cluster Occupancy Map for " + layerLabel[i];
283  MEContainerAllBarrelZPhi[i] = theDMBE->book2D (histoname, title, NBinsZ, -ZMax, ZMax, NBinsPhi, -PhiMax, PhiMax);
284  //Eta
285  histoname = "EtaAllBarrelMap_" + layerLabel[i];
286  title = "#eta Pixel Barrel Cluster Occupancy Map for " + layerLabel[i];
287  MEContainerAllBarrelEta[i] = theDMBE->book1D (histoname, title, NBinsEta, -EtaMax, EtaMax);
288  //Z
289  histoname = "ZAllBarrelMap_" + layerLabel[i];
290  title = "Z Pixel Barrel Cluster Occupancy Map for " + layerLabel[i];
291  MEContainerAllBarrelZ[i] = theDMBE->book1D (histoname, title, NBinsZ, -ZMax, ZMax);
292  //Phi
293  histoname = "PhiAllBarrelMap_" + layerLabel[i];
294  title = "#phi Pixel Barrel Cluster Occupancy Map for " + layerLabel[i];
295  MEContainerAllBarrelPhi[i] = theDMBE->book1D (histoname, title, NBinsPhi, -PhiMax, PhiMax);
296  //N clusters
297  histoname = "NAllBarrelMap_" + layerLabel[i];
298  title = "#phi Pixel Barrel Cluster Occupancy Map for " + layerLabel[i];
299  MEContainerAllBarrelN[i] = theDMBE->book1D (histoname, title, NBinsN, 0, NMax);
302  //Eta-Phi
303  histoname = "EtaPhiOnTrackBarrelMap_" + layerLabel[i];
304  title = "#eta-#phi On Track Pixel Barrel Cluster Occupancy Map for " + layerLabel[i];
305  MEContainerOnTrackBarrelEtaPhi[i] = theDMBE->book2D (histoname, title, NBinsEta, -EtaMax, EtaMax, NBinsPhi, -PhiMax, PhiMax);
306  //Z-Phi
307  histoname = "ZPhiOnTrackBarrelMap_" + layerLabel[i];
308  title = "Z-#phi On Track Pixel Barrel Cluster Occupancy Map for " + layerLabel[i];
309  MEContainerOnTrackBarrelZPhi[i] = theDMBE->book2D (histoname, title, NBinsZ, -ZMax, ZMax, NBinsPhi, -PhiMax, PhiMax);
310  //Eta
311  histoname = "EtaOnTrackBarrelMap_" + layerLabel[i];
312  title = "#eta On Track Pixel Barrel Cluster Occupancy Map for " + layerLabel[i];
313  MEContainerOnTrackBarrelEta[i] = theDMBE->book1D (histoname, title, NBinsEta, -EtaMax, EtaMax);
314  //Z
315  histoname = "ZOnTrackBarrelMap_" + layerLabel[i];
316  title = "Z On Track Pixel Barrel Cluster Occupancy Map for " + layerLabel[i];
317  MEContainerOnTrackBarrelZ[i] = theDMBE->book1D (histoname, title, NBinsZ, -ZMax, ZMax);
318  //Phi
319  histoname = "PhiOnTrackBarrelMap_" + layerLabel[i];
320  title = "#phi On Track Pixel Barrel Cluster Occupancy Map for " + layerLabel[i];
321  MEContainerOnTrackBarrelPhi[i] = theDMBE->book1D (histoname, title, NBinsPhi, -PhiMax, PhiMax);
322  //N clusters
323  histoname = "NOnTrackBarrelMap_" + layerLabel[i];
324  title = "N_{Clusters} On Track Pixel Barrel Cluster Occupancy Map for " + layerLabel[i];
325  MEContainerOnTrackBarrelN[i] = theDMBE->book1D (histoname, title, NBinsN, 0, NMax);
326  }
327 
328  theDMBE->setCurrentFolder (monitorName_ + "/EndCap");
329  std::string diskLabel[5] = {"All_Disks", "InnerPosZ", "OuterPosZ", "InnerNegZ", "OuterNegZ"};
330  for (int i = 0;i < 5; ++i)
331  {
334  //XY
335  histoname = "XYAllEndcapMap_" + diskLabel[i];
336  title = "X-Y Pixel Endcap Cluster Occupancy Map for " + diskLabel[i];
337  MEContainerAllEndcapXY[i] = theDMBE->book2D (histoname, title, NBinsX, -XMax, XMax, NBinsY, -YMax, YMax);
338  //Phi
339  histoname = "PhiAllEndcapMap_" + diskLabel[i];
340  title = "#phi Pixel Endcap Cluster Occupancy Map for " + diskLabel[i];
341  MEContainerAllEndcapPhi[i] = theDMBE->book1D (histoname, title, NBinsPhi, -PhiMax, PhiMax);
342  //N clusters
343  histoname = "NAllEndcapMap_" + diskLabel[i];
344  title = "#phi Pixel Endcap Cluster Occupancy Map for " + diskLabel[i];
345  MEContainerAllEndcapN[i] = theDMBE->book1D (histoname, title, NBinsN, 0, NMax);
348  //XY
349  histoname = "XYOnTrackEndcapMap_" + diskLabel[i];
350  title = "X-Y Pixel Endcap On Track Cluster Occupancy Map for " + diskLabel[i];
351  MEContainerOnTrackEndcapXY[i] = theDMBE->book2D (histoname, title, NBinsX, -XMax, XMax, NBinsY, -YMax, YMax);
352  //Phi
353  histoname = "PhiOnTrackEndcapMap_" + diskLabel[i];
354  title = "#phi Pixel Endcap On Track Cluster Occupancy Map for " + diskLabel[i];
355  MEContainerOnTrackEndcapPhi[i] = theDMBE->book1D (histoname, title, NBinsPhi, -PhiMax, PhiMax);
356  //N clusters
357  histoname = "NOnTrackEndcapMap_" + diskLabel[i];
358  title = "#phi Pixel Endcap On Track Cluster Occupancy Map for " + diskLabel[i];
359  MEContainerOnTrackEndcapN[i] = theDMBE->book1D (histoname, title, NBinsN, 0, NMax);
360  }
361  return;
362 }
363 
364 //define this as a plug-in
SiPixelMuonHLT(const edm::ParameterSet &conf)
GlobalPoint toGlobal(const Point2DBase< Scalar, LocalTag > lp) const
Definition: Surface.h:78
edm::InputTag rechitsCollectionTag_
T getUntrackedParameter(std::string const &, T const &) const
int i
Definition: DBlmapReader.cc:9
float charge() const
std::map< int, MonitorElement * > MEContainerAllBarrelZ
edm::InputTag l3MuonCollectionTag_
MonitorElement * book1D(const char *name, const char *title, int nchX, double lowX, double highX)
Book 1D histogram.
Definition: DQMStore.cc:514
std::map< int, MonitorElement * > MEContainerAllEndcapPhi
std::map< int, MonitorElement * > MEContainerAllBarrelN
ProductID id() const
Definition: HandleBase.cc:15
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:17
bool verbose_
every n events
void save(const std::string &filename, const std::string &path="", const std::string &pattern="", const std::string &rewrite="", SaveReferenceTag ref=SaveWithReference, int minStatus=dqm::qstatus::STATUS_OK, const std::string &fileupdate="RECREATE")
Definition: DQMStore.cc:1898
std::map< int, MonitorElement * > MEContainerOnTrackBarrelPhi
Geom::Phi< T > phi() const
Definition: PV3DBase.h:63
std::map< int, MonitorElement * > MEContainerAllBarrelZPhi
T y() const
Definition: PV3DBase.h:57
std::map< int, MonitorElement * > MEContainerOnTrackEndcapN
RunNumber_t run() const
#define NULL
Definition: scimark2.h:8
edm::ParameterSet parameters_
const double EtaMax[kNumberCalorimeter]
std::map< int, MonitorElement * > MEContainerAllBarrelEta
std::map< int, MonitorElement * > MEContainerOnTrackBarrelN
std::map< int, MonitorElement * > MEContainerAllBarrelPhi
virtual LocalPoint localPosition() const
virtual void analyze(const edm::Event &, const edm::EventSetup &)
unsigned int layer() const
layer id
Definition: PXBDetId.h:35
std::string monitorName_
std::map< int, MonitorElement * > MEContainerAllEndcapXY
std::map< int, MonitorElement * > MEContainerOnTrackBarrelEta
Measurement2DPoint MeasurementPoint
Measurement points are two-dimensional by default.
int iEvent
Definition: GenABIO.cc:243
void Fill(HcalDetId &id, double val, std::vector< TH2F > &depth)
T z() const
Definition: PV3DBase.h:58
edm::InputTag clusterCollectionTag_
std::map< int, MonitorElement * > MEContainerAllEndcapN
DetId geographicalId() const
The label of this GeomDet.
Definition: GeomDet.h:74
std::map< int, MonitorElement * > MEContainerAllBarrelEtaPhi
bool isValid() const
Definition: HandleBase.h:76
int subdetId() const
get the contents of the subdetector field (not cast into any detector&#39;s numbering enum) ...
Definition: DetId.h:39
virtual const GeomDet * idToDet(DetId) const
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:355
unsigned int disk() const
disk id
Definition: PXFDetId.h:43
virtual void endJob()
DQMStore * theDMBE
EventAuxiliary const & eventAuxiliary() const
Definition: Event.h:55
bool failedToGet() const
Definition: HandleBase.h:80
const T & get() const
Definition: EventSetup.h:55
virtual const PixelTopology & specificTopology() const
Returns a reference to the pixel proxy topology.
T const * product() const
Definition: ESHandle.h:62
std::map< int, MonitorElement * > MEContainerOnTrackBarrelZPhi
virtual void beginJob()
T eta() const
Definition: PV3DBase.h:70
std::string outputFile_
Pixel cluster – collection of neighboring pixels above threshold.
std::map< int, MonitorElement * > MEContainerOnTrackBarrelZ
virtual void Histo_init()
float y() const
std::map< int, MonitorElement * > MEContainerOnTrackBarrelEtaPhi
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:642
T const * get() const
Returns C++ pointer to the item.
Definition: Ref.h:241
T x() const
Definition: PV3DBase.h:56
virtual const BoundPlane & surface() const
The nominal surface of the GeomDet.
Definition: GeomDet.h:37
float x() const
EventNumber_t event() const
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:232
std::map< int, MonitorElement * > MEContainerOnTrackEndcapXY
Our base class.
Definition: SiPixelRecHit.h:27
std::map< int, MonitorElement * > MEContainerOnTrackEndcapPhi