CMS 3D CMS Logo

List of all members | Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes
GlobalHitsAnalyzer Class Reference

#include <GlobalHitsAnalyzer.h>

Inheritance diagram for GlobalHitsAnalyzer:
DQMEDAnalyzer edm::stream::EDProducer< edm::GlobalCache< DQMEDAnalyzerGlobalCache >, edm::EndRunProducer, edm::EndLuminosityBlockProducer, edm::Accumulator >

Public Member Functions

void analyze (const edm::Event &, const edm::EventSetup &) override
 
 GlobalHitsAnalyzer (const edm::ParameterSet &)
 
 ~GlobalHitsAnalyzer () override
 
- Public Member Functions inherited from DQMEDAnalyzer
void accumulate (edm::Event const &event, edm::EventSetup const &setup) final
 
void beginLuminosityBlock (edm::LuminosityBlock const &lumi, edm::EventSetup const &setup) final
 
void beginRun (edm::Run const &run, edm::EventSetup const &setup) final
 
void beginStream (edm::StreamID id) final
 
virtual void dqmBeginRun (edm::Run const &, edm::EventSetup const &)
 
 DQMEDAnalyzer ()
 
void endLuminosityBlock (edm::LuminosityBlock const &lumi, edm::EventSetup const &setup) final
 
void endRun (edm::Run const &run, edm::EventSetup const &setup) final
 
virtual bool getCanSaveByLumi ()
 
- Public Member Functions inherited from edm::stream::EDProducer< edm::GlobalCache< DQMEDAnalyzerGlobalCache >, edm::EndRunProducer, edm::EndLuminosityBlockProducer, edm::Accumulator >
 EDProducer ()=default
 
 EDProducer (const EDProducer &)=delete
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginProcessBlocks () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndProcessBlocks () const final
 
bool hasAbilityToProduceInEndRuns () const final
 
const EDProduceroperator= (const EDProducer &)=delete
 

Protected Member Functions

void bookHistograms (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
 
- Protected Member Functions inherited from DQMEDAnalyzer
uint64_t meId () const
 

Private Member Functions

void fillECal (const edm::Event &, const edm::EventSetup &)
 
void fillG4MC (const edm::Event &)
 
void fillHCal (const edm::Event &, const edm::EventSetup &)
 
void fillMuon (const edm::Event &, const edm::EventSetup &)
 
void fillTrk (const edm::Event &, const edm::EventSetup &)
 

Private Attributes

edm::ESGetToken< CaloGeometry, CaloGeometryRecordcaloGeomToken_
 
unsigned int count
 
edm::ESGetToken< CSCGeometry, MuonGeometryRecordcscGeomToken_
 
edm::ESGetToken< DTGeometry, MuonGeometryRecorddtGeomToken_
 
edm::InputTag ECalEBSrc_
 
edm::EDGetTokenT< edm::PCaloHitContainerECalEBSrc_Token_
 
edm::InputTag ECalEESrc_
 
edm::EDGetTokenT< edm::PCaloHitContainerECalEESrc_Token_
 
edm::InputTag ECalESSrc_
 
edm::EDGetTokenT< edm::PCaloHitContainerECalESSrc_Token_
 
std::string fName
 
int frequency
 
edm::InputTag G4TrkSrc_
 
edm::EDGetTokenT< edm::SimTrackContainerG4TrkSrc_Token_
 
edm::InputTag G4VtxSrc_
 
edm::EDGetTokenT< edm::SimVertexContainerG4VtxSrc_Token_
 
bool getAllProvenances
 
edm::ESGetToken< HcalDDDRecConstants, HcalRecNumberingRecordhcaldddRecToken_
 
edm::InputTag HCalSrc_
 
edm::EDGetTokenT< edm::PCaloHitContainerHCalSrc_Token_
 
std::string label
 
MonitorElementmeCaloEcal [2]
 
MonitorElementmeCaloEcalE [2]
 
MonitorElementmeCaloEcalEta
 
MonitorElementmeCaloEcalPhi
 
MonitorElementmeCaloEcalToF [2]
 
MonitorElementmeCaloHcal [2]
 
MonitorElementmeCaloHcalE [2]
 
MonitorElementmeCaloHcalEta
 
MonitorElementmeCaloHcalPhi
 
MonitorElementmeCaloHcalToF [2]
 
MonitorElementmeCaloPreSh [2]
 
MonitorElementmeCaloPreShE [2]
 
MonitorElementmeCaloPreShEta
 
MonitorElementmeCaloPreShPhi
 
MonitorElementmeCaloPreShToF [2]
 
MonitorElementmeGeantTrkE
 
MonitorElementmeGeantTrkPt
 
MonitorElementmeGeantVtxEta
 
MonitorElementmeGeantVtxMulti
 
MonitorElementmeGeantVtxPhi
 
MonitorElementmeGeantVtxRad [2]
 
MonitorElementmeGeantVtxX [2]
 
MonitorElementmeGeantVtxY [2]
 
MonitorElementmeGeantVtxZ [2]
 
MonitorElementmeMCG4Trk [2]
 
MonitorElementmeMCG4Vtx [2]
 
MonitorElementmeMCRGP [2]
 
MonitorElementmeMuon [2]
 
MonitorElementmeMuonCscToF [2]
 
MonitorElementmeMuonCscZ
 
MonitorElementmeMuonDtR
 
MonitorElementmeMuonDtToF [2]
 
MonitorElementmeMuonEta
 
MonitorElementmeMuonPhi
 
MonitorElementmeMuonRpcBR
 
MonitorElementmeMuonRpcBToF [2]
 
MonitorElementmeMuonRpcFToF [2]
 
MonitorElementmeMuonRpcFZ
 
MonitorElementmeTrackerPx [2]
 
MonitorElementmeTrackerPxBR
 
MonitorElementmeTrackerPxBToF
 
MonitorElementmeTrackerPxEta
 
MonitorElementmeTrackerPxFToF
 
MonitorElementmeTrackerPxFZ
 
MonitorElementmeTrackerPxPhi
 
MonitorElementmeTrackerSi [2]
 
MonitorElementmeTrackerSiBR
 
MonitorElementmeTrackerSiBToF
 
MonitorElementmeTrackerSiEta
 
MonitorElementmeTrackerSiFToF
 
MonitorElementmeTrackerSiFZ
 
MonitorElementmeTrackerSiPhi
 
edm::InputTag MuonCscSrc_
 
edm::EDGetTokenT< edm::PSimHitContainerMuonCscSrc_Token_
 
edm::InputTag MuonDtSrc_
 
edm::EDGetTokenT< edm::PSimHitContainerMuonDtSrc_Token_
 
edm::InputTag MuonRpcSrc_
 
edm::EDGetTokenT< edm::PSimHitContainerMuonRpcSrc_Token_
 
int nMuonHits
 
int nPxlHits
 
int nRawGenPart
 
int nSiHits
 
bool printProvenanceInfo
 
edm::InputTag PxlBrlHighSrc_
 
edm::EDGetTokenT< edm::PSimHitContainerPxlBrlHighSrc_Token_
 
edm::InputTag PxlBrlLowSrc_
 
edm::EDGetTokenT< edm::PSimHitContainerPxlBrlLowSrc_Token_
 
edm::InputTag PxlFwdHighSrc_
 
edm::EDGetTokenT< edm::PSimHitContainerPxlFwdHighSrc_Token_
 
edm::InputTag PxlFwdLowSrc_
 
edm::EDGetTokenT< edm::PSimHitContainerPxlFwdLowSrc_Token_
 
edm::ESGetToken< RPCGeometry, MuonGeometryRecordrpcGeomToken_
 
edm::InputTag SiTECHighSrc_
 
edm::EDGetTokenT< edm::PSimHitContainerSiTECHighSrc_Token_
 
edm::InputTag SiTECLowSrc_
 
edm::EDGetTokenT< edm::PSimHitContainerSiTECLowSrc_Token_
 
edm::InputTag SiTIBHighSrc_
 
edm::EDGetTokenT< edm::PSimHitContainerSiTIBHighSrc_Token_
 
edm::InputTag SiTIBLowSrc_
 
edm::EDGetTokenT< edm::PSimHitContainerSiTIBLowSrc_Token_
 
edm::InputTag SiTIDHighSrc_
 
edm::EDGetTokenT< edm::PSimHitContainerSiTIDHighSrc_Token_
 
edm::InputTag SiTIDLowSrc_
 
edm::EDGetTokenT< edm::PSimHitContainerSiTIDLowSrc_Token_
 
edm::InputTag SiTOBHighSrc_
 
edm::EDGetTokenT< edm::PSimHitContainerSiTOBHighSrc_Token_
 
edm::InputTag SiTOBLowSrc_
 
edm::EDGetTokenT< edm::PSimHitContainerSiTOBLowSrc_Token_
 
bool testNumber
 
edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecordtGeomToken_
 
bool validEB
 
bool validEE
 
bool validG4trkContainer
 
bool validG4VtxContainer
 
bool validHcal
 
bool validHepMCevt
 
bool validMuonCSC
 
bool validMuonDt
 
bool validMuonRPC
 
bool validPresh
 
bool validPxlBrlHigh
 
bool validPxlBrlLow
 
bool validPxlFwdHigh
 
bool validPxlFwdLow
 
bool validSiTECHigh
 
bool validSiTECLow
 
bool validSiTIBHigh
 
bool validSiTIBLow
 
bool validSiTIDHigh
 
bool validSiTIDLow
 
bool validSiTOBHigh
 
bool validSiTOBLow
 
int verbosity
 
int vtxunit
 

Additional Inherited Members

- Public Types inherited from DQMEDAnalyzer
typedef dqm::reco::DQMStore DQMStore
 
typedef dqm::reco::MonitorElement MonitorElement
 
- Public Types inherited from edm::stream::EDProducer< edm::GlobalCache< DQMEDAnalyzerGlobalCache >, edm::EndRunProducer, edm::EndLuminosityBlockProducer, edm::Accumulator >
using CacheTypes = CacheContexts< T... >
 
using GlobalCache = typename CacheTypes::GlobalCache
 
using HasAbility = AbilityChecker< T... >
 
using InputProcessBlockCache = typename CacheTypes::InputProcessBlockCache
 
using LuminosityBlockCache = typename CacheTypes::LuminosityBlockCache
 
using LuminosityBlockContext = LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCache >
 
using LuminosityBlockSummaryCache = typename CacheTypes::LuminosityBlockSummaryCache
 
using RunCache = typename CacheTypes::RunCache
 
using RunContext = RunContextT< RunCache, GlobalCache >
 
using RunSummaryCache = typename CacheTypes::RunSummaryCache
 
- Static Public Member Functions inherited from DQMEDAnalyzer
static void globalEndJob (DQMEDAnalyzerGlobalCache const *)
 
static void globalEndLuminosityBlockProduce (edm::LuminosityBlock &lumi, edm::EventSetup const &setup, LuminosityBlockContext const *context)
 
static void globalEndRunProduce (edm::Run &run, edm::EventSetup const &setup, RunContext const *context)
 
static std::unique_ptr< DQMEDAnalyzerGlobalCacheinitializeGlobalCache (edm::ParameterSet const &)
 
- Protected Attributes inherited from DQMEDAnalyzer
edm::EDPutTokenT< DQMTokenlumiToken_
 
edm::EDPutTokenT< DQMTokenrunToken_
 
unsigned int streamId_
 

Detailed Description

Class to fill dqm monitor elements from existing EDM file

Author
M. Strang SUNY-Buffalo

Definition at line 74 of file GlobalHitsAnalyzer.h.

Constructor & Destructor Documentation

◆ GlobalHitsAnalyzer()

GlobalHitsAnalyzer::GlobalHitsAnalyzer ( const edm::ParameterSet iPSet)
explicit

Definition at line 18 of file GlobalHitsAnalyzer.cc.

References ECalEBSrc_, ECalEBSrc_Token_, ECalEESrc_, ECalEESrc_Token_, ECalESSrc_, ECalESSrc_Token_, fName, frequency, getAllProvenances, edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), HCalSrc_, HCalSrc_Token_, mps_fire::i, edm::InputTag::instance(), edm::InputTag::label(), meCaloEcal, meCaloEcalE, meCaloEcalEta, meCaloEcalPhi, meCaloEcalToF, meCaloHcal, meCaloHcalE, meCaloHcalEta, meCaloHcalPhi, meCaloHcalToF, meCaloPreSh, meCaloPreShE, meCaloPreShEta, meCaloPreShPhi, meCaloPreShToF, meGeantTrkE, meGeantTrkPt, meGeantVtxEta, meGeantVtxMulti, meGeantVtxPhi, meGeantVtxRad, meGeantVtxX, meGeantVtxY, meGeantVtxZ, meMCG4Trk, meMCG4Vtx, meMCRGP, meMuon, meMuonCscToF, meMuonCscZ, meMuonDtR, meMuonDtToF, meMuonEta, meMuonPhi, meMuonRpcBR, meMuonRpcBToF, meMuonRpcFToF, meMuonRpcFZ, meTrackerPx, meTrackerPxBR, meTrackerPxBToF, meTrackerPxEta, meTrackerPxFToF, meTrackerPxFZ, meTrackerPxPhi, meTrackerSi, meTrackerSiBR, meTrackerSiBToF, meTrackerSiEta, meTrackerSiFToF, meTrackerSiFZ, meTrackerSiPhi, MuonCscSrc_, MuonCscSrc_Token_, MuonDtSrc_, MuonDtSrc_Token_, MuonRpcSrc_, MuonRpcSrc_Token_, printProvenanceInfo, PxlBrlHighSrc_, PxlBrlHighSrc_Token_, PxlBrlLowSrc_, PxlBrlLowSrc_Token_, PxlFwdHighSrc_, PxlFwdHighSrc_Token_, PxlFwdLowSrc_, PxlFwdLowSrc_Token_, SiTECHighSrc_, SiTECHighSrc_Token_, SiTECLowSrc_, SiTECLowSrc_Token_, SiTIBHighSrc_, SiTIBHighSrc_Token_, SiTIBLowSrc_, SiTIBLowSrc_Token_, SiTIDHighSrc_, SiTIDHighSrc_Token_, SiTIDLowSrc_, SiTIDLowSrc_Token_, SiTOBHighSrc_, SiTOBHighSrc_Token_, SiTOBLowSrc_, SiTOBLowSrc_Token_, AlCaHLTBitMon_QueryRunRegistry::string, testNumber, validEB, validEE, validG4trkContainer, validG4VtxContainer, validHcal, validHepMCevt, validMuonCSC, validMuonDt, validMuonRPC, validPresh, validPxlBrlHigh, validPxlBrlLow, validPxlFwdHigh, validPxlFwdLow, validSiTECHigh, validSiTECLow, validSiTIBHigh, validSiTIBLow, validSiTIDHigh, validSiTIDLow, validSiTOBHigh, validSiTOBLow, verbosity, and vtxunit.

