CMS 3D CMS Logo

List of all members | Classes | Public Types | Public Member Functions | Private Types | Private Member Functions | Private Attributes
SiStripMonitorTrack Class Reference

#include <SiStripMonitorTrack.h>

Inheritance diagram for SiStripMonitorTrack:
DQMEDAnalyzer edm::stream::EDAnalyzer< edm::RunSummaryCache< dqmDetails::NoCache >, edm::LuminosityBlockSummaryCache< dqmDetails::NoCache > > edm::stream::EDAnalyzerBase edm::EDConsumerBase

Classes

struct  Det2MEs
 
struct  LayerMEs
 
struct  ModMEs
 
struct  RingMEs
 
struct  SubDetMEs
 

Public Types

typedef TrackingRecHit::ConstRecHitPointer ConstRecHitPointer
 
enum  RecHitType { Single =0, Matched =1, Projected =2, Null =3 }
 
- Public Types inherited from edm::stream::EDAnalyzer< edm::RunSummaryCache< dqmDetails::NoCache >, edm::LuminosityBlockSummaryCache< dqmDetails::NoCache > >
typedef CacheContexts< T... > CacheTypes
 
typedef CacheTypes::GlobalCache GlobalCache
 
typedef AbilityChecker< T... > HasAbility
 
typedef CacheTypes::LuminosityBlockCache LuminosityBlockCache
 
typedef LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCacheLuminosityBlockContext
 
typedef CacheTypes::LuminosityBlockSummaryCache LuminosityBlockSummaryCache
 
typedef CacheTypes::RunCache RunCache
 
typedef RunContextT< RunCache, GlobalCacheRunContext
 
typedef CacheTypes::RunSummaryCache RunSummaryCache
 
- Public Types inherited from edm::stream::EDAnalyzerBase
typedef EDAnalyzerAdaptorBase ModuleType
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 

Public Member Functions

virtual void analyze (const edm::Event &, const edm::EventSetup &) override
 
