Skip to content

Commit b6c5b6e

Browse files
committed
Merge pull request cms-sw#2536 from cms-tau-pog/7_1_X_taus_CondFormat
Conditions updates -- Adding PhysicsTFormulaPayload class to CondFormats
2 parents 543b3a9 + 16a6187 commit b6c5b6e

11 files changed

+196
-9
lines changed

CondCore/PhysicsToolsPlugins/src/plugin.cc

+8-6
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,6 @@
88

99
#include "CondCore/ESSources/interface/registration_macros.h"
1010

11-
12-
13-
1411
#include "CondFormats/PhysicsToolsObjects/interface/Histogram2D.h"
1512
#include "CondFormats/PhysicsToolsObjects/interface/Histogram3D.h"
1613
#include "CondFormats/DataRecord/interface/SiStripDeDxMipRcd.h"
@@ -26,12 +23,17 @@ REGISTER_PLUGIN(SiStripDeDxKaon_3D_Rcd, PhysicsTools::Calibration::HistogramD3D)
2623
#include "CondFormats/DataRecord/interface/SiStripDeDxElectron_3D_Rcd.h"
2724
REGISTER_PLUGIN(SiStripDeDxElectron_3D_Rcd, PhysicsTools::Calibration::HistogramD3D);
2825

26+
#include "CondFormats/DataRecord/interface/PhysicsTFormulaPayloadRcd.h"
27+
#include "CondFormats/PhysicsToolsObjects/interface/PhysicsTFormulaPayload.h"
28+
REGISTER_PLUGIN(PhysicsTFormulaPayloadRcd, PhysicsTFormulaPayload);
29+
30+
#include "CondFormats/DataRecord/interface/PhysicsTGraphPayloadRcd.h"
31+
#include "CondFormats/PhysicsToolsObjects/interface/PhysicsTGraphPayload.h"
32+
REGISTER_PLUGIN(PhysicsTGraphPayloadRcd, PhysicsTGraphPayload);
2933

3034
#include "CondFormats/DataRecord/interface/DropBoxMetadataRcd.h"
3135
#include "CondFormats/Common/interface/DropBoxMetadata.h"
32-
33-
34-
REGISTER_PLUGIN(DropBoxMetadataRcd,DropBoxMetadata);
36+
REGISTER_PLUGIN(DropBoxMetadataRcd, DropBoxMetadata);
3537

3638

