CMS 3D CMS Logo

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

#include <L1TDTTFClient.h>

Inheritance diagram for L1TDTTFClient:
DQMEDHarvester edm::one::EDProducer< edm::Accumulator, edm::EndLuminosityBlockProducer, edm::EndRunProducer, edm::one::WatchLuminosityBlocks, edm::one::WatchRuns, edm::one::SharedResources > edm::one::EDProducerBase edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Member Functions

 L1TDTTFClient (const edm::ParameterSet &ps)
 Constructor. More...
 
 ~L1TDTTFClient () override
 Destructor. More...
 
- Public Member Functions inherited from DQMEDHarvester
void accumulate (edm::Event const &ev, edm::EventSetup const &es) final
 
void beginLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &) final
 
void beginRun (edm::Run const &, edm::EventSetup const &) override
 
 DQMEDHarvester ()
 
void endJob () final
 
void endLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &) final
 
void endLuminosityBlockProduce (edm::LuminosityBlock &, edm::EventSetup const &) final
 
void endRun (edm::Run const &, edm::EventSetup const &) override
 
void endRunProduce (edm::Run &run, edm::EventSetup const &setup) override
 
 ~DQMEDHarvester () override=default
 
- Public Member Functions inherited from edm::one::EDProducer< edm::Accumulator, edm::EndLuminosityBlockProducer, edm::EndRunProducer, edm::one::WatchLuminosityBlocks, edm::one::WatchRuns, edm::one::SharedResources >
 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 book (DQMStore::IBooker &ibooker)
 
void dqmEndJob (DQMStore::IBooker &, DQMStore::IGetter &) override
 