void bookHistograms (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
 
void dqmBeginRun (const edm::Run &run, const edm::EventSetup &es) override
 
 SiStripMonitorTrack (const edm::ParameterSet &)
 
 ~SiStripMonitorTrack ()
 
- Public Member Functions inherited from DQMEDAnalyzer
virtual void beginRun (edm::Run const &, edm::EventSetup const &) final
 
virtual void beginStream (edm::StreamID id) final
 
virtual void dqmBeginRun (edm::Run const &, edm::EventSetup const &)
 
 DQMEDAnalyzer (void)
 
virtual void endLuminosityBlockSummary (edm::LuminosityBlock const &, edm::EventSetup const &, dqmDetails::NoCache *) const final
 
virtual void endRunSummary (edm::Run const &, edm::EventSetup const &, dqmDetails::NoCache *) const final
 
uint32_t streamId () const
 
- Public Member Functions inherited from edm::stream::EDAnalyzer< edm::RunSummaryCache< dqmDetails::NoCache >, edm::LuminosityBlockSummaryCache< dqmDetails::NoCache > >
 EDAnalyzer ()=default
 
- Public Member Functions inherited from edm::stream::EDAnalyzerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
 EDAnalyzerBase ()
 
ModuleDescription const & moduleDescription () const
 
virtual ~EDAnalyzerBase ()
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
void convertCurrentProcessAlias (std::string const &processName)
 Convert "@currentProcess" in InputTag process names to the actual current process name. More...
 
 EDConsumerBase ()
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
 EDConsumerBase (EDConsumerBase &&)=default
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector< ProductResolverIndexAndSkipBit > const & itemsToGetFrom (BranchType iType) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
virtual ~EDConsumerBase () noexcept(false)
 

Private Types

enum  ClusterFlags { OffTrack, OnTrack }
 

Private Member Functions

void AllClusters (const edm::Event &ev, const edm::EventSetup &es)
 
void book (DQMStore::IBooker &, const TrackerTopology *tTopo)
 
void bookLayerMEs (DQMStore::IBooker &, const uint32_t, std::string &)
 
MonitorElementbookME1D (DQMStore::IBooker &, const char *, const char *)
 
MonitorElementbookME2D (DQMStore::IBooker &, const char *, const char *)
 
MonitorElementbookME3D (DQMStore::IBooker &, const char *, const char *)
 
MonitorElementbookMEProfile (DQMStore::IBooker &, const char *, const char *)
 
MonitorElementbookMETrend (DQMStore::IBooker &, const char *)
 
void bookModMEs (DQMStore::IBooker &, const uint32_t)
 
void bookRing (DQMStore::IBooker &, const uint32_t, std::string &)
 
void bookRingMEs (DQMStore::IBooker &, const uint32_t, std::string &)
 
void bookSubDetMEs (DQMStore::IBooker &, std::string &name)
 
bool clusterInfos (SiStripClusterInfo *cluster, const uint32_t detid, enum ClusterFlags flags, bool track_ok, LocalVector LV, const Det2MEs &MEs, const TrackerTopology *tTopo, const SiStripGain *stripGain, const SiStripQuality *stripQuality, const edm::DetSetVector< SiStripDigi > &digilist)
 
bool fillControlViewHistos (const edm::Event &ev, const edm::EventSetup &es)
 
void fillME (MonitorElement *ME, float value1)
 
void fillME (MonitorElement *ME, float value1, float value2)
 
void fillME (MonitorElement *ME, float value1, float value2, float value3)
 
void fillME (MonitorElement *ME, float value1, float value2, float value3, float value4)
 
Det2MEs findMEs (const TrackerTopology *tTopo, const uint32_t detid)
 
MonitorElementhandleBookMEs (DQMStore::IBooker &, std::string &, std::string &, std::string &, std::string &)
 
void hitStudy (const edm::Event &ev, const edm::EventSetup &es, const edm::DetSetVector< SiStripDigi > &digilist, const ProjectedSiStripRecHit2D *projhit, const SiStripMatchedRecHit2D *matchedhit, const SiStripRecHit2D *hit2D, const SiStripRecHit1D *hit1D, LocalVector localMomentum, const bool track_ok)
 
template<class T >
void RecHitInfo (const T *tkrecHit, LocalVector LV, const edm::DetSetVector< SiStripDigi > &digilist, const edm::Event &ev, const edm::EventSetup &es, bool ok)
 
void return2DME (MonitorElement *input, int binx, int biny, double value)
 
bool trackFilter (const reco::Track &track)
 
void trackStudy (const edm::Event &ev, const edm::EventSetup &es)
 
void trackStudyFromTrack (edm::Handle< reco::TrackCollection > trackCollectionHandle, const edm::DetSetVector< SiStripDigi > &digilist, const edm::Event &ev, const edm::EventSetup &es)
 
void trackStudyFromTrajectory (edm::Handle< reco::TrackCollection > trackCollectionHandle, const edm::DetSetVector< SiStripDigi > &digilist, const edm::Event &ev, const edm::EventSetup &es)
 
void trajectoryStudy (const reco::Track &track, const edm::DetSetVector< SiStripDigi > &digilist, const edm::Event &ev, const edm::EventSetup &es, bool track_ok)
 

Private Attributes

bool applyClusterQuality_
 
bool clchCMoriginTkHmap_On_
 
edm::InputTag Cluster_src_
 
MonitorElementClusterStoNCorr_OnTrack_FECCratevsFECSlot = 0
 
MonitorElementClusterStoNCorr_OnTrack_FECSlotVsFECRing_TECM = 0
 
MonitorElementClusterStoNCorr_OnTrack_FECSlotVsFECRing_TECP = 0
 
MonitorElementClusterStoNCorr_OnTrack_FECSlotVsFECRing_TIBTID = 0
 
MonitorElementClusterStoNCorr_OnTrack_FECSlotVsFECRing_TOB = 0
 
MonitorElementClusterStoNCorr_OnTrack_TECM = 0
 
MonitorElementClusterStoNCorr_OnTrack_TECP = 0
 
MonitorElementClusterStoNCorr_OnTrack_TIBTID = 0
 
MonitorElementClusterStoNCorr_OnTrack_TOB = 0
 
edm::EDGetTokenT< edmNew::DetSetVector< SiStripCluster > > clusterToken_
 
edm::ParameterSet conf_
 
SiStripDCSStatusdcsStatus_
 
edm::EDGetTokenT< edm::DetSetVector< SiStripDigi > > digiToken_
 
edm::EventNumber_t eventNb
 
int firstEvent
 
SiStripFolderOrganizer folderOrganizer_
 
GenericTriggerEventFlaggenTriggerEventFlag_
 
std::string histname
 
bool HistoFlag_On_
 
float iLumisection
 
float iOrbitSec
 
std::map< std::string, LayerMEsLayerMEsMap
 
LocalVector LV
 
bool Mod_On_
 
std::map< std::string, ModMEsModMEsMap
 
int numTracks
 
bool OffHisto_On_
 
edm::ParameterSet Parameters
 
bool ring_flag
 
std::map< std::string, RingMEsRingMEsMap
 
edm::ESHandle< SiStripDetCablingSiStripDetCabling_
 
double sToNLowerLimit_
 
double sToNUpperLimit_
 
std::map< std::string, SubDetMEsSubDetMEsMap
 
edm::ESHandle< TrackerGeometrytkgeom_
 
TkHistoMaptkhisto_ClChPerCMfromOrigin
 
TkHistoMaptkhisto_ClChPerCMfromTrack
 
TkHistoMaptkhisto_NumberInactiveHits
 
TkHistoMaptkhisto_NumberValidHits
 
TkHistoMaptkhisto_NumMissingHits
 
TkHistoMaptkhisto_NumOffTrack
 
TkHistoMaptkhisto_NumOnTrack
 
TkHistoMaptkhisto_StoNCorrOnTrack
 
bool TkHistoMap_On_
 
std::string topFolderName_
 
bool trackAssociatorCollection_in_EventTree
 
std::string TrackLabel_
 
std::string TrackProducer_
 
bool tracksCollection_in_EventTree
 
edm::EDGetTokenT< reco::TrackCollectiontrackToken_
 
bool Trend_On_
 
std::unordered_set< const SiStripCluster * > vPSiStripCluster
 
double widthLowerLimit_
 
double widthUpperLimit_
 

Additional Inherited Members

- Static Public Member Functions inherited from DQMEDAnalyzer
static std::shared_ptr< dqmDetails::NoCacheglobalBeginLuminosityBlockSummary (edm::LuminosityBlock const &, edm::EventSetup const &, LuminosityBlockContext const *)
 
static std::shared_ptr< dqmDetails::NoCacheglobalBeginRunSummary (edm::Run const &, edm::EventSetup const &, RunContext const *)
 
static void globalEndLuminosityBlockSummary (edm::LuminosityBlock const &, edm::EventSetup const &, LuminosityBlockContext const *, dqmDetails::NoCache *)
 
static void globalEndRunSummary (edm::Run const &, edm::EventSetup const &, RunContext const *, dqmDetails::NoCache *)
 
- Static Public Member Functions inherited from edm::stream::EDAnalyzerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 

Detailed Description

Definition at line 61 of file SiStripMonitorTrack.h.

Member Typedef Documentation

Definition at line 63 of file SiStripMonitorTrack.h.

Member Enumeration Documentation

Enumerator
OffTrack 
OnTrack 

Definition at line 72 of file SiStripMonitorTrack.h.

Constructor & Destructor Documentation

SiStripMonitorTrack::SiStripMonitorTrack ( const edm::ParameterSet conf)
explicit

Definition at line 27 of file SiStripMonitorTrack.cc.

References applyClusterQuality_, clchCMoriginTkHmap_On_, Cluster_src_, clusterToken_, conf_, edm::EDConsumerBase::consumesCollector(), dcsStatus_, digiToken_, edm::ParameterSet::getParameter(), Mod_On_, sToNLowerLimit_, sToNUpperLimit_, AlCaHLTBitMon_QueryRunRegistry::string, TkHistoMap_On_, topFolderName_, TrackLabel_, TrackProducer_, trackToken_, Trend_On_, widthLowerLimit_, and widthUpperLimit_.

27  :
28  conf_(conf),
30  firstEvent(-1),
32 {
33  Cluster_src_ = conf.getParameter<edm::InputTag>("Cluster_src");
34  Mod_On_ = conf.getParameter<bool>("Mod_On");
35  Trend_On_ = conf.getParameter<bool>("Trend_On");
36  TkHistoMap_On_ = conf.getParameter<bool>("TkHistoMap_On");
37  clchCMoriginTkHmap_On_ = conf.getParameter<bool>("clchCMoriginTkHmap_On");
38 
39  TrackProducer_ = conf_.getParameter<std::string>("TrackProducer");
40  TrackLabel_ = conf_.getParameter<std::string>("TrackLabel");
41 
42  topFolderName_ = conf_.getParameter<std::string>("TopFolderName");
43 
44  digiToken_ = consumes<edm::DetSetVector<SiStripDigi>> ( conf.getParameter<edm::InputTag>("ADCDigi_src") );
45  clusterToken_ = consumes<edmNew::DetSetVector<SiStripCluster> >(Cluster_src_);
46  trackToken_ = consumes<reco::TrackCollection>(edm::InputTag(TrackProducer_,TrackLabel_) );
47 
48  // cluster quality conditions
49  edm::ParameterSet cluster_condition = conf_.getParameter<edm::ParameterSet>("ClusterConditions");
50  applyClusterQuality_ = cluster_condition.getParameter<bool>("On");
51  sToNLowerLimit_ = cluster_condition.getParameter<double>("minStoN");
52  sToNUpperLimit_ = cluster_condition.getParameter<double>("maxStoN");
53  widthLowerLimit_ = cluster_condition.getParameter<double>("minWidth");
54  widthUpperLimit_ = cluster_condition.getParameter<double>("maxWidth");
55 
56 
57  // Create DCS Status
58  bool checkDCS = conf_.getParameter<bool>("UseDCSFiltering");
59  if (checkDCS) dcsStatus_ = new SiStripDCSStatus(consumesCollector());
60  else dcsStatus_ = 0;
61 }
T getParameter(std::string const &) const
edm::EDGetTokenT< reco::TrackCollection > trackToken_
SiStripDCSStatus * dcsStatus_
edm::ParameterSet conf_
Provides a code based selection for trigger and DCS information in order to have no failing filters i...
ConsumesCollector consumesCollector()
Use a ConsumesCollector to gather consumes information from helper functions.
edm::EDGetTokenT< edm::DetSetVector< SiStripDigi > > digiToken_
GenericTriggerEventFlag * genTriggerEventFlag_
edm::EDGetTokenT< edmNew::DetSetVector< SiStripCluster > > clusterToken_
SiStripMonitorTrack::~SiStripMonitorTrack ( )

Definition at line 64 of file SiStripMonitorTrack.cc.

References dcsStatus_, and genTriggerEventFlag_.

64  {
65  if (dcsStatus_) delete dcsStatus_;
67 }
SiStripDCSStatus * dcsStatus_
GenericTriggerEventFlag * genTriggerEventFlag_

Member Function Documentation

void SiStripMonitorTrack::AllClusters ( const edm::Event ev,
const edm::EventSetup es 
)
private

Definition at line 1119 of file SiStripMonitorTrack.cc.

References clusterInfos(), clusterToken_, digiToken_, findMEs(), edm::EventSetup::get(), edm::Event::getByToken(), edm::HandleBase::isValid(), LogDebug, OffTrack, edm::Handle< T >::product(), edm::ESHandle< T >::product(), and vPSiStripCluster.

Referenced by analyze().

1120 {
1121 
1122  //Retrieve tracker topology from geometry
1123  edm::ESHandle<TrackerTopology> tTopoHandle;
1124  es.get<TrackerTopologyRcd>().get(tTopoHandle);
1125  const TrackerTopology* const tTopo = tTopoHandle.product();
1126 
1127  edm::ESHandle<SiStripGain> gainHandle;
1128  es.get<SiStripGainRcd>().get( gainHandle );
1129  const SiStripGain* stripGain = gainHandle.product();
1130 
1131  edm::ESHandle<SiStripQuality> qualityHandle;
1132  es.get<SiStripQualityRcd>().get("",qualityHandle);
1133  const SiStripQuality* stripQuality = qualityHandle.product();
1134 
1136  ev.getByToken( digiToken_, digihandle );
1138  auto& digilist = digihandle.isValid()? *(digihandle.product()) : dummy;
1139 
1141  ev.getByToken( clusterToken_, siStripClusterHandle);
1142  if (siStripClusterHandle.isValid()){
1143  //Loop on Dets
1144  for (edmNew::DetSetVector<SiStripCluster>::const_iterator DSViter=siStripClusterHandle->begin(), DSVEnd=siStripClusterHandle->end();
1145  DSViter!=DSVEnd; ++DSViter) {
1146 
1147  uint32_t detid=DSViter->id();
1148  const Det2MEs MEs = findMEs(tTopo, detid);
1149 
1150  LogDebug("SiStripMonitorTrack") << "on detid "<< detid << " N Cluster= " << DSViter->size();
1151 
1152  //Loop on Clusters
1153  for(edmNew::DetSet<SiStripCluster>::const_iterator ClusIter = DSViter->begin(), ClusEnd = DSViter->end();
1154  ClusIter!=ClusEnd; ++ClusIter) {
1155 
1156  if (vPSiStripCluster.find(&*ClusIter) == vPSiStripCluster.end()) {
1157  SiStripClusterInfo SiStripClusterInfo_(*ClusIter,es,detid);
1158  // clusterInfos(&SiStripClusterInfo_,detid,OffTrack, /*track_ok*/ false,LV,MEs, tTopo,stripGain,stripQuality,*digihandle);
1159  clusterInfos(&SiStripClusterInfo_,detid,OffTrack, /*track_ok*/ false,LV,MEs, tTopo,stripGain,stripQuality,digilist);
1160  }
1161  }
1162  }
1163  } else {
1164  edm::LogError("SiStripMonitorTrack")<< "ClusterCollection is not valid!!" << std::endl;
1165  return;
1166  }
1167 }
#define LogDebug(id)
Det2MEs findMEs(const TrackerTopology *tTopo, const uint32_t detid)
boost::transform_iterator< IterHelp, const_IdIter > const_iterator
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:460
math::XYZTLorentzVectorD LV
data_type const * const_iterator
Definition: DetSetNew.h:30
bool clusterInfos(SiStripClusterInfo *cluster, const uint32_t detid, enum ClusterFlags flags, bool track_ok, LocalVector LV, const Det2MEs &MEs, const TrackerTopology *tTopo, const SiStripGain *stripGain, const SiStripQuality *stripQuality, const edm::DetSetVector< SiStripDigi > &digilist)
edmNew::DetSet< SiStripCluster >::const_iterator ClusIter
std::unordered_set< const SiStripCluster * > vPSiStripCluster
bool isValid() const
Definition: HandleBase.h:74
edm::EDGetTokenT< edm::DetSetVector< SiStripDigi > > digiToken_
T const * product() const
Definition: Handle.h:81
const T & get() const
Definition: EventSetup.h:55
T const * product() const
Definition: ESHandle.h:86
edm::EDGetTokenT< edmNew::DetSetVector< SiStripCluster > > clusterToken_
void SiStripMonitorTrack::analyze ( const edm::Event e,
const edm::EventSetup es 
)
overridevirtual

Definition at line 93 of file SiStripMonitorTrack.cc.

References GenericTriggerEventFlag::accept(), AllClusters(), dcsStatus_, edm::EventID::event(), eventNb, fillControlViewHistos(), fillME(), genTriggerEventFlag_, SiStripDCSStatus::getStatus(), edm::EventBase::id(), iLumisection, LogDebug, SiStripMonitorTrack::SubDetMEs::nClustersOffTrack, SiStripMonitorTrack::SubDetMEs::nClustersOnTrack, SiStripMonitorTrack::SubDetMEs::nClustersTrendOffTrack, SiStripMonitorTrack::SubDetMEs::nClustersTrendOnTrack, GenericTriggerEventFlag::on(), edm::EventBase::orbitNumber(), edm::EventID::run(), SubDetMEsMap, SiStripMonitorTrack::SubDetMEs::totNClustersOffTrack, SiStripMonitorTrack::SubDetMEs::totNClustersOnTrack, trackStudy(), Trend_On_, and vPSiStripCluster.

94 {
95  // Filter out events if DCS checking is requested
96  if (dcsStatus_ && !dcsStatus_->getStatus(e,es)) return;
97 
98  // Filter out events if Trigger Filtering is requested
99  if (genTriggerEventFlag_->on()&& ! genTriggerEventFlag_->accept( e, es) ) return;
100 
101  //initialization of global quantities
102  LogDebug("SiStripMonitorTrack") << "[SiStripMonitorTrack::analyse] " << "Run " << e.id().run() << " Event " << e.id().event() << std::endl;
103  eventNb = e.id().event();
104  vPSiStripCluster.clear();
105 
106  iLumisection = e.orbitNumber()/262144.0;
107 
108  // initialise # of clusters
109  for (std::map<std::string, SubDetMEs>::iterator iSubDet = SubDetMEsMap.begin();
110  iSubDet != SubDetMEsMap.end(); iSubDet++) {
111  iSubDet->second.totNClustersOnTrack = 0;
112  iSubDet->second.totNClustersOffTrack = 0;
113  }
114 
115  //Perform track study
116  trackStudy(e, es);
117 
118  //Perform Cluster Study (irrespectively to tracks)
119 
120  AllClusters(e, es); //analyzes the off Track Clusters
121 
122  //Summary Counts of clusters
123  std::map<std::string, MonitorElement*>::iterator iME;
124  std::map<std::string, LayerMEs>::iterator iLayerME;
125 
126  fillControlViewHistos(e,es);
127 
128  if (Trend_On_) {
129  // for (std::map<std::string, SubDetMEs>::iterator iSubDet = SubDetMEsMap.begin(), iterEnd=SubDetMEsMaps.end();
130  // iSubDet != iterEnd; ++iSubDet) {
131  for (auto const &iSubDet : SubDetMEsMap) {
132  SubDetMEs subdet_mes = iSubDet.second;
133  if (subdet_mes.totNClustersOnTrack > 0) {
134  fillME(subdet_mes.nClustersOnTrack, subdet_mes.totNClustersOnTrack);
135  }
136  fillME(subdet_mes.nClustersOffTrack, subdet_mes.totNClustersOffTrack);
137  fillME(subdet_mes.nClustersTrendOnTrack,iLumisection,subdet_mes.totNClustersOnTrack);
138  fillME(subdet_mes.nClustersTrendOffTrack,iLumisection,subdet_mes.totNClustersOffTrack);
139  }
140  } else {
141  for (auto const &iSubDet : SubDetMEsMap) {
142  SubDetMEs subdet_mes = iSubDet.second;
143  if (subdet_mes.totNClustersOnTrack > 0) {
144  fillME(subdet_mes.nClustersOnTrack, subdet_mes.totNClustersOnTrack);
145  }
146  fillME(subdet_mes.nClustersOffTrack, subdet_mes.totNClustersOffTrack);
147  }
148  }
149 }
#define LogDebug(id)
RunNumber_t run() const
Definition: EventID.h:39
EventNumber_t event() const
Definition: EventID.h:41
void trackStudy(const edm::Event &ev, const edm::EventSetup &es)
void fillME(MonitorElement *ME, float value1)
SiStripDCSStatus * dcsStatus_
void AllClusters(const edm::Event &ev, const edm::EventSetup &es)
bool getStatus(edm::Event const &e, edm::EventSetup const &eSetup)
edm::EventNumber_t eventNb
std::unordered_set< const SiStripCluster * > vPSiStripCluster
std::map< std::string, SubDetMEs > SubDetMEsMap
bool accept(const edm::Event &event, const edm::EventSetup &setup)
To be called from analyze/filter() methods.
int orbitNumber() const
Definition: EventBase.h:67
GenericTriggerEventFlag * genTriggerEventFlag_
edm::EventID id() const
Definition: EventBase.h:60
bool fillControlViewHistos(const edm::Event &ev, const edm::EventSetup &es)
void SiStripMonitorTrack::book ( DQMStore::IBooker ibooker,
const TrackerTopology tTopo 
)
private

Definition at line 152 of file SiStripMonitorTrack.cc.

References SiStripDetCabling::addActiveDetectorsRawIds(), DQMStore::IBooker::book1D(), DQMStore::IBooker::book2D(), bookLayerMEs(), bookModMEs(), bookRingMEs(), bookSubDetMEs(), clchCMoriginTkHmap_On_, ClusterStoNCorr_OnTrack_FECCratevsFECSlot, ClusterStoNCorr_OnTrack_FECSlotVsFECRing_TECM, ClusterStoNCorr_OnTrack_FECSlotVsFECRing_TECP, ClusterStoNCorr_OnTrack_FECSlotVsFECRing_TIBTID, ClusterStoNCorr_OnTrack_FECSlotVsFECRing_TOB, ClusterStoNCorr_OnTrack_TECM, ClusterStoNCorr_OnTrack_TECP, ClusterStoNCorr_OnTrack_TIBTID, ClusterStoNCorr_OnTrack_TOB, SiStripFolderOrganizer::GetSubDetAndLayer(), SiStripFolderOrganizer::getSubDetFolderAndTag(), SiStripHistoId::getSubdetid(), LayerMEsMap, Mod_On_, NULL, alignCSCRings::ring_id, RingMEsMap, MonitorElement::setAxisTitle(), MonitorElement::setBinLabel(), DQMStore::IBooker::setCurrentFolder(), SiStripFolderOrganizer::setDetectorFolder(), SiStripFolderOrganizer::setLayerFolder(), SiStripFolderOrganizer::setSiStripFolderName(), SiStripDetCabling_, AlCaHLTBitMon_QueryRunRegistry::string, SubDetMEsMap, tkhisto_ClChPerCMfromOrigin, tkhisto_ClChPerCMfromTrack, tkhisto_NumberInactiveHits, tkhisto_NumberValidHits, tkhisto_NumMissingHits, tkhisto_NumOffTrack, tkhisto_NumOnTrack, tkhisto_StoNCorrOnTrack, TkHistoMap_On_, and topFolderName_.

Referenced by bookHistograms().

153 {
154 
155  SiStripFolderOrganizer folder_organizer;
156  folder_organizer.setSiStripFolderName(topFolderName_);
157  //******** TkHistoMaps
158  if (TkHistoMap_On_) {
159  tkhisto_StoNCorrOnTrack = new TkHistoMap(ibooker , topFolderName_ ,"TkHMap_StoNCorrOnTrack", 0.0,true);
160  tkhisto_NumOnTrack = new TkHistoMap(ibooker , topFolderName_, "TkHMap_NumberOfOnTrackCluster", 0.0,true);
161  tkhisto_NumOffTrack = new TkHistoMap(ibooker , topFolderName_, "TkHMap_NumberOfOfffTrackCluster",0.0,true);
162  tkhisto_ClChPerCMfromTrack = new TkHistoMap(ibooker , topFolderName_, "TkHMap_ChargePerCMfromTrack",0.0,true);
163  tkhisto_NumMissingHits = new TkHistoMap(ibooker , topFolderName_, "TkHMap_NumberMissingHits",0.0,true);
164  tkhisto_NumberInactiveHits = new TkHistoMap(ibooker , topFolderName_, "TkHMap_NumberInactiveHits",0.0,true);
165  tkhisto_NumberValidHits = new TkHistoMap(ibooker , topFolderName_, "TkHMap_NumberValidHits",0.0,true);
166  }
168  tkhisto_ClChPerCMfromOrigin = new TkHistoMap(ibooker , topFolderName_, "TkHMap_ChargePerCMfromOrigin",0.0,true);
169  //******** TkHistoMaps
170 
171  std::vector<uint32_t> vdetId_;
173  const char* tec = "TEC";
174  const char* tid = "TID";
175  //Histos for each detector, layer and module
176  SiStripHistoId hidmanager;
177 
178  if(Mod_On_) {
179  for (std::vector<uint32_t>::const_iterator detid_iter=vdetId_.begin(),detid_end=vdetId_.end();detid_iter!=detid_end;++detid_iter){ //loop on all the active detid
180  uint32_t detid = *detid_iter;
181 
182  if (detid < 1){
183  edm::LogError("SiStripMonitorTrack")<< "[" <<__PRETTY_FUNCTION__ << "] invalid detid " << detid<< std::endl;
184  continue;
185  }
186 
187 
188  //std::string name;
189 
190  // book Layer and RING plots
191  std::pair<std::string,int32_t> det_layer_pair = folder_organizer.GetSubDetAndLayer(detid,tTopo,false);
192  /*
193  std::string thickness;
194  std::pair<std::string,int32_t> det_layer_pair_test = folder_organizer.GetSubDetAndLayerThickness(detid,tTopo,thickness);
195  std::cout << "[SiStripMonitorTrack::book] det_layer_pair " << det_layer_pair.first << " " << det_layer_pair.second << " " << thickness << std::endl;
196  */
197 
198  std::string layer_id = hidmanager.getSubdetid(detid, tTopo, false);
199 
200  std::map<std::string, LayerMEs>::iterator iLayerME = LayerMEsMap.find(layer_id);
201  if(iLayerME==LayerMEsMap.end()){
202  folder_organizer.setLayerFolder(detid, tTopo, det_layer_pair.second, false);
203  bookLayerMEs(ibooker , detid, layer_id);
204  }
205 
206  const char* subdet = det_layer_pair.first.c_str();
207  if ( std::strstr(subdet, tec) != NULL || std::strstr(subdet, tid) != NULL ) {
208  std::string ring_id = hidmanager.getSubdetid(detid, tTopo, true);
209  std::map<std::string, RingMEs>::iterator iRingME = RingMEsMap.find(ring_id);
210  if(iRingME==RingMEsMap.end()){
211  std::pair<std::string,int32_t> det_ring_pair = folder_organizer.GetSubDetAndLayer(detid,tTopo,true);
212  folder_organizer.setLayerFolder(detid, tTopo, det_ring_pair.second, true);
213  bookRingMEs(ibooker , detid, ring_id);
214  }
215  }
216 
217  // book sub-detector plots
218  std::pair<std::string,std::string> sdet_pair = folder_organizer.getSubDetFolderAndTag(detid, tTopo);
219  if (SubDetMEsMap.find(sdet_pair.second) == SubDetMEsMap.end()){
220  ibooker.setCurrentFolder(sdet_pair.first);
221  bookSubDetMEs(ibooker , sdet_pair.second);
222  }
223  // book module plots
224  folder_organizer.setDetectorFolder(detid,tTopo);
225  bookModMEs(ibooker , *detid_iter);
226  }//end loop on detectors detid
227  } else {
228  for (std::vector<uint32_t>::const_iterator detid_iter=vdetId_.begin(),detid_end=vdetId_.end();detid_iter!=detid_end;++detid_iter){ //loop on all the active detid
229  uint32_t detid = *detid_iter;
230 
231  if (detid < 1){
232  edm::LogError("SiStripMonitorTrack")<< "[" <<__PRETTY_FUNCTION__ << "] invalid detid " << detid<< std::endl;
233  continue;
234  }
235 
236 
237  //std::string name;
238 
239  // book Layer and RING plots
240  std::pair<std::string,int32_t> det_layer_pair = folder_organizer.GetSubDetAndLayer(detid,tTopo,false);
241  /*
242  std::string thickness;
243  std::pair<std::string,int32_t> det_layer_pair_test = folder_organizer.GetSubDetAndLayerThickness(detid,tTopo,thickness);
244  std::cout << "[SiStripMonitorTrack::book] det_layer_pair " << det_layer_pair.first << " " << det_layer_pair.second << " " << thickness << std::endl;
245  */
246 
247  std::string layer_id = hidmanager.getSubdetid(detid, tTopo, false);
248 
249  std::map<std::string, LayerMEs>::iterator iLayerME = LayerMEsMap.find(layer_id);
250  if(iLayerME==LayerMEsMap.end()){
251  folder_organizer.setLayerFolder(detid, tTopo, det_layer_pair.second, false);
252  bookLayerMEs(ibooker , detid, layer_id);
253  }
254 
255  const char* subdet = det_layer_pair.first.c_str();
256  if ( std::strstr(subdet, tec) != NULL || std::strstr(subdet, tid) != NULL ) {
257  std::string ring_id = hidmanager.getSubdetid(detid, tTopo, true);
258  std::map<std::string, RingMEs>::iterator iRingME = RingMEsMap.find(ring_id);
259  if(iRingME==RingMEsMap.end()){
260  std::pair<std::string,int32_t> det_ring_pair = folder_organizer.GetSubDetAndLayer(detid,tTopo,true);
261  folder_organizer.setLayerFolder(detid, tTopo, det_ring_pair.second, true);
262  bookRingMEs(ibooker , detid, ring_id);
263  }
264  }
265 
266  // book sub-detector plots
267  std::pair<std::string,std::string> sdet_pair = folder_organizer.getSubDetFolderAndTag(detid, tTopo);
268  if (SubDetMEsMap.find(sdet_pair.second) == SubDetMEsMap.end()){
269  ibooker.setCurrentFolder(sdet_pair.first);
270  bookSubDetMEs(ibooker , sdet_pair.second);
271  }
272  }//end loop on detectors detid
273  }
274 
275 
276  //book control view plots
277  ibooker.setCurrentFolder(topFolderName_+"/ControlView/");
278 
280  ibooker.book1D("ClusterStoNCorr_OnTrack_TIBTID","TIB/TID [FECCrate=1] (OnTrack)",100,0.,100.);
282 
284  ibooker.book1D("ClusterStoNCorr_OnTrack_TOB","TOB [FECCrate=4] (OnTrack)",100,0.,100.);
286 
288  ibooker.book1D("ClusterStoNCorr_OnTrack_TECM","TECM [FECCrate=3] (OnTrack)",100,0.,100.);
290 
292  ibooker.book1D("ClusterStoNCorr_OnTrack_TECP","TECP [FECCrate=2] (OnTrack)",100,0.,100.);
294 
295 
297  ibooker.book2D("ClusterStoNCorr_OnTrack_FECCratevsFECSlot"," S/N (On track)",22,0.5,22.5,4,0.5,4.5);
299  ClusterStoNCorr_OnTrack_FECCratevsFECSlot->setAxisTitle("FEC Crate (TTC partition)",2);
304 
306  ibooker.book2D("ClusterStoNCorr_OnTrack_FECSlotVsFECRing_TIBTID","TIB/TID [FECCrate=1] (OnTrack)",10,-0.5,9.5,22,0.5,22.5)\
307  ;
310 
312  ibooker.book2D("ClusterStoNCorr_OnTrack_FECSlotVsFECRing_TOB","TOB [FECCrate=4] (OnTrack)",10,-0.5,9.5,22,0.5,22.5);
315 
317  ibooker.book2D("ClusterStoNCorr_OnTrack_FECSlotVsFECRing_TECM","TEC- [FECCrate=3] (OnTrack)",10,-0.5,9.5,22,0.5,22.5);
320 
322  ibooker.book2D("ClusterStoNCorr_OnTrack_FECSlotVsFECRing_TECP","TEC- [FECCrate=2] (OnTrack)",10,-0.5,9.5,22,0.5,22.5);
325 
326 }
MonitorElement * ClusterStoNCorr_OnTrack_FECSlotVsFECRing_TIBTID
MonitorElement * ClusterStoNCorr_OnTrack_TECP
TkHistoMap * tkhisto_NumOffTrack
void addActiveDetectorsRawIds(std::vector< uint32_t > &) const
void setSiStripFolderName(std::string name)
std::pair< const std::string, const char * > getSubDetFolderAndTag(const uint32_t &detid, const TrackerTopology *tTopo)
std::map< std::string, RingMEs > RingMEsMap
void setBinLabel(int bin, const std::string &label, int axis=1)
set bin label for x, y or z axis (axis=1, 2, 3 respectively)
#define NULL
Definition: scimark2.h:8
void setLayerFolder(uint32_t rawdetid, const TrackerTopology *tTopo, int32_t layer=0, bool ring_flag=false)
edm::ESHandle< SiStripDetCabling > SiStripDetCabling_
void bookLayerMEs(DQMStore::IBooker &, const uint32_t, std::string &)
MonitorElement * ClusterStoNCorr_OnTrack_FECSlotVsFECRing_TECM
void setDetectorFolder(uint32_t rawdetid, const TrackerTopology *tTopo)
MonitorElement * ClusterStoNCorr_OnTrack_TOB
TkHistoMap * tkhisto_NumMissingHits
std::map< std::string, SubDetMEs > SubDetMEsMap
MonitorElement * book1D(Args &&...args)
Definition: DQMStore.h:115
void bookSubDetMEs(DQMStore::IBooker &, std::string &name)
std::string getSubdetid(uint32_t id, const TrackerTopology *tTopo, bool flag_ring)
void bookModMEs(DQMStore::IBooker &, const uint32_t)
TkHistoMap * tkhisto_NumberInactiveHits
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:277
TkHistoMap * tkhisto_ClChPerCMfromOrigin
MonitorElement * ClusterStoNCorr_OnTrack_FECCratevsFECSlot
MonitorElement * book2D(Args &&...args)
Definition: DQMStore.h:133
MonitorElement * ClusterStoNCorr_OnTrack_FECSlotVsFECRing_TECP
TkHistoMap * tkhisto_ClChPerCMfromTrack
std::pair< std::string, int32_t > GetSubDetAndLayer(const uint32_t &detid, const TrackerTopology *tTopo, bool ring_flag=false)
MonitorElement * ClusterStoNCorr_OnTrack_FECSlotVsFECRing_TOB
TkHistoMap * tkhisto_NumOnTrack
MonitorElement * ClusterStoNCorr_OnTrack_TIBTID
TkHistoMap * tkhisto_StoNCorrOnTrack
void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
void bookRingMEs(DQMStore::IBooker &, const uint32_t, std::string &)
TkHistoMap * tkhisto_NumberValidHits
MonitorElement * ClusterStoNCorr_OnTrack_TECM
std::map< std::string, LayerMEs > LayerMEsMap
void SiStripMonitorTrack::bookHistograms ( DQMStore::IBooker ,
edm::Run const &  ,
edm::EventSetup const &   
)
overridevirtual

Implements DQMEDAnalyzer.

Definition at line 83 of file SiStripMonitorTrack.cc.

References book(), edm::EventSetup::get(), and edm::ESHandle< T >::product().

84 {
85  //Retrieve tracker topology from geometry
87  es.get<TrackerTopologyRcd>().get(tTopoHandle);
88  const TrackerTopology* const tTopo = tTopoHandle.product();
89  book(ibooker , tTopo);
90 }
void book(DQMStore::IBooker &, const TrackerTopology *tTopo)
T const * product() const
Definition: ESHandle.h:86
void SiStripMonitorTrack::bookLayerMEs ( DQMStore::IBooker ibooker,
const uint32_t  mod_id,
std::string &  layer_id 
)
private

Definition at line 396 of file SiStripMonitorTrack.cc.

References DQMStore::IBooker::book1D(), SiStripMonitorTrack::LayerMEs::ClusterChargeCorrOnTrack, SiStripMonitorTrack::LayerMEs::ClusterChargeOffTrack, SiStripMonitorTrack::LayerMEs::ClusterChargeOnTrack, SiStripMonitorTrack::LayerMEs::ClusterChargePerCMfromOriginOffTrack, SiStripMonitorTrack::LayerMEs::ClusterChargePerCMfromOriginOnTrack, SiStripMonitorTrack::LayerMEs::ClusterChargePerCMfromTrack, SiStripMonitorTrack::LayerMEs::ClusterChargeRawOffTrack, SiStripMonitorTrack::LayerMEs::ClusterChargeRawOnTrack, SiStripMonitorTrack::LayerMEs::ClusterGain, SiStripMonitorTrack::LayerMEs::ClusterNoiseOffTrack, SiStripMonitorTrack::LayerMEs::ClusterNoiseOnTrack, SiStripMonitorTrack::LayerMEs::ClusterPosOffTrack, SiStripMonitorTrack::LayerMEs::ClusterPosOnTrack, SiStripMonitorTrack::LayerMEs::ClusterStoNCorrOnTrack, SiStripMonitorTrack::LayerMEs::ClusterWidthOffTrack, SiStripMonitorTrack::LayerMEs::ClusterWidthOnTrack, conf_, SiStripHistoId::createHistoLayer(), edm::ParameterSet::getParameter(), handleBookMEs(), LayerMEsMap, dataset::name, SiStripDetCabling::nApvPairs(), SiStripDetCabling_, and AlCaHLTBitMon_QueryRunRegistry::string.

Referenced by book().

397 {
398  std::string name = "layer";
399  std::string view = "layerView";
400  std::string hname;
401  std::string hpar;
402  SiStripHistoId hidmanager;
403 
404  LayerMEs theLayerMEs;
405 
406  // Signal/Noise (w/ cluster harge corrected)
407  hname = hidmanager.createHistoLayer("Summary_ClusterStoNCorr",name,layer_id,"OnTrack");
408  hpar = "TH1ClusterStoNCorr";
409  theLayerMEs.ClusterStoNCorrOnTrack = handleBookMEs(ibooker,view,layer_id,hpar,hname);
410 
411  // Cluster Gain
412  hname = hidmanager.createHistoLayer("Summary_ClusterGain",name,layer_id,"");
413  hpar = "TH1ClusterGain";
414  theLayerMEs.ClusterGain = handleBookMEs(ibooker,view,layer_id,hpar,hname);
415 
416  // Cluster Charge Corrected
417  hname = hidmanager.createHistoLayer("Summary_ClusterChargeCorr",name,layer_id,"OnTrack");
418  hpar = "TH1ClusterChargeCorr";
419  theLayerMEs.ClusterChargeCorrOnTrack = handleBookMEs(ibooker,view,layer_id,hpar,hname);
420 
421  // Cluster Charge (On and Off Track)
422  hname = hidmanager.createHistoLayer("Summary_ClusterCharge",name,layer_id,"OnTrack");
423  hpar = "TH1ClusterCharge";
424  theLayerMEs.ClusterChargeOnTrack = handleBookMEs(ibooker,view,layer_id,hpar,hname);
425 
426  hname = hidmanager.createHistoLayer("Summary_ClusterCharge",name,layer_id,"OffTrack");
427  hpar = "TH1ClusterCharge";
428  theLayerMEs.ClusterChargeOffTrack = handleBookMEs(ibooker,view,layer_id,hpar,hname);
429 
430  // Cluster Charge Raw (On and Off Track)
431  hname = hidmanager.createHistoLayer("Summary_ClusterChargeRaw",name,layer_id,"OnTrack");
432  hpar = "TH1ClusterChargeRaw";
433  theLayerMEs.ClusterChargeRawOnTrack = handleBookMEs(ibooker,view,layer_id,hpar,hname);
434 
435  hname = hidmanager.createHistoLayer("Summary_ClusterChargeRaw",name,layer_id,"OffTrack");
436  hpar = "TH1ClusterChargeRaw";
437  theLayerMEs.ClusterChargeRawOffTrack = handleBookMEs(ibooker,view,layer_id,hpar,hname);
438 
439  // Cluster Noise (On and Off Track)
440  hname = hidmanager.createHistoLayer("Summary_ClusterNoise",name,layer_id,"OnTrack");
441  hpar = "TH1ClusterNoise";
442  theLayerMEs.ClusterNoiseOnTrack = handleBookMEs(ibooker,view,layer_id,hpar,hname);
443 
444  hname = hidmanager.createHistoLayer("Summary_ClusterNoise",name,layer_id,"OffTrack");
445  hpar = "TH1ClusterNoise";
446  theLayerMEs.ClusterNoiseOffTrack = handleBookMEs(ibooker,view,layer_id,hpar,hname);
447 
448  // Cluster Width (On and Off Track)
449  hname = hidmanager.createHistoLayer("Summary_ClusterWidth",name,layer_id,"OnTrack");
450  hpar = "TH1ClusterWidth";
451  theLayerMEs.ClusterWidthOnTrack = handleBookMEs(ibooker,view,layer_id,hpar,hname);
452 
453  hname = hidmanager.createHistoLayer("Summary_ClusterWidth",name,layer_id,"OffTrack");
454  hpar = "TH1ClusterWidth";
455  theLayerMEs.ClusterWidthOffTrack = handleBookMEs(ibooker,view,layer_id,hpar,hname);
456 
457  //Cluster Position
458  short total_nr_strips = SiStripDetCabling_->nApvPairs(mod_id) * 2 * 128;
459  if (layer_id.find("TEC") != std::string::npos) total_nr_strips = 3 * 2 * 128;
460 
461  hname = hidmanager.createHistoLayer("Summary_ClusterPosition",name,layer_id,"OnTrack");
462  hpar = "TH1ClusterPos";
463  if ( layer_id.find("TIB") != std::string::npos || layer_id.find("TOB") != std::string::npos || (conf_.getParameter<edm::ParameterSet>(hpar.c_str())).getParameter<bool>(view.c_str()) ) theLayerMEs.ClusterPosOnTrack = ibooker.book1D(hname, hname, total_nr_strips, 0.5,total_nr_strips+0.5);
464 
465  hname = hidmanager.createHistoLayer("Summary_ClusterPosition",name,layer_id,"OffTrack");
466  hpar = "TH1ClusterPos";
467  if ( layer_id.find("TIB") != std::string::npos || layer_id.find("TOB") != std::string::npos || (conf_.getParameter<edm::ParameterSet>(hpar.c_str())).getParameter<bool>(view.c_str()) ) theLayerMEs.ClusterPosOffTrack = ibooker.book1D(hname, hname, total_nr_strips, 0.5,total_nr_strips+0.5);
468 
469  // dQ/dx
470  hname = hidmanager.createHistoLayer("Summary_ClusterChargePerCMfromTrack",name,layer_id,"");
471  hpar = "TH1ClusterChargePerCM";
472  theLayerMEs.ClusterChargePerCMfromTrack = handleBookMEs(ibooker,view,layer_id,hpar,hname);
473 
474  hname = hidmanager.createHistoLayer("Summary_ClusterChargePerCMfromOrigin",name,layer_id,"OnTrack");
475  hpar = "TH1ClusterChargePerCM";
476  theLayerMEs.ClusterChargePerCMfromOriginOnTrack = handleBookMEs(ibooker,view,layer_id,hpar,hname);
477 
478  hname = hidmanager.createHistoLayer("Summary_ClusterChargePerCMfromOrigin",name,layer_id,"OffTrack");
479  hpar = "TH1ClusterChargePerCM";
480  theLayerMEs.ClusterChargePerCMfromOriginOffTrack = handleBookMEs(ibooker,view,layer_id,hpar,hname);
481 
482  //bookeeping
483  LayerMEsMap[layer_id]=theLayerMEs;
484 
485 }
T getParameter(std::string const &) const
edm::ParameterSet conf_
edm::ESHandle< SiStripDetCabling > SiStripDetCabling_
MonitorElement * book1D(Args &&...args)
Definition: DQMStore.h:115
const uint16_t nApvPairs(uint32_t det_id) const
MonitorElement * handleBookMEs(DQMStore::IBooker &, std::string &, std::string &, std::string &, std::string &)
std::string createHistoLayer(std::string description, std::string id_type, std::string path, std::string flag)
std::map< std::string, LayerMEs > LayerMEsMap
MonitorElement * SiStripMonitorTrack::bookME1D ( DQMStore::IBooker ibooker,
const char *  ParameterSetLabel,
const char *  HistoName 
)
inlineprivate

Definition at line 674 of file SiStripMonitorTrack.cc.

References DQMStore::IBooker::book1D(), conf_, and edm::ParameterSet::getParameter().

Referenced by bookModMEs(), bookSubDetMEs(), and handleBookMEs().

675 {
676  Parameters = conf_.getParameter<edm::ParameterSet>(ParameterSetLabel);
677  return ibooker.book1D(HistoName,HistoName,
678  Parameters.getParameter<int32_t>("Nbinx"),
679  Parameters.getParameter<double>("xmin"),
680  Parameters.getParameter<double>("xmax")
681  );
682 }
T getParameter(std::string const &) const
edm::ParameterSet conf_
vector< ParameterSet > Parameters
MonitorElement * book1D(Args &&...args)
Definition: DQMStore.h:115
std::string HistoName
MonitorElement * SiStripMonitorTrack::bookME2D ( DQMStore::IBooker ibooker,
const char *  ParameterSetLabel,
const char *  HistoName 
)
inlineprivate

Definition at line 685 of file SiStripMonitorTrack.cc.

References DQMStore::IBooker::book2D(), conf_, and edm::ParameterSet::getParameter().

686 {
687  Parameters = conf_.getParameter<edm::ParameterSet>(ParameterSetLabel);
688  return ibooker.book2D(HistoName,HistoName,
689  Parameters.getParameter<int32_t>("Nbinx"),
690  Parameters.getParameter<double>("xmin"),
691  Parameters.getParameter<double>("xmax"),
692  Parameters.getParameter<int32_t>("Nbiny"),
693  Parameters.getParameter<double>("ymin"),
694  Parameters.getParameter<double>("ymax")
695  );
696 }
T getParameter(std::string const &) const
edm::ParameterSet conf_
vector< ParameterSet > Parameters
MonitorElement * book2D(Args &&...args)
Definition: DQMStore.h:133
std::string HistoName
MonitorElement * SiStripMonitorTrack::bookME3D ( DQMStore::IBooker ibooker,
const char *  ParameterSetLabel,
const char *  HistoName 
)
inlineprivate

Definition at line 699 of file SiStripMonitorTrack.cc.

References DQMStore::IBooker::book3D(), conf_, and edm::ParameterSet::getParameter().

700 {
701  Parameters = conf_.getParameter<edm::ParameterSet>(ParameterSetLabel);
702  return ibooker.book3D(HistoName,HistoName,
703  Parameters.getParameter<int32_t>("Nbinx"),
704  Parameters.getParameter<double>("xmin"),
705  Parameters.getParameter<double>("xmax"),
706  Parameters.getParameter<int32_t>("Nbiny"),
707  Parameters.getParameter<double>("ymin"),
708  Parameters.getParameter<double>("ymax"),
709  Parameters.getParameter<int32_t>("Nbinz"),
710  Parameters.getParameter<double>("zmin"),
711  Parameters.getParameter<double>("zmax")
712  );
713 }
T getParameter(std::string const &) const
edm::ParameterSet conf_
vector< ParameterSet > Parameters
std::string HistoName
MonitorElement * book3D(Args &&...args)
Definition: DQMStore.h:151
MonitorElement * SiStripMonitorTrack::bookMEProfile ( DQMStore::IBooker ibooker,
const char *  ParameterSetLabel,
const char *  HistoName 
)
inlineprivate

Definition at line 716 of file SiStripMonitorTrack.cc.

References DQMStore::IBooker::bookProfile(), conf_, and edm::ParameterSet::getParameter().

Referenced by bookModMEs().

717 {
718  Parameters = conf_.getParameter<edm::ParameterSet>(ParameterSetLabel);
719  return ibooker.bookProfile(HistoName,HistoName,
720  Parameters.getParameter<int32_t>("Nbinx"),
721  Parameters.getParameter<double>("xmin"),
722  Parameters.getParameter<double>("xmax"),
723  Parameters.getParameter<int32_t>("Nbiny"),
724  Parameters.getParameter<double>("ymin"),
725  Parameters.getParameter<double>("ymax"),
726  "" );
727 }
T getParameter(std::string const &) const
MonitorElement * bookProfile(Args &&...args)
Definition: DQMStore.h:157
edm::ParameterSet conf_
vector< ParameterSet > Parameters
std::string HistoName
MonitorElement * SiStripMonitorTrack::bookMETrend ( DQMStore::IBooker ibooker,
const char *  HistoName 
)
private

Definition at line 730 of file SiStripMonitorTrack.cc.

References DQMStore::IBooker::bookProfile(), conf_, MonitorElement::DQM_KIND_TPROFILE, edm::ParameterSet::getParameter(), and MonitorElement::getTH1().

Referenced by bookSubDetMEs().

731 {
732  edm::ParameterSet ParametersTrend = conf_.getParameter<edm::ParameterSet>("Trending");
734  ParametersTrend.getParameter<int32_t>("Nbins"),
735  ParametersTrend.getParameter<double>("xmin"),
736  ParametersTrend.getParameter<double>("xmax"),
737  0 , 0 , "" );
738  if (me->kind() == MonitorElement::DQM_KIND_TPROFILE) me->getTH1()->SetCanExtend(TH1::kAllAxes);
739 
740  if(!me) return me;
741  me->setAxisTitle("Lumisection",1);
742  return me;
743 }
T getParameter(std::string const &) const
MonitorElement * bookProfile(Args &&...args)
Definition: DQMStore.h:157
edm::ParameterSet conf_
TH1 * getTH1(void) const
std::string HistoName
void SiStripMonitorTrack::bookModMEs ( DQMStore::IBooker ibooker,
const uint32_t  id 
)
private

