-
Notifications
You must be signed in to change notification settings - Fork 494
Expand file tree
/
Copy pathHmpidDecodeRawFile.h
More file actions
63 lines (52 loc) · 1.77 KB
/
HmpidDecodeRawFile.h
File metadata and controls
63 lines (52 loc) · 1.77 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
// Copyright 2019-2020 CERN and copyright holders of ALICE O2.
// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders.
// All rights not expressly granted are reserved.
//
// This software is distributed under the terms of the GNU General Public
// License v3 (GPL Version 3), copied verbatim in the file "COPYING".
//
// In applying this license CERN does not waive the privileges and immunities
// granted to it by virtue of its status as an Intergovernmental Organization
// or submit itself to any jurisdiction.
///
/// \file HmpidDecodeRawFile.h
/// \author Antonio Franco - INFN Bari
/// \brief Derived Class for decoding Raw Data File stream
/// \version 1.0
/// \date 24 set 2020
#ifndef COMMON_HMPIDDECODERAWFILE_H_
#define COMMON_HMPIDDECODERAWFILE_H_
#include <ctype.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <unistd.h>
#include "HMPIDReconstruction/HmpidDecoder.h"
#define MAXFILENAMEBUFFER 512
#define MAXRAWFILEBUFFER RAWBLOCKDIMENSION_W * 4 + 8
namespace o2
{
namespace hmpid
{
class HmpidDecodeRawFile : public HmpidDecoder
{
public:
HmpidDecodeRawFile(int* EqIds, int* CruIds, int* LinkIds, int numOfEquipments);
HmpidDecodeRawFile(int numOfEquipments);
~HmpidDecodeRawFile();
bool setUpStream(void* InpuFileName, long Size);
private:
bool getBlockFromStream(uint32_t** streamPtr, uint32_t Size);
bool getHeaderFromStream(uint32_t** streamPtr);
bool getWordFromStream(uint32_t* word);
int fileExists(char* filewithpath);
void setPad(HmpidEquipment* eq, int col, int dil, int ch, uint16_t charge);
private:
FILE* fh;
char mInputFile[MAXFILENAMEBUFFER];
uint32_t mFileBuffer[MAXRAWFILEBUFFER];
};
} // namespace hmpid
} // namespace o2
#endif /* COMMON_HMPIDDECODERAWFILE_H_ */