BOSS 7.0.4
BESIII Offline Software System
Loading...
Searching...
No Matches
EmcRecParameter.cxx
Go to the documentation of this file.
1//
2// Parameters for Emc Reconstruction
3//
4// No Parameter is allowed to be hard coded into code!
5//
6// Created by Zhe Wang, May 31, 2004
7//
8#include "EmcRec/EmcRecParameter.h"
9#include "TGraph2DErrors.h"
10#include <fstream>
11#include <sstream>
12#include <assert.h>
13#include <stdlib.h>
14
15//Initialize static data member
16EmcRecParameter* EmcRecParameter::fpInstance=0;
17pthread_mutex_t EmcRecParameter::m_pthread_lock = PTHREAD_MUTEX_INITIALIZER;
18
19// Constructors and destructors
20EmcRecParameter::EmcRecParameter()
21{
22 string paraPath = getenv("EMCRECROOT");
23 if(paraPath==""){} //cout<<"EmcRec environment not set!";
24 string paraPath1(paraPath);
25 string paraPath2(paraPath);
26 string paraPath3(paraPath);
27 string paraPath4(paraPath);
28 string paraPath3_1(paraPath);
29 string paraPath4_1(paraPath);
30 string paraPath5(paraPath);
31 string paraPath6(paraPath);
32 string paraPath7(paraPath);
33 string paraPath8(paraPath);
34 string paraPath9(paraPath);
35 string paraPath10(paraPath);
36 string paraPath11(paraPath);
37 string paraPath12(paraPath);
38 string paraPath11_1(paraPath);
39 string paraPath12_1(paraPath);
40 string paraPath13(paraPath);
41 string paraPath14(paraPath);
42 string paraPath15(paraPath);
43 string paraPath16(paraPath);
44 string paraPath17(paraPath);
45 string paraPath18(paraPath);
46 string paraPath19(paraPath);
47 string paraPath18_1(paraPath);
48 string paraPath19_1(paraPath);
49 string paraPath20(paraPath);
50 string paraPath21(paraPath);
51 string paraPath22(paraPath);
52 string paraPath23(paraPath);
53 string paraPath24(paraPath);
54 string paraPath25(paraPath);
55 string paraPath26(paraPath);
56 string paraPath27(paraPath);
57 string paraPath28(paraPath);
58 string paraPath29(paraPath);
59 paraPath += "/share/EmcRecPara.dat";
60 //cout<<paraPath<<endl;
61 ifstream in;
62 in.open(paraPath.c_str());
63 assert(in);
64
65 const int maxCharOfOneLine=255;
66 char temp[maxCharOfOneLine];
67 int inputNo=0;
68 while(in.peek()!=EOF) {
69 in.getline(temp,maxCharOfOneLine);
70 if(temp[0]=='#') continue;
71 inputNo++;
72 switch(inputNo) {
73 case 1:
74 istringstream(temp)>>fElectronicsNoiseLevel>>fEThresholdSeed>>fEThresholdCluster>>fLogPosOffset;
75 break;
76 case 2:
77 istringstream(temp)>>fMoliereRadius>>fLateralProfile;
78 break;
79 case 3:
80 istringstream(temp)>>eCorr[0]>>eCorr[1]>>eCorr[2]>>eCorr[3];
81 break;
82 case 4:
83 istringstream(temp)>>sigE[0]>>sigE[1]>>sigE[2]
84 >>sigTheta[0]>>sigTheta[1]>>sigPhi[0]>>sigPhi[1];
85 break;
86 case 5:
87 istringstream(temp)>>hitNb[0]>>hitNb[1]>>hitNb[2];
88 break;
89 case 6:
90 istringstream(temp)>>elecBias[0]>>elecBias[1]>>elecBias[2]
91 >>elecBias[3]>>elecBias[4];
92 break;
93 case 7:
94 istringstream(temp)>>smCut[0]>>smCut[1]>>smCut[2]>>smCut[3];
95 break;
96 default:
97 break;
98 }
99 }
100 in.close();
101
102 paraPath1 += "/share/Peak1.843_10.12calib.dat";
103 ifstream in1;
104 in1.open(paraPath1.c_str());
105 assert(in1);
106 int ntheta;
107 double sigma,sigmaerr,peakerr;
108 for(int i=0;i<56;i++) {
109 in1>>ntheta>>sigma>>sigmaerr>>peak[i]>>peakerr;
110 }
111 in1.close();
112
113 // Read energy correction parameters from PhotonCor/McCor
114 paraPath2 += "/share/evset.txt";
115 ifstream in2;
116 in2.open(paraPath2.c_str());
117 assert(in2);
118 double energy,thetaid,peak1,peakerr1,res,reserr;
119
120 dt = new TGraph2DErrors();
121 dtErr = new TGraph2DErrors();
122 for(int i=0;i<560;i++){
123 in2>>energy;
124 in2>>thetaid;
125 in2>>peak1;
126 in2>>peakerr1;
127 in2>>res;
128 in2>>reserr;
129 dt->SetPoint(i,energy,thetaid,peak1);
130 dt->SetPointError(i,0,0,peakerr1);
131 dtErr->SetPoint(i,energy,thetaid,res);
132 dtErr->SetPointError(i,0,0,reserr);
133
134 if(i<28) e25min[int(thetaid)]=energy;
135 if(i>=560-28) e25max[int(thetaid)]=energy;
136
137 }
138 in2.close();
139
140// Position correction parameters
141 paraPath3_1 += "/share/BarrLogShMaxThetaPara.dat";
142 ifstream in3_1;
143 in3_1.open(paraPath3_1.c_str());
144 assert(in3_1);
145 for(int i=0;i<132;i++){
146 for(int j=0;j<5;j++){
147 in3_1>>barrLogShMaxThetaPara[i][j];
148 }
149 }
150 in3_1.close();
151
152 paraPath4_1 += "/share/BarrLogShMaxPhiPara.dat";
153 ifstream in4_1;
154 in4_1.open(paraPath4_1.c_str());
155 assert(in4_1);
156 for(int i=0;i<132;i++){
157 for(int j=0;j<5;j++){
158 in4_1>>barrLogShMaxPhiPara[i][j];
159 }
160 }
161 in4_1.close();
162
163 paraPath11_1 += "/share/EastLogShMaxThetaPara.dat";
164 ifstream in11_1;
165 in11_1.open(paraPath11_1.c_str());
166 assert(in11_1);
167 for(int i=0;i<18;i++){
168 for(int j=0;j<5;j++){
169 in11_1>>eastLogShMaxThetaPara[i][j];
170 }
171 }
172 in11_1.close();
173
174 paraPath12_1 += "/share/WestLogShMaxThetaPara.dat";
175 ifstream in12_1;
176 in12_1.open(paraPath12_1.c_str());
177 assert(in12_1);
178 for(int i=0;i<18;i++){
179 for(int j=0;j<5;j++){
180 in12_1>>westLogShMaxThetaPara[i][j];
181 }
182 }
183 in12_1.close();
184
185 paraPath18_1 += "/share/EastLogShMaxPhiPara.dat";
186 ifstream in18_1;
187 in18_1.open(paraPath18_1.c_str());
188 assert(in18_1);
189 for(int i=0;i<3;i++){
190 for(int j=0;j<5;j++){
191 in18_1>>eastLogShMaxPhiPara[i][j];
192 }
193 }
194 in18_1.close();
195
196 paraPath19_1 += "/share/WestLogShMaxPhiPara.dat";
197 ifstream in19_1;
198 in19_1.open(paraPath19_1.c_str());
199 assert(in19_1);
200 for(int i=0;i<3;i++){
201 for(int j=0;j<5;j++){
202 in19_1>>westLogShMaxPhiPara[i][j];
203 }
204 }
205 in19_1.close();
206
207
208
209// Position correction parameters
210 paraPath3 += "/share/BarrLogThetaPara.dat";
211 ifstream in3;
212 in3.open(paraPath3.c_str());
213 assert(in3);
214 for(int i=0;i<66;i++){
215 for(int j=0;j<5;j++){
216 in3>>barrLogThetaPara[i][j];
217 }
218 }
219 in3.close();
220
221 paraPath4 += "/share/BarrLogPhiPara.dat";
222 ifstream in4;
223 in4.open(paraPath4.c_str());
224 assert(in4);
225 for(int i=0;i<66;i++){
226 for(int j=0;j<5;j++){
227 in4>>barrLogPhiPara[i][j];
228 }
229 }
230 in4.close();
231
232 paraPath5 += "/share/BarrLinThetaPara.dat";
233 ifstream in5;
234 in5.open(paraPath5.c_str());
235 assert(in5);
236 for(int i=0;i<66;i++){
237 for(int j=0;j<5;j++){
238 in5>>barrLinThetaPara[i][j];
239 }
240 }
241 in5.close();
242
243 paraPath6 += "/share/BarrLinPhiPara.dat";
244 ifstream in6;
245 in6.open(paraPath6.c_str());
246 assert(in6);
247 for(int i=0;i<3;i++){
248 for(int j=0;j<5;j++){
249 in6>>barrLinPhiPara[i][j];
250 }
251 }
252 in6.close();
253
254 /*
255 paraPath7 += "/share/BarrShLogThetaPara.dat";
256 ifstream in7;
257 in7.open(paraPath7.c_str());
258 assert(in7);
259 for(int i=0;i<66;i++){
260 for(int j=0;j<5;j++){
261 in7>>barrShLogThetaPara[i][j];
262 }
263 }
264 in7.close();
265
266 paraPath8 += "/share/BarrShLogPhiPara.dat";
267 ifstream in8;
268 in8.open(paraPath8.c_str());
269 assert(in8);
270 for(int i=0;i<3;i++){
271 for(int j=0;j<5;j++){
272 in8>>barrShLogPhiPara[i][j];
273 }
274 }
275 in8.close();
276 */
277
278 paraPath9 += "/share/BarrShLinThetaPara.dat";
279 ifstream in9;
280 in9.open(paraPath9.c_str());
281 assert(in9);
282 for(int i=0;i<66;i++){
283 for(int j=0;j<5;j++){
284 in9>>barrShLinThetaPara[i][j];
285 }
286 }
287 in9.close();
288
289 paraPath10 += "/share/BarrShLinPhiPara.dat";
290 ifstream in10;
291 in10.open(paraPath10.c_str());
292 assert(in10);
293 for(int i=0;i<3;i++){
294 for(int j=0;j<5;j++){
295 in10>>barrShLinPhiPara[i][j];
296 }
297 }
298 in10.close();
299
300
301 paraPath11 += "/share/EastLogThetaPara.dat";
302 ifstream in11;
303 in11.open(paraPath11.c_str());
304 assert(in11);
305 for(int i=0;i<18;i++){
306 for(int j=0;j<5;j++){
307 in11>>eastLogThetaPara[i][j];
308 }
309 }
310 in11.close();
311
312 paraPath12 += "/share/WestLogThetaPara.dat";
313 ifstream in12;
314 in12.open(paraPath12.c_str());
315 assert(in12);
316 for(int i=0;i<18;i++){
317 for(int j=0;j<5;j++){
318 in12>>westLogThetaPara[i][j];
319 }
320 }
321 in12.close();
322
323 paraPath13 += "/share/EastLinThetaPara.dat";
324 ifstream in13;
325 in13.open(paraPath13.c_str());
326 assert(in13);
327 for(int i=0;i<6;i++){
328 for(int j=0;j<5;j++){
329 in13>>eastLinThetaPara[i][j];
330 }
331 }
332 in13.close();
333
334 paraPath14 += "/share/WestLinThetaPara.dat";
335 ifstream in14;
336 in14.open(paraPath14.c_str());
337 assert(in14);
338 for(int i=0;i<6;i++){
339 for(int j=0;j<5;j++){
340 in14>>westLinThetaPara[i][j];
341 }
342 }
343 in14.close();
344
345 paraPath15 += "/share/BarrDataLogThetaPara.dat";
346 ifstream in15;
347 in15.open(paraPath15.c_str());
348 assert(in15);
349 for(int i=0;i<22;i++){
350 for(int j=0;j<5;j++){
351 in15>>barrDataLogThetaPara[i][j];
352 }
353 }
354 in15.close();
355
356 paraPath16 += "/share/EastDataLogThetaPara.dat";
357 ifstream in16;
358 in16.open(paraPath16.c_str());
359 assert(in16);
360 for(int i=0;i<6;i++){
361 for(int j=0;j<5;j++){
362 in16>>eastDataLogThetaPara[i][j];
363 }
364 }
365 in16.close();
366
367 paraPath17 += "/share/WestDataLogThetaPara.dat";
368 ifstream in17;
369 in17.open(paraPath17.c_str());
370 assert(in17);
371 for(int i=0;i<6;i++){
372 for(int j=0;j<5;j++){
373 in17>>westDataLogThetaPara[i][j];
374 }
375 }
376 in17.close();
377
378
379 paraPath18 += "/share/EastLogPhiPara.dat";
380 ifstream in18;
381 in18.open(paraPath18.c_str());
382 assert(in18);
383 for(int i=0;i<3;i++){
384 for(int j=0;j<5;j++){
385 in18>>eastLogPhiPara[i][j];
386 }
387 }
388 in18.close();
389
390 paraPath19 += "/share/WestLogPhiPara.dat";
391 ifstream in19;
392 in19.open(paraPath19.c_str());
393 assert(in19);
394 for(int i=0;i<3;i++){
395 for(int j=0;j<5;j++){
396 in19>>westLogPhiPara[i][j];
397 }
398 }
399 in19.close();
400
401 paraPath20 += "/share/EastLinPhiPara.dat";
402 ifstream in20;
403 in20.open(paraPath20.c_str());
404 assert(in20);
405 for(int i=0;i<1;i++){
406 for(int j=0;j<5;j++){
407 in20>>eastLinPhiPara[i][j];
408 }
409 }
410 in20.close();
411
412 paraPath21 += "/share/WestLinPhiPara.dat";
413 ifstream in21;
414 in21.open(paraPath21.c_str());
415 assert(in21);
416 for(int i=0;i<1;i++){
417 for(int j=0;j<5;j++){
418 in21>>westLinPhiPara[i][j];
419 }
420 }
421 in21.close();
422
423 paraPath22 += "/share/BarrLoglinThetaPara.dat";
424 ifstream in22;
425 in22.open(paraPath22.c_str());
426 assert(in22);
427 for(int i=0;i<22;i++){
428 for(int j=0;j<5;j++){
429 in22>>barrLoglinThetaPara[i][j];
430 }
431 }
432 in22.close();
433
434 paraPath23 += "/share/BarrLoglinPhiPara.dat";
435 ifstream in23;
436 in23.open(paraPath23.c_str());
437 assert(in23);
438 for(int i=0;i<1;i++){
439 for(int j=0;j<5;j++){
440 in23>>barrLoglinPhiPara[i][j];
441 }
442 }
443 in23.close();
444
445
446 int ith,iph;
447 double dth,dtherr,sig,sigerr;
448
449 paraPath24 += "/share/PosCorDataBarr.conf";
450 ifstream in24;
451 in24.open(paraPath24.c_str());
452 assert(in24);
453
454 for(int i=0;i<5280;i++){
455
456 in24>>iph>>ith>>dth>>dtherr>>sig>>sigerr;
457 barrPosDataCorPara[ith][iph]=dth;
458
459 }
460 in24.close();
461
462 paraPath25 += "/share/PosCorDataWest.conf";
463 ifstream in25;
464 in25.open(paraPath25.c_str());
465 assert(in25);
466 for(int i=0;i<480;i++){
467
468 in25>>ith>>iph>>dth>>dtherr>>sig>>sigerr;
469 westPosDataCorPara[ith][iph]=dth;
470
471 }
472 in25.close();
473
474 paraPath26 += "/share/PosCorDataEast.conf";
475 ifstream in26;
476 in26.open(paraPath26.c_str());
477 assert(in26);
478 for(int i=0;i<480;i++){
479
480 in26>>ith>>iph>>dth>>dtherr>>sig>>sigerr;
481 eastPosDataCorPara[ith][iph]=dth;
482
483 }
484 in26.close();
485
486 ////////////////////MCposcor
487 paraPath27 += "/share/PosCorMCBarr.conf";
488 ifstream in27;
489 in27.open(paraPath27.c_str());
490 assert(in27);
491
492 for(int i=0;i<5280;i++){
493
494 in27>>iph>>ith>>dth>>dtherr>>sig>>sigerr;
495 barrPosMCCorPara[ith][iph]=dth;
496
497 }
498 in27.close();
499
500 paraPath28 += "/share/PosCorMCWest.conf";
501 ifstream in28;
502 in28.open(paraPath28.c_str());
503 assert(in28);
504 for(int i=0;i<480;i++){
505
506 in28>>ith>>iph>>dth>>dtherr>>sig>>sigerr;
507 westPosMCCorPara[ith][iph]=dth;
508
509 }
510 in28.close();
511
512 paraPath29 += "/share/PosCorMCEast.conf";
513 ifstream in29;
514 in29.open(paraPath29.c_str());
515 assert(in29);
516 for(int i=0;i<480;i++){
517
518 in29>>ith>>iph>>dth>>dtherr>>sig>>sigerr;
519 eastPosMCCorPara[ith][iph]=dth;
520
521 }
522 in29.close();
523
524
525}
526
527
528EmcRecParameter::~EmcRecParameter()
529{
530 // cout<<"deconstructed"<<endl;
531 delete dt;
532 delete dtErr;
533}
534
535// static method
536//Access to an instance
538{
539 if(!Exist()) {
540 fpInstance=new EmcRecParameter;
541 }
542 return *fpInstance;
543}
544
546{
547 return fpInstance!=0;
548}
549
551{
552 if(Exist()) {
553 delete fpInstance;
554 fpInstance=0;
555 }
556}
557
558//access to each parameter
560{
561 return fElectronicsNoiseLevel;
562}
563
565{
566 return fEThresholdSeed;
567}
568
570{
571 return fEThresholdCluster;
572}
573
575{
576 return fLogPosOffset;
577}
578
580{
581 return fTimeMin;
582}
583
585{
586 return fTimeMax;
587}
588
589
591{
592 return fMethodMode;
593}
594
596{
597 return fPosCorr;
598}
599
601{
602 return fDataMode;
603}
605{
606 return fElecSaturation;
607}
608
610{
611 return fMoliereRadius;
612}
613
615{
616 return fLateralProfile;
617}
618
619double EmcRecParameter::ECorr(int n) const
620{
621 return eCorr[n];
622}
623
624double EmcRecParameter::SigE(int n) const
625{
626 return sigE[n];
627}
628
630{
631 return sigTheta[n];
632}
633
634double EmcRecParameter::SigPhi(int n) const
635{
636 return sigPhi[n];
637}
638
639double EmcRecParameter::HitNb(int n) const
640{
641 return hitNb[n];
642}
643
645{
646 return elecBias[n];
647}
648
649double EmcRecParameter::SmCut(int n) const
650{
651 return smCut[n];
652}
653
654double EmcRecParameter::Peak(int n) const
655{
656 return peak[n];
657}
658
659double EmcRecParameter::BarrLogThetaPara(int n , int m) const
660{
661 return barrLogThetaPara[n][m];
662}
663
664
665
666double EmcRecParameter::BarrLogPhiPara(int n ,int m) const
667{
668 return barrLogPhiPara[n][m];
669}
670
671
673{
674 return barrLoglinThetaPara[n][m];
675}
676
677
678
679double EmcRecParameter::BarrLoglinPhiPara(int n ,int m) const
680{
681 return barrLoglinPhiPara[n][m];
682}
683
684
685
686double EmcRecParameter::BarrLinThetaPara(int n , int m) const
687{
688 return barrLinThetaPara[n][m];
689}
690
691double EmcRecParameter::BarrLinPhiPara(int n ,int m) const
692{
693 return barrLinPhiPara[n][m];
694}
695
697{
698 return barrLogShMaxThetaPara[n][m];
699}
700
702{
703 return barrLogShMaxPhiPara[n][m];
704}
705
706double EmcRecParameter::BarrShLinThetaPara(int n , int m) const
707{
708 return barrShLinThetaPara[n][m];
709}
710
711double EmcRecParameter::BarrShLinPhiPara(int n ,int m) const
712{
713 return barrShLinPhiPara[n][m];
714}
715
716
717double EmcRecParameter::EastLogThetaPara(int n ,int m) const
718{
719 return eastLogThetaPara[n][m];
720}
721
722double EmcRecParameter::WestLogThetaPara(int n ,int m) const
723{
724 return westLogThetaPara[n][m];
725}
726
727double EmcRecParameter::EastLogPhiPara(int n ,int m) const
728{
729 return eastLogPhiPara[n][m];
730}
731
732double EmcRecParameter::WestLogPhiPara(int n ,int m) const
733{
734 return westLogPhiPara[n][m];
735}
736
737
739{
740 return eastLogShMaxThetaPara[n][m];
741}
742
744{
745 return westLogShMaxThetaPara[n][m];
746}
747
749{
750 return eastLogShMaxPhiPara[n][m];
751}
752
754{
755 return westLogShMaxPhiPara[n][m];
756}
757
758
759double EmcRecParameter::EastLinPhiPara(int n ,int m) const
760{
761 return eastLinPhiPara[n][m];
762}
763
764double EmcRecParameter::WestLinPhiPara(int n ,int m) const
765{
766 return westLinPhiPara[n][m];
767}
768
769
770double EmcRecParameter::EastLinThetaPara(int n ,int m) const
771{
772 return eastLinThetaPara[n][m];
773}
774
775double EmcRecParameter::WestLinThetaPara(int n ,int m) const
776{
777 return westLinThetaPara[n][m];
778}
779
781{
782 return barrDataLogThetaPara[n][m];
783}
784
785double EmcRecParameter::BarrPosDataCor(int ntheta, int nphi) const
786{
787 return barrPosDataCorPara[ntheta][nphi];
788}
789
790double EmcRecParameter::WestPosDataCor(int ntheta, int nphi) const
791{
792 return westPosDataCorPara[ntheta][nphi];
793}
794
795double EmcRecParameter::EastPosDataCor(int ntheta, int nphi) const
796{
797 return eastPosDataCorPara[ntheta][nphi];
798}
799
800double EmcRecParameter::BarrPosMCCor(int ntheta, int nphi) const
801{
802 return barrPosMCCorPara[ntheta][nphi];
803}
804
805double EmcRecParameter::WestPosMCCor(int ntheta, int nphi) const
806{
807 return westPosMCCorPara[ntheta][nphi];
808}
809
810double EmcRecParameter::EastPosMCCor(int ntheta, int nphi) const
811{
812 return eastPosMCCorPara[ntheta][nphi];
813}
814
815
816
818{
819 return eastDataLogThetaPara[n][m];
820}
821
823{
824 return westDataLogThetaPara[n][m];
825}
826
827
828
829
830void EmcRecParameter::SetPositionMode(std::vector<std::string>& mode)
831{
832 if(mode.size()==2) {
833 positionMode1=mode[0];
834 positionMode2=mode[1];
835 }
836}
837
838//The following function is copied from PhotonCor/McCor
839double EmcRecParameter::ECorrMC(double eg, double theid) const
840{
841 double Energy5x5=eg;
842 if(eg<E25min(int(theid))) eg=E25min(int(theid));
843 if(eg>E25max(int(theid))) eg=E25max(int(theid))-0.001;
844 if(theid<=0)theid=0.001;
845 if(theid>=27)theid=26.999;
846 Float_t einter = eg + 0.00001;
847 Float_t tinter = theid+0.0001;
848 double ecor=dt->Interpolate(einter,tinter);
849 if(!(ecor))return Energy5x5;
850 if(ecor<0.5)return Energy5x5;
851 double EnergyCor=Energy5x5/ecor;
852 return EnergyCor;
853}
854
855// Get energy error
856double EmcRecParameter::ErrMC(double eg, double theid) const
857{
858
859 if(eg<E25min(int(theid))) eg=E25min(int(theid));
860 if(eg>E25max(int(theid))) eg=E25max(int(theid))-0.001;
861 if(theid<=0)theid=0.001;
862 if(theid>=27)theid=26.999;
863 Float_t einter = eg + 0.00001;
864 Float_t tinter = theid+0.0001;
865 double err=dtErr->Interpolate(einter,tinter);
866 return err;
867}
868
869double EmcRecParameter::E25min(int n) const
870{
871 return e25min[n];
872}
873double EmcRecParameter::E25max(int n) const
874{
875 return e25max[n];
876}
const Int_t n
************Class m_ypar INTEGER m_KeyWgt INTEGER m_KeyIHVP INTEGER m_KeyGPS INTEGER m_IsBeamPolarized INTEGER m_EvtGenInterface DOUBLE PRECISION m_Emin DOUBLE PRECISION m_sphot DOUBLE PRECISION m_Xenph DOUBLE PRECISION m_q2 DOUBLE PRECISION m_PolBeam2 DOUBLE PRECISION m_xErrPb *COMMON c_KK2f $ !CMS energy average $ !Spin Polarization vector first beam $ !Spin Polarization vector second beam $ !Beam energy spread[GeV] $ !minimum hadronization energy[GeV] $ !input READ never touch them !$ !debug facility $ !maximum weight $ !inverse alfaQED $ !minimum real photon energy
Definition: KK2f.h:50
double LogPosOffset() const
double WestLogShMaxPhiPara(int n, int m) const
double ECorr(int n) const
double BarrLogShMaxPhiPara(int n, int m) const
double WestPosMCCor(int ntheta, int nphi) const
double SigE(int n) const
double BarrPosMCCor(int ntheta, int nphi) const
void SetPositionMode(std::vector< std::string > &mode)
double ECorrMC(double eg, double theid) const
static EmcRecParameter & GetInstance()
double EastDataLogThetaPara(int n, int m) const
double EastLogShMaxPhiPara(int n, int m) const
double EastPosMCCor(int ntheta, int nphi) const
double WestDataLogThetaPara(int n, int m) const
double EastLinThetaPara(int n, int m) const
double EastPosDataCor(int ntheta, int nphi) const
double EastLinPhiPara(int n, int m) const
double EThresholdCluster() const
double EThresholdSeed() const
double WestPosDataCor(int ntheta, int nphi) const
double BarrLogPhiPara(int n, int m) const
double BarrDataLogThetaPara(int n, int m) const
double HitNb(int n) const
double EastLogShMaxThetaPara(int n, int m) const
double ElectronicsNoiseLevel() const
double E25min(int n) const
double PosCorr() const
double BarrShLinPhiPara(int n, int m) const
double LateralProfile() const
double E25max(int n) const
double MethodMode() const
double SigTheta(int n) const
double TimeMax() const
double WestLogShMaxThetaPara(int n, int m) const
double WestLogThetaPara(int n, int m) const
double ElecBias(int n) const
double BarrShLinThetaPara(int n, int m) const
int ElecSaturation() const
double BarrPosDataCor(int ntheta, int nphi) const
double BarrLogThetaPara(int n, int m) const
static void Kill()
double BarrLoglinThetaPara(int n, int m) const
double WestLinThetaPara(int n, int m) const
double MoliereRadius() const
double TimeMin() const
static bool Exist()
double WestLogPhiPara(int n, int m) const
double BarrLinPhiPara(int n, int m) const
double BarrLinThetaPara(int n, int m) const
double EastLogPhiPara(int n, int m) const
double EastLogThetaPara(int n, int m) const
double BarrLoglinPhiPara(int n, int m) const
double WestLinPhiPara(int n, int m) const
double DataMode() const
double SmCut(int n) const
double SigPhi(int n) const
double Peak(int n) const
double BarrLogShMaxThetaPara(int n, int m) const
double ErrMC(double eg, double theid) const