Reason for change

This is the L1 that we will use for the public data release.

Because of an issue - still not understood - with CalCfpEnergy and Root 5.20 in Glast Release, we have decided to stick with Root 5.18 for the moment. This means that we had to take Science Tools v9r15p3 - which we need and which is compiled against Root 5.20 because of important bug fixes to TMinuit2 - and compile it against Root 5.18.00c-gl1. This has become ST v9r15p3gl2. The reason Science Tools and Glast Release are connected in such a way for L1 is because of ft2Util that links against both ST and GR (it reads in digi and merit files and writes out FT2 files). We have gone through the dependencies to make sure that nothing L1 uses from ST uses TMinuit2 (i.e. would need the bug fixes in Root 5.20) so ST v9r15p3gl2 should be safe to use for L1.

Test Procedure

We have processed run 271088335 in the DEV pipeline with this version of L1Proc and compared it to the original L1 processing. The files are:

root://glast-test-rdr.slac.stanford.edu//glast/Data/Flight/Level1/LPA/dev/1.75/ft1/gll_ph_r0271088335_v003.fit
root://glast-test-rdr.slac.stanford.edu//glast/Data/Flight/Level1/LPA/dev/1.75/ft2/gll_pt_r0271088335_v003.fit
root://glast-test-rdr.slac.stanford.edu//glast/Data/Flight/Level1/LPA/dev/1.75/ls1/gll_ev_r0271088335_v003.fit
root://glast-test-rdr.slac.stanford.edu//glast/Data/Flight/Level1/LPA/dev/1.75/ls3/gll_lt_r0271088335_v003.fit
root://glast-test-rdr.slac.stanford.edu//glast/Data/Flight/Level1/LPA/dev/1.75/merit/r0271088335_v003_merit.root
root://glast-test-rdr.slac.stanford.edu//glast/Data/Flight/Level1/LPA/dev/1.75/filteredMerit/r0271088335_v002_filteredMerit.root

We have validated the data in the following ways:

- CalCfpEnergy, beyond the Root 5.20 issue, also seems to produce slightly different results depending on the computer architecture. The SLAC batch farm contains several different ones, in particular rhel3 and rhel4-64, in addition to Intel and AMD. A run is always split into hundreds of pieces that randomly run on all of these different machines. This makes an event-by-event comparison more difficult. It also occasionally changes the number of events in the FT1 file. In this case the number of events in the FT1 file decreased from 36685 to 36682 from the original processing to the new one.

- I have verified for the test run that all FT1 columns except for ENERGY are identical between the two processings. For the ENERGY column, I see 49 events with a difference. All but two are tiny, <<1%. While two changes are at the 10% and 20% level. Neither of the two were Diffuse photons. This is consistent with changes previously seen with different computer architectures.

- Note that the CalCfpEnergy issue that has just been discovered is not understood at all and all comparisons should be seen in that light. It's clear that all data processed with the current GR (v15r47p12) - which we are not updating in the L1 release - suffers from this feature. And it's not clear when it was first introduced. Also note that this CalCfpEnergy issue seems to predominantly affect background events. When there is a change for Diffuse photons it's at the level of 10^-6 relative energy variation. This probably indicates that the problem is related to unstable/sensitive fits and background events. But that is just a guess.

- We have verified that FT1 EVENT_CLASS in the new processing is identical to FT1 CTBCLASSLEVEL in the original processing.

- We have verified through spot checks that the new FT1 Diffuse response columns are the same as the ones in Benoit's 11 months sample. Columns DIFRSP0 and DIFRSP1 in our FT1 files are the same as DIFRSP0 and DIFRSP2 in Benoit's file (there are tiny numerical differences between DIFRSP1 and DIFRPS2 - presumably round off errors). For this comparison we needed an older run and used run 263204954. The reprocessed FT1 file is here: root://glast-test-rdr.slac.stanford.edu//glast/Data/Flight/Level1/LPA/dev/1.75/ft1/gll_ph_r0263204954_v001.fit. Benoit's file was /nfs/farm/g/glast/u33/lott/11month_dataset/ft1_may_rock43.fits.

