forked from wiechula/AliceO2
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathModule.h
More file actions
70 lines (53 loc) · 2.13 KB
/
Module.h
File metadata and controls
70 lines (53 loc) · 2.13 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
/// \file Module.h
/// \brief Definition of the Module class
#ifndef ALICEO2_BASE_MODULE_H_
#define ALICEO2_BASE_MODULE_H_
#include "FairModule.h"
namespace AliceO2 {
namespace Base {
/// This is the basic class for any AliceO2 detector module, whether it is
/// sensitive or not. Detector classes depend on this.
class Module : public FairModule {
public:
Module(const char* name, const char* title, Bool_t Active = kFALSE);
/// Default Constructor
Module();
/// Default Destructor
virtual ~Module();
// Module composition
virtual void Material(Int_t imat, const char* name, Float_t a, Float_t z, Float_t dens, Float_t radl, Float_t absl,
Float_t* buf = 0, Int_t nwbuf = 0) const;
virtual void Mixture(Int_t imat, const char* name, Float_t* a, Float_t* z, Float_t dens, Int_t nlmat,
Float_t* wmat) const;
virtual void Medium(Int_t numed, const char* name, Int_t nmat, Int_t isvol, Int_t ifield, Float_t fieldm,
Float_t tmaxfd, Float_t stemax, Float_t deemax, Float_t epsil, Float_t stmin, Float_t* ubuf = 0,
Int_t nbuf = 0) const;
/// Define a rotation matrix. angles are in degrees.
/// \param nmat on output contains the number assigned to the rotation matrix
/// \param theta1 polar angle for axis I
/// \param phi1 azimuthal angle for axis I
/// \param theta2 polar angle for axis II
/// \param phi2 azimuthal angle for axis II
/// \param theta3 polar angle for axis III
/// \param phi3 azimuthal angle for axis III
virtual void Matrix(Int_t& nmat, Float_t theta1, Float_t phi1, Float_t theta2, Float_t phi2, Float_t theta3,
Float_t phi3) const;
static void setDensityFactor(Float_t density)
{
mDensityFactor = density;
}
static Float_t getDensityFactor()
{
return mDensityFactor;
}
protected:
static Float_t mDensityFactor; ///< factor that is multiplied to all material densities (ONLY for
///< systematic studies)
private:
Module(const Module&);
Module& operator=(const Module&);
ClassDef(Module, 1) // Base class for ALICE Modules
};
}
}
#endif