BmnRoot 26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
Loading...
Searching...
No Matches
BmnMwpcGeometry.cxx
Go to the documentation of this file.
1// @(#)bmnroot/mwpc:$Id$
2// Author: Pavel Batyuk (VBLHEP) <pavel.batyuk@jinr.ru> 2017-02-10
3
4////////////////////////////////////////////////////////////////////////////////
5// //
6// BmnMwpcGeometry //
7// //
8// A class containing geometry params. of //
9// the Multi Wire Prop. Chambers of the BM@N experiment //
10// //
11////////////////////////////////////////////////////////////////////////////////
12#include "BmnMwpcGeometry.h"
13
15 : fDebug(kFALSE)
16{
17 fNChambers = 2;
18 fNPlanes = 6;
19 fTimeBin = 8;
20 fNWires = 96;
21 fAngleStep = 60 * DegToRad();
22 fWireStep = 0.25;
23 fPlaneStep = 1.0015; // According to schemes given by M. Rumyantsev
24
25 fPlaneHeight = 43.3;
27
28 fSpaceLeft = 2.1338; // According to schemes given by M. Rumyantsev
29 fSpaceRight = 2.1328; // According to schemes given by M. Rumyantsev
30
33
34 /*
35 Reference frame is related to left side of the magnetic pole (z = 0, zC = 124.5 cm)
36 -----> Z -----> (MWPC -> GEM -> DCH)
37 MWPC1 MWPC2
38
39 zLeft[0] (fSpaceLeft | | | | | | fSpaceRight) zRight[0] zLeft[1] (fSpaceLeft | | | | | | fSpaceRight) zRight[1]
40 1 2 3 4 5 6 1 2 3 4 5 6
41
42 */
43
44 zRight[1] = -(186. + 22.); // http://bmnshift.jinr.ru/wiki/lib/exe/fetch.php?media=geom_bmn_pc_dch_run5.pdf
45 zLeft[1] = zRight[1] - fChamberWidth;
46
48 zLeft[0] = zRight[0] - fChamberWidth;
49
50 for (Int_t iChamber = 0; iChamber < fNChambers; iChamber++)
51 for (Int_t iPlane = 0; iPlane < fNPlanes; iPlane++)
52 zPlanePos[iChamber][iPlane] = zLeft[iChamber] + fSpaceLeft + iPlane * fPlaneStep;
53
54 // Check built geometry
55 if (fDebug)
56 for (Int_t iChamber = 0; iChamber < fNChambers; iChamber++) {
57 cout << "MWPC" << iChamber + 1 << endl;
58 cout << "Zleft = " << zLeft[iChamber] << " Zright = " << zRight[iChamber] << endl;
59 for (Int_t iPlane = 0; iPlane < fNPlanes; iPlane++)
60 cout << "zPlanePos " << iPlane + 1 << " " << zPlanePos[iChamber][iPlane] << endl;
61 cout << endl;
62 }
63}
64
66{
67 return TVector3(0.0, 0.0, (zRight[chamber] + zLeft[chamber]) * 0.5);
68}
69
int Int_t
constexpr Bool_t kFALSE
TVector3 GetChamberCenter(Int_t chamber)
BmnMwpcGeometry()
Default constructor.
Double_t zPlanePos[2][6]
Double_t fDistanceBetweenMWPC
virtual ~BmnMwpcGeometry()
Destructor.
Double_t zLeft[2]
Double_t zRight[2]
constexpr Double_t DegToRad()