- We have verified that the following columns are identical in the two FT2 files: START,STOP,LAT_GEO,LON_GEO,RAD_GEO,RA_ZENITH,DEC_ZENITH,B_MCILWAIN,L_MCILWAIN, GEOMAG_LAT,RA_SCZ,DEC_SCZ,RA_SCX,DEC_SCX,LAT_MODE,LIVETIME,QSJ_1,QSJ_2,QSJ_3,QSJ_4. The SC_POSITION column has to be expanded and is not covered by the diff script. I made a few spot checks. No changes.

- We have verified that the following new FT2 columns are present:: RA_NPOLE, DEC_NPOLE, ROCK_ANGLE, LAT_CONFIG, DATA_QUAL

- We have done spot checks to verify the consistency between LS1 and the original Merit ntuple.

Rollback procedure

We could switch back to the previous version of L1Proc. In that case we would have to turn off exporting files to the FSSC and switch to a mode where we do continous reprocessing for the FSSC files. Note that the current L1 pipeline uses the same Glast Release as this new one.

CCB Jira

SSC-216@JIRA

Details

L1Pipeline v1r75:
- Make ft1 on chunks.
- Add diffuse response to ft1.
- Make our own gap file.
- Add quality and config to ft2.
- Creating filtered Merit files (photons only, for now).
- Move a bunch of stuff from setSuccessful to setRunning.
- Allow specifying the version to fileNames.fileName.
- Add version to chunk file names (but it's always 0 at the mo).
- Tweak hsplit to work around ROOT 5.20 issue.
- Allow data catalog type to differ from group.
- Allow attaching extra metadata when registering files - use to specify cut for filtered merit.
- fileNames.fileName can get file name from a variable, if so it overrides the normal rules.

scienceTools: v9r15p3gl2
- This was a major upgrade for Science Tools - the old L1 was still at v9r8p2.
- L1 is only using makeFT1, gtltcube, gtmktime and gtdiffrsp from the ScienceTools.
- In addition, ft2Utils and Verify are linking to Science Tools..
- This special version of Science Tools is compiled against Root 5.18.00c-gl1. See the top of the page for additional details. Note that the 'gl2' in the ST version number is not related to the Root version it is based on, but is purely a cvs branch tag number.

evtClassDef: v0r14p00
- v0r6p1: added updated LS1 dictionary file from Julie
- v0r7: add cuts and classifier script for Pass 7
- v0r8: add (pass-through) P7_electron_Classifier.py
- v0r9: add classifier script to map CTBClassLevel to EVENT_CLASS for Pass 6 reprocessing
- v0r10: new LS1variables
- v0r11: removed 5 new LS1variables (per Julie)
- v0r12: removed 'return' chars from LS1variables
- v0r13: revert to LS1variables of v0r9 (per Julie) to be used for first public data release
- v0r14: update Pass6_Reprocessing_Classifier

ft2Util: v1r2p31
- new version handling both old and new ft2 tpl file
- force DigiStart and DigiStop from command line
- added LiveTimeTolerance parameter to set to zero values below the tolerance
- fixed bug in mergeft2.cxx concerning ra_sc* values
- zero-length entries at the end of the 1-second ft2file are checked and skipped
- Fixes merging bug for IN_SAA (was previously not defined).

Complete set of tags for L1Proc 1.75

Code Versions

GlastRelease (sim/recon): v15r47p12

ScienceTools (Level 2) : v9r15p3gl2*

Science Ops (task defs, scripts):

Level 1 pipeline code and applications running in L1:

svac/L1Pipeline: v1r75*

calibTkrUtil v2r7p3
calibGenTKR v4r5

dataMonitoring/AlarmsCfg: v5r17p4
dataMonitoring/FastMonCfg: v2r0p0
dataMonitoring/DigiReconCalMeritCfg: v1r4p1

dataMonitoring/Common: v6r0p0
dataMonitoring/FastMon: v5r0p0
datMonitoring/IGRF: v1r0p1

svac/Monitor: v1r2p37
svac/EngineeringModelRoot: v4r4
svac/TestReport: v9r2

users/richard/pipelineDatasets: v0r6

ft2Util: v1r2p31*

evtClassDefs v0r14*

GPLtools: fileOps1