]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUON.cxx
The sigma cut used for noise generation can now be easily changed
[u/mrichter/AliRoot.git] / MUON / AliMUON.cxx
index b701e6201005709e4ba075947a0fcd426e346b72..eaaa167a704c00c9acac5cf3acbaa16ab1db6609 100644 (file)
 
 /* $Id$ */
 
-// ------------------
+//-----------------------------------------------------------------------------
 // Class AliMUON
 // ------------------
 // AliDetector class for MUON subsystem 
 // providing simulation data management 
+//-----------------------------------------------------------------------------
 
-#include "Riostream.h"
-
-#include <AliPDG.h>
-#include <TBRIK.h>
-#include <TCanvas.h>
-#include <TDirectory.h>
-#include <TFile.h>
-#include <TGeometry.h>
-#include <TMinuit.h>
-#include <TNode.h> 
-#include <TNtuple.h>
-#include <TObjArray.h>
-#include <TObject.h>
-#include <TObjectTable.h>
-#include <TPad.h>
-#include <TParticle.h>
-#include <TROOT.h>
-#include <TRandom.h> 
-#include <TRotMatrix.h>
-#include <TTUBE.h>
-#include <TTUBE.h>
-#include <TTree.h> 
-#include <TVector.h>
-#include <TVirtualMC.h>
-
-//#include "AliHeader.h"
-#include "AliLoader.h"
-#include "AliRunDigitizer.h"
-#include "AliMC.h"
-#include "AliRun.h"    
 #include "AliMUON.h"
+
+#include "AliMUONSDigitizerV2.h"
+#include "AliMUONDigitizerV3.h"
+#include "AliMUONDigitMaker.h"
+#include "AliMUONCalibrationData.h"
+
+#include "AliMUONDigitStoreV1.h"
+#include "AliMUONVTriggerStore.h"
+#include "AliMUONHitStoreV1.h"
+
 #include "AliMUONChamberTrigger.h"
 #include "AliMUONConstants.h"
-#include "AliMUONHit.h"        
 #include "AliMUONGeometry.h"
 #include "AliMUONGeometryTransformer.h"
 #include "AliMUONGeometryBuilder.h"
-#include "AliMUONCommonGeometryBuilder.h"
 #include "AliMUONVGeometryBuilder.h"   
-#include "AliMUONRawWriter.h"
-#include "AliLog.h"
-
-#include "AliMUONSDigitizerV2.h"
-#include "AliMUONDigitizerV3.h"
-#include "AliMUONDigitMaker.h"
-
+#include "AliMUONCommonGeometryBuilder.h"
 #include "AliMUONSt1GeometryBuilderV2.h"
 #include "AliMUONSt2GeometryBuilderV2.h"
 #include "AliMUONSlatGeometryBuilder.h"
 #include "AliMUONTriggerGeometryBuilder.h"
 
-#include "AliMUONDigitStoreV1.h"
-#include "AliMUONVTriggerStore.h"
-#include "AliMUONHitStoreV1.h"
+#include "AliMUONRawWriter.h"
+
+#include "AliLoader.h"
+#include "AliCDBManager.h"
+#include "AliRunDigitizer.h"
+#include "AliMC.h"
+#include "AliRun.h"
+#include "AliRawDataHeaderSim.h"
+#include "AliLog.h"
+
+#include <TObjArray.h>
 
 // Defaults parameters for Z positions of chambers
 // taken from values for "stations" in AliMUON::AliMUON
@@ -115,10 +96,16 @@ AliMUON::AliMUON()
     fTriggerResponseV1(kFALSE),
     fTriggerCoinc44(0),
     fTriggerEffCells(0),
-    fDigitizerWithNoise(kTRUE),
+    fDigitizerWithNoise(1),
+    fDigitizerNSigmas(4.0),
+    fIsTailEffect(kTRUE),
     fRawWriter(0x0),
     fDigitMaker(0x0),
