Skip to content

Commit 8ca8005

Browse files
fix some C-Style casts
and check types.
1 parent ca005d8 commit 8ca8005

6 files changed

Lines changed: 52 additions & 16 deletions

File tree

examples/MQ/pixelAlternative/src/PixelAltFindHits.cxx

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -188,7 +188,10 @@ void PixelAltFindHits::GetParList(TList* tempList)
188188
void PixelAltFindHits::InitMQ(TList* tempList)
189189
{
190190
LOG(info) << "********************************************** PixelAltFindHits::InitMQ()";
191-
fDigiPar = (PixelDigiPar*)tempList->FindObject("PixelDigiParameters");
191+
fDigiPar = dynamic_cast<PixelDigiPar*>(tempList->FindObject("PixelDigiParameters"));
192+
if (!fDigiPar) {
193+
throw std::runtime_error("no PixelDigiParameters");
194+
}
192195

193196
fFeCols = fDigiPar->GetFECols();
194197
fFeRows = fDigiPar->GetFERows();
@@ -211,7 +214,13 @@ void PixelAltFindHits::ExecMQ(TList* inputList, TList* outputList)
211214
// << "," << outputList->GetName() << "), Event " << fTNofEvents; LOG(info) <<
212215
// "********************************************** PixelAltFindHits::ExecMQ(), Event " << fTNofEvents; LOG(info) <<
213216
// "h" << FairLogger::flush;
214-
fDigis = (TClonesArray*)inputList->FindObject("PixelDigis");
217+
fDigis = dynamic_cast<TClonesArray*>(inputList->FindObject("PixelDigis"));
218+
if (!fDigis) {
219+
throw std::runtime_error("no PixelDigis");
220+
}
221+
if (!fDigis->GetClass()->InheritsFrom(PixelDigi::Class())) {
222+
throw std::runtime_error("wrong type in PixelDigis TCA");
223+
}
215224
outputList->Add(fHits);
216225
Exec("");
217226
}

examples/MQ/pixelDetector/src/PixelDigiBinSource.cxx

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ Int_t PixelDigiBinSource::ReadEvent(UInt_t i)
8383
LOG(debug) << "PixelDigiBinSource::ReadEvent() Begin of (" << fDigis.GetEntries() << ")";
8484

8585
Int_t head[4]; // runId, MCEntryNo, PartNo, NofDigis
86-
fInputFile.read((char*)head, sizeof(head));
86+
fInputFile.read(reinterpret_cast<char*>(head), sizeof(head));
8787

