From 54d45192d87f5d0019b9d989633840cd6fb89a32 Mon Sep 17 00:00:00 2001
From: googol23nphy <googol23nphy@gmail.com>
Date: Thu, 30 Mar 2023 17:24:11 +0200
Subject: [PATCH] Update sts noise removal during unpacking (macro level)

---
 macro/beamtime/mcbm2022/sts_mask_channels.par | 344 ++++++++++++++++++
 macro/run/run_unpack_tsa.C                    |  31 +-
 2 files changed, 355 insertions(+), 20 deletions(-)
 create mode 100644 macro/beamtime/mcbm2022/sts_mask_channels.par

diff --git a/macro/beamtime/mcbm2022/sts_mask_channels.par b/macro/beamtime/mcbm2022/sts_mask_channels.par
new file mode 100644
index 0000000000..1308d86ab7
--- /dev/null
+++ b/macro/beamtime/mcbm2022/sts_mask_channels.par
@@ -0,0 +1,344 @@
+6	15
+6	17
+6	23
+6	27
+6	29
+6	35
+6	37
+6	39
+6	41
+6	45
+6	47
+6	51
+6	55
+6	57
+6	59
+6	63
+6	67
+6	69
+6	73
+6	75
+6	81
+6	83
+6	85
+6	87
+6	89
+6	91
+6	101
+6	103
+6	125
+6	137
+6	141
+6	145
+6	147
+6	151
+6	157
+6	159
+6	161
+6	167
+6	169
+6	173
+6	189
+6	191
+6	197
+6	199
+6	205
+6	227
+6	279
+6	313
+6	357
+6	359
+6	393
+6	395
+6	399
+6	401
+6	403
+6	405
+6	415
+6	447
+6	471
+6	487
+6	527
+6	641
+6	643
+6	655
+6	657
+6	663
+6	665
+6	667
+6	669
+6	671
+6	679
+6	681
+6	685
+6	687
+6	689
+6	695
+6	697
+6	699
+6	701
+6	702
+6	703
+6	705
+6	707
+6	715
+6	717
+6	718
+6	719
+6	721
+6	723
+6	727
+6	733
+6	735
+6	737
+6	739
+6	741
+6	745
+6	747
+6	751
+6	753
+6	755
+6	759
+6	761
+6	768
+6	769
+6	835
+6	845
+6	851
+6	873
+6	897
+6	899
+6	953
+6	967
+6	971
+6	978
+6	979
+6	982
+6	985
+6	991
+6	997
+6	999
+6	1005
+6	1009
+6	1011
+6	1013
+7	1022
+7	1020
+7	764
+7	642
+7	638
+7	636
+7	514
+7	510
+7	508
+7	386
+7	258
+7	256
+7	129
+7	128
+7	127
+7	16
+11	46
+11	66
+11	100
+11	102
+11	106
+11	108
+11	114
+11	118
+11	120
+11	122
+12	767
+12	762
+12	750
+12	746
+12	740
+12	712
+12	710
+12	708
+12	692
+12	674
+12	662
+12	658
+12	652
+12	642
+12	380
+12	378
+12	376
+12	370
+12	356
+12	352
+12	312
+12	294
+12	292
+13	644
+13	668
+13	670
+13	688
+13	694
+13	696
+13	700
+13	704
+13	710
+13	716
+13	720
+13	724
+13	732
+13	738
+13	740
+13	742
+13	744
+13	754
+13	762
+13	765
+13	767
+15	1023
+15	132
+15	124
+18	1
+18	131
+18	253
+18	385
+18	387
+18	451
+18	509
+18	641
+18	719
+18	763
+18	765
+18	1021
+18	1023
+19	1020
+19	1018
+19	1012
+19	1010
+19	1008
+19	1000
+19	996
+19	982
+19	980
+19	978
+19	967
+19	890
+19	838
+19	836
+19	772
+19	766
+19	765
+19	759
+19	751
+19	747
+19	743
+19	739
+19	735
+19	727
+19	723
+19	719
+19	715
+19	711
+19	707
+19	683
+19	675
+19	671
+19	667
+19	663
+19	659
+19	655
+19	651
+19	647
+19	643
+19	640
+19	636
+19	587
+19	514
+19	513
+19	512
+19	511
+19	509
+19	388
+19	378
+19	254
+19	146
+19	126
+19	124
+19	122
+19	114
+19	110
+19	108
+19	106
+19	104
+19	102
+19	100
+19	98
+19	96
+19	94
+19	92
+19	90
+19	88
+19	86
+19	84
+19	82
+19	80
+19	78
+19	77
+19	76
+19	75
+19	74
+19	73
+19	72
+19	71
+19	70
+19	69
+19	68
+19	67
+19	66
+19	65
+19	64
+19	63
+19	62
+19	61
+19	60
+19	59
+19	58
+19	57
+19	56
+19	54
+19	50
+19	48
+19	44
+19	42
+19	41
+19	40
+19	38
+19	36
+19	32
+19	28
+22	385
+22	402
+22	513
+22	517
+22	518
+22	520
+22	521
+22	522
+22	523
+22	524
+22	525
+22	527
+22	530
+22	538
+22	545
+22	610
+22	614
+22	616
+22	618
+22	622
+22	623
+22	624
+22	625
+22	633
+22	641
+22	658
+22	896
+22	904
+24	993
diff --git a/macro/run/run_unpack_tsa.C b/macro/run/run_unpack_tsa.C
index f673ed2282..fddf57cc02 100644
--- a/macro/run/run_unpack_tsa.C
+++ b/macro/run/run_unpack_tsa.C
@@ -167,29 +167,20 @@ void run_unpack_tsa(std::vector<std::string> infile = {"test.tsa"}, UInt_t runid
       stsconfig->SetSystemTimeOffset(-970);  // [ns] value to be updated
     }
 
