00001
00002
00003
00004 #ifndef STJTRACKCUTDCAPTDEPENDENT_H
00005 #define STJTRACKCUTDCAPTDEPENDENT_H
00006
00007 #include <cmath>
00008 #include "StjTrackCut.h"
00009
00010 class StjTrackCutDcaPtDependent : public StjTrackCut {
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035 public:
00036 StjTrackCutDcaPtDependent(double pt1 = 0.5, double dcaMax1 = 2.0, double pt2 = 1.0, double dcaMax2 = 1.0)
00037 : _pt1(pt1), _dcaMax1(dcaMax1), _pt2(pt2), _dcaMax2(dcaMax2) { }
00038 virtual ~StjTrackCutDcaPtDependent() { }
00039
00040 bool operator()(const StjTrack& track) const
00041 {
00042 if (track.pt < _pt1) return fabs(track.dcaD) > _dcaMax1;
00043 if (track.pt < _pt2) return fabs(track.dcaD) > fabs(_dcaMax1 + (_dcaMax2 - _dcaMax1) / (_pt2 - _pt1) * (track.pt - _pt1));
00044 return fabs(track.dcaD) > _dcaMax2;
00045 }
00046
00047 private:
00048
00049 double _pt1;
00050 double _dcaMax1;
00051 double _pt2;
00052 double _dcaMax2;
00053
00054 ClassDef(StjTrackCutDcaPtDependent, 1)
00055
00056 };
00057
00058 #endif // STJTRACKCUTDCAPTDEPENDENT_H