18const Int_t minimum[
nDet] = {40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40};
37 gROOT->LoadMacro(
"$VMCWORKDIR/macro/run/bmnloadlibs.C");
40 TH1I* hMean =
new TH1I(
"hMean",
"hMean", 2048, -12, 12);
41 TH1I* hdMean =
new TH1I(
"hdMean",
"hdMean", 2048, -6., 6.);
42 TH2I* hdMean_vs_Strip =
new TH2I(
"hdMean_vs_Strip",
"hdMean_vs_Strip", 460, 0, 460, 400, -2., 2.);
46 cout <<
"Open file " << inName << endl << endl;
50 cout <<
"File " << inName.
Data() <<
" is not found" << endl;
59 for (
Int_t Plane = 0; Plane <
nDet; Plane++) {
61 hDtLR[Plane] =
new TH1I*[48];
62 hDifDtLR[Plane] =
new TH1I*[48];
64 Name1 =
Form(
"Plane_%d", Plane);
65 FileIn->
cd(
Form(
"ToF/Plane_%d/Detector", Plane));
68 for (
Int_t Str = 0; Str < 48; Str++) {
70 Name2 =
Form(
"Hist_dtLR_%s_str%d", Name1.
Data(), Str);
76 Name2 =
Form(
"Hist_DiffdtLR_%s_str%d", Name1.
Data(), Str);
77 hDifDtLR[Plane][Str] =
new TH1I(Name2.
Data(), Name2.
Data(), 1024, -12., 12.);
80 if (hDtLR[Plane][Str]->GetBinContent(
i) >
minimum[Plane])
82 if (hDtLR[Plane][Str]->GetBinContent(
i) <
minimum[Plane])
84 hDifDtLR[Plane][Str]->
SetBinContent(
i, hDtLR[Plane][Str]->GetBinContent(
i)
85 - hDtLR[Plane][Str]->GetBinContent(
i - 1));
92 outName.
Replace(Point, 15,
"_LRcorr_RUN7.root");
96 TString NameCallFile =
"Tof400LRcorr_RUN7.dat";
100 cout <<
"Write call to " << NameCallFile.
Data() << endl;
101 f_call.open(NameCallFile.
Data());
102 f_call <<
"Plane\tStrip\tMeanFit\tMean" << endl <<
"==========================" << endl;
106 TF1* MyGaus =
new TF1(
"MyGaus",
"gaus", -24., 24.);
107 for (
Int_t Plane = 0; Plane <
nDet; Plane++) {
109 Name1 =
Form(
"Plane%d", Plane);
110 DirPlane[Plane] = fileout->
mkdir(Name1.
Data());
112 Dir2Plane[Plane] = DirPlane[Plane]->
mkdir(
"Diff");
113 Dir2Plane[Plane]->
cd();
114 for (
Int_t Str = 0; Str < 48; Str++)
115 hDifDtLR[Plane][Str]->Write();
117 DirPlane[Plane]->
cd();
118 for (
Int_t Str = 0; Str < 48; Str++) {
124 if (Str >= 0 && Str <= 47) {
125 hDtLR[Plane][Str]->
Fit(
"MyGaus",
"QB",
"");
126 f_call << Plane <<
"\t" << Str <<
"\t" << MyGaus->
GetParameter(1) <<
"\t"
127 << hDtLR[Plane][Str]->
GetMean() << endl;
132 f_call << Plane <<
"\t" << Str <<
"\t" << 0 <<
"\t" << left << endl;
133 hDtLR[Plane][Str]->
Write();
144 hdMean_vs_Strip->
Write();
152 TH1I* hTest =
new TH1I(
"hTest",
"hTest", 400, 0, 10);
154 hTest->
Fill(
i * 0.025, 10);
char * Form(const char *fmt,...)
void Tof400LRcorrection_period7(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