The most basic outline of the process is as follows.
Part I: Running a generator's output ntuple thru OSCAR to
produce Root files containing the Hits information. OSCAR is the
cms detector simulator.
Part II: Running
the OSCAR output thru ORCA's digitization process to produce another
set of Root files containing the digitized detector response
information.
Part III: Running
the ORCA digitization output thru the L1CaloTrigger ntuple writer to
produce a root file containing information from the L1CaloTrigger ORCA
package as well as relevant generator level information for comparison.
Part IV: Examining
the L1CaloTrigger ntuple in root.
Part I:
Step 1: Setting up on OSCAR environment.
cd to your favorite working
directory
scram project OSCAR OSCAR_2_4_5
cd OSCAR_2_4_5/src
Step 2: Checking out
OSCAR code from CVS
cmscvsroot OSCAR
cvs login
98passwd
cvs co -r OSCAR_2_4_5 Workspace
OR if this doesn't work try
setenv CVSROOT
:pserver:anonymous@cmscvs.cern.ch:/cvs_server/repositories/OSCAR
cvs login
98passwd
cvs co -r OSCAR_2_4_5 Workspace
cd Workspace
Step 3: Running a monte carlo produced ntuple thru OSCAR
Download the following ntuple file. It contains 100 events of
doubly diffractive 120GeV Higgs production made with the generator
EDDE. We will be using this file as the generator input for the
entire process.
Also download the following oscarrc file. It will replace the
default oscarrc in the Workspace directory. It contains the proper
settings for input and output files to work with this walkthrough.
oscarrc
edde_higgs_bb.ntpl
source writeTrigger.csh (or .sh)
eval `scram runtime -csh` (or -sh)
oscar -c oscarrc
Part II:
Step 1: Setting up an
ORCA environment.
cd ../../..
scram project ORCA ORCA_8_2_0
cd ORCA_8_2_0/src
Step 2: Using the
precompiled executable writeAllDigis to make the digis
mkdir digis
cd digis
We
need to copy over the PoolFileCatalog created by OSCAR over to the
directory where we will be running the digitization. The
PoolFileCatalog gives the proper pointers to the location of the input
and output files when running ORCA.
cp ../../../OSCAR_2_4_5/src/Workspace/PoolFileCatalog.xml .
Now we need to download the proper configuration file for
writeAllDigis. This is a modification of writeAllDigis.orcarc
from the ORCA package /Examples/ExProduction that has been changed so
that it sets the proper input and output for this walkthrough.
digisrc
eval `scram runtime -csh`
writeAllDigis -c digisrc
Part III:
Step 1: Checking out
the L1CaloTrigger package.
Now we need to check out the L1CaloTrigger package from CVS; however,
the recently fixed ntuple writer for L1CaloTrigger has not been added to
the ORCA/Examples package yet, so the relevant files need to be
downloaded into L1CaloTrigger and built.
cd ..
cmscvsroot ORCA
cvs login
98passwd
cvs co -r ORCA_8_2_0
Trigger/L1CaloTrigger
OR
setenv CVSROOT
:pserver:anonymous@cmscvs.cern.ch:/cvs_server/repositories/ORCA
cvs login
98passwd
cvs co -r ORCA_8_2_0
Trigger/L1CaloTrigger
Step 2: Building the
ntuple writer
Now we need to switch to the "test" subdirectory of
L1CaloTrigger. This is where we will be building a modified
version of the executable testL1CaloTrigger that will write our ntuple.
cd Trigger/L1CaloTrigger/test
Download and tar -xf the
following file. It contains the additional code for the ntuple
writer and the appropriate BuildFile.
CaloTest.tar
eval `scram runtime -csh`
scram b
Now we have built the executable mtestL1CaloTrigger
Step 3: Running the
ntuple writer.
First we need to download the appropriate configuration file, orcarc.
orcarc
Next we need to copy our PoolFileCatalog to our working directory so
that the executable can find the digis.
cp ../../../digis/PoolFileCatalog.xml .
Finally we can run the executable mtestL1CaloTrigger
eval `scram runtime -csh`
mtestL1CaloTrigger -c orcarc
The output should be a file called ntuple.root.
Part IV:
We can load the file ntuple.root into Root and look at it.
TFile f = TFile("ntuple.root")
h1->StartViewer()
This should open up a window with all the branches of data. Double clicking on any one of them will display the distribution of that variable for all the events.
The following is a summary of all of the data stored and it's
meaning. The algorithms used to create the L1 objects are
explained in the following talk.
www.hep.wisc.edu/~dasu/public/cms/Dasu12June2002.ppt
gemet[4], gemphi[4], gemeta[4]: The information for the four
highest Et generated electromagnetic objects.
iemet[4],iemphi[4],iemeta[4]: The information for the four
highest Et isolated electromagnetic objects.
nemet[4],nemphi[4],nemeta[4]: The information for the four
highest Et nonisolated electromagnetic objects.
uemet[4],uemphi[4],uemeta[4]: The information for the four
highest Et unidentified electromagnetic objects.
gjetet[8],gjetphi[8],gjeteta[8]: The information for the eight
highest Et generator level jets with abs(eta) < 3.
gfjetet[4],gfjetphi[4],gfjeteta[4]: The information for the eight
highest Et generator level jets with abs(eta) > 3, < 5.
rjetet[4],rjetphi[4],rjeteta[4]: The information for the four
highest Et L1 jets with abs(eta) < 3.
fjetet[4],fjetphi[4],fjeteta[4]: The information for the four
highest Et L1 jets with abs(eta) > 3, < 5.
gtauet[4],gtauphi[4],gtaueta[4]: The information for the four
highest Et tau leptons (currently disabled)
rtauet[4],rtauphi[4],rtaueta[4]: The information for the four
highest Et tau tagged jets.
gpupt,npu: This is pileup information. It is currently
disabled.
gpt: This is the pythia level pt of the event, not including any
pileup.
gtotet: The total Et of all generator level particles in the
event excluding neutrinos.
gmiset: The generator level missing Et.
rtotet: The L1 total Et.
rmiset: The L1 missing Et.
rht: The L1 Ht.
If you have afs access there is a full 10000 event ntuple made from the
EDDE generator available for use.
/afs/hep.wisc.edu/user/wchogg/CMSTutorial/ORCA_8_2_0/src/edde_ntuple/edde10000.root
This is a very large file, ~400Megabytes, so copying it is not
recommended.