Changeset 16055 for trunk/FACT++/src/DataWriteFits.cc
- Timestamp:
- 05/22/13 22:40:10 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/FACT++/src/DataWriteFits.cc
r15628 r16055 32 32 //! @param h a pointer to the RUN_HEAD structure that contains the informations relative to this run 33 33 // 34 bool DataWriteFits::Open(const RUN_HEAD *h, const FAD::RunDescription &d)34 bool DataWriteFits::Open(const RUN_HEAD &h, const FAD::RunDescription &d) 35 35 { 36 36 if (fConv) … … 40 40 } 41 41 42 const int16_t realRoiTM = (h ->NroiTM >= 2*h->Nroi && h->Nroi<=512) ? h->Nroi : 0;42 const int16_t realRoiTM = (h.NroiTM >= 2*h.Nroi && h.Nroi<=512) ? h.Nroi : 0; 43 43 44 44 fFile.AddColumn('I', "EventNum"); … … 52 52 fFile.AddColumn('S', "StartCellData", NPIX); 53 53 fFile.AddColumn('S', "StartCellTimeMarker", NTMARK); 54 fFile.AddColumn('S', "Data", h ->NPix*h->Nroi);55 fFile.AddColumn('S', "TimeMarker", h ->NTm*realRoiTM);54 fFile.AddColumn('S', "Data", h.NPix*h.Nroi); 55 fFile.AddColumn('S', "TimeMarker", h.NTm*realRoiTM); 56 56 57 57 // Write length of physical pipeline (1024) 58 58 fConv = new Converter(Converter::ToFormat(fFile.GetColumnTypes())); 59 59 60 const size_t sz = (h ->NPix*h->Nroi + h->NTm*realRoiTM)*2;60 const size_t sz = (h.NPix*h.Nroi + h.NTm*realRoiTM)*2; 61 61 if (fConv->GetSize()-sz+4!=sizeof(EVENT)) 62 62 { … … 86 86 try 87 87 { 88 fFile.WriteKey("BLDVER", h ->Version, "Builder version");88 fFile.WriteKey("BLDVER", h.Version, "Builder version"); 89 89 fFile.WriteKey("RUNID", GetRunId(), "Run number"); 90 // fFile.WriteKey("RUNTYPE", h ->RunType, "Type of run");91 fFile.WriteKey("NBOARD", h ->NBoard, "Number of acquisition boards");92 fFile.WriteKey("NPIX", h ->NPix, "Number of pixels");93 fFile.WriteKey("NTMARK", h ->NTm, "Number of time marker channels");90 // fFile.WriteKey("RUNTYPE", h.RunType, "Type of run"); 91 fFile.WriteKey("NBOARD", h.NBoard, "Number of acquisition boards"); 92 fFile.WriteKey("NPIX", h.NPix, "Number of pixels"); 93 fFile.WriteKey("NTMARK", h.NTm, "Number of time marker channels"); 94 94 fFile.WriteKey("NCELLS", 1024, "Maximum number of slices per pixels"); 95 fFile.WriteKey("NROI", h ->Nroi, "Number of slices per pixels");95 fFile.WriteKey("NROI", h.Nroi, "Number of slices per pixels"); 96 96 fFile.WriteKey("NROITM", realRoiTM, "Number of slices per time-marker"); 97 97 98 const uint16_t realOffset = (h ->NroiTM > h->Nroi) ? h->NroiTM - 2*h->Nroi : 0;98 const uint16_t realOffset = (h.NroiTM > h.Nroi) ? h.NroiTM - 2*h.Nroi : 0; 99 99 fFile.WriteKey("TMSHIFT", realOffset, "Shift of the start of the time marker readout wrt to data"); 100 100 … … 119 119 // DAC 120 120 121 for (int i=0; i<h ->NBoard; i++)121 for (int i=0; i<h.NBoard; i++) 122 122 { 123 const PEVNT_HEADER &hh = h ->FADhead[i];123 const PEVNT_HEADER &hh = h.FADhead[i]; 124 124 125 125 // Header values whihc won't change during the run … … 133 133 134 134 // FIXME: Calculate average ref clock frequency 135 for (int i=0; i<h ->NBoard; i++)135 for (int i=0; i<h.NBoard; i++) 136 136 { 137 const PEVNT_HEADER &hh = h ->FADhead[i];137 const PEVNT_HEADER &hh = h.FADhead[i]; 138 138 139 139 if (hh.start_package_flag==0) … … 158 158 double avg = 0; 159 159 int cnt = 0; 160 for (int i=0; i<h ->NBoard; i++)160 for (int i=0; i<h.NBoard; i++) 161 161 { 162 const PEVNT_HEADER &hh = h ->FADhead[i];162 const PEVNT_HEADER &hh = h.FADhead[i]; 163 163 164 164 if (hh.start_package_flag==0) … … 198 198 //! @param e the pointer to the EVENT 199 199 // 200 bool DataWriteFits::WriteEvt(const EVENT *e)200 bool DataWriteFits::WriteEvt(const EVENT &e) 201 201 { 202 202 if (!fFile.AddRow()) 203 203 return false; 204 204 205 if (e ->TriggerType && !(e->TriggerType & FAD::EventHeader::kAll))205 if (e.TriggerType && !(e.TriggerType & FAD::EventHeader::kAll)) 206 206 fTriggerCounter[0]++; 207 else if ((e ->TriggerType&FAD::EventHeader::kPedestal) && !(e->TriggerType&FAD::EventHeader::kTIM))207 else if ((e.TriggerType&FAD::EventHeader::kPedestal) && !(e.TriggerType&FAD::EventHeader::kTIM)) 208 208 fTriggerCounter[1]++; 209 else if (e ->TriggerType & FAD::EventHeader::kLPext)209 else if (e.TriggerType & FAD::EventHeader::kLPext) 210 210 fTriggerCounter[2]++; 211 else if (e ->TriggerType & (FAD::EventHeader::kTIM|FAD::EventHeader::kPedestal))211 else if (e.TriggerType & (FAD::EventHeader::kTIM|FAD::EventHeader::kPedestal)) 212 212 fTriggerCounter[3]++; 213 else if (e ->TriggerType & FAD::EventHeader::kLPint)213 else if (e.TriggerType & FAD::EventHeader::kLPint) 214 214 fTriggerCounter[4]++; 215 else if (e ->TriggerType & FAD::EventHeader::kExt1)215 else if (e.TriggerType & FAD::EventHeader::kExt1) 216 216 fTriggerCounter[5]++; 217 else if (e ->TriggerType & FAD::EventHeader::kExt2)217 else if (e.TriggerType & FAD::EventHeader::kExt2) 218 218 fTriggerCounter[6]++; 219 219 else 220 220 fTriggerCounter[7]++; 221 221 222 memcpy(fTstop, &e ->PCTime, 2*sizeof(uint32_t));222 memcpy(fTstop, &e.PCTime, 2*sizeof(uint32_t)); 223 223 if (fTstart[0]==0) 224 224 memcpy(fTstart, fTstop, 2*sizeof(uint32_t)); 225 225 226 const int realRoiTM = (e ->RoiTM > e->Roi) ? e->Roi : 0;227 const size_t sz = sizeof(EVENT) + sizeof(e ->StartPix)*e->Roi+sizeof(e->StartTM)*realRoiTM; //ETIENNE from RoiTm to Roi228 229 const vector<char> data = fConv->ToFits(reinterpret_cast<const char*>( e)+4, sz-4);226 const int realRoiTM = (e.RoiTM > e.Roi) ? e.Roi : 0; 227 const size_t sz = sizeof(EVENT) + sizeof(e.StartPix)*e.Roi+sizeof(e.StartTM)*realRoiTM; //ETIENNE from RoiTm to Roi 228 229 const vector<char> data = fConv->ToFits(reinterpret_cast<const char*>(&e)+4, sz-4); 230 230 231 231 return fFile.WriteData(data.data(), data.size());
Note:
See TracChangeset
for help on using the changeset viewer.