Geometry and hit structure update
authorcblume <cblume@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 11 Feb 2002 14:27:54 +0000 (14:27 +0000)
committercblume <cblume@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 11 Feb 2002 14:27:54 +0000 (14:27 +0000)
TRD/AliTRDdataArray.h
TRD/AliTRDdataArrayF.cxx
TRD/AliTRDdataArrayI.cxx
TRD/AliTRDdigitsManager.cxx
TRD/AliTRDdigitsManager.h
TRD/AliTRDhit.h

index fbee032..b47990f 100644 (file)
@@ -29,8 +29,8 @@ class AliTRDdataArray : public AliTRDsegmentID {
   virtual void   Allocate(Int_t nrow, Int_t ncol,Int_t ntime);
   virtual void   Reset();
 
-  virtual Int_t  GetNRow() const               { return fNrow;       };
-  virtual Int_t  GetNCol() const               { return fNcol;       };
+  virtual Int_t  GetNrow() const               { return fNrow;       };
+  virtual Int_t  GetNcol() const               { return fNcol;       };
   virtual Int_t  GetNtime() const              { return fNtime;      };
           Int_t  GetIndex(Int_t row, Int_t col, Int_t time) const;
           Int_t  GetIndexUnchecked(Int_t row, Int_t col, Int_t time) const
index 4563863..0758bd7 100644 (file)
@@ -15,6 +15,9 @@
 
 /*
 $Log$
+Revision 1.9  2001/05/07 08:08:05  cblume
+Update of TRD code
+
 Revision 1.8  2000/11/23 14:34:08  cblume
 Fixed bug in expansion routine of arrays (initialize buffers properly)
 
@@ -200,8 +203,8 @@ Int_t AliTRDdataArrayF::GetOverThreshold(Float_t threshold)
   Int_t over = 0;
 
   for (Bool_t cont = First(); cont == kTRUE; cont = Next()) {
-    if ((fCurrentIdx1 < 0) || (fCurrentIdx1 > fNdim1)) continue;
-    if ((fCurrentIdx2 < 0) || (fCurrentIdx2 > fNdim2)) continue;
+    if ((fCurrentIdx1 < 0) || (fCurrentIdx1 >= fNdim1)) continue;
+    if ((fCurrentIdx2 < 0) || (fCurrentIdx2 >= fNdim2)) continue;
     if (fElements->At(fCurrentIndex) > threshold) over++;
   }
 
index 1f97dc4..948b75d 100644 (file)
@@ -15,6 +15,9 @@
 
 /*
 $Log$
+Revision 1.9  2001/05/07 08:08:05  cblume
+Update of TRD code
+
 Revision 1.8  2000/11/23 14:34:08  cblume
 Fixed bug in expansion routine of arrays (initialize buffers properly)
 
@@ -200,8 +203,8 @@ Int_t AliTRDdataArrayI::GetOverThreshold(Int_t threshold)
   Int_t over = 0;
 
   for (Bool_t cont = First(); cont == kTRUE; cont = Next()) {
-    if ((fCurrentIdx1 < 0) || (fCurrentIdx1 > fNdim1)) continue;
-    if ((fCurrentIdx2 < 0) || (fCurrentIdx2 > fNdim2)) continue;
+    if ((fCurrentIdx1 < 0) || (fCurrentIdx1 >= fNdim1)) continue;
+    if ((fCurrentIdx2 < 0) || (fCurrentIdx2 >= fNdim2)) continue;
     if (fElements->At(fCurrentIndex) > threshold) over++;
   }
 
index d0c3924..4614cc9 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;
     }
index 14cad80..4443717 100644 (file)
@@ -32,14 +32,15 @@ class AliTRDdigitsManager : public TObject {
 
   virtual void                CreateArrays();
   virtual void                Copy(TObject &m);
-  virtual Bool_t              Open(const Char_t *name);
+  virtual Bool_t              Open(const Char_t *file);
   virtual Bool_t              MakeBranch(const Char_t *file = 0);
-  virtual Bool_t              ReadDigits();
+  virtual Bool_t              MakeBranch(TTree *tree, const Char_t *file = 0);
+  virtual Bool_t              ReadDigits(TTree *tree = 0);
   virtual Bool_t              WriteDigits();
 
   virtual void                SetRaw();
   virtual void                SetEvent(Int_t evt)          { fEvent   = evt; };
-  virtual void                SetVerbose(Int_t v = 1)      { fVerbose = v;   };
+  virtual void                SetDebug(Int_t v = 1)        { fDebug   = v;   };
   virtual void                SetSDigits(Int_t v = 1)      { fSDigits = v;   };
 
   virtual Bool_t              IsRaw() const                { return fIsRaw;         };
@@ -71,9 +72,9 @@ class AliTRDdigitsManager : public TObject {
 
   Bool_t              fIsRaw;              //  Flag indicating raw digits
   Bool_t              fSDigits;            //  Switch for the summable digits
-  Int_t               fVerbose;            //  Verbose flag
+  Int_t               fDebug;              //  Debug flag
 
-  ClassDef(AliTRDdigitsManager,3)          //  Manages the TRD digits
+  ClassDef(AliTRDdigitsManager,4)          //  Manages the TRD digits
 
 };
 
index 46749f0..8b87a1a 100644 (file)
@@ -23,25 +23,14 @@ class AliTRDhit : public AliHit {
           Int_t  GetDetector() const         { return fDetector; };
           Int_t  GetCharge() const           { return fQ;        };
 
-          Bool_t FromDrift() const           { return TestBit(kDrift);         };
-          Bool_t FromAmplification() const   { return TestBit(kAmplification); };
-          Bool_t FromTRphoton() const        { return TestBit(kTRphoton);      };
-          Bool_t FromTest() const            { return TestBit(kTest);          };
-
-          void   SetDrift()                  { SetBit(kDrift);         };
-          void   SetAmplification()          { SetBit(kAmplification); };
-          void   SetTRphoton()               { SetBit(kTRphoton);      };
-          void   SetTest()                   { SetBit(kTest);          }; 
+          void   SetX(Float_t x)             { fX        =   x; }
+          void   SetY(Float_t y)             { fY        =   y; }
+          void   SetZ(Float_t z)             { fZ        =   z; }
+          void   SetDetector(Int_t det)      { fDetector = det; }
+          void   SetQ(Int_t q)               { fQ        =   q; }
 
  protected:
 
-  enum {
-    kDrift         = 0x00000001,    // Hit is from the drift region
-    kAmplification = 0x00000002,    // Hit is from the amplification region
-    kTRphoton      = 0x00000004,    // Hit is from a TR photon
-    kTest          = 0x00000008     // Hit is a special test hit
-  };
-
   UShort_t     fDetector;           // TRD detector number
   Short_t      fQ;                  // Charge created by a hit. TR signals are negative.