void dqmEndLuminosityBlock (DQMStore::IBooker &ibooker, DQMStore::IGetter &, edm::LuminosityBlock 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 buildHighQualityPlot (DQMStore::IGetter &igetter, TH2F *occupancySummary, MonitorElement *highQual_Summary, const std::string &path)
 
void buildPhiEtaPlotO (DQMStore::IGetter &igetter, MonitorElement *phi_eta_integ, const std::string &path, int wh)
 
void buildPhiEtaPlotOFC (DQMStore::IGetter &igetter, MonitorElement *phi_eta_fine_integ, MonitorElement *phi_eta_coarse_integ, MonitorElement *phi_eta_integ, const std::string &path_fine, const std::string &path_coarse, int wh)
 
void buildSummaries (DQMStore::IGetter &igetter)
 
TH1F * getTH1F (DQMStore::IGetter &igetter, const char *hname)
 
TH2F * getTH2F (DQMStore::IGetter &igetter, const char *hname)
 
void makeSummary (DQMStore::IGetter &igetter)
 
template<typename T >
void normalize (T *me)
 
template<typename T >
void normalize (T *me, const double &scale)
 
template<typename T >
void normalize (T *me, const double &scale, const double &entries)
 
void setGMTsummary (DQMStore::IGetter &igetter)
 
void setMapLabel (MonitorElement *me)
 
void setQualLabel (MonitorElement *me, int axis)
 
void setWheelLabel (MonitorElement *me)
 

Private Attributes

int counterLS_
 
MonitorElementdttf_2ndTrack_Summary
 
MonitorElementdttf_bx_integ
 
MonitorElementdttf_bx_integ_2ndTrack
 
MonitorElementdttf_bx_summary
 
MonitorElementdttf_bx_summary_2ndTrack
 
MonitorElementdttf_bx_wheel_integ [6]
 
MonitorElementdttf_bx_wheel_integ_2ndTrack [6]
 
MonitorElementdttf_bx_wheel_summary [6]
 
MonitorElementdttf_bx_wheel_summary_2ndTrack [6]
 
MonitorElementdttf_eta_fine_fraction
 
MonitorElementdttf_eta_fine_integ
 
MonitorElementdttf_eta_integ
 
MonitorElementdttf_eta_integ_2ndTrack
 
MonitorElementdttf_eta_wheel [6]
 
MonitorElementdttf_fine_fraction_wh [6]
 
MonitorElementdttf_gmt_matching
 
MonitorElementdttf_highQual_Summary
 
MonitorElementdttf_highQual_Summary_2ndTrack
 
MonitorElementdttf_nTracks_integ
 
MonitorElementdttf_nTracks_integ_2ndTrack
 
MonitorElementdttf_nTracks_wheel [6]
 
MonitorElementdttf_nTracks_wheel_2ndTrack [6]
 
MonitorElementdttf_occupancySummary
 
MonitorElementdttf_occupancySummary_2ndTrack
 
MonitorElementdttf_occupancySummary_test
 
MonitorElementdttf_phi_eta_coarse_integ
 
MonitorElementdttf_phi_eta_fine_integ
 
MonitorElementdttf_phi_eta_integ
 
MonitorElementdttf_phi_eta_integ_2ndTrack
 
MonitorElementdttf_phi_integ
 
MonitorElementdttf_phi_integ_2ndTrack
 
MonitorElementdttf_phi_wheel [6]
 
MonitorElementdttf_pt_integ
 
MonitorElementdttf_pt_integ_2ndTrack
 
MonitorElementdttf_pt_wheel [6]
 
MonitorElementdttf_q_integ
 
MonitorElementdttf_q_integ_2ndTrack
 
MonitorElementdttf_q_wheel [6]
 
MonitorElementdttf_quality_integ
 
MonitorElementdttf_quality_integ_2ndTrack
 
MonitorElementdttf_quality_summary
 
MonitorElementdttf_quality_summary_2ndTrack
 
MonitorElementdttf_quality_summary_wheel [6]
 
MonitorElementdttf_quality_wheel [6]
 
edm::InputTag dttfSource_
 
std::string gmtpath_
 
std::string inclusivepath_
 
std::string l1tdttffolder_
 
TH2F * occupancy_r_
 counter More...
 
bool online_
 
int resetafterlumi_
 
std::string testpath_
 
bool verbose_
 
std::string wheel_ [6]
 
std::string wheelpath_ [6]
 

Additional Inherited Members

- Public Types inherited from DQMEDHarvester
typedef dqm::harvesting::DQMStore DQMStore
 
typedef dqm::harvesting::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
 
- 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 DQMEDHarvester
edm::EDPutTokenT< DQMTokenlumiToken_
 
edm::EDPutTokenT< DQMTokenrunToken_
 

Detailed Description

Definition at line 20 of file L1TDTTFClient.h.

Constructor & Destructor Documentation

L1TDTTFClient::L1TDTTFClient ( const edm::ParameterSet ps)

Constructor.

base services

Definition at line 16 of file L1TDTTFClient.cc.

17  : l1tdttffolder_(ps.getUntrackedParameter<std::string>("l1tSourceFolder", "L1T/L1TDTTF")),
18  dttfSource_(ps.getParameter<edm::InputTag>("dttfSource")),
19  online_(ps.getUntrackedParameter<bool>("online", true)),
20  resetafterlumi_(ps.getUntrackedParameter<int>("resetAfterLumi", 3)),
21  counterLS_(0),
22  occupancy_r_(nullptr) {
23  edm::LogInfo("L1TDTTFClient");
24 }
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
TH2F * occupancy_r_
counter
Definition: L1TDTTFClient.h:44
std::string l1tdttffolder_
Definition: L1TDTTFClient.h:38
edm::InputTag dttfSource_
Definition: L1TDTTFClient.h:39
L1TDTTFClient::~L1TDTTFClient ( )
override

Destructor.

Definition at line 27 of file L1TDTTFClient.cc.

27 { edm::LogInfo("L1TDTTFClient") << "[L1TDTTFClient]: ending... "; }

Member Function Documentation

void L1TDTTFClient::book ( DQMStore::IBooker ibooker)
protected

occupancy summary

SUMMARY

DTTF Tracks per Wheel ditribution

DTTF Tracks distribution by Sector and Wheel

RESET 04

DTTF Tracks BX Distribution by Wheel

Fraction of DTTF Tracks BX w.r.t. Tracks with BX=0

DTTF Tracks Quality distribution

DTTF Tracks Quality distribution by Wheel

Fraction of DTTF Tracks with Quality>4 by Sector and Wheel

eta-phi Distribution of DTTF Tracks with coarse eta assignment

eta-phi Distribution of DTTF Tracks with fine eta assignment

eta-phi Distribution of DTTF Tracks

Fraction of DTTF Tracks with Fine eta Assignment

DTTF Tracks eta distribution (Packed values)

DTTF Tracks Phi distribution (Packed values)

DTTF Tracks p_{T} distribution (Packed values)

DTTF Tracks Charge distribution

DTTF 2nd Tracks Only Distribution by Sector and Wheel w.r.t. the total Number of tracks

GMT matching

TEST directory for stats comparisons

DTTF 2nd Tracks per Wheel distribution

DTTF 2nd Tracks distribution by Sector and Wheel

DTTF 2nd Tracks BX Distribution by Wheel

Fraction of DTTF Tracks BX w.r.t. Tracks with BX=0

Quality

DTTF 2nd Tracks Tracks Quality distribution by Wheel

Fraction of DTTF 2nd Tracks with Quality>4 by Sector and Wheel

eta-phi Distribution of DTTF 2nd Tracks

eta Distribution of DTTF 2nd Tracks

phi Distribution of DTTF 2nd Tracks

pt Distribution of DTTF 2nd Tracks

charge Distribution of DTTF 2nd Tracks

number of tracks per wheel

Tracks BX distribution by Sector for each wheel

bx for each wheel

quality per wheel

quality per wheel 2D

eta assigment for each wheel

DTTF Tracks eta distribution (Packed values)

DTTF Tracks Phi distribution (Packed values)

DTTF Tracks p_{T} distribution (Packed values)

DTTF Tracks Charge distribution

number of 2nd tracks per wheel

bx for each wheel

bx for each wheel

Definition at line 30 of file L1TDTTFClient.cc.

References dqm::dqmstoreimpl::DQMStore::IBooker::book1D(), dqm::dqmstoreimpl::DQMStore::IBooker::book2D(), dttf_2ndTrack_Summary, dttf_bx_integ, dttf_bx_integ_2ndTrack, dttf_bx_summary, dttf_bx_summary_2ndTrack, dttf_bx_wheel_integ, dttf_bx_wheel_integ_2ndTrack, dttf_bx_wheel_summary, dttf_bx_wheel_summary_2ndTrack, dttf_eta_fine_fraction, dttf_eta_integ, dttf_eta_integ_2ndTrack, dttf_eta_wheel, dttf_fine_fraction_wh, dttf_gmt_matching, dttf_highQual_Summary, dttf_highQual_Summary_2ndTrack, dttf_nTracks_integ, dttf_nTracks_integ_2ndTrack, dttf_nTracks_wheel, dttf_nTracks_wheel_2ndTrack, dttf_occupancySummary, dttf_occupancySummary_2ndTrack, dttf_occupancySummary_test, dttf_phi_eta_coarse_integ, dttf_phi_eta_fine_integ, dttf_phi_eta_integ, dttf_phi_eta_integ_2ndTrack, dttf_phi_integ, dttf_phi_integ_2ndTrack, dttf_phi_wheel, dttf_pt_integ, dttf_pt_integ_2ndTrack, dttf_pt_wheel, dttf_q_integ, dttf_q_integ_2ndTrack, dttf_q_wheel, dttf_quality_integ, dttf_quality_integ_2ndTrack, dttf_quality_summary, dttf_quality_summary_2ndTrack, dttf_quality_summary_wheel, dttf_quality_wheel, gmtpath_, inclusivepath_, l1tdttffolder_, dqm::impl::MonitorElement::setAxisTitle(), dqm::impl::MonitorElement::setBinLabel(), dqm::dqmstoreimpl::DQMStore::IBooker::setCurrentFolder(), setQualLabel(), setWheelLabel(), testpath_, wheel_, and wheelpath_.

Referenced by dqmEndJob(), and dqmEndLuminosityBlock().

30  {
31  edm::LogInfo("L1TDTTFClient") << "[L1TDTTFClient]: Begin Job";
32 
33  wheelpath_[0] = l1tdttffolder_ + "/02-WHEEL_N2";
34  wheelpath_[1] = l1tdttffolder_ + "/03-WHEEL_N1";
35  wheelpath_[2] = l1tdttffolder_ + "/04-WHEEL_N0";
36  wheelpath_[3] = l1tdttffolder_ + "/05-WHEEL_P0";
37  wheelpath_[4] = l1tdttffolder_ + "/06-WHEEL_P1";
38  wheelpath_[5] = l1tdttffolder_ + "/07-WHEEL_P2";
39 
40  wheel_[0] = "N2";
41  wheel_[1] = "N1";
42  wheel_[2] = "N0";
43  wheel_[3] = "P0";
44  wheel_[4] = "P1";
45  wheel_[5] = "P2";
46 
47  inclusivepath_ = l1tdttffolder_ + "/01-INCLUSIVE";
48  gmtpath_ = l1tdttffolder_ + "/08-GMT_MATCH";
49  testpath_ = l1tdttffolder_ + "/09-TEST";
50 
52  char hname[100]; //histo name
53  char mename[100]; //ME name
54 
56  ibooker.setCurrentFolder(inclusivepath_);
58  sprintf(hname, "dttf_02_nTracks");
59  sprintf(mename, "DTTF Tracks by Wheel");
60  dttf_nTracks_integ = ibooker.book1D(hname, mename, 6, 0, 6);
62 
64  sprintf(hname, "dttf_03_tracks_occupancy_summary");
65  sprintf(mename, "DTTF Tracks Occupancy");
66  dttf_occupancySummary = ibooker.book2D(hname, mename, 6, 0, 6, 12, 1, 13);
68  dttf_occupancySummary->setAxisTitle("Sector", 2);
69 
71 
73  sprintf(hname, "dttf_05_bx_occupancy");
74  sprintf(mename, "DTTF Tracks BX Distribution by Wheel");
75  dttf_bx_summary = ibooker.book2D(hname, mename, 6, 0, 6, 3, -1, 2);
77  dttf_bx_summary->setAxisTitle("BX", 2);
78 
80  sprintf(hname, "dttf_06_bx");
81  sprintf(mename, "DTTF Tracks BX w.r.t. Tracks with BX=0");
82  dttf_bx_integ = ibooker.book1D(hname, mename, 3, -1.5, 1.5);
83  dttf_bx_integ->setAxisTitle("BX", 1);
84 
86  sprintf(hname, "dttf_07_quality");
87  sprintf(mename, "DTTF Tracks Quality distribution");
88  dttf_quality_integ = ibooker.book1D(hname, mename, 7, 1, 8);
90 
92  sprintf(hname, "dttf_08_quality_occupancy");
93  sprintf(mename, "DTTF Tracks Quality distribution by Wheel");
94  dttf_quality_summary = ibooker.book2D(hname, mename, 6, 0, 6, 7, 1, 8);
98 
100  sprintf(hname, "dttf_09_highQuality_Tracks");
101  sprintf(mename, "Fraction of DTTF Tracks with Quality>3");
102  dttf_highQual_Summary = ibooker.book2D(hname, mename, 6, 0, 6, 12, 1, 13);
104  dttf_highQual_Summary->setAxisTitle("Sector", 2);
105 
107  sprintf(hname, "dttf_10_phi_vs_etaCoarse");
108  sprintf(mename, "#eta-#phi DTTF Tracks occupancy (coarse #eta only, packed values)");
109  dttf_phi_eta_coarse_integ = ibooker.book2D(hname, mename, 64, 0, 64, 144, -6, 138.);
112 
114  sprintf(hname, "dttf_11_phi_vs_etaFine");
115  sprintf(mename, "#eta-#phi DTTF Tracks occupancy (fine #eta only, packed values)");
116  dttf_phi_eta_fine_integ = ibooker.book2D(hname, mename, 64, 0, 64, 144, -6, 138.);
119 
121  sprintf(hname, "dttf_12_phi_vs_eta");
122  sprintf(mename, "#eta-#phi DTTF Tracks occupancy");
123  dttf_phi_eta_integ = ibooker.book2D(hname, mename, 64, -1.2, 1.2, 144, -15, 345.);
124  dttf_phi_eta_integ->setAxisTitle("#eta", 1);
125  dttf_phi_eta_integ->setAxisTitle("#phi", 2);
126 
128  sprintf(hname, "dttf_13_eta_fine_fraction");
129  sprintf(mename, "Fraction of DTTF Tracks with Fine #eta Assignment");
130  dttf_eta_fine_fraction = ibooker.book1D(hname, mename, 6, 0, 6);
133 
135 
137  sprintf(hname, "dttf_14_eta");
138  sprintf(mename, "DTTF Tracks #eta distribution (Packed values)");
139  dttf_eta_integ = ibooker.book1D(hname, mename, 64, -0.5, 63.5);
140  dttf_eta_integ->setAxisTitle("#eta", 1);
141 
143  sprintf(hname, "dttf_15_phi");
144  sprintf(mename, "DTTF Tracks Phi distribution (Packed values)");
145  dttf_phi_integ = ibooker.book1D(hname, mename, 144, -6, 138.);
146  dttf_phi_integ->setAxisTitle("#phi", 1);
147 
149  sprintf(hname, "dttf_16_pt");
150  sprintf(mename, "DTTF Tracks p_{T} distribution (Packed values)");
151  dttf_pt_integ = ibooker.book1D(hname, mename, 32, -0.5, 31.5);
152  dttf_pt_integ->setAxisTitle("p_{T}", 1);
154  sprintf(hname, "dttf_17_charge");
155  sprintf(mename, "DTTF Tracks Charge distribution");
156  dttf_q_integ = ibooker.book1D(hname, mename, 2, -0.5, 1.5);
157  dttf_q_integ->setAxisTitle("Charge", 1);
158 
160  sprintf(hname, "dttf_18_2ndTrack_occupancy_summary");
161  sprintf(mename, "DTTF 2nd Tracks occupancy w.r.t. Tracks with BX=0");
162  dttf_2ndTrack_Summary = ibooker.book2D(hname, mename, 6, 0, 6, 12, 1, 13);
164 
168  ibooker.setCurrentFolder(gmtpath_);
169  sprintf(hname, "dttf_gmt_fract_matching");
170  sprintf(mename, "Fraction of DTTF tracks matching with GMT tracks");
171  dttf_gmt_matching = ibooker.book1D(hname, mename, 3, 1, 4);
172  dttf_gmt_matching->setBinLabel(1, "GMT Only", 1);
173  dttf_gmt_matching->setBinLabel(2, "Matching", 1);
174  dttf_gmt_matching->setBinLabel(3, "DTTF Only", 1);
175 
179 
180  ibooker.setCurrentFolder(testpath_);
181  sprintf(hname, "dttf_01_tracks_occupancy_test_summary");
182  sprintf(mename, "DTTF Tracks Occupancy");
183  dttf_occupancySummary_test = ibooker.book2D(hname, mename, 6, 0, 6, 12, 1, 13);
186 
190  ibooker.setCurrentFolder(inclusivepath_ + "/2ND_TRACK_ONLY");
191 
193  sprintf(hname, "dttf_01_nTracks_2ndTrack");
194  sprintf(mename, "DTTF 2nd Tracks per Wheel distribution");
195  dttf_nTracks_integ_2ndTrack = ibooker.book1D(hname, mename, 6, 0, 6);
197 
199  sprintf(hname, "dttf_02_occupancy_summary_2ndTrack");
200  sprintf(mename, "DTTF 2nd Tracks distribution by Sector and Wheel");
201  dttf_occupancySummary_2ndTrack = ibooker.book2D(hname, mename, 6, 0, 6, 12, 1, 13);
203 
205  sprintf(hname, "dttf_03_bx_occupancy_2ndTrack");
206  sprintf(mename, "DTTF 2nd Tracks BX Distribution by Wheel");
207  dttf_bx_summary_2ndTrack = ibooker.book2D(hname, mename, 6, 0, 6, 3, -1, 2);
210 
212  sprintf(hname, "dttf_04_bx_2ndTrack");
213  sprintf(mename, "Fraction of DTTF Tracks BX w.r.t. Tracks with BX=0");
214  dttf_bx_integ_2ndTrack = ibooker.book1D(hname, mename, 3, -1.5, 1.5);
216 
218  sprintf(hname, "dttf_05_quality_2ndTrack");
219  sprintf(mename, "DTTF 2nd Tracks Quality distribution");
220  dttf_quality_integ_2ndTrack = ibooker.book1D(hname, mename, 7, 0.5, 7.5);
223 
225  sprintf(hname, "dttf_06_quality_occupancy_2ndTrack");
226  sprintf(mename, "DTTF 2nd Tracks Quality distribution by Wheel");
227  dttf_quality_summary_2ndTrack = ibooker.book2D(hname, mename, 6, 0, 6, 7, 1, 8);
231 
233  sprintf(hname, "dttf_07_highQuality_Tracks_2ndTrack");
234  sprintf(mename, "Fraction of DTTF 2nd Tracks with Quality>3");
235  dttf_highQual_Summary_2ndTrack = ibooker.book2D(hname, mename, 6, 0, 6, 12, 1, 13);
238 
240  sprintf(hname, "dttf_08_phi_vs_eta_2ndTrack");
241  sprintf(mename, "#eta-#phi DTTF Tracks occupancy for 2nd Tracks");
242  dttf_phi_eta_integ_2ndTrack = ibooker.book2D(hname, mename, 64, 0, 64, 144, -6, 138.);
245 
247  sprintf(hname, "dttf_09_eta_2ndTrack");
248  sprintf(mename, "DTTF 2nd Tracks #eta distribution (Packed values)");
249  dttf_eta_integ_2ndTrack = ibooker.book1D(hname, mename, 64, -0.5, 63.5);
251 
253  sprintf(hname, "dttf_10_phi_2ndTrack");
254  sprintf(mename, "DTTF 2nd Tracks Phi distribution (Packed values)");
255  dttf_phi_integ_2ndTrack = ibooker.book1D(hname, mename, 144, -6, 138);
257 
259  sprintf(hname, "dttf_11_pt_2ndTrack");
260  sprintf(mename, "DTTF 2nd Tracks p_{T} distribution (Packed values)");
261  dttf_pt_integ_2ndTrack = ibooker.book1D(hname, mename, 32, -0.5, 31.5);
263 
265  sprintf(hname, "dttf_12_charge_2ndTrack");
266  sprintf(mename, "DTTF 2nd Tracks Charge distribution");
267  dttf_q_integ_2ndTrack = ibooker.book1D(hname, mename, 2, -0.5, 1.5);
268  dttf_q_integ_2ndTrack->setAxisTitle("Charge", 1);
269 
270  for (unsigned int wh = 0; wh < 6; ++wh) {
271  ibooker.setCurrentFolder(wheelpath_[wh]);
272 
274  sprintf(hname, "dttf_02_nTracks_wh%s", wheel_[wh].c_str());
275  sprintf(mename, "Wheel %s - Number of Tracks", wheel_[wh].c_str());
276  dttf_nTracks_wheel[wh] = ibooker.book1D(hname, mename, 12, 1, 13);
277  dttf_nTracks_wheel[wh]->setAxisTitle("sector", 1);
278 
280  sprintf(hname, "dttf_03_bx_occupancy_wh%s", wheel_[wh].c_str());
281  sprintf(mename, "Wheel %s - DTTF Tracks BX distribution by Sector", wheel_[wh].c_str());
282  dttf_bx_wheel_summary[wh] = ibooker.book2D(hname, mename, 12, 1, 13, 3, -1, 2);
283  dttf_bx_wheel_summary[wh]->setAxisTitle("BX", 2);
284  dttf_bx_wheel_summary[wh]->setAxisTitle("Sector", 1);
285 
287  sprintf(hname, "dttf_04_bx_wh%s", wheel_[wh].c_str());
288  sprintf(mename, "Wheel %s - DTTF Tracks BX w.r.t. Tracks with BX=0", wheel_[wh].c_str());
289  dttf_bx_wheel_integ[wh] = ibooker.book1D(hname, mename, 3, -1.5, 1.5);
290  dttf_bx_wheel_integ[wh]->setAxisTitle("BX", 1);
291 
293  sprintf(hname, "dttf_05_quality_wh%s", wheel_[wh].c_str());
294  sprintf(mename, "Wheel %s - Tracks Quality Distribution", wheel_[wh].c_str());
295  dttf_quality_wheel[wh] = ibooker.book1D(hname, mename, 7, 1, 8);
296  dttf_quality_wheel[wh]->setAxisTitle("Quality", 1);
298 
300  sprintf(hname, "dttf_06_quality_summary_wh%s", wheel_[wh].c_str());
301  sprintf(mename, "Wheel %s - Tracks Quality Distribution by Sector", wheel_[wh].c_str());
302  dttf_quality_summary_wheel[wh] = ibooker.book2D(hname, mename, 12, 1, 13, 7, 1, 8);
303  dttf_quality_summary_wheel[wh]->setAxisTitle("Sector", 1);
304  // dttf_quality_summary_wheel[wh]->setAxisTitle("Quality", 2);
306 
308  sprintf(hname, "dttf_09_etaFine_fraction_wh%s", wheel_[wh].c_str());
309  sprintf(mename, "Wheel %s - Fraction of DTTF Tracks with fine #eta assignment", wheel_[wh].c_str());
310  dttf_fine_fraction_wh[wh] = ibooker.book1D(hname, mename, 12, 1, 13);
311  dttf_fine_fraction_wh[wh]->setAxisTitle("Sector", 1);
312 
314  sprintf(hname, "dttf_10_eta_wh%s", wheel_[wh].c_str());
315  sprintf(mename, "Wheel %s - DTTF Tracks #eta distribution (Packed values)", wheel_[wh].c_str());
316  dttf_eta_wheel[wh] = ibooker.book1D(hname, mename, 64, -0.5, 63.5);
317  dttf_eta_wheel[wh]->setAxisTitle("#eta", 1);
318 
320  sprintf(hname, "dttf_11_phi_wh%s", wheel_[wh].c_str());
321  sprintf(mename, "Wheel %s - DTTF Tracks Phi distribution (Packed values)", wheel_[wh].c_str());
322  dttf_phi_wheel[wh] = ibooker.book1D(hname, mename, 144, -6, 138.);
323  dttf_phi_wheel[wh]->setAxisTitle("#phi", 1);
324 
326  sprintf(hname, "dttf_12_pt_wh%s", wheel_[wh].c_str());
327  sprintf(mename, "Wheel %s - DTTF Tracks p_{T} distribution (Packed values)", wheel_[wh].c_str());
328  dttf_pt_wheel[wh] = ibooker.book1D(hname, mename, 32, -0.5, 31.5);
329  dttf_pt_wheel[wh]->setAxisTitle("p_{T}", 1);
330 
332  sprintf(hname, "dttf_13_charge_wh%s", wheel_[wh].c_str());
333  sprintf(mename, "Wheel %s - DTTF Tracks Charge distribution", wheel_[wh].c_str());
334  dttf_q_wheel[wh] = ibooker.book1D(hname, mename, 2, -0.5, 1.5);
335  dttf_q_wheel[wh]->setAxisTitle("Charge", 1);
336  }
337 
339  for (unsigned int wh = 0; wh < 6; ++wh) {
340  ibooker.setCurrentFolder(wheelpath_[wh] + "/2ND_TRACK_ONLY");
341 
343  sprintf(hname, "dttf_01_nTracks_wh%s_2ndTrack", wheel_[wh].c_str());
344  sprintf(mename, "Wheel %s - DTTF Number of 2nd Tracks with BX=0", wheel_[wh].c_str());
345  dttf_nTracks_wheel_2ndTrack[wh] = ibooker.book1D(hname, mename, 12, 1, 13);
346  dttf_nTracks_wheel_2ndTrack[wh]->setAxisTitle("sector", 1);
347 
349  sprintf(hname, "dttf_02_bx_occupancy_wh%s_2ndTrack", wheel_[wh].c_str());
350  sprintf(mename, "Wheel %s - DTTF 2nd Tracks BX distribution by Sector", wheel_[wh].c_str());
351  dttf_bx_wheel_summary_2ndTrack[wh] = ibooker.book2D(hname, mename, 12, 1, 13, 3, -1, 2);
354 
356  sprintf(hname, "dttf_03_bx_wh%s_2ndTrack", wheel_[wh].c_str());
357  sprintf(mename, "Wheel %s - 2nd Tracks BX Distribution", wheel_[wh].c_str());
358  dttf_bx_wheel_integ_2ndTrack[wh] = ibooker.book1D(hname, mename, 3, -1.5, 1.5);
360  }
361 }
MonitorElement * dttf_bx_integ_2ndTrack
Definition: L1TDTTFClient.h:77
MonitorElement * dttf_gmt_matching
Definition: L1TDTTFClient.h:69
MonitorElement * dttf_occupancySummary
Definition: L1TDTTFClient.h:53
MonitorElement * dttf_quality_summary
Definition: L1TDTTFClient.h:58
MonitorElement * dttf_q_wheel[6]
Definition: L1TDTTFClient.h:96
MonitorElement * dttf_eta_integ_2ndTrack
Definition: L1TDTTFClient.h:82
MonitorElement * dttf_quality_integ_2ndTrack
Definition: L1TDTTFClient.h:78
MonitorElement * dttf_eta_wheel[6]
Definition: L1TDTTFClient.h:93
MonitorElement * dttf_nTracks_integ
Definition: L1TDTTFClient.h:52
MonitorElement * dttf_quality_integ
Definition: L1TDTTFClient.h:57
std::string wheelpath_[6]
Definition: L1TDTTFClient.h:47
MonitorElement * dttf_bx_wheel_integ_2ndTrack[6]
MonitorElement * dttf_bx_wheel_summary[6]
Definition: L1TDTTFClient.h:88
MonitorElement * dttf_pt_integ_2ndTrack
Definition: L1TDTTFClient.h:84
MonitorElement * dttf_bx_integ
Definition: L1TDTTFClient.h:55
MonitorElement * dttf_phi_eta_fine_integ
Definition: L1TDTTFClient.h:61
MonitorElement * dttf_highQual_Summary_2ndTrack
Definition: L1TDTTFClient.h:80
MonitorElement * dttf_phi_wheel[6]
Definition: L1TDTTFClient.h:94
MonitorElement * dttf_phi_eta_integ
Definition: L1TDTTFClient.h:62
MonitorElement * dttf_quality_summary_wheel[6]
Definition: L1TDTTFClient.h:91
MonitorElement * dttf_pt_integ
Definition: L1TDTTFClient.h:65
MonitorElement * dttf_phi_eta_coarse_integ
Definition: L1TDTTFClient.h:60
MonitorElement * dttf_occupancySummary_2ndTrack
Definition: L1TDTTFClient.h:75
MonitorElement * dttf_eta_integ
Definition: L1TDTTFClient.h:66
MonitorElement * dttf_2ndTrack_Summary
Definition: L1TDTTFClient.h:70
std::string gmtpath_
Definition: L1TDTTFClient.h:49
MonitorElement * dttf_q_integ_2ndTrack
Definition: L1TDTTFClient.h:85
MonitorElement * dttf_bx_wheel_summary_2ndTrack[6]
Definition: L1TDTTFClient.h:99
virtual void setBinLabel(int bin, const std::string &label, int axis=1)
set bin label for x, y or z axis (axis=1, 2, 3 respectively)
MonitorElement * dttf_bx_summary
Definition: L1TDTTFClient.h:54
MonitorElement * dttf_quality_wheel[6]
Definition: L1TDTTFClient.h:90
MonitorElement * dttf_eta_fine_fraction
Definition: L1TDTTFClient.h:63
std::string l1tdttffolder_
Definition: L1TDTTFClient.h:38
MonitorElement * dttf_occupancySummary_test
Definition: L1TDTTFClient.h:72
MonitorElement * dttf_fine_fraction_wh[6]
Definition: L1TDTTFClient.h:92
void setQualLabel(MonitorElement *me, int axis)
MonitorElement * dttf_nTracks_wheel[6]
Definition: L1TDTTFClient.h:87
MonitorElement * dttf_bx_summary_2ndTrack
Definition: L1TDTTFClient.h:76
MonitorElement * dttf_nTracks_integ_2ndTrack
Definition: L1TDTTFClient.h:74
MonitorElement * dttf_phi_integ_2ndTrack
Definition: L1TDTTFClient.h:83
MonitorElement * dttf_pt_wheel[6]
Definition: L1TDTTFClient.h:95
MonitorElement * dttf_nTracks_wheel_2ndTrack[6]
Definition: L1TDTTFClient.h:98
MonitorElement * dttf_phi_integ
Definition: L1TDTTFClient.h:64
MonitorElement * dttf_highQual_Summary
Definition: L1TDTTFClient.h:59
MonitorElement * dttf_q_integ
Definition: L1TDTTFClient.h:67
MonitorElement * dttf_bx_wheel_integ[6]
Definition: L1TDTTFClient.h:89
std::string inclusivepath_
Definition: L1TDTTFClient.h:48
std::string testpath_
Definition: L1TDTTFClient.h:50
void setWheelLabel(MonitorElement *me)
std::string wheel_[6]
Definition: L1TDTTFClient.h:46
MonitorElement * dttf_quality_summary_2ndTrack
Definition: L1TDTTFClient.h:79
virtual void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
MonitorElement * dttf_phi_eta_integ_2ndTrack
Definition: L1TDTTFClient.h:81
void L1TDTTFClient::buildHighQualityPlot ( DQMStore::IGetter igetter,
TH2F *  occupancySummary,
MonitorElement highQual_Summary,
const std::string &  path 
)
private

high quality TOBE IMPROVED

Definition at line 908 of file L1TDTTFClient.cc.

References getTH2F(), qcdUeDQM_cfi::quality, fileinputsource_cfi::sec, dqm::impl::MonitorElement::setBinContent(), AlCaHLTBitMon_QueryRunRegistry::string, heppy_batch::val, wheel_, and wheelpath_.

Referenced by makeSummary().

911  {
912  char hname[150];
913 
917  for (unsigned int wh = 0; wh < 6; ++wh) {
918  sprintf(hname, path.c_str(), wheelpath_[wh].c_str(), wheel_[wh].c_str());
919 
920  TH2F *quality = getTH2F(igetter, hname);
921  if (!quality) {
922  edm::LogError("L1TDTTFClient::buildHighQualityPlot") << "Failed to get TH2F " << std::string(hname);
923  } else {
924  for (unsigned int sec = 1; sec < 13; ++sec) {
925  double denHighQual = occupancySummary->GetBinContent(wh + 1, sec);
926  double val = 0;
927  if (denHighQual > 0) {
928  for (unsigned int qual = 4; qual < 8; ++qual) {
929  val += quality->GetBinContent(qual, sec);
930  }
931  val /= denHighQual;
932  }
933  highQual_Summary->setBinContent(wh + 1, sec, val);
934  }
935  }
936  }
937 }
std::string wheelpath_[6]
Definition: L1TDTTFClient.h:47
TH2F * getTH2F(DQMStore::IGetter &igetter, const char *hname)
virtual void setBinContent(int binx, double content)
set content of bin (1-D)
std::string wheel_[6]
Definition: L1TDTTFClient.h:46
void L1TDTTFClient::buildPhiEtaPlotO ( DQMStore::IGetter igetter,
MonitorElement phi_eta_integ,
const std::string &  path,
int  wh 
)
private

Definition at line 1036 of file L1TDTTFClient.cc.

References PVValHelper::eta, dqm::impl::MonitorElement::getBinContent(), getTH2F(), LaserClient_cfi::nbins, phi, dqm::impl::MonitorElement::setBinContent(), command_line::start, AlCaHLTBitMon_QueryRunRegistry::string, heppy_batch::val, wheel_, and wheelpath_.

Referenced by buildSummaries().

1039  {
1040  char hname[100];
1041  sprintf(hname, path.c_str(), wheelpath_[wh].c_str(), wheel_[wh].c_str());
1042 
1043  TH2F *phi_vs_eta = getTH2F(igetter, hname);
1044  if (!phi_vs_eta) {
1045  edm::LogError("L1TDTTFClient::buildPhiEtaPlotO:ME") << "Failed to get TH1D " << std::string(hname);
1046  } else {
1047  for (unsigned int phi = 1; phi < 145; ++phi) {
1048  float start = 0;
1049  int nbins = 0;
1050  switch (wh) {
1051  case 0:
1052  start = 0;
1053  nbins = 18;
1054  break; // N2
1055  case 1:
1056  start = 8;
1057  nbins = 20;
1058  break; // N1
1059  case 2:
1060  start = 22;
1061  nbins = 10;
1062  break; // N0
1063  case 3:
1064  start = 22;
1065  nbins = 20;
1066  break; // P0
1067  case 4:
1068  start = 36;
1069  nbins = 20;
1070  break; // P1
1071  case 5:
1072  start = 46;
1073  nbins = 18;
1074  break; // P2
1075  default:
1076  start = 0;
1077  nbins = 0;
1078  break; // BOH
1079  }
1080 
1081  for (int eta = 1; eta <= nbins; ++eta) {
1082  double setbin = eta + start;
1083  double val = phi_vs_eta->GetBinContent(eta, phi) + phi_eta_integ->getBinContent(setbin, phi);
1084  phi_eta_integ->setBinContent(setbin, phi, val);
1085  }
1086 
1087  double underflow = phi_vs_eta->GetBinContent(0, phi) + phi_eta_integ->getBinContent(1, phi);
1088  phi_eta_integ->setBinContent(1, phi, underflow);
1089 
1090  double overflow = phi_vs_eta->GetBinContent(nbins + 1, phi) + phi_eta_integ->getBinContent(64);
1091  phi_eta_integ->setBinContent(64, phi, overflow);
1092  }
1093  }
1094 }
Definition: start.py:1
std::string wheelpath_[6]
Definition: L1TDTTFClient.h:47
TH2F * getTH2F(DQMStore::IGetter &igetter, const char *hname)
virtual double getBinContent(int binx) const
get content of bin (1-D)
virtual void setBinContent(int binx, double content)
set content of bin (1-D)
std::string wheel_[6]
Definition: L1TDTTFClient.h:46
void L1TDTTFClient::buildPhiEtaPlotOFC ( DQMStore::IGetter igetter,
MonitorElement phi_eta_fine_integ,
MonitorElement phi_eta_coarse_integ,
MonitorElement phi_eta_integ,
const std::string &  path_fine,
const std::string &  path_coarse,
int  wh 
)
private

Definition at line 940 of file L1TDTTFClient.cc.

References PVValHelper::eta, dqm::impl::MonitorElement::getBinContent(), getTH2F(), LaserClient_cfi::nbins, phi, dqm::impl::MonitorElement::setBinContent(), command_line::start, AlCaHLTBitMon_QueryRunRegistry::string, wheel_, and wheelpath_.

Referenced by buildSummaries().

946  {
947  char hname[150];
948  sprintf(hname, path_fine.c_str(), wheelpath_[wh].c_str(), wheel_[wh].c_str());
949 
950  TH2F *phi_vs_eta_fine = getTH2F(igetter, hname);
951  if (!phi_vs_eta_fine) {
952  edm::LogError("L1TDTTFClient::buildPhiEtaPloOtFC") << "Failed to get TH1D " << std::string(hname);
953  }
954 
955  sprintf(hname, path_coarse.c_str(), wheelpath_[wh].c_str(), wheel_[wh].c_str());
956  TH2F *phi_vs_eta_coarse = getTH2F(igetter, hname);
957  if (!phi_vs_eta_coarse) {
958  edm::LogError("L1TDTTFClient::buildPhiEtaPlotOFC") << "Failed to get TH1D " << std::string(hname);
959  }
960 
961  if (!phi_vs_eta_fine || !phi_vs_eta_coarse) {
962  return;
963  }
964 
965  for (unsigned int phi = 1; phi < 145; ++phi) {
966  float start = 0;
967  int nbins = 0;
968  switch (wh) {
969  case 0:
970  start = 0;
971  nbins = 18;
972  break; // N2
973  case 1:
974  start = 8;
975  nbins = 20;
976  break; // N1
977  case 2:
978  start = 22;
979  nbins = 10;
980  break; // N0
981  case 3:
982  start = 22;
983  nbins = 20;
984  break; // P0
985  case 4:
986  start = 36;
987  nbins = 20;
988  break; // P1
989  case 5:
990  start = 46;
991  nbins = 18;
992  break; // P2
993  default:
994  start = 0;
995  nbins = 0;
996  break; // BOH
997  }
998 
999  for (int eta = 1; eta <= nbins; ++eta) {
1000  double setbin = eta + start;
1001 
1002  double valfine = phi_vs_eta_fine->GetBinContent(eta, phi) + phi_eta_fine_integ->getBinContent(setbin, phi);
1003 
1004  double valcoarse = phi_vs_eta_coarse->GetBinContent(eta, phi) + phi_eta_coarse_integ->getBinContent(setbin, phi);
1005 
1006  phi_eta_fine_integ->setBinContent(setbin, phi, valfine);
1007  phi_eta_coarse_integ->setBinContent(setbin, phi, valcoarse);
1008  phi_eta_integ->setBinContent(setbin, phi, valfine + valcoarse);
1009  }
1010 
1011  // double underflow_f = phi_vs_eta_fine->GetBinContent( 0, phi )
1012  // + phi_eta_fine_integ->getBinContent( 1, phi );
1013  // phi_eta_fine_integ->setBinContent( 1, phi, underflow_f );
1014  //
1015  // double underflow_c = phi_vs_eta_coarse->GetBinContent( 0, phi )
1016  // + phi_eta_coarse_integ->getBinContent( 1, phi );
1017  // phi_eta_coarse_integ->setBinContent( 1, phi, underflow_c );
1018  //
1019  // double overflow_f = phi_vs_eta_fine->GetBinContent( nbins+1, phi )
1020  // + phi_eta_fine_integ->getBinContent( 64 );
1021  // phi_eta_fine_integ->setBinContent( 64, phi, overflow_f );
1022  //
1023  // double overflow_c = phi_vs_eta_coarse->GetBinContent( nbins+1, phi )
1024  // + phi_eta_coarse_integ->getBinContent( 64, phi );
1025  // phi_eta_coarse_integ->setBinContent( 64, phi, overflow_c );
1026  //
1027  // double underflow = underflow_f + underflow_c;
1028  // phi_eta_integ->setBinContent( 1, phi, underflow );
1029  //
1030  // double overflow = overflow_f + overflow_c;
1031  // phi_eta_integ->setBinContent( 64, phi, overflow );
1032  }
1033 }
Definition: start.py:1
std::string wheelpath_[6]
Definition: L1TDTTFClient.h:47
TH2F * getTH2F(DQMStore::IGetter &igetter, const char *hname)
virtual double getBinContent(int binx) const
get content of bin (1-D)
virtual void setBinContent(int binx, double content)
set content of bin (1-D)
std::string wheel_[6]
Definition: L1TDTTFClient.h:46
void L1TDTTFClient::buildSummaries ( DQMStore::IGetter igetter)
private

needed for bx_integ

needed for bx_summary 2nd

needed for bx_integ

needed for bx_summary 2nd

needed for by wheel qualities

reset histograms

????

needed for fine fraction

needed for fine fraction

for quality

PHI vs Eta

Loop over sectors

Charge by sector

PT by sector

Phi by sector

Quality by sector

needed for high quality plot

needed for high quality plot (denominator)

eta fine by sector

eta fine fraction by sector

still eta: fraction by wheel

integ summary

still bx: wheel summary & inclusive

by wheel quality: integ summary

by wheel rescaling bx by wheel and number of tracks distribution

by wheel rescaling bx distributions

MORE ON 2ND TRACKS

eta by sector

Phi by wheel 2nd Tracks

PT by wheel 2nd Tracks

Charge by wheel 2nd Tracks

Quality by wheel 2nd Tracks

still bx: scaling integrals

rescaling bx distributions

Definition at line 475 of file L1TDTTFClient.cc.

References buildPhiEtaPlotO(), buildPhiEtaPlotOFC(), l1GtPatternGenerator_cfi::bx, dttf_2ndTrack_Summary, dttf_bx_integ, dttf_bx_integ_2ndTrack, dttf_bx_summary, dttf_bx_summary_2ndTrack, dttf_bx_wheel_integ, dttf_bx_wheel_integ_2ndTrack, dttf_bx_wheel_summary, dttf_bx_wheel_summary_2ndTrack, dttf_eta_fine_fraction, dttf_eta_integ, dttf_eta_integ_2ndTrack, dttf_eta_wheel, dttf_fine_fraction_wh, dttf_highQual_Summary, dttf_nTracks_integ, dttf_nTracks_integ_2ndTrack, dttf_nTracks_wheel, dttf_nTracks_wheel_2ndTrack, dttf_occupancySummary, dttf_occupancySummary_2ndTrack, dttf_occupancySummary_test, dttf_phi_eta_coarse_integ, dttf_phi_eta_fine_integ, dttf_phi_eta_integ, dttf_phi_eta_integ_2ndTrack, dttf_phi_integ, dttf_phi_integ_2ndTrack, dttf_phi_wheel, dttf_pt_integ, dttf_pt_integ_2ndTrack, dttf_pt_wheel, dttf_q_integ, dttf_q_integ_2ndTrack, dttf_q_wheel, dttf_quality_integ, dttf_quality_integ_2ndTrack, dttf_quality_summary, dttf_quality_summary_2ndTrack, dttf_quality_summary_wheel, dttf_quality_wheel, getTH1F(), dqm::legacy::MonitorElement::getTH1F(), getTH2F(), normalize(), dqm::impl::MonitorElement::Reset(), Scenarios_cff::scale, dqm::impl::MonitorElement::setBinContent(), AlCaHLTBitMon_QueryRunRegistry::string, createJobs::tmp, wheel_, and wheelpath_.

Referenced by makeSummary().

475  {
476  char hname[100];
477  int wheelBx[4];
478  int wheelBx2nd[4];
479  int wheelSumBx[4];
480  int wheelSumBx2nd[4];
481  int qualities[8];
482 
483  memset(wheelSumBx, 0, 4 * sizeof(int));
484  memset(wheelSumBx2nd, 0, 4 * sizeof(int));
485 
488  dttf_q_integ->Reset();
489  dttf_pt_integ->Reset();
499 
503 
504  for (unsigned int wh = 0; wh < 6; ++wh) {
505  dttf_eta_wheel[wh]->Reset();
506  dttf_q_wheel[wh]->Reset();
507  dttf_pt_wheel[wh]->Reset();
508  dttf_phi_wheel[wh]->Reset();
509  dttf_quality_wheel[wh]->Reset();
511 
512  double wheelEtaAll = 0;
513  double wheelEtaFine = 0;
514  memset(wheelBx, 0, 4 * sizeof(int));
515  memset(wheelBx2nd, 0, 4 * sizeof(int));
516 
518  memset(qualities, 0, 8 * sizeof(int));
519 
523  buildPhiEtaPlotOFC(igetter,
527  "%s/dttf_07_phi_vs_etaFine_wh%s",
528  "%s/dttf_08_phi_vs_etaCoarse_wh%s",
529  wh);
530 
531  buildPhiEtaPlotO(igetter, dttf_phi_eta_integ_2ndTrack, "%s/2ND_TRACK_ONLY/dttf_06_phi_vs_eta_wh%s_2ndTrack", wh);
532 
536  for (unsigned int sector = 1; sector < 13; ++sector) {
540  sprintf(hname, "%s/BX_BySector/dttf_bx_wh%s_se%d", wheelpath_[wh].c_str(), wheel_[wh].c_str(), sector);
541 
542  TH1F *bxsector = getTH1F(igetter, hname);
543  if (!bxsector) {
544  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D " << std::string(hname);
545  } else {
546  for (unsigned int bx = 1; bx < 4; ++bx) {
547  int bxval = bxsector->GetBinContent(bx);
548 
549  if (bx == 2) {
550  // if ( wh == 2 )
551  // dttf_occupancySummary->setBinContent( wh+1, sector, bxval*14 );
552  // else
553  // dttf_occupancySummary->setBinContent( wh+1, sector, bxval );
554  dttf_occupancySummary->setBinContent(wh + 1, sector, bxval);
555  dttf_occupancySummary_test->setBinContent(wh + 1, sector, bxval);
556  dttf_nTracks_wheel[wh]->setBinContent(sector, bxval);
557  }
558  wheelBx[bx] += bxval;
559  dttf_bx_wheel_summary[wh]->setBinContent(sector, bx, bxval);
560  }
561  }
562 
566  sprintf(hname,
567  "%s/BX_BySector/2ND_TRACK_ONLY/dttf_bx_2ndTrack_wh%s_se%d",
568  wheelpath_[wh].c_str(),
569  wheel_[wh].c_str(),
570  sector);
571 
572  TH1F *bxsector2nd = getTH1F(igetter, hname);
573  if (!bxsector2nd) {
574  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D " << std::string(hname);
575  } else {
576  for (unsigned int bx = 1; bx < 4; ++bx) {
577  int bxval = bxsector2nd->GetBinContent(bx);
578 
579  if (bx == 2) {
580  dttf_2ndTrack_Summary->setBinContent(wh + 1, sector, bxval);
581  dttf_occupancySummary_2ndTrack->setBinContent(wh + 1, sector, bxval);
582  dttf_nTracks_wheel_2ndTrack[wh]->setBinContent(sector, bxval);
583  }
584  wheelBx2nd[bx] += bxval;
585  dttf_bx_wheel_summary_2ndTrack[wh]->setBinContent(sector, bx, bxval);
586  }
587  }
588 
592  sprintf(hname, "%s/Charge/dttf_charge_wh%s_se%d", wheelpath_[wh].c_str(), wheel_[wh].c_str(), sector);
593  TH1F *tmp = getTH1F(igetter, hname);
594  if (!tmp) {
595  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D " << std::string(hname);
596  } else {
597  dttf_q_integ->getTH1F()->Add(tmp);
598  dttf_q_wheel[wh]->getTH1F()->Add(tmp);
599  }
600 
604  sprintf(hname, "%s/PT/dttf_pt_wh%s_se%d", wheelpath_[wh].c_str(), wheel_[wh].c_str(), sector);
605  tmp = getTH1F(igetter, hname);
606  if (!tmp) {
607  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D " << std::string(hname);
608  } else {
609  dttf_pt_integ->getTH1F()->Add(tmp);
610  dttf_pt_wheel[wh]->getTH1F()->Add(tmp);
611  }
612 
616  sprintf(hname, "%s/Phi/dttf_phi_wh%s_se%d", wheelpath_[wh].c_str(), wheel_[wh].c_str(), sector);
617  tmp = getTH1F(igetter, hname);
618  if (!tmp) {
619  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D " << std::string(hname);
620  } else {
621  dttf_phi_integ->getTH1F()->Add(tmp);
622  dttf_phi_wheel[wh]->getTH1F()->Add(tmp);
623  }
624 
628  double highQual = 0;
629  double denHighQual = 0;
630  sprintf(hname, "%s/Quality/dttf_qual_wh%s_se%d", wheelpath_[wh].c_str(), wheel_[wh].c_str(), sector);
631  tmp = getTH1F(igetter, hname);
632  if (!tmp) {
633  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D " << std::string(hname);
634  } else {
635  dttf_quality_wheel[wh]->getTH1F()->Add(tmp);
636 
637  for (unsigned int qual = 1; qual < 4; ++qual) {
638  double bincontent = tmp->GetBinContent(qual);
639  qualities[qual] += bincontent;
640  denHighQual += bincontent;
641  dttf_quality_summary_wheel[wh]->setBinContent(sector, qual, bincontent);
642  }
643 
644  for (unsigned int qual = 4; qual < 8; ++qual) {
645  double bincontent = tmp->GetBinContent(qual);
646  qualities[qual] += bincontent;
647  dttf_quality_summary_wheel[wh]->setBinContent(sector, qual, bincontent);
648  denHighQual += bincontent;
649  highQual += bincontent;
650  }
651  }
652  if (denHighQual > 0)
653  highQual /= denHighQual;
654  dttf_highQual_Summary->setBinContent(wh + 1, sector, highQual);
655 
659  sprintf(hname, "%s/Eta/dttf_eta_wh%s_se%d", wheelpath_[wh].c_str(), wheel_[wh].c_str(), sector);
660  tmp = getTH1F(igetter, hname);
661  if (!tmp) {
662  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D " << std::string(hname);
663  } else {
664  dttf_eta_integ->getTH1F()->Add(tmp);
665  dttf_eta_wheel[wh]->getTH1F()->Add(tmp);
666  }
667 
671  sprintf(hname,
672  "%s/EtaFineFraction/dttf_etaFine_fraction_wh%s_se%d",
673  wheelpath_[wh].c_str(),
674  wheel_[wh].c_str(),
675  sector);
676  tmp = getTH1F(igetter, hname);
677  if (!tmp) {
678  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D " << std::string(hname);
679  } else {
680  double fine = tmp->GetBinContent(1);
681  double coarse = tmp->GetBinContent(2);
682  double tot = fine + coarse;
683  wheelEtaAll += tot;
684  wheelEtaFine += fine;
685  if (tot > 0) {
686  dttf_fine_fraction_wh[wh]->setBinContent(sector, fine / tot);
687  }
688  }
689  }
690 
694  if (wheelEtaAll > 0) {
695  dttf_eta_fine_fraction->setBinContent(wh + 1, wheelEtaFine / wheelEtaAll);
696  }
697 
701  dttf_nTracks_integ->setBinContent(wh + 1, wheelBx[2]);
702  dttf_nTracks_integ_2ndTrack->setBinContent(wh + 1, wheelBx2nd[2]);
703 
707  for (unsigned int bx = 1; bx < 4; ++bx) {
708  dttf_bx_wheel_integ[wh]->setBinContent(bx, wheelBx[bx]);
709  dttf_bx_summary->setBinContent(wh + 1, bx, wheelBx[bx]);
710  wheelSumBx[bx] += wheelBx[bx];
711 
712  dttf_bx_wheel_integ_2ndTrack[wh]->setBinContent(bx, wheelBx2nd[bx]);
713  dttf_bx_summary_2ndTrack->setBinContent(wh + 1, bx, wheelBx2nd[bx]);
714  wheelSumBx2nd[bx] += wheelBx2nd[bx];
715  }
716 
720  for (unsigned int qual = 1; qual < 8; ++qual) {
721  dttf_quality_summary->setBinContent(wh + 1, qual, qualities[qual]);
722  dttf_quality_integ->getTH1F()->AddBinContent(qual, qualities[qual]);
723  }
724 
738 
742  double scale = wheelBx[2];
743  if (scale > 0) {
744  scale = 1 / scale;
745  normalize(dttf_bx_wheel_integ[wh]->getTH1F(), scale);
746  }
747 
748  scale = wheelBx2nd[2];
749  if (scale > 0) {
750  scale = 1 / scale;
752  }
753 
759 
763  sprintf(hname, "%s/2ND_TRACK_ONLY/dttf_07_eta_wh%s_2ndTrack", wheelpath_[wh].c_str(), wheel_[wh].c_str());
764 
765  TH1F *tmp = getTH1F(igetter, hname);
766  if (!tmp) {
767  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D " << std::string(hname);
768  } else {
769  dttf_eta_integ_2ndTrack->getTH1F()->Add(tmp);
770  }
771 
775  sprintf(hname, "%s/2ND_TRACK_ONLY/dttf_08_phi_wh%s_2ndTrack", wheelpath_[wh].c_str(), wheel_[wh].c_str());
776  tmp = getTH1F(igetter, hname);
777  if (!tmp) {
778  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D " << std::string(hname);
779  } else {
780  dttf_phi_integ_2ndTrack->getTH1F()->Add(tmp);
781  }
782 
786  sprintf(hname, "%s/2ND_TRACK_ONLY/dttf_09_pt_wh%s_2ndTrack", wheelpath_[wh].c_str(), wheel_[wh].c_str());
787  tmp = getTH1F(igetter, hname);
788  if (!tmp) {
789  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D " << std::string(hname);
790  } else {
791  dttf_pt_integ_2ndTrack->getTH1F()->Add(tmp);
792  }
793 
797  sprintf(hname, "%s/2ND_TRACK_ONLY/dttf_10_charge_wh%s_2ndTrack", wheelpath_[wh].c_str(), wheel_[wh].c_str());
798  tmp = getTH1F(igetter, hname);
799  if (!tmp) {
800  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D " << std::string(hname);
801  } else {
802  dttf_q_integ_2ndTrack->getTH1F()->Add(tmp);
803  }
804 
808  sprintf(hname, "%s/2ND_TRACK_ONLY/dttf_04_quality_wh%s_2ndTrack", wheelpath_[wh].c_str(), wheel_[wh].c_str());
809  tmp = getTH1F(igetter, hname);
810  if (!tmp) {
811  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D " << std::string(hname);
812  } else {
813  for (unsigned int qual = 1; qual < 8; ++qual) {
814  double binqual = tmp->GetBinContent(qual);
815  dttf_quality_integ_2ndTrack->getTH1F()->AddBinContent(qual, binqual);
816  dttf_quality_summary_2ndTrack->setBinContent(wh + 1, qual, binqual);
817  }
818  }
819  }
820 
824  for (unsigned int bx = 1; bx < 4; ++bx) {
825  dttf_bx_integ->setBinContent(bx, wheelSumBx[bx]);
826  dttf_bx_integ_2ndTrack->setBinContent(bx, wheelSumBx2nd[bx]);
827  }
828 
832  double scale = wheelSumBx[2];
833  if (scale > 0) {
834  scale = 1. / scale;
836  }
837 
838  scale = wheelSumBx2nd[2];
839  if (scale > 0) {
840  scale = 1. / scale;
842  }
843 }
MonitorElement * dttf_bx_integ_2ndTrack
Definition: L1TDTTFClient.h:77
MonitorElement * dttf_occupancySummary
Definition: L1TDTTFClient.h:53
MonitorElement * dttf_quality_summary
Definition: L1TDTTFClient.h:58
MonitorElement * dttf_q_wheel[6]
Definition: L1TDTTFClient.h:96
MonitorElement * dttf_eta_integ_2ndTrack
Definition: L1TDTTFClient.h:82
MonitorElement * dttf_quality_integ_2ndTrack
Definition: L1TDTTFClient.h:78
MonitorElement * dttf_eta_wheel[6]
Definition: L1TDTTFClient.h:93
MonitorElement * dttf_nTracks_integ
Definition: L1TDTTFClient.h:52
MonitorElement * dttf_quality_integ
Definition: L1TDTTFClient.h:57
virtual TH1F * getTH1F() const
TH1F * getTH1F(DQMStore::IGetter &igetter, const char *hname)
std::string wheelpath_[6]
Definition: L1TDTTFClient.h:47
void buildPhiEtaPlotO(DQMStore::IGetter &igetter, MonitorElement *phi_eta_integ, const std::string &path, int wh)
MonitorElement * dttf_bx_wheel_integ_2ndTrack[6]
MonitorElement * dttf_bx_wheel_summary[6]
Definition: L1TDTTFClient.h:88
MonitorElement * dttf_pt_integ_2ndTrack
Definition: L1TDTTFClient.h:84
MonitorElement * dttf_bx_integ
Definition: L1TDTTFClient.h:55
TH2F * getTH2F(DQMStore::IGetter &igetter, const char *hname)
MonitorElement * dttf_phi_eta_fine_integ
Definition: L1TDTTFClient.h:61
virtual void Reset()
reset ME (ie. contents, errors, etc)
MonitorElement * dttf_phi_wheel[6]
Definition: L1TDTTFClient.h:94
MonitorElement * dttf_phi_eta_integ
Definition: L1TDTTFClient.h:62
MonitorElement * dttf_quality_summary_wheel[6]
Definition: L1TDTTFClient.h:91
MonitorElement * dttf_pt_integ
Definition: L1TDTTFClient.h:65
MonitorElement * dttf_phi_eta_coarse_integ
Definition: L1TDTTFClient.h:60
MonitorElement * dttf_occupancySummary_2ndTrack
Definition: L1TDTTFClient.h:75
MonitorElement * dttf_eta_integ
Definition: L1TDTTFClient.h:66
MonitorElement * dttf_2ndTrack_Summary
Definition: L1TDTTFClient.h:70
MonitorElement * dttf_q_integ_2ndTrack
Definition: L1TDTTFClient.h:85
MonitorElement * dttf_bx_wheel_summary_2ndTrack[6]
Definition: L1TDTTFClient.h:99
MonitorElement * dttf_bx_summary
Definition: L1TDTTFClient.h:54
MonitorElement * dttf_quality_wheel[6]
Definition: L1TDTTFClient.h:90
virtual void setBinContent(int binx, double content)
set content of bin (1-D)
MonitorElement * dttf_eta_fine_fraction
Definition: L1TDTTFClient.h:63
MonitorElement * dttf_occupancySummary_test
Definition: L1TDTTFClient.h:72
MonitorElement * dttf_fine_fraction_wh[6]
Definition: L1TDTTFClient.h:92
MonitorElement * dttf_nTracks_wheel[6]
Definition: L1TDTTFClient.h:87
MonitorElement * dttf_bx_summary_2ndTrack
Definition: L1TDTTFClient.h:76
MonitorElement * dttf_nTracks_integ_2ndTrack
Definition: L1TDTTFClient.h:74
void buildPhiEtaPlotOFC(DQMStore::IGetter &igetter, MonitorElement *phi_eta_fine_integ, MonitorElement *phi_eta_coarse_integ, MonitorElement *phi_eta_integ, const std::string &path_fine, const std::string &path_coarse, int wh)
MonitorElement * dttf_phi_integ_2ndTrack
Definition: L1TDTTFClient.h:83
MonitorElement * dttf_pt_wheel[6]
Definition: L1TDTTFClient.h:95
MonitorElement * dttf_nTracks_wheel_2ndTrack[6]
Definition: L1TDTTFClient.h:98
MonitorElement * dttf_phi_integ
Definition: L1TDTTFClient.h:64
tmp
align.sh
Definition: createJobs.py:716
MonitorElement * dttf_highQual_Summary
Definition: L1TDTTFClient.h:59
MonitorElement * dttf_q_integ
Definition: L1TDTTFClient.h:67
MonitorElement * dttf_bx_wheel_integ[6]
Definition: L1TDTTFClient.h:89
void normalize(T *me)
std::string wheel_[6]
Definition: L1TDTTFClient.h:46
MonitorElement * dttf_quality_summary_2ndTrack
Definition: L1TDTTFClient.h:79
MonitorElement * dttf_phi_eta_integ_2ndTrack
Definition: L1TDTTFClient.h:81
void L1TDTTFClient::dqmEndJob ( DQMStore::IBooker ibooker,
DQMStore::IGetter igetter 
)
overrideprotectedvirtual

Implements DQMEDHarvester.

Definition at line 365 of file L1TDTTFClient.cc.

References book(), and makeSummary().

365  {
366  //Processing by run ID
367  book(ibooker);
368  makeSummary(igetter);
369 }
void book(DQMStore::IBooker &ibooker)
void makeSummary(DQMStore::IGetter &igetter)
void L1TDTTFClient::dqmEndLuminosityBlock ( DQMStore::IBooker ibooker,
DQMStore::IGetter ,
edm::LuminosityBlock const &  ,
edm::EventSetup const &   
)
overrideprotectedvirtual

Processing by Luminosity Block

Reimplemented from DQMEDHarvester.

Definition at line 372 of file L1TDTTFClient.cc.

References book(), counterLS_, getTH2F(), inclusivepath_, makeSummary(), normalize(), occupancy_r_, online_, resetafterlumi_, and AlCaHLTBitMon_QueryRunRegistry::string.

375  {
377  if (online_ && !(counterLS_ % resetafterlumi_)) {
378  book(ibooker);
379  char hname[60];
380  sprintf(hname, "%s/dttf_04_tracks_occupancy_by_lumi", inclusivepath_.c_str());
381 
382  occupancy_r_ = getTH2F(igetter, hname);
383  if (!occupancy_r_) {
384  edm::LogError("L1TDTTFClient::beginLuminosityBlock:ME") << "Failed to get TH2D " << std::string(hname);
385  } else {
386  edm::LogInfo("L1TDTTFClient::beginLuminosityBlock:RESET") << "Reseting plots by lumi!";
387  occupancy_r_->Reset();
388  }
389  }
390 
391  if (online_) {
392  makeSummary(igetter);
393  if (occupancy_r_)
394  normalize(occupancy_r_);
395  }
396 }
void book(DQMStore::IBooker &ibooker)
TH2F * getTH2F(DQMStore::IGetter &igetter, const char *hname)
TH2F * occupancy_r_
counter
Definition: L1TDTTFClient.h:44
void makeSummary(DQMStore::IGetter &igetter)
void normalize(T *me)
std::string inclusivepath_
Definition: L1TDTTFClient.h:48
TH1F * L1TDTTFClient::getTH1F ( DQMStore::IGetter igetter,
const char *  hname 
)
private

Definition at line 884 of file L1TDTTFClient.cc.

References dqm::dqmstoreimpl::DQMStore::IGetter::get(), dqm::legacy::MonitorElement::getTH1F(), hlt_dqm_clientPB-live_cfg::me, and AlCaHLTBitMon_QueryRunRegistry::string.

Referenced by buildSummaries().

884  {
885  MonitorElement *me = igetter.get(hname);
886  if (!me) {
887  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get ME " << std::string(hname);
888  return nullptr;
889  }
890 
891  return me->getTH1F();
892 }
virtual TH1F * getTH1F() const
TH2F * L1TDTTFClient::getTH2F ( DQMStore::IGetter igetter,
const char *  hname 
)
private
void L1TDTTFClient::makeSummary ( DQMStore::IGetter igetter)
private

Build Summariy plots

RESCALE PLOTS

BX has simply all entries

Scale plots with all entries

Scale plots with only physical entries (no N0 duplicates)

RESCALE PLOTS FOR 2nd tracks

BX has simply all entries

buildHigh Quality Summary Plot

Scale plots with all entries

Scale plots with only physical entries (no N0 duplicates)

GMT

Definition at line 399 of file L1TDTTFClient.cc.

References buildHighQualityPlot(), buildSummaries(), dttf_2ndTrack_Summary, dttf_bx_summary, dttf_bx_summary_2ndTrack, dttf_eta_integ, dttf_eta_integ_2ndTrack, dttf_highQual_Summary_2ndTrack, dttf_nTracks_integ, dttf_nTracks_integ_2ndTrack, dttf_occupancySummary, dttf_occupancySummary_2ndTrack, dttf_phi_eta_coarse_integ, dttf_phi_eta_fine_integ, dttf_phi_eta_integ, dttf_phi_eta_integ_2ndTrack, dttf_phi_integ, dttf_phi_integ_2ndTrack, dttf_pt_integ, dttf_pt_integ_2ndTrack, dttf_q_integ, dttf_q_integ_2ndTrack, dttf_quality_integ, dttf_quality_integ_2ndTrack, dttf_quality_summary, dttf_quality_summary_2ndTrack, dqm::legacy::MonitorElement::getTH1F(), dqm::legacy::MonitorElement::getTH2F(), normalize(), particleFlowDisplacedVertex_cfi::ratio, Scenarios_cff::scale, and setGMTsummary().

Referenced by dqmEndJob(), and dqmEndLuminosityBlock().

399  {
403  buildSummaries(igetter);
404 
408  double scale = 0;
409  double entries = dttf_occupancySummary->getTH2F()->Integral();
410 
411  if (entries) {
414 
416  scale = 1 / entries;
419 
421  double physEntries = dttf_eta_integ->getTH1F()->Integral();
422  if (physEntries > 0) {
423  double physScale = 1 / physEntries;
424 
425  normalize(dttf_phi_eta_integ->getTH2F(), physScale);
426 
429  normalize(dttf_quality_summary->getTH2F(), physScale);
430 
431  normalize(dttf_eta_integ->getTH1F(), physScale);
432  normalize(dttf_q_integ->getTH1F(), physScale);
433  normalize(dttf_pt_integ->getTH1F(), physScale);
434  normalize(dttf_phi_integ->getTH1F(), physScale);
435  normalize(dttf_quality_integ->getTH1F(), physScale);
436  }
437  }
438 
442 
443  double entries2ndTrack = dttf_occupancySummary_2ndTrack->getTH2F()->Integral();
444  if (entries2ndTrack > 0) {
447 
451  igetter, ratio, dttf_highQual_Summary_2ndTrack, "%s/2ND_TRACK_ONLY/dttf_05_quality_summary_wh%s_2ndTrack");
452 
454 
456  double scale2nd = 1 / entries2ndTrack;
459 
468  }
469 
471  setGMTsummary(igetter);
472 }
MonitorElement * dttf_occupancySummary
Definition: L1TDTTFClient.h:53
MonitorElement * dttf_quality_summary
Definition: L1TDTTFClient.h:58
virtual TH2F * getTH2F() const
MonitorElement * dttf_eta_integ_2ndTrack
Definition: L1TDTTFClient.h:82
MonitorElement * dttf_quality_integ_2ndTrack
Definition: L1TDTTFClient.h:78
void buildSummaries(DQMStore::IGetter &igetter)
MonitorElement * dttf_nTracks_integ
Definition: L1TDTTFClient.h:52
MonitorElement * dttf_quality_integ
Definition: L1TDTTFClient.h:57
virtual TH1F * getTH1F() const
void buildHighQualityPlot(DQMStore::IGetter &igetter, TH2F *occupancySummary, MonitorElement *highQual_Summary, const std::string &path)
MonitorElement * dttf_pt_integ_2ndTrack
Definition: L1TDTTFClient.h:84
MonitorElement * dttf_phi_eta_fine_integ
Definition: L1TDTTFClient.h:61
MonitorElement * dttf_highQual_Summary_2ndTrack
Definition: L1TDTTFClient.h:80
MonitorElement * dttf_phi_eta_integ
Definition: L1TDTTFClient.h:62
MonitorElement * dttf_pt_integ
Definition: L1TDTTFClient.h:65
MonitorElement * dttf_phi_eta_coarse_integ
Definition: L1TDTTFClient.h:60
MonitorElement * dttf_occupancySummary_2ndTrack
Definition: L1TDTTFClient.h:75
MonitorElement * dttf_eta_integ
Definition: L1TDTTFClient.h:66
MonitorElement * dttf_2ndTrack_Summary
Definition: L1TDTTFClient.h:70
MonitorElement * dttf_q_integ_2ndTrack
Definition: L1TDTTFClient.h:85
MonitorElement * dttf_bx_summary
Definition: L1TDTTFClient.h:54
MonitorElement * dttf_bx_summary_2ndTrack
Definition: L1TDTTFClient.h:76
MonitorElement * dttf_nTracks_integ_2ndTrack
Definition: L1TDTTFClient.h:74
void setGMTsummary(DQMStore::IGetter &igetter)
MonitorElement * dttf_phi_integ_2ndTrack
Definition: L1TDTTFClient.h:83
MonitorElement * dttf_phi_integ
Definition: L1TDTTFClient.h:64
MonitorElement * dttf_q_integ
Definition: L1TDTTFClient.h:67
void normalize(T *me)
MonitorElement * dttf_quality_summary_2ndTrack
Definition: L1TDTTFClient.h:79
MonitorElement * dttf_phi_eta_integ_2ndTrack
Definition: L1TDTTFClient.h:81
template<typename T >
void L1TDTTFClient::normalize ( T me)
inlineprivate