-    stsconfig->SetMinAdcCut(1, 1);
-    stsconfig->SetMinAdcCut(2, 1);
-    stsconfig->SetMinAdcCut(3, 1);
-    stsconfig->SetMinAdcCut(4, 1);
-
-    stsconfig->MaskNoisyChannel(3, 56);
-    stsconfig->MaskNoisyChannel(3, 75);
-    stsconfig->MaskNoisyChannel(3, 79);
-    stsconfig->MaskNoisyChannel(3, 85);
-    stsconfig->MaskNoisyChannel(7, 123);
-    stsconfig->MaskNoisyChannel(7, 124);
-    stsconfig->MaskNoisyChannel(7, 125);
-    stsconfig->MaskNoisyChannel(7, 158);
-    stsconfig->MaskNoisyChannel(7, 159);
-    stsconfig->MaskNoisyChannel(7, 162);
-    stsconfig->MaskNoisyChannel(7, 715);
-    stsconfig->MaskNoisyChannel(9, 709);
-    stsconfig->MaskNoisyChannel(12, 119);
-
+    // Noise removal
+    stsconfig->SetMinAdcCut(1, 1); // ADC cut to Station 0 Ladder 0 Module 0
+    stsconfig->SetMinAdcCut(2, 1); // ADC cut to Station 0 Ladder 0 Module 0
+    stsconfig->SetMinAdcCut(3, 1); // ADC cut to Station 0 Ladder 0 Module 1
+    stsconfig->SetMinAdcCut(4, 1); // ADC cut to Station 0 Ladder 0 Module 1
+
+    std::ifstream mask_channels(Form("%s/sts_mask_channels.par", parfilesbasepathSts.data()));
+    int feb_idx, feb_chn;
+    while (mask_channels >> feb_idx >> feb_chn){
+      stsconfig->MaskNoisyChannel(feb_idx, feb_chn);     // Mask noisy channels
+    }
     // Time Walk correction
     std::map<uint32_t, CbmStsParModule> walkMap;
     auto parAsic = new CbmStsParAsic(128, 31, 31., 1., 5., 800., 1000., 3.9789e-3);
-
     // Module params: number of channels, number of channels per ASIC
     auto parMod = new CbmStsParModule(2048, 128);
 
-- 
GitLab