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