/[PAMELA software]/DarthVader/TrackerLevel2/src/TrkProcess.cpp
ViewVC logotype

Contents of /DarthVader/TrackerLevel2/src/TrkProcess.cpp

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.7 - (show annotations) (download)
Sat Dec 2 10:42:53 2006 UTC (18 years ago) by pam-fi
Branch: MAIN
CVS Tags: v3r00
Changes since 1.6: +17 -8 lines
implemented a reduced level1 output

1 /**
2 * \file TrkProcess.cpp
3 * \author Elena Vannuccini
4 */
5 #include <TrkProcess.h>
6 #include <iostream>
7 using namespace std;
8 /**
9 * Create TrkProcess object, initializing the tracker processing variables at default values
10 */
11 TrkProcess::TrkProcess(){
12
13 idrun = 0;
14 dbg_mode.SetNone();
15 get1 = 0;
16 full1 = 0;
17 geth = 0;
18 get2 = 1;
19 standalone = false;
20 frame2 = "root";
21 frame1 = "root";
22 frameh = "root";
23 outdir = gSystem->WorkingDirectory();
24 pfolder = "/TrackerFolder";
25 if (!frame2.CompareTo("root", TString::kIgnoreCase)) ifroot2 = true;
26 else if (!frame2.CompareTo("hbook", TString::kIgnoreCase)) ifroot2 = false;
27
28 if (!frame1.CompareTo("root", TString::kIgnoreCase)) ifroot1 = true;
29 else if (!frame1.CompareTo("hbook", TString::kIgnoreCase)) ifroot1 = false;
30
31 if (!frameh.CompareTo("root", TString::kIgnoreCase)) ifrooth = true;
32 else if (!frameh.CompareTo("hbook", TString::kIgnoreCase)) ifrooth = false;
33
34 file1 = "";
35 file2 = "";
36
37 ostatus = 0;
38 };
39
40 /**
41 * Create TrkProcess object, initializing the tracker processing variables according to input parameters.
42 * @param run Run ID
43 * @param f2 Pointer to output level2 file
44 */
45 TrkProcess::TrkProcess(ULong64_t run, TFile *f2){
46
47 idrun = run;
48 // DEBUG = false;
49 // VERBOSE = false;
50 dbg_mode.SetWarning();
51 get1 = 0;
52 full1 = 0;
53 get2 = 1;
54 geth = 0;
55 standalone = false;
56 frame2 = "root";
57 frame1 = "root";
58 frameh = "root";
59 pfolder = "/TrackerFolder";
60 file1 = "";
61 if(f2->IsOpen()){
62 file2 = f2->GetPath();
63 outdir = gSystem->DirName(gSystem->DirName(file2));
64 // check if the indicated output directory exists
65 FileStat_t t;
66 if( gSystem->GetPathInfo(outdir.Data(),t) )throw -12;
67 }else{
68 file2 = "";
69 outdir = gSystem->WorkingDirectory();
70 };
71
72 if (!frame2.CompareTo("root", TString::kIgnoreCase)) ifroot2 = true;
73 else if (!frame2.CompareTo("hbook", TString::kIgnoreCase)) ifroot2 =false;
74
75 if (!frame1.CompareTo("root", TString::kIgnoreCase)) ifroot1 = true;
76 else if (!frame1.CompareTo("hbook", TString::kIgnoreCase)) ifroot1 =false;
77
78 if (!frameh.CompareTo("root", TString::kIgnoreCase)) ifrooth = true;
79 else if (!frameh.CompareTo("hbook", TString::kIgnoreCase)) ifrooth =false;
80
81 ostatus = 0;
82
83 };
84 /**
85 * Set processing variables according to input custom parameters
86 */
87 void TrkProcess::HandleCustomPar(int ncustom, char *vcustom[]){
88
89 for (int i=0; i< ncustom; i++){
90
91 // -----------------------------------------------------//
92 if (!strcmp(vcustom[i], "-processFolder")){
93 if (++i >= ncustom) throw -3;
94 pfolder = vcustom[i];
95 continue;
96 }
97 // -----------------------------------------------------//
98 if (!strcmp(vcustom[i], "--get1") || !strcmp(vcustom[i], "--get-level1") ){
99 get1 = 1;
100 full1 = 0;
101 continue;
102 }
103 // -----------------------------------------------------//
104 if (!strcmp(vcustom[i], "--get1-full") || !strcmp(vcustom[i], "--get-level1-full") ){
105 get1 = 1;
106 full1 = 1;
107 continue;
108 }
109 // -----------------------------------------------------//
110 if (!strcmp(vcustom[i], "--geth") || !strcmp(vcustom[i], "--get-hough") ){
111 geth = 1;
112 continue;
113 }
114 // -----------------------------------------------------//
115 if (!strcmp(vcustom[i], "--dontget2") ||!strcmp(vcustom[i], "--dontget-level2") ){
116 get2 = 0;
117 continue;
118 }
119 // -----------------------------------------------------//
120 if (!strcmp(vcustom[i], "--standalone") || !strcmp(vcustom[i], "-s")){
121 standalone = true;
122 continue;
123 }
124 // -----------------------------------------------------//
125 if (!strcmp(vcustom[i], "-processFile1")){
126 if (++i >= ncustom) throw -3;
127 get1 = 1;
128 file1 = vcustom[i];
129 continue;
130 }
131 // -----------------------------------------------------//
132 if (!strcmp(vcustom[i], "-frame1")){
133 if (++i >= ncustom)throw -3;
134 get1 = 1;
135 frame1 = vcustom[i];
136 continue;
137 }
138 // -----------------------------------------------------//
139 if (!strcmp(vcustom[i], "-frame2")){
140 if (++i >= ncustom)throw -3;
141 get2 = 1;
142 frame2 = vcustom[i];
143 continue;
144 }
145 // -----------------------------------------------------//
146 if (!strcmp(vcustom[i], "--verbose") || !strcmp(vcustom[i], "-v")){
147 // VERBOSE = true;
148 this->SetVerboseMode();
149 continue;
150 }
151 // -----------------------------------------------------//
152 else if (!strcmp(vcustom[i], "--debug") || !strcmp(vcustom[i], "-d")){
153 // DEBUG = true;
154 this->SetDebugMode();
155 continue;
156 };
157 }
158
159 if (!frame2.CompareTo("root", TString::kIgnoreCase)) ifroot2 = true;
160 else if (!frame2.CompareTo("hbook", TString::kIgnoreCase)) ifroot2 =false;
161 else throw -201;
162
163 if (!frame1.CompareTo("root", TString::kIgnoreCase)) ifroot1 = true;
164 else if (!frame1.CompareTo("hbook", TString::kIgnoreCase)) ifroot1 =false;
165 else throw -201;
166
167 if (!frameh.CompareTo("root", TString::kIgnoreCase)) ifrooth = true;
168 else if (!frameh.CompareTo("hbook", TString::kIgnoreCase)) ifrooth =false;
169 else throw -201;
170
171 if(get1 && !get2)full1=true;
172
173 ostatus = 0;
174
175 };
176 /**
177 * \brief Process Level0 event
178 * @param l0_event Pointer to an object of the tracker level0 class
179 * Starting from a Level0 object, this routine fills the level0 common, then calls
180 * the fortran routines, which process the event and fill level1 and level2 commons.
181 */
182 void TrkProcess::ProcessEvent(TrkLevel0 *l0_event){
183
184 // fill Level0 common from Level0 object
185 l0_event->GetCommonVar(&level0event_);
186
187 // process the event Level0->Level1->Level2
188 int F77err = 0;
189 //
190 reductionflight_(&F77err);
191 if(F77err < 0)throw F77err;
192 //
193 if(get2) analysisflight_();
194 //
195 ostatus = F77err;
196
197 };
198
199 void TrkProcess::Dump(){
200
201 cout <<endl<< "Tracker process parameters: "<< endl;
202 cout << " idRun " << idrun << endl;
203 cout << " get level1 " << get1 << endl;
204 cout << " full level1 " << full1 << endl;
205 cout << " get level2 " << get2 << endl;
206 cout << " get hough " << geth << endl;
207 cout << " frame1 " << frame1 << endl;
208 cout << " frame2 " << frame2 << endl;
209 cout << " frameh " << frame2 << endl;
210 cout << " file1 " << file1 << endl;
211 cout << " file2 " << file2 << endl;
212 cout << " outdir " << outdir << endl;
213 cout << " process folder " << pfolder << endl;
214 cout << " standalone mode " << standalone << endl;
215 cout << " debug mode warning " << dbg_mode.warning << endl;
216 cout << " debug mode verbose " << dbg_mode.verbose << endl;
217 cout << " debug mode debug " << dbg_mode.debug << endl << endl;
218
219 }

  ViewVC Help
Powered by ViewVC 1.1.23