Belle II Software  release-05-01-25
SVDDefaultNoiseImporter.py
1 #!/usr/bin/env python
2 # -*- coding: utf-8 -*-
3 
4 """
5 SVD Default Noise Calibration importer (MC).
6 Script to Import Calibrations into a local DB
7 """
8 import basf2
9 from basf2 import *
10 from svd import *
11 import ROOT
12 from ROOT import Belle2
13 from ROOT.Belle2 import SVDNoiseCalibrations
14 import datetime
15 import os
16 
17 now = datetime.datetime.now()
18 
19 '''
20 # Phase 3 - scaled with 375
21 noise_L3_U = 2.48
22 noise_L3_V = 1.81
23 noise_bkw_U = 2.08
24 noise_bkw_V = 1.81
25 noise_origami_U = 2.40
26 noise_origami_V = 1.33
27 noise_fwd_U = 2.00
28 noise_fwd_V = 1.81
29 '''
30 # Phase 3 - scaled with rescaled gain
31 noise_L3_U = 3.29
32 noise_L3_V = 2.46
33 noise_bkw_U = 3.12
34 noise_bkw_V = 2.75
35 noise_origami_U = 3.32
36 noise_origami_V = 2.28
37 noise_fwd_U = 3.03
38 noise_fwd_V = 2.76
39 '''
40 # TestBeam
41 noise_L3_U = 2.51
42 noise_L3_V = 1.73
43 noise_bkw_U = -1
44 noise_bkw_V = -1
45 noise_origami_U = 2.88
46 noise_origami_V = 1.73
47 noise_fwd_U = -1
48 noise_fwd_V = -1
49 '''
50 
51 
52 class defaultNoiseImporter(basf2.Module):
53  ''' default strip noise importer'''
54 
55  def beginRun(self):
56  '''begin run'''
57 
59 
60  payload = Belle2.SVDNoiseCalibrations.t_payload(-1, "NoiseCalibrations_default_" +
61  str(now.isoformat()) + "_INFO:_fromPhase3calibrations")
62 
64 
65  for layer in geoCache.getLayers(Belle2.VXD.SensorInfoBase.SVD):
66  layerNumber = layer.getLayerNumber()
67  for ladder in geoCache.getLadders(layer):
68  ladderNumber = ladder.getLadderNumber()
69  for sensor in geoCache.getSensors(ladder):
70  sensorNumber = sensor.getSensorNumber()
71  for side in (0, 1):
72  Nstrips = 768
73  print("setting Noise for " +
74  str(layerNumber) + "." + str(ladderNumber) + "." + str(sensorNumber) + "." + str(side))
75  if side == 0: # V
76  if layerNumber == 3: # L3 V
77  noise = noise_L3_V
78  else:
79  Nstrips = 512
80  if sensorNumber == 1: # FW V
81  noise = noise_fwd_V
82  else: # BKW V
83  if sensorNumber == layerNumber - 1: # FW V
84  noise = noise_bkw_V
85  else: # BARREL V
86  noise = noise_origami_V
87  if side == 1: # U
88  if layerNumber == 3: # L3 U
89  noise = noise_L3_U
90  else:
91  if sensorNumber == 1: # FW U
92  noise = noise_fwd_U
93  else: # BKW U
94  if sensorNumber == layerNumber - 1: # FW U
95  noise = noise_bkw_U
96  else: # BARREL U
97  noise = noise_origami_U
98 
99  print(str(Nstrips))
100  for strip in range(0, Nstrips):
101  payload.set(layerNumber, ladderNumber, sensorNumber, bool(side), strip, noise)
102 
103  Belle2.Database.Instance().storeData(Belle2.SVDNoiseCalibrations.name, payload, iov)
104 
105 
106 use_database_chain()
107 use_central_database("svd_onlySVDinGeoConfiguration")
108 use_local_database("localDB_defaultNoiseCalibrations/database.txt", "localDB_defaultNoiseCalibrations")
109 
110 main = create_path()
111 
112 # Event info setter - execute single event
113 eventinfosetter = register_module('EventInfoSetter')
114 eventinfosetter.param({'evtNumList': [1], 'expList': 0, 'runList': 0})
115 main.add_module(eventinfosetter)
116 
117 main.add_module("Gearbox") # , fileName="/geometry/Beast2_phase2.xml")
118 main.add_module("Geometry", components=['SVD'])
119 
120 main.add_module(defaultNoiseImporter())
121 
122 # Show progress of processing
123 progress = register_module('Progress')
124 main.add_module(progress)
125 
126 # Process events
127 process(main)
Belle2::IntervalOfValidity::always
static IntervalOfValidity always()
Function that returns an interval of validity that is always valid, c.f.
Definition: IntervalOfValidity.h:72
SVDDefaultNoiseImporter.defaultNoiseImporter.beginRun
def beginRun(self)
Definition: SVDDefaultNoiseImporter.py:55
Belle2::VXD::GeoCache::getInstance
static GeoCache & getInstance()
Return a reference to the singleton instance.
Definition: GeoCache.cc:215
Belle2::Database::Instance
static Database & Instance()
Instance of a singleton Database.
Definition: Database.cc:54
SVDDefaultNoiseImporter.defaultNoiseImporter
Definition: SVDDefaultNoiseImporter.py:52
Belle2::SVDCalibrationsBase
base class for calibrations classes
Definition: SVDCalibrationsBase.h:36