Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009 #include "DataFormats/EcalDetId/interface/EBDetId.h"
00010 #include "DataFormats/EcalDetId/interface/EEDetId.h"
00011 #include "CondTools/Ecal/interface/EcalFloatCondObjectContainerXMLTranslator.h"
00012 #include <boost/python.hpp>
00013 #include <boost/python/suite/indexing/vector_indexing_suite.hpp>
00014
00015 using namespace boost::python;
00016
00017
00018
00019 namespace ecalpyutils{
00020
00021 std::vector<int> hashedIndexToEtaPhi(int hashedindex){
00022 int ieta= EBDetId::unhashIndex(hashedindex).ieta();
00023 int iphi= EBDetId::unhashIndex(hashedindex).iphi();
00024 std::vector<int> ret;
00025 ret.push_back(ieta);
00026 ret.push_back(iphi);
00027 return ret;
00028 }
00029
00030 std::vector<int> hashedIndexToXY(int hashedindex){
00031 int ix= EEDetId::unhashIndex(hashedindex).ix();
00032 int iy= EEDetId::unhashIndex(hashedindex).iy();
00033 int zside = EEDetId::unhashIndex(hashedindex).zside();
00034 std::vector<int> ret;
00035 ret.push_back(ix);
00036 ret.push_back(iy);
00037 ret.push_back(zside);
00038 return ret;
00039 }
00040
00041
00042 int hashedIndex(int ieta, int iphi){
00043 EBDetId d(ieta,iphi);
00044 return d.hashedIndex();
00045 }
00046
00047 int hashedIndexEE(int ix, int iy, int iz){
00048
00049 if (EEDetId::validDetId(ix,iy,iz)) {
00050 EEDetId d(ix,iy,iz);
00051 return d.hashedIndex();
00052 }
00053 return 0;
00054 }
00055
00056 int ism(int ieta, int iphi){
00057 EBDetId d(ieta,iphi);
00058 return d.ism();
00059 }
00060
00061 }
00062
00063 BOOST_PYTHON_MODULE(pluginEcalPyUtils) {
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074
00075
00076 def("hashedIndexToEtaPhi",&ecalpyutils::hashedIndexToEtaPhi);
00077 def("hashedIndexToXY",&ecalpyutils::hashedIndexToXY);
00078 def("hashedIndex",&ecalpyutils::hashedIndex);
00079 def("hashedIndexEE",&ecalpyutils::hashedIndexEE);
00080 def("ism",&ecalpyutils::ism);
00081 def("barrelfromXML",&EcalFloatCondObjectContainerXMLTranslator::barrelfromXML);
00082 def("endcapfromXML",&EcalFloatCondObjectContainerXMLTranslator::endcapfromXML);
00083 }
00084