19  : fName(""),
20  verbosity(0),
21  frequency(0),
22  vtxunit(0),
23  label(""),
24  getAllProvenances(false),
25  printProvenanceInfo(false),
26  testNumber(false),
27  G4VtxSrc_Token_(consumes<edm::SimVertexContainer>((iPSet.getParameter<edm::InputTag>("G4VtxSrc")))),
28  G4TrkSrc_Token_(consumes<edm::SimTrackContainer>(iPSet.getParameter<edm::InputTag>("G4TrkSrc"))),
35  count(0) {
36  consumesMany<edm::HepMCProduct>();
37  std::string MsgLoggerCat = "GlobalHitsAnalyzer_GlobalHitsAnalyzer";
38 
39  // get information from parameter set
40  fName = iPSet.getUntrackedParameter<std::string>("Name");
41  verbosity = iPSet.getUntrackedParameter<int>("Verbosity");
42  frequency = iPSet.getUntrackedParameter<int>("Frequency");
43  vtxunit = iPSet.getUntrackedParameter<int>("VtxUnit");
44  edm::ParameterSet m_Prov = iPSet.getParameter<edm::ParameterSet>("ProvenanceLookup");
45  getAllProvenances = m_Prov.getUntrackedParameter<bool>("GetAllProvenances");
46  printProvenanceInfo = m_Prov.getUntrackedParameter<bool>("PrintProvenanceInfo");
47  testNumber = iPSet.getUntrackedParameter<bool>("testNumber");
48 
49  // get Labels to use to extract information
50  PxlBrlLowSrc_ = iPSet.getParameter<edm::InputTag>("PxlBrlLowSrc");
51  PxlBrlHighSrc_ = iPSet.getParameter<edm::InputTag>("PxlBrlHighSrc");
52  PxlFwdLowSrc_ = iPSet.getParameter<edm::InputTag>("PxlFwdLowSrc");
53  PxlFwdHighSrc_ = iPSet.getParameter<edm::InputTag>("PxlFwdHighSrc");
54 
55  SiTIBLowSrc_ = iPSet.getParameter<edm::InputTag>("SiTIBLowSrc");
56  SiTIBHighSrc_ = iPSet.getParameter<edm::InputTag>("SiTIBHighSrc");
57  SiTOBLowSrc_ = iPSet.getParameter<edm::InputTag>("SiTOBLowSrc");
58  SiTOBHighSrc_ = iPSet.getParameter<edm::InputTag>("SiTOBHighSrc");
59  SiTIDLowSrc_ = iPSet.getParameter<edm::InputTag>("SiTIDLowSrc");
60  SiTIDHighSrc_ = iPSet.getParameter<edm::InputTag>("SiTIDHighSrc");
61  SiTECLowSrc_ = iPSet.getParameter<edm::InputTag>("SiTECLowSrc");
62  SiTECHighSrc_ = iPSet.getParameter<edm::InputTag>("SiTECHighSrc");
63 
64  MuonCscSrc_ = iPSet.getParameter<edm::InputTag>("MuonCscSrc");
65  MuonDtSrc_ = iPSet.getParameter<edm::InputTag>("MuonDtSrc");
66  MuonRpcSrc_ = iPSet.getParameter<edm::InputTag>("MuonRpcSrc");
67 
68  ECalEBSrc_ = iPSet.getParameter<edm::InputTag>("ECalEBSrc");
69  ECalEESrc_ = iPSet.getParameter<edm::InputTag>("ECalEESrc");
70  ECalESSrc_ = iPSet.getParameter<edm::InputTag>("ECalESSrc");
71 
72  HCalSrc_ = iPSet.getParameter<edm::InputTag>("HCalSrc");
73 
74  // fix for consumes
75  PxlBrlLowSrc_Token_ = consumes<edm::PSimHitContainer>(iPSet.getParameter<edm::InputTag>("PxlBrlLowSrc"));
76  PxlBrlHighSrc_Token_ = consumes<edm::PSimHitContainer>(iPSet.getParameter<edm::InputTag>("PxlBrlHighSrc"));
77  PxlFwdLowSrc_Token_ = consumes<edm::PSimHitContainer>(iPSet.getParameter<edm::InputTag>("PxlFwdLowSrc"));
78  PxlFwdHighSrc_Token_ = consumes<edm::PSimHitContainer>(iPSet.getParameter<edm::InputTag>("PxlFwdHighSrc"));
79 
80  SiTIBLowSrc_Token_ = consumes<edm::PSimHitContainer>(iPSet.getParameter<edm::InputTag>("SiTIBLowSrc"));
81  SiTIBHighSrc_Token_ = consumes<edm::PSimHitContainer>(iPSet.getParameter<edm::InputTag>("SiTIBHighSrc"));
82  SiTOBLowSrc_Token_ = consumes<edm::PSimHitContainer>(iPSet.getParameter<edm::InputTag>("SiTOBLowSrc"));
83  SiTOBHighSrc_Token_ = consumes<edm::PSimHitContainer>(iPSet.getParameter<edm::InputTag>("SiTOBHighSrc"));
84  SiTIDLowSrc_Token_ = consumes<edm::PSimHitContainer>(iPSet.getParameter<edm::InputTag>("SiTIDLowSrc"));
85  SiTIDHighSrc_Token_ = consumes<edm::PSimHitContainer>(iPSet.getParameter<edm::InputTag>("SiTIDHighSrc"));
86  SiTECLowSrc_Token_ = consumes<edm::PSimHitContainer>(iPSet.getParameter<edm::InputTag>("SiTECLowSrc"));
87  SiTECHighSrc_Token_ = consumes<edm::PSimHitContainer>(iPSet.getParameter<edm::InputTag>("SiTECHighSrc"));
88 
89  MuonCscSrc_Token_ = consumes<edm::PSimHitContainer>(iPSet.getParameter<edm::InputTag>("MuonCscSrc"));
90  MuonDtSrc_Token_ = consumes<edm::PSimHitContainer>(iPSet.getParameter<edm::InputTag>("MuonDtSrc"));
91  MuonRpcSrc_Token_ = consumes<edm::PSimHitContainer>(iPSet.getParameter<edm::InputTag>("MuonRpcSrc"));
92 
93  ECalEBSrc_Token_ = consumes<edm::PCaloHitContainer>(iPSet.getParameter<edm::InputTag>("ECalEBSrc"));
94  ECalEESrc_Token_ = consumes<edm::PCaloHitContainer>(iPSet.getParameter<edm::InputTag>("ECalEESrc"));
95  ECalESSrc_Token_ = consumes<edm::PCaloHitContainer>(iPSet.getParameter<edm::InputTag>("ECalESSrc"));
96  HCalSrc_Token_ = consumes<edm::PCaloHitContainer>(iPSet.getParameter<edm::InputTag>("HCalSrc"));
97 
98  // determine whether to process subdetector or not
99  validHepMCevt = iPSet.getUntrackedParameter<bool>("validHepMCevt");
100  validG4VtxContainer = iPSet.getUntrackedParameter<bool>("validG4VtxContainer");
101  validG4trkContainer = iPSet.getUntrackedParameter<bool>("validG4trkContainer");
102  validPxlBrlLow = iPSet.getUntrackedParameter<bool>("validPxlBrlLow", true);
103  validPxlBrlHigh = iPSet.getUntrackedParameter<bool>("validPxlBrlHigh", true);
104  validPxlFwdLow = iPSet.getUntrackedParameter<bool>("validPxlFwdLow", true);
105  validPxlFwdHigh = iPSet.getUntrackedParameter<bool>("validPxlFwdHigh", true);
106  validSiTIBLow = iPSet.getUntrackedParameter<bool>("validSiTIBLow", true);
107  validSiTIBHigh = iPSet.getUntrackedParameter<bool>("validSiTIBHigh", true);
108  validSiTOBLow = iPSet.getUntrackedParameter<bool>("validSiTOBLow", true);
109  validSiTOBHigh = iPSet.getUntrackedParameter<bool>("validSiTOBHigh", true);
110  validSiTIDLow = iPSet.getUntrackedParameter<bool>("validSiTIDLow", true);
111  validSiTIDHigh = iPSet.getUntrackedParameter<bool>("validSiTIDHigh", true);
112  validSiTECLow = iPSet.getUntrackedParameter<bool>("validSiTECLow", true);
113  validSiTECHigh = iPSet.getUntrackedParameter<bool>("validSiTECHigh", true);
114  validMuonCSC = iPSet.getUntrackedParameter<bool>("validMuonCSC", true);
115  validMuonDt = iPSet.getUntrackedParameter<bool>("validMuonDt", true);
116  validMuonRPC = iPSet.getUntrackedParameter<bool>("validMuonRPC", true);
117  validEB = iPSet.getUntrackedParameter<bool>("validEB", true);
118  validEE = iPSet.getUntrackedParameter<bool>("validEE", true);
119  validPresh = iPSet.getUntrackedParameter<bool>("validPresh", true);
120  validHcal = iPSet.getUntrackedParameter<bool>("validHcal", true);
121 
122  // use value of first digit to determine default output level (inclusive)
123  // 0 is none, 1 is basic, 2 is fill output, 3 is gather output
124  verbosity %= 10;
125 
126  // print out Parameter Set information being used
127  if (verbosity >= 0) {
128  edm::LogInfo(MsgLoggerCat)
129  << "\n===============================\n"
130  << "Initialized as EDAnalyzer with parameter values:\n"
131  << " Name = " << fName << "\n"
132  << " Verbosity = " << verbosity << "\n"
133  << " Frequency = " << frequency << "\n"
134  << " VtxUnit = " << vtxunit << "\n"
135  << " GetProv = " << getAllProvenances << "\n"
136  << " PrintProv = " << printProvenanceInfo << "\n"
137  << " PxlBrlLowSrc = " << PxlBrlLowSrc_.label() << ":" << PxlBrlLowSrc_.instance() << "\n"
138  << " PxlBrlHighSrc = " << PxlBrlHighSrc_.label() << ":" << PxlBrlHighSrc_.instance() << "\n"
139  << " PxlFwdLowSrc = " << PxlFwdLowSrc_.label() << ":" << PxlBrlLowSrc_.instance() << "\n"
140  << " PxlFwdHighSrc = " << PxlFwdHighSrc_.label() << ":" << PxlBrlHighSrc_.instance() << "\n"
141  << " SiTIBLowSrc = " << SiTIBLowSrc_.label() << ":" << SiTIBLowSrc_.instance() << "\n"
142  << " SiTIBHighSrc = " << SiTIBHighSrc_.label() << ":" << SiTIBHighSrc_.instance() << "\n"
143  << " SiTOBLowSrc = " << SiTOBLowSrc_.label() << ":" << SiTOBLowSrc_.instance() << "\n"
144  << " SiTOBHighSrc = " << SiTOBHighSrc_.label() << ":" << SiTOBHighSrc_.instance() << "\n"
145  << " SiTIDLowSrc = " << SiTIDLowSrc_.label() << ":" << SiTIDLowSrc_.instance() << "\n"
146  << " SiTIDHighSrc = " << SiTIDHighSrc_.label() << ":" << SiTIDHighSrc_.instance() << "\n"
147  << " SiTECLowSrc = " << SiTECLowSrc_.label() << ":" << SiTECLowSrc_.instance() << "\n"
148  << " SiTECHighSrc = " << SiTECHighSrc_.label() << ":" << SiTECHighSrc_.instance() << "\n"
149  << " MuonCscSrc = " << MuonCscSrc_.label() << ":" << MuonCscSrc_.instance() << "\n"
150  << " MuonDtSrc = " << MuonDtSrc_.label() << ":" << MuonDtSrc_.instance() << "\n"
151  << " MuonRpcSrc = " << MuonRpcSrc_.label() << ":" << MuonRpcSrc_.instance() << "\n"
152  << " ECalEBSrc = " << ECalEBSrc_.label() << ":" << ECalEBSrc_.instance() << "\n"
153  << " ECalEESrc = " << ECalEESrc_.label() << ":" << ECalEESrc_.instance() << "\n"
154  << " ECalESSrc = " << ECalESSrc_.label() << ":" << ECalESSrc_.instance() << "\n"
155  << " HCalSrc = " << HCalSrc_.label() << ":" << HCalSrc_.instance() << "\n"
156  << "\n"
157  << " validHepMCevt = "
158  << ":" << validHepMCevt << "\n"
159  << " validG4VtxContainer = "
160  << ":" << validG4VtxContainer << "\n"
161  << " validG4trkContainer = "
162  << ":" << validG4trkContainer << "\n"
163  << " validPxlBrlLow = "
164  << ":" << validPxlBrlLow << "\n"
165  << " validPxlBrlHigh = "
166  << ":" << validPxlBrlHigh << "\n"
167  << " validPxlFwdLow = "
168  << ":" << validPxlFwdLow << "\n"
169  << " validPxlFwdHigh = "
170  << ":" << validPxlFwdHigh << "\n"
171  << " validSiTIBLow = "
172  << ":" << validSiTIBLow << "\n"
173  << " validSiTIBHigh = "
174  << ":" << validSiTIBHigh << "\n"
175  << " validSiTOBLow = "
176  << ":" << validSiTOBLow << "\n"
177  << " validSiTOBHigh = "
178  << ":" << validSiTOBHigh << "\n"
179  << " validSiTIDLow = "
180  << ":" << validSiTIDLow << "\n"
181  << " validSiTIDHigh = "
182  << ":" << validSiTIDHigh << "\n"
183  << " validSiTECLow = "
184  << ":" << validSiTECLow << "\n"
185  << " validSiTECHigh = "
186  << ":" << validSiTECHigh << "\n"
187  << " validMuonCSC = "
188  << ":" << validMuonCSC << "\n"
189  << " validMuonDt = "
190  << ":" << validMuonDt << "\n"
191  << " validMuonRPC = "
192  << ":" << validMuonRPC << "\n"
193  << " validEB = "
194  << ":" << validEB << "\n"
195  << " validEE = "
196  << ":" << validEE << "\n"
197  << " validPresh = "
198  << ":" << validPresh << "\n"
199  << " validHcal = "
200  << ":" << validHcal << "\n"
201  << "===============================\n";
202  }
203 
204  // initialize monitor elements
205  for (Int_t i = 0; i < 2; ++i) {
206  meMCRGP[i] = nullptr;
207  meMCG4Vtx[i] = nullptr;
208  meGeantVtxX[i] = nullptr;
209  meGeantVtxY[i] = nullptr;
210  meGeantVtxZ[i] = nullptr;
211  meMCG4Trk[i] = nullptr;
212  meCaloEcal[i] = nullptr;
213  meCaloEcalE[i] = nullptr;
214  meCaloEcalToF[i] = nullptr;
215  meCaloPreSh[i] = nullptr;
216  meCaloPreShE[i] = nullptr;
217  meCaloPreShToF[i] = nullptr;
218  meCaloHcal[i] = nullptr;
219  meCaloHcalE[i] = nullptr;
220  meCaloHcalToF[i] = nullptr;
221  meTrackerPx[i] = nullptr;
222  meTrackerSi[i] = nullptr;
223  meMuon[i] = nullptr;
224  meMuonDtToF[i] = nullptr;
225  meMuonCscToF[i] = nullptr;
226  meMuonRpcFToF[i] = nullptr;
227  meMuonRpcBToF[i] = nullptr;
228  meGeantVtxRad[i] = nullptr;
229  }
230  meGeantTrkPt = nullptr;
231  meGeantTrkE = nullptr;
232  meGeantVtxEta = nullptr;
233  meGeantVtxPhi = nullptr;
234  meGeantVtxMulti = nullptr;
235  meCaloEcalPhi = nullptr;
236  meCaloEcalEta = nullptr;
237  meCaloPreShPhi = nullptr;
238  meCaloPreShEta = nullptr;
239  meCaloHcalPhi = nullptr;
240  meCaloHcalEta = nullptr;
241  meTrackerPxPhi = nullptr;
242  meTrackerPxEta = nullptr;
243  meTrackerPxBToF = nullptr;
244  meTrackerPxBR = nullptr;
245  meTrackerPxFToF = nullptr;
246  meTrackerPxFZ = nullptr;
247  meTrackerSiPhi = nullptr;
248  meTrackerSiEta = nullptr;
249  meTrackerSiBToF = nullptr;
250  meTrackerSiBR = nullptr;
251  meTrackerSiFToF = nullptr;
252  meTrackerSiFZ = nullptr;
253  meMuonPhi = nullptr;
254  meMuonEta = nullptr;
255  meMuonDtR = nullptr;
256  meMuonCscZ = nullptr;
257  meMuonRpcBR = nullptr;
258  meMuonRpcFZ = nullptr;
259 }
MonitorElement * meTrackerSiPhi
edm::EDGetTokenT< edm::PSimHitContainer > SiTIDLowSrc_Token_
edm::ESGetToken< CaloGeometry, CaloGeometryRecord > caloGeomToken_
ESGetTokenH3DDVariant esConsumes(std::string const &Record, edm::ConsumesCollector &)
Definition: DeDxTools.cc:283
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
edm::InputTag SiTECLowSrc_
edm::EDGetTokenT< edm::PSimHitContainer > SiTECHighSrc_Token_
edm::InputTag PxlBrlLowSrc_
edm::InputTag MuonDtSrc_
edm::ESGetToken< DTGeometry, MuonGeometryRecord > dtGeomToken_
MonitorElement * meMuonDtToF[2]
MonitorElement * meGeantVtxRad[2]
std::string const & instance() const
Definition: InputTag.h:37
MonitorElement * meCaloHcal[2]
MonitorElement * meMCG4Trk[2]
edm::ESGetToken< HcalDDDRecConstants, HcalRecNumberingRecord > hcaldddRecToken_
MonitorElement * meTrackerPxPhi
MonitorElement * meCaloHcalToF[2]
edm::EDGetTokenT< edm::PSimHitContainer > SiTIDHighSrc_Token_
MonitorElement * meCaloPreSh[2]
edm::EDGetTokenT< edm::PCaloHitContainer > ECalEESrc_Token_
MonitorElement * meTrackerSiEta
MonitorElement * meTrackerSiBToF
std::string const & label() const
Definition: InputTag.h:36
MonitorElement * meTrackerSi[2]
edm::EDGetTokenT< edm::SimTrackContainer > G4TrkSrc_Token_
edm::EDGetTokenT< edm::PSimHitContainer > SiTIBHighSrc_Token_
MonitorElement * meMCG4Vtx[2]
edm::InputTag SiTIBHighSrc_
MonitorElement * meGeantVtxY[2]
MonitorElement * meGeantVtxMulti
MonitorElement * meTrackerPxFZ
T getUntrackedParameter(std::string const &, T const &) const
edm::InputTag MuonCscSrc_
edm::InputTag PxlBrlHighSrc_
MonitorElement * meMuonCscToF[2]
MonitorElement * meCaloPreShPhi
MonitorElement * meGeantTrkE
MonitorElement * meCaloEcalEta
MonitorElement * meTrackerPxBR
MonitorElement * meCaloPreShE[2]
edm::InputTag PxlFwdLowSrc_
MonitorElement * meTrackerPxBToF
MonitorElement * meGeantVtxPhi
edm::InputTag SiTIDLowSrc_
edm::InputTag ECalESSrc_
MonitorElement * meCaloEcalPhi
edm::EDGetTokenT< edm::PSimHitContainer > SiTIBLowSrc_Token_
MonitorElement * meTrackerPx[2]
MonitorElement * meGeantTrkPt
MonitorElement * meGeantVtxEta
edm::InputTag PxlFwdHighSrc_
MonitorElement * meMuonRpcFZ
edm::EDGetTokenT< edm::PSimHitContainer > PxlBrlHighSrc_Token_
edm::InputTag SiTECHighSrc_
edm::EDGetTokenT< edm::PCaloHitContainer > ECalEBSrc_Token_
MonitorElement * meMCRGP[2]
edm::EDGetTokenT< edm::PSimHitContainer > PxlBrlLowSrc_Token_
MonitorElement * meMuonRpcBToF[2]
MonitorElement * meCaloHcalE[2]
Log< level::Info, false > LogInfo
MonitorElement * meMuonCscZ
MonitorElement * meGeantVtxX[2]
edm::EDGetTokenT< edm::PSimHitContainer > SiTOBLowSrc_Token_
edm::ESGetToken< CSCGeometry, MuonGeometryRecord > cscGeomToken_
edm::EDGetTokenT< edm::PSimHitContainer > MuonRpcSrc_Token_
MonitorElement * meCaloEcal[2]
edm::EDGetTokenT< edm::PSimHitContainer > PxlFwdLowSrc_Token_
MonitorElement * meTrackerSiFZ
MonitorElement * meGeantVtxZ[2]
MonitorElement * meCaloEcalToF[2]
edm::EDGetTokenT< edm::PSimHitContainer > SiTOBHighSrc_Token_
edm::EDGetTokenT< edm::PSimHitContainer > MuonCscSrc_Token_
edm::InputTag SiTIDHighSrc_
MonitorElement * meMuon[2]
MonitorElement * meMuonRpcFToF[2]
MonitorElement * meCaloPreShToF[2]
MonitorElement * meCaloPreShEta
MonitorElement * meTrackerSiFToF
MonitorElement * meTrackerPxFToF
edm::InputTag MuonRpcSrc_
edm::EDGetTokenT< edm::SimVertexContainer > G4VtxSrc_Token_
MonitorElement * meMuonEta
edm::InputTag SiTOBLowSrc_
edm::InputTag SiTOBHighSrc_
MonitorElement * meMuonDtR
edm::InputTag ECalEBSrc_
edm::EDGetTokenT< edm::PCaloHitContainer > HCalSrc_Token_
edm::EDGetTokenT< edm::PSimHitContainer > PxlFwdHighSrc_Token_
edm::InputTag SiTIBLowSrc_
MonitorElement * meCaloHcalPhi
edm::ESGetToken< RPCGeometry, MuonGeometryRecord > rpcGeomToken_
MonitorElement * meMuonRpcBR
edm::InputTag ECalEESrc_
MonitorElement * meTrackerPxEta
edm::EDGetTokenT< edm::PCaloHitContainer > ECalESSrc_Token_
MonitorElement * meCaloHcalEta
MonitorElement * meMuonPhi
edm::EDGetTokenT< edm::PSimHitContainer > MuonDtSrc_Token_
edm::EDGetTokenT< edm::PSimHitContainer > SiTECLowSrc_Token_
edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord > tGeomToken_
MonitorElement * meTrackerSiBR
MonitorElement * meCaloEcalE[2]

◆ ~GlobalHitsAnalyzer()

GlobalHitsAnalyzer::~GlobalHitsAnalyzer ( )
override

Definition at line 261 of file GlobalHitsAnalyzer.cc.

261 {}

Member Function Documentation

◆ analyze()

void GlobalHitsAnalyzer::analyze ( const edm::Event iEvent,
const edm::EventSetup iSetup 
)
overridevirtual

Reimplemented from DQMEDAnalyzer.

Definition at line 675 of file GlobalHitsAnalyzer.cc.

References count, fillECal(), fillG4MC(), fillHCal(), fillMuon(), fillTrk(), frequency, getAllProvenances, mps_fire::i, iEvent, nevt, printProvenanceInfo, AlCaHLTBitMon_QueryRunRegistry::string, and verbosity.

675  {
676  std::string MsgLoggerCat = "GlobalHitsAnalyzer_analyze";
677 
678  // keep track of number of events processed
679  ++count;
680 
681  // get event id information
682  edm::RunNumber_t nrun = iEvent.id().run();
683  edm::EventNumber_t nevt = iEvent.id().event();
684 
685  if (verbosity > 0) {
686  edm::LogInfo(MsgLoggerCat) << "Processing run " << nrun << ", event " << nevt << " (" << count << " events total)";
687  } else if (verbosity == 0) {
688  if (nevt % frequency == 0 || nevt == 1) {
689  edm::LogInfo(MsgLoggerCat) << "Processing run " << nrun << ", event " << nevt << " (" << count
690  << " events total)";
691  }
692  }
693 
694  // look at information available in the event
695  if (getAllProvenances) {
696  std::vector<const edm::StableProvenance *> AllProv;
697  iEvent.getAllStableProvenance(AllProv);
698 
699  if (verbosity >= 0)
700  edm::LogInfo(MsgLoggerCat) << "Number of Provenances = " << AllProv.size();
701 
702  if (printProvenanceInfo && (verbosity >= 0)) {
703  TString eventout("\nProvenance info:\n");
704 
705  for (unsigned int i = 0; i < AllProv.size(); ++i) {
706  eventout += "\n ******************************";
707  eventout += "\n Module : ";
708  eventout += AllProv[i]->moduleLabel();
709  eventout += "\n ProductID : ";
710  eventout += AllProv[i]->productID().id();
711  eventout += "\n ClassName : ";
712  eventout += AllProv[i]->className();
713  eventout += "\n InstanceName : ";
714  eventout += AllProv[i]->productInstanceName();
715  eventout += "\n BranchName : ";
716  eventout += AllProv[i]->branchName();
717  }
718  eventout += "\n ******************************\n";
719  edm::LogInfo(MsgLoggerCat) << eventout << "\n";
720  printProvenanceInfo = false;
721  }
722  getAllProvenances = false;
723  }
724 
725  // call fill functions
726  // gather G4MC information from event
727  fillG4MC(iEvent);
728  // gather Tracker information from event
729  fillTrk(iEvent, iSetup);
730  // gather muon information from event
731  fillMuon(iEvent, iSetup);
732  // gather Ecal information from event
733  fillECal(iEvent, iSetup);
734  // gather Hcal information from event
735  fillHCal(iEvent, iSetup);
736 
737  if (verbosity > 0)
738  edm::LogInfo(MsgLoggerCat) << "Done gathering data from event.";
739 
740  return;
741 }
void fillG4MC(const edm::Event &)
unsigned long long EventNumber_t
void fillHCal(const edm::Event &, const edm::EventSetup &)
int iEvent
Definition: GenABIO.cc:224
void fillTrk(const edm::Event &, const edm::EventSetup &)
Log< level::Info, false > LogInfo
void fillMuon(const edm::Event &, const edm::EventSetup &)
void fillECal(const edm::Event &, const edm::EventSetup &)
unsigned int RunNumber_t

◆ bookHistograms()

void GlobalHitsAnalyzer::bookHistograms ( DQMStore::IBooker iBooker,
edm::Run const &  run,
edm::EventSetup const &  es 
)
overrideprotectedvirtual

Implements DQMEDAnalyzer.

Definition at line 263 of file GlobalHitsAnalyzer.cc.

