X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=FMD%2FAliFMDBaseDA.h;h=2077edc0d981159cde3d5e3cccc7b15f4aa9e144;hb=3fa32df414366820a5cfd63be9c0d2071dff07e6;hp=df0192f8a7be9cd37c71a63348dccfa67cd54d0b;hpb=fb10ff3938d6bf9fcac8575f7aea8d4b25053ef7;p=u%2Fmrichter%2FAliRoot.git diff --git a/FMD/AliFMDBaseDA.h b/FMD/AliFMDBaseDA.h index df0192f8a7b..2077edc0d98 100644 --- a/FMD/AliFMDBaseDA.h +++ b/FMD/AliFMDBaseDA.h @@ -1,3 +1,4 @@ +// -*- mode: C++ -*- #ifndef ALIFMDBASEDA_H #define ALIFMDBASEDA_H @@ -7,13 +8,16 @@ * See cxx source for full Copyright notice */ // -//This class provides a base interface for the Detector Algorithms (DA) of the FMD. -//At least three implementations are needed: AliFMDPedestalDA, AliFMDGainDA and AliFMDPhysicsDA . -//These classes will provide the calibration data for the AliFMDPreprocessor to be used in the shuttle. -//The input for this class are raw data (AliRawReader) and the output is a comma-separated file -//(std::ofstream) that contains the values defined in the implementations of this class. +// This class provides a base interface for the Detector Algorithms +// (DA) of the FMD. At least three implementations are needed: +// AliFMDPedestalDA, AliFMDGainDA and AliFMDPhysicsDA . These classes +// will provide the calibration data for the AliFMDPreprocessor to be +// used in the shuttle. The input for this class are raw data +// (AliRawReader) and the output is a comma-separated file +// (std::ofstream) that contains the values defined in the +// implementations of this class. // -//Author: Hans Hjersing Dalsgaard, hans.dalsgaard@cern.ch +// Author: Hans Hjersing Dalsgaard, hans.dalsgaard@cern.ch // #include "TNamed.h" @@ -22,15 +26,17 @@ #include "TFile.h" #include "iostream" #include "fstream" - +#include "TString.h" #include "AliRawReader.h" #include "AliFMDDigit.h" #include "AliFMDParameters.h" - +#include "TArrayS.h" +class TDirectory; +class AliFMDRawReader; class AliFMDBaseDA: public TNamed { - public: +public: AliFMDBaseDA() ; AliFMDBaseDA(const AliFMDBaseDA & baseDA) ; // AliFMDBaseDA& operator = (const AliFMDBaseDA & baseDA) ; @@ -41,7 +47,7 @@ class AliFMDBaseDA: public TNamed { void SetSaveDiagnostics(Bool_t save) {fSaveHistograms = save;} void SetRequiredEvents(Int_t nEvents) {fRequiredEvents = nEvents;} Int_t GetRequiredEvents() {return fRequiredEvents ;} - protected: +protected: virtual void Init() {}; virtual void FillChannels(AliFMDDigit* ) {}; @@ -49,26 +55,49 @@ class AliFMDBaseDA: public TNamed { virtual void WriteHeaderToFile() {}; virtual void AddChannelContainer(TObjArray*, UShort_t, Char_t, UShort_t, UShort_t ) {}; virtual void FinishEvent() {}; - + virtual void Terminate(TFile* ) {}; Int_t GetCurrentEvent() {return fCurrentEvent;} static const UInt_t kBaseDDL = 3072; - Char_t* fDiagnosticsFilename; + //Char_t* fDiagnosticsFilename; + TString fDiagnosticsFilename; std::ofstream fOutputFile; std::ofstream fConditionsFile; Bool_t fSaveHistograms; TObjArray fDetectorArray; + + Int_t GetHalfringIndex(UShort_t, Char_t, UShort_t); + Int_t GetPulseSize(UShort_t det , + Char_t ring, + UShort_t board) {return fPulseSize.At(GetHalfringIndex(det,ring,board));} + Int_t GetPulseLength(UShort_t det, + Char_t ring, + UShort_t board) {return fPulseLength.At(GetHalfringIndex(det,ring,board));} + + const char* GetDetectorPath(UShort_t det, Bool_t full=kTRUE) const; + const char* GetRingPath(UShort_t det, Char_t ring, Bool_t full=kTRUE) const; + const char* GetSectorPath(UShort_t det, Char_t ring, UShort_t sec, + Bool_t full=kTRUE) const; + const char* GetStripPath(UShort_t det, Char_t ring, UShort_t sec, + UShort_t str, Bool_t full=kTRUE) const; - private: + + + TArrayS fPulseSize; + TArrayS fPulseLength; + +private: - void WriteConditionsData(); + void WriteConditionsData(AliFMDRawReader* fmdReader); void SetCurrentEvent(Int_t currentEvent) {fCurrentEvent = currentEvent; } - void InitContainer(); + void InitContainer(TDirectory* dir); Int_t fRequiredEvents; Int_t fCurrentEvent; - + + + ClassDef(AliFMDBaseDA,0) };