CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
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::EDAnalyzer< edm::one::WatchRuns, edm::one::WatchLuminosityBlocks, edm::one::SharedResources > edm::one::EDAnalyzerBase edm::EDConsumerBase

Public Member Functions

 L1TDTTFClient (const edm::ParameterSet &ps)
 Constructor. More...
 
virtual ~L1TDTTFClient ()
 Destructor. More...
 
- Public Member Functions inherited from DQMEDHarvester
virtual void analyze (edm::Event const &, edm::EventSetup const &) final
 
virtual void beginLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &) final
 
virtual void beginRun (edm::Run const &, edm::EventSetup const &)
 
 DQMEDHarvester (void)
 
virtual void endJob () final
 
virtual void endLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &) final
 
virtual void endRun (edm::Run const &, edm::EventSetup const &)
 
- Public Member Functions inherited from edm::one::EDAnalyzer< edm::one::WatchRuns, edm::one::WatchLuminosityBlocks, edm::one::SharedResources >
 EDAnalyzer ()=default
 
- Public Member Functions inherited from edm::one::EDAnalyzerBase
 EDAnalyzerBase ()
 
ModuleDescription const & moduleDescription () const
 
virtual ~EDAnalyzerBase ()
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
 EDConsumerBase ()
 
ProductHolderIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const
 
std::vector
< ProductHolderIndexAndSkipBit >
const & 
itemsToGetFromEvent () const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesDependentUpon (const std::string &iProcessName, std::vector< const char * > &oModuleLabels) const
 
void modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
bool registeredToConsume (ProductHolderIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
void updateLookup (BranchType iBranchType, ProductHolderIndexHelper const &)
 
virtual ~EDConsumerBase ()
 

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 &)
 
- Protected Member Functions inherited from edm::one::EDAnalyzerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
- 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::EDAnalyzerBase
typedef EDAnalyzerBase ModuleType
 
