27 tracksCollection_in_EventTree(
true),
72 LogDebug(
"SiStripMonitorTrack") <<
"[SiStripMonitorTrack::beginRun] There are "<<
tkgeom_->detUnits().size() <<
" detectors instantiated in the geometry" << std::endl;
87 book(ibooker , tTopo);
100 LogDebug(
"SiStripMonitorTrack") <<
"[SiStripMonitorTrack::analyse] " <<
"Run " << e.
id().
run() <<
" Event " << e.
id().
event() << std::endl;
107 for (std::map<std::string, SubDetMEs>::iterator iSubDet =
SubDetMEsMap.begin();
109 iSubDet->second.totNClustersOnTrack = 0;
110 iSubDet->second.totNClustersOffTrack = 0;
121 std::map<std::string, MonitorElement*>::iterator iME;
122 std::map<std::string, LayerMEs>::iterator iLayerME;
124 for (std::map<std::string, SubDetMEs>::iterator iSubDet =
SubDetMEsMap.begin();
158 std::vector<uint32_t> vdetId_;
161 for (std::vector<uint32_t>::const_iterator detid_iter=vdetId_.begin();detid_iter!=vdetId_.end();detid_iter++){
162 uint32_t
detid = *detid_iter;
165 edm::LogError(
"SiStripMonitorTrack")<<
"[" <<__PRETTY_FUNCTION__ <<
"] invalid detid " << detid<< std::endl;
173 std::pair<std::string,int32_t> det_layer_pair = folder_organizer.
GetSubDetAndLayer(detid,tTopo,
false);
183 std::map<std::string, LayerMEs>::iterator iLayerME =
LayerMEsMap.find(layer_id);
185 folder_organizer.
setLayerFolder(detid, tTopo, det_layer_pair.second,
false);
190 if ( subdet.find(
"TEC") != std::string::npos || subdet.find(
"TID") != std::string::npos ) {
191 std::pair<std::string,int32_t> det_ring_pair = folder_organizer.
GetSubDetAndLayer(detid,tTopo,
true);
193 std::map<std::string, RingMEs>::iterator iRingME =
RingMEsMap.find(ring_id);
195 folder_organizer.
setLayerFolder(detid, tTopo, det_ring_pair.second,
true);
220 std::map<std::string, ModMEs>::iterator iModME =
ModMEsMap.find(hid);
246 theModMEs.
ClusterPos=ibooker.
book1D(hidmanager.
createHistoId(
"ClusterPosition_OnTrack",name,
id).c_str(),hidmanager.
createHistoId(
"ClusterPosition_OnTrack",name,
id).c_str(),total_nr_strips,0.5,total_nr_strips+0.5);
267 if (
id.
find(
"TEC") == std::string::npos &&
id.find(
"TID") == std::string::npos ) {
268 me =
bookME1D(ibooker , histoParameters.c_str(), histoName.c_str());
272 me =
bookME1D(ibooker , histoParameters.c_str(), histoName.c_str());
306 hname = hidmanager.
createHistoLayer(
"Summary_ClusterStoNCorr",name,layer_id,
"OnTrack");
307 hpar =
"TH1ClusterStoNCorr";
311 hname = hidmanager.
createHistoLayer(
"Summary_ClusterChargeCorr",name,layer_id,
"OnTrack");
312 hpar =
"TH1ClusterChargeCorr";
316 hname = hidmanager.
createHistoLayer(
"Summary_ClusterCharge",name,layer_id,
"OnTrack");
317 hpar =
"TH1ClusterCharge";
320 hname = hidmanager.
createHistoLayer(
"Summary_ClusterCharge",name,layer_id,
"OffTrack");
321 hpar =
"TH1ClusterCharge";
325 hname = hidmanager.
createHistoLayer(
"Summary_ClusterNoise",name,layer_id,
"OnTrack");
326 hpar =
"TH1ClusterNoise";
329 hname = hidmanager.
createHistoLayer(
"Summary_ClusterNoise",name,layer_id,
"OffTrack");
330 hpar =
"TH1ClusterNoise";
334 hname = hidmanager.
createHistoLayer(
"Summary_ClusterWidth",name,layer_id,
"OnTrack");
335 hpar =
"TH1ClusterWidth";
338 hname = hidmanager.
createHistoLayer(
"Summary_ClusterWidth",name,layer_id,
"OffTrack");
339 hpar =
"TH1ClusterWidth";
344 if (layer_id.find(
"TEC") != std::string::npos) total_nr_strips = 3 * 2 * 128;
346 hname = hidmanager.
createHistoLayer(
"Summary_ClusterPosition",name,layer_id,
"OnTrack");
349 hname = hidmanager.
createHistoLayer(
"Summary_ClusterPosition",name,layer_id,
"OffTrack");
353 hname = hidmanager.
createHistoLayer(
"Summary_ClusterChargePerCMfromTrack",name,layer_id,
"");
354 hpar =
"TH1ClusterChargePerCM";
357 hname = hidmanager.
createHistoLayer(
"Summary_ClusterChargePerCMfromOrigin",name,layer_id,
"OnTrack");
358 hpar =
"TH1ClusterChargePerCM";
361 hname = hidmanager.
createHistoLayer(
"Summary_ClusterChargePerCMfromOrigin",name,layer_id,
"OffTrack");
362 hpar =
"TH1ClusterChargePerCM";
392 hname = hidmanager.
createHistoLayer(
"Summary_ClusterStoNCorr",name,ring_id,
"OnTrack");
393 hpar =
"TH1ClusterStoNCorr";
397 hname = hidmanager.
createHistoLayer(
"Summary_ClusterChargeCorr",name,ring_id,
"OnTrack");
398 hpar =
"TH1ClusterChargeCorr";
402 hname = hidmanager.
createHistoLayer(
"Summary_ClusterCharge",name,ring_id,
"OnTrack");
403 hpar =
"TH1ClusterCharge";
406 hname = hidmanager.
createHistoLayer(
"Summary_ClusterCharge",name,ring_id,
"OffTrack");
407 hpar =
"TH1ClusterCharge";
411 hname = hidmanager.
createHistoLayer(
"Summary_ClusterNoise",name,ring_id,
"OnTrack");
412 hpar =
"TH1ClusterNoise";
415 hname = hidmanager.
createHistoLayer(
"Summary_ClusterNoise",name,ring_id,
"OffTrack");
416 hpar =
"TH1ClusterNoise";
420 hname = hidmanager.
createHistoLayer(
"Summary_ClusterWidth",name,ring_id,
"OnTrack");
421 hpar =
"TH1ClusterWidth";
424 hname = hidmanager.
createHistoLayer(
"Summary_ClusterWidth",name,ring_id,
"OffTrack");
425 hpar =
"TH1ClusterWidth";
429 hname = hidmanager.
createHistoLayer(
"Summary_ClusterChargePerCMfromTrack",name,ring_id,
"");
430 hpar =
"TH1ClusterChargePerCM";
433 hname = hidmanager.
createHistoLayer(
"Summary_ClusterChargePerCMfromOrigin",name,ring_id,
"OnTrack");
434 hpar =
"TH1ClusterChargePerCM";
437 hname = hidmanager.
createHistoLayer(
"Summary_ClusterChargePerCMfromOrigin",name,ring_id,
"OffTrack");
438 hpar =
"TH1ClusterChargePerCM";
452 subdet_tag =
"__" +
name;
472 completeName =
"Summary_TotalNumberOfClusters_OnTrack" +
subdet_tag;
473 axisName =
"Number of on-track clusters in " +
name;
479 completeName =
"Summary_TotalNumberOfClusters_OffTrack" +
subdet_tag;
480 axisName =
"Number of off-track clusters in " +
name;
486 completeName =
"Summary_ClusterStoNCorr_OnTrack" +
subdet_tag;
490 completeName =
"Summary_ClusterCharge_OnTrack" +
subdet_tag;
494 completeName =
"Summary_ClusterCharge_OffTrack" +
subdet_tag;
498 completeName =
"Summary_ClusterStoN_OffTrack" +
subdet_tag;
502 completeName =
"Summary_ClusterChargePerCMfromTrack" +
subdet_tag;
506 completeName =
"Summary_ClusterChargePerCMfromOrigin_OnTrack" +
subdet_tag;
510 completeName =
"Summary_ClusterChargePerCMfromOrigin_OffTrack" +
subdet_tag;
515 completeName =
"Trend_TotalNumberOfClusters_OnTrack" +
subdet_tag;
517 completeName =
"Trend_TotalNumberOfClusters_OffTrack" +
subdet_tag;
530 return ibooker.
book1D(HistoName,HistoName,
541 return ibooker.
book2D(HistoName,HistoName,
555 return ibooker.
book3D(HistoName,HistoName,
594 me->setAxisTitle(
"Lumisection",1);
602 const std::vector<TrajectoryMeasurement> & measurements = traj->measurements();
603 std::vector<TrajectoryMeasurement>::const_iterator traj_mes_iterator;
604 for(std::vector<TrajectoryMeasurement>::const_iterator traj_mes_iterator= measurements.begin(), traj_mes_end=measurements.end();
605 traj_mes_iterator!=traj_mes_end;traj_mes_iterator++){
613 uint32_t thedetid=ttrh->rawId();
614 if ( thedetid > 369120277-1 ) {
615 if ( (ttrh->getType()==1) )
617 if ( (ttrh->getType()==2) )
619 if ( (ttrh->getType()==0) )
624 if (!ttrh->isValid())
continue;
634 LogTrace(
"SiStripMonitorTrack")<<
"\nMatched recHit found"<< std::endl;
641 statedirection=monodet->
toLocal(gtrkdirup);
644 if(statedirection.
mag() != 0) RecHitInfo<SiStripRecHit2D>(&m,statedirection,es);
647 statedirection=stereodet->
toLocal(gtrkdirup);
650 if(statedirection.
mag() != 0) RecHitInfo<SiStripRecHit2D>(&s,statedirection,es);
653 LogTrace(
"SiStripMonitorTrack")<<
"\nProjected recHit found"<< std::endl;
662 LogTrace(
"SiStripMonitorTrack")<<
"\nProjected recHit found MONO"<< std::endl;
664 statedirection=det->
toLocal(gtrkdirup);
665 if(statedirection.
mag() != 0) RecHitInfo<SiStripRecHit2D>(&(originalhit),statedirection,es);
668 LogTrace(
"SiStripMonitorTrack")<<
"\nProjected recHit found STEREO"<< std::endl;
671 statedirection=det->
toLocal(gtrkdirup);
672 if(statedirection.
mag() != 0) RecHitInfo<SiStripRecHit2D>(&(originalhit),statedirection,es);
676 if(statedirection.
mag() != 0) RecHitInfo<SiStripRecHit2D>(hit2D,statedirection,es);
679 if(statedirection.
mag() != 0) RecHitInfo<SiStripRecHit1D>(hit1D,statedirection,es);
682 <<
" LocalMomentum: "<<statedirection
683 <<
"\nLocal x-z plane angle: "<<atan2(statedirection.
x(),statedirection.
z());
699 LogTrace(
"SiStripMonitorTrack")<<
"\nMatched recHit found"<< std::endl;
707 statedirection=monodet->
toLocal(gtrkdirup);
709 if(statedirection.
mag() != 0) RecHitInfo<SiStripRecHit2D>(&m,statedirection,es);
713 statedirection=stereodet->
toLocal(gtrkdirup);
715 if(statedirection.
mag() != 0) RecHitInfo<SiStripRecHit2D>(&s,statedirection,es);
718 LogTrace(
"SiStripMonitorTrack")<<
"\nProjected recHit found"<< std::endl;
728 LogTrace(
"SiStripMonitorTrack")<<
"\nProjected recHit found MONO"<< std::endl;
730 statedirection=det->
toLocal(gtrkdirup);
731 if(statedirection.
mag() != 0) RecHitInfo<SiStripRecHit2D>(&(originalhit),statedirection,es);
734 LogTrace(
"SiStripMonitorTrack")<<
"\nProjected recHit found STEREO"<< std::endl;
737 statedirection=det->
toLocal(gtrkdirup);
738 if(statedirection.
mag() != 0) RecHitInfo<SiStripRecHit2D>(&(originalhit),statedirection,es);
741 statedirection=localMomentum;
742 if(statedirection.
mag() != 0) RecHitInfo<SiStripRecHit2D>(hit2D,statedirection,es);
744 statedirection=localMomentum;
745 if(statedirection.
mag() != 0) RecHitInfo<SiStripRecHit1D>(hit1D,statedirection,es);
748 <<
" LocalMomentum: "<<statedirection
749 <<
"\nLocal x-z plane angle: "<<atan2(statedirection.
x(),statedirection.
z());
758 using namespace reco;
763 if( TItkAssociatorCollection.isValid()){
766 edm::LogError(
"SiStripMonitorTrack")<<
"Association not found ... try w/ track collection"<<std::endl;
774 if (!trackCollectionHandle.
isValid()){
789 numTracks = trackCollectionHandle->size();
791 for (reco::TrackCollection::const_iterator track = trackCollection.begin(), etrack = trackCollection.end();
792 track!=etrack; ++track) {
801 uint32_t thedetid=(*hit)->rawId();
802 if ( thedetid > 369120277-1 ) {
803 if ( ((*hit)->getType()==1) )
805 if ( ((*hit)->getType()==2) )
807 if ( ((*hit)->getType()==0) )
812 if (!(*hit)->isValid())
continue;
813 DetId detID = (*hit)->geographicalId();
825 hitStudy(es,projhit,matchedhit,hit2D,hit1D,localMomentum);
866 numTracks = TItkAssociatorCollection->size();
874 <<
"Track number "<< i+1 << std::endl;
893 if(!tkrecHit->isValid()){
894 LogTrace(
"SiStripMonitorTrack") <<
"\t\t Invalid Hit " << std::endl;
898 const uint32_t&
detid = tkrecHit->geographicalId().rawId();
901 <<
"\n\t\tRecHit on det "<<tkrecHit->geographicalId().rawId()
902 <<
"\n\t\tRecHit in LP "<<tkrecHit->localPosition()
903 <<
"\n\t\tRecHit in GP "<<
tkgeom_->idToDet(tkrecHit->geographicalId())->surface().toGlobal(tkrecHit->localPosition())
904 <<
"\n\t\tRecHit trackLocal vector "<<LV.
x() <<
" " << LV.
y() <<
" " << LV.
z() <<std::endl;
913 if ( tkrecHit !=
NULL ){
925 edm::LogError(
"SiStripMonitorTrack") <<
"NULL hit" << std::endl;
940 if (!siStripClusterHandle.
isValid()){
941 edm::LogError(
"SiStripMonitorTrack")<<
"ClusterCollection is not valid!!" << std::endl;
948 DSViter!=siStripClusterHandle->end();
951 uint32_t
detid=DSViter->id();
954 LogDebug(
"SiStripMonitorTrack") <<
"on detid "<< detid <<
" N Cluster= " << DSViter->size();
984 std::map<std::string, LayerMEs>::iterator iLayer =
LayerMEsMap.find(layer_id);
986 me.
iLayer = &(iLayer->second);
989 std::map<std::string, RingMEs>::iterator iRing =
RingMEsMap.find(ring_id);
991 me.
iRing = &(iRing->second);
994 std::map<std::string, SubDetMEs>::iterator iSubdet =
SubDetMEsMap.find(sdet_tag);
996 me.
iSubdet = &(iSubdet->second);
1006 if (cluster==
NULL)
return false;
1021 LogDebug(
"SiStripMonitorTrack")<<
"\n\tLV " << LV.
x() <<
" " << LV.
y() <<
" " << LV.
z() <<
" " << LV.
mag() << std::endl;
1023 cosRZ= fabs(LV.
z())/LV.
mag();
1024 LogDebug(
"SiStripMonitorTrack")<<
"\n\t cosRZ " << cosRZ << std::endl;
1029 fillMEs(cluster,detid,cosRZ,flag,LV,MEs);
1033 uint32_t adet=cluster->
detId();
1039 LogDebug(
"SiStripMonitorTrack") <<
"Module " << detid <<
" in Event " <<
eventNb <<
" noise " << noise << std::endl;
1043 if(cluster->
charge() > 250){
1044 LogDebug(
"SiStripMonitorTrack") <<
"Module firing " << detid <<
" in Event " <<
eventNb << std::endl;
1063 std::map<std::string, ModMEs>::iterator iModME =
ModMEsMap.find(name);
1081 if(noise > 0.0)
fillME(iModME->second.ClusterStoNCorr ,StoN*cos);
1082 if(noise == 0.0)
LogDebug(
"SiStripMonitorTrack") <<
"Module " << name <<
" in Event " <<
eventNb <<
" noise " << noise << std::endl;
1083 fillME(iModME->second.ClusterCharge,charge);
1085 fillME(iModME->second.ClusterChargeCorr,charge*cos);
1087 fillME(iModME->second.ClusterWidth ,width);
1088 fillME(iModME->second.ClusterPos ,position);
1090 fillME(iModME->second.ClusterChargePerCMfromTrack, dQdx_fromTrack);
1091 fillME(iModME->second.ClusterChargePerCMfromOrigin, dQdx_fromOrigin);
1095 int PGVposCounter = cluster->
maxIndex();
1097 fillME(iModME->second.ClusterPGV,
i,0.);
1099 fillME(iModME->second.ClusterPGV, PGVposCounter++,(*it)/PGVmax);
1102 fillME(iModME->second.ClusterPGV,
i,0.);
1127 uint32_t adet=cluster->
detId();
1131 uint32_t adet=cluster->
detId();
1136 if (MEs.
iLayer !=
nullptr) {
1157 if (MEs.
iRing !=
nullptr) {
MonitorElement * ClusterStoNCorr
uint8_t maxCharge() const
MonitorElement * ClusterNoiseOnTrack
T getParameter(std::string const &) const
EventNumber_t event() const
struct SubDetMEs * iSubdet
Det2MEs findMEs(const TrackerTopology *tTopo, const uint32_t detid)
MonitorElement * ClusterChargePerCMfromTrack
void fillMEs(SiStripClusterInfo *, const uint32_t detid, float, enum ClusterFlags, const LocalVector LV, const Det2MEs &MEs)
boost::transform_iterator< IterHelp, const_IdIter > const_iterator
TkHistoMap * tkhisto_NumOffTrack
SiStripMonitorTrack(const edm::ParameterSet &)
void setSiStripFolderName(std::string name)
virtual void analyze(const edm::Event &, const edm::EventSetup &)
void trackStudy(const edm::Event &ev, const edm::EventSetup &es)
void trackStudyFromTrack(edm::Handle< reco::TrackCollection > trackCollectionHandle, const edm::EventSetup &es)
edm::EDGetTokenT< reco::TrackCollection > trackToken_
void trackStudyFromTrajectory(edm::Handle< TrajTrackAssociationCollection > TItkAssociatorCollection, const edm::EventSetup &es)
const GeomDetUnit * monoDet() const
void fillME(MonitorElement *ME, float value1)
std::pair< const std::string, const char * > getSubDetFolderAndTag(const uint32_t &detid, const TrackerTopology *tTopo)
SiStripDCSStatus * dcsStatus_
friend struct const_iterator
MonitorElement * nClustersTrendOnTrack
MonitorElement * bookProfile(Args &&...args)
MonitorElement * ClusterPosOffTrack
void hitStudy(const edm::EventSetup &es, const ProjectedSiStripRecHit2D *projhit, const SiStripMatchedRecHit2D *matchedhit, const SiStripRecHit2D *hit2D, const SiStripRecHit1D *hit1D, LocalVector localMomentum)
bool getByToken(EDGetToken token, Handle< PROD > &result) const
float noiseRescaledByGain() const
void book(DQMStore::IBooker &, const TrackerTopology *tTopo)
MonitorElement * ClusterStoNCorrOnTrack
void AllClusters(const edm::Event &ev, const edm::EventSetup &es)
MonitorElement * ClusterStoNOffTrack
MonitorElement * ClusterChargeOnTrack
std::map< std::string, RingMEs > RingMEsMap
GlobalPoint toGlobal(const Local2DPoint &lp) const
Conversion to the global R.F. from the R.F. of the GeomDet.
std::string topFolderName_
Global3DPoint GlobalPoint
std::vector< Track > TrackCollection
collection of Tracks
LocalPoint toLocal(const GlobalPoint &gp) const
Conversion to the R.F. of the GeomDet.
std::pair< std::string, int32_t > GetSubDetAndLayer(const uint32_t &detid, const TrackerTopology *tTopo, bool ring_flag=0)
MonitorElement * bookME1D(DQMStore::IBooker &, const char *, const char *)
MonitorElement * ClusterChargePerCMfromTrack
MonitorElement * ClusterChargeCorrOnTrack
Provides a code based selection for trigger and DCS information in order to have no failing filters i...
data_type const * const_iterator
std::string TrackProducer_
key_type key() const
Accessor for product key.
edm::ESHandle< SiStripDetCabling > SiStripDetCabling_
void bookLayerMEs(DQMStore::IBooker &, const uint32_t, std::string &)
MonitorElement * ClusterChargeCorr
uint16_t maxIndex() const
void trajectoryStudy(const edm::Ref< std::vector< Trajectory > > traj, const edm::EventSetup &es)
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
MonitorElement * ClusterChargeOffTrack
MonitorElement * ClusterStoNCorrOnTrack
static bool pixelBarrelHitFilter(uint16_t pattern)
MonitorElement * ClusterChargePerCMfromOriginOffTrack
auto stripCharges() const -> decltype(cluster() ->amplitudes())
MonitorElement * ClusterPGV
MonitorElement * nClustersTrendOffTrack
void setDetectorFolder(uint32_t rawdetid, const TrackerTopology *tTopo)
static bool validHitFilter(uint16_t pattern)
uint32_t rawId() const
get the raw id
LocalVector localMomentum() const
edm::ESHandle< TrackerGeometry > tkgeom_
MonitorElement * ClusterCharge
bool getStatus(edm::Event const &e, edm::EventSetup const &eSetup)
edmNew::DetSet< SiStripCluster >::const_iterator ClusIter
math::XYZTLorentzVectorD LV
float signalOverNoise() const
vector< ParameterSet > Parameters
edm::EventNumber_t eventNb
uint16_t hitPattern[ARRAY_LENGTH]
TrackingRecHit::ConstRecHitPointer ConstRecHitPointer
std::unordered_set< const SiStripCluster * > vPSiStripCluster
std::map< std::string, SubDetMEs > SubDetMEsMap
MonitorElement * ClusterChargeOffTrack
MonitorElement * nClustersOnTrack
ConsumesCollector consumesCollector()
Use a ConsumesCollector to gather consumes information from helper functions.
void fill(uint32_t &detid, float value)
bool accept(const edm::Event &event, const edm::EventSetup &setup)
To be called from analyze/filter() methods.
const std::string subdet_tag("SubDet")
Cos< T >::type cos(const T &t)
MonitorElement * ClusterStoNCorrOnTrack
MonitorElement * bookME2D(DQMStore::IBooker &, const char *, const char *)
MonitorElement * ClusterNoiseOffTrack
MonitorElement * book1D(Args &&...args)
void tag(MonitorElement *, unsigned int)
MonitorElement * ClusterWidthOnTrack
void bookSubDetMEs(DQMStore::IBooker &, std::string &name)
MonitorElement * bookME3D(DQMStore::IBooker &, const char *, const char *)
MonitorElement * ClusterChargePerCMfromOrigin
MonitorElement * ClusterChargePerCMfromOriginOffTrack
SiStripFolderOrganizer folderOrganizer_
std::string getSubdetid(uint32_t id, const TrackerTopology *tTopo, bool flag_ring)
MonitorElement * ClusterChargePerCMfromTrack
MonitorElement * ClusterChargeOnTrack
MonitorElement * ClusterNoiseOffTrack
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
SiStripRecHit2D originalHit() const
edm::EDGetTokenT< TrajTrackAssociationCollection > trackTrajToken_
void bookModMEs(DQMStore::IBooker &, const uint32_t)
MonitorElement * ClusterWidth
MonitorElement * ClusterChargeOnTrack
TkHistoMap * tkhisto_NumberInactiveHits
void setLayerFolder(uint32_t rawdetid, const TrackerTopology *tTopo, int32_t layer=0, bool ring_flag=0)
void setCurrentFolder(const std::string &fullpath)
TkHistoMap * tkhisto_ClChPerCMfromOrigin
SiStripRecHit2D stereoHit() const
MonitorElement * book2D(Args &&...args)
MonitorElement * ClusterWidthOffTrack
std::string createHistoId(std::string description, std::string id_type, uint32_t component_id)
MonitorElement * ClusterPosOnTrack
MonitorElement * ClusterChargePerCMfromTrack
T const * product() const
void dqmBeginRun(const edm::Run &run, const edm::EventSetup &es)
MonitorElement * ClusterChargeOffTrack
std::map< std::string, ModMEs > ModMEsMap
MonitorElement * bookMETrend(DQMStore::IBooker &, const char *)
MonitorElement * ClusterPos
TkHistoMap * tkhisto_ClChPerCMfromTrack
MonitorElement * ClusterChargeCorrOnTrack
TkHistoMap * tkhisto_NumOnTrack
SiStripRecHit2D monoHit() const
GenericTriggerEventFlag * genTriggerEventFlag_
void RecHitInfo(const T *tkrecHit, LocalVector LV, const edm::EventSetup &)
MonitorElement * ClusterChargePerCMfromOriginOnTrack
MonitorElement * handleBookMEs(DQMStore::IBooker &, std::string &, std::string &, std::string &, std::string &)
static int position[264][3]
MonitorElement * ClusterWidthOnTrack
MonitorElement * bookMEProfile(DQMStore::IBooker &, const char *, const char *)
TkHistoMap * tkhisto_StoNCorrOnTrack
DetId geographicalId() const
bool clchCMoriginTkHmap_On_
void initRun(const edm::Run &run, const edm::EventSetup &setup)
To be called from beginRun() methods.
MonitorElement * ClusterChargePerCMfromOriginOnTrack
bool clusterInfos(SiStripClusterInfo *cluster, const uint32_t detid, enum ClusterFlags flags, LocalVector LV, const Det2MEs &MEs)
std::string createHistoLayer(std::string description, std::string id_type, std::string path, std::string flag)
uint16_t getHitPattern(HitCategory category, int position) const
void fillModMEs(SiStripClusterInfo *cluster, std::string name, float cos, const uint32_t detid, const LocalVector LV)
Detector det() const
get the detector field from this detid
MonitorElement * book3D(Args &&...args)
MonitorElement * ClusterWidthOffTrack
void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
MonitorElement * nClustersOffTrack
void bookRingMEs(DQMStore::IBooker &, const uint32_t, std::string &)
MonitorElement * ClusterChargePerCMfromOriginOnTrack
TkHistoMap * tkhisto_NumMissingHits
void add(uint32_t &detid, float value)
TkHistoMap * tkhisto_NumberValidHits
bool applyClusterQuality_
edm::InputTag Cluster_src_
const GeomDetUnit * stereoDet() const
TrackingRecHitCollection::base::const_iterator trackingRecHit_iterator
iterator over a vector of reference to TrackingRecHit in the same collection
int numberOfHits(HitCategory category) const
edm::EDGetTokenT< edmNew::DetSetVector< SiStripCluster > > clusterToken_
std::map< std::string, LayerMEs > LayerMEsMap
MonitorElement * ClusterChargePerCMfromOriginOffTrack
MonitorElement * ClusterNoiseOnTrack