CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
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, GlobalCache
LuminosityBlockContext
 
typedef
CacheTypes::LuminosityBlockSummaryCache 
LuminosityBlockSummaryCache
 
typedef CacheTypes::RunCache RunCache
 
typedef RunContextT< RunCache,
GlobalCache
RunContext
 
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 &)
 
void bookHistograms (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
 
void dqmBeginRun (const edm::Run &run, const edm::EventSetup &es)
 
 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
 
 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
 
 EDConsumerBase ()
 
ProductHolderIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const
 
std::vector
< ProductHolderIndexAndSkipBit >
const & 
itemsToGetFromEvent () const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesDependentUpon (const std::string &iProcessName, std::vector< const char * > &oModuleLabels) const
 
void modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
bool registeredToConsume (ProductHolderIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
void updateLookup (BranchType iBranchType, ProductHolderIndexHelper const &)
 
virtual ~EDConsumerBase ()
 

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, LocalVector LV, const Det2MEs &MEs)
 
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)
 
void fillMEs (SiStripClusterInfo *, const uint32_t detid, float, enum ClusterFlags, const LocalVector LV, const Det2MEs &MEs)
 
void fillModMEs (SiStripClusterInfo *cluster, std::string name, float cos, const uint32_t detid, const LocalVector LV)
 
Det2MEs findMEs (const TrackerTopology *tTopo, const uint32_t detid)
 
MonitorElementhandleBookMEs (DQMStore::IBooker &, std::string &, std::string &, std::string &, std::string &)
 
void hitStudy (const edm::EventSetup &es, const ProjectedSiStripRecHit2D *projhit, const SiStripMatchedRecHit2D *matchedhit, const SiStripRecHit2D *hit2D, const SiStripRecHit1D *hit1D, LocalVector localMomentum)
 
template<class T >
void RecHitInfo (const T *tkrecHit, LocalVector LV, const edm::EventSetup &)
 
void trackStudy (const edm::Event &ev, const edm::EventSetup &es)
 
void trackStudyFromTrack (edm::Handle< reco::TrackCollection > trackCollectionHandle, const edm::EventSetup &es)
 
void trackStudyFromTrajectory (edm::Handle< TrajTrackAssociationCollection > TItkAssociatorCollection, const edm::EventSetup &es)
 
void trajectoryStudy (const edm::Ref< std::vector< Trajectory > > traj, const edm::EventSetup &es)
 

Private Attributes

bool applyClusterQuality_
 
bool clchCMoriginTkHmap_On_
 
edm::InputTag Cluster_src_
 
edm::EDGetTokenT
< edmNew::DetSetVector
< SiStripCluster > > 
clusterToken_
 
edm::ParameterSet conf_
 
SiStripDCSStatusdcsStatus_
 
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::TrackCollection
trackToken_
 
edm::EDGetTokenT
< TrajTrackAssociationCollection
trackTrajToken_
 
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::NoCache
globalBeginLuminosityBlockSummary (edm::LuminosityBlock const &, edm::EventSetup const &, LuminosityBlockContext const *)
 
static std::shared_ptr
< dqmDetails::NoCache
globalBeginRunSummary (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 25 of file SiStripMonitorTrack.cc.

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

25  :
26  conf_(conf),
28  firstEvent(-1),
30 {
31  Cluster_src_ = conf.getParameter<edm::InputTag>("Cluster_src");
32  Mod_On_ = conf.getParameter<bool>("Mod_On");
33  Trend_On_ = conf.getParameter<bool>("Trend_On");
34  TkHistoMap_On_ = conf.getParameter<bool>("TkHistoMap_On");
35  clchCMoriginTkHmap_On_ = conf.getParameter<bool>("clchCMoriginTkHmap_On");
36 
37  TrackProducer_ = conf_.getParameter<std::string>("TrackProducer");
38  TrackLabel_ = conf_.getParameter<std::string>("TrackLabel");
39 
40  topFolderName_ = conf_.getParameter<std::string>("TopFolderName");
41 
42  clusterToken_ = consumes<edmNew::DetSetVector<SiStripCluster> >(Cluster_src_);
43  trackToken_ = consumes<reco::TrackCollection>(edm::InputTag(TrackProducer_,TrackLabel_) );
44  trackTrajToken_ = consumes<TrajTrackAssociationCollection>(edm::InputTag(TrackProducer_,TrackLabel_) );
45 
46  // cluster quality conditions
47  edm::ParameterSet cluster_condition = conf_.getParameter<edm::ParameterSet>("ClusterConditions");
48  applyClusterQuality_ = cluster_condition.getParameter<bool>("On");
49  sToNLowerLimit_ = cluster_condition.getParameter<double>("minStoN");
50  sToNUpperLimit_ = cluster_condition.getParameter<double>("maxStoN");
51  widthLowerLimit_ = cluster_condition.getParameter<double>("minWidth");
52  widthUpperLimit_ = cluster_condition.getParameter<double>("maxWidth");
53 
54 
55  // Create DCS Status
56  bool checkDCS = conf_.getParameter<bool>("UseDCSFiltering");
57  if (checkDCS) dcsStatus_ = new SiStripDCSStatus(consumesCollector());
58  else dcsStatus_ = 0;
59 }
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< TrajTrackAssociationCollection > trackTrajToken_
GenericTriggerEventFlag * genTriggerEventFlag_
edm::EDGetTokenT< edmNew::DetSetVector< SiStripCluster > > clusterToken_
SiStripMonitorTrack::~SiStripMonitorTrack ( )

Definition at line 62 of file SiStripMonitorTrack.cc.

References dcsStatus_, and genTriggerEventFlag_.

62  {
63  if (dcsStatus_) delete dcsStatus_;
65 }
SiStripDCSStatus * dcsStatus_
GenericTriggerEventFlag * genTriggerEventFlag_

Member Function Documentation

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

Definition at line 930 of file SiStripMonitorTrack.cc.

References clusterInfos(), clusterToken_, cond::rpcobgas::detid, findMEs(), edm::EventSetup::get(), edm::Event::getByToken(), edm::HandleBase::isValid(), LogDebug, OffTrack, edm::ESHandle< class >::product(), and vPSiStripCluster.

Referenced by analyze().

931 {
932 
933  //Retrieve tracker topology from geometry
934  edm::ESHandle<TrackerTopology> tTopoHandle;
935  es.get<TrackerTopologyRcd>().get(tTopoHandle);
936  const TrackerTopology* const tTopo = tTopoHandle.product();
937 
939  ev.getByToken( clusterToken_, siStripClusterHandle);
940  if (!siStripClusterHandle.isValid()){
941  edm::LogError("SiStripMonitorTrack")<< "ClusterCollection is not valid!!" << std::endl;
942  return;
943  }
944  else
945  {
946  //Loop on Dets
947  for (edmNew::DetSetVector<SiStripCluster>::const_iterator DSViter=siStripClusterHandle->begin();
948  DSViter!=siStripClusterHandle->end();
949  DSViter++)
950  {
951  uint32_t detid=DSViter->id();
952  const Det2MEs MEs = findMEs(tTopo, detid);
953 
954  LogDebug("SiStripMonitorTrack") << "on detid "<< detid << " N Cluster= " << DSViter->size();
955 
956  //Loop on Clusters
958  ClusIter!=DSViter->end();
959  ClusIter++)
960  {
961  if (vPSiStripCluster.find(&*ClusIter) == vPSiStripCluster.end())
962  {
963  SiStripClusterInfo SiStripClusterInfo_(*ClusIter,es,detid);
964  clusterInfos(&SiStripClusterInfo_,detid,OffTrack,LV,MEs);
965  }
966  }
967  }
968  }
969 }
#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:457
data_type const * const_iterator
Definition: DetSetNew.h:30
edmNew::DetSet< SiStripCluster >::const_iterator ClusIter
math::XYZTLorentzVectorD LV
std::unordered_set< const SiStripCluster * > vPSiStripCluster
bool isValid() const
Definition: HandleBase.h:75
const T & get() const
Definition: EventSetup.h:55
T const * product() const
Definition: ESHandle.h:86
bool clusterInfos(SiStripClusterInfo *cluster, const uint32_t detid, enum ClusterFlags flags, LocalVector LV, const Det2MEs &MEs)
edm::EDGetTokenT< edmNew::DetSetVector< SiStripCluster > > clusterToken_
void SiStripMonitorTrack::analyze ( const edm::Event e,
const edm::EventSetup es 
)
virtual

Implements edm::stream::EDAnalyzerBase.

Definition at line 91 of file SiStripMonitorTrack.cc.

References GenericTriggerEventFlag::accept(), AllClusters(), dcsStatus_, edm::EventID::event(), eventNb, 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.

92 {
93  // Filter out events if DCS checking is requested
94  if (dcsStatus_ && !dcsStatus_->getStatus(e,es)) return;
95 
96  // Filter out events if Trigger Filtering is requested
97  if (genTriggerEventFlag_->on()&& ! genTriggerEventFlag_->accept( e, es) ) return;
98 
99  //initialization of global quantities
100  LogDebug("SiStripMonitorTrack") << "[SiStripMonitorTrack::analyse] " << "Run " << e.id().run() << " Event " << e.id().event() << std::endl;
101  eventNb = e.id().event();
102  vPSiStripCluster.clear();
103 
104  iLumisection = e.orbitNumber()/262144.0;
105 
106  // initialise # of clusters
107  for (std::map<std::string, SubDetMEs>::iterator iSubDet = SubDetMEsMap.begin();
108  iSubDet != SubDetMEsMap.end(); iSubDet++) {
109  iSubDet->second.totNClustersOnTrack = 0;
110  iSubDet->second.totNClustersOffTrack = 0;
111  }
112 
113  //Perform track study
114  trackStudy(e, es);
115 
116  //Perform Cluster Study (irrespectively to tracks)
117 
118  AllClusters(e, es); //analyzes the off Track Clusters
119 
120  //Summary Counts of clusters
121  std::map<std::string, MonitorElement*>::iterator iME;
122  std::map<std::string, LayerMEs>::iterator iLayerME;
123 
124  for (std::map<std::string, SubDetMEs>::iterator iSubDet = SubDetMEsMap.begin();
125  iSubDet != SubDetMEsMap.end(); iSubDet++) {
126  SubDetMEs subdet_mes = iSubDet->second;
127  if (subdet_mes.totNClustersOnTrack > 0) {
128  fillME(subdet_mes.nClustersOnTrack, subdet_mes.totNClustersOnTrack);
129  }
130  fillME(subdet_mes.nClustersOffTrack, subdet_mes.totNClustersOffTrack);
131  if (Trend_On_) {
132  fillME(subdet_mes.nClustersTrendOnTrack,iLumisection,subdet_mes.totNClustersOnTrack);
133  fillME(subdet_mes.nClustersTrendOffTrack,iLumisection,subdet_mes.totNClustersOffTrack);
134  }
135  }
136 }
#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
void SiStripMonitorTrack::book ( DQMStore::IBooker ibooker,
const TrackerTopology tTopo 
)
private

Definition at line 139 of file SiStripMonitorTrack.cc.

References bookLayerMEs(), bookModMEs(), bookRingMEs(), bookSubDetMEs(), clchCMoriginTkHmap_On_, cond::rpcobgas::detid, SiStripFolderOrganizer::GetSubDetAndLayer(), SiStripFolderOrganizer::getSubDetFolderAndTag(), SiStripHistoId::getSubdetid(), LayerMEsMap, Mod_On_, mergeVDriftHistosByStation::name, alignCSCRings::ring_id, RingMEsMap, 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().

