|
|
How to make signal MC requests
Creating new SP modes
(If you are making a request of existing SP modes, you can skip this section.)
- Check out ProdDecayFiles in your working release directory and place the *.dec (and/or
*.tcl) files there.
- Commit the new *.dec files via 'cvs add your.dec' and 'cvs commit your.dec'.
A BFMAIL message will be sent automatically to the keepers of ProdDecayFiles package.
Please DO NOT make a new official tag, as SP Coordinator creates them at appropriate
times after assembling requests by different people.
- Check out a new SP mode number for your signal mode via 'BbkSPModes --newmode' and
following the instructions. This is done mode by mode, so if you have many, it
will take a while.
- One must of course test new decay modes thoroughly before making a request.
If you are generating rare modes (in decay or production) that use many random numbers at
Event Generator stage, then please make sure that Random number Overuse checker does not
kill the jobs before 6K events per job (in SP9 production) are finished. A simple guide for
minimally testing .dec files with GeneratorsQAApp can be found
here.
- For large requests (>10M events), it is advised to get in touch with BaBar PAC and Software
Coordinator and get an approval, in addition to alerting the AWG conveners.
Making the SP request
To make a request you need only do two things.
- Create a file with your request information in it.
- Email the output file to the SP manager,
Matt Bellis.
Let's look at these two steps in detail.
The request file
The file you create will be interpreted assuming Python syntax, but you do not need to know
Python to create this file. The information you need to have in this file is
- Requestor: Who is making this request?
- Software release/runs: What software release should be used for this request? The options are shown
below in the comments of the request template file.
- Modes/ # of events: List of requested modes and the events/fb^{-1} that should be produced for each mode.
Roughly speaking, the number of OnPeak ifb foreach release/run conditions is as follows:
- SP8 - 350.0 ifb
- SP9 - 100.0 ifb
- SP10 - 450.0 ifb
- Y2S - 14.5 ifb
- Y3S - 31.0 ifb
Note that your request is for THE TOTAL NUMBER OF EVENTS THAT SHOULD BE IN BOOKKEEPING, FOLLOWING THIS REQUEST.
- AWG: Under the auspices of which AWG is this request being made?
- Comments: Extra information about this request.
- Emails of interested parties: Who wants to be notified when this request is allocated?
To create a template of the file you will submit, run the following command using this script: create_an_SP_request_template.py
[yakut07] create_an_SP_request_template.py filename
This creates a file named filename.py.
Let's take a look at this template file
# Who is requesting this SP?
requestor = "Emmy Noether"
# What are the SP releases for which this will be generated?
# There are only certain allowed values, so let's look at each one.
# Note that multiple entries are allowed.
# SP8 - Run 1-5. Events will be processed with R18, and then reprocessed such
# that it is the equivalent of R22.
# SP9 - Run 6. Events will be processed with R22.
# SP10 - Run 1-6. Events will be processed with R24.
# Y2S - Run 7. Events will be processed with R24 for the Y(2S) running conditions.
# Y3S - Run 7. Events will be processed with R24 for the Y(3S) running conditions.
# WARNING!!! WARNING!!!
# If you want both Y2S and Y3S modes, those should be submitted in two
# separate requests.
sp_release = ["SP8", "SP9" ]
# What modes and how many events per fb^{-1} are requested?
# The syntax is [ [mode1, events/ifb], [mode2, events/ifb], ...]
modes = [ [9997, 500], \
[9998, 500], \
[9999, 500] ]
# What AWG is overseeing this request? This is good information to have in the
# event that an abnormally large request is made. It allows the SP manager to verify
# that this request is really needed.
awg = "Quarkonium"
# Any comments about this request can go here. For instance, does the reqestor only
# need this data for Run 6? Are there special tags for the software release.?
comments = "Priority modes for a really important measurement."
# List the emails of all the individuals who should be notified when this request
# is actually allocated to the computer resources.
emails = [ "noether@slac.stanford.edu", "galois@slac.stanford.edu", "devnull@gmail.com" ]
The comments within the file should guide you when editing the file to suit your needs. One thing to be aware of is
for the modes listing I have used line breaks to make it more readable. You could also
have this entry read
modes = [ [9997, 500], [9998, 500], [9999, 500] ]
Submitting the request file
For now, you may email this file to
Matt Bellis.
In future development you may submit this file yourself in a more automated fashion.
Your request is written to an XML file in the SP manager's directory. You can view the output of your request
here
Why Python?
I chose to work with Python for these tools almost arbitrarily, as the same ends could have been
achieved with almost any scripting language. But it seems that Python has achieved a certain
critical mass for scientific applications and subsequent development and maintainance in those areas.
This project was actually an impetus for me to learn Python, so there may be some aspects that could
be done better. If you have any comments or criticisms, please email me at the address at the bottom
of this page.
Note that Python has it's own interactive shell, so you can use that as a simple development
environment for testing things out. There is also a very nice wrapper to ROOT (PyRoot) that I have
started using. I find I prefer this to ROOT's C-interpreter.
Keep in mind that some of the above editorializing is just my opinion, so take it for what it's worth.
If you would like to take advantage of some of the features of Python, or just learn more about it,
here are some good places to start.
|
Page Maintainer(s):
Matt Bellis,
|
Page Creator(s):
Matt Bellis,
|
| Last significant update: Oct-11-2008 |
Expiry date: JAN-01-2009 |
|
|