ATTPCROOT
0.3.0-alpha
A ROOT-based framework for analyzing data from active target detectors
AtS800
AtS800Task.cxx
Go to the documentation of this file.
1
2
#include "
AtS800Task.h
"
3
4
#include <FairLogger.h>
5
#include <FairRun.h>
6
#include <FairTask.h>
7
8
#include <memory>
9
10
class
FairRuntimeDb;
11
12
ClassImp
(
AtS800Task
);
13
14
void
AtS800Task::SetPersistence
(Bool_t value)
15
{
16
kIsPersistence = value;
17
}
18
19
InitStatus
AtS800Task::Init
()
20
{
21
22
/*
23
if(fS800Alg==0)fS800Array = new TClonesArray("AtS800N::AtS800");
24
else if(fS800Alg==1) fS800Array = new TClonesArray("AtS800Mod");
25
else if(fS800Alg==2) fS800Array = new TClonesArray("AtMlesacMod");
26
else if(fS800Alg==3) fS800Array = new TClonesArray("AtLmedsMod");
27
else{
28
fLogger -> Error(MESSAGE_ORIGIN, "Cannot find S800 algorithm!");
29
return kERROR;
30
}
31
32
FairRootManager *ioMan = FairRootManager::Instance();
33
if (ioMan == 0) {
34
fLogger -> Error(MESSAGE_ORIGIN, "Cannot find RootManager!");
35
return kERROR;
36
}
37
38
fEventHArray = (TClonesArray *) ioMan -> GetObject("AtEventH");
39
if (fEventHArray == 0) {
40
fLogger -> Error(MESSAGE_ORIGIN, "Cannot find AtEvent array!");
41
return kERROR;
42
}
43
44
45
ioMan -> Register("AtS800", "AtTPC", fS800Array, kIsPersistence);
46
/*/
47
48
return
kSUCCESS;
49
}
50
51
void
AtS800Task::SetParContainers
()
52
{
53
54
FairRun *run = FairRun::Instance();
55
if
(!run) {
56
LOG(fatal) <<
"No analysis run!"
;
57
return
;
58
}
59
60
FairRuntimeDb *db = run->GetRuntimeDb();
61
if
(!db)
62
LOG(fatal) <<
"No runtime database!"
;
63
64
/*fPar = (AtDigiPar *) db -> getContainer("AtDigiPar");
65
if (!fPar)
66
fLogger -> Fatal(MESSAGE_ORIGIN, "AtDigiPar not found!!");
67
*/
68
}
69
70
void
AtS800Task::Exec
(Option_t *opt)
71
{
72
73
/*
74
75
fS800Array -> Delete();
76
77
if (fEventHArray -> GetEntriesFast() == 0)
78
return;
79
80
fEvent = (AtEvent *) fEventHArray -> At(0);
81
82
if(fS800Alg==0){
83
AtS800N::AtS800 *S800 = (AtS800N::AtS800 *) new ((*fS800Array)[0]) AtS800N::AtS800();
84
S800 -> SetTiltAngle(fTiltAngle);
85
S800->SetModelType(fS800Model);
86
S800->SetDistanceThreshold(fS800Threshold);
87
S800->SetMinHitsLine(fMinHitsLine);
88
if(kIsFullMode) S800->CalcS800Full(fEvent);
89
else S800->CalcS800(fEvent);
90
}
91
92
93
if(fS800Alg==1){
94
AtS800Mod * Rantest = (AtS800Mod *) new ((*fS800Array)[0]) AtS800Mod();
95
Rantest->SetDistanceThreshold(fS800Threshold);
96
Rantest->SetMinHitsLine(fMinHitsLine);
97
Rantest->SetNumItera(fNumItera);
98
Rantest->SetRanSamMode(fRandSamplMode);
99
Rantest->CalcS800Mod(fEvent);
100
}
101
102
if(fS800Alg==2){
103
AtMlesacMod * Rantest = (AtMlesacMod *) new ((*fS800Array)[0]) AtMlesacMod();
104
Rantest->SetDistanceThreshold(fS800Threshold);
105
Rantest->SetMinHitsLine(fMinHitsLine);
106
Rantest->SetNumItera(fNumItera);
107
Rantest->SetRanSamMode(fRandSamplMode);
108
Rantest->CalcMlesacMod(fEvent);
109
}
110
111
if(fS800Alg==3){
112
AtLmedsMod * Rantest = (AtLmedsMod *) new ((*fS800Array)[0]) AtLmedsMod();
113
Rantest->SetDistanceThreshold(fS800Threshold);
114
Rantest->SetMinHitsLine(fMinHitsLine);
115
Rantest->SetNumItera(fNumItera);
116
Rantest->SetRanSamMode(fRandSamplMode);
117
Rantest->CalcLmedsMod(fEvent);
118
}
119
*/
120
}
AtS800Task::SetPersistence
void SetPersistence(Bool_t value=kTRUE)
Definition:
AtS800Task.cxx:14
AtS800Task
Definition:
AtS800Task.h:15
AtS800Task.h
AtS800Task::SetParContainers
virtual void SetParContainers()
Definition:
AtS800Task.cxx:51
AtS800Task::Exec
virtual void Exec(Option_t *opt)
Definition:
AtS800Task.cxx:70
AtS800Task::Init
virtual InitStatus Init()
Definition:
AtS800Task.cxx:19
ClassImp
ClassImp(AtS800Task)
Generated on Sat Nov 11 2023 15:30:38 for ATTPCROOT by
1.8.18