140 {
141 
142  SiStripFolderOrganizer folder_organizer;
143  folder_organizer.setSiStripFolderName(topFolderName_);
144  //******** TkHistoMaps
145  if (TkHistoMap_On_) {
146  tkhisto_StoNCorrOnTrack = new TkHistoMap(ibooker , topFolderName_ ,"TkHMap_StoNCorrOnTrack", 0.0,true);
147  tkhisto_NumOnTrack = new TkHistoMap(ibooker , topFolderName_, "TkHMap_NumberOfOnTrackCluster", 0.0,true);
148  tkhisto_NumOffTrack = new TkHistoMap(ibooker , topFolderName_, "TkHMap_NumberOfOfffTrackCluster",0.0,true);
149  tkhisto_ClChPerCMfromTrack = new TkHistoMap(ibooker , topFolderName_, "TkHMap_ChargePerCMfromTrack",0.0,true);
150  tkhisto_NumMissingHits = new TkHistoMap(ibooker , topFolderName_, "TkHMap_NumberMissingHits",0.0,true);
151  tkhisto_NumberInactiveHits = new TkHistoMap(ibooker , topFolderName_, "TkHMap_NumberInactiveHits",0.0,true);
152  tkhisto_NumberValidHits = new TkHistoMap(ibooker , topFolderName_, "TkHMap_NumberValidHits",0.0,true);
153  }
155  tkhisto_ClChPerCMfromOrigin = new TkHistoMap(ibooker , topFolderName_, "TkHMap_ChargePerCMfromOrigin",0.0,true);
156  //******** TkHistoMaps
157 
158  std::vector<uint32_t> vdetId_;
159  SiStripDetCabling_->addActiveDetectorsRawIds(vdetId_);
160  //Histos for each detector, layer and module
161  for (std::vector<uint32_t>::const_iterator detid_iter=vdetId_.begin();detid_iter!=vdetId_.end();detid_iter++){ //loop on all the active detid
162  uint32_t detid = *detid_iter;
163 
164  if (detid < 1){
165  edm::LogError("SiStripMonitorTrack")<< "[" <<__PRETTY_FUNCTION__ << "] invalid detid " << detid<< std::endl;
166  continue;
167  }
168 
169 
171 
172  // book Layer and RING plots
173  std::pair<std::string,int32_t> det_layer_pair = folder_organizer.GetSubDetAndLayer(detid,tTopo,false);
174  /*
175  std::string thickness;
176  std::pair<std::string,int32_t> det_layer_pair_test = folder_organizer.GetSubDetAndLayerThickness(detid,tTopo,thickness);
177  std::cout << "[SiStripMonitorTrack::book] det_layer_pair " << det_layer_pair.first << " " << det_layer_pair.second << " " << thickness << std::endl;
178  */
179 
180  SiStripHistoId hidmanager;
181  std::string layer_id = hidmanager.getSubdetid(detid, tTopo, false);
182 
183  std::map<std::string, LayerMEs>::iterator iLayerME = LayerMEsMap.find(layer_id);
184  if(iLayerME==LayerMEsMap.end()){
185  folder_organizer.setLayerFolder(detid, tTopo, det_layer_pair.second, false);
186  bookLayerMEs(ibooker , detid, layer_id);
187  }
188 
189  std::string subdet = det_layer_pair.first;
190  if ( subdet.find("TEC") != std::string::npos || subdet.find("TID") != std::string::npos ) {
191  std::pair<std::string,int32_t> det_ring_pair = folder_organizer.GetSubDetAndLayer(detid,tTopo,true);
192  std::string ring_id = hidmanager.getSubdetid(detid, tTopo, true);
193  std::map<std::string, RingMEs>::iterator iRingME = RingMEsMap.find(ring_id);
194  if(iRingME==RingMEsMap.end()){
195  folder_organizer.setLayerFolder(detid, tTopo, det_ring_pair.second, true);
196  bookRingMEs(ibooker , detid, ring_id);
197  }
198  }
199 
200  // book sub-detector plots
201  std::pair<std::string,std::string> sdet_pair = folder_organizer.getSubDetFolderAndTag(detid, tTopo);
202  if (SubDetMEsMap.find(sdet_pair.second) == SubDetMEsMap.end()){
203  ibooker.setCurrentFolder(sdet_pair.first);
204  bookSubDetMEs(ibooker , sdet_pair.second);
205  }
206  // book module plots
207  if(Mod_On_) {
208  folder_organizer.setDetectorFolder(detid,tTopo);
209  bookModMEs(ibooker , *detid_iter);
210  }
211  }//end loop on detectors detid
212 }
TkHistoMap * tkhisto_NumOffTrack
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
std::pair< std::string, int32_t > GetSubDetAndLayer(const uint32_t &detid, const TrackerTopology *tTopo, bool ring_flag=0)
edm::ESHandle< SiStripDetCabling > SiStripDetCabling_
void bookLayerMEs(DQMStore::IBooker &, const uint32_t, std::string &)
void setDetectorFolder(uint32_t rawdetid, const TrackerTopology *tTopo)
std::map< std::string, SubDetMEs > SubDetMEsMap
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 setLayerFolder(uint32_t rawdetid, const TrackerTopology *tTopo, int32_t layer=0, bool ring_flag=0)
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:274
TkHistoMap * tkhisto_ClChPerCMfromOrigin
TkHistoMap * tkhisto_ClChPerCMfromTrack
TkHistoMap * tkhisto_NumOnTrack
TkHistoMap * tkhisto_StoNCorrOnTrack
void bookRingMEs(DQMStore::IBooker &, const uint32_t, std::string &)
TkHistoMap * tkhisto_NumMissingHits
TkHistoMap * tkhisto_NumberValidHits
std::map< std::string, LayerMEs > LayerMEsMap
void SiStripMonitorTrack::bookHistograms ( DQMStore::IBooker ibooker,
edm::Run const &  run,
edm::EventSetup const &  es 
)
overridevirtual

Implements DQMEDAnalyzer.

Definition at line 81 of file SiStripMonitorTrack.cc.

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

82 {
83  //Retrieve tracker topology from geometry
85  es.get<TrackerTopologyRcd>().get(tTopoHandle);
86  const TrackerTopology* const tTopo = tTopoHandle.product();
87  book(ibooker , tTopo);
88 }
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 282 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::ClusterNoiseOffTrack, SiStripMonitorTrack::LayerMEs::ClusterNoiseOnTrack, SiStripMonitorTrack::LayerMEs::ClusterPosOffTrack, SiStripMonitorTrack::LayerMEs::ClusterPosOnTrack, SiStripMonitorTrack::LayerMEs::ClusterStoNCorrOnTrack, SiStripMonitorTrack::LayerMEs::ClusterWidthOffTrack, SiStripMonitorTrack::LayerMEs::ClusterWidthOnTrack, SiStripHistoId::createHistoLayer(), handleBookMEs(), LayerMEsMap, mergeVDriftHistosByStation::name, SiStripDetCabling_, and AlCaHLTBitMon_QueryRunRegistry::string.

Referenced by book().

283 {
284  std::string name = "layer";
285  std::string view = "layerView";
286  std::string hname;
287  std::string hpar;
288  SiStripHistoId hidmanager;
289 
290  LayerMEs theLayerMEs;
291  theLayerMEs.ClusterStoNCorrOnTrack = 0;
292  theLayerMEs.ClusterChargeCorrOnTrack = 0;
293  theLayerMEs.ClusterChargeOnTrack = 0;
294  theLayerMEs.ClusterChargeOffTrack = 0;
295  theLayerMEs.ClusterNoiseOnTrack = 0;
296  theLayerMEs.ClusterNoiseOffTrack = 0;
297  theLayerMEs.ClusterWidthOnTrack = 0;
298  theLayerMEs.ClusterWidthOffTrack = 0;
299  theLayerMEs.ClusterPosOnTrack = 0;
300  theLayerMEs.ClusterPosOffTrack = 0;
301  theLayerMEs.ClusterChargePerCMfromTrack = 0;
302  theLayerMEs.ClusterChargePerCMfromOriginOnTrack = 0;
303  theLayerMEs.ClusterChargePerCMfromOriginOffTrack = 0;
304 
305  // Signal/Noise (w/ cluster charge corrected)
306  hname = hidmanager.createHistoLayer("Summary_ClusterStoNCorr",name,layer_id,"OnTrack");
307  hpar = "TH1ClusterStoNCorr";
308  theLayerMEs.ClusterStoNCorrOnTrack = handleBookMEs(ibooker,view,layer_id,hpar,hname);
309 
310  // Cluster Charge Corrected
311  hname = hidmanager.createHistoLayer("Summary_ClusterChargeCorr",name,layer_id,"OnTrack");
312  hpar = "TH1ClusterChargeCorr";
313  theLayerMEs.ClusterChargeCorrOnTrack = handleBookMEs(ibooker,view,layer_id,hpar,hname);
314 
315  // Cluster Charge (On and Off Track)
316  hname = hidmanager.createHistoLayer("Summary_ClusterCharge",name,layer_id,"OnTrack");
317  hpar = "TH1ClusterCharge";
318  theLayerMEs.ClusterChargeOnTrack = handleBookMEs(ibooker,view,layer_id,hpar,hname);
319 
320  hname = hidmanager.createHistoLayer("Summary_ClusterCharge",name,layer_id,"OffTrack");
321  hpar = "TH1ClusterCharge";
322  theLayerMEs.ClusterChargeOffTrack = handleBookMEs(ibooker,view,layer_id,hpar,hname);
323 
324  // Cluster Noise (On and Off Track)
325  hname = hidmanager.createHistoLayer("Summary_ClusterNoise",name,layer_id,"OnTrack");
326  hpar = "TH1ClusterNoise";
327  theLayerMEs.ClusterNoiseOnTrack = handleBookMEs(ibooker,view,layer_id,hpar,hname);
328 
329  hname = hidmanager.createHistoLayer("Summary_ClusterNoise",name,layer_id,"OffTrack");
330  hpar = "TH1ClusterNoise";
331  theLayerMEs.ClusterNoiseOffTrack = handleBookMEs(ibooker,view,layer_id,hpar,hname);
332 
333  // Cluster Width (On and Off Track)
334  hname = hidmanager.createHistoLayer("Summary_ClusterWidth",name,layer_id,"OnTrack");
335  hpar = "TH1ClusterWidth";
336  theLayerMEs.ClusterWidthOnTrack = handleBookMEs(ibooker,view,layer_id,hpar,hname);
337 
338  hname = hidmanager.createHistoLayer("Summary_ClusterWidth",name,layer_id,"OffTrack");
339  hpar = "TH1ClusterWidth";
340  theLayerMEs.ClusterWidthOffTrack = handleBookMEs(ibooker,view,layer_id,hpar,hname);
341 
342  //Cluster Position
343  short total_nr_strips = SiStripDetCabling_->nApvPairs(mod_id) * 2 * 128;
344  if (layer_id.find("TEC") != std::string::npos) total_nr_strips = 3 * 2 * 128;
345 
346  hname = hidmanager.createHistoLayer("Summary_ClusterPosition",name,layer_id,"OnTrack");
347  theLayerMEs.ClusterPosOnTrack = ibooker.book1D(hname, hname, total_nr_strips, 0.5,total_nr_strips+0.5);
348 
349  hname = hidmanager.createHistoLayer("Summary_ClusterPosition",name,layer_id,"OffTrack");
350  theLayerMEs.ClusterPosOffTrack = ibooker.book1D(hname, hname, total_nr_strips, 0.5,total_nr_strips+0.5);
351 
352  // dQ/dx
353  hname = hidmanager.createHistoLayer("Summary_ClusterChargePerCMfromTrack",name,layer_id,"");
354  hpar = "TH1ClusterChargePerCM";
355  theLayerMEs.ClusterChargePerCMfromTrack = handleBookMEs(ibooker,view,layer_id,hpar,hname);
356 
357  hname = hidmanager.createHistoLayer("Summary_ClusterChargePerCMfromOrigin",name,layer_id,"OnTrack");
358  hpar = "TH1ClusterChargePerCM";
359  theLayerMEs.ClusterChargePerCMfromOriginOnTrack = handleBookMEs(ibooker,view,layer_id,hpar,hname);
360 
361  hname = hidmanager.createHistoLayer("Summary_ClusterChargePerCMfromOrigin",name,layer_id,"OffTrack");
362  hpar = "TH1ClusterChargePerCM";
363  theLayerMEs.ClusterChargePerCMfromOriginOffTrack = handleBookMEs(ibooker,view,layer_id,hpar,hname);
364 
365  //bookeeping
366  LayerMEsMap[layer_id]=theLayerMEs;
367 
368 }
edm::ESHandle< SiStripDetCabling > SiStripDetCabling_
MonitorElement * book1D(Args &&...args)
Definition: DQMStore.h:115
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 
)
private

