CMS 3D CMS Logo

Public Member Functions | Private Member Functions | Private Attributes

HcalCovarianceMatrices Class Reference

#include <HcalCovarianceMatrices.h>

Inheritance diagram for HcalCovarianceMatrices:
HcalCondObjectContainerBase

List of all members.

Public Member Functions

bool addValues (const HcalCovarianceMatrix &myHcalCovarianceMatrix)
const bool exists (DetId fId) const
std::vector< DetIdgetAllChannels () const
const HcalCovarianceMatrixgetValues (DetId fId, bool throwOnFail=true) const
 HcalCovarianceMatrices (const HcalTopology *topo)
 HcalCovarianceMatrices ()
std::string myname () const
 ~HcalCovarianceMatrices ()

Private Member Functions

void initContainer (DetId container)

Private Attributes

std::vector< HcalCovarianceMatrixHBcontainer
std::vector< HcalCovarianceMatrixHEcontainer
std::vector< HcalCovarianceMatrixHFcontainer
std::vector< HcalCovarianceMatrixHOcontainer

Detailed Description

Definition at line 15 of file HcalCovarianceMatrices.h.


Constructor & Destructor Documentation

HcalCovarianceMatrices::HcalCovarianceMatrices ( ) [inline]

Definition at line 19 of file HcalCovarianceMatrices.h.

HcalCovarianceMatrices::HcalCovarianceMatrices ( const HcalTopology topo)

Definition at line 5 of file HcalCovarianceMatrices.cc.

HcalCovarianceMatrices::~HcalCovarianceMatrices ( )

Definition at line 9 of file HcalCovarianceMatrices.cc.

{
}

Member Function Documentation

bool HcalCovarianceMatrices::addValues ( const HcalCovarianceMatrix myHcalCovarianceMatrix)

Definition at line 79 of file HcalCovarianceMatrices.cc.

References Exception, HBcontainer, DetId::Hcal, HcalBarrel, HcalEndcap, HcalForward, HcalOuter, HEcontainer, HFcontainer, HOcontainer, getHLTprescales::index, initContainer(), myname(), HcalCovarianceMatrix::rawId(), and summarizeEdmComparisonLogfiles::success.

Referenced by HcalPedestalMCWidths::~HcalPedestalMCWidths().

{
  unsigned int index=0;
  bool success = false;
  HcalCovarianceMatrix* cell=0;
  DetId fId(myHcalCovarianceMatrix.rawId());

  if (index<0xFFFFFFFu) {
    if (fId.det()==DetId::Hcal) {
      switch (HcalSubdetector(fId.subdetId())) {
      case(HcalBarrel) : if (!HBcontainer.size() ) initContainer(fId); 
        if (index < HBcontainer.size()) cell = &(HBcontainer.at(index) );  break;
      case(HcalEndcap) : if (!HEcontainer.size() ) initContainer(fId); 
        if (index < HEcontainer.size()) cell = &(HEcontainer.at(index) );  break;
      case(HcalForward) : if (!HFcontainer.size() ) initContainer(fId); 
        if (index < HFcontainer.size()) cell = &(HFcontainer.at(index) );  break; 
      case(HcalOuter) : if (!HOcontainer.size() ) initContainer(fId); 
        if (index < HOcontainer.size()) cell = &(HOcontainer.at(index) );  break;  
      default: break;
      }
      }
      }
  if (cell) {
    *cell=myHcalCovarianceMatrix;
        success = true;
      }


  if (!success) 
    throw cms::Exception ("Filling of conditions failed") 
      << " no valid filling possible for Conditions of type " << myname() << " for DetId " << fId.rawId();
  return success;
}
const bool HcalCovarianceMatrices::exists ( DetId  fId) const

Definition at line 65 of file HcalCovarianceMatrices.cc.

References getValues(), and HcalCovarianceMatrix::rawId().

{
  const HcalCovarianceMatrix* cell = getValues(fId,false);
  
  //  HcalCovarianceMatrix emptyHcalCovarianceMatrix;
  if (cell)
    //    if (cell->rawId() != emptyHcalCovarianceMatrix.rawId() ) 
    if (cell->rawId() == fId ) 
      return true;

  return false;
}
std::vector< DetId > HcalCovarianceMatrices::getAllChannels ( ) const

Definition at line 114 of file HcalCovarianceMatrices.cc.

References HBcontainer, HEcontainer, HFcontainer, HOcontainer, i, and HcalCovarianceMatrix::rawId().

