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 hasAbilityToProduceInLumis () const final
 
bool hasAbilityToProduceInRuns () 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
 
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)
 
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::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 

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 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 21 of file L1TDTTFClient.h.

Constructor & Destructor Documentation

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

Constructor.

base services

Definition at line 19 of file L1TDTTFClient.cc.

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

Destructor.

Definition at line 31 of file L1TDTTFClient.cc.

31  {
32  edm::LogInfo("L1TDTTFClient")<<"[L1TDTTFClient]: ending... ";
33 }

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 37 of file L1TDTTFClient.cc.

References DQMStore::IBooker::book1D(), 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_, MonitorElement::setAxisTitle(), MonitorElement::setBinLabel(), DQMStore::IBooker::setCurrentFolder(), setQualLabel(), setWheelLabel(), testpath_, wheel_, and wheelpath_.

Referenced by dqmEndJob(), and dqmEndLuminosityBlock().

38 {
39 
40  edm::LogInfo("L1TDTTFClient")<<"[L1TDTTFClient]: Begin Job";
41 
42  wheelpath_[0] = l1tdttffolder_ + "/02-WHEEL_N2";
43  wheelpath_[1] = l1tdttffolder_ + "/03-WHEEL_N1";
44  wheelpath_[2] = l1tdttffolder_ + "/04-WHEEL_N0";
45  wheelpath_[3] = l1tdttffolder_ + "/05-WHEEL_P0";
46  wheelpath_[4] = l1tdttffolder_ + "/06-WHEEL_P1";
47  wheelpath_[5] = l1tdttffolder_ + "/07-WHEEL_P2";
48 
49  wheel_[0] = "N2";
50  wheel_[1] = "N1";
51  wheel_[2] = "N0";
52  wheel_[3] = "P0";
53  wheel_[4] = "P1";
54  wheel_[5] = "P2";
55 
56  inclusivepath_ = l1tdttffolder_ + "/01-INCLUSIVE";
57  gmtpath_ = l1tdttffolder_ + "/08-GMT_MATCH";
58  testpath_ = l1tdttffolder_ + "/09-TEST";
59 
61  char hname[100];//histo name
62  char mename[100];//ME name
63 
67  sprintf(hname, "dttf_02_nTracks");
68  sprintf(mename, "DTTF Tracks by Wheel");
69  dttf_nTracks_integ = ibooker.book1D(hname, mename, 6, 0, 6);
71 
73  sprintf(hname, "dttf_03_tracks_occupancy_summary");
74  sprintf(mename, "DTTF Tracks Occupancy");
75  dttf_occupancySummary = ibooker.book2D( hname, mename, 6, 0, 6, 12, 1, 13 );
77  dttf_occupancySummary->setAxisTitle("Sector", 2);
78 
80 
82  sprintf(hname, "dttf_05_bx_occupancy");
83  sprintf(mename, "DTTF Tracks BX Distribution by Wheel");
84  dttf_bx_summary = ibooker.book2D(hname, mename, 6, 0, 6, 3, -1, 2 );
86  dttf_bx_summary->setAxisTitle("BX", 2 );
87 
89  sprintf(hname, "dttf_06_bx");
90  sprintf(mename, "DTTF Tracks BX w.r.t. Tracks with BX=0");
91  dttf_bx_integ = ibooker.book1D( hname, mename, 3, -1.5, 1.5 );
92  dttf_bx_integ->setAxisTitle("BX", 1);
93 
95  sprintf(hname, "dttf_07_quality");
96  sprintf(mename, "DTTF Tracks Quality distribution");
97  dttf_quality_integ = ibooker.book1D(hname, mename, 7, 1, 8);
99 
101  sprintf(hname, "dttf_08_quality_occupancy");
102  sprintf(mename, "DTTF Tracks Quality distribution by Wheel");
103  dttf_quality_summary = ibooker.book2D( hname, mename, 6, 0, 6, 7, 1, 8 );
104  dttf_quality_summary->setAxisTitle("Wheel", 1);
107 
109  sprintf(hname, "dttf_09_highQuality_Tracks");
110  sprintf(mename, "Fraction of DTTF Tracks with Quality>3");
111  dttf_highQual_Summary = ibooker.book2D( hname, mename, 6, 0, 6, 12, 1, 13 );
113  dttf_highQual_Summary->setAxisTitle("Sector", 2);
114 
115 
117  sprintf(hname, "dttf_10_phi_vs_etaCoarse");
118  sprintf(mename, "#eta-#phi DTTF Tracks occupancy (coarse #eta only, packed values)");
119  dttf_phi_eta_coarse_integ = ibooker.book2D( hname, mename, 64, 0, 64,
120  144, -6, 138. );
123 
125  sprintf(hname, "dttf_11_phi_vs_etaFine");
126  sprintf(mename, "#eta-#phi DTTF Tracks occupancy (fine #eta only, packed values)");
127  dttf_phi_eta_fine_integ = ibooker.book2D( hname, mename, 64, 0, 64,
128  144, -6, 138. );
131 
133  sprintf(hname, "dttf_12_phi_vs_eta");
134  sprintf(mename, "#eta-#phi DTTF Tracks occupancy");
135  dttf_phi_eta_integ = ibooker.book2D( hname, mename, 64, -1.2, 1.2,
136  144, -15, 345. );
137  dttf_phi_eta_integ->setAxisTitle("#eta", 1);
138  dttf_phi_eta_integ->setAxisTitle("#phi", 2);
139 
141  sprintf(hname, "dttf_13_eta_fine_fraction");
142  sprintf(mename, "Fraction of DTTF Tracks with Fine #eta Assignment");
143  dttf_eta_fine_fraction = ibooker.book1D( hname, mename, 6, 0, 6 );
146 
148 
150  sprintf(hname, "dttf_14_eta");
151  sprintf(mename, "DTTF Tracks #eta distribution (Packed values)");
152  dttf_eta_integ = ibooker.book1D(hname, mename, 64, -0.5, 63.5);
153  dttf_eta_integ->setAxisTitle("#eta", 1);
154 
156  sprintf(hname, "dttf_15_phi");
157  sprintf(mename, "DTTF Tracks Phi distribution (Packed values)");
158  dttf_phi_integ = ibooker.book1D(hname, mename, 144, -6, 138. );
159  dttf_phi_integ->setAxisTitle("#phi", 1);
160 
162  sprintf(hname, "dttf_16_pt");
163  sprintf(mename, "DTTF Tracks p_{T} distribution (Packed values)");
164  dttf_pt_integ = ibooker.book1D(hname, mename, 32, -0.5, 31.5);
165  dttf_pt_integ->setAxisTitle("p_{T}", 1);
167  sprintf(hname, "dttf_17_charge");
168  sprintf(mename, "DTTF Tracks Charge distribution");
169  dttf_q_integ = ibooker.book1D(hname, mename, 2, -0.5, 1.5);
170  dttf_q_integ->setAxisTitle("Charge", 1);
171 
172 
173 
175  sprintf(hname, "dttf_18_2ndTrack_occupancy_summary");
176  sprintf(mename, "DTTF 2nd Tracks occupancy w.r.t. Tracks with BX=0");
177  dttf_2ndTrack_Summary = ibooker.book2D( hname, mename, 6, 0, 6, 12, 1, 13 );
179 
180 
181 
185  ibooker.setCurrentFolder( gmtpath_ );
186  sprintf(hname, "dttf_gmt_fract_matching" );
187  sprintf(mename, "Fraction of DTTF tracks matching with GMT tracks" );
188  dttf_gmt_matching = ibooker.book1D( hname, mename, 3, 1, 4);
189  dttf_gmt_matching->setBinLabel(1, "GMT Only", 1);
190  dttf_gmt_matching->setBinLabel(2, "Matching", 1);
191  dttf_gmt_matching->setBinLabel(3, "DTTF Only", 1);
192 
193 
197 
198  ibooker.setCurrentFolder( testpath_ );
199  sprintf(hname, "dttf_01_tracks_occupancy_test_summary");
200  sprintf(mename, "DTTF Tracks Occupancy");
201  dttf_occupancySummary_test = ibooker.book2D( hname, mename, 6, 0, 6, 12, 1, 13 );
204 
205 
209  ibooker.setCurrentFolder( inclusivepath_ + "/2ND_TRACK_ONLY");
210 
212  sprintf(hname, "dttf_01_nTracks_2ndTrack");
213  sprintf(mename, "DTTF 2nd Tracks per Wheel distribution");
214  dttf_nTracks_integ_2ndTrack = ibooker.book1D(hname, mename, 6, 0, 6);
216 
218  sprintf(hname, "dttf_02_occupancy_summary_2ndTrack");
219  sprintf(mename, "DTTF 2nd Tracks distribution by Sector and Wheel");
220  dttf_occupancySummary_2ndTrack = ibooker.book2D( hname, mename, 6, 0, 6,
221  12, 1, 13 );
223 
225  sprintf(hname, "dttf_03_bx_occupancy_2ndTrack");
226  sprintf(mename, "DTTF 2nd Tracks BX Distribution by Wheel");
227  dttf_bx_summary_2ndTrack = ibooker.book2D( hname, mename, 6, 0, 6, 3, -1, 2 );
230 
232  sprintf(hname, "dttf_04_bx_2ndTrack");
233  sprintf(mename, "Fraction of DTTF Tracks BX w.r.t. Tracks with BX=0");
234  dttf_bx_integ_2ndTrack = ibooker.book1D( hname, mename, 3, -1.5, 1.5 );
236 
238  sprintf(hname, "dttf_05_quality_2ndTrack");
239  sprintf(mename, "DTTF 2nd Tracks Quality distribution");
240  dttf_quality_integ_2ndTrack = ibooker.book1D(hname, mename, 7, 0.5, 7.5);
243 
245  sprintf(hname, "dttf_06_quality_occupancy_2ndTrack");
246  sprintf(mename, "DTTF 2nd Tracks Quality distribution by Wheel");
247  dttf_quality_summary_2ndTrack = ibooker.book2D( hname, mename,
248  6, 0, 6, 7, 1, 8 );
252 
254  sprintf(hname, "dttf_07_highQuality_Tracks_2ndTrack");
255  sprintf(mename, "Fraction of DTTF 2nd Tracks with Quality>3");
256  dttf_highQual_Summary_2ndTrack = ibooker.book2D( hname, mename, 6, 0, 6,
257  12, 1, 13 );
260 
262  sprintf(hname, "dttf_08_phi_vs_eta_2ndTrack");
263  sprintf(mename, "#eta-#phi DTTF Tracks occupancy for 2nd Tracks");
264  dttf_phi_eta_integ_2ndTrack = ibooker.book2D( hname, mename, 64, 0, 64,
265  144, -6, 138. );
268 
270  sprintf(hname, "dttf_09_eta_2ndTrack");
271  sprintf(mename, "DTTF 2nd Tracks #eta distribution (Packed values)");
272  dttf_eta_integ_2ndTrack = ibooker.book1D(hname, mename, 64, -0.5, 63.5);
274 
276  sprintf(hname, "dttf_10_phi_2ndTrack");
277  sprintf(mename, "DTTF 2nd Tracks Phi distribution (Packed values)");
278  dttf_phi_integ_2ndTrack = ibooker.book1D(hname, mename, 144, -6, 138 );
280 
282  sprintf(hname, "dttf_11_pt_2ndTrack");
283  sprintf(mename, "DTTF 2nd Tracks p_{T} distribution (Packed values)");
284  dttf_pt_integ_2ndTrack = ibooker.book1D(hname, mename, 32, -0.5, 31.5);
286 
288  sprintf(hname, "dttf_12_charge_2ndTrack");
289  sprintf(mename, "DTTF 2nd Tracks Charge distribution");
290  dttf_q_integ_2ndTrack = ibooker.book1D(hname, mename, 2, -0.5, 1.5);
291  dttf_q_integ_2ndTrack->setAxisTitle("Charge", 1);
292 
293 
294  for ( unsigned int wh = 0; wh < 6 ; ++wh ) {
295  ibooker.setCurrentFolder( wheelpath_[wh] );
296 
298  sprintf( hname, "dttf_02_nTracks_wh%s", wheel_[wh].c_str() );
299  sprintf( mename, "Wheel %s - Number of Tracks", wheel_[wh].c_str() );
300  dttf_nTracks_wheel[wh] = ibooker.book1D( hname, mename, 12, 1, 13);
301  dttf_nTracks_wheel[wh]->setAxisTitle("sector", 1);
302 
304  sprintf(hname, "dttf_03_bx_occupancy_wh%s", wheel_[wh].c_str() );
305  sprintf(mename, "Wheel %s - DTTF Tracks BX distribution by Sector",
306  wheel_[wh].c_str());
307  dttf_bx_wheel_summary[wh] = ibooker.book2D( hname, mename, 12, 1, 13, 3, -1, 2);
308  dttf_bx_wheel_summary[wh]->setAxisTitle("BX", 2 );
309  dttf_bx_wheel_summary[wh]->setAxisTitle("Sector", 1 );
310 
312  sprintf(hname, "dttf_04_bx_wh%s", wheel_[wh].c_str());
313  sprintf(mename, "Wheel %s - DTTF Tracks BX w.r.t. Tracks with BX=0", wheel_[wh].c_str());
314  dttf_bx_wheel_integ[wh] = ibooker.book1D(hname, mename, 3, -1.5, 1.5);
315  dttf_bx_wheel_integ[wh]->setAxisTitle("BX", 1);
316 
318  sprintf(hname, "dttf_05_quality_wh%s", wheel_[wh].c_str() );
319  sprintf(mename, "Wheel %s - Tracks Quality Distribution", wheel_[wh].c_str() );
320  dttf_quality_wheel[wh] = ibooker.book1D(hname, mename, 7, 1, 8);
321  dttf_quality_wheel[wh]->setAxisTitle("Quality", 1);
323 
325  sprintf(hname, "dttf_06_quality_summary_wh%s", wheel_[wh].c_str() );
326  sprintf(mename, "Wheel %s - Tracks Quality Distribution by Sector",
327  wheel_[wh].c_str() );
328  dttf_quality_summary_wheel[wh] = ibooker.book2D(hname, mename, 12, 1, 13, 7, 1, 8);
329  dttf_quality_summary_wheel[wh]->setAxisTitle("Sector", 1);
330  // dttf_quality_summary_wheel[wh]->setAxisTitle("Quality", 2);
332 
334  sprintf(hname, "dttf_09_etaFine_fraction_wh%s", wheel_[wh].c_str() );
335  sprintf(mename, "Wheel %s - Fraction of DTTF Tracks with fine #eta assignment",
336  wheel_[wh].c_str());
337  dttf_fine_fraction_wh[wh] = ibooker.book1D( hname, mename, 12, 1, 13);
338  dttf_fine_fraction_wh[wh]->setAxisTitle("Sector", 1 );
339 
340 
342  sprintf(hname, "dttf_10_eta_wh%s", wheel_[wh].c_str() );
343  sprintf(mename, "Wheel %s - DTTF Tracks #eta distribution (Packed values)",
344  wheel_[wh].c_str() );
345  dttf_eta_wheel[wh] = ibooker.book1D(hname, mename, 64, -0.5, 63.5 );
346  dttf_eta_wheel[wh]->setAxisTitle("#eta", 1 );
347 
349  sprintf(hname, "dttf_11_phi_wh%s", wheel_[wh].c_str() );
350  sprintf(mename, "Wheel %s - DTTF Tracks Phi distribution (Packed values)",
351  wheel_[wh].c_str() );
352  dttf_phi_wheel[wh] = ibooker.book1D(hname, mename, 144, -6, 138. );
353  dttf_phi_wheel[wh]->setAxisTitle("#phi", 1);
354 
356  sprintf(hname, "dttf_12_pt_wh%s", wheel_[wh].c_str() );
357  sprintf(mename, "Wheel %s - DTTF Tracks p_{T} distribution (Packed values)",
358  wheel_[wh].c_str() );
359  dttf_pt_wheel[wh] = ibooker.book1D(hname, mename, 32, -0.5, 31.5);
360  dttf_pt_wheel[wh]->setAxisTitle("p_{T}", 1);
361 
363  sprintf(hname, "dttf_13_charge_wh%s", wheel_[wh].c_str() );
364  sprintf(mename, "Wheel %s - DTTF Tracks Charge distribution",
365  wheel_[wh].c_str() );
366  dttf_q_wheel[wh] = ibooker.book1D(hname, mename, 2, -0.5, 1.5);
367  dttf_q_wheel[wh]->setAxisTitle("Charge", 1);
368 
369  }
370 
371 
373  for ( unsigned int wh = 0; wh < 6 ; ++wh ) {
374  ibooker.setCurrentFolder( wheelpath_[wh] + "/2ND_TRACK_ONLY" );
375 
377  sprintf( hname, "dttf_01_nTracks_wh%s_2ndTrack", wheel_[wh].c_str() );
378  sprintf( mename, "Wheel %s - DTTF Number of 2nd Tracks with BX=0",
379  wheel_[wh].c_str() );
380  dttf_nTracks_wheel_2ndTrack[wh] = ibooker.book1D( hname, mename,
381  12, 1, 13);
382  dttf_nTracks_wheel_2ndTrack[wh]->setAxisTitle("sector", 1);
383 
385  sprintf(hname, "dttf_02_bx_occupancy_wh%s_2ndTrack", wheel_[wh].c_str() );
386  sprintf(mename, "Wheel %s - DTTF 2nd Tracks BX distribution by Sector",
387  wheel_[wh].c_str());
388  dttf_bx_wheel_summary_2ndTrack[wh] = ibooker.book2D( hname, mename, 12, 1, 13, 3, -1, 2);
390  dttf_bx_wheel_summary_2ndTrack[wh]->setAxisTitle("Sector", 1 );
391 
393  sprintf(hname, "dttf_03_bx_wh%s_2ndTrack", wheel_[wh].c_str());
394  sprintf(mename, "Wheel %s - 2nd Tracks BX Distribution", wheel_[wh].c_str());
395  dttf_bx_wheel_integ_2ndTrack[wh] = ibooker.book1D(hname, mename, 3, -1.5, 1.5);
397 
398 
399  }
400 
401 
402 
403 }
MonitorElement * dttf_bx_integ_2ndTrack
Definition: L1TDTTFClient.h:80
MonitorElement * dttf_gmt_matching
Definition: L1TDTTFClient.h:72
MonitorElement * dttf_occupancySummary
Definition: L1TDTTFClient.h:56
MonitorElement * dttf_quality_summary
Definition: L1TDTTFClient.h:61
MonitorElement * dttf_q_wheel[6]
Definition: L1TDTTFClient.h:99
MonitorElement * dttf_eta_integ_2ndTrack
Definition: L1TDTTFClient.h:85
MonitorElement * dttf_quality_integ_2ndTrack
Definition: L1TDTTFClient.h:81
MonitorElement * dttf_eta_wheel[6]
Definition: L1TDTTFClient.h:96
MonitorElement * dttf_nTracks_integ
Definition: L1TDTTFClient.h:55
MonitorElement * dttf_quality_integ
Definition: L1TDTTFClient.h:60
std::string wheelpath_[6]
Definition: L1TDTTFClient.h:50
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_wheel_integ_2ndTrack[6]
MonitorElement * dttf_bx_wheel_summary[6]
Definition: L1TDTTFClient.h:91
MonitorElement * dttf_pt_integ_2ndTrack
Definition: L1TDTTFClient.h:87
MonitorElement * dttf_bx_integ
Definition: L1TDTTFClient.h:58
MonitorElement * dttf_phi_eta_fine_integ
Definition: L1TDTTFClient.h:64
MonitorElement * dttf_highQual_Summary_2ndTrack
Definition: L1TDTTFClient.h:83
MonitorElement * dttf_phi_wheel[6]
Definition: L1TDTTFClient.h:97
MonitorElement * dttf_phi_eta_integ
Definition: L1TDTTFClient.h:65
MonitorElement * dttf_quality_summary_wheel[6]
Definition: L1TDTTFClient.h:94
MonitorElement * dttf_pt_integ
Definition: L1TDTTFClient.h:68
void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:268
MonitorElement * dttf_phi_eta_coarse_integ
Definition: L1TDTTFClient.h:63
MonitorElement * dttf_occupancySummary_2ndTrack
Definition: L1TDTTFClient.h:78
MonitorElement * book1D(Args &&...args)
Definition: DQMStore.h:106
MonitorElement * dttf_eta_integ
Definition: L1TDTTFClient.h:69
MonitorElement * dttf_2ndTrack_Summary
Definition: L1TDTTFClient.h:73
std::string gmtpath_
Definition: L1TDTTFClient.h:52
MonitorElement * dttf_q_integ_2ndTrack
Definition: L1TDTTFClient.h:88
MonitorElement * dttf_bx_wheel_summary_2ndTrack[6]
MonitorElement * dttf_bx_summary
Definition: L1TDTTFClient.h:57
MonitorElement * dttf_quality_wheel[6]
Definition: L1TDTTFClient.h:93
MonitorElement * book2D(Args &&...args)
Definition: DQMStore.h:109
MonitorElement * dttf_eta_fine_fraction
Definition: L1TDTTFClient.h:66
std::string l1tdttffolder_
Definition: L1TDTTFClient.h:41
MonitorElement * dttf_occupancySummary_test
Definition: L1TDTTFClient.h:75
MonitorElement * dttf_fine_fraction_wh[6]
Definition: L1TDTTFClient.h:95
void setQualLabel(MonitorElement *me, int axis)
MonitorElement * dttf_nTracks_wheel[6]
Definition: L1TDTTFClient.h:90
MonitorElement * dttf_bx_summary_2ndTrack
Definition: L1TDTTFClient.h:79
MonitorElement * dttf_nTracks_integ_2ndTrack
Definition: L1TDTTFClient.h:77
MonitorElement * dttf_phi_integ_2ndTrack
Definition: L1TDTTFClient.h:86
MonitorElement * dttf_pt_wheel[6]
Definition: L1TDTTFClient.h:98
MonitorElement * dttf_nTracks_wheel_2ndTrack[6]
MonitorElement * dttf_phi_integ
Definition: L1TDTTFClient.h:67
MonitorElement * dttf_highQual_Summary
Definition: L1TDTTFClient.h:62
void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
MonitorElement * dttf_q_integ
Definition: L1TDTTFClient.h:70
MonitorElement * dttf_bx_wheel_integ[6]
Definition: L1TDTTFClient.h:92
std::string inclusivepath_
Definition: L1TDTTFClient.h:51
std::string testpath_
Definition: L1TDTTFClient.h:53
void setWheelLabel(MonitorElement *me)
std::string wheel_[6]
Definition: L1TDTTFClient.h:49
MonitorElement * dttf_quality_summary_2ndTrack
Definition: L1TDTTFClient.h:82
MonitorElement * dttf_phi_eta_integ_2ndTrack
Definition: L1TDTTFClient.h:84
void L1TDTTFClient::buildHighQualityPlot ( DQMStore::IGetter igetter,
TH2F *  occupancySummary,
MonitorElement highQual_Summary,
const std::string &  path 
)
private

