23 gPARMS->SetDefaultParameter(
"TRKFIND:DEBUG_LEVEL", DEBUG_LEVEL);
47 vector<const DTrackCandidate*> cdc;
48 vector<const DTrackCandidate*> fdc;
50 loop->Get(cdc,
"CDC");
51 loop->Get(fdc,
"FDCpseudo");
54 if(DEBUG_LEVEL>2)
_DBG_<<
"Copying "<<fdc.size()<<
" FDC generated candidates to final list"<<endl;
55 for(
unsigned int i=0; i<fdc.size(); i++)_data.push_back((
DTrackCandidate*)fdc[i]);
58 if(DEBUG_LEVEL>2)
_DBG_<<
"Checking "<<cdc.size()<<
" CDC generated candidates for inclusion in final list ..."<<endl;
59 for(
unsigned int i=0; i<cdc.size(); i++){
63 double q1 = cdc[i]->charge();
64 bool is_clone =
false;
65 for(
unsigned int j=0; j<_data.size(); j++){
66 DVector3 mom2 = _data[j]->momentum();
67 DVector3 pos2 = _data[j]->position();
68 double q2 = _data[j]->charge();
69 double curvature_diff = fabs(1.0/mom1.Mag() - 1.0/mom2.Mag())/((1.0/mom1.Mag() + 1.0/mom2.Mag())/2.0);
70 double relative_mom_diff = fabs(mom1.Mag()-mom2.Mag())/((mom1.Mag()+mom2.Mag())/2.0);
71 if(DEBUG_LEVEL>4)
_DBG_<<
"q1="<<q1<<
" q2="<<q2<<
" mom1,mom2 angle:"<<mom1.Angle(mom2)*57.3<<
" curvature diff:"<<curvature_diff<<
" relative_mom_diff:"<<relative_mom_diff<<
" pos diff:"<<(pos1-pos2).Mag()<<endl;
73 if(mom1.Angle(mom2)*57.3<5.0){
74 if(curvature_diff<0.15 || relative_mom_diff<0.15){
75 if((pos1-pos2).Mag()<30.0){
77 if(DEBUG_LEVEL>1)
_DBG_<<
" CDC candidate "<<i<<
" is a clone of candidate "<<j<<
" dropping."<<endl;
88 SetFactoryFlag(NOT_OBJECT_OWNER);
jerror_t init(void)
Called once at program start.
jerror_t evnt(jana::JEventLoop *eventLoop, uint64_t eventnumber)
Called every event.
jerror_t erun(void)
Called everytime run number changes, provided brun has been called.
jerror_t brun(jana::JEventLoop *eventLoop, int32_t runnumber)
Called everytime a new run number is detected.
<A href="index.html#legend"> <IMG src="CORE.png" width="100"> </A>
jerror_t fini(void)
Called after last event of last event source has been processed.