Monte Carlo Embedding in L00
CdfSoftware has the ability to merge raw SIXD and ISLD banks. This can
be used only in certain combinations: one data with one MC, or two MC events
due to pedestal subtraction issues. What happens is very simple in that strip
charges are summed and Monte Carlo strip information is added together.
The user can specify to append to the event both the
secondary (to-be-merged) SIXD bank, and the merged SIXD bank.
There are two ways to use it. One way is to read in a cdfsoftware file with DHInput
and read in a to-be-merged file with the EventMerger module. The second is to
use a MC generator to generate events and then merge in a second file with
EventMerger.
Some notes:
-
In either case the merging occurs at the raw data bank level so
any clustering and pattern recognition will have to be redone after merging.
The characteristics of the event (run number, event number, etc.) are those
of the DHInput data stream. Only the specified banks of the EventMerger input
file are merged in. This means calibrations appropriate to the primary stream
are applied. The EventMerger will merge COT and calorimetry banks as well.
I do not know the status of COTD/COTQ merging as I never
tried tracking a merged event.
-
Note that after clustering, one can tell SiClusteringModule to write out
the SIXD banks after correction. This is what I used previously. But you
have no control over the descriptor of this bank ("CORRECTED") so if your
input data has a corrected SIXD bank you will run into confusion unless
you drop it at input.
-
The WriteBanks method for StorableRun2SiStripSet has a bug when writing
mixed data/MC SIXD/ISLD banks which prevents correct MISL/MSVX banks from
being made in this case. The user can still by hand figure out what is going
on from using the unmerged banks if they are available. Still a patch is needed
to write the mixed banks (not a fix just inhibits creation of MISL/MSVX). The
new version of the TrackingObjects/src/
StorableRun2SiStripSet.cc
should replace the 4.10.0 file.
A working version of the EventMergeMods package is tagged into 4.10.0.
I have not tested the example ntupling code since 4.6.2, but it compiles
and links.
An example ntupling module and executable code for 4.10.0 is found
here
This package creates two executables, l00spytest and l00spytest_gen, the latter
of which is based on cdfSim and the former assumes reading in of raw data at the
input. To use this, make a new release in 4.10.0, addpkg TrackingObjects and replace the
StorableRun2SiStripSet.cc file as per above, and untar the package linked above into
the release.
This ntuple module will loop over all L00 sensors looking for MC hits. If one exists it
will record the GEANT information for each MC hit (position, entrance angles, energy,
delta rays), the sensor strip data from primary, secondary, raw merged and corrected
ISLD banks (charge, noise, bad, etc.), and the clustering information for the sensor.
Again, no tracking is done so no track information is recorded.
An example tcl file for running the generator version (which includes all that is needed
for the simpler read in data) is
here
I don't know if this tcl will work with cdfSim as 4.10.0 has it; this worked for
4.6.2 but that should only affect the generator settings which I assume the average
user will mess with anyway. This example created a single FAKE_EVENT muon with
physical deposition model.
New Jason Nielsen has figured out how to run the tcl in 4.10.4 and
gives needed changes in this
email.
Please contact me if there are problems so I can update this.
Lester Miller
Last modified: Thu May 15 10:34:32 CDT 2003