References dqm::implementation::IBooker::book1D(), mps_fire::i, meCaloEcal, meCaloEcalE, meCaloEcalEta, meCaloEcalPhi, meCaloEcalToF, meCaloHcal, meCaloHcalE, meCaloHcalEta, meCaloHcalPhi, meCaloHcalToF, meCaloPreSh, meCaloPreShE, meCaloPreShEta, meCaloPreShPhi, meCaloPreShToF, meGeantTrkE, meGeantTrkPt, meGeantVtxEta, meGeantVtxMulti, meGeantVtxPhi, meGeantVtxRad, meGeantVtxX, meGeantVtxY, meGeantVtxZ, meMCG4Trk, meMCG4Vtx, meMCRGP, meMuon, meMuonCscToF, meMuonCscZ, meMuonDtR, meMuonDtToF, meMuonEta, meMuonPhi, meMuonRpcBR, meMuonRpcBToF, meMuonRpcFToF, meMuonRpcFZ, meTrackerPx, meTrackerPxBR, meTrackerPxBToF, meTrackerPxEta, meTrackerPxFToF, meTrackerPxFZ, meTrackerPxPhi, meTrackerSi, meTrackerSiBR, meTrackerSiBToF, meTrackerSiEta, meTrackerSiFToF, meTrackerSiFZ, meTrackerSiPhi, dqm::impl::MonitorElement::setAxisTitle(), and dqm::implementation::NavigatorBase::setCurrentFolder().

263  {
264  // book histograms
265  Char_t hname[200];
266  Char_t htitle[200];
267 
268  // MCGeant
269  iBooker.setCurrentFolder("GlobalHitsV/MCGeant");
270  sprintf(hname, "hMCRGP1");
271  sprintf(htitle, "RawGenParticles");
272  meMCRGP[0] = iBooker.book1D(hname, htitle, 100, 0., 5000.);
273  sprintf(hname, "hMCRGP2");
274  meMCRGP[1] = iBooker.book1D(hname, htitle, 100, 0., 500.);
275  for (Int_t i = 0; i < 2; ++i) {
276  meMCRGP[i]->setAxisTitle("Number of Raw Generated Particles", 1);
277  meMCRGP[i]->setAxisTitle("Count", 2);
278  }
279 
280  sprintf(hname, "hMCG4Vtx1");
281  sprintf(htitle, "G4 Vertices");
282  meMCG4Vtx[0] = iBooker.book1D(hname, htitle, 150, 0., 15000.);
283  sprintf(hname, "hMCG4Vtx2");
284  meMCG4Vtx[1] = iBooker.book1D(hname, htitle, 100, -0.5, 99.5);
285  for (Int_t i = 0; i < 2; ++i) {
286  meMCG4Vtx[i]->setAxisTitle("Number of Vertices", 1);
287  meMCG4Vtx[i]->setAxisTitle("Count", 2);
288  }
289 
290  sprintf(hname, "hMCG4Trk1");
291  sprintf(htitle, "G4 Tracks");
292  meMCG4Trk[0] = iBooker.book1D(hname, htitle, 150, 0., 15000.);
293  sprintf(hname, "hMCG4Trk2");
294  meMCG4Trk[1] = iBooker.book1D(hname, htitle, 150, -0.5, 99.5);
295  for (Int_t i = 0; i < 2; ++i) {
296  meMCG4Trk[i]->setAxisTitle("Number of Tracks", 1);
297  meMCG4Trk[i]->setAxisTitle("Count", 2);
298  }
299 
300  sprintf(hname, "hGeantVtxX1");
301  sprintf(htitle, "Geant vertex x/micrometer");
302  meGeantVtxX[0] = iBooker.book1D(hname, htitle, 100, -8000000., 8000000.);
303  sprintf(hname, "hGeantVtxX2");
304  meGeantVtxX[1] = iBooker.book1D(hname, htitle, 100, -50., 50.);
305  for (Int_t i = 0; i < 2; ++i) {
306  meGeantVtxX[i]->setAxisTitle("x of Vertex (um)", 1);
307  meGeantVtxX[i]->setAxisTitle("Count", 2);
308  }
309 
310  sprintf(hname, "hGeantVtxY1");
311  sprintf(htitle, "Geant vertex y/micrometer");
312  meGeantVtxY[0] = iBooker.book1D(hname, htitle, 100, -8000000, 8000000.);
313  sprintf(hname, "hGeantVtxY2");
314  meGeantVtxY[1] = iBooker.book1D(hname, htitle, 100, -50., 50.);
315  for (Int_t i = 0; i < 2; ++i) {
316  meGeantVtxY[i]->setAxisTitle("y of Vertex (um)", 1);
317  meGeantVtxY[i]->setAxisTitle("Count", 2);
318  }
319 
320  sprintf(hname, "hGeantVtxZ1");
321  sprintf(htitle, "Geant vertex z/millimeter");
322  meGeantVtxZ[0] = iBooker.book1D(hname, htitle, 100, -11000., 11000.);
323  sprintf(hname, "hGeantVtxZ2");
324  meGeantVtxZ[1] = iBooker.book1D(hname, htitle, 200, -500., 500.);
325  // meGeantVtxZ[1] = iBooker.book1D(hname,htitle,100,-250.,250.);
326  for (Int_t i = 0; i < 2; ++i) {
327  meGeantVtxZ[i]->setAxisTitle("z of Vertex (mm)", 1);
328  meGeantVtxZ[i]->setAxisTitle("Count", 2);
329  }
330 
331  sprintf(hname, "hGeantTrkPt");
332  sprintf(htitle, "Log10 Geant track pt/GeV");
333  meGeantTrkPt = iBooker.book1D(hname, htitle, 80, -4., 4.);
334  meGeantTrkPt->setAxisTitle("Log10 pT of Track (GeV)", 1);
335  meGeantTrkPt->setAxisTitle("Count", 2);
336 
337  sprintf(hname, "hGeantTrkE");
338  sprintf(htitle, "Log10 Geant track E/GeV");
339  meGeantTrkE = iBooker.book1D(hname, htitle, 80, -4., 4.);
340  meGeantTrkE->setAxisTitle("Log10 E of Track (GeV)", 1);
341  meGeantTrkE->setAxisTitle("Count", 2);
342 
343  sprintf(hname, "hGeantVtxEta");
344  sprintf(htitle, "Geant vertices eta");
345  meGeantVtxEta = iBooker.book1D(hname, htitle, 220, -5.5, 5.5);
346  meGeantVtxEta->setAxisTitle("eta of SimVertex", 1);
347  meGeantVtxEta->setAxisTitle("Count", 2);
348 
349  sprintf(hname, "hGeantVtxPhi");
350  sprintf(htitle, "Geant vertices phi/rad");
351  meGeantVtxPhi = iBooker.book1D(hname, htitle, 100, -3.2, 3.2);
352  meGeantVtxPhi->setAxisTitle("phi of SimVertex (rad)", 1);
353  meGeantVtxPhi->setAxisTitle("Count", 2);
354 
355  sprintf(hname, "hGeantVtxRad1");
356  sprintf(htitle, "Geant vertices radius/cm");
357  meGeantVtxRad[0] = iBooker.book1D(hname, htitle, 130, 0., 130.);
358  sprintf(hname, "hGeantVtxRad2");
359  meGeantVtxRad[1] = iBooker.book1D(hname, htitle, 100, 0., 1000.);
360  for (Int_t i = 0; i < 2; ++i) {
361  meGeantVtxRad[i]->setAxisTitle("radius of SimVertex (cm)", 1);
362  meGeantVtxRad[i]->setAxisTitle("Count", 2);
363  }
364 
365  sprintf(hname, "hGeantVtxMulti");
366  sprintf(htitle, "Geant vertices outgoing multiplicity");
367  meGeantVtxMulti = iBooker.book1D(hname, htitle, 20, 0., 20);
368  meGeantVtxMulti->setAxisTitle("multiplicity of particles attached to a SimVertex", 1);
369  meGeantVtxMulti->setAxisTitle("Count", 2);
370 
371  // ECal
372  iBooker.setCurrentFolder("GlobalHitsV/ECals");
373  sprintf(hname, "hCaloEcal1");
374  sprintf(htitle, "Ecal hits");
375  meCaloEcal[0] = iBooker.book1D(hname, htitle, 100, 0., 10000.);
376  sprintf(hname, "hCaloEcal2");
377  meCaloEcal[1] = iBooker.book1D(hname, htitle, 100, -0.5, 99.5);
378 
379  sprintf(hname, "hCaloEcalE1");
380  sprintf(htitle, "Ecal hits, energy/GeV");
381  meCaloEcalE[0] = iBooker.book1D(hname, htitle, 100, 0., 10.);
382  sprintf(hname, "hCaloEcalE2");
383  meCaloEcalE[1] = iBooker.book1D(hname, htitle, 100, 0., 0.1);
384  sprintf(hname, "hCaloEcalToF1");
385  sprintf(htitle, "Ecal hits, ToF/ns");
386  meCaloEcalToF[0] = iBooker.book1D(hname, htitle, 100, 0., 1000.);
387  sprintf(hname, "hCaloEcalToF2");
388  meCaloEcalToF[1] = iBooker.book1D(hname, htitle, 100, 0., 100.);
389 
390  for (Int_t i = 0; i < 2; ++i) {
391  meCaloEcal[i]->setAxisTitle("Number of Hits", 1);
392  meCaloEcal[i]->setAxisTitle("Count", 2);
393  meCaloEcalE[i]->setAxisTitle("Energy of Hits (GeV)", 1);
394  meCaloEcalE[i]->setAxisTitle("Count", 2);
395  meCaloEcalToF[i]->setAxisTitle("Time of Flight of Hits (ns)", 1);
396  meCaloEcalToF[i]->setAxisTitle("Count", 2);
397  }
398 
399  sprintf(hname, "hCaloEcalPhi");
400  sprintf(htitle, "Ecal hits, phi/rad");
401  meCaloEcalPhi = iBooker.book1D(hname, htitle, 100, -3.2, 3.2);
402  meCaloEcalPhi->setAxisTitle("Phi of Hits (rad)", 1);
403  meCaloEcalPhi->setAxisTitle("Count", 2);
404 
405  sprintf(hname, "hCaloEcalEta");
406  sprintf(htitle, "Ecal hits, eta");
407  meCaloEcalEta = iBooker.book1D(hname, htitle, 100, -5.5, 5.5);
408  meCaloEcalEta->setAxisTitle("Eta of Hits", 1);
409  meCaloEcalEta->setAxisTitle("Count", 2);
410 
411  sprintf(hname, "hCaloPreSh1");
412  sprintf(htitle, "PreSh hits");
413  meCaloPreSh[0] = iBooker.book1D(hname, htitle, 100, 0., 10000.);
414  sprintf(hname, "hCaloPreSh2");
415  meCaloPreSh[1] = iBooker.book1D(hname, htitle, 100, -0.5, 99.5);
416 
417  sprintf(hname, "hCaloPreShE1");
418  sprintf(htitle, "PreSh hits, energy/GeV");
419  meCaloPreShE[0] = iBooker.book1D(hname, htitle, 100, 0., 10.);
420  sprintf(hname, "hCaloPreShE2");
421  meCaloPreShE[1] = iBooker.book1D(hname, htitle, 100, 0., 0.1);
422 
423  sprintf(hname, "hCaloPreShToF1");
424  sprintf(htitle, "PreSh hits, ToF/ns");
425  meCaloPreShToF[0] = iBooker.book1D(hname, htitle, 100, 0., 1000.);
426  sprintf(hname, "hCaloPreShToF2");
427  meCaloPreShToF[1] = iBooker.book1D(hname, htitle, 100, 0., 100.);
428 
429  for (Int_t i = 0; i < 2; ++i) {
430  meCaloPreSh[i]->setAxisTitle("Number of Hits", 1);
431  meCaloPreSh[i]->setAxisTitle("Count", 2);
432  meCaloPreShE[i]->setAxisTitle("Energy of Hits (GeV)", 1);
433  meCaloPreShE[i]->setAxisTitle("Count", 2);
434  meCaloPreShToF[i]->setAxisTitle("Time of Flight of Hits (ns)", 1);
435  meCaloPreShToF[i]->setAxisTitle("Count", 2);
436  }
437 
438  sprintf(hname, "hCaloPreShPhi");
439  sprintf(htitle, "PreSh hits, phi/rad");
440  meCaloPreShPhi = iBooker.book1D(hname, htitle, 100, -3.2, 3.2);
441  meCaloPreShPhi->setAxisTitle("Phi of Hits (rad)", 1);
442  meCaloPreShPhi->setAxisTitle("Count", 2);
443 
444  sprintf(hname, "hCaloPreShEta");
445  sprintf(htitle, "PreSh hits, eta");
446  meCaloPreShEta = iBooker.book1D(hname, htitle, 100, -5.5, 5.5);
447  meCaloPreShEta->setAxisTitle("Eta of Hits", 1);
448  meCaloPreShEta->setAxisTitle("Count", 2);
449 
450  // Hcal
451  iBooker.setCurrentFolder("GlobalHitsV/HCals");
452  sprintf(hname, "hCaloHcal1");
453  sprintf(htitle, "Hcal hits");
454  meCaloHcal[0] = iBooker.book1D(hname, htitle, 100, 0., 10000.);
455  sprintf(hname, "hCaloHcal2");
456  meCaloHcal[1] = iBooker.book1D(hname, htitle, 100, -0.5, 99.5);
457 
458  sprintf(hname, "hCaloHcalE1");
459  sprintf(htitle, "Hcal hits, energy/GeV");
460  meCaloHcalE[0] = iBooker.book1D(hname, htitle, 100, 0., 10.);
461  sprintf(hname, "hCaloHcalE2");
462  meCaloHcalE[1] = iBooker.book1D(hname, htitle, 100, 0., 0.1);
463 
464  sprintf(hname, "hCaloHcalToF1");
465  sprintf(htitle, "Hcal hits, ToF/ns");
466  meCaloHcalToF[0] = iBooker.book1D(hname, htitle, 100, 0., 1000.);
467  sprintf(hname, "hCaloHcalToF2");
468  meCaloHcalToF[1] = iBooker.book1D(hname, htitle, 100, 0., 100.);
469 
470  for (Int_t i = 0; i < 2; ++i) {
471  meCaloHcal[i]->setAxisTitle("Number of Hits", 1);
472  meCaloHcal[i]->setAxisTitle("Count", 2);
473  meCaloHcalE[i]->setAxisTitle("Energy of Hits (GeV)", 1);
474  meCaloHcalE[i]->setAxisTitle("Count", 2);
475  meCaloHcalToF[i]->setAxisTitle("Time of Flight of Hits (ns)", 1);
476  meCaloHcalToF[i]->setAxisTitle("Count", 2);
477  }
478 
479  sprintf(hname, "hCaloHcalPhi");
480  sprintf(htitle, "Hcal hits, phi/rad");
481  meCaloHcalPhi = iBooker.book1D(hname, htitle, 100, -3.2, 3.2);
482  meCaloHcalPhi->setAxisTitle("Phi of Hits (rad)", 1);
483  meCaloHcalPhi->setAxisTitle("Count", 2);
484 
485  sprintf(hname, "hCaloHcalEta");
486  sprintf(htitle, "Hcal hits, eta");
487  meCaloHcalEta = iBooker.book1D(hname, htitle, 100, -5.5, 5.5);
488  meCaloHcalEta->setAxisTitle("Eta of Hits", 1);
489  meCaloHcalEta->setAxisTitle("Count", 2);
490 
491  // SiPixels
492  iBooker.setCurrentFolder("GlobalHitsV/SiPixels");
493  sprintf(hname, "hTrackerPx1");
494  sprintf(htitle, "Pixel hits");
495  meTrackerPx[0] = iBooker.book1D(hname, htitle, 100, 0., 10000.);
496  sprintf(hname, "hTrackerPx2");
497  meTrackerPx[1] = iBooker.book1D(hname, htitle, 100, -0.5, 99.5);
498  for (Int_t i = 0; i < 2; ++i) {
499  meTrackerPx[i]->setAxisTitle("Number of Pixel Hits", 1);
500  meTrackerPx[i]->setAxisTitle("Count", 2);
501  }
502 
503  sprintf(hname, "hTrackerPxPhi");
504  sprintf(htitle, "Pixel hits phi/rad");
505  meTrackerPxPhi = iBooker.book1D(hname, htitle, 100, -3.2, 3.2);
506  meTrackerPxPhi->setAxisTitle("Phi of Hits (rad)", 1);
507  meTrackerPxPhi->setAxisTitle("Count", 2);
508 
509  sprintf(hname, "hTrackerPxEta");
510  sprintf(htitle, "Pixel hits eta");
511  meTrackerPxEta = iBooker.book1D(hname, htitle, 100, -3.5, 3.5);
512  meTrackerPxEta->setAxisTitle("Eta of Hits", 1);
513  meTrackerPxEta->setAxisTitle("Count", 2);
514 
515  sprintf(hname, "hTrackerPxBToF");
516  sprintf(htitle, "Pixel barrel hits, ToF/ns");
517  meTrackerPxBToF = iBooker.book1D(hname, htitle, 100, 0., 40.);
518  meTrackerPxBToF->setAxisTitle("Time of Flight of Hits (ns)", 1);
519  meTrackerPxBToF->setAxisTitle("Count", 2);
520 
521  sprintf(hname, "hTrackerPxBR");
522  sprintf(htitle, "Pixel barrel hits, R/cm");
523  meTrackerPxBR = iBooker.book1D(hname, htitle, 100, 0., 50.);
524  meTrackerPxBR->setAxisTitle("R of Hits (cm)", 1);
525  meTrackerPxBR->setAxisTitle("Count", 2);
526 
527  sprintf(hname, "hTrackerPxFToF");
528  sprintf(htitle, "Pixel forward hits, ToF/ns");
529  meTrackerPxFToF = iBooker.book1D(hname, htitle, 100, 0., 50.);
530  meTrackerPxFToF->setAxisTitle("Time of Flight of Hits (ns)", 1);
531  meTrackerPxFToF->setAxisTitle("Count", 2);
532 
533  sprintf(hname, "hTrackerPxFZ");
534  sprintf(htitle, "Pixel forward hits, Z/cm");
535  meTrackerPxFZ = iBooker.book1D(hname, htitle, 200, -100., 100.);
536  meTrackerPxFZ->setAxisTitle("Z of Hits (cm)", 1);
537  meTrackerPxFZ->setAxisTitle("Count", 2);
538 
539  // SiStrips
540  iBooker.setCurrentFolder("GlobalHitsV/SiStrips");
541  sprintf(hname, "hTrackerSi1");
542  sprintf(htitle, "Silicon hits");
543  meTrackerSi[0] = iBooker.book1D(hname, htitle, 100, 0., 10000.);
544  sprintf(hname, "hTrackerSi2");
545  meTrackerSi[1] = iBooker.book1D(hname, htitle, 100, -0.5, 99.5);
546  for (Int_t i = 0; i < 2; ++i) {
547  meTrackerSi[i]->setAxisTitle("Number of Silicon Hits", 1);
548  meTrackerSi[i]->setAxisTitle("Count", 2);
549  }
550 
551  sprintf(hname, "hTrackerSiPhi");
552  sprintf(htitle, "Silicon hits phi/rad");
553  meTrackerSiPhi = iBooker.book1D(hname, htitle, 100, -3.2, 3.2);
554  meTrackerSiPhi->setAxisTitle("Phi of Hits (rad)", 1);
555  meTrackerSiPhi->setAxisTitle("Count", 2);
556 
557  sprintf(hname, "hTrackerSiEta");
558  sprintf(htitle, "Silicon hits eta");
559  meTrackerSiEta = iBooker.book1D(hname, htitle, 100, -3.5, 3.5);
560  meTrackerSiEta->setAxisTitle("Eta of Hits", 1);
561  meTrackerSiEta->setAxisTitle("Count", 2);
562 
563  sprintf(hname, "hTrackerSiBToF");
564  sprintf(htitle, "Silicon barrel hits, ToF/ns");
565  meTrackerSiBToF = iBooker.book1D(hname, htitle, 100, 0., 50.);
566  meTrackerSiBToF->setAxisTitle("Time of Flight of Hits (ns)", 1);
567  meTrackerSiBToF->setAxisTitle("Count", 2);
568 
569  sprintf(hname, "hTrackerSiBR");
570  sprintf(htitle, "Silicon barrel hits, R/cm");
571  meTrackerSiBR = iBooker.book1D(hname, htitle, 100, 0., 200.);
572  meTrackerSiBR->setAxisTitle("R of Hits (cm)", 1);
573  meTrackerSiBR->setAxisTitle("Count", 2);
574 
575  sprintf(hname, "hTrackerSiFToF");
576  sprintf(htitle, "Silicon forward hits, ToF/ns");
577  meTrackerSiFToF = iBooker.book1D(hname, htitle, 100, 0., 75.);
578  meTrackerSiFToF->setAxisTitle("Time of Flight of Hits (ns)", 1);
579  meTrackerSiFToF->setAxisTitle("Count", 2);
580 
581  sprintf(hname, "hTrackerSiFZ");
582  sprintf(htitle, "Silicon forward hits, Z/cm");
583  meTrackerSiFZ = iBooker.book1D(hname, htitle, 200, -300., 300.);
584  meTrackerSiFZ->setAxisTitle("Z of Hits (cm)", 1);
585  meTrackerSiFZ->setAxisTitle("Count", 2);
586 
587  // Muon
588  iBooker.setCurrentFolder("GlobalHitsV/Muons");
589  sprintf(hname, "hMuon1");
590  sprintf(htitle, "Muon hits");
591  meMuon[0] = iBooker.book1D(hname, htitle, 100, 0., 10000.);
592  sprintf(hname, "hMuon2");
593  meMuon[1] = iBooker.book1D(hname, htitle, 100, -0.5, 99.5);
594  for (Int_t i = 0; i < 2; ++i) {
595  meMuon[i]->setAxisTitle("Number of Muon Hits", 1);
596  meMuon[i]->setAxisTitle("Count", 2);
597  }
598 
599  sprintf(hname, "hMuonPhi");
600  sprintf(htitle, "Muon hits phi/rad");
601  meMuonPhi = iBooker.book1D(hname, htitle, 100, -3.2, 3.2);
602  meMuonPhi->setAxisTitle("Phi of Hits (rad)", 1);
603  meMuonPhi->setAxisTitle("Count", 2);
604 
605  sprintf(hname, "hMuonEta");
606  sprintf(htitle, "Muon hits eta");
607  meMuonEta = iBooker.book1D(hname, htitle, 100, -3.5, 3.5);
608  meMuonEta->setAxisTitle("Eta of Hits", 1);
609  meMuonEta->setAxisTitle("Count", 2);
610 
611  sprintf(hname, "hMuonCscToF1");
612  sprintf(htitle, "Muon CSC hits, ToF/ns");
613  meMuonCscToF[0] = iBooker.book1D(hname, htitle, 100, 0., 250.);
614  sprintf(hname, "hMuonCscToF2");
615  meMuonCscToF[1] = iBooker.book1D(hname, htitle, 100, 0., 50.);
616  for (Int_t i = 0; i < 2; ++i) {
617  meMuonCscToF[i]->setAxisTitle("Time of Flight of Hits (ns)", 1);
618  meMuonCscToF[i]->setAxisTitle("Count", 2);
619  }
620 
621  sprintf(hname, "hMuonCscZ");
622  sprintf(htitle, "Muon CSC hits, Z/cm");
623  meMuonCscZ = iBooker.book1D(hname, htitle, 200, -1500., 1500.);
624  meMuonCscZ->setAxisTitle("Z of Hits (cm)", 1);
625  meMuonCscZ->setAxisTitle("Count", 2);
626 
627  sprintf(hname, "hMuonDtToF1");
628  sprintf(htitle, "Muon DT hits, ToF/ns");
629  meMuonDtToF[0] = iBooker.book1D(hname, htitle, 100, 0., 250.);
630  sprintf(hname, "hMuonDtToF2");
631  meMuonDtToF[1] = iBooker.book1D(hname, htitle, 100, 0., 50.);
632  for (Int_t i = 0; i < 2; ++i) {
633  meMuonDtToF[i]->setAxisTitle("Time of Flight of Hits (ns)", 1);
634  meMuonDtToF[i]->setAxisTitle("Count", 2);
635  }
636 
637  sprintf(hname, "hMuonDtR");
638  sprintf(htitle, "Muon DT hits, R/cm");
639  meMuonDtR = iBooker.book1D(hname, htitle, 100, 0., 1500.);
640  meMuonDtR->setAxisTitle("R of Hits (cm)", 1);
641  meMuonDtR->setAxisTitle("Count", 2);
642 
643  sprintf(hname, "hMuonRpcFToF1");
644  sprintf(htitle, "Muon RPC forward hits, ToF/ns");
645  meMuonRpcFToF[0] = iBooker.book1D(hname, htitle, 100, 0., 250.);
646  sprintf(hname, "hMuonRpcFToF2");
647  meMuonRpcFToF[1] = iBooker.book1D(hname, htitle, 100, 0., 50.);
648  for (Int_t i = 0; i < 2; ++i) {
649  meMuonRpcFToF[i]->setAxisTitle("Time of Flight of Hits (ns)", 1);
650  meMuonRpcFToF[i]->setAxisTitle("Count", 2);
651  }
652  sprintf(hname, "hMuonRpcFZ");
653  sprintf(htitle, "Muon RPC forward hits, Z/cm");
654  meMuonRpcFZ = iBooker.book1D(hname, htitle, 201, -1500., 1500.);
655  meMuonRpcFZ->setAxisTitle("Z of Hits (cm)", 1);
656  meMuonRpcFZ->setAxisTitle("Count", 2);
657 
658  sprintf(hname, "hMuonRpcBToF1");
659  sprintf(htitle, "Muon RPC barrel hits, ToF/ns");
660  meMuonRpcBToF[0] = iBooker.book1D(hname, htitle, 100, 0., 250.);
661  sprintf(hname, "hMuonRpcBToF2");
662  meMuonRpcBToF[1] = iBooker.book1D(hname, htitle, 100, 0., 50.);
663  for (Int_t i = 0; i < 2; ++i) {
664  meMuonRpcBToF[i]->setAxisTitle("Time of Flight of Hits (ns)", 1);
665  meMuonRpcBToF[i]->setAxisTitle("Count", 2);
666  }
667 
668  sprintf(hname, "hMuonRpcBR");
669  sprintf(htitle, "Muon RPC barrel hits, R/cm");
670  meMuonRpcBR = iBooker.book1D(hname, htitle, 100, 0., 1500.);
671  meMuonRpcBR->setAxisTitle("R of Hits (cm)", 1);
672  meMuonRpcBR->setAxisTitle("Count", 2);
673 }
MonitorElement * meTrackerSiPhi
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:36
MonitorElement * meMuonDtToF[2]
MonitorElement * meGeantVtxRad[2]
MonitorElement * meCaloHcal[2]
MonitorElement * meMCG4Trk[2]
MonitorElement * meTrackerPxPhi
MonitorElement * meCaloHcalToF[2]
MonitorElement * meCaloPreSh[2]
MonitorElement * meTrackerSiEta
MonitorElement * meTrackerSiBToF
MonitorElement * meTrackerSi[2]
MonitorElement * meMCG4Vtx[2]
MonitorElement * meGeantVtxY[2]
MonitorElement * meGeantVtxMulti
MonitorElement * meTrackerPxFZ
MonitorElement * meMuonCscToF[2]
MonitorElement * meCaloPreShPhi
MonitorElement * meGeantTrkE
MonitorElement * meCaloEcalEta
MonitorElement * meTrackerPxBR
MonitorElement * meCaloPreShE[2]
MonitorElement * meTrackerPxBToF
MonitorElement * meGeantVtxPhi
MonitorElement * meCaloEcalPhi
MonitorElement * meTrackerPx[2]
MonitorElement * meGeantTrkPt
MonitorElement * meGeantVtxEta
MonitorElement * meMuonRpcFZ
MonitorElement * meMCRGP[2]
MonitorElement * meMuonRpcBToF[2]
MonitorElement * meCaloHcalE[2]
MonitorElement * meMuonCscZ
MonitorElement * meGeantVtxX[2]
MonitorElement * meCaloEcal[2]
MonitorElement * meTrackerSiFZ
MonitorElement * meGeantVtxZ[2]
MonitorElement * meCaloEcalToF[2]
MonitorElement * meMuon[2]
MonitorElement * meMuonRpcFToF[2]
MonitorElement * meCaloPreShToF[2]
MonitorElement * meCaloPreShEta
MonitorElement * meTrackerSiFToF
MonitorElement * meTrackerPxFToF
MonitorElement * meMuonEta
MonitorElement * meMuonDtR
MonitorElement * meCaloHcalPhi
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
Definition: DQMStore.h:98
MonitorElement * meMuonRpcBR
MonitorElement * meTrackerPxEta
MonitorElement * meCaloHcalEta
MonitorElement * meMuonPhi
MonitorElement * meTrackerSiBR
virtual void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
MonitorElement * meCaloEcalE[2]