- Static Public Member Functions inherited from edm::one::EDAnalyzerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 

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) ),
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 ( )
virtual

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 
41 
42  edm::LogInfo("L1TDTTFClient")<<"[L1TDTTFClient]: Begin Job";
43 
44  wheelpath_[0] = l1tdttffolder_ + "/02-WHEEL_N2";
45  wheelpath_[1] = l1tdttffolder_ + "/03-WHEEL_N1";
46  wheelpath_[2] = l1tdttffolder_ + "/04-WHEEL_N0";
47  wheelpath_[3] = l1tdttffolder_ + "/05-WHEEL_P0";
48  wheelpath_[4] = l1tdttffolder_ + "/06-WHEEL_P1";
49  wheelpath_[5] = l1tdttffolder_ + "/07-WHEEL_P2";
50 
51  wheel_[0] = "N2";
52  wheel_[1] = "N1";
53  wheel_[2] = "N0";
54  wheel_[3] = "P0";
55  wheel_[4] = "P1";
56  wheel_[5] = "P2";
57 
58  inclusivepath_ = l1tdttffolder_ + "/01-INCLUSIVE";
59  gmtpath_ = l1tdttffolder_ + "/08-GMT_MATCH";
60  testpath_ = l1tdttffolder_ + "/09-TEST";
61 
63  char hname[100];//histo name
64  char mename[100];//ME name
65 
67 
69  sprintf(hname, "dttf_02_nTracks");
70  sprintf(mename, "DTTF Tracks by Wheel");
71  dttf_nTracks_integ = ibooker.book1D(hname, mename, 6, 0, 6);
73 
75  sprintf(hname, "dttf_03_tracks_occupancy_summary");
76  sprintf(mename, "DTTF Tracks Occupancy");
77  dttf_occupancySummary = ibooker.book2D( hname, mename, 6, 0, 6, 12, 1, 13 );
79  dttf_occupancySummary->setAxisTitle("Sector", 2);
80 
82 
84  sprintf(hname, "dttf_05_bx_occupancy");
85  sprintf(mename, "DTTF Tracks BX Distribution by Wheel");
86  dttf_bx_summary = ibooker.book2D(hname, mename, 6, 0, 6, 3, -1, 2 );
88  dttf_bx_summary->setAxisTitle("BX", 2 );
89 
91  sprintf(hname, "dttf_06_bx");
92  sprintf(mename, "DTTF Tracks BX w.r.t. Tracks with BX=0");
93  dttf_bx_integ = ibooker.book1D( hname, mename, 3, -1.5, 1.5 );
94  dttf_bx_integ->setAxisTitle("BX", 1);
95 
97  sprintf(hname, "dttf_07_quality");
98  sprintf(mename, "DTTF Tracks Quality distribution");
99  dttf_quality_integ = ibooker.book1D(hname, mename, 7, 1, 8);
101 
103  sprintf(hname, "dttf_08_quality_occupancy");
104  sprintf(mename, "DTTF Tracks Quality distribution by Wheel");
105  dttf_quality_summary = ibooker.book2D( hname, mename, 6, 0, 6, 7, 1, 8 );
106  dttf_quality_summary->setAxisTitle("Wheel", 1);
109 
111  sprintf(hname, "dttf_09_highQuality_Tracks");
112  sprintf(mename, "Fraction of DTTF Tracks with Quality>3");
113  dttf_highQual_Summary = ibooker.book2D( hname, mename, 6, 0, 6, 12, 1, 13 );
115  dttf_highQual_Summary->setAxisTitle("Sector", 2);
116 
117 
119  sprintf(hname, "dttf_10_phi_vs_etaCoarse");
120  sprintf(mename, "#eta-#phi DTTF Tracks occupancy (coarse #eta only, packed values)");
121  dttf_phi_eta_coarse_integ = ibooker.book2D( hname, mename, 64, 0, 64,
122  144, -6, 138. );
125 
127  sprintf(hname, "dttf_11_phi_vs_etaFine");
128  sprintf(mename, "#eta-#phi DTTF Tracks occupancy (fine #eta only, packed values)");
129  dttf_phi_eta_fine_integ = ibooker.book2D( hname, mename, 64, 0, 64,
130  144, -6, 138. );
133 
135  sprintf(hname, "dttf_12_phi_vs_eta");
136  sprintf(mename, "#eta-#phi DTTF Tracks occupancy");
137  dttf_phi_eta_integ = ibooker.book2D( hname, mename, 64, -1.2, 1.2,
138  144, -15, 345. );
139  dttf_phi_eta_integ->setAxisTitle("#eta", 1);
140  dttf_phi_eta_integ->setAxisTitle("#phi", 2);
141 
143  sprintf(hname, "dttf_13_eta_fine_fraction");
144  sprintf(mename, "Fraction of DTTF Tracks with Fine #eta Assignment");
145  dttf_eta_fine_fraction = ibooker.book1D( hname, mename, 6, 0, 6 );
148 
150 
152  sprintf(hname, "dttf_14_eta");
153  sprintf(mename, "DTTF Tracks #eta distribution (Packed values)");
154  dttf_eta_integ = ibooker.book1D(hname, mename, 64, -0.5, 63.5);
155  dttf_eta_integ->setAxisTitle("#eta", 1);
156 
158  sprintf(hname, "dttf_15_phi");
159  sprintf(mename, "DTTF Tracks Phi distribution (Packed values)");
160  dttf_phi_integ = ibooker.book1D(hname, mename, 144, -6, 138. );
161  dttf_phi_integ->setAxisTitle("#phi", 1);
162 
164  sprintf(hname, "dttf_16_pt");
165  sprintf(mename, "DTTF Tracks p_{T} distribution (Packed values)");
166  dttf_pt_integ = ibooker.book1D(hname, mename, 32, -0.5, 31.5);
167  dttf_pt_integ->setAxisTitle("p_{T}", 1);
169  sprintf(hname, "dttf_17_charge");
170  sprintf(mename, "DTTF Tracks Charge distribution");
171  dttf_q_integ = ibooker.book1D(hname, mename, 2, -0.5, 1.5);
172  dttf_q_integ->setAxisTitle("Charge", 1);
173 
174 
175 
177  sprintf(hname, "dttf_18_2ndTrack_occupancy_summary");
178  sprintf(mename, "DTTF 2nd Tracks occupancy w.r.t. Tracks with BX=0");
179  dttf_2ndTrack_Summary = ibooker.book2D( hname, mename, 6, 0, 6, 12, 1, 13 );
181 
182 
183 
187  ibooker.setCurrentFolder( gmtpath_ );
188  sprintf(hname, "dttf_gmt_fract_matching" );
189  sprintf(mename, "Fraction of DTTF tracks matching with GMT tracks" );
190  dttf_gmt_matching = ibooker.book1D( hname, mename, 3, 1, 4);
191  dttf_gmt_matching->setBinLabel(1, "GMT Only", 1);
192  dttf_gmt_matching->setBinLabel(2, "Matching", 1);
193  dttf_gmt_matching->setBinLabel(3, "DTTF Only", 1);
194 
195 
199 
200  ibooker.setCurrentFolder( testpath_ );
201  sprintf(hname, "dttf_01_tracks_occupancy_test_summary");
202  sprintf(mename, "DTTF Tracks Occupancy");
203  dttf_occupancySummary_test = ibooker.book2D( hname, mename, 6, 0, 6, 12, 1, 13 );
206 
207 
211  ibooker.setCurrentFolder( inclusivepath_ + "/2ND_TRACK_ONLY");
212 
214  sprintf(hname, "dttf_01_nTracks_2ndTrack");
215  sprintf(mename, "DTTF 2nd Tracks per Wheel distribution");
216  dttf_nTracks_integ_2ndTrack = ibooker.book1D(hname, mename, 6, 0, 6);
218 
220  sprintf(hname, "dttf_02_occupancy_summary_2ndTrack");
221  sprintf(mename, "DTTF 2nd Tracks distribution by Sector and Wheel");
222  dttf_occupancySummary_2ndTrack = ibooker.book2D( hname, mename, 6, 0, 6,
223  12, 1, 13 );
225 
227  sprintf(hname, "dttf_03_bx_occupancy_2ndTrack");
228  sprintf(mename, "DTTF 2nd Tracks BX Distribution by Wheel");
229  dttf_bx_summary_2ndTrack = ibooker.book2D( hname, mename, 6, 0, 6, 3, -1, 2 );
232 
234  sprintf(hname, "dttf_04_bx_2ndTrack");
235  sprintf(mename, "Fraction of DTTF Tracks BX w.r.t. Tracks with BX=0");
236  dttf_bx_integ_2ndTrack = ibooker.book1D( hname, mename, 3, -1.5, 1.5 );
238 
240  sprintf(hname, "dttf_05_quality_2ndTrack");
241  sprintf(mename, "DTTF 2nd Tracks Quality distribution");
242  dttf_quality_integ_2ndTrack = ibooker.book1D(hname, mename, 7, 0.5, 7.5);
245 
247  sprintf(hname, "dttf_06_quality_occupancy_2ndTrack");
248  sprintf(mename, "DTTF 2nd Tracks Quality distribution by Wheel");
249  dttf_quality_summary_2ndTrack = ibooker.book2D( hname, mename,
250  6, 0, 6, 7, 1, 8 );
254 
256  sprintf(hname, "dttf_07_highQuality_Tracks_2ndTrack");
257  sprintf(mename, "Fraction of DTTF 2nd Tracks with Quality>3");
258  dttf_highQual_Summary_2ndTrack = ibooker.book2D( hname, mename, 6, 0, 6,
259  12, 1, 13 );
262 
264  sprintf(hname, "dttf_08_phi_vs_eta_2ndTrack");
265  sprintf(mename, "#eta-#phi DTTF Tracks occupancy for 2nd Tracks");
266  dttf_phi_eta_integ_2ndTrack = ibooker.book2D( hname, mename, 64, 0, 64,
267  144, -6, 138. );
270 
272  sprintf(hname, "dttf_09_eta_2ndTrack");
273  sprintf(mename, "DTTF 2nd Tracks #eta distribution (Packed values)");
274  dttf_eta_integ_2ndTrack = ibooker.book1D(hname, mename, 64, -0.5, 63.5);
276 
278  sprintf(hname, "dttf_10_phi_2ndTrack");
279  sprintf(mename, "DTTF 2nd Tracks Phi distribution (Packed values)");
280  dttf_phi_integ_2ndTrack = ibooker.book1D(hname, mename, 144, -6, 138 );
282 
284  sprintf(hname, "dttf_11_pt_2ndTrack");
285  sprintf(mename, "DTTF 2nd Tracks p_{T} distribution (Packed values)");
286  dttf_pt_integ_2ndTrack = ibooker.book1D(hname, mename, 32, -0.5, 31.5);
288 
290  sprintf(hname, "dttf_12_charge_2ndTrack");
291  sprintf(mename, "DTTF 2nd Tracks Charge distribution");
292  dttf_q_integ_2ndTrack = ibooker.book1D(hname, mename, 2, -0.5, 1.5);
293  dttf_q_integ_2ndTrack->setAxisTitle("Charge", 1);
294 
295 
296  for ( unsigned int wh = 0; wh < 6 ; ++wh ) {
297  ibooker.setCurrentFolder( wheelpath_[wh] );
298 
300  sprintf( hname, "dttf_02_nTracks_wh%s", wheel_[wh].c_str() );
301  sprintf( mename, "Wheel %s - Number of Tracks", wheel_[wh].c_str() );
302  dttf_nTracks_wheel[wh] = ibooker.book1D( hname, mename, 12, 1, 13);
303  dttf_nTracks_wheel[wh]->setAxisTitle("sector", 1);
304 
306  sprintf(hname, "dttf_03_bx_occupancy_wh%s", wheel_[wh].c_str() );
307  sprintf(mename, "Wheel %s - DTTF Tracks BX distribution by Sector",
308  wheel_[wh].c_str());
309  dttf_bx_wheel_summary[wh] = ibooker.book2D( hname, mename, 12, 1, 13, 3, -1, 2);
310  dttf_bx_wheel_summary[wh]->setAxisTitle("BX", 2 );
311  dttf_bx_wheel_summary[wh]->setAxisTitle("Sector", 1 );
312 
314  sprintf(hname, "dttf_04_bx_wh%s", wheel_[wh].c_str());
315  sprintf(mename, "Wheel %s - DTTF Tracks BX w.r.t. Tracks with BX=0", wheel_[wh].c_str());
316  dttf_bx_wheel_integ[wh] = ibooker.book1D(hname, mename, 3, -1.5, 1.5);
317  dttf_bx_wheel_integ[wh]->setAxisTitle("BX", 1);
318 
320  sprintf(hname, "dttf_05_quality_wh%s", wheel_[wh].c_str() );
321  sprintf(mename, "Wheel %s - Tracks Quality Distribution", wheel_[wh].c_str() );
322  dttf_quality_wheel[wh] = ibooker.book1D(hname, mename, 7, 1, 8);
323  dttf_quality_wheel[wh]->setAxisTitle("Quality", 1);
325 
327  sprintf(hname, "dttf_06_quality_summary_wh%s", wheel_[wh].c_str() );
328  sprintf(mename, "Wheel %s - Tracks Quality Distribution by Sector",
329  wheel_[wh].c_str() );
330  dttf_quality_summary_wheel[wh] = ibooker.book2D(hname, mename, 12, 1, 13, 7, 1, 8);
331  dttf_quality_summary_wheel[wh]->setAxisTitle("Sector", 1);
332  // dttf_quality_summary_wheel[wh]->setAxisTitle("Quality", 2);
334 
336  sprintf(hname, "dttf_09_etaFine_fraction_wh%s", wheel_[wh].c_str() );
337  sprintf(mename, "Wheel %s - Fraction of DTTF Tracks with fine #eta assignment",
338  wheel_[wh].c_str());
339  dttf_fine_fraction_wh[wh] = ibooker.book1D( hname, mename, 12, 1, 13);
340  dttf_fine_fraction_wh[wh]->setAxisTitle("Sector", 1 );
341 
342 
344  sprintf(hname, "dttf_10_eta_wh%s", wheel_[wh].c_str() );
345  sprintf(mename, "Wheel %s - DTTF Tracks #eta distribution (Packed values)",
346  wheel_[wh].c_str() );
347  dttf_eta_wheel[wh] = ibooker.book1D(hname, mename, 64, -0.5, 63.5 );
348  dttf_eta_wheel[wh]->setAxisTitle("#eta", 1 );
349 
351  sprintf(hname, "dttf_11_phi_wh%s", wheel_[wh].c_str() );
352  sprintf(mename, "Wheel %s - DTTF Tracks Phi distribution (Packed values)",
353  wheel_[wh].c_str() );
354  dttf_phi_wheel[wh] = ibooker.book1D(hname, mename, 144, -6, 138. );
355  dttf_phi_wheel[wh]->setAxisTitle("#phi", 1);
356 
358  sprintf(hname, "dttf_12_pt_wh%s", wheel_[wh].c_str() );
359  sprintf(mename, "Wheel %s - DTTF Tracks p_{T} distribution (Packed values)",
360  wheel_[wh].c_str() );
361  dttf_pt_wheel[wh] = ibooker.book1D(hname, mename, 32, -0.5, 31.5);
362  dttf_pt_wheel[wh]->setAxisTitle("p_{T}", 1);
363 
365  sprintf(hname, "dttf_13_charge_wh%s", wheel_[wh].c_str() );
366  sprintf(mename, "Wheel %s - DTTF Tracks Charge distribution",
367  wheel_[wh].c_str() );
368  dttf_q_wheel[wh] = ibooker.book1D(hname, mename, 2, -0.5, 1.5);
369  dttf_q_wheel[wh]->setAxisTitle("Charge", 1);
370 
371  }
372 
373 
375  for ( unsigned int wh = 0; wh < 6 ; ++wh ) {
376  ibooker.setCurrentFolder( wheelpath_[wh] + "/2ND_TRACK_ONLY" );
377 
379  sprintf( hname, "dttf_01_nTracks_wh%s_2ndTrack", wheel_[wh].c_str() );
380  sprintf( mename, "Wheel %s - DTTF Number of 2nd Tracks with BX=0",
381  wheel_[wh].c_str() );
382  dttf_nTracks_wheel_2ndTrack[wh] = ibooker.book1D( hname, mename,
383  12, 1, 13);
384  dttf_nTracks_wheel_2ndTrack[wh]->setAxisTitle("sector", 1);
385 
387  sprintf(hname, "dttf_02_bx_occupancy_wh%s_2ndTrack", wheel_[wh].c_str() );
388  sprintf(mename, "Wheel %s - DTTF 2nd Tracks BX distribution by Sector",
389  wheel_[wh].c_str());
390  dttf_bx_wheel_summary_2ndTrack[wh] = ibooker.book2D( hname, mename, 12, 1, 13, 3, -1, 2);
392  dttf_bx_wheel_summary_2ndTrack[wh]->setAxisTitle("Sector", 1 );
393 
395  sprintf(hname, "dttf_03_bx_wh%s_2ndTrack", wheel_[wh].c_str());
396  sprintf(mename, "Wheel %s - 2nd Tracks BX Distribution", wheel_[wh].c_str());
397  dttf_bx_wheel_integ_2ndTrack[wh] = ibooker.book1D(hname, mename, 3, -1.5, 1.5);
399 
400 
401  }
402 
403 
404 
405 }
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
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:115
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
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:274
MonitorElement * book2D(Args &&...args)
Definition: DQMStore.h:133
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 1032 of file L1TDTTFClient.cc.

