GMINOS for the Mock Data Challenge

This page documents many of the changes made to GMINOS subsequent to the state at which it was at on 2003-01-30 as described in http://home.fnal.gov/~rhatcher/review_and_status_030131.html.

In summary the major changes include:

OLD files are available.

RANLUX

Users were reporting exact reproduction of events in the case of the 1/e flux (which give approximately flat event distribution). Somehow sufficient random values were being used that the cycle ended up supplying exactly the same value for first use in an event for sufficiently long runs. The mechanics of this are not quite understood, but it was thought unlikely that this should occur for runs using external fluxes. But to solve this problem in the general case the GRNDM routine was linked to calling RANLUX which has a much longer periodicity. Thanks go to Mark Messier who pointed me at where he did this for gNuMI.

Neugen3

Hugh significantly improved event generator is linked in (if/when the env variable NEUGEN3PATH is defined). One then choses between "classic" NEUGEN (sometimes referred to as NEUGEN2) and Neugen3 by setting the MKIN card to +2 or -2.

gNuMI Flux

Flux method 5 (MFLX 5) has been implemented to directly read gnumi column-wise ntuples.

To do or check:

M-planes: module based planes

Significant progress has been made in updating the geometry. Module based geometry is in place (and now enabled for both NearDet and FarDet) that has "official" strip lengths and WLS pigtails. The strips are collected into modules of the right number of strips (as opposed to the F planes where all modules had the same number of strips). Each module is wrapped in an aluminum skin of 0.5mm. The gap between strips in a module is set to 0.2mm; additionally there is a gap of 2mm between modules. The clear fiber lengths for each module type (plane coverage, view, side and module in the plane) is taken to be the "as-built" average; no plane-to-plane variation is put in.

Det Coverage U plane V plane
Near Partial
Full
Far Complete

Click on a image to get full scaled version

common features and deficiencies

For the new geometries the UGLIDBI tables in the offline database have been installed. Use the date range 2003-12-17 to 2003-12-21 on http://www-numi.fnal.gov/minwork/computing/find_db_update.html to show what SEQNO's have been added to each of the tables. Note that the entries are made for SimFlag::kMC as well as SimFlag::kReroot for all the positioning tables. The entries are for all SimFlag values for the tables that record the overall Hall sizes and structural quantities (strips/module, strip and wls lengths, etc).

The database constants appear to have incorrect values for the WLS fiber used in the bypass region -- it seems to be equal to the length of the missing region rather than accounting for the actual path of the swoop around the coil.

At the time of this writing (2003-12-22) the region near the coil for both NearDet full and FarDet complete planes has active strips right up to the coil. This, of course, is not true in reality. Modelling a good approximation of the shape of the bypass inserts is difficult. Having the mass of the strips in place is probably not too incorrect, if only they wouldn't generate hits. This may lend itself to a post-hoc approximation where hits in this region are simply removed (and those straddling the boundary are appropriately truncated). But code for this has not been fully developed, though recent changes to UgliStripHandle should now make the necessary info available via PartialLength().

Detector specific improvements/deficiencies:

NearDet

As seen in the pictures above there is now a Better approximation for the steel; it is only missing filet from the sides to the inside of the rail and the outer earlobe that hangs down outside the rails and the minor loss of the slots for the axial bolts. The estimate for the mass of the BXPL steel planes is 3.45125 tons/plane which translates to 0.976kt for 282 planes. My hand estimation of the contribution to the mass from scintillator is less than roughly 0.0292kt (or 3%).

The beam center location relative to the plane has been reverified ( x0 = 148.84cm, y0=40.9cm in the first steel plane ).

To do or check:

FarDet geometry

SM1 and SM2 have as-built numbers of planes. Average spacing of SM1 and SM2 planes adjusted to match individual measured average (5.94 cm nominal vs. 5.949/5.943). The gap between the supermodules has also been adjusted to match measurements. The size of the hall has been adjusted to match the as-built size -- the newly dimensioned size means that the veto shield upper wall should no longer appear to be embedded in the rock. Coil material is a foam approximating the density and composition of the the coductor region (copper, insulator, water, etc). The steel collar is in place (but extends too far out the ends).

