00001
00011 #ifndef STAR_StKinkI
00012 #define STAR_StKinkI
00013 #include "TROOT.h"
00014 #include "TMath.h"
00015
00016 class StKinkI {
00017 public:
00018 virtual ~StKinkI() {}
00019
00020
00022
00023
00025 virtual Int_t geantIdParent() const=0;
00026 virtual Int_t geantIdDaughter() const=0;
00027 virtual Float_t parentMomentumX() const=0;
00028 virtual Float_t parentMomentumY() const=0;
00029 virtual Float_t parentMomentumZ() const=0;
00030 virtual Float_t parentPrimMomentumX() const=0;
00031 virtual Float_t parentPrimMomentumY() const=0;
00032 virtual Float_t parentPrimMomentumZ() const=0;
00033 virtual Float_t parentPrimPsi() const;
00034 virtual Float_t daughterMomentumX() const=0;
00035 virtual Float_t daughterMomentumY() const=0;
00036 virtual Float_t daughterMomentumZ() const=0;
00037 virtual Float_t positionX() const=0;
00038 virtual Float_t positionY() const=0;
00039 virtual Float_t positionZ() const=0;
00040 virtual Int_t parentCharge() const=0;
00041 virtual Int_t daughterCharge() const=0;
00043
00044
00046
00047
00049
00050
00051 virtual Int_t decayMode() const {return 0;}
00052 virtual Int_t simTpcHits() const {return 0;}
00053 virtual Int_t commonTpcHits() const {return 0;}
00055
00056
00058
00059
00061 virtual Float_t hitDistanceParentDaughter() const {return 0;}
00062 virtual Float_t hitDistanceParentVertex() const {return 0;}
00063 virtual Float_t mindE() const {return 0;}
00064 virtual Float_t decayAngle() const {return 0;}
00065 virtual Float_t parentMomentum() const {return 0;}
00066 virtual Float_t daughterMomentum() const {return 0;}
00067 virtual Float_t decayLength() const {return 0;}
00068 virtual Float_t transverseMomentum() const {return 0;}
00069 virtual Float_t transverseMassKaon() const {return 0;}
00070 virtual Float_t transverseMassPion() const {return 0;}
00071 virtual Float_t rapidityKaon() const {return 0;}
00072 virtual Float_t rapidityPion() const {return 0;}
00073
00075 virtual Float_t dedxParent() const {return 0;}
00077 virtual Float_t dedxDaughter() const {return 0;}
00079 virtual Float_t errDedxParent() const {return 0;}
00081 virtual Float_t errDedxDaughter() const {return 0;}
00083 virtual UShort_t numDedxParent() const {return 0;}
00085 virtual UShort_t numDedxDaughter() const {return 0;}
00087 virtual Float_t lenDedxParent() const {return 0;}
00089 virtual Float_t lenDedxDaughter() const {return 0;}
00091 virtual Int_t keyParent() const {return 0;}
00093 virtual Int_t keyDaughter() const {return 0;}
00095
00097
00098 virtual Float_t dcaParentDaughter() const {return 0;}
00099 virtual Float_t dcaDaughterPrimaryVertex() const {return -1;}
00100 virtual Float_t dcaParentPrimaryVertex() const {return -1;}
00102
00104
00105
00106 virtual Float_t chi2Kink() const {return 0;}
00108 virtual Float_t clKink() const {return 0;}
00110 virtual Float_t chi2Parent() const {return 0;}
00112 virtual Float_t clParent() const {return 0;}
00114 virtual Float_t chi2Daughter() const {return 0;}
00116 virtual Float_t clDaughter() const {return 0;}
00118 virtual void setParentBad() {}
00120 virtual void setDaughterBad() {}
00122 virtual Bool_t bad() const {return (chi2Parent()<0 || chi2Daughter()<0);}
00124 };
00125
00126 inline Float_t StKinkI::parentPrimPsi() const
00127 { return TMath::ATan2(parentPrimMomentumY(),
00128 parentPrimMomentumX()); }
00129
00130 #endif
00131
00132
00133
00134
00135
00136
00137
00138
00139
00140
00141
00142
00143
00144
00145
00146
00147
00148
00149
00150
00151
00152
00153
00154
00155
00156
00157