MdcMergeDups Class Reference

#include <MdcMergeDups.h>

List of all members.

Public Member Functions

 MdcMergeDups (const std::string &name, ISvcLocator *pSvcLocator)
virtual ~MdcMergeDups ()
StatusCode initialize ()
StatusCode execute ()
StatusCode finalize ()
StatusCode beginRun ()
int mergeDups (void)
int mergeCurl (void)
int testByOverlapHit (RecMdcTrack *refTk, RecMdcTrack *testTk)
int testByParam (RecMdcTrack *refTk, RecMdcTrack *testTk)
int doMergeLong (std::vector< RecMdcTrack * > mergeTkList)
int doMergeCurl (std::vector< RecMdcTrack * > mergeTkList)
void store (TrkRecoTrk *aTrack)
bool eraseTdsTrack (RecMdcTrackCol::iterator tk)
void dumpRecMdcTrack ()

Private Attributes

const MdcDetectorm_gm
BFieldm_bfield
int m_debug
double m_maxDd0InMerge
double m_maxDphi0InMerge
double m_maxPdradInMerge
double m_maxRcsInMerge
double m_mergePt
double m_mergeLoadAx
double m_mergeLoadSt
double m_mergeOverlapRatio
double m_bunchT0


Detailed Description

Definition at line 46 of file MdcMergeDups.h.


Constructor & Destructor Documentation

MdcMergeDups::MdcMergeDups ( const std::string name,
ISvcLocator *  pSvcLocator 
)

Definition at line 59 of file MdcMergeDups.cxx.

References m_debug, m_maxDd0InMerge, m_maxDphi0InMerge, m_maxPdradInMerge, m_maxRcsInMerge, m_mergeLoadAx, m_mergeLoadSt, m_mergeOverlapRatio, and m_mergePt.

00059                                                                           :
00060   Algorithm(name, pSvcLocator)
00061 {
00062   declareProperty("debug",              m_debug = 0);
00063   //cuts for mergeDups()
00064   declareProperty("maxDd0InMerge",      m_maxDd0InMerge = 2.7);
00065   declareProperty("maxDphi0InMerge",    m_maxDphi0InMerge = 0.15);
00066   declareProperty("maxDPdradInMerge",   m_maxPdradInMerge= 0.22);
00067   declareProperty("maxRcsInMerge",      m_maxRcsInMerge = 18.);
00068   //cuts for mergeCurl()
00069   declareProperty("mergePt",            m_mergePt = 0.13);
00070   declareProperty("mergeLoadAx",        m_mergeLoadAx = 3.);
00071   declareProperty("mergeLoadSt",        m_mergeLoadSt = 4.);
00072   declareProperty("mergeOverlapRatio",  m_mergeOverlapRatio = 0.7);
00073 }

MdcMergeDups::~MdcMergeDups (  )  [virtual]

Definition at line 78 of file MdcMergeDups.cxx.

References m_bfield.

00078                             {
00079   delete m_bfield;
00080 }


Member Function Documentation

StatusCode MdcMergeDups::beginRun (  ) 

Definition at line 82 of file MdcMergeDups.cxx.

References MdcDetector::instance(), and m_gm.

00082                                  {  
00083   //Detector geometry 
00084   m_gm = MdcDetector::instance();
00085   if(NULL == m_gm) return StatusCode::FAILURE;
00086   return StatusCode::SUCCESS;
00087 }

int MdcMergeDups::doMergeCurl ( std::vector< RecMdcTrack * >  mergeTkList  ) 

Definition at line 407 of file MdcMergeDups.cxx.

References DstMdcTrack::helix(), MdcID::layer(), m_debug, and DstMdcTrack::setStat().

Referenced by mergeCurl().