Definition at line 527 of file SiStripMonitorTrack.cc.

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

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

528 {
529  Parameters = conf_.getParameter<edm::ParameterSet>(ParameterSetLabel);
530  return ibooker.book1D(HistoName,HistoName,
531  Parameters.getParameter<int32_t>("Nbinx"),
532  Parameters.getParameter<double>("xmin"),
533  Parameters.getParameter<double>("xmax")
534  );
535 }
T getParameter(std::string const &) const
edm::ParameterSet conf_
MonitorElement * book1D(Args &&...args)
Definition: DQMStore.h:115
std::string HistoName
edm::ParameterSet Parameters
MonitorElement * SiStripMonitorTrack::bookME2D ( DQMStore::IBooker ibooker,
const char *  ParameterSetLabel,
const char *  HistoName 
)
private

Definition at line 538 of file SiStripMonitorTrack.cc.

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

539 {
540  Parameters = conf_.getParameter<edm::ParameterSet>(ParameterSetLabel);
541  return ibooker.book2D(HistoName,HistoName,
542  Parameters.getParameter<int32_t>("Nbinx"),
543  Parameters.getParameter<double>("xmin"),
544  Parameters.getParameter<double>("xmax"),
545  Parameters.getParameter<int32_t>("Nbiny"),
546  Parameters.getParameter<double>("ymin"),
547  Parameters.getParameter<double>("ymax")
548  );
549 }
T getParameter(std::string const &) const
edm::ParameterSet conf_
MonitorElement * book2D(Args &&...args)
Definition: DQMStore.h:133
std::string HistoName
edm::ParameterSet Parameters
MonitorElement * SiStripMonitorTrack::bookME3D ( DQMStore::IBooker ibooker,
const char *  ParameterSetLabel,
const char *  HistoName 
)
private

Definition at line 552 of file SiStripMonitorTrack.cc.

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

553 {
554  Parameters = conf_.getParameter<edm::ParameterSet>(ParameterSetLabel);
555  return ibooker.book3D(HistoName,HistoName,
556  Parameters.getParameter<int32_t>("Nbinx"),
557  Parameters.getParameter<double>("xmin"),
558  Parameters.getParameter<double>("xmax"),
559  Parameters.getParameter<int32_t>("Nbiny"),
560  Parameters.getParameter<double>("ymin"),
561  Parameters.getParameter<double>("ymax"),
562  Parameters.getParameter<int32_t>("Nbinz"),
563  Parameters.getParameter<double>("zmin"),
564  Parameters.getParameter<double>("zmax")
565  );
566 }
T getParameter(std::string const &) const
edm::ParameterSet conf_
std::string HistoName
edm::ParameterSet Parameters
MonitorElement * book3D(Args &&...args)
Definition: DQMStore.h:151
MonitorElement * SiStripMonitorTrack::bookMEProfile ( DQMStore::IBooker ibooker,
const char *  ParameterSetLabel,
const char *  HistoName 
)
private

Definition at line 569 of file SiStripMonitorTrack.cc.

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

Referenced by bookModMEs().

570 {
571  Parameters = conf_.getParameter<edm::ParameterSet>(ParameterSetLabel);
572  return ibooker.bookProfile(HistoName,HistoName,
573  Parameters.getParameter<int32_t>("Nbinx"),
574  Parameters.getParameter<double>("xmin"),
575  Parameters.getParameter<double>("xmax"),
576  Parameters.getParameter<int32_t>("Nbiny"),
577  Parameters.getParameter<double>("ymin"),
578  Parameters.getParameter<double>("ymax"),
579  "" );
580 }
T getParameter(std::string const &) const
MonitorElement * bookProfile(Args &&...args)
Definition: DQMStore.h:157
edm::ParameterSet conf_
std::string HistoName
edm::ParameterSet Parameters
MonitorElement * SiStripMonitorTrack::bookMETrend ( DQMStore::IBooker ibooker,
const char *  HistoName 
)
private

Definition at line 583 of file SiStripMonitorTrack.cc.

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

Referenced by bookSubDetMEs().

584 {
585  edm::ParameterSet ParametersTrend = conf_.getParameter<edm::ParameterSet>("Trending");
587  ParametersTrend.getParameter<int32_t>("Nbins"),
588  ParametersTrend.getParameter<double>("xmin"),
589  ParametersTrend.getParameter<double>("xmax"),
590  0 , 0 , "" );
591  if (me->kind() == MonitorElement::DQM_KIND_TPROFILE) me->getTH1()->SetCanExtend(TH1::kAllAxes);
592 
593  if(!me) return me;
594  me->setAxisTitle("Lumisection",1);
595  return me;
596 }
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 215 of file SiStripMonitorTrack.cc.

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

Referenced by book().

216 {
217  std::string name = "det";
218  SiStripHistoId hidmanager;
219  std::string hid = hidmanager.createHistoId("",name,id);
220  std::map<std::string, ModMEs>::iterator iModME = ModMEsMap.find(hid);
221  if(iModME==ModMEsMap.end()){
222  ModMEs theModMEs;
223  theModMEs.ClusterStoNCorr = 0;
224  theModMEs.ClusterCharge = 0;
225  theModMEs.ClusterChargeCorr = 0;
226  theModMEs.ClusterWidth = 0;
227  theModMEs.ClusterPos = 0;
228  theModMEs.ClusterPGV = 0;
229  theModMEs.ClusterChargePerCMfromTrack = 0;
230  theModMEs.ClusterChargePerCMfromOrigin = 0;
231 
232  // Cluster Width
233  theModMEs.ClusterWidth=bookME1D(ibooker , "TH1ClusterWidth", hidmanager.createHistoId("ClusterWidth_OnTrack",name,id).c_str());
234  ibooker.tag(theModMEs.ClusterWidth,id);
235  // Cluster Charge
236  theModMEs.ClusterCharge=bookME1D(ibooker , "TH1ClusterCharge", hidmanager.createHistoId("ClusterCharge_OnTrack",name,id).c_str());
237  ibooker.tag(theModMEs.ClusterCharge,id);
238  // Cluster Charge Corrected
239  theModMEs.ClusterChargeCorr=bookME1D(ibooker , "TH1ClusterChargeCorr", hidmanager.createHistoId("ClusterChargeCorr_OnTrack",name,id).c_str());
240  ibooker.tag(theModMEs.ClusterChargeCorr,id);
241  // Cluster StoN Corrected
242  theModMEs.ClusterStoNCorr=bookME1D(ibooker , "TH1ClusterStoNCorrMod", hidmanager.createHistoId("ClusterStoNCorr_OnTrack",name,id).c_str());
243  ibooker.tag(theModMEs.ClusterStoNCorr,id);
244  // Cluster Position
245  short total_nr_strips = SiStripDetCabling_->nApvPairs(id) * 2 * 128;
246  theModMEs.ClusterPos=ibooker.book1D(hidmanager.createHistoId("ClusterPosition_OnTrack",name,id).c_str(),hidmanager.createHistoId("ClusterPosition_OnTrack",name,id).c_str(),total_nr_strips,0.5,total_nr_strips+0.5);
247  ibooker.tag(theModMEs.ClusterPos,id);
248  // Cluster PGV
249  theModMEs.ClusterPGV=bookMEProfile(ibooker , "TProfileClusterPGV", hidmanager.createHistoId("PGV_OnTrack",name,id).c_str());
250  ibooker.tag(theModMEs.ClusterPGV,id);
251  // Cluster Charge per cm
252  theModMEs.ClusterChargePerCMfromTrack = bookME1D(ibooker , "TH1ClusterChargePerCM", hidmanager.createHistoId("ClusterChargePerCMfromTrack",name,id).c_str());
253  ibooker.tag(theModMEs.ClusterChargePerCMfromTrack,id);
254 
255  theModMEs.ClusterChargePerCMfromOrigin = bookME1D(ibooker , "TH1ClusterChargePerCM", hidmanager.createHistoId("ClusterChargePerCMfromOrigin",name,id).c_str());
256  ibooker.tag(theModMEs.ClusterChargePerCMfromOrigin,id);
257 
258  ModMEsMap[hid]=theModMEs;
259  }
260 }
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:286
std::string createHistoId(std::string description, std::string id_type, uint32_t component_id)
std::map< std::string, ModMEs > ModMEsMap
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 370 of file SiStripMonitorTrack.cc.

References SiStripMonitorTrack::RingMEs::ClusterChargeCorrOnTrack, SiStripMonitorTrack::RingMEs::ClusterChargeOffTrack, SiStripMonitorTrack::RingMEs::ClusterChargeOnTrack, SiStripMonitorTrack::RingMEs::ClusterChargePerCMfromOriginOffTrack, SiStripMonitorTrack::RingMEs::ClusterChargePerCMfromOriginOnTrack, SiStripMonitorTrack::RingMEs::ClusterChargePerCMfromTrack, SiStripMonitorTrack::RingMEs::ClusterNoiseOffTrack, SiStripMonitorTrack::RingMEs::ClusterNoiseOnTrack, SiStripMonitorTrack::RingMEs::ClusterStoNCorrOnTrack, SiStripMonitorTrack::RingMEs::ClusterWidthOffTrack, SiStripMonitorTrack::RingMEs::ClusterWidthOnTrack, SiStripHistoId::createHistoLayer(), handleBookMEs(), mergeVDriftHistosByStation::name, alignCSCRings::ring_id, RingMEsMap, and AlCaHLTBitMon_QueryRunRegistry::string.

Referenced by book().

371 {
372 
373  std::string name = "ring";
374  std::string view = "ringView";
375  std::string hname;
376  std::string hpar;
377  SiStripHistoId hidmanager;
378 
379  RingMEs theRingMEs;
380  theRingMEs.ClusterStoNCorrOnTrack = 0;
381  theRingMEs.ClusterChargeCorrOnTrack = 0;
382  theRingMEs.ClusterChargeOnTrack = 0;
383  theRingMEs.ClusterChargeOffTrack = 0;
384  theRingMEs.ClusterNoiseOnTrack = 0;
385  theRingMEs.ClusterNoiseOffTrack = 0;
386  theRingMEs.ClusterWidthOnTrack = 0;
387  theRingMEs.ClusterWidthOffTrack = 0;
388  theRingMEs.ClusterChargePerCMfromTrack = 0;
389  theRingMEs.ClusterChargePerCMfromOriginOnTrack = 0;
390  theRingMEs.ClusterChargePerCMfromOriginOffTrack = 0;
391 
392  hname = hidmanager.createHistoLayer("Summary_ClusterStoNCorr",name,ring_id,"OnTrack");
393  hpar = "TH1ClusterStoNCorr";
394  theRingMEs.ClusterStoNCorrOnTrack = handleBookMEs(ibooker,view,ring_id,hpar,hname);
395 
396  // Cluster Charge Corrected
397  hname = hidmanager.createHistoLayer("Summary_ClusterChargeCorr",name,ring_id,"OnTrack");
398  hpar = "TH1ClusterChargeCorr";
399  theRingMEs.ClusterChargeCorrOnTrack = handleBookMEs(ibooker,view,ring_id,hpar,hname);
400 
401  // Cluster Charge (On and Off Track)
402  hname = hidmanager.createHistoLayer("Summary_ClusterCharge",name,ring_id,"OnTrack");
403  hpar = "TH1ClusterCharge";
404  theRingMEs.ClusterChargeOnTrack = handleBookMEs(ibooker,view,ring_id,hpar,hname);
405 
406  hname = hidmanager.createHistoLayer("Summary_ClusterCharge",name,ring_id,"OffTrack");
407  hpar = "TH1ClusterCharge";
408  theRingMEs.ClusterChargeOffTrack = handleBookMEs(ibooker,view,ring_id,hpar,hname);
409 
410  // Cluster Noise (On and Off Track)
411  hname = hidmanager.createHistoLayer("Summary_ClusterNoise",name,ring_id,"OnTrack");
412  hpar = "TH1ClusterNoise";
413  theRingMEs.ClusterNoiseOnTrack = handleBookMEs(ibooker,view,ring_id,hpar,hname);
414 
415  hname = hidmanager.createHistoLayer("Summary_ClusterNoise",name,ring_id,"OffTrack");
416  hpar = "TH1ClusterNoise";
417  theRingMEs.ClusterNoiseOffTrack = handleBookMEs(ibooker,view,ring_id,hpar,hname);
418 
419  // Cluster Width (On and Off Track)
420  hname = hidmanager.createHistoLayer("Summary_ClusterWidth",name,ring_id,"OnTrack");
421  hpar = "TH1ClusterWidth";
422  theRingMEs.ClusterWidthOnTrack = handleBookMEs(ibooker,view,ring_id,hpar,hname);
423 
424  hname = hidmanager.createHistoLayer("Summary_ClusterWidth",name,ring_id,"OffTrack");
425  hpar = "TH1ClusterWidth";
426  theRingMEs.ClusterWidthOffTrack = handleBookMEs(ibooker,view,ring_id,hpar,hname);
427 
428  // dQ/dx
429  hname = hidmanager.createHistoLayer("Summary_ClusterChargePerCMfromTrack",name,ring_id,"");
430  hpar = "TH1ClusterChargePerCM";
431  theRingMEs.ClusterChargePerCMfromTrack = handleBookMEs(ibooker,view,ring_id,hpar,hname);
432 
433  hname = hidmanager.createHistoLayer("Summary_ClusterChargePerCMfromOrigin",name,ring_id,"OnTrack");
434  hpar = "TH1ClusterChargePerCM";
435  theRingMEs.ClusterChargePerCMfromOriginOnTrack = handleBookMEs(ibooker,view,ring_id,hpar,hname);
436 
437  hname = hidmanager.createHistoLayer("Summary_ClusterChargePerCMfromOrigin",name,ring_id,"OffTrack");
438  hpar = "TH1ClusterChargePerCM";
439  theRingMEs.ClusterChargePerCMfromOriginOffTrack = handleBookMEs(ibooker,view,ring_id,hpar,hname);
440 
441  //bookeeping
442  RingMEsMap[ring_id]=theRingMEs;
443 
444 }
std::map< std::string, RingMEs > RingMEsMap
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 449 of file SiStripMonitorTrack.cc.

