Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-08-06 09:20:04

0001 
0002 /***********************************************************************
0003 * Copyright 1998-2020 CERN for the benefit of the EvtGen authors       *
0004 *                                                                      *
0005 * This file is part of EvtGen.                                         *
0006 *                                                                      *
0007 * EvtGen is free software: you can redistribute it and/or modify       *
0008 * it under the terms of the GNU General Public License as published by *
0009 * the Free Software Foundation, either version 3 of the License, or    *
0010 * (at your option) any later version.                                  *
0011 *                                                                      *
0012 * EvtGen is distributed in the hope that it will be useful,            *
0013 * but WITHOUT ANY WARRANTY; without even the implied warranty of       *
0014 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the        *
0015 * GNU General Public License for more details.                         *
0016 *                                                                      *
0017 * You should have received a copy of the GNU General Public License    *
0018 * along with EvtGen.  If not, see <https://www.gnu.org/licenses/>.     *
0019 ***********************************************************************/
0020 
0021 #ifndef EvtBcVHad_HH
0022 #define EvtBcVHad_HH
0023 
0024 #include "EvtGenBase/EvtDecayAmp.hh"
0025 #include "EvtGenBase/EvtVector4C.hh"
0026 
0027 #include "EvtGenModels/EvtBCVFF2.hh"
0028 #include "EvtGenModels/EvtWHad.hh"
0029 
0030 #include <memory>
0031 #include <string>
0032 
0033 class EvtParticle;
0034 
0035 // Description: Module to implement Bc -> psi + (n pi) + (m K) decays
0036 
0037 class EvtBcVHad : public EvtDecayAmp {
0038   public:
0039     std::string getName() override;
0040     EvtDecayBase* clone() override;
0041     void initProbMax() override;
0042     void init() override;
0043     void decay( EvtParticle* p ) override;
0044 
0045   protected:
0046     // Hadronic current function
0047     EvtVector4C hardCurr( EvtParticle* root_particle ) const;
0048 
0049   private:
0050     // whichfit --- code of the Bc -> VW formfactor set:
0051     //   1 - SR
0052     //   2 - PM
0053     int whichfit;
0054 
0055     // final vector particle code
0056     int idVector;
0057 
0058     // out_code: code of the hadronic final state
0059     //   1 - pi+
0060     //   2 - pi+ pi0
0061     //   3 - pi+ pi+ pi-
0062     //   4 - 4pi
0063     //   5 - pi+ pi+ pi- pi- pi+
0064     //   6 - K+ K- pi+
0065     //   7 - K+ pi+ pi-
0066     //   8 - K_S0 K+
0067     //   9 - K+ K- pi+ pi+ pi-
0068     //  10 - pi+ pi+ pi+ pi+ pi- pi- pi- (7 charged pi)
0069     //  11 - K+ pi+ pi+ pi- pi-
0070     int out_code;
0071 
0072     std::unique_ptr<EvtBCVFF2> ffmodel;
0073     std::unique_ptr<EvtWHad> wcurr;
0074 };
0075 
0076 #endif