◆ fillECal()

void GlobalHitsAnalyzer::fillECal ( const edm::Event iEvent,
const edm::EventSetup iSetup 
)
private

Definition at line 1552 of file GlobalHitsAnalyzer.cc.

References caloGeomToken_, dEcal, hgcalTestNeighbor_cfi::detector, ECalEBSrc_Token_, ECalEESrc_Token_, ECalESSrc_Token_, PV3DBase< T, PVType, FrameType >::eta(), dqm::impl::MonitorElement::Fill(), edm::EventSetup::getHandle(), CaloGeometry::getSubdetectorGeometry(), mps_fire::i, iEvent, edm::HandleBase::isValid(), dqmiolumiharvest::j, LogDebug, meCaloEcal, meCaloEcalE, meCaloEcalEta, meCaloEcalPhi, meCaloEcalToF, meCaloPreSh, meCaloPreShE, meCaloPreShEta, meCaloPreShPhi, meCaloPreShToF, PV3DBase< T, PVType, FrameType >::phi(), sdEcalBrl, sdEcalFwd, sdEcalPS, AlCaHLTBitMon_QueryRunRegistry::string, subdetector, validEB, validEE, validPresh, and verbosity.

Referenced by analyze().

1552  {
1553  std::string MsgLoggerCat = "GlobalHitsAnalyzer_fillECal";
1554 
1555  TString eventout;
1556  if (verbosity > 0)
1557  eventout = "\nGathering info:";
1558 
1559  // access the calorimeter geometry
1560  const auto &theCaloGeometry = iSetup.getHandle(caloGeomToken_);
1561  if (!theCaloGeometry.isValid()) {
1562  edm::LogWarning(MsgLoggerCat) << "Unable to find CaloGeometryRecord in event!";
1563  return;
1564  }
1565  const CaloGeometry &theCalo(*theCaloGeometry);
1566 
1567  // iterator to access containers
1568  edm::PCaloHitContainer::const_iterator itHit;
1569 
1571  // get ECal information
1573  edm::PCaloHitContainer theECalHits;
1574  // extract EB container
1576  iEvent.getByToken(ECalEBSrc_Token_, EBContainer);
1577  if (!EBContainer.isValid()) {
1578  LogDebug(MsgLoggerCat) << "Unable to find EcalHitsEB in event!";
1579  validEB = false;
1580  }
1581  // extract EE container
1583  iEvent.getByToken(ECalEESrc_Token_, EEContainer);
1584  if (!EEContainer.isValid()) {
1585  LogDebug(MsgLoggerCat) << "Unable to find EcalHitsEE in event!";
1586  validEE = false;
1587  }
1588  // place both containers into new container
1589  if (validEB)
1590  theECalHits.insert(theECalHits.end(), EBContainer->begin(), EBContainer->end());
1591  if (validEE)
1592  theECalHits.insert(theECalHits.end(), EEContainer->begin(), EEContainer->end());
1593 
1594  // cycle through new container
1595  int i = 0, j = 0;
1596  for (itHit = theECalHits.begin(); itHit != theECalHits.end(); ++itHit) {
1597  ++i;
1598 
1599  // create a DetId from the detUnitId
1600  DetId theDetUnitId(itHit->id());
1601  int detector = theDetUnitId.det();
1602  int subdetector = theDetUnitId.subdetId();
1603 
1604  // check that expected detector is returned
1605  if ((detector == dEcal) && ((subdetector == sdEcalBrl) || (subdetector == sdEcalFwd))) {
1606  // get the Cell geometry
1607  auto theDet = (theCalo.getSubdetectorGeometry(theDetUnitId))->getGeometry(theDetUnitId);
1608 
1609  if (!theDet) {
1610  edm::LogWarning(MsgLoggerCat) << "Unable to get CaloCellGeometry from ECalHits for Hit " << i;
1611  continue;
1612  }
1613 
1614  ++j;
1615 
1616  // get the global position of the cell
1617  const GlobalPoint &globalposition = theDet->getPosition();
1618 
1619  if (meCaloEcalE[0])
1620  meCaloEcalE[0]->Fill(itHit->energy());
1621  if (meCaloEcalE[1])
1622  meCaloEcalE[1]->Fill(itHit->energy());
1623  if (meCaloEcalToF[0])
1624  meCaloEcalToF[0]->Fill(itHit->time());
1625  if (meCaloEcalToF[1])
1626  meCaloEcalToF[1]->Fill(itHit->time());
1627  if (meCaloEcalPhi)
1628  meCaloEcalPhi->Fill(globalposition.phi());
1629  if (meCaloEcalEta)
1630  meCaloEcalEta->Fill(globalposition.eta());
1631 
1632  } else {
1633  edm::LogWarning(MsgLoggerCat) << "ECal PCaloHit " << i << " is expected to be (det,subdet) = (" << dEcal << ","
1634  << sdEcalBrl << " || " << sdEcalFwd << "); value returned is: (" << detector << ","
1635  << subdetector << ")";
1636  continue;
1637  } // end detector type check
1638  } // end loop through ECal Hits
1639 
1640  if (verbosity > 1) {
1641  eventout += "\n Number of ECal Hits collected:............. ";
1642  eventout += j;
1643  }
1644 
1645  if (meCaloEcal[0])
1646  meCaloEcal[0]->Fill((float)j);
1647  if (meCaloEcal[1])
1648  meCaloEcal[1]->Fill((float)j);
1649 
1651  // Get Preshower information
1653  // extract PreShower container
1654  edm::Handle<edm::PCaloHitContainer> PreShContainer;
1655  iEvent.getByToken(ECalESSrc_Token_, PreShContainer);
1656  if (!PreShContainer.isValid()) {
1657  LogDebug(MsgLoggerCat) << "Unable to find EcalHitsES in event!";
1658  validPresh = false;
1659  }
1660 
1661  if (validPresh) {
1662  // cycle through container
1663  int i = 0, j = 0;
1664  for (itHit = PreShContainer->begin(); itHit != PreShContainer->end(); ++itHit) {
1665  ++i;
1666 
1667  // create a DetId from the detUnitId
1668  DetId theDetUnitId(itHit->id());
1669  int detector = theDetUnitId.det();
1670  int subdetector = theDetUnitId.subdetId();
1671 
1672  // check that expected detector is returned
1673  if ((detector == dEcal) && (subdetector == sdEcalPS)) {
1674  // get the Cell geometry
1675  auto theDet = (theCalo.getSubdetectorGeometry(theDetUnitId))->getGeometry(theDetUnitId);
1676 
1677  if (!theDet) {
1678  edm::LogWarning(MsgLoggerCat) << "Unable to get CaloCellGeometry from PreShContainer for Hit " << i;
1679  continue;
1680  }
1681 
1682  ++j;
1683 
1684  // get the global position of the cell
1685  const GlobalPoint &globalposition = theDet->getPosition();
1686 
1687  if (meCaloPreShE[0])
1688  meCaloPreShE[0]->Fill(itHit->energy());
1689  if (meCaloPreShE[1])
1690  meCaloPreShE[1]->Fill(itHit->energy());
1691  if (meCaloPreShToF[0])
1692  meCaloPreShToF[0]->Fill(itHit->time());
1693  if (meCaloPreShToF[1])
1694  meCaloPreShToF[1]->Fill(itHit->time());
1695  if (meCaloPreShPhi)
1696  meCaloPreShPhi->Fill(globalposition.phi());
1697  if (meCaloPreShEta)
1698  meCaloPreShEta->Fill(globalposition.eta());
1699 
1700  } else {
1701  edm::LogWarning(MsgLoggerCat) << "PreSh PCaloHit " << i << " is expected to be (det,subdet) = (" << dEcal << ","
1702  << sdEcalPS << "); value returned is: (" << detector << "," << subdetector << ")";
1703  continue;
1704  } // end detector type check
1705  } // end loop through PreShower Hits
1706 
1707  if (verbosity > 1) {
1708  eventout += "\n Number of PreSh Hits collected:............ ";
1709  eventout += j;
1710  }
1711 
1712  if (meCaloPreSh[0])
1713  meCaloPreSh[0]->Fill((float)j);
1714  if (meCaloPreSh[1])
1715  meCaloPreSh[1]->Fill((float)j);
1716  }
1717 
1718  if (verbosity > 0)
1719  edm::LogInfo(MsgLoggerCat) << eventout << "\n";
1720 
1721  return;
1722 }
edm::ESGetToken< CaloGeometry, CaloGeometryRecord > caloGeomToken_
static const int dEcal
std::vector< PCaloHit > PCaloHitContainer
TString subdetector
Geom::Phi< T > phi() const
Definition: PV3DBase.h:66
T eta() const
Definition: PV3DBase.h:73
MonitorElement * meCaloPreSh[2]
static const int sdEcalPS
edm::EDGetTokenT< edm::PCaloHitContainer > ECalEESrc_Token_
void Fill(long long x)
int iEvent
Definition: GenABIO.cc:224
MonitorElement * meCaloPreShPhi
MonitorElement * meCaloEcalEta
MonitorElement * meCaloPreShE[2]
static const int sdEcalFwd
MonitorElement * meCaloEcalPhi
static const int sdEcalBrl
edm::EDGetTokenT< edm::PCaloHitContainer > ECalEBSrc_Token_
ESHandle< T > getHandle(const ESGetToken< T, R > &iToken) const
Definition: EventSetup.h:130
Log< level::Info, false > LogInfo
Definition: DetId.h:17
MonitorElement * meCaloEcal[2]
MonitorElement * meCaloEcalToF[2]
bool isValid() const
Definition: HandleBase.h:70
MonitorElement * meCaloPreShToF[2]
MonitorElement * meCaloPreShEta
Log< level::Warning, false > LogWarning
edm::EDGetTokenT< edm::PCaloHitContainer > ECalESSrc_Token_
#define LogDebug(id)
MonitorElement * meCaloEcalE[2]

◆ fillG4MC()

void GlobalHitsAnalyzer::fillG4MC ( const edm::Event iEvent)
private

Definition at line 744 of file GlobalHitsAnalyzer.cc.

References edm::Provenance::branchDescription(), dqm::impl::MonitorElement::Fill(), G4TrkSrc_Token_, G4VtxSrc_Token_, edm::HepMCProduct::GetEvent(), mps_fire::i, iEvent, edm::HandleBase::isValid(), LogDebug, SiStripPI::max, meGeantTrkE, meGeantTrkPt, meGeantVtxEta, meGeantVtxMulti, meGeantVtxPhi, meGeantVtxRad, meGeantVtxX, meGeantVtxY, meGeantVtxZ, meMCG4Trk, meMCG4Vtx, meMCRGP, HerwigMaxPtPartonFilter_cfi::moduleLabel, trackerHitRTTI::multi, nRawGenPart, edm::HandleBase::provenance(), mathSSE::sqrt(), AlCaHLTBitMon_QueryRunRegistry::string, unit(), validG4trkContainer, validG4VtxContainer, validHepMCevt, verbosity, and vtxunit.

Referenced by analyze().

