Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-08-05 09:15:53

0001 //
0002 // ********************************************************************
0003 // * License and Disclaimer                                           *
0004 // *                                                                  *
0005 // * The  Geant4 software  is  copyright of the Copyright Holders  of *
0006 // * the Geant4 Collaboration.  It is provided  under  the terms  and *
0007 // * conditions of the Geant4 Software License,  included in the file *
0008 // * LICENSE and available at  http://cern.ch/geant4/license .  These *
0009 // * include a list of copyright holders.                             *
0010 // *                                                                  *
0011 // * Neither the authors of this software system, nor their employing *
0012 // * institutes,nor the agencies providing financial support for this *
0013 // * work  make  any representation or  warranty, express or implied, *
0014 // * regarding  this  software system or assume any liability for its *
0015 // * use.  Please see the license in the file  LICENSE  and URL above *
0016 // * for the full disclaimer and the limitation of liability.         *
0017 // *                                                                  *
0018 // * This  code  implementation is the result of  the  scientific and *
0019 // * technical work of the GEANT4 collaboration.                      *
0020 // * By using,  copying,  modifying or  distributing the software (or *
0021 // * any work based  on the software)  you  agree  to acknowledge its *
0022 // * use  in  resulting  scientific  publications,  and indicate your *
0023 // * acceptance of all terms of the Geant4 Software license.          *
0024 // ********************************************************************
0025 //
0026 // ABLAXX statistical de-excitation model
0027 // Jose Luis Rodriguez, UDC (translation from ABLA07 and contact person)
0028 // Pekka Kaitaniemi, HIP (initial translation of ablav3p)
0029 // Aleksandra Kelic, GSI (ABLA07 code)
0030 // Davide Mancusi, CEA (contact person INCL)
0031 // Aatos Heikkinen, HIP (project coordination)
0032 //
0033 
0034 #pragma once
0035 
0036 #include "globals.hh"
0037 
0038 /**
0039  * An interface to data used by ABLA. This interface allows
0040  * us to abstract the actual source of data. Currently the data is
0041  * read from datafiles by using class G4AblaDataFile.  @see
0042  * G4AblaDataFile
0043  */
0044 
0045 class G4AblaVirtualData
0046 {
0047   protected:
0048     /**
0049      * Constructor, destructor
0050      */
0051     G4AblaVirtualData();
0052 
0053     virtual ~G4AblaVirtualData() = default;
0054 
0055   public:
0056     /**
0057      * Set the value of Alpha.
0058      */
0059     G4bool setAlpha(G4int A, G4int Z, G4double value);
0060 
0061     /**
0062      * Set the value of Ecnz.
0063      */
0064     G4bool setEcnz(G4int A, G4int Z, G4double value);
0065 
0066     /**
0067      * Set the value of Vgsld.
0068      */
0069     G4bool setVgsld(G4int A, G4int Z, G4double value);
0070 
0071     /**
0072      * Set the value of RMS.
0073      */
0074     G4bool setRms(G4int A, G4int Z, G4double value);
0075 
0076     /**
0077      * Set the value of experimental masses.
0078      */
0079     G4bool setMexp(G4int A, G4int Z, G4double value);
0080 
0081     /**
0082      * Set the value of experimental masses ID.
0083      */
0084     G4bool setMexpID(G4int A, G4int Z, G4int value);
0085 
0086     /**
0087      * Set the value of beta2 deformation.
0088      */
0089     G4bool setBeta2(G4int A, G4int Z, G4double value);
0090 
0091     /**
0092      * Set the value of beta4 deformation.
0093      */
0094     G4bool setBeta4(G4int A, G4int Z, G4double value);
0095 
0096     /**
0097      * Get the value of Alpha.
0098      */
0099     G4double getAlpha(G4int A, G4int Z);
0100 
0101     /**
0102      * Get the value of Ecnz.
0103      */
0104     G4double getEcnz(G4int A, G4int Z);
0105 
0106     /**
0107      * Get the value of Vgsld.
0108      */
0109     G4double getVgsld(G4int A, G4int Z);
0110 
0111     /*
0112      * Get the value of RMS.
0113      */
0114     G4double getRms(G4int A, G4int Z);
0115 
0116     /**
0117      * Get the value of experimental masses.
0118      */
0119     G4double getMexp(G4int A, G4int Z);
0120 
0121     /**
0122      * Get the value of experimental masses ID.
0123      */
0124     G4int getMexpID(G4int A, G4int Z);
0125 
0126     /**
0127      * Get the value of beta2 deformation.
0128      */
0129     G4double getBeta2(G4int A, G4int Z);
0130 
0131     /**
0132      * Get the value of beta4 deformation.
0133      */
0134     G4double getBeta4(G4int A, G4int Z);
0135 
0136     virtual G4bool readData() = 0;
0137 
0138   private:
0139     static const G4int sRows = 180;
0140     static const G4int sCols = 122;
0141 
0142     static const G4int betaRows = sCols + sRows;
0143     static const G4int betaCols = 137;
0144 
0145     G4double alpha[sRows][sCols];
0146     G4double ecnz[sRows][sCols];
0147     G4double vgsld[sRows][sCols];
0148     G4double rms[sRows][sCols];
0149     G4double mexp[sRows][sCols];
0150     G4int mexpid[sRows][sCols];
0151     G4double beta2[betaRows][betaCols];
0152     G4double beta4[betaRows][betaCols];
0153 };