high quality TOBE IMPROVED

Definition at line 1030 of file L1TDTTFClient.cc.

References getTH2F(), jets_cff::quality, MonitorElement::setBinContent(), AlCaHLTBitMon_QueryRunRegistry::string, heppy_batch::val, wheel_, and wheelpath_.

Referenced by makeSummary().

1033 {
1034 
1035  char hname[150];
1036 
1040  for ( unsigned int wh = 0; wh < 6 ; ++wh ) {
1041  sprintf( hname, path.c_str(), wheelpath_[wh].c_str(), wheel_[wh].c_str() );
1042 
1043  TH2F * quality = getTH2F(igetter, hname);
1044  if ( ! quality ) {
1045  edm::LogError("L1TDTTFClient::buildHighQualityPlot")
1046  << "Failed to get TH2F " << std::string(hname);
1047  } else {
1048 
1049  for ( unsigned int sec = 1; sec < 13 ; ++sec ) {
1050  double denHighQual = occupancySummary->GetBinContent( wh+1, sec );
1051  double val = 0;
1052  if ( denHighQual > 0 ) {
1053  for ( unsigned int qual = 4; qual < 8 ; ++qual ) {
1054  val += quality->GetBinContent( qual, sec );
1055  }
1056  val /= denHighQual;
1057  }
1058  highQual_Summary->setBinContent( wh+1, sec, val );
1059  }
1060  }
1061  }
1062 }
void setBinContent(int binx, double content)
set content of bin (1-D)
std::string wheelpath_[6]
Definition: L1TDTTFClient.h:50
TH2F * getTH2F(DQMStore::IGetter &igetter, const char *hname)
std::string wheel_[6]
Definition: L1TDTTFClient.h:49
void L1TDTTFClient::buildPhiEtaPlotO ( DQMStore::IGetter igetter,
MonitorElement phi_eta_integ,
const std::string &  path,
int  wh 
)
private