References getTH2F(), HLT_25ns14e33_v1_cff::quality, MonitorElement::setBinContent(), AlCaHLTBitMon_QueryRunRegistry::string, wheel_, and wheelpath_.

Referenced by makeSummary().

1035 {
1036 
1037  char hname[150];
1038 
1042  for ( unsigned int wh = 0; wh < 6 ; ++wh ) {
1043  sprintf( hname, path.c_str(), wheelpath_[wh].c_str(), wheel_[wh].c_str() );
1044 
1045  TH2F * quality = getTH2F(igetter, hname);
1046  if ( ! quality ) {
1047  edm::LogError("L1TDTTFClient::buildHighQualityPlot")
1048  << "Failed to get TH2F " << std::string(hname);
1049  } else {
1050 
1051  for ( unsigned int sec = 1; sec < 13 ; ++sec ) {
1052  double denHighQual = occupancySummary->GetBinContent( wh+1, sec );
1053  double val = 0;
1054  if ( denHighQual > 0 ) {
1055  for ( unsigned int qual = 4; qual < 8 ; ++qual ) {
1056  val += quality->GetBinContent( qual, sec );
1057  }
1058  val /= denHighQual;
1059  }
1060  highQual_Summary->setBinContent( wh+1, sec, val );
1061  }
1062  }
1063  }
1064 }
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)
tuple path
else: Piece not in the list, fine.
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 1153 of file L1TDTTFClient.cc.

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

