X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=TRD%2FAliTRDdigitsManager.h;h=89ffbe45bba20978a95fc2e4fee38d6b0b69ad46;hb=ab5021391b12a712c404515ae9367b5164025eed;hp=da5d8664476bc2f5f38f79869ecea1138c759748;hpb=9d0b222bc6376e05348b5d319997f64ce5ddfc73;p=u%2Fmrichter%2FAliRoot.git diff --git a/TRD/AliTRDdigitsManager.h b/TRD/AliTRDdigitsManager.h index da5d8664476..89ffbe45bba 100644 --- a/TRD/AliTRDdigitsManager.h +++ b/TRD/AliTRDdigitsManager.h @@ -1,94 +1,100 @@ -#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 */ -/* $Id: AliTRDdigitsManager.h,v */ +/* $Id$ */ ///////////////////////////////////////////////////////////// // Manages the TRD digits // ///////////////////////////////////////////////////////////// -#include "TObject.h" +#include -#include "AliTRDsegmentArray.h" -#include "AliTRDdataArrayI.h" -#include "AliTRDdigit.h" - -const Int_t kNDict = 3; +class TFile; +class TTree; +class TBranch; +class AliTRDdigit; +class AliTRDSignalIndex; +class AliTRDarrayADC; +class AliTRDarraySignal; +class AliTRDarrayDictionary; +class AliTRDdigitsParam; class AliTRDdigitsManager : public TObject { public: - AliTRDdigitsManager(); - ~AliTRDdigitsManager(); + enum { kNDict = 3 }; - virtual Bool_t MakeBranch(); - virtual Bool_t ReadDigits(); - virtual Bool_t WriteDigits(); + AliTRDdigitsManager(Bool_t rawRec = kFALSE); //if true digitsmanager uses only one entry in the TObjectArrays + AliTRDdigitsManager(const AliTRDdigitsManager &m); + virtual ~AliTRDdigitsManager(); + AliTRDdigitsManager &operator=(const AliTRDdigitsManager &m); - virtual void SetRaw(); + virtual void Copy(TObject &m) const; - virtual Bool_t IsRaw() { return fIsRaw; }; - virtual AliTRDsegmentArray *GetDigits() { return fDigits; }; - virtual AliTRDsegmentArray *GetDictionary(Int_t i) { return fDictionary[i]; }; + virtual void CreateArrays(); + void ClearArrays(Int_t det); + virtual Bool_t BuildIndexes(Int_t det); - 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); + virtual Bool_t MakeBranch(TTree * const tree); + virtual Bool_t ReadDigits(TTree * consttree); + virtual Bool_t WriteDigits(); - inline AliTRDdataArrayI *GetDigits(Int_t det); - inline AliTRDdataArrayI *GetDictionary(Int_t det, Int_t i); - inline Int_t GetTrack(Int_t track, AliTRDdigit *Digit); + virtual void SetEvent(Int_t evt) { fEvent = evt; }; + virtual void SetSDigits(Int_t v = 1) { fHasSDigits = v; }; + virtual void SetUseDictionaries(Bool_t kval) { fUseDictionaries = kval; }; + + virtual Bool_t UsesDictionaries() const { return fUseDictionaries; }; + virtual Bool_t HasSDigits() const { return fHasSDigits; }; + static Int_t NDict() { return fgkNDict; }; + + virtual TObjArray *GetDigits() const { return fDigits; }; + virtual TObjArray *GetDictionary(Int_t i) const { return fDict[i]; }; + + 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; + + AliTRDarrayADC *GetDigits(Int_t det) const; + AliTRDarraySignal *GetSDigits(Int_t det) const; + AliTRDarrayDictionary *GetDictionary(Int_t det, Int_t i) const; + AliTRDdigitsParam *GetDigitsParam() const { return fDigitsParam; }; + AliTRDSignalIndex *GetIndexes(Int_t det); + TObjArray *GetIndexes() const { return fSignalIndexes; }; + + void RemoveDigits(Int_t det); + void RemoveDictionaries(Int_t det); + void RemoveIndexes(Int_t det); + void ClearIndexes(Int_t det); + + Int_t GetTrack(Int_t track, const AliTRDdigit * const digit) const; + Short_t GetDigitAmp(Int_t row, Int_t col, Int_t time, Int_t det) const; + UChar_t GetPadStatus(Int_t row, Int_t col, Int_t time, Int_t det) const; + + Bool_t LoadArrayDigits(); + Bool_t LoadArrayDict(); + Bool_t LoadDigitsParam(); + Bool_t StoreArrayDigits(); + Bool_t StoreArrayDict(); + Bool_t StoreDigitsParam(); 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 + + static const Int_t fgkNDict; // Number of track dictionary arrays + Int_t fEvent; // Event number + TTree *fTree; //! Tree for the digits arrays + TObjArray *fDigits; // Digits data array + TObjArray *fDict[kNDict]; // Track dictionary data array + Bool_t fHasSDigits; // Switch for the summable digits + TObjArray *fSignalIndexes; // Provides access to the active pads and tbins + Bool_t fUseDictionaries; // Use dictionaries or not (case of real data) + Int_t fDets; // No of Detectors + Bool_t fRawRec; // Reconstruct from raw files? If its kTRUE then the TObjArrays have only one entry. + AliTRDdigitsParam *fDigitsParam; // Parameters of the digits + + ClassDef(AliTRDdigitsManager,8) // Manages the TRD digits }; - -//_____________________________________________________________________________ -inline AliTRDdataArrayI *AliTRDdigitsManager::GetDigits(Int_t det) -{ - // - // Returns the digits array for one detector - // - - return (AliTRDdataArrayI *) fDigits->At(det); - -} - -//_____________________________________________________________________________ -inline AliTRDdataArrayI *AliTRDdigitsManager::GetDictionary(Int_t det, Int_t i) -{ - // - // Returns the dictionary for one detector - // - - return (AliTRDdataArrayI *) fDictionary[i]->At(det); - -} - -//_____________________________________________________________________________ -inline Int_t AliTRDdigitsManager::GetTrack(Int_t track, AliTRDdigit *Digit) -{ - // - // Returns the MC-track numbers from the dictionary for a given digit - // - - Int_t row = Digit->GetRow(); - Int_t col = Digit->GetCol(); - Int_t time = Digit->GetTime(); - Int_t det = Digit->GetDetector(); - - return GetTrack(track,row,col,time,det); - -} - #endif