00001 #ifndef HcalCovarianceMatrices_h 00002 #define HcalCovarianceMatrices_h 00003 00004 #include "CondFormats/HcalObjects/interface/HcalCondObjectContainer.h" 00005 #include <iostream> 00006 #include <vector> 00007 #include <string> 00008 #include "DataFormats/DetId/interface/DetId.h" 00009 #include "DataFormats/HcalDetId/interface/HcalGenericDetId.h" 00010 #include "FWCore/Utilities/interface/Exception.h" 00011 #include "CondFormats/HcalObjects/interface/HcalCovarianceMatrix.h" 00012 00013 class HcalTopology; 00014 00015 class HcalCovarianceMatrices: public HcalCondObjectContainerBase 00016 { 00017 public: 00018 #ifndef HCAL_COND_SUPPRESS_DEFAULT 00019 HcalCovarianceMatrices() : HcalCondObjectContainerBase(0) { } 00020 #endif 00021 HcalCovarianceMatrices(const HcalTopology* topo); 00022 ~HcalCovarianceMatrices(); 00023 std::string myname() const {return (std::string)"HcalCovarianceMatrices";} 00024 const HcalCovarianceMatrix* getValues(DetId fId, bool throwOnFail=true) const; 00025 const bool exists(DetId fId) const; 00026 bool addValues(const HcalCovarianceMatrix& myHcalCovarianceMatrix); 00027 std::vector<DetId> getAllChannels() const; 00028 00029 private: 00030 void initContainer(DetId container); 00031 std::vector<HcalCovarianceMatrix> HBcontainer; 00032 std::vector<HcalCovarianceMatrix> HEcontainer; 00033 std::vector<HcalCovarianceMatrix> HOcontainer; 00034 std::vector<HcalCovarianceMatrix> HFcontainer; 00035 }; 00036 00037 #endif 00038