test
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 &) override
 
void bookHistograms (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
 
void dqmBeginRun (const edm::Run &run, const edm::EventSetup &es) override
 
 SiStripMonitorTrack (const edm::ParameterSet &)
 
 ~SiStripMonitorTrack ()
 
- Public Member Functions inherited from DQMEDAnalyzer
virtual void beginRun (edm::Run const &, edm::EventSetup const &) final
 
virtual void beginStream (edm::StreamID id) final
 
 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 ()
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
 EDConsumerBase (EDConsumerBase &&)=default
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector
< ProductResolverIndexAndSkipBit >
const & 
itemsToGetFromEvent () const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
virtual ~EDConsumerBase () noexcept(false)
 

Private Types

enum  ClusterFlags { OffTrack, OnTrack }
 

Private Member Functions

void AllClusters (const edm::Event &ev, const edm::EventSetup &es)
 
void book (DQMStore::IBooker &, const TrackerTopology *tTopo)
 
void bookLayerMEs (DQMStore::IBooker &, const uint32_t, std::string &)
 
MonitorElementbookME1D (DQMStore::IBooker &, const char *, const char *)
 
MonitorElementbookME2D (DQMStore::IBooker &, const char *, const char *)
 
MonitorElementbookME3D (DQMStore::IBooker &, const char *, const char *)
 
MonitorElementbookMEProfile (DQMStore::IBooker &, const char *, const char *)
 
MonitorElementbookMETrend (DQMStore::IBooker &, const char *)
 
void bookModMEs (DQMStore::IBooker &, const uint32_t)
 
void bookRing (DQMStore::IBooker &, const uint32_t, std::string &)
 
void bookRingMEs (DQMStore::IBooker &, const uint32_t, std::string &)
 
void bookSubDetMEs (DQMStore::IBooker &, std::string &name)
 
bool clusterInfos (SiStripClusterInfo *cluster, const uint32_t detid, enum ClusterFlags flags, bool track_ok, LocalVector LV, const Det2MEs &MEs, const TrackerTopology *tTopo)
 
void fillME (MonitorElement *ME, float value1)
 
void fillME (MonitorElement *ME, float value1, float value2)
 
void fillME (MonitorElement *ME, float value1, float value2, float value3)
 
void fillME (MonitorElement *ME, float value1, float value2, float value3, float value4)
 
Det2MEs findMEs (const TrackerTopology *tTopo, const uint32_t detid)
 
MonitorElementhandleBookMEs (DQMStore::IBooker &, std::string &, std::string &, std::string &, std::string &)
 
void hitStudy (const edm::EventSetup &es, const ProjectedSiStripRecHit2D *projhit, const SiStripMatchedRecHit2D *matchedhit, const SiStripRecHit2D *hit2D, const SiStripRecHit1D *hit1D, LocalVector localMomentum, const bool track_ok)
 
template<class T >
void RecHitInfo (const T *tkrecHit, LocalVector LV, const edm::EventSetup &, bool ok)
 
bool trackFilter (const reco::Track &track)
 
void trackStudy (const edm::Event &ev, const edm::EventSetup &es)
 
void trackStudyFromTrack (edm::Handle< reco::TrackCollection > trackCollectionHandle, const edm::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, bool track_ok)
 

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_, Cluster_src_, clusterToken_, conf_, edm::EDConsumerBase::consumesCollector(), dcsStatus_, edm::ParameterSet::getParameter(), HLT_25ns10e33_v2_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 
36  TrackProducer_ = conf_.getParameter<std::string>("TrackProducer");
37  TrackLabel_ = conf_.getParameter<std::string>("TrackLabel");
38 
39  topFolderName_ = conf_.getParameter<std::string>("TopFolderName");
40 
41  clusterToken_ = consumes<edmNew::DetSetVector<SiStripCluster> >(Cluster_src_);
42  trackToken_ = consumes<reco::TrackCollection>(edm::InputTag(TrackProducer_,TrackLabel_) );
43  trackTrajToken_ = consumes<TrajTrackAssociationCollection>(edm::InputTag(TrackProducer_,TrackLabel_) );
44 
45  // cluster quality conditions
46  edm::ParameterSet cluster_condition = conf_.getParameter<edm::ParameterSet>("ClusterConditions");
47  applyClusterQuality_ = cluster_condition.getParameter<bool>("On");
48  sToNLowerLimit_ = cluster_condition.getParameter<double>("minStoN");
49  sToNUpperLimit_ = cluster_condition.getParameter<double>("maxStoN");
50  widthLowerLimit_ = cluster_condition.getParameter<double>("minWidth");
51  widthUpperLimit_ = cluster_condition.getParameter<double>("maxWidth");
52 
53 
54  // Create DCS Status
55  bool checkDCS = conf_.getParameter<bool>("UseDCSFiltering");
56  if (checkDCS) dcsStatus_ = new SiStripDCSStatus(consumesCollector());
57  else dcsStatus_ = 0;
58 }
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 61 of file SiStripMonitorTrack.cc.

References dcsStatus_, and genTriggerEventFlag_.

61  {
62  if (dcsStatus_) delete dcsStatus_;
64 }
SiStripDCSStatus * dcsStatus_
GenericTriggerEventFlag * genTriggerEventFlag_

Member Function Documentation

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

Definition at line 1031 of file SiStripMonitorTrack.cc.

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

Referenced by analyze().

1032 {
1033 
1034  //Retrieve tracker topology from geometry
1035  edm::ESHandle<TrackerTopology> tTopoHandle;
1036  es.get<TrackerTopologyRcd>().get(tTopoHandle);
1037  const TrackerTopology* const tTopo = tTopoHandle.product();
1038 
1040  ev.getByToken( clusterToken_, siStripClusterHandle);
1041  if (siStripClusterHandle.isValid()){
1042  //Loop on Dets
1043  for (edmNew::DetSetVector<SiStripCluster>::const_iterator DSViter=siStripClusterHandle->begin(), DSVEnd=siStripClusterHandle->end();
1044  DSViter!=DSVEnd; ++DSViter) {
1045 
1046  uint32_t detid=DSViter->id();
1047  const Det2MEs MEs = findMEs(tTopo, detid);
1048 
1049  LogDebug("SiStripMonitorTrack") << "on detid "<< detid << " N Cluster= " << DSViter->size();
1050 
1051  //Loop on Clusters
1052  for(edmNew::DetSet<SiStripCluster>::const_iterator ClusIter = DSViter->begin(), ClusEnd = DSViter->end();
1053  ClusIter!=ClusEnd; ++ClusIter) {
1054 
1055  if (vPSiStripCluster.find(&*ClusIter) == vPSiStripCluster.end()) {
1056  SiStripClusterInfo SiStripClusterInfo_(*ClusIter,es,detid);
1057  clusterInfos(&SiStripClusterInfo_,detid,OffTrack, /*track_ok*/ false,LV,MEs, tTopo);
1058  }
1059  }
1060  }
1061  } else {
1062  edm::LogError("SiStripMonitorTrack")<< "ClusterCollection is not valid!!" << std::endl;
1063  return;
1064  }
1065 }
#define LogDebug(id)
Det2MEs findMEs(const TrackerTopology *tTopo, const uint32_t detid)
boost::transform_iterator< IterHelp, const_IdIter > const_iterator
bool clusterInfos(SiStripClusterInfo *cluster, const uint32_t detid, enum ClusterFlags flags, bool track_ok, LocalVector LV, const Det2MEs &MEs, const TrackerTopology *tTopo)
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:56
T const * product() const
Definition: ESHandle.h:86
edm::EDGetTokenT< edmNew::DetSetVector< SiStripCluster > > clusterToken_
void SiStripMonitorTrack::analyze ( const edm::Event e,
const edm::EventSetup es 
)
overridevirtual

Implements edm::stream::EDAnalyzerBase.

Definition at line 90 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.

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

Definition at line 147 of file SiStripMonitorTrack.cc.

References bookLayerMEs(), bookModMEs(), bookRingMEs(), bookSubDetMEs(), clchCMoriginTkHmap_On_, SiStripFolderOrganizer::GetSubDetAndLayer(), SiStripFolderOrganizer::getSubDetFolderAndTag(), SiStripHistoId::getSubdetid(), LayerMEsMap, Mod_On_, NULL, 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().