References bookME1D(), bookMETrend(), SiStripMonitorTrack::SubDetMEs::ClusterChargeOffTrack, SiStripMonitorTrack::SubDetMEs::ClusterChargeOnTrack, SiStripMonitorTrack::SubDetMEs::ClusterChargePerCMfromOriginOffTrack, SiStripMonitorTrack::SubDetMEs::ClusterChargePerCMfromOriginOnTrack, SiStripMonitorTrack::SubDetMEs::ClusterChargePerCMfromTrack, SiStripMonitorTrack::SubDetMEs::ClusterStoNCorrOnTrack, SiStripMonitorTrack::SubDetMEs::ClusterStoNOffTrack, MonitorElement::getTH1(), mergeVDriftHistosByStation::name, SiStripMonitorTrack::SubDetMEs::nClustersOffTrack, SiStripMonitorTrack::SubDetMEs::nClustersOnTrack, SiStripMonitorTrack::SubDetMEs::nClustersTrendOffTrack, SiStripMonitorTrack::SubDetMEs::nClustersTrendOnTrack, MonitorElement::setAxisTitle(), AlCaHLTBitMon_QueryRunRegistry::string, xuti::subdet_tag(), SubDetMEsMap, SiStripMonitorTrack::SubDetMEs::totNClustersOffTrack, SiStripMonitorTrack::SubDetMEs::totNClustersOnTrack, and Trend_On_.

Referenced by book().

449  {
450 
452  subdet_tag = "__" + name;
453  std::string completeName;
454  std::string axisName;
455 
456  SubDetMEs theSubDetMEs;
457  theSubDetMEs.totNClustersOnTrack = 0;
458  theSubDetMEs.totNClustersOffTrack = 0;
459  theSubDetMEs.nClustersOnTrack = 0;
460  theSubDetMEs.nClustersTrendOnTrack = 0;
461  theSubDetMEs.nClustersOffTrack = 0;
462  theSubDetMEs.nClustersTrendOffTrack = 0;
463  theSubDetMEs.ClusterStoNCorrOnTrack = 0;
464  theSubDetMEs.ClusterChargeOnTrack = 0;
465  theSubDetMEs.ClusterChargeOffTrack = 0;
466  theSubDetMEs.ClusterStoNOffTrack = 0;
467  theSubDetMEs.ClusterChargePerCMfromTrack = 0;
468  theSubDetMEs.ClusterChargePerCMfromOriginOnTrack = 0;
469  theSubDetMEs.ClusterChargePerCMfromOriginOffTrack = 0;
470 
471  // TotalNumber of Cluster OnTrack
472  completeName = "Summary_TotalNumberOfClusters_OnTrack" + subdet_tag;
473  axisName = "Number of on-track clusters in " + name;
474  theSubDetMEs.nClustersOnTrack = bookME1D(ibooker , "TH1nClustersOn", completeName.c_str());
475  theSubDetMEs.nClustersOnTrack->setAxisTitle(axisName.c_str());
476  theSubDetMEs.nClustersOnTrack->getTH1()->StatOverflows(kTRUE);
477 
478  // TotalNumber of Cluster OffTrack
479  completeName = "Summary_TotalNumberOfClusters_OffTrack" + subdet_tag;
480  axisName = "Number of off-track clusters in " + name;
481  theSubDetMEs.nClustersOffTrack = bookME1D(ibooker , "TH1nClustersOff", completeName.c_str());
482  theSubDetMEs.nClustersOffTrack->setAxisTitle(axisName.c_str());
483  theSubDetMEs.nClustersOffTrack->getTH1()->StatOverflows(kTRUE);
484 
485  // Cluster StoN On Track
486  completeName = "Summary_ClusterStoNCorr_OnTrack" + subdet_tag;
487  theSubDetMEs.ClusterStoNCorrOnTrack = bookME1D(ibooker , "TH1ClusterStoNCorr", completeName.c_str());
488 
489  // Cluster Charge On Track
490  completeName = "Summary_ClusterCharge_OnTrack" + subdet_tag;
491  theSubDetMEs.ClusterChargeOnTrack=bookME1D(ibooker , "TH1ClusterCharge", completeName.c_str());
492 
493  // Cluster Charge Off Track
494  completeName = "Summary_ClusterCharge_OffTrack" + subdet_tag;
495  theSubDetMEs.ClusterChargeOffTrack=bookME1D(ibooker , "TH1ClusterCharge", completeName.c_str());
496 
497  // Cluster Charge StoN Off Track
498  completeName = "Summary_ClusterStoN_OffTrack" + subdet_tag;
499  theSubDetMEs.ClusterStoNOffTrack = bookME1D(ibooker , "TH1ClusterStoN", completeName.c_str());
500 
501  // cluster charge per cm on track
502  completeName = "Summary_ClusterChargePerCMfromTrack" + subdet_tag;
503  theSubDetMEs.ClusterChargePerCMfromTrack=bookME1D(ibooker , "TH1ClusterChargePerCM", completeName.c_str());
504 
505  // cluster charge per cm on track
506  completeName = "Summary_ClusterChargePerCMfromOrigin_OnTrack" + subdet_tag;
507  theSubDetMEs.ClusterChargePerCMfromOriginOnTrack=bookME1D(ibooker , "TH1ClusterChargePerCM", completeName.c_str());
508 
509  // cluster charge per cm off track
510  completeName = "Summary_ClusterChargePerCMfromOrigin_OffTrack" + subdet_tag;
511  theSubDetMEs.ClusterChargePerCMfromOriginOffTrack=bookME1D(ibooker , "TH1ClusterChargePerCM", completeName.c_str());
512 
513  if(Trend_On_){
514  // TotalNumber of Cluster
515  completeName = "Trend_TotalNumberOfClusters_OnTrack" + subdet_tag;
516  theSubDetMEs.nClustersTrendOnTrack = bookMETrend(ibooker , completeName.c_str());
517  completeName = "Trend_TotalNumberOfClusters_OffTrack" + subdet_tag;
518  theSubDetMEs.nClustersTrendOffTrack = bookMETrend(ibooker , completeName.c_str());
519  }
520 
521  //bookeeping
522  SubDetMEsMap[name]=theSubDetMEs;
523 
524 }
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,
LocalVector  LV,
const Det2MEs MEs 
)
private

Definition at line 1003 of file SiStripMonitorTrack.cc.

References TkHistoMap::add(), applyClusterQuality_, SiStripClusterInfo::charge(), SiStripHistoId::createHistoId(), SiStripClusterInfo::detId(), eventNb, TkHistoMap::fill(), fillMEs(), fillModMEs(), SiStripMonitorTrack::Det2MEs::iSubdet, LogDebug, PV3DBase< T, PVType, FrameType >::mag(), Mod_On_, mergeVDriftHistosByStation::name, HLT_25ns14e33_v1_cff::noise, SiStripClusterInfo::noiseRescaledByGain(), NULL, OffTrack, OnTrack, SiStripClusterInfo::signalOverNoise(), sToNLowerLimit_, sToNUpperLimit_, AlCaHLTBitMon_QueryRunRegistry::string, tkhisto_NumOffTrack, tkhisto_NumOnTrack, tkhisto_StoNCorrOnTrack, TkHistoMap_On_, SiStripMonitorTrack::SubDetMEs::totNClustersOffTrack, SiStripMonitorTrack::SubDetMEs::totNClustersOnTrack, 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().

1004 {
1005 
1006  if (cluster==NULL) return false;
1007  // if one imposes a cut on the clusters, apply it
1008  if( (applyClusterQuality_) &&
1009  (cluster->signalOverNoise() < sToNLowerLimit_ ||
1010  cluster->signalOverNoise() > sToNUpperLimit_ ||
1011  cluster->width() < widthLowerLimit_ ||
1012  cluster->width() > widthUpperLimit_) ) return false;
1013  // start of the analysis
1014 
1015  if (MEs.iSubdet != nullptr) {
1016  if (flag == OnTrack) MEs.iSubdet->totNClustersOnTrack++;
1017  else if (flag == OffTrack) MEs.iSubdet->totNClustersOffTrack++;
1018  }
1019 
1020  float cosRZ = -2;
1021  LogDebug("SiStripMonitorTrack")<< "\n\tLV " << LV.x() << " " << LV.y() << " " << LV.z() << " " << LV.mag() << std::endl;
1022  if (LV.mag()!=0){
1023  cosRZ= fabs(LV.z())/LV.mag();
1024  LogDebug("SiStripMonitorTrack")<< "\n\t cosRZ " << cosRZ << std::endl;
1025  }
1026  std::string name;
1027 
1028  // Filling SubDet/Layer Plots (on Track + off Track)
1029  fillMEs(cluster,detid,cosRZ,flag,LV,MEs);
1030 
1031  //******** TkHistoMaps
1032  if (TkHistoMap_On_) {
1033  uint32_t adet=cluster->detId();
1034  float noise = cluster->noiseRescaledByGain();
1035  if(flag==OnTrack){
1036  tkhisto_NumOnTrack->add(adet,1.);
1037  if(noise > 0.0) tkhisto_StoNCorrOnTrack->fill(adet,cluster->signalOverNoise()*cosRZ);
1038  if(noise == 0.0)
1039  LogDebug("SiStripMonitorTrack") << "Module " << detid << " in Event " << eventNb << " noise " << noise << std::endl;
1040  }
1041  else if(flag==OffTrack){
1042  tkhisto_NumOffTrack->add(adet,1.);
1043  if(cluster->charge() > 250){
1044  LogDebug("SiStripMonitorTrack") << "Module firing " << detid << " in Event " << eventNb << std::endl;
1045  }
1046  }
1047  }
1048 
1049  // Module plots filled only for onTrack Clusters
1050  if(Mod_On_){
1051  if(flag==OnTrack){
1052  SiStripHistoId hidmanager2;
1053  name =hidmanager2.createHistoId("","det",detid);
1054  fillModMEs(cluster,name,cosRZ,detid,LV);
1055  }
1056  }
1057  return true;
1058 }
#define LogDebug(id)
void fillMEs(SiStripClusterInfo *, const uint32_t detid, float, enum ClusterFlags, const LocalVector LV, const Det2MEs &MEs)
TkHistoMap * tkhisto_NumOffTrack
float noiseRescaledByGain() const
T y() const
Definition: PV3DBase.h:63
#define NULL
Definition: scimark2.h:8
float signalOverNoise() const
T mag() const
Definition: PV3DBase.h:67
edm::EventNumber_t eventNb
uint16_t charge() const
void fill(uint32_t &detid, float value)
Definition: TkHistoMap.cc:180
T z() const
Definition: PV3DBase.h:64
uint16_t width() const
std::string createHistoId(std::string description, std::string id_type, uint32_t component_id)
TkHistoMap * tkhisto_NumOnTrack
uint32_t detId() const
TkHistoMap * tkhisto_StoNCorrOnTrack
void fillModMEs(SiStripClusterInfo *cluster, std::string name, float cos, const uint32_t detid, const LocalVector LV)
T x() const
Definition: PV3DBase.h:62
void add(uint32_t &detid, float value)
Definition: TkHistoMap.cc:213
void SiStripMonitorTrack::dqmBeginRun ( const edm::Run run,
const edm::EventSetup es 
)
virtual