Definition at line 329 of file SiStripMonitorTrack.cc.

References DQMStore::IBooker::book1D(), bookME1D(), bookMEProfile(), SiStripMonitorTrack::ModMEs::ClusterCharge, SiStripMonitorTrack::ModMEs::ClusterChargeCorr, SiStripMonitorTrack::ModMEs::ClusterChargePerCMfromOrigin, SiStripMonitorTrack::ModMEs::ClusterChargePerCMfromTrack, SiStripMonitorTrack::ModMEs::ClusterChargeRaw, SiStripMonitorTrack::ModMEs::ClusterGain, SiStripMonitorTrack::ModMEs::ClusterPGV, SiStripMonitorTrack::ModMEs::ClusterPos, SiStripMonitorTrack::ModMEs::ClusterStoNCorr, SiStripMonitorTrack::ModMEs::ClusterWidth, SiStripHistoId::createHistoId(), ModMEsMap, dataset::name, SiStripDetCabling::nApvPairs(), SiStripDetCabling_, AlCaHLTBitMon_QueryRunRegistry::string, and DQMStore::IBooker::tag().

Referenced by book().

330 {
331  std::string name = "det";
332  SiStripHistoId hidmanager;
333  std::string hid = hidmanager.createHistoId("",name,id);
334  std::map<std::string, ModMEs>::iterator iModME = ModMEsMap.find(hid);
335  if(iModME==ModMEsMap.end()){
336  ModMEs theModMEs;
337 
338  // Cluster Width
339  theModMEs.ClusterWidth=bookME1D(ibooker , "TH1ClusterWidth", hidmanager.createHistoId("ClusterWidth_OnTrack",name,id).c_str());
340  ibooker.tag(theModMEs.ClusterWidth,id);
341  // Cluster Gain
342  theModMEs.ClusterGain=bookME1D(ibooker , "TH1ClusterGain", hidmanager.createHistoId("ClusterGain",name,id).c_str());
343  ibooker.tag(theModMEs.ClusterGain,id);
344  // Cluster Charge
345  theModMEs.ClusterCharge=bookME1D(ibooker , "TH1ClusterCharge", hidmanager.createHistoId("ClusterCharge_OnTrack",name,id).c_str());
346  ibooker.tag(theModMEs.ClusterCharge,id);
347 
348  // Cluster Charge Raw (no gain )
349  theModMEs.ClusterChargeRaw=bookME1D(ibooker , "TH1ClusterChargeRaw", hidmanager.createHistoId("ClusterChargeRaw_OnTrack",name,id).c_str());
350  ibooker.tag(theModMEs.ClusterChargeRaw,id);
351 
352  // Cluster Charge Corrected
353  theModMEs.ClusterChargeCorr=bookME1D(ibooker , "TH1ClusterChargeCorr", hidmanager.createHistoId("ClusterChargeCorr_OnTrack",name,id).c_str());
354  ibooker.tag(theModMEs.ClusterChargeCorr,id);
355  // Cluster StoN Corrected
356  theModMEs.ClusterStoNCorr=bookME1D(ibooker , "TH1ClusterStoNCorrMod", hidmanager.createHistoId("ClusterStoNCorr_OnTrack",name,id).c_str());
357  ibooker.tag(theModMEs.ClusterStoNCorr,id);
358  // Cluster Position
359  short total_nr_strips = SiStripDetCabling_->nApvPairs(id) * 2 * 128;
360  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);
361  ibooker.tag(theModMEs.ClusterPos,id);
362  // Cluster PGV
363  theModMEs.ClusterPGV=bookMEProfile(ibooker , "TProfileClusterPGV", hidmanager.createHistoId("PGV_OnTrack",name,id).c_str());
364  ibooker.tag(theModMEs.ClusterPGV,id);
365  // Cluster Charge per cm
366  theModMEs.ClusterChargePerCMfromTrack = bookME1D(ibooker , "TH1ClusterChargePerCM", hidmanager.createHistoId("ClusterChargePerCMfromTrack",name,id).c_str());
367  ibooker.tag(theModMEs.ClusterChargePerCMfromTrack,id);
368 
369  theModMEs.ClusterChargePerCMfromOrigin = bookME1D(ibooker , "TH1ClusterChargePerCM", hidmanager.createHistoId("ClusterChargePerCMfromOrigin",name,id).c_str());
370  ibooker.tag(theModMEs.ClusterChargePerCMfromOrigin,id);
371 
372  ModMEsMap[hid]=theModMEs;
373  }
374 }
MonitorElement * bookME1D(DQMStore::IBooker &, const char *, const char *)
edm::ESHandle< SiStripDetCabling > SiStripDetCabling_
MonitorElement * book1D(Args &&...args)
Definition: DQMStore.h:115
void tag(MonitorElement *, unsigned int)
Definition: DQMStore.cc:289
std::string createHistoId(std::string description, std::string id_type, uint32_t component_id)
std::map< std::string, ModMEs > ModMEsMap
const uint16_t nApvPairs(uint32_t det_id) const
MonitorElement * bookMEProfile(DQMStore::IBooker &, const char *, const char *)
void SiStripMonitorTrack::bookRing ( DQMStore::IBooker ,
const uint32_t  ,
std::string &   
)
private
void SiStripMonitorTrack::bookRingMEs ( DQMStore::IBooker ibooker,
const uint32_t  mod_id,
std::string &  ring_id 
)
private

