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 //
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;
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  //set Token(-s)
52  clustersToken_ = consumes<edmNew::DetSetVector<SiPixelCluster> >(std::string("hltSiPixelClusters"));
53  rechitsToken_ = consumes<edmNew::DetSetVector<SiPixelRecHit> >(std::string("hltSiPixelRecHits"));
54  l3MuonCollectionToken_ = consumes<reco::RecoChargedCandidateCollection>(parameters_.getUntrackedParameter < edm::InputTag > ("l3MuonCollectionTag", edm::InputTag ("hltL3MuonCandidates")));
55 }
56 
58 {
59  // do anything here that needs to be done at desctruction time
60  // (e.g. close files, deallocate resources etc.)
61  edm::LogInfo ("PixelHLTDQM") << "SiPixelMuonHLT::~SiPixelMuonHLT: Destructor"<<std::endl;
62 
63 }
64 
66 
67  edm::LogInfo ("PixelHLTDQM") << " SiPixelMuonHLT::beginJob - Initialisation ... " << std::endl;
68  eventNo = 0;
69 
70 }
71 
72 
74  if(saveOUTput_){
75  edm::LogInfo ("PixelHLTDQM") << " SiPixelMuonHLT::endJob - Saving Root File " << std::endl;
76  theDMBE->save( outputFile_.c_str() );
77  }
78 }
79 
80 //------------------------------------------------------------------
81 // Method called for every event
82 //------------------------------------------------------------------
84 {
85  //Retrieve tracker topology from geometry
87  iSetup.get<IdealGeometryRecord>().get(tTopoHandle);
88  const TrackerTopology* const tTopo = tTopoHandle.product();
89 
90 
91  eventNo++;
92 
94  iSetup.get < TrackerDigiGeometryRecord > ().get (TG);
95  const TrackerGeometry *theTrackerGeometry = TG.product ();
96  const TrackerGeometry & theTracker (*theTrackerGeometry);
98  reco::RecoChargedCandidateCollection::const_iterator cand;
101 
102  bool GotClusters = true;
103  bool GotRecHits = true;
104  bool GotL3Muons = true;
105 
106  iEvent.getByToken(clustersToken_, clusters);
107  if(!clusters.isValid()){
108  edm::LogInfo("PixelHLTDQM") << "No pix clusters, cannot run for event " << iEvent.eventAuxiliary ().event() <<" run: "<<iEvent.eventAuxiliary ().run() << std::endl;
109  GotClusters = false;
110  }
111  iEvent.getByToken(rechitsToken_, rechits);
112  if(!rechits.isValid()){
113  edm::LogInfo("PixelHLTDQM") << "No pix rechits, cannot run for event " << iEvent.eventAuxiliary ().event() <<" run: "<<iEvent.eventAuxiliary ().run() << std::endl;
114  GotRecHits = false;
115  }
116  iEvent.getByToken(l3MuonCollectionToken_, l3mucands);
117  if(!l3mucands.isValid()){
118  edm::LogInfo("PixelHLTDQM") << "No L3 Muons, cannot run for event " << iEvent.eventAuxiliary ().event() <<" run: "<<iEvent.eventAuxiliary ().run() << std::endl;
119  GotL3Muons = false;
120  }
121 
122  if (GotClusters){
123  if(!clusters.failedToGet ())
124  {
125  int NBarrel[4] = {0,0,0,0};
126  int NEndcap[5] = {0,0,0,0,0};
127  for (size_t i = 0; i < clusters->size(); ++i){
128  const SiPixelCluster* clust = clusters->data(i);
129  clust->charge();
131  uint detID = clusters->id(i);
132  const PixelGeomDetUnit *PixGeom = dynamic_cast < const PixelGeomDetUnit * >(theTracker.idToDet (detID));
133  const PixelTopology *topol = dynamic_cast < const PixelTopology * >(&(PixGeom->specificTopology ()));
134  // get the cluster position in local coordinates (cm)
135  LocalPoint clustlp = topol->localPosition (MeasurementPoint(clust->x(),clust->y()));
136  GlobalPoint clustgp = PixGeom->surface ().toGlobal (clustlp);
137  if(PixGeom->geographicalId().subdetId() == 1){ //1 Defines a barrel hit
138  int clustLay = tTopo->pxbLayer(detID);
139  //Eta-Phi
140  MEContainerAllBarrelEtaPhi[0]->Fill(clustgp.eta(),clustgp.phi());
141  MEContainerAllBarrelZPhi[0]->Fill(clustgp.z(),clustgp.phi());
142  MEContainerAllBarrelEtaPhi[clustLay]->Fill(clustgp.eta(),clustgp.phi());
143  MEContainerAllBarrelZPhi[clustLay]->Fill(clustgp.z(),clustgp.phi());
144  //Eta
145  MEContainerAllBarrelEta[0]->Fill(clustgp.eta());
146  MEContainerAllBarrelZ[0]->Fill(clustgp.z());
147  MEContainerAllBarrelEta[clustLay]->Fill(clustgp.eta());
148  MEContainerAllBarrelZ[clustLay]->Fill(clustgp.z());
149  //Phi
150  MEContainerAllBarrelPhi[0]->Fill(clustgp.phi());
151  MEContainerAllBarrelPhi[clustLay]->Fill(clustgp.phi());
152  ++NBarrel[0]; //N clusters all layers
153  ++NBarrel[clustLay]; //N clusters all layers
154  }
156  if(PixGeom->geographicalId().subdetId() == 2){ //2 Defines a Endcap hit
157  int clustDisk = tTopo->pxfDisk(detID);
158  if( tTopo->pxfSide(detID) == 2)
159  clustDisk = clustDisk +2;//neg z disks have ID 3 and 4
160  MEContainerAllEndcapXY[0]->Fill(clustgp.x(),clustgp.y());
161  MEContainerAllEndcapXY[clustDisk]->Fill(clustgp.x(),clustgp.y());
162  MEContainerAllEndcapPhi[0]->Fill(clustgp.phi());
163  MEContainerAllEndcapPhi[clustDisk]->Fill(clustgp.phi());
164  ++NEndcap[0];
165  ++NEndcap[clustDisk];
166  }
167 
168  }
169  MEContainerAllBarrelN[0]->Fill(NBarrel[0]);
170  for (int lay = 1; lay < 4; ++lay)
171  MEContainerAllBarrelN[lay]->Fill(NBarrel[lay]);
172  MEContainerAllEndcapN[0]->Fill(NEndcap[0]);
173  for (int disk = 1; disk < 5; ++disk)
174  MEContainerAllEndcapN[disk]->Fill(NEndcap[disk]);
175  }//if clust (!failedToGet)
176  }
177  bool doRecHits = false;
178 
179  if (GotRecHits && doRecHits){
180  if(!rechits.failedToGet ())
181  {
182  for (size_t i = 0; i < rechits->size(); ++i){
183  const SiPixelRecHit* myhit = rechits->data(i);
184  uint detID = rechits->id(i);
185  const PixelGeomDetUnit *PixGeom = dynamic_cast < const PixelGeomDetUnit * >(theTracker.idToDet (detID));
186  //edm::LogInfo("PixelHLTDQM") << "" << PixGeom->geographicalId().subdetId() << std::endl;
187  //const PixelTopology *topol = dynamic_cast < const PixelTopology * >(&(PixGeom->specificTopology ()));
188  // get the hit position in local coordinates (cm)
189  //LocalPoint hitlp = topol->localPosition (MeasurementPoint(myhit->x(),myhit->y()));
190  if(PixGeom->geographicalId().subdetId() == 1 && myhit->hasPositionAndError()){
191  GlobalPoint hitgp = PixGeom->surface ().toGlobal (myhit->localPosition());
192  edm::LogInfo("PixelHLTDQM") << " (From SiPixelRecHit) Hit Eta: " << hitgp.eta() << " Hit Phi: " << hitgp.phi() << std::endl;
193  }
194  }
195  }
196  }
197  if(GotL3Muons){
198  if(!l3mucands.failedToGet ())
199  {
200  int NBarrel[4] = {0,0,0,0};
201  int NEndcap[5] = {0,0,0,0,0};
202  for (cand = l3mucands->begin (); cand != l3mucands->end (); ++cand){
203  reco::TrackRef l3tk = cand->get < reco::TrackRef > ();
204  for (size_t hit = 0; hit < l3tk->recHitsSize (); hit++){
205  if (l3tk->recHit (hit)->isValid () == true && l3tk->recHit (hit)->geographicalId ().det () == DetId::Tracker){
206  int detID = l3tk->recHit(hit)->geographicalId().rawId();
207  //if hit is in pixel detector say true
208  bool IdMatch = typeid(*(l3tk->recHit(hit))) == typeid(SiPixelRecHit);
209  if (IdMatch){
210  const SiPixelRecHit *pixhit = dynamic_cast < const SiPixelRecHit * >(l3tk->recHit(hit).get());
211  if((*pixhit).isValid() == true){
212  edm::Ref<edmNew::DetSetVector<SiPixelCluster>, SiPixelCluster> const& pixclust = (*pixhit).cluster();
213  if (!(*pixhit).cluster().isAvailable())
214  {continue;}
215  const PixelGeomDetUnit *PixGeom = dynamic_cast < const PixelGeomDetUnit * >(theTracker.idToDet (detID));
216  const PixelTopology *topol = dynamic_cast < const PixelTopology * >(&(PixGeom->specificTopology ()));
217  LocalPoint clustlp = topol->localPosition (MeasurementPoint(pixclust->x(),pixclust->y()));
218  GlobalPoint clustgp = PixGeom->surface ().toGlobal (clustlp);
219  if(l3tk->recHit(hit)->geographicalId().subdetId() == 1){ //1 Defines a barrel hit
220  //get the cluster position in local coordinates (cm)
221  int clustLay = tTopo->pxbLayer(detID);
222  MEContainerOnTrackBarrelEtaPhi[0]->Fill(clustgp.eta(),clustgp.phi());
223  MEContainerOnTrackBarrelZPhi[0]->Fill(clustgp.z(),clustgp.phi());
224  MEContainerOnTrackBarrelEtaPhi[clustLay]->Fill(clustgp.eta(),clustgp.phi());
225  MEContainerOnTrackBarrelZPhi[clustLay]->Fill(clustgp.z(),clustgp.phi());
226  MEContainerOnTrackBarrelEta[0]->Fill(clustgp.eta());
227  MEContainerOnTrackBarrelZ[0]->Fill(clustgp.z());
228  MEContainerOnTrackBarrelEta[clustLay]->Fill(clustgp.eta());
229  MEContainerOnTrackBarrelZ[clustLay]->Fill(clustgp.z());
230  MEContainerOnTrackBarrelPhi[0]->Fill(clustgp.phi());
231  MEContainerOnTrackBarrelPhi[clustLay]->Fill(clustgp.phi());
232  ++NBarrel[0];
233  ++NBarrel[clustLay];
234  }//subdet ==1
235  if(l3tk->recHit(hit)->geographicalId().subdetId() == 2){ //2 Defines a Endcap hit
236  int clustDisk = tTopo->pxfDisk(detID);
237  if( tTopo->pxfDisk(detID) == 2)
238  clustDisk = clustDisk +2;
239  MEContainerOnTrackEndcapXY[0]->Fill(clustgp.x(),clustgp.y());
240  MEContainerOnTrackEndcapXY[clustDisk]->Fill(clustgp.x(),clustgp.y());
241  MEContainerOnTrackEndcapPhi[0]->Fill(clustgp.phi());
242  MEContainerOnTrackEndcapPhi[clustDisk]->Fill(clustgp.phi());
243  ++NEndcap[0];
244  ++NEndcap[clustDisk];
245  }//subdet ==2
246  }//pixhit valid
247  }//typeid match
248  }//l3tk->recHit (hit)->isValid () == true
249  }//loop over RecHits
250  }//loop over l3mucands
251  MEContainerOnTrackBarrelN[0]->Fill(NBarrel[0]);
252  for (int lay = 1; lay < 4; ++lay)
253  MEContainerOnTrackBarrelN[lay]->Fill(NBarrel[lay]);
254  MEContainerOnTrackEndcapN[0]->Fill(NEndcap[0]);
255  for (int disk = 1; disk < 5; ++disk)
256  MEContainerOnTrackEndcapN[disk]->Fill(NEndcap[disk]);
257 
258  }//if l3mucands
259  }
260 }
261 
263 {
264  monitorName_ = monitorName_+"/SiPixel";
265  int NBinsEta = 100;
266  int NBinsPhi = 80;
267  float EtaMax = 3.0;
268  float ZMax = 28.0;
269  int NBinsZ = 112;
270  float PhiMax = 3.142;
271  int NBinsN = 800;
272  float NMax = 800.;
273  int NBinsX = 100;
274  int NBinsY = 100;
275  float XMax = 20.;
276  float YMax = 20.;
277  std::string histoname;
279 
280  theDMBE->setCurrentFolder (monitorName_ + "/Barrel");
281  std::string layerLabel[4] = {"All_Layers", "Layer1", "Layer2", "Layer3"};
282  for (unsigned int i = 0; i < 4; i++)
283  {
286  //Eta-Phi
287  histoname = "EtaPhiAllBarrelMap_" + layerLabel[i];
288  title = "#eta-#phi Pixel Barrel Cluster Occupancy Map for " + layerLabel[i];
289  MEContainerAllBarrelEtaPhi[i] = theDMBE->book2D (histoname, title, NBinsEta, -EtaMax, EtaMax, NBinsPhi, -PhiMax, PhiMax);
290  //Z-Phi
291  histoname = "ZPhiAllBarrelMap_" + layerLabel[i];
292  title = "Z-#phi Pixel Barrel Cluster Occupancy Map for " + layerLabel[i];
293  MEContainerAllBarrelZPhi[i] = theDMBE->book2D (histoname, title, NBinsZ, -ZMax, ZMax, NBinsPhi, -PhiMax, PhiMax);
294  //Eta
295  histoname = "EtaAllBarrelMap_" + layerLabel[i];
296  title = "#eta Pixel Barrel Cluster Occupancy Map for " + layerLabel[i];
297  MEContainerAllBarrelEta[i] = theDMBE->book1D (histoname, title, NBinsEta, -EtaMax, EtaMax);
298  //Z
299  histoname = "ZAllBarrelMap_" + layerLabel[i];
300  title = "Z Pixel Barrel Cluster Occupancy Map for " + layerLabel[i];
301  MEContainerAllBarrelZ[i] = theDMBE->book1D (histoname, title, NBinsZ, -ZMax, ZMax);
302  //Phi
303  histoname = "PhiAllBarrelMap_" + layerLabel[i];
304  title = "#phi Pixel Barrel Cluster Occupancy Map for " + layerLabel[i];
305  MEContainerAllBarrelPhi[i] = theDMBE->book1D (histoname, title, NBinsPhi, -PhiMax, PhiMax);
306  //N clusters
307  histoname = "NAllBarrelMap_" + layerLabel[i];
308  title = "#phi Pixel Barrel Cluster Occupancy Map for " + layerLabel[i];
309  MEContainerAllBarrelN[i] = theDMBE->book1D (histoname, title, NBinsN, 0, NMax);
312  //Eta-Phi
313  histoname = "EtaPhiOnTrackBarrelMap_" + layerLabel[i];
314  title = "#eta-#phi On Track Pixel Barrel Cluster Occupancy Map for " + layerLabel[i];
315  MEContainerOnTrackBarrelEtaPhi[i] = theDMBE->book2D (histoname, title, NBinsEta, -EtaMax, EtaMax, NBinsPhi, -PhiMax, PhiMax);
316  //Z-Phi
317  histoname = "ZPhiOnTrackBarrelMap_" + layerLabel[i];
318  title = "Z-#phi On Track Pixel Barrel Cluster Occupancy Map for " + layerLabel[i];
319  MEContainerOnTrackBarrelZPhi[i] = theDMBE->book2D (histoname, title, NBinsZ, -ZMax, ZMax, NBinsPhi, -PhiMax, PhiMax);
320  //Eta
321  histoname = "EtaOnTrackBarrelMap_" + layerLabel[i];
322  title = "#eta On Track Pixel Barrel Cluster Occupancy Map for " + layerLabel[i];
323  MEContainerOnTrackBarrelEta[i] = theDMBE->book1D (histoname, title, NBinsEta, -EtaMax, EtaMax);
324  //Z
325  histoname = "ZOnTrackBarrelMap_" + layerLabel[i];
326  title = "Z On Track Pixel Barrel Cluster Occupancy Map for " + layerLabel[i];
327  MEContainerOnTrackBarrelZ[i] = theDMBE->book1D (histoname, title, NBinsZ, -ZMax, ZMax);
328  //Phi
329  histoname = "PhiOnTrackBarrelMap_" + layerLabel[i];
330  title = "#phi On Track Pixel Barrel Cluster Occupancy Map for " + layerLabel[i];
331  MEContainerOnTrackBarrelPhi[i] = theDMBE->book1D (histoname, title, NBinsPhi, -PhiMax, PhiMax);
332  //N clusters
333  histoname = "NOnTrackBarrelMap_" + layerLabel[i];
334  title = "N_{Clusters} On Track Pixel Barrel Cluster Occupancy Map for " + layerLabel[i];
335  MEContainerOnTrackBarrelN[i] = theDMBE->book1D (histoname, title, NBinsN, 0, NMax);
336  }
337 
338  theDMBE->setCurrentFolder (monitorName_ + "/EndCap");
339  std::string diskLabel[5] = {"All_Disks", "InnerPosZ", "OuterPosZ", "InnerNegZ", "OuterNegZ"};
340  for (int i = 0;i < 5; ++i)
341  {
344  //XY
345  histoname = "XYAllEndcapMap_" + diskLabel[i];
346  title = "X-Y Pixel Endcap Cluster Occupancy Map for " + diskLabel[i];
347  MEContainerAllEndcapXY[i] = theDMBE->book2D (histoname, title, NBinsX, -XMax, XMax, NBinsY, -YMax, YMax);
348  //Phi
349  histoname = "PhiAllEndcapMap_" + diskLabel[i];
350  title = "#phi Pixel Endcap Cluster Occupancy Map for " + diskLabel[i];
351  MEContainerAllEndcapPhi[i] = theDMBE->book1D (histoname, title, NBinsPhi, -PhiMax, PhiMax);
352  //N clusters
353  histoname = "NAllEndcapMap_" + diskLabel[i];
354  title = "#phi Pixel Endcap Cluster Occupancy Map for " + diskLabel[i];
355  MEContainerAllEndcapN[i] = theDMBE->book1D (histoname, title, NBinsN, 0, NMax);
358  //XY
359  histoname = "XYOnTrackEndcapMap_" + diskLabel[i];
360  title = "X-Y Pixel Endcap On Track Cluster Occupancy Map for " + diskLabel[i];
361  MEContainerOnTrackEndcapXY[i] = theDMBE->book2D (histoname, title, NBinsX, -XMax, XMax, NBinsY, -YMax, YMax);
362  //Phi
363  histoname = "PhiOnTrackEndcapMap_" + diskLabel[i];
364  title = "#phi Pixel Endcap On Track Cluster Occupancy Map for " + diskLabel[i];
365  MEContainerOnTrackEndcapPhi[i] = theDMBE->book1D (histoname, title, NBinsPhi, -PhiMax, PhiMax);
366  //N clusters
367  histoname = "NOnTrackEndcapMap_" + diskLabel[i];
368  title = "#phi Pixel Endcap On Track Cluster Occupancy Map for " + diskLabel[i];
369  MEContainerOnTrackEndcapN[i] = theDMBE->book1D (histoname, title, NBinsN, 0, NMax);
370  }
371  return;
372 }
373 
374 //define this as a plug-in
SiPixelMuonHLT(const edm::ParameterSet &conf)
GlobalPoint toGlobal(const Point2DBase< Scalar, LocalTag > lp) const
Definition: Surface.h:114
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:954
std::map< int, MonitorElement * > MEContainerAllEndcapPhi
bool hasPositionAndError() const
to be redefined by daughter class
std::map< int, MonitorElement * > MEContainerAllBarrelN
ProductID id() const
Definition: HandleBase.cc:15
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:434
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:17
unsigned int pxfDisk(const DetId &id) const
bool verbose_
every n events
std::map< int, MonitorElement * > MEContainerOnTrackBarrelPhi
Geom::Phi< T > phi() const
Definition: PV3DBase.h:69
std::map< int, MonitorElement * > MEContainerAllBarrelZPhi
T y() const
Definition: PV3DBase.h:63
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
const Plane & surface() const
The nominal surface of the GeomDet.
Definition: GeomDet.h:35
std::map< int, MonitorElement * > MEContainerAllBarrelPhi
virtual void analyze(const edm::Event &, const edm::EventSetup &)
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:230
void Fill(HcalDetId &id, double val, std::vector< TH2F > &depth)
T z() const
Definition: PV3DBase.h:64
edm::InputTag clusterCollectionTag_
std::map< int, MonitorElement * > MEContainerAllEndcapN
DetId geographicalId() const
The label of this GeomDet.
Definition: GeomDet.h:72
edm::EDGetTokenT< edmNew::DetSetVector< SiPixelRecHit > > rechitsToken_
edm::EDGetTokenT< edmNew::DetSetVector< SiPixelCluster > > clustersToken_
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:37
virtual const GeomDet * idToDet(DetId) const
virtual void endJob()
DQMStore * theDMBE
unsigned int pxbLayer(const DetId &id) const
EventAuxiliary const & eventAuxiliary() const
Definition: Event.h:72
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:76
std::string outputFile_
Pixel cluster – collection of neighboring pixels above threshold.
std::map< int, MonitorElement * > MEContainerOnTrackBarrelZ
void save(const std::string &filename, const std::string &path="", const std::string &pattern="", const std::string &rewrite="", const uint32_t run=0, const uint32_t lumi=0, SaveReferenceTag ref=SaveWithReference, int minStatus=dqm::qstatus::STATUS_OK, const std::string &fileupdate="RECREATE", const bool resetMEsAfterWriting=false)
Definition: DQMStore.cc:2540
virtual void Histo_init()
float y() const
unsigned int pxfSide(const DetId &id) const
edm::EDGetTokenT< reco::RecoChargedCandidateCollection > l3MuonCollectionToken_
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:1082
T const * get() const
Returns C++ pointer to the item.
Definition: Ref.h:242
T x() const
Definition: PV3DBase.h:62
virtual LocalPoint localPosition() const
float x() const
EventNumber_t event() const
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:667
std::map< int, MonitorElement * > MEContainerOnTrackEndcapXY
Our base class.
Definition: SiPixelRecHit.h:23
std::map< int, MonitorElement * > MEContainerOnTrackEndcapPhi