50 if (
debug_ > 0) std::cout <<
"FinalStateParticleProcessor: Clear output vector" << std::endl;
53 if (
hits_.size() > 0) {
54 for (std::vector<TrackerHit *>::iterator it =
hits_.begin(); it !=
hits_.end(); ++it) {
61 for (std::vector<RawSvtHit *>::iterator it =
rawhits_.begin(); it !=
rawhits_.end(); ++it) {
67 for(
int i = 0; i <
fsps_.size(); i++)
delete fsps_.at(i);
74 if (
debug_ > 0) std::cout <<
"FinalStateParticleProcessor: Get LCIO Collection " <<
fspCollLcio_ << std::endl;
75 EVENT::LCCollection* lc_fsps=
nullptr;
80 catch (EVENT::DataNotAvailableException e)
82 std::cout << e.what() << std::endl;
87 EVENT::LCCollection* gbl_kink_data{
nullptr};
88 EVENT::LCCollection* track_data{
nullptr};
93 gbl_kink_data =
static_cast<EVENT::LCCollection*
>(event->getLCCollection(
kinkRelCollLcio_.c_str()));
95 track_data =
static_cast<EVENT::LCCollection*
>(event->getLCCollection(
trkRelCollLcio_.c_str()));
97 catch (EVENT::DataNotAvailableException e)
99 std::cout << e.what() << std::endl;
108 if (
debug_ > 0) std::cout <<
"FinalStateParticleProcessor: Converting"<< std::endl;
110 bool rotateHits =
true;
112 EVENT::LCCollection* raw_svt_hit_fits =
nullptr;
114 auto evColls =
event->getLCEvent()->getCollectionNames();
115 auto it = std::find (evColls->begin(), evColls->end(),
hitFitsCollLcio_.c_str());
117 if(it == evColls->end()) hasFits =
false;
122 for (
int ifsp = 0 ; ifsp < lc_fsps->getNumberOfElements(); ++ifsp)
124 if (
debug_ > 0) std::cout <<
"FinalStateParticleProcessor: Converting FinalStateParticle " << ifsp << std::endl;
125 EVENT::ReconstructedParticle* lc_fsp{
nullptr};
126 lc_fsp =
static_cast<EVENT::ReconstructedParticle*
>(lc_fsps->getElementAt(ifsp));
127 if (
debug_ > 0) std::cout <<
"FinalStateParticleProcessor: Build Particle" << std::endl;
130 if (lc_fsp->getTracks().size()>0){
131 EVENT::Track* lc_track =
static_cast<EVENT::Track*
>(lc_fsp->getTracks()[0]);
134 if (track->isKalmanTrack()) hitType = 1;
135 EVENT::TrackerHitVec lc_tracker_hits = lc_track->getTrackerHits();
136 for (
auto lc_tracker_hit : lc_tracker_hits) {
138 std::vector<RawSvtHit*> rawSvthitsOn3d;
140 raw_svt_hit_fits,&rawSvthitsOn3d,hitType);
141 for (
auto rhit : rawSvthitsOn3d)
145 track->addHit(tracker_hit);
146 hits_.push_back(tracker_hit);
147 rawSvthitsOn3d.clear();
150 fsp->setTrack(track);
154 if (
debug_ > 0) std::cout <<
"FinalStateParticleProcessor: Add Particle" << std::endl;
155 fsps_.push_back(fsp);
158 if (
debug_ > 0) std::cout <<
"FinalStateParticleProcessor: End process" << std::endl;
Insert description here. more details.
std::string trkRelCollLcio_
description
std::string trkhitCollRoot_
description
virtual void configure(const ParameterSet ¶meters)
Callback for the Processor to configure itself from the given set of parameters.
virtual void finalize()
Callback for the Processor to take any necessary action when the processing of events finishes.
FinalStateParticleProcessor(const std::string &name, Process &process)
Class constructor.
virtual void initialize(TTree *tree)
Callback for the Processor to take any necessary action when the processing of events starts.
std::string hitFitsCollLcio_
~FinalStateParticleProcessor()
std::vector< RawSvtHit * > rawhits_
std::vector< TrackerHit * > hits_
std::vector< Particle * > fsps_
std::string kinkRelCollLcio_
description
std::string rawhitCollRoot_
bool addRawInfoTo3dHit(TrackerHit *tracker_hit, IMPL::TrackerHitImpl *lc_tracker_hit, EVENT::LCCollection *raw_svt_fits, std::vector< RawSvtHit * > *rawHits=nullptr, int type=0, bool storeRawHit=true)
description