1 #ifndef TFLUKACONFIGOPTION
2 #define TFLUKACONFIGOPTION
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
9 ///////////////////////////////////////////////////////////////////////////////
12 // Class to store FLUKA and VMC configuration options: //
13 // Cuts, Processes, User Scoring //
16 // Author: andreas.morsch@cern.ch //
19 ///////////////////////////////////////////////////////////////////////////////
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 class TFlukaMCGeometry;
32 class TFlukaConfigOption : public TObject
37 TFlukaConfigOption(Int_t imed);
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;}
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;}
47 void WriteFlukaInputCards();
72 static void SetStaticInfo(FILE* file, Float_t matMin, Float_t matMax, TFlukaMCGeometry* geom)
73 {fgFile = file; fgMatMin = matMin; fgMatMax = matMax; fgGeom = geom;}
74 static Double_t DefaultCut(FlukaCutOption_t i) {return fgDCutValue[i];}
76 Double_t fCutValue[11]; // User cut
77 Int_t fProcessFlag[15]; // User flag assigned to processes
78 Int_t fMedium; // Material assigned to user settings
79 Float_t fCMatMin; // Minimum material number used for current card
80 Float_t fCMatMax; // Maximum material number used for current card
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
89 ClassDef(TFlukaConfigOption, 1) // Fluka Configuration Option