]>
Commit | Line | Data |
---|---|---|
1 | #ifndef TFLUKACONFIGOPTION | |
2 | #define TFLUKACONFIGOPTION | |
3 | ||
4 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
5 | * See cxx source for full Copyright notice */ | |
6 | ||
7 | /* $Id$ */ | |
8 | ||
9 | /////////////////////////////////////////////////////////////////////////////// | |
10 | // // | |
11 | // // | |
12 | // Class to store FLUKA and VMC configuration options: // | |
13 | // Cuts, Processes, User Scoring // | |
14 | // // | |
15 | // // | |
16 | // Author: andreas.morsch@cern.ch // | |
17 | // // | |
18 | // // | |
19 | /////////////////////////////////////////////////////////////////////////////// | |
20 | // | |
21 | ||
22 | ||
23 | // | |
24 | ||
25 | #include <TObject.h> | |
26 | ||
27 | typedef enum {kDCAY, kPAIR, kCOMP, kPHOT, kPFIS, kDRAY, kANNI, kBREM, | |
28 | kMUNU, kCKOV, kHADR, kLOSS, kMULS, kRAYL, kSTRA} FlukaProcessOption_t; | |
29 | typedef enum {kCUTGAM, kCUTELE, kCUTNEU, kCUTHAD, kCUTMUO, kBCUTE, kBCUTM, kDCUTE, kDCUTM, kPPCUTM, kTOFMAX} FlukaCutOption_t; | |
30 | typedef enum {kPRIMION, kPRIMIOE} FlukaModelOption_t; | |
31 | ||
32 | class TFlukaMCGeometry; | |
33 | class TGeoMaterial; | |
34 | ||
35 | class TFlukaConfigOption : public TObject | |
36 | { | |
37 | public: | |
38 | // Constructors | |
39 | TFlukaConfigOption(); | |
40 | TFlukaConfigOption(Int_t imed); | |
41 | // Getters | |
42 | Double_t Cut(FlukaCutOption_t i) const {return fCutValue[i];} | |
43 | Int_t Flag(FlukaProcessOption_t i) const {return fProcessFlag[i];} | |
44 | Double_t ModelParameter(FlukaModelOption_t i) const {return fModelParameter[i];} | |
45 | Int_t Medium() const {return fMedium;} | |
46 | // Setters | |
47 | void SetCut(const char* flagname, Double_t val); | |
48 | void SetModelParameter(const char* flagname, Double_t val); | |
49 | void SetProcess(const char* flagname, Int_t flagValue); | |
50 | void SetMedium(Int_t imed) {fMedium = imed;} | |
51 | // | |
52 | void WriteFlukaInputCards(); | |
53 | void ProcessDCAY(); | |
54 | void ProcessPAIR(); | |
55 | void ProcessBREM(); | |
56 | void ProcessCOMP(); | |
57 | void ProcessPHOT(); | |
58 | void ProcessANNI(); | |
59 | void ProcessPFIS(); | |
60 | void ProcessMUNU(); | |
61 | void ProcessRAYL(); | |
62 | void ProcessCKOV(); | |
63 | void ProcessHADR(); | |
64 | void ProcessMULS(); | |
65 | void ProcessLOSS(); | |
66 | ||
67 | void ProcessCUTGAM(); | |
68 | void ProcessCUTELE(); | |
69 | void ProcessCUTNEU(); | |
70 | void ProcessCUTHAD(); | |
71 | void ProcessCUTMUO(); | |
72 | void ProcessTOFMAX(); | |
73 | void ProcessSensitiveMedium(); | |
74 | ||
75 | // | |
76 | static void SetStaticInfo(FILE* file, Float_t matMin, Float_t matMax, TFlukaMCGeometry* geom) | |
77 | {fgFile = file; fgMatMin = matMin; fgMatMax = matMax; fgGeom = geom;} | |
78 | static Double_t DefaultCut(FlukaCutOption_t i) {return fgDCutValue[i];} | |
79 | static Int_t DefaultProcessFlag(FlukaProcessOption_t i) {return fgDProcessFlag[i];} | |
80 | ||
81 | ||
82 | protected: | |
83 | Double_t fCutValue[11]; // User cut | |
84 | Int_t fProcessFlag[15]; // User flag assigned to processes | |
85 | Double_t fModelParameter[15]; // User model parameter | |
86 | Int_t fMedium; // Material assigned to user settings | |
87 | Float_t fCMatMin; // Minimum material number used for current card | |
88 | Float_t fCMatMax; // Maximum material number used for current card | |
89 | TGeoMaterial* fCMaterial; // Current material | |
90 | ||
91 | // static | |
92 | static Double_t fgDCutValue[11]; // User default cut | |
93 | static Int_t fgDProcessFlag[15]; // User default flag assigned to processes | |
94 | static Float_t fgMatMin; // Minimum material number | |
95 | static Float_t fgMatMax; // Maximum meterial number | |
96 | static FILE* fgFile; // Output file | |
97 | static TFlukaMCGeometry* fgGeom; // Pointer to geometry | |
98 | ||
99 | private: | |
100 | // Copy constructor and operator= declared but not implemented (-Weff++ flag) | |
101 | TFlukaConfigOption(const TFlukaConfigOption&); | |
102 | TFlukaConfigOption& operator=(const TFlukaConfigOption&); | |
103 | ||
104 | ClassDef(TFlukaConfigOption, 1) // Fluka Configuration Option | |
105 | }; | |
106 | ||
107 | #endif | |
108 |