13 using Algorithm::Algorithm;
20 bool WhetherSector(
double ph,
double ph1,
double ph2 );
23 static std::array<int, 43> idmax;
29 long m_barrelBhabhaNumber{ 0 };
30 long m_endcapBhabhaNumber{ 0 };
31 long m_barrelDimuNumber{ 0 };
32 long m_endcapDimuNumber{ 0 };
33 long m_hadronNumber{ 0 };
34 long m_barrelDiphotonNumber{ 0 };
35 long m_endcapDiphotonNumber{ 0 };
38 std::map<std::string, IEventWriterTool*> m_preSelTools;
41 BooleanProperty m_output{
this,
"Output",
false };
42 DoubleProperty m_ecm{
this,
"Ecm", 3.686 };
43 BooleanProperty m_selectBhabha{
this,
"SelectBhabha",
false };
44 BooleanProperty m_selectDimu{
this,
"SelectDimu",
false };
45 BooleanProperty m_selectHadron{
this,
"SelectHadron",
false };
46 BooleanProperty m_selectDiphoton{
this,
"SelectDiphoton",
false };
47 BooleanProperty m_writeDst{
this,
"WriteDst",
false };
48 BooleanProperty m_writeRec{
this,
"WriteRec",
false };
49 DoubleProperty m_vr0cut{
this,
"Vr0cut", 1.0 };
50 DoubleProperty m_vz0cut{
this,
"Vz0cut", 5.0 };
51 DoubleProperty m_pt0HighCut{
this,
"Pt0HighCut", 5.0 };
52 DoubleProperty m_pt0LowCut{
this,
"Pt0LowCut", 0.05 };
53 DoubleProperty m_energyThreshold{
this,
"EnergyThreshold", 0.05 };
54 DoubleProperty m_gammaPhiCut{
this,
"GammaPhiCut", 20.0 };
55 DoubleProperty m_gammaThetaCut{
this,
"GammaThetaCut", 20.0 };
57 DoubleProperty m_bhabhaEmcECut{
this,
"BhabhaEmcECut", 0.7 * m_ecm };
58 DoubleProperty m_bhabhaMaxECut{
this,
"BhabhaMaxECut", 0.3 * m_ecm };
59 DoubleProperty m_bhabhaSecECut{
this,
"BhabhaSecECut", 0.1 * m_ecm };
60 DoubleProperty m_bhabhaDTheCut{
this,
"BhabhaDTheCut", 3. };
61 DoubleProperty m_bhabhaDPhiCut1{
this,
"BhabhaDPhiCut1", -25. };
62 DoubleProperty m_bhabhaDPhiCut2{
this,
"BhabhaDPhiCut2", -4. };
63 DoubleProperty m_bhabhaDPhiCut3{
this,
"BhabhaDPhiCut3", 2. };
64 DoubleProperty m_bhabhaDPhiCut4{
this,
"BhabhaDPhiCut4", 20. };
65 IntegerProperty m_bhabhaMdcHitCutB{
this,
"BhabhaMdcHitCutB", 15 };
66 IntegerProperty m_bhabhaMdcHitCutE{
this,
"BhabhaMdcHitCutE", 5 };
68 DoubleProperty m_dimuEHighCut{
this,
"DimuEHighCut", 0.27 * m_ecm };
69 DoubleProperty m_dimuELowCut{
this,
"DimuELowCut", 0.027 * m_ecm };
70 DoubleProperty m_dimuDTheCut{
this,
"DimuDTheCut", 3. };
71 DoubleProperty m_dimuDPhiCut{
this,
"DimuDPhiCut", 23. };
73 DoubleProperty m_hadronChaECut{
this,
"HadronChaECut", 0.3 * m_ecm };
74 DoubleProperty m_hadronNeuECut{
this,
"HadronNeuECut", 0.3 * m_ecm };
76 DoubleProperty m_diphotonEmcECut{
this,
"DiphotonEmcECut", 0.7 * m_ecm };
77 DoubleProperty m_diphotonSecECut{
this,
"DiphotonSecECut", 0.3 * m_ecm };
78 DoubleProperty m_diphotonDTheCut{
this,
"DiphotonDTheCut", 3. };
79 DoubleProperty m_diphotonDPhiCut1{
this,
"DiphotonDPhiCut1", -4. };
80 DoubleProperty m_diphotonDPhiCut2{
this,
"DiphotonDPhiCut2", 2. };
83 NTuple::Tuple* m_tuple0;
84 NTuple::Item<double> m_esum;
85 NTuple::Item<double> m_eemc;
86 NTuple::Item<double> m_etot;
87 NTuple::Item<double> m_nGood;
88 NTuple::Item<double> m_nCharge;
89 NTuple::Item<double> m_nGam;
90 NTuple::Item<double> m_ptot;
91 NTuple::Item<double> m_pp;
92 NTuple::Item<double> m_pm;
93 NTuple::Item<long> m_runnb;
94 NTuple::Item<long> m_evtnb;
95 NTuple::Item<double> m_maxE;
96 NTuple::Item<double> m_secE;
97 NTuple::Item<double> m_dThe;
98 NTuple::Item<double> m_dPhi;
99 NTuple::Item<long> m_mdcHit1;
100 NTuple::Item<long> m_mdcHit2;
102 NTuple::Tuple* m_tuple1;
103 NTuple::Item<double> m_vx0;
104 NTuple::Item<double> m_vy0;
105 NTuple::Item<double> m_vz0;
106 NTuple::Item<double> m_vr0;
107 NTuple::Item<double> m_theta0;
108 NTuple::Item<double> m_p0;
109 NTuple::Item<double> m_pt0;
111 NTuple::Tuple* m_tuple2;
112 NTuple::Item<double> m_dthe;
113 NTuple::Item<double> m_dphi;
114 NTuple::Item<double> m_dang;
115 NTuple::Item<double> m_eraw;
117 NTuple::Tuple* m_tuple3;