/[PAMELA software]/PamVMC_update/include/PamVMCOptions.h
ViewVC logotype

Annotation of /PamVMC_update/include/PamVMCOptions.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1.1.1 - (hide annotations) (download) (vendor branch)
Tue Oct 15 15:52:29 2013 UTC (11 years, 1 month ago) by formato
Branch: MAIN, rel
CVS Tags: reltag, HEAD
Changes since 1.1: +0 -0 lines
File MIME type: text/plain
PamVMC update

1 formato 1.1 #include <iostream>
2     #include "TObject.h"
3    
4     using namespace std;
5    
6     #ifndef OPT_INIT_MODE_H
7     #define OPT_INIT_MODE_H
8    
9    
10     #include "TSystem.h"
11    
12     struct pInitModeOpt : public TObject {
13     TString fg4Config_path, fg4Config_C_name, fg4Config_in_name;
14     Bool_t fuse_pbs_jobcookie, fuse_nocalo;
15     TString fout_tmp_dir, fout_path, fout_file_pattern;
16    
17     pInitModeOpt( TString g4Config_path, TString g4Config_C_name, TString g4Config_in_name, Bool_t use_pbs_jobcookie, Bool_t use_nocalo,
18     TString out_tmp_dir, TString out_path, TString out_file_pattern):
19     fg4Config_path(g4Config_path), fg4Config_C_name(g4Config_C_name), fg4Config_in_name(g4Config_in_name), fuse_pbs_jobcookie(use_pbs_jobcookie), fuse_nocalo(use_nocalo),
20     fout_tmp_dir(out_tmp_dir), fout_path(out_path), fout_file_pattern(out_file_pattern) {};
21    
22     virtual void Print(const Option_t* = "") const {
23     cout<<"--->Init Options: "<<endl;
24     cout<<" g4Config macro: "<<fg4Config_path<<"/"<<fg4Config_C_name<<endl;
25     cout<<" G4 extra macro: "<<fg4Config_path<<"/"<<fg4Config_in_name<<endl;
26     cout<<" use PBS cookie: "<<fuse_pbs_jobcookie<<endl;
27     if ( fuse_pbs_jobcookie ) cout <<" temp path: "<< fout_tmp_dir<<endl;
28     cout<<" use NoCalo: "<<fuse_nocalo<<endl;
29     cout<<" output ROOT-file: "<<fout_path<<"/"<<fout_file_pattern<<".root"<<endl;
30     cout<<" output PAM-file: "<<fout_path<<"/"<<fout_file_pattern<<".pam"<<endl;
31     };
32     };
33    
34     #endif //OPT_INIT_MODE_H
35    
36    
37     #ifndef OPT_RND_MODE_H
38     #define OPT_RND_MODE_H
39    
40    
41    
42     struct pRandomModeOpt : public TObject {
43     Bool_t fread_from_file_mode; /* 0 - generate, 1 - read from file */
44     TString fread_g4_seed_path; /* full path to root-file with g4random engine snapshots */
45     Bool_t fgenerate_g4_seed_user; /* 1 - generate random use user-defined seeds, 0 - autogenerate them */
46     Int_t fseed1, fseed2;
47     Bool_t fwrite_to_file_mode; /* 0 - don't save g4 random snapshots into root-file, 1 - do it */
48     TString fwrite_g4_rnd_path, fwrite_g4_rnd_filename; /* path and filename with g4 random snapshots */
49    
50    
51     pRandomModeOpt( Bool_t read_from_file_mode, TString read_g4_seed_path, Bool_t generate_g4_seed_user,
52     Int_t seed1, Int_t seed2, Bool_t write_to_file_mode,
53     TString write_g4_rnd_path, TString write_g4_rnd_filename ):
54     fread_from_file_mode( read_from_file_mode), fread_g4_seed_path(read_g4_seed_path), fgenerate_g4_seed_user(generate_g4_seed_user),
55     fseed1(seed1), fseed2(seed2), fwrite_to_file_mode(write_to_file_mode),fwrite_g4_rnd_path(write_g4_rnd_path), fwrite_g4_rnd_filename(write_g4_rnd_filename) {};
56    
57     virtual void Print(const Option_t* = "") const {
58     TString tt;
59     if ( fread_from_file_mode ) tt = "read from file: "; else tt = "generate ";
60     cout<<"--->Random Options: "<<endl;
61     cout<<" G4Random numbers will "<<tt;
62     if ( fread_from_file_mode ){
63     cout << fread_g4_seed_path <<endl;
64     } else {
65     if ( fwrite_to_file_mode ) cout<<"and written in file: "<<fwrite_g4_rnd_path<<"/"<<fwrite_g4_rnd_filename<<endl; else cout<<endl;
66     }
67     if( fgenerate_g4_seed_user ){
68     tt = "user-defined random seed numbers: ";
69     tt += fseed1;
70     tt += ", ";
71     tt += fseed2;
72     } else tt = " random seed numbers will be generated automatically via TRandom3(0) object";
73     if (!fread_from_file_mode ) cout<<" Generation mode: "<<tt<<endl;
74     };
75     };
76    
77     #endif //OPT_RND_MODE_H
78    
79    
80    
81     #ifndef OPT_RUN_MODE_H
82     #define OPT_RUN_MODE_H
83     enum Save_cond { EVERYTHING, TRIG_ONLY, ACCEPT_ONLY};
84     enum Save_mode { ALL_DETECTORS, ONLY_PRIMARIES };
85    
86     struct pRuntimeModeOpt : public TObject {
87     Int_t fverbose_lev; //verbose level
88     Int_t fmaxstep; //maximum number of allowed steps for a given particle
89     Save_cond fsv_c; //condition to save given event
90     Save_mode fsv_m; //what information I wish to save
91    
92     pRuntimeModeOpt(Int_t verbose_lev, Int_t maxstep, Save_cond sv_c, Save_mode sv_m): fverbose_lev(verbose_lev), fmaxstep(maxstep), fsv_c(sv_c), fsv_m(sv_m){; };
93    
94     virtual void Print(const Option_t* = "") const {
95     cout<<"--->Runtime Options: "<<endl;
96     cout<<" Verbose level: "<<fverbose_lev<<endl;
97     cout<<" Max number of steps: "<<fmaxstep<<endl;
98     TString tt="";
99     if(fsv_c == EVERYTHING) tt = "EVERYTHING";
100     if(fsv_c == TRIG_ONLY) tt = "TRIG_ONLY";
101     if(fsv_c == ACCEPT_ONLY) tt = "ACCEPT_ONLY";
102     cout<<" Save condition: "<<tt<<endl;
103     tt="";
104     if(fsv_m == ALL_DETECTORS) tt = "ALL_DETECTORS";
105     if(fsv_m == ONLY_PRIMARIES) tt = "ONLY_PRIMARIES";
106     cout<<" Save mode: "<<tt<<endl;
107     };
108    
109     };
110     #endif //OPT_RUN_MODE_H
111    
112    
113     #ifndef OPT_PRIMARY_MODE_H
114     #define OPT_PRIMARY_MODE_H
115    
116     enum Momentum_mode{ FIXED, FLAT, POWERLAW};
117     enum Momentum_units{ GV_p, GV_R, GeV_T};
118     enum Nevents_mode { NEV_TOT, NEV_ACCEPT, NEV_TRIGG };
119    
120     struct pPrimaryModeOpt : public TObject {
121     Bool_t fread_mode; // 0 - generate primary kinematics, 1 -read from file;
122     TString fread_path; // path to file with primary kinematics
123     Int_t fpdg; //PDG code of primary
124     Bool_t fspt_mode; // 0 - dome; 1 - user defined angles and vertex point
125     Bool_t fvert_mode; //0 - fixed point, 1 - vertex box
126     Bool_t fang_mode; // 0 - fixed angle, 1 - isotropic
127     Momentum_mode fmom_mode; // fixed, flat, powerlaw
128    
129     Momentum_units funits; // GV_p, GV_R, GeV
130     Double_t fmom_fix; //Momentum, Rig, Kine
131     Double_t fmom_min, fmom_max, fgamma; //momentum for flat case
132    
133     Nevents_mode fnv_m; //Total, accept, trigg
134     Int_t fnevents; //number of events
135    
136     //Spatial and angular coordinates for fixed-isotropic case
137     Double_t fx0, fy0, fz0, fx0_min, fx0_max, fy0_min, fy0_max, fz0_min, fz0_max;
138     Double_t ftheta, fphi, ftheta_min, ftheta_max, fphi_min, fphi_max;
139    
140     pPrimaryModeOpt(Bool_t read_mode, TString read_path, Int_t pdg, Bool_t spt_mode, Bool_t vert_mode, Bool_t ang_mode,
141     Momentum_mode mom_mode, Momentum_units units, Double_t mom_fix, Double_t mom_min, Double_t mom_max,
142     Double_t gamma, Nevents_mode nv_m, Int_t nevents, Double_t x0, Double_t y0, Double_t z0,
143     Double_t x0_min, Double_t x0_max, Double_t y0_min, Double_t y0_max, Double_t z0_min, Double_t z0_max,
144     Double_t theta, Double_t phi, Double_t theta_min, Double_t theta_max, Double_t phi_min, Double_t phi_max):
145     fread_mode(read_mode), fread_path(read_path), fpdg(pdg), fspt_mode(spt_mode), fvert_mode(vert_mode), fang_mode(ang_mode),
146     fmom_mode(mom_mode), funits(units), fmom_fix(mom_fix), fmom_min(mom_min), fmom_max(mom_max), fgamma(gamma),
147     fnv_m(nv_m), fnevents(nevents), fx0(x0), fy0(y0), fz0(z0), fx0_min(x0_min), fx0_max(x0_max), fy0_min(y0_min), fy0_max(y0_max),
148     fz0_min(z0_min),fz0_max(z0_max), ftheta(theta), fphi(phi), ftheta_min(theta_min), ftheta_max(theta_max),
149     fphi_min(phi_min), fphi_max(phi_max){ ; }
150    
151     virtual void Print(const Option_t* = "") const {
152     cout<<"--->Primary Options: "<<endl;
153     if( fread_mode ){
154     cout<<" Reading kinematics from file: "<<fread_path<<endl;
155     cout<<" NEVENTS to process: all events from file"<<endl;
156     } else {
157     cout<<" PDG: "<<fpdg<<endl;
158     if(! fspt_mode ) {
159     cout<<" Spatial distribution: Generation Over the Dome (GOD mode) "<<endl;
160     } else {
161     cout<<" Spatial distribution: User-defined "<<endl;
162     if( fvert_mode ){
163     cout<<" Vertex distribution: Parallelepiped ( x_min, x_max, y_min, y_max, z_min, z_max) = ("
164     <<fx0_min<<", "<<fx0_max<<", "<<fy0_min<<", "<<fy0_max<<", "<<fz0_min<<", "<<fz0_max<<" ) (cm)"<<endl;
165     } else {
166     cout<<" Vertex distribution: Fixed Point ( "<<fx0<<", "<<fy0<<", "<<fz0<<" ) (cm)"<<endl;
167    
168     }
169     if( fang_mode ){
170     cout<<" Angular distribution: Isotropic (theta_min, theta_max, phi_min, phi_max) = ( "
171     <<ftheta_min<<", "<<ftheta_max<<", "<<fphi_min<<", "<<fphi_max<<" ) (rad)"<<endl;
172     } else {
173     cout<<" Angular distribution: Fixed Angles (theta, phi) = ( "<<ftheta<<", "<<fphi<<" ) (rad)"<<endl;
174     }
175     }
176     TString un;
177     TString un_det;
178     if (funits == GV_p){
179     un = "GV (p)";
180     un_det = "Momentum";
181     }
182     if (funits == GV_R){
183     un = "GV (R)";
184     un_det = "Rigidity";
185     }
186     if (funits == GeV_T){
187     un = "GeV_T";
188     un_det = "Kinetic energy";
189     }
190     if( fmom_mode == FIXED ){
191     cout<<" "<<un_det<<" distribution: Fixed "<< fmom_fix<<" "<<un<<endl;
192     }
193     if( fmom_mode == FLAT ){
194     cout<<" "<<un_det<<" distribution: Flat ( "<<fmom_min<<", "<<fmom_max<<" ) "<<un<<endl;
195     }
196     if( fmom_mode == POWERLAW ){
197     cout<<" "<<un_det<<" distribution: Power-law ( "<<fmom_min<<", "<<fmom_max<<" ) "<<un<<" gamma: "<<fgamma<<endl;
198     }
199    
200     TString nev_cond;
201     if( fnv_m == NEV_TOT ) nev_cond = " TOTAL";
202     if( fnv_m == NEV_ACCEPT ) nev_cond = " IN ACCEPTANCE";
203     if( fnv_m == NEV_TRIGG ) nev_cond = " TRIGGERED";
204     cout<<" NEVENTS to process: "<<fnevents<<nev_cond<<endl;
205     }
206     }
207     };
208     #endif //OPT_PRIMARY_MODE_H

  ViewVC Help
Powered by ViewVC 1.1.23