Reimplemented from DQMEDAnalyzer.

Definition at line 68 of file SiStripMonitorTrack.cc.

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

69 {
70  //get geom
72  LogDebug("SiStripMonitorTrack") << "[SiStripMonitorTrack::beginRun] There are "<<tkgeom_->detUnits().size() <<" detectors instantiated in the geometry" << std::endl;
74 
75 
76  // Initialize the GenericTriggerEventFlag
78 }
#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.
void SiStripMonitorTrack::fillME ( MonitorElement ME,
float  value1 
)
inlineprivate

Definition at line 112 of file SiStripMonitorTrack.h.

References MonitorElement::Fill().

Referenced by analyze(), fillMEs(), and fillModMEs().

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

Definition at line 113 of file SiStripMonitorTrack.h.

References MonitorElement::Fill().

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

Definition at line 114 of file SiStripMonitorTrack.h.

References MonitorElement::Fill().

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

Definition at line 115 of file SiStripMonitorTrack.h.

References MonitorElement::Fill().

115 {if (ME!=0)ME->Fill(value1,value2,value3,value4);}
void Fill(long long x)
void SiStripMonitorTrack::fillMEs ( SiStripClusterInfo cluster,
const uint32_t  detid,
float  cos,
enum ClusterFlags  flag,
const LocalVector  LV,
const Det2MEs MEs 
)
private

Definition at line 1109 of file SiStripMonitorTrack.cc.

References SiStripClusterInfo::baryStrip(), RecoTauCleanerPlugins::charge, SiStripClusterInfo::charge(), siStripClusterTools::chargePerCM(), clchCMoriginTkHmap_On_, SiStripMonitorTrack::LayerMEs::ClusterChargeCorrOnTrack, SiStripMonitorTrack::RingMEs::ClusterChargeCorrOnTrack, 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::ClusterNoiseOffTrack, SiStripMonitorTrack::RingMEs::ClusterNoiseOffTrack, SiStripMonitorTrack::LayerMEs::ClusterNoiseOnTrack, SiStripMonitorTrack::RingMEs::ClusterNoiseOnTrack, SiStripMonitorTrack::LayerMEs::ClusterPosOffTrack, SiStripMonitorTrack::LayerMEs::ClusterPosOnTrack, SiStripMonitorTrack::LayerMEs::ClusterStoNCorrOnTrack, SiStripMonitorTrack::RingMEs::ClusterStoNCorrOnTrack, SiStripMonitorTrack::SubDetMEs::ClusterStoNCorrOnTrack, SiStripMonitorTrack::SubDetMEs::ClusterStoNOffTrack, SiStripMonitorTrack::LayerMEs::ClusterWidthOffTrack, SiStripMonitorTrack::RingMEs::ClusterWidthOffTrack, SiStripMonitorTrack::LayerMEs::ClusterWidthOnTrack, SiStripMonitorTrack::RingMEs::ClusterWidthOnTrack, SiStripClusterInfo::detId(), eventNb, TkHistoMap::fill(), fillME(), SiStripMonitorTrack::Det2MEs::iLayer, SiStripMonitorTrack::Det2MEs::iRing, SiStripMonitorTrack::Det2MEs::iSubdet, LogDebug, HLT_25ns14e33_v1_cff::noise, SiStripClusterInfo::noiseRescaledByGain(), OffTrack, OnTrack, position, SiStripClusterInfo::signalOverNoise(), tkgeom_, tkhisto_ClChPerCMfromOrigin, tkhisto_ClChPerCMfromTrack, TkHistoMap_On_, GeomDet::toLocal(), SiStripClusterInfo::width(), create_public_lumi_plots::width, PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().

Referenced by clusterInfos().

1110 {
1111  float StoN = cluster->signalOverNoise();
1112  float noise = cluster->noiseRescaledByGain();
1113  uint16_t charge = cluster->charge();
1114  uint16_t width = cluster->width();
1115  float position = cluster->baryStrip();
1116 
1117  // new dE/dx (chargePerCM)
1118  // https://indico.cern.ch/event/342236/session/5/contribution/10/material/slides/0.pdf
1119  float dQdx_fromTrack = siStripClusterTools::chargePerCM(detid, *cluster, LV);
1120  // from straigth line origin-sensor centre
1121  const StripGeomDetUnit* DetUnit = (const StripGeomDetUnit*) tkgeom_->idToDetUnit(DetId(detid));
1122  LocalPoint locVtx = DetUnit->toLocal(GlobalPoint(0.0, 0.0, 0.0));
1123  LocalVector locDir(locVtx.x(), locVtx.y(), locVtx.z());
1124  float dQdx_fromOrigin = siStripClusterTools::chargePerCM(detid, *cluster, locDir);
1125 
1126  if (TkHistoMap_On_ && (flag == OnTrack)) {
1127  uint32_t adet=cluster->detId();
1128  tkhisto_ClChPerCMfromTrack->fill(adet,dQdx_fromTrack);
1129  }
1130  if (clchCMoriginTkHmap_On_ && (flag == OffTrack)){
1131  uint32_t adet=cluster->detId();
1132  tkhisto_ClChPerCMfromOrigin->fill(adet,dQdx_fromOrigin);
1133  }
1134 
1135  // layerMEs
1136  if (MEs.iLayer != nullptr) {
1137  if(flag==OnTrack){
1138  if(noise > 0.0) fillME(MEs.iLayer->ClusterStoNCorrOnTrack, StoN*cos);
1139  if(noise == 0.0) LogDebug("SiStripMonitorTrack") << "Module " << detid << " in Event " << eventNb << " noise " << cluster->noiseRescaledByGain() << std::endl;
1140  fillME(MEs.iLayer->ClusterChargeCorrOnTrack, charge*cos);
1141  fillME(MEs.iLayer->ClusterChargeOnTrack, charge);
1142  fillME(MEs.iLayer->ClusterNoiseOnTrack, noise);
1143  fillME(MEs.iLayer->ClusterWidthOnTrack, width);
1144  fillME(MEs.iLayer->ClusterPosOnTrack, position);
1145  fillME(MEs.iLayer->ClusterChargePerCMfromTrack, dQdx_fromTrack);
1146  fillME(MEs.iLayer->ClusterChargePerCMfromOriginOnTrack, dQdx_fromOrigin);
1147  } else {
1148  fillME(MEs.iLayer->ClusterChargeOffTrack, charge);
1149  fillME(MEs.iLayer->ClusterNoiseOffTrack, noise);
1150  fillME(MEs.iLayer->ClusterWidthOffTrack, width);
1151  fillME(MEs.iLayer->ClusterPosOffTrack, position);
1152  fillME(MEs.iLayer->ClusterChargePerCMfromOriginOffTrack, dQdx_fromOrigin);
1153  }
1154  }
1155 
1156  // ringMEs
1157  if (MEs.iRing != nullptr) {
1158  if(flag==OnTrack){
1159  if(noise > 0.0) fillME(MEs.iRing->ClusterStoNCorrOnTrack, StoN*cos);
1160  if(noise == 0.0) LogDebug("SiStripMonitorTrack") << "Module " << detid << " in Event " << eventNb << " noise " << cluster->noiseRescaledByGain() << std::endl;
1161  fillME(MEs.iRing->ClusterChargeCorrOnTrack, charge*cos);
1162  fillME(MEs.iRing->ClusterChargeOnTrack, charge);
1163  fillME(MEs.iRing->ClusterNoiseOnTrack, noise);
1164  fillME(MEs.iRing->ClusterWidthOnTrack, width);
1165  fillME(MEs.iRing->ClusterChargePerCMfromTrack, dQdx_fromTrack);
1166  fillME(MEs.iRing->ClusterChargePerCMfromOriginOnTrack, dQdx_fromOrigin);
1167  } else {
1168  fillME(MEs.iRing->ClusterChargeOffTrack, charge);
1169  fillME(MEs.iRing->ClusterNoiseOffTrack, noise);
1170  fillME(MEs.iRing->ClusterWidthOffTrack, width);
1171  fillME(MEs.iRing->ClusterChargePerCMfromOriginOffTrack, dQdx_fromOrigin);
1172  }
1173  }
1174  // subdetMEs
1175  if(MEs.iSubdet != nullptr){
1176  if(flag==OnTrack){
1177  fillME(MEs.iSubdet->ClusterChargeOnTrack,charge);
1178  if(noise > 0.0) fillME(MEs.iSubdet->ClusterStoNCorrOnTrack,StoN*cos);
1179  fillME(MEs.iSubdet->ClusterChargePerCMfromTrack,dQdx_fromTrack);
1180  fillME(MEs.iSubdet->ClusterChargePerCMfromOriginOnTrack,dQdx_fromOrigin);
1181  } else {
1182  fillME(MEs.iSubdet->ClusterChargeOffTrack,charge);
1183  if(noise > 0.0) fillME(MEs.iSubdet->ClusterStoNOffTrack,StoN);
1184  fillME(MEs.iSubdet->ClusterChargePerCMfromOriginOffTrack,dQdx_fromOrigin);
1185  }
1186  }
1187 }
#define LogDebug(id)
void fillME(MonitorElement *ME, float value1)
float noiseRescaledByGain() const
float chargePerCM(DetId detid, Iter a, Iter b)
Global3DPoint GlobalPoint
Definition: GlobalPoint.h:10
float baryStrip() const
T y() const
Definition: PV3DBase.h:63
LocalPoint toLocal(const GlobalPoint &gp) const
Conversion to the R.F. of the GeomDet.
Definition: GeomDet.h:67
edm::ESHandle< TrackerGeometry > tkgeom_
float signalOverNoise() const
edm::EventNumber_t eventNb
uint16_t charge() const
void fill(uint32_t &detid, float value)
Definition: TkHistoMap.cc:180
T z() const
Definition: PV3DBase.h:64
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
uint16_t width() const
Definition: DetId.h:18
TkHistoMap * tkhisto_ClChPerCMfromOrigin
TkHistoMap * tkhisto_ClChPerCMfromTrack
uint32_t detId() const
static int position[264][3]
Definition: ReadPGInfo.cc:509
T x() const
Definition: PV3DBase.h:62
void SiStripMonitorTrack::fillModMEs ( SiStripClusterInfo cluster,
std::string  name,
float  cos,
const uint32_t  detid,
const LocalVector  LV 
)
private

Definition at line 1061 of file SiStripMonitorTrack.cc.

References SiStripClusterInfo::baryStrip(), RecoTauCleanerPlugins::charge, SiStripClusterInfo::charge(), siStripClusterTools::chargePerCM(), conf_, eventNb, fillME(), edm::ParameterSet::getParameter(), i, LogDebug, SiStripClusterInfo::maxCharge(), SiStripClusterInfo::maxIndex(), ModMEsMap, HLT_25ns14e33_v1_cff::noise, SiStripClusterInfo::noiseRescaledByGain(), position, SiStripClusterInfo::signalOverNoise(), SiStripClusterInfo::stripCharges(), tkgeom_, GeomDet::toLocal(), SiStripClusterInfo::width(), create_public_lumi_plots::width, PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().

