Back to home page

EIC code displayed by LXR

 
 

    


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

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 EVTPARTICLEDECAYLIST_HH
0022 #define EVTPARTICLEDECAYLIST_HH
0023 
0024 #include "EvtGenBase/EvtParticleDecay.hh"
0025 
0026 typedef EvtParticleDecay* EvtParticleDecayPtr;
0027 
0028 class EvtParticleDecayList {
0029   public:
0030     EvtParticleDecayList()
0031     {
0032         _decaylist = 0;
0033         _nmode = 0;
0034         _rawbrfrsum = 0;
0035     }
0036 
0037     EvtParticleDecayList( const EvtParticleDecayList& o );
0038 
0039     ~EvtParticleDecayList();
0040 
0041     EvtParticleDecayList& operator=( const EvtParticleDecayList& o );
0042 
0043     int getNMode() const { return _nmode; }
0044 
0045     void setNMode( int nmode );
0046 
0047     EvtDecayBase* getDecayModel( EvtParticle* p );
0048     EvtDecayBase* getDecayModel( int imode );
0049 
0050     EvtParticleDecay& getDecay( int nchannel ) const;
0051 
0052     double getRawBrfrSum() { return _rawbrfrsum; }
0053     void setRawBrfrSum( double rawbrfrsum ) { _rawbrfrsum = rawbrfrsum; }
0054 
0055     void makeChargeConj( EvtParticleDecayList* conjDecayList );
0056 
0057     void removeDecay();
0058 
0059     void alocateDecay( int nmode )
0060     {
0061         _decaylist = new EvtParticleDecayPtr[nmode];
0062     }
0063 
0064     void removeMode( EvtDecayBase* decay );
0065 
0066     void addMode( EvtDecayBase* decay, double brfr, double massmin );
0067     void finalize();
0068 
0069     void printSummary();
0070 
0071     bool isJetSet() const;
0072 
0073   private:
0074     EvtParticleDecayPtr* _decaylist;
0075 
0076     double _rawbrfrsum;
0077     int _nmode;
0078 };
0079 
0080 #endif