A design and information of the HGCal can be found in


Setup CMSSW in SL6 machines:

$ source /uscmst1/prod/sw/cms/cshrc cvmfs

$ scram --arch slc6_amd64_gcc481 list CMSSW | grep CMSSW_7_1

$ scram --arch slc6_amd64_gcc481 project CMSSW_7_1_0_pre8

$ cd CMSSW_7_1_0_pre8/src/

$ cmsenv

$ scram b



We are using the repository for HGCal Geant4 standalone simulations located at, this can be obtained by doing:

$ git init

$ git remote add origin

$ git clone -b BASELINE-TP

$ cd PFCal/PFCalEE/

To set up the environment and compile (SL6 machines), go to the PFCalEE directory and run:

$ cd PFCal/PFCalEE

$ source

$ cd userlib

$ mkdir lib

$ mkdir obj

$ mkdir bin

$ make -j 5

$ cd ../

$ make -j 5


In the cmslpc (SL6) is possible that the setting up of the environment doesn't work, it is required to connect to a SL6 note

$ ssh

After this, copy the repository to your working area

$ cd workdir
$ git init
$ git remote add origin
$ git clone
$ cd PFCal/PFCalEE/

Updated to the desired git tag version

$ git tag
$ git fetch --all
$ git checkout (-f) Version

Setup the environment (bash)

$ cp /uscms/home/yumiceva/work/HGCal/PFCal/PFCalEE/ .
$ source

Setup the environment (csh)

$ cp /uscms/home/yumiceva/work/HGCal/PFCal/PFCalEE/g4env_fnal.csh .
$ rehash
$ source g4env_fnal.csh

Compile the files

$ mkdir -p userlib/{lib,obj,bin} && cd userlib && make dictionary && make -j 5 && cd - && make -j 5

Generation of events

The code is created to submit jobs in parallel to the batch system (using LSF), to run do:

$ python -options

In case of options conflicts it can be used also:

$ ./ -options

The options for the code are:

  • -n : Number of events to generate (default 1000)
  • -g : Use particle gun
  • -d : Data or type of particle to shoot (default e-)
  • -s : Short batch queue (default 1nd)
  • -l : Long batch queue (default 2nw)
  • -t : Git tag use it
  • -r : Run stats
  • -m : Detector model
  • -v : Detector version
  • -e : eos Path to save root file
  • -o : Output directory
  • -a : Incidence angle in radians (default 0)
  • -b : Magnetic field in Tesla (default 0)
  • -f : Path to the HepMC input file
  • -S : Not submit batch job

Particle Gun

To run this example modify the file to set energy loops and run:

$ for i in seq 0 5; do python -s 1nd -q 2nd -t V00-00-00 -g -r ${i} -v 3 -m 0 -e /store/cmst3/group/hgcal/Geant4 -o ~/work/ntuples -d e- -n 2500; done

This example is running 2500 events of a particle gun shooting electrons to the detector model.

The energy of the initial particles can be changed in the script

At then moment of running the program other particles can be chosen for the particle gun, like muon (mu-) or pions (pi-)

For a complete code of the particles in Geant4 see:



A sample of the results are presented in the root files attached

The file DigiPFcal contains the histograms for the noise check and the reconstructed hits in the detector

The file HGcal contains 4 branches:

The file HGcal contains 4 branches:

Sampling Section: Contains the information of the volume; the total, absorbed y measured energy; the fraction of particles, etc.

SimHit : Contains histograms such as the number of particles, energy, time, layer, etc

GenParticle : Contains the information of the generated particle

Analysis code SimHits

An analysis script that plot histograms of the variables contained in the root files previously obtained is obtained using the MakeClass command in root.

The codes are named HGCal (see attached files), and are located in /afs/
To run the codes successfully in root is required to load one library for the main directory of G4, for this run:

$ ln -s ~/work/PFCal/PFCalEE/userlib/include .

At the moment of start root, some libraries need to be loaded(everytime start root):

$ gSystem->Load("~/work/PFCal/PFCalEE/userlib/lib/");

Then we need load some files:

$ .L HGcal.C;

$ HGcal t;

$ t.Loop();

The output of this script will be a root file that contains all the desired histograms, plus some .txt files with information about the events

As a sample of the results the Z-X profile of the detector under the action of the different particle guns can be found in the attached files

Analysis code DigiRecoHits

For the Digitization the code Digitizer.cpp located in the directory .../PFCal/PFCalEE/userlib/test/

To execute this code run the command "make", the resulting executable will be located in the directory PFCal/PFCalEE/userlib/bin/

To run the executable:

$ ./HGCal-SimHit (number of events) (complete path to input file) (complete path to output file) (granularity layeri-layerj:value, laye...) (noise layeri-layerj:value...) (threshold layeri-layerj:value...) (random seed value, default = 0) (debug, default = 0) (save sim hits, default = 0) (save digi hits, default = 0)

For the ECAL CALICE-like HG:

number of events : choosing 0 or negative numbers will lead to take the full number of events

granularity : 0-19:4,20-29:6

noise: 0-29:0.12

hreshold : 0-29:2

The result will be a root file located in the output directory, this file will contain the Reconstructed information.

As a sample of the results the Z-X profile of the detector under the action of the different particle guns can be found in the attached files.

Geometry Visualization