00407                                                                 {
00408   //-------------------------------------------------------------------
00409   int innerMostTkId = 999;
00410   RecMdcTrack* innerMostTk = NULL;
00411   unsigned innerMostLayerOfTk = 999;
00412   std::vector<RecMdcTrack*>::iterator itTk = mergeTkList.begin();
00413   for (int iTk=0; itTk != mergeTkList.end(); itTk++,iTk++){
00414     RecMdcTrack* tk = (*itTk);
00415     unsigned innerMostLayer = 999;
00416     for (unsigned iHit = 0; iHit < tk->getVecHits().size(); iHit++) {
00417       unsigned layer = MdcID::layer(tk->getVecHits()[iHit]->getMdcId());
00418       if (layer < innerMostLayer) innerMostLayer=layer; 
00419     }
00420 
00421     if(m_debug>0)std::cout<<__FILE__<<" to be merged track id="<<tk->trackId()<<  std::endl;
00422     // test inner most layer id; if same, test dz
00423     if(innerMostLayer < innerMostLayerOfTk){
00424       innerMostTkId = iTk;
00425       innerMostTk = tk;
00426     }else if (innerMostLayer == innerMostLayerOfTk) {
00427       // test by dz
00428       if (tk->helix(3) < innerMostTk->helix(3)){
00429         innerMostTkId = iTk;
00430         innerMostTk = tk;
00431       }
00432     }
00433   }//end of for mergeTkList
00434   innerMostTk->setStat(-1);
00435 
00436   return innerMostTkId;
00437 }

int MdcMergeDups::doMergeLong ( std::vector< RecMdcTrack * >  mergeTkList  ) 

Definition at line 270 of file MdcMergeDups.cxx.

References m_maxRcsInMerge, and DstMdcTrack::setStat().

Referenced by mergeCurl().

00270                                                                 {
00271   //-------------------------------------------------------------------
00272   //merge hitlist
00273   double minRcs=999.;
00274   int bestTkId=999;
00275   RecMdcTrack* bestTk=NULL;
00276   std::vector<RecMdcTrack*>::iterator itTk = mergeTkList.begin();
00277   for (int iTk=0; itTk != mergeTkList.end(); itTk++,iTk++){
00278     RecMdcTrack* tk = (*itTk);
00279     double chi2 = tk->chi2();
00280     double ndf  = tk->ndof();
00281     if(chi2/ndf < minRcs) {
00282       bestTkId = tk->trackId(); 
00283       bestTk = tk;
00284     }
00285   }
00286   if (minRcs < m_maxRcsInMerge) return bestTkId;
00287   bestTk->setStat(-1);
00288 
00289   return 999;
00290   //FIXME
00291   /*
00292   //fit with track parameter respectively
00293   MdcxFittedHel fit1(dcxhlist, *iptr);
00294   MdcxFittedHel fit2(dcxhlist, *trkl[j]); 
00295   int uf = 0; 
00296   //get a best fit 
00297   if ( !fit1.Fail() && (fit1.Rcs()<m_maxRcsInMerge) ) uf = 1; 
00298   if ( !fit2.Fail() && (fit2.Rcs()<fit1.Rcs()) ) uf = 2;
00299 
00300   if (uf) {//two fit all ok
00301   //delete bad track
00302   MdcxHel fitme = (uf == 1) ? fit1 : fit2;
00303   }
00304   */
00305 }

void MdcMergeDups::dumpRecMdcTrack (  ) 

Definition at line 470 of file MdcMergeDups.cxx.

References MdcID::layer(), m_debug, EventModel::Recon::RecMdcTrackCol, and MdcID::wire().

Referenced by execute().

00470                                   {
00471   SmartDataPtr<RecMdcTrackCol> trackList(eventSvc(),EventModel::Recon::RecMdcTrackCol);
00472   if (!trackList) return;
00473   if (trackList->size() != 4 ) setFilterPassed(true);
00474   std::cout<<"N track after Merged = "<<trackList->size() << std::endl;
00475   if (m_debug <=1) return;
00476   RecMdcTrackCol::iterator it = trackList->begin();
00477   for (;it!= trackList->end();it++){
00478     RecMdcTrack *tk = *it;
00479     std::cout<< "//====RecMdcTrack "<<tk->trackId()<<"====:" << std::endl;
00480     cout <<" d0 "<<tk->helix(0)
00481       <<" phi0 "<<tk->helix(1)
00482       <<" cpa "<<tk->helix(2)
00483       <<" z0 "<<tk->helix(3)
00484       <<" tanl "<<tk->helix(4)
00485       <<endl;
00486     std::cout<<" q "<<tk->charge() 
00487       <<" theta "<<tk->theta()
00488       <<" phi "<<tk->phi()
00489       <<" x0 "<<tk->x()
00490       <<" y0 "<<tk->y()
00491       <<" z0 "<<tk->z()
00492       <<" r0 "<<tk->r()
00493       <<endl;
00494     std::cout <<" p "<<tk->p()
00495       <<" pt "<<tk->pxy()
00496       <<" px "<<tk->px()
00497       <<" py "<<tk->py()
00498       <<" pz "<<tk->pz()
00499       <<endl;
00500     std::cout<<" tkStat "<<tk->stat()
00501       <<" chi2 "<<tk->chi2()
00502       <<" ndof "<<tk->ndof()
00503       <<" nhit "<<tk->getNhits()
00504       <<" nst "<<tk->nster()
00505       <<endl;
00506     //std::cout<< "errmat   " << std::endl;
00507     //for (int i=0; i<15; i++){ std::cout<< " "<<tk->err(i); }
00508     //std::cout<< "   " << std::endl;
00509 
00510     int nhits = tk->getVecHits().size();
00511     std::cout<<nhits <<" Hits: " << std::endl;
00512     for(int ii=0; ii <nhits ; ii++){
00513       Identifier id(tk->getVecHits()[ii]->getMdcId());
00514       int layer = MdcID::layer(id);
00515       int wire = MdcID::wire(id);
00516       cout<<"("<< layer <<","<<wire<<","<<tk->getVecHits()[ii]->getStat()
00517         <<",lr:"<<tk->getVecHits()[ii]->getFlagLR()<<") ";
00518     }//end of hit list
00519     std::cout << "  "<< std::endl;
00520   }//end of tk list
00521   std::cout << "  "<< std::endl;
00522 }

bool MdcMergeDups::eraseTdsTrack ( RecMdcTrackCol::iterator  tk  ) 

Definition at line 455 of file MdcMergeDups.cxx.

References EventModel::Recon::RecMdcHitCol, and EventModel::Recon::RecMdcTrackCol.

Referenced by mergeCurl().

00455                                                          {
00456   SmartDataPtr<RecMdcTrackCol> trackList(eventSvc(),EventModel::Recon::RecMdcTrackCol);
00457   if (!trackList) return false;
00458   SmartDataPtr<RecMdcHitCol> hitList(eventSvc(),EventModel::Recon::RecMdcHitCol);
00459   if (!hitList) return false;
00460   HitRefVec hits = (*tk)->getVecHits();
00461   HitRefVec::iterator iterHit = hits.begin();
00462   for (; iterHit != hits.end(); iterHit++) {
00463     //hitList->erase(iterHit);
00464   }
00465   trackList->erase(tk);
00466   return true;
00467 }

StatusCode MdcMergeDups::execute (  ) 

Definition at line 111 of file MdcMergeDups.cxx.

References dumpRecMdcTrack(), Bes_Common::INFO, m_bunchT0, m_debug, mergeCurl(), msgSvc(), and Bes_Common::WARNING.

