Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2024-06-18 07:06:22

0001 ///////////////////////////////////////////////////////////////////////////
0002 //
0003 //    Copyright 2010
0004 //
0005 //    This file is part of starlight.
0006 //
0007 //    starlight 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 //    starlight 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 starlight. If not, see <http://www.gnu.org/licenses/>.
0019 //
0020 ///////////////////////////////////////////////////////////////////////////
0021 //
0022 // File and Version Information:
0023 // $Rev:: 276                         $: revision of last commit
0024 // $Author:: jnystrand                $: author of last commit
0025 // $Date:: 2016-09-13 19:54:42 +0100 #$: date of last commit
0026 //
0027 // Description:
0028 //
0029 //
0030 //
0031 ///////////////////////////////////////////////////////////////////////////
0032 
0033 
0034 #ifndef STARLIGHTCONSTANTS_H_INCLUDE
0035 #define STARLIGHTCONSTANTS_H_INCLUDE
0036 
0037 
0038 /*
0039  * Constants are set here
0040  */
0041 namespace starlightConstants
0042 {
0043 
0044 
0045     // constants
0046     static const double hbarc    = 0.1973269718;
0047     static const double hbarcmev = hbarc*1000.;
0048     static const double pi       = 3.141592654;
0049     static const double twoPi    = 2 * pi;
0050     static const double alpha    = 1/137.035999074;
0051 
0052     // deuteron slope parameter
0053     static const double deuteronSlopePar = 9.5; // [(GeV/c)^{-2}]
0054     // particle masses
0055     static const double protonMass      = 0.938272046;   // [GeV/c^2]
0056     static const double pionChargedMass = 0.13957018;    // [GeV/c^2]
0057         static const double pionNeutralMass = 0.1349766;     // [GeV/c^2]
0058     static const double kaonChargedMass = 0.493677;      // [GeV/c^2]
0059     static const double mel      = 0.000510998928;       // [GeV/c^2]
0060     static const double muonMass = 0.1056583715;         // [GeV/c^2]
0061     static const double tauMass  = 1.77682;              // [GeV/c^2]
0062     
0063     static const double f0Mass = 0.990;                  // [GeV/c^2]
0064     static const double f0Width = 0.100;                 // [GeV/c^2]
0065     static const double f0BrPiPi = 1.0;                  // Branching ratio for pipi (set to 100%)
0066         static const double etaMass = 0.547862;              // [GeV/c^2]
0067         static const double etaWidth = 0.00000131;           // [GeV/c^2]
0068         static const double etaPrimeMass = 0.95778;          // [GeV/c^2]
0069         static const double etaPrimeWidth = 0.000198;        // [GeV/c^2]
0070         static const double etaCMass = 2.9836;               // [GeV/c^2]
0071         static const double etaCWidth = 0.0322;              // [GeV/c^2]
0072         static const double f2Mass = 1.2751;                 // [GeV/c^2]
0073         static const double f2Width = 0.1851;                // [GeV/c^2]
0074         static const double f2BrPiPi = 0.561;                // Branching ratio for pi+pi-
0075         static const double a2Mass = 1.3183;                 // [GeV/c^2]
0076         static const double a2Width = 0.105;                 // [GeV/c^2]
0077         static const double f2PrimeMass = 1.525;             // [GeV/c^2]
0078         static const double f2PrimeWidth = 0.073;            // [GeV/c^2]
0079         static const double f2PrimeBrKK = 0.887;             // Branching ratio for KKbar
0080         static const double zoverz03Mass = 1.540;            // [GeV/c^2]
0081 
0082 
0083         static const double f0PartialggWidth = 0.29E-6;      // [GeV/c^2]
0084         static const double etaPartialggWidth = 0.516E-6;    // [GeV/c^2]
0085         static const double etaPrimePartialggWidth = 4.35E-6;// [GeV/c^2]
0086         static const double etaCPartialggWidth = 5.0E-6;     // [GeV/c^2]
0087         static const double f2PartialggWidth = 3.03E-6;      // [GeV/c^2]
0088         static const double a2PartialggWidth = 1.0E-6;       // [GeV/c^2]
0089         static const double f2PrimePartialggWidth = 0.081E-6;// [GeV/c^2]
0090         static const double zoverz03PartialggWidth = 0.1E-6; // [GeV/c^2]
0091 
0092         static const double f0Spin = 0.0;
0093         static const double etaSpin = 0.0;
0094         static const double etaPrimeSpin = 0.0;
0095         static const double etaCSpin = 0.0;
0096         static const double f2Spin = 2.0;
0097         static const double a2Spin = 2.0;
0098         static const double f2PrimeSpin = 2.0;
0099         static const double zoverz03Spin = 2.0;
0100         static const double axionSpin = 0.0;  // AXION HACK
0101 
0102         static const double rho0Mass  = 0.769;               // [GeV/c^2]
0103     static const double rho0Width = 0.1517;              // [GeV/c^2]
0104     static const double rho0BrPiPi = 1.0;                // Branching ratio pi+pi-
0105         static const double rho0PrimeMass  = 1.540;          // [GeV/c^2]
0106     static const double rho0PrimeWidth = 0.570;          // [GeV/c^2]
0107     static const double rho0PrimeBrPiPi = 1.0;           // Branching ratio pi+pi- (set to 100%)
0108         static const double OmegaMass  = 0.78265;            // [GeV/c^2]
0109     static const double OmegaWidth = 0.00849;            // [GeV/c^2]
0110     static const double OmegaBrPiPi = 0.0153;            // Branching ratio pi+pi-
0111     static const double OmegaBrPi0Gamma = 0.0828;        // Branching ratio pi0 gamma
0112         static const double PhiMass  = 1.019461;             // [GeV/c^2]
0113     static const double PhiWidth = 0.004266;             // [GeV/c^2]
0114     static const double PhiBrKK = 0.489;                 // Branching ratio K+K-
0115         static const double JpsiMass = 3.096916;             // [GeV/c^2]
0116         static const double JpsiWidth = 0.0000929;           // [GeV/c^2]
0117     static const double JpsiBree = 0.05971;              // Branching ratio e+e-
0118     static const double JpsiBrmumu = 0.05961;            // Branching ratio mu+mu-
0119         static const double Psi2SMass = 3.686109;            // [GeV/c^2]
0120         static const double Psi2SWidth = 0.000299;           // [GeV/c^2]
0121     static const double Psi2SBree = 0.00789;             // Branching ratio e+e-
0122     static const double Psi2SBrmumu = 0.0079;            // Branching ratio mu+mu-
0123         static const double Upsilon1SMass = 9.46030;         // [GeV/c^2]
0124         static const double Upsilon1SWidth = 0.00005402;     // [GeV/c^2]
0125     static const double Upsilon1SBree = 0.0238;          // Branching ratio e+e-
0126     static const double Upsilon1SBrmumu = 0.0248;        // Branching ratio mu+mu-
0127         static const double Upsilon2SMass = 10.02326;        // [GeV/c^2]
0128         static const double Upsilon2SWidth = 0.00003198;     // [GeV/c^2]
0129     static const double Upsilon2SBree = 0.0191;          // Branching ratio e+e-
0130     static const double Upsilon2SBrmumu = 0.0193;        // Branching ratio mu+mu-
0131         static const double Upsilon3SMass = 10.3552;         // [GeV/c^2]
0132         static const double Upsilon3SWidth = 0.00002032;     // [GeV/c^2]   
0133     static const double Upsilon3SBree = 0.0218;          // Branching ratio e+e- (set to same as mu+mu-)
0134     static const double Upsilon3SBrmumu = 0.0218;        // Branching ratio mu+mu-
0135     
0136     enum particleTypeEnum {
0137         UNKNOWN        = 0,
0138         ELECTRON       = 11,
0139         MUON           = 13,
0140         TAUON          = 15,
0141         TAUONDECAY     = 10015,
0142         PROTON         = 212,
0143         PIONNEUTRAL    = 111,
0144         PION           = 211,
0145         KAONCHARGE     = 321,
0146         KAONNEUTRAL    = 310,
0147         A2             = 115,
0148         ETA            = 221,
0149         F2             = 225,
0150         ETAPRIME       = 331,
0151         F2PRIME        = 335,
0152         ETAC           = 441,
0153         F0             = 9010221,
0154         ZOVERZ03       = 33,
0155         RHO            = 113,
0156         RHOZEUS        = 913,
0157         FOURPRONG      = 999,
0158         OMEGA          = 223,
0159         OMEGA_pi0gamma = 223022,
0160         PHI            = 333,
0161         JPSI           = 443,
0162         JPSI_ee        = 443011,
0163         JPSI_mumu      = 443013,
0164         JPSI2S         = 444,
0165         JPSI2S_ee      = 444011,
0166         JPSI2S_mumu    = 444013,
0167         UPSILON        = 553,
0168         UPSILON_ee     = 553011,
0169         UPSILON_mumu   = 553013,
0170         UPSILON2S      = 554,
0171         UPSILON2S_ee   = 554011,
0172         UPSILON2S_mumu = 554013,
0173         UPSILON3S      = 555,
0174         UPSILON3S_ee   = 555011,
0175         UPSILON3S_mumu = 555013,
0176             AXION          = 88,  //AXION HACK
0177             PHOTON         = 22
0178     };
0179 
0180     enum decayTypeEnum {
0181         NOTKNOWN        = 0,
0182         NARROWVMDEFAULT = 1,
0183         WIDEVMDEFAULT   = 2,
0184         PSIFAMILY       = 3,
0185         LEPTONPAIR      = 4,
0186         SINGLEMESON     = 5
0187     };
0188 
0189     enum interactionTypeEnum {
0190         UNSPECIFIED         = 0,
0191         PHOTONPHOTON        = 1,
0192         PHOTONPOMERONNARROW = 2,
0193         PHOTONPOMERONWIDE   = 3,
0194                 PHOTONPOMERONINCOHERENT = 4,
0195                 PHOTONUCLEARSINGLE  = 5,
0196         PHOTONUCLEARDOUBLE  = 6,
0197         PHOTONUCLEARSINGLEPA = 7,
0198         PHOTONUCLEARSINGLEPAPY = 8,
0199         E_PHOTONPOMERONNARROW = 12,
0200         E_PHOTONPOMERONWIDE = 13
0201     };
0202 
0203         enum systemTypeEnum{
0204         NONSTANDARD         = 0,
0205         PP                  = 1,
0206         PA                  = 2,
0207         AA                  = 3
0208         };
0209         
0210         enum targetTypeEnum {
0211                 NOTHADRON           = 0,
0212                 NUCLEUS             = 1, //coherent gamma+A
0213                 NUCLEON             = 2  //gamma+p or incoherent gamma+A
0214         };        
0215     
0216     //Structure for each event's set of tracks.
0217     struct event{
0218  
0219     public:
0220 
0221         int _numberOfTracks;
0222         double px[30],py[30],pz[30];
0223         int _fsParticle[30];
0224         int _charge[30];
0225         //To help track mothers and daughters produced through pythia.
0226         int _mother1[30];
0227         int _mother2[30];
0228         int _daughter1[30];
0229         int _daughter2[30];
0230         //Normally we just set vertices to 0
0231         //But for pythia, we decay additional states
0232         int _numberOfVertices;
0233         double _vertx[10],_verty[10],_vertz[10];    
0234     };
0235 
0236 
0237 }  // starlightConstants
0238 
0239 
0240 #endif  // STARLIGHTCONSTANTS_H_INCLUDE
0241