//----------------------------------------------------------- // File and Version Information: // $Id$ // // Description: // Implementation of class PndTpcProximityHTCorrelator // see PndTpcProximityHTCorrelator.hh for details // // Environment: // Software developed for the PANDA Detector at FAIR. // // Author List: // Sebastian Neubert TUM (original author) // // //----------------------------------------------------------- // Panda Headers ---------------------- // This Class' Header ------------------ #include "PndTpcProximityHTCorrelator.h" // C/C++ Headers ---------------------- #include "TVector3.h" // Collaborating Class Headers -------- #include "PndTpcRiemannTrack.h" #include "PndTpcRiemannHit.h" #include "PndTpcCluster.h" #include "DebugLogger.h" // Class Member definitions ----------- PndTpcProximityHTCorrelator::PndTpcProximityHTCorrelator(double cut, double zStretch) : _proxcut(cut), _zStretch(zStretch) {} bool PndTpcProximityHTCorrelator::corr(PndTpcRiemannTrack* trk, PndTpcRiemannHit* rhit, bool& survive, double& matchQuality) { int speedupfactor = 3; int trksize = trk->getNumHits(); TVector3 posX = rhit->cluster()->pos(); //std::cout<<"PndTpcProximityHTCorrelator::corr; tracksize: "< 3){ TVector3 pos; double dis; double largecut = speedupfactor*_proxcut; //if (_zStretch < 1) largecut *= _zStretch; bool faraway = true; bool check = true; while(check){ pos = trk->getHit(i)->cluster()->pos(); dis = (posX-pos).Mag(); //std::cout<<"i "<trksize-1) i=trksize-1; } if(faraway){ matchQuality=largecut; survive=false; return true; } } // get closest hit from track double l; int index = trk->getClosestHit(rhit,l,closest-2*speedupfactor,closest+3*speedupfactor); TVector3 dist = posX - trk->getHit(index)->cluster()->pos(); dist.SetZ(dist.Z()/_zStretch); l = dist.Mag(); //std::cout<<"distance in 3D: "<Histo("HT_prox_l",l,0,5,100); matchQuality=l; if(l>_proxcut){ DebugLogger::Instance()->Histo("HT_riemanncuts",1,0,20,20); survive=false; return true; } survive=true; return true; }