3739

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
#ifndef PhysicsTFormulaPayloadRcd_PhysicsTFormulaPayloadRcd_h
2+
#define PhysicsTFormulaPayloadRcd_PhysicsTFormulaPayloadRcd_h
3+
// -*- C++ -*-
4+
//
5+
// Package: CondFormats/DataRecord
6+
// Class : PhysicsTFormulaPayloadRcd
7+
//
8+
/**\class PhysicsTFormulaPayloadRcd PhysicsTFormulaPayloadRcd.h CondFormats/DataRecord/interface/PhysicsTFormulaPayloadRcd.h
9+
10+
Description: [one line class summary]
11+
12+
Usage:
13+
<usage>
14+
15+
*/
16+
//
17+
// Author: Christian Veelken
18+
// Created: Fri, 24 Jan 2014 18:42:23 GMT
19+
//
20+
21+
#include "FWCore/Framework/interface/EventSetupRecordImplementation.h"
22+
23+
class PhysicsTFormulaPayloadRcd : public edm::eventsetup::EventSetupRecordImplementation<PhysicsTFormulaPayloadRcd> {};
24+
25+
#endif
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
#ifndef PhysicsTGraphPayloadRcd_PhysicsTGraphPayloadRcd_h
2+
#define PhysicsTGraphPayloadRcd_PhysicsTGraphPayloadRcd_h
3+
// -*- C++ -*-
4+
//
5+
// Package: CondFormats/DataRecord
6+
// Class : PhysicsTGraphPayloadRcd
7+
//
8+
/**\class PhysicsTGraphPayloadRcd PhysicsTGraphPayloadRcd.h CondFormats/DataRecord/interface/PhysicsTGraphPayloadRcd.h
9+
10+
Description: [one line class summary]
11+
12+
Usage:
13+
<usage>
14+
15+
*/
16+
//
17+
// Author: Christian Veelken
18+
// Created: Wed, 22 Jan 2014 15:36:25 GMT
19+
//
20+
21+
#include "FWCore/Framework/interface/EventSetupRecordImplementation.h"
22+
23+
class PhysicsTGraphPayloadRcd : public edm::eventsetup::EventSetupRecordImplementation<PhysicsTGraphPayloadRcd> {};
24+
25+
#endif
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
// -*- C++ -*-
2+
//
3+
// Package: CondFormats/DataRecord
4+
// Class : PhysicsTFormulaPayloadRcd
5+
//
6+
// Implementation:
7+
// [Notes on implementation]
8+
//
9+
// Author: Christian Veelken
10+
// Created: Fri, 24 Jan 2014 18:42:23 GMT
11+
12+
#include "CondFormats/DataRecord/interface/PhysicsTFormulaPayloadRcd.h"
13+
#include "FWCore/Framework/interface/eventsetuprecord_registration_macro.h"
14+
15+
EVENTSETUP_RECORD_REG(PhysicsTFormulaPayloadRcd);
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
// -*- C++ -*-
2+
//
3+
// Package: CondFormats/DataRecord
4+
// Class : PhysicsTGraphPayloadRcd
5+
//
6+
// Implementation:
7+
// [Notes on implementation]
8+
//
9+
// Author: Christian Veelken
10+
// Created: Wed, 22 Jan 2014 15:36:25 GMT
11+
12+
#include "CondFormats/DataRecord/interface/PhysicsTGraphPayloadRcd.h"
13+
#include "FWCore/Framework/interface/eventsetuprecord_registration_macro.h"
14+
15+
EVENTSETUP_RECORD_REG(PhysicsTGraphPayloadRcd);
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
#ifndef CondFormats_PhysicsToolsObjects_PhysicsTGraphPayload_h
2+
#define CondFormats_PhysicsToolsObjects_PhysicsTGraphPayload_h
3+
4+
/*
5+
* PhysicsTGraphPayload
6+
*
7+
* Class to persist TGraph objects in Conditions database
8+
* (The TGraphs are used to evaluate Pt dependent cuts on the output of tau ID MVAs)
9+
*
10+
* Author: Christian Veelken, LLR
11+
*
12+
*/
13+
14+
#include "TGraph.h"
15+
16+
#include <vector>
17+
#include <string>
18+
#include <iostream>
19+
20+
class PhysicsTGraphPayload
21+
{
22+
public:
23+
/// default constructor
24+
PhysicsTGraphPayload();
25+
26+
/// constructor from TGraph object
27+
PhysicsTGraphPayload(const TGraph& graph);
28+
29+
/// conversion to TGraph
30+
operator TGraph() const;
31+
32+
/// print points of TGraph object
33+
void print(std::ostream& stream) const;
34+
35+
protected:
36+
std::string name_;
37+
int numPoints_;
38+
std::vector<float> x_;
39+
std::vector<float> y_;
40+
};
41+
42+
#endif
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
#include "CondFormats/PhysicsToolsObjects/interface/PhysicsTGraphPayload.h"
2+
3+
#include "FWCore/Utilities/interface/Exception.h"
4+
5+
#include <iomanip>
6+
7+
PhysicsTGraphPayload::PhysicsTGraphPayload()
8+
: numPoints_(0)
9+
{}
10+
11+
PhysicsTGraphPayload::PhysicsTGraphPayload(const TGraph& graph)
12+
: numPoints_(0)
13+
{
14+
if ( graph.GetN() >= 1 ) {
15+
name_ = graph.GetName();
16+
numPoints_ = graph.GetN();
17+
x_.resize(numPoints_);
18+
y_.resize(numPoints_);
19+
for ( int iPoint = 0; iPoint < numPoints_; ++iPoint ) {
20+
Double_t xPoint, yPoint;
21+
graph.GetPoint(iPoint, xPoint, yPoint);
22+
x_[iPoint] = xPoint;
23+
y_[iPoint] = yPoint;
24+
}
25+
}
26+
}
27+
28+
PhysicsTGraphPayload::operator TGraph() const
29+
{
30+
if ( numPoints_ >= 1 ) {
31+
TGraph graph(numPoints_);
32+
graph.SetName(name_.data());
33+
for ( int iPoint = 0; iPoint < numPoints_; ++iPoint ) {
34+
graph.SetPoint(iPoint, x_[iPoint], y_[iPoint]);
35+
}
36+
return graph;
37+
} else {
38+
throw cms::Exception("PhysicsTGraphPayload")
39+
<< "Invalid TGraph object !!\n";
40+
}
41+
}
42+
43+
void PhysicsTGraphPayload::print(std::ostream& stream) const
44+
{
45+
stream << "<PhysicsTGraphPayload::print (name = " << name_ << ")>:" << std::endl;
46+
for ( int iPoint = 0; iPoint < numPoints_; ++iPoint ) {
47+
stream << "point #" << iPoint << ": x = " << x_[iPoint] << ", y = " << y_[iPoint] << std::endl;
48+
}
49+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
#include "CondFormats/PhysicsToolsObjects/interface/PhysicsTFormulaPayload.h"
2+
#include "FWCore/Utilities/interface/typelookup.h"
3+
4+
TYPELOOKUP_DATA_REG(PhysicsTFormulaPayload);
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
#include "CondFormats/PhysicsToolsObjects/interface/PhysicsTGraphPayload.h"
2+
#include "FWCore/Utilities/interface/typelookup.h"
3+
4+
TYPELOOKUP_DATA_REG(PhysicsTGraphPayload);

CondFormats/PhysicsToolsObjects/src/classes.h

+5-2
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
#include "CondFormats/PhysicsToolsObjects/interface/PerformancePayloadFromBinnedTFormula.h"
1414
#include "CondFormats/PhysicsToolsObjects/interface/PhysicsTFormulaPayload.h"
1515

16+
#include "CondFormats/PhysicsToolsObjects/interface/PhysicsTGraphPayload.h"
1617

1718
namespace CondFormats_PhysicsToolsObjects { // anonymous
1819
struct dictionary {
@@ -39,7 +40,6 @@ PhysicsTools::Calibration::HistogramF3D v31;
3940
std::vector<PhysicsTools::Calibration::HistogramF3D> v32;
4041
std::vector<PhysicsTools::Calibration::HistogramD3D> v33;
4142

42-
4343
// MVAComputer
4444
std::vector<PhysicsTools::Calibration::Variable> v19;
4545
std::vector<PhysicsTools::Calibration::ProcCategory::BinLimits> v20;
@@ -49,7 +49,6 @@ PhysicsTools::Calibration::MVAComputerContainer::Entry v24;
4949
std::vector<PhysicsTools::Calibration::MVAComputerContainer::Entry> v25;
5050
std::vector<PhysicsTools::Calibration::VarProcessor*> v26;
5151

52-
5352
// Performance DB stuff
5453
PhysicsPerformancePayload p1;
5554
std::vector<PerformanceResult::ResultType> r;
@@ -66,5 +65,9 @@ std::vector<PhysicsTFormulaPayload> pv10;
6665
PerformancePayloadFromTFormula p11;
6766
PerformancePayloadFromBinnedTFormula p12;
6867

68+
// TGraph stuff
69+
PhysicsTGraphPayload p13;
70+
std::vector<PhysicsTGraphPayload> pv13;
71+
6972
}; // struct dictionary
7073
} // anonymous namespace

CondFormats/PhysicsToolsObjects/src/classes_def.xml

+4-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@
2424
<class name="PhysicsTFormulaPayload"/>
2525
<class name="std::vector<PhysicsTFormulaPayload>"/>
2626

27-
2827
<!-- Histogram -->
2928
<class name="PhysicsTools::Calibration::Range&lt;float&gt;"/>
3029
<class name="PhysicsTools::Calibration::Histogram&lt;float,float&gt;">
@@ -120,4 +119,8 @@
120119
<field name="entries" mapping="blob"/>
121120
<field name="cacheId" transient="true"/>
122121
</class>
122+
123+
<!-- TGraph -->
124+
<class name="PhysicsTGraphPayload"/>
125+
<class name="std::vector<PhysicsTGraphPayload>"/>
123126
</lcgdict>

0 commit comments

Comments
 (0)