Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:32:12

0001 #include "Validation/EventGenerator/interface/TauDecay.h"
0002 #include "Validation/EventGenerator/interface/PdtPdgMini.h"
0003 #include <iomanip>
0004 #include <cstdlib>
0005 #include <iostream>
0006 
0007 TauDecay::TauDecay() { Reset(); }
0008 
0009 TauDecay::~TauDecay() {}
0010 
0011 void TauDecay::Reset() {
0012   n_pi = 0;
0013   n_pi0 = 0;
0014   n_K = 0;
0015   n_K0L = 0;
0016   n_K0S = 0;
0017   n_gamma = 0;
0018   n_nu = 0;
0019   n_e = 0;
0020   n_mu = 0;
0021   n_a1 = 0;
0022   n_a10 = 0;
0023   n_rho = 0;
0024   n_rho0 = 0;
0025   n_eta = 0;
0026   n_omega = 0;
0027   n_Kstar0 = 0;
0028   n_Kstar = 0;
0029   unknown = 0;
0030 }
0031 
0032 bool TauDecay::isTauFinalStateParticle(int pdgid) {
0033   int id = abs(pdgid);
0034   if (id == PdtPdgMini::e_minus)
0035     return true;  // e+-
0036   if (id == PdtPdgMini::nu_e)
0037     return true;  // nu_e
0038   if (id == PdtPdgMini::mu_minus)
0039     return true;  // mu+-
0040   if (id == PdtPdgMini::nu_mu)
0041     return true;  // nu_mu
0042   if (id == PdtPdgMini::nu_tau)
0043     return true;  // nu_tau
0044   if (id == PdtPdgMini::gamma)
0045     return true;  // gamma happends in generator
0046   if (id == PdtPdgMini::pi0)
0047     return true;  // pi0
0048   if (id == PdtPdgMini::pi_plus)
0049     return true;  // pi+-
0050   if (id == PdtPdgMini::K_L0)
0051     return true;  // K0L
0052   if (id == PdtPdgMini::K_S0)
0053     return true;  // KS
0054   if (id == PdtPdgMini::eta)
0055     return true;
0056   if (id == PdtPdgMini::omega)
0057     return true;
0058 
0059   if (id == PdtPdgMini::K_plus)
0060     return true;  // K+-
0061   return false;
0062 }
0063 
0064 bool TauDecay::isTauParticleCounter(int pdgid) {
0065   int id = abs(pdgid);
0066   //count particles
0067   if (id == PdtPdgMini::pi_plus) {
0068     n_pi++;
0069     return true;
0070   }
0071   if (id == PdtPdgMini::pi0) {
0072     n_pi0++;
0073     return true;
0074   }
0075   if (id == PdtPdgMini::K_plus) {
0076     n_K++;
0077     return true;
0078   }
0079   if (id == PdtPdgMini::K_L0) {
0080     n_K0L++;
0081     return true;
0082   }
0083   if (id == PdtPdgMini::K_S0) {
0084     n_K0S++;
0085     return true;
0086   }
0087   if (id == PdtPdgMini::eta) {
0088     n_eta++;
0089     return true;
0090   }
0091   if (id == PdtPdgMini::omega) {
0092     n_omega++;
0093     return true;
0094   }
0095   if (id == PdtPdgMini::gamma) {
0096     n_gamma++;
0097     return true;
0098   }
0099   if (id == PdtPdgMini::nu_tau || id == PdtPdgMini::nu_e || id == PdtPdgMini::nu_mu) {
0100     n_nu++;
0101     return true;
0102   }
0103   if (id == PdtPdgMini::e_minus) {
0104     n_e++;
0105     return true;
0106   }
0107   if (id == PdtPdgMini::mu_minus) {
0108     n_mu++;
0109     return true;
0110   }
0111   if (abs(id) == PdtPdgMini::K0)
0112     std::cout << "TauDecay::isTauParticleCounter: ERROR unidentified Particle: " << id << std::endl;
0113   return false;
0114 }
0115 
0116 bool TauDecay::isTauResonanceCounter(int pdgid) {
0117   int id = abs(pdgid);
0118   //count resonances
0119   if (id == PdtPdgMini::a_1_plus) {
0120     n_a1++;
0121     return true;
0122   }
0123   if (id == PdtPdgMini::a_10) {
0124     n_a10++;
0125     return true;
0126   }
0127   if (id == PdtPdgMini::rho_plus) {
0128     n_rho++;
0129     return true;
0130   }
0131   if (id == PdtPdgMini::rho0) {
0132     n_rho0++;
0133     return true;
0134   }
0135   if (id == PdtPdgMini::K_star0) {
0136     n_Kstar0++;
0137     return true;
0138   }
0139   if (id == PdtPdgMini::K_star_plus) {
0140     n_Kstar++;
0141     return true;
0142   }
0143   if (id == PdtPdgMini::W_plus) {
0144     return true;
0145   }
0146   unknown++;
0147   return false;
0148 }
0149 
0150 void TauDecay::ClassifyDecayMode(unsigned int &MODE_ID, unsigned int &TauBitMask) {
0151   //Reset Bits
0152   MODE_ID = 0;
0153   TauBitMask = 0;
0154   // Classify according to MODE and TauDecayStructure
0155   if (n_pi + n_K + n_e + n_mu == 1)
0156     TauBitMask = OneProng;
0157   if (n_pi + n_K == 3)
0158     TauBitMask = ThreeProng;
0159   if (n_pi + n_K == 5)
0160     TauBitMask = FiveProng;
0161   if (n_pi0 == 1)
0162     TauBitMask += OnePi0;
0163   if (n_pi0 == 2)
0164     TauBitMask += TwoPi0;
0165   if (n_pi0 == 3)
0166     TauBitMask += ThreePi0;
0167   ClassifyDecayResonance(TauBitMask);
0168 
0169   if (n_e == 0 && n_mu == 0 && n_pi == 1 && n_pi0 == 0 && n_K == 0 && n_K0S + n_K0L == 2 && n_nu == 1) {
0170     MODE_ID = MODE_K0BK0PI;
0171     return;
0172   }
0173   if (n_e == 0 && n_mu == 0 && n_pi == 1 && n_pi0 == 0 && n_K == 0 && (n_K0L + n_K0S) == 1 && n_nu == 1) {
0174     MODE_ID = MODE_K0PI;
0175     return;
0176   }
0177   if (n_e == 0 && n_mu == 0 && n_pi == 0 && n_pi0 == 1 && n_K == 1 && n_K0L == 0 && n_K0S == 0 && n_nu == 1) {
0178     MODE_ID = MODE_KPI0;
0179     return;
0180   }
0181   if (n_e == 0 && n_mu == 0 && n_pi == 1 && n_pi0 == 1 && n_K == 0 && n_K0L + n_K0S == 1 && n_nu == 1) {
0182     MODE_ID = MODE_PIK0PI0;
0183     return;
0184   }
0185   if (n_e == 0 && n_mu == 0 && n_pi == 0 && n_pi0 == 0 && n_K == 1 && (n_K0L + n_K0S) == 1 && n_nu == 1) {
0186     MODE_ID = MODE_KK0B;
0187     return;
0188   }
0189   if (n_e == 0 && n_mu == 0 && n_pi == 0 && n_pi0 == 1 && n_K == 1 && n_K0L + n_K0S == 1 && n_nu == 1) {
0190     MODE_ID = MODE_KK0BPI0;
0191     return;
0192   }
0193   if (n_e == 1 && n_mu == 0 && n_pi == 0 && n_pi0 == 0 && n_K == 0 && n_K0L == 0 && n_K0S == 0 && n_nu == 2) {
0194     MODE_ID = MODE_ELECTRON;
0195     return;
0196   }
0197   if (n_e == 0 && n_mu == 1 && n_pi == 0 && n_pi0 == 0 && n_K == 0 && n_K0L == 0 && n_K0S == 0 && n_nu == 2) {
0198     MODE_ID = MODE_MUON;
0199     return;
0200   }
0201   if (n_e == 0 && n_mu == 0 && n_pi == 1 && n_pi0 == 0 && n_K == 0 && n_K0L == 0 && n_K0S == 0 && n_nu == 1) {
0202     MODE_ID = MODE_PION;
0203     return;
0204   }
0205   if (n_e == 0 && n_mu == 0 && n_pi == 1 && n_pi0 == 1 && n_K == 0 && n_K0L == 0 && n_K0S == 0 && n_nu == 1) {
0206     MODE_ID = MODE_PIPI0;
0207     return;
0208   }
0209   if (n_e == 0 && n_mu == 0 && n_pi == 1 && n_pi0 == 2 && n_K == 0 && n_K0L == 0 && n_K0S == 0 && n_nu == 1) {
0210     MODE_ID = MODE_PI2PI0;
0211     return;
0212   }
0213   if (n_e == 0 && n_mu == 0 && n_pi == 3 && n_pi0 == 0 && n_K == 0 && n_K0L == 0 && n_K0S == 0 && n_nu == 1) {
0214     MODE_ID = MODE_3PI;
0215     return;
0216   }
0217   if (n_e == 0 && n_mu == 0 && n_pi == 0 && n_pi0 == 0 && n_K == 1 && n_K0L == 0 && n_K0S == 0 && n_nu == 1) {
0218     MODE_ID = MODE_KAON;
0219     return;
0220   }
0221   if (n_e == 0 && n_mu == 0 && n_pi == 3 && n_pi0 == 1 && n_K == 0 && n_K0L == 0 && n_K0S == 0 && n_nu == 1) {
0222     MODE_ID = MODE_3PIPI0;
0223     return;
0224   }
0225   if (n_e == 0 && n_mu == 0 && n_pi == 1 && n_pi0 == 3 && n_K == 0 && n_K0L == 0 && n_K0S == 0 && n_nu == 1) {
0226     MODE_ID = MODE_PI3PI0;
0227     return;
0228   }
0229   if (n_e == 0 && n_mu == 0 && n_pi == 3 && n_pi0 == 2 && n_K == 0 && n_K0L == 0 && n_K0S == 0 && n_nu == 1) {
0230     MODE_ID = MODE_3PI2PI0;
0231     return;
0232   }
0233   if (n_e == 0 && n_mu == 0 && n_pi == 5 && n_pi0 == 0 && n_K == 0 && n_K0L == 0 && n_K0S == 0 && n_nu == 1) {
0234     MODE_ID = MODE_5PI;
0235     return;
0236   }
0237   if (n_e == 0 && n_mu == 0 && n_pi == 5 && n_pi0 == 1 && n_K == 0 && n_K0L == 0 && n_K0S == 0 && n_nu == 1) {
0238     MODE_ID = MODE_5PIPI0;
0239     return;
0240   }
0241   if (n_e == 0 && n_mu == 0 && n_pi == 3 && n_pi0 == 3 && n_K == 0 && n_K0L == 0 && n_K0S == 0 && n_nu == 1) {
0242     MODE_ID = MODE_3PI3PI0;
0243     return;
0244   }
0245   if (n_e == 0 && n_mu == 0 && n_pi == 1 && n_pi0 == 0 && n_K == 2 && n_K0L == 0 && n_K0S == 0 && n_nu == 1) {
0246     MODE_ID = MODE_KPIK;
0247     return;
0248   }
0249   if (n_e == 0 && n_mu == 0 && n_pi == 0 && n_pi0 == 2 && n_K == 1 && n_K0L == 0 && n_K0S == 0 && n_nu == 1) {
0250     MODE_ID = MODE_K2PI0;
0251     return;
0252   }
0253   if (n_e == 0 && n_mu == 0 && n_pi == 2 && n_pi0 == 0 && n_K == 1 && n_K0L == 0 && n_K0S == 0 && n_nu == 1) {
0254     MODE_ID = MODE_KPIPI;
0255     return;
0256   }
0257   if (n_e == 0 && n_mu == 0 && n_pi == 1 && n_pi0 == 1 && n_K == 0 && n_K0L == 0 && n_K0S == 0 && n_nu == 1 &&
0258       n_gamma >= 1 && n_rho == 0) {
0259     MODE_ID = MODE_PIPI0GAM;
0260     return;  // Obsolete should not be called
0261   }
0262   if (n_e == 0 && n_mu == 0 && n_pi == 1 && n_pi0 == 4 && n_K == 0 && n_K0L == 0 && n_K0S == 0 && n_nu == 1) {
0263     MODE_ID = MODE_PI4PI0;
0264     return;
0265   }
0266   if (n_e == 0 && n_mu == 0 && n_pi == 3 && n_pi0 == 0 && n_K == 0 && n_K0L == 0 && n_K0S == 0 && n_nu == 1 &&
0267       n_eta == 1) {
0268     MODE_ID = MODE_3PIETA;
0269     return;
0270   }
0271   if (n_e == 0 && n_mu == 0 && n_pi == 1 && n_pi0 == 2 && n_K == 0 && n_K0L == 0 && n_K0S == 0 && n_nu == 1 &&
0272       n_eta == 1) {
0273     MODE_ID = MODE_PI2PI0ETA;
0274     return;
0275   }
0276   if (n_e == 0 && n_mu == 0 && n_pi == 1 && n_pi0 == 2 && n_K == 0 && n_K0L == 0 && n_K0S == 0 && n_nu == 1 &&
0277       n_omega == 1) {
0278     MODE_ID = MODE_PI2PI0OMEGA;
0279     return;
0280   }
0281   if (n_e == 0 && n_mu == 0 && n_pi == 3 && n_pi0 == 0 && n_K == 0 && n_K0L == 0 && n_K0S == 0 && n_nu == 1 &&
0282       n_omega == 1) {
0283     MODE_ID = MODE_3PIOMEGA;
0284     return;
0285   }
0286   if (n_e == 0 && n_mu == 0 && n_pi == 0 && n_pi0 == 0 && n_K == 1 && n_K0L == 0 && n_K0S == 0 && n_nu == 1 &&
0287       n_omega == 1) {
0288     MODE_ID = MODE_KOMEGA;
0289     return;
0290   }
0291   if (n_e == 0 && n_mu == 0 && n_pi == 0 && n_pi0 == 3 && n_K == 1 && n_K0L == 0 && n_K0S == 0 && n_nu == 1) {
0292     MODE_ID = MODE_K3PI0;
0293     return;
0294   }
0295   if (n_e == 0 && n_mu == 0 && n_pi == 2 && n_pi0 == 1 && n_K == 1 && n_K0L == 0 && n_K0S == 0 && n_nu == 1) {
0296     MODE_ID = MODE_K2PIPI0;
0297     return;
0298   }
0299   if (n_e == 0 && n_mu == 0 && n_pi == 0 && n_pi0 == 0 && n_K == 1 && n_K0L == 0 && n_K0S == 0 && n_nu == 1 &&
0300       n_eta == 1) {
0301     MODE_ID = MODE_KETA;
0302     return;
0303   }
0304   if (n_e == 0 && n_mu == 0 && n_pi == 1 && n_pi0 == 2 && n_K == 0 && (n_K0L + n_K0S) == 0 && n_nu == 1) {
0305     MODE_ID = MODE_K0PI2PI0;
0306     return;
0307   }
0308   if (n_e == 0 && n_mu == 0 && n_pi == 3 && n_pi0 == 0 && n_K == 0 && (n_K0L + n_K0S) == 1 && n_nu == 1) {
0309     MODE_ID = MODE_K03PI;
0310     return;
0311   }
0312   if (n_e == 0 && n_mu == 0 && n_pi == 1 && n_pi0 == 1 && n_K == 0 && (n_K0L + n_K0S) == 2 && n_nu == 1) {
0313     MODE_ID = MODE_2K0PIPI0;
0314     return;
0315   }
0316   if (n_e == 0 && n_mu == 0 && n_pi == 1 && n_pi0 == 1 && n_K == 2 && n_K0L == 0 && n_K0S == 0 && n_nu == 1) {
0317     MODE_ID = MODE_KPIKPI0;
0318     return;
0319   }
0320   if (n_pi == 1 && n_pi0 == 1 && n_nu == 1 && n_eta == 1) {  // eta modes
0321     MODE_ID = MODE_ETAPIPI0;
0322     return;
0323   }
0324 
0325   std::cout << "Tau Mode not found: n_e " << n_e << " n_mu " << n_mu << " n_pi " << n_pi << " n_pi0 " << n_pi0
0326             << " n_K " << n_K << "  n_K0L " << n_K0L << "  n_K0S " << n_K0S << " n_nu  " << n_nu << " n_gamma "
0327             << n_gamma << std::endl;
0328   MODE_ID = MODE_UNKNOWN;
0329 }
0330 
0331 unsigned int TauDecay::nProng(unsigned int &TauBitMask) {
0332   if (OneProng & TauBitMask)
0333     return 1;
0334   if (ThreeProng & TauBitMask)
0335     return 3;
0336   if (FiveProng & TauBitMask)
0337     return 5;
0338   return 7;
0339 }
0340 unsigned int TauDecay::nPi0(unsigned int &TauBitMask) {
0341   if (OnePi0 & TauBitMask)
0342     return 1;
0343   if (TwoPi0 & TauBitMask)
0344     return 2;
0345   if (ThreePi0 & TauBitMask)
0346     return 3;
0347   return 0;
0348 }
0349 
0350 bool TauDecay::hasResonance(unsigned int &TauBitMask, int pdgid) {
0351   int p = abs(pdgid);
0352   if (p == PdtPdgMini::a_1_plus && Res_a1_pm & TauBitMask)
0353     return true;
0354   if (p == PdtPdgMini::a_10 && Res_a1_0 & TauBitMask)
0355     return true;
0356   if (p == PdtPdgMini::rho_plus && Res_rho_pm & TauBitMask)
0357     return true;
0358   if (p == PdtPdgMini::rho0 && Res_rho_0 & TauBitMask)
0359     return true;
0360   if (p == PdtPdgMini::eta && Res_eta & TauBitMask)
0361     return true;
0362   if (p == PdtPdgMini::omega && Res_omega & TauBitMask)
0363     return true;
0364   if (p == PdtPdgMini::K_star0 && Res_Kstar_pm & TauBitMask)
0365     return true;
0366   if (p == PdtPdgMini::K_star_plus && Res_Kstar_0 & TauBitMask)
0367     return true;
0368   if (p == PdtPdgMini::K_S0 && KS0_to_pipi & TauBitMask)
0369     return true;
0370   return false;
0371 }
0372 
0373 void TauDecay::ClassifyDecayResonance(unsigned int &TauBitMask) {
0374   // Add Resonance info to TauBitMask
0375   if (n_a1 > 0)
0376     TauBitMask += Res_a1_pm;
0377   if (n_a10 > 0)
0378     TauBitMask += Res_a1_0;
0379   if (n_rho > 0)
0380     TauBitMask += Res_rho_pm;
0381   if (n_rho0 > 0)
0382     TauBitMask += Res_rho_0;
0383   if (n_eta > 0)
0384     TauBitMask += Res_eta;
0385   if (n_omega > 0)
0386     TauBitMask += Res_omega;
0387   if (n_Kstar > 0)
0388     TauBitMask += Res_Kstar_pm;
0389   if (n_Kstar0 > 0)
0390     TauBitMask += Res_Kstar_0;
0391 }
0392 
0393 std::string TauDecay::DecayMode(unsigned int &MODE_ID) {
0394   if (MODE_ID == MODE_ELECTRON)
0395     return "#tau^{#pm} #rightarrow e^{#pm}#nu#nu";
0396   else if (MODE_ID == MODE_MUON)
0397     return "#tau^{#pm} #rightarrow #mu^{#pm}#nu#nu";
0398   else if (MODE_ID == MODE_PION)
0399     return "#tau^{#pm} #rightarrow #pi^{#pm}#nu";
0400   else if (MODE_ID == MODE_PIPI0)
0401     return "#tau^{#pm} #rightarrow #pi^{#pm}#pi^{0}#nu";
0402   else if (MODE_ID == MODE_3PI)
0403     return "#tau^{#pm} #rightarrow #pi^{#pm}#pi^{#pm}#pi^{#mp}#nu";
0404   else if (MODE_ID == MODE_PI2PI0)
0405     return "#tau^{#pm} #rightarrow #pi^{#pm}#pi^{0}#pi^{0}#nu";
0406   else if (MODE_ID == MODE_KAON)
0407     return "#tau^{#pm} #rightarrow K^{#pm}#nu";
0408   else if (MODE_ID == MODE_KPI0)
0409     return "#tau^{#pm} #rightarrow K^{#pm}#pi^{0}#nu";
0410   else if (MODE_ID == MODE_K0PI)
0411     return "#tau^{#pm} #rightarrow K^{0}#pi^{#pm}#nu";
0412   else if (MODE_ID == MODE_3PIPI0)
0413     return "#tau^{#pm} #rightarrow #pi^{#pm}#pi^{#pm}#pi^{#mp}#pi^{0}#nu";
0414   else if (MODE_ID == MODE_PI3PI0)
0415     return "#tau^{#pm} #rightarrow #pi^{#pm}#pi^{0}#pi^{0}#pi^{0}#nu";
0416   else if (MODE_ID == MODE_3PI2PI0)
0417     return "#tau^{#pm} #rightarrow #pi^{#pm}#pi^{#pm}#pi^{#mp}#pi^{0}#pi^{0}#nu";
0418   else if (MODE_ID == MODE_5PI)
0419     return "#tau^{#pm} #rightarrow #pi^{#pm}#pi^{#pm}#pi^{#pm}#pi^{#mp}#pi^{#mp}#nu";
0420   else if (MODE_ID == MODE_5PIPI0)
0421     return "#tau^{#pm} #rightarrow #pi^{#pm}#pi^{#pm}#pi^{#pm}#pi^{#mp}#pi^{#mp}#pi^{0}#nu";
0422   else if (MODE_ID == MODE_3PI3PI0)
0423     return "#tau^{#pm} #rightarrow #pi^{#pm}#pi^{#pm}#pi^{#mp}#pi^{0}#pi^{0}#pi^{0}#nu";
0424   else if (MODE_ID == MODE_KPIK)
0425     return "#tau^{#pm} #rightarrow K^{#pm}#pi^{#pm}K^{#mp}#nu";
0426   else if (MODE_ID == MODE_K0BK0PI)
0427     return "#tau^{#pm} #rightarrow #bar{K}^{0}K^{0}#pi^{#pm}#nu";
0428   else if (MODE_ID == MODE_KK0BPI0)
0429     return "#tau^{#pm} #rightarrow #bar{K}^{0}K^{0}#pi^{#pm}#pi^{0}#nu";
0430   else if (MODE_ID == MODE_K2PI0)
0431     return "#tau^{#pm} #rightarrow K^{#pm}#pi^{0}#pi^{0}#nu";
0432   else if (MODE_ID == MODE_KPIPI)
0433     return "#tau^{#pm} #rightarrow K^{#pm}#pi^{#pm}#pi^{#mp}#nu";
0434   else if (MODE_ID == MODE_PIK0PI0)
0435     return "#tau^{#pm} #rightarrow K^{0}#pi^{#pm}#pi^{0}#nu";
0436   else if (MODE_ID == MODE_ETAPIPI0)
0437     return "#tau^{#pm} #rightarrow #pi^{#pm}#eta#pi^{0}#nu";
0438   else if (MODE_ID == MODE_PIPI0GAM)
0439     return "#tau^{#pm} #rightarrow #pi^{#pm}#pi^{0}#nu#gamma (obsolete)";
0440   else if (MODE_ID == MODE_KK0B)
0441     return "#tau^{#pm} #rightarrow K^{#pm}#bar{K}^{0}#nu";
0442   else if (MODE_ID == MODE_PI4PI0)
0443     return "#tau^{#pm} #rightarrow #pi^{#pm}#pi^{0}#pi^{0}#pi^{0}#pi^{0}#nu";
0444   else if (MODE_ID == MODE_3PIETA)
0445     return "#tau^{#pm} #rightarrow #pi^{#pm}#pi^{#pm}#pi^{#mp}#eta#nu";
0446   else if (MODE_ID == MODE_PI2PI0ETA)
0447     return "#tau^{#pm} #rightarrow #pi^{#pm}#pi^{0}#pi^{0}#eta#nu";
0448   else if (MODE_ID == MODE_PI2PI0OMEGA)
0449     return "#tau^{#pm} #rightarrow #pi^{#pm}#pi^{0}#pi^{0}#omega#nu";
0450   else if (MODE_ID == MODE_3PIOMEGA)
0451     return "#tau^{#pm} #rightarrow #pi^{#pm}#pi^{#pm}#pi^{#mp}#omega#nu";
0452   else if (MODE_ID == MODE_KOMEGA)
0453     return "#tau^{#pm} #rightarrow K^{#pm}#omega#nu";
0454   else if (MODE_ID == MODE_K3PI0)
0455     return "#tau^{#pm} #rightarrow K#pi^{0}#pi^{0}#pi^{0}#nu";
0456   else if (MODE_ID == MODE_K2PIPI0)
0457     return "#tau^{#pm} #rightarrow K^{#pm}#pi^{#pm}#pi^{#mp}#pi^{0}#nu";
0458   else if (MODE_ID == MODE_KETA)
0459     return "#tau^{#pm} #rightarrow K^{#pm}#eta#nu";
0460   else if (MODE_ID == MODE_K0PI2PI0)
0461     return "#tau^{#pm} #rightarrow K^{0}#pi^{#pm}#pi^{0}#pi^{0}#nu";
0462   else if (MODE_ID == MODE_K03PI)
0463     return "#tau^{#pm} #rightarrow K^{0}#pi^{#pm}#pi^{#pm}#pi^{#mp}#nu";
0464   else if (MODE_ID == MODE_2K0PIPI0)
0465     return "#tau^{#pm} #rightarrow K^{0}#bar{K}^{0}#pi^{#pm}#pi^{-}#nu";
0466   else if (MODE_ID == MODE_KPIKPI0)
0467     return "#tau^{#pm} #rightarrow K^{#pm}#pi^{#pm}K^{#mp}#pi^{0}#nu";
0468   return "UnKnown";
0469 }