Referenced by clusterInfos().

1062 {
1063  std::map<std::string, ModMEs>::iterator iModME = ModMEsMap.find(name);
1064  if(iModME!=ModMEsMap.end()){
1065 
1066  float StoN = cluster->signalOverNoise();
1067  uint16_t charge = cluster->charge();
1068  uint16_t width = cluster->width();
1069  float position = cluster->baryStrip();
1070 
1071  // new dE/dx (chargePerCM)
1072  // https://indico.cern.ch/event/342236/session/5/contribution/10/material/slides/0.pdf
1073  float dQdx_fromTrack = siStripClusterTools::chargePerCM(detid, *cluster, LV);
1074  // from straigth line origin-sensor centre
1075  const StripGeomDetUnit* DetUnit = (const StripGeomDetUnit*) tkgeom_->idToDetUnit(DetId(detid));
1076  LocalPoint locVtx = DetUnit->toLocal(GlobalPoint(0.0, 0.0, 0.0));
1077  LocalVector locDir(locVtx.x(), locVtx.y(), locVtx.z());
1078  float dQdx_fromOrigin = siStripClusterTools::chargePerCM(detid, *cluster, locDir);
1079 
1080  float noise = cluster->noiseRescaledByGain();
1081  if(noise > 0.0) fillME(iModME->second.ClusterStoNCorr ,StoN*cos);
1082  if(noise == 0.0) LogDebug("SiStripMonitorTrack") << "Module " << name << " in Event " << eventNb << " noise " << noise << std::endl;
1083  fillME(iModME->second.ClusterCharge,charge);
1084 
1085  fillME(iModME->second.ClusterChargeCorr,charge*cos);
1086 
1087  fillME(iModME->second.ClusterWidth ,width);
1088  fillME(iModME->second.ClusterPos ,position);
1089 
1090  fillME(iModME->second.ClusterChargePerCMfromTrack, dQdx_fromTrack);
1091  fillME(iModME->second.ClusterChargePerCMfromOrigin, dQdx_fromOrigin);
1092 
1093  //fill the PGV histo
1094  float PGVmax = cluster->maxCharge();
1095  int PGVposCounter = cluster->maxIndex();
1096  for (int i= int(conf_.getParameter<edm::ParameterSet>("TProfileClusterPGV").getParameter<double>("xmin"));i<PGVposCounter;++i)
1097  fillME(iModME->second.ClusterPGV, i,0.);
1098  for (auto it=cluster->stripCharges().begin();it<cluster->stripCharges().end();++it) {
1099  fillME(iModME->second.ClusterPGV, PGVposCounter++,(*it)/PGVmax);
1100  }
1101  for (int i= PGVposCounter;i<int(conf_.getParameter<edm::ParameterSet>("TProfileClusterPGV").getParameter<double>("xmax"));++i)
1102  fillME(iModME->second.ClusterPGV, i,0.);
1103  //end fill the PGV histo
1104  }
1105 }
#define LogDebug(id)
uint8_t maxCharge() const
T getParameter(std::string const &) const
int i
Definition: DBlmapReader.cc:9
void fillME(MonitorElement *ME, float value1)
float noiseRescaledByGain() 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:67
uint16_t maxIndex() const
auto stripCharges() const -> decltype(cluster() ->amplitudes())
edm::ESHandle< TrackerGeometry > tkgeom_
float signalOverNoise() const
edm::EventNumber_t eventNb
uint16_t charge() const
T z() const
Definition: PV3DBase.h:64
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
uint16_t width() const
Definition: DetId.h:18
std::map< std::string, ModMEs > ModMEsMap
static int position[264][3]
Definition: ReadPGInfo.cc:509
T x() const
Definition: PV3DBase.h:62
SiStripMonitorTrack::Det2MEs SiStripMonitorTrack::findMEs ( const TrackerTopology tTopo,
const uint32_t  detid 
)
private

Definition at line 972 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(), and RecHitInfo().

972  {
973  SiStripHistoId hidmanager1;
974 
975  std::string layer_id = hidmanager1.getSubdetid(detid, tTopo, false);
976  std::string ring_id = hidmanager1.getSubdetid(detid, tTopo, true);
977  std::string sdet_tag = folderOrganizer_.getSubDetFolderAndTag(detid, tTopo).second;
978 
979  Det2MEs me;
980  me.iLayer = nullptr;
981  me.iRing = nullptr;
982  me.iSubdet = nullptr;
983 
984  std::map<std::string, LayerMEs>::iterator iLayer = LayerMEsMap.find(layer_id);
985  if (iLayer != LayerMEsMap.end()) {
986  me.iLayer = &(iLayer->second);
987  }
988 
989  std::map<std::string, RingMEs>::iterator iRing = RingMEsMap.find(ring_id);
990  if (iRing != RingMEsMap.end()) {
991  me.iRing = &(iRing->second);
992  }
993 
994  std::map<std::string, SubDetMEs>::iterator iSubdet = SubDetMEsMap.find(sdet_tag);
995  if (iSubdet != SubDetMEsMap.end()) {
996  me.iSubdet = &(iSubdet->second);
997  }
998 
999  return me;
1000 }
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 262 of file SiStripMonitorTrack.cc.

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

Referenced by bookLayerMEs(), and bookRingMEs().

262  {
263 
264  MonitorElement* me = NULL;
265  bool view = false;
266  view = (conf_.getParameter<edm::ParameterSet>(histoParameters.c_str())).getParameter<bool>(viewParameter.c_str());
267  if ( id.find("TEC") == std::string::npos && id.find("TID") == std::string::npos ) {
268  me = bookME1D(ibooker , histoParameters.c_str(), histoName.c_str());
269  } else {
270  if (view) {
271  // histoName = histoName + "__" + thickness;
272  me = bookME1D(ibooker , histoParameters.c_str(), histoName.c_str());
273  }
274  }
275  return me;
276 }
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:7
void SiStripMonitorTrack::hitStudy ( const edm::EventSetup es,
const ProjectedSiStripRecHit2D projhit,
const SiStripMatchedRecHit2D matchedhit,
const SiStripRecHit2D hit2D,
const SiStripRecHit1D hit1D,
LocalVector  localMomentum 
)
private

Definition at line 690 of file SiStripMonitorTrack.cc.

References TrackingRecHit::geographicalId(), LogDebug, LogTrace, visualization-live-secondInstance_cfg::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().

696  {
697  LocalVector statedirection;
698  if(matchedhit){ // type=Matched;
699  LogTrace("SiStripMonitorTrack")<<"\nMatched recHit found"<< std::endl;
700 
701  GluedGeomDet * gdet=(GluedGeomDet *)tkgeom_->idToDet(matchedhit->geographicalId());
702 
703  GlobalVector gtrkdirup=gdet->toGlobal(localMomentum);
704 
705  //mono side
706  const GeomDetUnit * monodet=gdet->monoDet();
707  statedirection=monodet->toLocal(gtrkdirup);
708  SiStripRecHit2D m = matchedhit->monoHit();
709  if(statedirection.mag() != 0) RecHitInfo<SiStripRecHit2D>(&m,statedirection,es);
710 
711  //stereo side
712  const GeomDetUnit * stereodet=gdet->stereoDet();
713  statedirection=stereodet->toLocal(gtrkdirup);
714  SiStripRecHit2D s = matchedhit->stereoHit();
715  if(statedirection.mag() != 0) RecHitInfo<SiStripRecHit2D>(&s,statedirection,es);
716  }
717  else if(projhit){ // type=Projected;
718  LogTrace("SiStripMonitorTrack")<<"\nProjected recHit found"<< std::endl;
719 
720  GluedGeomDet * gdet=(GluedGeomDet *)tkgeom_->idToDet(projhit->geographicalId());
721 
722  GlobalVector gtrkdirup=gdet->toGlobal(localMomentum);
723  const SiStripRecHit2D originalhit=projhit->originalHit();
724 
725  const GeomDetUnit * det;
726  if(!StripSubdetector(originalhit.geographicalId().rawId()).stereo()){
727  //mono side
728  LogTrace("SiStripMonitorTrack")<<"\nProjected recHit found MONO"<< std::endl;
729  det=gdet->monoDet();
730  statedirection=det->toLocal(gtrkdirup);
731  if(statedirection.mag() != 0) RecHitInfo<SiStripRecHit2D>(&(originalhit),statedirection,es);
732  }
733  else{
734  LogTrace("SiStripMonitorTrack")<<"\nProjected recHit found STEREO"<< std::endl;
735  //stereo side
736  det=gdet->stereoDet();
737  statedirection=det->toLocal(gtrkdirup);
738  if(statedirection.mag() != 0) RecHitInfo<SiStripRecHit2D>(&(originalhit),statedirection,es);
739  }
740  } else if (hit2D){ // type=2D
741  statedirection=localMomentum;
742  if(statedirection.mag() != 0) RecHitInfo<SiStripRecHit2D>(hit2D,statedirection,es);
743  } else if (hit1D) { // type=1D
744  statedirection=localMomentum;
745  if(statedirection.mag() != 0) RecHitInfo<SiStripRecHit1D>(hit1D,statedirection,es);
746  } else {
747  LogDebug ("SiStripMonitorTrack")
748  << " LocalMomentum: "<<statedirection
749  << "\nLocal x-z plane angle: "<<atan2(statedirection.x(),statedirection.z());
750  }
751 
752 }
#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:52
LocalPoint toLocal(const GlobalPoint &gp) const
Conversion to the R.F. of the GeomDet.
Definition: GeomDet.h:67
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
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::EventSetup es 
)
private

Definition at line 891 of file SiStripMonitorTrack.cc.

References clusterInfos(), cond::rpcobgas::detid, findMEs(), edm::EventSetup::get(), LogTrace, NULL, OnTrack, edm::ESHandle< class >::product(), tkgeom_, vPSiStripCluster, PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().

891  {
892 
893  if(!tkrecHit->isValid()){
894  LogTrace("SiStripMonitorTrack") <<"\t\t Invalid Hit " << std::endl;
895  return;
896  }
897 
898  const uint32_t& detid = tkrecHit->geographicalId().rawId();
899 
900  LogTrace("SiStripMonitorTrack")
901  <<"\n\t\tRecHit on det "<<tkrecHit->geographicalId().rawId()
902  <<"\n\t\tRecHit in LP "<<tkrecHit->localPosition()
903  <<"\n\t\tRecHit in GP "<<tkgeom_->idToDet(tkrecHit->geographicalId())->surface().toGlobal(tkrecHit->localPosition())
904  <<"\n\t\tRecHit trackLocal vector "<<LV.x() << " " << LV.y() << " " << LV.z() <<std::endl;
905 
906 
907  //Retrieve tracker topology from geometry
908  edm::ESHandle<TrackerTopology> tTopoHandle;
909  es.get<TrackerTopologyRcd>().get(tTopoHandle);
910  const TrackerTopology* const tTopo = tTopoHandle.product();
911 
912  //Get SiStripCluster from SiStripRecHit
913  if ( tkrecHit != NULL ){
914  const SiStripCluster* SiStripCluster_ = &*(tkrecHit->cluster());
915  SiStripClusterInfo SiStripClusterInfo_(*SiStripCluster_,es,detid);
916 
917  const Det2MEs MEs = findMEs(tTopo, detid);
918  if (clusterInfos(&SiStripClusterInfo_,detid, OnTrack, LV, MEs))
919  {
920  vPSiStripCluster.insert(SiStripCluster_);
921  }
922  }
923  else
924  {
925  edm::LogError("SiStripMonitorTrack") << "NULL hit" << std::endl;
926  }
927  }
Det2MEs findMEs(const TrackerTopology *tTopo, const uint32_t detid)
T y() const
Definition: PV3DBase.h:63
#define NULL
Definition: scimark2.h:8
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
T const * product() const
Definition: ESHandle.h:86
bool clusterInfos(SiStripClusterInfo *cluster, const uint32_t detid, enum ClusterFlags flags, LocalVector LV, const Det2MEs &MEs)
T x() const
Definition: PV3DBase.h:62
void SiStripMonitorTrack::trackStudy ( const edm::Event ev,
const edm::EventSetup es 
)
private

Definition at line 754 of file SiStripMonitorTrack.cc.

