Belle II Software  release-05-01-25
ARICHGeoMerger.cc
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2018 - Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: Leonid Burmistrov *
7  * *
8  * This software is provided "as is" without any warranty. *
9  **************************************************************************/
10 
11 //basf2
12 #include <arich/dbobjects/ARICHGeoMerger.h>
13 #include <framework/logging/Logger.h>
14 #include <iostream>
15 #include <iomanip>
16 
17 //root
18 #include <TVector3.h>
19 
20 using namespace std;
21 using namespace Belle2;
22 
23 void ARICHGeoMerger::print(const std::string& title) const
24 {
25 
26  ARICHGeoBase::print(title);
27 
28  cout << "Outer radius of merger PCB assembly envelope : " << getEnvelopeOuterRadius() << endl
29  << "Inner radius of merger PCB assembly envelope : " << getEnvelopeInnerRadius() << endl
30  << "Thickness of merger PCB assembly envelope : " << getEnvelopeThickness() << endl;
31  cout << "X0 merger PCB assembly envelope : " << getEnvelopeCenterPosition().X() << endl
32  << "Y0 merger PCB assembly envelope : " << getEnvelopeCenterPosition().Y() << endl
33  << "Z0 merger PCB assembly envelope : " << getEnvelopeCenterPosition().Z() << endl;
34  cout << "merger PCB material name : " << getMergerPCBMaterialName() << endl
35  << "merger PCB lenght : " << getSizeL() << endl
36  << "merger PCB width : " << getSizeW() << endl
37  << "merger PCB thickness : " << getThickness() << endl;
38  cout << "merger PCB screw whole radius : " << getMergerPCBscrewholeR() << endl
39  << "merger PCB screw whole position from the left and right sides : " << getMergerPCBscrewholePosdY() << endl
40  << "merger PCB screw whole position from the bottom edge : " << getMergerPCBscrewholePosdX1() << endl
41  << "merger PCB screw whole position from the top edge : " << getMergerPCBscrewholePosdX2() << endl;
42  cout << "single merger PCB and merger cooling envelope length : " << getSingleMergerEnvelopeSizeL() << endl
43  << "single merger PCB and merger cooling envelope width : " << getSingleMergerEnvelopeSizeW() << endl
44  << "single merger PCB and merger cooling envelope thickness : " << getSingleMergerEnvelopeThickness() << endl;
45  cout << "X0 of merger PCB inside the single merger envelope : " << getSingleMergeEnvelopePosition().X() << endl
46  << "Y0 of merger PCB inside the single merger envelope : " << getSingleMergeEnvelopePosition().Y() << endl
47  << "Z0 of merger PCB inside the single merger envelope : " << getSingleMergeEnvelopePosition().Z() << endl;
48 
49  //checkMergerPositionsDataConsistency();
50 
51  cout << setw(20) << "#"
52  << setw(20) << "mergerSlotID"
53  << setw(20) << "mergerPosR"
54  << setw(20) << "mergerAngle"
55  << setw(20) << "mergerOrientation"
56  << setw(20) << "mergerDeltaZ" << endl;
57  for (unsigned i = 0; i < getMergerSlotID().size(); i++) {
58  cout << setw(20) << i
59  << setw(20) << getMergerSlotID().at(i)
60  << setw(20) << getMergerPosR().at(i)
61  << setw(20) << getMergerAngle().at(i)
62  << setw(20) << getMergerOrientation().at(i)
63  << setw(20) << getSingleMergerenvelopeDeltaZ().at(i)
64  << endl;
65  }
66 }
67 
68 void ARICHGeoMerger::checkMergerPositionsDataConsistency() const
69 {
70 
71  //if(m_mergerSlotID.size() != m_mergerPosR.size()){
72  //string outMessage = " Data of the merger board positions is inconsisten : m_mergerSlotID.size() != m_mergerPosR.size() ";
73  //B2ERROR( outMessage << endl );
74  //B2FATAL(outMessage);
75  //}
76  //if(m_mergerSlotID.size() != m_mergerAngle.size()){
77  //string outMessage = " Data of the merger board positions is inconsisten : m_mergerSlotID.size() != m_mergerAngle.size() ";
78  //B2ERROR( outMessage << endl );
79  //B2FATAL(outMessage);
80  //}
81 
82  B2ASSERT("Data of the merger board positions is inconsisten : getEnvelopeThickness() <= getThickness() ",
83  getEnvelopeThickness() > getThickness());
84  B2ASSERT("Data of the merger board positions is inconsisten : m_mergerSlotID.size() != m_mergerPosR.size()",
85  m_mergerSlotID.size() == m_mergerPosR.size());
86  B2ASSERT("Data of the merger board positions is inconsisten : m_mergerSlotID.size() != m_mergerAngle.size()",
87  m_mergerSlotID.size() == m_mergerAngle.size());
88  B2ASSERT("Data of the merger board positions is inconsisten : m_mergerSlotID.size() != m_singlemergerenvelopeDeltaZ.size()",
89  m_mergerSlotID.size() == m_singlemergerenvelopeDeltaZ.size());
90 
91 }
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19