HYDRA_development_version
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
hstart2hitfsim.h
Go to the documentation of this file.
1 #ifndef HSTART2HITFSIM_H
2 #define HSTART2HITFSIM_H
3 
4 #include "hreconstructor.h"
5 #include "hgeomvector.h"
6 #include <vector>
7 #include <algorithm>
8 
9 class HCategory;
10 class HIterator;
11 class HCategory;
12 class HStart2Hit;
13 class HStart2GeomPar;
14 class HStart2DigiPar;
15 class HSpecGeomPar;
16 
18 private:
19  //---------------------------------------------------------------
20  // define some auxiliary strutures
21  typedef struct celltrack { // stores all needed infos per cell
22  Float_t gtime; // GEANT time (used for sorting)
23  Int_t gtrack; // GEANT track number
24  Float_t geloss; // GEANT energy loss
25 
26  // Reset initial values
27  void reset() {
28  gtime = 10000.;
29  gtrack = -1;
30  geloss = 0.f;
31  }
32 
33  Bool_t static cmpTime(celltrack* a, celltrack* b) {
34  // sort by GEANT time in increasing order
35  return (a->gtime < b->gtime);
36  }
37  } celltrack;
38 
39  typedef struct {
40  // collection of all tracks per cell
41 
42  vector<celltrack*> ctracks; // all cell tracks
43 
44  void reset() { // Reset initial values. deletes vector
45  for (UInt_t i=0;i<ctracks.size();i++) { delete ctracks[i]; }
46  ctracks.clear();
47  }
48 
49  // Sort by increasing GEANT time
50  void sortTime(void) {
51  std::sort(ctracks.begin(),ctracks.end(),celltrack::cmpTime);
52  }
53 
54  } celldata;
55 
56  vector<celldata* > cellobjects; //! temporary working array for digitized data
57  void clearCellobjects();
58  //---------------------------------------------------------------
59 
60  HCategory* fCatHit; //! pointer to the hit data
61  Double_t fresolution; //! time resolution in ns
62  HCategory* fCatGeantStart; //! pointer to Start Geant data category
63  HIterator* iterGeantStart; //! iterator over catStartGeantRaw category
64  HCategory* fCatGeantKine; //! pointer to Geant kine category
65  HStart2GeomPar* fGeomPar; //! geometry parameters of Start detector
66  HStart2DigiPar* fDigiPar; //! digitization parameters
67  HSpecGeomPar* fSpecGeomPar; //! pointer to HSpecGeomPar parameter container
68  HGeomVector targetCenter; //! Lab position of target center
70 static Bool_t doGeantHit; //! switch (default true) : geant hit will be used.
71  // set kFALSE if geant input has start cat , but should not be used
72 public:
73  HStart2HitFSim(void);
74  HStart2HitFSim(const Text_t* name, const Text_t* title,Double_t resol=0.06);
75 
76  ~HStart2HitFSim(void);
78  static void setDoGeantHit(Bool_t doit) { doGeantHit = doit; }
79  void setResolution(Double_t res) { fresolution = res ; }
80 
81  Bool_t init(void);
82  Bool_t reinit(void);
83  Int_t execute(void);
84  Bool_t finalize(){return kTRUE;}
85 
86 private:
87  void initVar(void);
88  Bool_t setParameterContainers(void);
89  void digitize(HStart2Hit*);
90 
91 public:
92  ClassDef(HStart2HitFSim, 0) // Hit finder for START2 detector
93 };
94 
95 #endif /* !HSTART2HITFSIM_H */
96 
HIterator * iterGeantStart
pointer to Start Geant data category
HStart2DigiPar * fDigiPar
geometry parameters of Start detector
HStart2HitFSim(void)
switch (default true) : geant hit will be used.
static HStart2HitFSim * fHitFinder
Lab position of target center.
HStart2GeomPar * fGeomPar
pointer to Geant kine category
void initVar(void)
vector< celldata * > cellobjects
vector< celltrack * > ctracks
static Bool_t doGeantHit
Bool_t setParameterContainers(void)
HSpecGeomPar * fSpecGeomPar
digitization parameters
Bool_t reinit(void)
struct HStart2HitFSim::celltrack celltrack
static void setDoGeantHit(Bool_t doit)
HCategory * fCatGeantKine
iterator over catStartGeantRaw category
void clearCellobjects()
temporary working array for digitized data
void digitize(HStart2Hit *)
static Bool_t cmpTime(celltrack *a, celltrack *b)
static HStart2HitFSim * getHitFinder()
Int_t execute(void)
void setResolution(Double_t res)
Bool_t init(void)
HCategory * fCatGeantStart
time resolution in ns
Double_t fresolution
pointer to the hit data
HCategory * fCatHit
Bool_t finalize()
HGeomVector targetCenter
pointer to HSpecGeomPar parameter container