1#ifndef CGEMDIGITIZERSVC_H
2#define CGEMDIGITIZERSVC_H
4#include <CLHEP/Units/PhysicalConstants.h>
5#include <CLHEP/Geometry/Point3D.h>
10#include "GaudiKernel/Algorithm.h"
11#include "GaudiKernel/Property.h"
12#include "GaudiKernel/MsgStream.h"
14#include "GaudiKernel/IIncidentListener.h"
15#include "GaudiKernel/Service.h"
16#include "GaudiKernel/IInterface.h"
18#include "GaudiKernel/IDataProviderSvc.h"
19#include "GaudiKernel/IIncidentListener.h"
21#include "GaudiKernel/NTuple.h"
22#include "GaudiKernel/INTupleSvc.h"
24#include "CLHEP/Vector/ThreeVector.h"
50 virtual StatusCode
queryInterface(
const InterfaceID& riid,
void** ppvUnknown);
57 StatusCode
setTrack(
int layer,
int particle,
int charge,
double p,
double trkPosIn[],
double trkPosOut[]);
58 StatusCode
setTrack(
int layer, std::vector<int>particle, std::vector<int> charge, std::vector<double> p, std::vector<vector<double> > trkPosIn, std::vector<vector<double> > trkPosOut);
75 double getQsaturation(
int layer,
int sheet,
int view,
int id) {
return Qsaturation[layer][sheet][view][id]; }
79 void positionToStrips();
81 void checkMemorySize();
87 bool m_debugInduction;
89 std::string m_LUTFilePath;
91 vector<double> m_GainMultiplier;
92 double m_TransMultiplier;
93 double m_DiffuMultiplier;
94 double m_ScaleSignalX;
96 double Qsaturation[3][2][2][1395];
98 int m_Ngaps_microSector;
99 vector<double> m_gapShift_microSector;
100 vector<double> m_microSector_width;
101 vector<double> m_QinGausSigma;
102 double m_gap_microSector;
107 bool m_samplingDebugging;
122 const std::vector<Float_t>* m_pmultiEx;
123 const std::vector<Float_t>* m_pmultiEy;
124 const std::vector<Float_t>* m_pmultiEz;
125 const std::vector<Float_t>* m_pmultiEt;
130 std::vector<int> m_xstripSheet;
131 std::vector<int> m_xstripID;
132 std::vector<int> m_vstripSheet;
133 std::vector<int> m_vstripID;
134 std::vector<double> m_xstripQ;
135 std::vector<double> m_vstripQ;
136 std::vector<double> m_xstripQ2;
137 std::vector<double> m_vstripQ2;
138 std::vector<double> m_xstripT;
139 std::vector<double> m_vstripT;
140 std::vector<double> m_xfirstT;
141 std::vector<double> m_vfirstT;
142 std::map<int, int> m_mapQ[2][2];
143 std::map<int, double> m_mapT[2][2];
144 std::map<int, TH1D*> m_mapThis[2][2];
147 NTuple::Tuple* m_tuple;
148 NTuple::Item<int> m_ntNIonE;
152 NTuple::Item<int> m_ntNMultiE;
153 NTuple::Item<int> m_ntNxstrips;
154 NTuple::Item<int> m_ntNvstrips;
155 NTuple::Array<double> m_ntxstripQ;
156 NTuple::Array<double> m_ntxstripT;
157 NTuple::Array<double> m_ntvstripQ;
158 NTuple::Array<double> m_ntvstripT;
159 NTuple::Array<double> m_XstripID;
160 NTuple::Array<double> m_VstripID;
std::map< IndexGar, std::vector< int > > HitHistMap
virtual StatusCode finalize()
double getXstripT(int n) const
double getVstripQ(int n) const
int getVstripSheet(int n) const
int getVstripID(int n) const
double getQsaturation(int layer, int sheet, int view, int id)
int getXstripSheet(int n) const
double getXstripQ2(int n) const
double getVfirstT(int n) const
double getVstripQ2(int n) const
StatusCode setTrack(int layer, std::vector< int >particle, std::vector< int > charge, std::vector< double > p, std::vector< vector< double > > trkPosIn, std::vector< vector< double > > trkPosOut)
virtual StatusCode initialize()
StatusCode setTrack(int layer, int particle, int charge, double p, double trkPosIn[], double trkPosOut[])
virtual StatusCode queryInterface(const InterfaceID &riid, void **ppvUnknown)
double getVstripT(int n) const
double getXstripQ(int n) const
int getXstripID(int n) const
double getXfirstT(int n) const