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.10 2013/01/03 18:59:35 wmtan Exp $
18 //
22 #include <string>
23 #include <stdlib.h>
24 
26  conf_(iConfig)
27 {
28 
29  parameters_ = iConfig;
30 
31  verbose_ = parameters_.getUntrackedParameter < bool > ("verbose", false);
32  monitorName_ = parameters_.getUntrackedParameter < std::string > ("monitorName", "HLT/HLTMonMuon");
33  saveOUTput_ = parameters_.getUntrackedParameter < bool > ("saveOUTput", true);
34 
35  //tags
36  clusterCollectionTag_ = parameters_.getUntrackedParameter < edm::InputTag > ("clusterCollectionTag", edm::InputTag ("hltSiPixelClusters"));
37  rechitsCollectionTag_ = parameters_.getUntrackedParameter < edm::InputTag > ("rechitsCollectionTag", edm::InputTag ("hltSiPixelRecHits"));
38  l3MuonCollectionTag_ = parameters_.getUntrackedParameter < edm::InputTag > ("l3MuonCollectionTag", edm::InputTag ("hltL3MuonCandidates"));
40 
42  edm::LogInfo ("PixelHLTDQM") << "SiPixelMuonHLT::SiPixelMuonHLT: Got DQM BackEnd interface"<<std::endl;
44  if (outputFile_.size () != 0)
45  edm::LogWarning ("HLTMuonDQMSource") << "Muon HLT Monitoring histograms will be saved to " << outputFile_ << std::endl;
46  else
47  outputFile_ = "PixelHLTDQM.root";
49  if (theDMBE != NULL) theDMBE->setCurrentFolder (monitorName_);
51 
52 }
53 
55 {
56  // do anything here that needs to be done at desctruction time
57  // (e.g. close files, deallocate resources etc.)
58  edm::LogInfo ("PixelHLTDQM") << "SiPixelMuonHLT::~SiPixelMuonHLT: Destructor"<<std::endl;
59 
60 }
61 
63 
64  edm::LogInfo ("PixelHLTDQM") << " SiPixelMuonHLT::beginJob - Initialisation ... " << std::endl;
65  eventNo = 0;
66 
67 }
68 
69 
71  if(saveOUTput_){
72  edm::LogInfo ("PixelHLTDQM") << " SiPixelMuonHLT::endJob - Saving Root File " << std::endl;
73  theDMBE->save( outputFile_.c_str() );
74  }
75 }
76 
77 //------------------------------------------------------------------
78 // Method called for every event
79 //------------------------------------------------------------------
81 {
82  //Retrieve tracker topology from geometry
84  iSetup.get<IdealGeometryRecord>().get(tTopoHandle);
85  const TrackerTopology* const tTopo = tTopoHandle.product();
86 
87 
88  eventNo++;
89 
91  iSetup.get < TrackerDigiGeometryRecord > ().get (TG);
92  const TrackerGeometry *theTrackerGeometry = TG.product ();
93  const TrackerGeometry & theTracker (*theTrackerGeometry);
95  reco::RecoChargedCandidateCollection::const_iterator cand;
98 
99  bool GotClusters = true;
100  bool GotRecHits = true;
101  bool GotL3Muons = true;
102 
103  iEvent.getByLabel("hltSiPixelClusters", clusters);
104  if(!clusters.isValid()){
105  edm::LogInfo("PixelHLTDQM") << "No pix clusters, cannot run for event " << iEvent.eventAuxiliary ().event() <<" run: "<<iEvent.eventAuxiliary ().run() << std::endl;
106  GotClusters = false;
107  }
108  iEvent.getByLabel("hltSiPixelRecHits", rechits);
109  if(!rechits.isValid()){
110  edm::LogInfo("PixelHLTDQM") << "No pix rechits, cannot run for event " << iEvent.eventAuxiliary ().event() <<" run: "<<iEvent.eventAuxiliary ().run() << std::endl;
111  GotRecHits = false;
112  }
113  iEvent.getByLabel (l3MuonCollectionTag_, l3mucands);
114  if(!l3mucands.isValid()){
115  edm::LogInfo("PixelHLTDQM") << "No L3 Muons, cannot run for event " << iEvent.eventAuxiliary ().event() <<" run: "<<iEvent.eventAuxiliary ().run() << std::endl;
116  GotL3Muons = false;
117  }
118 
119  if (GotClusters){
120  if(!clusters.failedToGet ())
121  {
122  int NBarrel[4] = {0,0,0,0};
123  int NEndcap[5] = {0,0,0,0,0};
124  for (size_t i = 0; i < clusters->size(); ++i){
125  const SiPixelCluster* clust = clusters->data(i);
126  clust->charge();
128  uint detID = clusters->id(i);
129  const PixelGeomDetUnit *PixGeom = dynamic_cast < const PixelGeomDetUnit * >(theTracker.idToDet (detID));
130  const PixelTopology *topol = dynamic_cast < const PixelTopology * >(&(PixGeom->specificTopology ()));
131  // get the cluster position in local coordinates (cm)
132  LocalPoint clustlp = topol->localPosition (MeasurementPoint(clust->x(),clust->y()));
133  GlobalPoint clustgp = PixGeom->surface ().toGlobal (clustlp);
134  if(PixGeom->geographicalId().subdetId() == 1){ //1 Defines a barrel hit
135  int clustLay = tTopo->pxbLayer(detID);
136  //Eta-Phi
137  MEContainerAllBarrelEtaPhi[0]->Fill(clustgp.eta(),clustgp.phi());
138  MEContainerAllBarrelZPhi[0]->Fill(clustgp.z(),clustgp.phi());
139  MEContainerAllBarrelEtaPhi[clustLay]->Fill(clustgp.eta(),clustgp.phi());
140  MEContainerAllBarrelZPhi[clustLay]->Fill(clustgp.z(),clustgp.phi());
141  //Eta
142  MEContainerAllBarrelEta[0]->Fill(clustgp.eta());
143  MEContainerAllBarrelZ[0]->Fill(clustgp.z());
144  MEContainerAllBarrelEta[clustLay]->Fill(clustgp.eta());
145  MEContainerAllBarrelZ[clustLay]->Fill(clustgp.z());
146  //Phi
147  MEContainerAllBarrelPhi[0]->Fill(clustgp.phi());
148  MEContainerAllBarrelPhi[clustLay]->Fill(clustgp.phi());
149  ++NBarrel[0]; //N clusters all layers
150  ++NBarrel[clustLay]; //N clusters all layers
151  }
153  if(PixGeom->geographicalId().subdetId() == 2){ //2 Defines a Endcap hit
154  int clustDisk = tTopo->pxfDisk(detID);
155  if( tTopo->pxfSide(detID) == 2)
156  clustDisk = clustDisk +2;//neg z disks have ID 3 and 4
157  MEContainerAllEndcapXY[0]->Fill(clustgp.x(),clustgp.y());
158  MEContainerAllEndcapXY[clustDisk]->Fill(clustgp.x(),clustgp.y());
159  MEContainerAllEndcapPhi[0]->Fill(clustgp.phi());
160  MEContainerAllEndcapPhi[clustDisk]->Fill(clustgp.phi());
161  ++NEndcap[0];
162  ++NEndcap[clustDisk];
163  }
164 
165  }
166  MEContainerAllBarrelN[0]->Fill(NBarrel[0]);
167  for (int lay = 1; lay < 4; ++lay)
168  MEContainerAllBarrelN[lay]->Fill(NBarrel[lay]);
169  MEContainerAllEndcapN[0]->Fill(NEndcap[0]);
170  for (int disk = 1; disk < 5; ++disk)
171  MEContainerAllEndcapN[disk]->Fill(NEndcap[disk]);
172  }//if clust (!failedToGet)
173  }
174  bool doRecHits = false;
175 
176  if (GotRecHits && doRecHits){
177  if(!rechits.failedToGet ())
178  {
179  for (size_t i = 0; i < rechits->size(); ++i){
180  const SiPixelRecHit* myhit = rechits->data(i);
181  uint detID = rechits->id(i);
182  const PixelGeomDetUnit *PixGeom = dynamic_cast < const PixelGeomDetUnit * >(theTracker.idToDet (detID));
183  //edm::LogInfo("PixelHLTDQM") << "" << PixGeom->geographicalId().subdetId() << std::endl;
184  //const PixelTopology *topol = dynamic_cast < const PixelTopology * >(&(PixGeom->specificTopology ()));
185  // get the hit position in local coordinates (cm)
186  //LocalPoint hitlp = topol->localPosition (MeasurementPoint(myhit->x(),myhit->y()));
187  if(PixGeom->geographicalId().subdetId() == 1 && myhit->hasPositionAndError()){
188  GlobalPoint hitgp = PixGeom->surface ().toGlobal (myhit->localPosition());
189  edm::LogInfo("PixelHLTDQM") << " (From SiPixelRecHit) Hit Eta: " << hitgp.eta() << " Hit Phi: " << hitgp.phi() << std::endl;
190  }
191  }
192  }
193  }
194  if(GotL3Muons){
195  if(!l3mucands.failedToGet ())
196  {
197  int NBarrel[4] = {0,0,0,0};
198  int NEndcap[5] = {0,0,0,0,0};
199  for (cand = l3mucands->begin (); cand != l3mucands->end (); ++cand){
200  reco::TrackRef l3tk = cand->get < reco::TrackRef > ();
201  for (size_t hit = 0; hit < l3tk->recHitsSize (); hit++){
202  if (l3tk->recHit (hit)->isValid () == true && l3tk->recHit (hit)->geographicalId ().det () == DetId::Tracker){
203  int detID = l3tk->recHit(hit)->geographicalId().rawId();
204  //if hit is in pixel detector say true
205  bool IdMatch = typeid(*(l3tk->recHit(hit))) == typeid(SiPixelRecHit);
206  if (IdMatch){
207  const SiPixelRecHit *pixhit = dynamic_cast < const SiPixelRecHit * >(l3tk->recHit(hit).get());
208  if((*pixhit).isValid() == true){
209  edm::Ref<edmNew::DetSetVector<SiPixelCluster>, SiPixelCluster> const& pixclust = (*pixhit).cluster();
210  if (!(*pixhit).cluster().isAvailable())
211  {continue;}
212  const PixelGeomDetUnit *PixGeom = dynamic_cast < const PixelGeomDetUnit * >(theTracker.idToDet (detID));
213  const PixelTopology *topol = dynamic_cast < const PixelTopology * >(&(PixGeom->specificTopology ()));
214  LocalPoint clustlp = topol->localPosition (MeasurementPoint(pixclust->x(),pixclust->y()));
215  GlobalPoint clustgp = PixGeom->surface ().toGlobal (clustlp);
216  if(l3tk->recHit(hit)->geographicalId().subdetId() == 1){ //1 Defines a barrel hit
217  //get the cluster position in local coordinates (cm)
218  int clustLay = tTopo->pxbLayer(detID);
219  MEContainerOnTrackBarrelEtaPhi[0]->Fill(clustgp.eta(),clustgp.phi());
220  MEContainerOnTrackBarrelZPhi[0]->Fill(clustgp.z(),clustgp.phi());
221  MEContainerOnTrackBarrelEtaPhi[clustLay]->Fill(clustgp.eta(),clustgp.phi());
222  MEContainerOnTrackBarrelZPhi[clustLay]->Fill(clustgp.z(),clustgp.phi());
223  MEContainerOnTrackBarrelEta[0]->Fill(clustgp.eta());
224  MEContainerOnTrackBarrelZ[0]->Fill(clustgp.z());
225  MEContainerOnTrackBarrelEta[clustLay]->Fill(clustgp.eta());
226  MEContainerOnTrackBarrelZ[clustLay]->Fill(clustgp.z());
227  MEContainerOnTrackBarrelPhi[0]->Fill(clustgp.phi());
228  MEContainerOnTrackBarrelPhi[clustLay]->Fill(clustgp.phi());
229  ++NBarrel[0];
230  ++NBarrel[clustLay];
231  }//subdet ==1
232  if(l3tk->recHit(hit)->geographicalId().subdetId() == 2){ //2 Defines a Endcap hit
233  int clustDisk = tTopo->pxfDisk(detID);
234  if( tTopo->pxfDisk(detID) == 2)
235  clustDisk = clustDisk +2;
236  MEContainerOnTrackEndcapXY[0]->Fill(clustgp.x(),clustgp.y());
237  MEContainerOnTrackEndcapXY[clustDisk]->Fill(clustgp.x(),clustgp.y());
238  MEContainerOnTrackEndcapPhi[0]->Fill(clustgp.phi());
239  MEContainerOnTrackEndcapPhi[clustDisk]->Fill(clustgp.phi());
240  ++NEndcap[0];
241  ++NEndcap[clustDisk];
242  }//subdet ==2
243  }//pixhit valid
244  }//typeid match
245  }//l3tk->recHit (hit)->isValid () == true
246  }//loop over RecHits
247  }//loop over l3mucands
248  MEContainerOnTrackBarrelN[0]->Fill(NBarrel[0]);
249  for (int lay = 1; lay < 4; ++lay)
250  MEContainerOnTrackBarrelN[lay]->Fill(NBarrel[lay]);
251  MEContainerOnTrackEndcapN[0]->Fill(NEndcap[0]);
252  for (int disk = 1; disk < 5; ++disk)
253  MEContainerOnTrackEndcapN[disk]->Fill(NEndcap[disk]);
254 
255  }//if l3mucands
256  }
257 }
258 
260 {
261  monitorName_ = monitorName_+"/SiPixel";
262  int NBinsEta = 100;
263  int NBinsPhi = 80;
264  float EtaMax = 3.0;
265  float ZMax = 28.0;
266  int NBinsZ = 112;
267  float PhiMax = 3.142;
268  int NBinsN = 800;
269  float NMax = 800.;
270  int NBinsX = 100;
271  int NBinsY = 100;
272  float XMax = 20.;
273  float YMax = 20.;
274  std::string histoname;
276 
277  theDMBE->setCurrentFolder (monitorName_ + "/Barrel");
278  std::string layerLabel[4] = {"All_Layers", "Layer1", "Layer2", "Layer3"};
279  for (unsigned int i = 0; i < 4; i++)
280  {
283  //Eta-Phi
284  histoname = "EtaPhiAllBarrelMap_" + layerLabel[i];
285  title = "#eta-#phi Pixel Barrel Cluster Occupancy Map for " + layerLabel[i];
286  MEContainerAllBarrelEtaPhi[i] = theDMBE->book2D (histoname, title, NBinsEta, -EtaMax, EtaMax, NBinsPhi, -PhiMax, PhiMax);
287  //Z-Phi
288  histoname = "ZPhiAllBarrelMap_" + layerLabel[i];
289  title = "Z-#phi Pixel Barrel Cluster Occupancy Map for " + layerLabel[i];
290  MEContainerAllBarrelZPhi[i] = theDMBE->book2D (histoname, title, NBinsZ, -ZMax, ZMax, NBinsPhi, -PhiMax, PhiMax);
291  //Eta
292  histoname = "EtaAllBarrelMap_" + layerLabel[i];
293  title = "#eta Pixel Barrel Cluster Occupancy Map for " + layerLabel[i];
294  MEContainerAllBarrelEta[i] = theDMBE->book1D (histoname, title, NBinsEta, -EtaMax, EtaMax);
295  //Z
296  histoname = "ZAllBarrelMap_" + layerLabel[i];
297  title = "Z Pixel Barrel Cluster Occupancy Map for " + layerLabel[i];
298  MEContainerAllBarrelZ[i] = theDMBE->book1D (histoname, title, NBinsZ, -ZMax, ZMax);
299  //Phi
300  histoname = "PhiAllBarrelMap_" + layerLabel[i];
301  title = "#phi Pixel Barrel Cluster Occupancy Map for " + layerLabel[i];
302  MEContainerAllBarrelPhi[i] = theDMBE->book1D (histoname, title, NBinsPhi, -PhiMax, PhiMax);
303  //N clusters
304  histoname = "NAllBarrelMap_" + layerLabel[i];
305  title = "#phi Pixel Barrel Cluster Occupancy Map for " + layerLabel[i];
306  MEContainerAllBarrelN[i] = theDMBE->book1D (histoname, title, NBinsN, 0, NMax);
309  //Eta-Phi
310  histoname = "EtaPhiOnTrackBarrelMap_" + layerLabel[i];
311  title = "#eta-#phi On Track Pixel Barrel Cluster Occupancy Map for " + layerLabel[i];
312  MEContainerOnTrackBarrelEtaPhi[i] = theDMBE->book2D (histoname, title, NBinsEta, -EtaMax, EtaMax, NBinsPhi, -PhiMax, PhiMax);
313  //Z-Phi
314  histoname = "ZPhiOnTrackBarrelMap_" + layerLabel[i];
315  title = "Z-#phi On Track Pixel Barrel Cluster Occupancy Map for " + layerLabel[i];
316  MEContainerOnTrackBarrelZPhi[i] = theDMBE->book2D (histoname, title, NBinsZ, -ZMax, ZMax, NBinsPhi, -PhiMax, PhiMax);
317  //Eta
318  histoname = "EtaOnTrackBarrelMap_" + layerLabel[i];
319  title = "#eta On Track Pixel Barrel Cluster Occupancy Map for " + layerLabel[i];
320  MEContainerOnTrackBarrelEta[i] = theDMBE->book1D (histoname, title, NBinsEta, -EtaMax, EtaMax);
321  //Z
322  histoname = "ZOnTrackBarrelMap_" + layerLabel[i];
323  title = "Z On Track Pixel Barrel Cluster Occupancy Map for " + layerLabel[i];
324  MEContainerOnTrackBarrelZ[i] = theDMBE->book1D (histoname, title, NBinsZ, -ZMax, ZMax);
325  //Phi
326  histoname = "PhiOnTrackBarrelMap_" + layerLabel[i];
327  title = "#phi On Track Pixel Barrel Cluster Occupancy Map for " + layerLabel[i];
328  MEContainerOnTrackBarrelPhi[i] = theDMBE->book1D (histoname, title, NBinsPhi, -PhiMax, PhiMax);
329  //N clusters
330  histoname = "NOnTrackBarrelMap_" + layerLabel[i];
331  title = "N_{Clusters} On Track Pixel Barrel Cluster Occupancy Map for " + layerLabel[i];
332  MEContainerOnTrackBarrelN[i] = theDMBE->book1D (histoname, title, NBinsN, 0, NMax);
333  }
334 
335  theDMBE->setCurrentFolder (monitorName_ + "/EndCap");
336  std::string diskLabel[5] = {"All_Disks", "InnerPosZ", "OuterPosZ", "InnerNegZ", "OuterNegZ"};
337  for (int i = 0;i < 5; ++i)
338  {
341  //XY
342  histoname = "XYAllEndcapMap_" + diskLabel[i];
343  title = "X-Y Pixel Endcap Cluster Occupancy Map for " + diskLabel[i];
344  MEContainerAllEndcapXY[i] = theDMBE->book2D (histoname, title, NBinsX, -XMax, XMax, NBinsY, -YMax, YMax);
345  //Phi
346  histoname = "PhiAllEndcapMap_" + diskLabel[i];
347  title = "#phi Pixel Endcap Cluster Occupancy Map for " + diskLabel[i];
348  MEContainerAllEndcapPhi[i] = theDMBE->book1D (histoname, title, NBinsPhi, -PhiMax, PhiMax);
349  //N clusters
350  histoname = "NAllEndcapMap_" + diskLabel[i];
351  title = "#phi Pixel Endcap Cluster Occupancy Map for " + diskLabel[i];
352  MEContainerAllEndcapN[i] = theDMBE->book1D (histoname, title, NBinsN, 0, NMax);
355  //XY
356  histoname = "XYOnTrackEndcapMap_" + diskLabel[i];
357  title = "X-Y Pixel Endcap On Track Cluster Occupancy Map for " + diskLabel[i];
358  MEContainerOnTrackEndcapXY[i] = theDMBE->book2D (histoname, title, NBinsX, -XMax, XMax, NBinsY, -YMax, YMax);
359  //Phi
360  histoname = "PhiOnTrackEndcapMap_" + diskLabel[i];
361  title = "#phi Pixel Endcap On Track Cluster Occupancy Map for " + diskLabel[i];
362  MEContainerOnTrackEndcapPhi[i] = theDMBE->book1D (histoname, title, NBinsPhi, -PhiMax, PhiMax);
363  //N clusters
364  histoname = "NOnTrackEndcapMap_" + diskLabel[i];
365  title = "#phi Pixel Endcap On Track Cluster Occupancy Map for " + diskLabel[i];
366  MEContainerOnTrackEndcapN[i] = theDMBE->book1D (histoname, title, NBinsN, 0, NMax);
367  }
368  return;
369 }
370 
371 //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:722
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
unsigned int pxfDisk(const DetId &id) const
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:2118
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:243
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
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:361
virtual void endJob()
DQMStore * theDMBE
unsigned int pxbLayer(const DetId &id) const
EventAuxiliary const & eventAuxiliary() const
Definition: Event.h:65
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
virtual void Histo_init()
float y() const
unsigned int pxfSide(const DetId &id) 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:850
T const * get() const
Returns C++ pointer to the item.
Definition: Ref.h:242
T x() const
Definition: PV3DBase.h:62
float x() const
EventNumber_t event() const
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:434
std::map< int, MonitorElement * > MEContainerOnTrackEndcapXY
Pixel Reconstructed Hit.
std::map< int, MonitorElement * > MEContainerOnTrackEndcapPhi