]> git.uio.no Git - u/mrichter/AliRoot.git/blame - TFluka/TFlukaConfigOption.h
Material and volume names in comment lines to simplify debugging.
[u/mrichter/AliRoot.git] / TFluka / TFlukaConfigOption.h
CommitLineData
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 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;
30class TFlukaMCGeometry;
31
32class TFlukaConfigOption : public TObject
1df5fa54 33{
34public:
35 // Constructors
36 TFlukaConfigOption();
fb2cbbec 37 TFlukaConfigOption(Int_t imed);
1df5fa54 38 // Getters
fb2cbbec 39 Double_t Cut(FlukaCutOption_t i) const {return fCutValue[i];}
40 Int_t Flag(FlukaProcessOption_t i) const {return fProcessFlag[i];}
41 Int_t Medium() const {return fMedium;}
1df5fa54 42 // Setters
fb2cbbec 43 void SetCut(const char* flagname, Double_t val);
44 void SetProcess(const char* flagname, Int_t flagValue);
45 void SetMedium(Int_t imed) {fMedium = imed;}
46 //
47 void WriteFlukaInputCards();
48 void ProcessDCAY();
49 void ProcessPAIR();
50 void ProcessBREM();
51 void ProcessCOMP();
52 void ProcessPHOT();
53 void ProcessANNI();
54 void ProcessPFIS();
55 void ProcessMUNU();
56 void ProcessRAYL();
57 void ProcessCKOV();
58 void ProcessHADR();
59 void ProcessMULS();
60 void ProcessLOSS();
61 void ProcessSTRA();
62
63
64 void ProcessCUTGAM();
65 void ProcessCUTELE();
66 void ProcessCUTNEU();
67 void ProcessCUTHAD();
68 void ProcessCUTMUO();
69 void ProcessTOFMAX();
70
71 //
72 static void SetStaticInfo(FILE* file, Float_t matMin, Float_t matMax, TFlukaMCGeometry* geom)
73 {fgFile = file; fgMatMin = matMin; fgMatMax = matMax; fgGeom = geom;}
0b072430 74 static Double_t DefaultCut(FlukaCutOption_t i) {return fgDCutValue[i];}
1df5fa54 75 protected:
fb2cbbec 76 Double_t fCutValue[11]; // User cut
77 Int_t fProcessFlag[15]; // User flag assigned to processes
89aa6d28 78 Int_t fMedium; // Material assigned to user settings
fb2cbbec 79 Float_t fCMatMin; // Minimum material number used for current card
80 Float_t fCMatMax; // Maximum material number used for current card
81
82 // static
83 static Double_t fgDCutValue[11]; // User default cut
84 static Int_t fgDProcessFlag[15]; // User default flag assigned to processes
85 static Float_t fgMatMin; // Minimum material number
86 static Float_t fgMatMax; // Maximum meterial number
87 static FILE* fgFile; // Output file
88 static TFlukaMCGeometry* fgGeom; // Pointer to geometry
1df5fa54 89 ClassDef(TFlukaConfigOption, 1) // Fluka Configuration Option
90};
91
92#endif
93