Belle II Software  release-05-01-25
SVDDefaultOccupancyImporter.py
1 #!/usr/bin/env python
2 # -*- coding: utf-8 -*-
3 
4 """
5 SVD Default Occupancy 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 SVDOccupancyCalibrations
14 import datetime
15 import os
16 
17 now = datetime.datetime.now()
18 
19 # Phase 3 - exp 10
20 occupancy_L3 = 0.003
21 occupancy_allOtherLayers = 0.002
22 
23 
24 class defaultOccupancyImporter(basf2.Module):
25  ''' default importer of strip occupancy'''
26 
27  def beginRun(self):
28  '''begin run'''
29 
31 
32  payload = Belle2.SVDOccupancyCalibrations.t_payload(-1, "OccupancyCalibrations_default_" +
33  str(now.isoformat()) + "_INFO:_testJamesBranch")
34 
36 
37  for layer in geoCache.getLayers(Belle2.VXD.SensorInfoBase.SVD):
38  layerNumber = layer.getLayerNumber()
39  for ladder in geoCache.getLadders(layer):
40  ladderNumber = ladder.getLadderNumber()
41  for sensor in geoCache.getSensors(ladder):
42  sensorNumber = sensor.getSensorNumber()
43  for side in (0, 1):
44  Nstrips = 768
45  print("setting Occupancy for " +
46  str(layerNumber) + "." + str(ladderNumber) + "." + str(sensorNumber) + "." + str(side))
47  if side == 0:
48  if layerNumber == 3: # L3
49  occupancy = occupancy_L3
50  else:
51  Nstrips = 512
52  occupancy = occupancy_allOtherLayers
53  elif side == 1: # U
54  if layerNumber == 3: # L3 U
55  occupancy = occupancy_L3
56  else:
57  occupancy = occupancy_allOtherLayers
58  else:
59  print("WARNING: sensors end!...")
60 
61  print(str(Nstrips))
62 
63  for strip in range(0, Nstrips):
64  payload.set(layerNumber, ladderNumber, sensorNumber, bool(side), strip, occupancy)
65 
66  Belle2.Database.Instance().storeData(Belle2.SVDOccupancyCalibrations.name, payload, iov)
67 
68 
69 use_local_database("localDB_occupancy/database.txt", "localDB_occupancy")
70 
71 main = create_path()
72 
73 # Event info setter - execute single event
74 eventinfosetter = register_module('EventInfoSetter')
75 eventinfosetter.param({'evtNumList': [1], 'expList': 0, 'runList': 0})
76 main.add_module(eventinfosetter)
77 
78 main.add_module("Gearbox") # , fileName="/geometry/Beast2_phase2.xml")
79 main.add_module("Geometry", components=['SVD'])
80 
81 main.add_module(defaultOccupancyImporter())
82 
83 # Show progress of processing
84 progress = register_module('Progress')
85 main.add_module(progress)
86 
87 # Process events
88 process(main)
SVDDefaultOccupancyImporter.defaultOccupancyImporter.beginRun
def beginRun(self)
Definition: SVDDefaultOccupancyImporter.py:27
SVDDefaultOccupancyImporter.defaultOccupancyImporter
Definition: SVDDefaultOccupancyImporter.py:24
Belle2::IntervalOfValidity::always
static IntervalOfValidity always()
Function that returns an interval of validity that is always valid, c.f.
Definition: IntervalOfValidity.h:72
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
Belle2::SVDCalibrationsBase
base class for calibrations classes
Definition: SVDCalibrationsBase.h:36