private BottomiumVector CalculateppPopulationsBeforeMuonDecay() { BottomiumVector ppDimuonDecays = GetNormalizedProtonProtonDimuonDecays(); BottomiumCascadeMatrix inverseDMatrix = CalculateInverseDimuonDecayMatrix(); return(inverseDMatrix * ppDimuonDecays); }
public BottomiumVector CalculateInitialQQPopulations() { BottomiumCascadeMatrix inverseCMatrix = CalculateInverseCumulativeMatrix(); BottomiumVector popsBeforeMuonDecay = CalculateppPopulationsBeforeMuonDecay(); return(inverseCMatrix * popsBeforeMuonDecay); }
private BottomiumVector CalculateReducedInitialQQPopulations( BottomiumVector qgpSuppressionFactors ) { BottomiumVector initialPops = CalculateInitialQQPopulations(); BottomiumCascadeMatrix qgpSuppressionMatrix = BottomiumCascadeMatrix.CreateDiagonalMatrix(qgpSuppressionFactors); return(qgpSuppressionMatrix * initialPops); }
public static BottomiumCascadeMatrix CreateDiagonalMatrix( BottomiumVector diagonalElements ) { BottomiumCascadeMatrix matrix = new BottomiumCascadeMatrix(); foreach (BottomiumState s in Enum.GetValues(typeof(BottomiumState))) { matrix[s, s] = diagonalElements[s]; } return(matrix); }
private void InitQGPSuppressionFactors() { FlatQGPSuppressionFactors = new BottomiumVector[NumberFlatBins][]; for (int binIndex = 0; binIndex < NumberFlatBins; binIndex++) { FlatQGPSuppressionFactors[binIndex] = new BottomiumVector[FireballParam.TransverseMomenta_GeV.Count]; for (int pTIndex = 0; pTIndex < FireballParam.TransverseMomenta_GeV.Count; pTIndex++) { FlatQGPSuppressionFactors[binIndex][pTIndex] = new BottomiumVector(); } } }
public BottomiumVector CalculateInitialQQPopulationsWithDimuonBranchingRatiosIncluded() { BottomiumVector initialPops = CalculateInitialQQPopulations(); initialPops[BottomiumState.Y1S] *= Constants.B1Smu; initialPops[BottomiumState.x1P] *= Constants.B1Smu; initialPops[BottomiumState.Y2S] *= Constants.B2Smu; initialPops[BottomiumState.x2P] *= Constants.B2Smu; initialPops[BottomiumState.Y3S] *= Constants.B3Smu; initialPops[BottomiumState.x3P] *= Constants.B3Smu; return(initialPops); }
public BottomiumVector CalculateDimuonDecays( BottomiumVector qgpSuppressionFactors ) { BottomiumCascadeMatrix cMatrix = CalculateCumulativeMatrix(); BottomiumVector reducedPops = CalculateReducedInitialQQPopulations(qgpSuppressionFactors); BottomiumVector tmpPop = cMatrix * reducedPops; BottomiumCascadeMatrix dMatrix = CalculateDimuonDecayMatrix(); return(dMatrix * tmpPop); }
public static BottomiumVector operator *( double scalar, BottomiumVector vector ) { BottomiumVector result = new BottomiumVector(); foreach (BottomiumState i in Enum.GetValues(typeof(BottomiumState))) { result[i] = scalar * vector[i]; } return(result); }
/******************************************************************************************** * Public static members, functions and properties ********************************************************************************************/ public static BottomiumVector operator +( BottomiumVector left, BottomiumVector right ) { BottomiumVector result = new BottomiumVector(); foreach (BottomiumState i in Enum.GetValues(typeof(BottomiumState))) { result[i] = left[i] + right[i]; } return(result); }
private void ReshapeFlatArrays() { NormalizationFactors = new double[NumberCentralityBins.Count][]; QGPSuppressionFactors = new BottomiumVector[NumberCentralityBins.Count][][]; for (int binGroupIndex = 0; binGroupIndex < NumberCentralityBins.Count; binGroupIndex++) { NormalizationFactors[binGroupIndex] = new double[NumberCentralityBins[binGroupIndex]]; QGPSuppressionFactors[binGroupIndex] = new BottomiumVector[NumberCentralityBins[binGroupIndex]][]; for (int binIndex = 0; binIndex < NumberCentralityBins[binGroupIndex]; binIndex++) { ReshapeNormalizationFactors(binGroupIndex, binIndex); ReshapeQGPSuppressionFactors(binGroupIndex, binIndex); } } }
public static BottomiumVector operator *( BottomiumCascadeMatrix matrix, BottomiumVector vector ) { BottomiumVector result = new BottomiumVector(); foreach (BottomiumState i in Enum.GetValues(typeof(BottomiumState))) { foreach (BottomiumState j in Enum.GetValues(typeof(BottomiumState))) { result[i] += matrix[i, j] * vector[j]; } } return(result); }
public BottomiumVector CalculateY1SFeedDownFractions() { BottomiumVector initialPops = CalculateInitialQQPopulations(); BottomiumCascadeMatrix cMatrix = CalculateCumulativeMatrix(); BottomiumVector tmpPops = cMatrix * initialPops; BottomiumCascadeMatrix bMatrix = CalculateBranchingRatioMatrix(); foreach (BottomiumState i in Enum.GetValues(typeof(BottomiumState))) { tmpPops[i] *= Constants.B1Smu * bMatrix[BottomiumState.Y1S, i]; } tmpPops[BottomiumState.Y1S] = Constants.B1Smu * initialPops[BottomiumState.Y1S]; return(tmpPops); }
private void ReshapeQGPSuppressionFactors( int binGroupIndex, int binIndex ) { QGPSuppressionFactors[binGroupIndex][binIndex] = new BottomiumVector[FireballParam.TransverseMomenta_GeV.Count]; for (int pTIndex = 0; pTIndex < FireballParam.TransverseMomenta_GeV.Count; pTIndex++) { QGPSuppressionFactors[binGroupIndex][binIndex][pTIndex] = new BottomiumVector(); for (int flatBinIndex = ArrayReshapingMask[binGroupIndex][binIndex]; flatBinIndex < ArrayReshapingMask[binGroupIndex][binIndex + 1]; flatBinIndex++) { QGPSuppressionFactors[binGroupIndex][binIndex][pTIndex] += FlatQGPSuppressionFactors[flatBinIndex][pTIndex]; } } }
public string GetInitialQQPopulationsString() { BottomiumVector initialPopsBR = CalculateInitialQQPopulationsWithDimuonBranchingRatiosIncluded(); Table <string> initialPopsBRStrings = Table <string> .CreateFromFormattedTableString( initialPopsBR.GetVectorString( description: "N^i_AA,nl/N^f_pp,1S", extractGammaTot3P: true)); BottomiumVector initialPops = CalculateInitialQQPopulations(); Table <string> initialPopsStrings = Table <string> .CreateFromFormattedTableString( initialPops.GetVectorString( description: "N^i_AA,nl/N^f_pp,1S/B(nS→µ±)", extractGammaTot3P: true)); initialPopsBRStrings.AddColumn(initialPopsStrings.GetColumn(1), string.Empty); return(initialPopsBRStrings.ToFormattedTableString()); }
/******************************************************************************************** * Constructors ********************************************************************************************/ public BottomiumCascade( Dictionary <BottomiumState, double> dimuonDecaysFrompp ) { DimuonDecaysFrompp = new BottomiumVector(dimuonDecaysFrompp); }