744  {
745  std::string MsgLoggerCat = "GlobalHitsAnalyzer_fillG4MC";
746 
747  TString eventout;
748  if (verbosity > 0)
749  eventout = "\nGathering info:";
750 
752  // get MC information
755  std::vector<edm::Handle<edm::HepMCProduct>> AllHepMCEvt;
756  iEvent.getManyByType(AllHepMCEvt);
757 
758  // loop through products and extract VtxSmearing if available. Any of them
759  // should have the information needed
760  for (unsigned int i = 0; i < AllHepMCEvt.size(); ++i) {
761  HepMCEvt = AllHepMCEvt[i];
762  if ((HepMCEvt.provenance()->branchDescription()).moduleLabel() == "generatorSmeared")
763  break;
764  }
765 
766  if (!HepMCEvt.isValid()) {
767  LogDebug(MsgLoggerCat) << "Unable to find HepMCProduct in event!";
768  validHepMCevt = false;
769  } else {
770  eventout += "\n Using HepMCProduct: ";
771  eventout += (HepMCEvt.provenance()->branchDescription()).moduleLabel();
772  }
773  if (validHepMCevt) {
774  const HepMC::GenEvent *MCEvt = HepMCEvt->GetEvent();
775  nRawGenPart = MCEvt->particles_size();
776 
777  if (verbosity > 1) {
778  eventout += "\n Number of Raw Particles collected:......... ";
779  eventout += nRawGenPart;
780  }
781 
782  if (meMCRGP[0])
783  meMCRGP[0]->Fill((float)nRawGenPart);
784  if (meMCRGP[1])
785  meMCRGP[1]->Fill((float)nRawGenPart);
786  }
787 
789  // get G4Vertex information
791  // convert unit stored in SimVertex to mm
792  float unit = 0.;
793  if (vtxunit == 0)
794  unit = 1.; // already in mm
795  if (vtxunit == 1)
796  unit = 10.; // stored in cm, convert to mm
797 
799  iEvent.getByToken(G4VtxSrc_Token_, G4VtxContainer);
800 
801  // needed here by vertex multiplicity
803  iEvent.getByToken(G4TrkSrc_Token_, G4TrkContainer);
804 
805  if (!G4VtxContainer.isValid()) {
806  LogDebug(MsgLoggerCat) << "Unable to find SimVertex in event!";
807  validG4VtxContainer = false;
808  }
809  if (validG4VtxContainer) {
810  int i = 0;
811  edm::SimVertexContainer::const_iterator itVtx;
812  for (itVtx = G4VtxContainer->begin(); itVtx != G4VtxContainer->end(); ++itVtx) {
813  ++i;
814 
815  const math::XYZTLorentzVector G4Vtx1(
816  itVtx->position().x(), itVtx->position().y(), itVtx->position().z(), itVtx->position().e());
817 
818  double G4Vtx[4];
819  G4Vtx1.GetCoordinates(G4Vtx);
820 
821  if (meGeantVtxX[0])
822  meGeantVtxX[0]->Fill((G4Vtx[0] * unit) / micrometer);
823  if (meGeantVtxX[1])
824  meGeantVtxX[1]->Fill((G4Vtx[0] * unit) / micrometer);
825 
826  if (meGeantVtxY[0])
827  meGeantVtxY[0]->Fill((G4Vtx[1] * unit) / micrometer);
828  if (meGeantVtxY[1])
829  meGeantVtxY[1]->Fill((G4Vtx[1] * unit) / micrometer);
830 
831  if (meGeantVtxZ[0])
832  meGeantVtxZ[0]->Fill((G4Vtx[2] * unit) / millimeter);
833  if (meGeantVtxZ[1])
834  meGeantVtxZ[1]->Fill((G4Vtx[2] * unit) / millimeter);
835 
836  if (meGeantVtxEta)
837  meGeantVtxEta->Fill(G4Vtx1.eta());
838  if (meGeantVtxPhi)
839  meGeantVtxPhi->Fill(G4Vtx1.phi());
840  if (meGeantVtxRad[0])
841  meGeantVtxRad[0]->Fill(G4Vtx1.rho());
842  if (meGeantVtxRad[1])
843  meGeantVtxRad[1]->Fill(G4Vtx1.rho());
844 
845  if (meGeantVtxMulti) {
846  int multi = 0;
847  if (G4TrkContainer.isValid()) {
848  edm::SimTrackContainer::const_iterator itTrk;
849  for (itTrk = G4TrkContainer->begin(); itTrk != G4TrkContainer->end(); ++itTrk) {
850  if ((*itTrk).vertIndex() == i) {
851  multi++;
852  }
853  }
854  }
855  meGeantVtxMulti->Fill(((double)multi + 0.5));
856  }
857  }
858 
859  if (verbosity > 1) {
860  eventout += "\n Number of G4Vertices collected:............ ";
861  eventout += i;
862  }
863 
864  if (meMCG4Vtx[0])
865  meMCG4Vtx[0]->Fill((float)i);
866  if (meMCG4Vtx[1])
867  meMCG4Vtx[1]->Fill((float)i);
868  }
869 
871  // get G4Track information
873  if (!G4TrkContainer.isValid()) {
874  LogDebug(MsgLoggerCat) << "Unable to find SimTrack in event!";
875  validG4trkContainer = false;
876  }
877  if (validG4trkContainer) {
878  int i = 0;
879  edm::SimTrackContainer::const_iterator itTrk;
880  for (itTrk = G4TrkContainer->begin(); itTrk != G4TrkContainer->end(); ++itTrk) {
881  ++i;
882 
883  const math::XYZTLorentzVector G4Trk1(
884  itTrk->momentum().x(), itTrk->momentum().y(), itTrk->momentum().z(), itTrk->momentum().e());
885  double G4Trk[4];
886  G4Trk1.GetCoordinates(G4Trk);
887 
888  if (meGeantTrkPt)
889  meGeantTrkPt->Fill(std::log10(std::max(sqrt(G4Trk[0] * G4Trk[0] + G4Trk[1] * G4Trk[1]), -9.)));
890  if (meGeantTrkE)
891  meGeantTrkE->Fill(std::log10(std::max(G4Trk[3], -9.)));
892  }
893 
894  if (verbosity > 1) {
895  eventout += "\n Number of G4Tracks collected:.............. ";
896  eventout += i;
897  }
898 
899  if (meMCG4Trk[0])
900  meMCG4Trk[0]->Fill((float)i);
901  if (meMCG4Trk[1])
902  meMCG4Trk[1]->Fill((float)i);
903  }
904 
905  if (verbosity > 0)
906  edm::LogInfo(MsgLoggerCat) << eventout << "\n";
907 
908  return;
909 }
MonitorElement * meGeantVtxRad[2]
MonitorElement * meMCG4Trk[2]
edm::EDGetTokenT< edm::SimTrackContainer > G4TrkSrc_Token_
Provenance const * provenance() const
Definition: HandleBase.h:74
MonitorElement * meMCG4Vtx[2]
MonitorElement * meGeantVtxY[2]
MonitorElement * meGeantVtxMulti
void Fill(long long x)
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
Definition: LorentzVector.h:29
int iEvent
Definition: GenABIO.cc:224
MonitorElement * meGeantTrkE
T sqrt(T t)
Definition: SSEVec.h:19
MonitorElement * meGeantVtxPhi
MonitorElement * meGeantTrkPt
MonitorElement * meGeantVtxEta
BranchDescription const & branchDescription() const
Definition: Provenance.h:45
Basic3DVector unit() const
MonitorElement * meMCRGP[2]
const HepMC::GenEvent * GetEvent() const
Definition: HepMCProduct.h:37
Log< level::Info, false > LogInfo
MonitorElement * meGeantVtxX[2]
MonitorElement * meGeantVtxZ[2]
bool isValid() const
Definition: HandleBase.h:70
edm::EDGetTokenT< edm::SimVertexContainer > G4VtxSrc_Token_
#define LogDebug(id)

◆ fillHCal()

void GlobalHitsAnalyzer::fillHCal ( const edm::Event iEvent,
const edm::EventSetup iSetup 
)
private

Definition at line 1724 of file GlobalHitsAnalyzer.cc.

References caloGeomToken_, DetId::det(), hgcalTestNeighbor_cfi::detector, dHcal, PV3DBase< T, PVType, FrameType >::eta(), dqm::impl::MonitorElement::Fill(), edm::EventSetup::getData(), edm::EventSetup::getHandle(), HcalGeometry::getPosition(), CaloGeometry::getSubdetectorGeometry(), hcaldddRecToken_, HCalSrc_Token_, mps_fire::i, iEvent, edm::HandleBase::isValid(), dqmiolumiharvest::j, LogDebug, meCaloHcal, meCaloHcalE, meCaloHcalEta, meCaloHcalPhi, meCaloHcalToF, PV3DBase< T, PVType, FrameType >::phi(), HcalHitRelabeller::relabel(), sdHcalBrl, sdHcalEC, sdHcalFwd, sdHcalOut, AlCaHLTBitMon_QueryRunRegistry::string, subdetector, DetId::subdetId(), testNumber, validHcal, and verbosity.

Referenced by analyze().

1724  {
1725  std::string MsgLoggerCat = "GlobalHitsAnalyzer_fillHCal";
1726 
1727  TString eventout;
1728  if (verbosity > 0)
1729  eventout = "\nGathering info:";
1730 
1731  // access the calorimeter geometry
1732  const auto &theCaloGeometry = iSetup.getHandle(caloGeomToken_);
1733  if (!theCaloGeometry.isValid()) {
1734  edm::LogWarning(MsgLoggerCat) << "Unable to find CaloGeometryRecord in event!";
1735  return;
1736  }
1737  const CaloGeometry &theCalo(*theCaloGeometry);
1738 
1739  const HcalDDDRecConstants *hcons = &iSetup.getData(hcaldddRecToken_);
1740 
1741  // iterator to access containers
1742  edm::PCaloHitContainer::const_iterator itHit;
1743 
1745  // get HCal information
1747  // extract HCal container
1749  iEvent.getByToken(HCalSrc_Token_, HCalContainer);
1750  if (!HCalContainer.isValid()) {
1751  LogDebug(MsgLoggerCat) << "Unable to find HCalHits in event!";
1752  validHcal = false;
1753  }
1754 
1755  if (validHcal) {
1756  // cycle through container
1757  int i = 0, j = 0;
1758  for (itHit = HCalContainer->begin(); itHit != HCalContainer->end(); ++itHit) {
1759  ++i;
1760 
1761  // create a DetId from the detUnitId
1762  DetId theDetUnitId;
1763  unsigned int id_ = itHit->id();
1764  if (testNumber)
1765  theDetUnitId = HcalHitRelabeller::relabel(id_, hcons);
1766  else
1767  theDetUnitId = id_;
1768 
1769  int detector = theDetUnitId.det();
1770  int subdetector = theDetUnitId.subdetId();
1771 
1772  // check that expected detector is returned
1773  if ((detector == dHcal) && ((subdetector == sdHcalBrl) || (subdetector == sdHcalEC) ||
1774  (subdetector == sdHcalOut) || (subdetector == sdHcalFwd))) {
1775  // get the Cell geometry
1776  const HcalGeometry *theDet = dynamic_cast<const HcalGeometry *>(theCalo.getSubdetectorGeometry(theDetUnitId));
1777 
1778  if (!theDet) {
1779  edm::LogWarning(MsgLoggerCat) << "Unable to get HcalGeometry from HCalContainer for Hit " << i;
1780  continue;
1781  }
1782 
1783  ++j;
1784 
1785  // get the global position of the cell
1786  const GlobalPoint &globalposition = theDet->getPosition(theDetUnitId);
1787 
1788  if (meCaloHcalE[0])
1789  meCaloHcalE[0]->Fill(itHit->energy());
1790  if (meCaloHcalE[1])
1791  meCaloHcalE[1]->Fill(itHit->energy());
1792  if (meCaloHcalToF[0])
1793  meCaloHcalToF[0]->Fill(itHit->time());
1794  if (meCaloHcalToF[1])
1795  meCaloHcalToF[1]->Fill(itHit->time());
1796  if (meCaloHcalPhi)
1797  meCaloHcalPhi->Fill(globalposition.phi());
1798  if (meCaloHcalEta)
1799  meCaloHcalEta->Fill(globalposition.eta());
1800 
1801  } else {
1802  edm::LogWarning(MsgLoggerCat) << "HCal PCaloHit " << i << " is expected to be (det,subdet) = (" << dHcal << ","
1803  << sdHcalBrl << " || " << sdHcalEC << " || " << sdHcalOut << " || " << sdHcalFwd
1804  << "); value returned is: (" << detector << "," << subdetector << ")";
1805  continue;
1806  } // end detector type check
1807  } // end loop through HCal Hits
1808 
1809  if (verbosity > 1) {
1810  eventout += "\n Number of HCal Hits collected:............. ";
1811  eventout += j;
1812  }
1813 
1814  if (meCaloHcal[0])
1815  meCaloHcal[0]->Fill((float)j);
1816  if (meCaloHcal[1])
1817  meCaloHcal[1]->Fill((float)j);
1818  }
1819 
1820  if (verbosity > 0)
1821  edm::LogInfo(MsgLoggerCat) << eventout << "\n";
1822 
1823  return;
1824 }
edm::ESGetToken< CaloGeometry, CaloGeometryRecord > caloGeomToken_
T const & getData(const ESGetToken< T, R > &iToken) const noexcept(false)
Definition: EventSetup.h:119
static const int sdHcalOut
TString subdetector
MonitorElement * meCaloHcal[2]
Geom::Phi< T > phi() const
Definition: PV3DBase.h:66
edm::ESGetToken< HcalDDDRecConstants, HcalRecNumberingRecord > hcaldddRecToken_
T eta() const
Definition: PV3DBase.h:73
MonitorElement * meCaloHcalToF[2]
constexpr Detector det() const
get the detector field from this detid
Definition: DetId.h:46
void Fill(long long x)
int iEvent
Definition: GenABIO.cc:224
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector&#39;s numbering enum) ...
Definition: DetId.h:48
DetId relabel(const uint32_t testId) const
ESHandle< T > getHandle(const ESGetToken< T, R > &iToken) const
Definition: EventSetup.h:130
MonitorElement * meCaloHcalE[2]
Log< level::Info, false > LogInfo
Definition: DetId.h:17
static const int dHcal
static const int sdHcalFwd
static const int sdHcalBrl
bool isValid() const
Definition: HandleBase.h:70
GlobalPoint getPosition(const DetId &id) const
edm::EDGetTokenT< edm::PCaloHitContainer > HCalSrc_Token_
Log< level::Warning, false > LogWarning
MonitorElement * meCaloHcalPhi
MonitorElement * meCaloHcalEta
static const int sdHcalEC
#define LogDebug(id)

◆ fillMuon()

void GlobalHitsAnalyzer::fillMuon ( const edm::Event iEvent,
const edm::EventSetup iSetup 
)
private

Definition at line 1277 of file GlobalHitsAnalyzer.cc.

References cscGeomToken_, hgcalTestNeighbor_cfi::detector, dMuon, dtGeomToken_, PVValHelper::eta, dqm::impl::MonitorElement::Fill(), edm::EventSetup::getHandle(), mps_fire::i, RPCGeometry::idToDetUnit(), CSCGeometry::idToDetUnit(), iEvent, edm::HandleBase::isValid(), dqmiolumiharvest::j, DTGeometry::layer(), LogDebug, meMuon, meMuonCscToF, meMuonCscZ, meMuonDtR, meMuonDtToF, meMuonEta, meMuonPhi, meMuonRpcBR, meMuonRpcBToF, meMuonRpcFToF, meMuonRpcFZ, MuonCscSrc_Token_, MuonDtSrc_Token_, MuonRpcSrc_Token_, nMuonHits, perp(), phi, HLT_2023v12_cff::region, rpcGeomToken_, sdMuonCSC, sdMuonDT, sdMuonRPC, sdMuonRPCRgnBrl, sdMuonRPCRgnFwdn, sdMuonRPCRgnFwdp, AlCaHLTBitMon_QueryRunRegistry::string, subdetector, GeomDet::surface(), validMuonCSC, validMuonDt, validMuonRPC, verbosity, and z.

Referenced by analyze().

1277  {
1278  nMuonHits = 0;
1279  std::string MsgLoggerCat = "GlobalHitsAnalyzer_fillMuon";
1280 
1281  TString eventout;
1282  if (verbosity > 0)
1283  eventout = "\nGathering info:";
1284 
1285  // iterator to access containers
1286  edm::PSimHitContainer::const_iterator itHit;
1287 
1289  // access the CSC Muon
1291  // access the CSC Muon geometry
1292  const auto &theCSCGeometry = iSetup.getHandle(cscGeomToken_);
1293  if (!theCSCGeometry.isValid()) {
1294  edm::LogWarning(MsgLoggerCat) << "Unable to find MuonGeometryRecord for the CSCGeometry in event!";
1295  return;
1296  }
1297  const CSCGeometry &theCSCMuon(*theCSCGeometry);
1298 
1299  // get Muon CSC information
1300  edm::Handle<edm::PSimHitContainer> MuonCSCContainer;
1301  iEvent.getByToken(MuonCscSrc_Token_, MuonCSCContainer);
1302  if (!MuonCSCContainer.isValid()) {
1303  LogDebug(MsgLoggerCat) << "Unable to find MuonCSCHits in event!";
1304  validMuonCSC = false;
1305  }
1306 
1307  if (validMuonCSC) {
1308  // cycle through container
1309  int i = 0, j = 0;
1310  for (itHit = MuonCSCContainer->begin(); itHit != MuonCSCContainer->end(); ++itHit) {
1311  ++i;
1312 
1313  // create a DetId from the detUnitId
1314  DetId theDetUnitId(itHit->detUnitId());
1315  int detector = theDetUnitId.det();
1316  int subdetector = theDetUnitId.subdetId();
1317 
1318  // check that expected detector is returned
1319  if ((detector == dMuon) && (subdetector == sdMuonCSC)) {
1320  // get the GeomDetUnit from the geometry using theDetUnitID
1321  const GeomDetUnit *theDet = theCSCMuon.idToDetUnit(theDetUnitId);
1322 
1323  if (!theDet) {
1324  edm::LogWarning(MsgLoggerCat) << "Unable to get GeomDetUnit from theCSCMuon for hit " << i;
1325  continue;
1326  }
1327 
1328  ++j;
1329 
1330  // get the Surface of the hit (knows how to go from local <-> global)
1331  const BoundPlane &bSurface = theDet->surface();
1332 
1333  if (meMuonCscToF[0])
1334  meMuonCscToF[0]->Fill(itHit->tof());
1335  if (meMuonCscToF[1])
1336  meMuonCscToF[1]->Fill(itHit->tof());
1337  if (meMuonCscZ)
1338  meMuonCscZ->Fill(bSurface.toGlobal(itHit->localPosition()).z());
1339  if (meMuonPhi)
1340  meMuonPhi->Fill(bSurface.toGlobal(itHit->localPosition()).phi());
1341  if (meMuonEta)
1342  meMuonEta->Fill(bSurface.toGlobal(itHit->localPosition()).eta());
1343 
1344  } else {
1345  edm::LogWarning(MsgLoggerCat) << "MuonCsc PSimHit " << i << " is expected to be (det,subdet) = (" << dMuon
1346  << "," << sdMuonCSC << "); value returned is: (" << detector << "," << subdetector
1347  << ")";
1348  continue;
1349  } // end detector type check
1350  } // end loop through CSC Hits
1351 
1352  if (verbosity > 1) {
1353  eventout += "\n Number of CSC muon Hits collected:......... ";
1354  eventout += j;
1355  }
1356 
1357  nMuonHits += j;
1358  }
1359 
1361  // access the DT Muon
1363  // access the DT Muon geometry
1364  const auto &theDTGeometry = iSetup.getHandle(dtGeomToken_);
1365  if (!theDTGeometry.isValid()) {
1366  edm::LogWarning(MsgLoggerCat) << "Unable to find MuonGeometryRecord for the DTGeometry in event!";
1367  return;
1368  }
1369  const DTGeometry &theDTMuon(*theDTGeometry);
1370 
1371  // get Muon DT information
1372  edm::Handle<edm::PSimHitContainer> MuonDtContainer;
1373  iEvent.getByToken(MuonDtSrc_Token_, MuonDtContainer);
1374  if (!MuonDtContainer.isValid()) {
1375  LogDebug(MsgLoggerCat) << "Unable to find MuonDTHits in event!";
1376  validMuonDt = false;
1377  }
1378 
1379  if (validMuonDt) {
1380  // cycle through container
1381  int i = 0, j = 0;
1382  for (itHit = MuonDtContainer->begin(); itHit != MuonDtContainer->end(); ++itHit) {
1383  ++i;
1384 
1385  // create a DetId from the detUnitId
1386  DetId theDetUnitId(itHit->detUnitId());
1387  int detector = theDetUnitId.det();
1388  int subdetector = theDetUnitId.subdetId();
1389 
1390  // check that expected detector is returned
1391  if ((detector == dMuon) && (subdetector == sdMuonDT)) {
1392  // CSC uses wires and layers rather than the full detID
1393  // get the wireId
1394  DTWireId wireId(itHit->detUnitId());
1395 
1396  // get the DTLayer from the geometry using the wireID
1397  const DTLayer *theDet = theDTMuon.layer(wireId.layerId());
1398 
1399  if (!theDet) {
1400  edm::LogWarning(MsgLoggerCat) << "Unable to get GeomDetUnit from theDtMuon for hit " << i;
1401  continue;
1402  }
1403 
1404  ++j;
1405 
1406  // get the Surface of the hit (knows how to go from local <-> global)
1407  const BoundPlane &bSurface = theDet->surface();
1408 
1409  if (meMuonDtToF[0])
1410  meMuonDtToF[0]->Fill(itHit->tof());
1411  if (meMuonDtToF[1])
1412  meMuonDtToF[1]->Fill(itHit->tof());
1413  if (meMuonDtR)
1414  meMuonDtR->Fill(bSurface.toGlobal(itHit->localPosition()).perp());
1415  if (meMuonPhi)
1416  meMuonPhi->Fill(bSurface.toGlobal(itHit->localPosition()).phi());
1417  if (meMuonEta)
1418  meMuonEta->Fill(bSurface.toGlobal(itHit->localPosition()).eta());
1419 
1420  } else {
1421  edm::LogWarning(MsgLoggerCat) << "MuonDt PSimHit " << i << " is expected to be (det,subdet) = (" << dMuon << ","
1422  << sdMuonDT << "); value returned is: (" << detector << "," << subdetector << ")";
1423  continue;
1424  } // end detector type check
1425  } // end loop through DT Hits
1426 
1427  if (verbosity > 1) {
1428  eventout += "\n Number of DT muon Hits collected:.......... ";
1429  eventout += j;
1430  }
1431 
1432  nMuonHits += j;
1433  }
1434 
1435  // int RPCBrl = 0, RPCFwd = 0;
1437  // access the RPC Muon
1439  // access the RPC Muon geometry
1440  const auto &theRPCGeometry = iSetup.getHandle(rpcGeomToken_);
1441  if (!theRPCGeometry.isValid()) {
1442  edm::LogWarning(MsgLoggerCat) << "Unable to find MuonGeometryRecord for the RPCGeometry in event!";
1443  return;
1444  }
1445  const RPCGeometry &theRPCMuon(*theRPCGeometry);
1446 
1447  // get Muon RPC information
1448  edm::Handle<edm::PSimHitContainer> MuonRPCContainer;
1449  iEvent.getByToken(MuonRpcSrc_Token_, MuonRPCContainer);
1450  if (!MuonRPCContainer.isValid()) {
1451  LogDebug(MsgLoggerCat) << "Unable to find MuonRPCHits in event!";
1452  validMuonRPC = false;
1453  }
1454 
1455  if (validMuonRPC) {
1456  // cycle through container
1457  int i = 0, j = 0;
1458  int RPCBrl = 0, RPCFwd = 0;
1459  for (itHit = MuonRPCContainer->begin(); itHit != MuonRPCContainer->end(); ++itHit) {
1460  ++i;
1461 
1462  // create a DetID from the detUnitId
1463  DetId theDetUnitId(itHit->detUnitId());
1464  int detector = theDetUnitId.det();
1465  int subdetector = theDetUnitId.subdetId();
1466 
1467  // check that expected detector is returned
1468  if ((detector == dMuon) && (subdetector == sdMuonRPC)) {
1469  // get an RPCDetID from the detUnitID
1470  RPCDetId RPCId(itHit->detUnitId());
1471 
1472  // find the region of the RPC hit
1473  int region = RPCId.region();
1474 
1475  // get the GeomDetUnit from the geometry using the RPCDetId
1476  const GeomDetUnit *theDet = theRPCMuon.idToDetUnit(theDetUnitId);
1477 
1478  if (!theDet) {
1479  edm::LogWarning(MsgLoggerCat) << "Unable to get GeomDetUnit from theRPCMuon for hit " << i;
1480  continue;
1481  }
1482 
1483  ++j;
1484 
1485  // get the Surface of the hit (knows how to go from local <-> global)
1486  const BoundPlane &bSurface = theDet->surface();
1487 
1488  // gather necessary information
1489  if ((region == sdMuonRPCRgnFwdp) || (region == sdMuonRPCRgnFwdn)) {
1490  ++RPCFwd;
1491 
1492  if (meMuonRpcFToF[0])
1493  meMuonRpcFToF[0]->Fill(itHit->tof());
1494  if (meMuonRpcFToF[1])
1495  meMuonRpcFToF[1]->Fill(itHit->tof());
1496  if (meMuonRpcFZ)
1497  meMuonRpcFZ->Fill(bSurface.toGlobal(itHit->localPosition()).z());
1498  if (meMuonPhi)
1499  meMuonPhi->Fill(bSurface.toGlobal(itHit->localPosition()).phi());
1500  if (meMuonEta)
1501  meMuonEta->Fill(bSurface.toGlobal(itHit->localPosition()).eta());
1502 
1503  } else if (region == sdMuonRPCRgnBrl) {
1504  ++RPCBrl;
1505 
1506  if (meMuonRpcBToF[0])
1507  meMuonRpcBToF[0]->Fill(itHit->tof());
1508  if (meMuonRpcBToF[1])
1509  meMuonRpcBToF[1]->Fill(itHit->tof());
1510  if (meMuonRpcBR)
1511  meMuonRpcBR->Fill(bSurface.toGlobal(itHit->localPosition()).perp());
1512  if (meMuonPhi)
1513  meMuonPhi->Fill(bSurface.toGlobal(itHit->localPosition()).phi());
1514  if (meMuonEta)
1515  meMuonEta->Fill(bSurface.toGlobal(itHit->localPosition()).eta());
1516 
1517  } else {
1518  edm::LogWarning(MsgLoggerCat) << "Invalid region for RPC Muon hit" << i;
1519  continue;
1520  } // end check of region
1521  } else {
1522  edm::LogWarning(MsgLoggerCat) << "MuonRpc PSimHit " << i << " is expected to be (det,subdet) = (" << dMuon
1523  << "," << sdMuonRPC << "); value returned is: (" << detector << "," << subdetector
1524  << ")";
1525  continue;
1526  } // end detector type check
1527  } // end loop through RPC Hits
1528 
1529  if (verbosity > 1) {
1530  eventout += "\n Number of RPC muon Hits collected:......... ";
1531  eventout += j;
1532  eventout += "\n RPC Barrel muon Hits:............ ";
1533  eventout += RPCBrl;
1534  eventout += "\n RPC Forward muon Hits:........... ";
1535  eventout += RPCFwd;
1536  }
1537 
1538  nMuonHits += j;
1539  }
1540 
1541  if (meMuon[0])
1542  meMuon[0]->Fill((float)nMuonHits);
1543  if (meMuon[1])
1544  meMuon[1]->Fill((float)nMuonHits);
1545 
1546  if (verbosity > 0)
1547  edm::LogInfo(MsgLoggerCat) << eventout << "\n";
1548 
1549  return;
1550 }
static const int sdMuonRPCRgnFwdn
edm::ESGetToken< DTGeometry, MuonGeometryRecord > dtGeomToken_
MonitorElement * meMuonDtToF[2]
static const int sdMuonDT
TString subdetector
static const int sdMuonRPC
void Fill(long long x)
int iEvent
Definition: GenABIO.cc:224
MonitorElement * meMuonCscToF[2]
static const int sdMuonCSC
MonitorElement * meMuonRpcFZ
static const int sdMuonRPCRgnFwdp
static const int sdMuonRPCRgnBrl
ESHandle< T > getHandle(const ESGetToken< T, R > &iToken) const
Definition: EventSetup.h:130
T perp() const
Magnitude of transverse component.
MonitorElement * meMuonRpcBToF[2]
Log< level::Info, false > LogInfo
MonitorElement * meMuonCscZ
Definition: DetId.h:17
const Plane & surface() const
The nominal surface of the GeomDet.
Definition: GeomDet.h:37
edm::ESGetToken< CSCGeometry, MuonGeometryRecord > cscGeomToken_
edm::EDGetTokenT< edm::PSimHitContainer > MuonRpcSrc_Token_
edm::EDGetTokenT< edm::PSimHitContainer > MuonCscSrc_Token_
MonitorElement * meMuon[2]
MonitorElement * meMuonRpcFToF[2]
bool isValid() const
Definition: HandleBase.h:70
static const int dMuon
MonitorElement * meMuonEta
MonitorElement * meMuonDtR
Log< level::Warning, false > LogWarning
edm::ESGetToken< RPCGeometry, MuonGeometryRecord > rpcGeomToken_
MonitorElement * meMuonRpcBR
MonitorElement * meMuonPhi
edm::EDGetTokenT< edm::PSimHitContainer > MuonDtSrc_Token_
#define LogDebug(id)