Definition at line 487 of file SiStripMonitorTrack.cc.

References DQMStore::IBooker::book1D(), SiStripMonitorTrack::RingMEs::ClusterChargeCorrOnTrack, SiStripMonitorTrack::RingMEs::ClusterChargeOffTrack, SiStripMonitorTrack::RingMEs::ClusterChargeOnTrack, SiStripMonitorTrack::RingMEs::ClusterChargePerCMfromOriginOffTrack, SiStripMonitorTrack::RingMEs::ClusterChargePerCMfromOriginOnTrack, SiStripMonitorTrack::RingMEs::ClusterChargePerCMfromTrack, SiStripMonitorTrack::RingMEs::ClusterChargeRawOffTrack, SiStripMonitorTrack::RingMEs::ClusterChargeRawOnTrack, SiStripMonitorTrack::RingMEs::ClusterGain, SiStripMonitorTrack::RingMEs::ClusterNoiseOffTrack, SiStripMonitorTrack::RingMEs::ClusterNoiseOnTrack, SiStripMonitorTrack::RingMEs::ClusterPosOffTrack, SiStripMonitorTrack::RingMEs::ClusterPosOnTrack, SiStripMonitorTrack::RingMEs::ClusterStoNCorrOnTrack, SiStripMonitorTrack::RingMEs::ClusterWidthOffTrack, SiStripMonitorTrack::RingMEs::ClusterWidthOnTrack, conf_, SiStripHistoId::createHistoLayer(), edm::ParameterSet::getParameter(), handleBookMEs(), dataset::name, SiStripDetCabling::nApvPairs(), alignCSCRings::ring_id, RingMEsMap, SiStripDetCabling_, and AlCaHLTBitMon_QueryRunRegistry::string.

Referenced by book().

488 {
489 
490  std::string name = "ring";
491  std::string view = "ringView";
492  std::string hname;
493  std::string hpar;
494  SiStripHistoId hidmanager;
495 
496  RingMEs theRingMEs;
497 
498  hname = hidmanager.createHistoLayer("Summary_ClusterStoNCorr",name,ring_id,"OnTrack");
499  hpar = "TH1ClusterStoNCorr";
500  theRingMEs.ClusterStoNCorrOnTrack = handleBookMEs(ibooker,view,ring_id,hpar,hname);
501 
502  // Cluster Gain
503  hname = hidmanager.createHistoLayer("Summary_ClusterGain",name,ring_id,"");
504  hpar = "TH1ClusterGain";
505  theRingMEs.ClusterGain = handleBookMEs(ibooker,view,ring_id,hpar,hname);
506 
507  // Cluster Charge Corrected
508  hname = hidmanager.createHistoLayer("Summary_ClusterChargeCorr",name,ring_id,"OnTrack");
509  hpar = "TH1ClusterChargeCorr";
510  theRingMEs.ClusterChargeCorrOnTrack = handleBookMEs(ibooker,view,ring_id,hpar,hname);
511 
512  // Cluster Charge (On and Off Track)
513  hname = hidmanager.createHistoLayer("Summary_ClusterCharge",name,ring_id,"OnTrack");
514  hpar = "TH1ClusterCharge";
515  theRingMEs.ClusterChargeOnTrack = handleBookMEs(ibooker,view,ring_id,hpar,hname);
516 
517  hname = hidmanager.createHistoLayer("Summary_ClusterCharge",name,ring_id,"OffTrack");
518  hpar = "TH1ClusterCharge";
519  theRingMEs.ClusterChargeOffTrack = handleBookMEs(ibooker,view,ring_id,hpar,hname);
520 
521  // Cluster Charge Raw (no-gain), On and off track
522  hname = hidmanager.createHistoLayer("Summary_ClusterChargeRaw",name,ring_id,"OnTrack");
523  hpar = "TH1ClusterChargeRaw";
524  theRingMEs.ClusterChargeRawOnTrack = handleBookMEs(ibooker,view,ring_id,hpar,hname);
525 
526  hname = hidmanager.createHistoLayer("Summary_ClusterChargeRaw",name,ring_id,"OffTrack");
527  hpar = "TH1ClusterChargeRaw";
528  theRingMEs.ClusterChargeRawOffTrack = handleBookMEs(ibooker,view,ring_id,hpar,hname);
529 
530  // Cluster Noise (On and Off Track)
531  hname = hidmanager.createHistoLayer("Summary_ClusterNoise",name,ring_id,"OnTrack");
532  hpar = "TH1ClusterNoise";
533  theRingMEs.ClusterNoiseOnTrack = handleBookMEs(ibooker,view,ring_id,hpar,hname);
534 
535  hname = hidmanager.createHistoLayer("Summary_ClusterNoise",name,ring_id,"OffTrack");
536  hpar = "TH1ClusterNoise";
537  theRingMEs.ClusterNoiseOffTrack = handleBookMEs(ibooker,view,ring_id,hpar,hname);
538 
539  // Cluster Width (On and Off Track)
540  hname = hidmanager.createHistoLayer("Summary_ClusterWidth",name,ring_id,"OnTrack");
541  hpar = "TH1ClusterWidth";
542  theRingMEs.ClusterWidthOnTrack = handleBookMEs(ibooker,view,ring_id,hpar,hname);
543 
544  hname = hidmanager.createHistoLayer("Summary_ClusterWidth",name,ring_id,"OffTrack");
545  hpar = "TH1ClusterWidth";
546  theRingMEs.ClusterWidthOffTrack = handleBookMEs(ibooker,view,ring_id,hpar,hname);
547 
548  //Cluster Position
549  short total_nr_strips = SiStripDetCabling_->nApvPairs(mod_id) * 2 * 128;
550  if (ring_id.find("TEC") != std::string::npos) total_nr_strips = 3 * 2 * 128;
551 
552  hname = hidmanager.createHistoLayer("Summary_ClusterPosition",name,ring_id,"OnTrack");
553  hpar = "TH1ClusterPos";
554  if ( (conf_.getParameter<edm::ParameterSet>(hpar.c_str())).getParameter<bool>(view.c_str()) ) theRingMEs.ClusterPosOnTrack = ibooker.book1D(hname, hname, total_nr_strips, 0.5,total_nr_strips+0.5);
555 
556  hname = hidmanager.createHistoLayer("Summary_ClusterPosition",name,ring_id,"OffTrack");
557  hpar = "TH1ClusterPos";
558  if ( (conf_.getParameter<edm::ParameterSet>(hpar.c_str())).getParameter<bool>(view.c_str()) ) theRingMEs.ClusterPosOffTrack = ibooker.book1D(hname, hname, total_nr_strips, 0.5,total_nr_strips+0.5);
559 
560  // dQ/dx
561  hname = hidmanager.createHistoLayer("Summary_ClusterChargePerCMfromTrack",name,ring_id,"");
562  hpar = "TH1ClusterChargePerCM";
563  theRingMEs.ClusterChargePerCMfromTrack = handleBookMEs(ibooker,view,ring_id,hpar,hname);
564 
565  hname = hidmanager.createHistoLayer("Summary_ClusterChargePerCMfromOrigin",name,ring_id,"OnTrack");
566  hpar = "TH1ClusterChargePerCM";
567  theRingMEs.ClusterChargePerCMfromOriginOnTrack = handleBookMEs(ibooker,view,ring_id,hpar,hname);
568 
569  hname = hidmanager.createHistoLayer("Summary_ClusterChargePerCMfromOrigin",name,ring_id,"OffTrack");
570  hpar = "TH1ClusterChargePerCM";
571  theRingMEs.ClusterChargePerCMfromOriginOffTrack = handleBookMEs(ibooker,view,ring_id,hpar,hname);
572 
573  //bookeeping
574  RingMEsMap[ring_id]=theRingMEs;
575 
576 }
T getParameter(std::string const &) const
std::map< std::string, RingMEs > RingMEsMap
edm::ParameterSet conf_
edm::ESHandle< SiStripDetCabling > SiStripDetCabling_
MonitorElement * book1D(Args &&...args)
Definition: DQMStore.h:115
const uint16_t nApvPairs(uint32_t det_id) const
MonitorElement * handleBookMEs(DQMStore::IBooker &, std::string &, std::string &, std::string &, std::string &)
std::string createHistoLayer(std::string description, std::string id_type, std::string path, std::string flag)
void SiStripMonitorTrack::bookSubDetMEs ( DQMStore::IBooker ibooker,
std::string &  name 
)
private

Definition at line 581 of file SiStripMonitorTrack.cc.

References bookME1D(), bookMETrend(), SiStripMonitorTrack::SubDetMEs::ClusterChargeCorrOnTrack, SiStripMonitorTrack::SubDetMEs::ClusterChargeCorrThickOnTrack, SiStripMonitorTrack::SubDetMEs::ClusterChargeCorrThinOnTrack, SiStripMonitorTrack::SubDetMEs::ClusterChargeOffTrack, SiStripMonitorTrack::SubDetMEs::ClusterChargeOnTrack, SiStripMonitorTrack::SubDetMEs::ClusterChargePerCMfromOriginOffTrack, SiStripMonitorTrack::SubDetMEs::ClusterChargePerCMfromOriginOnTrack, SiStripMonitorTrack::SubDetMEs::ClusterChargePerCMfromTrack, SiStripMonitorTrack::SubDetMEs::ClusterChargeRawOffTrack, SiStripMonitorTrack::SubDetMEs::ClusterChargeRawOnTrack, SiStripMonitorTrack::SubDetMEs::ClusterGain, SiStripMonitorTrack::SubDetMEs::ClusterStoNCorrOnTrack, SiStripMonitorTrack::SubDetMEs::ClusterStoNCorrThickOnTrack, SiStripMonitorTrack::SubDetMEs::ClusterStoNCorrThinOnTrack, SiStripMonitorTrack::SubDetMEs::ClusterStoNOffTrack, MonitorElement::getTH1(), dataset::name, SiStripMonitorTrack::SubDetMEs::nClustersOffTrack, SiStripMonitorTrack::SubDetMEs::nClustersOnTrack, SiStripMonitorTrack::SubDetMEs::nClustersTrendOffTrack, SiStripMonitorTrack::SubDetMEs::nClustersTrendOnTrack, MonitorElement::setAxisTitle(), AlCaHLTBitMon_QueryRunRegistry::string, xuti::subdet_tag(), SubDetMEsMap, and Trend_On_.

Referenced by book().

581  {
582 
584  subdet_tag = "__" + name;
585  std::string completeName;
586  std::string axisName;
587 
588  SubDetMEs theSubDetMEs;
589 
590  // TotalNumber of Cluster OnTrack
591  completeName = "Summary_TotalNumberOfClusters_OnTrack" + subdet_tag;
592  axisName = "Number of on-track clusters in " + name;
593  theSubDetMEs.nClustersOnTrack = bookME1D(ibooker , "TH1nClustersOn", completeName.c_str());
594  theSubDetMEs.nClustersOnTrack->setAxisTitle(axisName.c_str());
595  theSubDetMEs.nClustersOnTrack->getTH1()->StatOverflows(kTRUE);
596 
597  // TotalNumber of Cluster OffTrack
598  completeName = "Summary_TotalNumberOfClusters_OffTrack" + subdet_tag;
599  axisName = "Number of off-track clusters in " + name;
600  theSubDetMEs.nClustersOffTrack = bookME1D(ibooker , "TH1nClustersOff", completeName.c_str());
601  theSubDetMEs.nClustersOffTrack->setAxisTitle(axisName.c_str());
602  theSubDetMEs.nClustersOffTrack->getTH1()->StatOverflows(kTRUE);
603 
604  // Cluster Gain
605  completeName = "Summary_ClusterGain" + subdet_tag;
606  theSubDetMEs.ClusterGain=bookME1D(ibooker , "TH1ClusterGain", completeName.c_str());
607 
608  // Cluster StoN On Track
609  completeName = "Summary_ClusterStoNCorr_OnTrack" + subdet_tag;
610  theSubDetMEs.ClusterStoNCorrOnTrack = bookME1D(ibooker , "TH1ClusterStoNCorr", completeName.c_str());
611 
612  completeName = "Summary_ClusterStoNCorrThin_OnTrack" + subdet_tag;
613  if ( subdet_tag.find("TEC") != std::string::npos ) theSubDetMEs.ClusterStoNCorrThinOnTrack = bookME1D(ibooker , "TH1ClusterStoNCorr", completeName.c_str());
614 
615  completeName = "Summary_ClusterStoNCorrThick_OnTrack" + subdet_tag;
616  if ( subdet_tag.find("TEC") != std::string::npos ) theSubDetMEs.ClusterStoNCorrThickOnTrack = bookME1D(ibooker , "TH1ClusterStoNCorr", completeName.c_str());
617 
618  // Cluster Charge Corrected
619  completeName = "Summary_ClusterChargeCorr_OnTrack" + subdet_tag;
620  theSubDetMEs.ClusterChargeCorrOnTrack = bookME1D(ibooker , "TH1ClusterChargeCorr", completeName.c_str());
621 
622  completeName = "Summary_ClusterChargeCorrThin_OnTrack" + subdet_tag;
623  if ( subdet_tag.find("TEC") != std::string::npos ) theSubDetMEs.ClusterChargeCorrThinOnTrack = bookME1D(ibooker , "TH1ClusterChargeCorr", completeName.c_str());
624 
625  completeName = "Summary_ClusterChargeCorrThick_OnTrack" + subdet_tag;
626  if ( subdet_tag.find("TEC") != std::string::npos ) theSubDetMEs.ClusterChargeCorrThickOnTrack = bookME1D(ibooker , "TH1ClusterChargeCorr", completeName.c_str());
627 
628  // Cluster Charge On Track
629  completeName = "Summary_ClusterCharge_OnTrack" + subdet_tag;
630  theSubDetMEs.ClusterChargeOnTrack=bookME1D(ibooker , "TH1ClusterCharge", completeName.c_str());
631 
632  // Cluster Charge On Track, Raw (no-gain)
633  completeName = "Summary_ClusterChargeRaw_OnTrack" + subdet_tag;
634  theSubDetMEs.ClusterChargeRawOnTrack=bookME1D(ibooker , "TH1ClusterChargeRaw", completeName.c_str());
635 
636  // Cluster Charge Off Track
637  completeName = "Summary_ClusterCharge_OffTrack" + subdet_tag;
638  theSubDetMEs.ClusterChargeOffTrack=bookME1D(ibooker , "TH1ClusterCharge", completeName.c_str());
639 
640  // Cluster Charge Off Track, Raw (no-gain)
641  completeName = "Summary_ClusterChargeRaw_OffTrack" + subdet_tag;
642  theSubDetMEs.ClusterChargeRawOffTrack=bookME1D(ibooker , "TH1ClusterChargeRaw", completeName.c_str());
643 
644  // Cluster Charge StoN Off Track
645  completeName = "Summary_ClusterStoN_OffTrack" + subdet_tag;
646  theSubDetMEs.ClusterStoNOffTrack = bookME1D(ibooker , "TH1ClusterStoN", completeName.c_str());
647 
648  // cluster charge per cm on track
649  completeName = "Summary_ClusterChargePerCMfromTrack" + subdet_tag;
650  theSubDetMEs.ClusterChargePerCMfromTrack=bookME1D(ibooker , "TH1ClusterChargePerCM", completeName.c_str());
651 
652  // cluster charge per cm on track
653  completeName = "Summary_ClusterChargePerCMfromOrigin_OnTrack" + subdet_tag;
654  theSubDetMEs.ClusterChargePerCMfromOriginOnTrack=bookME1D(ibooker , "TH1ClusterChargePerCM", completeName.c_str());
655 
656  // cluster charge per cm off track
657  completeName = "Summary_ClusterChargePerCMfromOrigin_OffTrack" + subdet_tag;
658  theSubDetMEs.ClusterChargePerCMfromOriginOffTrack=bookME1D(ibooker , "TH1ClusterChargePerCM", completeName.c_str());
659 
660  if(Trend_On_){
661  // TotalNumber of Cluster
662  completeName = "Trend_TotalNumberOfClusters_OnTrack" + subdet_tag;
663  theSubDetMEs.nClustersTrendOnTrack = bookMETrend(ibooker , completeName.c_str());
664  completeName = "Trend_TotalNumberOfClusters_OffTrack" + subdet_tag;
665  theSubDetMEs.nClustersTrendOffTrack = bookMETrend(ibooker , completeName.c_str());
666  }
667 
668  //bookeeping
669  SubDetMEsMap[name]=theSubDetMEs;
670 
671 }
MonitorElement * bookME1D(DQMStore::IBooker &, const char *, const char *)
std::map< std::string, SubDetMEs > SubDetMEsMap
const std::string subdet_tag("SubDet")
MonitorElement * bookMETrend(DQMStore::IBooker &, const char *)
void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
bool SiStripMonitorTrack::clusterInfos ( SiStripClusterInfo cluster,
const uint32_t  detid,
enum ClusterFlags  flags,
bool  track_ok,
LocalVector  LV,
const Det2MEs MEs,
const TrackerTopology tTopo,
const SiStripGain stripGain,
const SiStripQuality stripQuality,
const edm::DetSetVector< SiStripDigi > &  digilist 
)
private

Definition at line 1307 of file SiStripMonitorTrack.cc.