Referenced by buildSummaries().

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

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

Referenced by buildSummaries().

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

Referenced by makeSummary().

533 {
534 
535  char hname[100];
536  int wheelBx[4];
537  int wheelBx2nd[4];
538  int wheelSumBx[4];
539  int wheelSumBx2nd[4];
540  int qualities[8];
541 
542  memset( wheelSumBx, 0, 4 * sizeof(int) );
543  memset( wheelSumBx2nd, 0, 4 * sizeof(int) );
544 
547  dttf_q_integ->Reset();
548  dttf_pt_integ->Reset();
558 
562 
563  for ( unsigned int wh = 0; wh < 6 ; ++wh ) {
564 
565  dttf_eta_wheel[wh]->Reset();
566  dttf_q_wheel[wh]->Reset();
567  dttf_pt_wheel[wh]->Reset();
568  dttf_phi_wheel[wh]->Reset();
569  dttf_quality_wheel[wh]->Reset();
571 
572  double wheelEtaAll = 0;
573  double wheelEtaFine = 0;
574  memset( wheelBx, 0, 4 * sizeof(int) );
575  memset( wheelBx2nd, 0, 4 * sizeof(int) );
576 
578  memset( qualities, 0, 8 * sizeof(int) );
579 
585  "%s/dttf_07_phi_vs_etaFine_wh%s",
586  "%s/dttf_08_phi_vs_etaCoarse_wh%s", wh );
587 
589  "%s/2ND_TRACK_ONLY/dttf_06_phi_vs_eta_wh%s_2ndTrack",
590  wh );
591 
592 
596  for ( unsigned int sector = 1; sector < 13; ++sector ) {
597 
601  sprintf( hname, "%s/BX_BySector/dttf_bx_wh%s_se%d",
602  wheelpath_[wh].c_str(), wheel_[wh].c_str(), sector );
603 
604  TH1F * bxsector = getTH1F(igetter,hname);
605  if ( ! bxsector ) {
606  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D "
607  << std::string(hname);
608  } else {
609 
610  for ( unsigned int bx = 1; bx < 4 ; ++bx ) {
611 
612  int bxval = bxsector->GetBinContent( bx );
613 
614  if ( bx == 2 ) {
615  // if ( wh == 2 )
616  // dttf_occupancySummary->setBinContent( wh+1, sector, bxval*14 );
617  // else
618  // dttf_occupancySummary->setBinContent( wh+1, sector, bxval );
619  dttf_occupancySummary->setBinContent( wh+1, sector, bxval );
620  dttf_occupancySummary_test->setBinContent( wh+1, sector, bxval );
621  dttf_nTracks_wheel[wh]->setBinContent(sector, bxval );
622  }
623  wheelBx[bx] += bxval;
624  dttf_bx_wheel_summary[wh]->setBinContent( sector, bx, bxval );
625  }
626  }
627 
628 
632  sprintf( hname, "%s/BX_BySector/2ND_TRACK_ONLY/dttf_bx_2ndTrack_wh%s_se%d",
633  wheelpath_[wh].c_str(), wheel_[wh].c_str(), sector );
634 
635  TH1F * bxsector2nd = getTH1F(igetter,hname);
636  if ( ! bxsector2nd ) {
637  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D "
638  << std::string(hname);
639  } else {
640 
641  for ( unsigned int bx = 1; bx < 4 ; ++bx ) {
642  int bxval = bxsector2nd->GetBinContent( bx );
643 
644  if ( bx == 2 ) {
645  dttf_2ndTrack_Summary->setBinContent( wh+1, sector, bxval );
646  dttf_occupancySummary_2ndTrack->setBinContent(wh+1, sector, bxval);
647  dttf_nTracks_wheel_2ndTrack[wh]->setBinContent(sector, bxval );
648  }
649  wheelBx2nd[bx] += bxval;
650  dttf_bx_wheel_summary_2ndTrack[wh]->setBinContent(sector, bx, bxval);
651  }
652  }
653 
657  sprintf( hname, "%s/Charge/dttf_charge_wh%s_se%d",
658  wheelpath_[wh].c_str(), wheel_[wh].c_str(), sector );
659  TH1F * tmp = getTH1F(igetter,hname);
660  if ( ! tmp ) {
661  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D "
662  << std::string(hname);
663  } else {
664  dttf_q_integ->getTH1F()->Add( tmp );
665  dttf_q_wheel[wh]->getTH1F()->Add( tmp );
666  }
667 
671  sprintf( hname, "%s/PT/dttf_pt_wh%s_se%d",
672  wheelpath_[wh].c_str(), wheel_[wh].c_str(), sector );
673  tmp = getTH1F(igetter, hname);
674  if ( ! tmp ) {
675  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D "
676  << std::string(hname);
677  } else {
678  dttf_pt_integ->getTH1F()->Add( tmp );
679  dttf_pt_wheel[wh]->getTH1F()->Add( tmp );
680  }
681 
682 
686  sprintf( hname, "%s/Phi/dttf_phi_wh%s_se%d",
687  wheelpath_[wh].c_str(), wheel_[wh].c_str(), sector );
688  tmp = getTH1F(igetter,hname);
689  if ( ! tmp ) {
690  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D "
691  << std::string(hname);
692  } else {
693  dttf_phi_integ->getTH1F()->Add( tmp );
694  dttf_phi_wheel[wh]->getTH1F()->Add( tmp );
695  }
696 
697 
701  double highQual = 0;
702  double denHighQual = 0;
703  sprintf( hname, "%s/Quality/dttf_qual_wh%s_se%d",
704  wheelpath_[wh].c_str(), wheel_[wh].c_str(), sector );
705  tmp = getTH1F(igetter,hname);
706  if ( ! tmp ) {
707  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D "
708  << std::string(hname);
709  } else {
710 
711  dttf_quality_wheel[wh]->getTH1F()->Add( tmp );
712 
713 
714  for ( unsigned int qual = 1; qual < 4 ; ++qual ) {
715  double bincontent = tmp->GetBinContent( qual );
716  qualities[qual] += bincontent;
717  denHighQual += bincontent;
718  dttf_quality_summary_wheel[wh]->setBinContent(sector, qual, bincontent);
719  }
720 
721  for ( unsigned int qual = 4; qual < 8 ; ++qual ) {
722  double bincontent = tmp->GetBinContent( qual );
723  qualities[qual] += bincontent;
724  dttf_quality_summary_wheel[wh]->setBinContent(sector, qual, bincontent);
725  denHighQual += bincontent;
726  highQual += bincontent;
727  }
728 
729  }
730  if ( denHighQual > 0 ) highQual /= denHighQual;
731  dttf_highQual_Summary->setBinContent( wh+1, sector, highQual );
732 
733 
737  sprintf( hname, "%s/Eta/dttf_eta_wh%s_se%d",
738  wheelpath_[wh].c_str(), wheel_[wh].c_str(), sector );
739  tmp = getTH1F(igetter,hname);
740  if ( ! tmp ) {
741  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D "
742  << std::string(hname);
743  } else {
744  dttf_eta_integ->getTH1F()->Add( tmp );
745  dttf_eta_wheel[wh]->getTH1F()->Add( tmp );
746  }
747 
748 
752  sprintf( hname, "%s/EtaFineFraction/dttf_etaFine_fraction_wh%s_se%d",
753  wheelpath_[wh].c_str(), wheel_[wh].c_str(), sector );
754  tmp = getTH1F(igetter,hname);
755  if ( ! tmp ) {
756  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D "
757  << std::string(hname);
758  } else {
759  double fine = tmp->GetBinContent( 1 );
760  double coarse = tmp->GetBinContent( 2 );
761  double tot = fine + coarse;
762  wheelEtaAll += tot;
763  wheelEtaFine += fine;
764  if ( tot > 0 ) {
765  dttf_fine_fraction_wh[wh]->setBinContent( sector, fine/tot );
766  }
767  }
768 
769  }
770 
774  if ( wheelEtaAll > 0 ) {
775  dttf_eta_fine_fraction->setBinContent( wh+1, wheelEtaFine/wheelEtaAll );
776  }
777 
781  dttf_nTracks_integ->setBinContent( wh+1, wheelBx[2] );
782  dttf_nTracks_integ_2ndTrack->setBinContent( wh+1, wheelBx2nd[2] );
783 
787  for ( unsigned int bx = 1; bx < 4; ++bx ) {
788 
789  dttf_bx_wheel_integ[wh]->setBinContent( bx, wheelBx[bx] );
790  dttf_bx_summary->setBinContent( wh+1, bx, wheelBx[bx] );
791  wheelSumBx[bx] += wheelBx[bx];
792 
793  dttf_bx_wheel_integ_2ndTrack[wh]->setBinContent( bx, wheelBx2nd[bx] );
794  dttf_bx_summary_2ndTrack->setBinContent( wh+1, bx, wheelBx2nd[bx] );
795  wheelSumBx2nd[bx] += wheelBx2nd[bx];
796 
797  }
798 
799 
803  for ( unsigned int qual = 1; qual < 8 ; ++qual ) {
804  dttf_quality_summary->setBinContent( wh+1, qual, qualities[qual] );
805  dttf_quality_integ->getTH1F()->AddBinContent( qual, qualities[qual] );
806  }
807 
808 
818  normalize( dttf_eta_wheel[wh]->getTH1F() );
819  normalize( dttf_q_wheel[wh]->getTH1F() );
820  normalize( dttf_pt_wheel[wh]->getTH1F() );
821  normalize( dttf_phi_wheel[wh]->getTH1F() );
822 
826  double scale = wheelBx[2];
827  if ( scale > 0 ) {
828  scale = 1/scale;
829  normalize( dttf_bx_wheel_integ[wh]->getTH1F(), scale );
830  }
831 
832  scale = wheelBx2nd[2];
833  if ( scale > 0 ) {
834  scale = 1/scale;
836  }
837 
838 
839 
840 
846 
847 
851  sprintf( hname, "%s/2ND_TRACK_ONLY/dttf_07_eta_wh%s_2ndTrack",
852  wheelpath_[wh].c_str(), wheel_[wh].c_str() );
853 
854  TH1F * tmp = getTH1F(igetter,hname);
855  if ( ! tmp ) {
856  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D "
857  << std::string(hname);
858  } else {
859  dttf_eta_integ_2ndTrack->getTH1F()->Add( tmp );
860  }
861 
865  sprintf( hname, "%s/2ND_TRACK_ONLY/dttf_08_phi_wh%s_2ndTrack",
866  wheelpath_[wh].c_str(), wheel_[wh].c_str() );
867  tmp = getTH1F(igetter,hname);
868  if ( ! tmp ) {
869  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D "
870  << std::string(hname);
871  } else {
872  dttf_phi_integ_2ndTrack->getTH1F()->Add( tmp );
873  }
874 
875 
879  sprintf( hname, "%s/2ND_TRACK_ONLY/dttf_09_pt_wh%s_2ndTrack",
880  wheelpath_[wh].c_str(), wheel_[wh].c_str() );
881  tmp = getTH1F(igetter,hname);
882  if ( ! tmp ) {
883  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D "
884  << std::string(hname);
885  } else {
886  dttf_pt_integ_2ndTrack->getTH1F()->Add( tmp );
887  }
888 
892  sprintf( hname, "%s/2ND_TRACK_ONLY/dttf_10_charge_wh%s_2ndTrack",
893  wheelpath_[wh].c_str(), wheel_[wh].c_str() );
894  tmp = getTH1F(igetter,hname);
895  if ( ! tmp ) {
896  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D "
897  << std::string(hname);
898  } else {
899  dttf_q_integ_2ndTrack->getTH1F()->Add( tmp );
900  }
901 
905  sprintf( hname, "%s/2ND_TRACK_ONLY/dttf_04_quality_wh%s_2ndTrack",
906  wheelpath_[wh].c_str(), wheel_[wh].c_str() );
907  tmp = getTH1F(igetter,hname);
908  if ( ! tmp ) {
909  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get TH1D "
910  << std::string(hname);
911  } else {
912  for ( unsigned int qual = 1; qual < 8; ++qual ) {
913  double binqual = tmp->GetBinContent( qual );
914  dttf_quality_integ_2ndTrack->getTH1F()->AddBinContent( qual, binqual );
915  dttf_quality_summary_2ndTrack->setBinContent( wh+1, qual, binqual );
916  }
917  }
918 
919 
920  }
921 
925  for ( unsigned int bx = 1; bx < 4; ++bx ) {
926  dttf_bx_integ->setBinContent( bx, wheelSumBx[bx] );
927  dttf_bx_integ_2ndTrack->setBinContent( bx, wheelSumBx2nd[bx] );
928  }
929 
933  double scale = wheelSumBx[2];
934  if ( scale > 0 ) {
935  scale = 1./scale;
937  }
938 
939  scale = wheelSumBx2nd[2];
940  if ( scale > 0 ) {
941  scale = 1./scale;
943  }
944 
945 
946 }
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
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
MonitorElement * dttf_bx_wheel_summary_2ndTrack[6]
MonitorElement * dttf_bx_summary
Definition: L1TDTTFClient.h:57
MonitorElement * dttf_quality_wheel[6]
Definition: L1TDTTFClient.h:93
TH1F * getTH1F(void) const
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
void Reset(void)
reset ME (ie. contents, errors, etc)
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 409 of file L1TDTTFClient.cc.

