Top / CustomizedParticleGenerator
CustomizedParticleGenerator

更新終了しました( 2016/2/17) ここの情報は古いかもしれません。

General ParticleGenerator document can be found here
http://atlas-sw.cern.ch/cgi-bin/viewcvs-atlas.cgi/offline/Generators/ParticleGenerator/doc/ParticleGenerator.pdf?view=co

ParticleGenerationUsingGrid

Operation check was done with athena release 16.0.2.1
you can get this package here:

/afs/cern.ch/user/k/kkessoku/public/Package/ParticleGenerationUsingGrid

You need to change Gridprocess_trf.sh and singlepart_gen.py and setup the Grid. After that, execute Gridprocess_trf.sh,

cmd> sh Gridprocess_trf.sh

Customized1DParticleGenerator

Operation check was done with athena release 16.0.2.1
you can get this package here:

/afs/cern.ch/user/k/kkessoku/public/Package/Customized1DParticleGenerator


This customized particle generator is based on "ParticleGenerator-00-00-49"
Default 1D distribution to be generated is "1/pT" for the pT distribution.
First of all, you should decompress "Generators.tar.gz"

cmd> tar xzvf Generator.tar.gz

After decompressing, go to "cmt/" directory. and execute "cmt config" and "gmake"

cmd> cd Generators/ParticleGenerator/ParticleGenerator-00-00-49/cmt/
cmd> cmt config 
cmd> gmake


go to work directory,

cmd> cd ../work/

You need to setup grid. And after changing Gridprocess_trf.sh,

cmd> sh Gridprocess_trf.sh



☆ for reference ☆
how to define the distribution you want
(ex) 1/pT distribution

  • change /src/ParticleGeneratorExampleHistogram.cxx
    ParticleGeneratorExampleHistogram.cxx
    
       AIDA::IHistogram1D* exampleHistogram =
       histoSvc()->book("/stat/particlegenerator/1",    // Full path, including histogram ID
                        "Source Distribution",          // Histogram title
                        1000,                            // Number of x-axis bins
                        10.0*GeV,                       // x-axis lower limit
                        200.0*GeV                       // x-axis upper limit
                        );
    
    ....
    
         // Compute function.
         double functionValue = (10.*GeV)*(10.*GeV) / (x * x);
         --> change to  double functionValue = 1. / x;
    
         // Fill the histogram with the function.
         exampleHistogram->fill(x,functionValue);
    
         log << MSG::VERBOSE << "bin " << i
             << " pT=" << x
             << " weight=" << functionValue
             << endreq;

After recompiling, you can generate (, in this case, ) 1/pT distribution sample:

cmd> csc_evgen_trf.py 1 1 10 1234 jobOptions_ParticleGeneratorExampleHistogram.py EVNT.pool.root

Customized2DParticleGenerator

you can get this package here:

/afs/cern.ch/user/k/kkessoku/public/Package/Customized2DParticleGenerator

Operation check was done with athena release 15.6.11.3
I would recommend you to use this package on the login.icepp.jp !

☆Outline of the procedure is as follows

STEP1. decompress and compile the customized particle generator.
STEP2. following an eta-pt histogram you provided we will generate data files.
       After that EVNT files will be made by using the data files and athena. 
       ( if you are on the login.icepp.jp, you can also use the batch system )
STEP3. make ESD files using the Grid

More specific explanation is shown below.



☆STEP1: prepare ParticleGenerator

This customized particle generator is based on "ParticleGenerator-00-00-49"
First of all, you should decompress "Generators.tar.gz"

cmd> tar xzvf Generator.tar.gz

