StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
StjTrackCutDcaPtDependent.h
1 // -*- mode: c++;-*-
2 // $Id: StjTrackCutDcaPtDependent.h,v 1.4 2010/04/13 13:30:51 pibero Exp $
3 // Copyright (C) 2008 Tai Sakuma <sakuma@bnl.gov>
4 #ifndef STJTRACKCUTDCAPTDEPENDENT_H
5 #define STJTRACKCUTDCAPTDEPENDENT_H
6 
7 #include <cmath>
8 #include "StjTrackCut.h"
9 
11  /* to reduce pile up tracks
12  *
13  *
14  *
15  * dca
16  * |
17  * |
18  * |
19  * | pass
20  * |
21  * |
22  * |
23  * dca1 |-----------\
24  * | \
25  * | \
26  * | \
27  * dca2 | \----------------------------
28  * |
29  * | not pass
30  * |
31  * -+--------------------------------------------- pt
32  * pt1 pt2
33  */
34 
35 public:
36  StjTrackCutDcaPtDependent(double pt1 = 0.5, double dcaMax1 = 2.0, double pt2 = 1.0, double dcaMax2 = 1.0)
37  : _pt1(pt1), _dcaMax1(dcaMax1), _pt2(pt2), _dcaMax2(dcaMax2) { }
38  virtual ~StjTrackCutDcaPtDependent() { }
39 
40  bool operator()(const StjTrack& track) const
41  {
42  if (track.pt < _pt1) return fabs(track.dcaD) > _dcaMax1;
43  if (track.pt < _pt2) return fabs(track.dcaD) > fabs(_dcaMax1 + (_dcaMax2 - _dcaMax1) / (_pt2 - _pt1) * (track.pt - _pt1));
44  return fabs(track.dcaD) > _dcaMax2;
45  }
46 
47 private:
48 
49  double _pt1;
50  double _dcaMax1;
51  double _pt2;
52  double _dcaMax2;
53 
54  ClassDef(StjTrackCutDcaPtDependent, 1)
55 
56 };
57 
58 #endif // STJTRACKCUTDCAPTDEPENDENT_H