{
  std::vector<DetId> channels;
  HcalCovarianceMatrix emptyHcalCovarianceMatrix;
  for (unsigned int i=0; i<HBcontainer.size(); i++)
    {
      if (emptyHcalCovarianceMatrix.rawId() != HBcontainer.at(i).rawId() )
        channels.push_back( DetId(HBcontainer.at(i).rawId()) );
    }
  for (unsigned int i=0; i<HEcontainer.size(); i++)
    {
      if (emptyHcalCovarianceMatrix.rawId() != HEcontainer.at(i).rawId() )
        channels.push_back( DetId(HEcontainer.at(i).rawId()) );
    }
  for (unsigned int i=0; i<HOcontainer.size(); i++)
    {
      if (emptyHcalCovarianceMatrix.rawId() != HOcontainer.at(i).rawId() )
        channels.push_back( DetId(HOcontainer.at(i).rawId()) );
    }
  for (unsigned int i=0; i<HFcontainer.size(); i++)
    {
      if (emptyHcalCovarianceMatrix.rawId() != HFcontainer.at(i).rawId() )
        channels.push_back( DetId(HFcontainer.at(i).rawId()) );
    }
  return channels;
}
const HcalCovarianceMatrix * HcalCovarianceMatrices::getValues ( DetId  fId,
bool  throwOnFail = true 
) const

Definition at line 33 of file HcalCovarianceMatrices.cc.

References DetId::det(), Exception, HBcontainer, DetId::Hcal, HcalBarrel, HcalEndcap, HcalForward, HcalOuter, HEcontainer, HFcontainer, HOcontainer, getHLTprescales::index, HcalCondObjectContainerBase::indexFor(), myname(), NULL, HcalCovarianceMatrix::rawId(), DetId::rawId(), and DetId::subdetId().

Referenced by exists().

{
  unsigned int index=indexFor(fId);

  const HcalCovarianceMatrix* cell = NULL;

  if (index<0xFFFFFFFFu) {
    if (fId.det()==DetId::Hcal) {
      switch (HcalSubdetector(fId.subdetId())) {
      case(HcalBarrel) : if (index < HBcontainer.size()) cell = &(HBcontainer.at(index) );  
      case(HcalEndcap) : if (index < HEcontainer.size()) cell = &(HEcontainer.at(index) );  
      case(HcalForward) : if (index < HFcontainer.size()) cell = &(HFcontainer.at(index) );  
      case(HcalOuter) : if (index < HOcontainer.size()) cell = &(HOcontainer.at(index) );  
    default: break;
    }
    }
  }
  
  //  HcalCovarianceMatrix emptyHcalCovarianceMatrix;
  //  if (cell->rawId() == emptyHcalCovarianceMatrix.rawId() ) 
  if ((!cell) || (cell->rawId() != fId ) ) {
    if (throwOnFail) {
    throw cms::Exception ("Conditions not found") 
        << "Unavailable Conditions of type " << myname() << " for cell " << fId.rawId();
    } else {
      cell=0;
    }
  }
  return cell;
}
void HcalCovarianceMatrices::initContainer ( DetId  container) [private]

Definition at line 14 of file HcalCovarianceMatrices.cc.

References DetId::det(), HBcontainer, DetId::Hcal, HcalBarrel, HcalEndcap, HcalForward, HcalOuter, HEcontainer, HFcontainer, HOcontainer, i, HcalCondObjectContainerBase::sizeFor(), and DetId::subdetId().

Referenced by addValues().

{
  HcalCovarianceMatrix emptyItem;


  if (fId.det()==DetId::Hcal) {
    switch (HcalSubdetector(fId.subdetId())) {
    case(HcalBarrel) : for (unsigned int i=0; i<sizeFor(fId); i++) HBcontainer.push_back(emptyItem); break;
    case(HcalEndcap) : for (unsigned int i=0; i<sizeFor(fId); i++) HEcontainer.push_back(emptyItem); break;
    case(HcalOuter) : for (unsigned int i=0; i<sizeFor(fId); i++) HOcontainer.push_back(emptyItem); break;
    case(HcalForward) : for (unsigned int i=0; i<sizeFor(fId); i++) HFcontainer.push_back(emptyItem); break;
    default: break;
    }
}

}
std::string HcalCovarianceMatrices::myname ( ) const [inline]

Definition at line 23 of file HcalCovarianceMatrices.h.

References AlCaHLTBitMon_QueryRunRegistry::string.

Referenced by addValues(), and getValues().

{return (std::string)"HcalCovarianceMatrices";}

Member Data Documentation

Definition at line 31 of file HcalCovarianceMatrices.h.

Referenced by addValues(), getAllChannels(), getValues(), and initContainer().

Definition at line 32 of file HcalCovarianceMatrices.h.

Referenced by addValues(), getAllChannels(), getValues(), and initContainer().

Definition at line 34 of file HcalCovarianceMatrices.h.

Referenced by addValues(), getAllChannels(), getValues(), and initContainer().

Definition at line 33 of file HcalCovarianceMatrices.h.

Referenced by addValues(), getAllChannels(), getValues(), and initContainer().