Definition at line 141 of file L1TDTTFClient.h.

References Scenarios_cff::scale.

Referenced by buildSummaries(), dqmEndLuminosityBlock(), makeSummary(), and normalize().

141  {
142  double scale = me->Integral();
143  if (scale > 0) {
144  normalize(me, 1. / scale, scale);
145  }
146  }
void normalize(T *me)
template<typename T >
void L1TDTTFClient::normalize ( T me,
const double &  scale 
)
inlineprivate

Definition at line 149 of file L1TDTTFClient.h.

References normalize().

149  {
150  normalize(me, scale, me->Integral());
151  }
void normalize(T *me)
template<typename T >
void L1TDTTFClient::normalize ( T me,
const double &  scale,
const double &  entries 
)
inlineprivate

Definition at line 154 of file L1TDTTFClient.h.

154  {
155  me->SetEntries(entries);
156  me->Scale(scale);
157  }
void L1TDTTFClient::setGMTsummary ( DQMStore::IGetter igetter)
private

Definition at line 846 of file L1TDTTFClient.cc.

References dttf_gmt_matching, getTH2F(), gmtpath_, match(), dqm::impl::MonitorElement::setBinContent(), AlCaHLTBitMon_QueryRunRegistry::string, and heppy_batch::val.

Referenced by makeSummary().