8888
if (fInputFile.eof()) {
8989
LOG(info) << "End of file reached!";
@@ -94,7 +94,7 @@ Int_t PixelDigiBinSource::ReadEvent(UInt_t i)
9494

9595
const Int_t constNofData = head[3] * dataSize;
9696
short int dataCont[constNofData];
97-
fInputFile.read((char*)dataCont, sizeof(dataCont));
97+
fInputFile.read(reinterpret_cast<char*>(dataCont), sizeof(dataCont));
9898

9999
fRunId = head[0];
100100
fMCEntryNo = head[1];
@@ -146,7 +146,7 @@ Int_t PixelDigiBinSource::CheckMaxEventNo(Int_t /*EvtEnd*/) { return -1; }
146146

147147
void PixelDigiBinSource::FillEventHeader(FairEventHeader* feh)
148148
{
149-
((PixelEventHeader*)feh)->SetRunId(fRunId);
150-
((PixelEventHeader*)feh)->SetMCEntryNumber(fMCEntryNo);
151-
((PixelEventHeader*)feh)->SetPartNo(fPartNo);
149+
FairSource::FillEventHeader(feh);
150+
feh->SetMCEntryNumber(fMCEntryNo);
151+
static_cast<PixelEventHeader*>(feh)->SetPartNo(fPartNo);
152152
}

examples/MQ/pixelDetector/src/PixelDigiSource.cxx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,7 @@ Int_t PixelDigiSource::CheckMaxEventNo(Int_t /*EvtEnd*/) { return -1; }
144144

145145
void PixelDigiSource::FillEventHeader(FairEventHeader* feh)
146146
{
147-
((PixelEventHeader*)feh)->SetRunId(fRunId);
148-
((PixelEventHeader*)feh)->SetMCEntryNumber(fMCEntryNo);
149-
((PixelEventHeader*)feh)->SetPartNo(fPartNo);
147+
FairSource::FillEventHeader(feh);
148+
feh->SetMCEntryNumber(fMCEntryNo);
149+
static_cast<PixelEventHeader*>(feh)->SetPartNo(fPartNo);
150150
}

examples/MQ/pixelDetector/src/PixelDigitize.cxx

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -183,7 +183,10 @@ void PixelDigitize::GetParList(TList* tempList)
183183
void PixelDigitize::InitMQ(TList* tempList)
184184
{
185185
LOG(info) << "********************************************** PixelDigitize::InitMQ()";
186-
fDigiPar = (PixelDigiPar*)tempList->FindObject("PixelDigiParameters");
186+
fDigiPar = dynamic_cast<PixelDigiPar*>(tempList->FindObject("PixelDigiParameters"));
187+
if (!fDigiPar) {
188+
throw std::runtime_error("no PixelDigiParameters");
189+
}
187190

188191
fFeCols = fDigiPar->GetFECols();
189192
fFeRows = fDigiPar->GetFERows();
@@ -205,7 +208,13 @@ void PixelDigitize::ExecMQ(TList* inputList, TList* outputList)
205208
// LOG(info) << "********************************************** PixelDigitize::ExecMQ(" << inputList->GetName() <<
206209
// "," << outputList->GetName() << "), Event " << fTNofEvents; LOG(info) <<
207210
// "********************************************** PixelDigitize::ExecMQ(), Event " << fTNofEvents;
208-
fPoints = (TClonesArray*)inputList->FindObject("PixelPoint");
211+
fPoints = dynamic_cast<TClonesArray*>(inputList->FindObject("PixelPoint"));
212+
if (!fPoints) {
213+
throw std::runtime_error("no PixelPoint");
214+
}
215+
if (!fPoints->GetClass()->InheritsFrom(PixelPoint::Class())) {
216+
throw std::runtime_error("wrong type in PixelPoint TCA");
217+
}
209218
outputList->Add(fDigis);
210219
Exec("");
211220
}

examples/MQ/pixelDetector/src/PixelFindHits.cxx

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,10 @@ void PixelFindHits::GetParList(TList* tempList)
151151
void PixelFindHits::InitMQ(TList* tempList)
152152
{
153153
LOG(info) << "********************************************** PixelFindHits::InitMQ()";
154-
fDigiPar = (PixelDigiPar*)tempList->FindObject("PixelDigiParameters");
154+
fDigiPar = dynamic_cast<PixelDigiPar*>(tempList->FindObject("PixelDigiParameters"));
155+
if (!fDigiPar) {
156+
throw std::runtime_error("no PixelDigiParameters");
157+
}
155158

156159
fFeCols = fDigiPar->GetFECols();
157160
fFeRows = fDigiPar->GetFERows();
@@ -174,7 +177,13 @@ void PixelFindHits::ExecMQ(TList* inputList, TList* outputList)
174177
// "," << outputList->GetName() << "), Event " << fTNofEvents; LOG(info) <<
175178
// "********************************************** PixelFindHits::ExecMQ(), Event " << fTNofEvents; LOG(info) <<
176179
// "h" << FairLogger::flush;
177-
fDigis = (TClonesArray*)inputList->FindObject("PixelDigis");
180+
fDigis = dynamic_cast<TClonesArray*>(inputList->FindObject("PixelDigis"));
181+
if (!fDigis) {
182+
throw std::runtime_error("no PixelDigis");
183+
}
184+
if (!fDigis->GetClass()->InheritsFrom(PixelDigi::Class())) {
185+
throw std::runtime_error("wrong type in PixelDigis TCA");
186+
}
178187
outputList->Add(fHits);
179188
Exec("");
180189
}

examples/MQ/pixelDetector/src/PixelFindTracks.cxx

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,10 @@ void PixelFindTracks::GetParList(TList* tempList)
156156
void PixelFindTracks::InitMQ(TList* tempList)
157157
{
158158
LOG(info) << "********************************************** PixelFindTracks::InitMQ()";
159-
fDigiPar = (PixelDigiPar*)tempList->FindObject("PixelDigiParameters");
159+
fDigiPar = dynamic_cast<PixelDigiPar*>(tempList->FindObject("PixelDigiParameters"));
160+
if (!fDigiPar) {
161+
throw std::runtime_error("no PixelDigiParameters");
162+
}
160163

161164
fTracks = new TClonesArray("PixelTrack", 10000);
162165
fhDist2D = new TH2F("fhDist2D", "Distance between hit and expected track", 400, -1., 1., 400, -1., 1.);
@@ -168,7 +171,13 @@ void PixelFindTracks::ExecMQ(TList* inputList, TList* outputList)
168171
// << "," << outputList->GetName() << "), Event " << fTNofEvents; LOG(info) <<
169172
// "********************************************** PixelFindTracks::ExecMQ(), Event " << fTNofEvents; LOG(info) <<
170173
// "t" << FairLogger::flush;
171-
fHits = (TClonesArray*)inputList->FindObject("PixelHits");
174+
fHits = dynamic_cast<TClonesArray*>(inputList->FindObject("PixelHits"));
175+
if (!fHits) {
176+
throw std::runtime_error("no PixelHits");
177+
}
178+
if (!fHits->GetClass()->InheritsFrom(PixelHit::Class())) {
179+
throw std::runtime_error("wrong type in PixelHits TCA");
180+
}
172181
outputList->Add(fTracks);
173182
Exec("");
174183
}

0 commit comments

Comments
 (0)