CustomizedParticleGenerator の変更点


&size(20){更新終了しました( 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

#contents

*ParticleGenerationUsingGrid [#m84ae213]
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 [#b9300921]
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[#o6c4e4fd]
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) [#fd288d6e]
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.