CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_6_2_7/src/Validation/EventGenerator/interface/TauDecay.h

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 //
00003 // Package:    TauNtuple
00004 // Class:      TauDecay
00005 // 
00011 //
00012 // Original Author:  Ian Nugent  
00013 //         Created:  Fri Nov 18 13:49:02 CET 2011
00014 // $Id: TauDecay.h,v 1.2 2012/12/10 14:59:52 inugent Exp $
00015 //
00016 //
00017 #ifndef TauDecay_h
00018 #define TauDecay_h
00019 
00020 //
00021 // class declaration
00022 //
00023 class TauDecay {
00024  public:
00025   // TAUOLA list of decay modes avalible presently available in Tauola are (JAK):  
00026   //                                                              
00027   // * DEC    BRTAU    NORMAL    ROUTINE    CHANNEL         * 
00028   // *   1  0.17810  0.17810     DADMEL     ELECTRON        * 
00029   // *   2  0.17370  0.17370     DADMMU     MUON            * 
00030   // *   3  0.11080  0.11080     DADMPI     PION            * 
00031   // *   4  0.25320  0.25320     DADMRO     RHO (->2PI)     *
00032   // *   5  0.18250  0.18250     DADMAA     A1  (->3PI)     * 
00033   // *   6  0.00710  0.00710     DADMKK     KAON            *
00034   // *   7  0.01280  0.01280     DADMKS     K*              * 
00035   // *   8  0.04500  0.04500     DAD4PI     2PI- PI+ PI0    *
00036   // *   9  0.01230  0.01230     DAD4PI     PI- 3PI0        *
00037   // *  10  0.00500  0.00500     DADNPI     2PI- PI+ 2PI0   *
00038   // *  11  0.00080  0.00080     DADNPI     3PI- 2PI+       *
00039   // *  12  0.00020  0.00020     DADNPI     3PI- 2PI+ PI0   * 
00040   // *  13  0.00030  0.00030     DADNPI     2PI- PI+ 3PI0   *
00041   // *  14  0.00190  0.00190     DADMPK     K+ K- PI+       *  
00042   // *  15  0.00120  0.00120     DADMPK     K0B K0 PI+      * 
00043   // *  16  0.00300  0.00300     DADMPK     K+ K0B PI0      *  
00044   // *  17  0.00100  0.00100     DADMPK     K+ PI0 PI0      * 
00045   // *  18  0.00230  0.00230     DADMPK     K+ PI- PI+      *
00046   // *  19  0.00390  0.00390     DADMPK     K0 PI0 PI+      * 
00047   // *  20  0.00170  0.00170     DADMPK     ET PI- PI0      * 
00048   // *  21  0.00160  0.00160     DADMPK     PI-PI0 GAM      *
00049   // *  22  0.00160  0.00160     DADMPK     K- K0B GAM      *
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   // Functions
00120   void ClassifyDecayResonance(unsigned int &TauBitMask);
00121   
00122   //counting varibles
00123   unsigned int n_pi,n_pi0,n_K,n_K0L,n_K0S,n_gamma,n_nu,n_e,n_mu; // particle counters
00124   unsigned int n_a1,n_a10,n_rho,n_rho0,n_eta,n_omega,n_Kstar0,n_Kstar,unknown; // resonance counters
00125   
00126 };
00127 #endif