44 using namespace genie;
60 int main(
int argc,
char ** argv)
85 0.0150, 0.0450, 0.0800, 0.1250, 0.1750, 0.2250,
86 0.2750, 0.3500, 0.4500, 0.5500, 0.6500, 0.7500
89 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 2.0,
90 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0,
91 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0,
92 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 42.0,
93 33.0, 34.0, 35.0, 36.0, 37.0, 38.0, 39.0, 40.0, 41.0, 52.0,
94 43.0, 44.0, 45.0, 46.0, 47.0, 48.0, 49.0, 50.0, 51.0, 62.0
109 TTree * dissf_nt =
new TTree(
"dissf_nt",
"DIS SF");
120 dissf_nt->Branch(
"nu", &brNu,
"nu/I");
121 dissf_nt->Branch(
"nuc", &brNuc,
"nuc/I");
122 dissf_nt->Branch(
"tgt", &brTgt,
"tgt/I");
123 dissf_nt->Branch(
"x", &brXbj,
"x/D");
124 dissf_nt->Branch(
"Q2", &brQ2,
"Q2/D");
125 dissf_nt->Branch(
"F1", &brF1,
"F1/D");
126 dissf_nt->Branch(
"F2", &brF2,
"F2/D");
127 dissf_nt->Branch(
"F3", &brF3,
"F3/D");
128 dissf_nt->Branch(
"F4", &brF4,
"F4/D");
129 dissf_nt->Branch(
"F5", &brF5,
"F5/D");
132 for(
int inu=0; inu<kNNu; inu++) {
133 for(
int inuc=0; inuc<kNNuc; inuc++) {
134 for(
int itgt=0; itgt<kNTgt; itgt++) {
138 target[itgt],hit_nucleon[inuc],neutrino[inu]);
142 for(
int ix=0; ix<kNX; ix++) {
143 for(
int iq=0; iq<kNQ2; iq++) {
153 brNu = neutrino[inu];
154 brNuc = hit_nucleon[inuc];
155 brTgt = target[itgt];
173 TFile f(
"./dissf.root",
"recreate");
205 for(
int inu=0; inu<kNNu; inu++) {
206 for(
int inuc=0; inuc<kNNuc; inuc++) {
207 for(
int itgt=0; itgt<kNTgt; itgt++) {
211 target[itgt],hit_nucleon[inuc],neutrino[inu]);
216 LOG(
"test",
pNOTICE) <<
"*** Vertical SF slice for: ";
240 if( parser.OptionExists(
'a') ) {
241 LOG(
"test",
pINFO) <<
"Reading DIS SF algorithm name";
244 LOG(
"test",
pINFO) <<
"No DIS SF algorithm was specified";
250 if( parser.OptionExists(
'c') ) {
251 LOG(
"test",
pINFO) <<
"Reading DIS SF algorithm config name";
254 LOG(
"test",
pINFO) <<
"No DIS SF algorithm config was specified";
260 if( parser.OptionExists(
'm') ) {
261 LOG(
"test",
pINFO) <<
"Reading testDISSF mode";
262 gMode = parser.ArgAsInt(
'm');
264 LOG(
"test",
pINFO) <<
"No testDISSF was specified. Using default";
270 if( parser.OptionExists(
'x') ) {
272 gX = parser.ArgAsDouble(
'x');
275 <<
"No Bjorken x was specified for vertical slice";
279 if( parser.OptionExists(
'q') ) {
281 gQ2 = parser.ArgAsDouble(
'q');
284 <<
"No momentum transfer Q2 was specified for vertical slice";
294 <<
"\n\n" <<
"Syntax:" <<
"\n"
295 <<
" testDISSF -a model -c config [-m mode] [-x x] [-q Q2]\n";
void SetModel(const DISStructureFuncModelI *model)
Attach an algorithm.
Pure Abstract Base Class. Defines the DISStructureFuncModelI interface to be implemented by any algor...
double F2(void) const
Get the computed structure function F2.
double Q2(const Interaction *const i)
void SetQ2(double Q2, bool selected=false)
Kinematics * KinePtr(void) const
Generated/set kinematical variables for an event.
int main(int argc, char **argv)
double F4(void) const
Get the computed structure function F4.
Summary information for an interaction.
double F1(void) const
Get the computed structure function F1.
#define LOG(stream, priority)
A macro that returns the requested log4cpp::Category appending a string (using the FILE...
static Messenger * Instance(void)
const Algorithm * GetAlgorithm(const AlgId &algid)
double F5(void) const
Get the computed structure function F5.
A more convenient interface to the log4cpp Message Service.
void BuildStdNtuple(void)
void Setx(double x, bool selected=false)
A class holding Deep Inelastic Scattering (DIS) Form Factors (invariant structure funstions) ...
double F3(void) const
Get the computed structure function F3.
static AlgFactory * Instance()
void SetPriorityLevel(const char *stream, log4cpp::Priority::Value p)
static Interaction * DISCC(int tgt, int nuc, int probe, double E=0)
void Calculate(const Interaction *interaction)
Calculate the S/F's for the input interaction using the attached algorithm.
Command line argument parser.
void GetCommandLineArgs(int argc, char **argv)
The GENIE Algorithm Factory.
Most commonly used PDG codes. A set of utility functions to handle PDG codes is provided in PDGUtils...