CMS 3D CMS Logo

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

#include <GlobalDigisAnalyzer.h>

Inheritance diagram for GlobalDigisAnalyzer:
DQMEDAnalyzer edm::one::EDProducer< edm::EndRunProducer, edm::one::WatchRuns, edm::EndLuminosityBlockProducer, edm::one::WatchLuminosityBlocks, edm::Accumulator > edm::one::EDProducerBase edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Types

typedef std::vector< double > DoubleVector
 
typedef std::vector< float > FloatVector
 
typedef std::vector< int > IntVector
 
typedef std::map< uint32_t, float, std::less< uint32_t > > MapType
 
- Public Types inherited from DQMEDAnalyzer
typedef dqm::reco::DQMStore DQMStore
 
typedef dqm::reco::MonitorElement MonitorElement
 
- Public Types inherited from edm::one::EDProducerBase
typedef EDProducerBase ModuleType
 
- Public Types inherited from edm::ProducerBase
using ModuleToResolverIndicies = std::unordered_multimap< std::string, std::tuple< edm::TypeID const *, const char *, edm::ProductResolverIndex >>
 
typedef ProductRegistryHelper::TypeLabelList TypeLabelList
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 

Public Member Functions

void analyze (const edm::Event &, const edm::EventSetup &) override
 
 GlobalDigisAnalyzer (const edm::ParameterSet &)
 
 ~GlobalDigisAnalyzer () override
 
- Public Member Functions inherited from DQMEDAnalyzer
void accumulate (edm::Event const &event, edm::EventSetup const &setup) final
 
virtual void analyze (edm::Event const &, edm::EventSetup const &)
 
void beginLuminosityBlock (edm::LuminosityBlock const &lumi, edm::EventSetup const &setup) final
 
void beginRun (edm::Run const &run, edm::EventSetup const &setup) final
 
virtual void dqmBeginLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &)
 
virtual void dqmBeginRun (edm::Run const &, edm::EventSetup const &)
 
 DQMEDAnalyzer ()
 
virtual void dqmEndLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &)
 
virtual void dqmEndRun (edm::Run const &, edm::EventSetup const &)
 
void endLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &) final
 
void endLuminosityBlockProduce (edm::LuminosityBlock &lumi, edm::EventSetup const &setup) final
 
void endRun (edm::Run const &, edm::EventSetup const &) final
 
void endRunProduce (edm::Run &run, edm::EventSetup const &setup) final
 
virtual bool getCanSaveByLumi ()
 
- Public Member Functions inherited from edm::one::EDProducer< edm::EndRunProducer, edm::one::WatchRuns, edm::EndLuminosityBlockProducer, edm::one::WatchLuminosityBlocks, edm::Accumulator >
 EDProducer ()=default
 
SerialTaskQueueglobalLuminosityBlocksQueue () final
 
SerialTaskQueueglobalRunsQueue () final
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndRuns () const final
 
bool wantsGlobalLuminosityBlocks () const final
 
bool wantsGlobalRuns () const final
 
- Public Member Functions inherited from edm::one::EDProducerBase
 EDProducerBase ()
 
ModuleDescription const & moduleDescription () const
 
bool wantsStreamLuminosityBlocks () const
 
bool wantsStreamRuns () const
 
 ~EDProducerBase () override
 
- Public Member Functions inherited from edm::ProducerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
std::vector< edm::ProductResolverIndex > const & indiciesForPutProducts (BranchType iBranchType) const
 
 ProducerBase ()
 
std::vector< edm::ProductResolverIndex > const & putTokenIndexToProductResolverIndex () const
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
std::function< void(BranchDescription const &)> registrationCallback () const
 used by the fwk to register list of products More...
 
void resolvePutIndicies (BranchType iBranchType, ModuleToResolverIndicies const &iIndicies, std::string const &moduleLabel)
 
 ~ProducerBase () noexcept(false) override
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
void convertCurrentProcessAlias (std::string const &processName)
 Convert "@currentProcess" in InputTag process names to the actual current process name. More...
 
 EDConsumerBase ()
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
 EDConsumerBase (EDConsumerBase &&)=default
 
ESProxyIndex const * esGetTokenIndices (edm::Transition iTrans) const
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector< ProductResolverIndexAndSkipBit > const & itemsToGetFrom (BranchType iType) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProxyIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Protected Member Functions

void bookHistograms (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
 
- Protected Member Functions inherited from edm::ProducerBase
ProducesCollector producesCollector ()
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes ()
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes (ESInputTag const &tag)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 

Private Member Functions

void fillECal (const edm::Event &, const edm::EventSetup &)
 
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

unsigned int count
 
edm::EDGetTokenT< CrossingFrame< PCaloHit > > EBHits_Token_
 
double ECalbarrelADCtoGeV_
 
edm::InputTag ECalEBSrc_
 
edm::EDGetTokenT< EBDigiCollectionECalEBSrc_Token_
 
edm::InputTag ECalEESrc_
 
edm::EDGetTokenT< EEDigiCollectionECalEESrc_Token_
 
double ECalendcapADCtoGeV_
 
edm::InputTag ECalESSrc_
 
edm::EDGetTokenT< ESDigiCollectionECalESSrc_Token_
 
std::map< int, double, std::less< int > > ECalgainConv_
 
edm::EDGetTokenT< CrossingFrame< PCaloHit > > EEHits_Token_
 
edm::EDGetTokenT< CrossingFrame< PCaloHit > > ESHits_Token_
 
std::string fName
 
int frequency
 
bool getAllProvenances
 
edm::EDGetTokenT< edm::SortedCollection< HBHEDataFrame > > HBHEDigi_Token_
 
edm::InputTag HCalDigi_
 
edm::InputTag HCalSrc_
 
edm::EDGetTokenT< edm::PCaloHitContainerHCalSrc_Token_
 
edm::EDGetTokenT< edm::SortedCollection< HFDataFrame > > HFDigi_Token_
 
std::string hitsProducer
 
edm::EDGetTokenT< edm::SortedCollection< HODataFrame > > HODigi_Token_
 
std::string label
 
MonitorElementmehCSCStripADC
 
MonitorElementmehCSCStripn
 
MonitorElementmehCSCWiren
 
MonitorElementmehCSCWireTime
 
MonitorElementmehDtMuonLayer [4]
 
MonitorElementmehDtMuonn [4]
 
MonitorElementmehDtMuonTime [4]
 
MonitorElementmehDtMuonTimevLayer [4]
 
MonitorElementmehEcalAEE [2]
 
MonitorElementmehEcalMaxPos [2]
 
MonitorElementmehEcalMultvAEE [2]
 
MonitorElementmehEcaln [2]
 
MonitorElementmehEcalSHE [2]
 
MonitorElementmehEcalSHEvAEESHE [2]
 
MonitorElementmehEScalADC [3]
 
MonitorElementmehEScaln
 
MonitorElementmehHcalAEE [4]
 
MonitorElementmehHcalAEESHE [4]
 
MonitorElementmehHcaln [4]
 
MonitorElementmehHcalSHE [4]
 
MonitorElementmehHcalSHEvAEE [4]
 
MonitorElementmehRPCMuonn
 
MonitorElementmehRPCRes [5]
 
MonitorElementmehSiPixelADC [7]
 
MonitorElementmehSiPixelCol [7]
 
MonitorElementmehSiPixeln [7]
 
MonitorElementmehSiPixelRow [7]
 
MonitorElementmehSiStripADC [19]
 
MonitorElementmehSiStripn [19]
 
MonitorElementmehSiStripStrip [19]
 
edm::InputTag MuCSCStripSrc_
 
edm::EDGetTokenT< CSCStripDigiCollectionMuCSCStripSrc_Token_
 
edm::InputTag MuCSCWireSrc_
 
edm::EDGetTokenT< CSCWireDigiCollectionMuCSCWireSrc_Token_
 
edm::InputTag MuDTSrc_
 
edm::EDGetTokenT< DTDigiCollectionMuDTSrc_Token_
 
edm::InputTag MuRPCSrc_
 
edm::EDGetTokenT< RPCDigiCollectionMuRPCSrc_Token_
 
bool printProvenanceInfo
 
edm::EDGetTokenT< edm::PSimHitContainerRPCSimHit_Token_
 
edm::InputTag SiPxlSrc_
 
edm::EDGetTokenT< edm::DetSetVector< PixelDigi > > SiPxlSrc_Token_
 
edm::InputTag SiStripSrc_
 
edm::EDGetTokenT< edm::DetSetVector< SiStripDigi > > SiStripSrc_Token_
 
int theCSCStripPedestalCount
 
float theCSCStripPedestalSum
 
int verbosity
 

Additional Inherited Members

- Static Public Member Functions inherited from edm::one::EDProducerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
- Protected Attributes inherited from DQMEDAnalyzer
edm::EDPutTokenT< DQMTokenlumiToken_
 
edm::EDPutTokenT< DQMTokenrunToken_
 

Detailed Description

Definition at line 107 of file GlobalDigisAnalyzer.h.

Member Typedef Documentation

typedef std::vector<double> GlobalDigisAnalyzer::DoubleVector

Definition at line 110 of file GlobalDigisAnalyzer.h.

typedef std::vector<float> GlobalDigisAnalyzer::FloatVector

Definition at line 109 of file GlobalDigisAnalyzer.h.

typedef std::vector<int> GlobalDigisAnalyzer::IntVector

Definition at line 111 of file GlobalDigisAnalyzer.h.

typedef std::map<uint32_t, float, std::less<uint32_t> > GlobalDigisAnalyzer::MapType

Definition at line 112 of file GlobalDigisAnalyzer.h.

Constructor & Destructor Documentation

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

Definition at line 13 of file GlobalDigisAnalyzer.cc.

References EBHits_Token_, ECalbarrelADCtoGeV_, ECalEBSrc_, ECalEBSrc_Token_, ECalEESrc_, ECalEESrc_Token_, ECalendcapADCtoGeV_, ECalESSrc_, ECalESSrc_Token_, ECalgainConv_, EEHits_Token_, ESHits_Token_, fName, frequency, EcalMGPAGainRatio::gain12Over6(), EcalMGPAGainRatio::gain6Over1(), getAllProvenances, edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), HBHEDigi_Token_, HCalDigi_, HCalSrc_, HCalSrc_Token_, HFDigi_Token_, hitsProducer, HODigi_Token_, HLT_2018_cff::InputTag, edm::InputTag::instance(), edm::InputTag::label(), MuCSCStripSrc_, MuCSCStripSrc_Token_, MuCSCWireSrc_, MuCSCWireSrc_Token_, MuDTSrc_, MuDTSrc_Token_, MuRPCSrc_, MuRPCSrc_Token_, printProvenanceInfo, RPCSimHit_Token_, SiPxlSrc_, SiPxlSrc_Token_, SiStripSrc_, SiStripSrc_Token_, AlCaHLTBitMon_QueryRunRegistry::string, and verbosity.

