StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
fitSlope5.C
1 FILE *fdo=0;
2 TFile *fdA=0;
3 
4 fitSlope5(char *core="08TD09") {
5  // fit slope to 5 tiles at the same eta and in the same phi
6  int sec=atoi(core);
7  int eta=atoi(core+4);
8  printf("core=%s, sect=%d eta=%d\n",core,sec,eta);
9 
10  char txt[200];
11  char *path="/star/data05/scratch/balewski/2005-eemcCal/day49-hist/iter2-out/";
12  // path="/star/data05/scratch/balewski/2005-eemcCal/day171-hist/iter4-outA/";
13  sprintf(txt,"%ssum-sect%d.hist.root",path,sec);
14 
15  fdA=new TFile(txt); assert(fdA->IsOpen());
16 
17  int eta=atoi(core+4);
18  int x1=12+eta;
19  printf("eta=%d x1=%d\n",eta,x1);// return;
20  sprintf(txt,"%s.slope",core);
21  fdo=fopen(txt,"w");
22  assert(fdo);
23  fitOneSl(core,x1,x1+35);
24  fclose(fdo);
25  return;
26 }
27 
28 
29 //======================================================
30 void fitOneSl(char *core, float x1=20, float x2=70){
31  TString core0=core;
32  c=new TCanvas(core,core,600,700);
33  c->Divide(2,3);
34 
35  int k=0;
36  for(k=0;k<5;k++) {
37  core[3]='A'+k;
38  TString name="a"; name+=core;
39  TH1F *h=(TH1F*) fdA->Get(name); assert(h);
40  c->cd(k+1);
41  h->Draw();
42  h->SetLineColor(kBlack+k);
43  h->SetAxisRange(-10.,100.);
44  if(strstr(core,core0.Data())) {
45  TString tt=core0;
46  tt+=" NEW SLOPE";
47  h->SetTitle(tt);
48  }
49 
50  TH1F* h1=(TH1F*)h->Clone();
51  h->Fit("expo","R","",x1,x2);
52  TF1*ff=h->GetFunction("expo");
53  ff->SetLineColor(kBlack+k);
54  ff->SetLineColor(kRed);
55  ff->SetLineWidth(1);
56  float sl=ff->GetParameter(1);
57  float slEr=ff->GetParError(1);
58  fprintf(fdo,"%s %.4f %.4f\n",name.Data()+1,sl,slEr);
59  gPad->SetLogy();
60 
61  //continue;
62  c->cd(6);
63  if(!strstr(core,core0.Data())) h1->SetLineStyle(2);
64  printf("=%s=%s=%d\n",core,core0.Data(),strstr(core,core0.Data()));
65  if(k==0)h1->Draw();else h1->Draw("same");
66  gPad->SetLogy();
67  }
68  c->Print();
69 }