// ///////////////////////////////////////////////////////////// // // TpcDigiPar // // // // Container class for Digitisation parameters // // class is inherited from FairParGenericSet // // // ///////////////////////////////////////////////////////////// #include "TpcDigiPar.h" #include #include #include #include "TSystem.h" #include "TpcDigiMapper.h" ClassImp(TpcDigiPar) TpcDigiPar::TpcDigiPar(const char* name,const char* title, const char* context) : FairParGenericSet(name,title,context),initialized(false), fgas(NULL), fgem(NULL), fpadplane(NULL), ffrontend(NULL), fpadshapepool(NULL), fpadResponseFile(77),fpadResponseFileName("None"),fClusterErrorFileName("") { std::cout<<"TpcDigiPar::TpcDigiPar"<add("TpcGasFile",ftpcGasFile); list->add("EField",fEField); list->add("AttachFlag",fattach); list->add("LogitudinaldiffusionFlag",fdiffuseL); list->add("TransversediffusionFlag",fdiffuseT); list->add("DriftDistortionFlag",fdistort); list->add("zGem",fzGem); list->add("zMax",fzMax); list->add("Gain",fgain); list->add("Supression", fsupression); list->add("Spread",fspread); list->add("MinSignalAmp",fminSignalAmp); list->add("rMin",frmin); list->add("rMax",frmax); list->add("PadPlaneFile",fpadPlaneFile); list->add("PadShapeFile",fpadShapes); list->add("PadShapeRange",fshaperange); list->add("PadShapeStep",fshapestep); list->add("PadShapeIntStep",fintstep); list->add("ADCThreshold",fadcthres); list->add("ADCMax",fadcmax); list->add("ADCBits",fadcbits); list->add("SamplingFreq",fsamplefreq); list->add("T0_wallclock",ft0); list->add("TimeBits",ftimebits); list->add("PSAThreshold",fpsathres); list->add("Shaper_tDiff",ftdiff); list->add("Shaper_tInt",ftint); list->add("Shaper_tSig",ftsig); list->add("TOTPSA",fpsa); list->add("GAUSSIANNOISE",fgaussianNoise); list->add("GAUSSIANNOISEAMP",fgaussianNoiseAmp); list->add("Rate",frate); list->add("ManDriftVel",fManDriftVel); list->add("AlignmentFile",fAlignmentFile); list->add("SampleThresh",fsamthr); list->add("GainCorrFile",fGainCorrFile); list->add("ClusterCorrFile",fClustCorrFile); list->add("PadResponseFile",fpadResponseFile); list->add("ClusterErrorFile",fClusterErrorFile); } Bool_t TpcDigiPar::getParams(FairParamList* list) { std::cout<<"------------------------------------------------"<fill("EField",&fEField)) {std::cout<<"par: EField not found"<fill("TpcGasFile",&ftpcGasFile)) {std::cout<<"par: TpcGasFile not found"<fill("AttachFlag",&fattach)) {std::cout<<"par: AttachFlag not found"<fill("LogitudinaldiffusionFlag",&fdiffuseL)) {std::cout<<"par: LogitudinaldiffusionFlag not found"<fill("TransversediffusionFlag",&fdiffuseT)) {std::cout<<"par: TransversediffusionFlag not found"<fill("DriftDistortionFlag",&fdistort)) {std::cout<<"par: DriftDistortionFlag not found"<fill("zGem",&fzGem)){ std::cout<<"par: zGem not found, also not used"<fill("zMax",&fzMax)) {std::cout<<"par: zMax not found"<fill("Gain",&fgain)) {std::cout<<"par: Gain not found"<fill("Supression",&fsupression)) {std::cout<<"par: Supression not found"<fill("Spread",&fspread)) {std::cout<<"par: Spread not found"<fill("MinSignalAmp",&fminSignalAmp)) {std::cout<<"par: MinSignalAmp not found"<fill("rMin",&frmin)) {std::cout<<"par: rMin not found"<fill("rMax",&frmax)) {std::cout<<"par: rMax not found"<fill("PadPlaneFile",&fpadPlaneFile)) {std::cout<<"par: PadPlaneFile not found"<fill("PadShapeFile",&fpadShapes)) {std::cout<<"par: PadShapeFile not found"<fill("PadShapeRange",&fshaperange)) {std::cout<<"par: PadShapeRange not found"<fill("PadShapeStep",&fshapestep)) {std::cout<<"par: PadShapeStep not found"<fill("PadShapeIntStep",&fintstep)) {std::cout<<"par: PadShapeIntStep not found"<fill("ADCThreshold",&fadcthres)) {std::cout<<"par: ADCThreshold not found"<fill("ADCMax",&fadcmax)) {std::cout<<"par: ADCMax not found"<fill("ADCBits",&fadcbits)) {std::cout<<"par: ADCBits not found"<fill("SamplingFreq",&fsamplefreq)) {std::cout<<"par: SamplingFreq not found"<fill("T0_wallclock",&ft0)) {std::cout<<"par: T0_wallclock not found"<fill("TimeBits",&ftimebits)) {std::cout<<"par: TimeBits not found"<fill("PSAThreshold",&fpsathres)) {std::cout<<"par: PSAThreshold not found"<fill("Shaper_tDiff",&ftdiff)) {std::cout<<"par: Shaper_tDiff not found"<fill("Shaper_tInt",&ftint)) {std::cout<<"par: Shaper_tInt not found"<fill("Shaper_tSig",&ftsig)) {std::cout<<"par: Shaper_tSig not found"<fill("TOTPSA",&fpsa)) {std::cout<<"par: TOTPSA not found"<fill("GAUSSIANNOISE",&fgaussianNoise)) {std::cout<<"par: GAUSSIANNOISE not found"<fill("GAUSSIANNOISEAMP",&fgaussianNoiseAmp)) {std::cout<<"par: GAUSSIANNOISEAMP not found"<fill("Rate",&frate)) {std::cout<<"par: Rate not found"<fill("ManDriftVel",&fManDriftVel)) { std::cout<fill("SampleThresh",&fsamthr)) { std::cout<<"par: SampleThresh not found, setting it to 0"<fill("AlignmentFile",&fAlignmentFile)) {std::cout<<"par: AlignmentFile not found"<fill("GainCorrFile",&fGainCorrFile)) {std::cout<<"par: GainCorrFile not found"<fill("ClusterCorrFile",&fClustCorrFile)) {std::cout<<"par: ClusterPosCorrFile not found"<fill("PadResponseFile",&fpadResponseFile)) { std::cout<<"par: PadResponseFile not found, using standard padresponse"<fill("ClusterErrorFile",&fClusterErrorFile)) { std::cout<<"par: ClusterErrorFile not found!"<Getenv("VMCWORKDIR"); TString parFile = sysFile+"/tpc/parfiles/tpc.files.par"; infile.open(parFile.Data()); // infile.open("tpc/tpc.files.par"); if(!infile){ std::cout<<"File " << parFile.Data() << " not found!"<getFrontend()->t0(); double v0=fManDriftVel; if(v0<=0.){ v0=this->getGas()->VDrift(); } return ft0*v0; } double TpcDigiPar::windowMax() { //double end = z_from_tick(fmaxSamples); int maxSamples=this->getFrontend()->maxSamples(); double v0=fManDriftVel; if(v0<=0.){ v0=this->getGas()->VDrift(); } double tbin=1./this->getFrontend()->samplingFrequency()*1000; //1/MHz ->ns double end= (maxSamples*tbin+ft0)*v0; //should be same as z_from_tick if(end>fzMax){ return fzMax; } return end; }