148 {
149 
150  SiStripFolderOrganizer folder_organizer;
151  folder_organizer.setSiStripFolderName(topFolderName_);
152  //******** TkHistoMaps
153  if (TkHistoMap_On_) {
154  tkhisto_StoNCorrOnTrack = new TkHistoMap(ibooker , topFolderName_ ,"TkHMap_StoNCorrOnTrack", 0.0,true);
155  tkhisto_NumOnTrack = new TkHistoMap(ibooker , topFolderName_, "TkHMap_NumberOfOnTrackCluster", 0.0,true);
156  tkhisto_NumOffTrack = new TkHistoMap(ibooker , topFolderName_, "TkHMap_NumberOfOfffTrackCluster",0.0,true);
157  tkhisto_ClChPerCMfromTrack = new TkHistoMap(ibooker , topFolderName_, "TkHMap_ChargePerCMfromTrack",0.0,true);
158  tkhisto_NumMissingHits = new TkHistoMap(ibooker , topFolderName_, "TkHMap_NumberMissingHits",0.0,true);
159  tkhisto_NumberInactiveHits = new TkHistoMap(ibooker , topFolderName_, "TkHMap_NumberInactiveHits",0.0,true);
160  tkhisto_NumberValidHits = new TkHistoMap(ibooker , topFolderName_, "TkHMap_NumberValidHits",0.0,true);
161  }
163  tkhisto_ClChPerCMfromOrigin = new TkHistoMap(ibooker , topFolderName_, "TkHMap_ChargePerCMfromOrigin",0.0,true);
164  //******** TkHistoMaps
165 
166  std::vector<uint32_t> vdetId_;
167  SiStripDetCabling_->addActiveDetectorsRawIds(vdetId_);
168  const char* tec = "TEC";
169  const char* tid = "TID";
170  //Histos for each detector, layer and module
171  SiStripHistoId hidmanager;
172 
173  if(Mod_On_) {
174  for (std::vector<uint32_t>::const_iterator detid_iter=vdetId_.begin(),detid_end=vdetId_.end();detid_iter!=detid_end;++detid_iter){ //loop on all the active detid
175  uint32_t detid = *detid_iter;
176 
177  if (detid < 1){
178  edm::LogError("SiStripMonitorTrack")<< "[" <<__PRETTY_FUNCTION__ << "] invalid detid " << detid<< std::endl;
179  continue;
180  }
181 
182 
183  //std::string name;
184 
185  // book Layer and RING plots
186  std::pair<std::string,int32_t> det_layer_pair = folder_organizer.GetSubDetAndLayer(detid,tTopo,false);
187  /*
188  std::string thickness;
189  std::pair<std::string,int32_t> det_layer_pair_test = folder_organizer.GetSubDetAndLayerThickness(detid,tTopo,thickness);
190  std::cout << "[SiStripMonitorTrack::book] det_layer_pair " << det_layer_pair.first << " " << det_layer_pair.second << " " << thickness << std::endl;
191  */
192 
193  std::string layer_id = hidmanager.getSubdetid(detid, tTopo, false);
194 
195  std::map<std::string, LayerMEs>::iterator iLayerME = LayerMEsMap.find(layer_id);
196  if(iLayerME==LayerMEsMap.end()){
197  folder_organizer.setLayerFolder(detid, tTopo, det_layer_pair.second, false);
198  bookLayerMEs(ibooker , detid, layer_id);
199  }
200 
201  const char* subdet = det_layer_pair.first.c_str();
202  if ( std::strstr(subdet, tec) != NULL || std::strstr(subdet, tid) != NULL ) {
203  std::string ring_id = hidmanager.getSubdetid(detid, tTopo, true);
204  std::map<std::string, RingMEs>::iterator iRingME = RingMEsMap.find(ring_id);
205  if(iRingME==RingMEsMap.end()){
206  std::pair<std::string,int32_t> det_ring_pair = folder_organizer.GetSubDetAndLayer(detid,tTopo,true);
207  folder_organizer.setLayerFolder(detid, tTopo, det_ring_pair.second, true);
208  bookRingMEs(ibooker , detid, ring_id);
209  }
210  }
211 
212  // book sub-detector plots
213  std::pair<std::string,std::string> sdet_pair = folder_organizer.getSubDetFolderAndTag(detid, tTopo);
214  if (SubDetMEsMap.find(sdet_pair.second) == SubDetMEsMap.end()){
215  ibooker.setCurrentFolder(sdet_pair.first);
216  bookSubDetMEs(ibooker , sdet_pair.second);
217  }
218  // book module plots
219  folder_organizer.setDetectorFolder(detid,tTopo);
220  bookModMEs(ibooker , *detid_iter);
221  }//end loop on detectors detid
222  } else {
223  for (std::vector<uint32_t>::const_iterator detid_iter=vdetId_.begin(),detid_end=vdetId_.end();detid_iter!=detid_end;++detid_iter){ //loop on all the active detid
224  uint32_t detid = *detid_iter;
225 
226  if (detid < 1){
227  edm::LogError("SiStripMonitorTrack")<< "[" <<__PRETTY_FUNCTION__ << "] invalid detid " << detid<< std::endl;
228  continue;
229  }
230 
231 
232  //std::string name;
233 
234  // book Layer and RING plots
235  std::pair<std::string,int32_t> det_layer_pair = folder_organizer.GetSubDetAndLayer(detid,tTopo,false);
236  /*
237  std::string thickness;
238  std::pair<std::string,int32_t> det_layer_pair_test = folder_organizer.GetSubDetAndLayerThickness(detid,tTopo,thickness);
239  std::cout << "[SiStripMonitorTrack::book] det_layer_pair " << det_layer_pair.first << " " << det_layer_pair.second << " " << thickness << std::endl;
240  */
241 
242  std::string layer_id = hidmanager.getSubdetid(detid, tTopo, false);
243 
244  std::map<std::string, LayerMEs>::iterator iLayerME = LayerMEsMap.find(layer_id);
245  if(iLayerME==LayerMEsMap.end()){
246  folder_organizer.setLayerFolder(detid, tTopo, det_layer_pair.second, false);
247  bookLayerMEs(ibooker , detid, layer_id);
248  }
249 
250  const char* subdet = det_layer_pair.first.c_str();
251  if ( std::strstr(subdet, tec) != NULL || std::strstr(subdet, tid) != NULL ) {
252  std::string ring_id = hidmanager.getSubdetid(detid, tTopo, true);
253  std::map<std::string, RingMEs>::iterator iRingME = RingMEsMap.find(ring_id);
254  if(iRingME==RingMEsMap.end()){
255  std::pair<std::string,int32_t> det_ring_pair = folder_organizer.GetSubDetAndLayer(detid,tTopo,true);
256  folder_organizer.setLayerFolder(detid, tTopo, det_ring_pair.second, true);
257  bookRingMEs(ibooker , detid, ring_id);
258  }
259  }
260 
261  // book sub-detector plots
262  std::pair<std::string,std::string> sdet_pair = folder_organizer.getSubDetFolderAndTag(detid, tTopo);
263  if (SubDetMEsMap.find(sdet_pair.second) == SubDetMEsMap.end()){
264  ibooker.setCurrentFolder(sdet_pair.first);
265  bookSubDetMEs(ibooker , sdet_pair.second);
266  }
267  }//end loop on detectors detid
268  }
269 }
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)
#define NULL
Definition: scimark2.h:8
edm::ESHandle< SiStripDetCabling > SiStripDetCabling_
void bookLayerMEs(DQMStore::IBooker &, const uint32_t, std::string &)
void setDetectorFolder(uint32_t rawdetid, const TrackerTopology *tTopo)
TkHistoMap * tkhisto_NumMissingHits
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:277
TkHistoMap * tkhisto_ClChPerCMfromOrigin
TkHistoMap * tkhisto_ClChPerCMfromTrack
TkHistoMap * tkhisto_NumOnTrack
TkHistoMap * tkhisto_StoNCorrOnTrack
void bookRingMEs(DQMStore::IBooker &, const uint32_t, std::string &)
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 80 of file SiStripMonitorTrack.cc.

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

81 {
82  //Retrieve tracker topology from geometry
84  es.get<TrackerTopologyRcd>().get(tTopoHandle);
85  const TrackerTopology* const tTopo = tTopoHandle.product();
86  book(ibooker , tTopo);
87 }
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 339 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, conf_, SiStripHistoId::createHistoLayer(), edm::ParameterSet::getParameter(), handleBookMEs(), LayerMEsMap, mergeVDriftHistosByStation::name, SiStripDetCabling_, and AlCaHLTBitMon_QueryRunRegistry::string.

Referenced by book().

340 {
341  std::string name = "layer";
342  std::string view = "layerView";
343  std::string hname;
344  std::string hpar;
345  SiStripHistoId hidmanager;
346 
347  LayerMEs theLayerMEs;
348  theLayerMEs.ClusterStoNCorrOnTrack = 0;
349  theLayerMEs.ClusterChargeCorrOnTrack = 0;
350  theLayerMEs.ClusterChargeOnTrack = 0;
351  theLayerMEs.ClusterChargeOffTrack = 0;
352  theLayerMEs.ClusterNoiseOnTrack = 0;
353  theLayerMEs.ClusterNoiseOffTrack = 0;
354  theLayerMEs.ClusterWidthOnTrack = 0;
355  theLayerMEs.ClusterWidthOffTrack = 0;
356  theLayerMEs.ClusterPosOnTrack = 0;
357  theLayerMEs.ClusterPosOffTrack = 0;
358  theLayerMEs.ClusterChargePerCMfromTrack = 0;
359  theLayerMEs.ClusterChargePerCMfromOriginOnTrack = 0;
360  theLayerMEs.ClusterChargePerCMfromOriginOffTrack = 0;
361 
362  // Signal/Noise (w/ cluster charge corrected)
363  hname = hidmanager.createHistoLayer("Summary_ClusterStoNCorr",name,layer_id,"OnTrack");
364  hpar = "TH1ClusterStoNCorr";
365  theLayerMEs.ClusterStoNCorrOnTrack = handleBookMEs(ibooker,view,layer_id,hpar,hname);
366 
367  // Cluster Charge Corrected
368  hname = hidmanager.createHistoLayer("Summary_ClusterChargeCorr",name,layer_id,"OnTrack");
369  hpar = "TH1ClusterChargeCorr";
370  theLayerMEs.ClusterChargeCorrOnTrack = handleBookMEs(ibooker,view,layer_id,hpar,hname);
371 
372  // Cluster Charge (On and Off Track)
373  hname = hidmanager.createHistoLayer("Summary_ClusterCharge",name,layer_id,"OnTrack");
374  hpar = "TH1ClusterCharge";
375  theLayerMEs.ClusterChargeOnTrack = handleBookMEs(ibooker,view,layer_id,hpar,hname);
376 
377  hname = hidmanager.createHistoLayer("Summary_ClusterCharge",name,layer_id,"OffTrack");
378  hpar = "TH1ClusterCharge";
379  theLayerMEs.ClusterChargeOffTrack = handleBookMEs(ibooker,view,layer_id,hpar,hname);
380 
381  // Cluster Noise (On and Off Track)
382  hname = hidmanager.createHistoLayer("Summary_ClusterNoise",name,layer_id,"OnTrack");
383  hpar = "TH1ClusterNoise";
384  theLayerMEs.ClusterNoiseOnTrack = handleBookMEs(ibooker,view,layer_id,hpar,hname);
385 
386  hname = hidmanager.createHistoLayer("Summary_ClusterNoise",name,layer_id,"OffTrack");
387  hpar = "TH1ClusterNoise";
388  theLayerMEs.ClusterNoiseOffTrack = handleBookMEs(ibooker,view,layer_id,hpar,hname);
389 
390  // Cluster Width (On and Off Track)
391  hname = hidmanager.createHistoLayer("Summary_ClusterWidth",name,layer_id,"OnTrack");
392  hpar = "TH1ClusterWidth";
393  theLayerMEs.ClusterWidthOnTrack = handleBookMEs(ibooker,view,layer_id,hpar,hname);
394 
395  hname = hidmanager.createHistoLayer("Summary_ClusterWidth",name,layer_id,"OffTrack");
396  hpar = "TH1ClusterWidth";
397  theLayerMEs.ClusterWidthOffTrack = handleBookMEs(ibooker,view,layer_id,hpar,hname);
398 
399  //Cluster Position
400  short total_nr_strips = SiStripDetCabling_->nApvPairs(mod_id) * 2 * 128;
401  if (layer_id.find("TEC") != std::string::npos) total_nr_strips = 3 * 2 * 128;
402 
403  hname = hidmanager.createHistoLayer("Summary_ClusterPosition",name,layer_id,"OnTrack");
404  hpar = "TH1ClusterPos";
405  if ( layer_id.find("TIB") != std::string::npos || layer_id.find("TOB") != std::string::npos || (conf_.getParameter<edm::ParameterSet>(hpar.c_str())).getParameter<bool>(view.c_str()) ) theLayerMEs.ClusterPosOnTrack = ibooker.book1D(hname, hname, total_nr_strips, 0.5,total_nr_strips+0.5);
406 
407  hname = hidmanager.createHistoLayer("Summary_ClusterPosition",name,layer_id,"OffTrack");
408  hpar = "TH1ClusterPos";
409  if ( layer_id.find("TIB") != std::string::npos || layer_id.find("TOB") != std::string::npos || (conf_.getParameter<edm::ParameterSet>(hpar.c_str())).getParameter<bool>(view.c_str()) ) theLayerMEs.ClusterPosOffTrack = ibooker.book1D(hname, hname, total_nr_strips, 0.5,total_nr_strips+0.5);
410 
411  // dQ/dx
412  hname = hidmanager.createHistoLayer("Summary_ClusterChargePerCMfromTrack",name,layer_id,"");
413  hpar = "TH1ClusterChargePerCM";
414  theLayerMEs.ClusterChargePerCMfromTrack = handleBookMEs(ibooker,view,layer_id,hpar,hname);
415 
416  hname = hidmanager.createHistoLayer("Summary_ClusterChargePerCMfromOrigin",name,layer_id,"OnTrack");
417  hpar = "TH1ClusterChargePerCM";
418  theLayerMEs.ClusterChargePerCMfromOriginOnTrack = handleBookMEs(ibooker,view,layer_id,hpar,hname);
419 
420  hname = hidmanager.createHistoLayer("Summary_ClusterChargePerCMfromOrigin",name,layer_id,"OffTrack");
421  hpar = "TH1ClusterChargePerCM";
422  theLayerMEs.ClusterChargePerCMfromOriginOffTrack = handleBookMEs(ibooker,view,layer_id,hpar,hname);
423 
424  //bookeeping
425  LayerMEsMap[layer_id]=theLayerMEs;
426 
427 }
T getParameter(std::string const &) const
edm::ParameterSet conf_
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 
)
inlineprivate

Definition at line 621 of file SiStripMonitorTrack.cc.

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

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

622 {
623  Parameters = conf_.getParameter<edm::ParameterSet>(ParameterSetLabel);
624  return ibooker.book1D(HistoName,HistoName,
625  Parameters.getParameter<int32_t>("Nbinx"),
626  Parameters.getParameter<double>("xmin"),
627  Parameters.getParameter<double>("xmax")
628  );
629 }
T getParameter(std::string const &) const
edm::ParameterSet conf_
vector< ParameterSet > Parameters
MonitorElement * book1D(Args &&...args)
Definition: DQMStore.h:115
std::string HistoName
MonitorElement * SiStripMonitorTrack::bookME2D ( DQMStore::IBooker ibooker,
const char *  ParameterSetLabel,
const char *  HistoName 
)
inlineprivate

