Skip to content
Snippets Groups Projects
Commit 09e77967 authored by Walter Lampl's avatar Walter Lampl
Browse files

Revert "Merge branch '22.0' into '22.0'"

This reverts commit 94b1724d, reversing
changes made to 3531f686.
parent d403506f
No related branches found
No related tags found
No related merge requests found
......@@ -141,24 +141,6 @@ void ZDCDataAnalyzer::enableRepass(const ZDCModuleFloatArray& peak2ndDerivMinRep
}
}
void ZDCDataAnalyzer::SetGainFactorsHGLG(float gainFactorHG, float gainFactorLG)
{
for (size_t side : {0, 1}) {
for (size_t module : {0, 1, 2, 3}) {
m_moduleAnalyzers[side][module]->SetGainFactorsHGLG(gainFactorHG, gainFactorLG);
}
}
}
void ZDCDataAnalyzer::SetGainFactorsHGLG(const ZDCModuleFloatArray& gainFactorsHG, const ZDCModuleFloatArray& gainFactorsLG)
{
for (size_t side : {0, 1}) {
for (size_t module : {0, 1, 2, 3}) {
m_moduleAnalyzers[side][module]->SetGainFactorsHGLG(gainFactorsHG[side][module], gainFactorsLG[side][module]);
}
}
}
void ZDCDataAnalyzer::SetPeak2ndDerivMinTolerances(size_t tolerance) {
for (size_t side : {0, 1}) {
for (size_t module : {0, 1, 2, 3}) {
......
......@@ -158,11 +158,6 @@ void ZDCPulseAnalyzer::SetDefaults()
m_HGUnderflowADC = 20;
m_LGOverflowADC = 1000;
// Default values for the gain factors uswed to match low and high gain
//
m_gainFactorLG = m_gainHG;
m_gainFactorHG = 1;
m_2ndDerivStep = 2;
m_noiseSigHG = 1;
......@@ -304,14 +299,10 @@ void ZDCPulseAnalyzer::Reset(bool repass)
m_samplesDeriv2nd.clear();
}
void ZDCPulseAnalyzer::SetGainFactorsHGLG(float gainFactorHG, float gainFactorLG)
{
m_gainFactorHG = gainFactorHG;
m_gainFactorLG = gainFactorLG;
}
void ZDCPulseAnalyzer::SetFitMinMaxAmp(float minAmpHG, float minAmpLG, float maxAmpHG, float maxAmpLG)
{
std::cout << "Setting fit min,max amp values " << minAmpHG << ", " << maxAmpHG << std::endl;
m_fitAmpMinHG = minAmpHG;
m_fitAmpMinLG = minAmpLG;
......@@ -493,7 +484,7 @@ bool ZDCPulseAnalyzer::LoadAndAnalyzeData(const std::vector<float>& ADCSamplesHG
if (ADCLG > m_LGOverflowADC) {
m_LGOverflow = true;
m_fail = true;
m_amplitude = m_LGOverflowADC * m_gainFactorLG; // Give a vale here even though we know it's wrong because
m_amplitude = m_LGOverflowADC * m_gainHG; // Give a vale here even though we know it's wrong because
// the user may not check the return value and we know that
// amplitude is bigger than this
}
......@@ -569,7 +560,7 @@ bool ZDCPulseAnalyzer::LoadAndAnalyzeData(const std::vector<float>& ADCSamplesHG
if (ADCLG > m_LGOverflowADC) {
m_LGOverflow = true;
m_fail = true;
m_amplitude = m_LGOverflowADC * m_gainFactorLG; // Give a value here even though we know it's wrong because
m_amplitude = m_LGOverflowADC * m_gainHG; // Give a value here even though we know it's wrong because
// the user may not check the return value and we know that
// amplitude is bigger than this
}
......@@ -581,7 +572,7 @@ bool ZDCPulseAnalyzer::LoadAndAnalyzeData(const std::vector<float>& ADCSamplesHG
if (ADCLGDelay > m_LGOverflowADC) {
m_LGOverflow = true;
m_fail = true;
m_amplitude = 1024 * m_gainFactorLG; // Give a value here even though we know it's wrong because
m_amplitude = 1024 * m_gainHG; // Give a value here even though we know it's wrong because
// the user may not check the return value and we know that
// amplitude is bigger than this
}
......@@ -692,16 +683,16 @@ bool ZDCPulseAnalyzer::DoAnalysis(bool repass)
//
// Multiply amplitude by gain factor
//
m_amplitude = m_fitAmplitude * m_gainFactorLG;
m_ampError = m_fitAmpError * m_gainFactorLG;
m_preSampleAmp = m_preSample * m_gainFactorLG;
m_preAmplitude = m_fitPreAmp * m_gainFactorLG;
m_postAmplitude = m_fitPostAmp * m_gainFactorLG;
m_expAmplitude = m_fitExpAmp * m_gainFactorLG;
m_amplitude = m_fitAmplitude * m_gainHG;
m_ampError = m_fitAmpError * m_gainHG;
m_preSampleAmp = m_preSample * m_gainHG;
m_preAmplitude = m_fitPreAmp * m_gainHG;
m_postAmplitude = m_fitPostAmp * m_gainHG;
m_expAmplitude = m_fitExpAmp * m_gainHG;
// BAC: also scale up the 2nd derivative so low and high gain can be treated on the same footing
//
m_minDeriv2nd *= m_gainFactorLG;
m_minDeriv2nd *= m_gainHG;
}
return result;
......@@ -722,14 +713,12 @@ bool ZDCPulseAnalyzer::DoAnalysis(bool repass)
}
}
m_preSampleAmp = m_preSample * m_gainFactorHG;
m_amplitude = m_fitAmplitude * m_gainFactorHG;
m_ampError = m_fitAmpError * m_gainFactorHG;
m_preAmplitude = m_fitPreAmp * m_gainFactorHG;
m_postAmplitude = m_fitPostAmp* m_gainFactorHG;
m_expAmplitude = m_fitExpAmp * m_gainFactorHG;
m_minDeriv2nd *= m_gainFactorHG;
m_preSampleAmp = m_preSample;
m_amplitude = m_fitAmplitude;
m_ampError = m_fitAmpError;
m_preAmplitude = m_fitPreAmp;
m_postAmplitude = m_fitPostAmp;
m_expAmplitude = m_fitExpAmp;
// If we have a non-linear correction, apply it here
//
......
......@@ -196,32 +196,26 @@ std::unique_ptr<ZDCDataAnalyzer> ZdcAnalysisTool::initializeLHCf2022()
m_deltaTSample = 3.125;
m_numSample = 24;
ZDCDataAnalyzer::ZDCModuleFloatArray peak2ndDerivMinSamples;
ZDCDataAnalyzer::ZDCModuleFloatArray tau1, tau2, peak2ndDerivMinSamples, t0;
ZDCDataAnalyzer::ZDCModuleFloatArray peak2ndDerivMinThresholdsHG, peak2ndDerivMinThresholdsLG;
ZDCDataAnalyzer::ZDCModuleFloatArray deltaT0CutLow, deltaT0CutHigh, chisqDivAmpCut;
ZDCDataAnalyzer::ZDCModuleBoolArray fixTau1Arr, fixTau2Arr;
ZDCDataAnalyzer::ZDCModuleFloatArray tau1 = {0, 1.3, 0.9, 1.0,
0, 1.2, 1.3, 1.35};
ZDCDataAnalyzer::ZDCModuleFloatArray tau2 = {4.5, 4.5, 4.5, 4.5, 4.5, 4.5, 4.5, 4.5};
ZDCDataAnalyzer::ZDCModuleFloatArray t0HG = {0, 26.3, 26.5, 26.8, 32, 32, 32, 32};
ZDCDataAnalyzer::ZDCModuleFloatArray t0LG = {0, 26.3, 26.5, 26.8, 0, 26.6, 26.3, 25.3};
for (size_t side : {0, 1}) {
for (size_t module : {0, 1, 2, 3}) {
fixTau1Arr[side][module] = true;
fixTau1Arr[side][module] = false;
fixTau2Arr[side][module] = false;
tau1[side][module] = 1;
tau2[side][module] = 4.5;
peak2ndDerivMinSamples[side][module] = 10;
peak2ndDerivMinThresholdsHG[side][module] = -35;
peak2ndDerivMinThresholdsLG[side][module] = -20;
peak2ndDerivMinThresholdsHG[side][module] = -12;
peak2ndDerivMinThresholdsLG[side][module] = -10;
deltaT0CutLow[side][module] = -10;
deltaT0CutHigh[side][module] = 10;
chisqDivAmpCut[side][module] = 50;
t0[side][module] = 32;
deltaT0CutLow[side][module] = -100;
deltaT0CutHigh[side][module] = 100;
chisqDivAmpCut[side][module] = 500;
}
}
......@@ -231,41 +225,20 @@ std::unique_ptr<ZDCDataAnalyzer> ZdcAnalysisTool::initializeLHCf2022()
ZDCDataAnalyzer::ZDCModuleFloatArray HGUnderFlowADC = {{{{1, 1, 1, 1}}, {{1, 1, 1, 1}}}};
ZDCDataAnalyzer::ZDCModuleFloatArray LGOverFlowADC = {{{{4000, 4000, 4000, 4000}}, {{4000, 4000, 4000, 4000}}}};
// For the LHCf run, use low gain samples
//
m_lowGainOnly = true;
// Construct the data analyzer
//
std::unique_ptr<ZDCDataAnalyzer> zdcDataAnalyzer (new ZDCDataAnalyzer(MakeMessageFunction(),
m_numSample, m_deltaTSample,
m_presample, "FermiExpRun3",
m_presample, "FermiExp",
peak2ndDerivMinSamples,
peak2ndDerivMinThresholdsHG,
peak2ndDerivMinThresholdsLG,
m_lowGainOnly));
m_lowGainOnly)); // last parameter is lowGainOnly
zdcDataAnalyzer->SetPeak2ndDerivMinTolerances(4);
zdcDataAnalyzer->SetADCOverUnderflowValues(HGOverFlowADC, HGUnderFlowADC, LGOverFlowADC);
zdcDataAnalyzer->SetTauT0Values(fixTau1Arr, fixTau2Arr, tau1, tau2, t0HG, t0LG);
zdcDataAnalyzer->SetTauT0Values(fixTau1Arr, fixTau2Arr, tau1, tau2, t0, t0);
zdcDataAnalyzer->SetCutValues(chisqDivAmpCut, chisqDivAmpCut, deltaT0CutLow, deltaT0CutHigh, deltaT0CutLow, deltaT0CutHigh);
zdcDataAnalyzer->SetGainFactorsHGLG(0.1, 1); // a gain adjustment of unity applied to LG ADC, 0.1 to HG ADC values
ZDCDataAnalyzer::ZDCModuleFloatArray noiseSigmasLG = {2, 2, 2, 2, 2, 2, 2, 2};
ZDCDataAnalyzer::ZDCModuleFloatArray noiseSigmasHG = {20, 20, 20, 20, 20, 20, 20, 20};
zdcDataAnalyzer->SetNoiseSigmas(noiseSigmasHG, noiseSigmasLG);
// Enable two-pass analysis
//
ZDCDataAnalyzer::ZDCModuleFloatArray peak2ndDerivMinRepassHG = {-10, -10, -10, -10,
-10, -10, -10, -10};
ZDCDataAnalyzer::ZDCModuleFloatArray peak2ndDerivMinRepassLG = {-6, -6, -6, -6,
-6, -6, -6, -6};
zdcDataAnalyzer->enableRepass(peak2ndDerivMinRepassHG, peak2ndDerivMinRepassLG);
// Set the amplitude fit range limits
//
......@@ -1120,7 +1093,6 @@ StatusCode ZdcAnalysisTool::recoZdcModules(const xAOD::ZdcModuleContainer& modul
zdcModule->auxdecor<float>("PreSampleAmp" + m_auxSuffix) = pulseAna_p->GetPreSampleAmp();
zdcModule->auxdecor<float>("Presample" + m_auxSuffix) = pulseAna_p->GetPresample();
zdcModule->auxdecor<float>("MinDeriv2nd" + m_auxSuffix) = pulseAna_p->GetMinDeriv2nd();
zdcModule->auxdecor<float>("MaxADC" + m_auxSuffix) = pulseAna_p->GetMaxADC();
}
ATH_MSG_DEBUG ("side = " << side << " module=" << zdcModule->zdcModule() << " CalibEnergy=" << zdcModule->auxdecor<float>("CalibEnergy")
......@@ -1133,7 +1105,7 @@ StatusCode ZdcAnalysisTool::recoZdcModules(const xAOD::ZdcModuleContainer& modul
for (const auto zdc_sum: moduleSumContainer)
{
int iside = (zdc_sum->zdcSide()==-1) ? 0 : 1;
int iside = zdc_sum->zdcSide();
float calibEnergy = getCalibModuleSum(iside);
zdc_sum->auxdecor<float>("CalibEnergy"+m_auxSuffix) = calibEnergy;
......
......@@ -122,10 +122,6 @@ public:
bool disableModule(size_t side, size_t module);
void SetGainFactorsHGLG(float gainFactorHG, float gainFactorLG);
void SetGainFactorsHGLG(const ZDCModuleFloatArray& gainFactorsHG, const ZDCModuleFloatArray& gainFactorsLG);
void SetPeak2ndDerivMinTolerances(size_t tolerance);
void SetFitTimeMax(float tmax);
......
......@@ -357,8 +357,6 @@ public:
m_noiseSigLG = noiseSigLG;
}
void SetGainFactorsHGLG(float gainFactorHG, float gainFactorLG);
void SetFitMinMaxAmp(float minAmpHG, float minAmpLG, float maxAmpHG, float maxAmpLG);
void SetTauT0Values(bool fixTau1, bool fixTau2, float tau1, float tau2, float t0HG, float t0LG);
......
......@@ -157,7 +157,7 @@ int ZdcRecChannelToolLucrod::convertLucrod2ZM(const ZdcLucrodDataContainer* lucr
{
xAOD::ZdcModule* new_sum = new xAOD::ZdcModule();
zdcSums->push_back(xAOD::ZdcModuleContainer::unique_type(new_sum));
new_sum->setZdcSide((iside==0) ? -1 : 1);
new_sum->setZdcSide(iside);
new_sum->auxdata<uint16_t>("LucrodTriggerSideAmp") = (iside==0) ? zld->GetTrigAvgC() : zld->GetTrigAvgA();
}
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment