00001 FILE *fdo=0;
00002 TFile *fdA=0;
00003
00004 fitSlope5(char *core="08TD09") {
00005
00006 int sec=atoi(core);
00007 int eta=atoi(core+4);
00008 printf("core=%s, sect=%d eta=%d\n",core,sec,eta);
00009
00010 char txt[200];
00011 char *path="/star/data05/scratch/balewski/2005-eemcCal/day49-hist/iter2-out/";
00012
00013 sprintf(txt,"%ssum-sect%d.hist.root",path,sec);
00014
00015 fdA=new TFile(txt); assert(fdA->IsOpen());
00016
00017 int eta=atoi(core+4);
00018 int x1=12+eta;
00019 printf("eta=%d x1=%d\n",eta,x1);
00020 sprintf(txt,"%s.slope",core);
00021 fdo=fopen(txt,"w");
00022 assert(fdo);
00023 fitOneSl(core,x1,x1+35);
00024 fclose(fdo);
00025 return;
00026 }
00027
00028
00029
00030 void fitOneSl(char *core, float x1=20, float x2=70){
00031 TString core0=core;
00032 c=new TCanvas(core,core,600,700);
00033 c->Divide(2,3);
00034
00035 int k=0;
00036 for(k=0;k<5;k++) {
00037 core[3]='A'+k;
00038 TString name="a"; name+=core;
00039 TH1F *h=(TH1F*) fdA->Get(name); assert(h);
00040 c->cd(k+1);
00041 h->Draw();
00042 h->SetLineColor(kBlack+k);
00043 h->SetAxisRange(-10.,100.);
00044 if(strstr(core,core0.Data())) {
00045 TString tt=core0;
00046 tt+=" NEW SLOPE";
00047 h->SetTitle(tt);
00048 }
00049
00050 TH1F* h1=(TH1F*)h->Clone();
00051 h->Fit("expo","R","",x1,x2);
00052 TF1*ff=h->GetFunction("expo");
00053 ff->SetLineColor(kBlack+k);
00054 ff->SetLineColor(kRed);
00055 ff->SetLineWidth(1);
00056 float sl=ff->GetParameter(1);
00057 float slEr=ff->GetParError(1);
00058 fprintf(fdo,"%s %.4f %.4f\n",name.Data()+1,sl,slEr);
00059 gPad->SetLogy();
00060
00061
00062 c->cd(6);
00063 if(!strstr(core,core0.Data())) h1->SetLineStyle(2);
00064 printf("=%s=%s=%d\n",core,core0.Data(),strstr(core,core0.Data()));
00065 if(k==0)h1->Draw();else h1->Draw("same");
00066 gPad->SetLogy();
00067 }
00068 c->Print();
00069 }