]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TOF/AliTOF.cxx
Modification in order to run the TPC Calibration train
[u/mrichter/AliRoot.git] / TOF / AliTOF.cxx
index f6afd4e611b66d06e21458ac2a4165cff15393b6..94634a99f8f089cb5de1ee04464375b33a1e1da5 100644 (file)
 #include "AliLog.h"
 #include "AliMC.h"
 #include "AliRun.h"
+#include "AliDAQ.h"
+#include "AliRawReader.h"
 
-#include "AliTOFDDLRawData.h"
+//#include "AliTOFDDLRawData.h"
 #include "AliTOFDigitizer.h"
 #include "AliTOFdigit.h"
 #include "AliTOFhitT0.h"
@@ -62,6 +64,8 @@
 #include "AliTOFSDigitizer.h"
 #include "AliTOFSDigit.h"
 #include "AliTOF.h"
+#include "AliTOFrawData.h"
+#include "AliTOFRawStream.h"
 
 class AliTOFcluster;
 
@@ -71,9 +75,8 @@ extern TVirtualMC *gMC;
 
 extern AliRun *gAlice;
 
 ClassImp(AliTOF)
+
 //_____________________________________________________________________________
 AliTOF::AliTOF():
   fFGeom(0x0),
@@ -85,7 +88,8 @@ AliTOF::AliTOF():
   fIdSens(-1),
   fTZero(kFALSE),
   fTOFHoles(kTRUE),
-  fTOFGeometry(0x0)
+  fTOFGeometry(0x0),
+  fTOFRawWriter(AliTOFDDLRawData())
 {
   //
   // Default constructor
@@ -97,6 +101,7 @@ AliTOF::AliTOF():
   fDigits = 0;
   fIshunt   = 0;
   fName = "TOF";
+
 }
  
 //_____________________________________________________________________________
@@ -112,7 +117,8 @@ AliTOF::AliTOF(const char *name, const char *title, Option_t *option)
   fIdSens(-1),
   fTZero(kFALSE),
   fTOFHoles(kTRUE),
-  fTOFGeometry(0x0)
+  fTOFGeometry(0x0),
+  fTOFRawWriter(AliTOFDDLRawData())
 {
   //
   // AliTOF standard constructor
@@ -483,7 +489,7 @@ void AliTOF::Init()
   /*
   // Save the geometry
   TDirectory* saveDir = gDirectory;
-  AliRunLoader::GetRunLoader()->CdGAFile();
+  AliRunLoader::Instance()->CdGAFile();
   fTOFGeometry->Write("TOFGeometry");
   saveDir->cd();
   */
@@ -572,10 +578,16 @@ void AliTOF::Hits2SDigits()
 //  AliInfo("Start...");
   
   AliRunLoader * rl = fLoader->GetRunLoader();
+  AliDebug(2,"Initialized runLoader");
   AliTOFSDigitizer sd((rl->GetFileName()).Data());
-  ToAliDebug(1, sd.Print(""));
+  AliDebug(2,"Initialized TOF sdigitizer");
+  //ToAliDebug(1, sd.Print(""));
+  //AliInfo("ToAliDebug");
 
-  sd.Exec("") ;
+  //sd.Exec("all") ;
+  sd.Exec("partial") ;
+
+  AliDebug(2,"I am sorting from AliTOF class");
 
 }
 
@@ -602,6 +614,7 @@ void AliTOF::Hits2SDigits(Int_t evNumber1, Int_t evNumber2)
 //___________________________________________________________________________
 AliDigitizer* AliTOF::CreateDigitizer(AliRunDigitizer* manager) const
 {
+  AliDebug(2,"I am creating the TOF digitizer");
   return new AliTOFDigitizer(manager);
 }
 
@@ -677,26 +690,18 @@ void AliTOF::Digits2Raw()
     return;
   }
   
