Skip to content

Commit 1669a2a

Browse files
committed
fix:Problem with Califa WRs
Minor change Final modification Another check
1 parent 4da5feb commit 1669a2a

2 files changed

Lines changed: 30 additions & 22 deletions

File tree

r3bsource/califa/R3BWhiterabbitCalifaReader.cxx

Lines changed: 18 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,10 @@ extern "C"
3333

3434
R3BWhiterabbitCalifaReader::R3BWhiterabbitCalifaReader(EXT_STR_h101_WRCALIFA* data,
3535
size_t offset,
36-
UInt_t whiterabbit_id1,
37-
UInt_t whiterabbit_id2,
38-
UInt_t whiterabbit_id3,
39-
UInt_t whiterabbit_id4)
36+
uint32_t whiterabbit_id1,
37+
uint32_t whiterabbit_id2,
38+
uint32_t whiterabbit_id3,
39+
uint32_t whiterabbit_id4)
4040
: R3BReader("R3BWhiterabbitCalifaReader")
4141
, fData(data)
4242
, fOffset(offset)
@@ -72,7 +72,7 @@ Bool_t R3BWhiterabbitCalifaReader::Init(ext_data_struct_info* a_struct_info)
7272
// Look for the R3BEventHeader
7373
FairRootManager* frm = FairRootManager::Instance();
7474
fEventHeader = dynamic_cast<R3BEventHeader*>(frm->GetObject("EventHeader."));
75-
LOG(info) << "R3BWhiterabbitCalifaReader::Init() R3BEventHeader found";
75+
R3BLOG(info, "R3BEventHeader found");
7676

7777
// Register output array in tree
7878
FairRootManager::Instance()->Register("WRCalifaData", "WRCalifa", fArray, !fOnline);
@@ -91,7 +91,7 @@ Bool_t R3BWhiterabbitCalifaReader::R3BRead()
9191
fData->TIMESTAMP_CALIFA_WR_T4, fData->TIMESTAMP_CALIFA_WR_T3,
9292
fData->TIMESTAMP_CALIFA_WR_T2, fData->TIMESTAMP_CALIFA_WR_T1);*/
9393

