Project
Loading...
Searching...
No Matches
Pipe.h
Go to the documentation of this file.
1// Copyright 2019-2020 CERN and copyright holders of ALICE O2.
2// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders.
3// All rights not expressly granted are reserved.
4//
5// This software is distributed under the terms of the GNU General Public
6// License v3 (GPL Version 3), copied verbatim in the file "COPYING".
7//
8// In applying this license CERN does not waive the privileges and immunities
9// granted to it by virtue of its status as an Intergovernmental Organization
10// or submit itself to any jurisdiction.
11
12#ifndef ALICE3_PASSIVE_PIPE_H
13#define ALICE3_PASSIVE_PIPE_H
14
15#include "Rtypes.h"
17
18namespace o2
19{
20namespace passive
21{
23{
24 public:
25 Alice3Pipe();
26 ~Alice3Pipe() override;
27 Alice3Pipe(const char* name,
28 const char* title = "Alice 3 Pipe",
29 const bool isTRKActivated = false,
30 const bool isFT3Activated = false,
31 const float pipeRIn = 0.f,
32 const float pipeThickness = 0.f,
33 const float a3ipLength = 0.f,
34 const float vacuumVesselRIn = 0.f,
35 const float vacuumVesselThickness = 0.f,
36 const float vacuumVesselASideLength = 0.f);
37
38 void ConstructGeometry() override;
39
41 FairModule* CloneModule() const override;
42
43 float getPipeRIn() const { return mPipeRIn; }
44 float getPipeRMax() const { return mPipeRIn + mPipeThick; }
45 float getPipeWidth() const { return mPipeThick; }
46 float getA3IPLength() const { return mA3IPLength; }
47
48 float getVacuumVesselRIn() const { return mVacuumVesselRIn; }
49 float getVacuumVesselRMax() const { return mVacuumVesselRIn + mVacuumVesselThick; }
50 float getVacuumVesselWidth() const { return mVacuumVesselThick; }
51 float getVacuumVesselLength() const { return mVacuumVesselASideLength; }
52
53 bool IsTRKActivated() const { return mIsTRKActivated; }
54 bool IsFT3Activated() const { return mIsFT3Activated; }
55
56 private:
57 void createMaterials();
58 Alice3Pipe(const Alice3Pipe& orig) = default;
59 Alice3Pipe& operator=(const Alice3Pipe&);
60
61 float mPipeRIn = 0.; // inner diameter of the pipe
62 float mPipeThick = 0.; // inner beam pipe section thickness
63 float mA3IPLength = 0.; // Length of A3IP
64
65 float mVacuumVesselRIn = 0.; // inner diameter of the vacuum vessel
66 float mVacuumVesselThick = 0.; // outer beam pipe section thickness
67 float mVacuumVesselASideLength = 0.; // Length of the A Side of the vacuum vessel around the IP
68
69 bool mIsTRKActivated = true; // If TRK is not active don't create TRK layers allocations in the vacuum volume
70 bool mIsFT3Activated = true;
71
72 ClassDefOverride(Alice3Pipe, 1);
73};
74} // namespace passive
75} // namespace o2
76#endif
a common base class for passive modules - implementing generic functions
Definition PassiveBase.h:24
bool IsTRKActivated() const
Definition Pipe.h:53
float getPipeWidth() const
Definition Pipe.h:45
bool IsFT3Activated() const
Definition Pipe.h:54
float getVacuumVesselWidth() const
Definition Pipe.h:50
FairModule * CloneModule() const override
Clone this object (used in MT mode only)
Definition Pipe.cxx:271
float getPipeRIn() const
Definition Pipe.h:43
void ConstructGeometry() override
Definition Pipe.cxx:68
float getVacuumVesselRIn() const
Definition Pipe.h:48
float getA3IPLength() const
Definition Pipe.h:46
float getPipeRMax() const
Definition Pipe.h:44
float getVacuumVesselRMax() const
Definition Pipe.h:49
float getVacuumVesselLength() const
Definition Pipe.h:51
GLuint const GLchar * name
Definition glcorearb.h:781
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...