Hall-D Software  alpha
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
DTOFHit_factory.h
Go to the documentation of this file.
1 // $Id$
2 //
3 // File: DTOFHit_factory.h
4 // Created: Wed Aug 7 09:30:17 EDT 2013
5 // Creator: davidl (on Darwin harriet.jlab.org 11.4.2 i386)
6 //
7 
8 #ifndef _DTOFHit_factory_
9 #define _DTOFHit_factory_
10 
11 #include <vector>
12 #include <map>
13 #include <utility>
14 using namespace std;
15 
16 #include <JANA/JFactory.h>
17 #include "DTOFDigiHit.h"
18 #include "DTOFTDCDigiHit.h"
19 #include "DTOFHit.h"
20 #include "DTOFGeometry.h"
21 #include "TTAB/DTranslationTable.h"
22 #include "TTAB/DTTabUtilities.h"
23 #include <DAQ/Df250PulseData.h>
24 using namespace jana;
25 
26 
27 // store constants so that they can be accessed by plane/bar number
28 // each entry holds a pair of value for the two different bar ends
29 // [whatever the conventional choice is]
30 typedef vector< vector< pair<double,double> > > tof_digi_constants_t;
31 
32 
33 class DTOFHit_factory:public jana::JFactory<DTOFHit>{
34  public:
37 
38  // geometry info - maybe redundant?
39  const static int TOF_MAX_CHANNELS = 176;
42 
43  // overall scale factors
44  double a_scale;
45  double t_scale;
48 
49  // Timing Cut Values
50  double TimeCenterCut;
51  double TimeWidthCut;
52 
53  // ADC to Energy conversion for individual PMT channels
54  vector<double> adc2E;
55 
56  // PARAMETERS:
61 
66 
67  vector<vector<double> >timewalk_parameters;
68  vector<vector<double> >timewalk_parameters_AMP;
69  vector<vector<double> >timewalk_parameters_NEW;
70  vector<vector<double> >timewalk_parameters_NEWAMP;
71 
72 
73  DTOFHit* FindMatch(int plane, int bar, int end, double T);
74 
75  const double GetConstant( const tof_digi_constants_t &the_table,
76  const int in_plane, const int in_bar,
77  const int in_end ) const;
78  const double GetConstant( const tof_digi_constants_t &the_table,
79  const DTOFDigiHit *the_digihit) const;
80  const double GetConstant( const tof_digi_constants_t &the_table,
81  const DTOFHit *the_hit) const;
82  const double GetConstant( const tof_digi_constants_t &the_table,
83  const DTOFTDCDigiHit *the_digihit) const;
84  //const double GetConstant( const tof_digi_constants_t &the_table,
85  // const DTranslationTable *ttab,
86  // const int in_rocid, const int in_slot, const int in_channel) const;
87 
88 
89  private:
90  jerror_t init(void);
91  jerror_t brun(jana::JEventLoop *eventLoop, int32_t runnumber);
92  jerror_t evnt(jana::JEventLoop *eventLoop, uint64_t eventnumber);
93  jerror_t erun(void);
94  jerror_t fini(void);
95 
96  void FillCalibTable(tof_digi_constants_t &table, vector<double> &raw_table,
97  const DTOFGeometry &tofGeom);
98 
99  double CalcWalkCorrIntegral(DTOFHit* hit);
100  double CalcWalkCorrAmplitude(DTOFHit* hit);
101  double CalcWalkCorrNEW(DTOFHit* hit);
102  double CalcWalkCorrNEWAMP(DTOFHit* hit);
103 
104 
106 };
107 
108 #endif // _DTOFHit_factory_
109 
vector< vector< pair< double, double > > > tof_digi_constants_t
vector< vector< double > > timewalk_parameters_NEW
vector< vector< double > > timewalk_parameters
vector< vector< double > > timewalk_parameters_AMP
tof_digi_constants_t adc_time_offsets
vector< double > adc2E
tof_digi_constants_t tdc_time_offsets
double DELTA_T_ADC_TDC_MAX
tof_digi_constants_t adc_gains
File: DTOFHit.h Created: Tue Jan 18 16:15:26 EST 2011 Creator: B. Zihlmann Purpose: Container class t...
Definition: DTOFHit.h:16
vector< vector< double > > timewalk_parameters_NEWAMP
tof_digi_constants_t adc_pedestals
double tdc_adc_time_offset