/*! \file fofalgo.cxx * \brief this file contains function declarations of fof algoritms */ #include "stf.h" int FOFStream(Particle &a, Particle &b, Double_t *params){ Double_t total=0,v1=0,v2=0,vdot=0,vnorm; for (int j=0;j<3;j++){ total+=(a.GetPosition(j)-b.GetPosition(j))*(a.GetPosition(j)-b.GetPosition(j))/params[6]; v1+=a.GetVelocity(j)*a.GetVelocity(j); v2+=b.GetVelocity(j)*b.GetVelocity(j); vdot+=a.GetVelocity(j)*b.GetVelocity(j); } v1=sqrt(v1);v2=sqrt(v2); vnorm=1.0/(v1*v2); vdot*=vnorm; return (total<1.0&&vdot>params[8]&&v1/v21.0/params[7]); } int FOFStreamwithprob(Particle &a, Particle &b, Double_t *params){ if (a.GetPotential()params[8]&&v1/v21.0/params[7]); } int FOFStreamwithprobIterative(Particle &a, Particle &b, Double_t *params){ if (a.GetPotential()params[8]&&v1/v21.0/params[7]); } int FOFStreamwithprobNN(Particle &a, Particle &b, Double_t *params){ if (a.GetPotential()params[8]&&v1/v21.0/params[7]); } int FOFStreamwithprobNNNODIST(Particle &a, Particle &b, Double_t *params){ if (a.GetPotential()params[8]&&v1/v21.0/params[7]); } int FOFStreamwithprobLX(Particle &a, Particle &b, Double_t *params){ if (a.GetPotential()params[8]&&v1/v21.0/params[7]); } int FOFStreamwithprobNNLX(Particle &a, Particle &b, Double_t *params){ if (a.GetPotential()params[8]&&v1/v21.0/params[7]); } int FOFStreamwithprobscaleell(Particle &a, Particle &b, Double_t *params){ if (a.GetPotential()params[8]&&v1/v21.0/params[7]); } int FOFStreamwithprobscaleellNN(Particle &a, Particle &b, Double_t *params){ if (a.GetPotential()params[8]&&v1/v21.0/params[7]); } int FOF6dbg(Particle &a, Particle &b, Double_t *params){ if (a.GetPotential()>=params[9]||b.GetPotential()>=params[9]) return 0; Double_t total=0; for (int j=0;j<3;j++){ total+=(a.GetPosition(j)-b.GetPosition(j))*(a.GetPosition(j)-b.GetPosition(j))/params[6]; total+=(a.GetVelocity(j)-b.GetVelocity(j))*(a.GetVelocity(j)-b.GetVelocity(j))/params[7]; } return (total<1); } int FOF6dbgup(Particle &a, Particle &b, Double_t *params){ if (a.GetPotential()=0 && b.GetType()>=0); } int FOFchecksub(Particle &a, Double_t *params){ if (a.GetPotential()>=params[9]) return 0; else return -1; } int FOFcheckbg(Particle &a, Double_t *params){ if (a.GetPotential()=0) return 0; else return -1; } //@}