Merge lp:~christopher-hunt08/maus/maus_new_digitizer into lp:maus/merge

Proposed by Christopher Hunt
Status: Merged
Merged at revision: 1240
Proposed branch: lp:~christopher-hunt08/maus/maus_new_digitizer
Merge into: lp:maus/merge
Diff against target: 158 lines (+40/-17)
4 files modified
src/common_cpp/Recon/SciFi/RealDataDigitization.cc (+34/-16)
src/common_cpp/Recon/SciFi/RealDataDigitization.hh (+2/-0)
src/common_py/ConfigurationDefaults.py (+1/-0)
src/map/MapCppTrackerDigits/MapCppTrackerDigits.cc (+3/-1)
To merge this branch: bzr merge lp:~christopher-hunt08/maus/maus_new_digitizer
Reviewer Review Type Date Requested Status
MAUS Maintainers Pending
Review via email: mp+335054@code.launchpad.net

Description of the change

Updates to the SciFi Digitizer in aniticipation of an updated calibration system.

To post a comment you must log in.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'src/common_cpp/Recon/SciFi/RealDataDigitization.cc'
2--- src/common_cpp/Recon/SciFi/RealDataDigitization.cc 2016-08-31 11:59:03 +0000
3+++ src/common_cpp/Recon/SciFi/RealDataDigitization.cc 2017-12-11 22:51:03 +0000
4@@ -28,7 +28,8 @@
5
6 #define MIN_ADC 0.000000001
7
8-RealDataDigitization::RealDataDigitization() : _npe_cut(0.0), _chan_map(_n_entries) {
9+RealDataDigitization::RealDataDigitization() : _npe_cut(0.0), _do_adc_cut(true),
10+ _chan_map(_n_entries) {
11 // Do nothing
12 }
13
14@@ -37,12 +38,14 @@
15 }
16
17 void RealDataDigitization::initialise(double npe_cut,
18+ bool do_adc_cut,
19 const std::string& map_file,
20 const std::string& calib_file,
21 const std::string& bad_channels_file) {
22 // Load calibration, mapping and bad channel list.
23 // These calls are to be replaced by CDB interface.
24 _npe_cut = npe_cut;
25+ _do_adc_cut = do_adc_cut;
26 bool map = load_mapping(map_file.c_str());
27 bool calib = load_calibration(calib_file.c_str());
28 bool bad_channels = load_bad_channels(bad_channels_file.c_str());
29@@ -97,10 +100,17 @@
30 continue;
31 }
32
33+ if (_do_adc_cut) {
34+ double adc_noise_cut = _calibration[bank][channel_ro]["adc_noise_cut"].asDouble();
35+ if (adc <= adc_noise_cut) {
36+ continue;
37+ }
38+ }
39+
40 // Get pedestal and gain from calibration.
41 // int new_bank = bank + 4*board;
42- double adc_pedestal = _calibration[bank][channel_ro]["adc_pedestal"].asDouble();
43- double adc_gain = _calibration[bank][channel_ro]["adc_gain"].asDouble();
44+ double adc_pedestal = _calibration[bank][channel_ro]["adc_pedestal"].asDouble();
45+ double adc_gain = _calibration[bank][channel_ro]["adc_gain"].asDouble();
46 // double tdc_pedestal = _calibration[bank][channel_ro]["tdc_pedestal"].asDouble();
47 // double tdc_gain = _calibration[bank][channel_ro]["tdc_gain"].asDouble();
48
49@@ -117,11 +127,13 @@
50 /* No TDC calibration yet
51 if ( tdc_pedestal > tdc_pedestal_min && tdc_gain > 0 ) {
52 time = (tdc-tdc_pedestal)/tdc_gain;
53- } else {
54- time = -10.0;
55 }
56 */
57
58+ if ( pe <= _npe_cut ) {
59+ continue;
60+ }
61+
62 // Find tracker, station, plane, channel.
63 int board = floor(bank/4);
64 int old_bank = bank%4;
65@@ -136,7 +148,7 @@
66 tracker, station, plane, channel,
67 extWG, inWG, WGfib);
68 // Exclude missing modules.
69- if ( found && (pe > _npe_cut ) ) {
70+ if ( found ) {
71 SciFiDigit *digit = new SciFiDigit(SpillNum, vlsb1.GetPartEventNumber(),
72 tracker, station, plane, channel, pe, time);
73 digit->set_adc(adc);
74@@ -254,17 +266,23 @@
75
76 size_t n_channels = calibration_data.size();
77 for ( Json::Value::ArrayIndex i = 0; i < n_channels; ++i ) {
78- int bank = calibration_data[i]["bank"].asInt();
79- int channel_n = calibration_data[i]["channel"].asInt();
80- double adc_pedestal = calibration_data[i]["adc_pedestal"].asDouble();
81- double adc_gain = calibration_data[i]["adc_gain"].asDouble();
82- double tdc_pedestal = calibration_data[i]["tdc_pedestal"].asDouble();
83- double tdc_gain = calibration_data[i]["tdc_gain"].asDouble();
84+ int bank = calibration_data[i]["bank"].asInt();
85+ int channel_n = calibration_data[i]["channel"].asInt();
86+ double adc_pedestal = calibration_data[i]["adc_pedestal"].asDouble();
87+ double adc_gain = calibration_data[i]["adc_gain"].asDouble();
88+ double tdc_pedestal = calibration_data[i]["tdc_pedestal"].asDouble();
89+ double tdc_gain = calibration_data[i]["tdc_gain"].asDouble();
90 Json::Value channel;
91- channel["adc_pedestal"] = adc_pedestal;
92- channel["adc_gain"] = adc_gain;
93- channel["tdc_pedestal"] = tdc_pedestal;
94- channel["tdc_gain"] = tdc_gain;
95+ channel["adc_pedestal"] = adc_pedestal;
96+ channel["adc_gain"] = adc_gain;
97+ channel["tdc_pedestal"] = tdc_pedestal;
98+ channel["tdc_gain"] = tdc_gain;
99+
100+ if (_do_adc_cut) {
101+ double adc_noise_cut = calibration_data[i]["adc_noise_cut"].asDouble();
102+ channel["adc_noise_cut"] = adc_noise_cut;
103+ }
104+
105 _calibration[bank][channel_n] = channel;
106 }
107
108
109=== modified file 'src/common_cpp/Recon/SciFi/RealDataDigitization.hh'
110--- src/common_cpp/Recon/SciFi/RealDataDigitization.hh 2015-07-03 18:30:17 +0000
111+++ src/common_cpp/Recon/SciFi/RealDataDigitization.hh 2017-12-11 22:51:03 +0000
112@@ -96,6 +96,7 @@
113 ~RealDataDigitization();
114
115 void initialise(double npe_cut,
116+ bool do_adc_cut,
117 const std::string& map_file,
118 const std::string& calib_file,
119 const std::string& bad_channels_file);
120@@ -158,6 +159,7 @@
121 static const int _banks_per_board = 4;
122 static const int _n_entries = 8192;
123 double _npe_cut;
124+ bool _do_adc_cut;
125 // static const double _min = 0.000000001;
126
127 /// Arrays containing calibration values for every channel in the 4 banks of the 16 boards.
128
129=== modified file 'src/common_py/ConfigurationDefaults.py'
130--- src/common_py/ConfigurationDefaults.py 2017-12-06 15:50:26 +0000
131+++ src/common_py/ConfigurationDefaults.py 2017-12-11 22:51:03 +0000
132@@ -263,6 +263,7 @@
133 SciFiKunoSumT1S5 = 320.0 # Sum of channel #s in 3 planes if they form a spoint for T1 S5
134 SciFiKunoTolerance = 3.0 # Kuno conjecture tolerance
135 SciFiDigitizationNPECut = 2.0
136+SciFiDigitizationADCNoiseCut = False
137 SciFiMappingFileName = "scifi_mapping.txt"
138 SciFiCalibrationFileName = "scifi_calibration.txt"
139 SciFiBadChannelsFileName = "scifi_bad_channels.txt"
140
141=== modified file 'src/map/MapCppTrackerDigits/MapCppTrackerDigits.cc'
142--- src/map/MapCppTrackerDigits/MapCppTrackerDigits.cc 2015-07-03 18:30:17 +0000
143+++ src/map/MapCppTrackerDigits/MapCppTrackerDigits.cc 2017-12-11 22:51:03 +0000
144@@ -50,11 +50,13 @@
145 std::string map_file = (*json)["SciFiMappingFileName"].asString();
146 std::string calib_file = (*json)["SciFiCalibrationFileName"].asString();
147 std::string bad_channels_file = (*json)["SciFiBadChannelsFileName"].asString();
148+ bool adc_cut = (*json)["SciFiDigitizationADCNoiseCut"].asBool();
149 std::cout << "INFO: MapCppTrackerDigits: Map file: " << map_file
150 << ". Calib file: " << calib_file << ". NPE cut: " << npe_cut
151 << ". Bad Chan file: " << bad_channels_file << "\n";
152 real = new RealDataDigitization();
153- real->initialise(npe_cut, map_file.c_str(), calib_file.c_str(), bad_channels_file.c_str());
154+ real->initialise(npe_cut, adc_cut, map_file.c_str(),
155+ calib_file.c_str(), bad_channels_file.c_str());
156 }
157
158 void MapCppTrackerDigits::_death() {}

Subscribers

People subscribed via source and target branches