Mattione GlueX Analysis Factories
jerror_t DReaction_factory::init(void) { // Make as many DReaction objects as desired DReaction* locReaction = new DReaction(); { //g, p -> phi(2175), (p) DReactionStep locReactionStep; locReactionStep.dInitialParticleID = Gamma; locReactionStep.dTargetParticleID = Proton; locReactionStep.dFinalParticleIDs.push_back(Unknown); //phi(2175) locReactionStep.dFinalParticleIDs.push_back(Proton); locReactionStep.dMissingParticleIndex = 1; //proton missing locReaction->dReactionSteps.push_back(locReactionStep); } { //phi(2175) -> pi+, pi-, phi DReactionStep locReactionStep; locReactionStep.dInitialParticleID = Unknown; //phi(2175) locReactionStep.dTargetParticleID = Unknown; locReactionStep.dFinalParticleIDs.push_back(PiPlus); locReactionStep.dFinalParticleIDs.push_back(PiMinus); locReactionStep.dFinalParticleIDs.push_back(phiMeson); locReactionStep.dMissingParticleIndex = -1; //none missing locReaction->dReactionSteps.push_back(locReactionStep); } { //phi -> K+, K- DReactionStep locReactionStep; locReactionStep.dInitialParticleID = phiMeson; locReactionStep.dTargetParticleID = Unknown; locReactionStep.dFinalParticleIDs.push_back(KPlus); locReactionStep.dFinalParticleIDs.push_back(KMinus); locReactionStep.dMissingParticleIndex = -1; //none missing locReaction->dReactionSteps.push_back(locReactionStep); } _data.push_back(locReaction); }