Testing the TMEs for my Al50 analysis. More...
#include <TME_Al50_EvdE.h>
Classes | |
struct | Arm |
Public Member Functions | |
TME_Al50_EvdE (modules::options *opts) | |
Constructor description. If necessary, add a details tag like above. | |
~TME_Al50_EvdE () | |
Is anything done in the destructor? | |
int | ProcessGenericEntry (TGlobalData *gData, const TSetupData *gSetup) |
int | Preprocess (TGlobalData *gData, const TSetupData *gSetup) |
Method called by the main pre-process loop. | |
int | Postprocess (TGlobalData *gData, const TSetupData *gSetup) |
Method called by the main pre-process loop. | |
void | SetAlias (const std::string &alias) |
std::string | GetAlias () const |
const char * | GetName () const |
Get the name of this module as given to the constructor of the base class. | |
Protected Member Functions | |
bool | Debug () const |
TDirectory * | GetDirectory () const |
Get the TDirectory for this module. | |
TDirectory * | GetDirectory (const std::string &name="") |
Protected Attributes | |
TDirectory * | dir |
Private Types | |
typedef std::vector< IDs::channel > | DetectorList |
Private Member Functions | |
virtual int | ProcessEntry (TGlobalData *gData, const TSetupData *gSetup) |
What's calculated for every entry? Don't hesitate to repeat what was said in the class description. | |
virtual int | BeforeFirstEntry (TGlobalData *gData, const TSetupData *setup) |
What needes to be done before each run? Don't hesitate to repeat what was said in the class description. | |
virtual int | AfterLastEntry (TGlobalData *gData, const TSetupData *setup) |
What needs to be done after each run? Don't hesitate to repeat what was said in the class description. | |
Private Attributes | |
long int | fNullCount |
long int | fTdpCount |
bool | fQuit |
DetectorList | fSiL1 |
IDs::channel * | fSiL2 |
DetectorList | fSiR1 |
IDs::channel * | fSiR2 |
struct TME_Al50_EvdE::Arm | fLeftArm |
struct TME_Al50_EvdE::Arm | fLeftArmQuad1 |
struct TME_Al50_EvdE::Arm | fLeftArmQuad2 |
struct TME_Al50_EvdE::Arm | fLeftArmQuad3 |
struct TME_Al50_EvdE::Arm | fLeftArmQuad4 |
struct TME_Al50_EvdE::Arm | fRightArm |
struct TME_Al50_EvdE::Arm | fRightArmQuad1 |
struct TME_Al50_EvdE::Arm | fRightArmQuad2 |
struct TME_Al50_EvdE::Arm | fRightArmQuad3 |
struct TME_Al50_EvdE::Arm | fRightArmQuad4 |
std::vector< Arm > | fArms |
bool | fStoppedProtonCut |
Testing the TMEs for my Al50 analysis.
A longer, more descriptive block of text. Specifics like members and methods will be described later. You can add this to other groups instead of rootana_modules or in addition to rootana_modules by adding more of the ingroup tags.
Definition at line 29 of file TME_Al50_EvdE.h.
typedef std::vector<IDs::channel> TME_Al50_EvdE::DetectorList [private] |
Definition at line 65 of file TME_Al50_EvdE.h.
TME_Al50_EvdE::TME_Al50_EvdE | ( | modules::options * | opts | ) |
Constructor description. If necessary, add a details tag like above.
[in] | opts | Describe the options this module takes. |
Definition at line 22 of file TME_Al50_EvdE.cpp.
References fStoppedProtonCut, and modules::options::GetBool().
00022 : 00023 BaseModule("TME_Al50_EvdE",opts),fNullCount(0),fTdpCount(0){ 00024 00025 fStoppedProtonCut=opts->GetBool("stopped_proton_cut", false); 00026 }
TME_Al50_EvdE::~TME_Al50_EvdE | ( | ) |
Is anything done in the destructor?
Definition at line 28 of file TME_Al50_EvdE.cpp.
int TME_Al50_EvdE::AfterLastEntry | ( | TGlobalData * | gData, | |
const TSetupData * | setup | |||
) | [private, virtual] |
What needs to be done after each run? Don't hesitate to repeat what was said in the class description.
Implements BaseModule.
Definition at line 283 of file TME_Al50_EvdE.cpp.
int TME_Al50_EvdE::BeforeFirstEntry | ( | TGlobalData * | gData, | |
const TSetupData * | setup | |||
) | [private, virtual] |
What needes to be done before each run? Don't hesitate to repeat what was said in the class description.
Implements BaseModule.
Definition at line 31 of file TME_Al50_EvdE.cpp.
References TME_Al50_EvdE::Arm::detname, fArms, fLeftArm, fLeftArmQuad1, fLeftArmQuad2, fLeftArmQuad3, fLeftArmQuad4, fRightArm, fRightArmQuad1, fRightArmQuad2, fRightArmQuad3, fRightArmQuad4, fSiL1, fSiL2, fSiR1, fSiR2, fStoppedProtonCut, IDs::kNotApplicable, IDs::kSiL1_1, IDs::kSiL1_2, IDs::kSiL1_3, IDs::kSiL1_4, IDs::kSiL2, IDs::kSiR1_1, IDs::kSiR1_2, IDs::kSiR1_3, IDs::kSiR1_4, IDs::kSiR2, TME_Al50_EvdE::Arm::lower_time_cut, TME_Al50_EvdE::Arm::thick, TME_Al50_EvdE::Arm::thin, and TME_Al50_EvdE::Arm::upper_time_cut.
00031 { 00032 00033 fLeftArm.detname = "SiL"; 00034 fLeftArmQuad1.detname = "SiL_Quad1"; 00035 fLeftArmQuad2.detname = "SiL_Quad2"; 00036 fLeftArmQuad3.detname = "SiL_Quad3"; 00037 fLeftArmQuad4.detname = "SiL_Quad4"; 00038 fRightArm.detname = "SiR"; 00039 fRightArmQuad1.detname = "SiR_Quad1"; 00040 fRightArmQuad2.detname = "SiR_Quad2"; 00041 fRightArmQuad3.detname = "SiR_Quad3"; 00042 fRightArmQuad4.detname = "SiR_Quad4"; 00043 00044 00045 using namespace IDs; 00046 fSiL1.push_back(IDs::channel (kSiL1_1 , kNotApplicable )); 00047 fSiL1.push_back(IDs::channel (kSiL1_2 , kNotApplicable )); 00048 fSiL1.push_back(IDs::channel (kSiL1_3 , kNotApplicable )); 00049 fSiL1.push_back(IDs::channel (kSiL1_4 , kNotApplicable )); 00050 fSiL2 = new IDs::channel (kSiL2 , kNotApplicable ); 00051 fSiR1.push_back(IDs::channel (kSiR1_1 , kNotApplicable )); 00052 fSiR1.push_back(IDs::channel (kSiR1_2 , kNotApplicable )); 00053 fSiR1.push_back(IDs::channel (kSiR1_3 , kNotApplicable )); 00054 fSiR1.push_back(IDs::channel (kSiR1_4 , kNotApplicable )); 00055 fSiR2 = new IDs::channel (kSiR2 , kNotApplicable ); 00056 00057 fLeftArm.thin = fSiL1; 00058 fLeftArm.thick = fSiL2; 00059 DetectorList left_quad_1; left_quad_1.push_back(IDs::channel (kSiL1_1 , kNotApplicable)); 00060 fLeftArmQuad1.thin = left_quad_1; 00061 fLeftArmQuad1.thick = fSiL2; 00062 DetectorList left_quad_2; left_quad_2.push_back(IDs::channel (kSiL1_2 , kNotApplicable)); 00063 fLeftArmQuad2.thin = left_quad_2; 00064 fLeftArmQuad2.thick = fSiL2; 00065 DetectorList left_quad_3; left_quad_3.push_back(IDs::channel (kSiL1_3 , kNotApplicable)); 00066 fLeftArmQuad3.thin = left_quad_3; 00067 fLeftArmQuad3.thick = fSiL2; 00068 DetectorList left_quad_4; left_quad_4.push_back(IDs::channel (kSiL1_4 , kNotApplicable)); 00069 fLeftArmQuad4.thin = left_quad_4; 00070 fLeftArmQuad4.thick = fSiL2; 00071 00072 fRightArm.thin = fSiR1; 00073 fRightArm.thick = fSiR2; 00074 DetectorList right_quad_1; right_quad_1.push_back(IDs::channel (kSiR1_1 , kNotApplicable)); 00075 fRightArmQuad1.thin = right_quad_1; 00076 fRightArmQuad1.thick = fSiR2; 00077 DetectorList right_quad_2; right_quad_2.push_back(IDs::channel (kSiR1_2 , kNotApplicable)); 00078 fRightArmQuad2.thin = right_quad_2; 00079 fRightArmQuad2.thick = fSiR2; 00080 DetectorList right_quad_3; right_quad_3.push_back(IDs::channel (kSiR1_3 , kNotApplicable)); 00081 fRightArmQuad3.thin = right_quad_3; 00082 fRightArmQuad3.thick = fSiR2; 00083 DetectorList right_quad_4; right_quad_4.push_back(IDs::channel (kSiR1_4 , kNotApplicable)); 00084 fRightArmQuad4.thin = right_quad_4; 00085 fRightArmQuad4.thick = fSiR2; 00086 00087 00088 // Hard-coded for the time being 00089 fLeftArm.lower_time_cut = 0; 00090 fLeftArm.upper_time_cut = 10000; 00091 fLeftArmQuad1.lower_time_cut = 0; 00092 fLeftArmQuad1.upper_time_cut = 999999999; 00093 fLeftArmQuad2.lower_time_cut = 0; 00094 fLeftArmQuad2.upper_time_cut = 999999999; 00095 fLeftArmQuad3.lower_time_cut = 0; 00096 fLeftArmQuad3.upper_time_cut = 999999999; 00097 fLeftArmQuad4.lower_time_cut = 0; 00098 fLeftArmQuad4.upper_time_cut = 999999999; 00099 00100 fRightArm.lower_time_cut = 0; 00101 fRightArm.upper_time_cut = 10000; 00102 fRightArmQuad1.lower_time_cut = 0; 00103 fRightArmQuad1.upper_time_cut = 999999999; 00104 fRightArmQuad2.lower_time_cut = 0; 00105 fRightArmQuad2.upper_time_cut = 999999999; 00106 fRightArmQuad3.lower_time_cut = 0; 00107 fRightArmQuad3.upper_time_cut = 999999999; 00108 fRightArmQuad4.lower_time_cut = 0; 00109 fRightArmQuad4.upper_time_cut = 999999999; 00110 00111 fArms.push_back(fLeftArm); 00112 fArms.push_back(fLeftArmQuad1); 00113 fArms.push_back(fLeftArmQuad2); 00114 fArms.push_back(fLeftArmQuad3); 00115 fArms.push_back(fLeftArmQuad4); 00116 fArms.push_back(fRightArm); 00117 fArms.push_back(fRightArmQuad1); 00118 fArms.push_back(fRightArmQuad2); 00119 fArms.push_back(fRightArmQuad3); 00120 fArms.push_back(fRightArmQuad4); 00121 00122 // Create the histograms for each arm 00123 for (std::vector<Arm>::iterator i_arm = fArms.begin(); i_arm != fArms.end(); ++i_arm) { 00124 std::string evde_histname = i_arm->detname + "_EvdE"; 00125 std::string evde_histtitle = "The E v dE plot for " + i_arm->detname; 00126 i_arm->h_EvdE = new TH2F(evde_histname.c_str(), evde_histtitle.c_str(), 250,0,25000, 100,0,10000); 00127 i_arm->h_EvdE->SetXTitle("E + dE [keV]"); 00128 i_arm->h_EvdE->SetYTitle("dE [keV]"); 00129 00130 std::string time_histname = i_arm->detname + "_Time"; 00131 std::string time_histtitle = "The time of hits in " + i_arm->detname; 00132 i_arm->h_Time = new TH1F(time_histname.c_str(), time_histtitle.c_str(), 2500,0,10000); 00133 i_arm->h_Time->SetXTitle("Time [ns]"); 00134 i_arm->h_Time->SetYTitle("Count"); 00135 00136 if (fStoppedProtonCut) { 00137 TTree* pid_cuts_tree = new TTree(); 00138 std::string pid_cuts_filename = "/gpfs/home/edmonds_a/AlcapDAQ/analyzer/rootana/src/Al50/pid-cuts-" + i_arm->detname + ".txt"; 00139 pid_cuts_tree->ReadFile(pid_cuts_filename.c_str()); 00140 pid_cuts_tree->Print(); 00141 00142 TBranch* energy_branch = (TBranch*) pid_cuts_tree->GetBranch("energy"); 00143 double energy; 00144 energy_branch->SetAddress(&energy); 00145 00146 TBranch* d_energy_branch = (TBranch*) pid_cuts_tree->GetBranch("dEnergy"); 00147 double d_energy; 00148 d_energy_branch->SetAddress(&d_energy); 00149 00150 TBranch* stopped_proton_prob_branch = (TBranch*) pid_cuts_tree->GetBranch("p_stop_prob"); 00151 double stopped_proton_prob; 00152 stopped_proton_prob_branch->SetAddress(&stopped_proton_prob); 00153 00154 std::string prob_histname = i_arm->detname + "_StoppedProtonProb"; 00155 std::string prob_histtitle = "Probability that at a given (E, dE) that the hit is a proton in " + i_arm->detname; 00156 i_arm->h_stopped_proton_prob = new TH2F(prob_histname.c_str(), prob_histtitle.c_str(), 100,0,10000, 100,0,10000); 00157 i_arm->h_stopped_proton_prob->SetXTitle("E [keV]"); 00158 i_arm->h_stopped_proton_prob->SetYTitle("dE [keV]"); 00159 00160 for (int i_entry = 0; i_entry < pid_cuts_tree->GetEntries(); ++i_entry) { 00161 pid_cuts_tree->GetEntry(i_entry); 00162 i_arm->h_stopped_proton_prob->Fill(energy, d_energy, stopped_proton_prob); 00163 // std::cout << i_arm->detname << ": Filling @ (" << energy << ", " << d_energy << "): " << stopped_proton_prob << std::endl; 00164 } 00165 delete pid_cuts_tree; 00166 } 00167 else { 00168 i_arm->h_stopped_proton_prob = NULL; 00169 } 00170 00171 } 00172 00173 return 0; 00174 }
bool BaseModule::Debug | ( | ) | const [inline, protected, inherited] |
Check whether this module was asked to print extra debug information
Definition at line 71 of file BaseModule.h.
References BaseModule::fDebug.
Referenced by MakeAnalysedPulses::AddGenerator(), ExportPulse::AddToExportList(), PulseCandidateFinder_InvestigateParameters::AfterLastEntry(), PlotTPI_PedestalAndNoise::AfterLastEntry(), PlotTDPs::AfterLastEntry(), PlotTDP_TDiff::AfterLastEntry(), IslandLength::AfterLastEntry(), IslandAmplitude::AfterLastEntry(), MakeDetectorPulses::BeforeFirstEntry(), TemplateCreator::BeforeFirstEntry(), PulseCandidateFinder_InvestigateParameters::BeforeFirstEntry(), PlotTPI_PedestalAndNoise::BeforeFirstEntry(), PlotTDPs::BeforeFirstEntry(), PlotTDP_TDiff::BeforeFirstEntry(), IslandLength::BeforeFirstEntry(), IslandAmplitude::BeforeFirstEntry(), PulseViewer::ConsiderDrawing(), MakeAnalysedPulses::MakeAnalysedPulses(), MakeDetectorPulses::MakeGenerator(), ExportPulse::PlotTPI(), MakeDetectorPulses::ProcessEntry(), TemplateCreator::ProcessEntry(), PulseCandidateFinder_InvestigateParameters::ProcessEntry(), MakeAnalysedPulses::ProcessEntry(), PulseViewer::ProcessEntry(), PlotTDP_TDiff::ProcessEntry(), and TemplateCreator::StartTemplate().
00071 {return fDebug;};
std::string BaseModule::GetAlias | ( | ) | const [inline, inherited] |
Returns a string for the alias of this module. May be empty if no alias was given in the modules file.
Definition at line 63 of file BaseModule.h.
References BaseModule::fAlias.
Referenced by BaseModule::BaseModule().
00063 {return fAlias;};
TDirectory * BaseModule::GetDirectory | ( | const std::string & | name = "" |
) | [protected, inherited] |
Definition at line 77 of file BaseModule.cpp.
References BaseModule::dir, and BaseModule::fDirectory.
00077 { 00078 if(name.empty()) return fDirectory; 00079 TDirectory* dir=fDirectory->GetDirectory(name.c_str()); 00080 if(dir) return dir; 00081 return fDirectory->mkdir(name.c_str()); 00082 }
TDirectory* BaseModule::GetDirectory | ( | ) | const [inline, protected, inherited] |
Get the TDirectory for this module.
Definition at line 74 of file BaseModule.h.
References BaseModule::fDirectory.
Referenced by TemplateCreator::AfterLastEntry(), SavePulses::AfterLastEntry(), TemplateCreator::BeforeFirstEntry(), PlotTDPs::BeforeFirstEntry(), ExportPulse::ExportPulse(), and TemplateCreator::ProcessEntry().
00074 {return fDirectory;}
const char* BaseModule::GetName | ( | ) | const [inline, inherited] |
Get the name of this module as given to the constructor of the base class.
Definition at line 66 of file BaseModule.h.
References BaseModule::fName.
Referenced by SavePulses::BeforeFirstEntry(), PlotTDPs::BeforeFirstEntry(), PlotTDP_TDiff::BeforeFirstEntry(), PlotTAP_Time::ProcessEntry(), PlotTAP_Energy::ProcessEntry(), PlotTAP_Amplitude::ProcessEntry(), and LoopSequence::Run().
00066 {return fName.c_str();};
int BaseModule::Postprocess | ( | TGlobalData * | gData, | |
const TSetupData * | gSetup | |||
) | [inherited] |
Method called by the main pre-process loop.
Does some simple work, then hooks into the derived class through AfterLastEntry.
Definition at line 66 of file BaseModule.cpp.
References BaseModule::AfterLastEntry(), and BaseModule::fDirectory.
Referenced by LoopSequence::Postprocess().
00066 { 00067 // This is called by our main routine and would allow later to split into different 00068 // process routines if we have more than one Tree and hence different tpyes of data input. 00069 00070 if(fDirectory) fDirectory->cd(); 00071 int ret = AfterLastEntry(gData, gSetup); 00072 gDirectory->cd("/"); 00073 00074 return ret; 00075 }
int BaseModule::Preprocess | ( | TGlobalData * | gData, | |
const TSetupData * | gSetup | |||
) | [inherited] |
Method called by the main pre-process loop.
Does some simple work, then hooks into the derived class through BeforeFirstEntry.
Definition at line 55 of file BaseModule.cpp.
References BaseModule::BeforeFirstEntry(), and BaseModule::fDirectory.
Referenced by LoopSequence::Preprocess().
00055 { 00056 // This is called by our main routine and would allow later to split into different 00057 // process routines if we have more than one Tree and hence different tpyes of data input. 00058 00059 if(fDirectory) fDirectory->cd(); 00060 int ret = BeforeFirstEntry(gData, gSetup); 00061 gDirectory->cd("/"); 00062 00063 return ret; 00064 }
int TME_Al50_EvdE::ProcessEntry | ( | TGlobalData * | gData, | |
const TSetupData * | gSetup | |||
) | [private, virtual] |
What's calculated for every entry? Don't hesitate to repeat what was said in the class description.
Implements BaseModule.
Definition at line 176 of file TME_Al50_EvdE.cpp.
References fArms, fStoppedProtonCut, TDetectorPulse::GetAmplitude(), TAnalysedPulse::GetEnergy(), TDetectorPulse::GetTAP(), TDetectorPulse::GetTime(), gMuonEvents, and TDetectorPulse::kFast.
00176 { 00177 00178 for(MuonEventList::const_iterator i_tme=gMuonEvents.begin(); 00179 i_tme!=gMuonEvents.end(); ++i_tme){ 00180 00181 // First, check for pile-up in the muSc 00182 if ( (*i_tme)->HasMuonPileup()) { 00183 continue; 00184 } 00185 00186 double tme_time= (*i_tme)->GetTime(); // this is the same as the muSc time 00187 00188 // Loop through the arms and plots 00189 for (std::vector<Arm>::const_iterator i_arm = fArms.begin(); i_arm != fArms.end(); ++i_arm) { 00190 00191 // Check that there are pulses in both the thin and the thick silicon detectors 00192 DetectorList si_thin = (*i_arm).thin; 00193 IDs::channel* si_thick = (*i_arm).thick; 00194 00195 // Get the thick detector 00196 int si_thick_source_index=(*i_tme)->GetSourceIndex(*si_thick); 00197 00198 // While there are thick detector sources still around 00199 while (si_thick_source_index>-1) { 00200 const IDs::source& si_thick_source=(*i_tme)->GetSource(si_thick_source_index); 00201 int n_si_thick = (*i_tme)->NumPulses(si_thick_source); 00202 00203 // Loop through the pulses in the thick detector 00204 for (int i_thick_pulse=0; i_thick_pulse<n_si_thick; ++i_thick_pulse) { 00205 const TDetectorPulse* tdp_si_thick=(*i_tme)->GetPulse(si_thick_source,i_thick_pulse); 00206 00207 double thick_energy = tdp_si_thick->GetTAP(TDetectorPulse::kFast)->GetEnergy(); 00208 // Skip to next pulse if energy <100 keV 00209 if (thick_energy < 100) { 00210 continue; 00211 } 00212 00213 double thick_amplitude = tdp_si_thick->GetAmplitude(); 00214 double thick_time = tdp_si_thick->GetTime(); 00215 00216 // Loop through the thin quadrants 00217 for(DetectorList::const_iterator i_det=si_thin.begin(); 00218 i_det!=si_thin.end(); ++i_det){ 00219 00220 // Get the thin quadrant and loop through its sources 00221 int si_thin_source_index=(*i_tme)->GetSourceIndex(*i_det); 00222 while(si_thin_source_index>-1){ 00223 const IDs::source& si_thin_source=(*i_tme)->GetSource(si_thin_source_index); 00224 int n_si_thin = (*i_tme)->NumPulses(si_thin_source); 00225 00226 // Loop through the pulses in this quadrant 00227 for(int i_thin_pulse=0; i_thin_pulse<n_si_thin; ++i_thin_pulse){ 00228 const TDetectorPulse* tdp_si_thin=(*i_tme)->GetPulse(si_thin_source,i_thin_pulse); 00229 double thin_energy = tdp_si_thin->GetTAP(TDetectorPulse::kFast)->GetEnergy(); 00230 00231 if (thin_energy < 100) { 00232 continue; 00233 } 00234 double thin_amplitude = tdp_si_thin->GetAmplitude(); 00235 double thin_time = tdp_si_thin->GetTime(); 00236 00237 bool passes_cuts = false; 00238 00239 double arrival_time = thick_time - tme_time; 00240 if ( arrival_time > i_arm->lower_time_cut && arrival_time < i_arm->upper_time_cut ) { 00241 // Now check if this passes our proton cut 00242 if (fStoppedProtonCut) { 00243 int bin = i_arm->h_stopped_proton_prob->FindBin(thick_energy+thin_energy, thin_energy); 00244 double probability = i_arm->h_stopped_proton_prob->GetBinContent(bin); 00245 // std::cout << "(E+dE, dE) = (" << thick_energy+thin_energy << ", " << thin_energy << "): Prob = " << probability << std::endl; 00246 if (probability > 0.99) { 00247 passes_cuts = true; 00248 } 00249 } 00250 else { // everything passes if we're not cutting on protons 00251 passes_cuts = true; 00252 } 00253 } 00254 00255 if (std::abs(thin_time - thick_time) > 500) { 00256 // std::cout << "abs(t_thin - t_thick) = " << std::fabs(thin_time - thick_time) << std::endl; 00257 passes_cuts=false; 00258 } 00259 if (fStoppedProtonCut && (thick_energy+thin_energy < 1500 || thick_energy+thin_energy > 8000)) { 00260 passes_cuts=false; // only accept proton if E is between 1.5 and 8 MeV (like Nam's cut) 00261 } 00262 if (passes_cuts) { 00263 // std::cout << "Amplitude --> Energy (thick): " << thick_amplitude << " --> " << thick_energy << std::endl; 00264 // std::cout << "Amplitude --> Energy (thin): " << thin_amplitude << " --> " << thin_energy << std::endl; 00265 // std::cout << "Plotting: " << thick_energy+thin_energy << ", " << thin_energy << std::endl; 00266 i_arm->h_EvdE->Fill(thick_energy+thin_energy, thin_energy); 00267 i_arm->h_Time->Fill(arrival_time); 00268 } 00269 00270 } 00271 si_thin_source_index=(*i_tme)->GetSourceIndex(*i_det,si_thin_source_index+1); 00272 } 00273 } 00274 } 00275 si_thick_source_index=(*i_tme)->GetSourceIndex(*si_thick,si_thick_source_index+1); 00276 } 00277 } 00278 } 00279 00280 return 0; 00281 }
int BaseModule::ProcessGenericEntry | ( | TGlobalData * | gData, | |
const TSetupData * | gSetup | |||
) | [inherited] |
Method called by the main event loop for each entry in the input root tree. Does some simple work, then hooks into the derived class through ProcessEntry.
Definition at line 44 of file BaseModule.cpp.
References BaseModule::fDirectory, and BaseModule::ProcessEntry().
Referenced by LoopSequence::Process().
00044 { 00045 // This is called by our main routine and would allow later to split into different 00046 // process routines if we have more than one Tree and hence different tpyes of data input. 00047 00048 if(fDirectory) fDirectory->cd(); 00049 int ret = ProcessEntry(gData, gSetup); 00050 gDirectory->cd("/"); 00051 00052 return ret; 00053 }
void BaseModule::SetAlias | ( | const std::string & | alias | ) | [inline, inherited] |
Sets the alias for this module, which should be provided in the modules file
Definition at line 59 of file BaseModule.h.
References BaseModule::fAlias.
Referenced by BaseModule::BaseModule().
00059 {fAlias=alias;};
TDirectory* BaseModule::dir [protected, inherited] |
Many modules use 'dir' still which was the old protected pointer to the modules directory. To prevent things being broken so soon, we keep this pointer available, but be warned that it will be removed shortly...
Definition at line 98 of file BaseModule.h.
Referenced by BaseModule::BaseModule(), FastSlowCompare::FastSlowCompare(), GeSpectrum::GeSpectrum(), BaseModule::GetDirectory(), MakeMuonEvents::MakeMuonEvents(), and PlotAmpVsTDiff::PlotAmpVsTDiff().
std::vector<Arm> TME_Al50_EvdE::fArms [private] |
Definition at line 84 of file TME_Al50_EvdE.h.
Referenced by BeforeFirstEntry(), and ProcessEntry().
struct TME_Al50_EvdE::Arm TME_Al50_EvdE::fLeftArm [private] |
Referenced by BeforeFirstEntry().
struct TME_Al50_EvdE::Arm TME_Al50_EvdE::fLeftArmQuad1 [private] |
Referenced by BeforeFirstEntry().
struct TME_Al50_EvdE::Arm TME_Al50_EvdE::fLeftArmQuad2 [private] |
Referenced by BeforeFirstEntry().
struct TME_Al50_EvdE::Arm TME_Al50_EvdE::fLeftArmQuad3 [private] |
Referenced by BeforeFirstEntry().
struct TME_Al50_EvdE::Arm TME_Al50_EvdE::fLeftArmQuad4 [private] |
Referenced by BeforeFirstEntry().
long int TME_Al50_EvdE::fNullCount [private] |
Definition at line 61 of file TME_Al50_EvdE.h.
bool TME_Al50_EvdE::fQuit [private] |
Definition at line 63 of file TME_Al50_EvdE.h.
struct TME_Al50_EvdE::Arm
TME_Al50_EvdE::fRightArm [private] |
Referenced by BeforeFirstEntry().
struct TME_Al50_EvdE::Arm TME_Al50_EvdE::fRightArmQuad1 [private] |
Referenced by BeforeFirstEntry().
struct TME_Al50_EvdE::Arm TME_Al50_EvdE::fRightArmQuad2 [private] |
Referenced by BeforeFirstEntry().
struct TME_Al50_EvdE::Arm TME_Al50_EvdE::fRightArmQuad3 [private] |
Referenced by BeforeFirstEntry().
struct TME_Al50_EvdE::Arm TME_Al50_EvdE::fRightArmQuad4 [private] |
Referenced by BeforeFirstEntry().
DetectorList TME_Al50_EvdE::fSiL1 [private] |
Definition at line 66 of file TME_Al50_EvdE.h.
Referenced by BeforeFirstEntry().
IDs::channel* TME_Al50_EvdE::fSiL2 [private] |
Definition at line 67 of file TME_Al50_EvdE.h.
Referenced by BeforeFirstEntry().
DetectorList TME_Al50_EvdE::fSiR1 [private] |
Definition at line 68 of file TME_Al50_EvdE.h.
Referenced by BeforeFirstEntry().
IDs::channel* TME_Al50_EvdE::fSiR2 [private] |
Definition at line 69 of file TME_Al50_EvdE.h.
Referenced by BeforeFirstEntry().
bool TME_Al50_EvdE::fStoppedProtonCut [private] |
Definition at line 86 of file TME_Al50_EvdE.h.
Referenced by BeforeFirstEntry(), ProcessEntry(), and TME_Al50_EvdE().
long int TME_Al50_EvdE::fTdpCount [private] |
Definition at line 61 of file TME_Al50_EvdE.h.