]> git.uio.no Git - u/mrichter/AliRoot.git/blame_incremental - TFluka/TFlukaConfigOption.h
More EMCALgeometry replaced by AliJetDummyGeo
[u/mrichter/AliRoot.git] / TFluka / TFlukaConfigOption.h
... / ...
CommitLineData
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
27typedef enum {kDCAY, kPAIR, kCOMP, kPHOT, kPFIS, kDRAY, kANNI, kBREM,
28 kMUNU, kCKOV, kHADR, kLOSS, kMULS, kRAYL, kSTRA} FlukaProcessOption_t;
29typedef enum {kCUTGAM, kCUTELE, kCUTNEU, kCUTHAD, kCUTMUO, kBCUTE, kBCUTM, kDCUTE, kDCUTM, kPPCUTM, kTOFMAX} FlukaCutOption_t;
30typedef enum {kPRIMION, kPRIMIOE} FlukaModelOption_t;
31
32class TFlukaMCGeometry;
33class TGeoMaterial;
34
35class TFlukaConfigOption : public TObject
36{
37public:
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