14  : fName(""),
15  verbosity(0),
16  frequency(0),
17  label(""),
18  getAllProvenances(false),
19  printProvenanceInfo(false),
20  hitsProducer(""),
23  count(0) {
24  std::string MsgLoggerCat = "GlobalDigisAnalyzer_GlobalDigisAnalyzer";
25 
26  // get information from parameter set
27  fName = iPSet.getUntrackedParameter<std::string>("Name");
28  verbosity = iPSet.getUntrackedParameter<int>("Verbosity");
29  frequency = iPSet.getUntrackedParameter<int>("Frequency");
30  edm::ParameterSet m_Prov = iPSet.getParameter<edm::ParameterSet>("ProvenanceLookup");
31  getAllProvenances = m_Prov.getUntrackedParameter<bool>("GetAllProvenances");
32  printProvenanceInfo = m_Prov.getUntrackedParameter<bool>("PrintProvenanceInfo");
33  hitsProducer = iPSet.getParameter<std::string>("hitsProducer");
34 
35  // get Labels to use to extract information
36  ECalEBSrc_ = iPSet.getParameter<edm::InputTag>("ECalEBSrc");
37  ECalEESrc_ = iPSet.getParameter<edm::InputTag>("ECalEESrc");
38  ECalESSrc_ = iPSet.getParameter<edm::InputTag>("ECalESSrc");
39  HCalSrc_ = iPSet.getParameter<edm::InputTag>("HCalSrc");
40  HCalDigi_ = iPSet.getParameter<edm::InputTag>("HCalDigi");
41  SiStripSrc_ = iPSet.getParameter<edm::InputTag>("SiStripSrc");
42  SiPxlSrc_ = iPSet.getParameter<edm::InputTag>("SiPxlSrc");
43  MuDTSrc_ = iPSet.getParameter<edm::InputTag>("MuDTSrc");
44  MuCSCStripSrc_ = iPSet.getParameter<edm::InputTag>("MuCSCStripSrc");
45  MuCSCWireSrc_ = iPSet.getParameter<edm::InputTag>("MuCSCWireSrc");
46  MuRPCSrc_ = iPSet.getParameter<edm::InputTag>("MuRPCSrc");
47 
48  ECalEBSrc_Token_ = consumes<EBDigiCollection>(iPSet.getParameter<edm::InputTag>("ECalEBSrc"));
49  ECalEESrc_Token_ = consumes<EEDigiCollection>(iPSet.getParameter<edm::InputTag>("ECalEESrc"));
50  ECalESSrc_Token_ = consumes<ESDigiCollection>(iPSet.getParameter<edm::InputTag>("ECalESSrc"));
51  HCalSrc_Token_ = consumes<edm::PCaloHitContainer>(iPSet.getParameter<edm::InputTag>("HCalSrc"));
52  HBHEDigi_Token_ = consumes<edm::SortedCollection<HBHEDataFrame>>(iPSet.getParameter<edm::InputTag>("HCalDigi"));
53  HODigi_Token_ = consumes<edm::SortedCollection<HODataFrame>>(iPSet.getParameter<edm::InputTag>("HCalDigi"));
54  HFDigi_Token_ = consumes<edm::SortedCollection<HFDataFrame>>(iPSet.getParameter<edm::InputTag>("HCalDigi"));
55  SiStripSrc_Token_ = consumes<edm::DetSetVector<SiStripDigi>>(iPSet.getParameter<edm::InputTag>("SiStripSrc"));
56  SiPxlSrc_Token_ = consumes<edm::DetSetVector<PixelDigi>>(iPSet.getParameter<edm::InputTag>("SiPxlSrc"));
57  MuDTSrc_Token_ = consumes<DTDigiCollection>(iPSet.getParameter<edm::InputTag>("MuDTSrc"));
58  MuCSCStripSrc_Token_ = consumes<CSCStripDigiCollection>(iPSet.getParameter<edm::InputTag>("MuCSCStripSrc"));
59  MuCSCWireSrc_Token_ = consumes<CSCWireDigiCollection>(iPSet.getParameter<edm::InputTag>("MuCSCWireSrc"));
60  MuRPCSrc_Token_ = consumes<RPCDigiCollection>(iPSet.getParameter<edm::InputTag>("MuRPCSrc"));
61  //
62  const std::string barrelHitsName(hitsProducer + "EcalHitsEB");
63  const std::string endcapHitsName(hitsProducer + "EcalHitsEE");
64  const std::string preshowerHitsName(hitsProducer + "EcalHitsES");
65  EBHits_Token_ = consumes<CrossingFrame<PCaloHit>>(edm::InputTag(std::string("mix"), std::string("barrelHitsName")));
66  EEHits_Token_ = consumes<CrossingFrame<PCaloHit>>(edm::InputTag(std::string("mix"), std::string("endcapHitsName")));
68  consumes<CrossingFrame<PCaloHit>>(edm::InputTag(std::string("mix"), std::string("preshowerHitsName")));
69 
71  consumes<edm::PSimHitContainer>(edm::InputTag(std::string("g4SimHits"), std::string("MuonRPCHits")));
72  // use value of first digit to determine default output level (inclusive)
73  // 0 is none, 1 is basic, 2 is fill output, 3 is gather output
74  verbosity %= 10;
75 
76  // print out Parameter Set information being used
77  if (verbosity >= 0) {
78  edm::LogInfo(MsgLoggerCat) << "\n===============================\n"
79  << "Initialized as EDAnalyzer with parameter values:\n"
80  << " Name = " << fName << "\n"
81  << " Verbosity = " << verbosity << "\n"
82  << " Frequency = " << frequency << "\n"
83  << " GetProv = " << getAllProvenances << "\n"
84  << " PrintProv = " << printProvenanceInfo << "\n"
85  << " ECalEBSrc = " << ECalEBSrc_.label() << ":" << ECalEBSrc_.instance() << "\n"
86  << " ECalEESrc = " << ECalEESrc_.label() << ":" << ECalEESrc_.instance() << "\n"
87  << " ECalESSrc = " << ECalESSrc_.label() << ":" << ECalESSrc_.instance() << "\n"
88  << " HCalSrc = " << HCalSrc_.label() << ":" << HCalSrc_.instance() << "\n"
89  << " HCalDigi = " << HCalDigi_.label() << ":" << HCalDigi_.instance() << "\n"
90  << " SiStripSrc = " << SiStripSrc_.label() << ":" << SiStripSrc_.instance() << "\n"
91  << " SiPixelSrc = " << SiPxlSrc_.label() << ":" << SiPxlSrc_.instance() << "\n"
92  << " MuDTSrc = " << MuDTSrc_.label() << ":" << MuDTSrc_.instance() << "\n"
93  << " MuCSCStripSrc = " << MuCSCStripSrc_.label() << ":" << MuCSCStripSrc_.instance()
94  << "\n"
95  << " MuCSCWireSrc = " << MuCSCWireSrc_.label() << ":" << MuCSCWireSrc_.instance()
96  << "\n"
97  << " MuRPCSrc = " << MuRPCSrc_.label() << ":" << MuRPCSrc_.instance() << "\n"
98  << "===============================\n";
99  }
100 
101  // set default constants
102  // ECal
103 
104  ECalbarrelADCtoGeV_ = 0.035;
105  ECalendcapADCtoGeV_ = 0.06;
106 
107  EcalMGPAGainRatio defaultRatios;
108  ECalgainConv_[0] = 0.;
109  ECalgainConv_[1] = 1.;
110  ECalgainConv_[2] = defaultRatios.gain12Over6();
111  ECalgainConv_[3] = ECalgainConv_[2] * (defaultRatios.gain6Over1());
112 
113  if (verbosity >= 0) {
114  edm::LogInfo(MsgLoggerCat) << "Modified Calorimeter gain constants: g0 = " << ECalgainConv_[0]
115  << ", g1 = " << ECalgainConv_[1] << ", g2 = " << ECalgainConv_[2]
116  << ", g3 = " << ECalgainConv_[3];
117  }
118 }
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
edm::EDGetTokenT< CrossingFrame< PCaloHit > > EBHits_Token_
edm::EDGetTokenT< edm::PCaloHitContainer > HCalSrc_Token_
edm::EDGetTokenT< CSCStripDigiCollection > MuCSCStripSrc_Token_
edm::EDGetTokenT< EEDigiCollection > ECalEESrc_Token_
edm::EDGetTokenT< CrossingFrame< PCaloHit > > ESHits_Token_
edm::EDGetTokenT< edm::PSimHitContainer > RPCSimHit_Token_
edm::InputTag MuCSCStripSrc_
edm::EDGetTokenT< edm::SortedCollection< HFDataFrame > > HFDigi_Token_
float gain6Over1() const
edm::EDGetTokenT< CSCWireDigiCollection > MuCSCWireSrc_Token_
std::map< int, double, std::less< int > > ECalgainConv_
edm::EDGetTokenT< edm::SortedCollection< HODataFrame > > HODigi_Token_
edm::EDGetTokenT< edm::DetSetVector< SiStripDigi > > SiStripSrc_Token_
edm::EDGetTokenT< EBDigiCollection > ECalEBSrc_Token_
edm::EDGetTokenT< ESDigiCollection > ECalESSrc_Token_
edm::EDGetTokenT< CrossingFrame< PCaloHit > > EEHits_Token_
float gain12Over6() const
std::string const & label() const
Definition: InputTag.h:36
edm::EDGetTokenT< edm::SortedCollection< HBHEDataFrame > > HBHEDigi_Token_
edm::EDGetTokenT< RPCDigiCollection > MuRPCSrc_Token_
edm::EDGetTokenT< edm::DetSetVector< PixelDigi > > SiPxlSrc_Token_
std::string const & instance() const
Definition: InputTag.h:37
edm::EDGetTokenT< DTDigiCollection > MuDTSrc_Token_
GlobalDigisAnalyzer::~GlobalDigisAnalyzer ( )
override

Definition at line 120 of file GlobalDigisAnalyzer.cc.

120 {}

Member Function Documentation

void GlobalDigisAnalyzer::analyze ( const edm::Event iEvent,
const edm::EventSetup iSetup 
)
override

Definition at line 420 of file GlobalDigisAnalyzer.cc.

References count, ECalbarrelADCtoGeV_, ECalendcapADCtoGeV_, edm::EventID::event(), fillECal(), fillHCal(), fillMuon(), fillTrk(), frequency, edm::EventSetup::get(), getAllProvenances, edm::Event::getAllStableProvenance(), EcalADCToGeVConstant::getEBValue(), EcalADCToGeVConstant::getEEValue(), mps_fire::i, edm::EventBase::id(), nevt, printProvenanceInfo, edm::ESHandle< T >::product(), edm::EventID::run(), AlCaHLTBitMon_QueryRunRegistry::string, and verbosity.

420  {
421  std::string MsgLoggerCat = "GlobalDigisAnalyzer_analyze";
422 
423  // keep track of number of events processed
424  ++count;
425 
426  // THIS BLOCK MIGRATED HERE FROM beginJob:
427  // setup calorimeter constants from service
429  iSetup.get<EcalADCToGeVConstantRcd>().get(pAgc);
430  const EcalADCToGeVConstant *agc = pAgc.product();
433  if (verbosity >= 0) {
434  edm::LogInfo(MsgLoggerCat) << "Modified Calorimeter ADCtoGeV constants: barrel = " << ECalbarrelADCtoGeV_
435  << ", endcap = " << ECalendcapADCtoGeV_;
436  }
437 
438  // get event id information
439  edm::RunNumber_t nrun = iEvent.id().run();
440  edm::EventNumber_t nevt = iEvent.id().event();
441 
442  if (verbosity > 0) {
443  edm::LogInfo(MsgLoggerCat) << "Processing run " << nrun << ", event " << nevt << " (" << count << " events total)";
444  } else if (verbosity == 0) {
445  if (nevt % frequency == 0 || nevt == 1) {
446  edm::LogInfo(MsgLoggerCat) << "Processing run " << nrun << ", event " << nevt << " (" << count
447  << " events total)";
448  }
449  }
450 
451  // look at information available in the event
452  if (getAllProvenances) {
453  std::vector<const edm::StableProvenance *> AllProv;
454  iEvent.getAllStableProvenance(AllProv);
455 
456  if (verbosity >= 0)
457  edm::LogInfo(MsgLoggerCat) << "Number of Provenances = " << AllProv.size();
458 
459  if (printProvenanceInfo && (verbosity >= 0)) {
460  TString eventout("\nProvenance info:\n");
461 
462  for (unsigned int i = 0; i < AllProv.size(); ++i) {
463  eventout += "\n ******************************";
464  eventout += "\n Module : ";
465  eventout += AllProv[i]->moduleLabel();
466  eventout += "\n ProductID : ";
467  eventout += AllProv[i]->productID().id();
468  eventout += "\n ClassName : ";
469  eventout += AllProv[i]->className();
470  eventout += "\n InstanceName : ";
471  eventout += AllProv[i]->productInstanceName();
472  eventout += "\n BranchName : ";
473  eventout += AllProv[i]->branchName();
474  }
475  eventout += "\n ******************************\n";
476  edm::LogInfo(MsgLoggerCat) << eventout << "\n";
477  printProvenanceInfo = false;
478  }
479  getAllProvenances = false;
480  }
481 
482  // call fill functions
483  // gather Ecal information from event
484  fillECal(iEvent, iSetup);
485  // gather Hcal information from event
486  fillHCal(iEvent, iSetup);
487  // gather Track information from event
488  fillTrk(iEvent, iSetup);
489  // gather Muon information from event
490  fillMuon(iEvent, iSetup);
491 
492  if (verbosity > 0)
493  edm::LogInfo(MsgLoggerCat) << "Done gathering data from event.";
494 
495  if (verbosity > 2)
496  edm::LogInfo(MsgLoggerCat) << "Saving event contents:";
497 
498  return;
499 }
RunNumber_t run() const
Definition: EventID.h:38
EventNumber_t event() const
Definition: EventID.h:40
void fillECal(const edm::Event &, const edm::EventSetup &)
unsigned long long EventNumber_t
void fillHCal(const edm::Event &, const edm::EventSetup &)
void fillMuon(const edm::Event &, const edm::EventSetup &)
edm::EventID id() const
Definition: EventBase.h:59
T get() const
Definition: EventSetup.h:73
unsigned int RunNumber_t
void fillTrk(const edm::Event &, const edm::EventSetup &)
T const * product() const
Definition: ESHandle.h:86
void getAllStableProvenance(std::vector< StableProvenance const * > &provenances) const
Definition: Event.cc:126
void GlobalDigisAnalyzer::bookHistograms ( DQMStore::IBooker iBooker,
edm::Run const &  ,
edm::EventSetup const &   
)
overrideprotectedvirtual

Implements DQMEDAnalyzer.

Definition at line 122 of file GlobalDigisAnalyzer.cc.

References dqm::dqmstoreimpl::DQMStore::IBooker::book1D(), dqm::dqmstoreimpl::DQMStore::IBooker::bookProfile(), mps_fire::i, dqmiolumiharvest::j, mehCSCStripADC, mehCSCStripn, mehCSCWiren, mehCSCWireTime, mehDtMuonLayer, mehDtMuonn, mehDtMuonTime, mehDtMuonTimevLayer, mehEcalAEE, mehEcalMaxPos, mehEcalMultvAEE, mehEcaln, mehEcalSHE, mehEcalSHEvAEESHE, mehEScalADC, mehEScaln, mehHcalAEE, mehHcalAEESHE, mehHcaln, mehHcalSHE, mehHcalSHEvAEE, mehRPCMuonn, mehRPCRes, mehSiPixelADC, mehSiPixelCol, mehSiPixeln, mehSiPixelRow, mehSiStripADC, mehSiStripn, mehSiStripStrip, dqm::impl::MonitorElement::setAxisTitle(), dqm::dqmstoreimpl::DQMStore::IBooker::setCurrentFolder(), and AlCaHLTBitMon_QueryRunRegistry::string.