-  /*
-  fRunLoader->CdGAFile();
-  TFile *in=(TFile*)gFile;
-  in->cd();
-  AliTOFGeometry *geometry  = (AliTOFGeometry*)in->Get("TOFgeometry");
-  */
-  AliTOFDDLRawData rawWriter;
   //AliTOFDDLRawData rawWriter;
-  rawWriter.SetVerbose(0);
-  //rawWriter.SetFakeOrphaneProduction(kTRUE);
-  //rawWriter.SetPackedAcquisitionMode(kFALSE);
-  if (rawWriter.GetPackedAcquisitionMode()) {
-    if(rawWriter.GetMatchingWindow()>8192)
+  fTOFRawWriter.Clear();
+  fTOFRawWriter.SetVerbose(0);
+  if (fTOFRawWriter.GetPackedAcquisitionMode()) {
+    if(fTOFRawWriter.GetMatchingWindow()>8192)
       AliWarning(Form("You are running in packing mode and the matching window is %.2f ns, i.e. greater than 199.8848 ns",
-                     rawWriter.GetMatchingWindow()*AliTOFGeometry::TdcBinWidth()*1.e-03));
+                     fTOFRawWriter.GetMatchingWindow()*AliTOFGeometry::TdcBinWidth()*1.e-03));
   }
   
   AliDebug(1,"Formatting raw data for TOF");
   digits->GetEvent(0);
-  rawWriter.RawDataTOF(digits->GetBranch("TOF"));  
+  fTOFRawWriter.RawDataTOF(digits->GetBranch("TOF"));  
 
   fLoader->UnloadDigits();
   
@@ -721,3 +726,58 @@ void AliTOF::CreateSDigitsArray() {
 //
   fSDigits       = new TClonesArray("AliTOFSDigit",  1000);
 }
+//____________________________________________________________________________
+Bool_t AliTOF::Raw2SDigits(AliRawReader* rawReader)
+{
+  //
+  // Converts raw data to sdigits for TOF
+  //
+
+  TStopwatch stopwatch;
+  stopwatch.Start();
+
+  if(!GetLoader()->TreeS()) {MakeTree("S");  MakeBranch("S");}
+  //TClonesArray &aSDigits = *fSDigits;
+
+  AliTOFRawStream tofRawStream = AliTOFRawStream();
+  tofRawStream.Raw2SDigits(rawReader, fSDigits);
+
+  GetLoader()->TreeS()->Fill(); GetLoader()->WriteSDigits("OVERWRITE");//write out sdigits
+  Int_t nSDigits = fSDigits->GetEntries();
+
+  ResetSDigits();
+
+  AliDebug(1, Form("Got %d TOF sdigits", nSDigits));
+  AliDebug(1, Form("Execution time to read TOF raw data and fill TOF sdigit tree : R:%.2fs C:%.2fs",
+                  stopwatch.RealTime(),stopwatch.CpuTime()));
+
+  return kTRUE;
+
+}
+
+//____________________________________________________________________________
+void AliTOF::Raw2Digits(AliRawReader* rawReader)
+{
+  //
+  // Converts raw data to digits for TOF
+  //
+
+  TStopwatch stopwatch;
+  stopwatch.Start();
+
+  if(!GetLoader()->TreeD()) {MakeTree("D");  MakeBranch("D");}
+  //TClonesArray &aDigits = *fDigits;
+
+  AliTOFRawStream tofRawStream = AliTOFRawStream();
+  tofRawStream.Raw2Digits(rawReader, fDigits);
+
+  GetLoader()->TreeD()->Fill(); GetLoader()->WriteDigits("OVERWRITE");//write out digits
+  Int_t nDigits = fDigits->GetEntries();
+
+  ResetDigits();
+
+  AliDebug(1, Form("Got %d TOF digits", nDigits));
+  AliDebug(1, Form("Execution time to read TOF raw data and fill TOF digit tree : R:%.2fs C:%.2fs",
+                  stopwatch.RealTime(),stopwatch.CpuTime()));
+
+}