Definition at line 1151 of file L1TDTTFClient.cc.

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

Referenced by buildSummaries().

1154 {
1155  char hname[100];
1156  sprintf( hname, path.c_str(),
1157  wheelpath_[wh].c_str(), wheel_[wh].c_str() );
1158 
1159  TH2F * phi_vs_eta = getTH2F(igetter, hname);
1160  if ( ! phi_vs_eta ) {
1161  edm::LogError("L1TDTTFClient::buildPhiEtaPlotO:ME") << "Failed to get TH1D "
1162  << std::string(hname);
1163  } else {
1164 
1165  for ( unsigned int phi = 1; phi < 145 ; ++phi ) {
1166  float start = 0;
1167  int nbins = 0;
1168  switch ( wh ) {
1169  case 0 : start = 0; nbins = 18; break; // N2
1170  case 1 : start = 8; nbins = 20; break; // N1
1171  case 2 : start = 22; nbins = 10; break; // N0
1172  case 3 : start = 22; nbins = 20; break; // P0
1173  case 4 : start = 36; nbins = 20; break; // P1
1174  case 5 : start = 46; nbins = 18; break; // P2
1175  default : start = 0; nbins = 0; break; // BOH
1176  }
1177 
1178  for ( int eta = 1; eta <= nbins ; ++eta ) {
1179  double setbin = eta + start;
1180  double val = phi_vs_eta->GetBinContent( eta, phi )
1181  + phi_eta_integ->getBinContent( setbin, phi );
1182  phi_eta_integ->setBinContent( setbin, phi, val );
1183  }
1184 
1185  double underflow = phi_vs_eta->GetBinContent( 0, phi )
1186  + phi_eta_integ->getBinContent( 1, phi );
1187  phi_eta_integ->setBinContent( 1, phi, underflow );
1188 
1189  double overflow = phi_vs_eta->GetBinContent( nbins+1, phi )
1190  + phi_eta_integ->getBinContent( 64 );
1191  phi_eta_integ->setBinContent( 64, phi, overflow );
1192 
1193  }
1194  }
1195 }
Definition: start.py:1
void setBinContent(int binx, double content)
set content of bin (1-D)
std::string wheelpath_[6]
Definition: L1TDTTFClient.h:50
TH2F * getTH2F(DQMStore::IGetter &igetter, const char *hname)
double getBinContent(int binx) const
get content of bin (1-D)
std::string wheel_[6]
Definition: L1TDTTFClient.h:49
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 1065 of file L1TDTTFClient.cc.

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