00111                                  {
00112   MsgStream log(msgSvc(), name());
00113   log << MSG::INFO << "in execute()" << endreq;
00114   setFilterPassed(false); 
00115 
00116   m_bunchT0 = -999.;
00117   SmartDataPtr<RecEsTimeCol> aevtimeCol(eventSvc(),"/Event/Recon/RecEsTimeCol");
00118   if (!aevtimeCol || aevtimeCol->size()==0) {
00119     log << MSG::WARNING<< " Could not find RecEsTimeCol"<< endreq;
00120     return StatusCode::SUCCESS;
00121   }
00122 
00123   RecEsTimeCol::iterator iter_evt = aevtimeCol->begin();
00124   for(; iter_evt!=aevtimeCol->end(); iter_evt++){
00125     m_bunchT0 =  (*iter_evt)->getTest();
00126   }
00127 
00128 
00129   int nMerged = mergeCurl();
00130 
00131   if(m_debug>0) {
00132     std::cout<<name()<<": Merged "<<nMerged << " track "<<  std::endl;
00133     dumpRecMdcTrack();
00134   }
00135 
00136   return StatusCode::SUCCESS;   
00137 }

StatusCode MdcMergeDups::finalize (  ) 

Definition at line 140 of file MdcMergeDups.cxx.

References Bes_Common::INFO, and msgSvc().

00140                                  {  
00141   MsgStream log(msgSvc(), name());
00142   log << MSG::INFO << "in finalize()" << endreq;        
00143 
00144   return StatusCode::SUCCESS;   
00145 }

StatusCode MdcMergeDups::initialize (  ) 

Definition at line 92 of file MdcMergeDups.cxx.

References calibUtil::ERROR, Bes_Common::INFO, m_bfield, and msgSvc().

00092                                    {  
00093   MsgStream log(msgSvc(), name());
00094   log << MSG::INFO << "in initialize()" << endreq;      
00095   StatusCode sc;
00096 
00097 
00098   //Initailize magnetic filed 
00099   IMagneticFieldSvc* m_pIMF;
00100   sc = service ("MagneticFieldSvc",m_pIMF);
00101   if(sc != StatusCode::SUCCESS) {
00102     log << MSG::ERROR << "Unable to open Magnetic field service"<<endreq;
00103     return StatusCode::FAILURE;
00104   }
00105   m_bfield = new BField(m_pIMF);
00106 
00107   return StatusCode::SUCCESS;   
00108 }

int MdcMergeDups::mergeCurl ( void   ) 

Definition at line 149 of file MdcMergeDups.cxx.

References doMergeCurl(), doMergeLong(), eraseTdsTrack(), m_debug, EventModel::Recon::RecMdcTrackCol, testByOverlapHit(), and testByParam().

Referenced by execute().

