]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Putting raw2sdigits method provided by Brigitte into AliVZERO. Now it can be used...
authorcvetan <cvetan@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 23 Nov 2007 12:48:49 +0000 (12:48 +0000)
committercvetan <cvetan@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 23 Nov 2007 12:48:49 +0000 (12:48 +0000)
VZERO/AliVZERO.cxx
VZERO/AliVZERO.h

index ca33b1e4d9d3d6f49c583089afe8f718594452f7..1375b3eb8a58599821a92749158344e4d6cf9e15 100755 (executable)
@@ -53,6 +53,8 @@
 #include "AliRunDigitizer.h"
 #include "AliVZEROdigit.h"
 #include "AliDAQ.h"
 #include "AliRunDigitizer.h"
 #include "AliVZEROdigit.h"
 #include "AliDAQ.h"
+#include "AliRawReader.h"
+#include "AliVZERORawStream.h"
 
 ClassImp(AliVZERO)
  //__________________________________________________________________
 
 ClassImp(AliVZERO)
  //__________________________________________________________________
@@ -342,4 +344,52 @@ void AliVZERO::Digits2Raw()
   fLoader->UnloadDigits();
 }
 
   fLoader->UnloadDigits();
 }
 
+//_____________________________________________________________________________
+Bool_t AliVZERO::Raw2SDigits(AliRawReader* rawReader){
+  // Converts the VZERO raw data into digits
+  // The method is used for merging simulated and
+  // real data events
+  TStopwatch timer;
+  timer.Start();
+
+  if(!fLoader) {
+    AliError("no VZERO loader found");
+    return kFALSE; }
+
+  TTree* treeD  = fLoader->TreeD();
+  if(!treeD) {
+      fLoader->MakeTree("D");
+      treeD = fLoader->TreeD(); }
+        
+  AliVZEROdigit  digit;
+  AliVZEROdigit* pdigit = &digit;
+  const Int_t kBufferSize = 4000;
+   
+  treeD->Branch("VZERO", "AliVZEROdigit",  &pdigit, kBufferSize);
+
+  rawReader->Reset();
+  AliVZERORawStream* rawStream  = new AliVZERORawStream(rawReader);    
+     
+  if (!rawStream->Next()) return kFALSE; // No VZERO data found
+  
+  for(Int_t i=0; i<64; i++) {
+      new(pdigit) AliVZEROdigit(i, (Int_t)rawStream->GetADC(i), (Int_t)rawStream->GetTime(i)); 
+      treeD->Fill();
+  }
+// Checks if everything is OK by printing results 
+
+//   for(int i=0;i<64;i++) {
+//     printf("Channel %d : %d %d \n",i,rawStream->GetADC(i),rawStream->GetTime(i)); }
+//   treeD->Print(); printf(" \n"); 
+       
+  fLoader->WriteDigits("OVERWRITE");
+  fLoader->UnloadDigits();     
+       
+  delete rawStream;
+
+  timer.Stop();
+  timer.Print();
+}
+
 
 
index f33bb55e25b8b064273ef6e92b7f5c076817413b..0bf998805b7fa01f8ac3055bfb807666df7b63d3 100755 (executable)
@@ -46,6 +46,7 @@ public:
   virtual AliLoader* MakeLoader(const char* topfoldername);
   virtual void   Hits2Digits();
   virtual void   Digits2Raw();
   virtual AliLoader* MakeLoader(const char* topfoldername);
   virtual void   Hits2Digits();
   virtual void   Digits2Raw();
+  virtual Bool_t Raw2SDigits(AliRawReader*);
   virtual void   SetTreeAddress();  
   virtual void   MakeBranch(Option_t *option) =0;
   virtual void   DrawModule() const {};
   virtual void   SetTreeAddress();  
   virtual void   MakeBranch(Option_t *option) =0;
   virtual void   DrawModule() const {};