Definition at line 632 of file SiStripMonitorTrack.cc.

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

633 {
634  Parameters = conf_.getParameter<edm::ParameterSet>(ParameterSetLabel);
635  return ibooker.book2D(HistoName,HistoName,
636  Parameters.getParameter<int32_t>("Nbinx"),
637  Parameters.getParameter<double>("xmin"),
638  Parameters.getParameter<double>("xmax"),
639  Parameters.getParameter<int32_t>("Nbiny"),
640  Parameters.getParameter<double>("ymin"),
641  Parameters.getParameter<double>("ymax")
642  );
643 }
T getParameter(std::string const &) const
edm::ParameterSet conf_
vector< ParameterSet > Parameters
MonitorElement * book2D(Args &&...args)
Definition: DQMStore.h:133
std::string HistoName
MonitorElement * SiStripMonitorTrack::bookME3D ( DQMStore::IBooker ibooker,
const char *  ParameterSetLabel,
const char *  HistoName 
)
inlineprivate

Definition at line 646 of file SiStripMonitorTrack.cc.

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

647 {
648  Parameters = conf_.getParameter<edm::ParameterSet>(ParameterSetLabel);
649  return ibooker.book3D(HistoName,HistoName,
650  Parameters.getParameter<int32_t>("Nbinx"),
651  Parameters.getParameter<double>("xmin"),
652  Parameters.getParameter<double>("xmax"),
653  Parameters.getParameter<int32_t>("Nbiny"),
654  Parameters.getParameter<double>("ymin"),
655  Parameters.getParameter<double>("ymax"),
656  Parameters.getParameter<int32_t>("Nbinz"),
657  Parameters.getParameter<double>("zmin"),
658  Parameters.getParameter<double>("zmax")
659  );
660 }
T getParameter(std::string const &) const
edm::ParameterSet conf_
vector< ParameterSet > Parameters
std::string HistoName
MonitorElement * book3D(Args &&...args)
Definition: DQMStore.h:151
MonitorElement * SiStripMonitorTrack::bookMEProfile ( DQMStore::IBooker ibooker,
const char *  ParameterSetLabel,
const char *  HistoName 
)
inlineprivate

Definition at line 663 of file SiStripMonitorTrack.cc.

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

Referenced by bookModMEs().

664 {
665  Parameters = conf_.getParameter<edm::ParameterSet>(ParameterSetLabel);
666  return ibooker.bookProfile(HistoName,HistoName,
667  Parameters.getParameter<int32_t>("Nbinx"),
668  Parameters.getParameter<double>("xmin"),
669  Parameters.getParameter<double>("xmax"),
670  Parameters.getParameter<int32_t>("Nbiny"),
671  Parameters.getParameter<double>("ymin"),
672  Parameters.getParameter<double>("ymax"),
673  "" );
674 }
T getParameter(std::string const &) const
MonitorElement * bookProfile(Args &&...args)
Definition: DQMStore.h:157
edm::ParameterSet conf_
vector< ParameterSet > Parameters
std::string HistoName
MonitorElement * SiStripMonitorTrack::bookMETrend ( DQMStore::IBooker ibooker,
const char *  HistoName 
)
private

Definition at line 677 of file SiStripMonitorTrack.cc.

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

Referenced by bookSubDetMEs().

678 {
679  edm::ParameterSet ParametersTrend = conf_.getParameter<edm::ParameterSet>("Trending");
681  ParametersTrend.getParameter<int32_t>("Nbins"),
682  ParametersTrend.getParameter<double>("xmin"),
683  ParametersTrend.getParameter<double>("xmax"),
684  0 , 0 , "" );
685  if (me->kind() == MonitorElement::DQM_KIND_TPROFILE) me->getTH1()->SetCanExtend(TH1::kAllAxes);
686 
687  if(!me) return me;
688  me->setAxisTitle("Lumisection",1);
689  return me;
690 }
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 272 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().

273 {
274  std::string name = "det";
275  SiStripHistoId hidmanager;
276  std::string hid = hidmanager.createHistoId("",name,id);
277  std::map<std::string, ModMEs>::iterator iModME = ModMEsMap.find(hid);
278  if(iModME==ModMEsMap.end()){
279  ModMEs theModMEs;
280  theModMEs.ClusterStoNCorr = 0;
281  theModMEs.ClusterCharge = 0;
282  theModMEs.ClusterChargeCorr = 0;
283  theModMEs.ClusterWidth = 0;
284  theModMEs.ClusterPos = 0;
285  theModMEs.ClusterPGV = 0;
286  theModMEs.ClusterChargePerCMfromTrack = 0;
287  theModMEs.ClusterChargePerCMfromOrigin = 0;
288 
289  // Cluster Width
290  theModMEs.ClusterWidth=bookME1D(ibooker , "TH1ClusterWidth", hidmanager.createHistoId("ClusterWidth_OnTrack",name,id).c_str());
291  ibooker.tag(theModMEs.ClusterWidth,id);
292  // Cluster Charge
293  theModMEs.ClusterCharge=bookME1D(ibooker , "TH1ClusterCharge", hidmanager.createHistoId("ClusterCharge_OnTrack",name,id).c_str());
294  ibooker.tag(theModMEs.ClusterCharge,id);
295  // Cluster Charge Corrected
296  theModMEs.ClusterChargeCorr=bookME1D(ibooker , "TH1ClusterChargeCorr", hidmanager.createHistoId("ClusterChargeCorr_OnTrack",name,id).c_str());
297  ibooker.tag(theModMEs.ClusterChargeCorr,id);
298  // Cluster StoN Corrected
299  theModMEs.ClusterStoNCorr=bookME1D(ibooker , "TH1ClusterStoNCorrMod", hidmanager.createHistoId("ClusterStoNCorr_OnTrack",name,id).c_str());
300  ibooker.tag(theModMEs.ClusterStoNCorr,id);
301  // Cluster Position
302  short total_nr_strips = SiStripDetCabling_->nApvPairs(id) * 2 * 128;
303  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);
304  ibooker.tag(theModMEs.ClusterPos,id);
305  // Cluster PGV
306  theModMEs.ClusterPGV=bookMEProfile(ibooker , "TProfileClusterPGV", hidmanager.createHistoId("PGV_OnTrack",name,id).c_str());
307  ibooker.tag(theModMEs.ClusterPGV,id);
308  // Cluster Charge per cm
309  theModMEs.ClusterChargePerCMfromTrack = bookME1D(ibooker , "TH1ClusterChargePerCM", hidmanager.createHistoId("ClusterChargePerCMfromTrack",name,id).c_str());
310  ibooker.tag(theModMEs.ClusterChargePerCMfromTrack,id);
311 
312  theModMEs.ClusterChargePerCMfromOrigin = bookME1D(ibooker , "TH1ClusterChargePerCM", hidmanager.createHistoId("ClusterChargePerCMfromOrigin",name,id).c_str());
313  ibooker.tag(theModMEs.ClusterChargePerCMfromOrigin,id);
314 
315  ModMEsMap[hid]=theModMEs;
316  }
317 }
MonitorElement * bookME1D(DQMStore::IBooker &, const char *, const char *)
edm::ESHandle< SiStripDetCabling > SiStripDetCabling_
MonitorElement * book1D(Args &&...args)
Definition: DQMStore.h:115
void tag(MonitorElement *, unsigned int)
Definition: DQMStore.cc:289
std::string createHistoId(std::string description, std::string id_type, uint32_t component_id)
std::map< std::string, ModMEs > ModMEsMap
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 429 of file SiStripMonitorTrack.cc.

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

Referenced by book().

430 {
431 
432  std::string name = "ring";
433  std::string view = "ringView";
434  std::string hname;
435  std::string hpar;
436  SiStripHistoId hidmanager;
437 
438  RingMEs theRingMEs;
439  theRingMEs.ClusterStoNCorrOnTrack = 0;
440  theRingMEs.ClusterChargeCorrOnTrack = 0;
441  theRingMEs.ClusterChargeOnTrack = 0;
442  theRingMEs.ClusterChargeOffTrack = 0;
443  theRingMEs.ClusterNoiseOnTrack = 0;
444  theRingMEs.ClusterNoiseOffTrack = 0;
445  theRingMEs.ClusterWidthOnTrack = 0;
446  theRingMEs.ClusterWidthOffTrack = 0;
447  theRingMEs.ClusterPosOnTrack = 0;
448  theRingMEs.ClusterPosOffTrack = 0;
449  theRingMEs.ClusterChargePerCMfromTrack = 0;
450  theRingMEs.ClusterChargePerCMfromOriginOnTrack = 0;
451  theRingMEs.ClusterChargePerCMfromOriginOffTrack = 0;
452 
453  hname = hidmanager.createHistoLayer("Summary_ClusterStoNCorr",name,ring_id,"OnTrack");
454  hpar = "TH1ClusterStoNCorr";
455  theRingMEs.ClusterStoNCorrOnTrack = handleBookMEs(ibooker,view,ring_id,hpar,hname);
456 
457  // Cluster Charge Corrected
458  hname = hidmanager.createHistoLayer("Summary_ClusterChargeCorr",name,ring_id,"OnTrack");
459  hpar = "TH1ClusterChargeCorr";
460  theRingMEs.ClusterChargeCorrOnTrack = handleBookMEs(ibooker,view,ring_id,hpar,hname);
461 
462  // Cluster Charge (On and Off Track)
463  hname = hidmanager.createHistoLayer("Summary_ClusterCharge",name,ring_id,"OnTrack");
464  hpar = "TH1ClusterCharge";
465  theRingMEs.ClusterChargeOnTrack = handleBookMEs(ibooker,view,ring_id,hpar,hname);
466 
467  hname = hidmanager.createHistoLayer("Summary_ClusterCharge",name,ring_id,"OffTrack");
468  hpar = "TH1ClusterCharge";
469  theRingMEs.ClusterChargeOffTrack = handleBookMEs(ibooker,view,ring_id,hpar,hname);
470 
471  // Cluster Noise (On and Off Track)
472  hname = hidmanager.createHistoLayer("Summary_ClusterNoise",name,ring_id,"OnTrack");
473  hpar = "TH1ClusterNoise";
474  theRingMEs.ClusterNoiseOnTrack = handleBookMEs(ibooker,view,ring_id,hpar,hname);
475 
476  hname = hidmanager.createHistoLayer("Summary_ClusterNoise",name,ring_id,"OffTrack");
477  hpar = "TH1ClusterNoise";
478  theRingMEs.ClusterNoiseOffTrack = handleBookMEs(ibooker,view,ring_id,hpar,hname);
479 
480  // Cluster Width (On and Off Track)
481  hname = hidmanager.createHistoLayer("Summary_ClusterWidth",name,ring_id,"OnTrack");
482  hpar = "TH1ClusterWidth";
483  theRingMEs.ClusterWidthOnTrack = handleBookMEs(ibooker,view,ring_id,hpar,hname);
484 
485  hname = hidmanager.createHistoLayer("Summary_ClusterWidth",name,ring_id,"OffTrack");
486  hpar = "TH1ClusterWidth";
487  theRingMEs.ClusterWidthOffTrack = handleBookMEs(ibooker,view,ring_id,hpar,hname);
488 
489  //Cluster Position
490  short total_nr_strips = SiStripDetCabling_->nApvPairs(mod_id) * 2 * 128;
491  if (ring_id.find("TEC") != std::string::npos) total_nr_strips = 3 * 2 * 128;
492 
493  hname = hidmanager.createHistoLayer("Summary_ClusterPosition",name,ring_id,"OnTrack");
494  hpar = "TH1ClusterPos";
495  if ( (conf_.getParameter<edm::ParameterSet>(hpar.c_str())).getParameter<bool>(view.c_str()) ) theRingMEs.ClusterPosOnTrack = ibooker.book1D(hname, hname, total_nr_strips, 0.5,total_nr_strips+0.5);
496 
497  hname = hidmanager.createHistoLayer("Summary_ClusterPosition",name,ring_id,"OffTrack");
498  hpar = "TH1ClusterPos";
499  if ( (conf_.getParameter<edm::ParameterSet>(hpar.c_str())).getParameter<bool>(view.c_str()) ) theRingMEs.ClusterPosOffTrack = ibooker.book1D(hname, hname, total_nr_strips, 0.5,total_nr_strips+0.5);
500 
501  // dQ/dx
502  hname = hidmanager.createHistoLayer("Summary_ClusterChargePerCMfromTrack",name,ring_id,"");
503  hpar = "TH1ClusterChargePerCM";
504  theRingMEs.ClusterChargePerCMfromTrack = handleBookMEs(ibooker,view,ring_id,hpar,hname);
505 
506  hname = hidmanager.createHistoLayer("Summary_ClusterChargePerCMfromOrigin",name,ring_id,"OnTrack");
507  hpar = "TH1ClusterChargePerCM";
508  theRingMEs.ClusterChargePerCMfromOriginOnTrack = handleBookMEs(ibooker,view,ring_id,hpar,hname);
509 
510  hname = hidmanager.createHistoLayer("Summary_ClusterChargePerCMfromOrigin",name,ring_id,"OffTrack");
511  hpar = "TH1ClusterChargePerCM";
512  theRingMEs.ClusterChargePerCMfromOriginOffTrack = handleBookMEs(ibooker,view,ring_id,hpar,hname);
513 
514  //bookeeping
515  RingMEsMap[ring_id]=theRingMEs;
516 
517 }
T getParameter(std::string const &) const
std::map< std::string, RingMEs > RingMEsMap
edm::ParameterSet conf_
edm::ESHandle< SiStripDetCabling > SiStripDetCabling_
MonitorElement * book1D(Args &&...args)
Definition: DQMStore.h:115
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 522 of file SiStripMonitorTrack.cc.

