GSI Forum
GSI Helmholtzzentrum für Schwerionenforschung

Home » Hades » Pluto » the simulation of ep to e delta(1910)+, delta(1910)+ to Sigma(1385)^0 K+
the simulation of ep to e delta(1910)+, delta(1910)+ to Sigma(1385)^0 K+ [message #19246] Wed, 27 April 2016 11:51 Go to next message
Xinying Song is currently offline  Xinying Song
Messages: 7
Registered: January 2016
Location: Germany
occasional visitor
From: *ikp.kfa-juelich.de
Hi,

I want to simulate the process of ep-> e delta(1910)+, delta(1910)+-> Sigma(1385)^0 K+. My code is like this:


#include "TGraphAsymmErrors.h"
#include "TH1.h"
#include "TH2.h"
#include "TH3.h"
#include "TChain.h"
#include "TCanvas.h"
#include "TF1.h"
#include "TGraphAsymmErrors.h"
#include "TFile.h"
#include "TSystem.h"

#include "PParticle.h"
#include "PInclusiveModel.h"
#include "PReaction.h"
#include "PBeamSmearing.h"
#include "PAnyDistribution.h"
#include "plugins/scatter_mod/PScatterCrossSection.h"
#include "plugins/sigmatoLee/PSigmatoLee.h"


void tmp_YtoLambdaee() //int input, int events
{

  int events = 100;
  int input = 10;
  double ebeam = 11.0;
  bool xsection = 1;
  gROOT->Reset();
  PUtils::SetSeed(input*1000);
makeStaticData()->AddParticle(70,"Sigma13850", 1.3837);
makeStaticData()->SetParticleTotalWidth("Sigma13850",0.0360);
makeStaticData()->SetParticleBaryon("Sigma13850",1);
makeStaticData()->SetParticleLMass("Sigma13850",1.115);
makeStaticData()->AddDecay("Sigma13850 --> Lambda + dilepton", "Sigma13850", "Lambda, dilepton", 1.0);
//makeStaticData()->AddDecay("dilepton --> e+ + e-", "dilepton", "e+, e-", 1.0);


makeStaticData()->AddParticle(71,"Delta1910+", 1.910);
makeStaticData()->SetParticleTotalWidth("Delta1910+",0.340);
makeStaticData()->SetParticleBaryon("Delta1910+",1);
makeStaticData()->SetParticleLMass("Delta1910+",1.89);
makeStaticData()->AddDecay("Delta1910+ --> Sigma13850 + K+", "Delta1910+", "Sigma13850, K+", 1.0);
//~~~~//makeStaticData()->AddDecay("Lambda --> p + pi- + dilepton", "Lambda", "p, pi-, dilepton",1.0);

  PAnyDistribution* decay =
  new PAnyDistribution("v_slope", "A function to add a new t-slope");
  decay->Add("q,     parent");
  decay->Add("e-,     daughter");
  decay->Add("Delta1910+,     daughter");
  TH1F * cache  = new TH1F ("cache","v cache",400,0,11.0);
  decay->AddEquation(cache,"beam = _parent->GetBeam(); beam->Boost(_parent) ; t1 = (beam - [e-,1])->E(); _x = t1;");
  decay->AddEquation("_f = exp(-1000*t1);");
  makeDistributionManager()->Add(decay);





  PScatterCrossSection *model = new PScatterCrossSection("mymodel","My cross section");
  model->Add("e-,grandparent,beam");
  model->Add("p,grandparent,target");
  model->Add("q,parent");
  model->Add("e-,daughter,spectator");
  model->Add("Delta1910+,daughter,primary");

  double M_P = 0.938272;   //Proton mass
  double M_el = 0.000510999;   //Electron mass

  //Define the range of the c.m. sampling
  double En_beam = TMath::Sqrt(ebeam*ebeam + M_el*M_el);
  double q= TMath::Sqrt((2.*En_beam*M_P)+(M_P*M_P) + (M_el*M_el));
  double q_min = q - q/10000.;
  double q_max = q + q/10000.;
  //Now let set up the model

  model->SetRange(q_min,q_max);
  model->SetNpy(250);
  model->SetNpx(250);  //Use this after SetNpy analysis
  makeDistributionManager()->Add(model);

  //Set up reaction as usual
  char lund_file[75];

  cout<<"#########################################################################"<<endl;
  cout<<"################## Cross-Section Genertation is occuring ################"<<endl;
  cout<<"#########################################################################"<<endl;
  sprintf(lund_file,"%s","etaPXSection.lund");
/////////disribution of Sigma1385_0 to Lambda dileption
PSigmatoLee  *sigmadecaytoLee = new PSigmatoLee("sigma13850_to_e+_e-_lambda_matrix","sigma13850 to e+e-_Lambda Distribution");
sigmadecaytoLee->Add("Sigma13850,parent");
sigmadecaytoLee->Add("Lambda,daughter");
sigmadecaytoLee->Add("dilepton,primary");
sigmadecaytoLee->SetMax(0.2);
makeDistributionManager()->Add(sigmadecaytoLee);

  PReaction *my_reaction = new PReaction("_P1 = 11.0","e-","p","e- Delta1910+ [Sigma13850 [dilepton Lambda] K+]","YtosigmaK",0,0,0,0);

  my_reaction->Preheating(500);
  my_reaction->Print();
  my_reaction->Loop(events);
//  

}


Here is the class written by myself which is put in /Pluto/pluto_v5.43/plugins/. I put it in the attachment and
There are errors like this when I run it,


it came out so many

Warning in <PDalitzDecay::dGdM>: Unknown decay

I look up this sentence in PDalitzDecay.cc, it may be because of there is no Dalitz decay of sigma13850->Lambda dilepton,though I defind this decay in plugins, So how to solve this problem?

[Updated on: Wed, 27 April 2016 13:51]

Report message to a moderator

Re: the simulation of ep to e delta(1910)+, delta(1910)+ to Sigma(1385)^0 K+ [message #19251 is a reply to message #19246] Fri, 29 April 2016 17:58 Go to previous messageGo to next message
Ingo Froehlich is currently offline  Ingo Froehlich
Messages: 167
Registered: March 2004
Location: IKF - Frankfurt
first-grade participant
From: *dip0.t-ipconnect.de
Hi,

I think you are not doing the decay correctly. For each decay Pluto needs a "primary model" which is doing the mass sampling of the parent. So what you need is not distribution (which is changing the shape of a decay), but a model which samples the mass of the dilepton.

These classes are inherited from PChannelModel (instead of PDistribution).

For each decay, Pluto attaches one single channel model to each decay channel. If no custom model is added (as said the object "sigmadecaytoLee" is not registered as a model), Pluto loops over the existing classes and try to do its best. And therefore it chooses PDalitzDecay but not your custom class.

One can see this very nicely in PDalitzDecay, that it is inherited from PChannelModel. Maybe you could use this class as a template for a new decay?

If you now construct your own decay model, the one thing one has to know: either one adds the decay key as a last option by hand in the ctor (not recommended) or one can let Pluto find out which is the correct key by using the following syntax for the id ("sigma13850_to_e+_e-_lambda_matrix" in your case):

id@parent_anything_list_of_daughters

with "id" and "anything" as arbitrary names, and "list_of_daughters" the underscore separated list of daughters

e.g. mysigma13850decay@sigma13850_to_Lambda_dilepton




--
Ingo Froehlich
IKF - University of Frankfurt
069-798-47027, FAX: -47024
Re: the simulation of ep to e delta(1910)+, delta(1910)+ to Sigma(1385)^0 K+ [message #19252 is a reply to message #19251] Tue, 03 May 2016 13:03 Go to previous message
Xinying Song is currently offline  Xinying Song
Messages: 7
Registered: January 2016
Location: Germany
occasional visitor
From: *ikp.kfa-juelich.de
Hi Ingo,

Thanks very much for your response.

Because Sigma13850->Lambda dilepton is also Dalitz decays which is very like Delta->N diLepton already defined in PDalitzDecay.cc, I add the Sigma13850 Dalitz decay in PDalitzDecay.cc,

as well I add this sentence accordingly in the simulation code:
 PReaction *my_reaction = new PReaction("_P1 = 11.0","e-","p","e- Delta1910+ [Sigma13850 [dilepton [e+ e-] Lambda] K+]","YtosigmaK",0,0,0,0);


and the modified PDalitzDecay.cc/h and simulation code tmp_YtoLambdaee.C are shown in the attachment.


Here new problem arises,

the output when I finished running the tmp_YtoLambdaee.C and quit the root, the root bursts out some errors as follows,

root [0] 
Processing tmp_YtoLambdaee.C...
Info in <PUtilsREngine::PUtilsREngine>: Random seed set to -1005353843
Warning in <PUtilsREngine::PUtilsREngine>: Seed set FIXED to 100
Info in <PStdData::PStdData()>: (CONSTRUCTOR)
Info in <PDataBase::PDataBase()>: (CONSTRUCTOR)
Info in <PStaticData::AddDecay>: (ALLOCATION) Decay index 5440: Sigma13850 --> Lambda + dilepton
Info in <PStaticData::AddDecay>: (ALLOCATION) Decay index 5472: Delta1910+ --> Sigma13850 + K+
Info in <PDynamicData::PDynamicData()>: (CONSTRUCTOR)
Info in <PStdModels::PStdModels()>: (CONSTRUCTOR), Standard model filler
Info in <PStdModels::GetModels>: Read std models
Info in <PDistributionManager::PDistributionManager>: Pion beam plugin available
Info in <PDistributionManager::PDistributionManager>: HADES classes available
Info in <PDistributionManager::PDistributionManager>: Plugin for Dalitz decay (generator & new D Dalitz) available
Info in <PDistributionManager::PDistributionManager>: Dalitz decays of N* activated
Info in <PDistributionManager::PDistributionManager>: Elementary plugin available
Info in <PDistributionManager::PDistributionManager>: Rare eta decays are enabled
Info in <PDistributionManager::PDistributionManager>: Baryonic resonances with strangeness available
Info in <PDistributionManager::PDistributionManager>: PDG/UNIGEN classes available
Info in <PDistributionManager::PDistributionManager>: Beam line simulation classes available
PDistribution::Add: Could not get flag. First flag must be *not* private
Info in <PDistributionManager::PDistributionManager()>: (CONSTRUCTOR)
#########################################################################
################## Cross-Section Genertation is occuring ################
#########################################################################
Info in <PStaticData::AddDecay>: (ALLOCATION) Decay index 1248: N*(1520)+ -> p + dilepton
Info in <PStaticData::AddDecay>: (ALLOCATION) Decay index 1216: N*(1440)+ -> p + dilepton
Info in <PStaticData::AddDecay>: (ALLOCATION) Decay index 1280: N*(1535)+ -> p + dilepton
Info in <PStaticData::AddDecay>: (ALLOCATION) Decay index 2080: N*(1520)0 -> n + dilepton
Info in <PStaticData::AddDecay>: (ALLOCATION) Decay index 2048: N*(1440)0 -> n + dilepton
Info in <PStaticData::AddDecay>: (ALLOCATION) Decay index 2112: N*(1535)0 -> n + dilepton
Info in <PStaticData::AddDecay>: (ALLOCATION) Decay index 544: eta -> dilepton + dilepton
Info in <PStaticData::AddDecay>: (ALLOCATION) Decay index 545: eta -> e+ + e- + pi+ + pi-
Warning in <PStaticData::AddParticle>: Name Sigma13850 already used in data base
<Beam>
  e- (0.000000,0.000000,11.000000;11.000000) wt = 1.000000, m = 0.000511 pid = 3
  Vertex = 0.000000 0.000000 0.000000
<Target>
  p (0.000000,0.000000,0.000000;0.938272) wt = 1.000000, m = 0.938272 pid = 14
  Vertex = 0.000000 0.000000 0.000000
Info in <PParticle::operator+>: (ALLOCATION) Keeping beam and target particle for further reference
Info in <PParticle::operator+>: (ALLOCATION) The composite e- + p has been added
Info in <PStaticData::AddDecay>: (ALLOCATION) Decay index 14003: e- + p --> e- + Delta1910+
Info in <PStdModels::GetModels>: Read std models
Info in <PDistributionManager::Attach>: Re-iteration of std plugin done

 Reaction of 9 Particles interacting via 4 Channels
   Reaction Particles:
     0. quasi-particle (e- beam and p target)
     1. e- (tracked particle 0)
     2. Delta1910+
     3. Sigma13850
     4. K+ (tracked particle 1)
     5. dilepton
     6. Lambda (tracked particle 2)
     7. e+ (tracked particle 3)
     8. e- (tracked particle 4)
   Reaction Channels:
     1. e- + p --> e- + Delta1910+
        Interaction model(s):
        [mymodel] My cross section
        [e- + p_fixed_e-_Delta1910+] Fixed product masses {/}
        [e- + p_genbod_e-_Delta1910+] Pluto build-in genbod {/genbod}
     2. Delta1910+ --> Sigma13850 + K+
        Interaction model(s):
        [Delta1910+_m1_Sigma13850_K+] 1 unstable hadron (2-body ps) {/} Sigma13850
        [Delta1910+_genbod_Sigma13850_K+] Pluto build-in genbod {/genbod}
     3. Sigma13850 --> Lambda + dilepton
        Interaction model(s):
        [Sigma13850_genbod_Lambda_dilepton] Pluto build-in genbod {/genbod}
        [sigma13850dalitz_decay] Sigma13850 Dalitz decay {/}
     4. dilepton --> e+ + e-
        Interaction model(s):
        [dilepton_fixed_e-_e+] Fixed product masses {/}
        [dilepton_genbod_e-_e+] Pluto build-in genbod {/genbod}
   Output File(s):
     Root : 'YtosigmaK.root', tracked particles on file.
PReaction: calculating widths in PData...
Info in <PF2::MakeIntegral>: Generating array, this can take a while....
Info in <PF2::MakeIntegral>: ...20% done
Info in <PF2::MakeIntegral>: ...40% done
Info in <PF2::MakeIntegral>: ...60% done
Info in <PF2::MakeIntegral>: ...80% done
Info in <PF2::MakeIntegral>: ...done (62500 bins)
Info in <PBreitWigner::GetWidth>: Width 1st call for Sigma13850, mass range 1.200000 GeV to 1.748700 GeV
Info in <PDalitzDecay::GetWidth>: Creating mesh in Sigma13850 --> Lambda + dilepton (0.001021,1.114568)
Info in <PReaction::Loop()>: Preheating done
 20% done in 13.053716 sec
 40% done in 13.208443 sec
 60% done in 13.373328 sec
 80% done in 13.523650 sec
 100% done in 13.673550 sec
 Event loop finished after 13.673579 sec
 CPU time 12.680000 sec
root [1] .q
*** Error in `/private/root_v5/build/bin/root.exe': free(): invalid pointer: 0x0000000001b912d0 ***
======= Backtrace: =========
/lib64/libc.so.6(+0x7278f)[0x7fb4d1ec578f]
/lib64/libc.so.6(+0x77ffe)[0x7fb4d1ecaffe]
/lib64/libc.so.6(+0x78d06)[0x7fb4d1ecbd06]
/private/root_v5/build/lib/libCore.so(_ZN9TObjArrayD1Ev+0x32)[0x7fb4d2b758b2]
/private/root_v5/build/lib/libHist.so(_ZN8TFormulaD1Ev+0xb7)[0x7fb4cdee3227]
/home/ikp1/song/Pluto/pluto_v5.43/libPluto.so(_ZN13PDistributionD1Ev+0xbb)[0x7fb4c973feef]
/home/ikp1/song/Pluto/pluto_v5.43/libPluto.so(_ZN13PChannelModelD1Ev+0x75)[0x7fb4c971f885]
/home/ikp1/song/Pluto/pluto_v5.43/libPluto.so(_ZN12PDalitzDecayD1Ev+0x75)[0x7fb4c9732309]
/home/ikp1/song/Pluto/pluto_v5.43/libPluto.so(_ZN12PDalitzDecayD0Ev+0x18)[0x7fb4c973235c]
/private/root_v5/build/lib/libCore.so(_ZN5TList6DeleteEPKc+0x235)[0x7fb4d2b6f9a5]
/private/root_v5/build/lib/libCore.so(_ZN5TROOT20EndOfProcessCleanupsEb+0x45)[0x7fb4d2b49f85]
/private/root_v5/build/lib/libCore.so(_ZN11TUnixSystem4ExitEib+0x20)[0x7fb4d2bc0960]
/private/root_v5/build/lib/libCore.so(_ZN12TApplication11ProcessLineEPKcbPi+0x7f)[0x7fb4d2b278df]
/private/root_v5/build/lib/libRint.so(_ZN5TRint15HandleTermInputEv+0x21b)[0x7fb4d2739d0b]
/private/root_v5/build/lib/libCore.so(_ZN11TUnixSystem16CheckDescriptorsEv+0x155)[0x7fb4d2bc53e5]
/private/root_v5/build/lib/libCore.so(_ZN11TUnixSystem16DispatchOneEventEb+0xcc)[0x7fb4d2bc5f0c]
/private/root_v5/build/lib/libCore.so(_ZN7TSystem9InnerLoopEv+0x16)[0x7fb4d2b17396]
/private/root_v5/build/lib/libCore.so(_ZN7TSystem3RunEv+0x70)[0x7fb4d2b17f40]
/private/root_v5/build/lib/libCore.so(_ZN12TApplication3RunEb+0x1f)[0x7fb4d2b2631f]
/private/root_v5/build/lib/libRint.so(_ZN5TRint3RunEb+0x517)[0x7fb4d273aea7]
/private/root_v5/build/bin/root.exe(main+0x4c)[0x40114c]
/lib64/libc.so.6(__libc_start_main+0xf5)[0x7fb4d1e74b05]
/private/root_v5/build/bin/root.exe[0x4011bd]
======= Memory map: ========
00400000-00402000 r-xp 00000000 08:04 10884409                           /private/root_v5/build/bin/root.exe
00601000-00602000 r--p 00001000 08:04 10884409                           /private/root_v5/build/bin/root.exe
00602000-00603000 rw-p 00002000 08:04 10884409                           /private/root_v5/build/bin/root.exe
00c32000-035be000 rw-p 00000000 00:00 0                     

... ...


Does it means that the memory used in this simulation process exceeds the limit? if so, how to solve it?



[Updated on: Tue, 03 May 2016 13:05]

Report message to a moderator

Previous Topic: differential cross section
Next Topic: [SOLVED]generate rho0->pi+pi- but found the rho0 has no width
Goto Forum:
  


Current Time: Sat Apr 20 08:46:25 CEST 2024

Total time taken to generate the page: 0.01008 seconds