References edm::Event::getByToken(), edm::HandleBase::isValid(), dt_dqm_sourceclient_common_cff::reco, TrackLabel_, trackStudyFromTrack(), trackStudyFromTrajectory(), trackToken_, and trackTrajToken_.

Referenced by analyze().

754  {
755 
756 using namespace std;
757 using namespace edm;
758 using namespace reco;
759 
760  // trajectory input
761  edm::Handle<TrajTrackAssociationCollection> TItkAssociatorCollection;
762  ev.getByToken(trackTrajToken_, TItkAssociatorCollection);
763  if( TItkAssociatorCollection.isValid()){
764  trackStudyFromTrajectory(TItkAssociatorCollection,es);
765  } else {
766  edm::LogError("SiStripMonitorTrack")<<"Association not found ... try w/ track collection"<<std::endl;
767 
768  // edm::Handle<std::vector<Trajectory> > trajectories;
769  // ev.getByToken(trajectoryToken_, trajectories);
770 
771  // track input
772  edm::Handle<reco::TrackCollection > trackCollectionHandle;
773  ev.getByToken(trackToken_, trackCollectionHandle);//takes the track collection
774  if (!trackCollectionHandle.isValid()){
775  edm::LogError("SiStripMonitorTrack")<<"also Track Collection is not valid !! " << TrackLabel_<<std::endl;
776  return;
777  } else {
778  trackStudyFromTrack(trackCollectionHandle,es);
779  }
780  }
781 
782 }
void trackStudyFromTrack(edm::Handle< reco::TrackCollection > trackCollectionHandle, const edm::EventSetup &es)
edm::EDGetTokenT< reco::TrackCollection > trackToken_
void trackStudyFromTrajectory(edm::Handle< TrajTrackAssociationCollection > TItkAssociatorCollection, const edm::EventSetup &es)
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:457
bool isValid() const
Definition: HandleBase.h:75
edm::EDGetTokenT< TrajTrackAssociationCollection > trackTrajToken_
void SiStripMonitorTrack::trackStudyFromTrack ( edm::Handle< reco::TrackCollection trackCollectionHandle,
const edm::EventSetup es 
)
private

Definition at line 784 of file SiStripMonitorTrack.cc.

References TkHistoMap::add(), DetId::det(), reco::HitPattern::getHitPattern(), reco::HitPattern::hitPattern, hitStudy(), i, reco::HitPattern::numberOfHits(), numTracks, reco::HitPattern::pixelBarrelHitFilter(), tkhisto_NumberInactiveHits, tkhisto_NumberValidHits, tkhisto_NumMissingHits, TkHistoMap_On_, reco::HitPattern::TRACK_HITS, HLT_25ns14e33_v3_cff::trackCollection, DetId::Tracker, and reco::HitPattern::validHitFilter().

Referenced by trackStudy().

784  {
785 
786  // edm::ESHandle<TransientTrackBuilder> builder;
787  // es.get<TransientTrackRecord>().get("TransientTrackBuilder",builder);
788  // const TransientTrackBuilder* transientTrackBuilder = builder.product();
789  numTracks = trackCollectionHandle->size();
790  reco::TrackCollection trackCollection = *trackCollectionHandle;
791  for (reco::TrackCollection::const_iterator track = trackCollection.begin(), etrack = trackCollection.end();
792  track!=etrack; ++track) {
793 
794  // const reco::TransientTrack transientTrack = transientTrackBuilder->build(track);
795 
796 
797  for (trackingRecHit_iterator hit = track->recHitsBegin(), ehit = track->recHitsEnd();
798  hit!=ehit; ++hit) {
799 
800  if (TkHistoMap_On_ && (numTracks > 0)) {
801  uint32_t thedetid=(*hit)->rawId();
802  if ( thedetid > 369120277-1 ) {
803  if ( ((*hit)->getType()==1) )
804  tkhisto_NumMissingHits->add(thedetid,static_cast<float>(1./numTracks));
805  if ( ((*hit)->getType()==2) )
806  tkhisto_NumberInactiveHits->add(thedetid,static_cast<float>(1./numTracks));
807  if ( ((*hit)->getType()==0) )
808  tkhisto_NumberValidHits->add(thedetid,static_cast<float>(1./numTracks));
809  }
810  }
811 
812  if (!(*hit)->isValid()) continue;
813  DetId detID = (*hit)->geographicalId();
814  if (detID.det() != DetId::Tracker) continue;
815  const TrackingRecHit* theHit = (*hit);
816  const ProjectedSiStripRecHit2D* projhit = dynamic_cast<const ProjectedSiStripRecHit2D*>( (theHit) );
817  const SiStripMatchedRecHit2D* matchedhit = dynamic_cast<const SiStripMatchedRecHit2D*> ( (theHit) );
818  const SiStripRecHit2D* hit2D = dynamic_cast<const SiStripRecHit2D*> ( (theHit) );
819  const SiStripRecHit1D* hit1D = dynamic_cast<const SiStripRecHit1D*> ( (theHit) );
820 
821  // GlobalPoint globalPoint = hit->globalPosition();
822  // reco::TrajectoryStateOnSurface stateOnSurface = transientTrack->stateOnSurface(globalPoint);
823 
824  LocalVector localMomentum;
825  hitStudy(es,projhit,matchedhit,hit2D,hit1D,localMomentum);
826  }
827 
828 
829 
830  // hit pattern of the track
831  const reco::HitPattern & hitsPattern = track->hitPattern();
832  // loop over the hits of the track
833  // for (int i=0; i<hitsPattern.numberOfHits(); i++) {
834  for (int i=0; i<hitsPattern.numberOfHits(reco::HitPattern::TRACK_HITS); i++) {
835  uint32_t hit = hitsPattern.getHitPattern(reco::HitPattern::TRACK_HITS,i);
836 
837  // if the hit is valid and in pixel barrel, print out the layer
838  if (hitsPattern.validHitFilter(hit) && hitsPattern.pixelBarrelHitFilter(hit))
839 
840  if (!hitsPattern.validHitFilter(hit)) continue;
841 // if (hitsPattern.pixelHitFilter(hit)) std::cout << "pixel" << std::endl; // pixel
842 // if (hitsPattern.pixelBarrelHitFilter(hit)) std::cout << "pixel barrel" << std::endl; // pixel barrel
843 // if (hitsPattern.pixelEndcapHitFilter(hit)) std::cout << "pixel endcap" << std::endl; // pixel endcap
844 // if (hitsPattern.stripHitFilter(hit)) std::cout << "strip" << std::endl; // strip
845 // if (hitsPattern.stripTIBHitFilter(hit)) std::cout << "TIB" << std::endl; // strip TIB
846 // if (hitsPattern.stripTIDHitFilter(hit)) std::cout << "TID" << std::endl; // strip TID
847 // if (hitsPattern.stripTOBHitFilter(hit)) std::cout << "TOB" << std::endl; // strip TOB
848 // if (hitsPattern.stripTECHitFilter(hit)) std::cout << "TEC" << std::endl; // strip TEC
849 // if (hitsPattern.muonDTHitFilter(hit)) std::cout << "DT" << std::endl; // muon DT
850 // if (hitsPattern.muonCSCHitFilter(hit)) std::cout << "CSC" << std::endl; // muon CSC
851 // if (hitsPattern.muonRPCHitFilter(hit)) std::cout << "RPC" << std::endl; // muon RPC
852 //
853 // // expert level: printout the hit in 10-bit binary format
854 // std::cout << "hit in 10-bit binary format = ";
855 // for (int j=9; j>=0; j--) {
856 // int bit = (hit >> j) & 0x1;
857 // std::cout << bit;
858 // }
859 // std::cout << std::endl;
860  }
861  }
862 }
int i
Definition: DBlmapReader.cc:9
void hitStudy(const edm::EventSetup &es, const ProjectedSiStripRecHit2D *projhit, const SiStripMatchedRecHit2D *matchedhit, const SiStripRecHit2D *hit2D, const SiStripRecHit1D *hit1D, LocalVector localMomentum)
std::vector< Track > TrackCollection
collection of Tracks
Definition: TrackFwd.h:13
static bool pixelBarrelHitFilter(uint16_t pattern)
Definition: HitPattern.h:516
static bool validHitFilter(uint16_t pattern)
Definition: HitPattern.h:698
uint16_t hitPattern[ARRAY_LENGTH]
Definition: HitPattern.h:418
Definition: DetId.h:18
TkHistoMap * tkhisto_NumberInactiveHits
uint16_t getHitPattern(HitCategory category, int position) const
Definition: HitPattern.h:456
Detector det() const
get the detector field from this detid
Definition: DetId.h:35
TkHistoMap * tkhisto_NumMissingHits
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
int numberOfHits(HitCategory category) const
Definition: HitPattern.h:718
void SiStripMonitorTrack::trackStudyFromTrajectory ( edm::Handle< TrajTrackAssociationCollection TItkAssociatorCollection,
const edm::EventSetup es 
)
private

Definition at line 864 of file SiStripMonitorTrack.cc.

References edm::AssociationMap< edm::OneToOne< std::vector< Trajectory >, reco::TrackCollection, unsigned short > >::const_iterator, i, edm::Ref< C, T, F >::key(), LogDebug, numTracks, and trajectoryStudy().

Referenced by trackStudy().

864  {
865  //Perform track study
866  numTracks = TItkAssociatorCollection->size();
867  int i=0;
868  for(TrajTrackAssociationCollection::const_iterator it = TItkAssociatorCollection->begin();it != TItkAssociatorCollection->end(); ++it){
869  const edm::Ref<std::vector<Trajectory> > traj_iterator = it->key;
870 
871  // Trajectory Map, extract Trajectory for this track
872  reco::TrackRef trackref = it->val;
873  LogDebug("SiStripMonitorTrack")
874  << "Track number "<< i+1 << std::endl;
875  // << "\n\tmomentum: " << trackref->momentum()
876  // << "\n\tPT: " << trackref->pt()
877  // << "\n\tvertex: " << trackref->vertex()
878  // << "\n\timpact parameter: " << trackref->d0()
879  // << "\n\tcharge: " << trackref->charge()
880  // << "\n\tnormalizedChi2: " << trackref->normalizedChi2()
881  // <<"\n\tFrom EXTRA : "
882  // <<"\n\t\touter PT "<< trackref->outerPt()<<std::endl;
883  i++;
884 
885  // trajectoryStudy(traj_iterator,trackref,es);
886  trajectoryStudy(traj_iterator,es);
887 
888  }
889 }
#define LogDebug(id)
int i
Definition: DBlmapReader.cc:9
key_type key() const
Accessor for product key.
Definition: Ref.h:264
void trajectoryStudy(const edm::Ref< std::vector< Trajectory > > traj, const edm::EventSetup &es)
void SiStripMonitorTrack::trajectoryStudy ( const edm::Ref< std::vector< Trajectory > >  traj,
const edm::EventSetup es 
)
private

Definition at line 599 of file SiStripMonitorTrack.cc.

References TkHistoMap::add(), TrackingRecHit::geographicalId(), TrajectoryStateOnSurface::localMomentum(), LogDebug, LogTrace, visualization-live-secondInstance_cfg::m, PV3DBase< T, PVType, FrameType >::mag(), GluedGeomDet::monoDet(), SiStripMatchedRecHit2D::monoHit(), numTracks, ProjectedSiStripRecHit2D::originalHit(), DetId::rawId(), alignCSCRings::s, GluedGeomDet::stereoDet(), SiStripMatchedRecHit2D::stereoHit(), tkgeom_, tkhisto_NumberInactiveHits, tkhisto_NumberValidHits, tkhisto_NumMissingHits, TkHistoMap_On_, GeomDet::toGlobal(), GeomDet::toLocal(), PV3DBase< T, PVType, FrameType >::x(), and PV3DBase< T, PVType, FrameType >::z().

Referenced by trackStudyFromTrajectory().