References bookME1D(), bookMETrend(), SiStripMonitorTrack::SubDetMEs::ClusterChargeCorrOnTrack, SiStripMonitorTrack::SubDetMEs::ClusterChargeCorrThickOnTrack, SiStripMonitorTrack::SubDetMEs::ClusterChargeCorrThinOnTrack, SiStripMonitorTrack::SubDetMEs::ClusterChargeOffTrack, SiStripMonitorTrack::SubDetMEs::ClusterChargeOnTrack, SiStripMonitorTrack::SubDetMEs::ClusterChargePerCMfromOriginOffTrack, SiStripMonitorTrack::SubDetMEs::ClusterChargePerCMfromOriginOnTrack, SiStripMonitorTrack::SubDetMEs::ClusterChargePerCMfromTrack, SiStripMonitorTrack::SubDetMEs::ClusterStoNCorrOnTrack, SiStripMonitorTrack::SubDetMEs::ClusterStoNCorrThickOnTrack, SiStripMonitorTrack::SubDetMEs::ClusterStoNCorrThinOnTrack, 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().

522  {
523 
525  subdet_tag = "__" + name;
526  std::string completeName;
527  std::string axisName;
528 
529  SubDetMEs theSubDetMEs;
530  theSubDetMEs.totNClustersOnTrack = 0;
531  theSubDetMEs.totNClustersOffTrack = 0;
532  theSubDetMEs.nClustersOnTrack = 0;
533  theSubDetMEs.nClustersTrendOnTrack = 0;
534  theSubDetMEs.nClustersOffTrack = 0;
535  theSubDetMEs.nClustersTrendOffTrack = 0;
536  theSubDetMEs.ClusterStoNCorrOnTrack = 0;
537  theSubDetMEs.ClusterStoNCorrThinOnTrack = 0;
538  theSubDetMEs.ClusterStoNCorrThickOnTrack = 0;
539  theSubDetMEs.ClusterChargeCorrOnTrack = 0;
540  theSubDetMEs.ClusterChargeCorrThinOnTrack = 0;
541  theSubDetMEs.ClusterChargeCorrThickOnTrack = 0;
542  theSubDetMEs.ClusterChargeOnTrack = 0;
543  theSubDetMEs.ClusterChargeOffTrack = 0;
544  theSubDetMEs.ClusterStoNOffTrack = 0;
545  theSubDetMEs.ClusterChargePerCMfromTrack = 0;
546  theSubDetMEs.ClusterChargePerCMfromOriginOnTrack = 0;
547  theSubDetMEs.ClusterChargePerCMfromOriginOffTrack = 0;
548 
549  // TotalNumber of Cluster OnTrack
550  completeName = "Summary_TotalNumberOfClusters_OnTrack" + subdet_tag;
551  axisName = "Number of on-track clusters in " + name;
552  theSubDetMEs.nClustersOnTrack = bookME1D(ibooker , "TH1nClustersOn", completeName.c_str());
553  theSubDetMEs.nClustersOnTrack->setAxisTitle(axisName.c_str());
554  theSubDetMEs.nClustersOnTrack->getTH1()->StatOverflows(kTRUE);
555 
556  // TotalNumber of Cluster OffTrack
557  completeName = "Summary_TotalNumberOfClusters_OffTrack" + subdet_tag;
558  axisName = "Number of off-track clusters in " + name;
559  theSubDetMEs.nClustersOffTrack = bookME1D(ibooker , "TH1nClustersOff", completeName.c_str());
560  theSubDetMEs.nClustersOffTrack->setAxisTitle(axisName.c_str());
561  theSubDetMEs.nClustersOffTrack->getTH1()->StatOverflows(kTRUE);
562 
563  // Cluster StoN On Track
564  completeName = "Summary_ClusterStoNCorr_OnTrack" + subdet_tag;
565  theSubDetMEs.ClusterStoNCorrOnTrack = bookME1D(ibooker , "TH1ClusterStoNCorr", completeName.c_str());
566 
567  completeName = "Summary_ClusterStoNCorrThin_OnTrack" + subdet_tag;
568  if ( subdet_tag.find("TEC") != std::string::npos ) theSubDetMEs.ClusterStoNCorrThinOnTrack = bookME1D(ibooker , "TH1ClusterStoNCorr", completeName.c_str());
569 
570  completeName = "Summary_ClusterStoNCorrThick_OnTrack" + subdet_tag;
571  if ( subdet_tag.find("TEC") != std::string::npos ) theSubDetMEs.ClusterStoNCorrThickOnTrack = bookME1D(ibooker , "TH1ClusterStoNCorr", completeName.c_str());
572 
573  // Cluster Charge Corrected
574  completeName = "Summary_ClusterChargeCorr_OnTrack" + subdet_tag;
575  theSubDetMEs.ClusterChargeCorrOnTrack = bookME1D(ibooker , "TH1ClusterChargeCorr", completeName.c_str());
576 
577  completeName = "Summary_ClusterChargeCorrThin_OnTrack" + subdet_tag;
578  if ( subdet_tag.find("TEC") != std::string::npos ) theSubDetMEs.ClusterChargeCorrThinOnTrack = bookME1D(ibooker , "TH1ClusterChargeCorr", completeName.c_str());
579 
580  completeName = "Summary_ClusterChargeCorrThick_OnTrack" + subdet_tag;
581  if ( subdet_tag.find("TEC") != std::string::npos ) theSubDetMEs.ClusterChargeCorrThickOnTrack = bookME1D(ibooker , "TH1ClusterChargeCorr", completeName.c_str());
582 
583  // Cluster Charge On Track
584  completeName = "Summary_ClusterCharge_OnTrack" + subdet_tag;
585  theSubDetMEs.ClusterChargeOnTrack=bookME1D(ibooker , "TH1ClusterCharge", completeName.c_str());
586 
587  // Cluster Charge Off Track
588  completeName = "Summary_ClusterCharge_OffTrack" + subdet_tag;
589  theSubDetMEs.ClusterChargeOffTrack=bookME1D(ibooker , "TH1ClusterCharge", completeName.c_str());
590 
591  // Cluster Charge StoN Off Track
592  completeName = "Summary_ClusterStoN_OffTrack" + subdet_tag;
593  theSubDetMEs.ClusterStoNOffTrack = bookME1D(ibooker , "TH1ClusterStoN", completeName.c_str());
594 
595  // cluster charge per cm on track
596  completeName = "Summary_ClusterChargePerCMfromTrack" + subdet_tag;
597  theSubDetMEs.ClusterChargePerCMfromTrack=bookME1D(ibooker , "TH1ClusterChargePerCM", completeName.c_str());
598 
599  // cluster charge per cm on track
600  completeName = "Summary_ClusterChargePerCMfromOrigin_OnTrack" + subdet_tag;
601  theSubDetMEs.ClusterChargePerCMfromOriginOnTrack=bookME1D(ibooker , "TH1ClusterChargePerCM", completeName.c_str());
602 
603  // cluster charge per cm off track
604  completeName = "Summary_ClusterChargePerCMfromOrigin_OffTrack" + subdet_tag;
605  theSubDetMEs.ClusterChargePerCMfromOriginOffTrack=bookME1D(ibooker , "TH1ClusterChargePerCM", completeName.c_str());
606 
607  if(Trend_On_){
608  // TotalNumber of Cluster
609  completeName = "Trend_TotalNumberOfClusters_OnTrack" + subdet_tag;
610  theSubDetMEs.nClustersTrendOnTrack = bookMETrend(ibooker , completeName.c_str());
611  completeName = "Trend_TotalNumberOfClusters_OffTrack" + subdet_tag;
612  theSubDetMEs.nClustersTrendOffTrack = bookMETrend(ibooker , completeName.c_str());
613  }
614 
615  //bookeeping
616  SubDetMEsMap[name]=theSubDetMEs;
617 
618 }
MonitorElement * bookME1D(DQMStore::IBooker &, const char *, const char *)
std::map< std::string, SubDetMEs > SubDetMEsMap
const std::string subdet_tag("SubDet")
MonitorElement * bookMETrend(DQMStore::IBooker &, const char *)
void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
bool SiStripMonitorTrack::clusterInfos ( SiStripClusterInfo cluster,
const uint32_t  detid,
enum ClusterFlags  flags,
bool  track_ok,
LocalVector  LV,
const Det2MEs MEs,
const TrackerTopology tTopo 
)
private

Definition at line 1100 of file SiStripMonitorTrack.cc.

