|
void | analyze (const edm::Event &, const edm::EventSetup &) override |
|
void | beginJob () override |
|
void | endJob () override |
|
| QGLikelihoodDBWriter (const edm::ParameterSet &) |
|
| ~QGLikelihoodDBWriter () override |
|
void | callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func) |
|
| EDAnalyzer () |
|
SerialTaskQueue * | globalLuminosityBlocksQueue () |
|
SerialTaskQueue * | globalRunsQueue () |
|
ModuleDescription const & | moduleDescription () const |
|
std::string | workerType () const |
|
| ~EDAnalyzer () override |
|
std::vector< ConsumesInfo > | consumesInfo () const |
|
void | convertCurrentProcessAlias (std::string const &processName) |
| Convert "@currentProcess" in InputTag process names to the actual current process name. More...
|
|
| EDConsumerBase () |
|
| EDConsumerBase (EDConsumerBase &&)=default |
|
| EDConsumerBase (EDConsumerBase const &)=delete |
|
ESProxyIndex const * | esGetTokenIndices (edm::Transition iTrans) const |
|
std::vector< ESProxyIndex > const & | esGetTokenIndicesVector (edm::Transition iTrans) const |
|
std::vector< ESRecordIndex > const & | esGetTokenRecordIndicesVector (edm::Transition iTrans) const |
|
ProductResolverIndexAndSkipBit | indexFrom (EDGetToken, BranchType, TypeID const &) const |
|
void | itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const |
|
void | itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const |
|
std::vector< ProductResolverIndexAndSkipBit > const & | itemsToGetFrom (BranchType iType) const |
|
void | labelsForToken (EDGetToken iToken, Labels &oLabels) const |
|
void | modulesWhoseProductsAreConsumed (std::array< std::vector< ModuleDescription const * > *, NumBranchTypes > &modulesAll, std::vector< ModuleProcessName > &modulesInPreviousProcesses, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const |
|
EDConsumerBase & | operator= (EDConsumerBase &&)=default |
|
EDConsumerBase const & | operator= (EDConsumerBase const &)=delete |
|
bool | registeredToConsume (ProductResolverIndex, bool, BranchType) const |
|
bool | registeredToConsumeMany (TypeID const &, BranchType) const |
|
ProductResolverIndexAndSkipBit | uncheckedIndexFrom (EDGetToken) const |
|
void | updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet) |
|
void | updateLookup (eventsetup::ESRecordsToProxyIndices const &) |
|
virtual | ~EDConsumerBase () noexcept(false) |
|
|
typedef EDAnalyzer | ModuleType |
|
typedef ProductLabels | Labels |
|
static const std::string & | baseType () |
|
static void | fillDescriptions (ConfigurationDescriptions &descriptions) |
|
static void | prevalidate (ConfigurationDescriptions &) |
|
static bool | wantsGlobalLuminosityBlocks () |
|
static bool | wantsGlobalRuns () |
|
static bool | wantsInputProcessBlocks () |
|
static bool | wantsProcessBlocks () |
|
static bool | wantsStreamLuminosityBlocks () |
|
static bool | wantsStreamRuns () |
|
EDGetToken | consumes (const TypeToGet &id, edm::InputTag const &tag) |
|
template<typename ProductType , BranchType B = InEvent> |
EDGetTokenT< ProductType > | consumes (edm::InputTag const &tag) |
|
template<BranchType B = InEvent> |
EDConsumerBaseAdaptor< B > | consumes (edm::InputTag tag) noexcept |
|
template<BranchType B> |
EDGetToken | consumes (TypeToGet const &id, edm::InputTag const &tag) |
|
ConsumesCollector | consumesCollector () |
| Use a ConsumesCollector to gather consumes information from helper functions. More...
|
|
template<typename ProductType , BranchType B = InEvent> |
void | consumesMany () |
|
void | consumesMany (const TypeToGet &id) |
|
template<BranchType B> |
void | consumesMany (const TypeToGet &id) |
|
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event> |
auto | esConsumes () |
|
template<Transition Tr = Transition::Event> |
constexpr auto | esConsumes () noexcept |
|
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event> |
auto | esConsumes (ESInputTag const &tag) |
|
template<Transition Tr = Transition::Event> |
auto | esConsumes (ESInputTag tag) noexcept |
|
template<Transition Tr = Transition::Event> |
ESGetTokenGeneric | esConsumes (eventsetup::EventSetupRecordKey const &iRecord, eventsetup::DataKey const &iKey) |
| Used with EventSetupRecord::doGet. More...
|
|
EDGetToken | mayConsume (const TypeToGet &id, edm::InputTag const &tag) |
|
template<BranchType B> |
EDGetToken | mayConsume (const TypeToGet &id, edm::InputTag const &tag) |
|
template<typename ProductType , BranchType B = InEvent> |
EDGetTokenT< ProductType > | mayConsume (edm::InputTag const &tag) |
|
Definition at line 24 of file QGLikelihoodDBWriter.cc.
void QGLikelihoodDBWriter::beginJob |
( |
void |
| ) |
|
|
overridevirtual |
Reimplemented from edm::EDAnalyzer.
Definition at line 106 of file QGLikelihoodDBWriter.cc.
114 std::map<TString, std::vector<float>> gridOfBins;
115 for (
const TString& binVariable : {
"eta",
"pt",
"rho"}) {
117 edm::LogError(
"NoBins") <<
"Missing bin information for " << binVariable <<
" in input file" << std::endl;
125 std::map<std::vector<int>, TH1*> pdfs;
127 for (
const TString&
type : {
"gluon",
"quark"}) {
128 int qgIndex = (
type ==
"gluon");
129 for (
const TString& likelihoodVar : {
"mult",
"ptD",
"axis2"}) {
131 (likelihoodVar ==
"mult"
133 : (likelihoodVar ==
"ptD" ? 1 : 2));
134 for (
int i = 0;
i < (
int)gridOfBins[
"eta"].
size() - 1; ++
i) {
135 for (
int j = 0;
j < (
int)gridOfBins[
"pt"].
size() - 1; ++
j) {
136 for (
int k = 0;
k < (
int)gridOfBins[
"rho"].
size() - 1; ++
k) {
139 category.EtaMax = gridOfBins[
"eta"][
i + 1];
141 category.PtMax = gridOfBins[
"pt"][
j + 1];
143 category.RhoMax = gridOfBins[
"rho"][
k + 1];
148 TString::Format(likelihoodVar +
"/" + likelihoodVar +
"_" +
type +
"_eta%d_pt%d_rho%d",
i,
j,
k);
149 TH1* pdf = (TH1*)
f->Get(
key);
151 edm::LogError(
"NoPDF") <<
"Could not found pdf with key " <<
key <<
" in input file" << std::endl;
155 std::vector<int> binNumbers = {qgIndex, varIndex,
i,
j,
k};
156 pdfs[binNumbers] = pdf;
161 for (
int k = 0;
k < (
int)gridOfBins[
"rho"].
size() - 1; ++
k) {
162 std::vector<int> binNumbers = {qgIndex, varIndex,
i,
j,
k};
166 for (
int j = 0;
j < (
int)gridOfBins[
"pt"].
size() - 1; ++
j) {
167 for (
int k = 0;
k < (
int)gridOfBins[
"rho"].
size() - 1; ++
k) {
168 std::vector<int> binNumbers = {qgIndex, varIndex,
i,
j,
k};
188 "%6d) var=%1d\t\tqg=%1d\t\teta={%5.2f,%5.2f}\t\tpt={%8.2f,%8.2f}\t\trho={%6.2f,%8.2f}",
202 payload->qgValidRange.EtaMin = gridOfBins[
"eta"].front();
203 payload->qgValidRange.EtaMax = gridOfBins[
"eta"].back();
204 payload->qgValidRange.PtMin = gridOfBins[
"pt"].front();
205 payload->qgValidRange.PtMax = gridOfBins[
"pt"].back();
206 payload->qgValidRange.RhoMin = gridOfBins[
"rho"].front();
207 payload->qgValidRange.RhoMax = gridOfBins[
"rho"].back();
208 payload->qgValidRange.QGIndex = -1;
209 payload->qgValidRange.VarIndex = -1;
212 edm::LogInfo(
"UserOutput") <<
"Opening PoolDBOutputService" << std::endl;
215 if (
s.isAvailable()) {
216 edm::LogInfo(
"UserOutput") <<
"Setting up payload with " <<
payload->data.size() <<
" entries and tag "
References myMessageLogger_cff::categories, taus_updatedMVAIds_cff::category, mps_splice::entry, f, contentValuesFiles::fullPath, getVectorFromFile(), mps_fire::i, inputRootFile, createfilelist::int, dqmiolumiharvest::j, dqmdumpme::k, crabWrapper::key, jets_cff::payload, payloadTag, alignCSCRings::s, findQualityFiles::size, transformToHistogramObject(), and tryToMerge().