References TkHistoMap::add(), applyClusterQuality_, SiStripClusterInfo::baryStrip(), SiStripClusterInfo::charge(), ALCARECOTkAlJpsiMuMu_cff::charge, siStripClusterTools::chargePerCM(), clchCMoriginTkHmap_On_, SiStripMonitorTrack::LayerMEs::ClusterChargeCorrOnTrack, SiStripMonitorTrack::RingMEs::ClusterChargeCorrOnTrack, SiStripMonitorTrack::SubDetMEs::ClusterChargeCorrOnTrack, SiStripMonitorTrack::SubDetMEs::ClusterChargeCorrThickOnTrack, SiStripMonitorTrack::SubDetMEs::ClusterChargeCorrThinOnTrack, SiStripMonitorTrack::LayerMEs::ClusterChargeOffTrack, SiStripMonitorTrack::RingMEs::ClusterChargeOffTrack, SiStripMonitorTrack::SubDetMEs::ClusterChargeOffTrack, SiStripMonitorTrack::LayerMEs::ClusterChargeOnTrack, SiStripMonitorTrack::RingMEs::ClusterChargeOnTrack, SiStripMonitorTrack::SubDetMEs::ClusterChargeOnTrack, SiStripMonitorTrack::LayerMEs::ClusterChargePerCMfromOriginOffTrack, SiStripMonitorTrack::RingMEs::ClusterChargePerCMfromOriginOffTrack, SiStripMonitorTrack::SubDetMEs::ClusterChargePerCMfromOriginOffTrack, SiStripMonitorTrack::LayerMEs::ClusterChargePerCMfromOriginOnTrack, SiStripMonitorTrack::RingMEs::ClusterChargePerCMfromOriginOnTrack, SiStripMonitorTrack::SubDetMEs::ClusterChargePerCMfromOriginOnTrack, SiStripMonitorTrack::LayerMEs::ClusterChargePerCMfromTrack, SiStripMonitorTrack::RingMEs::ClusterChargePerCMfromTrack, SiStripMonitorTrack::SubDetMEs::ClusterChargePerCMfromTrack, SiStripMonitorTrack::LayerMEs::ClusterChargeRawOffTrack, SiStripMonitorTrack::RingMEs::ClusterChargeRawOffTrack, SiStripMonitorTrack::SubDetMEs::ClusterChargeRawOffTrack, SiStripMonitorTrack::LayerMEs::ClusterChargeRawOnTrack, SiStripMonitorTrack::RingMEs::ClusterChargeRawOnTrack, SiStripMonitorTrack::SubDetMEs::ClusterChargeRawOnTrack, SiStripMonitorTrack::LayerMEs::ClusterGain, SiStripMonitorTrack::RingMEs::ClusterGain, SiStripMonitorTrack::SubDetMEs::ClusterGain, SiStripMonitorTrack::LayerMEs::ClusterNoiseOffTrack, SiStripMonitorTrack::RingMEs::ClusterNoiseOffTrack, SiStripMonitorTrack::LayerMEs::ClusterNoiseOnTrack, SiStripMonitorTrack::RingMEs::ClusterNoiseOnTrack, SiStripMonitorTrack::LayerMEs::ClusterPosOffTrack, SiStripMonitorTrack::RingMEs::ClusterPosOffTrack, SiStripMonitorTrack::LayerMEs::ClusterPosOnTrack, SiStripMonitorTrack::RingMEs::ClusterPosOnTrack, SiStripMonitorTrack::LayerMEs::ClusterStoNCorrOnTrack, SiStripMonitorTrack::RingMEs::ClusterStoNCorrOnTrack, SiStripMonitorTrack::SubDetMEs::ClusterStoNCorrOnTrack, SiStripMonitorTrack::SubDetMEs::ClusterStoNCorrThickOnTrack, SiStripMonitorTrack::SubDetMEs::ClusterStoNCorrThinOnTrack, SiStripMonitorTrack::SubDetMEs::ClusterStoNOffTrack, SiStripMonitorTrack::LayerMEs::ClusterWidthOffTrack, SiStripMonitorTrack::RingMEs::ClusterWidthOffTrack, SiStripMonitorTrack::LayerMEs::ClusterWidthOnTrack, SiStripMonitorTrack::RingMEs::ClusterWidthOnTrack, conf_, SiStripHistoId::createHistoId(), SiStripClusterInfo::detId(), edm::DetSetVector< T >::end(), eventNb, TkHistoMap::fill(), fillME(), edm::DetSetVector< T >::find(), SiStripClusterInfo::firstStrip(), edm::ParameterSet::getParameter(), SiStripGain::getRange(), SiStripBadStrip::getRange(), SiStripGain::getStripGain(), mps_fire::i, TrackerGeometry::idToDetUnit(), SiStripMonitorTrack::Det2MEs::iLayer, createfilelist::int, SiStripMonitorTrack::Det2MEs::iRing, SiStripQuality::IsStripBad(), SiStripMonitorTrack::Det2MEs::iSubdet, LogDebug, PV3DBase< T, PVType, FrameType >::mag(), SiStripClusterInfo::maxCharge(), SiStripClusterInfo::maxIndex(), Mod_On_, ModMEsMap, TrackerTopology::moduleGeometry(), dataset::name, SiStripClusterInfo::noiseRescaledByGain(), NULL, OffTrack, OnTrack, position, SiStripClusterInfo::signalOverNoise(), sToNLowerLimit_, sToNUpperLimit_, AlCaHLTBitMon_QueryRunRegistry::string, SiStripClusterInfo::stripCharges(), tkgeom_, tkhisto_ClChPerCMfromOrigin, tkhisto_ClChPerCMfromTrack, tkhisto_NumOffTrack, tkhisto_NumOnTrack, tkhisto_StoNCorrOnTrack, TkHistoMap_On_, GeomDet::toLocal(), SiStripMonitorTrack::SubDetMEs::totNClustersOffTrack, SiStripMonitorTrack::SubDetMEs::totNClustersOnTrack, ApeEstimator_cff::width, SiStripClusterInfo::width(), widthLowerLimit_, widthUpperLimit_, PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().

Referenced by AllClusters(), and RecHitInfo().

1319 {
1320 
1321  if (cluster==NULL) return false;
1322  // if one imposes a cut on the clusters, apply it
1323  if( (applyClusterQuality_) &&
1324  (cluster->signalOverNoise() < sToNLowerLimit_ ||
1325  cluster->signalOverNoise() > sToNUpperLimit_ ||
1326  cluster->width() < widthLowerLimit_ ||
1327  cluster->width() > widthUpperLimit_) ) return false;
1328  // start of the analysis
1329 
1330  float cosRZ = -2;
1331  LogDebug("SiStripMonitorTrack")<< "\n\tLV " << LV.x() << " " << LV.y() << " " << LV.z() << " " << LV.mag() << std::endl;
1332  if (LV.mag()){
1333  cosRZ= fabs(LV.z())/LV.mag();
1334  LogDebug("SiStripMonitorTrack")<< "\n\t cosRZ " << cosRZ << std::endl;
1335  }
1336 
1337  // Filling SubDet/Layer Plots (on Track + off Track)
1338  float StoN = cluster->signalOverNoise();
1339  float noise = cluster->noiseRescaledByGain();
1340  uint16_t charge = cluster->charge();
1341  uint16_t width = cluster->width();
1342  float position = cluster->baryStrip();
1343 
1344  // Getting raw charge with strip gain.
1345  double chargeraw = 0;
1346  double clustergain = 0 ;
1347  auto digi_it = digilist.find(detid); //(digilist.isValid() ? digilist.find(detid) : digilist.end());
1348  // SiStripClusterInfo.stripCharges() <==> SiStripCluster.amplitudes()
1349  for( size_t chidx = 0 ; chidx < cluster->stripCharges().size() ; ++chidx ){
1350  if( cluster->stripCharges().at(chidx) <= 0 ){ continue ; } // nonzero amplitude
1351  if( stripQuality->IsStripBad(stripQuality->getRange(detid), cluster->firstStrip()+chidx)) { continue ; }
1352  clustergain += stripGain->getStripGain(cluster->firstStrip()+chidx, stripGain->getRange(detid));
1353  // Getting raw adc charge from digi collections
1354  if( digi_it == digilist.end() ){
1355  continue;
1356  } // skipping if not found
1357  for( const auto& digiobj : *digi_it ){
1358  if( digiobj.strip() == cluster->firstStrip() + chidx ){
1359  chargeraw += digiobj.adc();
1360  }
1361  }
1362  }
1363  clustergain /= double(cluster->stripCharges().size()) ; // calculating average gain inside cluster
1364 
1365 
1366  // new dE/dx (chargePerCM)
1367  // https://indico.cern.ch/event/342236/session/5/contribution/10/material/slides/0.pdf
1368  float dQdx_fromTrack = siStripClusterTools::chargePerCM(detid, *cluster, LV);
1369  // from straigth line origin-sensor centre
1370  const StripGeomDetUnit* DetUnit = static_cast<const StripGeomDetUnit*>(tkgeom_->idToDetUnit(DetId(detid)));
1371  LocalPoint locVtx = DetUnit->toLocal(GlobalPoint(0.0, 0.0, 0.0));
1372  LocalVector locDir(locVtx.x(), locVtx.y(), locVtx.z());
1373  float dQdx_fromOrigin = siStripClusterTools::chargePerCM(detid, *cluster, locDir);
1374 
1375  if (TkHistoMap_On_ && (flag == OnTrack)) {
1376  uint32_t adet=cluster->detId();
1377  if(track_ok) tkhisto_ClChPerCMfromTrack->fill(adet,dQdx_fromTrack);
1378  }
1379  if (clchCMoriginTkHmap_On_ && (flag == OffTrack)){
1380  uint32_t adet=cluster->detId();
1381  if(track_ok) tkhisto_ClChPerCMfromOrigin->fill(adet,dQdx_fromOrigin);
1382  }
1383 
1384  if(flag==OnTrack){
1385  if (MEs.iSubdet != nullptr) MEs.iSubdet->totNClustersOnTrack++;
1386  // layerMEs
1387  if (MEs.iLayer != nullptr) {
1388  if(noise > 0.0) fillME(MEs.iLayer->ClusterStoNCorrOnTrack, StoN*cosRZ);
1389  if(noise == 0.0) LogDebug("SiStripMonitorTrack") << "Module " << detid << " in Event " << eventNb << " noise " << cluster->noiseRescaledByGain() << std::endl;
1390  fillME(MEs.iLayer->ClusterGain, clustergain);
1391  fillME(MEs.iLayer->ClusterChargeCorrOnTrack, charge*cosRZ);
1392  fillME(MEs.iLayer->ClusterChargeOnTrack, charge);
1393  fillME(MEs.iLayer->ClusterChargeRawOnTrack, chargeraw);
1394  fillME(MEs.iLayer->ClusterNoiseOnTrack, noise);
1395  fillME(MEs.iLayer->ClusterWidthOnTrack, width);
1396  fillME(MEs.iLayer->ClusterPosOnTrack, position);
1397  if(track_ok) fillME(MEs.iLayer->ClusterChargePerCMfromTrack, dQdx_fromTrack);
1398  if(track_ok) fillME(MEs.iLayer->ClusterChargePerCMfromOriginOnTrack, dQdx_fromOrigin);
1399  }
1400  // ringMEs
1401  if (MEs.iRing != nullptr) {
1402  if(noise > 0.0) fillME(MEs.iRing->ClusterStoNCorrOnTrack, StoN*cosRZ);
1403  if(noise == 0.0) LogDebug("SiStripMonitorTrack") << "Module " << detid << " in Event " << eventNb << " noise " << cluster->noiseRescaledByGain() << std::endl;
1404  fillME(MEs.iRing->ClusterGain, clustergain);
1405  fillME(MEs.iRing->ClusterChargeCorrOnTrack, charge*cosRZ);
1406  fillME(MEs.iRing->ClusterChargeOnTrack, charge);
1407  fillME(MEs.iRing->ClusterChargeRawOnTrack, chargeraw);
1408  fillME(MEs.iRing->ClusterNoiseOnTrack, noise);
1409  fillME(MEs.iRing->ClusterWidthOnTrack, width);
1410  fillME(MEs.iRing->ClusterPosOnTrack, position);
1411  if(track_ok) fillME(MEs.iRing->ClusterChargePerCMfromTrack, dQdx_fromTrack);
1412  if(track_ok) fillME(MEs.iRing->ClusterChargePerCMfromOriginOnTrack, dQdx_fromOrigin);
1413  }
1414  // subdetMEs
1415  if(MEs.iSubdet != nullptr){
1416  fillME(MEs.iSubdet->ClusterGain, clustergain);
1417  fillME(MEs.iSubdet->ClusterChargeOnTrack,charge);
1418  fillME(MEs.iSubdet->ClusterChargeRawOnTrack,chargeraw);
1419  if(noise > 0.0) fillME(MEs.iSubdet->ClusterStoNCorrOnTrack,StoN*cosRZ);
1420  fillME(MEs.iSubdet->ClusterChargeCorrOnTrack, charge*cosRZ);
1421  if(track_ok) fillME(MEs.iSubdet->ClusterChargePerCMfromTrack,dQdx_fromTrack);
1422  if(track_ok) fillME(MEs.iSubdet->ClusterChargePerCMfromOriginOnTrack,dQdx_fromOrigin);
1423  if( tTopo->moduleGeometry(detid) == SiStripDetId::ModuleGeometry::W5 || tTopo->moduleGeometry(detid) == SiStripDetId::ModuleGeometry::W6 || tTopo->moduleGeometry(detid) == SiStripDetId::ModuleGeometry::W7) {
1424  if(noise > 0.0) fillME(MEs.iSubdet->ClusterStoNCorrThickOnTrack, StoN*cosRZ);
1425  fillME(MEs.iSubdet->ClusterChargeCorrThickOnTrack, charge*cosRZ);
1426  } else {
1427  if(noise > 0.0) fillME(MEs.iSubdet->ClusterStoNCorrThinOnTrack, StoN*cosRZ);
1428  fillME(MEs.iSubdet->ClusterChargeCorrThinOnTrack, charge*cosRZ);
1429  }
1430  }
1431  //******** TkHistoMaps
1432  if (TkHistoMap_On_) {
1433  uint32_t adet=cluster->detId();
1434  tkhisto_NumOnTrack->add(adet,1.);
1435  if(noise > 0.0) tkhisto_StoNCorrOnTrack->fill(adet,cluster->signalOverNoise()*cosRZ);
1436  if(noise == 0.0)
1437  LogDebug("SiStripMonitorTrack") << "Module " << detid << " in Event " << eventNb << " noise " << noise << std::endl;
1438  }
1439  // Module plots filled only for onTrack Clusters
1440  if(Mod_On_){
1441  SiStripHistoId hidmanager2;
1442  std::string name = hidmanager2.createHistoId("","det",detid);
1443  //fillModMEs
1444  std::map<std::string, ModMEs>::iterator iModME = ModMEsMap.find(name);
1445  if(iModME!=ModMEsMap.end()){
1446  if(noise > 0.0) fillME(iModME->second.ClusterStoNCorr ,StoN*cosRZ);
1447  if(noise == 0.0) LogDebug("SiStripMonitorTrack") << "Module " << name << " in Event " << eventNb << " noise " << noise << std::endl;
1448  fillME(iModME->second.ClusterGain, clustergain);
1449  fillME(iModME->second.ClusterCharge,charge);
1450  fillME(iModME->second.ClusterChargeRaw,chargeraw);
1451 
1452  fillME(iModME->second.ClusterChargeCorr,charge*cosRZ);
1453 
1454  fillME(iModME->second.ClusterWidth ,width);
1455  fillME(iModME->second.ClusterPos ,position);
1456 
1457  if(track_ok) fillME(iModME->second.ClusterChargePerCMfromTrack, dQdx_fromTrack);
1458  if(track_ok) fillME(iModME->second.ClusterChargePerCMfromOrigin, dQdx_fromOrigin);
1459 
1460  //fill the PGV histo
1461  float PGVmax = cluster->maxCharge();
1462  int PGVposCounter = cluster->maxIndex();
1463  for (int i= int(conf_.getParameter<edm::ParameterSet>("TProfileClusterPGV").getParameter<double>("xmin"));i<PGVposCounter;++i)
1464  fillME(iModME->second.ClusterPGV, i,0.);
1465  for (auto it=cluster->stripCharges().begin();it<cluster->stripCharges().end();++it) {
1466  fillME(iModME->second.ClusterPGV, PGVposCounter++,(*it)/PGVmax);
1467  }
1468  for (int i= PGVposCounter;i<int(conf_.getParameter<edm::ParameterSet>("TProfileClusterPGV").getParameter<double>("xmax"));++i)
1469  fillME(iModME->second.ClusterPGV, i,0.);
1470  //end fill the PGV histo
1471  }
1472  }
1473  } else {
1474  if (flag == OffTrack) {
1475  if (MEs.iSubdet != nullptr) MEs.iSubdet->totNClustersOffTrack++;
1476  //******** TkHistoMaps
1477  if (TkHistoMap_On_) {
1478  uint32_t adet=cluster->detId();
1479  tkhisto_NumOffTrack->add(adet,1.);
1480  if(charge > 250){
1481  LogDebug("SiStripMonitorTrack") << "Module firing " << detid << " in Event " << eventNb << std::endl;
1482  }
1483  }
1484  }
1485  // layerMEs
1486  if (MEs.iLayer != nullptr) {
1487  fillME(MEs.iLayer->ClusterGain, clustergain);
1488  fillME(MEs.iLayer->ClusterChargeOffTrack, charge);
1489  fillME(MEs.iLayer->ClusterChargeRawOffTrack, chargeraw);
1490  fillME(MEs.iLayer->ClusterNoiseOffTrack, noise);
1491  fillME(MEs.iLayer->ClusterWidthOffTrack, width);
1492  fillME(MEs.iLayer->ClusterPosOffTrack, position);
1493  fillME(MEs.iLayer->ClusterChargePerCMfromOriginOffTrack, dQdx_fromOrigin);
1494  }
1495  // ringMEs
1496  if (MEs.iRing != nullptr) {
1497  fillME(MEs.iRing->ClusterGain, clustergain);
1498  fillME(MEs.iRing->ClusterChargeOffTrack, charge);
1499  fillME(MEs.iRing->ClusterChargeRawOffTrack, chargeraw);
1500  fillME(MEs.iRing->ClusterNoiseOffTrack, noise);
1501  fillME(MEs.iRing->ClusterWidthOffTrack, width);
1502  fillME(MEs.iRing->ClusterPosOffTrack, position);
1503  fillME(MEs.iRing->ClusterChargePerCMfromOriginOffTrack, dQdx_fromOrigin);
1504  }
1505  // subdetMEs
1506  if(MEs.iSubdet != nullptr){
1507  fillME(MEs.iSubdet->ClusterGain, clustergain);
1508  fillME(MEs.iSubdet->ClusterChargeOffTrack,charge);
1509  fillME(MEs.iSubdet->ClusterChargeRawOffTrack,chargeraw);
1510  if(noise > 0.0) fillME(MEs.iSubdet->ClusterStoNOffTrack,StoN);
1511  fillME(MEs.iSubdet->ClusterChargePerCMfromOriginOffTrack,dQdx_fromOrigin);
1512  }
1513  }
1514  return true;
1515 }
#define LogDebug(id)
uint8_t maxCharge() const
T getParameter(std::string const &) const
TkHistoMap * tkhisto_NumOffTrack
uint16_t firstStrip() const
iterator find(det_id_type id)
Definition: DetSetVector.h:290
void fillME(MonitorElement *ME, float value1)
float noiseRescaledByGain() const
bool IsStripBad(const uint32_t &detid, const short &strip) const
float chargePerCM(DetId detid, Iter a, Iter b)
Global3DPoint GlobalPoint
Definition: GlobalPoint.h:10
float baryStrip() const
edm::ParameterSet conf_
T y() const
Definition: PV3DBase.h:63
LocalPoint toLocal(const GlobalPoint &gp) const
Conversion to the R.F. of the GeomDet.
Definition: GeomDet.h:69
#define NULL
Definition: scimark2.h:8
SiStripDetId::ModuleGeometry moduleGeometry(const DetId &id) const
uint16_t maxIndex() const
auto stripCharges() const -> decltype(cluster() ->amplitudes())
edm::ESHandle< TrackerGeometry > tkgeom_
const TrackerGeomDet * idToDetUnit(DetId) const override
Return the pointer to the GeomDetUnit corresponding to a given DetId.
float signalOverNoise() const
T mag() const
Definition: PV3DBase.h:67
edm::EventNumber_t eventNb
uint16_t charge() const
static float getStripGain(const uint16_t &strip, const SiStripApvGain::Range &range)
Definition: SiStripGain.h:68
void fill(uint32_t &detid, float value)
Definition: TkHistoMap.cc:180
T z() const
Definition: PV3DBase.h:64
uint16_t width() const
iterator end()
Return the off-the-end iterator.
Definition: DetSetVector.h:361
Definition: DetId.h:18
TkHistoMap * tkhisto_ClChPerCMfromOrigin
std::string createHistoId(std::string description, std::string id_type, uint32_t component_id)
std::map< std::string, ModMEs > ModMEsMap
TkHistoMap * tkhisto_ClChPerCMfromTrack
TkHistoMap * tkhisto_NumOnTrack
uint32_t detId() const
const Range getRange(const uint32_t detID) const
static int position[264][3]
Definition: ReadPGInfo.cc:509
TkHistoMap * tkhisto_StoNCorrOnTrack
T x() const
Definition: PV3DBase.h:62
void add(uint32_t &detid, float value)
Definition: TkHistoMap.cc:213
const SiStripApvGain::Range getRange(uint32_t detID) const
Definition: SiStripGain.h:66
void SiStripMonitorTrack::dqmBeginRun ( const edm::Run run,
const edm::EventSetup es 
)
override

