1 #define MakeAmpToolsFlat_cxx
44 TH1D *h1_twopimass_intime =
new TH1D (
"h1_twopimass_intime",
"Two pi mass intime (w=1)",200,0.2,0.8);
45 TH1D *h1_twopimass_outtime =
new TH1D (
"h1_twopimass_outtime",
"Two pi mass outtime (w=1)",200,0.2,0.8);
46 TH1D *h1_twopimass_total =
new TH1D (
"h1_twopimass_total",
"Two pi mass total (w=1)",200,0.2,0.8);
47 TH1D *h1_twopimass_signal =
new TH1D (
"h1_twopimass_signal",
"Two pi mass (weighted)",200,0.2,0.8);
48 TH1D *h1_twopimass_signalpos =
new TH1D (
"h1_twopimass_signalpos",
"Two pi mass (positive weighted)",200,0.2,0.8);
57 outFile =
new TFile(
"AmpToolsInputTree.root",
"RECREATE");
59 else if (foption == 2) {
60 outFile =
new TFile(
"AmpToolsInputTreeInTime.root",
"RECREATE");
62 else if (foption == 3) {
63 outFile =
new TFile(
"AmpToolsInputTreeOutTime.root",
"RECREATE");
65 else if (foption == 4) {
66 outFile =
new TFile(
"AmpToolsInputTreeInTimeW.root",
"RECREATE");
69 cout <<
"*** Loop, illegal foption=" << foption << endl;
74 static size_t locNumFinalStateParticles = 3;
76 m_OutTree->Branch(
"Weight",
new float,
"Weight/F");
77 m_OutTree->Branch(
"E_Beam",
new float,
"E_Beam/F");
78 m_OutTree->Branch(
"Px_Beam",
new float,
"Px_Beam/F");
79 m_OutTree->Branch(
"Py_Beam",
new float,
"Py_Beam/F");
80 m_OutTree->Branch(
"Pz_Beam",
new float,
"Pz_Beam/F");
81 m_OutTree->Branch(
"Target_Mass",
new float,
"Target_Mass/F");
82 m_OutTree->Branch(
"NumFinalState",
new int,
"NumFinalState/I");
83 m_OutTree->Branch(
"PID_FinalState",
new int[locNumFinalStateParticles],
"PID_FinalState[NumFinalState]/I");
84 m_OutTree->Branch(
"E_FinalState",
new float[locNumFinalStateParticles],
"E_FinalState[NumFinalState]/F");
85 m_OutTree->Branch(
"Px_FinalState",
new float[locNumFinalStateParticles],
"Px_FinalState[NumFinalState]/F");
86 m_OutTree->Branch(
"Py_FinalState",
new float[locNumFinalStateParticles],
"Py_FinalState[NumFinalState]/F");
87 m_OutTree->Branch(
"Pz_FinalState",
new float[locNumFinalStateParticles],
"Pz_FinalState[NumFinalState]/F");
110 Long64_t nentries =
fChain->GetEntriesFast();
117 Long64_t nbytes = 0, nb = 0;
118 for (Long64_t jentry=0; jentry<nentries;jentry++) {
120 if (ientry < 0)
break;
121 nb =
fChain->GetEntry(jentry);
127 double signal_frac = (NumIntime - (1./Nbunches)*NumOuttime) / NumIntime;
128 cout <<
"Signal_frac=" << signal_frac << endl;
132 for (Long64_t jentry=0; jentry<nentries;jentry++) {
134 if (ientry < 0)
break;
135 nb =
fChain->GetEntry(jentry);
173 TLorentzVector twopi;
175 Double_t twopimass = twopi.M();
178 if (
AccWeight > 0) h1_twopimass_intime->Fill(twopimass);
179 if (
AccWeight < 0) h1_twopimass_outtime->Fill(twopimass);
180 h1_twopimass_total->Fill(twopimass);
181 h1_twopimass_signal->Fill(twopimass,
AccWeight);
182 h1_twopimass_signalpos->Fill(twopimass,abs(
AccWeight));
185 else if (foption == 2) {
188 else if (foption == 3) {
194 else if (foption == 4) {
201 cout <<
" *** Loop, illegal foption=" << foption << endl;
208 cout <<
"Completed loop: foption=" << foption <<
" nbytes =" << nbytes <<
" nentries=" << nentries << endl;
213 TFile *histFile =
new TFile(
"AmpToolsDiagnosticHist.root",
"RECREATE");
214 h1_twopimass_intime->Write();
215 h1_twopimass_outtime->Write();
216 h1_twopimass_total->Write();
217 h1_twopimass_signal->Write();
218 h1_twopimass_signalpos->Write();