34 return BmnHodoAddress::GetFlatIndex(address);
40 canvas_array->
SetName(
"Canvas");
44 int variantes = BmnHodoAddress::GetMaxFlatIndex();
45 std::vector<TH1F*> signalHistVect;
46 signalHistVect.resize(variantes);
49 for (uint32_t j = 0; j <
kNsides; j++)
50 for (uint32_t k = 0; k <
kNgains; k++) {
52 TString side = (j == 0) ?
"DOWN" :
"UP";
53 TString gain = (k == 0) ?
"LOW" :
"HIGH";
55 signalHistVect.at(idx) =
new TH1F(
Form(
"variant%i", idx), name.
Data(), 300, 0, 4);
67 int n_events = (max_entries > 0 && tree->
GetEntries() > max_entries) ? max_entries : tree->
GetEntries();
68 cout << n_events << endl;
69 for (
int ev = 0; ev < n_events; ev++)
73 cout <<
"Event: " << ev << endl;
80 if (ThisDigi->
fFitR2 > 0.55)
88 auto gain = ThisDigi->
GetGain();
92 signalHistVect.at(idx)->Fill(signal);
103 canvas_array->
Add(canv_total);
106 for (uint32_t j = 0; j <
kNsides; j++)
107 for (uint32_t k = 0; k <
kNgains; k++) {
112 canvas_array->
Add(canv_ptr);
115 double range_low, range_high;
122 double adj_now = 23.0 / mean;
123 TString new_name =
Form(
"%s MEAN %.5f", signalHistVect.at(idx)->GetTitle(), adj_now);
124 signalHistVect.at(idx)->SetTitle(new_name.
Data());
125 result_array->
Add(signalHistVect.at(idx));
126 signalHistVect.at(idx)->Draw();
128 canv_total->
cd(cnter);
129 signalHistVect.at(idx)->
Draw();
133 double new_calib = calib_pair.first * adj_now;
134 printf(
"calib = Q %i %i %i %.5f 0.0\n",
i, j, k, new_calib);
137 TFile* result_file =
new TFile((result_file_name +
".root").Data(),
"RECREATE");
140 while ((obj_ptr = (
TObjArray*)nx_iter())) {
141 if (obj_ptr ==
nullptr)
143 printf(
"Writing %s object\n", obj_ptr->
GetName());
146 printf(
"file %s was written\n", (result_file_name +
".root").Data());
147 result_file->
Close();
151 ((
TCanvas*)canvas_array->
At(
i))->
SaveAs((result_file_name +
".pdf(").Data());
152 ((
TCanvas*)canvas_array->
At(canvas_array->
GetLast()))->SaveAs((result_file_name +
".pdf)").Data());
153 printf(
"file %s was written\n", (result_file_name +
".pdf").Data());
char * Form(const char *fmt,...)
float fFitR2
Energy deposition from fit of waveform [adc counts].
int fTimeMax
Energy deposition from waveform [adc counts].
static uint32_t GetAddress(uint32_t StripId, uint32_t StripSide, uint32_t Gain)
Return address from system ID, StripId, StripSide, Gain.
Data class for BmnHodo digital signal processing.
uint32_t GetGain() const
Gain.
uint32_t GetStripSide() const
Strip Side.
uint32_t GetStripId() const
std::optional< std::pair< float, float > > GetCalibPairFromAddress(uint32_t address)
BmnStatus ParseCalibration(const std::string &file)
TVirtualPad * cd(Int_t subpadnumber=0) override
void SetName(const char *name)
T * Get(const char *namecycle)
static TFile * Open(const char *name, Option_t *option="", const char *ftitle="", Int_t compress=ROOT::RCompressionSetting::EDefaults::kUseCompiledDefault, Int_t netopt=0)
void Close(Option_t *option="") override
Int_t GetEntriesFast() const
TObject * At(Int_t idx) const override
Int_t GetLast() const override
void Add(TObject *obj) override
virtual const char * GetName() const
virtual Int_t Write(const char *name=nullptr, Int_t option=0, Int_t bufsize=0)
virtual void SaveAs(const char *filename="", Option_t *option="") const
virtual void DivideSquare(Int_t n, Float_t xmargin=0.01, Float_t ymargin=0.01, Int_t color=0)
void SetLogy(Int_t value=1) override
const char * Data() const
virtual Int_t GetEntry(Long64_t entry, Int_t getall=0)
virtual Long64_t GetEntries() const
Int_t SetBranchAddress(const char *bname, T **add, TBranch **ptr=nullptr)
void Draw(Option_t *option="") override=0
Int_t FitHistogrammSmartInMaxPeak(TH1 *histogramm, Double_t &mean, Double_t &sigma, Double_t nRMSfit=2., Double_t RangeXmin=0., Double_t RangeXmax=0.)
int make_flat_index(uint32_t StripId, uint32_t StripSide, uint32_t Gain)
void simple_analysis(TString converted_root_file, TString result_file_name, int max_entries)