Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migration of unmigrated content due to installation of a new plugin

Python script for LAC, FLE, FHE

I wrote a python script to easily run the code (genHists* and fit* and monitoring code) for LAC, FLE, FHE. It also plot threshold distribution if asked.
The script is located here : /a/sulky36/g.glast.u33/sanchez/CALcalib.py

Info
titleDocumentation

usage : python CALcalib.py -P-D-M Mode
where -P : plot results
-D : Print this doc and stop
-M : PLot Monitoring run : FLE FHE only, This option bypass Mode option
where Mode is : - LAC

  • FLE
  • FHE
  • ALL
    where Tag is the ouput basename

A script only to plot threshold distribution (/a/sulky36/g.glast.u33/sanchez/PlotRun.py)

Info
titleDocumentation

usage : python PlotRun.py -D-M Mode Tag
where -D : Print this doc and stop
-M : PLot Monitoring run : FLE FHE only, This option bypass Mode option
where Mode is : - LAC

  • FLE
  • FHE
  • ALL
    where Tag is the ouput basename

First look at genTrigMonitorHists and fitTrigMonitorHists

Zach wrote a code to monitor FLE and FHE threshold with nomSciOps runs. We used run 077018082.

PED : digitization-licos-v3r9p3_077014293_digi_DIGI.FLIGHT_GAIN.calPed.txt
MuSlope : digitization-licos-v3r9p3_077014313_digi_DIGI.FLIGHT_GAIN.muSlope.txt

The following figure shows threshold values. We have two populations : low energy should be FLE threshold value and hight energy FHE threshold. For FLE the mean value is around 150 Mev. There is not enough statistic for FHE threshold.
Image Added

The code works find at SLAC. I have some issues to run it on my laptop sue to version conflict)

A look at the new version of the code with nomSciOps runs.

We used run 077018082.
PED : digitization-licos-v3r9p3_077014293_digi_DIGI.FLIGHT_GAIN.calPed.txt
MuSlope : digitization-licos-v3r9p3_077014313_digi_DIGI.FLIGHT_GAIN.muSlope.txt

Zach made some changes in the code to be less sensitive to the trigger noise. The main change is a better definition of 'firstNonZeroBin' variable. Here is part of his mail.

Basically I have replaced David's 'firstNonZeroBin' variable w/ a 'firstBin>15%max' which should serve the same purpose - it should avoid sensitivity to any noise triggers in the LAC circuit.

Also I have a gemDeltaEventTime < 500 microseconds cut in genLACHists.exe which should also reduce noise hits.

Also I restricted the threshold fit parameter, making it a little more stable.

Image Added
LAC value distribution for run 077018222. The new code greatly improve the fit. Only few LAC value are obviously not found.
Image Added Image Added
LEX8 signal histograms for 2 channel badly fitted

Image Added
LEX8 signal histogram for crystal T3L5C8 which was badly fitted with previous version.

Impact on LAC runs, TVAC run 077016907.
Image Added

There is no major impact. Fitted LAC values remain almost the same.

Using sasha's code

I have use sasha's code with run 077018222. I put his code in cmt and was able to compile it.

I used fill_LAC_hists.C to make histogram and plot_lac_all_channels.cxx to make the following plot.
Image Added

Tip
titleNext step

Use : fit_lac_thresh.cxx and compare result with the new version of the GR analyze chain.

Conclusions

We are ready to monitor LAC, FLE, FHE threshold.

training with run backgnd-GR-v15r0-2

h.3 GR code
We train with a simulated run.
PED : digitization-licos-v3r9p3_077014293_digi_DIGI.FLIGHT_GAIN.calPed.txt
MuSlope : digitization-licos-v3r9p3_077014313_digi_DIGI.FLIGHT_GAIN.muSlope.txt

We fit LAC threshold for the NEG face.

Image Added
LAC distribution for NEG face obtained with Zach code

Tip
titlechange in the code

We change firstBin > 15%max by firstBin > 20%max. Without this, the code rise an exception.

h.3 python script to monitor
Image Added
FLE/FHE distribution obtained with the monitoring code

Image Added
CalMaxEne>>hflenofhe","CalMaxEne>0 && (GemConditionsWord==4 || GemConditionsWord==5 || GemConditionsWord==6 || GemConditionsWord==7)

Image Added
CalMaxEne>>hnoflefhe","CalMaxEne>0 && (GemConditionsWord==8 ||GemConditionsWord==9 || GemConditionsWord==10 || GemConditionsWord==11)

Image Added
CalMaxEne>>hflefhe","CalMaxEne>0 && (GemConditionsWord==12 || GemConditionsWord==13 || GemConditionsWord==14 || GemConditionsWord==15)

Image Added
CalMaxEne>>hnoflenofhe","CalMaxEne>0 && (GemConditionsWord==1 || GemConditionsWord==2 || GemConditionsWord==3 )

Finding LAC value with nomSciOps runs

Warning
titleWarning

This part is no more relevant since Zach changed the 'firstNonZeroBin' variable

Berrie and I (David Sanchez) had a look at how the code works with nomSciOps runs.
We found that some events have direct diode deposit on the opposite face. This case is not yet taking into account in the code that generated LAC histogram leading to bad LAC value.

...

It remains no bad value. It is probably useful to modify all scripts generating LAC, FLE, FHE histograms to take this case into account.

A look at the new version of the code.

Zach made some change in the code to be less sensitive to the trigger noise. Here is part of his mail.

Basically I have replaced David's 'firstNonZeroBin' variable w/ a 'firstBin>15%max' which should serve the same purpose - it should avoid sensitivity to any noise triggers in the LAC circuit.

Also I have a gemDeltaEventTime < 500 microseconds cut in genLACHists.exe which should also reduce noise hits.

Also I restricted the threshold fit parameter, making it a little more stable.

Python script for LAC, FLE, FHE

I wrote a python script to easily run the code (genHists* and fit*) for LAC, FLE, FHE. It also plot threshold distribution if asked.
The script is located here : /a/sulky36/g.glast.u33/sanchez/CALcalib.py