CMS 3D CMS Logo

Public Member Functions | Private Attributes

L1GtTriggerMaskAlgoTrigConfigOnlineProd Class Reference

#include <L1GtTriggerMaskAlgoTrigConfigOnlineProd.h>

Inheritance diagram for L1GtTriggerMaskAlgoTrigConfigOnlineProd:
L1ConfigOnlineProdBase< L1GtTriggerMaskAlgoTrigRcd, L1GtTriggerMask > edm::ESProducer edm::ESProxyFactoryProducer edm::eventsetup::DataProxyProvider

List of all members.

Public Member Functions

 L1GtTriggerMaskAlgoTrigConfigOnlineProd (const edm::ParameterSet &)
 constructor
virtual boost::shared_ptr
< L1GtTriggerMask
newObject (const std::string &objectKey)
 public methods
 ~L1GtTriggerMaskAlgoTrigConfigOnlineProd ()
 destructor

Private Attributes

int m_partitionNumber
 partition number

Detailed Description

Description: online producer for L1GtTriggerMaskAlgoTrigRcd.

Implementation: <TODO: enter implementation details>

Author:
: Vasile Mihai Ghete - HEPHY Vienna

$Date$ $Revision$

Definition at line 34 of file L1GtTriggerMaskAlgoTrigConfigOnlineProd.h.


Constructor & Destructor Documentation

L1GtTriggerMaskAlgoTrigConfigOnlineProd::L1GtTriggerMaskAlgoTrigConfigOnlineProd ( const edm::ParameterSet parSet)

constructor

Definition at line 29 of file L1GtTriggerMaskAlgoTrigConfigOnlineProd.cc.

L1GtTriggerMaskAlgoTrigConfigOnlineProd::~L1GtTriggerMaskAlgoTrigConfigOnlineProd ( )

destructor

Definition at line 39 of file L1GtTriggerMaskAlgoTrigConfigOnlineProd.cc.

                                                                                  {

    // empty

}

Member Function Documentation

boost::shared_ptr< L1GtTriggerMask > L1GtTriggerMaskAlgoTrigConfigOnlineProd::newObject ( const std::string &  objectKey) [virtual]

public methods

Implements L1ConfigOnlineProdBase< L1GtTriggerMaskAlgoTrigRcd, L1GtTriggerMask >.

Definition at line 47 of file L1GtTriggerMaskAlgoTrigConfigOnlineProd.cc.

References l1t::OMDSReader::basicQuery(), l1t::OMDSReader::columnNames(), l1t::OMDSReader::QueryResults::fillVariable(), i, edm::isDebugEnabled(), LogTrace, L1ConfigOnlineProdBase< L1GtTriggerMaskAlgoTrigRcd, L1GtTriggerMask >::m_omdsReader, m_partitionNumber, l1t::OMDSReader::QueryResults::queryFailed(), python::entryComment::results, and l1t::OMDSReader::singleAttribute().

                                    {

    // shared pointer for L1GtTriggerMask
    boost::shared_ptr<L1GtTriggerMask> pL1GtTriggerMask = boost::shared_ptr<L1GtTriggerMask>(
            new L1GtTriggerMask());

    // l1GtTriggerMaskAlgoTrig: FINOR_ALGO_FK key in GT_PARTITION_FINOR_ALGO

    const std::string gtSchema = "CMS_GT";

    // SQL query:
    // select * from CMS_GT.GT_PARTITION_FINOR_ALGO WHERE GT_PARTITION_FINOR_ALGO.ID = objectKey

    const std::vector<std::string>& columns = m_omdsReader.columnNames(
            gtSchema, "GT_PARTITION_FINOR_ALGO");

    if (edm::isDebugEnabled()) {
        for (std::vector<std::string>::const_iterator iter = columns.begin(); iter != columns.end(); iter++) {
            LogTrace("L1GtTriggerMaskAlgoTrigConfigOnlineProd") << ( *iter ) << std::endl;

        }
    }

    l1t::OMDSReader::QueryResults results = m_omdsReader.basicQuery(
            columns, gtSchema, "GT_PARTITION_FINOR_ALGO", "GT_PARTITION_FINOR_ALGO.ID",
            m_omdsReader.singleAttribute(objectKey));

    // check if query was successful
    if (results.queryFailed()) {
        edm::LogError("L1-O2O") << "Problem with L1GtTriggerMaskAlgoTrigRcd key:" << objectKey;
        return pL1GtTriggerMask;
    }

    // mask for other partitions than m_partitionNumber set to 1 (algorithm masked)
    int maskSize = columns.size() - 1; // table ID is also in columns
    std::vector<bool> trigMaskBool(maskSize, false);
    std::vector<unsigned int> trigMask(maskSize, 0);

    for (int i = 0; i < maskSize; i++) {
        bool tMask = trigMaskBool[i];
        results.fillVariable(columns[i + 1], tMask);
        trigMask[i] = 0xFF & (~( static_cast<unsigned int> (tMask) << m_partitionNumber ));
    }

    // fill the record
    pL1GtTriggerMask->setGtTriggerMask(trigMask);

    if (edm::isDebugEnabled()) {
        std::ostringstream myCoutStream;
        pL1GtTriggerMask->print(myCoutStream);
        LogTrace("L1GtTriggerMaskAlgoTrigConfigOnlineProd")
                << "\nThe following L1GtTriggerMaskAlgoTrigRcd record was read from OMDS: \n"
                << myCoutStream.str() << "\n" << std::endl;
    }

    return pL1GtTriggerMask;
}

Member Data Documentation

partition number

Definition at line 52 of file L1GtTriggerMaskAlgoTrigConfigOnlineProd.h.

Referenced by newObject().