/home/bes3soft/bes3soft/Boss/7.0.2/dist/7.0.2/Simulation/BOOST/MdcSim/MdcSim-00-00-73/MdcSim/BesMdcDigitizer.hh

Go to the documentation of this file.
00001 //---------------------------------------------------------------------------//
00002 //      BOOST --- BESIII Object_Oriented Simulation Tool                     //
00003 //---------------------------------------------------------------------------//
00004 //Description:
00005 //Author: Yuan Ye(yuany@mail.ihep.ac.cn)
00006 //Created: Oct. 26, 2004
00007 //Modified:
00008 //Comment:
00009 //---------------------------------------------------------------------------//
00010 
00011 #ifndef BesMdcDigitizer_h
00012 #define BesMdcDigitizer_h 1
00013 
00014 class BesMdcDigitizerMessenger;
00015 class TFile;
00016 class TH1F;
00017 class G4Svc;
00018 #include "GaudiKernel/NTuple.h"
00019 
00020 #include "G4VDigitizerModule.hh"
00021 #include "BesMdcDigi.hh"
00022 #include "BesMdcGeoParameter.hh"
00023 #include "BesMdcCalTransfer.hh"
00024 #include "MdcTunningSvc/IMdcTunningSvc.h"
00025 #include "MdcTunningSvc/MdcTunningSvc.h"
00026 
00027 #include "globals.hh"
00028 #include <vector>
00029 
00030 class BesMdcDigitizer : public G4VDigitizerModule
00031 {
00032 public:
00033   BesMdcDigitizer(G4String modName);
00034   ~BesMdcDigitizer();
00035   
00036   //necessary digi collection object must be constructed and set to 
00037   //G4DCofThisEvent by StoreDigiCollection protected method.
00038   virtual void Digitize();
00039   void SetNoiseFlag(G4int flag){noiseFlag=flag;}  
00040   void SetNoiseType(G4int type){noiseType=type;}
00041   void SetNoiseLevel(G4double level){noiseLevel=level;}  
00042 
00043   void SetSmearFlag(G4int flag){smearFlag=flag;}
00044   void SetMdcDRes(G4double res){mdcDRes=res;}
00045 
00046   void SetEffFlag(G4int flag){effFlag=flag;}
00047   void SetEff(G4int layer, G4double eff);
00048 
00049 
00050 private:
00051   G4double Smear(G4double);
00052   G4double Smear(G4double, G4double,G4double);
00053   G4double Smear(G4double, G4double,G4double,G4double,G4double,G4double);
00054   G4double Smear(G4double, G4double,G4double,G4double,G4double,G4double,G4double,G4double,G4double);//liukai 2012-6-4
00055   void AddNoise(void);
00056   void AddNoise2(void);
00057 private:
00058   G4int noiseFlag; //1: Add noise; 0: do nothing
00059   G4int noiseType; //Noise level distribution mode. 0: N(r)=N0; 1: N(r)=N0*r0/r; 2: N(r)=N0*r0^2/r^2
00060   G4double noiseLevel; // Noise level of first layer
00061   G4double maxNoiseT; //Max drift time of Mdc, maybe change to layer dependence
00062 
00063   G4int smearFlag; //0: do nothing; 1: smear(double gauss); 2: smear(fix sigma)  default is 1
00064   G4double mdcDRes; //Space resolution of wire, default is 130um by now
00065 
00066   G4int effFlag;//0: from CalFunSvc; 1: from file
00067   vector<G4double>   layerEff;
00068   vector<G4double>   mixLevel;
00069 
00070   G4int digiPointer[43][288];//pointer to digisCollection
00071   BesMdcDigisCollection* digisCollection;         
00072   BesMdcDigitizerMessenger* digitizerMessenger;
00073   BesMdcGeoParameter* mdcGeoPointer;
00074   BesMdcCalTransfer* mdcCalPointer;
00075   MdcTunningSvc* mdcTunningSvc;
00076   
00077   TFile* f;
00078   TH1F* h1;
00079   TH1F* h2;
00080   TH1F* h3; 
00081    
00082   G4Svc* m_G4Svc;
00083   NTuple::Tuple* m_tupleMdc;
00084   NTuple::Item<long> m_NHits;
00085   NTuple::Item<long> m_layerId;
00086   NTuple::Item<long> m_cellId;
00087   NTuple::Item<double> m_edep;
00088   NTuple::Item<double> m_driftD; 
00089  // NTuple::Item<double> m_driftT;
00090   NTuple::Item<double> m_globalT;
00091   NTuple::Item<double> m_theta;
00092   NTuple::Item<double> m_enterAngle;
00093   NTuple::Item<double> m_driftDNew;
00094   NTuple::Item<double> m_driftTNew;
00095  //   NTuple::Item<double> m_adc;
00096  //   NTuple::Item<double> m_tdc;
00097 };
00098 
00099 #endif
00100 

Generated on Tue Nov 29 23:14:26 2016 for BOSS_7.0.2 by  doxygen 1.4.7