Geometry and hit structure update
[u/mrichter/AliRoot.git] / TRD / AliTRDdigitsManager.cxx
index d0c39248f0ff94cf7a6f62903876743346a765da..4614cc93ecf9eeb6973b70431faaa611f6ab034b 100644 (file)
@@ -15,6 +15,9 @@
 
 /*
 $Log$
+Revision 1.14  2001/11/14 10:50:46  cblume
+Changes in digits IO. Add merging of summable digits
+
 Revision 1.13  2001/11/06 17:19:41  cblume
 Add detailed geometry and simple simulator
 
@@ -103,7 +106,7 @@ AliTRDdigitsManager::AliTRDdigitsManager():TObject()
 
   fIsRaw   = kFALSE;
   fEvent   = 0;
-  fVerbose = 0;
+  fDebug   = 0;
   fSDigits = 0;
 
   fFile    = NULL;
@@ -167,7 +170,7 @@ void AliTRDdigitsManager::Copy(TObject &m)
 
   ((AliTRDdigitsManager &) m).fIsRaw   = fIsRaw;
   ((AliTRDdigitsManager &) m).fEvent   = fEvent;
-  ((AliTRDdigitsManager &) m).fVerbose = fVerbose;
+  ((AliTRDdigitsManager &) m).fDebug   = fDebug;
   ((AliTRDdigitsManager &) m).fSDigits = fSDigits;
 
   TObject::Copy(m);
@@ -213,25 +216,25 @@ Short_t AliTRDdigitsManager::GetDigitAmp(Int_t row, Int_t col,Int_t time
 }
  
 //_____________________________________________________________________________
-Bool_t AliTRDdigitsManager::Open(const Char_t *name)
+Bool_t AliTRDdigitsManager::Open(const Char_t *file)
 {
   //
   // Opens the file for the TRD digits
   //
 
-  fFile = (TFile*) gROOT->GetListOfFiles()->FindObject(name);
+  fFile = (TFile*) gROOT->GetListOfFiles()->FindObject(file);
   if (!fFile) {
-    if (fVerbose > 0) {
-      printf("AliTRDdigitsManager::Open -- ");
-      printf("Open the AliROOT-file %s.\n",name);
+    if (fDebug > 0) {
+      printf("<AliTRDdigitsManager::Open> ");
+      printf("Open the AliROOT-file %s.\n",file);
     }
-    fFile = new TFile(name,"UPDATE");
+    fFile = new TFile(file,"UPDATE");
     if (!fFile) return kFALSE;
   }
   else {
-    if (fVerbose > 0) {
-      printf("AliTRDdigitsManager::Open -- ");
-      printf("%s is already open.\n",name);
+    if (fDebug > 0) {
+      printf("<AliTRDdigitsManager::Open> ");
+      printf("%s is already open.\n",file);
     }
   }
 
@@ -246,36 +249,52 @@ Bool_t AliTRDdigitsManager::MakeBranch(const Char_t *file)
   // Creates the tree and branches for the digits and the dictionary
   //
 
-  Int_t buffersize = 64000;
-
-  Bool_t status = kTRUE;
-
-  AliTRD *trd = (AliTRD *) gAlice->GetDetector("TRD") ;
-
   // Create the TRD digits tree
+  TTree *tree;
   Char_t treeName[12];
   if (fSDigits) {
     sprintf(treeName,"TreeS%d_TRD",fEvent);
-    fTree = new TTree(treeName,"TRD SDigits");
+    tree = new TTree(treeName,"TRD SDigits");
   }
   else {
     sprintf(treeName,"TreeD%d_TRD",fEvent);
-    fTree = new TTree(treeName,"TRD Digits");
+    tree = new TTree(treeName,"TRD Digits");
   }
 
-  if (fVerbose > 0) {
-    printf("AliTRDdigitsManager::MakeBranch -- ");
+  if (fDebug > 0) {
+    printf("<AliTRDdigitsManager::MakeBranch> ");
     printf("Creating tree %s\n",treeName);
   }
 
+  return MakeBranch(tree,file);
+
+}
+
+//_____________________________________________________________________________
+Bool_t AliTRDdigitsManager::MakeBranch(TTree *tree, const Char_t *file)
+{
+  //
+  // Creates the tree and branches for the digits and the dictionary
+  //
+
+  Int_t buffersize = 64000;
+
+  Bool_t status = kTRUE;
+
+  AliTRD *trd = (AliTRD *) gAlice->GetDetector("TRD") ;
+
+  if (tree) {
+    fTree = tree;
+  }
+
   // Make the branch for the digits
   if (fDigits) {
     const AliTRDdataArray *kDigits = (AliTRDdataArray *) fDigits->At(0);
     if (kDigits) {
       trd->MakeBranchInTree(fTree,"TRDdigits",kDigits->IsA()->GetName()
                                  ,&kDigits,buffersize,99,file);
-      if (fVerbose > 0) {
-        printf("AliTRDdigitsManager::MakeBranch -- ");
+      if (fDebug > 0) {
+        printf("<AliTRDdigitsManager::MakeBranch> ");
         printf("Making branch TRDdigits\n");
       }
     }
@@ -297,8 +316,8 @@ Bool_t AliTRDdigitsManager::MakeBranch(const Char_t *file)
       if (kDictionary) {
         trd->MakeBranchInTree(fTree,branchname,kDictionary->IsA()->GetName()
                              ,&kDictionary,buffersize,99,file);
-        if (fVerbose > 0) {
-          printf("AliTRDdigitsManager::MakeBranch -- ");
+        if (fDebug > 0) {
+          printf("<AliTRDdigitsManager::MakeBranch> ");
           printf("Making branch %s\n",branchname);
        }
       }
@@ -316,7 +335,7 @@ Bool_t AliTRDdigitsManager::MakeBranch(const Char_t *file)
 }
 
 //_____________________________________________________________________________
-Bool_t AliTRDdigitsManager::ReadDigits()
+Bool_t AliTRDdigitsManager::ReadDigits(TTree *tree)
 {
   //
   // Reads the digit information from the input file
@@ -324,31 +343,41 @@ Bool_t AliTRDdigitsManager::ReadDigits()
 
   Bool_t status = kTRUE;
 
-  // Get the digits tree
-  Char_t treeName[12];
-  if (fSDigits) {
-    sprintf(treeName,"TreeS%d_TRD",fEvent);
-  }
-  else {
-    sprintf(treeName,"TreeD%d_TRD",fEvent);
-  }
-  if (fFile) {
-    fTree = (TTree *) fFile->Get(treeName);
+  if (tree) {
+
+    fTree = tree;
+
   }
   else {
-    fTree = (TTree *) gDirectory->Get(treeName);
-  }
-  if (!fTree) {
-    if (fVerbose > 0) {
-      printf("AliTRDdigitsManager::ReadDigits -- ");
-      printf("Could not find tree %s.\n",treeName);
+
+    // Get the digits tree
+    Char_t treeName[12];
+    if (fSDigits) {
+      sprintf(treeName,"TreeS%d_TRD",fEvent);
     }
-    return kFALSE;
+    else {
+      sprintf(treeName,"TreeD%d_TRD",fEvent);
+    }
+    if (fFile) {
+      fTree = (TTree *) fFile->Get(treeName);
+    }
+    else {
+      fTree = (TTree *) gDirectory->Get(treeName);
+    }
+
+    if (!fTree) {
+      if (fDebug > 0) {
+        printf("<AliTRDdigitsManager::ReadDigits> ");
+        printf("Could not find tree %s.\n",treeName);
+      }
+      return kFALSE;
+    }
+
   }
 
   if (!fDigits) {
-    if (fVerbose > 0) {
-      printf("AliTRDdigitsManager::ReadDigits -- ");
+    if (fDebug > 0) {
+      printf("<AliTRDdigitsManager::ReadDigits> ");
       printf("Create the data arrays.\n");
     }
     CreateArrays();
@@ -382,7 +411,7 @@ Bool_t AliTRDdigitsManager::WriteDigits()
 
   // Store the contents of the segment array in the tree
   if (!fDigits->StoreArray("TRDdigits",fTree)) {
-    printf("AliTRDdigitsManager::WriteDigits -- ");
+    printf("<AliTRDdigitsManager::WriteDigits> ");
     printf("Error while storing digits in branch TRDdigits\n");
     return kFALSE;
   }
@@ -390,7 +419,7 @@ Bool_t AliTRDdigitsManager::WriteDigits()
     Char_t branchname[15];
     sprintf(branchname,"TRDdictionary%d",iDict);
     if (!fDictionary[iDict]->StoreArray(branchname,fTree)) {
-      printf("AliTRDdigitsManager::WriteDigits -- ");
+      printf("<AliTRDdigitsManager::WriteDigits> ");
       printf("Error while storing dictionary in branch %s\n",branchname);
       return kFALSE;
     }