Belle II Software  release-05-01-25
ARICHGeoMergerCooling.cc
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2019 - 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/ARICHGeoMergerCooling.h>
13 #include <arich/dbobjects/tessellatedSolidStr.h>
14 #include <framework/gearbox/Unit.h>
15 #include <framework/logging/Logger.h>
16 #include <math.h>
17 #include <iostream>
18 #include <iomanip>
19 
20 //root
21 #include <TVector3.h>
22 
23 using namespace std;
24 using namespace Belle2;
25 
26 void ARICHGeoMergerCooling::print(const std::string& title) const
27 {
28 
29  ARICHGeoBase::print(title);
30 
31  cout << " Merger cooling bodies info" << endl;
32  cout << " Merger cooling bodies material name : " << getMergerCoolingBodiesMaterialName() << endl;
33  cout << " m_mergerCoolingBodiesInfo.size() = " << m_mergerCoolingBodiesInfo.size() << endl;
34 
35  for (unsigned i = 0; i < m_mergerCoolingBodiesInfo.size(); i++) {
36  tessellatedSolidStr mergerCoolingBodiesStr = getMergerCoolingBodiesInfo(i + 1);
37  mergerCoolingBodiesStr.printInfo();
38  //mergerCoolingBodiesStr.printInfo(1);
39  }
40 
41  cout << "mergerCoolingBodiesv2/mergerCoolingPositionID" << endl;
42  for (unsigned i = 0; i < getMergerCoolingPositionID().size(); i++) {
43  cout << setw(20) << i + 1
44  << setw(25) << getMergerCoolingPositionID().at(i) << endl;
45  }
46 
47 }
48 
49 void ARICHGeoMergerCooling::checkMergerCoolingSystemDataConsistency() const
50 {
51 
52  B2ASSERT("Data of the cooling system V2 is inconsisten : getMergerCoolingPositionID().size() != 72",
53  getMergerCoolingPositionID().size() == 72);
54  for (unsigned i = 0; i < m_mergerCoolingBodiesInfo.size(); i++) {
55  tessellatedSolidStr mergerCoolingBodiesStr = getMergerCoolingBodiesInfo(i + 1);
56  }
57 }
58 
59 const tessellatedSolidStr ARICHGeoMergerCooling::getMergerCoolingBodiesInfo_globalMergerID(unsigned int iMergerSlot) const
60 {
61  B2ASSERT("iMergerSlot <=0 ", iMergerSlot > 0);
62  B2ASSERT("iMergerSlot > 72", iMergerSlot <= 72);
63  int positionID = (int)getMergerCoolingPositionID().at(iMergerSlot - 1);
64  B2ASSERT("positionID <=0 ", positionID > 0);
65  B2ASSERT("positionID > 12", positionID <= 12);
66  return getMergerCoolingBodiesInfo(positionID);
67 }
Belle2::tessellatedSolidStr
Structure which holds apexes of the tessellation volumes.
Definition: tessellatedSolidStr.h:36
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19