Skip to content

Commit

Permalink
Merge pull request #8 from cms-sw/CMSSW_7_6_X
Browse files Browse the repository at this point in the history
Private pull request to make branch UpdCodePortingforGEMs up to date
  • Loading branch information
archiesharma committed Jul 23, 2015
2 parents ed026b8 + 4b612a8 commit 0407562
Show file tree
Hide file tree
Showing 136 changed files with 18,999 additions and 329 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,10 @@
#temporary fix (?):
#unset PYTHONHOME

cd $CMSSW_BASE/src
eval `scramv1 runtime -sh`
cd -

# these defaults will be overwritten by MPS
RUNDIR=$HOME/scratch0/some/path
MSSDIR=/castor/cern.ch/user/u/username/another/path
Expand Down
2 changes: 1 addition & 1 deletion CondCore/EcalPlugins/plugins/BuildFile.xml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
<use name="boost_regex"/>
<flags EDM_PLUGIN="1"/>
</library>
<library file="EcalPulseCovariancesPyWrapper.cc" name="EcalPulseCovariancesPyInterface">
<library file="EcalPulseSymmCovariancesPyWrapper.cc" name="EcalPulseSymmCovariancesPyInterface">
<use name="CondCore/Utilities"/>
<use name="CondFormats/EcalObjects"/>
<use name="CondTools/Ecal"/>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#include "CondFormats/EcalObjects/interface/EcalPulseShapes.h"
#include "CondFormats/EcalObjects/interface/EcalPulseCovariances.h"
#include "CondTools/Ecal/interface/EcalPulseCovariancesXMLTranslator.h"
#include "CondFormats/EcalObjects/interface/EcalPulseSymmCovariances.h"
#include "CondTools/Ecal/interface/EcalPulseSymmCovariancesXMLTranslator.h"
#include "CondTools/Ecal/interface/EcalCondHeader.h"
#include "TH2F.h"
#include "TCanvas.h"
Expand Down Expand Up @@ -29,7 +29,7 @@