OLD files

No. No. No. Do NOT use these any more!
They have been supplanted by the proper Mock Data Challenge files.

See the following pages concerning the Mock Data Challenge: general info, Ely talk[PDF]

The files below lack important corrections including changes to the flux (ie. the high-energy tail is too large) and for the overlay file the instantaneous POTs is too high (4.0 vs. 2.4). There are probably other differences as well. Besides, the true MDC set has superior statistics.

Data files using all the above features are now available on /afs/fnal.gov/files/data/minos/:

dirfilesize
d17/detsim03/mock_data gm_geom_far.preMDC.reroot.root 843MB
d17/detsim03/mock_data gm_geom_far_nue.preMDC.reroot.root 227MB
d17/detsim03/mock_data gm_geom_near.preMDC.reroot.root 341MB
d17/detsim03/mock_data gm_geom_overlay.preMDC.reroot.root 245MB

I don't really know why the near file is larger than the overlay file (which should contain all the near events as well as the rock events. This could be because of an error in the digitization process on the near file. Since all of FLSDigit is superceded with the new PhotonTransport + DetSim code that wouldn't matter. A quick look did show that the records did contain roughly the right number of pileup events. The reduction could also come in part from the elimination of numerous redundant copies (one per record) of the FLSParam table.

The files were generated on minos-rhatcher.fnal.gov which is a 2 CPU 3.2GHz P4 with 1GB memory.

  processed written POTs POTs per
written evt
seconds per
gen evt
total time
FarDet 36538 36538 3.8e21 1.04001e17 1.2894 13.1hr
FarDet (nue) 9766 9766 1.0e21 1.02396e17 1.3258 3.6hr
NearDet 42016 40713 4.0e16 9.82487e11 1.0910 12.7hr
NearRock 257471 20877 4.0e16 1.91598e12 0.5765 42.2hr
NearOverlay 1000 1000 4.0e16 --- --- ~3hr

The FarDet file represents 10yrs of data at our nominal POTs/yr. The Near files represent 1000 spills (8min, 20sec) at the nominal spill intensity; for the NearDet files only those events that generated hits in an active volume (i.e. scintillator strip) were written out.

One should note that the average 21 rock events/spill does not necessarily translate into 21 muons through the detector. Nor will a significant fraction of the interactions with vertices in the detector be reconstructable due to their location in the uninstrumented regions (partial planes and the spectrometer). These serve just to add the correct smearing and confusion to the reconstruction.

Processing the files

These .reroot.root files are ready to be processed via loon with a job similar to that found in $SRT_PUBLIC_CONTEXT/PhotonTransport/macros/simple.C.

These files are much too large to process in a single job both in terms of CPU time and candidate output file size. This can be easily dealt with by modifying the script to take two arguments: a number of records to skip and a number of records to process.

void process_partial(int nskip=0, int nrun=1000000)
{
  gSystem->Load("libDigitization");
  gSystem->Load("libDetSim");
  gSystem->Load("libPhotonTransport");
  gSystem->Load("libDataUtil");
  ...
  JobC jc;
  ... 
  jc.Path.Create("MyPath",
                  "RerootToTruthModule::Get "
                  "ScintHitToDigiPE::Get "
                  "DigiPEtoRawDigitModule::Get "
                  
                  //"OtherModules::Reco "
                  //"Output::Put "
                  );
 
  // Set up the input format as a reroot file.
  jc.Input.Set("Format=reroot");
  ...
  <more job configuration>
  ...
  jc.Input.Next(nskip);          // skip some records
  jc.Path("MyPath").Run(nrun);   // process a limited number more
  jc.Path("MyPath").Report();
 
}
One the invokes the script with
  $ loon -bq 'process_partial.C(10000,100)' file.reroot.root

Contact: Robert Hatcher <rhatcher@fnal.gov>