Definition at line 70 of file SiStripMonitorTrack.cc.

References TrackerGeometry::detUnits(), genTriggerEventFlag_, edm::EventSetup::get(), GenericTriggerEventFlag::initRun(), LogDebug, GenericTriggerEventFlag::on(), SiStripDetCabling_, and tkgeom_.

71 {
72  //get geom
74  LogDebug("SiStripMonitorTrack") << "[SiStripMonitorTrack::beginRun] There are "<<tkgeom_->detUnits().size() <<" detectors instantiated in the geometry" << std::endl;
76 
77 
78  // Initialize the GenericTriggerEventFlag
80 }
#define LogDebug(id)
edm::ESHandle< SiStripDetCabling > SiStripDetCabling_
edm::ESHandle< TrackerGeometry > tkgeom_
const T & get() const
Definition: EventSetup.h:55
GenericTriggerEventFlag * genTriggerEventFlag_
void initRun(const edm::Run &run, const edm::EventSetup &setup)
To be called from beginRun() methods.
const DetUnitContainer & detUnits() const override
Returm a vector of all GeomDetUnit.
bool SiStripMonitorTrack::fillControlViewHistos ( const edm::Event ev,
const edm::EventSetup es 
)
private

Definition at line 1201 of file SiStripMonitorTrack.cc.

References SiStripRecHit1D::cluster(), SiStripRecHit2D::cluster(), ClusterStoNCorr_OnTrack_FECCratevsFECSlot, ClusterStoNCorr_OnTrack_FECSlotVsFECRing_TECM, ClusterStoNCorr_OnTrack_FECSlotVsFECRing_TECP, ClusterStoNCorr_OnTrack_FECSlotVsFECRing_TIBTID, ClusterStoNCorr_OnTrack_FECSlotVsFECRing_TOB, ClusterStoNCorr_OnTrack_TECM, ClusterStoNCorr_OnTrack_TECP, ClusterStoNCorr_OnTrack_TIBTID, ClusterStoNCorr_OnTrack_TOB, MonitorElement::Fill(), edm::EventSetup::get(), edm::Event::getByToken(), SiStripDetCabling::getConnections(), edm::HandleBase::isValid(), NULL, edm::ESHandle< T >::product(), return2DME(), SiStripClusterInfo::signalOverNoise(), SiStripDetCabling_, SiStripDetId::TEC, TrackerTopology::tecSide(), SiStripDetId::TIB, SiStripDetId::TID, SiStripDetId::TOB, HiIsolationCommonParameters_cff::track, l1t::tracks, and trackToken_.

Referenced by analyze().

1201  {
1202 
1204  ev.getByToken(trackToken_, tracks);//takes the track collection
1205 
1206  //check that tracks are valid
1207  if( !tracks.isValid() ) return false;
1208 
1209  // loop over the tracks
1210  for ( const auto & track : *tracks) {
1211 
1212  // loop over the rechits of this track
1213  for (trackingRecHit_iterator hit = track.recHitsBegin(), ehit = track.recHitsEnd();
1214  hit!=ehit; ++hit) {
1215 
1216  uint32_t thedetid = (*hit)->rawId();
1217  if ( !(DetId(thedetid).subdetId() >=3 && DetId(thedetid).subdetId() <=6) ) { continue; }
1218 
1219  if (!(*hit)->isValid()) continue;
1220 
1221  const TrackingRecHit* theHit = (*hit);
1222  if ( theHit == NULL ) { continue; }
1223 
1224  edm::ESHandle<TrackerTopology> tTopoHandle;
1225  es.get<TrackerTopologyRcd>().get(tTopoHandle);
1226  const TrackerTopology* const tTopo = tTopoHandle.product();
1227 
1228  const SiStripRecHit1D* hit1D = dynamic_cast<const SiStripRecHit1D*>( theHit );
1229  const SiStripRecHit2D* hit2D = dynamic_cast<const SiStripRecHit2D*>( theHit );
1230 
1231  float sovn = -1.;
1232  if (hit1D && !hit2D) {
1233  const SiStripCluster* SiStripCluster_ = &*(hit1D->cluster());
1234  SiStripClusterInfo SiStripClusterInfo_(*SiStripCluster_,es,thedetid);
1235  sovn = SiStripClusterInfo_.signalOverNoise();
1236  }
1237 
1238  else if (!hit1D && hit2D) {
1239  const SiStripCluster* SiStripCluster_ = &*(hit2D->cluster());
1240  SiStripClusterInfo SiStripClusterInfo_(*SiStripCluster_,es,thedetid);
1241  sovn = SiStripClusterInfo_.signalOverNoise();
1242  }
1243 
1244 
1245  std::vector<const FedChannelConnection *> getFedChanConnections;
1246  getFedChanConnections = SiStripDetCabling_->getConnections(thedetid);
1247 
1248  // SiStripFolderOrganizer folder_organizer;
1249  // std::string sistripsubdet = folder_organizer.getSubDetFolderAndTag(thedetid, tTopo).second;
1250 
1251  // loop over the fed chan connections
1252  for ( const auto & getFedChanConnection : getFedChanConnections ) {
1253 
1254  if (getFedChanConnection==0) { continue; }
1255 
1256  int binfeccrate = getFedChanConnection->fecCrate();
1257  int binfecslot = getFedChanConnection->fecSlot();
1258  int binfecring = getFedChanConnection->fecRing();
1259  //int binccuchan = getFedChanConnections[i0]->ccuChan(); //will be used in a new PR
1260  //int binccuadd = getFedChanConnections[i0]->ccuAddr(); //will be used in a new PR
1261 
1262  return2DME(ClusterStoNCorr_OnTrack_FECCratevsFECSlot,binfecslot,binfeccrate,sovn);
1263 
1264  // TIB/TID
1265  // if ((sistripsubdet.find("TIB")) || (sistripsubdet.find("TID"))) {
1266  if ((DetId(thedetid).subdetId()==SiStripDetId::TIB) || ((DetId(thedetid).subdetId()==SiStripDetId::TID)) ) {
1268  return2DME(ClusterStoNCorr_OnTrack_FECSlotVsFECRing_TIBTID,binfecring,binfecslot,sovn);
1269  }
1270 
1271  // TOB
1272  if ( DetId(thedetid).subdetId()==SiStripDetId::TOB ) {
1274  return2DME(ClusterStoNCorr_OnTrack_FECSlotVsFECRing_TOB,binfecring,binfecslot,sovn);
1275  }
1276 
1277  // TECM
1278  if ( (DetId(thedetid).subdetId()==SiStripDetId::TEC) && (tTopo->tecSide(thedetid)==1) ) {
1280  return2DME(ClusterStoNCorr_OnTrack_FECSlotVsFECRing_TECM,binfecring,binfecslot,sovn);
1281  }
1282 
1283  // TECP
1284  if ( (DetId(thedetid).subdetId()==SiStripDetId::TEC) && (tTopo->tecSide(thedetid)==2) ) {
1286  return2DME(ClusterStoNCorr_OnTrack_FECSlotVsFECRing_TECP,binfecring,binfecslot,sovn);
1287  }
1288 
1289  } // end of looping over the fed chan connections
1290  } // end of looping over the rechits of the track
1291  } // end of looping over the tracks
1292 
1293  return true;
1294 }
ClusterRef cluster() const
MonitorElement * ClusterStoNCorr_OnTrack_FECSlotVsFECRing_TIBTID
MonitorElement * ClusterStoNCorr_OnTrack_TECP
void return2DME(MonitorElement *input, int binx, int biny, double value)
edm::EDGetTokenT< reco::TrackCollection > trackToken_
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:460
#define NULL
Definition: scimark2.h:8
edm::ESHandle< SiStripDetCabling > SiStripDetCabling_
MonitorElement * ClusterStoNCorr_OnTrack_FECSlotVsFECRing_TECM
void Fill(long long x)
const std::vector< const FedChannelConnection * > & getConnections(uint32_t det_id) const
MonitorElement * ClusterStoNCorr_OnTrack_TOB
ClusterRef cluster() const
bool isValid() const
Definition: HandleBase.h:74
Definition: DetId.h:18
MonitorElement * ClusterStoNCorr_OnTrack_FECCratevsFECSlot
MonitorElement * ClusterStoNCorr_OnTrack_FECSlotVsFECRing_TECP
const T & get() const
Definition: EventSetup.h:55
MonitorElement * ClusterStoNCorr_OnTrack_FECSlotVsFECRing_TOB
MonitorElement * ClusterStoNCorr_OnTrack_TIBTID
T const * product() const
Definition: ESHandle.h:86
TrackingRecHitCollection::base::const_iterator trackingRecHit_iterator
iterator over a vector of reference to TrackingRecHit in the same collection
MonitorElement * ClusterStoNCorr_OnTrack_TECM
unsigned int tecSide(const DetId &id) const
void SiStripMonitorTrack::fillME ( MonitorElement ME,
float  value1 
)
inlineprivate

Definition at line 152 of file SiStripMonitorTrack.h.

References MonitorElement::Fill().

Referenced by analyze(), and clusterInfos().

152 {if (ME!=0)ME->Fill(value1);}
void Fill(long long x)
void SiStripMonitorTrack::fillME ( MonitorElement ME,
float  value1,
float  value2 
)
inlineprivate
void SiStripMonitorTrack::fillME ( MonitorElement ME,
float  value1,
float  value2,
float  value3 
)
inlineprivate

Definition at line 154 of file SiStripMonitorTrack.h.

References MonitorElement::Fill().

void SiStripMonitorTrack::fillME ( MonitorElement ME,
float  value1,
float  value2,
float  value3,
float  value4 
)
inlineprivate

Definition at line 155 of file SiStripMonitorTrack.h.

References MonitorElement::Fill(), and findMEs().

SiStripMonitorTrack::Det2MEs SiStripMonitorTrack::findMEs ( const TrackerTopology tTopo,
const uint32_t  detid 
)
private

Definition at line 1170 of file SiStripMonitorTrack.cc.

References folderOrganizer_, SiStripFolderOrganizer::getSubDetFolderAndTag(), SiStripHistoId::getSubdetid(), SiStripMonitorTrack::Det2MEs::iLayer, SiStripMonitorTrack::Det2MEs::iRing, SiStripMonitorTrack::Det2MEs::iSubdet, LayerMEsMap, alignCSCRings::ring_id, RingMEsMap, AlCaHLTBitMon_QueryRunRegistry::string, and SubDetMEsMap.

Referenced by AllClusters(), fillME(), and RecHitInfo().

1170  {
1171  SiStripHistoId hidmanager1;
1172 
1173  std::string layer_id = hidmanager1.getSubdetid(detid, tTopo, false);
1174  std::string ring_id = hidmanager1.getSubdetid(detid, tTopo, true);
1175  std::string sdet_tag = folderOrganizer_.getSubDetFolderAndTag(detid, tTopo).second;
1176 
1177  Det2MEs me;
1178  me.iLayer = nullptr;
1179  me.iRing = nullptr;
1180  me.iSubdet = nullptr;
1181 
1182  std::map<std::string, LayerMEs>::iterator iLayer = LayerMEsMap.find(layer_id);
1183  if (iLayer != LayerMEsMap.end()) {
1184  me.iLayer = &(iLayer->second);
1185  }
1186 
1187  std::map<std::string, RingMEs>::iterator iRing = RingMEsMap.find(ring_id);
1188  if (iRing != RingMEsMap.end()) {
1189  me.iRing = &(iRing->second);
1190  }
1191 
1192  std::map<std::string, SubDetMEs>::iterator iSubdet = SubDetMEsMap.find(sdet_tag);
1193  if (iSubdet != SubDetMEsMap.end()) {
1194  me.iSubdet = &(iSubdet->second);
1195  }
1196 
1197  return me;
1198 }
std::pair< const std::string, const char * > getSubDetFolderAndTag(const uint32_t &detid, const TrackerTopology *tTopo)
std::map< std::string, RingMEs > RingMEsMap
std::map< std::string, SubDetMEs > SubDetMEsMap
SiStripFolderOrganizer folderOrganizer_
std::string getSubdetid(uint32_t id, const TrackerTopology *tTopo, bool flag_ring)
std::map< std::string, LayerMEs > LayerMEsMap
MonitorElement * SiStripMonitorTrack::handleBookMEs ( DQMStore::IBooker ibooker,
std::string &  viewParameter,
std::string &  id,
std::string &  histoParameters,
std::string &  histoName 
)
private

Definition at line 376 of file SiStripMonitorTrack.cc.

References bookME1D(), conf_, spr::find(), edm::ParameterSet::getParameter(), and NULL.

Referenced by bookLayerMEs(), and bookRingMEs().

376  {
377 
378  MonitorElement* me = NULL;
379  bool view = false;
380  view = (conf_.getParameter<edm::ParameterSet>(histoParameters.c_str())).getParameter<bool>(viewParameter.c_str());
381  if ( id.find("TEC") == std::string::npos && id.find("TID") == std::string::npos ) {
382  me = bookME1D(ibooker , histoParameters.c_str(), histoName.c_str());
383  } else {
384  if (view) {
385  // histoName = histoName + "__" + thickness;
386  me = bookME1D(ibooker , histoParameters.c_str(), histoName.c_str());
387  }
388  }
389  return me;
390 }
T getParameter(std::string const &) const
edm::ParameterSet conf_
MonitorElement * bookME1D(DQMStore::IBooker &, const char *, const char *)
#define NULL
Definition: scimark2.h:8
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:20
void SiStripMonitorTrack::hitStudy ( const edm::Event ev,
const edm::EventSetup es,
const edm::DetSetVector< SiStripDigi > &  digilist,
const ProjectedSiStripRecHit2D projhit,
const SiStripMatchedRecHit2D matchedhit,
const SiStripRecHit2D hit2D,
const SiStripRecHit1D hit1D,
LocalVector  localMomentum,
const bool  track_ok 
)
private

Definition at line 841 of file SiStripMonitorTrack.cc.

References ev, TrackingRecHit::geographicalId(), TrackerGeometry::idToDet(), LogDebug, LogTrace, funct::m, PV3DBase< T, PVType, FrameType >::mag(), GluedGeomDet::monoDet(), SiStripMatchedRecHit2D::monoHit(), ProjectedSiStripRecHit2D::originalHit(), DetId::rawId(), alignCSCRings::s, GluedGeomDet::stereoDet(), SiStripMatchedRecHit2D::stereoHit(), tkgeom_, GeomDet::toGlobal(), GeomDet::toLocal(), PV3DBase< T, PVType, FrameType >::x(), and PV3DBase< T, PVType, FrameType >::z().

Referenced by trackStudyFromTrack().

