123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- /***************************************************************************
- *
- * $Id:
- *
- * Author: Mike Lisa, Ohio State, lisa@mps.ohio-state.edu
- ***************************************************************************
- *
- * Description: part of STAR HBT Framework: StHbtMaker package
- * a simple particle cut that selects on phasespace, #hits, DCA, and PID
- *
- ***************************************************************************
- *
- * $Log:
- **************************************************************************/
- #include "StHbtMaker/Cut/mikesTrackCut.h"
- #include <cstdio>
- #ifdef __ROOT__
- ClassImp(mikesTrackCut)
- #endif
- mikesTrackCut::mikesTrackCut(){
- mNTracksPassed = mNTracksFailed = 0;
- }
- //------------------------------
- //mikesTrackCut::~mikesTrackCut(){
- // /* noop */
- //}
- //------------------------------
- bool mikesTrackCut::Pass(const StHbtTrack* track){
- /*
- cout << endl;
- cout << "#track " << trackCount++;
- cout << " * pion " << (track->NSigmaPion() > mNSigmaPion[0]) && (track->NSigmaPion() < mNSigmaPion[1]);
- cout << " * kaon " << (track->NSigmaKaon() > mNSigmaKaon[0]) && (track->NSigmaKaon() < mNSigmaKaon[1]);
- cout << " * proton " << (track->NSigmaProton() > mNSigmaProton[0]) && (track->NSigmaProton() < mNSigmaProton[1]);
- cout << " * charge " << (track->Charge() == mCharge);
- */
- bool goodPID = ((track->NSigmaPion() > mNSigmaPion[0]) &&
- (track->NSigmaPion() < mNSigmaPion[1]) &&
- (track->NSigmaKaon() > mNSigmaKaon[0]) &&
- (track->NSigmaKaon() < mNSigmaKaon[1]) &&
- (track->NSigmaProton() > mNSigmaProton[0]) &&
- (track->NSigmaProton() < mNSigmaProton[1]));
- if (mCharge !=0){ // if user requests "charge=0" then that means ignore charge
- goodPID = (goodPID&&(track->Charge() == mCharge));
- }
- if (goodPID){
- float TEnergy = ::sqrt(track->P().mag2()+mMass*mMass);
- float TRapidity = 0.5*::log((TEnergy+track->P().z())/
- (TEnergy-track->P().z()));
- float Pt = ::sqrt((track->P().x())*(track->P().x())+
- (track->P().y())*(track->P().y()));
-
- /*
- cout << " * DCAxy " << (track->DCAxy() > mDCA[0]) && (track->DCAxy() < mDCA[1]);
- cout << " * mDCA[0] " << mDCA[0];
- cout << " * mDCA[1] " << mDCA[1];
- cout << " * track->DCAxy " << track->DCAxy();
- cout << " * NHits " << (track->NHits() > mNHits[0]) && (track->NHits() < mNHits[1]);
- cout << " * Pt " << (Pt > mPt[0]) && (Pt < mPt[1]);
- cout << " * y " << (TRapidity > mRapidity[0]) && (TRapidity < mRapidity[1]);
- cout << endl;
- */
- bool goodTrack=
- ((track->DCAxy() > mDCA[0]) &&
- (track->DCAxy() < mDCA[1]) &&
- (track->NHits() > mNHits[0]) &&
- (track->NHits() < mNHits[1]) &&
- (Pt > mPt[0]) &&
- (Pt < mPt[1]) &&
- (TRapidity > mRapidity[0]) &&
- (TRapidity < mRapidity[1]));
- goodTrack ? mNTracksPassed++ : mNTracksFailed++;
- return (goodTrack);
- }
- else{
- mNTracksFailed++;
- return (goodPID);
- }
- }
- //------------------------------
- StHbtString mikesTrackCut::Report(){
- string Stemp;
- char Ctemp[100];
- sprintf(Ctemp,"Particle mass:\t%E\n",this->Mass());
- Stemp=Ctemp;
- sprintf(Ctemp,"Particle charge:\t%d\n",mCharge);
- Stemp=Ctemp;
- sprintf(Ctemp,"Particle Nsigma from pion:\t%E - %E\n",mNSigmaPion[0],mNSigmaPion[1]);
- Stemp+=Ctemp;
- sprintf(Ctemp,"Particle Nsigma from kaon:\t%E - %E\n",mNSigmaKaon[0],mNSigmaKaon[1]);
- Stemp+=Ctemp;
- sprintf(Ctemp,"Particle Nsigma from proton:\t%E - %E\n",mNSigmaProton[0],mNSigmaProton[1]);
- Stemp+=Ctemp;
- sprintf(Ctemp,"Particle #hits:\t%d - %d\n",mNHits[0],mNHits[1]);
- Stemp+=Ctemp;
- sprintf(Ctemp,"Particle pT:\t%E - %E\n",mPt[0],mPt[1]);
- Stemp+=Ctemp;
- sprintf(Ctemp,"Particle rapidity:\t%E - %E\n",mRapidity[0],mRapidity[1]);
- Stemp+=Ctemp;
- sprintf(Ctemp,"Particle DCA:\t%E - %E\n",mDCA[0],mDCA[1]);
- Stemp+=Ctemp;
- sprintf(Ctemp,"Number of tracks which passed:\t%ld Number which failed:\t%ld\n",mNTracksPassed,mNTracksFailed);
- Stemp += Ctemp;
- StHbtString returnThis = Stemp;
- return returnThis;
- }
|