Skip to content

Commit e4f3ea2

Browse files
Merge pull request #891 from SBNSoftware/bugifx/acastill_realisticPMT
Bugifx/acastill realistic pmt
2 parents c741e1c + 8d03b7f commit e4f3ea2

File tree

13 files changed

+90
-76
lines changed

13 files changed

+90
-76
lines changed

sbndcode/Calibration/configurations/calibration_database_PDS_TagSets_sbnd.fcl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ BEGIN_PROLOG
1010

1111
# For SBND 2025 Fall production
1212
PDS_CalibrationTags_Nov2025: {
13-
PMTCalibrationDatabaseTag: "v2r1"
14-
DatabaseTimeStamp: 1763157679000000000
13+
PMTCalibrationDatabaseTag: "v3r1"
14+
DatabaseTimeStamp: 1765487620000000000
1515
}
1616

1717
END_PROLOG

sbndcode/JobConfigurations/standard/reco/config/workflow_reco2.fcl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,8 +77,8 @@ sbnd_reco2_producers:{
7777
fmatchoparaSCE: @local::sbnd_simple_flashmatch_opara_sce
7878
opt0finder: @local::sbnd_opt0_finder_one_to_many
7979
opt0finderSCE: @local::sbnd_opt0_finder_one_to_many
80-
tpcpmtbarycentermatching: @local::TPCPMTBarycenterMatchProducer
81-
tpcpmtbarycentermatchingSCE: @local::TPCPMTBarycenterMatchProducerSCE
80+
tpcpmtbarycentermatching: @local::TPCPMTBarycenterMatchProducerMC
81+
tpcpmtbarycentermatchingSCE: @local::TPCPMTBarycenterMatchProducerSCEMC
8282

8383
### Uncalibrated calorimetry producer for calibration caloskimmer
8484
caloskimCalorimetry: @local::caloskim_calorimetry

sbndcode/JobConfigurations/standard/standard_detsim_sbnd.fcl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,12 +68,12 @@ physics:
6868
simtpc2d: @local::sbnd_wcls_simsp_bothrois
6969
crtsim: @local::sbnd_crtsim
7070
opdaq: @local::sbnd_opdetdigitizer
71-
pmtmetricmc: @local::sbnd_pmtmcmetricproducer
7271
pmtpulseoscillation: @local::sbnd_pmtpulseoscillation
72+
pmtmetricmc: @local::sbnd_pmtmcmetricproducer
7373
}
7474

7575
#define the producer and filter modules for this path, order matters,
76-
simulate: [rns, simtpc2d, crtsim, opdaq, pmtmetricmc, pmtpulseoscillation]
76+
simulate: [rns, simtpc2d, crtsim, opdaq, pmtpulseoscillation, pmtmetricmc]
7777

7878
#define the output stream, there could be more than one if using filters
7979
stream1: [ out1 ]

