#include <ReactorNtuple.hh>
Public Methods | |
ReactorNtuple (int ntId, const char *ntName, char *dirName) | |
ReactorNtuple constructor. More... | |
~ReactorNtuple () | |
ReactorNtuple destructor. | |
ReactorNtuple (const ReactorNtuple &Ntuple) | |
ReactorNtuple copy constructor. | |
ReactorNtuple & | operator= (const ReactorNtuple &rhs) |
ReactorNtuple overloaded = operator. | |
void | Fill (ReactorEvent &Event, ReactorDetector &Detector) |
Definition at line 12 of file ReactorNtuple.hh.
|
ReactorNtuple constructor. Called by ReactorFsim with an ntuple Id, name and directory name. Creates all the ntuple arrays and histograms as set by the user. Definition at line 53 of file ReactorNtuple.cpp.
00055 { 00056 00057 // define ntuple tags here 00058 // to add vars, increment ntVars, and add tag to end of list 00059 // don't change wordsize 00060 // 00061 int wordsize = 8; 00062 int ntVarsMax = 100; 00063 char ntTags[ntVarsMax*wordsize]; 00064 // 00065 int ntVars = 0; 00066 int id = 1; 00067 char Name[100]; 00068 // 00069 // book the general event veriables, nt=1001 00070 // 00071 strcpy(ntTags+ntVars++*wordsize,"nevents "); 00072 strcpy(ntTags+ntVars++*wordsize,"wtc "); 00073 strcpy(ntTags+ntVars++*wordsize,"wtf "); 00074 // 00075 IdGen = 1000*ntId+id++; 00076 sprintf(Name,"%s%s",ntName,", general"); 00077 NvarGen = ntVars; 00078 // 00079 hbookn_(IdGen,Name,NvarGen,dirName,1000,ntTags, 00080 strlen(Name),strlen(dirName),wordsize,NvarGen); 00081 // 00082 // reset 00083 ntVars = 0; 00084 // 00085 // book the nubar event variables, nt=1002 00086 // 00087 // up to 5 nubar per event 00088 strcpy(ntTags+ntVars++*wordsize,"nnu "); 00089 00090 strcpy(ntTags+ntVars++*wordsize,"enu1 "); 00091 strcpy(ntTags+ntVars++*wordsize,"nuproc1 "); 00092 strcpy(ntTags+ntVars++*wordsize,"vnu1r "); 00093 strcpy(ntTags+ntVars++*wordsize,"vnu1cos "); 00094 strcpy(ntTags+ntVars++*wordsize,"vnu1phi "); 00095 strcpy(ntTags+ntVars++*wordsize,"vnu1x "); 00096 strcpy(ntTags+ntVars++*wordsize,"vnu1y "); 00097 strcpy(ntTags+ntVars++*wordsize,"vnu1z "); 00098 00099 strcpy(ntTags+ntVars++*wordsize,"enu2 "); 00100 strcpy(ntTags+ntVars++*wordsize,"nuproc2 "); 00101 strcpy(ntTags+ntVars++*wordsize,"vnu2r "); 00102 strcpy(ntTags+ntVars++*wordsize,"vnu2cos "); 00103 strcpy(ntTags+ntVars++*wordsize,"vnu2phi "); 00104 strcpy(ntTags+ntVars++*wordsize,"vnu2x "); 00105 strcpy(ntTags+ntVars++*wordsize,"vnu2y "); 00106 strcpy(ntTags+ntVars++*wordsize,"vnu2z "); 00107 00108 strcpy(ntTags+ntVars++*wordsize,"enu3 "); 00109 strcpy(ntTags+ntVars++*wordsize,"nuproc3 "); 00110 strcpy(ntTags+ntVars++*wordsize,"vnu3r "); 00111 strcpy(ntTags+ntVars++*wordsize,"vnu3cos "); 00112 strcpy(ntTags+ntVars++*wordsize,"vnu3phi "); 00113 strcpy(ntTags+ntVars++*wordsize,"vnu3x "); 00114 strcpy(ntTags+ntVars++*wordsize,"vnu3y "); 00115 strcpy(ntTags+ntVars++*wordsize,"vnu3z "); 00116 00117 strcpy(ntTags+ntVars++*wordsize,"enu4 "); 00118 strcpy(ntTags+ntVars++*wordsize,"nuproc4 "); 00119 strcpy(ntTags+ntVars++*wordsize,"vnu4r "); 00120 strcpy(ntTags+ntVars++*wordsize,"vnu4cos "); 00121 strcpy(ntTags+ntVars++*wordsize,"vnu4phi "); 00122 strcpy(ntTags+ntVars++*wordsize,"vnu4x "); 00123 strcpy(ntTags+ntVars++*wordsize,"vnu4y "); 00124 strcpy(ntTags+ntVars++*wordsize,"vnu4z "); 00125 00126 strcpy(ntTags+ntVars++*wordsize,"enu5 "); 00127 strcpy(ntTags+ntVars++*wordsize,"nuproc5 "); 00128 strcpy(ntTags+ntVars++*wordsize,"vnu5r "); 00129 strcpy(ntTags+ntVars++*wordsize,"vnu5cos "); 00130 strcpy(ntTags+ntVars++*wordsize,"vnu5phi "); 00131 strcpy(ntTags+ntVars++*wordsize,"vnu5x "); 00132 strcpy(ntTags+ntVars++*wordsize,"vnu5y "); 00133 strcpy(ntTags+ntVars++*wordsize,"vnu5z "); 00134 // 00135 IdNu = 1000*ntId+id++; 00136 sprintf(Name,"%s%s",ntName,", nubar"); 00137 NvarNu = ntVars; 00138 // 00139 hbookn_(IdNu,Name,NvarNu,dirName,1000,ntTags, 00140 strlen(Name),strlen(dirName),wordsize,NvarNu); 00141 // 00142 // reset 00143 ntVars = 0; 00144 // 00145 // book the positron event variables, nt=1003 00146 // 00147 // up to 5 positron per event 00148 strcpy(ntTags+ntVars++*wordsize,"npos "); 00149 00150 strcpy(ntTags+ntVars++*wordsize,"KEpos1 "); 00151 strcpy(ntTags+ntVars++*wordsize,"pos1cos "); 00152 strcpy(ntTags+ntVars++*wordsize,"posproc1 "); 00153 strcpy(ntTags+ntVars++*wordsize,"gpos1r "); 00154 strcpy(ntTags+ntVars++*wordsize,"gpos1cos "); 00155 strcpy(ntTags+ntVars++*wordsize,"gpos1phi "); 00156 strcpy(ntTags+ntVars++*wordsize,"gpos1x "); 00157 strcpy(ntTags+ntVars++*wordsize,"gpos1y "); 00158 strcpy(ntTags+ntVars++*wordsize,"gpos1z "); 00159 strcpy(ntTags+ntVars++*wordsize,"vpos1r "); 00160 strcpy(ntTags+ntVars++*wordsize,"vpos1cos "); 00161 strcpy(ntTags+ntVars++*wordsize,"vpos1phi "); 00162 strcpy(ntTags+ntVars++*wordsize,"vpos1x "); 00163 strcpy(ntTags+ntVars++*wordsize,"vpos1y "); 00164 strcpy(ntTags+ntVars++*wordsize,"vpos1z "); 00165 strcpy(ntTags+ntVars++*wordsize,"tpos1 "); 00166 00167 strcpy(ntTags+ntVars++*wordsize,"KEpos2 "); 00168 strcpy(ntTags+ntVars++*wordsize,"pos2cos "); 00169 strcpy(ntTags+ntVars++*wordsize,"posproc2 "); 00170 strcpy(ntTags+ntVars++*wordsize,"gpos2r "); 00171 strcpy(ntTags+ntVars++*wordsize,"gpos2cos "); 00172 strcpy(ntTags+ntVars++*wordsize,"gpos2phi "); 00173 strcpy(ntTags+ntVars++*wordsize,"gpos2x "); 00174 strcpy(ntTags+ntVars++*wordsize,"gpos2y "); 00175 strcpy(ntTags+ntVars++*wordsize,"gpos2z "); 00176 strcpy(ntTags+ntVars++*wordsize,"vpos2r "); 00177 strcpy(ntTags+ntVars++*wordsize,"vpos2cos "); 00178 strcpy(ntTags+ntVars++*wordsize,"vpos2phi "); 00179 strcpy(ntTags+ntVars++*wordsize,"vpos2x "); 00180 strcpy(ntTags+ntVars++*wordsize,"vpos2y "); 00181 strcpy(ntTags+ntVars++*wordsize,"vpos2z "); 00182 strcpy(ntTags+ntVars++*wordsize,"tpos2 "); 00183 00184 strcpy(ntTags+ntVars++*wordsize,"KEpos3 "); 00185 strcpy(ntTags+ntVars++*wordsize,"pos3cos "); 00186 strcpy(ntTags+ntVars++*wordsize,"posproc3 "); 00187 strcpy(ntTags+ntVars++*wordsize,"gpos3r "); 00188 strcpy(ntTags+ntVars++*wordsize,"gpos3cos "); 00189 strcpy(ntTags+ntVars++*wordsize,"gpos3phi "); 00190 strcpy(ntTags+ntVars++*wordsize,"gpos3x "); 00191 strcpy(ntTags+ntVars++*wordsize,"gpos3y "); 00192 strcpy(ntTags+ntVars++*wordsize,"gpos3z "); 00193 strcpy(ntTags+ntVars++*wordsize,"vpos3r "); 00194 strcpy(ntTags+ntVars++*wordsize,"vpos3cos "); 00195 strcpy(ntTags+ntVars++*wordsize,"vpos3phi "); 00196 strcpy(ntTags+ntVars++*wordsize,"vpos3x "); 00197 strcpy(ntTags+ntVars++*wordsize,"vpos3y "); 00198 strcpy(ntTags+ntVars++*wordsize,"vpos3z "); 00199 strcpy(ntTags+ntVars++*wordsize,"tpos3 "); 00200 00201 strcpy(ntTags+ntVars++*wordsize,"KEpos4 "); 00202 strcpy(ntTags+ntVars++*wordsize,"pos4cos "); 00203 strcpy(ntTags+ntVars++*wordsize,"posproc4 "); 00204 strcpy(ntTags+ntVars++*wordsize,"gpos4r "); 00205 strcpy(ntTags+ntVars++*wordsize,"gpos4cos "); 00206 strcpy(ntTags+ntVars++*wordsize,"gpos4phi "); 00207 strcpy(ntTags+ntVars++*wordsize,"gpos4x "); 00208 strcpy(ntTags+ntVars++*wordsize,"gpos4y "); 00209 strcpy(ntTags+ntVars++*wordsize,"gpos4z "); 00210 strcpy(ntTags+ntVars++*wordsize,"vpos4r "); 00211 strcpy(ntTags+ntVars++*wordsize,"vpos4cos "); 00212 strcpy(ntTags+ntVars++*wordsize,"vpos4phi "); 00213 strcpy(ntTags+ntVars++*wordsize,"vpos4x "); 00214 strcpy(ntTags+ntVars++*wordsize,"vpos4y "); 00215 strcpy(ntTags+ntVars++*wordsize,"vpos4z "); 00216 strcpy(ntTags+ntVars++*wordsize,"tpos4 "); 00217 00218 strcpy(ntTags+ntVars++*wordsize,"KEpos5 "); 00219 strcpy(ntTags+ntVars++*wordsize,"pos5cos "); 00220 strcpy(ntTags+ntVars++*wordsize,"posproc5 "); 00221 strcpy(ntTags+ntVars++*wordsize,"gpos5r "); 00222 strcpy(ntTags+ntVars++*wordsize,"gpos5cos "); 00223 strcpy(ntTags+ntVars++*wordsize,"gpos5phi "); 00224 strcpy(ntTags+ntVars++*wordsize,"gpos5x "); 00225 strcpy(ntTags+ntVars++*wordsize,"gpos5y "); 00226 strcpy(ntTags+ntVars++*wordsize,"gpos5z "); 00227 strcpy(ntTags+ntVars++*wordsize,"vpos5r "); 00228 strcpy(ntTags+ntVars++*wordsize,"vpos5cos "); 00229 strcpy(ntTags+ntVars++*wordsize,"vpos5phi "); 00230 strcpy(ntTags+ntVars++*wordsize,"vpos5x "); 00231 strcpy(ntTags+ntVars++*wordsize,"vpos5y "); 00232 strcpy(ntTags+ntVars++*wordsize,"vpos5z "); 00233 strcpy(ntTags+ntVars++*wordsize,"tpos5 "); 00234 // 00235 IdPos = 1000*ntId+id++; 00236 sprintf(Name,"%s%s",ntName,", positron"); 00237 NvarPos = ntVars; 00238 // 00239 hbookn_(IdPos,Name,NvarPos,dirName,1000,ntTags, 00240 strlen(Name),strlen(dirName),wordsize,NvarPos); 00241 // 00242 // reset 00243 ntVars = 0; 00244 // 00245 // book the neutron event variables, nt=1004 00246 // 00247 // up to 5 neutron per event 00248 strcpy(ntTags+ntVars++*wordsize,"nneu "); 00249 00250 strcpy(ntTags+ntVars++*wordsize,"KEneu1 "); 00251 strcpy(ntTags+ntVars++*wordsize,"neu1cos "); 00252 strcpy(ntTags+ntVars++*wordsize,"neuproc1 "); 00253 strcpy(ntTags+ntVars++*wordsize,"gneu1r "); 00254 strcpy(ntTags+ntVars++*wordsize,"gneu1cos "); 00255 strcpy(ntTags+ntVars++*wordsize,"gneu1phi "); 00256 strcpy(ntTags+ntVars++*wordsize,"gneu1x "); 00257 strcpy(ntTags+ntVars++*wordsize,"gneu1y "); 00258 strcpy(ntTags+ntVars++*wordsize,"gneu1z "); 00259 strcpy(ntTags+ntVars++*wordsize,"vneu1r "); 00260 strcpy(ntTags+ntVars++*wordsize,"vneu1cos "); 00261 strcpy(ntTags+ntVars++*wordsize,"vneu1phi "); 00262 strcpy(ntTags+ntVars++*wordsize,"vneu1x "); 00263 strcpy(ntTags+ntVars++*wordsize,"vneu1y "); 00264 strcpy(ntTags+ntVars++*wordsize,"vneu1z "); 00265 strcpy(ntTags+ntVars++*wordsize,"tneu1 "); 00266 strcpy(ntTags+ntVars++*wordsize,"nsteps1 "); 00267 strcpy(ntTags+ntVars++*wordsize,"absorb1 "); 00268 00269 strcpy(ntTags+ntVars++*wordsize,"KEneu2 "); 00270 strcpy(ntTags+ntVars++*wordsize,"neu2cos "); 00271 strcpy(ntTags+ntVars++*wordsize,"neuproc2 "); 00272 strcpy(ntTags+ntVars++*wordsize,"gneu2r "); 00273 strcpy(ntTags+ntVars++*wordsize,"gneu2cos "); 00274 strcpy(ntTags+ntVars++*wordsize,"gneu2phi "); 00275 strcpy(ntTags+ntVars++*wordsize,"gneu2x "); 00276 strcpy(ntTags+ntVars++*wordsize,"gneu2y "); 00277 strcpy(ntTags+ntVars++*wordsize,"gneu2z "); 00278 strcpy(ntTags+ntVars++*wordsize,"vneu2r "); 00279 strcpy(ntTags+ntVars++*wordsize,"vneu2cos "); 00280 strcpy(ntTags+ntVars++*wordsize,"vneu2phi "); 00281 strcpy(ntTags+ntVars++*wordsize,"vneu2x "); 00282 strcpy(ntTags+ntVars++*wordsize,"vneu2y "); 00283 strcpy(ntTags+ntVars++*wordsize,"vneu2z "); 00284 strcpy(ntTags+ntVars++*wordsize,"tneu2 "); 00285 strcpy(ntTags+ntVars++*wordsize,"nsteps2 "); 00286 strcpy(ntTags+ntVars++*wordsize,"absorb2 "); 00287 00288 strcpy(ntTags+ntVars++*wordsize,"KEneu3 "); 00289 strcpy(ntTags+ntVars++*wordsize,"neu3cos "); 00290 strcpy(ntTags+ntVars++*wordsize,"neuproc3 "); 00291 strcpy(ntTags+ntVars++*wordsize,"gneu3r "); 00292 strcpy(ntTags+ntVars++*wordsize,"gneu3cos "); 00293 strcpy(ntTags+ntVars++*wordsize,"gneu3phi "); 00294 strcpy(ntTags+ntVars++*wordsize,"gneu3x "); 00295 strcpy(ntTags+ntVars++*wordsize,"gneu3y "); 00296 strcpy(ntTags+ntVars++*wordsize,"gneu3z "); 00297 strcpy(ntTags+ntVars++*wordsize,"vneu3r "); 00298 strcpy(ntTags+ntVars++*wordsize,"vneu3cos "); 00299 strcpy(ntTags+ntVars++*wordsize,"vneu3phi "); 00300 strcpy(ntTags+ntVars++*wordsize,"vneu3x "); 00301 strcpy(ntTags+ntVars++*wordsize,"vneu3y "); 00302 strcpy(ntTags+ntVars++*wordsize,"vneu3z "); 00303 strcpy(ntTags+ntVars++*wordsize,"tneu3 "); 00304 strcpy(ntTags+ntVars++*wordsize,"nsteps3 "); 00305 strcpy(ntTags+ntVars++*wordsize,"absorb3 "); 00306 00307 strcpy(ntTags+ntVars++*wordsize,"KEneu4 "); 00308 strcpy(ntTags+ntVars++*wordsize,"neu4cos "); 00309 strcpy(ntTags+ntVars++*wordsize,"neuproc4 "); 00310 strcpy(ntTags+ntVars++*wordsize,"gneu4r "); 00311 strcpy(ntTags+ntVars++*wordsize,"gneu4cos "); 00312 strcpy(ntTags+ntVars++*wordsize,"gneu4phi "); 00313 strcpy(ntTags+ntVars++*wordsize,"gneu4x "); 00314 strcpy(ntTags+ntVars++*wordsize,"gneu4y "); 00315 strcpy(ntTags+ntVars++*wordsize,"gneu4z "); 00316 strcpy(ntTags+ntVars++*wordsize,"vneu4r "); 00317 strcpy(ntTags+ntVars++*wordsize,"vneu4cos "); 00318 strcpy(ntTags+ntVars++*wordsize,"vneu4phi "); 00319 strcpy(ntTags+ntVars++*wordsize,"vneu4x "); 00320 strcpy(ntTags+ntVars++*wordsize,"vneu4y "); 00321 strcpy(ntTags+ntVars++*wordsize,"vneu4z "); 00322 strcpy(ntTags+ntVars++*wordsize,"tneu4 "); 00323 strcpy(ntTags+ntVars++*wordsize,"nsteps4 "); 00324 strcpy(ntTags+ntVars++*wordsize,"absorb4 "); 00325 00326 strcpy(ntTags+ntVars++*wordsize,"KEneu5 "); 00327 strcpy(ntTags+ntVars++*wordsize,"neu5cos "); 00328 strcpy(ntTags+ntVars++*wordsize,"neuproc5 "); 00329 strcpy(ntTags+ntVars++*wordsize,"gneu5r "); 00330 strcpy(ntTags+ntVars++*wordsize,"gneu5cos "); 00331 strcpy(ntTags+ntVars++*wordsize,"gneu5phi "); 00332 strcpy(ntTags+ntVars++*wordsize,"gneu5x "); 00333 strcpy(ntTags+ntVars++*wordsize,"gneu5y "); 00334 strcpy(ntTags+ntVars++*wordsize,"gneu5z "); 00335 strcpy(ntTags+ntVars++*wordsize,"vneu5r "); 00336 strcpy(ntTags+ntVars++*wordsize,"vneu5cos "); 00337 strcpy(ntTags+ntVars++*wordsize,"vneu5phi "); 00338 strcpy(ntTags+ntVars++*wordsize,"vneu5x "); 00339 strcpy(ntTags+ntVars++*wordsize,"vneu5y "); 00340 strcpy(ntTags+ntVars++*wordsize,"vneu5z "); 00341 strcpy(ntTags+ntVars++*wordsize,"tneu5 "); 00342 strcpy(ntTags+ntVars++*wordsize,"nsteps5 "); 00343 strcpy(ntTags+ntVars++*wordsize,"absorb5 "); 00344 // 00345 IdNeu = 1000*ntId+id++; 00346 sprintf(Name,"%s%s",ntName,", neutron"); 00347 NvarNeu = ntVars; 00348 // 00349 hbookn_(IdNeu,Name,NvarNeu,dirName,1000,ntTags, 00350 strlen(Name),strlen(dirName),wordsize,NvarNeu); 00351 // 00352 // reset 00353 ntVars = 0; 00354 // 00355 // book the pmt detector variables, nt=1005 00356 // 00357 strcpy(ntTags+ntVars++*wordsize,"ncosbins "); 00358 strcpy(ntTags+ntVars++*wordsize,"nphibins "); 00359 00360 strcpy(ntTags+ntVars++*wordsize,"phposvis "); 00361 strcpy(ntTags+ntVars++*wordsize,"phposrec "); 00362 strcpy(ntTags+ntVars++*wordsize,"phneuvis "); 00363 strcpy(ntTags+ntVars++*wordsize,"phneurec "); 00364 00365 strcpy(ntTags+ntVars++*wordsize,"npepos "); 00366 strcpy(ntTags+ntVars++*wordsize,"attenpos "); 00367 strcpy(ntTags+ntVars++*wordsize,"sfactpos "); 00368 strcpy(ntTags+ntVars++*wordsize,"npeneu "); 00369 strcpy(ntTags+ntVars++*wordsize,"attenneu "); 00370 strcpy(ntTags+ntVars++*wordsize,"sfactneu "); 00371 strcpy(ntTags+ntVars++*wordsize,"ngampos "); 00372 strcpy(ntTags+ntVars++*wordsize,"ngamneu "); 00373 strcpy(ntTags+ntVars++*wordsize,"ngamtha "); 00374 strcpy(ntTags+ntVars++*wordsize,"fpmtpos "); 00375 strcpy(ntTags+ntVars++*wordsize,"fpmtneu "); 00376 00377 strcpy(ntTags+ntVars++*wordsize,"dposx "); 00378 strcpy(ntTags+ntVars++*wordsize,"dposy "); 00379 strcpy(ntTags+ntVars++*wordsize,"dposz "); 00380 strcpy(ntTags+ntVars++*wordsize,"dneux "); 00381 strcpy(ntTags+ntVars++*wordsize,"dneuy "); 00382 strcpy(ntTags+ntVars++*wordsize,"dneuz "); 00383 // 00384 IdDet = 1000*ntId+id++; 00385 sprintf(Name,"%s%s",ntName,", detector"); 00386 NvarDet = ntVars; 00387 // 00388 hbookn_(IdDet,Name,NvarDet,dirName,1000,ntTags, 00389 strlen(Name),strlen(dirName),wordsize,NvarDet); 00390 // 00391 // define some histograms 00392 // Last argument is need for c++ ==> f strings 00393 // 00394 Offset = 10000*(ntId-1); 00395 /* 00396 hbook1_(Offset+101,"phpos",200,0,0.1,0,strlen("phpos")); 00397 hbook1_(Offset+102,"phneu",200,0,0.1,0,strlen("phneu")); 00398 // 00399 hbook1_(Offset+201,"tpos",250,0,25,0,strlen("tpos")); 00400 hbook1_(Offset+202,"tneu",250,0,500000,0,strlen("tneu")); 00401 // 00402 hbook1_(Offset+301,"ngpos",10,0,10,0,strlen("ngpos")); 00403 hbook1_(Offset+302,"ngneu",20,0,20,0,strlen("ngneu")); 00404 // 00405 hbook1_(Offset+401,"egpos",200,0,10,0,strlen("egpos")); 00406 hbook1_(Offset+402,"egneu",200,0,20,0,strlen("egneu")); 00407 // 00408 hbook1_(Offset+501,"rgp-rpos",200,0,100,0,strlen("rgp-rpos")); 00409 hbook1_(Offset+502,"rgn-rneu",200,0,100,0,strlen("rgn-rneu")); 00410 // 00411 hbook1_(Offset+601,"rgp-rnu",200,0,100,0,strlen("rgp-rnu")); 00412 hbook1_(Offset+602,"rgn-rnu",200,0,100,0,strlen("rgn-rnu")); 00413 // 00414 hbook1_(Offset+701,"tgp-tpos",250,0,5,0,strlen("tgp-tpos")); 00415 hbook1_(Offset+702,"tgn-tneu",250,0,5,0,strlen("tgn-tneu")); 00416 // 00417 hbook1_(Offset+801,"tgp-tnu",250,0,25,0,strlen("tgp-tnu")); 00418 hbook1_(Offset+802,"tgn-tnu",250,0,1000000,0,strlen("tgn-tnu")); 00419 */ 00420 } |