36 const unsigned hashMax=
m_onlineID->channelHashMax();
42 coral::AttributeListSpecification* spec =
new coral::AttributeListSpecification();
44 spec->extend(
"costheta",
"blob");
45 spec->extend(
"sinthetacosphi",
"blob");
46 spec->extend(
"sinthetasinphi",
"blob");
47 spec->extend(
"offlineTTid",
"blob");
50 coral::Blob& costhetaBlob = (*attr)[
"costheta"].data<coral::Blob>();
51 coral::Blob& sinthetacosphiBlob = (*attr)[
"sinthetacosphi"].data<coral::Blob>();
52 coral::Blob& sinthetasinphiBlob = (*attr)[
"sinthetasinphi"].data<coral::Blob>();
53 coral::Blob& offlineTTidBlob = (*attr)[
"offlineTTid"].data<coral::Blob>();
56 costhetaBlob.resize(hashMax*
sizeof(
float));
57 sinthetacosphiBlob.resize(hashMax*
sizeof(
float));
58 sinthetasinphiBlob.resize(hashMax*
sizeof(
float));
59 offlineTTidBlob.resize(hashMax*
sizeof(uint32_t));
61 float* pcostheta=
static_cast<float*
>(costhetaBlob.startingAddress());
62 float* psinthetacosphi=
static_cast<float*
>(sinthetacosphiBlob.startingAddress());
63 float* psinthetasinphi=
static_cast<float*
>(sinthetasinphiBlob.startingAddress());
64 uint32_t* pofflineTTid=
static_cast<uint32_t*
>(offlineTTidBlob.startingAddress());
76 return StatusCode::FAILURE;
79 for (
unsigned hs=0;hs<hashMax;++hs) {
82 if(!cabling->isOnlineConnected(chid)){
86 psinthetacosphi[hs]=0.0;
87 psinthetasinphi[hs]=0.0;
91 const Identifier id=cabling->cnvToIdentifier(chid);
95 return StatusCode::FAILURE;
99 const float eta = caloDDE->
eta();
100 const float phi = caloDDE->
phi();
101 const float v = 1./cosh(
eta);
102 const float costheta=tanh(
eta);
103 const float sinthetacosphi=v*cos(
phi);
104 const float sinthetasinphi=v*sin(
phi);
106 pcostheta[hs]=costheta;
107 psinthetacosphi[hs]=sinthetacosphi;
108 psinthetasinphi[hs]=sinthetasinphi;
109 pofflineTTid[hs]=
m_ttService->whichTTID(
id).get_identifier32().get_compact();
120 const coral::Blob& costhetaBlob = (*attr)[
"costheta"].data<coral::Blob>();
121 const coral::Blob& sinthetacosphiBlob = (*attr)[
"sinthetacosphi"].data<coral::Blob>();
122 const coral::Blob& sinthetasinphiBlob = (*attr)[
"sinthetasinphi"].data<coral::Blob>();
123 const coral::Blob& offlineTTidBlob = (*attr)[
"offlineTTid"].data<coral::Blob>();
125 const float* pcostheta=
static_cast<const float*
>(costhetaBlob.startingAddress());
126 const float* psinthetacosphi=
static_cast<const float*
>(sinthetacosphiBlob.startingAddress());
127 const float* psinthetasinphi=
static_cast<const float*
>(sinthetasinphiBlob.startingAddress());
128 const uint32_t* pofflineTTid=
static_cast<const uint32_t*
>(offlineTTidBlob.startingAddress());
131 std::ostream *out = &(std::cout);
132 std::ofstream outfile;
135 if (outfile.is_open()) {
143 for (
unsigned hs=0;hs<hashMax;++hs) {
146 << pcostheta[hs] <<
" " << psinthetacosphi[hs] <<
" " << psinthetasinphi[hs]
147 <<
" 0x"<< std::hex << pofflineTTid[hs] << std::dec << std::endl;
151 if (outfile.is_open())
155 return StatusCode::SUCCESS;