]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TFluka/TFlukaConfigOption.h
Adding classes AliMUONVCluster, AliMUONRawClusterV2 (Philippe P., Laurent)
[u/mrichter/AliRoot.git] / TFluka / TFlukaConfigOption.h
index 74ab4871ac0155e1f63691f1a7940bac155040cb..ffdba10149642a7200d9b079bc213d790e87cf26 100644 (file)
 typedef enum {kDCAY, kPAIR, kCOMP, kPHOT, kPFIS, kDRAY, kANNI, kBREM,
              kMUNU, kCKOV, kHADR, kLOSS, kMULS, kRAYL, kSTRA} FlukaProcessOption_t;
 typedef enum {kCUTGAM, kCUTELE, kCUTNEU, kCUTHAD, kCUTMUO, kBCUTE, kBCUTM, kDCUTE, kDCUTM, kPPCUTM, kTOFMAX}  FlukaCutOption_t;
+typedef enum {kPRIMION, kPRIMIOE}  FlukaModelOption_t;
+
 class TFlukaMCGeometry;
+class TGeoMaterial;
 
 class TFlukaConfigOption : public TObject
 {
@@ -36,11 +39,13 @@ public:
     TFlukaConfigOption();
     TFlukaConfigOption(Int_t imed);
     // Getters
-    Double_t Cut(FlukaCutOption_t i)      const {return fCutValue[i];}
-    Int_t    Flag(FlukaProcessOption_t i) const {return fProcessFlag[i];}
-    Int_t    Medium()                     const {return fMedium;}    
+    Double_t Cut(FlukaCutOption_t i)              const {return fCutValue[i];}
+    Int_t    Flag(FlukaProcessOption_t i)         const {return fProcessFlag[i];}
+    Double_t  ModelParameter(FlukaModelOption_t i) const {return fModelParameter[i];}
+    Int_t    Medium()                             const {return fMedium;}    
     // Setters
     void     SetCut(const char* flagname, Double_t val);
+    void     SetModelParameter(const char* flagname, Double_t val);
     void     SetProcess(const char* flagname, Int_t flagValue);
     void     SetMedium(Int_t imed)       {fMedium = imed;}
     //
@@ -58,8 +63,6 @@ public:
     void     ProcessHADR();
     void     ProcessMULS();
     void     ProcessLOSS();
-    void     ProcessSTRA();
-    
     
     void     ProcessCUTGAM();
     void     ProcessCUTELE();
@@ -67,17 +70,23 @@ public:
     void     ProcessCUTHAD();
     void     ProcessCUTMUO();
     void     ProcessTOFMAX();
+    void     ProcessSensitiveMedium();
     
     //
     static void SetStaticInfo(FILE* file, Float_t matMin, Float_t matMax, TFlukaMCGeometry* geom)
        {fgFile = file; fgMatMin = matMin; fgMatMax = matMax; fgGeom = geom;}
     static Double_t DefaultCut(FlukaCutOption_t i) {return fgDCutValue[i];}
+    static Int_t    DefaultProcessFlag(FlukaProcessOption_t i) {return fgDProcessFlag[i];}
+    
  protected:
     Double_t fCutValue[11];            // User cut
     Int_t    fProcessFlag[15];         // User flag assigned to processes
-    Int_t    fMedium;                  // Materials assigned to user settings
+    Double_t fModelParameter[15];      // User model parameter
+    Int_t    fMedium;                  // Material assigned to user settings
     Float_t  fCMatMin;                 // Minimum material number used for current card 
     Float_t  fCMatMax;                 // Maximum material number used for current card
+    TGeoMaterial* fCMaterial;          // Current material
     
     // static
     static Double_t  fgDCutValue[11];     // User default cut
@@ -86,6 +95,12 @@ public:
     static Float_t   fgMatMax;            // Maximum meterial number
     static FILE*     fgFile;              // Output file
     static TFlukaMCGeometry* fgGeom;      // Pointer to geometry     
+
+ private:
+    // Copy constructor and operator= declared but not implemented (-Weff++ flag)
+    TFlukaConfigOption(const TFlukaConfigOption&);
+    TFlukaConfigOption& operator=(const TFlukaConfigOption&);
+    
     ClassDef(TFlukaConfigOption, 1)    // Fluka Configuration Option
 };