284 cout <<
"EdbShowAlgClean::SimpleRemoveTrackSegmentsFromShower()" << endl;
285 cout <<
"EdbShowAlgClean::SimpleRemoveTrackSegmentsFromShower() Using source : TObjArray of EdbShowerP..." << endl;
286 cout <<
"EdbShowAlgClean::SimpleRemoveTrackSegmentsFromShower() Using dirt : TObjArray of EdbTrackP..." << endl;
296 Int_t Nsrc=src->GetEntries();
297 Int_t Ndrt=drt->GetEntries();
298 if (
gEDBDEBUGLEVEL>3) cout <<
"EdbShowAlgClean::SimpleRemoveTrackSegmentsFromShower() " << Nsrc << endl;
299 if (
gEDBDEBUGLEVEL>3) cout <<
"EdbShowAlgClean::SimpleRemoveTrackSegmentsFromShower() " << Ndrt << endl;
301 Int_t NshowersChanged=0;
303 Int_t NsrcStep=Nsrc/20;
304 if (NsrcStep<=2) NsrcStep=1;
308 for (
int i=0; i<src->GetEntries(); ++i) {
322 for (
int j=0; j<drt->GetEntries(); ++j) {
324 if (j%5==0) cout <<
"2% more done... j= "<< j << endl;
328 trLastZ=
tr->GetSegment(
tr->N()-1)->
Z();
334 if (
gEDBDEBUGLEVEL>3) cout <<
"XXX:Cut0 sh:(i,Z0,Z1) "<< i <<
" "<< shFirstZ <<
" "<< shLastZ <<
" tr (j,Z0,Z1) " << j <<
" "<< trFirstZ <<
" "<< trLastZ <<
" Cut0." << endl;
339 if (
tr->N()<3)
continue;
342 if (trFirstZ>shLastZ)
continue;
344 if (
gEDBDEBUGLEVEL>3) cout <<
"XXX:XXX:Cut1 sh:(i,Z0,Z1) "<< i <<
" "<< shFirstZ <<
" "<< shLastZ <<
" tr (j,Z0,Z1) " << j <<
" "<< trFirstZ <<
" "<< trLastZ <<
" Cut1." << endl;
349 if (trLastZ<shFirstZ)
continue;
351 if (
gEDBDEBUGLEVEL>3) cout <<
"XXX:XXX:XXX:Cut2 sh:(i,Z0,Z1) "<< i <<
" "<< shFirstZ <<
" "<< shLastZ <<
" tr (j,Z0,Z1) " << j <<
" "<< trFirstZ <<
" "<< trLastZ <<
" Cut2." << endl;
356 if (
gEDBDEBUGLEVEL>3) cout <<
"Is this track within the cone w.r.t. the 1st segment of the shower???" << endl;
357 if (
gEDBDEBUGLEVEL>3) cout <<
"IsInConeTube(EdbSegP* sTest, EdbSegP* sStart, Double_t CylinderRadius, Double_t ConeAngle)"<<endl;
358 Bool_t inConeTube = fEdbShowAlg.
IsInConeTube(
tr->GetSegment(0), showerstart, 1000 , 0.75);
359 if (inConeTube)
continue;
362 if (
gEDBDEBUGLEVEL>3) cout <<
"XXX:XXX:XXX:XXX:Cut3 sh:(i,Z0,Z1) "<< i <<
" "<< shFirstZ <<
" "<< shLastZ <<
" tr (j,Z0,Z1) " << j <<
" "<< trFirstZ <<
" "<< trLastZ <<
" Cut3." << endl;
368 if (sh->
MCEvt()>0 &&
tr->MCEvt()>0 && (sh->
MCEvt()-
tr->MCEvt()!=0))
continue;
373 if (NshowersChanged>0) cout <<
"SimpleRemoveTrackSegmentsFromShower("<<sh->
ID()<<
","<<
tr->ID()<<
") : YES. Removed" << NshowersChanged <<
" segments." << endl;
379 if (Nbefore!=Nafter) {
380 cout <<
"EdbShowAlgClean::SimpleRemoveTrackSegmentsFromShower() Shower has been modified! Show details: " << endl;
381 cout <<
"EdbShowAlgClean::SimpleRemoveTrackSegmentsFromShower() Nbefore: " << Nbefore << endl;
382 cout <<
"EdbShowAlgClean::SimpleRemoveTrackSegmentsFromShower() Nafter: " << Nafter << endl;
383 cout <<
"EdbShowAlgClean::SimpleRemoveTrackSegmentsFromShower() NRemoved: " << Nafter-Nbefore << endl;
387 cout << debug_cnt_0 << endl;
388 cout << debug_cnt_1 << endl;
389 cout << debug_cnt_2 << endl;
390 cout << debug_cnt_3 << endl;
394 cout <<
"RunStatistics: src->GetEntries() : " << src->GetEntries() <<
" src changed: " << NsrcChanged << endl;
TTree * tr
Definition: Shower_E_FromShowerRoot.C:5
Int_t ID() const
Definition: EdbSegP.h:144
void SimpleRemoveTrackSegmentsFromShower()
Definition: EdbShowAlgClean.cxx:282
TObjArray * GetDirt() const
Definition: EdbShowAlgClean.h:69
Definition: EdbShowAlg.h:40
Bool_t IsInConeTube(EdbSegP *sTest, EdbSegP *sStart, Double_t CylinderRadius, Double_t ConeAngle)
Definition: EdbShowAlg.cxx:248
Float_t GetSegmentFirstZ() const
Definition: EdbShowerP.h:439
Float_t GetSegmentLastZ() const
Definition: EdbShowerP.h:442