Fluxes

Samples:

  1. ePIC geometry, simulation VMC+gcalor (ROOT5 VMC geometry + gcalor), with 1.7T magnetic field with map from MARCO_v.6.4.1.1.3_1.7T_Magnetic_Field_Map_2022_11_14_rad_coords_cm_T.txt, the ep kinematics from /gpfs02/eic/DATA/PYTHIA/ep/YellowReport/TREES/pythia.ep.18x275.1Mevents.RadCor=0.Q2=0.00001-1.0.kT=1.0*root, and the primary vertex σZ = 11 cm.
  2. The are a few short comings:
  3. Comparison is done for ePIC and Athena (Oct 2021) calculations

Legend

Instruction how to run with ROOT5 and TGeant3 VMC on RCF

  1. To get TFG STAR software enviroment just follow instruction on https://github.com/fisyak/star-sw/tree/TFG
  2. To submit jobs use star-submit with ~fisyak/xml/fluxePIC.xml
  3. As reult it will be produced flux*.root files. You need to hadd o fluxePIC.root and run : root.exe fluxePIC.root ~fisyak/macros/Flux.C+. As a result it will be produced plots and root files with TCanvases shown below.

What should be done in order to move the calculation in ROOT6 and GEANT4.

  1. It is needed to low TMedia cuts for tracking and set GCALOR like hadron processing
    
    ...
        TVirtualMC::GetMC()->SetCut("CUTGAM", 1e-5  );
        TVirtualMC::GetMC()->SetCut("CUTELE", 1e-5  );
        TVirtualMC::GetMC()->SetCut("CUTHAD", 1e-3  );
        TVirtualMC::GetMC()->SetCut("CUTNEU", 1e-14 );
        TVirtualMC::GetMC()->SetCut("CUTMUO", 1e-3  );
        TVirtualMC::GetMC()->SetCut("BCUTE",  1e-3  );
        TVirtualMC::GetMC()->SetCut("BCUTM",  1e-3  );
        TVirtualMC::GetMC()->SetCut("DCUTE",  1e-3  );
        TVirtualMC::GetMC()->SetCut("DCUTM",  1e-3  );
        TVirtualMC::GetMC()->SetCut("PPCUTM", 1e-3  );
        TVirtualMC::GetMC()->SetCut("TOFMAX", 1e3);
        //    TVirtualMC::GetMC()->SetProcess("HARD", 6.); // fluka+Mikap"
        TVirtualMC::GetMC()->SetProcess("HADR", 5.); // gcalor
    ...
    
    
  2. It is needded to fill histogram with position of primary vertex, Vz is used for normolization plots to estimated fluxes.
    
        static TH1D *Vx = 0, *Vy = 0, *Vz = 0;
    ...
        if (! Vx) {
          if (GetChain()->GetTFile()) GetChain()->GetTFile()->cd();
          Vx = new TH1D("Vx","Geant primary vertex X",50,-5.0,5.0);
          Vy = new TH1D("Vy","Geant primary vertex Y",50,-5.0,5.0);
          Vz = new TH1D("Vz","Geant primary vertex Z",50,-100,100);
        }
    ...
          Vx->Fill(orig.X());
          Vy->Fill(orig.Y());
          Vz->Fill(orig.Z());
    ...
    
    
  3. Add in GEANT stepping function call to usflux (https://github.com/fisyak/star-sw/blob/TFG/StarVMC/StarVMCApplication/StarVMCApplication.cxx lines 849:1070)
    
    ...
    void StarVMCApplication::usflux() {
      Int_t        id;
      Float_t      OmegaN;
      Int_t        i;
      Float_t      ZZ, RR;
      Int_t        NstepB;
      Float_t      stepF, destepF, XYZ[3];
      Float_t      RADIUS;
      Int_t        p;
      enum {Nregions = 1, Nparts = 5, NH1T = 3, NH1TE = NH1T + 1, NH2T = 9};
      const Char_t *NameV[Nregions] = {""}; 
      static TH1F *histV1[Nregions][NH1TE][Nparts];
      //#define __3DPLOTS__
    #ifdef __3DPLOTS__
      static TH3F *histV2[NH2T][Nparts];
    #else
      static TH2F *histV2[NH2T][Nparts];
    #endif
      static TH2F *tofg = 0;
      static Bool_t first = kTRUE;
      if (first) {
        assert(StMaker::GetChain()->GetTFile());
    ...
    
    

Fluxes


ePIC_RCFePICepAthena
Fig.1
Fig.2
Fig.3
Fig.4
Fig.5
Fig.6
Fig.7
Fig.8
Fig.9
Fig.10
Fig.11
Fig.12
Fig.13
Fig.14
Fig.15
Fig.16
Fig.17
Fig.18
Fig.19
Fig.20
Fig.21
Fig.22
Fig.23