122  {
123  // Si Strip
124  std::string SiStripString[19] = {"TECW1",
125  "TECW2",
126  "TECW3",
127  "TECW4",
128  "TECW5",
129  "TECW6",
130  "TECW7",
131  "TECW8",
132  "TIBL1",
133  "TIBL2",
134  "TIBL3",
135  "TIBL4",
136  "TIDW1",
137  "TIDW2",
138  "TIDW3",
139  "TOBL1",
140  "TOBL2",
141  "TOBL3",
142  "TOBL4"};
143  for (int i = 0; i < 19; ++i) {
144  mehSiStripn[i] = nullptr;
145  mehSiStripADC[i] = nullptr;
146  mehSiStripStrip[i] = nullptr;
147  }
148  std::string hcharname, hchartitle;
149  iBooker.setCurrentFolder("GlobalDigisV/SiStrips");
150  for (int amend = 0; amend < 19; ++amend) {
151  hcharname = "hSiStripn_" + SiStripString[amend];
152  hchartitle = SiStripString[amend] + " Digis";
153  mehSiStripn[amend] = iBooker.book1D(hcharname, hchartitle, 5000, 0., 10000.);
154  mehSiStripn[amend]->setAxisTitle("Number of Digis", 1);
155  mehSiStripn[amend]->setAxisTitle("Count", 2);
156 
157  hcharname = "hSiStripADC_" + SiStripString[amend];
158  hchartitle = SiStripString[amend] + " ADC";
159  mehSiStripADC[amend] = iBooker.book1D(hcharname, hchartitle, 150, 0.0, 300.);
160  mehSiStripADC[amend]->setAxisTitle("ADC", 1);
161  mehSiStripADC[amend]->setAxisTitle("Count", 2);
162 
163  hcharname = "hSiStripStripADC_" + SiStripString[amend];
164  hchartitle = SiStripString[amend] + " Strip";
165  mehSiStripStrip[amend] = iBooker.book1D(hcharname, hchartitle, 200, 0.0, 800.);
166  mehSiStripStrip[amend]->setAxisTitle("Strip Number", 1);
167  mehSiStripStrip[amend]->setAxisTitle("Count", 2);
168  }
169 
170  // HCal
171  std::string HCalString[4] = {"HB", "HE", "HO", "HF"};
172  float calnUpper[4] = {30000., 30000., 30000., 20000.};
173  float calnLower[4] = {0., 0., 0., 0.};
174  float SHEUpper[4] = {1., 1., 1., 1.};
175  float SHEvAEEUpper[4] = {5000, 5000, 5000, 5000};
176  float SHEvAEELower[4] = {-5000, -5000, -5000, -5000};
177  int SHEvAEEnBins[4] = {200, 200, 200, 200};
178  double ProfileUpper[4] = {1., 1., 1., 1.};
179 
180  for (int i = 0; i < 4; ++i) {
181  mehHcaln[i] = nullptr;
182  mehHcalAEE[i] = nullptr;
183  mehHcalSHE[i] = nullptr;
184  mehHcalAEESHE[i] = nullptr;
185  mehHcalSHEvAEE[i] = nullptr;
186  }
187  iBooker.setCurrentFolder("GlobalDigisV/HCals");
188 
189  for (int amend = 0; amend < 4; ++amend) {
190  hcharname = "hHcaln_" + HCalString[amend];
191  hchartitle = HCalString[amend] + " digis";
192  mehHcaln[amend] = iBooker.book1D(hcharname, hchartitle, 10000, calnLower[amend], calnUpper[amend]);
193  mehHcaln[amend]->setAxisTitle("Number of Digis", 1);
194  mehHcaln[amend]->setAxisTitle("Count", 2);
195 
196  hcharname = "hHcalAEE_" + HCalString[amend];
197  hchartitle = HCalString[amend] + "Cal AEE";
198  mehHcalAEE[amend] = iBooker.book1D(hcharname, hchartitle, 60, -10., 50.);
199  mehHcalAEE[amend]->setAxisTitle("Analog Equivalent Energy", 1);
200  mehHcalAEE[amend]->setAxisTitle("Count", 2);
201 
202  hcharname = "hHcalSHE_" + HCalString[amend];
203  hchartitle = HCalString[amend] + "Cal SHE";
204  mehHcalSHE[amend] = iBooker.book1D(hcharname, hchartitle, 1000, 0.0, SHEUpper[amend]);
205  mehHcalSHE[amend]->setAxisTitle("Simulated Hit Energy", 1);
206  mehHcalSHE[amend]->setAxisTitle("Count", 2);
207 
208  hcharname = "hHcalAEESHE_" + HCalString[amend];
209  hchartitle = HCalString[amend] + "Cal AEE/SHE";
210  mehHcalAEESHE[amend] =
211  iBooker.book1D(hcharname, hchartitle, SHEvAEEnBins[amend], SHEvAEELower[amend], SHEvAEEUpper[amend]);
212  mehHcalAEESHE[amend]->setAxisTitle("ADC / SHE", 1);
213  mehHcalAEESHE[amend]->setAxisTitle("Count", 2);
214 
215  hcharname = "hHcalSHEvAEE_" + HCalString[amend];
216  hchartitle = HCalString[amend] + "Cal SHE vs. AEE";
217  mehHcalSHEvAEE[amend] =
218  iBooker.bookProfile(hcharname, hchartitle, 60, -10., 50., 100, 0., (float)ProfileUpper[amend], "");
219  mehHcalSHEvAEE[amend]->setAxisTitle("AEE / SHE", 1);
220  mehHcalSHEvAEE[amend]->setAxisTitle("SHE", 2);
221  }
222 
223  // Ecal
224  std::string ECalString[2] = {"EB", "EE"};
225 
226  for (int i = 0; i < 2; ++i) {
227  mehEcaln[i] = nullptr;
228  mehEcalAEE[i] = nullptr;
229  mehEcalSHE[i] = nullptr;
230  mehEcalMaxPos[i] = nullptr;
231  mehEcalMultvAEE[i] = nullptr;
232  mehEcalSHEvAEESHE[i] = nullptr;
233  }
234  iBooker.setCurrentFolder("GlobalDigisV/ECals");
235 
236  for (int amend = 0; amend < 2; ++amend) {
237  hcharname = "hEcaln_" + ECalString[amend];
238  hchartitle = ECalString[amend] + " digis";
239  mehEcaln[amend] = iBooker.book1D(hcharname, hchartitle, 3000, 0., 40000.);
240  mehEcaln[amend]->setAxisTitle("Number of Digis", 1);
241  mehEcaln[amend]->setAxisTitle("Count", 2);
242 
243  hcharname = "hEcalAEE_" + ECalString[amend];
244  hchartitle = ECalString[amend] + "Cal AEE";
245  mehEcalAEE[amend] = iBooker.book1D(hcharname, hchartitle, 1000, 0., 100.);
246  mehEcalAEE[amend]->setAxisTitle("Analog Equivalent Energy", 1);
247  mehEcalAEE[amend]->setAxisTitle("Count", 2);
248 
249  hcharname = "hEcalSHE_" + ECalString[amend];
250  hchartitle = ECalString[amend] + "Cal SHE";
251  mehEcalSHE[amend] = iBooker.book1D(hcharname, hchartitle, 500, 0., 50.);
252  mehEcalSHE[amend]->setAxisTitle("Simulated Hit Energy", 1);
253  mehEcalSHE[amend]->setAxisTitle("Count", 2);
254 
255  hcharname = "hEcalMaxPos_" + ECalString[amend];
256  hchartitle = ECalString[amend] + "Cal MaxPos";
257  mehEcalMaxPos[amend] = iBooker.book1D(hcharname, hchartitle, 10, 0., 10.);
258  mehEcalMaxPos[amend]->setAxisTitle("Maximum Position", 1);
259  mehEcalMaxPos[amend]->setAxisTitle("Count", 2);
260 
261  hcharname = "hEcalSHEvAEESHE_" + ECalString[amend];
262  hchartitle = ECalString[amend] + "Cal SHE vs. AEE/SHE";
263  mehEcalSHEvAEESHE[amend] = iBooker.bookProfile(hcharname, hchartitle, 1000, 0., 100., 500, 0., 50., "");
264  mehEcalSHEvAEESHE[amend]->setAxisTitle("AEE / SHE", 1);
265  mehEcalSHEvAEESHE[amend]->setAxisTitle("SHE", 2);
266 
267  hcharname = "hEcalMultvAEE_" + ECalString[amend];
268  hchartitle = ECalString[amend] + "Cal Multi vs. AEE";
269  mehEcalMultvAEE[amend] = iBooker.bookProfile(hcharname, hchartitle, 1000, 0., 100., 4000, 0., 40000., "");
270  mehEcalMultvAEE[amend]->setAxisTitle("Analog Equivalent Energy", 1);
271  mehEcalMultvAEE[amend]->setAxisTitle("Number of Digis", 2);
272  }
273  mehEScaln = nullptr;
274 
275  hcharname = "hEcaln_ES";
276  hchartitle = "ESCAL digis";
277  mehEScaln = iBooker.book1D(hcharname, hchartitle, 1000, 0., 5000.);
278  mehEScaln->setAxisTitle("Number of Digis", 1);
279  mehEScaln->setAxisTitle("Count", 2);
280 
281  std::string ADCNumber[3] = {"0", "1", "2"};
282  for (int i = 0; i < 3; ++i) {
283  mehEScalADC[i] = nullptr;
284  hcharname = "hEcalADC" + ADCNumber[i] + "_ES";
285  hchartitle = "ESCAL ADC" + ADCNumber[i];
286  mehEScalADC[i] = iBooker.book1D(hcharname, hchartitle, 1500, 0., 1500.);
287  mehEScalADC[i]->setAxisTitle("ADC" + ADCNumber[i], 1);
288  mehEScalADC[i]->setAxisTitle("Count", 2);
289  }
290 
291  // Si Pixels ***DONE***
292  std::string SiPixelString[7] = {"BRL1", "BRL2", "BRL3", "FWD1n", "FWD1p", "FWD2n", "FWD2p"};
293  for (int j = 0; j < 7; ++j) {
294  mehSiPixeln[j] = nullptr;
295  mehSiPixelADC[j] = nullptr;
296  mehSiPixelRow[j] = nullptr;
297  mehSiPixelCol[j] = nullptr;
298  }
299 
300  iBooker.setCurrentFolder("GlobalDigisV/SiPixels");
301  for (int amend = 0; amend < 7; ++amend) {
302  hcharname = "hSiPixeln_" + SiPixelString[amend];
303  hchartitle = SiPixelString[amend] + " Digis";
304  if (amend < 3)
305  mehSiPixeln[amend] = iBooker.book1D(hcharname, hchartitle, 500, 0., 1000.);
306  else
307  mehSiPixeln[amend] = iBooker.book1D(hcharname, hchartitle, 500, 0., 1000.);
308  mehSiPixeln[amend]->setAxisTitle("Number of Digis", 1);
309  mehSiPixeln[amend]->setAxisTitle("Count", 2);
310 
311  hcharname = "hSiPixelADC_" + SiPixelString[amend];
312  hchartitle = SiPixelString[amend] + " ADC";
313  mehSiPixelADC[amend] = iBooker.book1D(hcharname, hchartitle, 150, 0.0, 300.);
314  mehSiPixelADC[amend]->setAxisTitle("ADC", 1);
315  mehSiPixelADC[amend]->setAxisTitle("Count", 2);
316 
317  hcharname = "hSiPixelRow_" + SiPixelString[amend];
318  hchartitle = SiPixelString[amend] + " Row";
319  mehSiPixelRow[amend] = iBooker.book1D(hcharname, hchartitle, 100, 0.0, 100.);
320  mehSiPixelRow[amend]->setAxisTitle("Row Number", 1);
321  mehSiPixelRow[amend]->setAxisTitle("Count", 2);
322 
323  hcharname = "hSiPixelColumn_" + SiPixelString[amend];
324  hchartitle = SiPixelString[amend] + " Column";
325  mehSiPixelCol[amend] = iBooker.book1D(hcharname, hchartitle, 200, 0.0, 500.);
326  mehSiPixelCol[amend]->setAxisTitle("Column Number", 1);
327  mehSiPixelCol[amend]->setAxisTitle("Count", 2);
328  }
329 
330  // Muons
331  iBooker.setCurrentFolder("GlobalDigisV/Muons");
332 
333  // DT
334  std::string MuonString[4] = {"MB1", "MB2", "MB3", "MB4"};
335 
336  for (int i = 0; i < 4; ++i) {
337  mehDtMuonn[i] = nullptr;
338  mehDtMuonLayer[i] = nullptr;
339  mehDtMuonTime[i] = nullptr;
340  mehDtMuonTimevLayer[i] = nullptr;
341  }
342 
343  for (int j = 0; j < 4; ++j) {
344  hcharname = "hDtMuonn_" + MuonString[j];
345  hchartitle = MuonString[j] + " digis";
346  mehDtMuonn[j] = iBooker.book1D(hcharname, hchartitle, 250, 0., 500.);
347  mehDtMuonn[j]->setAxisTitle("Number of Digis", 1);
348  mehDtMuonn[j]->setAxisTitle("Count", 2);
349 
350  hcharname = "hDtLayer_" + MuonString[j];
351  hchartitle = MuonString[j] + " Layer";
352  mehDtMuonLayer[j] = iBooker.book1D(hcharname, hchartitle, 12, 1., 13.);
353  mehDtMuonLayer[j]->setAxisTitle("4 * (SuperLayer - 1) + Layer", 1);
354  mehDtMuonLayer[j]->setAxisTitle("Count", 2);
355 
356  hcharname = "hDtMuonTime_" + MuonString[j];
357  hchartitle = MuonString[j] + " Time";
358  mehDtMuonTime[j] = iBooker.book1D(hcharname, hchartitle, 300, 400., 1000.);
359  mehDtMuonTime[j]->setAxisTitle("Time", 1);
360  mehDtMuonTime[j]->setAxisTitle("Count", 2);
361 
362  hcharname = "hDtMuonTimevLayer_" + MuonString[j];
363  hchartitle = MuonString[j] + " Time vs. Layer";
364  mehDtMuonTimevLayer[j] = iBooker.bookProfile(hcharname, hchartitle, 12, 1., 13., 300, 400., 1000., "");
365  mehDtMuonTimevLayer[j]->setAxisTitle("4 * (SuperLayer - 1) + Layer", 1);
366  mehDtMuonTimevLayer[j]->setAxisTitle("Time", 2);
367  }
368 
369  // CSC
370  mehCSCStripn = nullptr;
371  hcharname = "hCSCStripn";
372  hchartitle = "CSC Strip digis";
373  mehCSCStripn = iBooker.book1D(hcharname, hchartitle, 250, 0., 500.);
374  mehCSCStripn->setAxisTitle("Number of Digis", 1);
375  mehCSCStripn->setAxisTitle("Count", 2);
376 
377  mehCSCStripADC = nullptr;
378  hcharname = "hCSCStripADC";
379  hchartitle = "CSC Strip ADC";
380  mehCSCStripADC = iBooker.book1D(hcharname, hchartitle, 110, 0., 1100.);
381  mehCSCStripADC->setAxisTitle("ADC", 1);
382  mehCSCStripADC->setAxisTitle("Count", 2);
383 
384  mehCSCWiren = nullptr;
385  hcharname = "hCSCWiren";
386  hchartitle = "CSC Wire digis";
387  mehCSCWiren = iBooker.book1D(hcharname, hchartitle, 250, 0., 500.);
388  mehCSCWiren->setAxisTitle("Number of Digis", 1);
389  mehCSCWiren->setAxisTitle("Count", 2);
390 
391  mehCSCWireTime = nullptr;
392  hcharname = "hCSCWireTime";
393  hchartitle = "CSC Wire Time";
394  mehCSCWireTime = iBooker.book1D(hcharname, hchartitle, 10, 0., 10.);
395  mehCSCWireTime->setAxisTitle("Time", 1);
396  mehCSCWireTime->setAxisTitle("Count", 2);
397 
398  // RPC
399  mehRPCMuonn = nullptr;
400  hcharname = "hRPCMuonn";
401  hchartitle = "RPC digis";
402  mehCSCStripn = iBooker.book1D(hcharname, hchartitle, 250, 0., 500.);
403  mehCSCStripn->setAxisTitle("Number of Digis", 1);
404  mehCSCStripn->setAxisTitle("Count", 2);
405 
406  std::string MuonRPCString[5] = {"Wmin2", "Wmin1", "W0", "Wpu1", "Wpu2"};
407  for (int i = 0; i < 5; ++i) {
408  mehRPCRes[i] = nullptr;
409  }
410 
411  for (int j = 0; j < 5; ++j) {
412  hcharname = "hRPCRes_" + MuonRPCString[j];
413  hchartitle = MuonRPCString[j] + " Digi - Sim";
414  mehRPCRes[j] = iBooker.book1D(hcharname, hchartitle, 200, -8., 8.);
415  mehRPCRes[j]->setAxisTitle("Digi - Sim center of strip x", 1);
416  mehRPCRes[j]->setAxisTitle("Count", 2);
417  }
418 }
MonitorElement * mehEScalADC[3]
MonitorElement * mehDtMuonLayer[4]
MonitorElement * mehEcaln[2]
MonitorElement * mehEScaln
MonitorElement * mehSiPixelRow[7]
MonitorElement * mehRPCRes[5]
MonitorElement * mehSiStripADC[19]
MonitorElement * mehDtMuonTimevLayer[4]
MonitorElement * mehSiStripn[19]
MonitorElement * mehCSCWireTime
MonitorElement * mehEcalMaxPos[2]
MonitorElement * mehDtMuonTime[4]
MonitorElement * mehHcalAEE[4]
MonitorElement * mehRPCMuonn
MonitorElement * mehEcalSHE[2]
MonitorElement * mehEcalAEE[2]
MonitorElement * mehHcalSHEvAEE[4]
MonitorElement * mehCSCStripn
MonitorElement * mehCSCStripADC
MonitorElement * mehSiPixelCol[7]
MonitorElement * mehHcaln[4]
MonitorElement * mehHcalAEESHE[4]
MonitorElement * mehEcalSHEvAEESHE[2]
MonitorElement * mehHcalSHE[4]
MonitorElement * mehCSCWiren
MonitorElement * mehEcalMultvAEE[2]
MonitorElement * mehSiPixeln[7]
MonitorElement * mehSiStripStrip[19]
MonitorElement * mehSiPixelADC[7]
MonitorElement * mehDtMuonn[4]
virtual void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
void GlobalDigisAnalyzer::fillECal ( const edm::Event iEvent,
const edm::EventSetup iSetup 
)
private

