BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
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 "CLHEP/Vector/LorentzVector.h"
15#include "CLHEP/Vector/ThreeVector.h"
16#include "EmcBhabha.h"
17#include "EmcShower.h"
18#include "EmcGeneralClass/EmcStructure.h"
19#include <iostream>
20#include <list>
21using namespace std;
22using CLHEP::Hep3Vector;
23
24// ---------------------
25// -- Class Interface --
26// ---------------------
27
28/**
29 * This class holds a Bhabha event, a electron and/or a positron.
30 * It also knows about the true and the expected deposited energies
31 * of Bhabhas.
32 *???whether need to do the energy correction of a Bhabha due to
33 * the tilt of BES3 to the beam line with 11mrad.
34 */
35
37public:
46
47 // Constructor, puts a list of the two particles in the event
49
51
52 // Accessor to positron
53 EmcBhabha* positron() const { return m_positron; }
54
55 // Accessor to electron
56 EmcBhabha* electron() const { return m_electron; }
57
58 EmcBhabha* setPositron() { return m_positron; }
59
60 EmcBhabha* setElectron() { return m_electron; }
61
62 // load static data like the deposited MC energies ...
63 void initData();
64
65 // delete the static data at the end
66 void deleteData();
67
68 // print out event information
69 void print();
70
71 //
72 /*double getDepExpShowerEnergy(unsigned int thetaIndex,
73 unsigned int phiIndex,
74 double ePeakEne) const ;
75 */
76 // get the expected deposited shower energy of a Bhabha
77 double getDepoMCShowerEnergy( unsigned int thetaIndex, unsigned int phiIndex, double ePeak,
78 double beamEnergy ) const;
79
80 double getDepoMCShowerEnergy_lab( double theta, double phi, unsigned int thetaIndex,
81 unsigned int phiIndex, double ePeak,
82 double beamEnergy ) const;
83
84 // get the error on the expected deposited shower energy of a Bhabha
85 double getErrorDepoMCShowerEnergy( unsigned int thetaIndex, unsigned int phiIndex,
86 double eSigma ) const;
87
88 double enLeakageTheta( double theta );
89
90 double enLeakageThetaErr( double theta );
91
92 static int& selectedMDCType() { return m_selectedMDCType; }
93
94 static int& selectedEmcType() { return m_selectedEmcType; }
95 /*
96 static void setElectronBeamEnergy(double ene)
97 {
98 m_eBeamEnergy = ene;
99 }
100
101 static double& electronBeamEnergy()
102 {
103 return m_eBeamEnergy;
104 }
105
106 static void setPositronBeamEnergy(double ene)
107 {
108 m_pBeamEnergy = ene;
109 }
110
111 static double& positronBeamEnergy()
112 {
113 return m_pBeamEnergy;
114 }
115 */
116 Hep3Vector showerVector( EmcShower theShower );
117
118private:
119 // std::list<EmcBhabha> m_bhaEvList;
120
121 static bool m_initialized;
122
123 static int m_selectedMDCType;
124 static int m_selectedEmcType;
125
126 // static double m_eBeamEnergy;
127 // static double m_pBeamEnergy;
128
129 EmcBhabha* m_positron;
130 EmcBhabha* m_electron;
131};
132
133#endif // EMCBHABHAEVENT_H
EmcBhabha * setElectron()
static int & selectedMDCType()
static int & selectedEmcType()
EmcBhabha * positron() const
EmcBhabha * setPositron()
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)
EmcBhabha * electron() const
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)