00149                            {
00150   //-------------------------------------------------------------------
00151 
00152   SmartDataPtr<RecMdcTrackCol> trackList(eventSvc(),EventModel::Recon::RecMdcTrackCol);
00153   if (!trackList) return -1;
00154 
00155   int needMerge = 0;
00156 
00157   //...Merging. Search a track to be merged...
00158   RecMdcTrackCol::iterator iterRefTk = trackList->begin();
00159   for (; iterRefTk != trackList->end(); iterRefTk++) {
00160     RecMdcTrack* refTk = *iterRefTk;
00161     if (refTk->stat()<0) continue;
00162     std::vector<RecMdcTrack*> mergeTkList;
00163     mergeTkList.push_back(refTk);
00164 
00165 
00166     bool curl = false;
00167     int sameParm = 0;
00168     RecMdcTrackCol::iterator iterTestTk = trackList->begin();
00169     for (; iterTestTk != trackList->end(); iterTestTk++) {
00170       RecMdcTrack* testTk = *iterTestTk;
00171       if (iterRefTk == iterTestTk || (testTk->stat()<0)) continue;
00172 
00173       //-- overlapRatio cut 0.7 by jialk, original is 0.8
00174       if (testByOverlapHit(refTk,testTk)){
00175         if(m_debug>0)std::cout<<__FILE__<<" overlape tk:" <<refTk->trackId()<<" with "<<testTk->trackId()<<  std::endl;
00176         mergeTkList.push_back(testTk);
00177         curl = true;
00178       }
00179       sameParm = testByParam(refTk,testTk);
00180       if(sameParm >0) {
00181         if(m_debug>0) std::cout<<__FILE__<<" same param tk:" <<refTk->trackId()<<" with "<<testTk->trackId()<<  std::endl;
00182         mergeTkList.push_back(testTk);
00183       }
00184     } 
00185     if (mergeTkList.size()>1 && curl) needMerge = doMergeCurl(mergeTkList); 
00186     if ((needMerge < 999) && mergeTkList.size()>1 ) needMerge = doMergeLong(mergeTkList); 
00187     //if ((needMerge <999) && mergeTkList.size()==2 && (sameParm==2) ) needMerge = doMergeOdd(mergeTkList); //FIXME
00188   }
00189 
00190   //return 0 if No track need merged
00191   if( needMerge <=0 ) return 0;
00192 
00193   // reset track Id
00194   iterRefTk = trackList->begin();
00195   int iTk=0;
00196   int nDeleted = 0;
00197   for (; iterRefTk != trackList->end(); ) {
00198     if ( (*iterRefTk)->stat() >= 0 ){
00199       (*iterRefTk)->setTrackId(iTk);
00200       iterRefTk++;
00201       iTk++;
00202     }else {
00203       int id = (*iterRefTk)->trackId();
00204       bool erased = eraseTdsTrack(iterRefTk);
00205       if ( erased ){ 
00206         nDeleted++;
00207         if(m_debug>0)std::cout<<__FILE__<<" erase track No."<<id<<  std::endl;
00208       }else {
00209         if(m_debug>0)std::cout<<__FILE__<<" erase failed !"<<  std::endl;
00210       }
00211     }
00212 
00213   }
00214   if(m_debug>0) std::cout<<__FILE__<<" After merge save "<<iTk<<" tracks"<<  std::endl;
00215 
00216   return nDeleted;
00217 }

int MdcMergeDups::mergeDups ( void   ) 

void MdcMergeDups::store ( TrkRecoTrk aTrack  ) 

Definition at line 439 of file MdcMergeDups.cxx.

References TrkRecoTrk::fitResult(), TrkFit::helix(), m_debug, EventModel::Recon::RecMdcHitCol, EventModel::Recon::RecMdcTrackCol, and MdcTrack::storeTrack().

00439                                           {
00440   SmartDataPtr<RecMdcTrackCol> trackList(eventSvc(),EventModel::Recon::RecMdcTrackCol);
00441   if (!trackList) return;
00442   SmartDataPtr<RecMdcHitCol> hitList(eventSvc(),EventModel::Recon::RecMdcHitCol);
00443   if (!hitList) return;
00444 
00445   assert (aTrack != NULL);
00446   TrkExchangePar helix = aTrack->fitResult()->helix(0.);
00447 
00448   if(m_debug>1)std::cout<<__FILE__<<" STORED"<<  std::endl;
00449   MdcTrack mdcTrack(aTrack);//aTrack have been deleted in ~MdcTrack() 
00450   //tkStat: 0,Tsf 1,CurlFinder 2,PatRec 3,MdcxReco 4,MergeCurl
00451   int tkStat = 4;
00452   mdcTrack.storeTrack(-1, trackList, hitList, tkStat);
00453 } 

int MdcMergeDups::testByOverlapHit ( RecMdcTrack refTk,
RecMdcTrack testTk 
)

Definition at line 348 of file MdcMergeDups.cxx.

References BField::bFieldZ(), Constants::c, cos(), RecMdcTrack::getVecHits(), RecMdcTrack::getVX0(), RecMdcTrack::getVY0(), RecMdcTrack::getVZ0(), DstMdcTrack::helix(), MdcID::layer(), MdcDetector::Layer(), m_bfield, m_gm, m_mergeLoadAx, m_mergeLoadSt, m_mergeOverlapRatio, m_mergePt, phi0, DstMdcTrack::pxy(), sin(), and MdcLayer::view().

Referenced by mergeCurl().

