Skip to content

Commit d314e53

Browse files
committed
feat(mwpc):Update mwpc1 and mwpc2 cal2hit classes
Minor change
1 parent 539261a commit d314e53

4 files changed

Lines changed: 115 additions & 208 deletions

File tree

mwpc/mwpc1/R3BMwpc1Cal2Hit.cxx

Lines changed: 34 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,14 @@
1818
// ------------------------------------------------------------------------
1919

2020
// ROOT headers
21-
#include "TClonesArray.h"
22-
#include "TMath.h"
21+
#include <TClonesArray.h>
22+
#include <TMath.h>
2323

2424
// Fair headers
25-
#include "FairLogger.h"
26-
#include "FairRootManager.h"
27-
#include "FairRunAna.h"
28-
#include "FairRuntimeDb.h"
25+
#include <FairLogger.h>
26+
#include <FairRootManager.h>
27+
#include <FairRunAna.h>
28+
#include <FairRuntimeDb.h>
2929

3030
// MWPC headers
3131
#include "R3BEventHeader.h"
@@ -46,22 +46,13 @@ R3BMwpc1Cal2Hit::R3BMwpc1Cal2Hit()
4646
// R3BMwpc1Cal2Hit: Standard Constructor --------------------------
4747
R3BMwpc1Cal2Hit::R3BMwpc1Cal2Hit(const char* name, Int_t iVerbose)
4848
: FairTask(name, iVerbose)
49-
, fMwpcCalDataCA(NULL)
50-
, fMwpcHitDataCA(NULL)
51-
, fwx(3.125) // in mm
52-
, fwy(5.000) // in mm
53-
, fSize(200.0) // in mm
54-
, fOnline(kFALSE)
55-
, fExpId(0)
5649
{
5750
}
5851