Definition at line 501 of file GlobalDigisAnalyzer.cc.

References ESSample::adc(), EcalMGPASample::adc(), HLT_2018_cff::barrelHits, EBHits_Token_, ECalbarrelADCtoGeV_, ECalEBSrc_Token_, ECalEESrc_Token_, ECalESSrc_Token_, ECalgainConv_, EEHits_Token_, edm::DataFrameContainer::empty(), HLT_2018_cff::endcapHits, ESHits_Token_, dqm::impl::MonitorElement::Fill(), EcalMGPASample::gainId(), edm::Event::getByToken(), mps_fire::i, EEDataFrame::id(), EBDataFrame::id(), createfilelist::int, PixelPluginsPhase0_cfi::isBarrel, edm::HandleBase::isValid(), LogDebug, ESDataFrame::MAXSAMPLES, EcalDataFrame::MAXSAMPLES, mehEcalAEE, mehEcalMaxPos, mehEcalMultvAEE, mehEcaln, mehEcalSHE, mehEcalSHEvAEESHE, mehEScalADC, mehEScaln, dataAnalyzerFineBiningParameters_cff::Pmax, gedPhotons_cfi::preshowerHits, edm::Handle< T >::product(), DetId::rawId(), edm::DataFrameContainer::reserve(), simplePhotonAnalyzer_cfi::sample, ESDataFrame::size(), EcalDataFrame::size(), edm::DataFrameContainer::size(), AlCaHLTBitMon_QueryRunRegistry::string, and verbosity.

Referenced by analyze().

501  {
502  std::string MsgLoggerCat = "GlobalDigisAnalyzer_fillECal";
503 
504  TString eventout;
505  if (verbosity > 0)
506  eventout = "\nGathering info:";
507 
508  // extract crossing frame from event
510 
512  // extract EB information
514  bool isBarrel = true;
516  iEvent.getByToken(ECalEBSrc_Token_, EcalDigiEB);
517  bool validDigiEB = true;
518  if (!EcalDigiEB.isValid()) {
519  LogDebug(MsgLoggerCat) << "Unable to find EcalDigiEB in event!";
520  validDigiEB = false;
521  }
522  if (validDigiEB) {
523  if (EcalDigiEB->empty())
524  isBarrel = false;
525 
526  if (isBarrel) {
527  // loop over simhits
528  MapType ebSimMap;
529  iEvent.getByToken(EBHits_Token_, crossingFrame);
530  bool validXFrame = true;
531  if (!crossingFrame.isValid()) {
532  LogDebug(MsgLoggerCat) << "Unable to find cal barrel crossingFrame in event!";
533  validXFrame = false;
534  }
535  if (validXFrame) {
536  const MixCollection<PCaloHit> barrelHits(crossingFrame.product());
537 
538  // keep track of sum of simhit energy in each crystal
539  for (auto const &iHit : barrelHits) {
540  EBDetId ebid = EBDetId(iHit.id());
541 
542  uint32_t crystid = ebid.rawId();
543  ebSimMap[crystid] += iHit.energy();
544  }
545  }
546 
547  // loop over digis
548  const EBDigiCollection *barrelDigi = EcalDigiEB.product();
549 
550  std::vector<double> ebAnalogSignal;
551  std::vector<double> ebADCCounts;
552  std::vector<double> ebADCGains;
553  ebAnalogSignal.reserve(EBDataFrame::MAXSAMPLES);
554  ebADCCounts.reserve(EBDataFrame::MAXSAMPLES);
555  ebADCGains.reserve(EBDataFrame::MAXSAMPLES);
556 
557  int i = 0;
558  for (unsigned int digis = 0; digis < EcalDigiEB->size(); ++digis) {
559  ++i;
560 
561  EBDataFrame ebdf = (*barrelDigi)[digis];
562  int nrSamples = ebdf.size();
563 
564  EBDetId ebid = ebdf.id();
565 
566  double Emax = 0;
567  int Pmax = 0;
568  double pedestalPreSample = 0.;
569  double pedestalPreSampleAnalog = 0.;
570 
571  for (int sample = 0; sample < nrSamples; ++sample) {
572  ebAnalogSignal[sample] = 0.;
573  ebADCCounts[sample] = 0.;
574  ebADCGains[sample] = -1.;
575  }
576 
577  // calculate maximum energy and pedestal
578  for (int sample = 0; sample < nrSamples; ++sample) {
579  EcalMGPASample thisSample = ebdf[sample];
580  ebADCCounts[sample] = (thisSample.adc());
581  ebADCGains[sample] = (thisSample.gainId());
582  ebAnalogSignal[sample] = (ebADCCounts[sample] * ECalgainConv_[(int)ebADCGains[sample]] * ECalbarrelADCtoGeV_);
583  if (Emax < ebAnalogSignal[sample]) {
584  Emax = ebAnalogSignal[sample];
585  Pmax = sample;
586  }
587  if (sample < 3) {
588  pedestalPreSample += ebADCCounts[sample];
589  pedestalPreSampleAnalog +=
590  ebADCCounts[sample] * ECalgainConv_[(int)ebADCGains[sample]] * ECalbarrelADCtoGeV_;
591  }
592  }
593  pedestalPreSample /= 3.;
594  pedestalPreSampleAnalog /= 3.;
595 
596  // calculate pedestal subtracted digi energy in the crystal
597  double Erec = Emax - pedestalPreSampleAnalog * ECalgainConv_[(int)ebADCGains[Pmax]];
598 
599  // gather necessary information
600  mehEcalMaxPos[0]->Fill(Pmax);
601  mehEcalSHE[0]->Fill(ebSimMap[ebid.rawId()]);
602  mehEcalAEE[0]->Fill(Erec);
603  // Adding protection against FPE
604  if (ebSimMap[ebid.rawId()] != 0) {
605  mehEcalSHEvAEESHE[0]->Fill(Erec / ebSimMap[ebid.rawId()], ebSimMap[ebid.rawId()]);
606  }
607  // else {
608  // std::cout<<"Would have been an FPE! with
609  // ebSimMap[ebid.rawId()]==0\n";
610  //}
611 
612  mehEcalMultvAEE[0]->Fill(Pmax, (float)i);
613  }
614 
615  if (verbosity > 1) {
616  eventout += "\n Number of EBDigis collected:.............. ";
617  eventout += i;
618  }
619  mehEcaln[0]->Fill((float)i);
620  }
621  }
622 
624  // extract EE information
626  bool isEndCap = true;
628  iEvent.getByToken(ECalEESrc_Token_, EcalDigiEE);
629  bool validDigiEE = true;
630  if (!EcalDigiEE.isValid()) {
631  LogDebug(MsgLoggerCat) << "Unable to find EcalDigiEE in event!";
632  validDigiEE = false;
633  }
634  if (validDigiEE) {
635  if (EcalDigiEE->empty())
636  isEndCap = false;
637 
638  if (isEndCap) {
639  // loop over simhits
640  MapType eeSimMap;
641  iEvent.getByToken(EEHits_Token_, crossingFrame);
642  bool validXFrame = true;
643  if (!crossingFrame.isValid()) {
644  LogDebug(MsgLoggerCat) << "Unable to find cal endcap crossingFrame in event!";
645  validXFrame = false;
646  }
647  if (validXFrame) {
648  const MixCollection<PCaloHit> endcapHits(crossingFrame.product());
649 
650  // keep track of sum of simhit energy in each crystal
651  for (auto const &iHit : endcapHits) {
652  EEDetId eeid = EEDetId(iHit.id());
653 
654  uint32_t crystid = eeid.rawId();
655  eeSimMap[crystid] += iHit.energy();
656  }
657  }
658 
659  // loop over digis
660  const EEDigiCollection *endcapDigi = EcalDigiEE.product();
661 
662  std::vector<double> eeAnalogSignal;
663  std::vector<double> eeADCCounts;
664  std::vector<double> eeADCGains;
665  eeAnalogSignal.reserve(EEDataFrame::MAXSAMPLES);
666  eeADCCounts.reserve(EEDataFrame::MAXSAMPLES);
667  eeADCGains.reserve(EEDataFrame::MAXSAMPLES);
668 
669  int inc = 0;
670  for (unsigned int digis = 0; digis < EcalDigiEE->size(); ++digis) {
671  ++inc;
672 
673  EEDataFrame eedf = (*endcapDigi)[digis];
674  int nrSamples = eedf.size();
675 
676  EEDetId eeid = eedf.id();
677 
678  double Emax = 0;
679  int Pmax = 0;
680  double pedestalPreSample = 0.;
681  double pedestalPreSampleAnalog = 0.;
682 
683  for (int sample = 0; sample < nrSamples; ++sample) {
684  eeAnalogSignal[sample] = 0.;
685  eeADCCounts[sample] = 0.;
686  eeADCGains[sample] = -1.;
687  }
688 
689  // calculate maximum enery and pedestal
690  for (int sample = 0; sample < nrSamples; ++sample) {
691  EcalMGPASample thisSample = eedf[sample];
692 
693  eeADCCounts[sample] = (thisSample.adc());
694  eeADCGains[sample] = (thisSample.gainId());
695  eeAnalogSignal[sample] = (eeADCCounts[sample] * ECalgainConv_[(int)eeADCGains[sample]] * ECalbarrelADCtoGeV_);
696  if (Emax < eeAnalogSignal[sample]) {
697  Emax = eeAnalogSignal[sample];
698  Pmax = sample;
699  }
700  if (sample < 3) {
701  pedestalPreSample += eeADCCounts[sample];
702  pedestalPreSampleAnalog +=
703  eeADCCounts[sample] * ECalgainConv_[(int)eeADCGains[sample]] * ECalbarrelADCtoGeV_;
704  }
705  }
706  pedestalPreSample /= 3.;
707  pedestalPreSampleAnalog /= 3.;
708 
709  // calculate pedestal subtracted digi energy in the crystal
710  double Erec = Emax - pedestalPreSampleAnalog * ECalgainConv_[(int)eeADCGains[Pmax]];
711 
712  // gather necessary information
713  mehEcalMaxPos[1]->Fill(Pmax);
714  mehEcalSHE[1]->Fill(eeSimMap[eeid.rawId()]);
715  mehEcalAEE[1]->Fill(Erec);
716  // Adding protection against FPE
717  if (eeSimMap[eeid.rawId()] != 0) {
718  mehEcalSHEvAEESHE[1]->Fill(Erec / eeSimMap[eeid.rawId()], eeSimMap[eeid.rawId()]);
719  }
720  // else{
721  // std::cout<<"Would have been an FPE! with
722  // eeSimMap[eeid.rawId()]==0\n";
723  //}
724  mehEcalMultvAEE[1]->Fill(Pmax, (float)inc);
725  }
726 
727  if (verbosity > 1) {
728  eventout += "\n Number of EEDigis collected:.............. ";
729  eventout += inc;
730  }
731 
732  mehEcaln[1]->Fill((float)inc);
733  }
734  }
735 
737  // extract ES information
739  bool isPreshower = true;
741  iEvent.getByToken(ECalESSrc_Token_, EcalDigiES);
742  bool validDigiES = true;
743  if (!EcalDigiES.isValid()) {
744  LogDebug(MsgLoggerCat) << "Unable to find EcalDigiES in event!";
745  validDigiES = false;
746  }
747 
748  // ONLY WHILE GEOMETRY IS REMOVED
749  validDigiES = false;
750 
751  if (validDigiES) {
752  if (EcalDigiES->empty())
753  isPreshower = false;
754 
755  if (isPreshower) {
756  // loop over simhits
757  iEvent.getByToken(ESHits_Token_, crossingFrame);
758  bool validXFrame = true;
759  if (!crossingFrame.isValid()) {
760  LogDebug(MsgLoggerCat) << "Unable to find cal preshower crossingFrame in event!";
761  validXFrame = false;
762  }
763  if (validXFrame) {
764  const MixCollection<PCaloHit> preshowerHits(crossingFrame.product());
765 
766  // keep track of sum of simhit energy in each crystal
767  MapType esSimMap;
768  for (auto const &iHit : preshowerHits) {
769  ESDetId esid = ESDetId(iHit.id());
770 
771  uint32_t crystid = esid.rawId();
772  esSimMap[crystid] += iHit.energy();
773  }
774  }
775 
776  // loop over digis
777  const ESDigiCollection *preshowerDigi = EcalDigiES.product();
778 
779  std::vector<double> esADCCounts;
780  esADCCounts.reserve(ESDataFrame::MAXSAMPLES);
781 
782  int i = 0;
783  for (unsigned int digis = 0; digis < EcalDigiES->size(); ++digis) {
784  ++i;
785 
786  ESDataFrame esdf = (*preshowerDigi)[digis];
787  int nrSamples = esdf.size();
788 
789  for (int sample = 0; sample < nrSamples; ++sample) {
790  esADCCounts[sample] = 0.;
791  }
792 
793  // gether ADC counts
794  for (int sample = 0; sample < nrSamples; ++sample) {
795  ESSample thisSample = esdf[sample];
796  esADCCounts[sample] = (thisSample.adc());
797  }
798 
799  mehEScalADC[0]->Fill(esADCCounts[0]);
800  mehEScalADC[1]->Fill(esADCCounts[1]);
801  mehEScalADC[2]->Fill(esADCCounts[2]);
802  }
803 
804  if (verbosity > 1) {
805  eventout += "\n Number of ESDigis collected:.............. ";
806  eventout += i;
807  }
808 
809  mehEScaln->Fill((float)i);
810  }
811  }
812  if (verbosity > 0)
813  edm::LogInfo(MsgLoggerCat) << eventout << "\n";
814 
815  return;
816 }
#define LogDebug(id)
edm::EDGetTokenT< CrossingFrame< PCaloHit > > EBHits_Token_
MonitorElement * mehEScalADC[3]
key_type id() const
Definition: EBDataFrame.h:28
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:525
MonitorElement * mehEcaln[2]
MonitorElement * mehEScaln
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:57
int size() const
Definition: ESDataFrame.h:21
int gainId() const
get the gainId (2 bits)
int size() const
Definition: EcalDataFrame.h:26
edm::EDGetTokenT< EEDigiCollection > ECalEESrc_Token_
void Fill(long long x)
MonitorElement * mehEcalMaxPos[2]
edm::EDGetTokenT< CrossingFrame< PCaloHit > > ESHits_Token_
static const int MAXSAMPLES
Definition: ESDataFrame.h:30
bool isValid() const
Definition: HandleBase.h:70
std::map< int, double, std::less< int > > ECalgainConv_
key_type id() const
Definition: EEDataFrame.h:24
MonitorElement * mehEcalSHE[2]
std::map< uint32_t, float, std::less< uint32_t > > MapType
void reserve(size_t isize)
MonitorElement * mehEcalAEE[2]
edm::EDGetTokenT< EBDigiCollection > ECalEBSrc_Token_
T const * product() const
Definition: Handle.h:69
edm::EDGetTokenT< ESDigiCollection > ECalESSrc_Token_
edm::EDGetTokenT< CrossingFrame< PCaloHit > > EEHits_Token_
MonitorElement * mehEcalSHEvAEESHE[2]
int adc() const
get the ADC sample (singed 16 bits)
Definition: ESSample.h:16
static constexpr int MAXSAMPLES
Definition: EcalDataFrame.h:48
MonitorElement * mehEcalMultvAEE[2]
int adc() const
get the ADC sample (12 bits)
void GlobalDigisAnalyzer::fillHCal ( const edm::Event iEvent,
const edm::EventSetup iSetup 
)
private