◆ fillTrk()

void GlobalHitsAnalyzer::fillTrk ( const edm::Event iEvent,
const edm::EventSetup iSetup 
)
private

Definition at line 911 of file GlobalHitsAnalyzer.cc.

References hgcalTestNeighbor_cfi::detector, dTrk, PVValHelper::eta, dqm::impl::MonitorElement::Fill(), edm::EventSetup::getHandle(), mps_fire::i, TrackerGeometry::idToDetUnit(), iEvent, edm::HandleBase::isValid(), dqmiolumiharvest::j, LogDebug, meTrackerPx, meTrackerPxBR, meTrackerPxBToF, meTrackerPxEta, meTrackerPxFToF, meTrackerPxFZ, meTrackerPxPhi, meTrackerSi, meTrackerSiBR, meTrackerSiBToF, meTrackerSiEta, meTrackerSiFToF, meTrackerSiFZ, meTrackerSiPhi, nPxlHits, nSiHits, perp(), phi, PxlBrlHighSrc_Token_, PxlBrlLowSrc_Token_, PxlFwdHighSrc_Token_, PxlFwdLowSrc_Token_, sdPxlBrl, sdPxlFwd, sdSiTEC, sdSiTIB, sdSiTID, sdSiTOB, SiTECHighSrc_Token_, SiTECLowSrc_Token_, SiTIBHighSrc_Token_, SiTIBLowSrc_Token_, SiTIDHighSrc_Token_, SiTIDLowSrc_Token_, SiTOBHighSrc_Token_, SiTOBLowSrc_Token_, AlCaHLTBitMon_QueryRunRegistry::string, subdetector, GeomDet::surface(), tGeomToken_, validPxlBrlHigh, validPxlBrlLow, validPxlFwdHigh, validPxlFwdLow, validSiTECHigh, validSiTECLow, validSiTIBHigh, validSiTIBLow, validSiTIDHigh, validSiTIDLow, validSiTOBHigh, validSiTOBLow, verbosity, and z.

Referenced by analyze().

911  {
912  nPxlHits = 0;
913  std::string MsgLoggerCat = "GlobalHitsAnalyzer_fillTrk";
914 
915  TString eventout;
916  if (verbosity > 0)
917  eventout = "\nGathering info:";
918 
919  // access the tracker geometry
920  const auto &theTrackerGeometry = iSetup.getHandle(tGeomToken_);
921  if (!theTrackerGeometry.isValid()) {
922  edm::LogWarning(MsgLoggerCat) << "Unable to find TrackerDigiGeometryRecord in event!";
923  return;
924  }
925  const TrackerGeometry &theTracker(*theTrackerGeometry);
926 
927  // iterator to access containers
928  edm::PSimHitContainer::const_iterator itHit;
929 
931  // get Pixel Barrel information
933  edm::PSimHitContainer thePxlBrlHits;
934  // extract low container
935  edm::Handle<edm::PSimHitContainer> PxlBrlLowContainer;
936  iEvent.getByToken(PxlBrlLowSrc_Token_, PxlBrlLowContainer);
937  if (!PxlBrlLowContainer.isValid()) {
938  LogDebug(MsgLoggerCat) << "Unable to find TrackerHitsPixelBarrelLowTof in event!";
939  validPxlBrlLow = false;
940  }
941  // extract high container
942  edm::Handle<edm::PSimHitContainer> PxlBrlHighContainer;
943  iEvent.getByToken(PxlBrlHighSrc_Token_, PxlBrlHighContainer);
944  if (!PxlBrlHighContainer.isValid()) {
945  LogDebug(MsgLoggerCat) << "Unable to find TrackerHitsPixelBarrelHighTof in event!";
946  validPxlBrlHigh = false;
947  }
948  // place both containers into new container
949  if (validPxlBrlLow)
950  thePxlBrlHits.insert(thePxlBrlHits.end(), PxlBrlLowContainer->begin(), PxlBrlLowContainer->end());
951  if (validPxlBrlHigh)
952  thePxlBrlHits.insert(thePxlBrlHits.end(), PxlBrlHighContainer->begin(), PxlBrlHighContainer->end());
953 
954  // cycle through new container
955  int i = 0, j = 0;
956  for (itHit = thePxlBrlHits.begin(); itHit != thePxlBrlHits.end(); ++itHit) {
957  ++i;
958 
959  // create a DetId from the detUnitId
960  DetId theDetUnitId(itHit->detUnitId());
961  int detector = theDetUnitId.det();
962  int subdetector = theDetUnitId.subdetId();
963 
964  // check that expected detector is returned
965  if ((detector == dTrk) && (subdetector == sdPxlBrl)) {
966  // get the GeomDetUnit from the geometry using theDetUnitID
967  const GeomDetUnit *theDet = theTracker.idToDetUnit(theDetUnitId);
968 
969  if (!theDet) {
970  edm::LogWarning(MsgLoggerCat) << "Unable to get GeomDetUnit from PxlBrlHits for Hit " << i;
971  continue;
972  }
973 
974  ++j;
975 
976  // get the Surface of the hit (knows how to go from local <-> global)
977  const BoundPlane &bSurface = theDet->surface();
978 
979  if (meTrackerPxBToF)
980  meTrackerPxBToF->Fill(itHit->tof());
981  if (meTrackerPxBR)
982  meTrackerPxBR->Fill(bSurface.toGlobal(itHit->localPosition()).perp());
983  if (meTrackerPxPhi)
984  meTrackerPxPhi->Fill(bSurface.toGlobal(itHit->localPosition()).phi());
985  if (meTrackerPxEta)
986  meTrackerPxEta->Fill(bSurface.toGlobal(itHit->localPosition()).eta());
987 
988  } else {
989  edm::LogWarning(MsgLoggerCat) << "PxlBrl PSimHit " << i << " is expected to be (det,subdet) = (" << dTrk << ","
990  << sdPxlBrl << "); value returned is: (" << detector << "," << subdetector << ")";
991  continue;
992  } // end detector type check
993  } // end loop through PxlBrl Hits
994 
995  if (verbosity > 1) {
996  eventout += "\n Number of Pixel Barrel Hits collected:..... ";
997  eventout += j;
998  }
999 
1000  nPxlHits += j;
1001 
1003  // get Pixel Forward information
1005  edm::PSimHitContainer thePxlFwdHits;
1006  // extract low container
1007  edm::Handle<edm::PSimHitContainer> PxlFwdLowContainer;
1008  iEvent.getByToken(PxlFwdLowSrc_Token_, PxlFwdLowContainer);
1009  if (!PxlFwdLowContainer.isValid()) {
1010  LogDebug(MsgLoggerCat) << "Unable to find TrackerHitsPixelEndcapLowTof in event!";
1011  validPxlFwdLow = false;
1012  }
1013  // extract high container
1014  edm::Handle<edm::PSimHitContainer> PxlFwdHighContainer;
1015  iEvent.getByToken(PxlFwdHighSrc_Token_, PxlFwdHighContainer);
1016  if (!PxlFwdHighContainer.isValid()) {
1017  LogDebug("GlobalHitsAnalyzer_fillTrk") << "Unable to find TrackerHitsPixelEndcapHighTof in event!";
1018  validPxlFwdHigh = false;
1019  }
1020  // place both containers into new container
1021  if (validPxlFwdLow)
1022  thePxlFwdHits.insert(thePxlFwdHits.end(), PxlFwdLowContainer->begin(), PxlFwdLowContainer->end());
1023  if (validPxlFwdHigh)
1024  thePxlFwdHits.insert(thePxlFwdHits.end(), PxlFwdHighContainer->begin(), PxlFwdHighContainer->end());
1025 
1026  // cycle through new container
1027  i = 0;
1028  j = 0;
1029  for (itHit = thePxlFwdHits.begin(); itHit != thePxlFwdHits.end(); ++itHit) {
1030  ++i;
1031 
1032  // create a DetId from the detUnitId
1033  DetId theDetUnitId(itHit->detUnitId());
1034  int detector = theDetUnitId.det();
1035  int subdetector = theDetUnitId.subdetId();
1036 
1037  // check that expected detector is returned
1038  if ((detector == dTrk) && (subdetector == sdPxlFwd)) {
1039  // get the GeomDetUnit from the geometry using theDetUnitID
1040  const GeomDetUnit *theDet = theTracker.idToDetUnit(theDetUnitId);
1041 
1042  if (!theDet) {
1043  edm::LogWarning(MsgLoggerCat) << "Unable to get GeomDetUnit from PxlFwdHits for Hit " << i;
1044  ;
1045  continue;
1046  }
1047 
1048  ++j;
1049 
1050  // get the Surface of the hit (knows how to go from local <-> global)
1051  const BoundPlane &bSurface = theDet->surface();
1052 
1053  if (meTrackerPxFToF)
1054  meTrackerPxFToF->Fill(itHit->tof());
1055  if (meTrackerPxFZ)
1056  meTrackerPxFZ->Fill(bSurface.toGlobal(itHit->localPosition()).z());
1057  if (meTrackerPxPhi)
1058  meTrackerPxPhi->Fill(bSurface.toGlobal(itHit->localPosition()).phi());
1059  if (meTrackerPxEta)
1060  meTrackerPxEta->Fill(bSurface.toGlobal(itHit->localPosition()).eta());
1061 
1062  } else {
1063  edm::LogWarning(MsgLoggerCat) << "PxlFwd PSimHit " << i << " is expected to be (det,subdet) = (" << dTrk << ","
1064  << sdPxlFwd << "); value returned is: (" << detector << "," << subdetector << ")";
1065  continue;
1066  } // end detector type check
1067  } // end loop through PxlFwd Hits
1068 
1069  if (verbosity > 1) {
1070  eventout += "\n Number of Pixel Forward Hits collected:.... ";
1071  eventout += j;
1072  }
1073 
1074  nPxlHits += j;
1075 
1076  if (meTrackerPx[0])
1077  meTrackerPx[0]->Fill((float)nPxlHits);
1078  if (meTrackerPx[1])
1079  meTrackerPx[1]->Fill((float)nPxlHits);
1080 
1082  // get Silicon Barrel information
1084  nSiHits = 0;
1085  edm::PSimHitContainer theSiBrlHits;
1086  // extract TIB low container
1087  edm::Handle<edm::PSimHitContainer> SiTIBLowContainer;
1088  iEvent.getByToken(SiTIBLowSrc_Token_, SiTIBLowContainer);
1089  if (!SiTIBLowContainer.isValid()) {
1090  LogDebug(MsgLoggerCat) << "Unable to find TrackerHitsTIBLowTof in event!";
1091  validSiTIBLow = false;
1092  }
1093  // extract TIB high container
1094  edm::Handle<edm::PSimHitContainer> SiTIBHighContainer;
1095  iEvent.getByToken(SiTIBHighSrc_Token_, SiTIBHighContainer);
1096  if (!SiTIBHighContainer.isValid()) {
1097  LogDebug(MsgLoggerCat) << "Unable to find TrackerHitsTIBHighTof in event!";
1098  validSiTIBHigh = false;
1099  }
1100  // extract TOB low container
1101  edm::Handle<edm::PSimHitContainer> SiTOBLowContainer;
1102  iEvent.getByToken(SiTOBLowSrc_Token_, SiTOBLowContainer);
1103  if (!SiTOBLowContainer.isValid()) {
1104  LogDebug(MsgLoggerCat) << "Unable to find TrackerHitsTOBLowTof in event!";
1105  validSiTOBLow = false;
1106  }
1107  // extract TOB high container
1108  edm::Handle<edm::PSimHitContainer> SiTOBHighContainer;
1109  iEvent.getByToken(SiTOBHighSrc_Token_, SiTOBHighContainer);
1110  if (!SiTOBHighContainer.isValid()) {
1111  LogDebug(MsgLoggerCat) << "Unable to find TrackerHitsTOBHighTof in event!";
1112  validSiTOBHigh = false;
1113  }
1114  // place all containers into new container
1115  if (validSiTIBLow)
1116  theSiBrlHits.insert(theSiBrlHits.end(), SiTIBLowContainer->begin(), SiTIBLowContainer->end());
1117  if (validSiTIBHigh)
1118  theSiBrlHits.insert(theSiBrlHits.end(), SiTIBHighContainer->begin(), SiTIBHighContainer->end());
1119  if (validSiTOBLow)
1120  theSiBrlHits.insert(theSiBrlHits.end(), SiTOBLowContainer->begin(), SiTOBLowContainer->end());
1121  if (validSiTOBHigh)
1122  theSiBrlHits.insert(theSiBrlHits.end(), SiTOBHighContainer->begin(), SiTOBHighContainer->end());
1123 
1124  // cycle through new container
1125  i = 0;
1126  j = 0;
1127  for (itHit = theSiBrlHits.begin(); itHit != theSiBrlHits.end(); ++itHit) {
1128  ++i;
1129 
1130  // create a DetId from the detUnitId
1131  DetId theDetUnitId(itHit->detUnitId());
1132  int detector = theDetUnitId.det();
1133  int subdetector = theDetUnitId.subdetId();
1134 
1135  // check that expected detector is returned
1136  if ((detector == dTrk) && ((subdetector == sdSiTIB) || (subdetector == sdSiTOB))) {
1137  // get the GeomDetUnit from the geometry using theDetUnitID
1138  const GeomDetUnit *theDet = theTracker.idToDetUnit(theDetUnitId);
1139 
1140  if (!theDet) {
1141  edm::LogWarning(MsgLoggerCat) << "Unable to get GeomDetUnit from SiBrlHits for Hit " << i;
1142  continue;
1143  }
1144 
1145  ++j;
1146 
1147  // get the Surface of the hit (knows how to go from local <-> global)
1148  const BoundPlane &bSurface = theDet->surface();
1149 
1150  if (meTrackerSiBToF)
1151  meTrackerSiBToF->Fill(itHit->tof());
1152  if (meTrackerSiBR)
1153  meTrackerSiBR->Fill(bSurface.toGlobal(itHit->localPosition()).perp());
1154  if (meTrackerSiPhi)
1155  meTrackerSiPhi->Fill(bSurface.toGlobal(itHit->localPosition()).phi());
1156  if (meTrackerSiEta)
1157  meTrackerSiEta->Fill(bSurface.toGlobal(itHit->localPosition()).eta());
1158 
1159  } else {
1160  edm::LogWarning(MsgLoggerCat) << "SiBrl PSimHit " << i << " is expected to be (det,subdet) = (" << dTrk << ","
1161  << sdSiTIB << " || " << sdSiTOB << "); value returned is: (" << detector << ","
1162  << subdetector << ")";
1163  continue;
1164  } // end detector type check
1165  } // end loop through SiBrl Hits
1166 
1167  if (verbosity > 1) {
1168  eventout += "\n Number of Silicon Barrel Hits collected:... ";
1169  eventout += j;
1170  }
1171 
1172  nSiHits += j;
1173 
1175  // get Silicon Forward information
1177  edm::PSimHitContainer theSiFwdHits;
1178  // extract TID low container
1179  edm::Handle<edm::PSimHitContainer> SiTIDLowContainer;
1180  iEvent.getByToken(SiTIDLowSrc_Token_, SiTIDLowContainer);
1181  if (!SiTIDLowContainer.isValid()) {
1182  LogDebug(MsgLoggerCat) << "Unable to find TrackerHitsTIDLowTof in event!";
1183  validSiTIDLow = false;
1184  }
1185  // extract TID high container
1186  edm::Handle<edm::PSimHitContainer> SiTIDHighContainer;
1187  iEvent.getByToken(SiTIDHighSrc_Token_, SiTIDHighContainer);
1188  if (!SiTIDHighContainer.isValid()) {
1189  LogDebug("GlobalHitsAnalyzer_fillTrk") << "Unable to find TrackerHitsTIDHighTof in event!";
1190  validSiTIDHigh = false;
1191  }
1192  // extract TEC low container
1193  edm::Handle<edm::PSimHitContainer> SiTECLowContainer;
1194  iEvent.getByToken(SiTECLowSrc_Token_, SiTECLowContainer);
1195  if (!SiTECLowContainer.isValid()) {
1196  LogDebug(MsgLoggerCat) << "Unable to find TrackerHitsTECLowTof in event!";
1197  validSiTECLow = false;
1198  }
1199  // extract TEC high container
1200  edm::Handle<edm::PSimHitContainer> SiTECHighContainer;
1201  iEvent.getByToken(SiTECHighSrc_Token_, SiTECHighContainer);
1202  if (!SiTECHighContainer.isValid()) {
1203  LogDebug(MsgLoggerCat) << "Unable to find TrackerHitsTECHighTof in event!";
1204  validSiTECHigh = false;
1205  }
1206  // place all containers into new container
1207  if (validSiTIDLow)
1208  theSiFwdHits.insert(theSiFwdHits.end(), SiTIDLowContainer->begin(), SiTIDLowContainer->end());
1209  if (validSiTIDHigh)
1210  theSiFwdHits.insert(theSiFwdHits.end(), SiTIDHighContainer->begin(), SiTIDHighContainer->end());
1211  if (validSiTECLow)
1212  theSiFwdHits.insert(theSiFwdHits.end(), SiTECLowContainer->begin(), SiTECLowContainer->end());
1213  if (validSiTECHigh)
1214  theSiFwdHits.insert(theSiFwdHits.end(), SiTECHighContainer->begin(), SiTECHighContainer->end());
1215 
1216  // cycle through container
1217  i = 0;
1218  j = 0;
1219  for (itHit = theSiFwdHits.begin(); itHit != theSiFwdHits.end(); ++itHit) {
1220  ++i;
1221 
1222  // create a DetId from the detUnitId
1223  DetId theDetUnitId(itHit->detUnitId());
1224  int detector = theDetUnitId.det();
1225  int subdetector = theDetUnitId.subdetId();
1226 
1227  // check that expected detector is returned
1228  if ((detector == dTrk) && ((subdetector == sdSiTID) || (subdetector == sdSiTEC))) {
1229  // get the GeomDetUnit from the geometry using theDetUnitID
1230  const GeomDetUnit *theDet = theTracker.idToDetUnit(theDetUnitId);
1231 
1232  if (!theDet) {
1233  edm::LogWarning(MsgLoggerCat) << "Unable to get GeomDetUnit from SiFwdHits Hit " << i;
1234  return;
1235  }
1236 
1237  ++j;
1238 
1239  // get the Surface of the hit (knows how to go from local <-> global)
1240  const BoundPlane &bSurface = theDet->surface();
1241 
1242  if (meTrackerSiFToF)
1243  meTrackerSiFToF->Fill(itHit->tof());
1244  if (meTrackerSiFZ)
1245  meTrackerSiFZ->Fill(bSurface.toGlobal(itHit->localPosition()).z());
1246  if (meTrackerSiPhi)
1247  meTrackerSiPhi->Fill(bSurface.toGlobal(itHit->localPosition()).phi());
1248  if (meTrackerSiEta)
1249  meTrackerSiEta->Fill(bSurface.toGlobal(itHit->localPosition()).eta());
1250 
1251  } else {
1252  edm::LogWarning(MsgLoggerCat) << "SiFwd PSimHit " << i << " is expected to be (det,subdet) = (" << dTrk << ","
1253  << sdSiTOB << " || " << sdSiTEC << "); value returned is: (" << detector << ","
1254  << subdetector << ")";
1255  continue;
1256  } // end check detector type
1257  } // end loop through SiFwd Hits
1258 
1259  if (verbosity > 1) {
1260  eventout += "\n Number of Silicon Forward Hits collected:.. ";
1261  eventout += j;
1262  }
1263 
1264  nSiHits += j;
1265 
1266  if (meTrackerSi[0])
1267  meTrackerSi[0]->Fill((float)nSiHits);
1268  if (meTrackerSi[1])
1269  meTrackerSi[1]->Fill((float)nSiHits);
1270 
1271  if (verbosity > 0)
1272  edm::LogInfo(MsgLoggerCat) << eventout << "\n";
1273 
1274  return;
1275 }
MonitorElement * meTrackerSiPhi
edm::EDGetTokenT< edm::PSimHitContainer > SiTIDLowSrc_Token_
static const int dTrk
edm::EDGetTokenT< edm::PSimHitContainer > SiTECHighSrc_Token_
TString subdetector
static const int sdSiTID
MonitorElement * meTrackerPxPhi
edm::EDGetTokenT< edm::PSimHitContainer > SiTIDHighSrc_Token_
MonitorElement * meTrackerSiEta
MonitorElement * meTrackerSiBToF
MonitorElement * meTrackerSi[2]
edm::EDGetTokenT< edm::PSimHitContainer > SiTIBHighSrc_Token_
MonitorElement * meTrackerPxFZ
void Fill(long long x)
int iEvent
Definition: GenABIO.cc:224
static const int sdSiTIB
static const int sdPxlBrl
MonitorElement * meTrackerPxBR
MonitorElement * meTrackerPxBToF
edm::EDGetTokenT< edm::PSimHitContainer > SiTIBLowSrc_Token_
MonitorElement * meTrackerPx[2]
edm::EDGetTokenT< edm::PSimHitContainer > PxlBrlHighSrc_Token_
static const int sdSiTOB
ESHandle< T > getHandle(const ESGetToken< T, R > &iToken) const
Definition: EventSetup.h:130
T perp() const
Magnitude of transverse component.
edm::EDGetTokenT< edm::PSimHitContainer > PxlBrlLowSrc_Token_
Log< level::Info, false > LogInfo
Definition: DetId.h:17
edm::EDGetTokenT< edm::PSimHitContainer > SiTOBLowSrc_Token_
const Plane & surface() const
The nominal surface of the GeomDet.
Definition: GeomDet.h:37
edm::EDGetTokenT< edm::PSimHitContainer > PxlFwdLowSrc_Token_
MonitorElement * meTrackerSiFZ
edm::EDGetTokenT< edm::PSimHitContainer > SiTOBHighSrc_Token_
bool isValid() const
Definition: HandleBase.h:70
MonitorElement * meTrackerSiFToF
MonitorElement * meTrackerPxFToF
static const int sdSiTEC
std::vector< PSimHit > PSimHitContainer
edm::EDGetTokenT< edm::PSimHitContainer > PxlFwdHighSrc_Token_
static const int sdPxlFwd
Log< level::Warning, false > LogWarning
MonitorElement * meTrackerPxEta
edm::EDGetTokenT< edm::PSimHitContainer > SiTECLowSrc_Token_
edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord > tGeomToken_
MonitorElement * meTrackerSiBR
#define LogDebug(id)

