|EMC cluster energy correction [message #13060]
||Wed, 15 February 2012 13:53
Registered: April 2004
Location: National Centre for Nucle...
I have committed an updated on emc cluster energy correction.
To start from the beginning, emc cluster energy correction should correct for the energy leakage
in dead material and via rear side of crystals. The energy leakage is dependent on energy and polar angle.
Up to now energy correction with parametrization was available via
PndEmcCluster::GetEnergyCorrected() and it was based on the study performed in Babar framework.
Later Ola Biegun implemented energy-angle correction from 2-dimensional histogram, but that
correction was not integrated in full pandaroot reconstruction chain.
After that I tried to merge two approaches via one class
PndEmcClusterHistCalibrator(Int_t method, Int_t version)
where first input parameter:
method=1 - correction from the interpolation on 2-dimensional histogram
method=2 - correction from parametrization.
Second parameter "version" should take into account different versions of correction based for example on different geometries, including dead material or Geant3 vs Geant4.
At the the moment only one version is provided based on Geant3 simulation.
Till now it didn't provide reliable results.
But I made several correction in the code and calculated corrections on above 1 million events statistics.
Data to calculate correction are produced with /macro/emc/dedicated/EnergyPosCorrection/emc_correction_data_production. C.
Then to calculate correction from histogram in emc_correction_hist.C
energy and theta range is divided into intervals, and for each interval a histogram with MonteCarlo energy divided by Reconstructed energy is filled
Mean value of histogram for given interval is calculated. Finally there are four histograms for barrel emc,
forward, backward endcaps and shashlyk.
To obtain correction with parametrization in emc_correction_parametrization.C at the beginning similar histograms are calculated but in addition for barrel low and
high energies are separated. Histograms are fitted and parameters are stored in PndEmcClusterCalibrationPar containers.
Performance of correction is studied on 3 data sets with emc_correction_QA.C macro
1. Photons with energy from 0 to 10 GeV within whole theta range.
Four histograms are compared (no correction, correction from histogram, correction with parametrization and old correction from PndEmcCluster::GetEnergyCorrected())
as a ratio of reconstructed energy divided by MonteCarlo energy
and vs theta:
The overall performance look reasonable
2. 1 GeV photon separately for target spectrometer:
and shashlyk calorimeter
Visually energy peaks are centred around 1 GeV whereas for old correction peak is slightly shifted toward higher energy.
Important remark here is that non-corrected shashlyk energy is close to 1 GeV since sampling factor 3 is included in digitization and here only fine correction is applied.
3. pi0 invariant mass
Here both methods give pi0 mass 135.7 MeV and 135.5 MeV close to nominal mass and it is improvement of old correction (138 MeV).
As a conclusion there is some improvement in comparison with old parametrization and both implemented methods give comparable results.
Cluster energy correction with PndEmcClusterHistCalibrator still should be implemented inside PndPidCorrelator.
When it will be done I will remove PndEmcCluster::GetEnergyCorrected() function and PndEmcClusterHistCalibrator should be used instead.
I planed to do the same study with Geant4 but Dirc crashes and I would rather not exclude it and I'm waiting
when the problem with Dirc in Geant4 will be solved.