namespace {
struct Printer {
void doit(EcalPulseCovariance const & item) {
void doit(EcalPulseSymmCovariance const & item) {
for(int s = 0; s<EcalPulseShape::TEMPLATESAMPLES; ++s)
ss << item.val(THERAW,s);
ss << " ";
Expand All @@ -45,35 +45,35 @@ namespace cond {
enum Quantity { sample_0=1, sample_1=2, sample_2=3, sample_3=4, sample_4=5, sample_5=6, sample_6=7, sample_7=8, sample_8=9, sample_9=10, sample_10=11, sample_11=12 };
enum How { singleChannel, bySuperModule, all};

float average(EcalPulseCovariances const & pulseshapes, Quantity q) {
float average(EcalPulseSymmCovariances const & pulseshapes, Quantity q) {
return std::accumulate(
boost::make_transform_iterator(pulseshapes.barrelItems().begin(),bind(&EcalPulseCovariance::val,_1,THERAW,q-1)),
boost::make_transform_iterator(pulseshapes.barrelItems().end(),bind(&EcalPulseCovariance::val,_1,THERAW,q-1)),
boost::make_transform_iterator(pulseshapes.barrelItems().begin(),bind(&EcalPulseSymmCovariance::val,_1,THERAW,q-1)),
boost::make_transform_iterator(pulseshapes.barrelItems().end(),bind(&EcalPulseSymmCovariance::val,_1,THERAW,q-1)),
0.)/float(pulseshapes.barrelItems().size());
}

void extractAverage(EcalPulseCovariances const & pulseshapes, Quantity q, std::vector<int> const &, std::vector<float> & result) {
void extractAverage(EcalPulseSymmCovariances const & pulseshapes, Quantity q, std::vector<int> const &, std::vector<float> & result) {
result.resize(1);
result[0] = average(pulseshapes,q);
}

void extractSuperModules(EcalPulseCovariances const & pulseshapes, Quantity q, std::vector<int> const & which, std::vector<float> & result) {
void extractSuperModules(EcalPulseSymmCovariances const & pulseshapes, Quantity q, std::vector<int> const & which, std::vector<float> & result) {
// bho...
}

void extractSingleChannel(EcalPulseCovariances const & pulseshapes, Quantity q, std::vector<int> const & which, std::vector<float> & result) {
void extractSingleChannel(EcalPulseSymmCovariances const & pulseshapes, Quantity q, std::vector<int> const & which, std::vector<float> & result) {
for (unsigned int i=0; i<which.size();i++) {
// absolutely arbitraty
if ((unsigned int) (which[i])< pulseshapes.barrelItems().size())
result.push_back( pulseshapes.barrelItems()[which[i]].val(THERAW,q-1));
}
}

typedef boost::function<void(EcalPulseCovariances const & pulseshapes, Quantity q, std::vector<int> const & which, std::vector<float> & result)> PulseCovarianceExtractor;
typedef boost::function<void(EcalPulseSymmCovariances const & pulseshapes, Quantity q, std::vector<int> const & which, std::vector<float> & result)> PulseSymmCovarianceExtractor;
}

template<>
struct ExtractWhat<EcalPulseCovariances> {
struct ExtractWhat<EcalPulseSymmCovariances> {

ecalpulsecovariance::Quantity m_quantity;
ecalpulsecovariance::How m_how;
Expand All @@ -91,19 +91,19 @@ namespace cond {


template<>
class ValueExtractor<EcalPulseCovariances>: public BaseValueExtractor<EcalPulseCovariances> {
class ValueExtractor<EcalPulseSymmCovariances>: public BaseValueExtractor<EcalPulseSymmCovariances> {
public:

static ecalpulsecovariance::PulseCovarianceExtractor & extractor(ecalpulsecovariance::How how) {
static ecalpulsecovariance::PulseCovarianceExtractor fun[3] = {
ecalpulsecovariance::PulseCovarianceExtractor(ecalpulsecovariance::extractSingleChannel),
ecalpulsecovariance::PulseCovarianceExtractor(ecalpulsecovariance::extractSuperModules),
ecalpulsecovariance::PulseCovarianceExtractor(ecalpulsecovariance::extractAverage)
static ecalpulsecovariance::PulseSymmCovarianceExtractor & extractor(ecalpulsecovariance::How how) {
static ecalpulsecovariance::PulseSymmCovarianceExtractor fun[3] = {
ecalpulsecovariance::PulseSymmCovarianceExtractor(ecalpulsecovariance::extractSingleChannel),
ecalpulsecovariance::PulseSymmCovarianceExtractor(ecalpulsecovariance::extractSuperModules),
ecalpulsecovariance::PulseSymmCovarianceExtractor(ecalpulsecovariance::extractAverage)
};
return fun[how];
}

typedef EcalPulseCovariances Class;
typedef EcalPulseSymmCovariances Class;
typedef ExtractWhat<Class> What;
static What what() { return What();}

Expand All @@ -129,45 +129,45 @@ namespace cond {

template<>
std::string
PayLoadInspector<EcalPulseCovariances>::dump() const {
PayLoadInspector<EcalPulseSymmCovariances>::dump() const {
std::stringstream ss;
EcalCondHeader header;
ss<<EcalPulseCovariancesXMLTranslator::dumpXML(header,object());
ss<<EcalPulseSymmCovariancesXMLTranslator::dumpXML(header,object());
return ss.str();
} // dump


class EcalPulseCovariancesHelper: public EcalPyWrapperHelper<EcalPulseCovariance>{
class EcalPulseSymmCovariancesHelper: public EcalPyWrapperHelper<EcalPulseSymmCovariance>{
public:
EcalPulseCovariancesHelper():EcalPyWrapperHelper<EcalObject>(EcalPulseShape::TEMPLATESAMPLES){}
EcalPulseSymmCovariancesHelper():EcalPyWrapperHelper<EcalObject>(EcalPulseShape::TEMPLATESAMPLES){}
protected:
typedef EcalPulseCovariance EcalObject;
type_vValues getValues( const std::vector<EcalPulseCovariance> & vItems) override
typedef EcalPulseSymmCovariance EcalObject;
type_vValues getValues( const std::vector<EcalPulseSymmCovariance> & vItems) override
{
type_vValues vValues(total_values);

for(int s = 0; s<EcalPulseShape::TEMPLATESAMPLES; ++s) vValues[s].first = Form("sample_0.vs.sample_%d",s);

//get info:
for(std::vector<EcalPulseCovariance>::const_iterator iItems = vItems.begin(); iItems != vItems.end(); ++iItems) {
for(std::vector<EcalPulseSymmCovariance>::const_iterator iItems = vItems.begin(); iItems != vItems.end(); ++iItems) {
for(int s = 0; s<EcalPulseShape::TEMPLATESAMPLES; ++s) vValues[s].second = iItems->val(THERAW,s);
}
return vValues;
}
};

template<>
std::string PayLoadInspector<EcalPulseCovariances>::summary() const {
std::string PayLoadInspector<EcalPulseSymmCovariances>::summary() const {
std::stringstream ss;
EcalPulseCovariancesHelper helper;
EcalPulseSymmCovariancesHelper helper;
ss << helper.printBarrelsEndcaps(object().barrelItems(), object().endcapItems());
return ss.str();
} // summary


// return the real name of the file including extension...
template<>
std::string PayLoadInspector<EcalPulseCovariances>::plot(std::string const & filename,
std::string PayLoadInspector<EcalPulseSymmCovariances>::plot(std::string const & filename,
std::string const &,
std::vector<int> const&,
std::vector<float> const& ) const {
Expand Down Expand Up @@ -213,7 +213,7 @@ namespace cond {
float y = -1 - ieta;
if(sign == 1) y = ieta;
for(int s = 0; s<EcalPulseShape::TEMPLATESAMPLES; ++s) {
barrel_s[s]->Fill(iphi, y, fabs(object()[id.rawId()].covval[THERAW][s]));
barrel_s[s]->Fill(iphi, y, fabs(object()[id.rawId()].val(THERAW,s)));
}
} // iphi
} // ieta
Expand All @@ -224,11 +224,11 @@ namespace cond {
EEDetId id(ix+1,iy+1,thesign);
if (thesign==1) {
for(int s = 0; s<EcalPulseShape::TEMPLATESAMPLES; ++s)
endc_p_s[s]->Fill(ix+1,iy+1,fabs(object()[id.rawId()].covval[THERAW][s]));
endc_p_s[s]->Fill(ix+1,iy+1,fabs(object()[id.rawId()].val(THERAW,s)));
}
else {
for(int s = 0; s<EcalPulseShape::TEMPLATESAMPLES; ++s)
endc_m_s[s]->Fill(ix+1,iy+1,fabs(object()[id.rawId()].covval[THERAW][s]));
endc_m_s[s]->Fill(ix+1,iy+1,fabs(object()[id.rawId()].val(THERAW,s)));
}
} // iy
} // ix
Expand Down Expand Up @@ -322,7 +322,7 @@ namespace cond {

namespace condPython {
template<>
void defineWhat<EcalPulseCovariances>() {
void defineWhat<EcalPulseSymmCovariances>() {
using namespace boost::python;
enum_<cond::ecalpulsecovariance::Quantity>("Quantity")
.value("sample_0",cond::ecalpulsecovariance::sample_0)
Expand All @@ -342,7 +342,7 @@ namespace condPython {
.value("all",cond::ecalpulsecovariance::all)
;

typedef cond::ExtractWhat<EcalPulseCovariances> What;
typedef cond::ExtractWhat<EcalPulseSymmCovariances> What;
class_<What>("What",init<>())
.def("set_quantity",&What::set_quantity)
.def("set_how",&What::set_how)
Expand All @@ -356,4 +356,4 @@ namespace condPython {



PYTHON_WRAPPER(EcalPulseCovariances,EcalPulseCovariances);
PYTHON_WRAPPER(EcalPulseSymmCovariances,EcalPulseSymmCovariances);
4 changes: 4 additions & 0 deletions CondCore/EcalPlugins/src/plugin.cc
Original file line number Diff line number Diff line change
Expand Up @@ -154,6 +154,9 @@
#include "CondFormats/EcalObjects/interface/EcalPulseCovariances.h"
#include "CondFormats/DataRecord/interface/EcalPulseCovariancesRcd.h"

#include "CondFormats/EcalObjects/interface/EcalPulseSymmCovariances.h"
#include "CondFormats/DataRecord/interface/EcalPulseSymmCovariancesRcd.h"

REGISTER_PLUGIN(EcalPedestalsRcd,EcalPedestals);
REGISTER_PLUGIN(EcalWeightXtalGroupsRcd,EcalWeightXtalGroups);
REGISTER_PLUGIN(EcalTBWeightsRcd,EcalTBWeights);
Expand Down Expand Up @@ -210,3 +213,4 @@ REGISTER_PLUGIN(EcalTimeBiasCorrectionsRcd, EcalTimeBiasCorrections);
REGISTER_PLUGIN(EcalSamplesCorrelationRcd, EcalSamplesCorrelation);
REGISTER_PLUGIN(EcalPulseShapesRcd,EcalPulseShapes);
REGISTER_PLUGIN(EcalPulseCovariancesRcd,EcalPulseCovariances);
REGISTER_PLUGIN(EcalPulseSymmCovariancesRcd,EcalPulseSymmCovariances);
2 changes: 2 additions & 0 deletions CondCore/Utilities/src/CondDBFetch.cc
Original file line number Diff line number Diff line change
Expand Up @@ -131,6 +131,8 @@ namespace cond {
FETCH_PAYLOAD_CASE( EcalPulseShape )
FETCH_PAYLOAD_CASE( EcalCondObjectContainer<EcalPulseCovariance> )
FETCH_PAYLOAD_CASE( EcalPulseCovariance )
FETCH_PAYLOAD_CASE( EcalCondObjectContainer<EcalPulseSymmCovariance> )
FETCH_PAYLOAD_CASE( EcalPulseSymmCovariance )
FETCH_PAYLOAD_CASE( FileBlob )
FETCH_PAYLOAD_CASE( GBRForest )
FETCH_PAYLOAD_CASE( GBRForestD )
Expand Down
2 changes: 2 additions & 0 deletions CondCore/Utilities/src/CondDBImport.cc
Original file line number Diff line number Diff line change
Expand Up @@ -146,6 +146,8 @@ namespace cond {
IMPORT_PAYLOAD_CASE( EcalPulseShape )
IMPORT_PAYLOAD_CASE( EcalCondObjectContainer<EcalPulseCovariance> )
IMPORT_PAYLOAD_CASE( EcalPulseCovariance )
IMPORT_PAYLOAD_CASE( EcalCondObjectContainer<EcalPulseSymmCovariance> )
IMPORT_PAYLOAD_CASE( EcalPulseSymmCovariance )
IMPORT_PAYLOAD_CASE( FileBlob )
IMPORT_PAYLOAD_CASE( GBRForest )
IMPORT_PAYLOAD_CASE( GBRForestD )
Expand Down
1 change: 1 addition & 0 deletions CondCore/Utilities/src/CondFormats.h
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@
#include "CondFormats/EcalObjects/interface/EcalSamplesCorrelation.h"
#include "CondFormats/EcalObjects/interface/EcalPulseShapes.h"
#include "CondFormats/EcalObjects/interface/EcalPulseCovariances.h"
#include "CondFormats/EcalObjects/interface/EcalPulseSymmCovariances.h"
#include "CondFormats/EgammaObjects/interface/GBRForest.h"
#include "CondFormats/EgammaObjects/interface/GBRForestD.h"
#include "CondFormats/HcalObjects/interface/AbsOOTPileupCorrection.h"
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#ifndef ECALPULSESYMMCOVARIANCESRCD_H
#define ECALPULSESYMMCOVARIANCESRCD_H

#include "FWCore/Framework/interface/EventSetupRecordImplementation.h"
class EcalPulseSymmCovariancesRcd : public edm::eventsetup::EventSetupRecordImplementation<EcalPulseSymmCovariancesRcd> {};
#endif
4 changes: 4 additions & 0 deletions CondFormats/DataRecord/src/EcalPulseSymmCovariancesRcd.cc
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
#include "CondFormats/DataRecord/interface/EcalPulseSymmCovariancesRcd.h"
#include "FWCore/Framework/interface/eventsetuprecord_registration_macro.h"

EVENTSETUP_RECORD_REG(EcalPulseSymmCovariancesRcd);
34 changes: 34 additions & 0 deletions CondFormats/EcalObjects/interface/EcalPulseSymmCovariances.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
#ifndef EcalPulseSymmCovariances_h
#define EcalPulseSymmCovariances_h

#include "CondFormats/Serialization/interface/Serializable.h"

#include "CondFormats/EcalObjects/interface/EcalPulseShapes.h"
#include "CondFormats/EcalObjects/interface/EcalCondObjectContainer.h"

struct EcalPulseSymmCovariance {

public:

EcalPulseSymmCovariance();

float covval[EcalPulseShape::TEMPLATESAMPLES*(EcalPulseShape::TEMPLATESAMPLES+1)/2];

float val(int i, int j) const {

int k=-1;
if(j >= i) k = j + (EcalPulseShape::TEMPLATESAMPLES-1)*i;
else k = i + (EcalPulseShape::TEMPLATESAMPLES-1)*j;
return covval[k];

}

COND_SERIALIZABLE;

};

typedef EcalCondObjectContainer<EcalPulseSymmCovariance> EcalPulseSymmCovariancesMap;
typedef EcalPulseSymmCovariancesMap::const_iterator EcalPulseSymmCovariancesMapIterator;
typedef EcalPulseSymmCovariancesMap EcalPulseSymmCovariances;

#endif
6 changes: 6 additions & 0 deletions CondFormats/EcalObjects/src/EcalPulseSymmCovariances.cc
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#include "CondFormats/EcalObjects/interface/EcalPulseSymmCovariances.h"

EcalPulseSymmCovariance::EcalPulseSymmCovariance() {
int N = EcalPulseShape::TEMPLATESAMPLES*(EcalPulseShape::TEMPLATESAMPLES+1)/2;
for(int k=0; k<N; ++k) covval[k] = 0.;
}
1 change: 1 addition & 0 deletions CondFormats/EcalObjects/src/SerializationManual.h
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ COND_SERIALIZATION_INSTANTIATE(EcalCondObjectContainer<EcalMGPAGainRatio>);
COND_SERIALIZATION_INSTANTIATE(EcalCondObjectContainer<EcalPedestal>);
COND_SERIALIZATION_INSTANTIATE(EcalCondObjectContainer<EcalPulseShape>);
COND_SERIALIZATION_INSTANTIATE(EcalCondObjectContainer<EcalPulseCovariance>);
COND_SERIALIZATION_INSTANTIATE(EcalCondObjectContainer<EcalPulseSymmCovariance>);
COND_SERIALIZATION_INSTANTIATE(EcalCondObjectContainer<EcalTimeDependentCorrections::Values>);
COND_SERIALIZATION_INSTANTIATE(EcalCondObjectContainer<EcalTPGCrystalStatusCode>);
COND_SERIALIZATION_INSTANTIATE(EcalCondObjectContainer<EcalTPGLinearizationConstant>);
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
// -*- C++ -*-
//
// Package: EDMProto
// Class : T_Context_PulseSymmCovariances
//
// Implementation:
// create all the 'infrastructure' needed to get into the Context
//
// Author: Chris Jones
// Created: Mon Apr 18 16:42:52 EDT 2005
// $Id: T_EventSetup_EcalPulseSymmCovariances.cc,v 1.1 2005/08/29 17:59:30 xiezhen Exp $
//

// system include files

// user include files
#include "CondFormats/EcalObjects/interface/EcalPulseSymmCovariances.h"
#include "FWCore/Utilities/interface/typelookup.h"

TYPELOOKUP_DATA_REG(EcalPulseSymmCovariances);
6 changes: 6 additions & 0 deletions CondFormats/EcalObjects/src/classes.h
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
#include "CondFormats/EcalObjects/interface/EcalSamplesCorrelation.h"
#include "CondFormats/EcalObjects/interface/EcalPulseShapes.h"
#include "CondFormats/EcalObjects/interface/EcalPulseCovariances.h"
#include "CondFormats/EcalObjects/interface/EcalPulseSymmCovariances.h"
#include "CondFormats/EcalObjects/interface/EcalTimeCalibConstants.h"
#include "CondFormats/EcalObjects/interface/EcalTimeCalibErrors.h"
#include "CondFormats/EcalObjects/interface/EcalTimeOffsetConstant.h"
Expand Down Expand Up @@ -215,5 +216,10 @@ namespace CondFormats_EcalObjects {
EcalContainer<EBDetId,EcalPulseCovariance> ec_ebDetId_ecalPulseCovariance;
EcalCondObjectContainer<EcalPulseCovariance> ecalPCmap; //typedef EcalPulseCovariance

std::vector<EcalPulseSymmCovariance> v_ecalPulseSymmCovariance;
EcalContainer<EEDetId,EcalPulseSymmCovariance> ec_eeDetId_ecalPulseSymmCovariance;
EcalContainer<EBDetId,EcalPulseSymmCovariance> ec_ebDetId_ecalPulseSymmCovariance;
EcalCondObjectContainer<EcalPulseSymmCovariance> ecalSPCmap; //typedef EcalPulseSymmCovariance

};
}
11 changes: 11 additions & 0 deletions CondFormats/EcalObjects/src/classes_def.xml
Original file line number Diff line number Diff line change
Expand Up @@ -262,4 +262,15 @@
<field name = "ee_" mapping = "blob"/>
</class>

<!-- base class -->
<class name="EcalPulseSymmCovariance"/>
<!-- templates for EcalCondObjectContainer having the class as template parameter -->
<class name="std::vector<EcalPulseSymmCovariance>"/>
<class name="EcalContainer<EEDetId,EcalPulseSymmCovariance>"/>
<class name="EcalContainer<EBDetId,EcalPulseSymmCovariance>"/>
<class name="EcalCondObjectContainer<EcalPulseSymmCovariance>">
<field name = "eb_" mapping = "blob"/>
<field name = "ee_" mapping = "blob"/>
</class>

</lcgdict>
1 change: 1 addition & 0 deletions CondFormats/EcalObjects/src/headers.h
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
#include "CondFormats/EcalObjects/interface/EcalSamplesCorrelation.h"
#include "CondFormats/EcalObjects/interface/EcalPulseShapes.h"
#include "CondFormats/EcalObjects/interface/EcalPulseCovariances.h"
#include "CondFormats/EcalObjects/interface/EcalPulseSymmCovariances.h"

#include "CondFormats/External/interface/EcalDetID.h"
#include "CondFormats/External/interface/SMatrix.h"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -125,6 +125,7 @@ int main()
testSerialization<EcalSamplesCorrelation>();
testSerialization<EcalPulseShapes>();
testSerialization<EcalPulseCovariances>();
testSerialization<EcalPulseSymmCovariances>();
testSerialization<std::map<std::pair<EcalXtalGroupId, EcalTBWeights::EcalTDCId>, EcalWeightSet>>();
testSerialization<std::map<uint32_t, EcalTPGFineGrainConstEB>>();
testSerialization<std::map<uint32_t, EcalTPGFineGrainStripEE::Item>>();
Expand Down
Loading

0 comments on commit 0407562

Please sign in to comment.