Referenced by buildSummaries().

1071 {
1072 
1073  char hname[150];
1074  sprintf( hname, path_fine.c_str(),
1075  wheelpath_[wh].c_str(), wheel_[wh].c_str() );
1076 
1077  TH2F * phi_vs_eta_fine = getTH2F(igetter, hname);
1078  if ( ! phi_vs_eta_fine ) {
1079  edm::LogError("L1TDTTFClient::buildPhiEtaPloOtFC")
1080  << "Failed to get TH1D " << std::string(hname);
1081  }
1082 
1083  sprintf( hname, path_coarse.c_str(),
1084  wheelpath_[wh].c_str(), wheel_[wh].c_str() );
1085  TH2F * phi_vs_eta_coarse = getTH2F(igetter,hname);
1086  if ( ! phi_vs_eta_coarse ) {
1087  edm::LogError("L1TDTTFClient::buildPhiEtaPlotOFC")
1088  << "Failed to get TH1D " << std::string(hname);
1089  }
1090 
1091  if ( ! phi_vs_eta_fine || ! phi_vs_eta_coarse ) {
1092  return;
1093  }
1094 
1095  for ( unsigned int phi = 1; phi < 145 ; ++phi ) {
1096  float start = 0;
1097  int nbins = 0;
1098  switch ( wh ) {
1099  case 0 : start = 0; nbins = 18; break; // N2
1100  case 1 : start = 8; nbins = 20; break; // N1
1101  case 2 : start = 22; nbins = 10; break; // N0
1102  case 3 : start = 22; nbins = 20; break; // P0
1103  case 4 : start = 36; nbins = 20; break; // P1
1104  case 5 : start = 46; nbins = 18; break; // P2
1105  default : start = 0; nbins = 0; break; // BOH
1106  }
1107 
1108  for ( int eta = 1; eta <= nbins ; ++eta ) {
1109  double setbin = eta + start;
1110 
1111  double valfine = phi_vs_eta_fine->GetBinContent( eta, phi )
1112  + phi_eta_fine_integ->getBinContent( setbin, phi );
1113 
1114  double valcoarse = phi_vs_eta_coarse->GetBinContent( eta, phi )
1115  + phi_eta_coarse_integ->getBinContent( setbin, phi );
1116 
1117  phi_eta_fine_integ->setBinContent( setbin, phi, valfine );
1118  phi_eta_coarse_integ->setBinContent( setbin, phi, valcoarse );
1119  phi_eta_integ->setBinContent( setbin, phi, valfine+valcoarse );
1120 
1121  }
1122 
1123  // double underflow_f = phi_vs_eta_fine->GetBinContent( 0, phi )
1124  // + phi_eta_fine_integ->getBinContent( 1, phi );
1125  // phi_eta_fine_integ->setBinContent( 1, phi, underflow_f );
1126  //
1127  // double underflow_c = phi_vs_eta_coarse->GetBinContent( 0, phi )
1128  // + phi_eta_coarse_integ->getBinContent( 1, phi );
1129  // phi_eta_coarse_integ->setBinContent( 1, phi, underflow_c );
1130  //
1131  // double overflow_f = phi_vs_eta_fine->GetBinContent( nbins+1, phi )
1132  // + phi_eta_fine_integ->getBinContent( 64 );
1133  // phi_eta_fine_integ->setBinContent( 64, phi, overflow_f );
1134  //
1135  // double overflow_c = phi_vs_eta_coarse->GetBinContent( nbins+1, phi )
1136  // + phi_eta_coarse_integ->getBinContent( 64, phi );
1137  // phi_eta_coarse_integ->setBinContent( 64, phi, overflow_c );
1138  //
1139  // double underflow = underflow_f + underflow_c;
1140  // phi_eta_integ->setBinContent( 1, phi, underflow );
1141  //
1142  // double overflow = overflow_f + overflow_c;
1143  // phi_eta_integ->setBinContent( 64, phi, overflow );
1144 
1145  }
1146 
1147 }
Definition: start.py:1
void setBinContent(int binx, double content)
set content of bin (1-D)
std::string wheelpath_[6]
Definition: L1TDTTFClient.h:50
TH2F * getTH2F(DQMStore::IGetter &igetter, const char *hname)
double getBinContent(int binx) const
get content of bin (1-D)
std::string wheel_[6]
Definition: L1TDTTFClient.h:49
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 530 of file L1TDTTFClient.cc.

References buildPhiEtaPlotO(), buildPhiEtaPlotOFC(), 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(), MonitorElement::getTH1F(), getTH2F(), normalize(), MonitorElement::Reset(), Scenarios_cff::scale, MonitorElement::setBinContent(), AlCaHLTBitMon_QueryRunRegistry::string, tmp, wheel_, and wheelpath_.

Referenced by makeSummary().

