39 EVENT::LCCollection* lcio_ecalhits{
nullptr};
44 catch (EVENT::DataNotAvailableException e)
46 std::cout << e.what() << std::endl;
51 UTIL::BitField64 decoder(
"system:0:6,layer:6:2,ix:8:-8,iy:16:-6");
58 for (
int ihit = 0; ihit < lcio_ecalhits->getNumberOfElements(); ++ihit) {
61 EVENT::SimCalorimeterHit* lcio_mcEcal_hit
62 =
static_cast<EVENT::SimCalorimeterHit*
>(lcio_ecalhits->getElementAt(ihit));
64 EVENT::long64 value = EVENT::long64( lcio_mcEcal_hit->getCellID0() & 0xffffffff ) |
65 ( EVENT::long64( lcio_mcEcal_hit->getCellID1() ) << 32 ) ;
66 decoder.setValue(value);
72 mc_ecal_hit->
setSystem(decoder[
"system"]);
73 mc_ecal_hit->
setLayer(decoder[
"layer"]);
74 mc_ecal_hit->
setIX(decoder[
"ix"]);
75 mc_ecal_hit->
setIY(decoder[
"iy"]);
78 const float hitPosF[3] = {lcio_mcEcal_hit->getPosition()[0], lcio_mcEcal_hit->getPosition()[1], lcio_mcEcal_hit->getPosition()[2]};
79 double hitPosD[3] = {(double)hitPosF[0], (
double)hitPosF[1], (double)hitPosF[2]};
83 mc_ecal_hit->
setEnergy(lcio_mcEcal_hit->getEnergy());