BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
Simulation/BOOST/MucSim/include/MucSim/BesMucNoise.hh
Go to the documentation of this file.
1//
2//
3//
4//
5
6#ifndef BesMucNoise_h
7#define BesMucNoise_h 1
8
9#include "GaudiKernel/IMessageSvc.h"
10#include "GaudiKernel/MsgStream.h"
11
12#include "BesMucHit.hh"
13#include "G4Event.hh"
14#include "G4LogicalVolume.hh"
15#include "G4Step.hh"
16
17#include "TMath.h"
18
19#include "MucCalib/MucIdTransform.h"
20#include "MucCalib/MucMark.h"
21#include "MucCalib/MucStructConst.h"
22
23#include "MucCalibConstSvc/IMucCalibConstSvc.h"
24// #include "MucCalibConstSvc/MucCalibConstSvc.h"
25
26using namespace std;
27
28class BesMucNoise {
29public:
32
33 static BesMucNoise* Instance( void );
34 void Initialize( G4String filename, G4LogicalVolume* logicalMuc );
35 void Initialize( G4String filename, G4LogicalVolume* logicalMuc, G4String temp );
36
38 G4int AddNoise( int model, BesMucHitsCollection* MucHitCollection,
39 BesMucHitsCollection* MucHitList );
40 G4int NoiseByCnt( BesMucHitsCollection* MucHitCollection, BesMucHitsCollection* MucHitList );
41 G4int NoiseByNosRatio( BesMucHitsCollection* MucHitCollection,
42 BesMucHitsCollection* MucHitList );
43 G4int NoiseSampling( int level, int prt, int seg, int lay, int strip );
44 G4int GetStripNo( G4int, G4int, G4int );
45 G4int IsNearestStrip( G4int, G4int, G4int, G4int, G4float );
46 bool IsExist( BesMucHit* aNoiseHit, BesMucHitsCollection* aMucHitList );
47 G4float Factorial( G4int i );
48 void InitProb();
49
50private:
51 static const int m_kPart = 3;
52 static const int m_kSegment[m_kPart];
53 static const int m_kAbsorber[m_kPart];
54 static const int m_kGap[m_kPart];
55 static const int m_kPanel[m_kPart];
56 static const int m_kGasChamber = 2;
57
58 G4double m_noise[3][8][9];
59 G4double m_noise_strip[3][8][9][112];
60 G4float area[3][8][9][112];
61 G4float strip_area[3][8][9][112];
62 G4float box_area[3][8][9];
63 double m_HitMean;
64 double m_Prob[20][2];
65 static BesMucNoise* fPointer;
66
67 int m_noiseLevel; // 2: box; 3: strip
68 IMucCalibConstSvc* m_ptrCalibSvc; // pointer of calibration constants service
69 MucIdTransform* m_ptrIdTr; // pointer of muc id transform
70};
71#endif
G4THitsCollection< BesMucHit > BesMucHitsCollection
#define prt(n)
static BesMucNoise * Instance(void)
G4int AddNoise(int model, BesMucHitsCollection *MucHitCollection, BesMucHitsCollection *MucHitList)
bool IsExist(BesMucHit *aNoiseHit, BesMucHitsCollection *aMucHitList)
void CheckCalibSvc()
G4int NoiseByNosRatio(BesMucHitsCollection *MucHitCollection, BesMucHitsCollection *MucHitList)
void Initialize(G4String filename, G4LogicalVolume *logicalMuc, G4String temp)
G4int IsNearestStrip(G4int, G4int, G4int, G4int, G4float)
G4float Factorial(G4int i)
void InitProb()
G4int NoiseByCnt(BesMucHitsCollection *MucHitCollection, BesMucHitsCollection *MucHitList)
G4int NoiseSampling(int level, int prt, int seg, int lay, int strip)
G4int GetStripNo(G4int, G4int, G4int)
void Initialize(G4String filename, G4LogicalVolume *logicalMuc)