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