ATTPCROOT  0.3.0-alpha
A ROOT-based framework for analyzing data from active target detectors
AtPulseLineTask.h
Go to the documentation of this file.
1 /*****************************************************************/
2 /* AtPulseTask: Simulates the ionized electrons which are */
3 /* drifted and amplified by avalanche when reaching the mesh. */
4 /* Log: Created in 24-10-2016 */
5 /* Author: Nathan Watwood (NSCL) */
6 /* ayyadlim@nscl.msu.edu */
7 /*****************************************************************/
8 #ifndef AtPULSELINETASK_H
9 #define AtPULSELINETASK_H
10 
11 #include "AtPulseTask.h"
12 
13 #include <Rtypes.h>
14 
15 #include <map>
16 #include <vector>
17 
18 #include "Math/Vector3Dfwd.h"
19 
20 class AtSimulatedLine;
21 class AtSimulatedPoint;
22 class TBuffer;
23 class TClass;
24 class TMemberInspector;
25 
26 class AtPulseLineTask : public AtPulseTask {
27 
28 private:
29  UInt_t fNumIntegrationPoints = 1000;
30  UShort_t fNumSigmaToIntegrateZ = 3;
31 
32  std::map<Int_t, Float_t> fXYintegrationMap;
33 
34  void generateIntegrationMap(AtSimulatedLine &line);
35  Int_t throwRandomAndGetBinAfterDiffusion(const ROOT::Math::XYZVector &loc, Double_t diffusionSigma);
36 
37  // Returns the bin ID (binMin) that the zIntegral starts from
38  // fills zIntegral with the integral for bins starting with binMin, inclusive
39  Int_t integrateTimebuckets(std::vector<double> &zIntegral, AtSimulatedLine *line);
40  virtual bool gatherElectronsFromSimulatedPoint(AtSimulatedPoint *line) override;
41 
42 public:
45 
46  void SetNumIntegrationPoints(UInt_t numPoints) { fNumIntegrationPoints = numPoints; }
47  void SetNumSigmaToIntegrateZ(UShort_t zScore) { fNumSigmaToIntegrateZ = zScore; }
48  UInt_t GetNumIntegrationPoints() { return fNumIntegrationPoints; }
49  UShort_t SetNumSigmaToIntegrateZ() { return fNumSigmaToIntegrateZ; }
50 
52 };
53 
54 #endif //#ifndef AtPULSELINETASK_H
AtPulseLineTask::GetNumIntegrationPoints
UInt_t GetNumIntegrationPoints()
Definition: AtPulseLineTask.h:48
AtPulseLineTask::ClassDefOverride
ClassDefOverride(AtPulseLineTask, 2)
XYZVector
ROOT::Math::XYZVector XYZVector
Definition: AtFindVertex.h:20
AtPulseLineTask
Definition: AtPulseLineTask.h:26
AtSimulatedLine
Definition: AtSimulatedLine.h:17
AtPulseLineTask::SetNumSigmaToIntegrateZ
void SetNumSigmaToIntegrateZ(UShort_t zScore)
Definition: AtPulseLineTask.h:47
AtSimulatedPoint
Definition: AtSimulatedPoint.h:16
AtPulseLineTask::SetNumSigmaToIntegrateZ
UShort_t SetNumSigmaToIntegrateZ()
Definition: AtPulseLineTask.h:49
AtPulseTask.h
AtPulseTask
Definition: AtPulseTask.h:30
AtPulseLineTask::SetNumIntegrationPoints
void SetNumIntegrationPoints(UInt_t numPoints)
Definition: AtPulseLineTask.h:46
AtPulseLineTask::AtPulseLineTask
AtPulseLineTask()
Definition: AtPulseLineTask.cxx:30
AtPulseLineTask::~AtPulseLineTask
~AtPulseLineTask()