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