846  {
847  char hname[60];
848  sprintf(hname, "%s/dttf_tracks_with_gmt_match", gmtpath_.c_str());
849  TH2F *gmt_match = getTH2F(igetter, hname);
850  if (!gmt_match) {
851  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D " << std::string(hname);
852  return;
853  }
854 
855  sprintf(hname, "%s/dttf_tracks_without_gmt_match", gmtpath_.c_str());
856  TH2F *gmt_missed = getTH2F(igetter, hname);
857  if (!gmt_missed) {
858  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D " << std::string(hname);
859  return;
860  }
861 
862  sprintf(hname, "%s/dttf_missing_tracks_in_gmt", gmtpath_.c_str());
863  TH2F *gmt_ghost = getTH2F(igetter, hname);
864  if (!gmt_ghost) {
865  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D " << std::string(hname);
866  return;
867  }
868 
869  int match = gmt_match->Integral();
870  int missed = gmt_missed->Integral();
871  int ghost = gmt_ghost->Integral();
872  float tot = match + missed + ghost;
873  if (tot > 0) {
874  double val = ghost / tot;
876  val = match / tot;
878  val = missed / tot;
880  }
881 }
MonitorElement * dttf_gmt_matching
Definition: L1TDTTFClient.h:69
TH2F * getTH2F(DQMStore::IGetter &igetter, const char *hname)
std::string gmtpath_
Definition: L1TDTTFClient.h:49
virtual void setBinContent(int binx, double content)
set content of bin (1-D)
std::pair< typename Association::data_type::first_type, double > match(Reference key, Association association, bool bestMatchByMaxValue)
Generic matching function.
Definition: Utils.h:10
void L1TDTTFClient::setMapLabel ( MonitorElement me)
private
void L1TDTTFClient::setQualLabel ( MonitorElement me,
int  axis 
)
private