531 {
532 
533  char hname[100];
534  int wheelBx[4];
535  int wheelBx2nd[4];
536  int wheelSumBx[4];
537  int wheelSumBx2nd[4];
538  int qualities[8];
539 
540  memset( wheelSumBx, 0, 4 * sizeof(int) );
541  memset( wheelSumBx2nd, 0, 4 * sizeof(int) );
542 
545  dttf_q_integ->Reset();
546  dttf_pt_integ->Reset();
556 
560 
561  for ( unsigned int wh = 0; wh < 6 ; ++wh ) {
562 
563  dttf_eta_wheel[wh]->Reset();
564  dttf_q_wheel[wh]->Reset();
565  dttf_pt_wheel[wh]->Reset();
566  dttf_phi_wheel[wh]->Reset();
567  dttf_quality_wheel[wh]->Reset();
569 
570  double wheelEtaAll = 0;
571  double wheelEtaFine = 0;
572  memset( wheelBx, 0, 4 * sizeof(int) );
573  memset( wheelBx2nd, 0, 4 * sizeof(int) );
574 
576  memset( qualities, 0, 8 * sizeof(int) );
577 
583  "%s/dttf_07_phi_vs_etaFine_wh%s",
584  "%s/dttf_08_phi_vs_etaCoarse_wh%s", wh );
585 
587  "%s/2ND_TRACK_ONLY/dttf_06_phi_vs_eta_wh%s_2ndTrack",
588  wh );
589 
590 
594  for ( unsigned int sector = 1; sector < 13; ++sector ) {
595 
599  sprintf( hname, "%s/BX_BySector/dttf_bx_wh%s_se%d",
600  wheelpath_[wh].c_str(), wheel_[wh].c_str(), sector );
601 
602  TH1F * bxsector = getTH1F(igetter,hname);
603  if ( ! bxsector ) {
604  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D "
605  << std::string(hname);
606  } else {
607 
608  for ( unsigned int bx = 1; bx < 4 ; ++bx ) {
609 
610  int bxval = bxsector->GetBinContent( bx );
611 
612  if ( bx == 2 ) {
613  // if ( wh == 2 )
614  // dttf_occupancySummary->setBinContent( wh+1, sector, bxval*14 );
615  // else
616  // dttf_occupancySummary->setBinContent( wh+1, sector, bxval );
617  dttf_occupancySummary->setBinContent( wh+1, sector, bxval );
618  dttf_occupancySummary_test->setBinContent( wh+1, sector, bxval );
619  dttf_nTracks_wheel[wh]->setBinContent(sector, bxval );
620  }
621  wheelBx[bx] += bxval;
622  dttf_bx_wheel_summary[wh]->setBinContent( sector, bx, bxval );
623  }
624  }
625 
626 
630  sprintf( hname, "%s/BX_BySector/2ND_TRACK_ONLY/dttf_bx_2ndTrack_wh%s_se%d",
631  wheelpath_[wh].c_str(), wheel_[wh].c_str(), sector );
632 
633  TH1F * bxsector2nd = getTH1F(igetter,hname);
634  if ( ! bxsector2nd ) {
635  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D "
636  << std::string(hname);
637  } else {
638 
639  for ( unsigned int bx = 1; bx < 4 ; ++bx ) {
640  int bxval = bxsector2nd->GetBinContent( bx );
641 
642  if ( bx == 2 ) {
643  dttf_2ndTrack_Summary->setBinContent( wh+1, sector, bxval );
644  dttf_occupancySummary_2ndTrack->setBinContent(wh+1, sector, bxval);
645  dttf_nTracks_wheel_2ndTrack[wh]->setBinContent(sector, bxval );
646  }
647  wheelBx2nd[bx] += bxval;
648  dttf_bx_wheel_summary_2ndTrack[wh]->setBinContent(sector, bx, bxval);
649  }
650  }
651 
655  sprintf( hname, "%s/Charge/dttf_charge_wh%s_se%d",
656  wheelpath_[wh].c_str(), wheel_[wh].c_str(), sector );
657  TH1F * tmp = getTH1F(igetter,hname);
658  if ( ! tmp ) {
659  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D "
660  << std::string(hname);
661  } else {
662  dttf_q_integ->getTH1F()->Add( tmp );
663  dttf_q_wheel[wh]->getTH1F()->Add( tmp );
664  }
665 
669  sprintf( hname, "%s/PT/dttf_pt_wh%s_se%d",
670  wheelpath_[wh].c_str(), wheel_[wh].c_str(), sector );
671  tmp = getTH1F(igetter, hname);
672  if ( ! tmp ) {
673  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D "
674  << std::string(hname);
675  } else {
676  dttf_pt_integ->getTH1F()->Add( tmp );
677  dttf_pt_wheel[wh]->getTH1F()->Add( tmp );
678  }
679 
680 
684  sprintf( hname, "%s/Phi/dttf_phi_wh%s_se%d",
685  wheelpath_[wh].c_str(), wheel_[wh].c_str(), sector );
686  tmp = getTH1F(igetter,hname);
687  if ( ! tmp ) {
688  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D "
689  << std::string(hname);
690  } else {
691  dttf_phi_integ->getTH1F()->Add( tmp );
692  dttf_phi_wheel[wh]->getTH1F()->Add( tmp );
693  }
694 
695 
699  double highQual = 0;
700  double denHighQual = 0;
701  sprintf( hname, "%s/Quality/dttf_qual_wh%s_se%d",
702  wheelpath_[wh].c_str(), wheel_[wh].c_str(), sector );
703  tmp = getTH1F(igetter,hname);
704  if ( ! tmp ) {
705  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D "
706  << std::string(hname);
707  } else {
708 
709  dttf_quality_wheel[wh]->getTH1F()->Add( tmp );
710 
711 
712  for ( unsigned int qual = 1; qual < 4 ; ++qual ) {
713  double bincontent = tmp->GetBinContent( qual );
714  qualities[qual] += bincontent;
715  denHighQual += bincontent;
716  dttf_quality_summary_wheel[wh]->setBinContent(sector, qual, bincontent);
717  }
718 
719  for ( unsigned int qual = 4; qual < 8 ; ++qual ) {
720  double bincontent = tmp->GetBinContent( qual );
721  qualities[qual] += bincontent;
722  dttf_quality_summary_wheel[wh]->setBinContent(sector, qual, bincontent);
723  denHighQual += bincontent;
724  highQual += bincontent;
725  }
726 
727  }
728  if ( denHighQual > 0 ) highQual /= denHighQual;
729  dttf_highQual_Summary->setBinContent( wh+1, sector, highQual );
730 
731 
735  sprintf( hname, "%s/Eta/dttf_eta_wh%s_se%d",
736  wheelpath_[wh].c_str(), wheel_[wh].c_str(), sector );
737  tmp = getTH1F(igetter,hname);
738  if ( ! tmp ) {
739  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D "
740  << std::string(hname);
741  } else {
742  dttf_eta_integ->getTH1F()->Add( tmp );
743  dttf_eta_wheel[wh]->getTH1F()->Add( tmp );
744  }
745 
746 
750  sprintf( hname, "%s/EtaFineFraction/dttf_etaFine_fraction_wh%s_se%d",
751  wheelpath_[wh].c_str(), wheel_[wh].c_str(), sector );
752  tmp = getTH1F(igetter,hname);
753  if ( ! tmp ) {
754  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D "
755  << std::string(hname);
756  } else {
757  double fine = tmp->GetBinContent( 1 );
758  double coarse = tmp->GetBinContent( 2 );
759  double tot = fine + coarse;
760  wheelEtaAll += tot;
761  wheelEtaFine += fine;
762  if ( tot > 0 ) {
763  dttf_fine_fraction_wh[wh]->setBinContent( sector, fine/tot );
764  }
765  }
766 
767  }
768 
772  if ( wheelEtaAll > 0 ) {
773  dttf_eta_fine_fraction->setBinContent( wh+1, wheelEtaFine/wheelEtaAll );
774  }
775 
779  dttf_nTracks_integ->setBinContent( wh+1, wheelBx[2] );
780  dttf_nTracks_integ_2ndTrack->setBinContent( wh+1, wheelBx2nd[2] );
781 
785  for ( unsigned int bx = 1; bx < 4; ++bx ) {
786 
787  dttf_bx_wheel_integ[wh]->setBinContent( bx, wheelBx[bx] );
788  dttf_bx_summary->setBinContent( wh+1, bx, wheelBx[bx] );
789  wheelSumBx[bx] += wheelBx[bx];
790 
791  dttf_bx_wheel_integ_2ndTrack[wh]->setBinContent( bx, wheelBx2nd[bx] );
792  dttf_bx_summary_2ndTrack->setBinContent( wh+1, bx, wheelBx2nd[bx] );
793  wheelSumBx2nd[bx] += wheelBx2nd[bx];
794 
795  }
796 
797 
801  for ( unsigned int qual = 1; qual < 8 ; ++qual ) {
802  dttf_quality_summary->setBinContent( wh+1, qual, qualities[qual] );
803  dttf_quality_integ->getTH1F()->AddBinContent( qual, qualities[qual] );
804  }
805 
806 
816  normalize( dttf_eta_wheel[wh]->getTH1F() );
817  normalize( dttf_q_wheel[wh]->getTH1F() );
818  normalize( dttf_pt_wheel[wh]->getTH1F() );
819  normalize( dttf_phi_wheel[wh]->getTH1F() );
820 
824  double scale = wheelBx[2];
825  if ( scale > 0 ) {
826  scale = 1/scale;
827  normalize( dttf_bx_wheel_integ[wh]->getTH1F(), scale );
828  }
829 
830  scale = wheelBx2nd[2];
831  if ( scale > 0 ) {
832  scale = 1/scale;
834  }
835 
836 
837 
838 
844 
845 
849  sprintf( hname, "%s/2ND_TRACK_ONLY/dttf_07_eta_wh%s_2ndTrack",
850  wheelpath_[wh].c_str(), wheel_[wh].c_str() );
851 
852  TH1F * tmp = getTH1F(igetter,hname);
853  if ( ! tmp ) {
854  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D "
855  << std::string(hname);
856  } else {
857  dttf_eta_integ_2ndTrack->getTH1F()->Add( tmp );
858  }
859 
863  sprintf( hname, "%s/2ND_TRACK_ONLY/dttf_08_phi_wh%s_2ndTrack",
864  wheelpath_[wh].c_str(), wheel_[wh].c_str() );
865  tmp = getTH1F(igetter,hname);
866  if ( ! tmp ) {
867  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D "
868  << std::string(hname);
869  } else {
870  dttf_phi_integ_2ndTrack->getTH1F()->Add( tmp );
871  }
872 
873 
877  sprintf( hname, "%s/2ND_TRACK_ONLY/dttf_09_pt_wh%s_2ndTrack",
878  wheelpath_[wh].c_str(), wheel_[wh].c_str() );
879  tmp = getTH1F(igetter,hname);
880  if ( ! tmp ) {
881  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D "
882  << std::string(hname);
883  } else {
884  dttf_pt_integ_2ndTrack->getTH1F()->Add( tmp );
885  }
886 
890  sprintf( hname, "%s/2ND_TRACK_ONLY/dttf_10_charge_wh%s_2ndTrack",
891  wheelpath_[wh].c_str(), wheel_[wh].c_str() );
892  tmp = getTH1F(igetter,hname);
893  if ( ! tmp ) {
894  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D "
895  << std::string(hname);
896  } else {
897  dttf_q_integ_2ndTrack->getTH1F()->Add( tmp );
898  }
899 
903  sprintf( hname, "%s/2ND_TRACK_ONLY/dttf_04_quality_wh%s_2ndTrack",
904  wheelpath_[wh].c_str(), wheel_[wh].c_str() );
905  tmp = getTH1F(igetter,hname);
906  if ( ! tmp ) {
907  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D "
908  << std::string(hname);
909  } else {
910  for ( unsigned int qual = 1; qual < 8; ++qual ) {
911  double binqual = tmp->GetBinContent( qual );
912  dttf_quality_integ_2ndTrack->getTH1F()->AddBinContent( qual, binqual );
913  dttf_quality_summary_2ndTrack->setBinContent( wh+1, qual, binqual );
914  }
915  }
916 
917 
918  }
919 
923  for ( unsigned int bx = 1; bx < 4; ++bx ) {
924  dttf_bx_integ->setBinContent( bx, wheelSumBx[bx] );
925  dttf_bx_integ_2ndTrack->setBinContent( bx, wheelSumBx2nd[bx] );
926  }
927 
931  double scale = wheelSumBx[2];
932  if ( scale > 0 ) {
933  scale = 1./scale;
935  }
936 
937  scale = wheelSumBx2nd[2];
938  if ( scale > 0 ) {
939  scale = 1./scale;
941  }
942 
943 
944 }
MonitorElement * dttf_bx_integ_2ndTrack
Definition: L1TDTTFClient.h:80
MonitorElement * dttf_occupancySummary
Definition: L1TDTTFClient.h:56
MonitorElement * dttf_quality_summary
Definition: L1TDTTFClient.h:61
void setBinContent(int binx, double content)
set content of bin (1-D)
MonitorElement * dttf_q_wheel[6]
Definition: L1TDTTFClient.h:99
MonitorElement * dttf_eta_integ_2ndTrack
Definition: L1TDTTFClient.h:85
MonitorElement * dttf_quality_integ_2ndTrack
Definition: L1TDTTFClient.h:81
MonitorElement * dttf_eta_wheel[6]
Definition: L1TDTTFClient.h:96
TH1F * getTH1F() const
MonitorElement * dttf_nTracks_integ
Definition: L1TDTTFClient.h:55
MonitorElement * dttf_quality_integ
Definition: L1TDTTFClient.h:60
TH1F * getTH1F(DQMStore::IGetter &igetter, const char *hname)
std::string wheelpath_[6]
Definition: L1TDTTFClient.h:50
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:91
MonitorElement * dttf_pt_integ_2ndTrack
Definition: L1TDTTFClient.h:87
MonitorElement * dttf_bx_integ
Definition: L1TDTTFClient.h:58
TH2F * getTH2F(DQMStore::IGetter &igetter, const char *hname)
MonitorElement * dttf_phi_eta_fine_integ
Definition: L1TDTTFClient.h:64
MonitorElement * dttf_phi_wheel[6]
Definition: L1TDTTFClient.h:97
MonitorElement * dttf_phi_eta_integ
Definition: L1TDTTFClient.h:65
MonitorElement * dttf_quality_summary_wheel[6]
Definition: L1TDTTFClient.h:94
MonitorElement * dttf_pt_integ
Definition: L1TDTTFClient.h:68
MonitorElement * dttf_phi_eta_coarse_integ
Definition: L1TDTTFClient.h:63
MonitorElement * dttf_occupancySummary_2ndTrack
Definition: L1TDTTFClient.h:78
MonitorElement * dttf_eta_integ
Definition: L1TDTTFClient.h:69
MonitorElement * dttf_2ndTrack_Summary
Definition: L1TDTTFClient.h:73
MonitorElement * dttf_q_integ_2ndTrack
Definition: L1TDTTFClient.h:88
void Reset()
reset ME (ie. contents, errors, etc)
MonitorElement * dttf_bx_wheel_summary_2ndTrack[6]
MonitorElement * dttf_bx_summary
Definition: L1TDTTFClient.h:57
MonitorElement * dttf_quality_wheel[6]
Definition: L1TDTTFClient.h:93
MonitorElement * dttf_eta_fine_fraction
Definition: L1TDTTFClient.h:66
std::vector< std::vector< double > > tmp
Definition: MVATrainer.cc:100
MonitorElement * dttf_occupancySummary_test
Definition: L1TDTTFClient.h:75
MonitorElement * dttf_fine_fraction_wh[6]
Definition: L1TDTTFClient.h:95
MonitorElement * dttf_nTracks_wheel[6]
Definition: L1TDTTFClient.h:90
MonitorElement * dttf_bx_summary_2ndTrack
Definition: L1TDTTFClient.h:79
MonitorElement * dttf_nTracks_integ_2ndTrack
Definition: L1TDTTFClient.h:77
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:86
MonitorElement * dttf_pt_wheel[6]
Definition: L1TDTTFClient.h:98
MonitorElement * dttf_nTracks_wheel_2ndTrack[6]
MonitorElement * dttf_phi_integ
Definition: L1TDTTFClient.h:67
MonitorElement * dttf_highQual_Summary
Definition: L1TDTTFClient.h:62
MonitorElement * dttf_q_integ
Definition: L1TDTTFClient.h:70
MonitorElement * dttf_bx_wheel_integ[6]
Definition: L1TDTTFClient.h:92
void normalize(T *me)
std::string wheel_[6]
Definition: L1TDTTFClient.h:49
MonitorElement * dttf_quality_summary_2ndTrack
Definition: L1TDTTFClient.h:82
MonitorElement * dttf_phi_eta_integ_2ndTrack
Definition: L1TDTTFClient.h:84
void L1TDTTFClient::dqmEndJob ( DQMStore::IBooker ibooker,
DQMStore::IGetter igetter 
)
overrideprotectedvirtual