References book(), and makeSummary().

409  {
410 
411  //Processing by run ID
412  book(ibooker);
413  makeSummary(igetter);
414 
415 }
void book(DQMStore::IBooker &ibooker)
void makeSummary(DQMStore::IGetter &igetter)
void L1TDTTFClient::dqmEndLuminosityBlock ( DQMStore::IBooker ibooker,
DQMStore::IGetter igetter,
edm::LuminosityBlock const &  lumiSeg,
edm::EventSetup const &  c 
)
protectedvirtual

Processing by Luminosity Block

Reimplemented from DQMEDHarvester.

Definition at line 418 of file L1TDTTFClient.cc.

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

419 {
421  if ( online_ && !( counterLS_ % resetafterlumi_ ) ) {
422  book(ibooker);
423  char hname[60];
424  sprintf( hname, "%s/dttf_04_tracks_occupancy_by_lumi",
425  inclusivepath_.c_str() );
426 
427  occupancy_r_ = getTH2F(igetter, hname);
428  if ( ! occupancy_r_ ) {
429  edm::LogError("L1TDTTFClient::beginLuminosityBlock:ME")
430  << "Failed to get TH2D " << std::string(hname);
431  } else {
432  edm::LogInfo("L1TDTTFClient::beginLuminosityBlock:RESET") << "Reseting plots by lumi!";
433  occupancy_r_->Reset();
434  }
435  }
436 
437  if ( online_ ) {
438  makeSummary(igetter);
439  if ( occupancy_r_ ) normalize( occupancy_r_ );
440  }
441 
442 }
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 998 of file L1TDTTFClient.cc.

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