References TkHistoMap::add(), applyClusterQuality_, SiStripClusterInfo::baryStrip(), RecoTauCleanerPlugins::charge, SiStripClusterInfo::charge(), siStripClusterTools::chargePerCM(), clchCMoriginTkHmap_On_, SiStripMonitorTrack::LayerMEs::ClusterChargeCorrOnTrack, SiStripMonitorTrack::RingMEs::ClusterChargeCorrOnTrack, SiStripMonitorTrack::SubDetMEs::ClusterChargeCorrOnTrack, SiStripMonitorTrack::SubDetMEs::ClusterChargeCorrThickOnTrack, SiStripMonitorTrack::SubDetMEs::ClusterChargeCorrThinOnTrack, SiStripMonitorTrack::LayerMEs::ClusterChargeOffTrack, SiStripMonitorTrack::RingMEs::ClusterChargeOffTrack, SiStripMonitorTrack::SubDetMEs::ClusterChargeOffTrack, SiStripMonitorTrack::LayerMEs::ClusterChargeOnTrack, SiStripMonitorTrack::RingMEs::ClusterChargeOnTrack, SiStripMonitorTrack::SubDetMEs::ClusterChargeOnTrack, SiStripMonitorTrack::LayerMEs::ClusterChargePerCMfromOriginOffTrack, SiStripMonitorTrack::RingMEs::ClusterChargePerCMfromOriginOffTrack, SiStripMonitorTrack::SubDetMEs::ClusterChargePerCMfromOriginOffTrack, SiStripMonitorTrack::LayerMEs::ClusterChargePerCMfromOriginOnTrack, SiStripMonitorTrack::RingMEs::ClusterChargePerCMfromOriginOnTrack, SiStripMonitorTrack::SubDetMEs::ClusterChargePerCMfromOriginOnTrack, SiStripMonitorTrack::LayerMEs::ClusterChargePerCMfromTrack, SiStripMonitorTrack::RingMEs::ClusterChargePerCMfromTrack, SiStripMonitorTrack::SubDetMEs::ClusterChargePerCMfromTrack, SiStripMonitorTrack::LayerMEs::ClusterNoiseOffTrack, SiStripMonitorTrack::RingMEs::ClusterNoiseOffTrack, SiStripMonitorTrack::LayerMEs::ClusterNoiseOnTrack, SiStripMonitorTrack::RingMEs::ClusterNoiseOnTrack, SiStripMonitorTrack::LayerMEs::ClusterPosOffTrack, SiStripMonitorTrack::RingMEs::ClusterPosOffTrack, SiStripMonitorTrack::LayerMEs::ClusterPosOnTrack, SiStripMonitorTrack::RingMEs::ClusterPosOnTrack, SiStripMonitorTrack::LayerMEs::ClusterStoNCorrOnTrack, SiStripMonitorTrack::RingMEs::ClusterStoNCorrOnTrack, SiStripMonitorTrack::SubDetMEs::ClusterStoNCorrOnTrack, SiStripMonitorTrack::SubDetMEs::ClusterStoNCorrThickOnTrack, SiStripMonitorTrack::SubDetMEs::ClusterStoNCorrThinOnTrack, SiStripMonitorTrack::SubDetMEs::ClusterStoNOffTrack, SiStripMonitorTrack::LayerMEs::ClusterWidthOffTrack, SiStripMonitorTrack::RingMEs::ClusterWidthOffTrack, SiStripMonitorTrack::LayerMEs::ClusterWidthOnTrack, SiStripMonitorTrack::RingMEs::ClusterWidthOnTrack, conf_, SiStripHistoId::createHistoId(), SiStripClusterInfo::detId(), eventNb, TkHistoMap::fill(), fillME(), edm::ParameterSet::getParameter(), i, SiStripMonitorTrack::Det2MEs::iLayer, SiStripMonitorTrack::Det2MEs::iRing, SiStripMonitorTrack::Det2MEs::iSubdet, LogDebug, PV3DBase< T, PVType, FrameType >::mag(), SiStripClusterInfo::maxCharge(), SiStripClusterInfo::maxIndex(), Mod_On_, ModMEsMap, TrackerTopology::moduleGeometry(), mergeVDriftHistosByStation::name, HLT_25ns10e33_v2_cff::noise, SiStripClusterInfo::noiseRescaledByGain(), NULL, OffTrack, OnTrack, position, SiStripClusterInfo::signalOverNoise(), sToNLowerLimit_, sToNUpperLimit_, AlCaHLTBitMon_QueryRunRegistry::string, SiStripClusterInfo::stripCharges(), tkgeom_, tkhisto_ClChPerCMfromOrigin, tkhisto_ClChPerCMfromTrack, tkhisto_NumOffTrack, tkhisto_NumOnTrack, tkhisto_StoNCorrOnTrack, TkHistoMap_On_, GeomDet::toLocal(), SiStripMonitorTrack::SubDetMEs::totNClustersOffTrack, SiStripMonitorTrack::SubDetMEs::totNClustersOnTrack, SiStripClusterInfo::width(), create_public_lumi_plots::width, widthLowerLimit_, widthUpperLimit_, PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().

Referenced by AllClusters(), and RecHitInfo().

1101 {
1102 
1103  if (cluster==NULL) return false;
1104  // if one imposes a cut on the clusters, apply it
1105  if( (applyClusterQuality_) &&
1106  (cluster->signalOverNoise() < sToNLowerLimit_ ||
1107  cluster->signalOverNoise() > sToNUpperLimit_ ||
1108  cluster->width() < widthLowerLimit_ ||
1109  cluster->width() > widthUpperLimit_) ) return false;
1110  // start of the analysis
1111 
1112  float cosRZ = -2;
1113  LogDebug("SiStripMonitorTrack")<< "\n\tLV " << LV.x() << " " << LV.y() << " " << LV.z() << " " << LV.mag() << std::endl;
1114  if (LV.mag()){
1115  cosRZ= fabs(LV.z())/LV.mag();
1116  LogDebug("SiStripMonitorTrack")<< "\n\t cosRZ " << cosRZ << std::endl;
1117  }
1118 
1119  // Filling SubDet/Layer Plots (on Track + off Track)
1120  float StoN = cluster->signalOverNoise();
1121  float noise = cluster->noiseRescaledByGain();
1122  uint16_t charge = cluster->charge();
1123  uint16_t width = cluster->width();
1124  float position = cluster->baryStrip();
1125 
1126  // new dE/dx (chargePerCM)
1127  // https://indico.cern.ch/event/342236/session/5/contribution/10/material/slides/0.pdf
1128  float dQdx_fromTrack = siStripClusterTools::chargePerCM(detid, *cluster, LV);
1129  // from straigth line origin-sensor centre
1130  const StripGeomDetUnit* DetUnit = static_cast<const StripGeomDetUnit*>(tkgeom_->idToDetUnit(DetId(detid)));
1131  LocalPoint locVtx = DetUnit->toLocal(GlobalPoint(0.0, 0.0, 0.0));
1132  LocalVector locDir(locVtx.x(), locVtx.y(), locVtx.z());
1133  float dQdx_fromOrigin = siStripClusterTools::chargePerCM(detid, *cluster, locDir);
1134 
1135  if (TkHistoMap_On_ && (flag == OnTrack)) {
1136  uint32_t adet=cluster->detId();
1137  if(track_ok) tkhisto_ClChPerCMfromTrack->fill(adet,dQdx_fromTrack);
1138  }
1139  if (clchCMoriginTkHmap_On_ && (flag == OffTrack)){
1140  uint32_t adet=cluster->detId();
1141  if(track_ok) tkhisto_ClChPerCMfromOrigin->fill(adet,dQdx_fromOrigin);
1142  }
1143 
1144  if(flag==OnTrack){
1145  if (MEs.iSubdet != nullptr) MEs.iSubdet->totNClustersOnTrack++;
1146  // layerMEs
1147  if (MEs.iLayer != nullptr) {
1148  if(noise > 0.0) fillME(MEs.iLayer->ClusterStoNCorrOnTrack, StoN*cosRZ);
1149  if(noise == 0.0) LogDebug("SiStripMonitorTrack") << "Module " << detid << " in Event " << eventNb << " noise " << cluster->noiseRescaledByGain() << std::endl;
1150  fillME(MEs.iLayer->ClusterChargeCorrOnTrack, charge*cosRZ);
1151  fillME(MEs.iLayer->ClusterChargeOnTrack, charge);
1152  fillME(MEs.iLayer->ClusterNoiseOnTrack, noise);
1153  fillME(MEs.iLayer->ClusterWidthOnTrack, width);
1154  fillME(MEs.iLayer->ClusterPosOnTrack, position);
1155  if(track_ok) fillME(MEs.iLayer->ClusterChargePerCMfromTrack, dQdx_fromTrack);
1156  if(track_ok) fillME(MEs.iLayer->ClusterChargePerCMfromOriginOnTrack, dQdx_fromOrigin);
1157  }
1158  // ringMEs
1159  if (MEs.iRing != nullptr) {
1160  if(noise > 0.0) fillME(MEs.iRing->ClusterStoNCorrOnTrack, StoN*cosRZ);
1161  if(noise == 0.0) LogDebug("SiStripMonitorTrack") << "Module " << detid << " in Event " << eventNb << " noise " << cluster->noiseRescaledByGain() << std::endl;
1162  fillME(MEs.iRing->ClusterChargeCorrOnTrack, charge*cosRZ);
1163  fillME(MEs.iRing->ClusterChargeOnTrack, charge);
1164  fillME(MEs.iRing->ClusterNoiseOnTrack, noise);
1165  fillME(MEs.iRing->ClusterWidthOnTrack, width);
1166  fillME(MEs.iRing->ClusterPosOnTrack, position);
1167  if(track_ok) fillME(MEs.iRing->ClusterChargePerCMfromTrack, dQdx_fromTrack);
1168  if(track_ok) fillME(MEs.iRing->ClusterChargePerCMfromOriginOnTrack, dQdx_fromOrigin);
1169  }
1170  // subdetMEs
1171  if(MEs.iSubdet != nullptr){
1172  fillME(MEs.iSubdet->ClusterChargeOnTrack,charge);
1173  if(noise > 0.0) fillME(MEs.iSubdet->ClusterStoNCorrOnTrack,StoN*cosRZ);
1174  fillME(MEs.iSubdet->ClusterChargeCorrOnTrack, charge*cosRZ);
1175  if(track_ok) fillME(MEs.iSubdet->ClusterChargePerCMfromTrack,dQdx_fromTrack);
1176  if(track_ok) fillME(MEs.iSubdet->ClusterChargePerCMfromOriginOnTrack,dQdx_fromOrigin);
1177  if( tTopo->moduleGeometry(detid) == SiStripDetId::ModuleGeometry::W5 || tTopo->moduleGeometry(detid) == SiStripDetId::ModuleGeometry::W6 || tTopo->moduleGeometry(detid) == SiStripDetId::ModuleGeometry::W7) {
1178  if(noise > 0.0) fillME(MEs.iSubdet->ClusterStoNCorrThickOnTrack, StoN*cosRZ);
1179  fillME(MEs.iSubdet->ClusterChargeCorrThickOnTrack, charge*cosRZ);
1180  } else {
1181  if(noise > 0.0) fillME(MEs.iSubdet->ClusterStoNCorrThinOnTrack, StoN*cosRZ);
1182  fillME(MEs.iSubdet->ClusterChargeCorrThinOnTrack, charge*cosRZ);
1183  }
1184  }
1185  //******** TkHistoMaps
1186  if (TkHistoMap_On_) {
1187  uint32_t adet=cluster->detId();
1188  tkhisto_NumOnTrack->add(adet,1.);
1189  if(noise > 0.0) tkhisto_StoNCorrOnTrack->fill(adet,cluster->signalOverNoise()*cosRZ);
1190  if(noise == 0.0)
1191  LogDebug("SiStripMonitorTrack") << "Module " << detid << " in Event " << eventNb << " noise " << noise << std::endl;
1192  }
1193  // Module plots filled only for onTrack Clusters
1194  if(Mod_On_){
1195  SiStripHistoId hidmanager2;
1196  std::string name = hidmanager2.createHistoId("","det",detid);
1197  //fillModMEs
1198  std::map<std::string, ModMEs>::iterator iModME = ModMEsMap.find(name);
1199  if(iModME!=ModMEsMap.end()){
1200  if(noise > 0.0) fillME(iModME->second.ClusterStoNCorr ,StoN*cosRZ);
1201  if(noise == 0.0) LogDebug("SiStripMonitorTrack") << "Module " << name << " in Event " << eventNb << " noise " << noise << std::endl;
1202  fillME(iModME->second.ClusterCharge,charge);
1203 
1204  fillME(iModME->second.ClusterChargeCorr,charge*cosRZ);
1205 
1206  fillME(iModME->second.ClusterWidth ,width);
1207  fillME(iModME->second.ClusterPos ,position);
1208 
1209  if(track_ok) fillME(iModME->second.ClusterChargePerCMfromTrack, dQdx_fromTrack);
1210  if(track_ok) fillME(iModME->second.ClusterChargePerCMfromOrigin, dQdx_fromOrigin);
1211 
1212  //fill the PGV histo
1213  float PGVmax = cluster->maxCharge();
1214  int PGVposCounter = cluster->maxIndex();
1215  for (int i= int(conf_.getParameter<edm::ParameterSet>("TProfileClusterPGV").getParameter<double>("xmin"));i<PGVposCounter;++i)
1216  fillME(iModME->second.ClusterPGV, i,0.);
1217  for (auto it=cluster->stripCharges().begin();it<cluster->stripCharges().end();++it) {
1218  fillME(iModME->second.ClusterPGV, PGVposCounter++,(*it)/PGVmax);
1219  }
1220  for (int i= PGVposCounter;i<int(conf_.getParameter<edm::ParameterSet>("TProfileClusterPGV").getParameter<double>("xmax"));++i)
1221  fillME(iModME->second.ClusterPGV, i,0.);
1222  //end fill the PGV histo
1223  }
1224  }
1225  } else {
1226  if (flag == OffTrack) {
1227  if (MEs.iSubdet != nullptr) MEs.iSubdet->totNClustersOffTrack++;
1228  //******** TkHistoMaps
1229  if (TkHistoMap_On_) {
1230  uint32_t adet=cluster->detId();
1231  tkhisto_NumOffTrack->add(adet,1.);
1232  if(charge > 250){
1233  LogDebug("SiStripMonitorTrack") << "Module firing " << detid << " in Event " << eventNb << std::endl;
1234  }
1235  }
1236  }
1237  // layerMEs
1238  if (MEs.iLayer != nullptr) {
1239  fillME(MEs.iLayer->ClusterChargeOffTrack, charge);
1240  fillME(MEs.iLayer->ClusterNoiseOffTrack, noise);
1241  fillME(MEs.iLayer->ClusterWidthOffTrack, width);
1242  fillME(MEs.iLayer->ClusterPosOffTrack, position);
1243  fillME(MEs.iLayer->ClusterChargePerCMfromOriginOffTrack, dQdx_fromOrigin);
1244  }
1245  // ringMEs
1246  if (MEs.iRing != nullptr) {
1247  fillME(MEs.iRing->ClusterChargeOffTrack, charge);
1248  fillME(MEs.iRing->ClusterNoiseOffTrack, noise);
1249  fillME(MEs.iRing->ClusterWidthOffTrack, width);
1250  fillME(MEs.iRing->ClusterPosOffTrack, position);
1251  fillME(MEs.iRing->ClusterChargePerCMfromOriginOffTrack, dQdx_fromOrigin);
1252  }
1253  // subdetMEs
1254  if(MEs.iSubdet != nullptr){
1255  fillME(MEs.iSubdet->ClusterChargeOffTrack,charge);
1256  if(noise > 0.0) fillME(MEs.iSubdet->ClusterStoNOffTrack,StoN);
1257  fillME(MEs.iSubdet->ClusterChargePerCMfromOriginOffTrack,dQdx_fromOrigin);
1258  }
1259  }
1260  return true;
1261 }
#define LogDebug(id)
uint8_t maxCharge() const
T getParameter(std::string const &) const
int i
Definition: DBlmapReader.cc:9
TkHistoMap * tkhisto_NumOffTrack
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:69
#define NULL
Definition: scimark2.h:8
SiStripDetId::ModuleGeometry moduleGeometry(const DetId &id) const
uint16_t maxIndex() const
auto stripCharges() const -> decltype(cluster() ->amplitudes())
edm::ESHandle< TrackerGeometry > tkgeom_
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
Definition: DetId.h:18
TkHistoMap * tkhisto_ClChPerCMfromOrigin
std::string createHistoId(std::string description, std::string id_type, uint32_t component_id)
std::map< std::string, ModMEs > ModMEsMap
TkHistoMap * tkhisto_ClChPerCMfromTrack
TkHistoMap * tkhisto_NumOnTrack
uint32_t detId() const
static int position[264][3]
Definition: ReadPGInfo.cc:509
TkHistoMap * tkhisto_StoNCorrOnTrack
T x() const
Definition: PV3DBase.h:62
void add(uint32_t &detid, float value)
Definition: TkHistoMap.cc:213
void SiStripMonitorTrack::dqmBeginRun ( const edm::Run run,
const edm::EventSetup es 
)
overridevirtual

