Difference between revisions of "Mattione GlueX Analysis Factories"
From GlueXWiki
Line 19: | Line 19: | ||
locReactionStep.dFinalParticleIDs.push_back(Proton); | locReactionStep.dFinalParticleIDs.push_back(Proton); | ||
locReactionStep.dMissingParticleIndex = 1; //proton missing | locReactionStep.dMissingParticleIndex = 1; //proton missing | ||
+ | locReactionStep.dDetachedVertexFlag = false; | ||
locReaction->dReactionSteps.push_back(locReactionStep); | locReaction->dReactionSteps.push_back(locReactionStep); | ||
} | } | ||
Line 30: | Line 31: | ||
locReactionStep.dFinalParticleIDs.push_back(phiMeson); | locReactionStep.dFinalParticleIDs.push_back(phiMeson); | ||
locReactionStep.dMissingParticleIndex = -1; //none missing | locReactionStep.dMissingParticleIndex = -1; //none missing | ||
+ | locReactionStep.dDetachedVertexFlag = false; | ||
locReaction->dReactionSteps.push_back(locReactionStep); | locReaction->dReactionSteps.push_back(locReactionStep); | ||
} | } | ||
Line 40: | Line 42: | ||
locReactionStep.dFinalParticleIDs.push_back(KMinus); | locReactionStep.dFinalParticleIDs.push_back(KMinus); | ||
locReactionStep.dMissingParticleIndex = -1; //none missing | locReactionStep.dMissingParticleIndex = -1; //none missing | ||
+ | locReactionStep.dDetachedVertexFlag = true; //I'm not sure, I just assumed from narrow width | ||
locReaction->dReactionSteps.push_back(locReactionStep); | locReaction->dReactionSteps.push_back(locReactionStep); | ||
} | } |
Revision as of 00:44, 16 July 2012
Contents
Summary
- In his/her plugin, a user specifies the reactions he/she wants to study (DReaction objects), then just asks JANA for the results (DKinFitTrackCombos).
- Creates all possible track combinations for the desired reaction; user then cuts on the likelihood that those combinations represent the hypothesized reaction.
User Plugin DReaction Factory
- DReaction.h located in DANA libraries, DReaction.h_factory located in user plugin (along with a factory generator for it).
- Below shows how to set up DReaction for a Y(2175) analysis.
jerror_t DReaction_factory::init(void) { // Make as many DReaction objects as desired DReaction* locReaction = new DReaction(); { //g, p -> Y(2175), (p) DReactionStep locReactionStep; locReactionStep.dInitialParticleID = Gamma; locReactionStep.dTargetParticleID = Proton; locReactionStep.dFinalParticleIDs.push_back(Unknown); //Y(2175) locReactionStep.dFinalParticleIDs.push_back(Proton); locReactionStep.dMissingParticleIndex = 1; //proton missing locReactionStep.dDetachedVertexFlag = false; locReaction->dReactionSteps.push_back(locReactionStep); } { //Y(2175) -> pi+, pi-, phi DReactionStep locReactionStep; locReactionStep.dInitialParticleID = Unknown; //Y(2175) locReactionStep.dTargetParticleID = Unknown; locReactionStep.dFinalParticleIDs.push_back(PiPlus); locReactionStep.dFinalParticleIDs.push_back(PiMinus); locReactionStep.dFinalParticleIDs.push_back(phiMeson); locReactionStep.dMissingParticleIndex = -1; //none missing locReactionStep.dDetachedVertexFlag = false; 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 locReactionStep.dDetachedVertexFlag = true; //I'm not sure, I just assumed from narrow width locReaction->dReactionSteps.push_back(locReactionStep); } _data.push_back(locReaction); }
DTrackCombo Factory
- Located in DANA
- NOTE: Still Finalizing
- Reads all
DKinFitTrackCombo Factory
- Located in DANA
- Stores
- NOTE: Still Finalizing
User Plugin DEventProcessor
extern "C" { void InitPlugin(JApplication *app){ InitJANAPlugin(app); app->AddProcessor(new DEventProcessor_Y2175()); app->AddFactoryGenerator(new DFactoryGenerator_DReaction()); } } // "C" jerror_t DEventProcessor_Y2175::evnt(JEventLoop *locEventLoop, int eventnumber) { vector<const DKinFitTrackCombo*> locKinFitTrackCombo; locEventLoop->Get(locKinFitTrackCombo); //DO HISTS/CUTS/TUPLES HERE return NOERROR; }