Referenced by buildSummaries().

999 {
1000 
1001  MonitorElement * me = igetter.get(hname);
1002  if ( ! me ) {
1003  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get ME "
1004  << std::string(hname);
1005  return NULL;
1006  }
1007 
1008  return me->getTH1F();
1009 
1010 }
MonitorElement * get(const std::string &path)
Definition: DQMStore.cc:302
#define NULL
Definition: scimark2.h:8
TH1F * getTH1F(void) const
TH2F * L1TDTTFClient::getTH2F ( DQMStore::IGetter igetter,
const char *  hname 
)
private

Definition at line 1014 of file L1TDTTFClient.cc.

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

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

1015 {
1016 
1017  MonitorElement * me = igetter.get(hname);
1018  if ( ! me ) {
1019  edm::LogError("L1TDTTFClient::makeSummary:ME") << "Failed to get ME "
1020  << std::string(hname);
1021  return NULL;
1022  }
1023 
1024  return me->getTH2F();
1025 
1026 }
MonitorElement * get(const std::string &path)
Definition: DQMStore.cc:302
#define NULL
Definition: scimark2.h:8
TH2F * getTH2F(void) const
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 445 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, python.tagInventory::entries, MonitorElement::getTH1F(), MonitorElement::getTH2F(), normalize(), pileupReCalc_HLTpaths::scale, and setGMTsummary().

