ROOT logo
#ifndef HTOFDIGITIZER_H
#define HTOFDIGITIZER_H
using namespace std;
#include "hreconstructor.h"
#include <iostream> 
#include <iomanip>
#include "hlocation.h"
#include "hgeanttof.h"
#include "TNtuple.h"
#include "TFile.h"
#include "TString.h"
class TF1;
class HIterator;
class HCategory;
class HLinearCategory;
class HTofDigiPar;
class HTofCalPar;
class HTofWalkPar;


class HTofDigitizer : public HReconstructor {

private:
  HLocation fLoc;                       //! Location for new object
  HCategory* fGeantCat;                 //! Pointer to Geant data category
  HLinearCategory* fGeantKineCat;       //! Pointer to GeantKine data category
  HCategory* fRawCat;                   //! Pointer to raw data category
  HCategory* fRawCatTmp;                //! Pointer to tmp raw data category
  HTofDigiPar *fDigiPar;                //! Digitization parameters
  HTofWalkPar *fTofWalkPar;             //! walk correction parameters
  HTofCalPar *fTofCalPar;               //! cal parameters
  HIterator* iterGeant;                 //! Iterator over GeantCell category
  HIterator* iterTofRaw;                //! Iterator over HTofRawSim category
  HIterator* iterTofRawTmp;             //! Iterator over tmp HTofRawSim category
  static Float_t timeResZero;           //! hardwired resolotion of tof (240 ps)
  //--------------------------------------------------------------------------
  Int_t storeFirstTrack;         //! flag:
                                 //        0  = realistic (secondaries included)
                                 //        1 primary particle is stored
                                 //        2 (default) the track number entering the tof in SAME SECTOR is stored , not the
                                 //          secondaries created in TOF itself (delta electrons etc)
                                 //        3 as 2 but in SAME MODULE
                                 //        4 as 2 but condition on SAME ROD
  Bool_t debug;                  //! change stored tracknumbers (when storeFirstTrack!=0)
  TNtuple* out;                  //! ntuple pointer
  TFile*   outFile;              //! output file pointer
  static HTofDigitizer* pTofDigi;//! pointer to this
  Bool_t useOld;                 //! flag: kTRUE:use old execute function (before embedding)

#define MAXCHRGCH    10000
  //--------------------------------------------------------------------------

  Int_t findFirstHitInTof(HGeantTof* pOld,HGeantTof** pNew,Int_t* count);
  void  fillNtuple       (HGeantTof* pOld,HGeantTof*  pNew,Int_t count);
  void  fillArray();
  void  doFinalCheckOnArray();
  void  fillOutput();
public:
  HTofDigitizer(const Text_t* name="HTofDigitizer",const Text_t* title="HTofDigitizer");
  ~HTofDigitizer(void);
  Bool_t initParContainer();
  Bool_t init(void);
  Bool_t finalize(void);
  Int_t  execute(void);
  Int_t  executeOld(void);
  static HTofDigitizer* getTofDigtizer(){return pTofDigi;}
  void   setStoreFirstTrack(Int_t flag) {storeFirstTrack=flag;}
  void   setDebug(Bool_t flag)          {debug=flag;}
  void   setOutputFile(TString outname="");
  void   setUseOld(Bool_t flag)         {useOld=flag;}
  static void setTimeResolution(Float_t res=0.240) {timeResZero=res;}
public:
  ClassDef(HTofDigitizer,0) //Digitizer of TOF data.
};

#endif









 htofdigitizer.h:1
 htofdigitizer.h:2
 htofdigitizer.h:3
 htofdigitizer.h:4
 htofdigitizer.h:5
 htofdigitizer.h:6
 htofdigitizer.h:7
 htofdigitizer.h:8
 htofdigitizer.h:9
 htofdigitizer.h:10
 htofdigitizer.h:11
 htofdigitizer.h:12
 htofdigitizer.h:13
 htofdigitizer.h:14
 htofdigitizer.h:15
 htofdigitizer.h:16
 htofdigitizer.h:17
 htofdigitizer.h:18
 htofdigitizer.h:19
 htofdigitizer.h:20
 htofdigitizer.h:21
 htofdigitizer.h:22
 htofdigitizer.h:23
 htofdigitizer.h:24
 htofdigitizer.h:25
 htofdigitizer.h:26
 htofdigitizer.h:27
 htofdigitizer.h:28
 htofdigitizer.h:29
 htofdigitizer.h:30
 htofdigitizer.h:31
 htofdigitizer.h:32
 htofdigitizer.h:33
 htofdigitizer.h:34
 htofdigitizer.h:35
 htofdigitizer.h:36
 htofdigitizer.h:37
 htofdigitizer.h:38
 htofdigitizer.h:39
 htofdigitizer.h:40
 htofdigitizer.h:41
 htofdigitizer.h:42
 htofdigitizer.h:43
 htofdigitizer.h:44
 htofdigitizer.h:45
 htofdigitizer.h:46
 htofdigitizer.h:47
 htofdigitizer.h:48
 htofdigitizer.h:49
 htofdigitizer.h:50
 htofdigitizer.h:51
 htofdigitizer.h:52
 htofdigitizer.h:53
 htofdigitizer.h:54
 htofdigitizer.h:55
 htofdigitizer.h:56
 htofdigitizer.h:57
 htofdigitizer.h:58
 htofdigitizer.h:59
 htofdigitizer.h:60
 htofdigitizer.h:61
 htofdigitizer.h:62
 htofdigitizer.h:63
 htofdigitizer.h:64
 htofdigitizer.h:65
 htofdigitizer.h:66
 htofdigitizer.h:67
 htofdigitizer.h:68
 htofdigitizer.h:69
 htofdigitizer.h:70
 htofdigitizer.h:71
 htofdigitizer.h:72
 htofdigitizer.h:73
 htofdigitizer.h:74
 htofdigitizer.h:75
 htofdigitizer.h:76
 htofdigitizer.h:77
 htofdigitizer.h:78
 htofdigitizer.h:79
 htofdigitizer.h:80
 htofdigitizer.h:81
 htofdigitizer.h:82
 htofdigitizer.h:83
 htofdigitizer.h:84
 htofdigitizer.h:85