]>
Commit | Line | Data |
---|---|---|
1df5fa54 | 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 | // | |
1df5fa54 | 21 | |
22 | ||
fb2cbbec | 23 | // |
1df5fa54 | 24 | |
fb2cbbec | 25 | #include <TObject.h> |
1df5fa54 | 26 | |
fb2cbbec | 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; | |
acf2e119 | 30 | typedef enum {kPRIMION, kPRIMIOE} FlukaModelOption_t; |
31 | ||
fb2cbbec | 32 | class TFlukaMCGeometry; |
8134b16b | 33 | class TGeoMaterial; |
fb2cbbec | 34 | |
35 | class TFlukaConfigOption : public TObject | |
1df5fa54 | 36 | { |
37 | public: | |
38 | // Constructors | |
39 | TFlukaConfigOption(); | |
fb2cbbec | 40 | TFlukaConfigOption(Int_t imed); |
1df5fa54 | 41 | // Getters |
acf2e119 | 42 | Double_t Cut(FlukaCutOption_t i) const {return fCutValue[i];} |
43 | Int_t Flag(FlukaProcessOption_t i) const {return fProcessFlag[i];} | |
4aba9d66 | 44 | Double_t ModelParameter(FlukaModelOption_t i) const {return fModelParameter[i];} |
acf2e119 | 45 | Int_t Medium() const {return fMedium;} |
1df5fa54 | 46 | // Setters |
fb2cbbec | 47 | void SetCut(const char* flagname, Double_t val); |
acf2e119 | 48 | void SetModelParameter(const char* flagname, Double_t val); |
fb2cbbec | 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(); | |
fb2cbbec | 66 | |
67 | void ProcessCUTGAM(); | |
68 | void ProcessCUTELE(); | |
69 | void ProcessCUTNEU(); | |
70 | void ProcessCUTHAD(); | |
71 | void ProcessCUTMUO(); | |
72 | void ProcessTOFMAX(); | |
f79639f2 | 73 | void ProcessSensitiveMedium(); |
fb2cbbec | 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;} | |
0b072430 | 78 | static Double_t DefaultCut(FlukaCutOption_t i) {return fgDCutValue[i];} |
f79639f2 | 79 | static Int_t DefaultProcessFlag(FlukaProcessOption_t i) {return fgDProcessFlag[i];} |
4aba9d66 | 80 | |
81 | ||
1df5fa54 | 82 | protected: |
fb2cbbec | 83 | Double_t fCutValue[11]; // User cut |
84 | Int_t fProcessFlag[15]; // User flag assigned to processes | |
acf2e119 | 85 | Double_t fModelParameter[15]; // User model parameter |
89aa6d28 | 86 | Int_t fMedium; // Material assigned to user settings |
fb2cbbec | 87 | Float_t fCMatMin; // Minimum material number used for current card |
88 | Float_t fCMatMax; // Maximum material number used for current card | |
8134b16b | 89 | TGeoMaterial* fCMaterial; // Current material |
fb2cbbec | 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 | |
4aba9d66 | 98 | |
99 | private: | |
100 | // Copy constructor and operator= declared but not implemented (-Weff++ flag) | |
101 | TFlukaConfigOption(const TFlukaConfigOption&); | |
102 | TFlukaConfigOption& operator=(const TFlukaConfigOption&); | |
103 | ||
1df5fa54 | 104 | ClassDef(TFlukaConfigOption, 1) // Fluka Configuration Option |
105 | }; | |
106 | ||
107 | #endif | |
108 |