Page Menu
Home
HEPForge
Search
Configure Global Search
Log In
Files
F10881175
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
27 KB
Subscribers
None
View Options
diff --git a/DIPSY/GlauberAnalysis.cc b/DIPSY/GlauberAnalysis.cc
--- a/DIPSY/GlauberAnalysis.cc
+++ b/DIPSY/GlauberAnalysis.cc
@@ -1,335 +1,343 @@
// -*- C++ -*-
//
// This is the implementation of the non-inlined, non-templated member
// functions of the GlauberAnalysis class.
//
#include "GlauberAnalysis.h"
#include "DipoleXSec.h"
#include "DipoleState.h"
#include "ThePEG/Repository/EventGenerator.h"
#include "ThePEG/Interface/ClassDocumentation.h"
#include "ThePEG/Interface/Parameter.h"
#include "gsl/gsl_sf_bessel.h"
#include "ThePEG/Persistency/PersistentOStream.h"
#include "ThePEG/Persistency/PersistentIStream.h"
using namespace DIPSY;
template <typename T>
valarray<T> sqr(valarray<T> v) { return v*v; }
GlauberAnalysis::GlauberAnalysis()
: nnSigTot(50.0*millibarn), nnSigEl(9.2*millibarn), nnSigInND(35.9*millibarn), Nt(1000), tMax(10.0*GeV2) {}
GlauberAnalysis::~GlauberAnalysis() {}
void GlauberAnalysis::initialize() {
generator()->histogramFactory()->initrun();
generator()->histogramFactory()->registerClient(this);
ntot = 0;
sigtot = signd = sigel = sigdt = sigdr = sigdl = sigdd
= valarray<double>(ZERO, nstr);
sigtot2 = signd2 = sigel2 = sigdt2 = sigdr2 = sigdl2 = sigdd2
= valarray<double>(ZERO, nstr);
- hists = vector<FactoryBase::tH1DPtr>(2*nstr);
+ hists = vector<FactoryBase::tH1DPtr>(3*nstr);
bookHistos();
}
valarray<double> GlauberAnalysis::getT(const DipoleState & dr, const DipoleState & dl,
const ImpactParameters & b, const DipoleXSec & xsec,
double fsum) const {
valarray<double> T(0.0, nstr);
T[0] = xsec.unitarize(fsum);
if ( dl.initialDipoles().size()%3 ) return T;
if ( dr.initialDipoles().size()%3 ) return T;
int Nl = dl.initialDipoles().size()/3;
int Nr = dr.initialDipoles().size()/3;
double alpha = 2.0*(1.0 - nnSigInND/nnSigTot);
int nalpha = 0;
for ( int il = 0; il < Nl; ++il ) {
Parton::Point pl = (dl.initialDipoles()[il*3]->partons().first->position() +
dl.initialDipoles()[il*3 + 1]->partons().first->position() +
dl.initialDipoles()[il*3 + 2]->partons().first->position())/3.0;
for ( int ir = 0; ir < Nr; ++ir ) {
Parton::Point pr = (dr.initialDipoles()[ir*3]->partons().first->position() +
dr.initialDipoles()[ir*3 + 1]->partons().first->position() +
dr.initialDipoles()[ir*3 + 2]->partons().first->position())/3.0;
Length r = b.difference(pl, pr).pt()*hbarc;
// Black disc
Length R = sqrt(nnSigTot/(2.0*Constants::pi));
if ( r <= R ) T[1] = 1.0;
// Gray disc
R = nnSigTot/sqrt(4.0*Constants::pi*nnSigEl);
double a = 2.0*nnSigEl/nnSigTot;
if ( r <= R && UseRandom::rndbool(a) ) T[2] = 1.0;
// Gray3 disc
R = nnSigTot/sqrt(4.0*Constants::pi*nnSigEl);
a = nnSigEl/(nnSigTot - nnSigInND);
if ( r <= R && UseRandom::rndbool(a) ) ++nalpha;
// Gussian
R = nnSigTot/sqrt(8.0*Constants::pi*nnSigEl);
a = 4.0*nnSigEl/nnSigTot;
if ( UseRandom::rndbool(a*exp(-sqr(r/R))) ) T[4] = 1.0;
// Old black Disk
R = sqrt((nnSigTot - nnSigEl)/Constants::pi);
if ( r <= R ) T[5] = 1.0;
// Old gray disk
R = sqrt(nnSigTot/Constants::pi);
a = (nnSigTot - nnSigEl)/nnSigTot;
if ( r <= R && UseRandom::rndbool(a) ) T[6] = 1.0;
}
}
T[3] = 1.0 - pow(1.0 - alpha, nalpha);
return T;
}
void GlauberAnalysis::
analyze(const vector<DipoleStatePtr> & vr, const vector<DipoleStatePtr> & vl,
const vector<ImpactParameters> & vb, const DipoleXSec & xsec,
const Vec3D & probs, double jac) {
int Nr = vr.size();
int Nl = vl.size();
if ( Nr*Nl*vb.size() == 0 ) return;
for ( int ib = 0, Nb = vb.size(); ib < Nb; ++ib ) {
CrossSection bweight = sqr(hbarc)*vb[ib].weight()*jac;
valarray<double> sumLR(0.0, nstr); // T averaged over L and R
int nLR = 0;
valarray<double> sum2LR(0.0, nstr); // T^2 average over L and R
int n2LR = 0;
valarray<double> sumLR2(0.0, nstr); // (T averaged over L and R )^2
int nLR2 = 0;
valarray<double> sumL2R(0.0, nstr); // (T averaged over L)^2 averaged over R
int nL2R = 0;
valarray<double> sumR2L(0.0, nstr); // (T averaged over R)^2 averaged over L
int nR2L = 0;
vector< vector < valarray<double> > > UT(Nl, vector < valarray<double> >(Nr));
for ( int ir1 = 0; ir1 < Nr; ++ir1 )
for ( int il1 = 0; il1 < Nl; ++il1 )
UT[il1][ir1] = getT(*vl[il1], *vr[ir1], vb[ib], xsec, probs[il1][ir1][ib]);
for ( int ir1 = 0; ir1 < Nr; ++ir1 ) for ( int il1 = 0; il1 < Nl; ++il1 ) {
valarray<double> UT1 = UT[il1][ir1];
double w1 = vr[ir1]->weight()*vl[il1]->weight();
sumLR += UT1*w1;
++nLR;
sum2LR += sqr(UT1)*sqr(w1);
++n2LR;
for ( int ir2 = 0; ir2 < Nr; ++ir2 ) for ( int il2 = 0; il2 < Nl; ++il2 ) {
valarray<double> UT2 = UT[il2][ir2];
double w2 = vr[ir2]->weight()*vl[il2]->weight();
valarray<double> UT12 = UT1*w1*UT2*w2;
if ( il1 != il2 && ir1 != ir2 ){
sumLR2 += UT12;
++nLR2;
}
if ( il1 != il2 && ir1 == ir2 ) {
sumL2R += UT12;
++nL2R;
}
if ( il1 == il2 && ir1 != ir2 ) {
sumR2L += UT12;
++nR2L;
}
}
}
sumLR /=double(nLR);
sum2LR /=double(n2LR);
sumL2R /=double(nL2R);
sumR2L /=double(nR2L);
sumLR2 /=double(nLR2);
double bw = bweight/nanobarn;
double bw2 = sqr(bw);
sigtot += 2.0*sumLR*bw;
sigtot2 += 4.0*sqr(sumLR)*bw2;
signd += (2.0*sumLR - sum2LR)*bw;
signd2 += (2.0*sumLR - sum2LR)*(2.0*sumLR - sum2LR)*bw2;
sigel += sumLR2*bw;
sigel2 += sumLR2*sumLR2*bw2;
sigdl += (sumL2R - sumLR2)*bw;
sigdl2 += (sumL2R - sumLR2)*(sumL2R - sumLR2)*bw2;
sigdr += (sumR2L - sumLR2)*bw;
sigdr2 += (sumR2L - sumLR2)*(sumR2L - sumLR2)*bw2;
sigdd += (sum2LR - sumR2L - sumL2R + sumLR2)*bw;
sigdd2 += (sum2LR - sumR2L - sumL2R + sumLR2)*(sum2LR - sumR2L - sumL2R + sumLR2)*bw2;
sigdt += (sum2LR - sumLR2)*bw;
sigdt2 += (sum2LR - sumLR2)*(sum2LR - sumLR2)*bw2;
InvEnergy b = vb[ib].bVec().pt();
double tw = vb[ib].weight()*jac*GeV2;
for ( int it = 0; it < Nt; ++it ) {
Energy q = sqrt((double(it) + 0.5)*tMax/double(Nt));
double J0 = gsl_sf_bessel_J0(b*q);
double sq = sqrt(q/GeV);
for ( int i = 0; i < nstr; ++i ) {
hists[i]->fill(sqr(q)/GeV2, sq*J0*sumLR[i]*bw);
- hists[i + nstr]->fill(sqr(q)/GeV2, J0*sumLR2[i]*tw);
+ if ( J0 > 0.0 )
+ hists[i + nstr]->fill(sqr(q)/GeV2, J0*sumLR2[i]*tw);
+ else
+ hists[i + 2*nstr]->fill(sqr(q)/GeV2, J0*sumLR2[i]*tw);
}
}
++ntot;
}
}
string GlauberAnalysis::getStrat(int i) const {
string strat = "DIPSY";
if ( i == 1 ) strat = "black disc";
if ( i == 2 ) strat = "grey disc";
if ( i == 3 ) strat = "grey3 disc";
if ( i == 4 ) strat = "Gaussian";
if ( i == 5 ) strat = "old black disc";
if ( i == 6 ) strat = "old grey disc";
return strat;
}
void GlauberAnalysis::bookHistos() {
generator()->histogramFactory()->mkdirs("/Glauber");
generator()->histogramFactory()->mkdirs("/tmp");
for ( int i = 0; i < nstr; ++i ) {
string I(1, '0' + i);
hists[i] = generator()->histogramFactory()->createHistogram1D
("/tmp/dSigmadt-a-" + I, Nt, 0.0, tMax/GeV2);
hists[nstr + i] = generator()->histogramFactory()->createHistogram1D
- ("/Glauber/dSigmadt-b-" + I, Nt, 0.0, tMax/GeV2);
- hists[nstr + i]->setTitle("dSigma/dt b (" + getStrat(i) + ")");
+ ("/tmp/dSigmadt-b-" + I, Nt, 0.0, tMax/GeV2);
+ hists[2*nstr + i] = generator()->histogramFactory()->createHistogram1D
+ ("/tmp/-dSigmadt-b-" + I, Nt, 0.0, tMax/GeV2);
}
}
void GlauberAnalysis::print(valarray<double> sig, valarray<double> sig2,
int ntot, string xstype) const {
for ( int i = 0; i < nstr; ++i ) {
string strat = getStrat(i);
sig[i] /= double(ntot);
sig2[i] /= double(ntot);
double err = sqrt((sig2[i] - sqr(sig[i]))/double(ntot));
stub(": " + xstype + ": (" + strat + "):")
<< ouniterr(sig[i], err, 1.0) << " nb." << endl;
}
}
void GlauberAnalysis::finalize(long neve) {
if ( neve <= 0 ) return;
print(sigtot, sigtot2, ntot, "Total");
print(signd, signd2, ntot, "Inelastic(ND)");
print(sigel, sigel2, ntot, "Elastic");
print(sigdt, sigdt2, ntot, "Diff. total");
print(sigdr, sigdr2, ntot, "Diff. exc. (R)");
print(sigdl, sigdl2, ntot, "Diff. exc. (L)");
print(sigdd, sigdd2, ntot, "Double diff. exc.");
for (int i = 0; i < nstr; ++i ) {
- hists[i + nstr]->scale(1.0/(double(ntot)*2.0*Constants::pi));
string I(1, '0' + i);
FactoryBase::tH1DPtr tmp =
generator()->histogramFactory()->histogramFactory().multiply
("/Glauber/dSigmadt-a-" + I, *hists[i], *hists[i]);
tmp->setTitle("dSigma/dt a (" + getStrat(i) + ")");
tmp->scale(nanobarn*GeV2/(sqr(hbarc)*double(ntot*ntot)*2.0*Constants::pi));
generator()->histogramFactory()->histogramFactory().destroy(hists[i]);
+ tmp = generator()->histogramFactory()->histogramFactory().subtract
+ ("/Glauber/dSigmadt-b-" + I, *hists[i + nstr], *hists[i + 2*nstr]);
+ tmp->setTitle("dSigma/dt b (" + getStrat(i) + ")");
+ tmp->scale(1.0/(double(ntot)*2.0*Constants::pi));
+
}
}
IBPtr GlauberAnalysis::clone() const {
return new_ptr(*this);
}
IBPtr GlauberAnalysis::fullclone() const {
return new_ptr(*this);
}
// If needed, insert default implementations of virtual function defined
// in the InterfacedBase class here (using ThePEG-interfaced-impl in Emacs).
void GlauberAnalysis::persistentOutput(PersistentOStream & os) const {
const CrossSection nb = nanobarn;
os << ounit(nnSigTot, nb) << ounit(nnSigEl, nb) << ounit(nnSigInND, nb)
<< ntot << sigtot << signd << sigel
<< sigdt << sigdl << sigdr << sigdd
<< sigtot2 << signd2 << sigel2
<< sigdt2 << sigdl2 << sigdr2 << sigdd2 << Nt << ounit(tMax,GeV2);
}
void GlauberAnalysis::persistentInput(PersistentIStream & is, int) {
const CrossSection nb = nanobarn;
is >> iunit(nnSigTot, nb) >> iunit(nnSigEl, nb) >> iunit(nnSigInND, nb)
>> ntot >> sigtot >> signd >> sigel
>> sigdt >> sigdl >> sigdr >> sigdd
>> sigtot2 >> signd2 >> sigel2
>> sigdt2 >> sigdl2 >> sigdr2 >> sigdd2 >> Nt >> iunit(tMax, GeV2);
- hists.resize(2*nstr);
+ hists.resize(3*nstr);
// bookHistos();
}
// Static variable needed for the type description system in ThePEG.
#include "ThePEG/Utilities/DescribeClass.h"
DescribeClass<GlauberAnalysis,DIPSY::DipoleAnalysisHandler>
describeDIPSYGlauberAnalysis("DIPSY::GlauberAnalysis",
"GlauberAnalysis.so");
void GlauberAnalysis::Init() {
static ClassDocumentation<GlauberAnalysis> documentation
("There is no documentation for the GlauberAnalysis class");
static Parameter<GlauberAnalysis,CrossSection> interfaceTotalnnXSec
("TotalnnXSec",
"The assumed total nucleon-nucleon cross section assumed in the calculation (in mb).",
&GlauberAnalysis::nnSigTot, millibarn, 96.0*millibarn, 0.0*millibarn, 0*millibarn,
true, false, Interface::lowerlim);
static Parameter<GlauberAnalysis,CrossSection> interfaceElasticnnXSec
("ElasticnnXSec",
"The assumed elastic nucleon-nucleon cross section assumed in the calculation (in mb).",
&GlauberAnalysis::nnSigEl, millibarn, 24.0*millibarn, 0.0*millibarn, 0*millibarn,
true, false, Interface::lowerlim);
static Parameter<GlauberAnalysis,CrossSection> interfaceElasticnnXSecInND
("InElasticnnXSec",
"The assumed inelastic, non-diffractive nucleon-nucleon cross section "
"assumed in the calculation (in mb).",
&GlauberAnalysis::nnSigInND, millibarn, 30.0*millibarn, 0.0*millibarn, 0*millibarn,
true, false, Interface::lowerlim);
static Parameter<GlauberAnalysis,int> interfaceNt
("Nt",
"Number of bins in t-plots.",
&GlauberAnalysis::Nt, 1000, 0, 0,
true, false, Interface::lowerlim);
static Parameter<GlauberAnalysis,Energy2> interfacetMax
("tMax",
"Maximum t-value in t-plot.",
&GlauberAnalysis::tMax, GeV2, 10.0*GeV2, 0.0*GeV2, 0*GeV2,
true, false, Interface::lowerlim);
}
diff --git a/DIPSY/PAXSec.in b/DIPSY/PAXSec.in
--- a/DIPSY/PAXSec.in
+++ b/DIPSY/PAXSec.in
@@ -1,319 +1,319 @@
cd /DIPSY
## First we setup some tuned parameters
#read CurrentTune.in
read Tune31.in
## Now we set up an event generator. We start with running pp rahter than pA.
cp EventHandler PAEventHandler
set PAEventHandler:WFL stdProton
set PAEventHandler:WFR stdProton
set PAEventHandler:ConsistencyLevel 0
set PAEventHandler:XSecFn:CheckOffShell false
set PAEventHandler:CascadeHandler NULL
set PAEventHandler:HadronizationHandler NULL
set PAEventHandler:DecayHandler NULL
create ThePEG::LuminosityFunction PALumi
set PAEventHandler:LuminosityFunction PALumi
cp Generator PAGenerator
set PAGenerator:EventHandler PAEventHandler
set PAGenerator:NumberOfEvents 0
set PAGenerator:EventHandler:EventFiller:PTCut 0.6
set PAEventHandler:BGen:Width 10
set PAEventHandler:EffectivePartonMode Colours
## These are the analysess we will run
## First the Glauber analyses
create DIPSY::GlauberAnalysis Glauber GlauberAnalysis.so
insert PAEventHandler:AnalysisHandlers[0] Glauber
## Some semi-inclusive cross section for DIPSY which need at least
## four combinations of left- and right-moving cascades.
create DIPSY::SemiInclusiveXSecAnalysis SemiIncl SemiInclusiveXSecAnalysis.so
insert PAEventHandler:AnalysisHandlers[0] SemiIncl
set PAEventHandler:PreSampleL 2
set PAEventHandler:PreSampleR 2
## This is just to keep track of the progress of a run
create DIPSY::AnalysisProgress AnaLog AnalysisProgress.so
set AnaLog:Interval 600
insert PAEventHandler:AnalysisHandlers[0] AnaLog
## Set the interaction frame
set PAEventHandler:YFrametest 0.5
# set PAEventHandler:YFrametest 0.9
## The sample rates need to be adjusted so that we get a reasonable
## statistics in a reasonable time. It is typically efficient to
## sample a number of impact parameter values for each pair of DIPSY
## cascades.
set PAEventHandler:PreSampleB 10
## But we need a good sample of cascades
set PAEventHandler:PreSamples 100000
## Set the pp energy we want to run with
set PALumi:BeamEMaxA 100
set PALumi:BeamEMaxB 100
## We run pp to get the nucleon--nucleon cross sections
saverun PA01pp0 PAGenerator
set PAEventHandler:BGen:Width 5
saverun PA01pp0t PAGenerator
set PAEventHandler:BGen:Width 10
saverun PA01pp0o PAGenerator
saverun PA01pp0c PAGenerator
# set PAEventHandler:EffectivePartonMode Relatives
set PALumi:BeamEMaxA 200
set PALumi:BeamEMaxB 200
saverun PA02pp0 PAGenerator
set PALumi:BeamEMaxA 500
set PALumi:BeamEMaxB 500
saverun PA05pp0 PAGenerator
set PALumi:BeamEMaxA 1000
set PALumi:BeamEMaxB 1000
saverun PA10pp0 PAGenerator
set PALumi:BeamEMaxA 2500
set PALumi:BeamEMaxB 2500
saverun PA25pp0 PAGenerator
## Now we take these cross sections and feed them into the Glauber analysis
## My numbers for 100 GeV (in millibarns)
set Glauber:TotalnnXSec 49.71
set Glauber:ElasticnnXSec 9.10
set Glauber:InElasticnnXSec 35.80
set PALumi:BeamEMaxA 100
set PALumi:BeamEMaxB 100
## Run again to make sure that the cross sections are reproduced, at least by "grey3 disc"
saverun PA01pp1 PAGenerator
set PAEventHandler:PreSamples 1000000
saverun PA01pp2 PAGenerator
saverun PA01pp3 PAGenerator
## My numbers for 200 GeV
set Glauber:TotalnnXSec 58.52
set Glauber:ElasticnnXSec 11.64
set Glauber:InElasticnnXSec 41.05
set PALumi:BeamEMaxA 200
set PALumi:BeamEMaxB 200
set PAEventHandler:PreSamples 100000
saverun PA02pp1 PAGenerator
set PAEventHandler:PreSamples 1000000
saverun PA02pp2 PAGenerator
saverun PA02pp3 PAGenerator
## My numbers for 500 GeV
set Glauber:TotalnnXSec 70.53
set Glauber:ElasticnnXSec 15.36
set Glauber:InElasticnnXSec 47.88
set PALumi:BeamEMaxA 500
set PALumi:BeamEMaxB 500
set PAEventHandler:PreSamples 100000
saverun PA05pp1 PAGenerator
set PAEventHandler:PreSamples 1000000
saverun PA05pp2 PAGenerator
saverun PA05pp3 PAGenerator
## My numbers for 1000 GeV
set Glauber:TotalnnXSec 79.63
set Glauber:ElasticnnXSec 18.35
set Glauber:InElasticnnXSec 52.85
set PALumi:BeamEMaxA 1000
set PALumi:BeamEMaxB 1000
set PAEventHandler:PreSamples 100000
saverun PA10pp1 PAGenerator
set PAEventHandler:PreSamples 1000000
saverun PA10pp2 PAGenerator
saverun PA10pp3 PAGenerator
## My numbers for 2500 GeV
set Glauber:TotalnnXSec 91.43
set Glauber:ElasticnnXSec 22.35
set Glauber:InElasticnnXSec 59.12
set PALumi:BeamEMaxA 2500
set PALumi:BeamEMaxB 2500
set PAEventHandler:PreSamples 100000
saverun PA25pp1 PAGenerator
saverun PA25pp2 PAGenerator
set PAEventHandler:PreSamples 1000000
saverun PA25pp3 PAGenerator
## Finally it's time to run with a heavy ion.
# set PAEventHandler:WFR Oxygen
set PAEventHandler:WFR Copper
# set PAEventHandler:WFR Lead
create DIPSY::GaussianImpactGenerator BGauss GaussianImpactGenerator.so
set PAEventHandler:BGen BGauss
set BGauss:Width 15
set PALumi:BeamEMaxA 100
set PALumi:BeamEMaxB 6300
set Glauber:TotalnnXSec 49.71
set Glauber:ElasticnnXSec 9.10
set Glauber:InElasticnnXSec 35.80
set Copper:InterNucleonSwing On
set PAEventHandler:PreSampleB 40
set PAEventHandler:PreSampleL 20
set PAEventHandler:PreSamples 1000
saverun PA01pCu1 PAGenerator
set Copper:InterNucleonSwing Off
saverun PA01pCu2 PAGenerator
set PALumi:BeamEMaxA 200
set PALumi:BeamEMaxB 12600
set Glauber:TotalnnXSec 58.52
set Glauber:ElasticnnXSec 11.64
set Glauber:InElasticnnXSec 41.05
set Copper:InterNucleonSwing On
set PAEventHandler:PreSampleB 40
set PAEventHandler:PreSampleL 20
set PAEventHandler:PreSamples 1000
saverun PA02pCu1 PAGenerator
set Copper:InterNucleonSwing Off
saverun PA02pCu2 PAGenerator
set PALumi:BeamEMaxA 500
set PALumi:BeamEMaxB 31500
set Glauber:TotalnnXSec 70.53
set Glauber:ElasticnnXSec 15.36
set Glauber:InElasticnnXSec 47.88
set Copper:InterNucleonSwing On
set PAEventHandler:PreSampleB 40
set PAEventHandler:PreSampleL 20
set PAEventHandler:PreSamples 1000
saverun PA05pCu1 PAGenerator
set Copper:InterNucleonSwing Off
saverun PA05pCu2 PAGenerator
set PALumi:BeamEMaxA 1000
set PALumi:BeamEMaxB 63000
set Glauber:TotalnnXSec 79.63
set Glauber:ElasticnnXSec 18.35
set Glauber:InElasticnnXSec 52.85
set Copper:InterNucleonSwing On
set PAEventHandler:PreSampleB 40
set PAEventHandler:PreSampleL 20
set PAEventHandler:PreSamples 500
saverun PA10pCu1 PAGenerator
set Copper:InterNucleonSwing Off
saverun PA10pCu2 PAGenerator
set PALumi:BeamEMaxA 2500
set PALumi:BeamEMaxB 157500
set Glauber:TotalnnXSec 91.43
set Glauber:ElasticnnXSec 22.35
set Glauber:InElasticnnXSec 59.12
set Copper:InterNucleonSwing On
set PAEventHandler:PreSampleB 40
set PAEventHandler:PreSampleL 20
set PAEventHandler:PreSamples 500
saverun PA25pCu1 PAGenerator
set Copper:InterNucleonSwing Off
saverun PA25pCu2 PAGenerator
# Let's do lead as well
set PAEventHandler:WFR Lead
set PALumi:BeamEMaxA 100
set PALumi:BeamEMaxB 20800
set Glauber:TotalnnXSec 49.71
set Glauber:ElasticnnXSec 9.10
set Glauber:InElasticnnXSec 35.80
set Lead:InterNucleonSwing On
set PAEventHandler:PreSampleB 40
set PAEventHandler:PreSampleL 20
-set PAEventHandler:PreSamples 1000
+set PAEventHandler:PreSamples 500
saverun PA01pPb1 PAGenerator
set Lead:InterNucleonSwing Off
saverun PA01pPb2 PAGenerator
set PALumi:BeamEMaxA 200
set PALumi:BeamEMaxB 41600
set Glauber:TotalnnXSec 58.52
set Glauber:ElasticnnXSec 11.64
set Glauber:InElasticnnXSec 41.05
set Lead:InterNucleonSwing On
set PAEventHandler:PreSampleB 40
set PAEventHandler:PreSampleL 20
-set PAEventHandler:PreSamples 100
+set PAEventHandler:PreSamples 250
saverun PA02pPb1 PAGenerator
set Lead:InterNucleonSwing Off
saverun PA02pPb2 PAGenerator
set PALumi:BeamEMaxA 500
set PALumi:BeamEMaxB 10400
set Glauber:TotalnnXSec 70.53
set Glauber:ElasticnnXSec 15.36
set Glauber:InElasticnnXSec 47.88
set Lead:InterNucleonSwing On
set PAEventHandler:PreSampleB 40
set PAEventHandler:PreSampleL 20
-set PAEventHandler:PreSamples 1000
+set PAEventHandler:PreSamples 250
saverun PA05pPb1 PAGenerator
set Lead:InterNucleonSwing Off
saverun PA05pPb2 PAGenerator
set PALumi:BeamEMaxA 1000
set PALumi:BeamEMaxB 208000
set Glauber:TotalnnXSec 79.63
set Glauber:ElasticnnXSec 18.35
set Glauber:InElasticnnXSec 52.85
set Lead:InterNucleonSwing On
set PAEventHandler:PreSampleB 40
set PAEventHandler:PreSampleL 20
-set PAEventHandler:PreSamples 500
+set PAEventHandler:PreSamples 250
saverun PA10pPb1 PAGenerator
set Lead:InterNucleonSwing Off
saverun PA10pPb2 PAGenerator
set PALumi:BeamEMaxA 2500
set PALumi:BeamEMaxB 416000
set Glauber:TotalnnXSec 91.43
set Glauber:ElasticnnXSec 22.35
set Glauber:InElasticnnXSec 59.12
set Lead:InterNucleonSwing On
set PAEventHandler:PreSampleB 40
set PAEventHandler:PreSampleL 20
-set PAEventHandler:PreSamples 500
+set PAEventHandler:PreSamples 100
saverun PA25pPb1 PAGenerator
set Lead:InterNucleonSwing Off
saverun PA25pPb2 PAGenerator
# set PALumi:BeamEMaxB 12600
# set PALumi:BeamEMaxB 31500
# set PALumi:BeamEMaxB 63000
# set PALumi:BeamEMaxB 157500
## We may need to adjust the sampling. Especially since the nucleus
## cascade is time consuming, it may be worth running several protons
## per nucleus.
# set PAEventHandler:PreSampleB 10
set PAEventHandler:PreSampleL 10
set PAEventHandler:PreSamples 2000
## Let's go
-saverun PA01pCu2 PAGenerator
+# saverun PA01pCu2 PAGenerator
## And let's run one more time with the swing between nucleons turned
## off
set Copper:InterNucleonSwing Off
-saverun PA01pCu3 PAGenerator
+# saverun PA01pCu3 PAGenerator
set PAEventHandler:BGen:Width 10
-saverun PA01pCu4 PAGenerator
+# saverun PA01pCu4 PAGenerator
set PAEventHandler:BGen:Width 15
-saverun PA01pCu5 PAGenerator
+# saverun PA01pCu5 PAGenerator
set PAEventHandler:PreSamples 200
create DIPSY::GaussianImpactGenerator BGauss GaussianImpactGenerator.so
-saverun PA01pCu6 PAGenerator
+# saverun PA01pCu6 PAGenerator
set BGauss:Width 21
set PAEventHandler:BGen BGauss
-saverun PA01pCu7 PAGenerator
+# saverun PA01pCu7 PAGenerator
set BGauss:Width 15
set Copper:InterNucleonSwing On
set PAEventHandler:PreSamples 1000
-saverun PA01pCu80 PAGenerator
+# saverun PA01pCu80 PAGenerator
set PAEventHandler:PreSampleL 20
set PAEventHandler:PreSamples 500
-saverun PA01pCu81 PAGenerator
+# saverun PA01pCu81 PAGenerator
set PAEventHandler:PreSampleR 4
set PAEventHandler:PreSamples 250
-saverun PA01pCu82 PAGenerator
+# saverun PA01pCu82 PAGenerator
diff --git a/DIPSY/PAtest.in b/DIPSY/PAtest.in
--- a/DIPSY/PAtest.in
+++ b/DIPSY/PAtest.in
@@ -1,157 +1,162 @@
cd /DIPSY
## First we setup some tuned parameters
#read CurrentTune.in
read Tune31.in
## Now we set up an event generator. We start with running pp rahter than pA.
cp EventHandler PAEventHandler
set PAEventHandler:WFL stdProton
set PAEventHandler:WFR stdProton
set PAEventHandler:ConsistencyLevel 0
set PAEventHandler:XSecFn:CheckOffShell false
set PAEventHandler:CascadeHandler NULL
set PAEventHandler:HadronizationHandler NULL
set PAEventHandler:DecayHandler NULL
create ThePEG::LuminosityFunction PALumi
set PAEventHandler:LuminosityFunction PALumi
cp Generator PAGenerator
set PAGenerator:EventHandler PAEventHandler
set PAGenerator:NumberOfEvents 0
set PAGenerator:EventHandler:EventFiller:PTCut 0.6
set PAEventHandler:BGen:Width 10
set PAEventHandler:EffectivePartonMode Colours
## These are the analysess we will run
## First the Glauber analyses
erase PAEventHandler:AnalysisHandlers[0]
create DIPSY::GlauberAnalysis Glauber GlauberAnalysis.so
insert PAEventHandler:AnalysisHandlers[0] Glauber
## Some semi-inclusive cross section for DIPSY which need at least
## four combinations of left- and right-moving cascades. Also, it is
## typically efficient to sample a number of impact parameter values
## for each pair of DIPSY cascades.
set PAEventHandler:PreSampleL 10
set PAEventHandler:PreSampleR 2
set PAEventHandler:PreSampleB 10
## This is just to keep track of the progress of a run
create DIPSY::AnalysisProgress AnaLog AnalysisProgress.so
set AnaLog:Interval 600
insert PAEventHandler:AnalysisHandlers[0] AnaLog
## Set the pp energy we want to run with
do PAGenerator:AddInterface PAEventHandler:YFrametest 0.5, 0.9
set PAEventHandler:PreSamples 20
set PALumi:BeamEMaxA 100
set PALumi:BeamEMaxB 100
saverun PAtest01ppn PAGenerator
set PALumi:BeamEMaxA 200
set PALumi:BeamEMaxB 200
saverun PAtest02ppn PAGenerator
set PALumi:BeamEMaxA 500
set PALumi:BeamEMaxB 500
saverun PAtest05ppn PAGenerator
set PAEventHandler:EffectivePartonMode FastColours
saverun PAtest05ppN PAGenerator
set PAEventHandler:EffectivePartonMode FastColours
saverun PAtest05ppN2 PAGenerator
set PAEventHandler:EffectivePartonMode Colours
+set PALumi:BeamEMaxA 900
+set PALumi:BeamEMaxB 900
+set PAEventHandler:PreSamples 2000
+saverun PAtest09ppn PAGenerator
+set PAEventHandler:PreSamples 20
set PALumi:BeamEMaxA 1000
set PALumi:BeamEMaxB 1000
saverun PAtest10ppn PAGenerator
set PALumi:BeamEMaxA 2000
set PALumi:BeamEMaxB 2000
saverun PAtest20ppn PAGenerator
set PAEventHandler:WFR Lithium
set PALumi:BeamEMaxA 100
set PALumi:BeamEMaxB 600
saverun PAtest01pLi PAGenerator
set PALumi:BeamEMaxA 200
set PALumi:BeamEMaxB 1200
saverun PAtest02pLi PAGenerator
set PALumi:BeamEMaxA 500
set PALumi:BeamEMaxB 3000
saverun PAtest05pLi PAGenerator
set PALumi:BeamEMaxA 1000
set PALumi:BeamEMaxB 6000
saverun PAtest10pLi PAGenerator
set PALumi:BeamEMaxA 1000
set PALumi:BeamEMaxB 12000
saverun PAtest20pLi PAGenerator
set PAEventHandler:WFR Oxygen
set PALumi:BeamEMaxA 100
set PALumi:BeamEMaxB 1600
saverun PAtest01pO PAGenerator
set PALumi:BeamEMaxA 200
set PALumi:BeamEMaxB 3200
saverun PAtest02pO PAGenerator
set PALumi:BeamEMaxA 500
set PALumi:BeamEMaxB 8000
saverun PAtest05pO PAGenerator
set PALumi:BeamEMaxA 1000
set PALumi:BeamEMaxB 16000
saverun PAtest10pO PAGenerator
set PALumi:BeamEMaxA 1000
set PALumi:BeamEMaxB 32000
saverun PAtest20pO PAGenerator
set PAEventHandler:WFR Copper
set PALumi:BeamEMaxA 100
set PALumi:BeamEMaxB 6300
saverun PAtest01pCun PAGenerator
set PALumi:BeamEMaxA 200
set PALumi:BeamEMaxB 12600
saverun PAtest02pCun PAGenerator
set PAEventHandler:PreSamples 2
saverun PAtest02pCunc PAGenerator
set PAEventHandler:PreSamples 20
set PAEventHandler:EffectivePartonMode FastColours
saverun PAtest02pCuN PAGenerator
set PAEventHandler:PreSamples 2
saverun PAtest02pCuNc PAGenerator
set PAEventHandler:PreSamples 20
set PAEventHandler:EffectivePartonMode FastColours2
saverun PAtest02pCuN2 PAGenerator
set PAEventHandler:PreSamples 2
saverun PAtest02pCuN2c PAGenerator
set PAEventHandler:PreSamples 20
set PAEventHandler:EffectivePartonMode Colours
set PALumi:BeamEMaxA 500
set PALumi:BeamEMaxB 31500
saverun PAtest05pCun PAGenerator
set PALumi:BeamEMaxA 1000
set PALumi:BeamEMaxB 63000
saverun PAtest10pCun PAGenerator
set PALumi:BeamEMaxA 1000
set PALumi:BeamEMaxB 126000
saverun PAtest20pCun PAGenerator
set PAEventHandler:WFR Lead
set PALumi:BeamEMaxA 100
set PALumi:BeamEMaxB 20800
saverun PAtest01pPbn PAGenerator
set PALumi:BeamEMaxA 200
set PALumi:BeamEMaxB 41600
saverun PAtest02pPbn PAGenerator
set PALumi:BeamEMaxA 500
set PALumi:BeamEMaxB 104000
saverun PAtest05pPbn PAGenerator
set PALumi:BeamEMaxA 1000
set PALumi:BeamEMaxB 208000
saverun PAtest10pPbn PAGenerator
set PALumi:BeamEMaxA 1000
set PALumi:BeamEMaxB 416000
saverun PAtest20pPbn PAGenerator
do PAGenerator:RemoveInterface PAEventHandler:YFrametest
set PAEventHandler:YFrametest 0.5
set PAEventHandler:PreSamples 1
set PALumi:BeamEMaxA 200
set PALumi:BeamEMaxB 41600
saverun PAtest02pPb1 PAGenerator
set PAEventHandler:EffectivePartonMode Colours
saverun PAtest02pPb2 PAGenerator
saverun PAtest02pPb3 PAGenerator
File Metadata
Details
Attached
Mime Type
text/x-diff
Expires
Sat, May 3, 5:57 AM (15 h, 59 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
4982890
Default Alt Text
(27 KB)
Attached To
rTHEPEGARIADNEHG thepegariadnehg
Event Timeline
Log In to Comment