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"
17#include "CgemDigitizerSvc/ICgemDigitizerSvc.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"
26#include "CgemDigitizerSvc/Ionization.h"
27#include "CgemDigitizerSvc/IonizationGar.h"
28#include "CgemDigitizerSvc/IonizationGTS.h"
29#include "CgemDigitizerSvc/DriftAndAvalanche.h"
30#include "CgemDigitizerSvc/SamplingGar.h"
31#include "CgemDigitizerSvc/SamplingGTS.h"
32#include "CgemDigitizerSvc/Induction.h"
33#include "CgemDigitizerSvc/InductionGar.h"
34#include "CgemDigitizerSvc/InductionGTS.h"
45 virtual StatusCode
queryInterface(
const InterfaceID& riid,
void** ppvUnknown);
52 StatusCode
setTrack(
int layer,
int particle,
int charge,
double p,
double trkPosIn[],
double trkPosOut[]);
68 void positionToStrips();
74 bool m_debugInduction;
88 std::vector<double> m_multiEx;
89 std::vector<double> m_multiEy;
90 std::vector<double> m_multiEz;
91 std::vector<double> m_multiEt;
96 std::vector<int> m_xstripSheet;
97 std::vector<int> m_xstripID;
98 std::vector<int> m_vstripSheet;
99 std::vector<int> m_vstripID;
100 std::vector<double> m_xstripQ;
101 std::vector<double> m_vstripQ;
102 std::vector<double> m_xstripT;
103 std::vector<double> m_vstripT;
104 std::map<int, int> m_mapQ[2][2];
105 std::map<int, double> m_mapT[2][2];
106 std::map<int, TH1D*> m_mapThis[2][2];
109 NTuple::Tuple* m_tuple;
110 NTuple::Item<int> m_ntNIonE;
114 NTuple::Item<int> m_ntNMultiE;
115 NTuple::Item<int> m_ntNxstrips;
116 NTuple::Item<int> m_ntNvstrips;
117 NTuple::Array<double> m_ntxstripQ;
118 NTuple::Array<double> m_ntxstripT;
119 NTuple::Array<double> m_ntvstripQ;
120 NTuple::Array<double> m_ntvstripT;
121 NTuple::Array<double> m_XstripID;
122 NTuple::Array<double> m_VstripID;
virtual StatusCode finalize()
double getXstripT(int n) const
double getVstripQ(int n) const
int getVstripSheet(int n) const
CgemDigitizerSvc(const std::string &name, ISvcLocator *svcloc)
int getVstripID(int n) const
int getXstripSheet(int n) const
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