00348                                                                          {
00349   //-------------------------------------------------------------------
00350   int overlaped = 0;
00351   if ((testTk->pxy() >= m_mergePt) || (refTk->pxy() >= m_mergePt)) return overlaped;
00352 
00353   HitRefVec testHits = testTk->getVecHits();
00354   int nHit = testHits.size();
00355   int nOverlap = 0;
00356 
00357   HitRefVec::iterator iterHit = testHits.begin();
00358   for (; iterHit != testHits.end(); iterHit++) {
00359     RecMdcHit* hit = *iterHit;
00360 
00361     //-- load for Axial and Stereo layer are 3,4 by jialk, original is 2,3
00362     double load = m_mergeLoadAx; 
00363     bool isStLayer = (m_gm->Layer(MdcID::layer(hit->getMdcId()))->view() != 0);
00364     if(isStLayer) load = m_mergeLoadSt;
00365 
00366     //helix parameters
00367     double vx0  = refTk->getVX0();
00368     double vy0  = refTk->getVY0();
00369     double vz0  = refTk->getVZ0();
00370     double dr   = refTk->helix(0);
00371     double phi0 = refTk->helix(1);
00372     double Bz = m_bfield->bFieldZ();
00373     double r    = 10000./ (Constants::c * Bz*refTk->helix(2));
00374     double dz   = refTk->helix(3);
00375     double tanl = refTk->helix(4);
00376 
00377     //center of circle
00378     double xc = vx0 + (dr + r) * cos(phi0);
00379     double yc = vy0 + (dr + r) * sin(phi0);
00380 
00381     //position of hit
00382     double zHit = hit->getZhit();
00383     double phi  = (vz0 + dz - zHit) / (r * tanl);
00384     double xHit = vx0 + dr*cos(phi0) + r*(cos(phi0) - cos(phi0+phi));
00385     double yHit = vy0 + dr*sin(phi0) + r*(sin(phi0) - sin(phi0+phi));
00386 
00387     //distance from center of circle to hit
00388     double dx = xc - xHit;
00389     double dy = yc - yHit;
00390     double dHit2Center = sqrt(dx * dx + dy * dy);
00391     double rTk = fabs(r);
00392 
00393     //is this hit overlaped ? 
00394     if ( (dHit2Center>(rTk - load)) && (dHit2Center<(rTk + load))) nOverlap++;
00395   }
00396 
00397   if ( nOverlap<=0 ) return overlaped;
00398 
00399   double overlapRatio = double(nOverlap) / double(nHit);
00400 
00401   if (overlapRatio > m_mergeOverlapRatio) overlaped = 1;
00402 
00403   return overlaped;
00404 }

int MdcMergeDups::testByParam ( RecMdcTrack refTk,
RecMdcTrack testTk 
)

Definition at line 222 of file MdcMergeDups.cxx.

References BField::bFieldZ(), Constants::c, DstMdcTrack::helix(), m_bfield, m_debug, m_maxDd0InMerge, m_maxDphi0InMerge, m_maxPdradInMerge, Constants::pi, and Constants::twoPi.

Referenced by mergeCurl().

