-#ifndef TRDdigitsManager_H
-#define TRDdigitsManager_H
+#ifndef ALITRDDIGITSMANAGER_H
+#define ALITRDDIGITSMANAGER_H
/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
* See cxx source for full Copyright notice */
// Manages the TRD digits //
/////////////////////////////////////////////////////////////
-#include "TObject.h"
+#include <TObject.h>
-#include "AliTRDsegmentArray.h"
-#include "AliTRDdataArrayI.h"
-#include "AliTRDdigit.h"
+class TFile;
+class TTree;
-const Int_t kNDict = 3;
+class AliTRDsegmentArray;
+class AliTRDdataArrayI;
+class AliTRDdigit;
class AliTRDdigitsManager : public TObject {
public:
- AliTRDdigitsManager();
- ~AliTRDdigitsManager();
+ enum { kNDict = 3 };
- virtual Bool_t MakeBranch();
- virtual Bool_t ReadDigits();
+ AliTRDdigitsManager();
+ AliTRDdigitsManager(const AliTRDdigitsManager &m);
+ virtual ~AliTRDdigitsManager();
+ AliTRDdigitsManager &operator=(const AliTRDdigitsManager &m);
+
+ virtual void CreateArrays();
+ virtual void Copy(TObject &m);
+ virtual Bool_t Open(const Char_t *file);
+ virtual Bool_t MakeBranch(const Char_t *file = 0);
+ virtual Bool_t MakeBranch(TTree *tree, const Char_t *file = 0);
+ void MakeTreeAndBranches(TFile *treeFile, Int_t iEvent);
+ virtual Bool_t ReadDigits(TTree *tree = 0);
virtual Bool_t WriteDigits();
virtual void SetRaw();
+ virtual void SetEvent(Int_t evt) { fEvent = evt; };
+ virtual void SetDebug(Int_t v = 1) { fDebug = v; };
+ virtual void SetSDigits(Int_t v = 1) { fSDigits = v; };
- virtual Bool_t IsRaw() { return fIsRaw; };
- virtual AliTRDsegmentArray *GetDigits() { return fDigits; };
- virtual AliTRDsegmentArray *GetDictionary(Int_t i) { return fDictionary[i]; };
-
- AliTRDdigit *GetDigit(Int_t row, Int_t col, Int_t time, Int_t det);
- Int_t GetTrack(Int_t track, Int_t row, Int_t col, Int_t time, Int_t det);
-
- inline AliTRDdataArrayI *GetDigits(Int_t det);
- inline AliTRDdataArrayI *GetDictionary(Int_t det, Int_t i);
- inline Int_t GetTrack(Int_t track, AliTRDdigit *Digit);
-
- protected:
-
- AliTRDsegmentArray *fDigits; //! Digits data Array
- AliTRDsegmentArray *fDictionary[kNDict]; //! Track dictionary data array
-
- Bool_t fIsRaw; // Flag indicating raw digits
-
- ClassDef(AliTRDdigitsManager,1) // Manages the TRD digits
+ virtual Bool_t IsRaw() const { return fIsRaw; };
+ static Int_t NDict() { return fgkNDict; };
-};
+ virtual AliTRDsegmentArray *GetDigits() const { return fDigits; };
+ virtual AliTRDsegmentArray *GetDictionary(Int_t i) const { return fDictionary[i]; };
-//_____________________________________________________________________________
-inline AliTRDdataArrayI *AliTRDdigitsManager::GetDigits(Int_t det)
-{
- //
- // Returns the digits array for one detector
- //
+ AliTRDdigit *GetDigit(Int_t row, Int_t col, Int_t time, Int_t det) const;
+ Int_t GetTrack(Int_t track, Int_t row, Int_t col
+ , Int_t time, Int_t det) const;
- return (AliTRDdataArrayI *) fDigits->At(det);
+ AliTRDdataArrayI *GetDigits(Int_t det) const;
+ AliTRDdataArrayI *GetDictionary(Int_t det, Int_t i) const;
+ Int_t GetTrack(Int_t track, AliTRDdigit *Digit) const;
+ Short_t GetDigitAmp(Int_t row, Int_t col, Int_t time, Int_t det) const;
-}
+ protected:
-//_____________________________________________________________________________
-inline AliTRDdataArrayI *AliTRDdigitsManager::GetDictionary(Int_t det, Int_t i)
-{
- //
- // Returns the dictionary for one detector
- //
+ static const Int_t fgkNDict; // Number of track dictionary arrays
- return (AliTRDdataArrayI *) fDictionary[i]->At(det);
+ Int_t fEvent; // Event number
-}
+ TFile *fFile; //! File containing the TRD digits tree
+ TTree *fTree; //! Tree for the digits arrays
-//_____________________________________________________________________________
-inline Int_t AliTRDdigitsManager::GetTrack(Int_t track, AliTRDdigit *Digit)
-{
- //
- // Returns the MC-track numbers from the dictionary for a given digit
- //
+ AliTRDsegmentArray *fDigits; //! Digits data array
+ AliTRDsegmentArray *fDictionary[kNDict]; //! Track dictionary data array
- Int_t row = Digit->GetRow();
- Int_t col = Digit->GetCol();
- Int_t time = Digit->GetTime();
- Int_t det = Digit->GetDetector();
+ Bool_t fIsRaw; // Flag indicating raw digits
+ Bool_t fSDigits; // Switch for the summable digits
+ Int_t fDebug; // Debug flag
- return GetTrack(track,row,col,time,det);
+ ClassDef(AliTRDdigitsManager,4) // Manages the TRD digits
-}
+};
#endif