17-jun-2005 NvE New class AliJob introduced to provide a flexible (physics) analysis...
[u/mrichter/AliRoot.git] / RALICE / icepack / iceconvert / IceF2k.h
1 #ifndef IceF2k_h
2 #define IceF2k_h
3
4 // Copyright(c) 2003, IceCube Experiment at the South Pole, All rights reserved.
5 // See cxx source for full Copyright notice.
6
7 // $Id$
8
9 #include "TFile.h"
10 #include "TTree.h"
11 #include "TString.h"
12 #include "TDatabasePDG.h"
13
14 #include "AliJob.h"
15 #include "AliObjMatrix.h"
16
17 #include "IceAOM.h"
18 #include "IceEvent.h"
19
20 #include "rdmc.h"
21
22 class IceF2k : public AliJob
23 {
24  public :
25   IceF2k(const char* name="IceF2k",const char* title=""); // Constructor
26   virtual ~IceF2k();                                      // Destructor
27   void SetMaxEvents(Int_t n);                             // Set maximum number of events to be processed
28   void SetPrintFreq(Int_t f);                             // Set printfrequency to provide info every f events
29   void SetSplitLevel(Int_t split);                        // Set split level for the produced ROOT data file
30   void SetBufferSize(Int_t bsize);                        // Set buffersize for the produced ROO data file
31   void SetInputFile(TString name);                        // Set name of F2K input file
32   void SetOutputFile(TFile* ofile);                       // Set output file for the ROOT data structures           
33   TDatabasePDG* GetPDG();           // Provide pointer to the PDG database
34   AliObjMatrix* GetOMdbase();       // Provide pointer to the OM geometry, calib. etc... database
35   AliDevice* GetFitdefs();          // Provide pointer to the Fit definition parameters
36   virtual void Exec(Option_t* opt); // Perform the format conversion
37
38  protected :
39   Int_t fSplit;     // The split level of the produced ROOT data file
40   Int_t fBsize;     // The buffersize of the produced ROOT data file
41   Int_t fMaxevt;    // The maximum number of events to be processed
42   Int_t fPrintfreq; // The event info printing frequency
43   TString fInfile;  // Name of the F2K input file
44   TFile* fOutfile;  // The ROOT output file
45
46   TDatabasePDG* fPdg;  // Database with PDG information
47   AliObjMatrix* fOmdb; // Database of all OM devices with their geometry, calib. etc... data
48   AliDevice* fFitdefs; // Fit definitions as indicated in the header of the F2000 input file
49
50   void FillOMdbase();   // Fill geometry and calib. parameters of all devices
51   void SetFitdefs();    // Set the fit definitions as used in the F2000 input file
52   void PutMcTracks();   // Put the MC tracks from the F2000 file into the IcePack structure
53   void PutRecoTracks(); // Put the reconstructed tracks from the F2000 file into the IcePack structure
54   void PutHits();       // Put the hits and waveforms from the F2000 file into the IcePack structure
55
56   mcfile* fInput;  //! Structure holding the input file characteristics
57   array   fHeader; //! Structure holding the file header info
58   mevt    fEvent;  //! Structure holding the actual event data (hits, tracks, etc...)
59
60  ClassDef(IceF2k,2) // Job for conversion of F2K data into IceEvent physics event structures.
61 };
62 #endif