94-
if (fWhiterabbitId1 != fData->TIMESTAMP_CALIFA1ID)
94+
if (fWhiterabbitId1 != fData->TIMESTAMP_CALIFA1ID && fData->TIMESTAMP_CALIFA1ID > 0)
9595
{
9696
char strMessage[1000];
9797
snprintf(strMessage,
@@ -103,7 +103,7 @@ Bool_t R3BWhiterabbitCalifaReader::R3BRead()
103103
LOG(error) << strMessage;
104104
}
105105

106-
if (fWhiterabbitId2 != fData->TIMESTAMP_CALIFA2ID)
106+
if (fWhiterabbitId2 != fData->TIMESTAMP_CALIFA2ID && fData->TIMESTAMP_CALIFA2ID > 0)
107107
{
108108
char strMessage[1000];
109109
snprintf(strMessage,
@@ -115,7 +115,7 @@ Bool_t R3BWhiterabbitCalifaReader::R3BRead()
115115
LOG(error) << strMessage;
116116
}
117117

118-
if (fWhiterabbitId3 != fData->TIMESTAMP_CALIFA3ID)
118+
if (fWhiterabbitId3 != fData->TIMESTAMP_CALIFA3ID && fData->TIMESTAMP_CALIFA3ID > 0)
119119
{
120120
char strMessage[1000];
121121
snprintf(strMessage,
@@ -127,7 +127,7 @@ Bool_t R3BWhiterabbitCalifaReader::R3BRead()
127127
LOG(error) << strMessage;
128128
}
129129

130-
if (fWhiterabbitId4 != fData->TIMESTAMP_CALIFA4ID)
130+
if (fWhiterabbitId4 != fData->TIMESTAMP_CALIFA4ID && fData->TIMESTAMP_CALIFA4ID > 0)
131131
{
132132
char strMessage[1000];
133133
snprintf(strMessage,
@@ -141,27 +141,30 @@ Bool_t R3BWhiterabbitCalifaReader::R3BRead()
141141

142142
if (fEventHeader != nullptr)
143143
{
144+
fNEvent = fEventHeader->GetEventno();
144145
uint64_t timestamp1 = ((uint64_t)fData->TIMESTAMP_CALIFA1WR_T4 << 48) |
145146
((uint64_t)fData->TIMESTAMP_CALIFA1WR_T3 << 32) |
146147
((uint64_t)fData->TIMESTAMP_CALIFA1WR_T2 << 16) | (uint64_t)fData->TIMESTAMP_CALIFA1WR_T1;
147-
148-
fNEvent = fEventHeader->GetEventno();
149-
new ((*fArray)[fArray->GetEntriesFast()]) R3BWRData(timestamp1, fWhiterabbitId1);
148+
if (timestamp1 > 0)
149+
new ((*fArray)[fArray->GetEntriesFast()]) R3BWRData(timestamp1, fWhiterabbitId1);
150150

151151
uint64_t timestamp2 = ((uint64_t)fData->TIMESTAMP_CALIFA2WR_T4 << 48) |
152152
((uint64_t)fData->TIMESTAMP_CALIFA2WR_T3 << 32) |
153153
((uint64_t)fData->TIMESTAMP_CALIFA2WR_T2 << 16) | (uint64_t)fData->TIMESTAMP_CALIFA2WR_T1;
154-
new ((*fArray)[fArray->GetEntriesFast()]) R3BWRData(timestamp2, fWhiterabbitId2);
154+
if (timestamp2 > 0)
155+
new ((*fArray)[fArray->GetEntriesFast()]) R3BWRData(timestamp2, fWhiterabbitId2);
155156

156157
uint64_t timestamp3 = ((uint64_t)fData->TIMESTAMP_CALIFA3WR_T4 << 48) |
157158
((uint64_t)fData->TIMESTAMP_CALIFA3WR_T3 << 32) |
158159
((uint64_t)fData->TIMESTAMP_CALIFA3WR_T2 << 16) | (uint64_t)fData->TIMESTAMP_CALIFA3WR_T1;
159-
new ((*fArray)[fArray->GetEntriesFast()]) R3BWRData(timestamp3, fWhiterabbitId3);
160+
if (timestamp3 > 0)
161+
new ((*fArray)[fArray->GetEntriesFast()]) R3BWRData(timestamp3, fWhiterabbitId3);
160162

161163
uint64_t timestamp4 = ((uint64_t)fData->TIMESTAMP_CALIFA4WR_T4 << 48) |
162164
((uint64_t)fData->TIMESTAMP_CALIFA4WR_T3 << 32) |
163165
((uint64_t)fData->TIMESTAMP_CALIFA4WR_T2 << 16) | (uint64_t)fData->TIMESTAMP_CALIFA4WR_T1;
164-
new ((*fArray)[fArray->GetEntriesFast()]) R3BWRData(timestamp4, fWhiterabbitId4);
166+
if (timestamp4 > 0)
167+
new ((*fArray)[fArray->GetEntriesFast()]) R3BWRData(timestamp4, fWhiterabbitId4);
165168
}
166169
else
167170
{

r3bsource/califa/R3BWhiterabbitCalifaReader.h

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,12 @@ class R3BWhiterabbitCalifaReader : public R3BReader
2626
{
2727
public:
2828
// Standard constructor
29-
R3BWhiterabbitCalifaReader(EXT_STR_h101_WRCALIFA*, size_t, UInt_t, UInt_t, UInt_t = 0, UInt_t = 0);
29+
R3BWhiterabbitCalifaReader(EXT_STR_h101_WRCALIFA*,
30+
size_t,
31+
uint32_t = 0x1a00,
32+
uint32_t = 0x1c00,
33+
uint32_t = 0x1b00,
34+
uint32_t = 0x1d00);
3035

3136
// Destructor
3237
virtual ~R3BWhiterabbitCalifaReader();
@@ -45,22 +50,22 @@ class R3BWhiterabbitCalifaReader : public R3BReader
4550

4651
private:
4752
// An event counter
48-
UInt_t fNEvent = 0;
53+
uint64_t fNEvent = 0;
4954
// Reader specific data structure from ucesb
5055
EXT_STR_h101_WRCALIFA* fData;
5156
// Offset of detector specific data in full data structure
5257
size_t fOffset;
5358
// The whiterabbit subsystem ID
54-
UInt_t fWhiterabbitId1 = 0;
55-
UInt_t fWhiterabbitId2 = 0;
56-
UInt_t fWhiterabbitId3 = 0;
57-
UInt_t fWhiterabbitId4 = 0;
59+
uint32_t fWhiterabbitId1 = 0;
60+
uint32_t fWhiterabbitId2 = 0;
61+
uint32_t fWhiterabbitId3 = 0;
62+
uint32_t fWhiterabbitId4 = 0;
5863
// A pointer to the R3BEventHeader structure
5964
R3BEventHeader* fEventHeader = nullptr;
6065
// Don't store data for online
6166
bool fOnline = false;
6267
// Output array
63-
TClonesArray* fArray;
68+
TClonesArray* fArray = nullptr;
6469

6570
public:
6671
ClassDefOverride(R3BWhiterabbitCalifaReader, 0);

0 commit comments

Comments
 (0)