Definition at line 818 of file GlobalDigisAnalyzer.cc.

References HcalCoderDb::adc2fC(), AlignmentProducer_cff::calibrations, dqm::impl::MonitorElement::Fill(), edm::EventSetup::get(), edm::Event::getByToken(), HcalDbService::getHcalCalibrations(), HcalDbService::getHcalCoder(), HcalDbService::getHcalShape(), photonIsolationHIProducer_cfi::hbhe, HBHEDigi_Token_, HCalSrc_Token_, photonIsolationHIProducer_cfi::hf, HFDigi_Token_, photonIsolationHIProducer_cfi::ho, HODigi_Token_, ihf, cuy::ii, edm::ESHandleBase::isValid(), edm::HandleBase::isValid(), LogDebug, mehHcalAEE, mehHcalAEESHE, mehHcaln, mehHcalSHE, mehHcalSHEvAEE, HcalCalibrations::pedestal(), edm::Handle< T >::product(), DetId::rawId(), sdHcalBrl, sdHcalEC, sdHcalFwd, sdHcalOut, HLTBitAnalyser_cfi::simhits, CaloSamples::size(), AlCaHLTBitMon_QueryRunRegistry::string, and verbosity.

Referenced by analyze().

818  {
819  std::string MsgLoggerCat = "GlobalDigisAnalyzer_fillHCal";
820 
821  TString eventout;
822  if (verbosity > 0)
823  eventout = "\nGathering info:";
824 
825  // get calibration info
826  edm::ESHandle<HcalDbService> HCalconditions;
827  iSetup.get<HcalDbRecord>().get(HCalconditions);
828  if (!HCalconditions.isValid()) {
829  edm::LogWarning(MsgLoggerCat) << "Unable to find HCalconditions in event!";
830  return;
831  }
832  // HcalCalibrations calibrations;
833  CaloSamples tool;
834 
836  // extract simhit info
839  iEvent.getByToken(HCalSrc_Token_, hcalHits);
840  bool validhcalHits = true;
841  if (!hcalHits.isValid()) {
842  LogDebug(MsgLoggerCat) << "Unable to find hcalHits in event!";
843  validhcalHits = false;
844  }
845  MapType fHBEnergySimHits;
846  MapType fHEEnergySimHits;
847  MapType fHOEnergySimHits;
848  MapType fHFEnergySimHits;
849  if (validhcalHits) {
850  const edm::PCaloHitContainer *simhitResult = hcalHits.product();
851 
852  for (std::vector<PCaloHit>::const_iterator simhits = simhitResult->begin(); simhits != simhitResult->end();
853  ++simhits) {
854  HcalDetId detId(simhits->id());
855  uint32_t cellid = detId.rawId();
856 
857  if (detId.subdet() == sdHcalBrl) {
858  fHBEnergySimHits[cellid] += simhits->energy();
859  }
860  if (detId.subdet() == sdHcalEC) {
861  fHEEnergySimHits[cellid] += simhits->energy();
862  }
863  if (detId.subdet() == sdHcalOut) {
864  fHOEnergySimHits[cellid] += simhits->energy();
865  }
866  if (detId.subdet() == sdHcalFwd) {
867  fHFEnergySimHits[cellid] += simhits->energy();
868  }
869  }
870  }
871 
873  // get HBHE information
876  iEvent.getByToken(HBHEDigi_Token_, hbhe);
877  bool validHBHE = true;
878  if (!hbhe.isValid()) {
879  LogDebug(MsgLoggerCat) << "Unable to find HBHEDataFrame in event!";
880  validHBHE = false;
881  }
882 
883  if (validHBHE) {
885 
886  int iHB = 0;
887  int iHE = 0;
888  for (ihbhe = hbhe->begin(); ihbhe != hbhe->end(); ++ihbhe) {
889  HcalDetId cell(ihbhe->id());
890 
891  if ((cell.subdet() == sdHcalBrl) || (cell.subdet() == sdHcalEC)) {
892  // HCalconditions->makeHcalCalibration(cell, &calibrations);
893  const HcalCalibrations &calibrations = HCalconditions->getHcalCalibrations(cell);
894  const HcalQIECoder *channelCoder = HCalconditions->getHcalCoder(cell);
895  const HcalQIEShape *shape = HCalconditions->getHcalShape(channelCoder);
896  HcalCoderDb coder(*channelCoder, *shape);
897  coder.adc2fC(*ihbhe, tool);
898 
899  // get HB info
900  if (cell.subdet() == sdHcalBrl) {
901  ++iHB;
902  float fDigiSum = 0.0;
903  for (int ii = 0; ii < tool.size(); ++ii) {
904  // default ped is 4.5
905  int capid = (*ihbhe)[ii].capid();
906  fDigiSum += (tool[ii] - calibrations.pedestal(capid));
907  }
908 
909  mehHcalSHE[0]->Fill(fHFEnergySimHits[cell.rawId()]);
910  mehHcalAEE[0]->Fill(fDigiSum);
911  // Adding protection against FPE
912  if (fHFEnergySimHits[cell.rawId()] != 0) {
913  mehHcalAEESHE[0]->Fill(fDigiSum / fHFEnergySimHits[cell.rawId()]);
914  }
915  // else {
916  // std::cout<<"It would have been an FPE! with
917  // fHFEnergySimHits[cell.rawId()]==0!\n";
918  //}
919  mehHcalSHEvAEE[0]->Fill(fDigiSum, fHFEnergySimHits[cell.rawId()]);
920  }
921 
922  // get HE info
923  if (cell.subdet() == sdHcalEC) {
924  ++iHE;
925  float fDigiSum = 0.0;
926  for (int ii = 0; ii < tool.size(); ++ii) {
927  int capid = (*ihbhe)[ii].capid();
928  fDigiSum += (tool[ii] - calibrations.pedestal(capid));
929  }
930 
931  mehHcalSHE[1]->Fill(fHFEnergySimHits[cell.rawId()]);
932  mehHcalAEE[1]->Fill(fDigiSum);
933  // Adding protection against FPE
934  if (fHFEnergySimHits[cell.rawId()] != 0) {
935  mehHcalAEESHE[1]->Fill(fDigiSum / fHFEnergySimHits[cell.rawId()]);
936  }
937  // else{
938  // std::cout<<"It would have been an FPE! with
939  // fHFEnergySimHits[cell.rawId()]==0!\n";
940  //}
941  mehHcalSHEvAEE[1]->Fill(fDigiSum, fHFEnergySimHits[cell.rawId()]);
942  }
943  }
944  }
945 
946  if (verbosity > 1) {
947  eventout += "\n Number of HBDigis collected:.............. ";
948  eventout += iHB;
949  }
950  mehHcaln[0]->Fill((float)iHB);
951 
952  if (verbosity > 1) {
953  eventout += "\n Number of HEDigis collected:.............. ";
954  eventout += iHE;
955  }
956  mehHcaln[1]->Fill((float)iHE);
957  }
958 
960  // get HO information
963  iEvent.getByToken(HODigi_Token_, ho);
964  bool validHO = true;
965  if (!ho.isValid()) {
966  LogDebug(MsgLoggerCat) << "Unable to find HODataFrame in event!";
967  validHO = false;
968  }
969  if (validHO) {
971 
972  int iHO = 0;
973  for (iho = ho->begin(); iho != ho->end(); ++iho) {
974  HcalDetId cell(iho->id());
975 
976  if (cell.subdet() == sdHcalOut) {
977  // HCalconditions->makeHcalCalibration(cell, &calibrations);
978  const HcalCalibrations &calibrations = HCalconditions->getHcalCalibrations(cell);
979  const HcalQIECoder *channelCoder = HCalconditions->getHcalCoder(cell);
980  const HcalQIEShape *shape = HCalconditions->getHcalShape(channelCoder);
981  HcalCoderDb coder(*channelCoder, *shape);
982  coder.adc2fC(*iho, tool);
983 
984  ++iHO;
985  float fDigiSum = 0.0;
986  for (int ii = 0; ii < tool.size(); ++ii) {
987  // default ped is 4.5
988  int capid = (*iho)[ii].capid();
989  fDigiSum += (tool[ii] - calibrations.pedestal(capid));
990  }
991 
992  mehHcalSHE[2]->Fill(fHFEnergySimHits[cell.rawId()]);
993  mehHcalAEE[2]->Fill(fDigiSum);
994  // Adding protection against FPE
995  if (fHFEnergySimHits[cell.rawId()] != 0) {
996  mehHcalAEESHE[2]->Fill(fDigiSum / fHFEnergySimHits[cell.rawId()]);
997  }
998  // else{
999  // std::cout<<"It would have been an FPE! with
1000  // fHFEnergySimHits[cell.rawId()]==0!\n";
1001  //}
1002  mehHcalSHEvAEE[2]->Fill(fDigiSum, fHFEnergySimHits[cell.rawId()]);
1003  }
1004  }
1005 
1006  if (verbosity > 1) {
1007  eventout += "\n Number of HODigis collected:.............. ";
1008  eventout += iHO;
1009  }
1010  mehHcaln[2]->Fill((float)iHO);
1011  }
1012 
1014  // get HF information
1017  iEvent.getByToken(HFDigi_Token_, hf);
1018  bool validHF = true;
1019  if (!hf.isValid()) {
1020  LogDebug(MsgLoggerCat) << "Unable to find HFDataFrame in event!";
1021  validHF = false;
1022  }
1023  if (validHF) {
1025 
1026  int iHF = 0;
1027  for (ihf = hf->begin(); ihf != hf->end(); ++ihf) {
1028  HcalDetId cell(ihf->id());
1029 
1030  if (cell.subdet() == sdHcalFwd) {
1031  // HCalconditions->makeHcalCalibration(cell, &calibrations);
1032  const HcalCalibrations &calibrations = HCalconditions->getHcalCalibrations(cell);
1033  const HcalQIECoder *channelCoder = HCalconditions->getHcalCoder(cell);
1034  const HcalQIEShape *shape = HCalconditions->getHcalShape(channelCoder);
1035  HcalCoderDb coder(*channelCoder, *shape);
1036  coder.adc2fC(*ihf, tool);
1037 
1038  ++iHF;
1039  float fDigiSum = 0.0;
1040  for (int ii = 0; ii < tool.size(); ++ii) {
1041  // default ped is 1.73077
1042  int capid = (*ihf)[ii].capid();
1043  fDigiSum += (tool[ii] - calibrations.pedestal(capid));
1044  }
1045 
1046  mehHcalSHE[3]->Fill(fHFEnergySimHits[cell.rawId()]);
1047  mehHcalAEE[3]->Fill(fDigiSum);
1048  // Adding protection against FPE
1049  if (fHFEnergySimHits[cell.rawId()] != 0) {
1050  mehHcalAEESHE[3]->Fill(fDigiSum / fHFEnergySimHits[cell.rawId()]);
1051  }
1052  // else{
1053  // std::cout<<"It would have been an FPE! with
1054  // fHFEnergySimHits[cell.rawId()]==0!\n";
1055  //}
1056  mehHcalSHEvAEE[3]->Fill(fDigiSum, fHFEnergySimHits[cell.rawId()]);
1057  }
1058  }
1059 
1060  if (verbosity > 1) {
1061  eventout += "\n Number of HFDigis collected:.............. ";
1062  eventout += iHF;
1063  }
1064  mehHcaln[3]->Fill((float)iHF);
1065  }
1066 
1067  if (verbosity > 0)
1068  edm::LogInfo(MsgLoggerCat) << eventout << "\n";
1069 
1070  return;
1071 }
#define LogDebug(id)
std::vector< PCaloHit > PCaloHitContainer
int ihf
static const int sdHcalOut
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:525
edm::EDGetTokenT< edm::PCaloHitContainer > HCalSrc_Token_
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:57
std::vector< T >::const_iterator const_iterator
void Fill(long long x)
edm::EDGetTokenT< edm::SortedCollection< HFDataFrame > > HFDigi_Token_
MonitorElement * mehHcalAEE[4]
bool isValid() const
Definition: HandleBase.h:70
edm::EDGetTokenT< edm::SortedCollection< HODataFrame > > HODigi_Token_
ii
Definition: cuy.py:590
std::map< uint32_t, float, std::less< uint32_t > > MapType
constexpr double pedestal(int fCapId) const
get pedestal for capid=0..3
MonitorElement * mehHcalSHEvAEE[4]
T const * product() const
Definition: Handle.h:69
int size() const
get the size
Definition: CaloSamples.h:24
static const int sdHcalFwd
const HcalQIECoder * getHcalCoder(const HcalGenericDetId &fId) const
static const int sdHcalBrl
const HcalQIEShape * getHcalShape(const HcalGenericDetId &fId) const
MonitorElement * mehHcaln[4]
edm::EDGetTokenT< edm::SortedCollection< HBHEDataFrame > > HBHEDigi_Token_
MonitorElement * mehHcalAEESHE[4]
MonitorElement * mehHcalSHE[4]
T get() const
Definition: EventSetup.h:73
bool isValid() const
Definition: ESHandle.h:44
const HcalCalibrations & getHcalCalibrations(const HcalGenericDetId &fId) const
static const int sdHcalEC
void GlobalDigisAnalyzer::fillMuon ( const edm::Event iEvent,
const edm::EventSetup iSetup 
)
private

