float BinCenterEta(int j) { if(j==0) return 0.05; if(j==1) return 0.3; if(j==2) return 0.65; if(j==3) return 0.925; if(j==4) return 1.175; if(j==5) return 1.4; if(j==6) return 1.6; if(j==7) return 1.85; if(j==8) return 2.2; if(j==9) return 2.45; } float BinCenterPt(int i) { if(i==0) return 0.5; if(i==1) return 1.5; if(i==2) return 2.5; if(i==3) return 3.5; if(i==4) return 4.5; if(i==5) return 5.5; if(i==6) return 6.5; if(i==7) return 7.5; if(i==8) return 8.5; if(i==9) return 9.5; if(i==10) return 15.; } void pippo() { TFile *F1 = new TFile("../DimuonStudy-root/TPout_GHI_efmu4efmu4_CombComb_staco_ALL.root","Read"); TFile *outfile= new TFile("EffMap.root", "RECREATE"); TH2D *hmapselalleff=(TH2D*) F1->Get("hmapselalleff"); TH2D *hmapselall=(TH2D*) F1->Get("hmapselall"); TH2D *hmapall=(TH2D*) F1->Get("hmapall"); const int nbinsPt=11; const int nbinsEta=10; const float binsPt[12]={0.,1.,2.,3.,4.,5.,6.,7.,8.,9.,10.,20.}; const float binsEta[11]={0.,0.1,0.5,0.8,1.05,1.3,1.5,1.7,2.0,2.4,2.5}; //TH2D *ErrorMap=new TH2D("ErrorMap","ErrorMap",nbinsPt,binsPt,nbinsEta,binsEta); TH2D *ErrorSup=new TH2D("ErrorSup","ErrorSup",nbinsEta,binsEta,nbinsPt,binsPt); TH2D *ErrorMin=new TH2D("ErrorMin","ErrorMin",nbinsEta,binsEta,nbinsPt,binsPt); TH2D *ErrorBin=new TH2D("ErrorBin","ErrorBin",nbinsEta,binsEta,nbinsPt,binsPt); TH2D *EffBin=new TH2D("EffBin","EffBin",nbinsEta,binsEta,nbinsPt,binsPt); cout<<" bin number X"<GetNbinsX()<GetNbinsY()<GetBinContent(j,i)<GetBinError(j,i)<GetBinContent(j,i)<GetBinError(j,i)<GetBinContent(j,i)<GetBinError(j,i)<GetBinContent(j+1,i+1)!=0) { eff=hmapselall->GetBinContent(j+1,i+1)/hmapall->GetBinContent(j+1,i+1); err=sqrt(eff*(1-eff)/hmapall->GetBinContent(j+1,i+1)); cout<<"Binomial Error "<Fill(binX,binY,err); //EffBin->Fill(binX,binY,eff); } if(eff==1) { err=0.18; } ErrorBin->Fill(BinCenterEta(j),BinCenterPt(i),err); EffBin->Fill(BinCenterEta(j),BinCenterPt(i),eff); // ErrorBin->SetBinContent(j,i,err); //EffBin->SetBinContent(j,i,eff); double ErrSup=hmapselalleff->GetBinContent(j+1,i+1)+hmapselalleff->GetBinError(j+1,i+1); double ErrMin=hmapselalleff->GetBinContent(j+1,i+1)-hmapselalleff->GetBinError(j+1,i+1); if(hmapselalleff->GetBinContent(j+1,i+1)==1) { // ErrSup=hmapselalleff->GetBinContent(j+1,i+1)+0.18; ErrMin=hmapselalleff->GetBinContent(j+1,i+1)-0.18; } ErrorSup->Fill(BinCenterEta(j),BinCenterPt(i),ErrSup); ErrorMin->Fill(BinCenterEta(j),BinCenterPt(i),ErrMin); // ErrorSup->SetBinContent(j+1,i+1,hmapselalleff->GetBinContent(j+1,i+1)+hmapselalleff->GetBinError(j+1,i+1)); //ErrorMin->SetBinContent(j+1,i+1,hmapselalleff->GetBinContent(j+1,i+1)-hmapselalleff->GetBinError(j+1,i+1)); } } outfile->Write(); outfile->Close(); }