#include <SimRomanPot/SimFP420/interface/ChargeDividerFP420.h>
Public Member Functions | |
ChargeDividerFP420 (double pit, double az420, double azD2, double azD3) | |
CDividerFP420::ionization_type | divide (const PSimHit &, const double &) |
virtual | ~ChargeDividerFP420 () |
Private Member Functions | |
float | DeconvolutionShape (const PSimHit &) |
void | fluctuateEloss (int particleId, float momentum, float eloss, float length, int NumberOfSegmentation, float elossVector[]) |
float | PeakShape (const PSimHit &) |
float | TimeResponse (const PSimHit &) |
Private Attributes | |
int | chargedivisionsPerHit |
bool | decoMode |
double | deltaCut |
LandauFP420 | fluctuate |
bool | fluctuateCharge |
bool | peakMode |
double | pitchcur |
FP420NumberingScheme * | theFP420NumberingScheme |
double | z420 |
double | zD2 |
double | zD3 |
float | zStationBegPos [4] |
Definition at line 13 of file ChargeDividerFP420.h.
ChargeDividerFP420::ChargeDividerFP420 | ( | double | pit, | |
double | az420, | |||
double | azD2, | |||
double | azD3 | |||
) | [explicit] |
Definition at line 22 of file ChargeDividerFP420.cc.
References chargedivisionsPerHit, GenMuonPlsPt100GeV_cfg::cout, decoMode, deltaCut, lat::endl(), fluctuateCharge, peakMode, pitchcur, theFP420NumberingScheme, z420, zD2, zD3, and zStationBegPos.
00022 { 00023 // pit - is really moduleThickness here !!! 00024 #ifdef mydigidebug3 00025 cout << "ChargeDividerFP420.h: constructor" << endl; 00026 cout << "peakMode = " << peakMode << "fluctuateCharge= "<< fluctuateCharge << "chargedivisionsPerHit = " << chargedivisionsPerHit << "deltaCut= "<< deltaCut << endl; 00027 #endif 00028 // Initialization: 00029 theFP420NumberingScheme = new FP420NumberingScheme(); 00030 00031 00032 // Run APV in peak instead of deconvolution mode, which degrades the time resolution 00033 // peakMode=true ; // APVpeakmode 00034 peakMode=false; // peakMode=true --> APVconvolutionmode 00035 decoMode=false;// decoMode=true --> deconvolution mode 00036 // Enable interstrip Landau fluctuations within a cluster. 00037 fluctuateCharge=true; 00038 00039 // Number of segments per strip into which charge is divided during simulation. 00040 // If large the precision of simulation improves. 00041 chargedivisionsPerHit=10; // = or =20 00042 00043 // delta cutoff in MeV, has to be same as in OSCAR (0.120425 MeV corresponding // to 100um range for electrons) 00044 //SimpleConfigurable<double> ChargeDividerFP420::deltaCut(0.120425, 00045 deltaCut=0.120425; // DeltaProductionCut 00046 00047 pitchcur= pit;// pitchcur - is really moduleThickness here !!! 00048 00049 // but position before Stations: 00050 z420 = az420; // dist between centers of 1st and 2nd stations 00051 zD2 = azD2; // dist between centers of 1st and 2nd stations 00052 zD3 = azD3; // dist between centers of 1st and 3rd stations 00053 00054 00055 00056 // . 00057 // . 00058 // -300 -209.2 -150 -90.8 0 +300 00059 // . 00060 // X | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | X station . 00061 // 8*13.3+ 2*6 = 118.4 center . 00062 // . 00063 //zStationBegPos[0] = -150. - (118.4+10.)/2 + z420; // 10. -arbitrary 00064 zStationBegPos[0] = -40. + z420; // 5 superplanes per station 79.7mm: -40.- left edge of Station 00065 zStationBegPos[1] = zStationBegPos[0]+zD2; 00066 zStationBegPos[2] = zStationBegPos[0]+zD3; 00067 zStationBegPos[3] = zStationBegPos[0]+2*zD3; 00068 00069 }
ChargeDividerFP420::~ChargeDividerFP420 | ( | ) | [virtual] |
Definition at line 72 of file ChargeDividerFP420.cc.
References theFP420NumberingScheme.
00072 { 00073 // if(verbosity>0) { 00074 // std::cout << "Destroying a ChargeDividerFP420" << std::endl; 00075 // } 00076 delete theFP420NumberingScheme; 00077 00078 }
float ChargeDividerFP420::DeconvolutionShape | ( | const PSimHit & | hit | ) | [private] |
Definition at line 330 of file ChargeDividerFP420.cc.
References GenMuonPlsPt100GeV_cfg::cout, PSimHit::detUnitId(), dist(), lat::endl(), PSimHit::energyLoss(), funct::exp(), funct::sqrt(), PSimHit::tof(), FP420NumberingScheme::unpackFP420Index(), and zStationBegPos.
Referenced by TimeResponse().
00330 { 00331 // 00332 // Aim: return the energyLoss weighted with a gaussian centered at t0 00333 // 00334 // float xEntry = hit.getX() - hit.getVx(); 00335 // float yEntry = hit.getY() - hit.getVy(); 00336 // float zEntry = hit.getZ() - hit.getVz(); 00337 float xEntry = 0.5; 00338 float yEntry = 0.5; 00339 float zEntry = 1000.; 00340 00341 // unsigned int unitID = hit.getUnitID(); 00342 unsigned int unitID = hit.detUnitId(); 00343 // int sScale = 20; 00344 int det, zside, sector, zmodule; 00345 FP420NumberingScheme::unpackFP420Index(unitID, det, zside, sector, zmodule); 00346 // intindex is a continues numbering of FP420 00347 // int zScale=2; unsigned int intindex = sScale*(sector - 1)+zScale*(zmodule - 1)+zside; 00348 // int zScale=10; unsigned int intindex = sScale*(sector - 1)+zScale*(zside - 1)+zmodule; 00349 00350 float RRR = sqrt(xEntry*xEntry + yEntry*yEntry + zEntry*zEntry); 00351 float costheta = zEntry / RRR ; 00352 // float theta = acos(min(max(costheta,float(-1.)),float(1.))); 00353 // float dist = hit.det().position().mag(); 00354 // float dist = hit.localPosition().mag();//AZ 00355 // float dist = hit.getEntry().mag(); 00356 // float dist = hit.getEntryLocalP().mag(); 00357 float dist = (zStationBegPos[sector-1] - 420000.) / costheta; 00358 // float dist = (zStationBegPos[sector-1] - hit.getVz()) / costheta; 00359 dist = dist/10.;// mm --> cm as light velocity = 30 cm/ns 00360 #ifdef mydigidebug3 00361 std::cout << "sector=" << sector << std::endl; 00362 std::cout << "zmodule=" << zmodule << std::endl; 00363 std::cout << "zStationBegPos[sector-1]=" << zStationBegPos[sector-1] << std::endl; 00364 std::cout << "RRR=" << RRR << std::endl; 00365 std::cout << "costheta=" << costheta << std::endl; 00366 std::cout << "unitID=" << unitID << std::endl; 00367 //std::cout << "thetaEntry=" << thetaEntry << std::endl; 00368 //std::cout << "my theta=" << theta*180./3.1415927 << std::endl; 00369 std::cout << "dist found =" << dist << std::endl; 00370 #endif 00371 00372 float t0 = dist/30.; // light velocity = 30 cm/ns 00373 float SigmaShape = 12.; 00374 //fun/pl 1*exp(-0.5*((0.1/30-x)/0.1)**2) 0. 0.08 00375 // float SigmaShape = 22.; 00376 // float tofNorm = (hit.tof() - t0)/SigmaShape; 00377 float tofNorm = (hit.tof() - t0)/SigmaShape; 00378 // Time when read out relative to time hit produced. 00379 float readTimeNorm = -tofNorm; 00380 // return the energyLoss weighted with a gaussian centered at t0 00381 // return hit.energyLoss()*exp(-0.5*readTimeNorm*readTimeNorm); 00382 #ifdef mydigidebug33 00383 std::cout << "ChargeDividerFP420:DeconvolutionShape::dist=" << dist << std::endl; 00384 std::cout << "t0=" <<t0 << std::endl; 00385 std::cout << "hit.getTof()=" << hit.tof() << std::endl; 00386 std::cout << "tofNorm=" << tofNorm << std::endl; 00387 std::cout << "hit.getEnergyLoss()=" << hit.energyLoss() << std::endl; 00388 std::cout << "exp(-0.5*readTimeNorm*readTimeNorm)=" << exp(-0.5*readTimeNorm*readTimeNorm) << std::endl; 00389 std::cout << "return=" << hit.energyLoss()*exp(-0.5*readTimeNorm*readTimeNorm) << std::endl; 00390 #endif 00391 return hit.energyLoss()*exp(-0.5*readTimeNorm*readTimeNorm); 00392 // return hit.getEnergyLoss(); 00393 }
CDividerFP420::ionization_type ChargeDividerFP420::divide | ( | const PSimHit & | hit, | |
const double & | pitchcur | |||
) | [virtual] |
Implements CDividerFP420.
Definition at line 80 of file ChargeDividerFP420.cc.
References chargedivisionsPerHit, GenMuonPlsPt100GeV_cfg::cout, decoMode, deltaCut, direction, lat::endl(), relval_parameters_module::energy, PSimHit::energyLoss(), PSimHit::entryPoint(), PSimHit::exitPoint(), fluctuateCharge, fluctuateEloss(), i, int, PV3DBase< T, PVType, FrameType >::mag(), PSimHit::pabs(), PSimHit::particleType(), peakMode, and TimeResponse().
00081 { 00082 // !!! 00083 // pitchcur - is really moduleThickness here !!! 00084 // !!! 00085 00086 00087 00088 // sign "-" mean not the same as "+" for middle point !!! 00089 // G4ThreeVector direction = hit.getExitLocalP() - hit.getEntryLocalP(); 00090 LocalVector direction = hit.exitPoint() - hit.entryPoint(); 00091 // G4ThreeVector direction = hit.exitPoint() - hit.entryPoint(); 00092 00093 // LocalVector direction = hit.exitPoint() - hit.entryPoint(); 00094 // direction.mag() - length or (size of path) of the hit; direction/direction.mag() - cosines of direction 00095 00096 #ifdef mydigidebug3 00097 std::cout << " CDividerFP420::ChargeDividerFP420:divide: direction= " << direction << std::endl; 00098 std::cout << " CDividerFP420::ChargeDividerFP420:divide: direction.mag = " << direction.mag() << std::endl; 00099 std::cout << " obtained as ExitLocalP = " << hit.getExitLocalP() << " - "<< " EntryLocalP = " << hit.getEntryLocalP() << std::endl; 00100 std::cout << " pitchcur= " << pitchcur << std::endl; 00101 std::cout << " peakMode = " << peakMode << " decoMode = " << decoMode << " fluctuateCharge= "<< fluctuateCharge << " chargedivisionsPerHit = " << chargedivisionsPerHit << " deltaCut= "<< deltaCut << std::endl; 00102 #endif 00103 00104 int NumberOfSegmentation = 00105 00106 // (int)(1+chargedivisionsPerHit*fabs(direction.x())/pitchcur); // equidistant in X 00107 // (int)(1+chargedivisionsPerHit*fabs(direction.z())/pitchcur); // equidistant in Z, but why? 00108 00109 (int)(1+chargedivisionsPerHit*direction.mag()/pitchcur); // equidistant over hit path 00110 00111 #ifdef mydigidebug3 00112 std::cout << "NumberOfSegmentation= " << NumberOfSegmentation << std::endl; 00113 #endif 00114 00115 float eLoss = hit.energyLoss(); // Eloss in GeV 00116 // float eLoss = hit.getEnergyLoss(); // Eloss in GeV 00117 #ifdef mydigidebug3 00118 std::cout << "CDividerFP420::ChargeDividerFP420:divide: eLoss= " << eLoss << std::endl; 00119 #endif 00120 00121 // 00122 // return the energyLoss weighted CR-RC shape peaked at t0.(PeakShape) 00123 // return the energyLoss weighted with a gaussian centered at t0 (DeconvolutionShape) 00124 float decSignal = TimeResponse(hit); 00125 #ifdef mydigidebug3 00126 std::cout << "CDividerFP420::ChargeDividerFP420:divide: decSignal= " << decSignal << std::endl; 00127 #endif 00128 00129 ionization_type _ionization_points; 00130 00131 _ionization_points.resize(NumberOfSegmentation); 00132 00133 float energy; 00134 00135 // Fluctuate charge in track subsegments 00136 float* eLossVector = new float[NumberOfSegmentation]; 00137 00138 #ifdef mydigidebug3 00139 std::cout << "CDividerFP420::ChargeDividerFP420:divide: resize done; then, fluctuateCharge ? = " << fluctuateCharge << std::endl; 00140 #endif 00141 if( fluctuateCharge ) { 00142 // int pid = hit.getParticleType(); 00143 // float momentum = hit.getPabs(); 00144 int pid = hit.particleType(); 00145 float momentum = hit.pabs(); 00146 float length = direction.mag(); // length or (size of path) of the hit; 00147 #ifdef mydigidebug3 00148 std::cout << "pid= " << pid << "momentum= " << momentum << "eLoss= " << eLoss << "length= " << length << std::endl; 00149 #endif 00150 fluctuateEloss(pid, momentum, eLoss, length, NumberOfSegmentation, eLossVector); 00151 } 00152 00153 for ( int i = 0; i != NumberOfSegmentation; i++) { 00154 if( fluctuateCharge ) { 00155 energy=eLossVector[i]*decSignal/eLoss; 00156 EnergySegmentFP420 edu(energy,hit.entryPoint()+float((i+0.5)/NumberOfSegmentation)*direction);//take energy value from vector eLossVector 00157 // EnergySegmentFP420 edu(energy,hit.getEntryLocalP()+float((i+0.5)/NumberOfSegmentation)*direction);//take energy value from vector eLossVector 00158 _ionization_points[i] = edu; //save 00159 }else{ 00160 energy=decSignal/float(NumberOfSegmentation); 00161 EnergySegmentFP420 edu(energy,hit.entryPoint()+float((i+0.5)/NumberOfSegmentation)*direction);//take energy value from eLoss average over n.segments 00162 // EnergySegmentFP420 edu(energy,hit.getEntryLocalP()+float((i+0.5)/NumberOfSegmentation)*direction);//take energy value from eLoss average over n.segments 00163 _ionization_points[i] = edu; //save 00164 } 00165 } 00166 00167 #ifdef mydigidebug3 00168 std::cout << "CDividerFP420::ChargeDividerFP420:divide: !!! RESULT !!!" << std::endl; 00169 std::cout << " _ionization_points size = " << _ionization_points.size() << std::endl; 00170 for(unsigned int i = 0; i < _ionization_points.size(); i++ ) { 00171 std::cout << " eLossVector[i] i = " << i << eLossVector[i] << std::endl; 00172 } 00173 #endif 00174 00175 delete[] eLossVector; 00176 return _ionization_points; 00177 }
void ChargeDividerFP420::fluctuateEloss | ( | int | particleId, | |
float | momentum, | |||
float | eloss, | |||
float | length, | |||
int | NumberOfSegmentation, | |||
float | elossVector[] | |||
) | [private] |
Definition at line 179 of file ChargeDividerFP420.cc.
References funct::abs(), GenMuonPlsPt100GeV_cfg::cout, deltaCut, lat::endl(), fluctuate, i, LandauFP420::SampleFluctuations(), and sum().
Referenced by divide().
00181 { 00182 00183 // Get dedx for this track 00184 float dedx; 00185 #ifdef mydigidebug3 00186 std::cout << "fluctuateEloss: eloss= " << eloss << "length= " << length << "NumberOfSegs= " << NumberOfSegs << std::endl; 00187 #endif 00188 if( length > 0.) dedx = eloss/length; 00189 else dedx = eloss; 00190 00191 // double particleMass = 139.57; // Mass in MeV, Assume pion 00192 double particleMass = 938.271; // Mass in MeV, Assume proton ---- AZ 00193 // if( particleTable->getParticleData(pid) ) { // Get mass from the PDTable 00194 // particleMass = 1000. * particleTable->getParticleData(pid)->mass(); //Conv. GeV to MeV 00195 // } 00196 pid = abs(pid); 00197 if(pid==11) particleMass = 0.511; // Mass in MeV 00198 else if(pid==13) particleMass = 105.658; 00199 else if(pid==211) particleMass = 139.570; 00200 // else if(pid==2212) particleMass = 938.271; 00201 00202 float segmentLength = length/NumberOfSegs; 00203 00204 // Generate charge fluctuations. 00205 float de=0.; 00206 float sum=0.; 00207 double segmentEloss = (1000.*eloss)/NumberOfSegs; //eloss in MeV 00208 #ifdef mydigidebug3 00209 std::cout << "segmentLength= " << segmentLength << "segmentEloss= " << segmentEloss << std::endl; 00210 #endif 00211 00212 for (int i=0;i<NumberOfSegs;i++) { 00213 // The G4 routine needs momentum in MeV, mass in Mev, delta-cut in MeV, 00214 // track segment length in mm(!!!), segment eloss in MeV 00215 // Returns fluctuated eloss in MeV 00216 // double deltaCutoff = deltaCut.value(); // the cutoff is sometimes redefined inside, so fix it. 00217 double deltaCutoff = deltaCut; 00218 de = fluctuate.SampleFluctuations(double(particleMomentum*1000.), 00219 particleMass, deltaCutoff, 00220 double(segmentLength), 00221 segmentEloss )/1000.; //convert to GeV 00222 elossVector[i]=de; 00223 sum +=de; 00224 } 00225 00226 #ifdef mydigidebug3 00227 std::cout << "sum= " << sum << std::endl; 00228 #endif 00229 if(sum>0.) { // If fluctuations give eloss>0. 00230 // Rescale to the same total eloss 00231 float ratio = eloss/sum; 00232 for (int ii=0;ii<NumberOfSegs;ii++) elossVector[ii]= ratio*elossVector[ii]; 00233 } else { // If fluctuations gives 0 eloss 00234 float averageEloss = eloss/NumberOfSegs; 00235 for (int ii=0;ii<NumberOfSegs;ii++) elossVector[ii]= averageEloss; 00236 } 00237 return; 00238 }
float ChargeDividerFP420::PeakShape | ( | const PSimHit & | hit | ) | [private] |
Definition at line 260 of file ChargeDividerFP420.cc.
References GenMuonPlsPt100GeV_cfg::cout, PSimHit::detUnitId(), dist(), lat::endl(), PSimHit::energyLoss(), funct::exp(), funct::sqrt(), PSimHit::tof(), FP420NumberingScheme::unpackFP420Index(), and zStationBegPos.
Referenced by TimeResponse().
00260 { 00261 // 00262 // Aim: return the energyLoss weighted CR-RC shape peaked at t0. 00263 // 00264 00265 // float xEntry = hit.getX() - hit.getVx(); 00266 // float yEntry = hit.getY() - hit.getVy(); 00267 // float zEntry = hit.getZ() - hit.getVz(); 00268 float xEntry = 0.5; 00269 float yEntry = 0.5; 00270 float zEntry = 1000.; 00271 00272 // unsigned int unitID = hit.getUnitID(); 00273 unsigned int unitID = hit.detUnitId(); 00274 // int sScale = 20; 00275 int det, zside, sector, zmodule; 00276 FP420NumberingScheme::unpackFP420Index(unitID, det, zside, sector, zmodule); 00277 // intindex is a continues numbering of FP420 00278 // int zScale=2; unsigned int intindex = sScale*(sector - 1)+zScale*(zmodule - 1)+zside; 00279 // int zScale=10; unsigned int intindex = sScale*(sector - 1)+zScale*(zside - 1)+zmodule; 00280 00281 float RRR = sqrt(xEntry*xEntry + yEntry*yEntry + zEntry*zEntry); 00282 float costheta = zEntry / RRR ; 00283 // float theta = acos(min(max(costheta,float(-1.)),float(1.))); 00284 // float dist = hit.det().position().mag(); 00285 // float dist = hit.localPosition().mag();//AZ 00286 // float dist = hit.getEntry().mag(); 00287 // float dist = hit.getEntryLocalP().mag(); 00288 float dist = (zStationBegPos[sector-1] - 420000.) / costheta; 00289 // float dist = (zStationBegPos[sector-1] - hit.getVz()) / costheta; 00290 dist = dist/10.;// mm --> cm as light velocity = 30 cm/ns 00291 #ifdef mydigidebug3 00292 std::cout << "sector=" << sector << std::endl; 00293 std::cout << "zmodule=" << zmodule << std::endl; 00294 std::cout << "zStationBegPos[sector-1]=" << zStationBegPos[sector-1] << std::endl; 00295 std::cout << "RRR=" << RRR << std::endl; 00296 std::cout << "costheta=" << costheta << std::endl; 00297 std::cout << "unitID=" << unitID << std::endl; 00298 //std::cout << "thetaEntry=" << thetaEntry << std::endl; 00299 //std::cout << "my theta=" << theta*180./3.1415927 << std::endl; 00300 std::cout << "dist found =" << dist << std::endl; 00301 #endif 00302 00303 // Time when read out relative to time hit produced. 00304 float t0 = dist/30.; // light velocity = 30 cm/ns 00305 float SigmaShape = 52.17; 00306 // float tofNorm = (hit.getTof() - t0)/SigmaShape; 00307 float tofNorm = (hit.tof() - t0)/SigmaShape; 00308 00309 float readTimeNorm = -tofNorm; 00310 // return the energyLoss weighted with CR-RC shape peaked at t0. 00311 #ifdef mydigidebug3 00312 std::cout << "ChargeDividerFP420:PeakShape::dist=" << dist << std::endl; 00313 std::cout << "t0=" <<t0 << std::endl; 00314 std::cout << "hit.getTof()=" << hit.tof() << std::endl; 00315 std::cout << "tofNorm=" << tofNorm << std::endl; 00316 std::cout << "1 + readTimeNorm=" << 1 + readTimeNorm << std::endl; 00317 std::cout << "hit.getEnergyLoss()=" << hit.energyLoss() << std::endl; 00318 std::cout << "(1 + readTimeNorm)*exp(-readTimeNorm)=" << (1 + readTimeNorm)*exp(-readTimeNorm) << std::endl; 00319 std::cout << "return=" << hit.energyLoss()*(1 + readTimeNorm)*exp(-readTimeNorm) << std::endl; 00320 #endif 00321 if (1 + readTimeNorm > 0) { 00322 // return hit.energyLoss()*(1 + readTimeNorm)*exp(-readTimeNorm); 00323 return hit.energyLoss()*(1 + readTimeNorm)*exp(-readTimeNorm); 00324 // return hit.getEnergyLoss()*(1 + readTimeNorm)*exp(-readTimeNorm); 00325 } else { 00326 return 0.; 00327 } 00328 }
float ChargeDividerFP420::TimeResponse | ( | const PSimHit & | hit | ) | [private] |
Definition at line 240 of file ChargeDividerFP420.cc.
References GenMuonPlsPt100GeV_cfg::cout, decoMode, DeconvolutionShape(), lat::endl(), PSimHit::energyLoss(), peakMode, and PeakShape().
Referenced by divide().
00240 { 00241 if (peakMode) { 00242 #ifdef mydigidebug3 00243 std::cout << "ChargeDividerFP420:TimeResponse: call of PeakShape" << std::endl; 00244 #endif 00245 return this->PeakShape( hit ); 00246 } else if (decoMode) { 00247 #ifdef mydigidebug3 00248 std::cout << "ChargeDividerFP420:TimeResponse: call of DeconvolutionShape" << std::endl; 00249 #endif 00250 return this->DeconvolutionShape( hit ); 00251 } else { 00252 #ifdef mydigidebug3 00253 std::cout << "ChargeDividerFP420:TimeResponse: no any Shape" << std::endl; 00254 #endif 00255 // return hit.getEnergyLoss(); 00256 return hit.energyLoss(); 00257 00258 } 00259 }
int ChargeDividerFP420::chargedivisionsPerHit [private] |
Definition at line 43 of file ChargeDividerFP420.h.
Referenced by ChargeDividerFP420(), and divide().
bool ChargeDividerFP420::decoMode [private] |
Definition at line 39 of file ChargeDividerFP420.h.
Referenced by ChargeDividerFP420(), divide(), and TimeResponse().
double ChargeDividerFP420::deltaCut [private] |
Definition at line 46 of file ChargeDividerFP420.h.
Referenced by ChargeDividerFP420(), divide(), and fluctuateEloss().
LandauFP420 ChargeDividerFP420::fluctuate [private] |
bool ChargeDividerFP420::fluctuateCharge [private] |
Definition at line 41 of file ChargeDividerFP420.h.
Referenced by ChargeDividerFP420(), and divide().
bool ChargeDividerFP420::peakMode [private] |
Definition at line 38 of file ChargeDividerFP420.h.
Referenced by ChargeDividerFP420(), divide(), and TimeResponse().
double ChargeDividerFP420::pitchcur [private] |
Definition at line 26 of file ChargeDividerFP420.h.
Referenced by ChargeDividerFP420(), and ~ChargeDividerFP420().
double ChargeDividerFP420::z420 [private] |
double ChargeDividerFP420::zD2 [private] |
double ChargeDividerFP420::zD3 [private] |
float ChargeDividerFP420::zStationBegPos[4] [private] |
Definition at line 44 of file ChargeDividerFP420.h.
Referenced by ChargeDividerFP420(), DeconvolutionShape(), and PeakShape().