Definition at line 1185 of file L1TDTTFClient.cc.

References dqm::impl::MonitorElement::setAxisTitle(), and dqm::impl::MonitorElement::setBinLabel().

Referenced by book().

1185  {
1186  if (axis == 1)
1187  me->setAxisTitle("Quality", axis);
1188  me->setBinLabel(1, "T34", axis);
1189  me->setBinLabel(2, "T23/24", axis);
1190  me->setBinLabel(3, "T12/13/14", axis);
1191  me->setBinLabel(4, "T234", axis);
1192  me->setBinLabel(5, "T134", axis);
1193  me->setBinLabel(6, "T123/124", axis);
1194  me->setBinLabel(7, "T1234", axis);
1195 }
virtual void setBinLabel(int bin, const std::string &label, int axis=1)
set bin label for x, y or z axis (axis=1, 2, 3 respectively)
virtual void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
void L1TDTTFClient::setWheelLabel ( MonitorElement me)
private

Definition at line 1174 of file L1TDTTFClient.cc.

References dqm::impl::MonitorElement::setAxisTitle(), and dqm::impl::MonitorElement::setBinLabel().

Referenced by book().

1174  {
1175  me->setAxisTitle("Wheel", 1);
1176  me->setBinLabel(1, "N2", 1);
1177  me->setBinLabel(2, "N1", 1);
1178  me->setBinLabel(3, "N0", 1);
1179  me->setBinLabel(4, "P0", 1);
1180  me->setBinLabel(5, "P1", 1);
1181  me->setBinLabel(6, "P2", 1);
1182 }
virtual void setBinLabel(int bin, const std::string &label, int axis=1)
set bin label for x, y or z axis (axis=1, 2, 3 respectively)
virtual void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)

Member Data Documentation

int L1TDTTFClient::counterLS_
private

Definition at line 43 of file L1TDTTFClient.h.

Referenced by dqmEndLuminosityBlock().

MonitorElement* L1TDTTFClient::dttf_2ndTrack_Summary
private

Definition at line 70 of file L1TDTTFClient.h.

Referenced by book(), buildSummaries(), and makeSummary().

MonitorElement* L1TDTTFClient::dttf_bx_integ
private

Definition at line 55 of file L1TDTTFClient.h.

Referenced by book(), and buildSummaries().

MonitorElement* L1TDTTFClient::dttf_bx_integ_2ndTrack
private

Definition at line 77 of file L1TDTTFClient.h.

Referenced by book(), and buildSummaries().

MonitorElement* L1TDTTFClient::dttf_bx_summary
private

Definition at line 54 of file L1TDTTFClient.h.

Referenced by book(), buildSummaries(), and makeSummary().

MonitorElement* L1TDTTFClient::dttf_bx_summary_2ndTrack
private

Definition at line 76 of file L1TDTTFClient.h.

Referenced by book(), buildSummaries(), and makeSummary().

MonitorElement* L1TDTTFClient::dttf_bx_wheel_integ[6]
private

Definition at line 89 of file L1TDTTFClient.h.