00222                                                                     {
00223   //-------------------------------------------------------------------
00224   int overlaped = 0;
00225 
00226 
00227   //Convert to Babar track convension
00228   double Bz = m_bfield->bFieldZ();
00229   double omega1 = (Constants::c * Bz*refTk->helix(2))/10000.;
00230   double omega2 = (Constants::c * Bz*testTk->helix(2))/10000.;
00231   //phi0_babar = phi0_belle + pi/2   [0,2pi)
00232   double phi01  = refTk->helix(1)+Constants::pi/2.;
00233   double phi02  = testTk->helix(1)+Constants::pi/2.;
00234   while(phi01>Constants::twoPi) phi01 -= Constants::twoPi;
00235   while(phi02>Constants::twoPi) phi02 -= Constants::twoPi;
00236   double d01    = -refTk->helix(0);
00237   double d02    = -testTk->helix(0);
00238   double dphi0  = fabs(phi01 - phi02);
00239   double dd0    = fabs(d01 - d02);
00240   double prodo  = omega1*omega2;
00241   double r1=100000.;
00242   double r2=100000.;
00243   if (fabs(omega1)>0.00001) r1 = 1.0/fabs(omega1);
00244   if (fabs(omega2)>0.00001) r2 = 1.0/fabs(omega2); //FIXME
00245   double pdrad = fabs((r1-r2)/(r1+r2)) ;
00246 
00247   if (2==m_debug){
00248     std::cout << "  fabs(d01 - d02)  " << fabs(d01 - d02) << std::endl;
00249     std::cout << "  fabs(phi01-phi02)  " << fabs(phi01-phi02) << std::endl;
00250   }
00251   //  Try to merge pair that looks like duplicates (same charge)
00252   if ( (prodo > 0.) && (dd0 < m_maxDd0InMerge) && (dphi0 < m_maxDphi0InMerge) &&
00253       (pdrad < m_maxPdradInMerge)) {
00254     overlaped = 1;
00255   }
00256 
00257   //  Try to merge pair that looks like albedo (opp charge, large d0)
00258   if ( (prodo < 0.) && (fabs(d01+d02) < 4.0) && (dd0 > 47.0) &&
00259       (fabs( dphi0 - Constants::pi) < m_maxDphi0InMerge) 
00260       && (pdrad < m_maxPdradInMerge)) {
00261     overlaped = 2;
00262   }
00263 
00264   return overlaped;
00265 }


Member Data Documentation

BField* MdcMergeDups::m_bfield [private]

Definition at line 78 of file MdcMergeDups.h.

Referenced by initialize(), testByOverlapHit(), testByParam(), and ~MdcMergeDups().

double MdcMergeDups::m_bunchT0 [private]

Definition at line 89 of file MdcMergeDups.h.

Referenced by execute().

int MdcMergeDups::m_debug [private]

Definition at line 80 of file MdcMergeDups.h.

Referenced by doMergeCurl(), dumpRecMdcTrack(), execute(), MdcMergeDups(), mergeCurl(), store(), and testByParam().

const MdcDetector* MdcMergeDups::m_gm [private]

Definition at line 77 of file MdcMergeDups.h.

Referenced by beginRun(), and testByOverlapHit().

double MdcMergeDups::m_maxDd0InMerge [private]

Definition at line 81 of file MdcMergeDups.h.

Referenced by MdcMergeDups(), and testByParam().

double MdcMergeDups::m_maxDphi0InMerge [private]

Definition at line 82 of file MdcMergeDups.h.

Referenced by MdcMergeDups(), and testByParam().

double MdcMergeDups::m_maxPdradInMerge [private]

Definition at line 83 of file MdcMergeDups.h.

Referenced by MdcMergeDups(), and testByParam().

double MdcMergeDups::m_maxRcsInMerge [private]

Definition at line 84 of file MdcMergeDups.h.

Referenced by doMergeLong(), and MdcMergeDups().

double MdcMergeDups::m_mergeLoadAx [private]

Definition at line 86 of file MdcMergeDups.h.

Referenced by MdcMergeDups(), and testByOverlapHit().

double MdcMergeDups::m_mergeLoadSt [private]

Definition at line 87 of file MdcMergeDups.h.

Referenced by MdcMergeDups(), and testByOverlapHit().

double MdcMergeDups::m_mergeOverlapRatio [private]

Definition at line 88 of file MdcMergeDups.h.

Referenced by MdcMergeDups(), and testByOverlapHit().

double MdcMergeDups::m_mergePt [private]

Definition at line 85 of file MdcMergeDups.h.

Referenced by MdcMergeDups(), and testByOverlapHit().


Generated on Tue Nov 29 23:20:14 2016 for BOSS_7.0.2 by  doxygen 1.4.7