00001
00002
00003
00004
00005
00011
00012
00013
00014
00015
00016
00017 #ifndef TauDecay_h
00018 #define TauDecay_h
00019
00020
00021
00022
00023 class TauDecay {
00024 public:
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051 enum JAK{JAK_UNKNOWN=0,
00052 JAK_ELECTRON=1,
00053 JAK_MUON=2,
00054 JAK_PION=3,
00055 JAK_RHO_PIPI0=4,
00056 JAK_A1_3PI=5,
00057 JAK_KAON=6,
00058 JAK_KSTAR=7,
00059 JAK_3PIPI0=8,
00060 JAK_PI3PI0=9,
00061 JAK_3PI2PI0=10,
00062 JAK_5PI=11,
00063 JAK_5PIPI0=12,
00064 JAK_3PI3PI0=13,
00065 JAK_KPIK=14,
00066 JAK_K0BK0PI=15,
00067 JAK_KK0BPI0=16,
00068 JAK_K2PI0=17,
00069 JAK_KPIPI=18,
00070 JAK_PIK0PI0=19,
00071 JAK_ETAPIPI0=20,
00072 JAK_PIPI0GAM=21,
00073 JAK_KK0B=22,
00074 NJAKID=23
00075 };
00076
00077
00078 enum TauDecayStructure{other=0,
00079 OneProng=1,
00080 ThreeProng=2,
00081 FiveProng=4,
00082 OnePi0=8,
00083 TwoPi0=32,
00084 ThreePi0=64,
00085 Res_a1_pm=128,
00086 Res_a1_0=256,
00087 Res_rho_pm=512,
00088 Res_rho_0=1024,
00089 Res_eta=2048,
00090 Res_omega=4096,
00091 Res_Kstar_pm=8192,
00092 Res_Kstar_0=16384,
00093 KS0_to_pipi=32768
00094 };
00095
00096 TauDecay();
00097 ~TauDecay();
00098
00099 void Reset();
00100 bool isTauFinalStateParticle(int pdgid);
00101 bool isTauParticleCounter(int pdgid);
00102 bool isTauResonanceCounter(int pdgid);
00103 void ClassifyDecayMode(unsigned int &JAK_ID,unsigned int &TauBitMask);
00104 unsigned int nProng(unsigned int &TauBitMask){
00105 if(OneProng&TauBitMask) return 1;
00106 if(ThreeProng&TauBitMask) return 3;
00107 if(FiveProng&TauBitMask) return 5;
00108 return 7;
00109 }
00110 unsigned int nPi0(unsigned int &TauBitMask){
00111 if(OnePi0&TauBitMask) return 1;
00112 if(TwoPi0&TauBitMask) return 2;
00113 if(ThreePi0&TauBitMask) return 3;
00114 return 0;
00115 }
00116
00117
00118 private:
00119
00120 void ClassifyDecayResonance(unsigned int &TauBitMask);
00121
00122
00123 unsigned int n_pi,n_pi0,n_K,n_K0L,n_K0S,n_gamma,n_nu,n_e,n_mu;
00124 unsigned int n_a1,n_a10,n_rho,n_rho0,n_eta,n_omega,n_Kstar0,n_Kstar,unknown;
00125
00126 };
00127 #endif