Definition at line 1322 of file GlobalDigisAnalyzer.cc.

References RPCRoll::centreOfStrip(), dqm::impl::MonitorElement::Fill(), HcalObjRepresent::Fill(), edm::EventSetup::get(), edm::Event::getByToken(), edm::ESHandleBase::isValid(), edm::HandleBase::isValid(), dqmiolumiharvest::j, dqmdumpme::last, LogDebug, mehCSCStripADC, mehCSCStripn, mehCSCWiren, mehCSCWireTime, mehDtMuonLayer, mehDtMuonn, mehDtMuonTime, mehDtMuonTimevLayer, mehRPCMuonn, mehRPCRes, MuCSCStripSrc_Token_, MuCSCWireSrc_Token_, MuDTSrc_Token_, MuRPCSrc_Token_, me0TriggerPseudoDigis_cff::nStrips, EcalCondDBWriter_cfi::pedestal, OfflineHarvestingSequence_cosmic::ptype, FastTimerService_cff::range, RPCDetId::region(), RPCDetId::ring(), RPCGeometry::roll(), RPCSimHit_Token_, AlCaHLTBitMon_QueryRunRegistry::string, DigiDM_cff::strips, theCSCStripPedestalCount, theCSCStripPedestalSum, verbosity, DigiDM_cff::wires, and x.

Referenced by analyze().

1322  {
1323  std::string MsgLoggerCat = "GlobalDigisAnalyzer_fillMuon";
1324 
1325  TString eventout;
1326  if (verbosity > 0)
1327  eventout = "\nGathering info:";
1328 
1329  // get DT information
1331  iEvent.getByToken(MuDTSrc_Token_, dtDigis);
1332  bool validdtDigis = true;
1333  if (!dtDigis.isValid()) {
1334  LogDebug(MsgLoggerCat) << "Unable to find dtDigis in event!";
1335  validdtDigis = false;
1336  }
1337  if (validdtDigis) {
1338  int nDt0 = 0;
1339  int nDt1 = 0;
1340  int nDt2 = 0;
1341  int nDt3 = 0;
1342  int nDt = 0;
1344  for (detUnitIt = dtDigis->begin(); detUnitIt != dtDigis->end(); ++detUnitIt) {
1345  const DTLayerId &id = (*detUnitIt).first;
1346  const DTDigiCollection::Range &range = (*detUnitIt).second;
1347  for (DTDigiCollection::const_iterator digiIt = range.first; digiIt != range.second; ++digiIt) {
1348  ++nDt;
1349 
1350  DTWireId wireId(id, (*digiIt).wire());
1351  if (wireId.station() == 1) {
1352  mehDtMuonLayer[0]->Fill(id.layer());
1353  mehDtMuonTime[0]->Fill((*digiIt).time());
1354  mehDtMuonTimevLayer[0]->Fill(id.layer(), (*digiIt).time());
1355  ++nDt0;
1356  }
1357  if (wireId.station() == 2) {
1358  mehDtMuonLayer[1]->Fill(id.layer());
1359  mehDtMuonTime[1]->Fill((*digiIt).time());
1360  mehDtMuonTimevLayer[1]->Fill(id.layer(), (*digiIt).time());
1361  ++nDt1;
1362  }
1363  if (wireId.station() == 3) {
1364  mehDtMuonLayer[2]->Fill(id.layer());
1365  mehDtMuonTime[2]->Fill((*digiIt).time());
1366  mehDtMuonTimevLayer[2]->Fill(id.layer(), (*digiIt).time());
1367  ++nDt2;
1368  }
1369  if (wireId.station() == 4) {
1370  mehDtMuonLayer[3]->Fill(id.layer());
1371  mehDtMuonTime[3]->Fill((*digiIt).time());
1372  mehDtMuonTimevLayer[3]->Fill(id.layer(), (*digiIt).time());
1373  ++nDt3;
1374  }
1375  }
1376  }
1377  mehDtMuonn[0]->Fill((float)nDt0);
1378  mehDtMuonn[1]->Fill((float)nDt1);
1379  mehDtMuonn[2]->Fill((float)nDt2);
1380  mehDtMuonn[3]->Fill((float)nDt3);
1381 
1382  if (verbosity > 1) {
1383  eventout += "\n Number of DtMuonDigis collected:.......... ";
1384  eventout += nDt;
1385  }
1386  }
1387 
1388  // get CSC Strip information
1390  iEvent.getByToken(MuCSCStripSrc_Token_, strips);
1391  bool validstrips = true;
1392  if (!strips.isValid()) {
1393  LogDebug(MsgLoggerCat) << "Unable to find muon strips in event!";
1394  validstrips = false;
1395  }
1396 
1397  if (validstrips) {
1398  int nStrips = 0;
1399  for (CSCStripDigiCollection::DigiRangeIterator j = strips->begin(); j != strips->end(); ++j) {
1400  std::vector<CSCStripDigi>::const_iterator digiItr = (*j).second.first;
1401  std::vector<CSCStripDigi>::const_iterator last = (*j).second.second;
1402 
1403  for (; digiItr != last; ++digiItr) {
1404  ++nStrips;
1405 
1406  // average pedestals
1407  std::vector<int> adcCounts = digiItr->getADCCounts();
1408  theCSCStripPedestalSum += adcCounts[0];
1409  theCSCStripPedestalSum += adcCounts[1];
1411 
1412  // if there are enough pedestal statistics
1413  if (theCSCStripPedestalCount > 100) {
1415  if (adcCounts[5] > (pedestal + 100))
1416  mehCSCStripADC->Fill(adcCounts[4] - pedestal);
1417  }
1418  }
1419  }
1420 
1421  if (verbosity > 1) {
1422  eventout += "\n Number of CSCStripDigis collected:........ ";
1423  eventout += nStrips;
1424  }
1425  mehCSCStripn->Fill((float)nStrips);
1426  }
1427 
1428  // get CSC Wire information
1430  iEvent.getByToken(MuCSCWireSrc_Token_, wires);
1431  bool validwires = true;
1432  if (!wires.isValid()) {
1433  LogDebug(MsgLoggerCat) << "Unable to find muon wires in event!";
1434  validwires = false;
1435  }
1436 
1437  if (validwires) {
1438  int nWires = 0;
1439  for (CSCWireDigiCollection::DigiRangeIterator j = wires->begin(); j != wires->end(); ++j) {
1440  std::vector<CSCWireDigi>::const_iterator digiItr = (*j).second.first;
1441  std::vector<CSCWireDigi>::const_iterator endDigi = (*j).second.second;
1442 
1443  for (; digiItr != endDigi; ++digiItr) {
1444  ++nWires;
1445  mehCSCWireTime->Fill(digiItr->getTimeBin());
1446  }
1447  }
1448 
1449  if (verbosity > 1) {
1450  eventout += "\n Number of CSCWireDigis collected:......... ";
1451  eventout += nWires;
1452  }
1453  mehCSCWiren->Fill((float)nWires);
1454  }
1455 
1456  // get RPC information
1457  // Get the RPC Geometry
1459  iSetup.get<MuonGeometryRecord>().get(rpcGeom);
1460  if (!rpcGeom.isValid()) {
1461  edm::LogWarning(MsgLoggerCat) << "Unable to find RPCGeometryRecord in event!";
1462  return;
1463  }
1464 
1466  iEvent.getByToken(RPCSimHit_Token_, rpcsimHit);
1467  bool validrpcsim = true;
1468  if (!rpcsimHit.isValid()) {
1469  LogDebug(MsgLoggerCat) << "Unable to find rpcsimHit in event!";
1470  validrpcsim = false;
1471  }
1472 
1474  iEvent.getByToken(MuRPCSrc_Token_, rpcDigis);
1475  bool validrpcdigi = true;
1476  if (!rpcDigis.isValid()) {
1477  LogDebug(MsgLoggerCat) << "Unable to find rpcDigis in event!";
1478  validrpcdigi = false;
1479  }
1480 
1481  // ONLY UNTIL PROBLEM WITH RPC DIGIS IS FIGURED OUT
1482  validrpcdigi = false;
1483 
1484  // Loop on simhits
1485  edm::PSimHitContainer::const_iterator rpcsimIt;
1486  std::map<RPCDetId, std::vector<double>> allsims;
1487 
1488  if (validrpcsim) {
1489  for (rpcsimIt = rpcsimHit->begin(); rpcsimIt != rpcsimHit->end(); rpcsimIt++) {
1490  RPCDetId Rsid = (RPCDetId)(*rpcsimIt).detUnitId();
1491  int ptype = rpcsimIt->particleType();
1492 
1493  if (ptype == 13 || ptype == -13) {
1494  std::vector<double> buff;
1495  if (allsims.find(Rsid) != allsims.end()) {
1496  buff = allsims[Rsid];
1497  }
1498  buff.push_back(rpcsimIt->localPosition().x());
1499  allsims[Rsid] = buff;
1500  }
1501  }
1502  }
1503 
1504  // CRASH HAPPENS SOMEWHERE HERE IN FOR DECLARATION
1505  // WHAT IS WRONG WITH rpcDigis?????
1506  if (validrpcdigi) {
1507  int nRPC = 0;
1509  for (rpcdetUnitIt = rpcDigis->begin(); rpcdetUnitIt != rpcDigis->end(); ++rpcdetUnitIt) {
1510  const RPCDetId Rsid = (*rpcdetUnitIt).first;
1511  const RPCRoll *roll = dynamic_cast<const RPCRoll *>(rpcGeom->roll(Rsid));
1512  const RPCDigiCollection::Range &range = (*rpcdetUnitIt).second;
1513 
1514  std::vector<double> sims;
1515  if (allsims.find(Rsid) != allsims.end()) {
1516  sims = allsims[Rsid];
1517  }
1518 
1519  int ndigi = 0;
1520  for (RPCDigiCollection::const_iterator rpcdigiIt = range.first; rpcdigiIt != range.second; ++rpcdigiIt) {
1521  ++ndigi;
1522  ++nRPC;
1523  }
1524 
1525  if (sims.size() == 1 && ndigi == 1) {
1526  double dis = roll->centreOfStrip(range.first->strip()).x() - sims[0];
1527 
1528  if (Rsid.region() == 0) {
1529  if (Rsid.ring() == -2)
1530  mehRPCRes[0]->Fill((float)dis);
1531  else if (Rsid.ring() == -1)
1532  mehRPCRes[1]->Fill((float)dis);
1533  else if (Rsid.ring() == 0)
1534  mehRPCRes[2]->Fill((float)dis);
1535  else if (Rsid.ring() == 1)
1536  mehRPCRes[3]->Fill((float)dis);
1537  else if (Rsid.ring() == 2)
1538  mehRPCRes[4]->Fill((float)dis);
1539  }
1540  }
1541  }
1542 
1543  if (verbosity > 1) {
1544  eventout += "\n Number of RPCDigis collected:.............. ";
1545  eventout += nRPC;
1546  }
1547  mehRPCMuonn->Fill(float(nRPC));
1548  }
1549 
1550  if (verbosity > 0)
1551  edm::LogInfo(MsgLoggerCat) << eventout << "\n";
1552 
1553  return;
1554 }
#define LogDebug(id)
LocalPoint centreOfStrip(int strip) const
Definition: RPCRoll.cc:26
MonitorElement * mehDtMuonLayer[4]
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:525
MonitorElement * mehRPCRes[5]
edm::EDGetTokenT< CSCStripDigiCollection > MuCSCStripSrc_Token_
MonitorElement * mehDtMuonTimevLayer[4]
MonitorElement * mehCSCWireTime
nStrips
1.2 is to make the matching window safely the two nearest strips 0.35 is the size of an ME0 chamber i...
void Fill(long long x)
edm::EDGetTokenT< edm::PSimHitContainer > RPCSimHit_Token_
MonitorElement * mehDtMuonTime[4]
void Fill(HcalDetId &id, double val, std::vector< TH2F > &depth)
int ring() const
Definition: RPCDetId.h:59
edm::EDGetTokenT< CSCWireDigiCollection > MuCSCWireSrc_Token_
bool isValid() const
Definition: HandleBase.h:70
MonitorElement * mehRPCMuonn
MonitorElement * mehCSCStripn
MonitorElement * mehCSCStripADC
std::pair< const_iterator, const_iterator > Range
std::vector< DigiType >::const_iterator const_iterator
T get() const
Definition: EventSetup.h:73
MonitorElement * mehCSCWiren
strips
#turn off noise in all subdetectors simHcalUnsuppressedDigis.doNoise = False mix.digitizers.hcal.doNoise = False simEcalUnsuppressedDigis.doNoise = False mix.digitizers.ecal.doNoise = False simEcalUnsuppressedDigis.doESNoise = False simSiPixelDigis.AddNoise = False mix.digitizers.pixel.AddNoise = False simSiStripDigis.Noise = False mix.digitizers.strip.AddNoise = False
Definition: DigiDM_cff.py:32
edm::EDGetTokenT< RPCDigiCollection > MuRPCSrc_Token_
bool isValid() const
Definition: ESHandle.h:44
edm::EDGetTokenT< DTDigiCollection > MuDTSrc_Token_
const RPCRoll * roll(RPCDetId id) const
Return a roll given its id.
Definition: RPCGeometry.cc:50
MonitorElement * mehDtMuonn[4]
int region() const
Region id: 0 for Barrel, +/-1 For +/- Endcap.
Definition: RPCDetId.h:53
void GlobalDigisAnalyzer::fillTrk ( const edm::Event iEvent,
const edm::EventSetup iSetup 
)
private