599  {
600 
601 
602  const std::vector<TrajectoryMeasurement> & measurements = traj->measurements();
603  std::vector<TrajectoryMeasurement>::const_iterator traj_mes_iterator;
604  for(std::vector<TrajectoryMeasurement>::const_iterator traj_mes_iterator= measurements.begin(), traj_mes_end=measurements.end();
605  traj_mes_iterator!=traj_mes_end;traj_mes_iterator++){//loop on measurements
606  //trajectory local direction and position on detector
607  LocalVector statedirection;
608 
609  TrajectoryStateOnSurface updatedtsos=traj_mes_iterator->updatedState();
610  ConstRecHitPointer ttrh=traj_mes_iterator->recHit();
611 
612  if (TkHistoMap_On_ && (numTracks > 0)) {
613  uint32_t thedetid=ttrh->rawId();
614  if ( thedetid > 369120277-1 ) {
615  if ( (ttrh->getType()==1) )
616  tkhisto_NumMissingHits->add(thedetid,static_cast<float>(1./numTracks));
617  if ( (ttrh->getType()==2) )
618  tkhisto_NumberInactiveHits->add(thedetid,static_cast<float>(1./numTracks));
619  if ( (ttrh->getType()==0) )
620  tkhisto_NumberValidHits->add(thedetid,static_cast<float>(1./numTracks));
621  }
622  }
623 
624  if (!ttrh->isValid()) continue;
625 
626  const ProjectedSiStripRecHit2D* projhit = dynamic_cast<const ProjectedSiStripRecHit2D*>( ttrh->hit() );
627  const SiStripMatchedRecHit2D* matchedhit = dynamic_cast<const SiStripMatchedRecHit2D*>( ttrh->hit() );
628  const SiStripRecHit2D* hit2D = dynamic_cast<const SiStripRecHit2D*>( ttrh->hit() );
629  const SiStripRecHit1D* hit1D = dynamic_cast<const SiStripRecHit1D*>( ttrh->hit() );
630 
631  // RecHitType type=Single;
632 
633  if(matchedhit){
634  LogTrace("SiStripMonitorTrack")<<"\nMatched recHit found"<< std::endl;
635  // type=Matched;
636 
637  GluedGeomDet * gdet=(GluedGeomDet *)tkgeom_->idToDet(matchedhit->geographicalId());
638  GlobalVector gtrkdirup=gdet->toGlobal(updatedtsos.localMomentum());
639  //mono side
640  const GeomDetUnit * monodet=gdet->monoDet();
641  statedirection=monodet->toLocal(gtrkdirup);
642  SiStripRecHit2D m = matchedhit->monoHit();
643  // if(statedirection.mag() != 0) RecHitInfo<SiStripRecHit2D>(&m,statedirection,trackref,es);
644  if(statedirection.mag() != 0) RecHitInfo<SiStripRecHit2D>(&m,statedirection,es);
645  //stereo side
646  const GeomDetUnit * stereodet=gdet->stereoDet();
647  statedirection=stereodet->toLocal(gtrkdirup);
648  SiStripRecHit2D s = matchedhit->stereoHit();
649  // if(statedirection.mag() != 0) RecHitInfo<SiStripRecHit2D>(&s,statedirection,trackref,es);
650  if(statedirection.mag() != 0) RecHitInfo<SiStripRecHit2D>(&s,statedirection,es);
651  }
652  else if(projhit){
653  LogTrace("SiStripMonitorTrack")<<"\nProjected recHit found"<< std::endl;
654  // type=Projected;
655  GluedGeomDet * gdet=(GluedGeomDet *)tkgeom_->idToDet(projhit->geographicalId());
656 
657  GlobalVector gtrkdirup=gdet->toGlobal(updatedtsos.localMomentum());
658  const SiStripRecHit2D originalhit=projhit->originalHit();
659  const GeomDetUnit * det;
660  if(!StripSubdetector(originalhit.geographicalId().rawId()).stereo()){
661  //mono side
662  LogTrace("SiStripMonitorTrack")<<"\nProjected recHit found MONO"<< std::endl;
663  det=gdet->monoDet();
664  statedirection=det->toLocal(gtrkdirup);
665  if(statedirection.mag() != 0) RecHitInfo<SiStripRecHit2D>(&(originalhit),statedirection,es);
666  }
667  else{
668  LogTrace("SiStripMonitorTrack")<<"\nProjected recHit found STEREO"<< std::endl;
669  //stereo side
670  det=gdet->stereoDet();
671  statedirection=det->toLocal(gtrkdirup);
672  if(statedirection.mag() != 0) RecHitInfo<SiStripRecHit2D>(&(originalhit),statedirection,es);
673  }
674  }else if (hit2D){
675  statedirection=updatedtsos.localMomentum();
676  if(statedirection.mag() != 0) RecHitInfo<SiStripRecHit2D>(hit2D,statedirection,es);
677  } else if (hit1D) {
678  statedirection=updatedtsos.localMomentum();
679  if(statedirection.mag() != 0) RecHitInfo<SiStripRecHit1D>(hit1D,statedirection,es);
680  } else {
681  LogDebug ("SiStripMonitorTrack")
682  << " LocalMomentum: "<<statedirection
683  << "\nLocal x-z plane angle: "<<atan2(statedirection.x(),statedirection.z());
684  }
685 
686  }
687 
688 }
#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:52
LocalPoint toLocal(const GlobalPoint &gp) const
Conversion to the R.F. of the GeomDet.
Definition: GeomDet.h:67
uint32_t rawId() const
get the raw id
Definition: DetId.h:43
LocalVector localMomentum() const
edm::ESHandle< TrackerGeometry > tkgeom_
TransientTrackingRecHit::ConstRecHitPointer ConstRecHitPointer
T mag() const
Definition: PV3DBase.h:67
T z() const
Definition: PV3DBase.h:64
#define LogTrace(id)
SiStripRecHit2D originalHit() const
TkHistoMap * tkhisto_NumberInactiveHits
SiStripRecHit2D stereoHit() const
SiStripRecHit2D monoHit() const
DetId geographicalId() const
T x() const
Definition: PV3DBase.h:62
TkHistoMap * tkhisto_NumMissingHits
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 227 of file SiStripMonitorTrack.h.

Referenced by clusterInfos(), and SiStripMonitorTrack().

bool SiStripMonitorTrack::clchCMoriginTkHmap_On_
private

Definition at line 216 of file SiStripMonitorTrack.h.

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

edm::InputTag SiStripMonitorTrack::Cluster_src_
private

Definition at line 203 of file SiStripMonitorTrack.h.

Referenced by SiStripMonitorTrack().

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

Definition at line 205 of file SiStripMonitorTrack.h.

Referenced by AllClusters(), and SiStripMonitorTrack().

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

Definition at line 233 of file SiStripMonitorTrack.h.

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

edm::EventNumber_t SiStripMonitorTrack::eventNb
private

Definition at line 224 of file SiStripMonitorTrack.h.

Referenced by analyze(), clusterInfos(), fillMEs(), and fillModMEs().

int SiStripMonitorTrack::firstEvent
private

Definition at line 225 of file SiStripMonitorTrack.h.

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

SiStripFolderOrganizer SiStripMonitorTrack::folderOrganizer_
private

Definition at line 235 of file SiStripMonitorTrack.h.

Referenced by findMEs().

GenericTriggerEventFlag* SiStripMonitorTrack::genTriggerEventFlag_
private

Definition at line 234 of file SiStripMonitorTrack.h.

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

std::string SiStripMonitorTrack::histname
private

Definition at line 122 of file SiStripMonitorTrack.h.

bool SiStripMonitorTrack::HistoFlag_On_
private

Definition at line 213 of file SiStripMonitorTrack.h.

float SiStripMonitorTrack::iLumisection
private

Definition at line 124 of file SiStripMonitorTrack.h.

Referenced by analyze().

float SiStripMonitorTrack::iOrbitSec
private

Definition at line 124 of file SiStripMonitorTrack.h.

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

Definition at line 189 of file SiStripMonitorTrack.h.

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

LocalVector SiStripMonitorTrack::LV
private

Definition at line 123 of file SiStripMonitorTrack.h.

bool SiStripMonitorTrack::Mod_On_
private

Definition at line 210 of file SiStripMonitorTrack.h.

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

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

Definition at line 188 of file SiStripMonitorTrack.h.

Referenced by bookModMEs(), and fillModMEs().

int SiStripMonitorTrack::numTracks
private
bool SiStripMonitorTrack::OffHisto_On_
private

Definition at line 212 of file SiStripMonitorTrack.h.

edm::ParameterSet SiStripMonitorTrack::Parameters
private

Definition at line 202 of file SiStripMonitorTrack.h.

bool SiStripMonitorTrack::ring_flag
private

Definition at line 214 of file SiStripMonitorTrack.h.

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

Definition at line 190 of file SiStripMonitorTrack.h.

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

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

Definition at line 200 of file SiStripMonitorTrack.h.

Referenced by book(), bookLayerMEs(), bookModMEs(), and dqmBeginRun().

double SiStripMonitorTrack::sToNLowerLimit_
private

Definition at line 228 of file SiStripMonitorTrack.h.

Referenced by clusterInfos(), and SiStripMonitorTrack().

double SiStripMonitorTrack::sToNUpperLimit_
private

Definition at line 229 of file SiStripMonitorTrack.h.

Referenced by clusterInfos(), and SiStripMonitorTrack().

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

Definition at line 191 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 130 of file SiStripMonitorTrack.h.

Referenced by book(), and fillMEs().

TkHistoMap * SiStripMonitorTrack::tkhisto_ClChPerCMfromTrack
private

Definition at line 129 of file SiStripMonitorTrack.h.

Referenced by book(), and fillMEs().

TkHistoMap * SiStripMonitorTrack::tkhisto_NumberInactiveHits
private

Definition at line 130 of file SiStripMonitorTrack.h.

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

TkHistoMap * SiStripMonitorTrack::tkhisto_NumberValidHits
private

Definition at line 130 of file SiStripMonitorTrack.h.

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

TkHistoMap * SiStripMonitorTrack::tkhisto_NumMissingHits
private

Definition at line 130 of file SiStripMonitorTrack.h.

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

TkHistoMap * SiStripMonitorTrack::tkhisto_NumOffTrack
private

Definition at line 129 of file SiStripMonitorTrack.h.

Referenced by book(), and clusterInfos().

TkHistoMap * SiStripMonitorTrack::tkhisto_NumOnTrack
private

Definition at line 129 of file SiStripMonitorTrack.h.

Referenced by book(), and clusterInfos().

TkHistoMap* SiStripMonitorTrack::tkhisto_StoNCorrOnTrack
private

Definition at line 129 of file SiStripMonitorTrack.h.

Referenced by book(), and clusterInfos().

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

Definition at line 126 of file SiStripMonitorTrack.h.

Referenced by book(), and SiStripMonitorTrack().

bool SiStripMonitorTrack::trackAssociatorCollection_in_EventTree
private

Definition at line 223 of file SiStripMonitorTrack.h.

std::string SiStripMonitorTrack::TrackLabel_
private

Definition at line 219 of file SiStripMonitorTrack.h.

Referenced by SiStripMonitorTrack(), and trackStudy().

std::string SiStripMonitorTrack::TrackProducer_
private

Definition at line 218 of file SiStripMonitorTrack.h.

Referenced by SiStripMonitorTrack().

bool SiStripMonitorTrack::tracksCollection_in_EventTree
private

Definition at line 222 of file SiStripMonitorTrack.h.

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

Definition at line 206 of file SiStripMonitorTrack.h.

Referenced by SiStripMonitorTrack(), and trackStudy().

edm::EDGetTokenT<TrajTrackAssociationCollection> SiStripMonitorTrack::trackTrajToken_
private

Definition at line 208 of file SiStripMonitorTrack.h.

Referenced by SiStripMonitorTrack(), and trackStudy().

bool SiStripMonitorTrack::Trend_On_
private

Definition at line 211 of file SiStripMonitorTrack.h.

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

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

Definition at line 221 of file SiStripMonitorTrack.h.

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

double SiStripMonitorTrack::widthLowerLimit_
private

Definition at line 230 of file SiStripMonitorTrack.h.

Referenced by clusterInfos(), and SiStripMonitorTrack().

double SiStripMonitorTrack::widthUpperLimit_
private

Definition at line 231 of file SiStripMonitorTrack.h.

Referenced by clusterInfos(), and SiStripMonitorTrack().