[Halld-offline] FCAL Calibration: Data vs. MC

Matthew Shepherd mashephe at indiana.edu
Thu Sep 18 06:45:58 EDT 2014


Hi Richard, David, and Sean,

I'm looking for advice as to where/how to compartmentalize
the FCAL calibration.  (In writing this down,
it helps me think through the problem -- perhaps there
are other similar problems.)

HDGEANT reports energy deposited in a block, however
this still needs "calibration" (now done at post-reconstruction
shower level) due to systematic shifts resulting from
energy loss.  This is now done in DFCALShower_factory
which is a level above the clusterizer:  DFCALCluster_factory.

The FADCs will report a pulse integral for each block.
This needs to be converted to an energy.  Arguably this
should be done with an overall (probably fixed) multiplicative constant
that sets the rough scale for pulse integral -> energy and
then a second, per block, "gain factor" that is a 
run-dependent constant near unity.  We can estimate
the overall scale constant from beam tests to try
to get the right scale for the initial run.  We'll try to
gain balance all channels based on PMT test data so
the individual block gains can start out at 1.

The question is, do we calibrate the detector such
that the result of calibration is actual energy in GeV or
the output of HDGEANT?  (Maybe the difference between
these is imperceptible, but I don't think it will be.)

I think what we want to do is calibrate such that it is
actual energy in GeV.  Then we want to adjust the
shower-level calibration appropriately.  What we do
NOT want to do is have a branch that applies different
shower level correction for MC and data.  This means
that, post run, we need to devise an algorithm to 
produce the same calibrated block-level energy from
the energy deposited per bock as recorded by HDGEANT.
I don't think there is a way to know in advance if
this is a single common algorithm for all blocks or
will need tuning on a block by block basis.  (We
may need additional constants.)

To prepare for actual data, we will generate EVIO
output of HDGEANT and then try to calibrate the block
level constants using the output of DFCALCluster_factory.

We can then look at invariant mass of clusters (no
shower level energy correction applied) and that should
peak at the pi0 mass.  Applying shower-level nonlinearly
corrections, which will have to be derived later, should
improve resolution, but not necessary from the outset
(and may want to be turned off if it is not working
properly).

Where can I find the code that applies this overall
multiplicative constant to convert pulse integral to
energy (and what is assumed value in the current EVIO
output plugin)?  Where do the block level constants
get applied?  Sean has given me some preliminary
info on how to rewrite these.

Thanks,

Matt

---------------------------------------------------------------------
Matthew Shepherd, Associate Professor
Department of Physics, Indiana University, Swain West 265
727 East Third Street, Bloomington, IN 47405

Office Phone:  +1 812 856 5808




More information about the Halld-offline mailing list