851  {
852  LocalVector statedirection;
853  if(matchedhit){ // type=Matched;
854  LogTrace("SiStripMonitorTrack")<<"\nMatched recHit found"<< std::endl;
855 
856  const GluedGeomDet * gdet=static_cast<const GluedGeomDet *>(tkgeom_->idToDet(matchedhit->geographicalId()));
857 
858  GlobalVector gtrkdirup=gdet->toGlobal(localMomentum);
859 
860  //mono side
861  const GeomDetUnit * monodet=gdet->monoDet();
862  statedirection=monodet->toLocal(gtrkdirup);
863  SiStripRecHit2D m = matchedhit->monoHit();
864  if(statedirection.mag()) RecHitInfo<SiStripRecHit2D>(&m,statedirection,digilist,ev,es,track_ok);
865 
866  //stereo side
867  const GeomDetUnit * stereodet=gdet->stereoDet();
868  statedirection=stereodet->toLocal(gtrkdirup);
869  SiStripRecHit2D s = matchedhit->stereoHit();
870  if(statedirection.mag()) RecHitInfo<SiStripRecHit2D>(&s,statedirection,digilist,ev,es,track_ok);
871  }
872  else if(projhit){ // type=Projected;
873  LogTrace("SiStripMonitorTrack")<<"\nProjected recHit found"<< std::endl;
874 
875  const GluedGeomDet * gdet=static_cast<const GluedGeomDet *>(tkgeom_->idToDet(projhit->geographicalId()));
876 
877  GlobalVector gtrkdirup=gdet->toGlobal(localMomentum);
878  const SiStripRecHit2D originalhit=projhit->originalHit();
879 
880  const GeomDetUnit * det;
881  if(!StripSubdetector(originalhit.geographicalId().rawId()).stereo()){
882  //mono side
883  LogTrace("SiStripMonitorTrack")<<"\nProjected recHit found MONO"<< std::endl;
884  det=gdet->monoDet();
885  statedirection=det->toLocal(gtrkdirup);
886  if(statedirection.mag()) RecHitInfo<SiStripRecHit2D>(&(originalhit),statedirection,digilist,ev,es,track_ok);
887  }
888  else{
889  LogTrace("SiStripMonitorTrack")<<"\nProjected recHit found STEREO"<< std::endl;
890  //stereo side
891  det=gdet->stereoDet();
892  statedirection=det->toLocal(gtrkdirup);
893  if(statedirection.mag()) RecHitInfo<SiStripRecHit2D>(&(originalhit),statedirection,digilist,ev,es,track_ok);
894  }
895  } else if (hit2D){ // type=2D
896  statedirection=localMomentum;
897  if(statedirection.mag()) RecHitInfo<SiStripRecHit2D>(hit2D,statedirection,digilist,ev,es,track_ok);
898  } else if (hit1D) { // type=1D
899  statedirection=localMomentum;
900  if(statedirection.mag()) RecHitInfo<SiStripRecHit1D>(hit1D,statedirection,digilist,ev,es,track_ok);
901  } else {
902  LogDebug ("SiStripMonitorTrack")
903  << " LocalMomentum: "<<statedirection
904  << "\nLocal x-z plane angle: "<<atan2(statedirection.x(),statedirection.z());
905  }
906 
907 }
#define LogDebug(id)
const GeomDetUnit * monoDet() const
Definition: GluedGeomDet.h:20
GlobalPoint toGlobal(const Local2DPoint &lp) const
Conversion to the global R.F. from the R.F. of the GeomDet.
Definition: GeomDet.h:54
LocalPoint toLocal(const GlobalPoint &gp) const
Conversion to the R.F. of the GeomDet.
Definition: GeomDet.h:69
bool ev
uint32_t rawId() const
get the raw id
Definition: DetId.h:43
edm::ESHandle< TrackerGeometry > tkgeom_
T mag() const
Definition: PV3DBase.h:67
T z() const
Definition: PV3DBase.h:64
#define LogTrace(id)
SiStripRecHit2D originalHit() const
SiStripRecHit2D stereoHit() const
SiStripRecHit2D monoHit() const
const TrackerGeomDet * idToDet(DetId) const override
DetId geographicalId() const
T x() const
Definition: PV3DBase.h:62
const GeomDetUnit * stereoDet() const
Definition: GluedGeomDet.h:21
template<class T >
void SiStripMonitorTrack::RecHitInfo ( const T tkrecHit,
LocalVector  LV,
const edm::DetSetVector< SiStripDigi > &  digilist,
const edm::Event ev,
const edm::EventSetup es,
bool  ok 
)
private

Definition at line 1062 of file SiStripMonitorTrack.cc.

References clusterInfos(), findMEs(), edm::EventSetup::get(), TrackerGeometry::idToDet(), LogTrace, NULL, OnTrack, edm::ESHandle< T >::product(), tkgeom_, GeomDet::toGlobal(), vPSiStripCluster, PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().

1069  {
1070 
1071  if(!tkrecHit->isValid()){
1072  LogTrace("SiStripMonitorTrack") <<"\t\t Invalid Hit " << std::endl;
1073  return;
1074  }
1075 
1076  const uint32_t& detid = tkrecHit->geographicalId().rawId();
1077 
1078  LogTrace("SiStripMonitorTrack")
1079  <<"\n\t\tRecHit on det "<<detid
1080  <<"\n\t\tRecHit in LP "<<tkrecHit->localPosition()
1081  <<"\n\t\tRecHit in GP "<<tkgeom_->idToDet(tkrecHit->geographicalId())->surface().toGlobal(tkrecHit->localPosition())
1082  <<"\n\t\tRecHit trackLocal vector "<<LV.x() << " " << LV.y() << " " << LV.z() <<std::endl;
1083 
1084  // FIXME: MOVE ALL THE EV AND ES ACCESS OUTSIDE THE LOOP!!!!
1085 
1086  //Retrieve tracker topology from geometry
1087  edm::ESHandle<TrackerTopology> tTopoHandle;
1088  es.get<TrackerTopologyRcd>().get(tTopoHandle);
1089  const TrackerTopology* const tTopo = tTopoHandle.product();
1090 
1091  // Getting SiStrip Gain settings
1092  edm::ESHandle<SiStripGain> gainHandle;
1093  es.get<SiStripGainRcd>().get( gainHandle );
1094  const SiStripGain* const stripGain = gainHandle.product();
1095 
1096  edm::ESHandle<SiStripQuality> qualityHandle;
1097  es.get<SiStripQualityRcd>().get("",qualityHandle);
1098  const SiStripQuality* stripQuality = qualityHandle.product();
1099 
1100  //Get SiStripCluster from SiStripRecHit
1101  if ( tkrecHit != NULL ){
1102  const SiStripCluster* SiStripCluster_ = &*(tkrecHit->cluster());
1103  SiStripClusterInfo SiStripClusterInfo_(*SiStripCluster_,es,detid);
1104 
1105  const Det2MEs MEs = findMEs(tTopo, detid);
1106  // if (clusterInfos(&SiStripClusterInfo_,detid, OnTrack, track_ok, LV, MEs, tTopo,stripGain,stripQuality,*digihandle))
1107  if (clusterInfos(&SiStripClusterInfo_,detid, OnTrack, track_ok, LV, MEs, tTopo,stripGain,stripQuality,digilist))
1108  {
1109  vPSiStripCluster.insert(SiStripCluster_);
1110  }
1111  }
1112  else
1113  {
1114  edm::LogError("SiStripMonitorTrack") << "NULL hit" << std::endl;
1115  }
1116  }
Det2MEs findMEs(const TrackerTopology *tTopo, const uint32_t detid)
GlobalPoint toGlobal(const Local2DPoint &lp) const
Conversion to the global R.F. from the R.F. of the GeomDet.
Definition: GeomDet.h:54
T y() const
Definition: PV3DBase.h:63
#define NULL
Definition: scimark2.h:8
bool clusterInfos(SiStripClusterInfo *cluster, const uint32_t detid, enum ClusterFlags flags, bool track_ok, LocalVector LV, const Det2MEs &MEs, const TrackerTopology *tTopo, const SiStripGain *stripGain, const SiStripQuality *stripQuality, const edm::DetSetVector< SiStripDigi > &digilist)
edm::ESHandle< TrackerGeometry > tkgeom_
std::unordered_set< const SiStripCluster * > vPSiStripCluster
T z() const
Definition: PV3DBase.h:64
#define LogTrace(id)
const T & get() const
Definition: EventSetup.h:55
const TrackerGeomDet * idToDet(DetId) const override
T x() const
Definition: PV3DBase.h:62
T const * product() const
Definition: ESHandle.h:86
void SiStripMonitorTrack::return2DME ( MonitorElement input,
int  binx,
int  biny,
double  value 
)
private

Definition at line 1297 of file SiStripMonitorTrack.cc.

References MonitorElement::getBinContent(), MonitorElement::setBinContent(), and relativeConstraints::value.

Referenced by fillControlViewHistos().

1297  {
1298 
1299  if (input->getBinContent(binx,biny)==0.) { input->setBinContent(binx,biny,value); }
1300  else { input->setBinContent(binx,biny,((input->getBinContent(binx,biny)+value)/2.)); }
1301 
1302 }
void setBinContent(int binx, double content)
set content of bin (1-D)
Definition: value.py:1
double getBinContent(int binx) const
get content of bin (1-D)
bool SiStripMonitorTrack::trackFilter ( const reco::Track track)
private

Definition at line 939 of file SiStripMonitorTrack.cc.

References reco::TrackBase::hitPattern(), reco::TrackBase::normalizedChi2(), reco::HitPattern::numberOfValidTrackerHits(), reco::TrackBase::p(), and reco::TrackBase::pt().

Referenced by trackStudyFromTrack(), and trackStudyFromTrajectory().

939  {
940  if (track.pt() < 0.8) return false;
941  if (track.p() < 2.0) return false;
942  if (track.hitPattern().numberOfValidTrackerHits() <= 6) return false;
943  if (track.normalizedChi2() > 10.0) return false;
944  return true;
945 }
double p() const
momentum vector magnitude
Definition: TrackBase.h:615
double normalizedChi2() const
chi-squared divided by n.d.o.f. (or chi-squared * 1e6 if n.d.o.f. is zero)
Definition: TrackBase.h:561
double pt() const
track transverse momentum
Definition: TrackBase.h:621
const HitPattern & hitPattern() const
Access the hit pattern, indicating in which Tracker layers the track has hits.
Definition: TrackBase.h:446
int numberOfValidTrackerHits() const
Definition: HitPattern.h:828
void SiStripMonitorTrack::trackStudy ( const edm::Event ev,
const edm::EventSetup es 
)
private

Definition at line 909 of file SiStripMonitorTrack.cc.

References digiToken_, edm::Event::getByToken(), edm::HandleBase::isValid(), edm::Handle< T >::product(), TrackLabel_, trackStudyFromTrajectory(), and trackToken_.

Referenced by analyze().

909  {
910 
911 using namespace std;
912 using namespace edm;
913 using namespace reco;
914 
915 
916  // edm::Handle<std::vector<Trajectory> > trajectories;
917  // ev.getByToken(trajectoryToken_, trajectories);
918 
919  // track input
920  edm::Handle<reco::TrackCollection > trackCollectionHandle;
921  ev.getByToken(trackToken_, trackCollectionHandle);//takes the track collection
922 
923  // digis list
925  ev.getByToken( digiToken_, digihandle );
927  auto& digilist = digihandle.isValid()? *(digihandle.product()) : dummy;
928 
929  if (trackCollectionHandle.isValid()){
930  trackStudyFromTrajectory(trackCollectionHandle,digilist,ev, es);
931  } else {
932  edm::LogError("SiStripMonitorTrack")<<"also Track Collection is not valid !! " << TrackLabel_<<std::endl;
933  return;
934  }
935 }
edm::EDGetTokenT< reco::TrackCollection > trackToken_
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:460
bool isValid() const
Definition: HandleBase.h:74
edm::EDGetTokenT< edm::DetSetVector< SiStripDigi > > digiToken_
void trackStudyFromTrajectory(edm::Handle< reco::TrackCollection > trackCollectionHandle, const edm::DetSetVector< SiStripDigi > &digilist, const edm::Event &ev, const edm::EventSetup &es)
T const * product() const
Definition: Handle.h:81
fixed size matrix
HLT enums.
void SiStripMonitorTrack::trackStudyFromTrack ( edm::Handle< reco::TrackCollection trackCollectionHandle,
const edm::DetSetVector< SiStripDigi > &  digilist,
const edm::Event ev,
const edm::EventSetup es 
)
private

Definition at line 947 of file SiStripMonitorTrack.cc.

References TkHistoMap::add(), DetId::det(), hitStudy(), tkhisto_NumberInactiveHits, tkhisto_NumberValidHits, tkhisto_NumMissingHits, TkHistoMap_On_, HiIsolationCommonParameters_cff::track, findElectronsInSiStrips_cfi::trackCollection, DetId::Tracker, and trackFilter().

952  {
953 
954  // edm::ESHandle<TransientTrackBuilder> builder;
955  // es.get<TransientTrackRecord>().get("TransientTrackBuilder",builder);
956  // const TransientTrackBuilder* transientTrackBuilder = builder.product();
957 
958  //numTracks = trackCollectionHandle->size();
959  reco::TrackCollection trackCollection = *trackCollectionHandle;
960  for (reco::TrackCollection::const_iterator track = trackCollection.begin(), etrack = trackCollection.end();
961  track!=etrack; ++track) {
962 
963  bool track_ok = trackFilter(*track);
964  // const reco::TransientTrack transientTrack = transientTrackBuilder->build(track);
965 
966  for (trackingRecHit_iterator hit = track->recHitsBegin(), ehit = track->recHitsEnd();
967  hit!=ehit; ++hit) {
968 
969  if (TkHistoMap_On_ ) {
970  uint32_t thedetid=(*hit)->rawId();
971  if ( SiStripDetId(thedetid).subDetector() >=3 && SiStripDetId(thedetid).subDetector() <=6) { //TIB/TID + TOB + TEC only
972  if ( ((*hit)->getType()==1) )
973  tkhisto_NumMissingHits->add(thedetid,1.);
974  if ( ((*hit)->getType()==2) )
975  tkhisto_NumberInactiveHits->add(thedetid,1.);
976  if ( ((*hit)->getType()==0) )
977  tkhisto_NumberValidHits->add(thedetid,1.);
978  }
979  }
980 
981  if (!(*hit)->isValid()) continue;
982  DetId detID = (*hit)->geographicalId();
983  if (detID.det() != DetId::Tracker) continue;
984  const TrackingRecHit* theHit = (*hit);
985  const ProjectedSiStripRecHit2D* projhit = dynamic_cast<const ProjectedSiStripRecHit2D*>( (theHit) );
986  const SiStripMatchedRecHit2D* matchedhit = dynamic_cast<const SiStripMatchedRecHit2D*> ( (theHit) );
987  const SiStripRecHit2D* hit2D = dynamic_cast<const SiStripRecHit2D*> ( (theHit) );
988  const SiStripRecHit1D* hit1D = dynamic_cast<const SiStripRecHit1D*> ( (theHit) );
989 
990  // GlobalPoint globalPoint = hit->globalPosition();
991  // reco::TrajectoryStateOnSurface stateOnSurface = transientTrack->stateOnSurface(globalPoint);
992 
993  LocalVector localMomentum;
994  hitStudy(ev,es,digilist,projhit,matchedhit,hit2D,hit1D,localMomentum,track_ok);
995  }
996 
997  // hit pattern of the track
998  // const reco::HitPattern & hitsPattern = track->hitPattern();
999  // loop over the hits of the track
1000  // for (int i=0; i<hitsPattern.numberOfHits(); i++) {
1001  // for (int i=0; i<hitsPattern.numberOfHits(reco::HitPattern::TRACK_HITS); i++) {
1002  // uint32_t hit = hitsPattern.getHitPattern(reco::HitPattern::TRACK_HITS,i);
1003 
1004  // if the hit is valid and in pixel barrel, print out the layer
1005  // if (hitsPattern.validHitFilter(hit) && hitsPattern.pixelBarrelHitFilter(hit))
1006 
1007  // if (!hitsPattern.validHitFilter(hit)) continue;
1008 // if (hitsPattern.pixelHitFilter(hit)) std::cout << "pixel" << std::endl; // pixel
1009 // if (hitsPattern.pixelBarrelHitFilter(hit)) std::cout << "pixel barrel" << std::endl; // pixel barrel
1010 // if (hitsPattern.pixelEndcapHitFilter(hit)) std::cout << "pixel endcap" << std::endl; // pixel endcap
1011 // if (hitsPattern.stripHitFilter(hit)) std::cout << "strip" << std::endl; // strip
1012 // if (hitsPattern.stripTIBHitFilter(hit)) std::cout << "TIB" << std::endl; // strip TIB
1013 // if (hitsPattern.stripTIDHitFilter(hit)) std::cout << "TID" << std::endl; // strip TID
1014 // if (hitsPattern.stripTOBHitFilter(hit)) std::cout << "TOB" << std::endl; // strip TOB
1015 // if (hitsPattern.stripTECHitFilter(hit)) std::cout << "TEC" << std::endl; // strip TEC
1016 // if (hitsPattern.muonDTHitFilter(hit)) std::cout << "DT" << std::endl; // muon DT
1017 // if (hitsPattern.muonCSCHitFilter(hit)) std::cout << "CSC" << std::endl; // muon CSC
1018 // if (hitsPattern.muonRPCHitFilter(hit)) std::cout << "RPC" << std::endl; // muon RPC
1019 //
1020 // // expert level: printout the hit in 10-bit binary format
1021 // std::cout << "hit in 10-bit binary format = ";
1022 // for (int j=9; j>=0; j--) {
1023 // int bit = (hit >> j) & 0x1;
1024 // std::cout << bit;
1025 // }
1026 // std::cout << std::endl;
1027  // }
1028  }
1029 }
std::vector< Track > TrackCollection
collection of Tracks
Definition: TrackFwd.h:14
bool trackFilter(const reco::Track &track)
TkHistoMap * tkhisto_NumMissingHits
Detector identifier class for the strip tracker.
Definition: SiStripDetId.h:17
Definition: DetId.h:18
TkHistoMap * tkhisto_NumberInactiveHits
void hitStudy(const edm::Event &ev, const edm::EventSetup &es, const edm::DetSetVector< SiStripDigi > &digilist, const ProjectedSiStripRecHit2D *projhit, const SiStripMatchedRecHit2D *matchedhit, const SiStripRecHit2D *hit2D, const SiStripRecHit1D *hit1D, LocalVector localMomentum, const bool track_ok)
Detector det() const
get the detector field from this detid
Definition: DetId.h:35
void add(uint32_t &detid, float value)
Definition: TkHistoMap.cc:213
TkHistoMap * tkhisto_NumberValidHits
TrackingRecHitCollection::base::const_iterator trackingRecHit_iterator
iterator over a vector of reference to TrackingRecHit in the same collection
void SiStripMonitorTrack::trackStudyFromTrajectory ( edm::Handle< reco::TrackCollection trackCollectionHandle,
const edm::DetSetVector< SiStripDigi > &  digilist,
const edm::Event ev,
const edm::EventSetup es 
)
private

Definition at line 1031 of file SiStripMonitorTrack.cc.

References mps_fire::i, LogDebug, numTracks, HiIsolationCommonParameters_cff::track, findElectronsInSiStrips_cfi::trackCollection, trackFilter(), and trajectoryStudy().

Referenced by trackStudy().

1036  {
1037  //Perform track study
1038  int i=0;
1039  reco::TrackCollection trackCollection = *trackCollectionHandle;
1040  numTracks = trackCollection.size();
1041  for (reco::TrackCollection::const_iterator track = trackCollection.begin(), etrack = trackCollection.end();
1042  track!=etrack; ++track) {
1043 
1044  LogDebug("SiStripMonitorTrack")
1045  << "Track number "<< ++i << std::endl;
1046  // << "\n\tmomentum: " << trackref->momentum()
1047  // << "\n\tPT: " << trackref->pt()
1048  // << "\n\tvertex: " << trackref->vertex()
1049  // << "\n\timpact parameter: " << trackref->d0()
1050  // << "\n\tcharge: " << trackref->charge()
1051  // << "\n\tnormalizedChi2: " << trackref->normalizedChi2()
1052  // <<"\n\tFrom EXTRA : "
1053  // <<"\n\t\touter PT "<< trackref->outerPt()<<std::endl;
1054 
1055  // trajectoryStudy(traj_iterator,trackref,es);
1056  bool track_ok = trackFilter(*track);
1057  trajectoryStudy(*track,digilist,ev,es,track_ok);
1058 
1059  }
1060 }
#define LogDebug(id)
std::vector< Track > TrackCollection
collection of Tracks
Definition: TrackFwd.h:14
bool trackFilter(const reco::Track &track)
void trajectoryStudy(const reco::Track &track, const edm::DetSetVector< SiStripDigi > &digilist, const edm::Event &ev, const edm::EventSetup &es, bool track_ok)
void SiStripMonitorTrack::trajectoryStudy ( const reco::Track track,
const edm::DetSetVector< SiStripDigi > &  digilist,
const edm::Event ev,
const edm::EventSetup es,
bool  track_ok 
)
private

