ATTPCROOT  0.3.0-alpha
A ROOT-based framework for analyzing data from active target detectors
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 
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 
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)