To visualize the geometry that is used for the standalone simulation the files (~/.../PFCalEE/src) and DetectorCosntruction.hh (~/.../PFCalEE/include) contains the information of all the available geometries, e.g:

enum DetectorVersion {

  enum DetectorModel {

In the PFCalEE directory the file can be modified to change to use the desired detector and model, the line to change is:

int version=0; //DetectorConstruction::v_HGCAL;                                                                                                       
  //int model=DetectorConstruction::m_FULLSECTION;                                                                                                     
  int model=DetectorConstruction::m_SIMPLE_20;

After the file is modified to compile run:

$ make -j 5

After this, run the following command (Changing the path to one in your directory):

$ export G4DAWNFILE_DEST_DIR=/afs/

Copy the file vis.mac to the directory where the PFCalEE executable is (geant4_workdir/bin/Linux-g++).

To run the visualization is necessary to go to the directory where the PFCalEE executable is and run:

$ PFCalEE vis.mac

A sample and a complete geometry construction for the CALICE detector can be found in the attached files.

A sample and a complete geometry construction for the HGCalHe-CALICE (like) can be found in the attached files.

HGcal Particle Flow Reconstruction

use fireworks to display under CMSSW

Do it in slc6:

Set the environment:

For tcsh:

$ source /uscmst1/prod/sw/cms/cshrc prod

For bash:

$ source /uscmst1/prod/sw/cms/cshrc prod

$ cmsrel CMSSW_6_2_0_SLHC16

$ cd CMSSW_6_2_0_SLHC16/src && cmsenv

$ git cms-merge-topic lgray:HGC-Linking

$ git cms-merge-topic vandreev11:hgcal­-recogeometry-fix­-jumps

$ git cms-merge-topic 5063

$ git cms-addpkg RecoParticleFlow /PFProducer

$ git cms-addpkg DataFormats /ParticleFlowReco

$ git cms-addpkg DataFormats /ParticleFlowCandidate

$ scram b -j 9

To run the file:

$ cmsShow -c ${CMSSW_BASE}/src/RecoParticleFlow/PFClusterProducer/test/hgcal_rechits.fwc -g /afs/ --sim-geom-file /afs/ /afs/

sample simulation

sample file name:/TTGamma_TuneZ2star_8TeV-madgraph-tauola/Summer12_DR53X-PU_RD1_START53_V7N-v1/AODSIM

You can use DAS system to display the file names associated to the sample and also download one file. Alternative, you can copy a file from EOS at Fermilab to your area.

From DAS:

go to DAS web:

Then copy the file name in and search then we can download the file with the command( example):

$ xrdcp root:// /some/local/path

From EOS:

From EOS: start valid proxy: voms-proxy-init --voms cms

Go to DAS web and fine the file, the entire name is the LFN, so we use the command to copy the file from EOS:

$ xrdcp root:// /some/local/path

If the space is not enough to download the entire file, then we can change our working area:

To show the area:

$ quota

To check area we are working at now:

$ pwd

To change to other area:

$ cd /uscms_data/d1/xu0724/

Topic attachments
I Attachment History Action Size Date Who Comment
Unknown file formateps CALICEFULLSECTION.eps r1 manage 1307.7 K 2014-07-02 - 15:26 ShiyuanXu if model = FULLSECTION then m_minRadius=150 m_maxRadius=m_CalorSizeXY=1700
Unknown file formateps CALICESIMPLE20.eps r1 manage 162.0 K 2014-07-02 - 15:24 ShiyuanXu if model=SIMPLE20 then m_CalorSizeXY=200
Unknown file formateps HGCALFULLSECTION.eps r1 manage 3968.3 K 2014-07-02 - 15:29 ShiyuanXu  
Unknown file formateps HGCALHEFULLSECTION.eps r1 manage 1632.8 K 2014-07-02 - 15:33 ShiyuanXu  
Unknown file formateps HGCALHESIMPLE20.eps r1 manage 200.7 K 2014-07-02 - 15:34 ShiyuanXu  
Unknown file formateps HGCALHE_CALICEFULLSECTION.eps r1 manage 2003.6 K 2014-07-02 - 15:31 ShiyuanXu  
Unknown file formateps HGCALHE_CALICESIMPLE20.eps r1 manage 245.9 K 2014-07-02 - 15:31 ShiyuanXu  
Unknown file formateps HGCALHE_CALICESIMPLE50.eps r1 manage 245.8 K 2014-07-02 - 15:32 ShiyuanXu if model = SIMPLE100 then m_CalorSizeXY=500
Unknown file formateps HGCALSIMPLE20.eps r1 manage 483.0 K 2014-07-02 - 15:34 ShiyuanXu  
Unknown file formateps HGCAL_CALICESIMPLE100.eps r1 manage 246.7 K 2014-07-02 - 15:28 ShiyuanXu if model = SIMPLE100 then m_CalorSizeXY=1000
Edit | Attach | Watch | Print version | History: r18 < r17 < r16 < r15 < r14 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r18 - 2014-11-06 - ShiyuanXu
    • Cern Search Icon Cern Search
    • TWiki Search Icon TWiki Search
    • Google Search Icon Google Search

    Main All webs login

This site is powered by the TWiki collaboration platform Powered by PerlCopyright &© 2008-2020 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
or Ideas, requests, problems regarding TWiki? use Discourse or Send feedback