1
/* This file is part of MAUS: http://micewww.pp.rl.ac.uk:8080/projects/maus
3
* MAUS is free software: you can redistribute it and/or modify
4
* it under the terms of the GNU General Public License as published by
5
* the Free Software Foundation, either version 3 of the License, or
6
* (at your option) any later version.
8
* MAUS is distributed in the hope that it will be useful,
9
* but WITHOUT ANY WARRANTY; without even the implied warranty of
10
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
* GNU General Public License for more details.
13
* You should have received a copy of the GNU General Public License
14
* along with MAUS. If not, see <http://www.gnu.org/licenses/>.
19
#define SciFiPlane_h 1
22
#include <G4ThreeVector.hh>
25
#include "Config/MiceModule.hh"
28
class G4LogicalVolume;
29
class G4VPhysicalVolume;
32
* A SciFiPlane describes a plane (or projection, view, doublet layer) of scintillating fibre
33
* detector. This class is used in the GEANT4 simulation of the Sci Fi tracker to describe
34
* physical arrangement of all the fibres in a doublet layer, including the description of
35
* the cladding and core of each scintillating fibre.
37
* Modified example 1 from the GEANT4 distribution to simulate the
38
* MICE scintillating fiber tracker for the MICE proposal
41
// TODO(Santos): Have another look at the rotation of the fibre plane.
46
/** @brief Constructor taking information from the SciFiTrackerGeom class
48
SciFiPlane(MiceModule* mod, G4Material* mater, G4VPhysicalVolume* mlv);
50
/** @brief Default destructor
54
/** @brief The physical volume of the core
56
G4VPhysicalVolume* physicalCore() const { return physiCore; }
58
/** @brief The logical volume of the core
60
G4LogicalVolume* logicalCore() const { return logicCore; }
62
/** @brief The placement of the core
64
G4PVPlacement* placementCore() const { return placeCore; }
66
static G4int SciFi_numFibres;
71
G4LogicalVolume* logicDoublet;
72
G4VPhysicalVolume* physiDoublet;
75
G4LogicalVolume* logicCore;
76
G4VPhysicalVolume* physiCore;
78
G4Tubs* solidCladding1;
79
G4LogicalVolume* logicCladding1;
80
G4VPhysicalVolume* physiCladding1;
82
G4Tubs* solidCladding2;
83
G4LogicalVolume* logicCladding2;
84
G4VPhysicalVolume* physiCladding2;
86
G4PVPlacement* placeCore;