ATTPCROOT  0.3.0-alpha
A ROOT-based framework for analyzing data from active target detectors
AtSpaceChargeTask.h
Go to the documentation of this file.
1 /*****************************************************************/
2 /* AtSpaceChargeTask: Simulates the effect of space charge on */
3 /* the electrons as they're drifted to the pad plane. Based */
4 /* on code by Juan Zamora */
5 /* Author: Adam Anthony (NSCL) */
6 /* anthonya@frib.msu.edu */
7 /*****************************************************************/
8 #ifndef ATSPACECHARGETASK_H
9 #define ATSPACECHARGETASK_H
10 
11 #include <FairTask.h>
12 
13 class TClonesArray;
14 class AtDigiPar;
15 class AtMap;
16 class AtMCPoint;
17 
18 using AtMapPtr = std::shared_ptr<AtMap>;
19 
20 class AtSpaceChargeTask : public FairTask {
21 
22 protected:
24 
25  Int_t fEventID = 0;
26 
27  Double_t fVelDrift = 0;
28  Double_t fDetPadPlane = 0;
29 
31 
32  TClonesArray *fMCPointArray;
33  TClonesArray *fSpaceChargePointArray;
34  Bool_t fIsPersistent = kTRUE;
35 
36  TString fInputBranchName = "AtTpcPoint";
37  TString fOutputBranchName = "AtSpaceChargePoint";
38 
39  void getParameters();
40  void processPoint(AtMCPoint *point);
41 
42 public:
44  AtSpaceChargeTask(const char *name);
46 
47  void SetPersistence(Bool_t val) { fIsPersistent = val; }
48  void SetMap(AtMapPtr map) { fMap = map; };
49  void SetInputBranchName(TString name) { fInputBranchName = name; }
50  void SetOutputBranchName(TString name) { fOutputBranchName = name; }
51 
52  virtual InitStatus Init() override;
53  virtual void Exec(Option_t *opt) override;
54  virtual void SetParContainers() override;
55 
57 };
58 
59 #endif //#ifndef ATSPACECHARGETASK_H
AtMap
Definition: AtMap.h:33
AtSpaceChargeTask::fSpaceChargePointArray
TClonesArray * fSpaceChargePointArray
space charge corrected MC Points (output)
Definition: AtSpaceChargeTask.h:33
AtSpaceChargeTask::SetParContainers
virtual void SetParContainers() override
Load the parameter container from the runtime database.
Definition: AtSpaceChargeTask.cxx:36
AtSpaceChargeTask::SetInputBranchName
void SetInputBranchName(TString name)
Definition: AtSpaceChargeTask.h:49
AtSpaceChargeTask::fPar
AtDigiPar * fPar
Base parameter container.
Definition: AtSpaceChargeTask.h:30
AtSpaceChargeTask::fMap
AtMapPtr fMap
AtTPC map.
Definition: AtSpaceChargeTask.h:23
AtSpaceChargeTask
Definition: AtSpaceChargeTask.h:20
AtSpaceChargeTask::fEventID
Int_t fEventID
EventID.
Definition: AtSpaceChargeTask.h:25
AtSpaceChargeTask::Exec
virtual void Exec(Option_t *opt) override
Executed for each event.
Definition: AtSpaceChargeTask.cxx:57
AtSpaceChargeTask::fOutputBranchName
TString fOutputBranchName
Definition: AtSpaceChargeTask.h:37
AtSpaceChargeTask::fMCPointArray
TClonesArray * fMCPointArray
All AtMCpoints (input)
Definition: AtSpaceChargeTask.h:32
AtSpaceChargeTask::fVelDrift
Double_t fVelDrift
Drift velocity of electron in gas. [mm/ns].
Definition: AtSpaceChargeTask.h:27
AtMapPtr
std::shared_ptr< AtMap > AtMapPtr
Definition: AtSpaceChargeTask.h:18
AtDigiPar
Definition: AtDigiPar.h:14
AtSpaceChargeTask::fInputBranchName
TString fInputBranchName
Definition: AtSpaceChargeTask.h:36
AtSpaceChargeTask::fDetPadPlane
Double_t fDetPadPlane
Position of the pad plane with respect to the entrance [mm].
Definition: AtSpaceChargeTask.h:28
AtSpaceChargeTask::SetPersistence
void SetPersistence(Bool_t val)
Definition: AtSpaceChargeTask.h:47
AtSpaceChargeTask::SetOutputBranchName
void SetOutputBranchName(TString name)
Definition: AtSpaceChargeTask.h:50
AtSpaceChargeTask::getParameters
void getParameters()
Definition: AtSpaceChargeTask.cxx:48
AtSpaceChargeTask::fIsPersistent
Bool_t fIsPersistent
If true, save container.
Definition: AtSpaceChargeTask.h:34
AtSpaceChargeTask::~AtSpaceChargeTask
~AtSpaceChargeTask()
Definition: AtSpaceChargeTask.cxx:16
AtMCPoint
Definition: AtMCPoint.h:26
AtSpaceChargeTask::AtSpaceChargeTask
AtSpaceChargeTask()
Definition: AtSpaceChargeTask.cxx:12
AtSpaceChargeTask::SetMap
void SetMap(AtMapPtr map)
Definition: AtSpaceChargeTask.h:48
AtSpaceChargeTask::processPoint
void processPoint(AtMCPoint *point)
Definition: AtSpaceChargeTask.cxx:70
AtSpaceChargeTask::ClassDefOverride
ClassDefOverride(AtSpaceChargeTask, 1)
AtSpaceChargeTask::Init
virtual InitStatus Init() override
Initiliazation of task at the beginning of a run.
Definition: AtSpaceChargeTask.cxx:18