Dummy methods DefineParticle required by the interface added.
[u/mrichter/AliRoot.git] / TFluka / TFlukaConfigOption.h
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
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 typedef enum {kPRIMION, kPRIMIOE}  FlukaModelOption_t;
31
32 class TFlukaMCGeometry;
33 class TGeoMaterial;
34
35 class TFlukaConfigOption : public TObject
36 {
37 public:
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