Member Data Documentation

◆ caloGeomToken_

edm::ESGetToken<CaloGeometry, CaloGeometryRecord> GlobalHitsAnalyzer::caloGeomToken_
private

Definition at line 151 of file GlobalHitsAnalyzer.h.

Referenced by fillECal(), and fillHCal().

◆ count

unsigned int GlobalHitsAnalyzer::count
private

Definition at line 255 of file GlobalHitsAnalyzer.h.

Referenced by analyze().

◆ cscGeomToken_

edm::ESGetToken<CSCGeometry, MuonGeometryRecord> GlobalHitsAnalyzer::cscGeomToken_
private

Definition at line 148 of file GlobalHitsAnalyzer.h.

Referenced by fillMuon().

◆ dtGeomToken_

edm::ESGetToken<DTGeometry, MuonGeometryRecord> GlobalHitsAnalyzer::dtGeomToken_
private

Definition at line 149 of file GlobalHitsAnalyzer.h.

Referenced by fillMuon().

◆ ECalEBSrc_

edm::InputTag GlobalHitsAnalyzer::ECalEBSrc_
private

Definition at line 161 of file GlobalHitsAnalyzer.h.

Referenced by GlobalHitsAnalyzer().

◆ ECalEBSrc_Token_

edm::EDGetTokenT<edm::PCaloHitContainer> GlobalHitsAnalyzer::ECalEBSrc_Token_
private

Definition at line 163 of file GlobalHitsAnalyzer.h.

Referenced by fillECal(), and GlobalHitsAnalyzer().

◆ ECalEESrc_

edm::InputTag GlobalHitsAnalyzer::ECalEESrc_
private

Definition at line 162 of file GlobalHitsAnalyzer.h.

Referenced by GlobalHitsAnalyzer().

◆ ECalEESrc_Token_

edm::EDGetTokenT<edm::PCaloHitContainer> GlobalHitsAnalyzer::ECalEESrc_Token_
private

Definition at line 164 of file GlobalHitsAnalyzer.h.

Referenced by fillECal(), and GlobalHitsAnalyzer().

◆ ECalESSrc_

edm::InputTag GlobalHitsAnalyzer::ECalESSrc_
private

Definition at line 172 of file GlobalHitsAnalyzer.h.

Referenced by GlobalHitsAnalyzer().

◆ ECalESSrc_Token_

edm::EDGetTokenT<edm::PCaloHitContainer> GlobalHitsAnalyzer::ECalESSrc_Token_
private

Definition at line 173 of file GlobalHitsAnalyzer.h.

Referenced by fillECal(), and GlobalHitsAnalyzer().

◆ fName

std::string GlobalHitsAnalyzer::fName
private

Definition at line 95 of file GlobalHitsAnalyzer.h.

Referenced by GlobalHitsAnalyzer().

◆ frequency

int GlobalHitsAnalyzer::frequency
private

Definition at line 97 of file GlobalHitsAnalyzer.h.

Referenced by analyze(), and GlobalHitsAnalyzer().

◆ G4TrkSrc_

edm::InputTag GlobalHitsAnalyzer::G4TrkSrc_
private

Definition at line 143 of file GlobalHitsAnalyzer.h.

◆ G4TrkSrc_Token_

edm::EDGetTokenT<edm::SimTrackContainer> GlobalHitsAnalyzer::G4TrkSrc_Token_
private

Definition at line 145 of file GlobalHitsAnalyzer.h.

Referenced by fillG4MC().

◆ G4VtxSrc_

edm::InputTag GlobalHitsAnalyzer::G4VtxSrc_
private

Definition at line 142 of file GlobalHitsAnalyzer.h.

◆ G4VtxSrc_Token_

edm::EDGetTokenT<edm::SimVertexContainer> GlobalHitsAnalyzer::G4VtxSrc_Token_
private

Definition at line 144 of file GlobalHitsAnalyzer.h.

Referenced by fillG4MC().

◆ getAllProvenances

bool GlobalHitsAnalyzer::getAllProvenances
private

Definition at line 100 of file GlobalHitsAnalyzer.h.

Referenced by analyze(), and GlobalHitsAnalyzer().

◆ hcaldddRecToken_

edm::ESGetToken<HcalDDDRecConstants, HcalRecNumberingRecord> GlobalHitsAnalyzer::hcaldddRecToken_
private

Definition at line 152 of file GlobalHitsAnalyzer.h.

Referenced by fillHCal().

◆ HCalSrc_

edm::InputTag GlobalHitsAnalyzer::HCalSrc_
private

Definition at line 182 of file GlobalHitsAnalyzer.h.

Referenced by GlobalHitsAnalyzer().

◆ HCalSrc_Token_

edm::EDGetTokenT<edm::PCaloHitContainer> GlobalHitsAnalyzer::HCalSrc_Token_
private

Definition at line 183 of file GlobalHitsAnalyzer.h.

Referenced by fillHCal(), and GlobalHitsAnalyzer().

◆ label

std::string GlobalHitsAnalyzer::label
private

Definition at line 99 of file GlobalHitsAnalyzer.h.

◆ meCaloEcal

MonitorElement* GlobalHitsAnalyzer::meCaloEcal[2]
private

Definition at line 156 of file GlobalHitsAnalyzer.h.

Referenced by bookHistograms(), fillECal(), and GlobalHitsAnalyzer().

◆ meCaloEcalE

MonitorElement* GlobalHitsAnalyzer::meCaloEcalE[2]
private

Definition at line 157 of file GlobalHitsAnalyzer.h.

Referenced by bookHistograms(), fillECal(), and GlobalHitsAnalyzer().

◆ meCaloEcalEta

MonitorElement* GlobalHitsAnalyzer::meCaloEcalEta
private

Definition at line 160 of file GlobalHitsAnalyzer.h.

Referenced by bookHistograms(), fillECal(), and GlobalHitsAnalyzer().

◆ meCaloEcalPhi

MonitorElement* GlobalHitsAnalyzer::meCaloEcalPhi
private

Definition at line 159 of file GlobalHitsAnalyzer.h.

Referenced by bookHistograms(), fillECal(), and GlobalHitsAnalyzer().

◆ meCaloEcalToF

MonitorElement* GlobalHitsAnalyzer::meCaloEcalToF[2]
private

Definition at line 158 of file GlobalHitsAnalyzer.h.

Referenced by bookHistograms(), fillECal(), and GlobalHitsAnalyzer().

◆ meCaloHcal

MonitorElement* GlobalHitsAnalyzer::meCaloHcal[2]
private

Definition at line 177 of file GlobalHitsAnalyzer.h.

Referenced by bookHistograms(), fillHCal(), and GlobalHitsAnalyzer().

◆ meCaloHcalE

MonitorElement* GlobalHitsAnalyzer::meCaloHcalE[2]
private

Definition at line 178 of file GlobalHitsAnalyzer.h.

Referenced by bookHistograms(), fillHCal(), and GlobalHitsAnalyzer().

◆ meCaloHcalEta

MonitorElement* GlobalHitsAnalyzer::meCaloHcalEta
private

Definition at line 181 of file GlobalHitsAnalyzer.h.

Referenced by bookHistograms(), fillHCal(), and GlobalHitsAnalyzer().

◆ meCaloHcalPhi

MonitorElement* GlobalHitsAnalyzer::meCaloHcalPhi
private

Definition at line 180 of file GlobalHitsAnalyzer.h.

Referenced by bookHistograms(), fillHCal(), and GlobalHitsAnalyzer().

◆ meCaloHcalToF

MonitorElement* GlobalHitsAnalyzer::meCaloHcalToF[2]
private

Definition at line 179 of file GlobalHitsAnalyzer.h.

Referenced by bookHistograms(), fillHCal(), and GlobalHitsAnalyzer().

◆ meCaloPreSh

MonitorElement* GlobalHitsAnalyzer::meCaloPreSh[2]
private

Definition at line 167 of file GlobalHitsAnalyzer.h.

Referenced by bookHistograms(), fillECal(), and GlobalHitsAnalyzer().

◆ meCaloPreShE

MonitorElement* GlobalHitsAnalyzer::meCaloPreShE[2]
private

Definition at line 168 of file GlobalHitsAnalyzer.h.

Referenced by bookHistograms(), fillECal(), and GlobalHitsAnalyzer().

◆ meCaloPreShEta

MonitorElement* GlobalHitsAnalyzer::meCaloPreShEta
private

Definition at line 171 of file GlobalHitsAnalyzer.h.

Referenced by bookHistograms(), fillECal(), and GlobalHitsAnalyzer().

◆ meCaloPreShPhi

MonitorElement* GlobalHitsAnalyzer::meCaloPreShPhi
private

Definition at line 170 of file GlobalHitsAnalyzer.h.

Referenced by bookHistograms(), fillECal(), and GlobalHitsAnalyzer().

◆ meCaloPreShToF

MonitorElement* GlobalHitsAnalyzer::meCaloPreShToF[2]
private

Definition at line 169 of file GlobalHitsAnalyzer.h.

Referenced by bookHistograms(), fillECal(), and GlobalHitsAnalyzer().

◆ meGeantTrkE

MonitorElement* GlobalHitsAnalyzer::meGeantTrkE
private

Definition at line 135 of file GlobalHitsAnalyzer.h.

Referenced by bookHistograms(), fillG4MC(), and GlobalHitsAnalyzer().

◆ meGeantTrkPt

MonitorElement* GlobalHitsAnalyzer::meGeantTrkPt
private

Definition at line 134 of file GlobalHitsAnalyzer.h.

Referenced by bookHistograms(), fillG4MC(), and GlobalHitsAnalyzer().

◆ meGeantVtxEta

MonitorElement* GlobalHitsAnalyzer::meGeantVtxEta
private

Definition at line 136 of file GlobalHitsAnalyzer.h.

Referenced by bookHistograms(), fillG4MC(), and GlobalHitsAnalyzer().

◆ meGeantVtxMulti

MonitorElement* GlobalHitsAnalyzer::meGeantVtxMulti
private

Definition at line 139 of file GlobalHitsAnalyzer.h.

Referenced by bookHistograms(), fillG4MC(), and GlobalHitsAnalyzer().

◆ meGeantVtxPhi

MonitorElement* GlobalHitsAnalyzer::meGeantVtxPhi
private

Definition at line 137 of file GlobalHitsAnalyzer.h.

Referenced by bookHistograms(), fillG4MC(), and GlobalHitsAnalyzer().

◆ meGeantVtxRad

MonitorElement* GlobalHitsAnalyzer::meGeantVtxRad[2]
private

Definition at line 138 of file GlobalHitsAnalyzer.h.

Referenced by bookHistograms(), fillG4MC(), and GlobalHitsAnalyzer().

◆ meGeantVtxX

MonitorElement* GlobalHitsAnalyzer::meGeantVtxX[2]
private

Definition at line 130 of file GlobalHitsAnalyzer.h.

Referenced by bookHistograms(), fillG4MC(), and GlobalHitsAnalyzer().

◆ meGeantVtxY

MonitorElement* GlobalHitsAnalyzer::meGeantVtxY[2]
private

Definition at line 131 of file GlobalHitsAnalyzer.h.

Referenced by bookHistograms(), fillG4MC(), and GlobalHitsAnalyzer().

◆ meGeantVtxZ

MonitorElement* GlobalHitsAnalyzer::meGeantVtxZ[2]
private

Definition at line 132 of file GlobalHitsAnalyzer.h.

Referenced by bookHistograms(), fillG4MC(), and GlobalHitsAnalyzer().

◆ meMCG4Trk

MonitorElement* GlobalHitsAnalyzer::meMCG4Trk[2]
private

Definition at line 133 of file GlobalHitsAnalyzer.h.

Referenced by bookHistograms(), fillG4MC(), and GlobalHitsAnalyzer().

◆ meMCG4Vtx

MonitorElement* GlobalHitsAnalyzer::meMCG4Vtx[2]
private

Definition at line 129 of file GlobalHitsAnalyzer.h.

Referenced by bookHistograms(), fillG4MC(), and GlobalHitsAnalyzer().

◆ meMCRGP

MonitorElement* GlobalHitsAnalyzer::meMCRGP[2]
private

Definition at line 128 of file GlobalHitsAnalyzer.h.

Referenced by bookHistograms(), fillG4MC(), and GlobalHitsAnalyzer().

◆ meMuon

MonitorElement* GlobalHitsAnalyzer::meMuon[2]
private

Definition at line 231 of file GlobalHitsAnalyzer.h.

Referenced by bookHistograms(), fillMuon(), and GlobalHitsAnalyzer().

◆ meMuonCscToF

MonitorElement* GlobalHitsAnalyzer::meMuonCscToF[2]
private

Definition at line 242 of file GlobalHitsAnalyzer.h.

Referenced by bookHistograms(), fillMuon(), and GlobalHitsAnalyzer().

◆ meMuonCscZ

MonitorElement* GlobalHitsAnalyzer::meMuonCscZ
private

Definition at line 243 of file GlobalHitsAnalyzer.h.

Referenced by bookHistograms(), fillMuon(), and GlobalHitsAnalyzer().

◆ meMuonDtR