Referenced by dqmEndJob(), and dqmEndLuminosityBlock().

446 {
450  buildSummaries(igetter);
451 
455  double scale = 0;
456  double entries = dttf_occupancySummary->getTH2F()->Integral();
457 
458  if ( entries ) {
459 
462 
464  scale = 1 / entries;
467 
469  double physEntries = dttf_eta_integ->getTH1F()->Integral();
470  if ( physEntries > 0 ) {
471  double physScale = 1 / physEntries;
472 
473  normalize( dttf_phi_eta_integ->getTH2F(), physScale );
474 
475  normalize( dttf_phi_eta_fine_integ->getTH2F(), physScale );
477  normalize( dttf_quality_summary->getTH2F(), physScale );
478 
479  normalize( dttf_eta_integ->getTH1F(), physScale );
480  normalize( dttf_q_integ->getTH1F(), physScale );
481  normalize( dttf_pt_integ->getTH1F(), physScale );
482  normalize( dttf_phi_integ->getTH1F(), physScale );
483  normalize( dttf_quality_integ->getTH1F(), physScale );
484 
485  }
486 
487  }
488 
492 
493  double entries2ndTrack = dttf_occupancySummary_2ndTrack->getTH2F()->Integral();
494  if ( entries2ndTrack > 0 ) {
495 
498 
500  TH2F * ratio = dttf_occupancySummary_2ndTrack->getTH2F();
502  "%s/2ND_TRACK_ONLY/dttf_05_quality_summary_wh%s_2ndTrack" );
503 
505 
507  double scale2nd = 1 / entries2ndTrack;
509  normalize( dttf_nTracks_integ_2ndTrack->getTH1F(), scale2nd ); //
510 
511 
520 
521  }
522 
524  setGMTsummary(igetter);
525 
526 }
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)
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
MonitorElement * dttf_bx_summary
Definition: L1TDTTFClient.h:57
TH1F * getTH1F(void) const
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
TH2F * getTH2F(void) const
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 pileupReCalc_HLTpaths::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 951 of file L1TDTTFClient.cc.

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

Referenced by makeSummary().

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

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

Referenced by book().

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

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

Referenced by book().

1282 {
1283  me->setAxisTitle("Wheel", 1);
1284  me->setBinLabel(1, "N2", 1);
1285  me->setBinLabel(2, "N1", 1);
1286  me->setBinLabel(3, "N0", 1);
1287  me->setBinLabel(4, "P0", 1);
1288  me->setBinLabel(5, "P1", 1);
1289  me->setBinLabel(6, "P2", 1);
1290 
1291 }
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