Adding possibility to change the material density globally. This can be used for...
authorjgrosseo <jgrosseo@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 13 Mar 2008 16:37:42 +0000 (16:37 +0000)
committerjgrosseo <jgrosseo@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 13 Mar 2008 16:37:42 +0000 (16:37 +0000)
STEER/AliModule.cxx
STEER/AliModule.h

index f11805c..fc3a254 100644 (file)
@@ -57,6 +57,8 @@
 
 ClassImp(AliModule)
  
+Float_t AliModule::fgDensityFactor = 1.0;
 //_______________________________________________________________________
 AliModule::AliModule():
   fEuclidMaterial(""),
@@ -221,7 +223,9 @@ void AliModule::AliMaterial(Int_t imat, const char* name, Float_t a,
     kmat = mat->GetUniqueID();
     (*fIdmate)[imat]=kmat;
   }else{
-    gMC->Material(kmat, uniquename.Data(), a, z, dens, radl, absl, buf, nwbuf);
+    if (fgDensityFactor != 1.0)
+      AliWarning(Form("Material density multiplied by %.2f!", fgDensityFactor));
+    gMC->Material(kmat, uniquename.Data(), a, z, dens * fgDensityFactor, radl, absl, buf, nwbuf);
     (*fIdmate)[imat]=kmat;
   }
 }
@@ -287,7 +291,9 @@ void AliModule::AliMixture(Int_t imat, const char *name, Float_t *a,
     kmat = mat->GetUniqueID();
     (*fIdmate)[imat]=kmat;
   }else{
-    gMC->Mixture(kmat, uniquename.Data(), a, z, dens, nlmat, wmat);
+    if (fgDensityFactor != 1.0)
+      AliWarning(Form("Material density multiplied by %.2f!", fgDensityFactor));
+    gMC->Mixture(kmat, uniquename.Data(), a, z, dens * fgDensityFactor, nlmat, wmat);
     (*fIdmate)[imat]=kmat;
   }
 } 
index 1a8540e..bb2658e 100644 (file)
@@ -153,6 +153,9 @@ public:
 // Quality Assurance methods
   virtual void CheckQA()    { ; }
   
+  static void SetDensityFactor(Float_t density) { fgDensityFactor = density; }
+  static Float_t GetDensityFactor() { return fgDensityFactor; }
+  
 protected:      
 
   // Data members
@@ -175,10 +178,12 @@ protected:
 
   AliRunLoader* fRunLoader;   //!local pointer to run loader
 
+  static Float_t fgDensityFactor; //! factor that is multiplied to all material densities (ONLY for systematic studies)
+
  private:
   AliModule(const AliModule &mod);
   AliModule& operator=(const AliModule &mod);
 
-  ClassDef(AliModule,7)  //Base class for ALICE Modules
+  ClassDef(AliModule,8)  //Base class for ALICE Modules
 };
 #endif