sbndcode/LArSoftConfigurations/opticalproperties_sbnd.fcl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ sbnd_opticalproperties: {
3030
# ScintPreScale MUST be equal/larger than the largest detection efficiency applied at DetSim stage
3131
# This corresponds to the coated PMTs detection efficiency (3.9% see docdb-40444)
3232
# See sbndcode/OpDetSim/digi_pmt_sbnd.fcl
33-
ScintPreScale: 0.039
33+
ScintPreScale: 0.0392
3434

3535
EnableCerenkovLight: false # Cerenkov light OFF by default
3636

sbndcode/OpDetReco/OpDeconvolution/Alg/OpDeconvolutionAlgWienerData_tool.cc

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,6 @@ class opdet::OpDeconvolutionAlgWiener : opdet::OpDeconvolutionAlg {
5151
std::vector<double> fSinglePEWave;
5252
std::vector<int> fSinglePEChannels;
5353
std::vector<double> fPeakAmplitude;
54-
std::vector<int> fSkipChannelList;
5554
bool fPositivePolarity;
5655
bool fUseSaturated;
5756
int fADCSaturationValue;
@@ -129,7 +128,6 @@ opdet::OpDeconvolutionAlgWiener::OpDeconvolutionAlgWiener(fhicl::ParameterSet co
129128
fPMTChargeToADC = p.get< double >("PMTChargeToADC");
130129
fDecoWaveformPrecision = p.get< double >("DecoWaveformPrecision");
131130
fBaselineSample = p.get< short unsigned int >("BaselineSample");
132-
fSkipChannelList = p.get< std::vector<int>>("SkipChannelList");
133131
fFilter = p.get< std::string >("Filter");
134132
fElectronics = p.get< std::string >("Electronics");
135133
fDaphne_Freq = p.get< double >("DaphneFreq");
@@ -173,11 +171,9 @@ std::vector<raw::OpDetWaveform> opdet::OpDeconvolutionAlgWiener::RunDeconvolutio
173171
{
174172
std::vector<raw::OpDetWaveform> wfDeco;
175173
wfDeco.reserve(wfVector.size());
176-
for(auto const& wf : wfVector)
177-
{
174+
for(auto const& wf : wfVector){
178175
int channelNumber = wf.ChannelNumber();
179-
auto it = std::find(fSkipChannelList.begin(), fSkipChannelList.end(), channelNumber);
180-
if (it == fSkipChannelList.end()) {
176+
if(fPMTCalibrationDatabaseService->getReconstructChannel(channelNumber)) {
181177
fSinglePEWave = fPMTCalibrationDatabaseService->getSER(channelNumber);
182178
double SPEAmplitude = fPMTCalibrationDatabaseService->getSPEAmplitude(channelNumber);
183179
double SPEPeakValue = *std::max_element(fSinglePEWave.begin(), fSinglePEWave.end(), [](double a, double b) {return std::abs(a) < std::abs(b);});

sbndcode/OpDetReco/OpDeconvolution/job/opdeconvolution_sbnd.fcl

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@ SBNDOpDeconvolutionPMT_data.Electronics: [""]
3434
SBNDOpDeconvolutionPMT_data.OpDecoAlg.OpDetDataFile: "./OpDetSim/digi_pmt_sbnd_data_OV6.root"
3535
SBNDOpDeconvolutionPMT_data.OpDecoAlg.Filter: "(x>0)*exp(-0.5*pow(x/[0],[1]))" #Gauss filter, remove DC component F(0)=0
3636
SBNDOpDeconvolutionPMT_data.OpDecoAlg.DecoWaveformPrecision: 0.005
37-
SBNDOpDeconvolutionPMT_data.OpDecoAlg.SkipChannelList: [39, 66, 67, 71, 85, 86, 87, 92, 115, 138, 141, 170, 197, 217, 218, 221, 222, 223, 226, 245, 248, 249, 302]
3837

3938
###### PMT REALISTIC MC ######
4039

@@ -46,7 +45,6 @@ SBNDOpDeconvolutionPMT_realisticMC.Electronics: [""]
4645
SBNDOpDeconvolutionPMT_realisticMC.OpDecoAlg.OpDetDataFile: "./OpDetSim/digi_pmt_sbnd_data_OV6.root"
4746
SBNDOpDeconvolutionPMT_realisticMC.OpDecoAlg.Filter: "(x>0)*exp(-0.5*pow(x/[0],[1]))" #Gauss filter, remove DC component F(0)=0
4847
SBNDOpDeconvolutionPMT_realisticMC.OpDecoAlg.DecoWaveformPrecision: 0.005
49-
SBNDOpDeconvolutionPMT_realisticMC.OpDecoAlg.SkipChannelList: [39, 66, 67, 71, 85, 86, 87, 92, 115, 138, 141, 170, 197, 217, 218, 221, 222, 223, 226, 245, 248, 249, 302]
5048

5149

5250
###### XA IDEAL MC ######

sbndcode/OpDetReco/OpDeconvolution/job/sbnd_flashfinder_deco.fcl

Lines changed: 16 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -28,57 +28,37 @@ SBNDDecoSimpleFlashTPC1.CorrectLightPropagation: true
2828

2929
###### PMT DATA ######
3030
###TPC0
31-
SBNDDecoSimpleFlashTPC0_data: @local::SBNDSimpleFlashTPC0
31+
SBNDDecoSimpleFlashTPC0_data: @local::SBNDDecoSimpleFlashTPC0
32+
SBNDDecoSimpleFlashTPC0_data.ReadoutDelay: 0 //cable time delay in us
3233
SBNDDecoSimpleFlashTPC0_data.DriftEstimatorConfig.tool_type: "DriftEstimatorPMTRatio"
3334
SBNDDecoSimpleFlashTPC0_data.DriftEstimatorConfig.DataCalibration: true
34-
SBNDDecoSimpleFlashTPC0_data.PECalib.SPEAreaGain: 200
35-
SBNDDecoSimpleFlashTPC0_data.OpHitProducers: ["ophitpmt"]
36-
SBNDDecoSimpleFlashTPC0_data.OpHitInputTime: "RiseTime"
37-
SBNDDecoSimpleFlashTPC0_data.UseT0Tool: true
38-
SBNDDecoSimpleFlashTPC0_data.ReadoutDelay: 0 //cable time delay in us
39-
SBNDDecoSimpleFlashTPC0_data.CorrectLightPropagation: true
40-
SBNDDecoSimpleFlashTPC0_data.DriftEstimatorConfig.CalibrationFile: "OpDetReco/PMTRatioCalibration_data_v2.root"
35+
SBNDDecoSimpleFlashTPC0_data.DriftEstimatorConfig.CalibrationFile: "OpDetReco/PMTRatioCalibration_data_v2_tpc0.root"
36+
SBNDDecoSimpleFlashTPC0_data.FlashGeoConfig: @local::FlashGeoThresholdTPC0Data
4137

4238
#TPC1
43-
SBNDDecoSimpleFlashTPC1_data: @local::SBNDSimpleFlashTPC1
39+
SBNDDecoSimpleFlashTPC1_data: @local::SBNDDecoSimpleFlashTPC1
40+
SBNDDecoSimpleFlashTPC1_data.ReadoutDelay: 0 //cable time delay in us
4441
SBNDDecoSimpleFlashTPC1_data.DriftEstimatorConfig.tool_type: "DriftEstimatorPMTRatio"
4542
SBNDDecoSimpleFlashTPC1_data.DriftEstimatorConfig.DataCalibration: true
46-
SBNDDecoSimpleFlashTPC1_data.PECalib.SPEAreaGain: 200
47-
SBNDDecoSimpleFlashTPC1_data.OpHitProducers: ["ophitpmt"]
48-
SBNDDecoSimpleFlashTPC1_data.OpHitInputTime: "RiseTime"
49-
SBNDDecoSimpleFlashTPC1_data.UseT0Tool: true
50-
SBNDDecoSimpleFlashTPC1_data.ReadoutDelay: 0 //cable time delay in us
51-
SBNDDecoSimpleFlashTPC1_data.CorrectLightPropagation: true
43+
SBNDDecoSimpleFlashTPC1_data.DriftEstimatorConfig.CalibrationFile: "OpDetReco/PMTRatioCalibration_data_v2_tpc1.root"
44+
SBNDDecoSimpleFlashTPC1_data.FlashGeoConfig: @local::FlashGeoThresholdTPC1Data
5245

5346

5447
###### PMT REALISTIC MC ######
5548
###TPC0
56-
SBNDDecoSimpleFlashTPC0_realisticMC: @local::SBNDSimpleFlashTPC0
57-
SBNDDecoSimpleFlashTPC0_realisticMC.DriftEstimatorConfig.tool_type: "DriftEstimatorPMTRatio"
58-
SBNDDecoSimpleFlashTPC0_realisticMC.DriftEstimatorConfig.DataCalibration: true
59-
SBNDDecoSimpleFlashTPC0_realisticMC.PECalib.SPEAreaGain: 200
60-
SBNDDecoSimpleFlashTPC0_realisticMC.OpHitProducers: ["ophitpmt"]
61-
SBNDDecoSimpleFlashTPC0_realisticMC.OpHitInputTime: "RiseTime"
62-
SBNDDecoSimpleFlashTPC0_realisticMC.UseT0Tool: true
63-
SBNDDecoSimpleFlashTPC0_realisticMC.ReadoutDelay: 0 //cable time delay in us
64-
SBNDDecoSimpleFlashTPC0_realisticMC.CorrectLightPropagation: true
65-
SBNDDecoSimpleFlashTPC0_realisticMC.DriftEstimatorConfig.CalibrationFile: "OpDetReco/PMTRatioCalibration_MC2.root"
49+
SBNDDecoSimpleFlashTPC0_realisticMC: @local::SBNDDecoSimpleFlashTPC0_data
50+
SBNDDecoSimpleFlashTPC0_realisticMC.DriftEstimatorConfig.CalibrationFile: "OpDetReco/PMTRatioCalibration_MC3.root"
51+
SBNDDecoSimpleFlashTPC0_realisticMC.ReadoutDelay: 0. //cable time delay in us
52+
SBNDDecoSimpleFlashTPC0_realisticMC.FlashGeoConfig: @local::FlashGeoThresholdTPC0_realisticMC
6653

6754
#TPC1
68-
SBNDDecoSimpleFlashTPC1_realisticMC: @local::SBNDSimpleFlashTPC1
69-
SBNDDecoSimpleFlashTPC1_realisticMC.DriftEstimatorConfig.tool_type: "DriftEstimatorPMTRatio"
70-
SBNDDecoSimpleFlashTPC1_realisticMC.DriftEstimatorConfig.DataCalibration: true
71-
SBNDDecoSimpleFlashTPC1_realisticMC.PECalib.SPEAreaGain: 200
72-
SBNDDecoSimpleFlashTPC1_realisticMC.OpHitProducers: ["ophitpmt"]
73-
SBNDDecoSimpleFlashTPC1_realisticMC.OpHitInputTime: "RiseTime"
74-
SBNDDecoSimpleFlashTPC1_realisticMC.UseT0Tool: true
75-
SBNDDecoSimpleFlashTPC1_realisticMC.ReadoutDelay: 0 //cable time delay in us
76-
SBNDDecoSimpleFlashTPC1_realisticMC.CorrectLightPropagation: true
77-
SBNDDecoSimpleFlashTPC1_realisticMC.DriftEstimatorConfig.CalibrationFile: "OpDetReco/PMTRatioCalibration_MC2.root"
55+
SBNDDecoSimpleFlashTPC1_realisticMC: @local::SBNDDecoSimpleFlashTPC1_data
56+
SBNDDecoSimpleFlashTPC1_realisticMC.DriftEstimatorConfig.CalibrationFile: "OpDetReco/PMTRatioCalibration_MC3.root"
57+
SBNDDecoSimpleFlashTPC1_realisticMC.ReadoutDelay: 0. //cable time delay in us
58+
SBNDDecoSimpleFlashTPC1_realisticMC.FlashGeoConfig: @local::FlashGeoThresholdTPC1_realisticMC
7859

7960

8061
###### XA IDEAL MC ######
81-
8262
####OpFlash finder for XArapucas deconvolved waveforms#####
8363
###TPC0
8464
SBNDDecoSimpleFlashTPC0Arapuca: @local::SBNDSimpleFlashTPC0

sbndcode/OpDetReco/OpFlash/job/sbnd_driftestimatoralgo.fcl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ BEGIN_PROLOG
55
DriftEstimatorPMTRatio:
66
{
77
tool_type: "DriftEstimatorPMTRatio"
8-
CalibrationFile: "OpDetReco/PMTRatioCalibration_MC2.root"
8+
CalibrationFile: "OpDetReco/PMTRatioCalibration_MC3.root"
99
VGroupVUV: @local::sbnd_vuv_timing_parameterization.vuv_vgroup_mean
1010
VGroupVIS: @local::sbnd_vis_timing_parameterization.vis_vmean
1111
DataCalibration: true

sbndcode/OpDetReco/OpFlash/job/sbnd_flashgeoalgo.fcl

Lines changed: 40 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,51 @@
11
BEGIN_PROLOG
22

3-
FlashGeoBarycenter:
4-
{
3+
FlashGeoBarycenter:{
54
tool_type: "FlashGeoBarycenter"
65
WeightExp: 2
76
}
87

9-
FlashGeoThreshold:
10-
{
8+
FlashGeoThreshold:{
119
tool_type: "FlashGeoThreshold"
1210
PDTypes: ["pmt_coated", "pmt_uncoated"]
13-
ThresholdY: 0.75
14-
ThresholdZ: 0.45
11+
ThresholdY: 0.8
12+
ThresholdZ: 0.8
13+
NormalizeByPDType: true
14+
WeightExp: 2
15+
}
16+
17+
FlashGeoThresholdTPC0Data:{
18+
tool_type: "FlashGeoThreshold"
19+
PDTypes: ["pmt_coated"]
20+
ThresholdY: 0.5
21+
ThresholdZ: 0.5
22+
NormalizeByPDType: true
23+
WeightExp: 2
24+
}
25+
26+
FlashGeoThresholdTPC1Data:{
27+
tool_type: "FlashGeoThreshold"
28+
PDTypes: ["pmt_coated"]
29+
ThresholdY: 0.5
30+
ThresholdZ: 0.5
31+
NormalizeByPDType: true
32+
WeightExp: 2
33+
}
34+
35+
FlashGeoThresholdTPC0_realisticMC:{
36+
tool_type: "FlashGeoThreshold"
37+
PDTypes: ["pmt_coated"]
38+
ThresholdY: 0.7
39+
ThresholdZ: 0.7
40+
NormalizeByPDType: true
41+
WeightExp: 2
42+
}
43+
44+
FlashGeoThresholdTPC1_realisticMC:{
45+
tool_type: "FlashGeoThreshold"
46+
PDTypes: ["pmt_coated"]
47+
ThresholdY: 0.6
48+
ThresholdZ: 0.6
1549
NormalizeByPDType: true
1650
WeightExp: 2
1751
}

sbndcode/OpDetSim/DigiPMTSBNDAlg.hh

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -81,8 +81,6 @@ namespace opdet {
8181
bool MakeGainFluctuations; //Fluctuate PMT gain
8282
fhicl::ParameterSet GainFluctuationsParams;
8383
bool SimulateNonLinearity; //Fluctuate PMT gain
84-
bool PositivePolarity;
85-
bool OscillateAfterPulse;
8684
bool UseDataNoise;
8785
fhicl::ParameterSet NonLinearityParams;
8886

@@ -135,8 +133,6 @@ namespace opdet {
135133
return fParams.PMTBaseline;
136134
}
137135

138-
void AddOscillationAfterPulse( std::vector<double>& wave);
139-
140136
private:
141137

142138
ConfigurationParameters_t fParams;

0 commit comments

Comments
 (0)