Referenced by book(), and buildSummaries().

MonitorElement* L1TDTTFClient::dttf_bx_wheel_integ_2ndTrack[6]
private

Definition at line 100 of file L1TDTTFClient.h.

Referenced by book(), and buildSummaries().

MonitorElement* L1TDTTFClient::dttf_bx_wheel_summary[6]
private

Definition at line 88 of file L1TDTTFClient.h.

Referenced by book(), and buildSummaries().

MonitorElement* L1TDTTFClient::dttf_bx_wheel_summary_2ndTrack[6]
private

Definition at line 99 of file L1TDTTFClient.h.

Referenced by book(), and buildSummaries().

MonitorElement* L1TDTTFClient::dttf_eta_fine_fraction
private

Definition at line 63 of file L1TDTTFClient.h.

Referenced by book(), and buildSummaries().

MonitorElement* L1TDTTFClient::dttf_eta_fine_integ
private

Definition at line 56 of file L1TDTTFClient.h.

MonitorElement* L1TDTTFClient::dttf_eta_integ
private

Definition at line 66 of file L1TDTTFClient.h.

Referenced by book(), buildSummaries(), and makeSummary().

MonitorElement* L1TDTTFClient::dttf_eta_integ_2ndTrack
private

Definition at line 82 of file L1TDTTFClient.h.

