41 UTIL::LCRelationNavigator* rawTracker_hit_fits_nav;
44 EVENT::LCCollection* raw_svt_hits{
nullptr};
49 catch (EVENT::DataNotAvailableException e)
51 std::cout << e.what() << std::endl;
55 auto evColls =
event->getLCEvent()->getCollectionNames();
56 auto it = std::find (evColls->begin(), evColls->end(),
hitfitCollLcio_.c_str());
58 EVENT::LCCollection* raw_svt_hit_fits;
59 if(it == evColls->end()) hasFits =
false;
64 rawTracker_hit_fits_nav =
new UTIL::LCRelationNavigator(raw_svt_hit_fits);
69 UTIL::BitField64 decoder(
"system:6,barrel:3,layer:4,module:12,sensor:1,side:32:-2,strip:12");
77 for (
int ihit = 0; ihit < raw_svt_hits->getNumberOfElements(); ++ihit) {
80 EVENT::TrackerRawData* rawTracker_hit
81 =
static_cast<EVENT::TrackerRawData*
>(raw_svt_hits->getElementAt(ihit));
83 EVENT::long64 value = EVENT::long64( rawTracker_hit->getCellID0() & 0xffffffff ) |
84 ( EVENT::long64( rawTracker_hit->getCellID1() ) << 32 ) ;
85 decoder.setValue(value);
95 rawHit->
setSide(decoder[
"side"]);
100 (int)rawTracker_hit->getADCValues().at(0),
101 (int)rawTracker_hit->getADCValues().at(1),
102 (int)rawTracker_hit->getADCValues().at(2),
103 (int)rawTracker_hit->getADCValues().at(3),
104 (int)rawTracker_hit->getADCValues().at(4),
105 (int)rawTracker_hit->getADCValues().at(5)
113 EVENT::LCObjectVec rawTracker_hit_fits_list
114 = rawTracker_hit_fits_nav->getRelatedToObjects(rawTracker_hit);
117 IMPL::LCGenericObjectImpl* hit_fit_param
118 =
static_cast<IMPL::LCGenericObjectImpl*
>(rawTracker_hit_fits_list.at(0));
119 double fit_params[5] = {
120 (double)hit_fit_param->getDoubleVal(0),
121 (double)hit_fit_param->getDoubleVal(1),
122 (double)hit_fit_param->getDoubleVal(2),
123 (double)hit_fit_param->getDoubleVal(3),
124 (double)hit_fit_param->getDoubleVal(4)
126 rawHit->
setFit(fit_params, 0);
127 if(rawTracker_hit_fits_list.size()>1)
129 hit_fit_param =
static_cast<IMPL::LCGenericObjectImpl*
>(rawTracker_hit_fits_list.at(1));
130 fit_params[0] = (double)hit_fit_param->getDoubleVal(0);
131 fit_params[1] = (double)hit_fit_param->getDoubleVal(1);
132 fit_params[2] = (double)hit_fit_param->getDoubleVal(2);
133 fit_params[3] = (double)hit_fit_param->getDoubleVal(3);
134 fit_params[4] = (double)hit_fit_param->getDoubleVal(4);
136 rawHit->
setFit(fit_params, 1);
139 rawHit->
setFitN(rawTracker_hit_fits_list.size());
145 if (hasFits)
delete rawTracker_hit_fits_nav;