Implements DQMEDHarvester.

Definition at line 407 of file L1TDTTFClient.cc.

References book(), and makeSummary().

407  {
408 
409  //Processing by run ID
410  book(ibooker);
411  makeSummary(igetter);
412 
413 }
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 416 of file L1TDTTFClient.cc.

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

417 {
419  if ( online_ && !( counterLS_ % resetafterlumi_ ) ) {
420  book(ibooker);
421  char hname[60];
422  sprintf( hname, "%s/dttf_04_tracks_occupancy_by_lumi",
423  inclusivepath_.c_str() );
424 
425  occupancy_r_ = getTH2F(igetter, hname);
426  if ( ! occupancy_r_ ) {
427  edm::LogError("L1TDTTFClient::beginLuminosityBlock:ME")
428  << "Failed to get TH2D " << std::string(hname);
429  } else {
430  edm::LogInfo("L1TDTTFClient::beginLuminosityBlock:RESET") << "Reseting plots by lumi!";
431  occupancy_r_->Reset();
432  }
433  }
434 
435  if ( online_ ) {
436  makeSummary(igetter);
437  if ( occupancy_r_ ) normalize( occupancy_r_ );
438  }
439 
440 }
void book(DQMStore::IBooker &ibooker)
TH2F * getTH2F(DQMStore::IGetter &igetter, const char *hname)
TH2F * occupancy_r_
counter
Definition: L1TDTTFClient.h:47
void makeSummary(DQMStore::IGetter &igetter)
void normalize(T *me)
std::string inclusivepath_
Definition: L1TDTTFClient.h:51
TH1F * L1TDTTFClient::getTH1F ( DQMStore::IGetter igetter,
const char *  hname 
)
private

Definition at line 996 of file L1TDTTFClient.cc.

References DQMStore::IGetter::get(), MonitorElement::getTH1F(), and AlCaHLTBitMon_QueryRunRegistry::string.

Referenced by buildSummaries().

997 {
998 
999  MonitorElement * me = igetter.get(hname);
1000  if ( ! me ) {
1001  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get ME "
1002  << std::string(hname);
1003  return nullptr;
1004  }
1005 
1006  return me->getTH1F();
1007 
1008 }
TH1F * getTH1F() const
MonitorElement * get(std::string const &path)
Definition: DQMStore.cc:303
TH2F * L1TDTTFClient::getTH2F ( DQMStore::IGetter igetter,
const char *  hname 
)
private

Definition at line 1012 of file L1TDTTFClient.cc.

References DQMStore::IGetter::get(), MonitorElement::getTH2F(), and AlCaHLTBitMon_QueryRunRegistry::string.