Reimplemented from DQMEDAnalyzer.

Definition at line 67 of file SiStripMonitorTrack.cc.

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

68 {
69  //get geom
71  LogDebug("SiStripMonitorTrack") << "[SiStripMonitorTrack::beginRun] There are "<<tkgeom_->detUnits().size() <<" detectors instantiated in the geometry" << std::endl;
73 
74 
75  // Initialize the GenericTriggerEventFlag
77 }
#define LogDebug(id)
edm::ESHandle< SiStripDetCabling > SiStripDetCabling_
edm::ESHandle< TrackerGeometry > tkgeom_
const T & get() const
Definition: EventSetup.h:56
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 114 of file SiStripMonitorTrack.h.

References MonitorElement::Fill().

Referenced by analyze(), and clusterInfos().

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

Definition at line 115 of file SiStripMonitorTrack.h.

References MonitorElement::Fill().

115 {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 116 of file SiStripMonitorTrack.h.

References MonitorElement::Fill().

116 {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 117 of file SiStripMonitorTrack.h.

References MonitorElement::Fill().

117 {if (ME!=0)ME->Fill(value1,value2,value3,value4);}
void Fill(long long x)
SiStripMonitorTrack::Det2MEs SiStripMonitorTrack::findMEs ( const TrackerTopology tTopo,
const uint32_t  detid 
)
private

Definition at line 1068 of file SiStripMonitorTrack.cc.

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

Referenced by AllClusters(), and RecHitInfo().

1068  {
1069  SiStripHistoId hidmanager1;
1070 
1071  std::string layer_id = hidmanager1.getSubdetid(detid, tTopo, false);
1072  std::string ring_id = hidmanager1.getSubdetid(detid, tTopo, true);
1073  std::string sdet_tag = folderOrganizer_.getSubDetFolderAndTag(detid, tTopo).second;
1074 
1075  Det2MEs me;
1076  me.iLayer = nullptr;
1077  me.iRing = nullptr;
1078  me.iSubdet = nullptr;
1079 
1080  std::map<std::string, LayerMEs>::iterator iLayer = LayerMEsMap.find(layer_id);
1081  if (iLayer != LayerMEsMap.end()) {
1082  me.iLayer = &(iLayer->second);
1083  }
1084 
1085  std::map<std::string, RingMEs>::iterator iRing = RingMEsMap.find(ring_id);
1086  if (iRing != RingMEsMap.end()) {
1087  me.iRing = &(iRing->second);
1088  }
1089 
1090  std::map<std::string, SubDetMEs>::iterator iSubdet = SubDetMEsMap.find(sdet_tag);
1091  if (iSubdet != SubDetMEsMap.end()) {
1092  me.iSubdet = &(iSubdet->second);
1093  }
1094 
1095  return me;
1096 }
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 319 of file SiStripMonitorTrack.cc.

References bookME1D(), conf_, spr::find(), edm::ParameterSet::getParameter(), hlt_dqm_clientPB-live_cfg::me, and NULL.

Referenced by bookLayerMEs(), and bookRingMEs().

319  {
320 
322  bool view = false;
323  view = (conf_.getParameter<edm::ParameterSet>(histoParameters.c_str())).getParameter<bool>(viewParameter.c_str());
324  if ( id.find("TEC") == std::string::npos && id.find("TID") == std::string::npos ) {
325  me = bookME1D(ibooker , histoParameters.c_str(), histoName.c_str());
326  } else {
327  if (view) {
328  // histoName = histoName + "__" + thickness;
329  me = bookME1D(ibooker , histoParameters.c_str(), histoName.c_str());
330  }
331  }
332  return me;
333 }
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,
const bool  track_ok 
)
private

Definition at line 782 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().

789  {
790  LocalVector statedirection;
791  if(matchedhit){ // type=Matched;
792  LogTrace("SiStripMonitorTrack")<<"\nMatched recHit found"<< std::endl;
793 
794  const GluedGeomDet * gdet=static_cast<const GluedGeomDet *>(tkgeom_->idToDet(matchedhit->geographicalId()));
795 
796  GlobalVector gtrkdirup=gdet->toGlobal(localMomentum);
797 
798  //mono side
799  const GeomDetUnit * monodet=gdet->monoDet();
800  statedirection=monodet->toLocal(gtrkdirup);
801  SiStripRecHit2D m = matchedhit->monoHit();
802  if(statedirection.mag()) RecHitInfo<SiStripRecHit2D>(&m,statedirection,es,track_ok);
803 
804  //stereo side
805  const GeomDetUnit * stereodet=gdet->stereoDet();
806  statedirection=stereodet->toLocal(gtrkdirup);
807  SiStripRecHit2D s = matchedhit->stereoHit();
808  if(statedirection.mag()) RecHitInfo<SiStripRecHit2D>(&s,statedirection,es,track_ok);
809  }
810  else if(projhit){ // type=Projected;
811  LogTrace("SiStripMonitorTrack")<<"\nProjected recHit found"<< std::endl;
812 
813  const GluedGeomDet * gdet=static_cast<const GluedGeomDet *>(tkgeom_->idToDet(projhit->geographicalId()));
814 
815  GlobalVector gtrkdirup=gdet->toGlobal(localMomentum);
816  const SiStripRecHit2D originalhit=projhit->originalHit();
817 
818  const GeomDetUnit * det;
819  if(!StripSubdetector(originalhit.geographicalId().rawId()).stereo()){
820  //mono side
821  LogTrace("SiStripMonitorTrack")<<"\nProjected recHit found MONO"<< std::endl;
822  det=gdet->monoDet();
823  statedirection=det->toLocal(gtrkdirup);
824  if(statedirection.mag()) RecHitInfo<SiStripRecHit2D>(&(originalhit),statedirection,es,track_ok);
825  }
826  else{
827  LogTrace("SiStripMonitorTrack")<<"\nProjected recHit found STEREO"<< std::endl;
828  //stereo side
829  det=gdet->stereoDet();
830  statedirection=det->toLocal(gtrkdirup);
831  if(statedirection.mag()) RecHitInfo<SiStripRecHit2D>(&(originalhit),statedirection,es,track_ok);
832  }
833  } else if (hit2D){ // type=2D
834  statedirection=localMomentum;
835  if(statedirection.mag()) RecHitInfo<SiStripRecHit2D>(hit2D,statedirection,es,track_ok);
836  } else if (hit1D) { // type=1D
837  statedirection=localMomentum;
838  if(statedirection.mag()) RecHitInfo<SiStripRecHit1D>(hit1D,statedirection,es,track_ok);
839  } else {
840  LogDebug ("SiStripMonitorTrack")
841  << " LocalMomentum: "<<statedirection
842  << "\nLocal x-z plane angle: "<<atan2(statedirection.x(),statedirection.z());
843  }
844 
845 }
#define LogDebug(id)
const GeomDetUnit * monoDet() const
Definition: GluedGeomDet.h:20
GlobalPoint toGlobal(const Local2DPoint &lp) const
Conversion to the global R.F. from the R.F. of the GeomDet.
Definition: GeomDet.h:54
LocalPoint toLocal(const GlobalPoint &gp) const
Conversion to the R.F. of the GeomDet.
Definition: GeomDet.h:69
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,
bool  ok 
)
private

Definition at line 992 of file SiStripMonitorTrack.cc.

References clusterInfos(), 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().

