]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ITS/AliITSBeamTestDigitizer.cxx
Corrected index (aplhacxx6)
[u/mrichter/AliRoot.git] / ITS / AliITSBeamTestDigitizer.cxx
index b9dff15da0f47177e25483e3cffb9637a5c611cb..0c0373ee4d3b9a4f0f10dc00c765ba798720ec03 100644 (file)
 #include "AliITSBeamTestDigSSD.h"
 #include "AliITSBeamTestDigitizer.h"
 #include "AliRawReaderDate.h"
+#include "AliRawReaderRoot.h"
 #include "TGeoManager.h"
 #include "TGeoMaterial.h"
 #include "TGeoMedium.h"
 #include "TGeoVolume.h"
-#include <TGeant3.h>
+#include <TVirtualMC.h>
+//#include <TGeant3.h>
 
 const TString AliITSBeamTestDigitizer::fgkDefaultDigitsFileName="ITS.Digits.root";  
 
@@ -43,6 +45,7 @@ AliITSBeamTestDigitizer::AliITSBeamTestDigitizer():TTask()
   fDATEEvType=7;
   fRunNumber=-1;
   SetFlagInit();
+  SetOptDate();
   fBt=0;
   fPeriod=kNov04;
 } 
@@ -61,6 +64,7 @@ AliITSBeamTestDigitizer::AliITSBeamTestDigitizer():TTask()
   fDATEEvType=7;
   fFlagHeader=kTRUE;
   fRunNumber=-1;
+  SetOptDate();
 
   TString choice(opt);
   Bool_t aug04 = choice.Contains("Aug04");
@@ -85,6 +89,7 @@ AliITSBeamTestDigitizer::AliITSBeamTestDigitizer():TTask()
   fDATEEvType=7;
   fFlagHeader=kTRUE;
   fRunNumber=run;
+  SetOptDate();
   TString choice(opt);
   Bool_t aug04 = choice.Contains("Aug04");
   Bool_t nov04 = choice.Contains("Nov04");
@@ -122,7 +127,11 @@ void AliITSBeamTestDigitizer::Init(){
   if(GetBeamTestPeriod()==kAug04){
     fBt = new AliITSvSDD03("ITS",2004);
     gSystem->Load("libgeant321");
-    new TGeant3("C++ Interface to Geant3");
+    //    new TGeant3("C++ Interface to Geant3");
+    if(strcmp(gMC->GetName(),"TGeant3")) {
+       Fatal("Init","TGeant3 should be instantiated in advance");
+       return;
+    } 
     fBt->CreateMaterials();
     fBt->CreateGeometry();
     fBt->Init();
@@ -174,6 +183,7 @@ void AliITSBeamTestDigitizer::Init(){
 
   fEvIn=0;
   fEvFin=0;
+  SetOptDate();
   
 }
 
@@ -231,7 +241,11 @@ void AliITSBeamTestDigitizer::ExecDigitization(){
   fLoader->SetDigitsFileName(fDigitsFileName);
   fLoader->LoadDigits("recreate");
  
-  AliRawReaderDate rd(fRawdataFileName,fEvIn);
+  AliRawReader* rd;
+
+  if(GetOptDate()) rd = new AliRawReaderDate(fRawdataFileName,fEvIn);
+  else rd = new AliRawReaderRoot(fRawdataFileName,fEvIn);
+
   AliHeader* header = fRunLoader->GetHeader();
   
   Int_t iev=fEvIn-1;
@@ -250,12 +264,12 @@ void AliITSBeamTestDigitizer::ExecDigitization(){
     AliITSEventHeader* itsh = new AliITSEventHeader("ITSHeader");
     fRunLoader->SetEventNumber(iev);
    
-    rd.RequireHeader(fFlagHeader);
-    rd.SelectEvents(fDATEEvType);
+    rd->RequireHeader(fFlagHeader);
+    rd->SelectEvents(fDATEEvType);
  
-    digSDD->SetRawReaderDate(&rd);
-    digSPD->SetRawReaderDate(&rd);
-    digSSD->SetRawReaderDate(&rd);
+    digSDD->SetRawReader(rd);
+    digSPD->SetRawReader(rd);
+    digSSD->SetRawReader(rd);
     
     if(fLoader->TreeD() == 0x0) fLoader->MakeTree("D");
 
@@ -301,12 +315,13 @@ void AliITSBeamTestDigitizer::ExecDigitization(){
     delete digitsSDD;
     delete digitsSSD;
 
-   }while(rd.NextEvent());
+   }while(rd->NextEvent());
 
+  
   fRunLoader->WriteHeader("OVERWRITE");
   fRunLoader->WriteRunLoader("OVERWRITE");
 
+  delete rd;
   fLoader->UnloadDigits();
   fLoader->UnloadRawClusters();
   fRunLoader->UnloadHeader();