Referenced by buildHighQualityPlot(), buildPhiEtaPlotO(), buildPhiEtaPlotOFC(), buildSummaries(), dqmEndLuminosityBlock(), and setGMTsummary().

1013 {
1014 
1015  MonitorElement * me = igetter.get(hname);
1016  if ( ! me ) {
1017  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get ME "
1018  << std::string(hname);
1019  return nullptr;
1020  }
1021 
1022  return me->getTH2F();
1023 
1024 }
TH2F * getTH2F() const
MonitorElement * get(std::string const &path)
Definition: DQMStore.cc:303
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 443 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, MonitorElement::getTH1F(), MonitorElement::getTH2F(), normalize(), particleFlowDisplacedVertex_cfi::ratio, Scenarios_cff::scale, and setGMTsummary().

Referenced by dqmEndJob(), and dqmEndLuminosityBlock().

444 {
448  buildSummaries(igetter);
449 
453  double scale = 0;
454  double entries = dttf_occupancySummary->getTH2F()->Integral();
455 
456  if ( entries ) {
457 
460 
462  scale = 1 / entries;
465 
467  double physEntries = dttf_eta_integ->getTH1F()->Integral();
468  if ( physEntries > 0 ) {
469  double physScale = 1 / physEntries;
470 
471  normalize( dttf_phi_eta_integ->getTH2F(), physScale );
472 
473  normalize( dttf_phi_eta_fine_integ->getTH2F(), physScale );
475  normalize( dttf_quality_summary->getTH2F(), physScale );
476 
477  normalize( dttf_eta_integ->getTH1F(), physScale );
478  normalize( dttf_q_integ->getTH1F(), physScale );
479  normalize( dttf_pt_integ->getTH1F(), physScale );
480  normalize( dttf_phi_integ->getTH1F(), physScale );
481  normalize( dttf_quality_integ->getTH1F(), physScale );
482 
483  }
484 
485  }
486 
490 
491  double entries2ndTrack = dttf_occupancySummary_2ndTrack->getTH2F()->Integral();
492  if ( entries2ndTrack > 0 ) {
493 
496 
500  "%s/2ND_TRACK_ONLY/dttf_05_quality_summary_wh%s_2ndTrack" );
501 
503 
505  double scale2nd = 1 / entries2ndTrack;
507  normalize( dttf_nTracks_integ_2ndTrack->getTH1F(), scale2nd ); //
508 
509 
518 
519  }
520 
522  setGMTsummary(igetter);
523 
524 }
MonitorElement * dttf_occupancySummary
Definition: L1TDTTFClient.h:56
MonitorElement * dttf_quality_summary
Definition: L1TDTTFClient.h:61
MonitorElement * dttf_eta_integ_2ndTrack
Definition: L1TDTTFClient.h:85
MonitorElement * dttf_quality_integ_2ndTrack
Definition: L1TDTTFClient.h:81
void buildSummaries(DQMStore::IGetter &igetter)
TH1F * getTH1F() const
MonitorElement * dttf_nTracks_integ
Definition: L1TDTTFClient.h:55
MonitorElement * dttf_quality_integ
Definition: L1TDTTFClient.h:60
void buildHighQualityPlot(DQMStore::IGetter &igetter, TH2F *occupancySummary, MonitorElement *highQual_Summary, const std::string &path)
MonitorElement * dttf_pt_integ_2ndTrack
Definition: L1TDTTFClient.h:87
MonitorElement * dttf_phi_eta_fine_integ
Definition: L1TDTTFClient.h:64
MonitorElement * dttf_highQual_Summary_2ndTrack
Definition: L1TDTTFClient.h:83
MonitorElement * dttf_phi_eta_integ
Definition: L1TDTTFClient.h:65
MonitorElement * dttf_pt_integ
Definition: L1TDTTFClient.h:68
MonitorElement * dttf_phi_eta_coarse_integ
Definition: L1TDTTFClient.h:63
MonitorElement * dttf_occupancySummary_2ndTrack
Definition: L1TDTTFClient.h:78
MonitorElement * dttf_eta_integ
Definition: L1TDTTFClient.h:69
MonitorElement * dttf_2ndTrack_Summary
Definition: L1TDTTFClient.h:73
MonitorElement * dttf_q_integ_2ndTrack
Definition: L1TDTTFClient.h:88
TH2F * getTH2F() const
MonitorElement * dttf_bx_summary
Definition: L1TDTTFClient.h:57
MonitorElement * dttf_bx_summary_2ndTrack
Definition: L1TDTTFClient.h:79
MonitorElement * dttf_nTracks_integ_2ndTrack
Definition: L1TDTTFClient.h:77
void setGMTsummary(DQMStore::IGetter &igetter)
MonitorElement * dttf_phi_integ_2ndTrack
Definition: L1TDTTFClient.h:86
MonitorElement * dttf_phi_integ
Definition: L1TDTTFClient.h:67
MonitorElement * dttf_q_integ
Definition: L1TDTTFClient.h:70
void normalize(T *me)
MonitorElement * dttf_quality_summary_2ndTrack
Definition: L1TDTTFClient.h:82
MonitorElement * dttf_phi_eta_integ_2ndTrack
Definition: L1TDTTFClient.h:84
template<typename T >
void L1TDTTFClient::normalize ( T me)
inlineprivate

Definition at line 146 of file L1TDTTFClient.h.

References Scenarios_cff::scale.

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

147  {
148  double scale = me->Integral();
149  if ( scale > 0 ) {
150  normalize( me, 1./scale, scale );
151  }
152  }
void normalize(T *me)
template<typename T >
void L1TDTTFClient::normalize ( T me,
const double &  scale 
)
inlineprivate

Definition at line 155 of file L1TDTTFClient.h.

References normalize().

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

Definition at line 162 of file L1TDTTFClient.h.

163  {
164  me->SetEntries( entries );
165  me->Scale( scale );
166  }
void L1TDTTFClient::setGMTsummary ( DQMStore::IGetter igetter)
private

Definition at line 949 of file L1TDTTFClient.cc.

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

Referenced by makeSummary().

950 {
951  char hname[60];
952  sprintf( hname, "%s/dttf_tracks_with_gmt_match", gmtpath_.c_str() );
953  TH2F * gmt_match = getTH2F(igetter,hname);
954  if ( ! gmt_match ) {
955  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D "
956  << std::string(hname);
957  return;
958  }
959 
960 
961 
962  sprintf( hname, "%s/dttf_tracks_without_gmt_match", gmtpath_.c_str() );
963  TH2F * gmt_missed = getTH2F(igetter,hname);
964  if ( ! gmt_missed ) {
965  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D "
966  << std::string(hname);
967  return;
968  }
969 
970 
971  sprintf( hname, "%s/dttf_missing_tracks_in_gmt", gmtpath_.c_str() );
972  TH2F * gmt_ghost = getTH2F(igetter,hname);
973  if ( ! gmt_ghost ) {
974  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D "
975  << std::string(hname);
976  return;
977  }
978 
979  int match = gmt_match->Integral();
980  int missed = gmt_missed->Integral();
981  int ghost = gmt_ghost->Integral();
982  float tot = match + missed + ghost;
983  if ( tot > 0 ) {
984  double val = ghost/tot;
985  dttf_gmt_matching->setBinContent( 1, val );
986  val = match/tot;
987  dttf_gmt_matching->setBinContent( 2, val );
988  val = missed/tot;
989  dttf_gmt_matching->setBinContent( 3, val );
990  }
991 }
MonitorElement * dttf_gmt_matching
Definition: L1TDTTFClient.h:72
void setBinContent(int binx, double content)
set content of bin (1-D)
TH2F * getTH2F(DQMStore::IGetter &igetter, const char *hname)
std::string gmtpath_
Definition: L1TDTTFClient.h:52
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 1293 of file L1TDTTFClient.cc.

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

Referenced by book().

1294 {
1295 
1296  if( axis == 1 )
1297  me->setAxisTitle("Quality", axis);
1298  me->setBinLabel(1, "T34", axis);
1299  me->setBinLabel(2, "T23/24", axis);
1300  me->setBinLabel(3, "T12/13/14", axis);
1301  me->setBinLabel(4, "T234", axis);
1302  me->setBinLabel(5, "T134", axis);
1303  me->setBinLabel(6, "T123/124", axis);
1304  me->setBinLabel(7, "T1234", axis);
1305 }
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)
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 1279 of file L1TDTTFClient.cc.

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

Referenced by book().

1280 {
1281  me->setAxisTitle("Wheel", 1);
1282  me->setBinLabel(1, "N2", 1);
1283  me->setBinLabel(2, "N1", 1);
1284  me->setBinLabel(3, "N0", 1);
1285  me->setBinLabel(4, "P0", 1);
1286  me->setBinLabel(5, "P1", 1);
1287  me->setBinLabel(6, "P2", 1);
1288 
1289 }
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)
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 46 of file L1TDTTFClient.h.

