Studying Particle Flow with Fireworks
Overview
This page explains how to set up an experimental version of
Fireworks, to study the particle flow reconstruction. This version of
Fireworks can be used to create a display of the particles created by the particle flow algorithm:
In addition to this, you can also use a modified version of
Fireworks which is designed to help you understand how the particle flow algorithm identifies and reconstructs particles, using the following inputs:
- ECAL and HCAL rechits
- PFClusters
- Tracks, with their extrapolated position in the calorimeters
- PFBlocks
Installation recipes
Depending upon what you wish to do with the software there are two installation recipes:
- The first shows how to acquire the binary files needed if you only wish to run the event display. This is the easiest and quickest method to start displaying events.
- The second installation recipe truly allows you to get the most up-to-date source code, make your own modifications and re-compile (see here for more information on FWLite).
- The second recipe also allows you to fix some of the known bugs by updating and re-compiling with the latest source code
NB: If you only wish to display events and don't need access to source code and/or you are working on your own machine then it is highly recommended that you follow the first set of installation instructions.
Prerequisite: Setting up CVS
In order to grab the particle flow configuration file, as well as any source code, you need to have access to the cvs repositories.
NB: It is assumed that you have installed the cvs software on your machine!
So that your machine knows where and how to access the repositories, two environment variables must be set.
export CVSROOT=:ext:YOURUSERNAME@cmssw.cvs.cern.ch:/cvs/CMSSW
export CVS_RSH=ssh
That's it!
Installation Recipe 1 - cmsShow 4.2-2
Linux 64-bit:
1. Use the download link
here
or in a terminal run
wget http://cmsshow.web.cern.ch/cmsshow/cmsShow-4.2-2.linux.tar.gz
2. Run the following commands in the directory to which you just downloaded the tarball:
tar xzf cmsShow-4.2-2.linux.tar.gz
cd cmsShow-4.2-2/src
find ../ -name 'pflow.fwc' -exec rm {} \;
find ../ -name 'pflow_algo.fwc' -exec rm {} \;
cvs co Fireworks/Core/macros/pflow.fwc
cvs co Fireworks/Core/macros/pflow_algo.fwc
ln -s src/Fireworks/Core/macros/pflow.fwc ../pflow.fwc
ln -s src/Fireworks/Core/macros/pflow_algo.fwc ../pflow_algo.fwc
cd ..
Mac:
1. Use the download link
here
or in a terminal run
curl -OL http://cmsshow.web.cern.ch/cmsshow/cmsShow-4.2-2.mac.tar.gz
2. Run the following commands in the directory to which you just downloaded the tarball:
tar xzf cmsShow-4.2-2.mac.tar.gz
cd cmsShow-4.2-2/src
find ../ -name 'pflow.fwc' -exec rm {} \;
find ../ -name 'pflow_algo.fwc' -exec rm {} \;
cvs co Fireworks/Core/macros/pflow.fwc
cvs co Fireworks/Core/macros/pflow_algo.fwc
ln -s src/Fireworks/Core/macros/pflow.fwc ../pflow.fwc
ln -s src/Fireworks/Core/macros/pflow_algo.fwc ../pflow_algo.fwc
cd ..
Instructions on how to run cmsShow can be found in the 'How-to' section.
Installation Recipe 2 - Current release with FWlite: 4_2_3
In order to use this installation recipe there are a few prerequisites that need to be met.
- You are either:
- working on a mac with xcode installed,
- using an slc5 terminal or have access to an slc5 terminal (e.g. ssh username@lxplus.cern.ch)
- using the chroot method explained here.
The Installation
To install simply follow the instructions below. More information on the installation can be found at the standard
Fireworks page.
NB: Step 1 is different on Linux and Mac but steps 2 and 3 should be followed for both!
Linux:
1.
wget http://cmsrep.cern.ch/cms/cpt/Software/download/cms/TARS/slc5_amd64_gcc434/CMSSW_4_2_3_FWLITE-slc5_amd64_gcc434.tar.gz
tar xzf CMSSW_4_2_3_FWLITE-slc5_amd64_gcc434.tar.gz
cd CMSSW_4_2_3_FWLITE
./install.sh
Mac:
1.
curl -OL http://cmsrep.cern.ch/cms/cpt/Software/download/cms/TARS/osx106_amd64_gcc421/CMSSW_4_2_3_FWLITE-osx106_amd64_gcc421.tar.gz
tar xzf CMSSW_4_2_3_FWLITE-osx106_amd64_gcc421.tar.gz
cd CMSSW_4_2_3_FWLITE
./install.sh
2. Assuming that you have followed the cvs prerequisites for this recipe, you now need to grab the code (Note: For the program to use this code you need to follow the
compilation instructions).
cd work/CMSSW_4_2_3_FWLITE/src/
cvs co Fireworks/ParticleFlow
cvs co Fireworks/Candidates
3. In order to get a display of either the particle flow based physics objects, or the particle flow inputs, you need to acquire the particle flow configuration files.
cvs co Fireworks/Core/macros/pflow.fwc
cvs co Fireworks/Core/macros/pflow_algo.fwc
ln -s src/Fireworks/Core/macros/pflow.fwc ../pflow.fwc
ln -s src/Fireworks/Core/macros/pflow_algo.fwc ../pflow_algo.fwc
Instructions on how to run FWLite can be found in the 'How-to' section.
User Code - Alternative Candidate Display
This section is optional but recommended. The following instructions show you how to acquire some additional code that allows you to display Candidates in an alternative way to the standard display. These alternative Candidates
will be displayed as straight line objects which have lengths proportional to either pt or energy, depending upon the scaling options set in the
Fireworks views.
cvs co UserCode/sharris
mv UserCode/sharris/Fireworks/AltCandidates Fireworks/
rm -rf UserCode
Information on setting up an alternative Candidate display can be found in the
'How-To' section.
Compilation
In order for the newly acquired source code to actually be used, it is necessary to re-compile the program.
NB: The compilation is done using the scram tool and hence, you should at least have some knowledge of it's basic usage.
In the 'src' directory (e.g. ~/Documents/CMSSW_4_2_3_FWLITE/work/CMSW_4_2_3_FWLITE/src) run the following commands:
. ../../../fwlite_setup.sh
scram b
How-to
How to get a display of PFCandidates and particle-flow based physics objects
You can take a look at the attached screenshots (
pflow.fwc &
pflow_algo.fwc) so that you know what to expect when loading
Fireworks with the particle flow config files.
cmsShow 4.2-2
In the main cmsShow directory (e.g. ~/Documents/cmsShow-4.2-2/) run the following command:
./cmsShow -c pflow.fwc http://cern.ch/fireworks/data-4.2.root
FWLite 4_2_3
In the main FWLite directory (e.g. ~/Documents/CMSSW_4_2_3_FWLITE/work/CMSSW_4_2_3_FWLITE) run the following commands:
source ../../fwlite_setup.sh
cmsenv
cmsShow -c pflow.fwc http://cern.ch/fireworks/data-4.2.root
NB: These instructions already assume that you have acquired the necessary particle flow configuration files (i.e. pflow.fwc & pflow_algo.fwc) by following the installation
instructions.
How to get a display of the particle flow inputs
cmsShow 4.2-2
In the main cmsShow directory (e.g. ~/Documents/cmsShow-4.2-2/) run the following command:
./cmsShow -c pflow_algo.fwc http://cern.ch/fireworks/data-4.2.root
FWLite 4_2_3
In the main FWLite directory (e.g. ~/Documents/CMSSW_4_2_3_FWLITE/work/CMSSW_4_2_3_FWLITE) run the following commands:
source ../../fwlite_setup.sh
cmsenv
cmsShow -c pflow_algo.fwc http://cern.ch/fireworks/data-4.2.root
How to get an alternative Candidate display
This how-to is only for those users that have followed the second installation recipe (FWLite 4_2_3).
- The first thing to do is start cmsShow. You may have already done this following the instructions in one of the previous how-to's
- Once the application is running you should use the add collection dialog box to (the button to open this is on the left hand side of the main view) search for 'Alt Candidates', as shown here.
- You should now have an alternative display of the Candidates in the RhoPhi and RhoZ views (see the screenshot here).
An example set of instructions are shown below (these assume that you are in the main FWLite directory e.g. ~/Documents/CMSSW_4_2_3_FWLITE/work/CMSSW_4_2_3_FWLITE):
source ../../fwlite_setup.sh
cmsenv
cmsShow http://cern.ch/fireworks/data-4.2.root
From this point you can simply add the 'Alt Candidates' collection using the add collection dialog box.
How to load a config file at runtime
In the main interface go to
File and select
Load Configuration OR, press
Ctrl and
l simultaneously. In the new window navigate to, and then open the desired config file (e.g.
pflow.fwc or
pflow_algo.fwc).
How to study PF Blocks
In order to study the PF Block objects clearly it's best if you don't display them at the same time as the PF Clusters and/or PF Tracks. Use the collection controller on the left hand side of the main
Fireworks window in order to change a collections visibility. This is done by either ticking or un-ticking the box at the side of the relevant collection.
In this case, you should un-tick the boxes by the side of "PF Tracks", "PF Cluster - ECAL" and "PF Cluster - HCAL" when displaying PF Block objects.
The visibility options are changed because drawing conflicts occur if the aforementioned objects are displayed together i.e. objects will overlap and it will become difficult to select/view any one in particular.
Wish-list & bug reports
This section is used to list bugs that are currently known as well as features that we are currently working towards getting implemented.
Known Bugs
- Some of the track objects aren't extrapolated far enough to reach the endcaps
- Ecal Rechit display in PF Rho Phi view isn't updated correctly after a filter is applied
- If PFBlock's are displayed with PFTrack and/or PFCluster objects then object overlap may occur. This will make it difficult to select between these objects. See the How-to for information on studying PFBlocks.
Bug Fixes
This is a list of known bugs that can be fixed if you use the second
installation recipe and compile the source code acquired from cvs.
The Wish-list (feature requests)
--
ColinBernet - 08-Feb-2011