Definition at line 1073 of file GlobalDigisAnalyzer.cc.

References begin, edm::DetSetVector< T >::begin(), end, edm::DetSetVector< T >::end(), dqm::impl::MonitorElement::Fill(), edm::EventSetup::get(), edm::Event::getByToken(), mps_fire::i, edm::HandleBase::isValid(), LogDebug, mehSiPixelADC, mehSiPixelCol, mehSiPixeln, mehSiPixelRow, mehSiStripADC, mehSiStripn, mehSiStripStrip, edm::ESHandle< T >::product(), TrackerTopology::pxbLayer(), TrackerTopology::pxfDisk(), TrackerTopology::pxfSide(), sdPxlBrl, sdPxlFwd, sdSiTEC, sdSiTIB, sdSiTID, sdSiTOB, SiPxlSrc_Token_, SiStripSrc_Token_, AlCaHLTBitMon_QueryRunRegistry::string, DetId::subdetId(), TrackerTopology::tecWheel(), TrackerTopology::tibLayer(), TrackerTopology::tidWheel(), TrackerTopology::tobLayer(), and verbosity.

Referenced by analyze().

1073  {
1074  // Retrieve tracker topology from geometry
1075  edm::ESHandle<TrackerTopology> tTopoHandle;
1076  iSetup.get<TrackerTopologyRcd>().get(tTopoHandle);
1077  const TrackerTopology *const tTopo = tTopoHandle.product();
1078 
1079  std::string MsgLoggerCat = "GlobalDigisAnalyzer_fillTrk";
1080 
1081  TString eventout;
1082  if (verbosity > 0)
1083  eventout = "\nGathering info:";
1084 
1085  // get strip information
1087  iEvent.getByToken(SiStripSrc_Token_, stripDigis);
1088  bool validstripDigis = true;
1089  if (!stripDigis.isValid()) {
1090  LogDebug(MsgLoggerCat) << "Unable to find stripDigis in event!";
1091  validstripDigis = false;
1092  }
1093 
1094  if (validstripDigis) {
1095  int nStripBrl = 0, nStripFwd = 0;
1097  for (DSViter = stripDigis->begin(); DSViter != stripDigis->end(); ++DSViter) {
1098  unsigned int id = DSViter->id;
1099  DetId detId(id);
1103 
1104  // get TIB
1105  if (detId.subdetId() == sdSiTIB) {
1106  for (iter = begin; iter != end; ++iter) {
1107  ++nStripBrl;
1108  if (tTopo->tibLayer(id) == 1) {
1109  mehSiStripADC[0]->Fill((*iter).adc());
1110  mehSiStripStrip[0]->Fill((*iter).strip());
1111  }
1112  if (tTopo->tibLayer(id) == 2) {
1113  mehSiStripADC[1]->Fill((*iter).adc());
1114  mehSiStripStrip[1]->Fill((*iter).strip());
1115  }
1116  if (tTopo->tibLayer(id) == 3) {
1117  mehSiStripADC[2]->Fill((*iter).adc());
1118  mehSiStripStrip[2]->Fill((*iter).strip());
1119  }
1120  if (tTopo->tibLayer(id) == 4) {
1121  mehSiStripADC[3]->Fill((*iter).adc());
1122  mehSiStripStrip[3]->Fill((*iter).strip());
1123  }
1124  }
1125  }
1126 
1127  // get TOB
1128  if (detId.subdetId() == sdSiTOB) {
1129  for (iter = begin; iter != end; ++iter) {
1130  ++nStripBrl;
1131  if (tTopo->tobLayer(id) == 1) {
1132  mehSiStripADC[4]->Fill((*iter).adc());
1133  mehSiStripStrip[4]->Fill((*iter).strip());
1134  }
1135  if (tTopo->tobLayer(id) == 2) {
1136  mehSiStripADC[5]->Fill((*iter).adc());
1137  mehSiStripStrip[5]->Fill((*iter).strip());
1138  }
1139  if (tTopo->tobLayer(id) == 3) {
1140  mehSiStripADC[6]->Fill((*iter).adc());
1141  mehSiStripStrip[6]->Fill((*iter).strip());
1142  }
1143  if (tTopo->tobLayer(id) == 4) {
1144  mehSiStripADC[7]->Fill((*iter).adc());
1145  mehSiStripStrip[7]->Fill((*iter).strip());
1146  }
1147  }
1148  }
1149 
1150  // get TID
1151  if (detId.subdetId() == sdSiTID) {
1152  for (iter = begin; iter != end; ++iter) {
1153  ++nStripFwd;
1154  if (tTopo->tidWheel(id) == 1) {
1155  mehSiStripADC[8]->Fill((*iter).adc());
1156  mehSiStripStrip[8]->Fill((*iter).strip());
1157  }
1158  if (tTopo->tidWheel(id) == 2) {
1159  mehSiStripADC[9]->Fill((*iter).adc());
1160  mehSiStripStrip[9]->Fill((*iter).strip());
1161  }
1162  if (tTopo->tidWheel(id) == 3) {
1163  mehSiStripADC[10]->Fill((*iter).adc());
1164  mehSiStripStrip[10]->Fill((*iter).strip());
1165  }
1166  }
1167  }
1168 
1169  // get TEC
1170  if (detId.subdetId() == sdSiTEC) {
1171  for (iter = begin; iter != end; ++iter) {
1172  ++nStripFwd;
1173  if (tTopo->tecWheel(id) == 1) {
1174  mehSiStripADC[11]->Fill((*iter).adc());
1175  mehSiStripStrip[11]->Fill((*iter).strip());
1176  }
1177  if (tTopo->tecWheel(id) == 2) {
1178  mehSiStripADC[12]->Fill((*iter).adc());
1179  mehSiStripStrip[12]->Fill((*iter).strip());
1180  }
1181  if (tTopo->tecWheel(id) == 3) {
1182  mehSiStripADC[13]->Fill((*iter).adc());
1183  mehSiStripStrip[13]->Fill((*iter).strip());
1184  }
1185  if (tTopo->tecWheel(id) == 4) {
1186  mehSiStripADC[14]->Fill((*iter).adc());
1187  mehSiStripStrip[14]->Fill((*iter).strip());
1188  }
1189  if (tTopo->tecWheel(id) == 5) {
1190  mehSiStripADC[15]->Fill((*iter).adc());
1191  mehSiStripStrip[15]->Fill((*iter).strip());
1192  }
1193  if (tTopo->tecWheel(id) == 6) {
1194  mehSiStripADC[16]->Fill((*iter).adc());
1195  mehSiStripStrip[16]->Fill((*iter).strip());
1196  }
1197  if (tTopo->tecWheel(id) == 7) {
1198  mehSiStripADC[17]->Fill((*iter).adc());
1199  mehSiStripStrip[17]->Fill((*iter).strip());
1200  }
1201  if (tTopo->tecWheel(id) == 8) {
1202  mehSiStripADC[18]->Fill((*iter).adc());
1203  mehSiStripStrip[18]->Fill((*iter).strip());
1204  }
1205  }
1206  }
1207  } // end loop over DataSetVector
1208 
1209  if (verbosity > 1) {
1210  eventout += "\n Number of BrlStripDigis collected:........ ";
1211  eventout += nStripBrl;
1212  }
1213  for (int i = 0; i < 8; ++i) {
1214  mehSiStripn[i]->Fill((float)nStripBrl);
1215  }
1216 
1217  if (verbosity > 1) {
1218  eventout += "\n Number of FrwdStripDigis collected:....... ";
1219  eventout += nStripFwd;
1220  }
1221  for (int i = 8; i < 19; ++i) {
1222  mehSiStripn[i]->Fill((float)nStripFwd);
1223  }
1224  }
1225 
1226  // get pixel information
1228  iEvent.getByToken(SiPxlSrc_Token_, pixelDigis);
1229  bool validpixelDigis = true;
1230  if (!pixelDigis.isValid()) {
1231  LogDebug(MsgLoggerCat) << "Unable to find pixelDigis in event!";
1232  validpixelDigis = false;
1233  }
1234  if (validpixelDigis) {
1235  int nPxlBrl = 0, nPxlFwd = 0;
1237  for (DPViter = pixelDigis->begin(); DPViter != pixelDigis->end(); ++DPViter) {
1238  unsigned int id = DPViter->id;
1239  DetId detId(id);
1240  edm::DetSet<PixelDigi>::const_iterator begin = DPViter->data.begin();
1241  edm::DetSet<PixelDigi>::const_iterator end = DPViter->data.end();
1243 
1244  // get Barrel pixels
1245  if (detId.subdetId() == sdPxlBrl) {
1246  for (iter = begin; iter != end; ++iter) {
1247  ++nPxlBrl;
1248  if (tTopo->pxbLayer(id) == 1) {
1249  mehSiPixelADC[0]->Fill((*iter).adc());
1250  mehSiPixelRow[0]->Fill((*iter).row());
1251  mehSiPixelCol[0]->Fill((*iter).column());
1252  }
1253  if (tTopo->pxbLayer(id) == 2) {
1254  mehSiPixelADC[1]->Fill((*iter).adc());
1255  mehSiPixelRow[1]->Fill((*iter).row());
1256  mehSiPixelCol[1]->Fill((*iter).column());
1257  }
1258  if (tTopo->pxbLayer(id) == 3) {
1259  mehSiPixelADC[2]->Fill((*iter).adc());
1260  mehSiPixelRow[2]->Fill((*iter).row());
1261  mehSiPixelCol[2]->Fill((*iter).column());
1262  }
1263  }
1264  }
1265 
1266  // get Forward pixels
1267  if (detId.subdetId() == sdPxlFwd) {
1268  for (iter = begin; iter != end; ++iter) {
1269  ++nPxlFwd;
1270  if (tTopo->pxfDisk(id) == 1) {
1271  if (tTopo->pxfSide(id) == 1) {
1272  mehSiPixelADC[4]->Fill((*iter).adc());
1273  mehSiPixelRow[4]->Fill((*iter).row());
1274  mehSiPixelCol[4]->Fill((*iter).column());
1275  }
1276  if (tTopo->pxfSide(id) == 2) {
1277  mehSiPixelADC[3]->Fill((*iter).adc());
1278  mehSiPixelRow[3]->Fill((*iter).row());
1279  mehSiPixelCol[3]->Fill((*iter).column());
1280  }
1281  }
1282  if (tTopo->pxfDisk(id) == 2) {
1283  if (tTopo->pxfSide(id) == 1) {
1284  mehSiPixelADC[6]->Fill((*iter).adc());
1285  mehSiPixelRow[6]->Fill((*iter).row());
1286  mehSiPixelCol[6]->Fill((*iter).column());
1287  }
1288  if (tTopo->pxfSide(id) == 2) {
1289  mehSiPixelADC[5]->Fill((*iter).adc());
1290  mehSiPixelRow[5]->Fill((*iter).row());
1291  mehSiPixelCol[5]->Fill((*iter).column());
1292  }
1293  }
1294  }
1295  }
1296  }
1297 
1298  if (verbosity > 1) {
1299  eventout += "\n Number of BrlPixelDigis collected:........ ";
1300  eventout += nPxlBrl;
1301  }
1302  for (int i = 0; i < 3; ++i) {
1303  mehSiPixeln[i]->Fill((float)nPxlBrl);
1304  }
1305 
1306  if (verbosity > 1) {
1307  eventout += "\n Number of FrwdPixelDigis collected:....... ";
1308  eventout += nPxlFwd;
1309  }
1310 
1311  for (int i = 3; i < 7; ++i) {
1312  mehSiPixeln[i]->Fill((float)nPxlFwd);
1313  }
1314  }
1315 
1316  if (verbosity > 0)
1317  edm::LogInfo(MsgLoggerCat) << eventout << "\n";
1318 
1319  return;
1320 }
#define LogDebug(id)
unsigned int tibLayer(const DetId &id) const
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:525
unsigned int pxfDisk(const DetId &id) const
static const int sdSiTID
MonitorElement * mehSiPixelRow[7]
unsigned int tidWheel(const DetId &id) const
MonitorElement * mehSiStripADC[19]
MonitorElement * mehSiStripn[19]
void Fill(long long x)
static const int sdSiTIB
static const int sdPxlBrl
static const int sdSiTOB
#define end
Definition: vmac.h:39
bool isValid() const
Definition: HandleBase.h:70
iterator end()
Return the off-the-end iterator.
Definition: DetSetVector.h:325
edm::EDGetTokenT< edm::DetSetVector< SiStripDigi > > SiStripSrc_Token_
unsigned int pxbLayer(const DetId &id) const
Definition: DetId.h:17
MonitorElement * mehSiPixelCol[7]
static const int sdSiTEC
#define begin
Definition: vmac.h:32
T get() const
Definition: EventSetup.h:73
unsigned int pxfSide(const DetId &id) const
iterator begin()
Return an iterator to the first DetSet.
Definition: DetSetVector.h:314
static const int sdPxlFwd
MonitorElement * mehSiPixeln[7]
MonitorElement * mehSiStripStrip[19]
edm::EDGetTokenT< edm::DetSetVector< PixelDigi > > SiPxlSrc_Token_
collection_type::const_iterator const_iterator
Definition: DetSet.h:32
collection_type::const_iterator const_iterator
Definition: DetSetVector.h:102
unsigned int tecWheel(const DetId &id) const
T const * product() const
Definition: ESHandle.h:86
MonitorElement * mehSiPixelADC[7]
unsigned int tobLayer(const DetId &id) const

Member Data Documentation

unsigned int GlobalDigisAnalyzer::count
private

Definition at line 242 of file GlobalDigisAnalyzer.h.

Referenced by analyze().

edm::EDGetTokenT<CrossingFrame<PCaloHit> > GlobalDigisAnalyzer::EBHits_Token_
private

Definition at line 236 of file GlobalDigisAnalyzer.h.