Referenced by dqmEndLuminosityBlock().

MonitorElement* L1TDTTFClient::dttf_2ndTrack_Summary
private

Definition at line 73 of file L1TDTTFClient.h.

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

MonitorElement* L1TDTTFClient::dttf_bx_integ
private

Definition at line 58 of file L1TDTTFClient.h.

Referenced by book(), and buildSummaries().

MonitorElement* L1TDTTFClient::dttf_bx_integ_2ndTrack
private

Definition at line 80 of file L1TDTTFClient.h.

Referenced by book(), and buildSummaries().

MonitorElement* L1TDTTFClient::dttf_bx_summary
private

Definition at line 57 of file L1TDTTFClient.h.

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

MonitorElement* L1TDTTFClient::dttf_bx_summary_2ndTrack
private

Definition at line 79 of file L1TDTTFClient.h.

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

MonitorElement* L1TDTTFClient::dttf_bx_wheel_integ[6]
private

Definition at line 92 of file L1TDTTFClient.h.

Referenced by book(), and buildSummaries().

MonitorElement* L1TDTTFClient::dttf_bx_wheel_integ_2ndTrack[6]
private

Definition at line 103 of file L1TDTTFClient.h.

Referenced by book(), and buildSummaries().

MonitorElement* L1TDTTFClient::dttf_bx_wheel_summary[6]
private

Definition at line 91 of file L1TDTTFClient.h.

Referenced by book(), and buildSummaries().

MonitorElement* L1TDTTFClient::dttf_bx_wheel_summary_2ndTrack[6]
private

Definition at line 102 of file L1TDTTFClient.h.

Referenced by book(), and buildSummaries().

MonitorElement* L1TDTTFClient::dttf_eta_fine_fraction
private

Definition at line 66 of file L1TDTTFClient.h.

Referenced by book(), and buildSummaries().

MonitorElement* L1TDTTFClient::dttf_eta_fine_integ
private

Definition at line 59 of file L1TDTTFClient.h.

MonitorElement* L1TDTTFClient::dttf_eta_integ
private

Definition at line 69 of file L1TDTTFClient.h.

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

MonitorElement* L1TDTTFClient::dttf_eta_integ_2ndTrack
private

Definition at line 85 of file L1TDTTFClient.h.

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

MonitorElement* L1TDTTFClient::dttf_eta_wheel[6]
private

Definition at line 96 of file L1TDTTFClient.h.

Referenced by book(), and buildSummaries().

MonitorElement* L1TDTTFClient::dttf_fine_fraction_wh[6]
private

Definition at line 95 of file L1TDTTFClient.h.

Referenced by book(), and buildSummaries().

MonitorElement* L1TDTTFClient::dttf_gmt_matching
private

Definition at line 72 of file L1TDTTFClient.h.

Referenced by book(), and setGMTsummary().

MonitorElement* L1TDTTFClient::dttf_highQual_Summary
private

Definition at line 62 of file L1TDTTFClient.h.

Referenced by book(), and buildSummaries().

MonitorElement* L1TDTTFClient::dttf_highQual_Summary_2ndTrack
private

Definition at line 83 of file L1TDTTFClient.h.

Referenced by book(), and makeSummary().

MonitorElement* L1TDTTFClient::dttf_nTracks_integ
private

Definition at line 55 of file L1TDTTFClient.h.

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

MonitorElement* L1TDTTFClient::dttf_nTracks_integ_2ndTrack
private

Definition at line 77 of file L1TDTTFClient.h.

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

MonitorElement* L1TDTTFClient::dttf_nTracks_wheel[6]
private

Definition at line 90 of file L1TDTTFClient.h.

Referenced by book(), and buildSummaries().

MonitorElement* L1TDTTFClient::dttf_nTracks_wheel_2ndTrack[6]
private

Definition at line 101 of file L1TDTTFClient.h.

Referenced by book(), and buildSummaries().

MonitorElement* L1TDTTFClient::dttf_occupancySummary
private

Definition at line 56 of file L1TDTTFClient.h.

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

MonitorElement* L1TDTTFClient::dttf_occupancySummary_2ndTrack
private

Definition at line 78 of file L1TDTTFClient.h.

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

MonitorElement* L1TDTTFClient::dttf_occupancySummary_test
private

Definition at line 75 of file L1TDTTFClient.h.

Referenced by book(), and buildSummaries().

MonitorElement* L1TDTTFClient::dttf_phi_eta_coarse_integ
private

Definition at line 63 of file L1TDTTFClient.h.

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

MonitorElement* L1TDTTFClient::dttf_phi_eta_fine_integ
private

Definition at line 64 of file L1TDTTFClient.h.

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

MonitorElement* L1TDTTFClient::dttf_phi_eta_integ
private

Definition at line 65 of file L1TDTTFClient.h.

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

MonitorElement* L1TDTTFClient::dttf_phi_eta_integ_2ndTrack
private

Definition at line 84 of file L1TDTTFClient.h.

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

MonitorElement* L1TDTTFClient::dttf_phi_integ
private

Definition at line 67 of file L1TDTTFClient.h.

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

MonitorElement* L1TDTTFClient::dttf_phi_integ_2ndTrack
private

Definition at line 86 of file L1TDTTFClient.h.

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

MonitorElement* L1TDTTFClient::dttf_phi_wheel[6]
private

Definition at line 97 of file L1TDTTFClient.h.

Referenced by book(), and buildSummaries().

MonitorElement* L1TDTTFClient::dttf_pt_integ
private

Definition at line 68 of file L1TDTTFClient.h.

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

MonitorElement* L1TDTTFClient::dttf_pt_integ_2ndTrack
private

Definition at line 87 of file L1TDTTFClient.h.

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

MonitorElement* L1TDTTFClient::dttf_pt_wheel[6]
private

Definition at line 98 of file L1TDTTFClient.h.

Referenced by book(), and buildSummaries().

MonitorElement* L1TDTTFClient::dttf_q_integ
private

Definition at line 70 of file L1TDTTFClient.h.

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

MonitorElement* L1TDTTFClient::dttf_q_integ_2ndTrack
private

Definition at line 88 of file L1TDTTFClient.h.

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

MonitorElement* L1TDTTFClient::dttf_q_wheel[6]
private

Definition at line 99 of file L1TDTTFClient.h.

Referenced by book(), and buildSummaries().

MonitorElement* L1TDTTFClient::dttf_quality_integ
private

Definition at line 60 of file L1TDTTFClient.h.

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

MonitorElement* L1TDTTFClient::dttf_quality_integ_2ndTrack
private

Definition at line 81 of file L1TDTTFClient.h.

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

MonitorElement* L1TDTTFClient::dttf_quality_summary
private

Definition at line 61 of file L1TDTTFClient.h.

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

MonitorElement* L1TDTTFClient::dttf_quality_summary_2ndTrack
private

Definition at line 82 of file L1TDTTFClient.h.

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

MonitorElement* L1TDTTFClient::dttf_quality_summary_wheel[6]
private

Definition at line 94 of file L1TDTTFClient.h.

Referenced by book(), and buildSummaries().

MonitorElement* L1TDTTFClient::dttf_quality_wheel[6]
private

Definition at line 93 of file L1TDTTFClient.h.

Referenced by book(), and buildSummaries().

edm::InputTag L1TDTTFClient::dttfSource_
private

Definition at line 42 of file L1TDTTFClient.h.

std::string L1TDTTFClient::gmtpath_
private

Definition at line 52 of file L1TDTTFClient.h.

Referenced by book(), and setGMTsummary().

std::string L1TDTTFClient::inclusivepath_
private

Definition at line 51 of file L1TDTTFClient.h.

Referenced by book(), and dqmEndLuminosityBlock().

std::string L1TDTTFClient::l1tdttffolder_
private

Definition at line 41 of file L1TDTTFClient.h.

Referenced by book().

TH2F* L1TDTTFClient::occupancy_r_
private

counter

Definition at line 47 of file L1TDTTFClient.h.

Referenced by dqmEndLuminosityBlock().

bool L1TDTTFClient::online_
private

Definition at line 43 of file L1TDTTFClient.h.

Referenced by dqmEndLuminosityBlock().

int L1TDTTFClient::resetafterlumi_
private

Definition at line 45 of file L1TDTTFClient.h.

Referenced by dqmEndLuminosityBlock().

std::string L1TDTTFClient::testpath_
private

Definition at line 53 of file L1TDTTFClient.h.

Referenced by book().

bool L1TDTTFClient::verbose_
private

Definition at line 44 of file L1TDTTFClient.h.

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