Belle II Software  release-06-02-00
misalignPhase2VXD.py
1 #!/usr/bin/env python3
2 # -*- coding: utf-8 -*-
3 
4 
11 
12 from ROOT import Belle2
13 
14 import numpy as np
15 
16 numberOfLayer = 6
17 numberOfLadders = [8, 12, 7, 10, 12, 16]
18 numberOfSensors = [2, 2, 2, 3, 4, 5]
19 numberOfParameters = 6
20 payload = Belle2.VXDAlignment()
21 
22 """
23 -------------------------
24 Misalignment of for Phase II
25 -------------------------
26 """
27 
28 # 0.01 -> 100 um
29 
30 for i in range(1, 7):
31  for j in range(1, numberOfLadders[i - 1] + 1):
32  for h in range(1, numberOfParameters + 1):
33  payload.setGlobalParam(0.0, Belle2.VxdID(i, j, 0).getID(), h)
34  if j == 1 and h < 4:
35  number = np.random.normal(0.0, 0.01, 1)
36  payload.setGlobalParam(number, Belle2.VxdID(i, j, 0).getID(), h)
37 
38  for k in range(1, numberOfSensors[i - 1] + 1):
39  for h in range(1, numberOfParameters + 1):
40  payload.setGlobalParam(0.0, Belle2.VxdID(i, j, k).getID(), h)
41  if h < 4:
42  number = np.random.normal(0.0, 0.01, 1)
43  payload.setGlobalParam(number, Belle2.VxdID(i, j, k).getID(), h)
44 
45 # 1 -> x; 2 -> y; 3 -> z
46 
47 # misalignment of Yang
48 payload.setGlobalParam(np.random.normal(0.0, 0.01, 1), Belle2.VxdID(1, 0, 0, 1).getID(), 1)
49 payload.setGlobalParam(np.random.normal(0.0, 0.01, 1), Belle2.VxdID(1, 0, 0, 1).getID(), 2)
50 payload.setGlobalParam(np.random.normal(0.0, 0.01, 1), Belle2.VxdID(1, 0, 0, 1).getID(), 3)
51 
52 # misalignment of Ying
53 payload.setGlobalParam(np.random.normal(0.0, 0.01, 1), Belle2.VxdID(1, 0, 0, 2).getID(), 1)
54 payload.setGlobalParam(np.random.normal(0.0, 0.01, 1), Belle2.VxdID(1, 0, 0, 2).getID(), 2)
55 payload.setGlobalParam(np.random.normal(0.0, 0.01, 1), Belle2.VxdID(1, 0, 0, 2).getID(), 3)
56 
57 # misalignment of Pat
58 payload.setGlobalParam(np.random.normal(0.0, 0.01, 1), Belle2.VxdID(3, 0, 0, 1).getID(), 1)
59 payload.setGlobalParam(np.random.normal(0.0, 0.01, 1), Belle2.VxdID(3, 0, 0, 1).getID(), 2)
60 payload.setGlobalParam(np.random.normal(0.0, 0.01, 1), Belle2.VxdID(3, 0, 0, 1).getID(), 3)
61 
62 # misalignment of Mat
63 payload.setGlobalParam(np.random.normal(0.0, 0.01, 1), Belle2.VxdID(3, 0, 0, 2).getID(), 1)
64 payload.setGlobalParam(np.random.normal(0.0, 0.01, 1), Belle2.VxdID(3, 0, 0, 2).getID(), 2)
65 payload.setGlobalParam(np.random.normal(0.0, 0.01, 1), Belle2.VxdID(3, 0, 0, 2).getID(), 3)
66 
67 Belle2.Database.Instance().storeData('VXDAlignment', payload, Belle2.IntervalOfValidity(0, 0, -1, -1))
A class that describes the interval of experiments/runs for which an object in the database is valid.
VXD alignment (and maybe some calibration) parameters.
Definition: VXDAlignment.h:19
Class to uniquely identify a any structure of the PXD and SVD.
Definition: VxdID.h:33
static Database & Instance()
Instance of a singleton Database.
Definition: Database.cc:41
int getID(const std::vector< double > &breaks, double t)
get id of the time point t
Definition: calibTools.h:60