Referenced by book(), buildSummaries(), and makeSummary().

MonitorElement* L1TDTTFClient::dttf_eta_wheel[6]
private

Definition at line 93 of file L1TDTTFClient.h.

Referenced by book(), and buildSummaries().

MonitorElement* L1TDTTFClient::dttf_fine_fraction_wh[6]
private

Definition at line 92 of file L1TDTTFClient.h.

Referenced by book(), and buildSummaries().

MonitorElement* L1TDTTFClient::dttf_gmt_matching
private

Definition at line 69 of file L1TDTTFClient.h.

Referenced by book(), and setGMTsummary().

MonitorElement* L1TDTTFClient::dttf_highQual_Summary
private

Definition at line 59 of file L1TDTTFClient.h.

Referenced by book(), and buildSummaries().

MonitorElement* L1TDTTFClient::dttf_highQual_Summary_2ndTrack
private

Definition at line 80 of file L1TDTTFClient.h.

Referenced by book(), and makeSummary().

MonitorElement* L1TDTTFClient::dttf_nTracks_integ
private

Definition at line 52 of file L1TDTTFClient.h.

Referenced by book(), buildSummaries(), and makeSummary().

MonitorElement* L1TDTTFClient::dttf_nTracks_integ_2ndTrack
private

Definition at line 74 of file L1TDTTFClient.h.

Referenced by book(), buildSummaries(), and makeSummary().

MonitorElement* L1TDTTFClient::dttf_nTracks_wheel[6]
private

Definition at line 87 of file L1TDTTFClient.h.

Referenced by book(), and buildSummaries().

MonitorElement* L1TDTTFClient::dttf_nTracks_wheel_2ndTrack[6]
private

Definition at line 98 of file L1TDTTFClient.h.

Referenced by book(), and buildSummaries().

MonitorElement* L1TDTTFClient::dttf_occupancySummary
private

Definition at line 53 of file L1TDTTFClient.h.

Referenced by book(), buildSummaries(), and makeSummary().

MonitorElement* L1TDTTFClient::dttf_occupancySummary_2ndTrack
private

Definition at line 75 of file L1TDTTFClient.h.

Referenced by book(), buildSummaries(), and makeSummary().

MonitorElement* L1TDTTFClient::dttf_occupancySummary_test
private

Definition at line 72 of file L1TDTTFClient.h.

Referenced by book(), and buildSummaries().

MonitorElement* L1TDTTFClient::dttf_phi_eta_coarse_integ
private

Definition at line 60 of file L1TDTTFClient.h.

Referenced by book(), buildSummaries(), and makeSummary().

MonitorElement* L1TDTTFClient::dttf_phi_eta_fine_integ
private

Definition at line 61 of file L1TDTTFClient.h.

Referenced by book(), buildSummaries(), and makeSummary().

MonitorElement* L1TDTTFClient::dttf_phi_eta_integ
private

Definition at line 62 of file L1TDTTFClient.h.

Referenced by book(), buildSummaries(), and makeSummary().

MonitorElement* L1TDTTFClient::dttf_phi_eta_integ_2ndTrack
private

Definition at line 81 of file L1TDTTFClient.h.

Referenced by book(), buildSummaries(), and makeSummary().

MonitorElement* L1TDTTFClient::dttf_phi_integ
private

Definition at line 64 of file L1TDTTFClient.h.

Referenced by book(), buildSummaries(), and makeSummary().

MonitorElement* L1TDTTFClient::dttf_phi_integ_2ndTrack
private

Definition at line 83 of file L1TDTTFClient.h.

Referenced by book(), buildSummaries(), and makeSummary().

MonitorElement* L1TDTTFClient::dttf_phi_wheel[6]
private

Definition at line 94 of file L1TDTTFClient.h.

Referenced by book(), and buildSummaries().

MonitorElement* L1TDTTFClient::dttf_pt_integ
private

Definition at line 65 of file L1TDTTFClient.h.

Referenced by book(), buildSummaries(), and makeSummary().

MonitorElement* L1TDTTFClient::dttf_pt_integ_2ndTrack
private

Definition at line 84 of file L1TDTTFClient.h.

Referenced by book(), buildSummaries(), and makeSummary().

MonitorElement* L1TDTTFClient::dttf_pt_wheel[6]
private

Definition at line 95 of file L1TDTTFClient.h.

Referenced by book(), and buildSummaries().

MonitorElement* L1TDTTFClient::dttf_q_integ
private

Definition at line 67 of file L1TDTTFClient.h.

Referenced by book(), buildSummaries(), and makeSummary().

MonitorElement* L1TDTTFClient::dttf_q_integ_2ndTrack
private

Definition at line 85 of file L1TDTTFClient.h.

Referenced by book(), buildSummaries(), and makeSummary().

MonitorElement* L1TDTTFClient::dttf_q_wheel[6]
private

Definition at line 96 of file L1TDTTFClient.h.

Referenced by book(), and buildSummaries().

MonitorElement* L1TDTTFClient::dttf_quality_integ
private

Definition at line 57 of file L1TDTTFClient.h.

Referenced by book(), buildSummaries(), and makeSummary().

MonitorElement* L1TDTTFClient::dttf_quality_integ_2ndTrack
private

Definition at line 78 of file L1TDTTFClient.h.

Referenced by book(), buildSummaries(), and makeSummary().

MonitorElement* L1TDTTFClient::dttf_quality_summary
private

Definition at line 58 of file L1TDTTFClient.h.

Referenced by book(), buildSummaries(), and makeSummary().

MonitorElement* L1TDTTFClient::dttf_quality_summary_2ndTrack
private

Definition at line 79 of file L1TDTTFClient.h.

Referenced by book(), buildSummaries(), and makeSummary().

MonitorElement* L1TDTTFClient::dttf_quality_summary_wheel[6]
private

Definition at line 91 of file L1TDTTFClient.h.

Referenced by book(), and buildSummaries().

MonitorElement* L1TDTTFClient::dttf_quality_wheel[6]
private

Definition at line 90 of file L1TDTTFClient.h.

Referenced by book(), and buildSummaries().

edm::InputTag L1TDTTFClient::dttfSource_
private

Definition at line 39 of file L1TDTTFClient.h.

std::string L1TDTTFClient::gmtpath_
private

Definition at line 49 of file L1TDTTFClient.h.

Referenced by book(), and setGMTsummary().

std::string L1TDTTFClient::inclusivepath_
private

Definition at line 48 of file L1TDTTFClient.h.

Referenced by book(), and dqmEndLuminosityBlock().

std::string L1TDTTFClient::l1tdttffolder_
private

Definition at line 38 of file L1TDTTFClient.h.

Referenced by book().

TH2F* L1TDTTFClient::occupancy_r_
private

counter

Definition at line 44 of file L1TDTTFClient.h.

Referenced by dqmEndLuminosityBlock().

bool L1TDTTFClient::online_
private

Definition at line 40 of file L1TDTTFClient.h.

Referenced by dqmEndLuminosityBlock().

int L1TDTTFClient::resetafterlumi_
private

Definition at line 42 of file L1TDTTFClient.h.

Referenced by dqmEndLuminosityBlock().

std::string L1TDTTFClient::testpath_
private

Definition at line 50 of file L1TDTTFClient.h.

Referenced by book().

bool L1TDTTFClient::verbose_
private

Definition at line 41 of file L1TDTTFClient.h.

std::string L1TDTTFClient::wheel_[6]
private
std::string L1TDTTFClient::wheelpath_[6]
private