]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - FMD/AliFMDBaseDA.h
This is the base class for the FMD Detector Algorithms. All FMD DAs will derive from...
[u/mrichter/AliRoot.git] / FMD / AliFMDBaseDA.h
diff --git a/FMD/AliFMDBaseDA.h b/FMD/AliFMDBaseDA.h
new file mode 100644 (file)
index 0000000..d156cc3
--- /dev/null
@@ -0,0 +1,75 @@
+#ifndef ALIFMDBASEDA_H
+#define ALIFMDBASEDA_H
+
+/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights
+ * reserved. 
+ *
+ * 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.
+//
+//Author: Hans Hjersing Dalsgaard, hans.dalsgaard@cern.ch
+//
+
+#include "TNamed.h"
+#include "TObjArray.h"
+#include "TClonesArray.h"
+#include "TFile.h"
+#include "iostream"
+#include "fstream"
+
+#include "AliRawReader.h"
+#include "AliFMDDigit.h"
+#include "AliFMDParameters.h"
+
+
+class AliFMDBaseDA: public TNamed {
+  
+ public:
+  AliFMDBaseDA() ;
+  AliFMDBaseDA(const AliFMDBaseDA & baseDA) ;
+  AliFMDBaseDA& operator = (const AliFMDBaseDA & baseDA) ; 
+  
+  ~AliFMDBaseDA() ;
+  
+  void Run(AliRawReader* fmdReader);
+  void SetSaveDiagnostics(Bool_t save) {fSaveHistograms = save;}
+  void SetRequiredEvents(Int_t nEvents) {fRequiredEvents = nEvents;}
+  Int_t GetRequiredEvents() {return fRequiredEvents ;}
+ protected:
+  
+  virtual void Init() = 0;
+  virtual void FillChannels(AliFMDDigit* ) = 0;
+  virtual void Analyse(UShort_t, Char_t, UShort_t, UShort_t ) = 0;
+  virtual void WriteHeaderToFile() = 0;
+  virtual void AddChannelContainer(TObjArray*, UShort_t, Char_t, UShort_t, UShort_t ) = 0;
+  virtual void FinishEvent() = 0;
+  
+  
+  Int_t GetCurrentEvent() {return fCurrentEvent;}
+  
+  static const UInt_t kBaseDDL = 3072;
+  Char_t* fDiagnosticsFilename;
+  std::ofstream fOutputFile;
+  Bool_t fSaveHistograms;
+  TObjArray fDetectorArray;
+  
+  
+ private:
+  
+  void SetCurrentEvent(Int_t currentEvent) {fCurrentEvent = currentEvent; }
+  void InitContainer();
+  Int_t fRequiredEvents;
+  Int_t fCurrentEvent;   
+   
+  ClassDef(AliFMDBaseDA,0)
+
+};
+#endif
+