6const Int_t minimum[10] = {70, 100, 100, 12, 26, 130, 180, 200, 180, 35};
11 gROOT->LoadMacro(
"$VMCWORKDIR/macro/run/bmnloadlibs.C");
14 TH1I* hMean =
new TH1I(
"hMean",
"hMean", 2048, -12, 12);
15 TH1I* hdMean =
new TH1I(
"hdMean",
"hdMean", 2048, -6., 6.);
16 TH2I* hdMean_vs_Strip =
new TH2I(
"hdMean_vs_Strip",
"hdMean_vs_Strip", 460, 0, 460, 400, -2., 2.);
20 cout <<
"Open file " << inName << endl << endl;
24 cout <<
"File " << inName.
Data() <<
" is not found" << endl;
33 for (
Int_t Plane = 0; Plane < 10; Plane++) {
34 hDtLR[Plane] =
new TH1I*[48];
35 hDifDtLR[Plane] =
new TH1I*[48];
37 Name1 =
Form(
"Plane%d", Plane);
38 FileIn->
cd(
Form(
"ToF/Plane%d/Detector", Plane));
41 for (
Int_t Str = 0; Str < 48; Str++) {
43 Name2 =
Form(
"Hist_dtLR_%s_str%d", Name1.
Data(), Str);
49 Name2 =
Form(
"Hist_DiffdtLR_%s_str%d", Name1.
Data(), Str);
50 hDifDtLR[Plane][Str] =
new TH1I(Name2.
Data(), Name2.
Data(), 1024, -12., 12.);
53 if (hDtLR[Plane][Str]->GetBinContent(
i) >
minimum[Plane])
55 if (hDtLR[Plane][Str]->GetBinContent(
i) <
minimum[Plane])
57 hDifDtLR[Plane][Str]->
SetBinContent(
i, hDtLR[Plane][Str]->GetBinContent(
i)
58 - hDtLR[Plane][Str]->GetBinContent(
i - 1));
65 outName.
Replace(Point, 15,
"_LRcorr.root");
69 TString NameCallFile =
"Tof400LRcorr.dat";
73 cout <<
"Write call to " << NameCallFile.
Data() << endl;
74 f_call.open(NameCallFile.
Data());
75 f_call <<
"Plane\tStrip\tMeanFit\tMean" << endl <<
"==========================" << endl;
79 TF1* MyGaus =
new TF1(
"MyGaus",
"gaus", -24., 24.);
80 for (
Int_t Plane = 0; Plane < 10; Plane++) {
82 Name1 =
Form(
"Plane%d", Plane);
83 DirPlane[Plane] = fileout->
mkdir(Name1.
Data());
85 Dir2Plane[Plane] = DirPlane[Plane]->
mkdir(
"Diff");
86 Dir2Plane[Plane]->
cd();
87 for (
Int_t Str = 0; Str < 48; Str++)
88 hDifDtLR[Plane][Str]->Write();
90 DirPlane[Plane]->
cd();
91 for (
Int_t Str = 0; Str < 48; Str++) {
97 if (Str > 0 && Str < 47) {
98 hDtLR[Plane][Str]->
Fit(
"MyGaus",
"QB",
"");
99 f_call << Plane <<
"\t" << Str <<
"\t" << MyGaus->
GetParameter(1) <<
"\t"
100 << hDtLR[Plane][Str]->
GetMean() << endl;
105 f_call << Plane <<
"\t" << Str <<
"\t" << 0 <<
"\t" << left << endl;
106 hDtLR[Plane][Str]->
Write();
117 hdMean_vs_Strip->
Write();
124 TH1I* hTest =
new TH1I(
"hTest",
"hTest", 400, 0, 10);
126 hTest->
Fill(
i * 0.025, 10);
char * Form(const char *fmt,...)
void Tof400LRcorrection_period6(TString file="")
virtual Double_t GetBinLowEdge(Int_t bin) const
TDirectory * mkdir(const char *name, const char *title="", Bool_t returnExistingDirectory=kFALSE) override
virtual TDirectory * mkdir(const char *name, const char *title="", Bool_t returnExistingDirectory=kFALSE)
virtual Double_t GetParameter(const TString &name) const
virtual void SetParLimits(Int_t ipar, Double_t parmin, Double_t parmax)
virtual void SetParameters(const Double_t *params)
void Close(Option_t *option="") override
virtual Double_t GetMean(Int_t axis=1) const
virtual TFitResultPtr Fit(const char *formula, Option_t *option="", Option_t *goption="", Double_t xmin=0, Double_t xmax=0)
virtual Int_t GetNbinsX() const
void Draw(Option_t *option="") override
virtual Int_t Fill(const char *name, Double_t w)
virtual void SetBinContent(Int_t bin, Double_t content)
virtual Int_t GetMaximumBin() const
virtual Double_t GetBinWidth(Int_t bin) const
virtual Int_t Fill(const char *namex, const char *namey, Double_t w)
virtual Int_t Write(const char *name=nullptr, Int_t option=0, Int_t bufsize=0)
TString & Replace(Ssiz_t pos, Ssiz_t n, const char *s)
Ssiz_t First(char c) const
const char * Data() const