ATTPCROOT  0.3.0-alpha
A ROOT-based framework for analyzing data from active target detectors
AtFissionTask.h
Go to the documentation of this file.
1 #ifndef ATFSSIONTASK_H
2 #define ATFSSIONTASK_H
3 
4 #include <FairTask.h>
5 
6 #include <Rtypes.h> // for Bool_t, Double_t, Option_t
7 #include <TClonesArray.h>
8 #include <TString.h> // for TString
9 
10 #include <memory> // for unique_ptr
11 #include <vector> // for vector
12 class AtHit;
13 
14 class AtFissionEvent;
15 
23 class AtFissionTask : public FairTask {
24 protected:
25  TString fOutBranch{"AtFissionEvent"};
26  TString fPatternBranch{"AtPatternEvent"}; //< Pattern with corrected hits
27  TString fEventBranch{"AtEventH"}; //< Uncorrected event
28 
29  TClonesArray fFissionEventArray;
30  TClonesArray *fPatternEventArray{nullptr};
31  TClonesArray *fEventArray{nullptr};
32 
33  Bool_t fIsPersistant{true};
34  Double_t fLambda; //<Value of space charge correction applied to this run
35 
36 public:
37  AtFissionTask(double fLambda = 0);
38  virtual ~AtFissionTask() = default;
39 
40  virtual InitStatus Init();
41  virtual void Exec(Option_t *opt);
42  virtual void Finish() {}
43 
44  void SetPersistance(bool val) { fIsPersistant = val; }
45  void SetOutBranch(TString name) { fOutBranch = name; }
46  void SetPatternBranch(TString name) { fPatternBranch = name; }
47  void SetUncorrectedEventBranch(TString name) { fEventBranch = name; }
48 
49 protected:
50  using HitVector = std::vector<std::unique_ptr<AtHit>>;
51  std::vector<AtHit *> GetSortedBeamHits(AtFissionEvent *event);
52  std::vector<AtHit *> GetSortedFragmentHits(AtFissionEvent *event, int fragID);
53  static HitVector GetMatchingHits(const std::vector<AtHit *> hitsToFind, const HitVector &hitsToClone);
54 };
55 
56 #endif // ATFSSIONTASK_H
AtFissionTask::SetPersistance
void SetPersistance(bool val)
Definition: AtFissionTask.h:44
AtFissionTask::fEventBranch
TString fEventBranch
Definition: AtFissionTask.h:27
AtFissionTask::GetSortedBeamHits
std::vector< AtHit * > GetSortedBeamHits(AtFissionEvent *event)
Definition: AtFissionTask.cxx:48
AtFissionTask::~AtFissionTask
virtual ~AtFissionTask()=default
AtFissionTask::fPatternEventArray
TClonesArray * fPatternEventArray
Definition: AtFissionTask.h:30
AtFissionTask::HitVector
std::vector< std::unique_ptr< AtHit > > HitVector
Definition: AtFissionTask.h:50
AtFissionTask
Definition: AtFissionTask.h:23
AtFissionTask::AtFissionTask
AtFissionTask(double fLambda=0)
Definition: AtFissionTask.cxx:16
AtFissionTask::GetMatchingHits
static HitVector GetMatchingHits(const std::vector< AtHit * > hitsToFind, const HitVector &hitsToClone)
Definition: AtFissionTask.cxx:112
AtFissionTask::SetPatternBranch
void SetPatternBranch(TString name)
Definition: AtFissionTask.h:46
AtFissionTask::GetSortedFragmentHits
std::vector< AtHit * > GetSortedFragmentHits(AtFissionEvent *event, int fragID)
Definition: AtFissionTask.cxx:56
AtFissionTask::Exec
virtual void Exec(Option_t *opt)
Definition: AtFissionTask.cxx:63
AtFissionTask::fEventArray
TClonesArray * fEventArray
Definition: AtFissionTask.h:31
AtFissionTask::Init
virtual InitStatus Init()
Definition: AtFissionTask.cxx:21
AtFissionTask::fLambda
Double_t fLambda
Definition: AtFissionTask.h:34
AtFissionTask::SetOutBranch
void SetOutBranch(TString name)
Definition: AtFissionTask.h:45
AtFissionTask::fPatternBranch
TString fPatternBranch
Definition: AtFissionTask.h:26
AtFissionTask::SetUncorrectedEventBranch
void SetUncorrectedEventBranch(TString name)
Definition: AtFissionTask.h:47
AtFissionTask::fIsPersistant
Bool_t fIsPersistant
Definition: AtFissionTask.h:33
AtFissionTask::Finish
virtual void Finish()
Definition: AtFissionTask.h:42
AtFissionTask::fOutBranch
TString fOutBranch
Definition: AtFissionTask.h:25
AtFissionEvent
Definition: AtFissionEvent.h:29
AtFissionTask::fFissionEventArray
TClonesArray fFissionEventArray
Definition: AtFissionTask.h:29
AtHit
Point in space with charge.
Definition: AtHit.h:27