BOSS 6.6.4.p01
BESIII Offline Software System
Loading...
Searching...
No Matches
BesMdcSD.hh
Go to the documentation of this file.
1//---------------------------------------------------------------------------//
2// BOOST --- BESIII Object_Oriented Simulation Tool //
3//---------------------------------------------------------------------------
4//Description: Sensitive detector definition for axial layers of MDC
5//Author: Yuan Ye([email protected])
6//Created: 4 Dec, 2003
7//Modified:
8//Comment: Used in "BesMdc"
9//---------------------------------------------------------------------------//
10
11#ifndef BesMdcSD_h
12#define BesMdcSD_h 1
13class TFile;
14class TH1F;
15class G4Svc;
16
17//#include "G4VSensitiveDetector.hh"
19#include "BesMdcHit.hh"
20#include "BesMdcGeoParameter.hh"
21#include "BesMdcCalTransfer.hh"
25#include "GaudiKernel/NTuple.h"
26#include "TF1.h"
27
28#include <vector>
29
30class G4Step;
31class G4HCofThisEvent;
33class G4Svc;
34
36{
37public:
38 BesMdcSD(G4String);
39 ~BesMdcSD();
40
41 void Initialize(G4HCofThisEvent*);
42 G4bool ProcessHits(G4Step*, G4TouchableHistory*);
43 void EndOfEvent(G4HCofThisEvent*);
44
45 void BeginOfTruthEvent(const G4Event*);
46 void EndOfTruthEvent(const G4Event*);
47
48 G4double Distance(G4int, G4int,G4ThreeVector,G4ThreeVector,G4ThreeVector&,G4double&);
49
50 void dedxFuncInti(void);
51
52private:
53 G4int hitPointer[43][288],truthPointer[43][288];
54 BesMdcHitsCollection* hitsCollection;
55 BesMdcHitsCollection* truthCollection;
56 BesMdcGeoParameter* mdcGeoPointer;
57 BesMdcCalTransfer* mdcCalPointer;
58 MdcGeomSvc* mdcGeomSvc;
59 G4Svc* m_G4Svc;
60 TF1 *dEdE_mylanfunc;
61
62 ///dedx sim ---------------------------
63 CalibDataSvc* m_calibDataSvc;
64 IDedxCurSvc* m_pDedxCurSvc;
65 TH1F* m_dedx_hists;
66 G4int m_numDedxHists;
67 G4int m_numBg;
68 std::vector<G4double> m_bgRange;
69 G4int GetBetagammaIndex(G4double bg);
70 G4int GetAngleIndex(G4double);
71 G4int GetChargeIndex(G4int);
72 G4double GetValDedxCurve(G4double bg, G4double charge);
73 G4double dedxSample(G4double betagamma, G4double length, G4double theta);
74
75 //dedx ntuple
76 NTuple::Tuple* m_tupleMdc;
77 NTuple::Item<double> m_betaGamma;
78 NTuple::Item<double> m_fitval;
79 NTuple::Item<double> m_random;
80 NTuple::Item<double> m_dedx;
81 NTuple::Item<double> m_de;
82 //NTuple::Item<double> m_length;
83 NTuple::Item<double> m_charge;
84 NTuple::Item<double> m_costheta;
85 ///------------------------------------
86};
87
88#endif
89
G4THitsCollection< BesMdcHit > BesMdcHitsCollection
Definition: BesMdcHit.hh:78
void bg(int i, double p)
Definition: betagamma.cxx:1
void dedxFuncInti(void)
Definition: BesMdcSD.cc:433
void BeginOfTruthEvent(const G4Event *)
Definition: BesMdcSD.cc:128
void EndOfTruthEvent(const G4Event *)
Definition: BesMdcSD.cc:135
G4double Distance(G4int, G4int, G4ThreeVector, G4ThreeVector, G4ThreeVector &, G4double &)
Definition: BesMdcSD.cc:372
G4bool ProcessHits(G4Step *, G4TouchableHistory *)
Definition: BesMdcSD.cc:146
void EndOfEvent(G4HCofThisEvent *)
Definition: BesMdcSD.cc:359
void Initialize(G4HCofThisEvent *)
Definition: BesMdcSD.cc:110
~BesMdcSD()
Definition: BesMdcSD.cc:106
Definition: G4Svc.h:32