Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[91X] SiPixelAli PCL payload creation thresholds from db - CondFormats #18087

Merged
merged 8 commits into from Mar 30, 2017
6 changes: 6 additions & 0 deletions CondCore/PCLConfigPlugins/BuildFile.xml
@@ -0,0 +1,6 @@
<use name="FWCore/Framework"/>
<use name="FWCore/PluginManager"/>
<use name="CondCore/ESSources"/>
<use name="CondFormats/PCLConfig"/>
<use name="CondFormats/DataRecord"/>
<flags EDM_PLUGIN="1"/>
5 changes: 5 additions & 0 deletions CondCore/PCLConfigPlugins/src/plugin.cc
@@ -0,0 +1,5 @@
#include "CondCore/ESSources/interface/registration_macros.h"
#include "CondFormats/PCLConfig/interface/AlignPCLThresholds.h"
#include "CondFormats/DataRecord/interface/AlignPCLThresholdsRcd.h"

REGISTER_PLUGIN(AlignPCLThresholdsRcd,AlignPCLThresholds);
1 change: 1 addition & 0 deletions CondCore/Utilities/BuildFile.xml
Expand Up @@ -31,6 +31,7 @@
<use name="CondFormats/Common"/>
<use name="CondFormats/BTauObjects"/>
<use name="CondFormats/MFObjects"/>
<use name="CondFormats/PCLConfig"/>
<export>
<lib name="1"/>
</export>
1 change: 1 addition & 0 deletions CondCore/Utilities/python/cond2xml.py
Expand Up @@ -99,6 +99,7 @@ def ("%(plTypeSan)s2xml", %(plTypeSan)s2xml);
<use name="CondFormats/Common"/>
<use name="CondFormats/BTauObjects"/>
<use name="CondFormats/MFObjects"/>
<use name="CondFormats/PCLConfig"/>
<export>
<lib name="1"/>
</export>
Expand Down
1 change: 1 addition & 0 deletions CondCore/Utilities/src/CondDBFetch.cc
Expand Up @@ -31,6 +31,7 @@ namespace cond {
FETCH_PAYLOAD_CASE( AlignmentErrorsExtended )
FETCH_PAYLOAD_CASE( AlignmentSurfaceDeformations )
FETCH_PAYLOAD_CASE( Alignments )
FETCH_PAYLOAD_CASE( AlignPCLThresholds )
FETCH_PAYLOAD_CASE( BeamSpotObjects )
FETCH_PAYLOAD_CASE( CSCBadChambers )
FETCH_PAYLOAD_CASE( CSCBadStrips )
Expand Down
1 change: 1 addition & 0 deletions CondCore/Utilities/src/CondDBImport.cc
Expand Up @@ -45,6 +45,7 @@ namespace cond {
IMPORT_PAYLOAD_CASE( AlignmentErrorsExtended )
IMPORT_PAYLOAD_CASE( AlignmentSurfaceDeformations )
IMPORT_PAYLOAD_CASE( Alignments )
IMPORT_PAYLOAD_CASE( AlignPCLThresholds )
IMPORT_PAYLOAD_CASE( BeamSpotObjects )
IMPORT_PAYLOAD_CASE( CSCBadChambers )
IMPORT_PAYLOAD_CASE( CSCBadStrips )
Expand Down
1 change: 1 addition & 0 deletions CondCore/Utilities/src/CondFormats.h
Expand Up @@ -249,6 +249,7 @@
#include "CondFormats/SiStripObjects/interface/SiStripPedestals.h"
#include "CondFormats/BTauObjects/interface/TrackProbabilityCalibration.h"
#include "CondFormats/MFObjects/interface/MagFieldConfig.h"
#include "CondFormats/PCLConfig/interface/AlignPCLThresholds.h"

#include "CondFormats/Common/interface/BaseKeyed.h"

Expand Down
25 changes: 25 additions & 0 deletions CondFormats/DataRecord/interface/AlignPCLThresholdsRcd.h
@@ -0,0 +1,25 @@
#ifndef AlignPCLThresholdsRcd_AlignPCLThresholdsRcd_h
#define AlignPCLThresholdsRcd_AlignPCLThresholdsRcd_h
// -*- C++ -*-
//
// Package: CondFormats/DataRecord
// Class : AlignPCLThresholdsRcd
//
/**\class AlignPCLThresholdsRcd AlignPCLThresholdsRcd.h CondFormats/DataRecord/interface/AlignPCLThresholdsRcd.h

Description: [one line class summary]

Usage:
<usage>

*/
//
// Author: Marco Musich
// Created: Wed, 22 Feb 2017 10:31:30 GMT
//

#include "FWCore/Framework/interface/EventSetupRecordImplementation.h"

class AlignPCLThresholdsRcd : public edm::eventsetup::EventSetupRecordImplementation<AlignPCLThresholdsRcd> {};

#endif
15 changes: 15 additions & 0 deletions CondFormats/DataRecord/src/AlignPCLThresholdsRcd.cc
@@ -0,0 +1,15 @@
// -*- C++ -*-
//
// Package: CondFormats/DataRecord
// Class : AlignPCLThresholdsRcd
//
// Implementation:
// [Notes on implementation]
//
// Author: Marco Musich
// Created: Wed, 22 Feb 2017 10:31:30 GMT

#include "CondFormats/DataRecord/interface/AlignPCLThresholdsRcd.h"
#include "FWCore/Framework/interface/eventsetuprecord_registration_macro.h"

EVENTSETUP_RECORD_REG(AlignPCLThresholdsRcd);
15 changes: 15 additions & 0 deletions CondFormats/PCLConfig/BuildFile.xml
@@ -0,0 +1,15 @@
<flags GENREFLEX_ARGS="--"/>
<use name="CondFormats/Common"/>
<!-- // comment out
<use name="FWCore/ParameterSet"/>
<use name="FWCore/MessageLogger"/>
<use name="xerces-c"/>
<use name="rootmath"/>
-->
<use name="FWCore/Utilities"/>
<use name="CondFormats/Serialization"/>
<use name="boost_serialization"/>

<export>
<lib name="1"/>
</export>
92 changes: 92 additions & 0 deletions CondFormats/PCLConfig/interface/AlignPCLThreshold.h
@@ -0,0 +1,92 @@
#ifndef CondFormats_PCLConfig_AlignPCLThreshold_h
#define CondFormats_PCLConfig_AlignPCLThreshold_h

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

class AlignPCLThreshold
{
public:

struct coordThresholds{
coordThresholds(){
m_Cut=5.;
m_sigCut=2.5;
m_errorCut=10.;
m_maxMoveCut=200;
m_label="default";
}
~coordThresholds(){}
void setThresholds(float theCut,float theSigCut,float theErrorCut,float theMaxMoveCut,const std::string &theLabel){
m_Cut=theCut;
m_sigCut=theSigCut;
m_errorCut=theErrorCut;
m_maxMoveCut=theMaxMoveCut;
m_label=theLabel;
}

float m_Cut;
float m_sigCut;
float m_errorCut;
float m_maxMoveCut;
std::string m_label;

COND_SERIALIZABLE;

};

virtual ~AlignPCLThreshold(){}

AlignPCLThreshold(coordThresholds X=coordThresholds(),coordThresholds tX=coordThresholds(),
coordThresholds Y=coordThresholds(),coordThresholds tY=coordThresholds(),
coordThresholds Z=coordThresholds(),coordThresholds tZ=coordThresholds(),
std::vector< coordThresholds > extraDOF=std::vector< coordThresholds >()
);

float getXcut() const {return m_xCoord.m_Cut;}
float getYcut() const {return m_yCoord.m_Cut;}
float getZcut() const {return m_zCoord.m_Cut;}
float getThetaXcut() const {return m_thetaXCoord.m_Cut;}
float getThetaYcut() const {return m_thetaYCoord.m_Cut;}
float getThetaZcut() const {return m_thetaZCoord.m_Cut;}

float getSigXcut() const {return m_xCoord.m_sigCut;}
float getSigYcut() const {return m_yCoord.m_sigCut;}
float getSigZcut() const {return m_zCoord.m_sigCut;}
float getSigThetaXcut() const {return m_thetaXCoord.m_sigCut;}
float getSigThetaYcut() const {return m_thetaYCoord.m_sigCut;}
float getSigThetaZcut() const {return m_thetaZCoord.m_sigCut;}

float getErrorXcut() const {return m_xCoord.m_errorCut;}
float getErrorYcut() const {return m_yCoord.m_errorCut;}
float getErrorZcut() const {return m_zCoord.m_errorCut;}
float getErrorThetaXcut() const {return m_thetaXCoord.m_errorCut;}
float getErrorThetaYcut() const {return m_thetaYCoord.m_errorCut;}
float getErrorThetaZcut() const {return m_thetaZCoord.m_errorCut;}

float getMaxMoveXcut() const {return m_xCoord.m_maxMoveCut;}
float getMaxMoveYcut() const {return m_yCoord.m_maxMoveCut;}
float getMaxMoveZcut() const {return m_zCoord.m_maxMoveCut;}
float getMaxMoveThetaXcut() const {return m_thetaXCoord.m_maxMoveCut;}
float getMaxMoveThetaYcut() const {return m_thetaYCoord.m_maxMoveCut;}
float getMaxMoveThetaZcut() const {return m_thetaZCoord.m_maxMoveCut;}

bool hasExtraDOF() const {return (m_extraDOF.size()>0);}
unsigned int extraDOFSize() const {return m_extraDOF.size();}
std::array<float,4> getExtraDOFCuts(const unsigned int i) const;
std::string getExtraDOFLabel(const unsigned int i) const;

private:

coordThresholds m_xCoord;
coordThresholds m_yCoord;
coordThresholds m_zCoord;
coordThresholds m_thetaXCoord;
coordThresholds m_thetaYCoord;
coordThresholds m_thetaZCoord;
std::vector< coordThresholds > m_extraDOF;

COND_SERIALIZABLE;

};

#endif
57 changes: 57 additions & 0 deletions CondFormats/PCLConfig/interface/AlignPCLThresholds.h
@@ -0,0 +1,57 @@
#ifndef CondFormats_PCLConfig_AlignPCLThresholds_h
#define CondFormats_PCLConfig_AlignPCLThresholds_h

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

#include <map>
#include <string>
#include <vector>

class AlignPCLThresholds{
public:
typedef std::map<std::string,AlignPCLThreshold> threshold_map;
enum coordType {X, Y, Z, theta_X, theta_Y, theta_Z, extra_DOF, endOfTypes};

AlignPCLThresholds(){}
virtual ~AlignPCLThresholds(){}

void setAlignPCLThreshold(const std::string &AlignableId, const AlignPCLThreshold &Threshold);
void setAlignPCLThresholds(const int &Nrecords,const threshold_map &Thresholds);
void setNRecords(const int &Nrecords);

const threshold_map& getThreshold_Map () const {return m_thresholds;}
const int& getNrecords() const {return m_nrecords;}

AlignPCLThreshold getAlignPCLThreshold(const std::string &AlignableId) const;
AlignPCLThreshold & getAlignPCLThreshold(const std::string &AlignableId);

float getSigCut (const std::string &AlignableId,const coordType &type) const;
float getCut (const std::string &AlignableId,const coordType &type) const;
float getMaxMoveCut (const std::string &AlignableId,const coordType &type) const;
float getMaxErrorCut(const std::string &AlignableId,const coordType &type) const;

// overloaded methods to get all the coordinates
std::array<float,6> getSigCut (const std::string &AlignableId) const;
std::array<float,6> getCut (const std::string &AlignableId) const;
std::array<float,6> getMaxMoveCut (const std::string &AlignableId) const;
std::array<float,6> getMaxErrorCut(const std::string &AlignableId) const;

std::array<float,4> getExtraDOFCutsForAlignable(const std::string &AlignableId,const unsigned int i) const;
std::string getExtraDOFLabelForAlignable(const std::string &AlignableId,const unsigned int i) const;

double size()const {return m_thresholds.size();}
std::vector<std::string> getAlignableList() const;

void printAll() const;

private:

threshold_map m_thresholds;
int m_nrecords;

COND_SERIALIZABLE;

};

#endif