ParticleKinematics.h/cxx are customizied.(you don't have to do anything for them.)
After decompressing, go to "cmt/" directory. and execute "cmt config" and "gmake"

cmd> cd Generators/ParticleGenerator/ParticleGenerator-00-00-49/cmt/
cmd> cmt config 
cmd> gmake




☆STEP2: Make data files and Evgen files

Before doing this, you should provide a histogram(i.e. root file) of eta-pt distribution (which you want to generate ) in this directory.
(NOTE. the histogram must be eta for x-axis, pT for y-axis.)
You go to "./Generators/ParticleGenerator/ParticleGenerator-00-00-49/work/" directory.

cmd> cd ../work/


(1) You will make data files from a given Eta-pT distribution you provided.

You need to change MakeRef.sh
(NOTE. if the unit of pT in the histogram you provide is [GeV], you should set "isGeV flag" as "true".)
After changing it,

cmd> sh MakeRef.sh

You will get these three files.
a. MakeRef.root : Thare are two histogrmas. One is a reference distribution you provided and the other is a one generated.
b. MakeRef.ps : The same plots of the ones in the MakeRef.root.
c. ref.data* : They are data files which will be used for the particle generation in the next step.

They will be stored in the "OutData" directory and each of them has 2200 events.


(2) Make Evgen files by executing the customized ParticleGenerator.

a) [Recommended] If you are on the login.icepp.jp and want to process in pararell, you can use batch system as follows.
(a-1) use batch system only for EVNT generation (easy to use)
Please change MakeEvgenWithBsub.sh and then,

cmd> sh MakeEvgenWithBsub.sh

You can check job status by using "bjobs" command.

cmd> bjobs

and "bqueues" command tells you the batch status.

cmd> bqueues

You will get Evgen files in the directory which you choosed in "MakeEvgenWithBsub.sh".


(a-2) use batch system for all process, i.e. use until finish to make ntuples. ( this is a little bit bother, but once you setup them, it is probably the fastest method.)

First of all, you should check out and compile the TrigEffJpsiNtuple and bring jobOptions.py to be used to the "TrigEffJpsiNtupleJO" directory.
Please change MakeEvgenWithBsub.sh and then,

cmd> sh MakeEvgenAllWithBsub.sh

You can check job status by using "bjobs" command.

cmd> bjobs

and "bqueues" command also tells you the batch status.

cmd> bqueues

You will get ntuples in the directory which you choosed in "MakeEvgenAllWithBsub.sh".



b) If you are going to generate them without using batch system or are on the lxplus/lxatut... , change MakeEvgen.sh and then,

cmd> sh MakeEvgen.sh

You will also get Evgen files in the directory which you choosed in "MakeEvgen.sh".




☆STEP3: Make ESD files from those generated evgen-files by using the Grid.

Before doing this, you need to setup the dq2 and grid.

(1) put evgen-files and freeze them

cmd> dq2-put -L "TOKYO-LCG2_SCRATCHDISK" -s "name of directory which contains EVNT files you made" "user.kkessoku.20110118.evgen.EVNT.1"
ex) cmd> dq2-put -L "TOKYO-LCG2_SCRATCHDISK" -s ~/work/Data/single_Muon/test20110118_1/EVNTs "user.kkessoku.20110118.evgen.EVNT.1"

If you proceeded the STEP(a-2) as shown above, you should set "NTUP" which is a part of the dataset name instead of "EVNT".
(ex) user.kkessoku.20110118.TrigEffJpsiNtuple.NTUP.1

NOTE. the last arugument is a dataset name to be generated in the grid world.
this name has to obey some convention, like user.yourname.comment.EVNT.1
(reference: http://cdsweb.cern.ch/record/1070318/files/gen-int-2007-001.pdf )

freeze them,

cmd> dq2-freeze-dataset user.kkessoku.20110118.evgen.EVNT.1


(2) submit jobs to the Grid
change GridProcess.sh then,

cmd> sh GridProcess.sh

Customized3DParticleGenerator (not complete)

you can get this package here:

/afs/cern.ch/user/k/kkessoku/public/Package/Customized3DParticleGenerator

Operation check was done with athena release 15.6.11.3
I would recommend you to use this package on the login.icepp.jp !

This package is almost the same of the Customized2DParticleGenerator.
So please see previous section for more details.
The main difference is that you have to provide an eta-pt-phi distribution instead of an eta-pt distribution.
And it must be eta for x-axis, pT for y-axis and phi for z-axis.