NSCL DDAS  1.0
Support for XIA DDAS at the NSCL
 All Classes Files Functions Variables Macros Pages
Detector.h
1 #ifndef DETECTOR_H_
2 #define DETECTOR_H_
3 #include <iostream>
4 #include <fstream>
5 #include <stdlib.h>
6 #include <vector>
7 #include "pixie16app_defs.h"
8 #include "pixie16app_export.h"
9 #include "Rtypes.h"
10 #define FILENAME_STR_MAXLEN 256
11 #define MAX_NUM_PIXIE16_MODULES 24
12 #define TOTAL_PIXIE16_VARIANTS 8
13 
14 class Detector
15 {
16 public:
17  Detector();
18  virtual ~Detector();
19  int ExitSystem();
20  void Boot();
21  bool IsBooted();
22  void SetSetFile(const char *newsetfile);
23  int Syncronise ();
24  int StartLSMRun (int continue_run);
25  int StartRun (int contine_run, int modnum);
26  int StartBaselineRun (int contine_run, int modnum);
27  int RunStatus ();
28  int Write2FileLSM(char *name);
29  int AcquireADCTrace (unsigned short *trace, unsigned long size,
30  unsigned short module, unsigned short ChanNum);
31 
32  unsigned short NumModules;
33 
34  unsigned short GetNumberModules() const {return NumModules;}
35  std::vector<unsigned short> GetPXISlotMap() const;
36  unsigned short GetModuleMSPS(unsigned int i) {return ModADCMSPS[i];}
37 
38 // MultiplicityMask QueryMultiplicity(UShort_t module, UShort_t ChanNum);
39 // void SetMultiplicityMask(UShort_t module, UShort_t ChanNum, const MultiplicityMask& mask);
40 
41 // Double_t QueryCoincidenceTimeWindow(UShort_t module, UShort_t chanNum);
42 
43 private:
44 
45  bool newset;
46  bool booted;
47  unsigned short *PXISlotMap;
48  unsigned short OfflineMode;
49  //char ComFPGAConfigFile[FILENAME_STR_MAXLEN];
50  //char SPFPGAConfigFile[FILENAME_STR_MAXLEN];
51  //char TrigFPGAConfigFile[FILENAME_STR_MAXLEN];
52  //char DSPCodeFile[FILENAME_STR_MAXLEN];
53  char DSPParFile[FILENAME_STR_MAXLEN];
54  //char DSPVarFile[FILENAME_STR_MAXLEN];
55 
56  char ComFPGAConfigFile_RevBCD[FILENAME_STR_MAXLEN];
57  char ComFPGAConfigFile_RevF_100MHz_14Bit[FILENAME_STR_MAXLEN];
58  char ComFPGAConfigFile_RevF_100MHz_16Bit[FILENAME_STR_MAXLEN];
59  char ComFPGAConfigFile_RevF_250MHz_12Bit[FILENAME_STR_MAXLEN];
60  char ComFPGAConfigFile_RevF_250MHz_14Bit[FILENAME_STR_MAXLEN];
61  char ComFPGAConfigFile_RevF_250MHz_16Bit[FILENAME_STR_MAXLEN];
62  char ComFPGAConfigFile_RevF_500MHz_12Bit[FILENAME_STR_MAXLEN];
63  char ComFPGAConfigFile_RevF_500MHz_14Bit[FILENAME_STR_MAXLEN];
64 
65  char SPFPGAConfigFile_RevBCD[FILENAME_STR_MAXLEN];
66  char SPFPGAConfigFile_RevF_100MHz_14Bit[FILENAME_STR_MAXLEN];
67  char SPFPGAConfigFile_RevF_100MHz_16Bit[FILENAME_STR_MAXLEN];
68  char SPFPGAConfigFile_RevF_250MHz_12Bit[FILENAME_STR_MAXLEN];
69  char SPFPGAConfigFile_RevF_250MHz_14Bit[FILENAME_STR_MAXLEN];
70  char SPFPGAConfigFile_RevF_250MHz_16Bit[FILENAME_STR_MAXLEN];
71  char SPFPGAConfigFile_RevF_500MHz_12Bit[FILENAME_STR_MAXLEN];
72  char SPFPGAConfigFile_RevF_500MHz_14Bit[FILENAME_STR_MAXLEN];
73 
74  char DSPCodeFile_RevBCD[FILENAME_STR_MAXLEN];
75  char DSPCodeFile_RevF_100MHz_14Bit[FILENAME_STR_MAXLEN];
76  char DSPCodeFile_RevF_100MHz_16Bit[FILENAME_STR_MAXLEN];
77  char DSPCodeFile_RevF_250MHz_12Bit[FILENAME_STR_MAXLEN];
78  char DSPCodeFile_RevF_250MHz_14Bit[FILENAME_STR_MAXLEN];
79  char DSPCodeFile_RevF_250MHz_16Bit[FILENAME_STR_MAXLEN];
80  char DSPCodeFile_RevF_500MHz_12Bit[FILENAME_STR_MAXLEN];
81  char DSPCodeFile_RevF_500MHz_14Bit[FILENAME_STR_MAXLEN];
82 
83  char DSPVarFile_RevBCD[FILENAME_STR_MAXLEN];
84  char DSPVarFile_RevF_100MHz_14Bit[FILENAME_STR_MAXLEN];
85  char DSPVarFile_RevF_100MHz_16Bit[FILENAME_STR_MAXLEN];
86  char DSPVarFile_RevF_250MHz_12Bit[FILENAME_STR_MAXLEN];
87  char DSPVarFile_RevF_250MHz_14Bit[FILENAME_STR_MAXLEN];
88  char DSPVarFile_RevF_250MHz_16Bit[FILENAME_STR_MAXLEN];
89  char DSPVarFile_RevF_500MHz_12Bit[FILENAME_STR_MAXLEN];
90  char DSPVarFile_RevF_500MHz_14Bit[FILENAME_STR_MAXLEN];
91 
92  unsigned short ModRev[MAX_NUM_PIXIE16_MODULES]; // module revision in hex format (NSCL had D and F modules
93  unsigned short ModADCBits[MAX_NUM_PIXIE16_MODULES]; // adc bits of a module
94  unsigned short ModADCMSPS[MAX_NUM_PIXIE16_MODULES]; // sampling rate of a module
95  unsigned int ModSerNum[MAX_NUM_PIXIE16_MODULES]; // module serial number
96 
97  char Pixie16_Com_FPGA_File[FILENAME_STR_MAXLEN];
98  char Pixie16_SP_FPGA_File[FILENAME_STR_MAXLEN];
99  char Pixie16_DSP_Code_File[FILENAME_STR_MAXLEN];
100  char Pixie16_DSP_Var_File[FILENAME_STR_MAXLEN];
101  char Pixie16_Trig_FPGA_File[FILENAME_STR_MAXLEN];
102 
103  bool ReadConfigFile (const char *config = ".cfgPixie");
104  bool ReadFirmwareVersionFile (const char *config = "DDASFirmwareVersions.txt");
105  bool BootSystem (unsigned short NumModules, unsigned short *PXISlotMap);
106 
107  //get the sampling frequency of a particular module
108 };
109 
110 #endif /*DETECTOR_H_*/