992  {
993 
994  if(!tkrecHit->isValid()){
995  LogTrace("SiStripMonitorTrack") <<"\t\t Invalid Hit " << std::endl;
996  return;
997  }
998 
999  const uint32_t& detid = tkrecHit->geographicalId().rawId();
1000 
1001  LogTrace("SiStripMonitorTrack")
1002  <<"\n\t\tRecHit on det "<<detid
1003  <<"\n\t\tRecHit in LP "<<tkrecHit->localPosition()
1004  <<"\n\t\tRecHit in GP "<<tkgeom_->idToDet(tkrecHit->geographicalId())->surface().toGlobal(tkrecHit->localPosition())
1005  <<"\n\t\tRecHit trackLocal vector "<<LV.x() << " " << LV.y() << " " << LV.z() <<std::endl;
1006 
1007 
1008  //Retrieve tracker topology from geometry
1009  edm::ESHandle<TrackerTopology> tTopoHandle;
1010  es.get<TrackerTopologyRcd>().get(tTopoHandle);
1011  const TrackerTopology* const tTopo = tTopoHandle.product();
1012 
1013  //Get SiStripCluster from SiStripRecHit
1014  if ( tkrecHit != NULL ){
1015  const SiStripCluster* SiStripCluster_ = &*(tkrecHit->cluster());
1016  SiStripClusterInfo SiStripClusterInfo_(*SiStripCluster_,es,detid);
1017 
1018  const Det2MEs MEs = findMEs(tTopo, detid);
1019  if (clusterInfos(&SiStripClusterInfo_,detid, OnTrack, track_ok, LV, MEs, tTopo))
1020  {
1021  vPSiStripCluster.insert(SiStripCluster_);
1022  }
1023  }
1024  else
1025  {
1026  edm::LogError("SiStripMonitorTrack") << "NULL hit" << std::endl;
1027  }
1028  }
Det2MEs findMEs(const TrackerTopology *tTopo, const uint32_t detid)
bool clusterInfos(SiStripClusterInfo *cluster, const uint32_t detid, enum ClusterFlags flags, bool track_ok, LocalVector LV, const Det2MEs &MEs, const TrackerTopology *tTopo)
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:56
T const * product() const
Definition: ESHandle.h:86
T x() const
Definition: PV3DBase.h:62
bool SiStripMonitorTrack::trackFilter ( const reco::Track track)
private

Definition at line 878 of file SiStripMonitorTrack.cc.

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

Referenced by trackStudyFromTrack(), and trackStudyFromTrajectory().

878  {
879  if (track.pt() < 0.8) return false;
880  if (track.p() < 2.0) return false;
881  if (track.hitPattern().numberOfValidTrackerHits() <= 6) return false;
882  if (track.normalizedChi2() > 10.0) return false;
883  return true;
884 }
double p() const
momentum vector magnitude
Definition: TrackBase.h:610
double normalizedChi2() const
chi-squared divided by n.d.o.f. (or chi-squared * 1e6 if n.d.o.f. is zero)
Definition: TrackBase.h:556
double pt() const
track transverse momentum
Definition: TrackBase.h:616
const HitPattern & hitPattern() const
Access the hit pattern, indicating in which Tracker layers the track has hits.
Definition: TrackBase.h:445
int numberOfValidTrackerHits() const
Definition: HitPattern.h:828
void SiStripMonitorTrack::trackStudy ( const edm::Event ev,
const edm::EventSetup es 
)
private

Definition at line 847 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().

847  {
848 
849 using namespace std;
850 using namespace edm;
851 using namespace reco;
852 
853  // trajectory input
854  edm::Handle<TrajTrackAssociationCollection> TItkAssociatorCollection;
855  ev.getByToken(trackTrajToken_, TItkAssociatorCollection);
856  if( TItkAssociatorCollection.isValid()){
857  trackStudyFromTrajectory(TItkAssociatorCollection,es);
858  } else {
859  edm::LogError("SiStripMonitorTrack")<<"Association not found ... try w/ track collection"<<std::endl;
860 
861  // edm::Handle<std::vector<Trajectory> > trajectories;
862  // ev.getByToken(trajectoryToken_, trajectories);
863 
864  // track input
865  edm::Handle<reco::TrackCollection > trackCollectionHandle;
866  ev.getByToken(trackToken_, trackCollectionHandle);//takes the track collection
867  if (trackCollectionHandle.isValid()){
868  trackStudyFromTrack(trackCollectionHandle,es);
869  } else {
870  edm::LogError("SiStripMonitorTrack")<<"also Track Collection is not valid !! " << TrackLabel_<<std::endl;
871  return;
872  }
873  }
874 }
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 886 of file SiStripMonitorTrack.cc.

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

Referenced by trackStudy().

886  {
887 
888  // edm::ESHandle<TransientTrackBuilder> builder;
889  // es.get<TransientTrackRecord>().get("TransientTrackBuilder",builder);
890  // const TransientTrackBuilder* transientTrackBuilder = builder.product();
891 
892  //numTracks = trackCollectionHandle->size();
893  reco::TrackCollection trackCollection = *trackCollectionHandle;
894  for (reco::TrackCollection::const_iterator track = trackCollection.begin(), etrack = trackCollection.end();
895  track!=etrack; ++track) {
896 
897  bool track_ok = trackFilter(*track);
898  // const reco::TransientTrack transientTrack = transientTrackBuilder->build(track);
899 
900  for (trackingRecHit_iterator hit = track->recHitsBegin(), ehit = track->recHitsEnd();
901  hit!=ehit; ++hit) {
902 
903  if (TkHistoMap_On_ ) {
904  uint32_t thedetid=(*hit)->rawId();
905  if ( SiStripDetId(thedetid).subDetector() >=3 && SiStripDetId(thedetid).subDetector() <=6) { //TIB/TID + TOB + TEC only
906  if ( ((*hit)->getType()==1) )
907  tkhisto_NumMissingHits->add(thedetid,1.);
908  if ( ((*hit)->getType()==2) )
909  tkhisto_NumberInactiveHits->add(thedetid,1.);
910  if ( ((*hit)->getType()==0) )
911  tkhisto_NumberValidHits->add(thedetid,1.);
912  }
913  }
914 
915  if (!(*hit)->isValid()) continue;
916  DetId detID = (*hit)->geographicalId();
917  if (detID.det() != DetId::Tracker) continue;
918  const TrackingRecHit* theHit = (*hit);
919  const ProjectedSiStripRecHit2D* projhit = dynamic_cast<const ProjectedSiStripRecHit2D*>( (theHit) );
920  const SiStripMatchedRecHit2D* matchedhit = dynamic_cast<const SiStripMatchedRecHit2D*> ( (theHit) );
921  const SiStripRecHit2D* hit2D = dynamic_cast<const SiStripRecHit2D*> ( (theHit) );
922  const SiStripRecHit1D* hit1D = dynamic_cast<const SiStripRecHit1D*> ( (theHit) );
923 
924  // GlobalPoint globalPoint = hit->globalPosition();
925  // reco::TrajectoryStateOnSurface stateOnSurface = transientTrack->stateOnSurface(globalPoint);
926 
927  LocalVector localMomentum;
928  hitStudy(es,projhit,matchedhit,hit2D,hit1D,localMomentum,track_ok);
929  }
930 
931  // hit pattern of the track
932  // const reco::HitPattern & hitsPattern = track->hitPattern();
933  // loop over the hits of the track
934  // for (int i=0; i<hitsPattern.numberOfHits(); i++) {
935  // for (int i=0; i<hitsPattern.numberOfHits(reco::HitPattern::TRACK_HITS); i++) {
936  // uint32_t hit = hitsPattern.getHitPattern(reco::HitPattern::TRACK_HITS,i);
937 
938  // if the hit is valid and in pixel barrel, print out the layer
939  // if (hitsPattern.validHitFilter(hit) && hitsPattern.pixelBarrelHitFilter(hit))
940 
941  // if (!hitsPattern.validHitFilter(hit)) continue;
942 // if (hitsPattern.pixelHitFilter(hit)) std::cout << "pixel" << std::endl; // pixel
943 // if (hitsPattern.pixelBarrelHitFilter(hit)) std::cout << "pixel barrel" << std::endl; // pixel barrel
944 // if (hitsPattern.pixelEndcapHitFilter(hit)) std::cout << "pixel endcap" << std::endl; // pixel endcap
945 // if (hitsPattern.stripHitFilter(hit)) std::cout << "strip" << std::endl; // strip
946 // if (hitsPattern.stripTIBHitFilter(hit)) std::cout << "TIB" << std::endl; // strip TIB
947 // if (hitsPattern.stripTIDHitFilter(hit)) std::cout << "TID" << std::endl; // strip TID
948 // if (hitsPattern.stripTOBHitFilter(hit)) std::cout << "TOB" << std::endl; // strip TOB
949 // if (hitsPattern.stripTECHitFilter(hit)) std::cout << "TEC" << std::endl; // strip TEC
950 // if (hitsPattern.muonDTHitFilter(hit)) std::cout << "DT" << std::endl; // muon DT
951 // if (hitsPattern.muonCSCHitFilter(hit)) std::cout << "CSC" << std::endl; // muon CSC
952 // if (hitsPattern.muonRPCHitFilter(hit)) std::cout << "RPC" << std::endl; // muon RPC
953 //
954 // // expert level: printout the hit in 10-bit binary format
955 // std::cout << "hit in 10-bit binary format = ";
956 // for (int j=9; j>=0; j--) {
957 // int bit = (hit >> j) & 0x1;
958 // std::cout << bit;
959 // }
960 // std::cout << std::endl;
961  // }
962  }
963 }
std::vector< Track > TrackCollection
collection of Tracks
Definition: TrackFwd.h:14
bool trackFilter(const reco::Track &track)
TkHistoMap * tkhisto_NumMissingHits
Detector identifier class for the strip tracker.
Definition: SiStripDetId.h:17
Definition: DetId.h:18
TkHistoMap * tkhisto_NumberInactiveHits
void hitStudy(const edm::EventSetup &es, const ProjectedSiStripRecHit2D *projhit, const SiStripMatchedRecHit2D *matchedhit, const SiStripRecHit2D *hit2D, const SiStripRecHit1D *hit1D, LocalVector localMomentum, const bool track_ok)
Detector det() const
get the detector field from this detid
Definition: DetId.h:35
void add(uint32_t &detid, float value)
Definition: TkHistoMap.cc:213
TkHistoMap * tkhisto_NumberValidHits
TrackingRecHitCollection::base::const_iterator trackingRecHit_iterator
iterator over a vector of reference to TrackingRecHit in the same collection
void SiStripMonitorTrack::trackStudyFromTrajectory ( edm::Handle< TrajTrackAssociationCollection TItkAssociatorCollection,
const edm::EventSetup es 
)
private

Definition at line 965 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, trackFilter(), and trajectoryStudy().

Referenced by trackStudy().

965  {
966  //Perform track study
967  numTracks = TItkAssociatorCollection->size();
968  int i=0;
969  for(TrajTrackAssociationCollection::const_iterator it = TItkAssociatorCollection->begin();it != TItkAssociatorCollection->end(); ++it){
970  const edm::Ref<std::vector<Trajectory> > traj_iterator = it->key;
971 
972  // Trajectory Map, extract Trajectory for this track
973  //reco::TrackRef trackref = it->val;
974  LogDebug("SiStripMonitorTrack")
975  << "Track number "<< ++i << std::endl;
976  // << "\n\tmomentum: " << trackref->momentum()
977  // << "\n\tPT: " << trackref->pt()
978  // << "\n\tvertex: " << trackref->vertex()
979  // << "\n\timpact parameter: " << trackref->d0()
980  // << "\n\tcharge: " << trackref->charge()
981  // << "\n\tnormalizedChi2: " << trackref->normalizedChi2()
982  // <<"\n\tFrom EXTRA : "
983  // <<"\n\t\touter PT "<< trackref->outerPt()<<std::endl;
984 
985  // trajectoryStudy(traj_iterator,trackref,es);
986  bool track_ok = trackFilter(*(it->val));
987  trajectoryStudy(traj_iterator,es,track_ok);
988 
989  }
990 }
#define LogDebug(id)
int i
Definition: DBlmapReader.cc:9
bool trackFilter(const reco::Track &track)
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, bool track_ok)
void SiStripMonitorTrack::trajectoryStudy ( const edm::Ref< std::vector< Trajectory > >  traj,
const edm::EventSetup es,
bool  track_ok 
)
private

Definition at line 693 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(), 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().