Referenced by fillECal(), and GlobalDigisAnalyzer().

double GlobalDigisAnalyzer::ECalbarrelADCtoGeV_
private

Definition at line 161 of file GlobalDigisAnalyzer.h.

Referenced by analyze(), fillECal(), and GlobalDigisAnalyzer().

edm::InputTag GlobalDigisAnalyzer::ECalEBSrc_
private

Definition at line 156 of file GlobalDigisAnalyzer.h.

Referenced by GlobalDigisAnalyzer().

edm::EDGetTokenT<EBDigiCollection> GlobalDigisAnalyzer::ECalEBSrc_Token_
private

Definition at line 223 of file GlobalDigisAnalyzer.h.

Referenced by fillECal(), and GlobalDigisAnalyzer().

edm::InputTag GlobalDigisAnalyzer::ECalEESrc_
private

Definition at line 157 of file GlobalDigisAnalyzer.h.

Referenced by GlobalDigisAnalyzer().

edm::EDGetTokenT<EEDigiCollection> GlobalDigisAnalyzer::ECalEESrc_Token_
private

Definition at line 224 of file GlobalDigisAnalyzer.h.

Referenced by fillECal(), and GlobalDigisAnalyzer().

double GlobalDigisAnalyzer::ECalendcapADCtoGeV_
private

Definition at line 162 of file GlobalDigisAnalyzer.h.

Referenced by analyze(), and GlobalDigisAnalyzer().

edm::InputTag GlobalDigisAnalyzer::ECalESSrc_
private

Definition at line 158 of file GlobalDigisAnalyzer.h.

Referenced by GlobalDigisAnalyzer().

edm::EDGetTokenT<ESDigiCollection> GlobalDigisAnalyzer::ECalESSrc_Token_
private

Definition at line 225 of file GlobalDigisAnalyzer.h.

Referenced by fillECal(), and GlobalDigisAnalyzer().

std::map<int, double, std::less<int> > GlobalDigisAnalyzer::ECalgainConv_
private

Definition at line 160 of file GlobalDigisAnalyzer.h.

Referenced by fillECal(), and GlobalDigisAnalyzer().

edm::EDGetTokenT<CrossingFrame<PCaloHit> > GlobalDigisAnalyzer::EEHits_Token_
private

Definition at line 237 of file GlobalDigisAnalyzer.h.

Referenced by fillECal(), and GlobalDigisAnalyzer().

edm::EDGetTokenT<CrossingFrame<PCaloHit> > GlobalDigisAnalyzer::ESHits_Token_
private

Definition at line 238 of file GlobalDigisAnalyzer.h.

Referenced by fillECal(), and GlobalDigisAnalyzer().

std::string GlobalDigisAnalyzer::fName
private

Definition at line 136 of file GlobalDigisAnalyzer.h.

Referenced by GlobalDigisAnalyzer().

int GlobalDigisAnalyzer::frequency
private

Definition at line 138 of file GlobalDigisAnalyzer.h.

Referenced by analyze(), and GlobalDigisAnalyzer().

bool GlobalDigisAnalyzer::getAllProvenances
private

Definition at line 140 of file GlobalDigisAnalyzer.h.

Referenced by analyze(), and GlobalDigisAnalyzer().

edm::EDGetTokenT<edm::SortedCollection<HBHEDataFrame> > GlobalDigisAnalyzer::HBHEDigi_Token_
private

Definition at line 227 of file GlobalDigisAnalyzer.h.

Referenced by fillHCal(), and GlobalDigisAnalyzer().

edm::InputTag GlobalDigisAnalyzer::HCalDigi_
private

Definition at line 173 of file GlobalDigisAnalyzer.h.

Referenced by GlobalDigisAnalyzer().

edm::InputTag GlobalDigisAnalyzer::HCalSrc_
private

Definition at line 172 of file GlobalDigisAnalyzer.h.

Referenced by GlobalDigisAnalyzer().

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

Definition at line 226 of file GlobalDigisAnalyzer.h.

Referenced by fillHCal(), and GlobalDigisAnalyzer().

edm::EDGetTokenT<edm::SortedCollection<HFDataFrame> > GlobalDigisAnalyzer::HFDigi_Token_
private

Definition at line 229 of file GlobalDigisAnalyzer.h.

Referenced by fillHCal(), and GlobalDigisAnalyzer().

std::string GlobalDigisAnalyzer::hitsProducer
private

Definition at line 142 of file GlobalDigisAnalyzer.h.

Referenced by GlobalDigisAnalyzer().

edm::EDGetTokenT<edm::SortedCollection<HODataFrame> > GlobalDigisAnalyzer::HODigi_Token_
private

Definition at line 228 of file GlobalDigisAnalyzer.h.

Referenced by fillHCal(), and GlobalDigisAnalyzer().

std::string GlobalDigisAnalyzer::label
private
MonitorElement* GlobalDigisAnalyzer::mehCSCStripADC
private

Definition at line 206 of file GlobalDigisAnalyzer.h.

Referenced by bookHistograms(), and fillMuon().

MonitorElement* GlobalDigisAnalyzer::mehCSCStripn
private

Definition at line 205 of file GlobalDigisAnalyzer.h.

Referenced by bookHistograms(), and fillMuon().

MonitorElement* GlobalDigisAnalyzer::mehCSCWiren
private

Definition at line 207 of file GlobalDigisAnalyzer.h.

Referenced by bookHistograms(), and fillMuon().

MonitorElement* GlobalDigisAnalyzer::mehCSCWireTime
private

Definition at line 208 of file GlobalDigisAnalyzer.h.

Referenced by bookHistograms(), and fillMuon().

MonitorElement* GlobalDigisAnalyzer::mehDtMuonLayer[4]
private

Definition at line 197 of file GlobalDigisAnalyzer.h.

Referenced by bookHistograms(), and fillMuon().

MonitorElement* GlobalDigisAnalyzer::mehDtMuonn[4]
private

Definition at line 196 of file GlobalDigisAnalyzer.h.

Referenced by bookHistograms(), and fillMuon().

MonitorElement* GlobalDigisAnalyzer::mehDtMuonTime[4]
private

Definition at line 198 of file GlobalDigisAnalyzer.h.

Referenced by bookHistograms(), and fillMuon().

MonitorElement* GlobalDigisAnalyzer::mehDtMuonTimevLayer[4]
private

Definition at line 199 of file GlobalDigisAnalyzer.h.

Referenced by bookHistograms(), and fillMuon().

MonitorElement* GlobalDigisAnalyzer::mehEcalAEE[2]
private

Definition at line 149 of file GlobalDigisAnalyzer.h.

Referenced by bookHistograms(), and fillECal().

MonitorElement* GlobalDigisAnalyzer::mehEcalMaxPos[2]
private

Definition at line 151 of file GlobalDigisAnalyzer.h.

Referenced by bookHistograms(), and fillECal().

MonitorElement* GlobalDigisAnalyzer::mehEcalMultvAEE[2]
private

Definition at line 152 of file GlobalDigisAnalyzer.h.

Referenced by bookHistograms(), and fillECal().

MonitorElement* GlobalDigisAnalyzer::mehEcaln[2]
private

Definition at line 147 of file GlobalDigisAnalyzer.h.

Referenced by bookHistograms(), and fillECal().

MonitorElement* GlobalDigisAnalyzer::mehEcalSHE[2]
private

Definition at line 150 of file GlobalDigisAnalyzer.h.

Referenced by bookHistograms(), and fillECal().

MonitorElement* GlobalDigisAnalyzer::mehEcalSHEvAEESHE[2]
private

Definition at line 153 of file GlobalDigisAnalyzer.h.

Referenced by bookHistograms(), and fillECal().

MonitorElement* GlobalDigisAnalyzer::mehEScalADC[3]
private

Definition at line 154 of file GlobalDigisAnalyzer.h.

Referenced by bookHistograms(), and fillECal().

MonitorElement* GlobalDigisAnalyzer::mehEScaln
private

Definition at line 148 of file GlobalDigisAnalyzer.h.

Referenced by bookHistograms(), and fillECal().

MonitorElement* GlobalDigisAnalyzer::mehHcalAEE[4]
private

Definition at line 167 of file GlobalDigisAnalyzer.h.

Referenced by bookHistograms(), and fillHCal().

MonitorElement* GlobalDigisAnalyzer::mehHcalAEESHE[4]
private

Definition at line 169 of file GlobalDigisAnalyzer.h.

Referenced by bookHistograms(), and fillHCal().

MonitorElement* GlobalDigisAnalyzer::mehHcaln[4]
private

Definition at line 166 of file GlobalDigisAnalyzer.h.

Referenced by bookHistograms(), and fillHCal().

MonitorElement* GlobalDigisAnalyzer::mehHcalSHE[4]
private

Definition at line 168 of file GlobalDigisAnalyzer.h.

Referenced by bookHistograms(), and fillHCal().

MonitorElement* GlobalDigisAnalyzer::mehHcalSHEvAEE[4]
private

Definition at line 170 of file GlobalDigisAnalyzer.h.

Referenced by bookHistograms(), and fillHCal().

MonitorElement* GlobalDigisAnalyzer::mehRPCMuonn
private

Definition at line 217 of file GlobalDigisAnalyzer.h.

Referenced by bookHistograms(), and fillMuon().

MonitorElement* GlobalDigisAnalyzer::mehRPCRes[5]
private

Definition at line 218 of file GlobalDigisAnalyzer.h.

Referenced by bookHistograms(), and fillMuon().

MonitorElement* GlobalDigisAnalyzer::mehSiPixelADC[7]
private

Definition at line 187 of file GlobalDigisAnalyzer.h.

Referenced by bookHistograms(), and fillTrk().

MonitorElement* GlobalDigisAnalyzer::mehSiPixelCol[7]
private

Definition at line 189 of file GlobalDigisAnalyzer.h.

Referenced by bookHistograms(), and fillTrk().

MonitorElement* GlobalDigisAnalyzer::mehSiPixeln[7]
private

Definition at line 186 of file GlobalDigisAnalyzer.h.

Referenced by bookHistograms(), and fillTrk().

MonitorElement* GlobalDigisAnalyzer::mehSiPixelRow[7]
private

Definition at line 188 of file GlobalDigisAnalyzer.h.

Referenced by bookHistograms(), and fillTrk().

MonitorElement* GlobalDigisAnalyzer::mehSiStripADC[19]
private

Definition at line 179 of file GlobalDigisAnalyzer.h.

Referenced by bookHistograms(), and fillTrk().

MonitorElement* GlobalDigisAnalyzer::mehSiStripn[19]
private

Definition at line 178 of file GlobalDigisAnalyzer.h.

Referenced by bookHistograms(), and fillTrk().

MonitorElement* GlobalDigisAnalyzer::mehSiStripStrip[19]
private

Definition at line 180 of file GlobalDigisAnalyzer.h.

Referenced by bookHistograms(), and fillTrk().

edm::InputTag GlobalDigisAnalyzer::MuCSCStripSrc_
private

Definition at line 210 of file GlobalDigisAnalyzer.h.

Referenced by GlobalDigisAnalyzer().

edm::EDGetTokenT<CSCStripDigiCollection> GlobalDigisAnalyzer::MuCSCStripSrc_Token_
private

Definition at line 233 of file GlobalDigisAnalyzer.h.

Referenced by fillMuon(), and GlobalDigisAnalyzer().

edm::InputTag GlobalDigisAnalyzer::MuCSCWireSrc_
private

Definition at line 214 of file GlobalDigisAnalyzer.h.

Referenced by GlobalDigisAnalyzer().

edm::EDGetTokenT<CSCWireDigiCollection> GlobalDigisAnalyzer::MuCSCWireSrc_Token_
private

Definition at line 234 of file GlobalDigisAnalyzer.h.

Referenced by fillMuon(), and GlobalDigisAnalyzer().

edm::InputTag GlobalDigisAnalyzer::MuDTSrc_
private

Definition at line 201 of file GlobalDigisAnalyzer.h.

Referenced by GlobalDigisAnalyzer().

edm::EDGetTokenT<DTDigiCollection> GlobalDigisAnalyzer::MuDTSrc_Token_
private

Definition at line 232 of file GlobalDigisAnalyzer.h.

Referenced by fillMuon(), and GlobalDigisAnalyzer().

edm::InputTag GlobalDigisAnalyzer::MuRPCSrc_
private

Definition at line 220 of file GlobalDigisAnalyzer.h.

Referenced by GlobalDigisAnalyzer().

edm::EDGetTokenT<RPCDigiCollection> GlobalDigisAnalyzer::MuRPCSrc_Token_
private

Definition at line 235 of file GlobalDigisAnalyzer.h.

Referenced by fillMuon(), and GlobalDigisAnalyzer().

bool GlobalDigisAnalyzer::printProvenanceInfo
private

Definition at line 141 of file GlobalDigisAnalyzer.h.

Referenced by analyze(), and GlobalDigisAnalyzer().

edm::EDGetTokenT<edm::PSimHitContainer> GlobalDigisAnalyzer::RPCSimHit_Token_
private

Definition at line 239 of file GlobalDigisAnalyzer.h.

Referenced by fillMuon(), and GlobalDigisAnalyzer().

edm::InputTag GlobalDigisAnalyzer::SiPxlSrc_
private

Definition at line 191 of file GlobalDigisAnalyzer.h.

Referenced by GlobalDigisAnalyzer().

edm::EDGetTokenT<edm::DetSetVector<PixelDigi> > GlobalDigisAnalyzer::SiPxlSrc_Token_
private

Definition at line 231 of file GlobalDigisAnalyzer.h.

Referenced by fillTrk(), and GlobalDigisAnalyzer().

edm::InputTag GlobalDigisAnalyzer::SiStripSrc_
private

Definition at line 182 of file GlobalDigisAnalyzer.h.

Referenced by GlobalDigisAnalyzer().

edm::EDGetTokenT<edm::DetSetVector<SiStripDigi> > GlobalDigisAnalyzer::SiStripSrc_Token_
private

Definition at line 230 of file GlobalDigisAnalyzer.h.

Referenced by fillTrk(), and GlobalDigisAnalyzer().

int GlobalDigisAnalyzer::theCSCStripPedestalCount
private

Definition at line 212 of file GlobalDigisAnalyzer.h.

Referenced by fillMuon().

float GlobalDigisAnalyzer::theCSCStripPedestalSum
private

Definition at line 211 of file GlobalDigisAnalyzer.h.

Referenced by fillMuon().

int GlobalDigisAnalyzer::verbosity
private