5952
// Virtual R3BMwpc1Cal2Hit: Destructor
6053
R3BMwpc1Cal2Hit::~R3BMwpc1Cal2Hit()
6154
{
6255
R3BLOG(debug1, "Destructor");
63-
if (fMwpcCalDataCA)
64-
delete fMwpcCalDataCA;
6556
if (fMwpcHitDataCA)
6657
delete fMwpcHitDataCA;
6758
}
@@ -70,8 +61,7 @@ R3BMwpc1Cal2Hit::~R3BMwpc1Cal2Hit()
7061
InitStatus R3BMwpc1Cal2Hit::Init()
7162
{
7263
R3BLOG(info, "");
73-
// INPUT DATA
74-
FairRootManager* rootManager = FairRootManager::Instance();
64+
auto rootManager = FairRootManager::Instance();
7565
if (!rootManager)
7666
{
7767
R3BLOG(fatal, "FairRootManager not found");
@@ -82,18 +72,18 @@ InitStatus R3BMwpc1Cal2Hit::Init()
8272
if (!header)
8373
header = dynamic_cast<R3BEventHeader*>(rootManager->GetObject("R3BEventHeader"));
8474

75+
// INPUT DATA - Cal data
8576
fMwpcCalDataCA = dynamic_cast<TClonesArray*>(rootManager->GetObject("Mwpc1CalData"));
8677
if (!fMwpcCalDataCA)
8778
{
8879
R3BLOG(fatal, "Mwpc1CalData not found");
8980
return kFATAL;
9081
}
9182

92-
// OUTPUT DATA
93-
// Hit data
83+
// OUTPUT DATA - Hit data
9484
fMwpcHitDataCA = new TClonesArray("R3BMwpcHitData");
9585
rootManager->Register("Mwpc1HitData", "MWPC1 Hit", fMwpcHitDataCA, !fOnline);
96-
fMwpcHitDataCA->Clear();
86+
this->Reset();
9787
return kSUCCESS;
9888
}
9989

@@ -126,7 +116,7 @@ Double_t R3BMwpc1Cal2Hit::GetPositionYCoG(Double_t qmax, Int_t padmax, Double_t
126116
/* ---- Protected method to obtain the position Y ---- */
127117
Double_t R3BMwpc1Cal2Hit::GetPositionY(Double_t qmax, Int_t padmax, Double_t qdown, Double_t qup)
128118
{
129-
Double_t a2 = 0;
119+
Double_t a2 = 0.;
130120
if (qdown != 0 && qup != 0)
131121
{
132122
Double_t a3 = TMath::Pi() * fwy / (TMath::ACosH(0.5 * (TMath::Sqrt(qmax / qdown) + TMath::Sqrt(qmax / qup))));
@@ -138,7 +128,7 @@ Double_t R3BMwpc1Cal2Hit::GetPositionY(Double_t qmax, Int_t padmax, Double_t qdo
138128
}
139129

140130
/* ---- Public method Execution ---- */
141-
void R3BMwpc1Cal2Hit::Exec(Option_t* option)
131+
void R3BMwpc1Cal2Hit::Exec(Option_t*)
142132
{
143133
// At the moment we will use the expid to select the reconstruction
144134
// this should be changed in the future because expid is not necessary
@@ -151,7 +141,6 @@ void R3BMwpc1Cal2Hit::Exec(Option_t* option)
151141
{
152142
S467();
153143
}
154-
155144
return;
156145
}
157146

@@ -162,15 +151,15 @@ void R3BMwpc1Cal2Hit::S467()
162151
Reset();
163152

164153
// Reading the Input -- Cal Data --
165-
Int_t nHits = fMwpcCalDataCA->GetEntriesFast();
154+
auto nHits = fMwpcCalDataCA->GetEntriesFast();
166155
if (nHits == 0)
156+
{
167157
return;
158+
}
168159

169160
// Data from cal level
170-
R3BMwpcCalData** calData;
171-
calData = new R3BMwpcCalData*[nHits];
172-
Int_t planeId;
173-
Int_t padId;
161+
Int_t planeId = 0;
162+
Int_t padId = 0;
174163
Int_t padmx = -1, padmxu = -1, padmxd = -1, padmy = -1;
175164
Double_t q = 0., qmxu = 0., qmxd = 0., qleft = 0., qright = 0.;
176165
Double_t qmx = 0., qmy = 0., qdown = 0., qup = 0.;
@@ -183,10 +172,10 @@ void R3BMwpc1Cal2Hit::S467()
183172

184173
for (Int_t i = 0; i < nHits; i++)
185174
{
186-
calData[i] = dynamic_cast<R3BMwpcCalData*>(fMwpcCalDataCA->At(i));
187-
planeId = calData[i]->GetPlane();
188-
padId = calData[i]->GetPad() - 1; // From 0 to 63 for X down and up
189-
q = calData[i]->GetQ();
175+
auto calData = dynamic_cast<R3BMwpcCalData*>(fMwpcCalDataCA->At(i));
176+
planeId = calData->GetPlane();
177+
padId = calData->GetPad() - 1; // From 0 to 63 for X down and up
178+
q = calData->GetQ();
190179

191180
// FIXME: in November this should be OK!
192181
if (planeId == 1 || planeId == 2)
@@ -229,9 +218,6 @@ void R3BMwpc1Cal2Hit::S467()
229218

230219
AddHitData(x, y);
231220
}
232-
233-
if (calData)
234-
delete calData;
235221
return;
236222
}
237223

@@ -242,8 +228,11 @@ void R3BMwpc1Cal2Hit::S455()
242228
Reset();
243229

244230
// Reading the Input -- Cal Data --
245-
Int_t nHits = fMwpcCalDataCA->GetEntriesFast();
246-
R3BMwpcCalData** calData = new R3BMwpcCalData*[nHits];
231+
auto nHits = fMwpcCalDataCA->GetEntriesFast();
232+
if (nHits == 0)
233+
{
234+
return;
235+
}
247236

248237
Int_t planeId = 0;
249238
Int_t padId = 0;
@@ -264,8 +253,7 @@ void R3BMwpc1Cal2Hit::S455()
264253
Bool_t xexists_p1 = false;
265254
Bool_t xexists_p2 = false;
266255
Bool_t yexists = false;
267-
// Double_t fx[Mw1PadsX], fy[Mw1PadsY];
268-
// cout << "NUEVO EVENTO" << endl;
256+
269257
for (Int_t i = 0; i < Mw1PadsX; i++)
270258
fx_p1[i] = 0;
271259
for (Int_t i = 0; i < Mw1PadsX; i++)
@@ -274,58 +262,44 @@ void R3BMwpc1Cal2Hit::S455()
274262
fy[i] = 0;
275263
for (Int_t i = 0; i < nHits; i++)
276264
{
277-
calData[i] = dynamic_cast<R3BMwpcCalData*>(fMwpcCalDataCA->At(i));
278-
planeId = calData[i]->GetPlane();
279-
padId = calData[i]->GetPad() - 1;
280-
q = calData[i]->GetQ();
281-
// cout << "i = " << i << ", q = " << q << ", padId = " << padId << ", planeId = " << planeId << endl;
265+
auto calData = dynamic_cast<R3BMwpcCalData*>(fMwpcCalDataCA->At(i));
266+
planeId = calData->GetPlane();
267+
padId = calData->GetPad() - 1;
268+
q = calData->GetQ();
282269
pair<Double_t, Int_t> hit_pair = make_pair(q, padId);
283270
if (planeId == 1)
284271
{
285272
fx_p1[padId] = q;
286273
QpadX_p1.push_back(hit_pair);
287-
// xexists_p1 = true;
288274
nx_p1 = nx_p1 + 1;
289275
}
290276
if (planeId == 2)
291277
{
292278
fx_p2[padId] = q;
293279
QpadX_p2.push_back(hit_pair);
294-
// xexists_p2 = true;
295280
nx_p2 = nx_p2 + 1;
296281
}
297282
if (planeId == 3)
298283
{
299284
fy[padId] = q;
300285
QpadY.push_back(hit_pair);
301-
// yexists = true;
302286
ny = ny + 1;
303287
}
304288
}
305289

306290
if ((nx_p1 > 0 || nx_p2 > 0) && ny > 0)
307291
{
308-
309292
if (nx_p1 > 0)
310293
{
311-
sort(QpadX_p1.begin(),
312-
QpadX_p1.end(),
313-
sortPairsmwpc1); // el vector se ordena por el primer elemento de cada par
294+
sort(QpadX_p1.begin(), QpadX_p1.end(), sortPairsmwpc1);
314295
qmx_p1 = QpadX_p1[0].first;
315296
padmx_p1 = QpadX_p1[0].second;
316-
// cout << "qmx1 = " << qmx1 << ", padmx1 = " << padmx1 << endl;
317-
/*for (Int_t i=0; i<nx_p1; i++){
318-
cout << "Loop i = " << i << " q = " << QpadX_p1[i].first << endl;
319-
}*/
320297
}
321298
if (nx_p2 > 0)
322299
{
323-
sort(QpadX_p2.begin(),
324-
QpadX_p2.end(),
325-
sortPairsmwpc1); // el vector se ordena por el primer elemento de cada par
300+
sort(QpadX_p2.begin(), QpadX_p2.end(), sortPairsmwpc1);
326301
qmx_p2 = QpadX_p2[0].first;
327302
padmx_p2 = QpadX_p2[0].second;
328-
// cout << "qmx1 = " << qmx1 << ", padmx1 = " << padmx1 << endl;
329303
}
330304
if (qmx_p1 > qmx_p2 && padmx_p1 + 1 < Mw1PadsX && padmx_p2 + 1 < Mw1PadsX)
331305
{
@@ -334,9 +308,6 @@ void R3BMwpc1Cal2Hit::S455()
334308
qleft1 = fx_p1[padmx1 - 1];
335309
qright1 = fx_p1[padmx1 + 1];
336310
planex1 = 1;
337-
/*cout << "1>2" << endl;
338-
cout << "qmx1 = " << qmx1 << ", padmx1 = " << padmx1 << endl;
339-
cout << "qmx2 = " << qmx2 << ", padmx2 = " << padmx2 << endl;*/
340311
if (qmx1 > 10 && qleft1 > 0 && qright1 > 0)
341312
{
342313
x1 = GetPositionX(qmx1, padmx1, qleft1, qright1);
@@ -390,15 +361,11 @@ void R3BMwpc1Cal2Hit::S455()
390361

391362
else if (qmx_p2 > qmx_p1 && padmx_p1 + 1 < Mw1PadsX && padmx_p2 + 1 < Mw1PadsX)
392363
{
393-
394364
qmx1 = qmx_p2;
395365
padmx1 = padmx_p2;
396366
qleft1 = fx_p2[padmx1 - 1];
397367
qright1 = fx_p2[padmx1 + 1];
398368
planex1 = 2;
399-
/*cout << "2>1" << endl;
400-
cout << "qmx1 = " << qmx1 << ", padmx1 = " << padmx1 << endl;
401-
cout << "qmx2 = " << qmx2 << ", padmx2 = " << padmx2 << endl;*/
402369
if (qmx1 > 10 && qleft1 > 0 && qright1 > 0)
403370
{
404371
x1 = GetPositionX(qmx1, padmx1, qleft1, qright1);
@@ -456,7 +423,6 @@ void R3BMwpc1Cal2Hit::S455()
456423
sort(QpadY.begin(), QpadY.end(), sortPairsmwpc1);
457424
qmy1 = QpadY[0].first;
458425
padmy1 = QpadY[0].second;
459-
// cout << "qmy1 = " << qmy1 << ", padmy1 = " << padmy1 << endl;
460426

461427
if (padmy1 + 1 < Mw1PadsY)
462428
{
@@ -484,7 +450,6 @@ void R3BMwpc1Cal2Hit::S455()
484450
sort(QpadY.begin(), QpadY.end(), sortPairsmwpc1);
485451
qmy2 = QpadY[0].first;
486452
padmy2 = QpadY[0].second;
487-
// cout << "qmy2 = " << qmy2 << ", padmy2 = " << padmy2 << endl;
488453

489454
if (padmy2 + 1 < Mw1PadsY)
490455
{
@@ -499,14 +464,9 @@ void R3BMwpc1Cal2Hit::S455()
499464
y2 = -1000.;
500465
}
501466
} // if y
502-
// cout << "x1 = " << x1 << ", y1 = " << y1 << " ,planex1 = " << planex1 << ", x2 = " << x2 << ", y2 = " << y2
503-
// << " ,planex2 = " << planex2 << endl;
504467
AddHitData(x1, y1, planex1);
505468
AddHitData(x2, y2, planex2);
506469
} // if all
507-
508-
if (calData)
509-
delete[] calData;
510470
return;
511471
}
512472

@@ -527,4 +487,4 @@ R3BMwpcHitData* R3BMwpc1Cal2Hit::AddHitData(Double_t x, Double_t y, Int_t plane)
527487
return new (clref[size]) R3BMwpcHitData(x, y, plane);
528488
}
529489

530-
ClassImp(R3BMwpc1Cal2Hit);
490+
ClassImp(R3BMwpc1Cal2Hit)

mwpc/mwpc1/R3BMwpc1Cal2Hit.h

Lines changed: 24 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -17,20 +17,18 @@
1717
// ----- s455 method 17/06/22 by Antia GG -----
1818
// -----------------------------------------------------------------------
1919

20-
#ifndef R3BMwpc1Cal2Hit_H
21-
#define R3BMwpc1Cal2Hit_H 1
20+
#pragma once
21+
22+
#include <FairTask.h>
23+
#include <TH1F.h>
24+
#include <TRandom.h>
2225

23-
#include "FairTask.h"
2426
#include "R3BMwpcCalData.h"
2527
#include "R3BMwpcHitData.h"
26-
#include "TH1F.h"
27-
#include <TRandom.h>
2828

2929
#define Mw1PadsX 64
3030
#define Mw1PadsY 40
3131

32-
// Mw1PadsX 64
33-
3432
using namespace std;
3533

3634
class TClonesArray;
@@ -44,25 +42,26 @@ class R3BMwpc1Cal2Hit : public FairTask
4442
R3BMwpc1Cal2Hit();
4543

4644
/** Standard constructor **/
47-
R3BMwpc1Cal2Hit(const char* name, Int_t iVerbose = 1);
45+
explicit R3BMwpc1Cal2Hit(const char* name, Int_t iVerbose = 1);
4846

4947
/** Destructor **/
50-
virtual ~R3BMwpc1Cal2Hit();
48+
virtual ~R3BMwpc1Cal2Hit() override;
5149

52-
/** Virtual method Exec **/
53-
virtual void Exec(Option_t* option);
50+
/** Method Exec **/
51+
void Exec(Option_t* option) override;
5452

5553
/** Virtual method Reset **/
5654
virtual void Reset();
5755

5856
// Fair specific
59-
/** Virtual method Init **/
60-
virtual InitStatus Init();
57+
/** Method Init **/
58+
InitStatus Init() override;
59+
60+
/** Method ReInit **/
61+
InitStatus ReInit() override;
6162

62-
/** Virtual method ReInit **/
63-
virtual InitStatus ReInit();
63+
void SetOnline(bool option = true) { fOnline = option; }
6464

65-
void SetOnline(Bool_t option) { fOnline = option; }
6665
void SetExpId(Int_t exp)
6766
{
6867
fExpId = exp;
@@ -74,18 +73,18 @@ class R3BMwpc1Cal2Hit : public FairTask
7473
/** Private method Experiment s467 **/
7574
virtual void S467();
7675

77-
R3BEventHeader* header; /**< Event header. */
76+
R3BEventHeader* header = nullptr; // Event header
7877

79-
Double_t fSize; // Detector size in X and Y
80-
Double_t fwx; // Pad width in X
81-
Double_t fwy; // Pad width in Y
78+
Double_t fSize = 200.0; // Detector size in X and Y in mm
79+
Double_t fwx = 5.0; // Pad width in X in mm
80+
Double_t fwy = 3.125; // Pad width in Y in mm
8281
Int_t fx[Mw1PadsX], fx_p1[Mw1PadsX], fx_p2[Mw1PadsX], fy[Mw1PadsY];
8382

84-
Bool_t fOnline; // Don't store data for online
85-
Int_t fExpId;
83+
bool fOnline = false; // Don't store data for online if it is true
84+
Int_t fExpId = 0;
8685

87-
TClonesArray* fMwpcCalDataCA; /**< Array with Cal input data. >*/
88-
TClonesArray* fMwpcHitDataCA; /**< Array with Hit output data. >*/
86+
TClonesArray* fMwpcCalDataCA = nullptr; // Array with Cal input data
87+
TClonesArray* fMwpcHitDataCA = nullptr; // Array with Hit output data
8988

9089
/** Private method AddHitData **/
9190
// Adds a MwpcHitData to the MwpcHitCollection
@@ -100,7 +99,5 @@ class R3BMwpc1Cal2Hit : public FairTask
10099

101100
public:
102101
// Class definition
103-
ClassDef(R3BMwpc1Cal2Hit, 1)
102+
ClassDefOverride(R3BMwpc1Cal2Hit, 1); // NOLINT
104103
};
105-
106-
#endif

0 commit comments

Comments
 (0)