693  {
694  const std::vector<TrajectoryMeasurement> & measurements = traj->measurements();
695  for(std::vector<TrajectoryMeasurement>::const_iterator traj_mes_iterator= measurements.begin(), traj_mes_end=measurements.end();
696  traj_mes_iterator!=traj_mes_end;++traj_mes_iterator){//loop on measurements
697  //trajectory local direction and position on detector
698  LocalVector statedirection;
699 
700  TrajectoryStateOnSurface updatedtsos=traj_mes_iterator->updatedState();
701  ConstRecHitPointer ttrh=traj_mes_iterator->recHit();
702 
703 
704  if (TkHistoMap_On_ ) {
705  uint32_t thedetid=ttrh->rawId();
706  if ( SiStripDetId(thedetid).subDetector() >=3 && SiStripDetId(thedetid).subDetector() <=6) { //TIB/TID + TOB + TEC only
707  if ( (ttrh->getType()==1) )
708  tkhisto_NumMissingHits->add(thedetid,1.);
709  if ( (ttrh->getType()==2) )
710  tkhisto_NumberInactiveHits->add(thedetid,1.);
711  if ( (ttrh->getType()==0) )
712  tkhisto_NumberValidHits->add(thedetid,1.);
713  }
714  }
715 
716  if (!ttrh->isValid()) continue;
717 
718  const ProjectedSiStripRecHit2D* projhit = dynamic_cast<const ProjectedSiStripRecHit2D*>( ttrh->hit() );
719  const SiStripMatchedRecHit2D* matchedhit = dynamic_cast<const SiStripMatchedRecHit2D*>( ttrh->hit() );
720  const SiStripRecHit2D* hit2D = dynamic_cast<const SiStripRecHit2D*>( ttrh->hit() );
721  const SiStripRecHit1D* hit1D = dynamic_cast<const SiStripRecHit1D*>( ttrh->hit() );
722 
723  // RecHitType type=Single;
724 
725  if(matchedhit){
726  LogTrace("SiStripMonitorTrack")<<"\nMatched recHit found"<< std::endl;
727  // type=Matched;
728 
729  const GluedGeomDet * gdet=static_cast<const GluedGeomDet *>(tkgeom_->idToDet(matchedhit->geographicalId()));
730  GlobalVector gtrkdirup=gdet->toGlobal(updatedtsos.localMomentum());
731  //mono side
732  const GeomDetUnit * monodet=gdet->monoDet();
733  statedirection=monodet->toLocal(gtrkdirup);
734  SiStripRecHit2D m = matchedhit->monoHit();
735  // if(statedirection.mag() != 0) RecHitInfo<SiStripRecHit2D>(&m,statedirection,trackref,es);
736  if(statedirection.mag()) RecHitInfo<SiStripRecHit2D>(&m,statedirection,es,track_ok);
737  //stereo side
738  const GeomDetUnit * stereodet=gdet->stereoDet();
739  statedirection=stereodet->toLocal(gtrkdirup);
740  SiStripRecHit2D s = matchedhit->stereoHit();
741  // if(statedirection.mag() != 0) RecHitInfo<SiStripRecHit2D>(&s,statedirection,trackref,es);
742  if(statedirection.mag()) RecHitInfo<SiStripRecHit2D>(&s,statedirection,es,track_ok);
743  }
744  else if(projhit){
745  LogTrace("SiStripMonitorTrack")<<"\nProjected recHit found"<< std::endl;
746  // type=Projected;
747  const GluedGeomDet * gdet=static_cast<const GluedGeomDet *>(tkgeom_->idToDet(projhit->geographicalId()));
748 
749  GlobalVector gtrkdirup=gdet->toGlobal(updatedtsos.localMomentum());
750  const SiStripRecHit2D originalhit=projhit->originalHit();
751  const GeomDetUnit * det;
752  if(!StripSubdetector(originalhit.geographicalId().rawId()).stereo()){
753  //mono side
754  LogTrace("SiStripMonitorTrack")<<"\nProjected recHit found MONO"<< std::endl;
755  det=gdet->monoDet();
756  statedirection=det->toLocal(gtrkdirup);
757  if(statedirection.mag()) RecHitInfo<SiStripRecHit2D>(&(originalhit),statedirection,es,track_ok);
758  }
759  else{
760  LogTrace("SiStripMonitorTrack")<<"\nProjected recHit found STEREO"<< std::endl;
761  //stereo side
762  det=gdet->stereoDet();
763  statedirection=det->toLocal(gtrkdirup);
764  if(statedirection.mag()) RecHitInfo<SiStripRecHit2D>(&(originalhit),statedirection,es,track_ok);
765  }
766  }else if (hit2D){
767  statedirection=updatedtsos.localMomentum();
768  if(statedirection.mag()) RecHitInfo<SiStripRecHit2D>(hit2D,statedirection,es,track_ok);
769  } else if (hit1D) {
770  statedirection=updatedtsos.localMomentum();
771  if(statedirection.mag()) RecHitInfo<SiStripRecHit1D>(hit1D,statedirection,es,track_ok);
772  } else {
773  LogDebug ("SiStripMonitorTrack")
774  << " LocalMomentum: "<<statedirection
775  << "\nLocal x-z plane angle: "<<atan2(statedirection.x(),statedirection.z());
776  }
777 
778  }
779 
780 }
#define LogDebug(id)
const GeomDetUnit * monoDet() const
Definition: GluedGeomDet.h:20
GlobalPoint toGlobal(const Local2DPoint &lp) const
Conversion to the global R.F. from the R.F. of the GeomDet.
Definition: GeomDet.h:54
LocalPoint toLocal(const GlobalPoint &gp) const
Conversion to the R.F. of the GeomDet.
Definition: GeomDet.h:69
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
TkHistoMap * tkhisto_NumMissingHits
T z() const
Definition: PV3DBase.h:64
#define LogTrace(id)
SiStripRecHit2D originalHit() const
Detector identifier class for the strip tracker.
Definition: SiStripDetId.h:17
TkHistoMap * tkhisto_NumberInactiveHits
SiStripRecHit2D stereoHit() const
SiStripRecHit2D monoHit() const
DetId geographicalId() const
T x() const
Definition: PV3DBase.h:62
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 237 of file SiStripMonitorTrack.h.

Referenced by clusterInfos(), and SiStripMonitorTrack().

bool SiStripMonitorTrack::clchCMoriginTkHmap_On_
private

Definition at line 226 of file SiStripMonitorTrack.h.

Referenced by book(), and clusterInfos().

edm::InputTag SiStripMonitorTrack::Cluster_src_
private

Definition at line 213 of file SiStripMonitorTrack.h.

Referenced by SiStripMonitorTrack().

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

Definition at line 215 of file SiStripMonitorTrack.h.

Referenced by AllClusters(), and SiStripMonitorTrack().

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

Definition at line 243 of file SiStripMonitorTrack.h.

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

edm::EventNumber_t SiStripMonitorTrack::eventNb
private

Definition at line 234 of file SiStripMonitorTrack.h.

Referenced by analyze(), and clusterInfos().

int SiStripMonitorTrack::firstEvent
private

Definition at line 235 of file SiStripMonitorTrack.h.

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

SiStripFolderOrganizer SiStripMonitorTrack::folderOrganizer_
private

Definition at line 245 of file SiStripMonitorTrack.h.

Referenced by findMEs().

GenericTriggerEventFlag* SiStripMonitorTrack::genTriggerEventFlag_
private

Definition at line 244 of file SiStripMonitorTrack.h.

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

std::string SiStripMonitorTrack::histname
private

Definition at line 124 of file SiStripMonitorTrack.h.

bool SiStripMonitorTrack::HistoFlag_On_
private

Definition at line 223 of file SiStripMonitorTrack.h.

float SiStripMonitorTrack::iLumisection
private

Definition at line 126 of file SiStripMonitorTrack.h.

Referenced by analyze().

float SiStripMonitorTrack::iOrbitSec
private

Definition at line 126 of file SiStripMonitorTrack.h.

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

Definition at line 199 of file SiStripMonitorTrack.h.

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

LocalVector SiStripMonitorTrack::LV
private

Definition at line 125 of file SiStripMonitorTrack.h.

bool SiStripMonitorTrack::Mod_On_
private

Definition at line 220 of file SiStripMonitorTrack.h.

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

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

Definition at line 198 of file SiStripMonitorTrack.h.

Referenced by bookModMEs(), and clusterInfos().

int SiStripMonitorTrack::numTracks
private

Definition at line 135 of file SiStripMonitorTrack.h.

Referenced by trackStudyFromTrajectory().

bool SiStripMonitorTrack::OffHisto_On_
private

Definition at line 222 of file SiStripMonitorTrack.h.

edm::ParameterSet SiStripMonitorTrack::Parameters
private

Definition at line 212 of file SiStripMonitorTrack.h.

bool SiStripMonitorTrack::ring_flag
private

Definition at line 224 of file SiStripMonitorTrack.h.

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

Definition at line 200 of file SiStripMonitorTrack.h.

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

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

Definition at line 210 of file SiStripMonitorTrack.h.

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

double SiStripMonitorTrack::sToNLowerLimit_
private

Definition at line 238 of file SiStripMonitorTrack.h.

Referenced by clusterInfos(), and SiStripMonitorTrack().

double SiStripMonitorTrack::sToNUpperLimit_
private

Definition at line 239 of file SiStripMonitorTrack.h.

Referenced by clusterInfos(), and SiStripMonitorTrack().

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

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

Referenced by book(), and clusterInfos().

TkHistoMap * SiStripMonitorTrack::tkhisto_ClChPerCMfromTrack
private

Definition at line 132 of file SiStripMonitorTrack.h.

Referenced by book(), and clusterInfos().

TkHistoMap * SiStripMonitorTrack::tkhisto_NumberInactiveHits
private

Definition at line 133 of file SiStripMonitorTrack.h.

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

TkHistoMap * SiStripMonitorTrack::tkhisto_NumberValidHits
private

Definition at line 133 of file SiStripMonitorTrack.h.

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

TkHistoMap* SiStripMonitorTrack::tkhisto_NumMissingHits
private

Definition at line 133 of file SiStripMonitorTrack.h.

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

TkHistoMap * SiStripMonitorTrack::tkhisto_NumOffTrack
private

Definition at line 131 of file SiStripMonitorTrack.h.

Referenced by book(), and clusterInfos().

TkHistoMap * SiStripMonitorTrack::tkhisto_NumOnTrack
private

Definition at line 131 of file SiStripMonitorTrack.h.

Referenced by book(), and clusterInfos().

TkHistoMap* SiStripMonitorTrack::tkhisto_StoNCorrOnTrack
private

Definition at line 131 of file SiStripMonitorTrack.h.

Referenced by book(), and clusterInfos().

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

Definition at line 128 of file SiStripMonitorTrack.h.

Referenced by book(), and SiStripMonitorTrack().

bool SiStripMonitorTrack::trackAssociatorCollection_in_EventTree
private

Definition at line 233 of file SiStripMonitorTrack.h.

std::string SiStripMonitorTrack::TrackLabel_
private

Definition at line 229 of file SiStripMonitorTrack.h.

Referenced by SiStripMonitorTrack(), and trackStudy().

std::string SiStripMonitorTrack::TrackProducer_
private

Definition at line 228 of file SiStripMonitorTrack.h.

Referenced by SiStripMonitorTrack().

bool SiStripMonitorTrack::tracksCollection_in_EventTree
private

Definition at line 232 of file SiStripMonitorTrack.h.

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

Definition at line 216 of file SiStripMonitorTrack.h.

Referenced by SiStripMonitorTrack(), and trackStudy().

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

Definition at line 218 of file SiStripMonitorTrack.h.

Referenced by SiStripMonitorTrack(), and trackStudy().

bool SiStripMonitorTrack::Trend_On_
private

Definition at line 221 of file SiStripMonitorTrack.h.

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

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

Definition at line 231 of file SiStripMonitorTrack.h.

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

double SiStripMonitorTrack::widthLowerLimit_
private

Definition at line 240 of file SiStripMonitorTrack.h.

Referenced by clusterInfos(), and SiStripMonitorTrack().

double SiStripMonitorTrack::widthUpperLimit_
private

Definition at line 241 of file SiStripMonitorTrack.h.

Referenced by clusterInfos(), and SiStripMonitorTrack().