BOSS 7.0.1
BESIII Offline Software System
Loading...
Searching...
No Matches
InstallArea/include/EmcBhaCalib/EmcBhaCalib/EmcBhabhaEvent.h
Go to the documentation of this file.
1//--------------------------------------------------------------------------
2// Environment:
3// This software was developed for the BESIII collaboration. If you
4// use all or part of it, please give an appropriate acknowledgement.
5//
6// Author List:
7// ChunXiu Liu IHEP
8//
9//------------------------------------------------------------------------
10
11#ifndef EMCBHABHAEVENT_H
12#define EMCBHABHAEVENT_H
13
14#include "EmcBhaCalib/EmcBhabha.h"
15#include "CLHEP/Vector/LorentzVector.h"
16#include "CLHEP/Vector/ThreeVector.h"
17#include <list>
18#include <iostream>
19#include "EmcGeneralClass/EmcStructure.h"
20#include "EmcBhaCalib/EmcShower.h"
21using namespace std;
22using CLHEP::Hep3Vector;
23
24
25// ---------------------
26// -- Class Interface --
27// ---------------------
28
29 /**
30 * This class holds a Bhabha event, a electron and/or a positron.
31 * It also knows about the true and the expected deposited energies
32 * of Bhabhas.
33 *???whether need to do the energy correction of a Bhabha due to
34 * the tilt of BES3 to the beam line with 11mrad.
35 */
36
37class EmcBhabhaEvent
38{
39 public:
40
46 EmcTwoProng=5 };
47
48 // Constructor, puts a list of the two particles in the event
50
52
53 // Accessor to positron
54 EmcBhabha* positron() const {return m_positron;}
55
56 // Accessor to electron
57 EmcBhabha* electron() const {return m_electron;}
58
59 EmcBhabha* setPositron() {return m_positron;}
60
61 EmcBhabha* setElectron() {return m_electron;}
62
63
64 //load static data like the deposited MC energies ...
65 void initData();
66
67 //delete the static data at the end
68 void deleteData();
69
70 // print out event information
71 void print();
72
73 //
74 /*double getDepExpShowerEnergy(unsigned int thetaIndex,
75 unsigned int phiIndex,
76 double ePeakEne) const ;
77 */
78 //get the expected deposited shower energy of a Bhabha
79 double getDepoMCShowerEnergy(unsigned int thetaIndex,
80 unsigned int phiIndex,
81 double ePeak,
82 double beamEnergy) const;
83
84
85 double getDepoMCShowerEnergy_lab(double theta,
86 double phi,
87 unsigned int thetaIndex,
88 unsigned int phiIndex,
89 double ePeak,
90 double beamEnergy) const;
91
92 //get the error on the expected deposited shower energy of a Bhabha
93 double getErrorDepoMCShowerEnergy(unsigned int thetaIndex,
94 unsigned int phiIndex,
95 double eSigma) const;
96
97 double enLeakageTheta(double theta);
98
99 double enLeakageThetaErr(double theta);
100
101 static int& selectedMDCType()
102 {
103 return m_selectedMDCType;
104 }
105
106 static int& selectedEmcType()
107 {
108 return m_selectedEmcType;
109 }
110 /*
111 static void setElectronBeamEnergy(double ene)
112 {
113 m_eBeamEnergy = ene;
114 }
115
116 static double& electronBeamEnergy()
117 {
118 return m_eBeamEnergy;
119 }
120
121 static void setPositronBeamEnergy(double ene)
122 {
123 m_pBeamEnergy = ene;
124 }
125
126 static double& positronBeamEnergy()
127 {
128 return m_pBeamEnergy;
129 }
130 */
131 Hep3Vector showerVector( EmcShower theShower);
132
133private:
134
135 //std::list<EmcBhabha> m_bhaEvList;
136
137 static bool m_initialized;
138
139 static int m_selectedMDCType;
140 static int m_selectedEmcType;
141
142 //static double m_eBeamEnergy;
143 //static double m_pBeamEnergy;
144
145 EmcBhabha* m_positron;
146 EmcBhabha* m_electron;
147
148};
149
150#endif //EMCBHABHAEVENT_H
double getDepoMCShowerEnergy(unsigned int thetaIndex, unsigned int phiIndex, double ePeak, double beamEnergy) const
double getErrorDepoMCShowerEnergy(unsigned int thetaIndex, unsigned int phiIndex, double eSigma) const
double enLeakageTheta(double theta)
double getDepoMCShowerEnergy_lab(double theta, double phi, unsigned int thetaIndex, unsigned int phiIndex, double ePeak, double beamEnergy) const
Hep3Vector showerVector(EmcShower theShower)
double enLeakageThetaErr(double theta)