Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 // -*- C++ -*-
0002 //
0003 // Package:    TauNtuple
0004 // Class:      TauDecay
0005 //
0006 /**\class TauDecay TauDecay.cc TauDataFormat/TauNtuple/src/TauDecay.cc
0007 
0008  Description: This class reconstructs the MODE modes of the Tauola decays and provides a bit mask of the decay structure for the tau
0009 
0010 */
0011 //
0012 // Original Author:  Ian Nugent
0013 //         Created:  Fri Nov 18 13:49:02 CET 2011
0014 //
0015 //
0016 #ifndef TauDecay_h
0017 #define TauDecay_h
0018 
0019 #include <string>
0020 
0021 class TauDecay {
0022 public:
0023   // TAUOLA list of decay modes avalible presently available in Tauola are (MODE):
0024   //
0025   // * DEC    BRTAU    NORMAL    ROUTINE    CHANNEL         *
0026   // *   1  0.17810  0.17810     DADMEL     ELECTRON        *
0027   // *   2  0.17370  0.17370     DADMMU     MUON            *
0028   // *   3  0.11080  0.11080     DADMPI     PION            *
0029   // *   4  0.25320  0.25320     DADMRO     RHO (->2PI)     *
0030   // *   5  0.18250  0.18250     DADMAA     A1  (->3PI)     *
0031   // *   6  0.00710  0.00710     DADMKK     KAON            *
0032   // *   7  0.01280  0.01280     DADMKS     K*              *
0033   // *   8  0.04500  0.04500     DAD4PI     2PI- PI+ PI0    *
0034   // *   9  0.01230  0.01230     DAD4PI     PI- 3PI0        *
0035   // *  10  0.00500  0.00500     DADNPI     2PI- PI+ 2PI0   *
0036   // *  11  0.00080  0.00080     DADNPI     3PI- 2PI+       *
0037   // *  12  0.00020  0.00020     DADNPI     3PI- 2PI+ PI0   *
0038   // *  13  0.00030  0.00030     DADNPI     2PI- PI+ 3PI0   *
0039   // *  14  0.00190  0.00190     DADMPK     K+ K- PI+       *
0040   // *  15  0.00120  0.00120     DADMPK     K0B K0 PI+      *
0041   // *  16  0.00300  0.00300     DADMPK     K+ K0B PI0      *
0042   // *  17  0.00100  0.00100     DADMPK     K+ PI0 PI0      *
0043   // *  18  0.00230  0.00230     DADMPK     K+ PI- PI+      *
0044   // *  19  0.00390  0.00390     DADMPK     K0 PI0 PI+      *
0045   // *  20  0.00170  0.00170     DADMPK     ET PI- PI0      *
0046   // *  21  0.00160  0.00160     DADMPK     PI-PI0 GAM      * (obsolete ... merged with 4 do to pythia and photos radiation)
0047   // *  22  0.00160  0.00160     DADMPK     K- K0B GAM      * (ignore photon?)
0048   /////////////////////////////////////////////////////////////////////////////////////////////
0049   // List of Pythia8 Modes
0050   //    3        0     0   0.1076825 1521       16     -211
0051   //    6        1     0   0.0069601 1521       16     -321
0052   //    1        2     0   0.1772832 1531       16       11      -12
0053   //    2        3     0   0.1731072 1531       16       13      -14
0054   //    4        4     0   0.2537447 1532       16      111     -211
0055   //    22       5     0   0.0015809 1532       16      311     -321
0056   //    Keta     6     0   0.0001511 1532       16      221     -321
0057   //    7        7     0   0.0083521 1533       16     -211     -311
0058   //    7        8     0   0.0042655 1533       16      111     -321
0059   //    5      0   0.0924697 1541       16      111      111     -211
0060   //    5    10     1   0.0925691 1543       16     -211     -211      211
0061   //    19      11     0   0.0039772 1542       16      111     -211     -311
0062   //    18      12     0   0.0034701 1542       16     -211      211     -321
0063   //    14      13     0   0.0014318 1542       16     -211     -321      321
0064   //    16      14     0   0.0015809 1542       16      111      311     -321
0065   //    15      15     0   0.0011932 1542       16      130     -211      310
0066   //    17      16     0   0.0006463 1542       16      111      111     -321
0067   //    15      17     0   0.0002386 1542       16      130      130     -211
0068   //    15      18     0   0.0002386 1542       16     -211      310      310
0069   //    20      19     0   0.0013821 1543       16      111     -211      221
0070   //    21->4   20     0   0.0017520 1544       16       22      111     -211 (obsolete ... merged with 4 do to pythia and photos radiation)
0071   //    8       21     0   0.0459365 1551       16      111     -211     -211      211
0072   //    9       22     0   0.0104401 1551       16      111      111      111     -211
0073   //    10      23     0   0.0049069 1561       16      111      111     -211     -211      211
0074   //    25      24     0   0.0009515 1561       16      111      111      111      111     -211
0075   //    11      25     0   0.0008342 1561       16     -211     -211     -211      211      211
0076   //    26      26     0   0.0001631    0       16     -211     -211      211      221
0077   //    27      27     0   0.0001491    0       16      111      111     -211      221
0078   //    28      28     0   0.0001392    0       16      111      111     -211      223
0079   //    29      29     0   0.0001193    0       16     -211     -211      211      223
0080   //    30      30     0   0.0004077    0       16      223     -321
0081   //    31      31     0   0.0004773    0       16      111      111      111     -321
0082   //    32      32     0   0.0003052    0       16      111     -211      211     -321
0083   //    33      33     0   0.0002784    0       16      221     -323
0084   //    34      34     0   0.0002366    0       16      111      111     -211     -311
0085   //    35      35     0   0.0002237    0       16     -211     -211      211     -311
0086   //    36      36     0   0.0002953    0       16      111     -211     -311      311
0087   //    37      37     0   0.0000590    0       16      111     -211     -321      321
0088 
0089   enum MODE {
0090     MODE_UNKNOWN = 0,
0091     MODE_ELECTRON,
0092     MODE_MUON,
0093     MODE_PION,
0094     MODE_PIPI0,
0095     MODE_3PI,
0096     MODE_PI2PI0,
0097     MODE_KAON,
0098     MODE_K0PI,
0099     MODE_KPI0,
0100     MODE_3PIPI0,
0101     MODE_PI3PI0,
0102     MODE_3PI2PI0,
0103     MODE_5PI,
0104     MODE_5PIPI0,
0105     MODE_3PI3PI0,
0106     MODE_KPIK,
0107     MODE_K0BK0PI,
0108     MODE_KK0BPI0,
0109     MODE_K2PI0,
0110     MODE_KPIPI,
0111     MODE_PIK0PI0,
0112     MODE_ETAPIPI0,
0113     MODE_PIPI0GAM,
0114     MODE_KK0B,
0115     MODE_PI4PI0,
0116     MODE_3PIETA,
0117     MODE_PI2PI0ETA,
0118     MODE_PI2PI0OMEGA,
0119     MODE_3PIOMEGA,
0120     MODE_KOMEGA,
0121     MODE_K3PI0,
0122     MODE_K2PIPI0,
0123     MODE_KETA,
0124     MODE_K0PI2PI0,
0125     MODE_K03PI,
0126     MODE_2K0PIPI0,
0127     MODE_KPIKPI0,
0128     NMODEID
0129   };
0130 
0131   enum TauDecayStructure {
0132     other = 0,
0133     OneProng = 1,
0134     ThreeProng = 2,
0135     FiveProng = 4,
0136     OnePi0 = 8,
0137     TwoPi0 = 32,
0138     ThreePi0 = 64,
0139     Res_a1_pm = 128,
0140     Res_a1_0 = 256,
0141     Res_rho_pm = 512,
0142     Res_rho_0 = 1024,
0143     Res_eta = 2048,
0144     Res_omega = 4096,
0145     Res_Kstar_pm = 8192,
0146     Res_Kstar_0 = 16384,
0147     KS0_to_pipi = 32768
0148   };
0149 
0150   TauDecay();
0151   ~TauDecay();
0152 
0153   void Reset();
0154   bool isTauFinalStateParticle(int pdgid);
0155   bool isTauParticleCounter(int pdgid);
0156   bool isTauResonanceCounter(int pdgid);
0157   void ClassifyDecayMode(unsigned int &MODE_ID, unsigned int &TauBitMask);
0158   unsigned int nProng(unsigned int &TauBitMask);
0159   unsigned int nPi0(unsigned int &TauBitMask);
0160   bool hasResonance(unsigned int &TauBitMask, int pdgid);
0161   static std::string DecayMode(unsigned int &MODE_ID);
0162 
0163 private:
0164   // Functions
0165   void ClassifyDecayResonance(unsigned int &TauBitMask);
0166 
0167   //counting varibles
0168   unsigned int n_pi, n_pi0, n_K, n_K0L, n_K0S, n_gamma, n_nu, n_e, n_mu;                // particle counters
0169   unsigned int n_a1, n_a10, n_rho, n_rho0, n_eta, n_omega, n_Kstar0, n_Kstar, unknown;  // resonance counters
0170 };
0171 #endif