Definition at line 746 of file SiStripMonitorTrack.cc.

References TkHistoMap::add(), ev, reco::Track::extra(), TrackingRecHit::geographicalId(), h, hcalSimParameters_cfi::hb, TrackerGeometry::idToDet(), LogDebug, LogTrace, funct::m, GluedGeomDet::monoDet(), SiStripMatchedRecHit2D::monoHit(), ProjectedSiStripRecHit2D::originalHit(), DetId::rawId(), reco::Track::recHitsBegin(), reco::Track::recHitsSize(), alignCSCRings::s, GluedGeomDet::stereoDet(), SiStripMatchedRecHit2D::stereoHit(), tkgeom_, tkhisto_NumberInactiveHits, tkhisto_NumberValidHits, tkhisto_NumMissingHits, TkHistoMap_On_, GeomDet::toGlobal(), and GeomDet::toLocal().

Referenced by trackStudyFromTrajectory().

752  {
753 
754  auto const & trajParams = track.extra()->trajParams();
755  assert(trajParams.size()==track.recHitsSize());
756  auto hb = track.recHitsBegin();
757  for(unsigned int h=0;h<track.recHitsSize();h++){
758  auto ttrh = *(hb+h);
759 
760 
761  if (TkHistoMap_On_ ) {
762  uint32_t thedetid=ttrh->rawId();
763  if ( SiStripDetId(thedetid).subDetector() >=3 && SiStripDetId(thedetid).subDetector() <=6) { //TIB/TID + TOB + TEC only
764  if ( (ttrh->getType()==1) )
765  tkhisto_NumMissingHits->add(thedetid,1.);
766  if ( (ttrh->getType()==2) )
767  tkhisto_NumberInactiveHits->add(thedetid,1.);
768  if ( (ttrh->getType()==0) )
769  tkhisto_NumberValidHits->add(thedetid,1.);
770  }
771  }
772 
773  if (!ttrh->isValid()) continue;
774 
775  //trajectory local direction and position on detector
776  auto statedirection = trajParams[h].momentum();
777 
778 
779  const ProjectedSiStripRecHit2D* projhit = dynamic_cast<const ProjectedSiStripRecHit2D*>( ttrh->hit() );
780  const SiStripMatchedRecHit2D* matchedhit = dynamic_cast<const SiStripMatchedRecHit2D*>( ttrh->hit() );
781  const SiStripRecHit2D* hit2D = dynamic_cast<const SiStripRecHit2D*>( ttrh->hit() );
782  const SiStripRecHit1D* hit1D = dynamic_cast<const SiStripRecHit1D*>( ttrh->hit() );
783 
784  // RecHitType type=Single;
785 
786  if(matchedhit){
787  LogTrace("SiStripMonitorTrack")<<"\nMatched recHit found"<< std::endl;
788  // type=Matched;
789 
790  const GluedGeomDet * gdet=static_cast<const GluedGeomDet *>(tkgeom_->idToDet(matchedhit->geographicalId()));
791  GlobalVector gtrkdirup=gdet->toGlobal(statedirection);
792  //mono side
793  const GeomDetUnit * monodet=gdet->monoDet();
794  statedirection=monodet->toLocal(gtrkdirup);
795  SiStripRecHit2D m = matchedhit->monoHit();
796  // if(statedirection.mag() != 0) RecHitInfo<SiStripRecHit2D>(&m,statedirection,trackref,es);
797  if(statedirection.mag()) RecHitInfo<SiStripRecHit2D>(&m,statedirection,digilist,ev,es,track_ok);
798  //stereo side
799  const GeomDetUnit * stereodet=gdet->stereoDet();
800  statedirection=stereodet->toLocal(gtrkdirup);
801  SiStripRecHit2D s = matchedhit->stereoHit();
802  // if(statedirection.mag() != 0) RecHitInfo<SiStripRecHit2D>(&s,statedirection,trackref,es);
803  if(statedirection.mag()) RecHitInfo<SiStripRecHit2D>(&s,statedirection,digilist,ev,es,track_ok);
804  }
805  else if(projhit){
806  LogTrace("SiStripMonitorTrack")<<"\nProjected recHit found"<< std::endl;
807  // type=Projected;
808  const GluedGeomDet * gdet=static_cast<const GluedGeomDet *>(tkgeom_->idToDet(projhit->geographicalId()));
809 
810  GlobalVector gtrkdirup=gdet->toGlobal(statedirection);
811  const SiStripRecHit2D originalhit=projhit->originalHit();
812  const GeomDetUnit * det;
813  if(!StripSubdetector(originalhit.geographicalId().rawId()).stereo()){
814  //mono side
815  LogTrace("SiStripMonitorTrack")<<"\nProjected recHit found MONO"<< std::endl;
816  det=gdet->monoDet();
817  statedirection=det->toLocal(gtrkdirup);
818  if(statedirection.mag()) RecHitInfo<SiStripRecHit2D>(&(originalhit),statedirection,digilist,ev,es,track_ok);
819  }
820  else{
821  LogTrace("SiStripMonitorTrack")<<"\nProjected recHit found STEREO"<< std::endl;
822  //stereo side
823  det=gdet->stereoDet();
824  statedirection=det->toLocal(gtrkdirup);
825  if(statedirection.mag()) RecHitInfo<SiStripRecHit2D>(&(originalhit),statedirection,digilist,ev,es,track_ok);
826  }
827  }else if (hit2D){
828  if(statedirection.mag()) RecHitInfo<SiStripRecHit2D>(hit2D,statedirection,digilist,ev,es,track_ok);
829  } else if (hit1D) {
830  if(statedirection.mag()) RecHitInfo<SiStripRecHit1D>(hit1D,statedirection,digilist,ev,es,track_ok);
831  } else {
832  LogDebug ("SiStripMonitorTrack")
833  << " LocalMomentum: "<<statedirection
834  << "\nLocal x-z plane angle: "<<atan2(statedirection.x(),statedirection.z());
835  }
836 
837  }
838 
839 }
#define LogDebug(id)
const GeomDetUnit * monoDet() const
Definition: GluedGeomDet.h:20
FWCore Framework interface EventSetupRecordImplementation h
Helper function to determine trigger accepts.
const TrackExtraRef & extra() const
reference to "extra" object
Definition: Track.h:189
size_t recHitsSize() const
Get number of RecHits. (Warning, this includes invalid hits, which are not physical hits)...
Definition: Track.h:119
GlobalPoint toGlobal(const Local2DPoint &lp) const
Conversion to the global R.F. from the R.F. of the GeomDet.
Definition: GeomDet.h:54
LocalPoint toLocal(const GlobalPoint &gp) const
Conversion to the R.F. of the GeomDet.
Definition: GeomDet.h:69
bool ev
uint32_t rawId() const
get the raw id
Definition: DetId.h:43
edm::ESHandle< TrackerGeometry > tkgeom_
TkHistoMap * tkhisto_NumMissingHits
trackingRecHit_iterator recHitsBegin() const
Iterator to first hit on the track.
Definition: Track.h:104
#define LogTrace(id)
SiStripRecHit2D originalHit() const
Detector identifier class for the strip tracker.
Definition: SiStripDetId.h:17
TkHistoMap * tkhisto_NumberInactiveHits
SiStripRecHit2D stereoHit() const
SiStripRecHit2D monoHit() const
const TrackerGeomDet * idToDet(DetId) const override
DetId geographicalId() const
void add(uint32_t &detid, float value)
Definition: TkHistoMap.cc:213
TkHistoMap * tkhisto_NumberValidHits
const GeomDetUnit * stereoDet() const
Definition: GluedGeomDet.h:21

Member Data Documentation

bool SiStripMonitorTrack::applyClusterQuality_
private

Definition at line 285 of file SiStripMonitorTrack.h.

Referenced by clusterInfos(), and SiStripMonitorTrack().

bool SiStripMonitorTrack::clchCMoriginTkHmap_On_
private

Definition at line 274 of file SiStripMonitorTrack.h.

Referenced by book(), clusterInfos(), and SiStripMonitorTrack().

edm::InputTag SiStripMonitorTrack::Cluster_src_
private

Definition at line 262 of file SiStripMonitorTrack.h.

Referenced by SiStripMonitorTrack().

MonitorElement* SiStripMonitorTrack::ClusterStoNCorr_OnTrack_FECCratevsFECSlot = 0
private

Definition at line 301 of file SiStripMonitorTrack.h.

Referenced by book(), and fillControlViewHistos().

MonitorElement* SiStripMonitorTrack::ClusterStoNCorr_OnTrack_FECSlotVsFECRing_TECM = 0
private

Definition at line 304 of file SiStripMonitorTrack.h.

Referenced by book(), and fillControlViewHistos().

MonitorElement* SiStripMonitorTrack::ClusterStoNCorr_OnTrack_FECSlotVsFECRing_TECP = 0
private

Definition at line 305 of file SiStripMonitorTrack.h.

Referenced by book(), and fillControlViewHistos().

MonitorElement* SiStripMonitorTrack::ClusterStoNCorr_OnTrack_FECSlotVsFECRing_TIBTID = 0
private

Definition at line 302 of file SiStripMonitorTrack.h.

Referenced by book(), and fillControlViewHistos().

MonitorElement* SiStripMonitorTrack::ClusterStoNCorr_OnTrack_FECSlotVsFECRing_TOB = 0
private

Definition at line 303 of file SiStripMonitorTrack.h.

Referenced by book(), and fillControlViewHistos().

MonitorElement* SiStripMonitorTrack::ClusterStoNCorr_OnTrack_TECM = 0
private

Definition at line 299 of file SiStripMonitorTrack.h.

Referenced by book(), and fillControlViewHistos().

MonitorElement* SiStripMonitorTrack::ClusterStoNCorr_OnTrack_TECP = 0
private

Definition at line 300 of file SiStripMonitorTrack.h.

Referenced by book(), and fillControlViewHistos().

MonitorElement* SiStripMonitorTrack::ClusterStoNCorr_OnTrack_TIBTID = 0
private

Definition at line 297 of file SiStripMonitorTrack.h.

Referenced by book(), and fillControlViewHistos().

MonitorElement* SiStripMonitorTrack::ClusterStoNCorr_OnTrack_TOB = 0
private

Definition at line 298 of file SiStripMonitorTrack.h.

Referenced by book(), and fillControlViewHistos().

edm::EDGetTokenT<edmNew::DetSetVector<SiStripCluster> > SiStripMonitorTrack::clusterToken_
private

Definition at line 265 of file SiStripMonitorTrack.h.

Referenced by AllClusters(), and SiStripMonitorTrack().

edm::ParameterSet SiStripMonitorTrack::conf_
private
SiStripDCSStatus* SiStripMonitorTrack::dcsStatus_
private

Definition at line 291 of file SiStripMonitorTrack.h.

Referenced by analyze(), SiStripMonitorTrack(), and ~SiStripMonitorTrack().

edm::EDGetTokenT<edm::DetSetVector<SiStripDigi> > SiStripMonitorTrack::digiToken_
private

Definition at line 264 of file SiStripMonitorTrack.h.

Referenced by AllClusters(), SiStripMonitorTrack(), and trackStudy().

edm::EventNumber_t SiStripMonitorTrack::eventNb
private

Definition at line 282 of file SiStripMonitorTrack.h.

Referenced by analyze(), and clusterInfos().

int SiStripMonitorTrack::firstEvent
private

Definition at line 283 of file SiStripMonitorTrack.h.

Referenced by looper.Looper::loop(), and Printer.Printer::process().

SiStripFolderOrganizer SiStripMonitorTrack::folderOrganizer_
private

Definition at line 293 of file SiStripMonitorTrack.h.

Referenced by findMEs().

GenericTriggerEventFlag* SiStripMonitorTrack::genTriggerEventFlag_
private

Definition at line 292 of file SiStripMonitorTrack.h.

Referenced by analyze(), dqmBeginRun(), and ~SiStripMonitorTrack().

std::string SiStripMonitorTrack::histname
private

Definition at line 162 of file SiStripMonitorTrack.h.

bool SiStripMonitorTrack::HistoFlag_On_
private

Definition at line 271 of file SiStripMonitorTrack.h.

float SiStripMonitorTrack::iLumisection
private

Definition at line 164 of file SiStripMonitorTrack.h.

Referenced by analyze().

float SiStripMonitorTrack::iOrbitSec
private

Definition at line 164 of file SiStripMonitorTrack.h.

std::map<std::string, LayerMEs> SiStripMonitorTrack::LayerMEsMap
private

Definition at line 248 of file SiStripMonitorTrack.h.

Referenced by book(), bookLayerMEs(), and findMEs().

LocalVector SiStripMonitorTrack::LV
private

Definition at line 163 of file SiStripMonitorTrack.h.

bool SiStripMonitorTrack::Mod_On_
private

Definition at line 268 of file SiStripMonitorTrack.h.

Referenced by book(), clusterInfos(), and SiStripMonitorTrack().

std::map<std::string, ModMEs> SiStripMonitorTrack::ModMEsMap
private

Definition at line 247 of file SiStripMonitorTrack.h.

Referenced by bookModMEs(), and clusterInfos().

int SiStripMonitorTrack::numTracks
private

Definition at line 173 of file SiStripMonitorTrack.h.

Referenced by trackStudyFromTrajectory().

bool SiStripMonitorTrack::OffHisto_On_
private

Definition at line 270 of file SiStripMonitorTrack.h.

edm::ParameterSet SiStripMonitorTrack::Parameters
private

Definition at line 261 of file SiStripMonitorTrack.h.

bool SiStripMonitorTrack::ring_flag
private

Definition at line 272 of file SiStripMonitorTrack.h.

std::map<std::string, RingMEs> SiStripMonitorTrack::RingMEsMap
private

Definition at line 249 of file SiStripMonitorTrack.h.

Referenced by book(), bookRingMEs(), and findMEs().

edm::ESHandle<SiStripDetCabling> SiStripMonitorTrack::SiStripDetCabling_
private
double SiStripMonitorTrack::sToNLowerLimit_
private

Definition at line 286 of file SiStripMonitorTrack.h.

Referenced by clusterInfos(), and SiStripMonitorTrack().

double SiStripMonitorTrack::sToNUpperLimit_
private

Definition at line 287 of file SiStripMonitorTrack.h.

Referenced by clusterInfos(), and SiStripMonitorTrack().

std::map<std::string, SubDetMEs> SiStripMonitorTrack::SubDetMEsMap
private

Definition at line 250 of file SiStripMonitorTrack.h.

Referenced by analyze(), book(), bookSubDetMEs(), and findMEs().

edm::ESHandle<TrackerGeometry> SiStripMonitorTrack::tkgeom_
private
TkHistoMap* SiStripMonitorTrack::tkhisto_ClChPerCMfromOrigin
private

Definition at line 170 of file SiStripMonitorTrack.h.

Referenced by book(), and clusterInfos().

TkHistoMap * SiStripMonitorTrack::tkhisto_ClChPerCMfromTrack
private

Definition at line 170 of file SiStripMonitorTrack.h.

Referenced by book(), and clusterInfos().

TkHistoMap * SiStripMonitorTrack::tkhisto_NumberInactiveHits
private

Definition at line 171 of file SiStripMonitorTrack.h.

Referenced by book(), trackStudyFromTrack(), and trajectoryStudy().

TkHistoMap * SiStripMonitorTrack::tkhisto_NumberValidHits
private

Definition at line 171 of file SiStripMonitorTrack.h.

Referenced by book(), trackStudyFromTrack(), and trajectoryStudy().

TkHistoMap* SiStripMonitorTrack::tkhisto_NumMissingHits
private

Definition at line 171 of file SiStripMonitorTrack.h.

Referenced by book(), trackStudyFromTrack(), and trajectoryStudy().

TkHistoMap * SiStripMonitorTrack::tkhisto_NumOffTrack
private

Definition at line 169 of file SiStripMonitorTrack.h.

Referenced by book(), and clusterInfos().

TkHistoMap * SiStripMonitorTrack::tkhisto_NumOnTrack
private

Definition at line 169 of file SiStripMonitorTrack.h.

Referenced by book(), and clusterInfos().

TkHistoMap* SiStripMonitorTrack::tkhisto_StoNCorrOnTrack
private

Definition at line 169 of file SiStripMonitorTrack.h.

Referenced by book(), and clusterInfos().

bool SiStripMonitorTrack::TkHistoMap_On_
private
std::string SiStripMonitorTrack::topFolderName_
private

Definition at line 166 of file SiStripMonitorTrack.h.

Referenced by book(), and SiStripMonitorTrack().

bool SiStripMonitorTrack::trackAssociatorCollection_in_EventTree
private

Definition at line 281 of file SiStripMonitorTrack.h.

std::string SiStripMonitorTrack::TrackLabel_
private

Definition at line 277 of file SiStripMonitorTrack.h.

Referenced by SiStripMonitorTrack(), and trackStudy().

std::string SiStripMonitorTrack::TrackProducer_
private

Definition at line 276 of file SiStripMonitorTrack.h.

Referenced by SiStripMonitorTrack().

bool SiStripMonitorTrack::tracksCollection_in_EventTree
private

Definition at line 280 of file SiStripMonitorTrack.h.

edm::EDGetTokenT<reco::TrackCollection> SiStripMonitorTrack::trackToken_
private

Definition at line 266 of file SiStripMonitorTrack.h.

Referenced by fillControlViewHistos(), SiStripMonitorTrack(), and trackStudy().

bool SiStripMonitorTrack::Trend_On_
private

Definition at line 269 of file SiStripMonitorTrack.h.

Referenced by analyze(), bookSubDetMEs(), and SiStripMonitorTrack().

std::unordered_set<const SiStripCluster*> SiStripMonitorTrack::vPSiStripCluster
private

Definition at line 279 of file SiStripMonitorTrack.h.

Referenced by AllClusters(), analyze(), and RecHitInfo().

double SiStripMonitorTrack::widthLowerLimit_
private

Definition at line 288 of file SiStripMonitorTrack.h.

Referenced by clusterInfos(), and SiStripMonitorTrack().

double SiStripMonitorTrack::widthUpperLimit_
private

Definition at line 289 of file SiStripMonitorTrack.h.

Referenced by clusterInfos(), and SiStripMonitorTrack().