]> git.uio.no Git - u/mrichter/AliRoot.git/blob - RALICE/icepack/iceconvert/IceF2k.h
07-jun-2007 GdV OM readout type also updated from the data contents in IceRoot.cxx.
[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 "TObjString.h"
13 #include "TObjArray.h"
14 #include "TDatabasePDG.h"
15
16 #include "AliJob.h"
17 #include "AliObjMatrix.h"
18
19 #include "IceAOM.h"
20 #include "IceEvent.h"
21
22 #include "rdmc.h"
23
24 class IceF2k : public AliJob
25 {
26  public :
27   IceF2k(const char* name="IceF2k",const char* title=""); // Constructor
28   virtual ~IceF2k();                                      // Destructor
29   void SetMaxEvents(Int_t n);                             // Set maximum number of events to be processed
30   void SetPrintFreq(Int_t f);                             // Set printfrequency to provide info every f events
31   void SetSplitLevel(Int_t split);                        // Set split level for the produced ROOT data file
32   void SetBufferSize(Int_t bsize);                        // Set buffersize for the produced ROO data file
33   void SetInputFile(TString name);                        // Set name of F2K input file (obsolete)
34   void AddInputFile(TString name);                        // Add name of F2K input file to the list
35   void SetOutputFile(TFile* ofile);                       // Set output file for the ROOT data structures       
36   void SetOutputFile(TString name);                       // Create output file for the ROOT data structures
37   void SetMcToffset(Float_t toffset);                     // Set user defined time offset for MC data
38   void SelectMcTracks(Int_t mode);                        // User selection of MC tracks to be stored
39   TFile* GetOutputFile();                                 // Provide pointer to the ROOT output file
40   TDatabasePDG* GetPDG();           // Provide pointer to the PDG database
41   AliObjMatrix* GetOMdbase();       // Provide pointer to the OM geometry, calib. etc... database
42   AliDevice* GetFitdefs();          // Provide pointer to the Fit definition parameters
43   AliDevice* GetTrigdefs();         // Provide pointer to the Fit definition parameters
44   virtual void Exec(Option_t* opt); // Perform the format conversion
45
46  protected :
47   Int_t fSplit;        // The split level of the produced ROOT data file
48   Int_t fBsize;        // The buffersize of the produced ROOT data file
49   Int_t fMaxevt;       // The maximum number of events to be processed
50   Int_t fPrintfreq;    // The event info printing frequency
51   TObjArray* fInfiles; // Names of all the F2K input files
52   TFile* fOutfile;     // The ROOT output file
53
54   TDatabasePDG* fPdg;   // Database with PDG information
55   AliObjMatrix* fOmdb;  // Database of all OM devices with their geometry, calib. etc... data
56   AliDevice* fFitdefs;  // Fit definitions as indicated in the header of the F2000 input file
57   AliDevice* fTrigdefs; // Trigger definitions as indicated in the header of the F2000 input file
58   Float_t fToffset;     // Trigger time offset which might have been introduced during filtering
59   Float_t fMctoffset;   // Trigger time offset which might have been introduced during MC generation
60   Int_t fMctracks;      // MC tracks selection flag
61
62   void FillOMdbase();   // Fill geometry and calib. parameters of all devices
63   void SetFitdefs();    // Set the fit definitions as used in the F2000 input file
64   void SetTrigdefs();   // Set the trigger definitions as used in the F2000 input file
65   void PutMcTracks();   // Put the MC tracks from the F2000 file into the IcePack structure
66   void PutRecoTracks(); // Put the reconstructed tracks from the F2000 file into the IcePack structure
67   void PutHits();       // Put the hits and waveforms from the F2000 file into the IcePack structure
68   void PutTrigger();    // Put the trigger information from the F2000 file into the IcePack structure
69
70   mcfile* fInput;  //! Structure holding the input file characteristics
71   array   fHeader; //! Structure holding the file header info
72   mevt    fEvent;  //! Structure holding the actual event data (hits, tracks, etc...)
73
74  ClassDef(IceF2k,7) // Job for conversion of F2K data into IceEvent physics event structures.
75 };
76 #endif