1#ifndef __HISTOGRAMMER_HH
2#define __HISTOGRAMMER_HH
20#include <TGProgressBar.h>
32#ifndef __MINIBALLEVTS_HH
61 void SetSpyHists( std::vector<std::vector<std::string>> hists,
short layout[2] );
63 void SetInputFile( std::vector<std::string> input_file_names );
67 inline void SetOutput( std::string output_file_name,
bool cWrite =
false ){
68 output_file =
new TFile( output_file_name.data(),
"recreate" );
93 inline bool PromptCoincidence( std::shared_ptr<GammaRayEvt> g, std::shared_ptr<ParticleEvt> p ){
97 if( (
double)ptime - (
double)g->GetTime() >
react->GetParticleGammaPromptTime(0) &&
98 (
double)ptime - (
double)g->GetTime() <
react->GetParticleGammaPromptTime(1) )
102 inline bool RandomCoincidence( std::shared_ptr<GammaRayEvt> g, std::shared_ptr<ParticleEvt> p ){
106 if( (
double)ptime - (
double)g->GetTime() >
react->GetParticleGammaRandomTime(0) &&
107 (
double)ptime - (
double)g->GetTime() <
react->GetParticleGammaRandomTime(1) )
111 inline bool PromptCoincidence( std::shared_ptr<GammaRayAddbackEvt> g, std::shared_ptr<ParticleEvt> p ){
118 if( (
double)ptime - (
double)s->GetTime() >
react->GetParticleElectronPromptTime(0) &&
119 (
double)ptime - (
double)s->GetTime() <
react->GetParticleElectronPromptTime(1) )
127 if( (
double)ptime - (
double)s->GetTime() >
react->GetParticleElectronRandomTime(0) &&
128 (
double)ptime - (
double)s->GetTime() <
react->GetParticleElectronRandomTime(1) )
132 inline bool PromptCoincidence( std::shared_ptr<GammaRayEvt> g1, std::shared_ptr<GammaRayEvt> g2 ){
133 if( (
double)g1->GetTime() - (
double)g2->GetTime() >
react->GetGammaGammaPromptTime(0) &&
134 (
double)g1->GetTime() - (
double)g2->GetTime() <
react->GetGammaGammaPromptTime(1) )
138 inline bool RandomCoincidence( std::shared_ptr<GammaRayEvt> g1, std::shared_ptr<GammaRayEvt> g2 ){
139 if( (
double)g1->GetTime() - (
double)g2->GetTime() >
react->GetGammaGammaRandomTime(0) &&
140 (
double)g1->GetTime() - (
double)g2->GetTime() <
react->GetGammaGammaRandomTime(1) )
145 if( (
double)s1->GetTime() - (
double)s2->GetTime() >
react->GetElectronElectronPromptTime(0) &&
146 (
double)s1->GetTime() - (
double)s2->GetTime() <
react->GetElectronElectronPromptTime(1) )
151 if( (
double)s1->GetTime() - (
double)s2->GetTime() >
react->GetElectronElectronRandomTime(0) &&
152 (
double)s1->GetTime() - (
double)s2->GetTime() <
react->GetElectronElectronRandomTime(1) )
156 inline bool PromptCoincidence( std::shared_ptr<ParticleEvt> p1, std::shared_ptr<ParticleEvt> p2 ){
157 if( (
double)p1->GetTime() - (
double)p2->GetTime() >
react->GetParticleParticlePromptTime(0) &&
158 (
double)p1->GetTime() - (
double)p2->GetTime() <
react->GetParticleParticlePromptTime(1) )
162 inline bool RandomCoincidence( std::shared_ptr<ParticleEvt> p1, std::shared_ptr<ParticleEvt> p2 ){
163 if( (
double)p1->GetTime() - (
double)p2->GetTime() >
react->GetParticleParticleRandomTime(0) &&
164 (
double)p1->GetTime() - (
double)p2->GetTime() <
react->GetParticleParticleRandomTime(1) )
168 inline bool PromptCoincidence( std::shared_ptr<BeamDumpEvt> g1, std::shared_ptr<BeamDumpEvt> g2 ){
169 if( (
double)g1->GetTime() - (
double)g2->GetTime() >
react->GetGammaGammaPromptTime(0) &&
170 (
double)g1->GetTime() - (
double)g2->GetTime() <
react->GetGammaGammaPromptTime(1) )
174 inline bool RandomCoincidence( std::shared_ptr<BeamDumpEvt> g1, std::shared_ptr<BeamDumpEvt> g2 ){
175 if( (
double)g1->GetTime() - (
double)g2->GetTime() >
react->GetGammaGammaRandomTime(0) &&
176 (
double)g1->GetTime() - (
double)g2->GetTime() <
react->GetGammaGammaRandomTime(1) )
181 if( (
double)s->GetTime() - (
double)g->GetTime() >
react->GetGammaElectronPromptTime(0) &&
182 (
double)s->GetTime() - (
double)g->GetTime() <
react->GetGammaElectronPromptTime(1) )
190 if( (
double)s->GetTime() - (
double)g->GetTime() >
react->GetGammaElectronRandomTime(0) &&
191 (
double)s->GetTime() - (
double)g->GetTime() <
react->GetGammaElectronRandomTime(1) )
198 inline bool OnBeam( std::shared_ptr<GammaRayEvt> g ){
203 inline bool OnBeam( std::shared_ptr<SpedeEvt> s ){
208 inline bool OnBeam( std::shared_ptr<ParticleEvt> p ){
213 inline bool OffBeam( std::shared_ptr<GammaRayEvt> g ){
218 inline bool OffBeam( std::shared_ptr<ParticleEvt> p ){
223 inline bool OffBeam( std::shared_ptr<SpedeEvt> s ){
236 double xval = p->GetEnergy();
237 double yval = p->GetDeltaEnergy();
238 if(
react->GetTransferX() ==
"dE" ) xval = p->GetDeltaEnergy();
239 else if(
react->GetTransferX() ==
"E" ) xval = p->GetEnergy();
240 else if(
react->GetTransferX() ==
"theta" ) xval =
react->GetParticleTheta(p) * TMath::RadToDeg();
241 if(
react->GetTransferY() ==
"dE" ) yval = p->GetDeltaEnergy();
242 else if(
react->GetTransferY() ==
"E" ) yval = p->GetEnergy();
243 else if(
react->GetTransferY() ==
"theta" ) yval =
react->GetParticleTheta(p) * TMath::RadToDeg();
244 return react->GetTransferCut()->IsInside( xval , yval );
247 return react->GetEjectileCut()->IsInside(
react->GetParticleTheta(p) * TMath::RadToDeg(), p->GetEnergy() );
249 inline bool RecoilCut( std::shared_ptr<ParticleEvt> p ){
250 return react->GetRecoilCut()->IsInside(
react->GetParticleTheta(p) * TMath::RadToDeg(), p->GetEnergy() );
252 inline bool TwoParticleCut( std::shared_ptr<ParticleEvt> p1, std::shared_ptr<ParticleEvt> p2 ){
254 TMath::Abs(
react->GetParticleVector(p1).DeltaPhi(
react->GetParticleVector(p2) ) ) < 1.5*TMath::Pi() &&
255 TMath::Abs(
react->GetParticleVector(p1).DeltaPhi(
react->GetParticleVector(p2) ) ) > 0.5*TMath::Pi() )
263 std::shared_ptr<MiniballReaction>
react;
266 std::shared_ptr<MiniballSettings>
set;
283 std::shared_ptr<TGProgressBar>
prog;
294 std::unique_ptr<TCanvas>
c1,
c2;
TH2F * aE_vs_crystal_1p_ejectile_dc_ejectile
TH2F * aE_vs_crystal_ejectile_dc_recoil
TH2F * gE_vs_costheta_ejectile_dc_ejectile
TH2F * gE_vs_theta_2p_dc_ejectile
TH2F * gE_1p_ejectile_dc_ejectile_t1
std::vector< TH2F * > pE_theta_recoil_sec
bool OnBeam(std::shared_ptr< SpedeEvt > s)
TH2F * eaE_ejectile_dc_none
TH1F * aE_ejectile_dc_ejectile
TH2F * gE_ejectile_dc_ejectile_t1
bool RandomCoincidence(std::shared_ptr< GammaRayEvt > g, std::shared_ptr< SpedeEvt > s)
std::shared_ptr< SpedeEvt > spede_evt2
TH2F * gE_vs_theta_1p_recoil_dc_none
TH2F * gE_vs_theta_ejectile_dc_ejectile
TH1F * eE_ejectile_dc_recoil
TH1F * gE_ejectile_dc_recoil
TH1F * eE_recoil_dc_ejectile
TH2F * gE_recoil_dc_recoil_t1
TH1F * eE_singles_ebis_on
TH2F * gE_vs_crystal_recoil_dc_none
TH2F * gE_1p_ejectile_dc_recoil_t1
bool PromptCoincidence(std::shared_ptr< GammaRayAddbackEvt > g, std::shared_ptr< ParticleEvt > p)
TH2F * aE_2p_dc_recoil_t1
TH2F * aE_vs_theta_recoil_dc_ejectile
TH2F * aE_ejectile_dc_ejectile_t1
void SetOutput(std::string output_file_name, bool cWrite=false)
std::vector< TH1F * > gamma_particle_td_sec
TH2F * aE_vs_theta_1p_ejectile_dc_ejectile
std::vector< std::vector< TH2F * > > pE_dE_cut_sec
TH1F * gamma_gamma_td_prompt
TH2F * gE_vs_crystal_2p_dc_ejectile
TH2F * ggE_recoil_dc_none
TH2F * gE_vs_crystal_1p_ejectile_dc_none
TH2F * aE_vs_crystal_recoil_dc_recoil
TH2F * gE_vs_costheta2_recoil_dc_none
TH2F * aE_recoil_dc_recoil_t1
TH1F * electron_electron_td_random
bool RandomCoincidence(std::shared_ptr< SpedeEvt > s, std::shared_ptr< ParticleEvt > p)
TH1F * gE_singles_dc_ebis
TH1F * gE_1p_recoil_dc_ejectile
TH2F * aE_vs_theta_ejectile_dc_recoil
TH1F * aE_1p_ejectile_dc_recoil
std::shared_ptr< TGProgressBar > prog
TH2F * eaE_recoil_dc_none
TH1F * gE_ejectile_dc_ejectile
TH2F * aE_vs_theta_2p_dc_recoil
bool RandomCoincidence(std::shared_ptr< SpedeEvt > s1, std::shared_ptr< SpedeEvt > s2)
TH2F * aE_vs_theta_recoil_dc_recoil
TH2F * gamma_particle_E_vs_td
TH2F * gE_vs_crystal_1p_recoil_dc_recoil
TH2F * gE_2p_dc_ejectile_t1
std::vector< TH2F * > pE_dE
void FillParticleGammaHists(std::shared_ptr< GammaRayEvt > g)
TH2F * gE_singles_vs_crystal
TH2F * egE_ejectile_dc_none
TH2F * aE_vs_theta_1p_recoil_dc_ejectile
TH1F * aE_1p_recoil_dc_ejectile
std::shared_ptr< GammaRayEvt > gamma_evt
TH1F * electron_particle_td
TH2F * eE_vs_theta_2p_dc_ejectile
TH2F * aE_vs_costheta_recoil_dc_none
std::shared_ptr< BeamDumpEvt > bd_evt
TH1F * aE_recoil_dc_ejectile
unsigned long FillHists()
TH2F * aE_1p_recoil_dc_ejectile_t1
TH1F * aE_ejectile_dc_recoil
TH1F * aE_1p_ejectile_dc_ejectile
TH1F * electron_particle_td_random
TH2F * aE_vs_crystal_ejectile_dc_ejectile
TH2F * eE_costheta_recoil
TH2F * pE_theta_2p_ejectile
std::shared_ptr< GammaRayAddbackEvt > gamma_ab_evt2
TH2F * gE_vs_theta_1p_ejectile_dc_recoil
TH2F * gE_recoil_dc_none_t1
TH2F * gE_1p_recoil_dc_ejectile_t1
TH1F * eE_1p_ejectile_dc_ejectile
TH2F * gE_vs_theta_1p_recoil_dc_recoil
TH1F * eE_ejectile_dc_ejectile
TH2F * gE_vs_crystal_ejectile_dc_none
TH2F * eaE_ejectile_dc_recoil
bool OffBeam(std::shared_ptr< SpedeEvt > s)
TH2F * aaE_ejectile_dc_recoil
bool EjectileCut(std::shared_ptr< ParticleEvt > p)
TH1F * gamma_gamma_td_random
TH2F * aE_vs_crystal_1p_ejectile_dc_none
TH2F * aE_vs_crystal_2p_dc_recoil
TH2F * eE_vs_theta_ejectile_dc_recoil
std::shared_ptr< IonChamberEvt > ic_evt
TH2F * pE_theta_1p_recoil
TH2F * particle_xy_map_backward
TH2F * egE_recoil_dc_recoil
TH2F * pE_theta_2p_recoil
TH2F * gE_vs_costheta_recoil_dc_none
bool TransferCut(std::shared_ptr< ParticleEvt > p)
TH2F * aaE_recoil_dc_ejectile
TH2F * gamma_xz_map_right
TH2F * gE_ejectile_dc_recoil_t1
TH2F * aE_1p_ejectile_dc_recoil_t1
TH1F * particle_particle_td_random
TH1F * aE_singles_ebis_off
TH2F * eE_vs_theta_recoil_dc_none
bool PromptCoincidence(std::shared_ptr< SpedeEvt > s, std::shared_ptr< ParticleEvt > p)
TH2F * ggE_recoil_dc_ejectile
TH1F * aE_1p_recoil_dc_recoil
std::vector< std::vector< std::string > > spyhists
TH1F * aE_recoil_dc_recoil
TH2F * gE_vs_crystal_1p_recoil_dc_none
TH1F * gE_1p_recoil_dc_none
TH2F * aE_recoil_dc_none_t1
TH2F * aaE_ejectile_dc_ejectile
TH1F * electron_particle_td_prompt
std::shared_ptr< ParticleEvt > particle_evt
TH1F * eE_1p_recoil_dc_ejectile
TH2F * eE_vs_theta_recoil_dc_ejectile
TH2F * egE_recoil_dc_none
TH2F * gE_1p_ejectile_dc_none_t1
std::shared_ptr< SpedeEvt > spede_evt
bool PromptCoincidence(std::shared_ptr< SpedeEvt > s1, std::shared_ptr< SpedeEvt > s2)
std::vector< TH1F * > bdE_singles_det
TH1F * gamma_electron_td_random
TH1F * gE_singles_ebis_on
TH2F * gE_2p_dc_recoil_t1
std::vector< TH2F * > gamma_particle_E_vs_td_sec
TH2F * eE_vs_theta_1p_ejectile_dc_recoil
TH2F * gE_vs_crystal_1p_recoil_dc_ejectile
TH1F * eE_1p_ejectile_dc_none
TH1F * electron_electron_td
std::vector< TH2F * > pE_theta_coinc_sec
TH1F * gamma_particle_td_random
TH1F * eE_1p_recoil_dc_none
bool OffBeam(std::shared_ptr< ParticleEvt > p)
TH2F * aE_vs_costheta2_ejectile_dc_none
TH2F * particle_xy_map_forward
TH1F * particle_particle_td
TH1F * eE_1p_ejectile_dc_recoil
std::vector< std::vector< TH2F * > > pE_dE_sec
TH2F * aE_vs_theta_1p_ejectile_dc_recoil
TH2F * aE_vs_crystal_recoil_dc_ejectile
TH1F * gE_1p_ejectile_dc_ejectile
TH2F * egE_recoil_dc_ejectile
TH2F * gE_vs_costheta_ejectile_dc_none
TH2F * gE_recoil_dc_ejectile_t1
TH2F * gE_vs_crystal_ejectile_dc_recoil
TH2F * aE_vs_crystal_1p_ejectile_dc_recoil
TH2F * eE_vs_theta_2p_dc_recoil
TH2F * eE_vs_theta_1p_recoil_dc_recoil
TH2F * gE_vs_costheta_recoil_dc_ejectile
TH1F * eE_singles_ebis_off
std::vector< TH2F * > gE_vs_phi_dc_recoil
TH2F * aE_vs_crystal_1p_recoil_dc_recoil
TH1F * electron_electron_td_prompt
TProfile * pBeta_theta_recoil
std::unique_ptr< TCanvas > c2
bool TwoParticleCut(std::shared_ptr< ParticleEvt > p1, std::shared_ptr< ParticleEvt > p2)
TH2F * eE_vs_ejectile_dc_recoil_segment
TH2F * aE_vs_costheta_recoil_dc_recoil
void SetSpyHists(std::vector< std::vector< std::string > > hists, short layout[2])
TH2F * aE_vs_theta_ejectile_dc_none
bool PromptCoincidence(std::shared_ptr< GammaRayEvt > g, unsigned long long ptime)
bool PromptCoincidence(std::shared_ptr< GammaRayEvt > g, std::shared_ptr< ParticleEvt > p)
TH2F * gE_vs_theta_1p_ejectile_dc_ejectile
TH2F * eaE_ejectile_dc_ejectile
TH2F * gE_vs_crystal_2p_dc_recoil
std::vector< TH2F * > gE_vs_phi_dc_ejectile
TH1F * aE_ejectile_dc_none
TH2F * aE_vs_crystal_2p_dc_ejectile
TH1F * gE_recoil_dc_recoil
TH2F * aE_vs_costheta_ejectile_dc_ejectile
TH2F * egE_ejectile_dc_recoil
bool RandomCoincidence(std::shared_ptr< BeamDumpEvt > g1, std::shared_ptr< BeamDumpEvt > g2)
TH1F * gE_recoil_dc_ejectile
TH1F * eE_ejectile_dc_none
TH2F * eE_vs_theta_recoil_dc_recoil
TH2F * eE_vs_theta_ejectile_dc_ejectile
TH2F * eE_vs_recoil_dc_recoil_segment
TH2F * aE_vs_crystal_recoil_dc_none
TH2F * eE_vs_theta_1p_recoil_dc_none
TH2F * aE_ejectile_dc_recoil_t1
bool OffBeam(std::shared_ptr< GammaRayEvt > g)
TH2F * gE_vs_crystal_recoil_dc_ejectile
std::shared_ptr< GammaRayAddbackEvt > gamma_ab_evt
TH1F * gE_1p_recoil_dc_recoil
TH2F * pE_theta_1p_ejectile
TH2F * egE_ejectile_dc_ejectile
TH2F * gE_vs_theta_2p_dc_none
TH2F * gamma_xy_map_forward
TH2F * eE_vs_theta_1p_ejectile_dc_none
bool PromptCoincidence(std::shared_ptr< GammaRayEvt > g, std::shared_ptr< SpedeEvt > s)
TH2F * eE_vs_ejectile_dc_ejectile_segment
TH2F * gE_1p_recoil_dc_recoil_t1
TH2F * eE_vs_theta_1p_recoil_dc_ejectile
TH2F * aE_vs_crystal_ejectile_dc_none
TH2F * aE_vs_costheta_recoil_dc_ejectile
TH1F * aE_singles_ebis_on
bool OnBeam(std::shared_ptr< ParticleEvt > p)
TH2F * eE_costheta_ejectile
TH2F * eaE_recoil_dc_ejectile
TH2F * gE_vs_costheta2_ejectile_dc_none
std::shared_ptr< GammaRayEvt > gamma_evt2
TH2F * aE_1p_recoil_dc_recoil_t1
TH2F * gE_vs_costheta_ejectile_dc_recoil
TH2F * aE_vs_crystal_2p_dc_none
TH2F * aE_vs_theta_1p_recoil_dc_recoil
TH1F * particle_particle_td_prompt
TH2F * gE_vs_theta_recoil_dc_ejectile
TH2F * gamma_xy_map_backward
bool RandomCoincidence(std::shared_ptr< GammaRayEvt > g, unsigned long long ptime)
TH2F * gE_vs_crystal_1p_ejectile_dc_recoil
TH2F * gE_vs_theta_2p_dc_recoil
TH2F * aE_vs_crystal_1p_recoil_dc_ejectile
bool RandomCoincidence(std::shared_ptr< GammaRayEvt > g, std::shared_ptr< ParticleEvt > p)
TH1F * aE_singles_dc_ebis
std::unique_ptr< TCanvas > c1
bool RandomCoincidence(std::shared_ptr< SpedeEvt > s, unsigned long long ptime)
TH1F * gamma_electron_td_prompt
TH2F * gE_vs_theta_ejectile_dc_none
TH2F * eE_vs_theta_1p_ejectile_dc_ejectile
bool PromptCoincidence(std::shared_ptr< ParticleEvt > p1, std::shared_ptr< ParticleEvt > p2)
TH1F * aE_1p_recoil_dc_none
std::vector< TH2F * > pE_dE_coinc
TH2F * aE_vs_theta_1p_recoil_dc_none
TH1F * gamma_particle_td_prompt
TH2F * ggE_ejectile_dc_ejectile
TH2F * gE_1p_recoil_dc_none_t1
TH2F * gE_vs_theta_ejectile_dc_recoil
std::shared_ptr< MiniballSettings > set
TH2F * gE_vs_crystal_1p_ejectile_dc_ejectile
TH2F * gE_vs_theta_1p_ejectile_dc_none
TH2F * eaE_recoil_dc_recoil
TH2F * aE_1p_ejectile_dc_none_t1
TH2F * aE_vs_crystal_1p_recoil_dc_none
TH2F * eE_vs_theta_2p_dc_none
TH2F * aE_vs_theta_1p_ejectile_dc_none
TH2F * aE_ejectile_dc_none_t1
TH2F * ggE_ejectile_dc_none
TH2F * aE_vs_costheta2_recoil_dc_none
TH2F * gE_vs_crystal_recoil_dc_recoil
TH1F * gE_singles_ebis_off
TH2F * aaE_recoil_dc_recoil
TH2F * aaE_ejectile_dc_none
TH2F * eE_vs_recoil_dc_none_segment
TH2F * gE_vs_crystal_2p_dc_none
TH2F * eE_vs_ejectile_dc_none_segment
std::shared_ptr< BeamDumpEvt > bd_evt2
TH1F * gE_1p_ejectile_dc_none
TH2F * particle_theta_phi_map
TH2F * aE_vs_theta_ejectile_dc_ejectile
TH2F * gE_vs_theta_recoil_dc_recoil
TH2F * aE_1p_ejectile_dc_ejectile_t1
bool RecoilCut(std::shared_ptr< ParticleEvt > p)
void FillParticleGammaGammaHists(std::shared_ptr< GammaRayEvt > g1, std::shared_ptr< GammaRayEvt > g2)
TH2F * gE_vs_crystal_ejectile_dc_ejectile
TH2F * eE_vs_recoil_dc_ejectile_segment
std::vector< std::vector< TH2F * > > pE_dE_coinc_sec
TH1F * eE_recoil_dc_recoil
TH2F * aE_recoil_dc_ejectile_t1
std::shared_ptr< MiniballReaction > react
TH2F * aE_2p_dc_ejectile_t1
TH2F * gE_vs_theta_1p_recoil_dc_ejectile
TH2F * aE_vs_theta_recoil_dc_none
TH2F * aE_vs_costheta_ejectile_dc_recoil
std::shared_ptr< ParticleEvt > particle_evt2
void SetInputTree(TTree *user_tree)
TH2F * aE_1p_recoil_dc_none_t1
bool RandomCoincidence(std::shared_ptr< ParticleEvt > p1, std::shared_ptr< ParticleEvt > p2)
MiniballHistogrammer(std::shared_ptr< MiniballReaction > myreact, std::shared_ptr< MiniballSettings > myset)
TH2F * aE_vs_theta_2p_dc_ejectile
TH1F * gE_1p_ejectile_dc_recoil
TH2F * ggE_ejectile_dc_recoil
TH2F * gE_vs_theta_recoil_dc_none
void SetInputFile(std::vector< std::string > input_file_names)
bool PromptCoincidence(std::shared_ptr< GammaRayEvt > g1, std::shared_ptr< GammaRayEvt > g2)
bool RandomCoincidence(std::shared_ptr< SpedeEvt > s, std::shared_ptr< GammaRayEvt > g)
TH2F * aaE_recoil_dc_none
void FillParticleElectronGammaHists(std::shared_ptr< SpedeEvt > s, std::shared_ptr< GammaRayEvt > g)
TH2F * gE_vs_costheta_recoil_dc_recoil
TH2F * ggE_recoil_dc_recoil
void FillParticleElectronHists(std::shared_ptr< SpedeEvt > s)
TH2F * eE_vs_theta_ejectile_dc_none
std::vector< TH2F * > pE_theta_ejectile_sec
bool PromptCoincidence(std::shared_ptr< BeamDumpEvt > g1, std::shared_ptr< BeamDumpEvt > g2)
std::vector< TH2F * > pE_theta_sec
TH1F * aE_1p_ejectile_dc_none
bool OnBeam(std::shared_ptr< GammaRayEvt > g)
TH1F * gE_ejectile_dc_none
std::vector< TH2F * > pE_dE_cut
TH2F * aE_vs_costheta_ejectile_dc_none
TH2F * gamma_theta_phi_map
TH2F * gE_ejectile_dc_none_t1
TH2F * aE_singles_vs_crystal
bool RandomCoincidence(std::shared_ptr< GammaRayEvt > g1, std::shared_ptr< GammaRayEvt > g2)
TH1F * eE_1p_recoil_dc_recoil
TH2F * aE_vs_theta_2p_dc_none
void AddProgressBar(std::shared_ptr< TGProgressBar > myprog)
bool PromptCoincidence(std::shared_ptr< SpedeEvt > s, std::shared_ptr< GammaRayEvt > g)
bool PromptCoincidence(std::shared_ptr< SpedeEvt > s, unsigned long long ptime)
TProfile * pBeta_theta_ejectile
std::shared_ptr< MiniballSettings > myset
std::shared_ptr< MiniballReaction > myreact