Validation
EcalTriggerPrimitives
src
TPGCheck.cc
Go to the documentation of this file.
1
// -*- C++ -*-
2
//
3
// Package: TPGCheck
4
// Class: TPGCheck
5
//
13
//
14
// Original Author: Muriel Cerutti
15
// Created: Thu Oct 26 10:47:17 CEST 2006
16
//
17
18
// system include files
19
#include <memory>
20
21
// user include files
22
#include "
FWCore/Framework/interface/EDAnalyzer.h
"
23
#include "
FWCore/Framework/interface/Event.h
"
24
#include "
FWCore/Framework/interface/Frameworkfwd.h
"
25
#include "
FWCore/Framework/interface/MakerMacros.h
"
26
#include "
FWCore/MessageLogger/interface/MessageLogger.h
"
27
28
#include "
DataFormats/EcalDigi/interface/EcalDigiCollections.h
"
29
#include "
FWCore/ParameterSet/interface/ParameterSet.h
"
30
31
#include <string>
32
#include <vector>
33
34
#include "TFile.h"
35
#include "TH1I.h"
36
37
using namespace
edm
;
38
using namespace
std
;
39
40
//
41
// class declaration
42
//
43
44
class
TPGCheck
:
public
edm::EDAnalyzer
{
45
public
:
46
explicit
TPGCheck
(
const
edm::ParameterSet
&);
47
~
TPGCheck
()
override
;
48
49
private
:
50
void
beginJob
()
override
;
51
void
analyze
(
const
edm::Event
&,
const
edm::EventSetup
&)
override
;
52
void
endJob()
override
;
53
54
// ----------member data ---------------------------
55
TH1I *ecal_et_[2];
56
TH1I *ecal_tt_[2];
57
TH1I *ecal_fgvb_[2];
58
59
TFile *
histFile_
;
60
std::string
label_
;
61
std::string
producer_
;
62
std::vector<std::string>
ecal_parts_
;
63
// fix for consumes
64
edm::EDGetTokenT<EcalTrigPrimDigiCollection>
ecal_tp_token_
;
65
};
66
67
//
68
// constructors and destructor
69
//
70
TPGCheck::TPGCheck
(
const
edm::ParameterSet
&iConfig) {
71
// now do what ever initialization is needed
72
73
ecal_parts_.push_back(
"Barrel"
);
74
ecal_parts_.push_back(
"Endcap"
);
75
76
histFile_ =
new
TFile(
"histos.root"
,
"RECREATE"
);
77
for
(
unsigned
int
i
= 0;
i
< 2; ++
i
) {
78
// Energy
79
char
t
[30];
80
sprintf(
t
,
"%s_energy"
, ecal_parts_[
i
].c_str());
81
ecal_et_[
i
] =
new
TH1I(
t
,
"Et"
, 255, 0, 255);
82
83
// Trigger Tower flag
84
char
titleTTF[30];
85
sprintf(titleTTF,
"%s_ttf"
, ecal_parts_[
i
].c_str());
86
ecal_tt_[
i
] =
new
TH1I(titleTTF,
"TTF"
, 10, 0, 10);
87
88
// Fain Grain
89
char
titleFG[30];
90
sprintf(titleFG,
"%s_fgvb"
, ecal_parts_[
i
].c_str());
91
ecal_fgvb_[
i
] =
new
TH1I(titleFG,
"FGVB"
, 10, 0, 10);
92
}
93
94
label_ = iConfig.
getParameter
<
std::string
>(
"Label"
);
95
producer_ = iConfig.
getParameter
<
std::string
>(
"Producer"
);
96
ecal_tp_token_ = consumes<EcalTrigPrimDigiCollection>(
edm::InputTag
(label_, producer_));
97
}
98
99
TPGCheck::~TPGCheck
() {
100
// do anything here that needs to be done at desctruction time
101
// (e.g. close files, deallocate resources etc.)
102
103
histFile_->Write();
104
histFile_->Close();
105
}
106
107
//
108
// member functions
109
//
110
111
// ------------ method called to for each event ------------
112
void
TPGCheck::analyze
(
const
edm::Event
&
iEvent
,
const
edm::EventSetup
&iSetup) {
113
// Get input
114
edm::Handle<EcalTrigPrimDigiCollection>
tp
;
115
iEvent
.getByToken(ecal_tp_token_,
tp
);
116
for
(
unsigned
int
i
= 0;
i
<
tp
.product()->size();
i
++) {
117
EcalTriggerPrimitiveDigi
d
= (*(
tp
.product()))[
i
];
118
int
subdet =
d
.id().subDet() - 1;
119
// for endcap, regroup double TP-s that are generated for the 2 interior
120
// rings
121
if
(subdet == 0) {
122
ecal_et_[subdet]->Fill(
d
.compressedEt());
123
}
else
{
124
if
(
d
.id().ietaAbs() == 27 ||
d
.id().ietaAbs() == 28) {
125
if
(
i
% 2)
126
ecal_et_[subdet]->Fill(
d
.compressedEt() * 2.);
127
}
else
128
ecal_et_[subdet]->Fill(
d
.compressedEt());
129
}
130
ecal_tt_[subdet]->Fill(
d
.ttFlag());
131
ecal_fgvb_[subdet]->Fill(
d
.fineGrain());
132
}
133
}
134
135
// ------------ method called once each job just before starting event loop
136
// ------------
137
void
TPGCheck::beginJob
() {}
138
139
// ------------ method called once each job just after ending the event loop
140
// ------------
141
void
TPGCheck::endJob
() {
142
for
(
unsigned
int
i
= 0;
i
< 2; ++
i
) {
143
ecal_et_[
i
]->Write();
144
ecal_tt_[
i
]->Write();
145
ecal_fgvb_[
i
]->Write();
146
}
147
}
148
149
// define this as a plug-in
150
DEFINE_FWK_MODULE
(
TPGCheck
);
bk::beginJob
void beginJob()
Definition:
Breakpoints.cc:14
mps_fire.i
i
Definition:
mps_fire.py:428
MessageLogger.h
TPGCheck::ecal_tp_token_
edm::EDGetTokenT< EcalTrigPrimDigiCollection > ecal_tp_token_
Definition:
TPGCheck.cc:64
edm::EDGetTokenT
Definition:
EDGetToken.h:33
edm
HLT enums.
Definition:
AlignableModifier.h:19
TPGCheck::~TPGCheck
~TPGCheck() override
Definition:
TPGCheck.cc:99
EDAnalyzer.h
edm::Handle
Definition:
AssociativeIterator.h:50
edm::EDAnalyzer
Definition:
EDAnalyzer.h:28
MakerMacros.h
TPGCheck::endJob
void endJob() override
Definition:
TPGCheck.cc:141
DEFINE_FWK_MODULE
#define DEFINE_FWK_MODULE(type)
Definition:
MakerMacros.h:16
EcalDigiCollections.h
TPGCheck::TPGCheck
TPGCheck(const edm::ParameterSet &)
Definition:
TPGCheck.cc:70
cmsswSequenceInfo.tp
tp
Definition:
cmsswSequenceInfo.py:17
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition:
AlCaHLTBitMon_QueryRunRegistry.py:256
TPGCheck::ecal_parts_
std::vector< std::string > ecal_parts_
Definition:
TPGCheck.cc:62
edm::ParameterSet
Definition:
ParameterSet.h:47
Event.h
iEvent
int iEvent
Definition:
GenABIO.cc:224
analyze
example_stream void analyze(const edm::Event &, const edm::EventSetup &) override
edm::EventSetup
Definition:
EventSetup.h:58
TPGCheck::producer_
std::string producer_
Definition:
TPGCheck.cc:61
TPGCheck::beginJob
void beginJob() override
Definition:
TPGCheck.cc:137
std
Definition:
JetResolutionObject.h:76
Frameworkfwd.h
EcalTriggerPrimitiveDigi
Definition:
EcalTriggerPrimitiveDigi.h:16
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
Definition:
ParameterSet.h:303
TPGCheck
Definition:
TPGCheck.cc:44
ztail.d
d
Definition:
ztail.py:151
ParameterSet.h
TPGCheck::histFile_
TFile * histFile_
Definition:
TPGCheck.cc:59
edm::Event
Definition:
Event.h:73
submitPVValidationJobs.t
string t
Definition:
submitPVValidationJobs.py:644
edm::InputTag
Definition:
InputTag.h:15
TPGCheck::analyze
void analyze(const edm::Event &, const edm::EventSetup &) override
Definition:
TPGCheck.cc:112
TPGCheck::label_
std::string label_
Definition:
TPGCheck.cc:60
Generated for CMSSW Reference Manual by
1.8.16