StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
StDijetFilter.h
1 
14 #ifndef STAR_StDijetFilter
15 #define STAR_StDijetFilter
16 
17 #include <vector>
18 #include <string>
19 #include "StMCFilter.h"
20 
22 class StGenParticle;
23 
24 class JetFourVec
25 {
26 
27  private:
28  float px;
29  float py;
30  float pz;
31  float en;
32  int code;
33 
34  public:
35  JetFourVec();
39 
41  bool operator ==(JetFourVec);
42 
43  void setCode(int x){code = x;};
44  void setPx(float x){px = x;}
45  void setPy(float x){py = x;}
46  void setPz(float x){pz = x;}
47  void setEn(float x){en = x;}
48  void setPxPyPzEn(float,float,float,float);
49  void setPtEtaPhiM(float,float,float,float);
50  void setPtEtaPhiE(float,float,float,float);
51 
52  int getCode(){return code;}
53  float getPx(){return px;}
54  float getPy(){return py;}
55  float getPz(){return pz;}
56  float getEn(){return en;}
57 
58  float Pt();
59  float Eta();
60  float Phi();
61  float Theta();
62  float M();
63  float P();
64 };
65 
66 
67 class StDijetFilter : public StMCFilter
68 {
69  private:
70 
71  float mRBTOW;
72  float mRcone;
73  float mSeed;
74  float mAssoc;
75  float mSplitfraction;
76  bool mAddmidpoints;
77  bool mStablemidpoints;
78  bool mSplitmerge;
79  float mParticleEtaRange;
80  float mJetEtaHigh;
81  float mJetEtaLow;
82  float mDPhi;
83  float mDEta;
84  float mPtLow;
85  float mPtHigh;
86  float mMinJetPt;
87 
88  float mRecohadron;
89  float mRecolepton;
90  int *nEvents;
91  double mVertex[3];
92 
93  float dR(StGenParticle*,StGenParticle*) const;
94  float dR(StGenParticle*,JetFourVec*) const;
95  float dR(JetFourVec*,StGenParticle*) const;
96  float dR(JetFourVec*,JetFourVec*) const;
97 
98  JetFourVec* combineTracks(std::vector<JetFourVec*>) const;
99  JetFourVec* recoJet(std::vector<JetFourVec*>, double*) const;
100  std::vector<JetFourVec*> EtOrderedList(std::vector<JetFourVec*>) const;
101  std::vector< std::vector<JetFourVec*> > EtOrderedList(std::vector< std::vector<JetFourVec*> >) const;
102  std::vector< std::vector<JetFourVec*> > RemoveDuplicates(std::vector< std::vector<JetFourVec*> >) const;
103 
104  float overlapEnergy(std::vector<JetFourVec*>,std::vector<JetFourVec*>) const;
105  std::vector< std::vector<JetFourVec*> > doSplitMerge(std::vector< std::vector<JetFourVec*> >) const;
106 
107  std::vector<JetFourVec*> merge(std::vector<JetFourVec*>,std::vector<JetFourVec*>) const;
108  void split(std::vector<JetFourVec*> &v1,std::vector<JetFourVec*> &v2) const;
109 
110  std::vector<JetFourVec*> addMidPoints(std::vector<JetFourVec*>) const;
111 
112  void readConfig();
113 
114  public:
115  StDijetFilter();
116  virtual ~StDijetFilter();
117 
118  int RejectEG(const StGenParticleMaster &ptl) const;
119 
120  int RejectGT(const StGenParticleMaster &ptl) const;
121 
122  int RejectGE(const StGenParticleMaster &ptl) const;
123 
124  void parseConfig(std::string, float);
125 };
126 
127 #endif
float getPz()
getter for py
Definition: StDijetFilter.h:55
virtual ~StDijetFilter()
constructor
float getEn()
getter for pz
Definition: StDijetFilter.h:56
float Eta()
calculate vector pt
Abstract base class for particles related to common /HEPEVT/.
float getPx()
getter for pdg code
Definition: StDijetFilter.h:53
JetFourVec()
pdg code of four vector
float M()
calculate vector theta
void setPx(float x)
setter for pdg code
Definition: StDijetFilter.h:44
void setPxPyPzEn(float, float, float, float)
setter for en
void setCode(int x)
equality operator
Definition: StDijetFilter.h:43
JetFourVec operator+(JetFourVec)
destructor
float Theta()
calculate vector phi
float P()
calculate vector mass
void setPz(float x)
setter for py
Definition: StDijetFilter.h:46
~JetFourVec()
construct from StGenParticle
Definition: StDijetFilter.h:38
void setPy(float x)
setter for px
Definition: StDijetFilter.h:45
void setPtEtaPhiM(float, float, float, float)
four element setter
bool operator==(JetFourVec)
addition operator
int getCode()
alternative four element setter
Definition: StDijetFilter.h:52
int RejectEG(const StGenParticleMaster &ptl) const
destructor
void parseConfig(std::string, float)
float Phi()
calculate vector pseudorapidity
void setPtEtaPhiE(float, float, float, float)
alternative four element setter
int RejectGT(const StGenParticleMaster &ptl) const
Rejection of GEANT Tracking.
void setEn(float x)
setter for pz
Definition: StDijetFilter.h:47
float Pt()
getter for en
float getPy()
getter for px
Definition: StDijetFilter.h:54
StDijetFilter()
read a config file to adjust parameters
int RejectGE(const StGenParticleMaster &ptl) const
Rejection at GEANT End, No GEANT output.