MonitorElement* GlobalHitsAnalyzer::meMuonDtR
private

Definition at line 238 of file GlobalHitsAnalyzer.h.

Referenced by bookHistograms(), fillMuon(), and GlobalHitsAnalyzer().

◆ meMuonDtToF

MonitorElement* GlobalHitsAnalyzer::meMuonDtToF[2]
private

Definition at line 237 of file GlobalHitsAnalyzer.h.

Referenced by bookHistograms(), fillMuon(), and GlobalHitsAnalyzer().

◆ meMuonEta

MonitorElement* GlobalHitsAnalyzer::meMuonEta
private

Definition at line 233 of file GlobalHitsAnalyzer.h.

Referenced by bookHistograms(), fillMuon(), and GlobalHitsAnalyzer().

◆ meMuonPhi

MonitorElement* GlobalHitsAnalyzer::meMuonPhi
private

Definition at line 232 of file GlobalHitsAnalyzer.h.

Referenced by bookHistograms(), fillMuon(), and GlobalHitsAnalyzer().

◆ meMuonRpcBR

MonitorElement* GlobalHitsAnalyzer::meMuonRpcBR
private

Definition at line 250 of file GlobalHitsAnalyzer.h.

Referenced by bookHistograms(), fillMuon(), and GlobalHitsAnalyzer().

◆ meMuonRpcBToF

MonitorElement* GlobalHitsAnalyzer::meMuonRpcBToF[2]
private

Definition at line 249 of file GlobalHitsAnalyzer.h.

Referenced by bookHistograms(), fillMuon(), and GlobalHitsAnalyzer().

◆ meMuonRpcFToF

MonitorElement* GlobalHitsAnalyzer::meMuonRpcFToF[2]
private

Definition at line 247 of file GlobalHitsAnalyzer.h.

Referenced by bookHistograms(), fillMuon(), and GlobalHitsAnalyzer().

◆ meMuonRpcFZ

MonitorElement* GlobalHitsAnalyzer::meMuonRpcFZ
private

Definition at line 248 of file GlobalHitsAnalyzer.h.

Referenced by bookHistograms(), fillMuon(), and GlobalHitsAnalyzer().

◆ meTrackerPx

MonitorElement* GlobalHitsAnalyzer::meTrackerPx[2]
private

Definition at line 188 of file GlobalHitsAnalyzer.h.

Referenced by bookHistograms(), fillTrk(), and GlobalHitsAnalyzer().

◆ meTrackerPxBR

MonitorElement* GlobalHitsAnalyzer::meTrackerPxBR
private

Definition at line 192 of file GlobalHitsAnalyzer.h.

Referenced by bookHistograms(), fillTrk(), and GlobalHitsAnalyzer().

◆ meTrackerPxBToF

MonitorElement* GlobalHitsAnalyzer::meTrackerPxBToF
private

Definition at line 191 of file GlobalHitsAnalyzer.h.

Referenced by bookHistograms(), fillTrk(), and GlobalHitsAnalyzer().

◆ meTrackerPxEta

MonitorElement* GlobalHitsAnalyzer::meTrackerPxEta
private

Definition at line 190 of file GlobalHitsAnalyzer.h.

Referenced by bookHistograms(), fillTrk(), and GlobalHitsAnalyzer().

◆ meTrackerPxFToF

MonitorElement* GlobalHitsAnalyzer::meTrackerPxFToF
private

Definition at line 193 of file GlobalHitsAnalyzer.h.

Referenced by bookHistograms(), fillTrk(), and GlobalHitsAnalyzer().

◆ meTrackerPxFZ

MonitorElement* GlobalHitsAnalyzer::meTrackerPxFZ
private

Definition at line 194 of file GlobalHitsAnalyzer.h.

Referenced by bookHistograms(), fillTrk(), and GlobalHitsAnalyzer().

◆ meTrackerPxPhi

MonitorElement* GlobalHitsAnalyzer::meTrackerPxPhi
private

Definition at line 189 of file GlobalHitsAnalyzer.h.

Referenced by bookHistograms(), fillTrk(), and GlobalHitsAnalyzer().

◆ meTrackerSi

MonitorElement* GlobalHitsAnalyzer::meTrackerSi[2]
private

Definition at line 206 of file GlobalHitsAnalyzer.h.

Referenced by bookHistograms(), fillTrk(), and GlobalHitsAnalyzer().

◆ meTrackerSiBR

MonitorElement* GlobalHitsAnalyzer::meTrackerSiBR
private

Definition at line 210 of file GlobalHitsAnalyzer.h.

Referenced by bookHistograms(), fillTrk(), and GlobalHitsAnalyzer().

◆ meTrackerSiBToF

MonitorElement* GlobalHitsAnalyzer::meTrackerSiBToF
private

Definition at line 209 of file GlobalHitsAnalyzer.h.

Referenced by bookHistograms(), fillTrk(), and GlobalHitsAnalyzer().

◆ meTrackerSiEta

MonitorElement* GlobalHitsAnalyzer::meTrackerSiEta
private

Definition at line 208 of file GlobalHitsAnalyzer.h.

Referenced by bookHistograms(), fillTrk(), and GlobalHitsAnalyzer().

◆ meTrackerSiFToF

MonitorElement* GlobalHitsAnalyzer::meTrackerSiFToF
private

Definition at line 211 of file GlobalHitsAnalyzer.h.

Referenced by bookHistograms(), fillTrk(), and GlobalHitsAnalyzer().

◆ meTrackerSiFZ

MonitorElement* GlobalHitsAnalyzer::meTrackerSiFZ
private

Definition at line 212 of file GlobalHitsAnalyzer.h.

Referenced by bookHistograms(), fillTrk(), and GlobalHitsAnalyzer().

◆ meTrackerSiPhi

MonitorElement* GlobalHitsAnalyzer::meTrackerSiPhi
private

Definition at line 207 of file GlobalHitsAnalyzer.h.

Referenced by bookHistograms(), fillTrk(), and GlobalHitsAnalyzer().

◆ MuonCscSrc_

edm::InputTag GlobalHitsAnalyzer::MuonCscSrc_
private

Definition at line 244 of file GlobalHitsAnalyzer.h.

Referenced by GlobalHitsAnalyzer().

◆ MuonCscSrc_Token_

edm::EDGetTokenT<edm::PSimHitContainer> GlobalHitsAnalyzer::MuonCscSrc_Token_
private

Definition at line 245 of file GlobalHitsAnalyzer.h.

Referenced by fillMuon(), and GlobalHitsAnalyzer().

◆ MuonDtSrc_

edm::InputTag GlobalHitsAnalyzer::MuonDtSrc_
private

Definition at line 239 of file GlobalHitsAnalyzer.h.

Referenced by GlobalHitsAnalyzer().

◆ MuonDtSrc_Token_

edm::EDGetTokenT<edm::PSimHitContainer> GlobalHitsAnalyzer::MuonDtSrc_Token_
private

Definition at line 240 of file GlobalHitsAnalyzer.h.

Referenced by fillMuon(), and GlobalHitsAnalyzer().

◆ MuonRpcSrc_

edm::InputTag GlobalHitsAnalyzer::MuonRpcSrc_
private

Definition at line 251 of file GlobalHitsAnalyzer.h.

Referenced by GlobalHitsAnalyzer().

◆ MuonRpcSrc_Token_

edm::EDGetTokenT<edm::PSimHitContainer> GlobalHitsAnalyzer::MuonRpcSrc_Token_
private

Definition at line 252 of file GlobalHitsAnalyzer.h.

Referenced by fillMuon(), and GlobalHitsAnalyzer().

◆ nMuonHits

int GlobalHitsAnalyzer::nMuonHits
private

Definition at line 234 of file GlobalHitsAnalyzer.h.

Referenced by fillMuon().

◆ nPxlHits

int GlobalHitsAnalyzer::nPxlHits
private

Definition at line 187 of file GlobalHitsAnalyzer.h.

Referenced by fillTrk().

◆ nRawGenPart

int GlobalHitsAnalyzer::nRawGenPart
private

Definition at line 140 of file GlobalHitsAnalyzer.h.

Referenced by fillG4MC().

◆ nSiHits

int GlobalHitsAnalyzer::nSiHits
private

Definition at line 205 of file GlobalHitsAnalyzer.h.

Referenced by fillTrk().

◆ printProvenanceInfo

bool GlobalHitsAnalyzer::printProvenanceInfo
private

Definition at line 101 of file GlobalHitsAnalyzer.h.

Referenced by analyze(), and GlobalHitsAnalyzer().

◆ PxlBrlHighSrc_

edm::InputTag GlobalHitsAnalyzer::PxlBrlHighSrc_
private

Definition at line 196 of file GlobalHitsAnalyzer.h.

Referenced by GlobalHitsAnalyzer().

◆ PxlBrlHighSrc_Token_

edm::EDGetTokenT<edm::PSimHitContainer> GlobalHitsAnalyzer::PxlBrlHighSrc_Token_
private

Definition at line 200 of file GlobalHitsAnalyzer.h.

Referenced by fillTrk(), and GlobalHitsAnalyzer().

◆ PxlBrlLowSrc_

edm::InputTag GlobalHitsAnalyzer::PxlBrlLowSrc_
private

Definition at line 195 of file GlobalHitsAnalyzer.h.

Referenced by GlobalHitsAnalyzer().

◆ PxlBrlLowSrc_Token_

edm::EDGetTokenT<edm::PSimHitContainer> GlobalHitsAnalyzer::PxlBrlLowSrc_Token_
private

Definition at line 199 of file GlobalHitsAnalyzer.h.

Referenced by fillTrk(), and GlobalHitsAnalyzer().

◆ PxlFwdHighSrc_

edm::InputTag GlobalHitsAnalyzer::PxlFwdHighSrc_
private

Definition at line 198 of file GlobalHitsAnalyzer.h.

Referenced by GlobalHitsAnalyzer().

◆ PxlFwdHighSrc_Token_

edm::EDGetTokenT<edm::PSimHitContainer> GlobalHitsAnalyzer::PxlFwdHighSrc_Token_
private

Definition at line 202 of file GlobalHitsAnalyzer.h.

Referenced by fillTrk(), and GlobalHitsAnalyzer().

◆ PxlFwdLowSrc_

edm::InputTag GlobalHitsAnalyzer::PxlFwdLowSrc_
private

Definition at line 197 of file GlobalHitsAnalyzer.h.

Referenced by GlobalHitsAnalyzer().

◆ PxlFwdLowSrc_Token_

edm::EDGetTokenT<edm::PSimHitContainer> GlobalHitsAnalyzer::PxlFwdLowSrc_Token_
private

Definition at line 201 of file GlobalHitsAnalyzer.h.

Referenced by fillTrk(), and GlobalHitsAnalyzer().

◆ rpcGeomToken_

edm::ESGetToken<RPCGeometry, MuonGeometryRecord> GlobalHitsAnalyzer::rpcGeomToken_
private

Definition at line 150 of file GlobalHitsAnalyzer.h.

Referenced by fillMuon().

◆ SiTECHighSrc_

edm::InputTag GlobalHitsAnalyzer::SiTECHighSrc_
private

Definition at line 220 of file GlobalHitsAnalyzer.h.

Referenced by GlobalHitsAnalyzer().

◆ SiTECHighSrc_Token_

edm::EDGetTokenT<edm::PSimHitContainer> GlobalHitsAnalyzer::SiTECHighSrc_Token_
private

Definition at line 228 of file GlobalHitsAnalyzer.h.

Referenced by fillTrk(), and GlobalHitsAnalyzer().

◆ SiTECLowSrc_

edm::InputTag GlobalHitsAnalyzer::SiTECLowSrc_
private

Definition at line 219 of file GlobalHitsAnalyzer.h.

Referenced by GlobalHitsAnalyzer().

◆ SiTECLowSrc_Token_

edm::EDGetTokenT<edm::PSimHitContainer> GlobalHitsAnalyzer::SiTECLowSrc_Token_
private

Definition at line 227 of file GlobalHitsAnalyzer.h.

Referenced by fillTrk(), and GlobalHitsAnalyzer().

◆ SiTIBHighSrc_

edm::InputTag GlobalHitsAnalyzer::SiTIBHighSrc_
private

Definition at line 214 of file GlobalHitsAnalyzer.h.

Referenced by GlobalHitsAnalyzer().

◆ SiTIBHighSrc_Token_

edm::EDGetTokenT<edm::PSimHitContainer> GlobalHitsAnalyzer::SiTIBHighSrc_Token_
private

Definition at line 222 of file GlobalHitsAnalyzer.h.

Referenced by fillTrk(), and GlobalHitsAnalyzer().

◆ SiTIBLowSrc_

edm::InputTag GlobalHitsAnalyzer::SiTIBLowSrc_
private

Definition at line 213 of file GlobalHitsAnalyzer.h.

Referenced by GlobalHitsAnalyzer().

◆ SiTIBLowSrc_Token_

edm::EDGetTokenT<edm::PSimHitContainer> GlobalHitsAnalyzer::SiTIBLowSrc_Token_
private

Definition at line 221 of file GlobalHitsAnalyzer.h.

Referenced by fillTrk(), and GlobalHitsAnalyzer().

◆ SiTIDHighSrc_

edm::InputTag GlobalHitsAnalyzer::SiTIDHighSrc_
private

Definition at line 218 of file GlobalHitsAnalyzer.h.

Referenced by GlobalHitsAnalyzer().

◆ SiTIDHighSrc_Token_

edm::EDGetTokenT<edm::PSimHitContainer> GlobalHitsAnalyzer::SiTIDHighSrc_Token_
private

Definition at line 226 of file GlobalHitsAnalyzer.h.

Referenced by fillTrk(), and GlobalHitsAnalyzer().

◆ SiTIDLowSrc_

edm::InputTag GlobalHitsAnalyzer::SiTIDLowSrc_
private

Definition at line 217 of file GlobalHitsAnalyzer.h.

Referenced by GlobalHitsAnalyzer().

◆ SiTIDLowSrc_Token_

edm::EDGetTokenT<edm::PSimHitContainer> GlobalHitsAnalyzer::SiTIDLowSrc_Token_
private

Definition at line 225 of file GlobalHitsAnalyzer.h.

Referenced by fillTrk(), and GlobalHitsAnalyzer().

◆ SiTOBHighSrc_

edm::InputTag GlobalHitsAnalyzer::SiTOBHighSrc_
private

Definition at line 216 of file GlobalHitsAnalyzer.h.

Referenced by GlobalHitsAnalyzer().

◆ SiTOBHighSrc_Token_

edm::EDGetTokenT<edm::PSimHitContainer> GlobalHitsAnalyzer::SiTOBHighSrc_Token_
private

Definition at line 224 of file GlobalHitsAnalyzer.h.

Referenced by fillTrk(), and GlobalHitsAnalyzer().

◆ SiTOBLowSrc_

edm::InputTag GlobalHitsAnalyzer::SiTOBLowSrc_
private

Definition at line 215 of file GlobalHitsAnalyzer.h.

Referenced by GlobalHitsAnalyzer().

◆ SiTOBLowSrc_Token_

edm::EDGetTokenT<edm::PSimHitContainer> GlobalHitsAnalyzer::SiTOBLowSrc_Token_
private

Definition at line 223 of file GlobalHitsAnalyzer.h.

Referenced by fillTrk(), and GlobalHitsAnalyzer().

◆ testNumber

bool GlobalHitsAnalyzer::testNumber
private

Definition at line 102 of file GlobalHitsAnalyzer.h.

Referenced by fillHCal(), and GlobalHitsAnalyzer().

◆ tGeomToken_

edm::ESGetToken<TrackerGeometry, TrackerDigiGeometryRecord> GlobalHitsAnalyzer::tGeomToken_
private

Definition at line 147 of file GlobalHitsAnalyzer.h.

Referenced by fillTrk().

◆ validEB

bool GlobalHitsAnalyzer::validEB
private

Definition at line 122 of file GlobalHitsAnalyzer.h.

Referenced by fillECal(), and GlobalHitsAnalyzer().

◆ validEE

bool GlobalHitsAnalyzer::validEE
private

Definition at line 123 of file GlobalHitsAnalyzer.h.

Referenced by fillECal(), and GlobalHitsAnalyzer().

◆ validG4trkContainer

bool GlobalHitsAnalyzer::validG4trkContainer
private

Definition at line 106 of file GlobalHitsAnalyzer.h.

Referenced by fillG4MC(), and GlobalHitsAnalyzer().

◆ validG4VtxContainer

bool GlobalHitsAnalyzer::validG4VtxContainer
private

Definition at line 105 of file GlobalHitsAnalyzer.h.

Referenced by fillG4MC(), and GlobalHitsAnalyzer().

◆ validHcal

bool GlobalHitsAnalyzer::validHcal
private

Definition at line 125 of file GlobalHitsAnalyzer.h.

Referenced by fillHCal(), and GlobalHitsAnalyzer().

◆ validHepMCevt

bool GlobalHitsAnalyzer::validHepMCevt
private

Definition at line 104 of file GlobalHitsAnalyzer.h.

Referenced by fillG4MC(), and GlobalHitsAnalyzer().

◆ validMuonCSC

bool GlobalHitsAnalyzer::validMuonCSC
private

Definition at line 119 of file GlobalHitsAnalyzer.h.

Referenced by fillMuon(), and GlobalHitsAnalyzer().

◆ validMuonDt

bool GlobalHitsAnalyzer::validMuonDt
private

Definition at line 120 of file GlobalHitsAnalyzer.h.

Referenced by fillMuon(), and GlobalHitsAnalyzer().

◆ validMuonRPC

bool GlobalHitsAnalyzer::validMuonRPC
private

Definition at line 121 of file GlobalHitsAnalyzer.h.

Referenced by fillMuon(), and GlobalHitsAnalyzer().

◆ validPresh

bool GlobalHitsAnalyzer::validPresh
private

Definition at line 124 of file GlobalHitsAnalyzer.h.

Referenced by fillECal(), and GlobalHitsAnalyzer().

◆ validPxlBrlHigh

bool GlobalHitsAnalyzer::validPxlBrlHigh
private

Definition at line 108 of file GlobalHitsAnalyzer.h.

Referenced by fillTrk(), and GlobalHitsAnalyzer().

◆ validPxlBrlLow

bool GlobalHitsAnalyzer::validPxlBrlLow
private

Definition at line 107 of file GlobalHitsAnalyzer.h.

Referenced by fillTrk(), and GlobalHitsAnalyzer().

◆ validPxlFwdHigh

bool GlobalHitsAnalyzer::validPxlFwdHigh
private

Definition at line 110 of file GlobalHitsAnalyzer.h.

Referenced by fillTrk(), and GlobalHitsAnalyzer().

◆ validPxlFwdLow

bool GlobalHitsAnalyzer::validPxlFwdLow
private

Definition at line 109 of file GlobalHitsAnalyzer.h.

Referenced by fillTrk(), and GlobalHitsAnalyzer().

◆ validSiTECHigh

bool GlobalHitsAnalyzer::validSiTECHigh
private

Definition at line 118 of file GlobalHitsAnalyzer.h.

Referenced by fillTrk(), and GlobalHitsAnalyzer().

◆ validSiTECLow

bool GlobalHitsAnalyzer::validSiTECLow
private

Definition at line 117 of file GlobalHitsAnalyzer.h.

Referenced by fillTrk(), and GlobalHitsAnalyzer().

◆ validSiTIBHigh

bool GlobalHitsAnalyzer::validSiTIBHigh
private

Definition at line 112 of file GlobalHitsAnalyzer.h.

Referenced by fillTrk(), and GlobalHitsAnalyzer().

◆ validSiTIBLow

bool GlobalHitsAnalyzer::validSiTIBLow
private

Definition at line 111 of file GlobalHitsAnalyzer.h.

Referenced by fillTrk(), and GlobalHitsAnalyzer().

◆ validSiTIDHigh

bool GlobalHitsAnalyzer::validSiTIDHigh
private

Definition at line 116 of file GlobalHitsAnalyzer.h.

Referenced by fillTrk(), and GlobalHitsAnalyzer().

◆ validSiTIDLow

bool GlobalHitsAnalyzer::validSiTIDLow
private

Definition at line 115 of file GlobalHitsAnalyzer.h.

Referenced by fillTrk(), and GlobalHitsAnalyzer().

◆ validSiTOBHigh

bool GlobalHitsAnalyzer::validSiTOBHigh
private

Definition at line 114 of file GlobalHitsAnalyzer.h.

Referenced by fillTrk(), and GlobalHitsAnalyzer().

◆ validSiTOBLow

bool GlobalHitsAnalyzer::validSiTOBLow
private

Definition at line 113 of file GlobalHitsAnalyzer.h.

Referenced by fillTrk(), and GlobalHitsAnalyzer().

◆ verbosity

int GlobalHitsAnalyzer::verbosity
private

◆ vtxunit

int GlobalHitsAnalyzer::vtxunit
private

Definition at line 98 of file GlobalHitsAnalyzer.h.

Referenced by fillG4MC(), and GlobalHitsAnalyzer().