-    fHitStore(0x0)
+    fHitStore(0x0),
+    fDigitStoreConcreteClassName(),
+    fCalibrationData(0x0),
+    fTimeMin(-100000),
+    fTimeMax(100000)
 {
 /// Default Constructor
     
@@ -147,16 +134,23 @@ AliMUON::AliMUON(const char *name, const char* title)
     fTriggerResponseV1(kFALSE),
     fTriggerCoinc44(0),
     fTriggerEffCells(0),
-    fDigitizerWithNoise(kTRUE),
+    fDigitizerWithNoise(1),
+    fDigitizerNSigmas(4.0),
+    fIsTailEffect(kTRUE),
     fRawWriter(0x0),
     fDigitMaker(new AliMUONDigitMaker),
-    fHitStore(0x0)
+    fHitStore(0x0),
+    fDigitStoreConcreteClassName("AliMUONDigitStoreV2S"),
+    fCalibrationData(),
+    fTimeMin(-100000),
+    fTimeMax(100000)
+
 {
-/// Standard constructor  
+  /// Standard constructor  
   
   AliDebug(1,Form("ctor this=%p",this));
   fIshunt =  0;
-
+  
   //PH SetMarkerColor(kRed);//
     
   // Geometry builder
@@ -165,11 +159,11 @@ AliMUON::AliMUON(const char *name, const char* title)
   // Common geometry definitions
   fGeometryBuilder
     ->AddBuilder(new AliMUONCommonGeometryBuilder(this));
-
+  
   // By default, add also all the needed geometry builders.
   // If you want to change this from outside, please use ResetGeometryBuilder
   // method, followed by AddGeometryBuilder ones.
-
+  
   AddGeometryBuilder(new AliMUONSt1GeometryBuilderV2(this));
   AddGeometryBuilder(new AliMUONSt2GeometryBuilderV2(this));
   AddGeometryBuilder(new AliMUONSlatGeometryBuilder(this));
@@ -196,7 +190,10 @@ AliMUON::AliMUON(const char *name, const char* title)
        }
       } // Chamber stCH (0, 1) in 
     }     // Station st (0...)
-
+  
+  Int_t runnumber = AliCDBManager::Instance()->GetRun();
+  
+  fCalibrationData = new AliMUONCalibrationData(runnumber);
 }
 
 //____________________________________________________________________
@@ -210,6 +207,7 @@ AliMUON::~AliMUON()
   delete fRawWriter;
   delete fDigitMaker;
   delete fHitStore;
+  delete fCalibrationData;
 }
 
 //_____________________________________________________________________________
@@ -220,18 +218,6 @@ void AliMUON::AddGeometryBuilder(AliMUONVGeometryBuilder* geomBuilder)
   fGeometryBuilder->AddBuilder(geomBuilder);
 }
 
-//____________________________________________________________________
-void AliMUON::BuildGeometry()
-{
-/// Geometry for event display
-
-
-//     for (Int_t i = 0; i < AliMUONConstants::NCh(); i++)     
-//       this->Chamber(i).SegmentationModel2(1)->Draw("eventdisplay");// to be check !
-     
-  
-}
-
 //____________________________________________________________________
 const AliMUONGeometry*  AliMUON::GetGeometry() const
 {
@@ -449,7 +435,10 @@ AliDigitizer* AliMUON::CreateDigitizer(AliRunDigitizer* manager) const
 {
 /// Return digitizer
   
-  return new AliMUONDigitizerV3(manager, fDigitizerWithNoise);
+  AliMUONDigitizerV3* digitizer = new AliMUONDigitizerV3(manager, fDigitizerWithNoise);
+  AliMUONDigitizerV3::SetNSigmas(fDigitizerNSigmas);
+  digitizer->SetCalibrationData(fCalibrationData);
+  return digitizer;
 }
 
 //_____________________________________________________________________
@@ -477,6 +466,8 @@ void AliMUON::Digits2Raw()
 {
 /// Convert digits of the current event to raw data
 
+  AliRawDataHeaderSim header;
+
   if (!fRawWriter)
   {
     fRawWriter = new AliMUONRawWriter;
@@ -505,6 +496,7 @@ void AliMUON::Digits2Raw()
   
   treeD->GetEvent(0);
   
+  fRawWriter->SetHeader(header);
   if (!fRawWriter->Digits2Raw(digitStore,triggerStore))
   {
     AliError("pb writting raw data");
@@ -520,7 +512,6 @@ void AliMUON::Digits2Raw()
 Bool_t AliMUON::Raw2SDigits(AliRawReader* rawReader)
 {
 /// Convert  raw data to SDigit
-/// Only for tracking for the moment (ChF) 
 
   fLoader->LoadDigits("READ");
   if (!fLoader->TreeS()) fLoader->MakeSDigitsContainer();
@@ -601,7 +592,7 @@ Bool_t  AliMUON::GetTriggerEffCells() const
 }  
 
 //____________________________________________________________________
-Bool_t  AliMUON::GetDigitizerWithNoise() const
+Int_t  AliMUON::GetDigitizerWithNoise() const
 {
 ///
 /// Returns fDigitizerWithNoise
@@ -610,3 +601,4 @@ Bool_t  AliMUON::GetDigitizerWithNoise() const
     
 }  
 
+