Dune35tSimChannelExtractService.h
Go to the documentation of this file.
1 // Dune35tSimChannelExtractService.h
2 
3 // David Adams
4 // December 2015
5 //
6 // Interface for a service that extracts charge from
7 // a SimChannel object and assigns it to ticks.
8 //
9 // The charge is distributed over two arrays: sig and xsig.
10 // The first is for normal collection/induction. The second
11 // is for charge that is collected on the wire even if it is
12 // an induction plane.
13 
14 #ifndef Dune35tSimChannelExtractService_H
15 #define Dune35tSimChannelExtractService_H
16 
17 #include <vector>
23 
24 namespace sim {
25 class SimChannel;
26 }
27 
29 
30 public:
31 
33 
34  int extract(detinfo::DetectorClocksData const& clockData,
35  const sim::SimChannel* psc, AdcSignalVector& sig) const;
36 
37  std::ostream& print(std::ostream& out =std::cout, std::string prefix ="") const;
38 
39 private:
40 
41  typedef enum {
43  } GapType_t;
44 
45  void init();
46  GapType_t combtest35t(double x, double y, double z) const;
47 
48  int GapHasDeflector(double x, double y, double z) const;
49 
52  unsigned int m_ntick;
53 
54  unsigned int fFirstCollectionChannel; // 1st coll channel is used for shaping extra charge
55 
56  bool m_init = false;
57 
58  std::vector<float> fFractUUCollect; // fraction of charge that collects on U (non-transparency) when charge drifts over the comb holding U wires
59  std::vector<float> fFractUVCollect; // fraction of charge that collects on U (non-transparency) when charge drifts over the comb holding V wires
60  std::vector<float> fFractVUCollect; // fraction of charge that collects on V (non-transparency) when charge drifts over the comb holding U wires
61  std::vector<float> fFractVVCollect; // fraction of charge that collects on V (non-transparency) when charge drifts over the comb holding V wires
62  std::vector<float> fFractUUMiss; // fraction of charge that gets missed on U when charge drifts over the comb holding U
63  std::vector<float> fFractUVMiss; // fraction of charge that gets missed on U when charge drifts over the comb holding V
64  std::vector<float> fFractVUMiss; // fraction of charge that gets missed on V when charge drifts over the comb holding U
65  std::vector<float> fFractVVMiss; // fraction of charge that gets missed on V when charge drifts over the comb holding V
66  std::vector<float> fFractZUMiss; // fraction of charge that gets missed on Z (collection) when charge drifts over the comb holding U
67  std::vector<float> fFractZVMiss; // fraction of charge that gets missed on Z (collection) when charge drifts over the comb holding V
68  std::vector<float> fFractHorizGapUMiss; // fraction of charge in the horizontal gap that is missing on U (and not collected)
69  std::vector<float> fFractVertGapUMiss; // fraction of charge in the horizontal gaps that is missing on U
70  std::vector<float> fFractHorizGapVMiss; // fraction of charge in the horizontal gap that is missing on V
71  std::vector<float> fFractVertGapVMiss; // fraction of charge in the horizontal gaps that is missing on V
72  std::vector<float> fFractHorizGapZMiss; // fraction of charge in the horizontal gap that is missing on Z (collection)
73  std::vector<float> fFractVertGapZMiss; // fraction of charge in the horizontal gaps that is missing on Z (collection
74  std::vector<float> fFractHorizGapUCollect; // fraction of charge in the horizontal gap that collects on U
75  std::vector<float> fFractVertGapUCollect; // fraction of charge in the horizontal gaps that collects on U
76  std::vector<float> fFractHorizGapVCollect; // fraction of charge in the horizontal gap that collects on V
77  std::vector<float> fFractVertGapVCollect; // fraction of charge in the horizontal gaps that collects on V
78 
79  // boundaries of the combs -- cached here for speed
80  double zcomb1,zcomb2,zcomb3,zcomb4,zcomb5,zcomb6;
81  double zcomb7,zcomb8,zcomb9,zcomb10,zcomb11,zcomb12;
82  double zcomb13,zcomb14,zcomb15,zcomb16,zcomb17,zcomb18;
83  double ycomb1,ycomb2,ycomb3,ycomb4,ycomb5,ycomb6;
84  double ycomb7,ycomb8,ycomb9,ycomb10,ycomb11,ycomb12;
85  double ycomb13,ycomb14,ycomb15,ycomb16,ycomb17,ycomb18;
86 
87 };
88 
90 
91 #endif
Energy deposited on a readout channel by simulated tracks.
Definition: SimChannel.h:140
std::string string
Definition: nybbler.cc:12
DECLARE_ART_SERVICE_INTERFACE_IMPL(MySharedService, art::test::MyServiceInterface, SHARED) DEFINE_ART_SERVICE_INTERFACE_IMPL(MySharedService
init
Definition: train.py:42
Service to provide microboone-specific signal shaping for simulation (convolution) and reconstruction...
art::ServiceHandle< util::SignalShapingServiceDUNE > m_psss
art::ServiceHandle< util::LArFFT > m_pfft
Code to link reconstructed objects back to the MC truth information.
Contains all timing reference information for the detector.
std::vector< AdcSignal > AdcSignalVector
Definition: AdcTypes.h:22
list x
Definition: train.py:276