793 printf(
"EdbEDAShowerTab::CheckBTDensityCanv...\n");
804 cout <<
"EdbEDAShowerTab::CheckBTDensityCanv INFO : eQualityCutSetting==1 || eQualityCutSetting==2 We directly use pvrec_cleaned of the EdbPVRQuality class." << endl;
810 cout <<
"EdbEDAShowerTab::CheckBTDensityCanv ERROR : NULL == pvr Return now." << endl;
819 Int_t patN= pat->
N();
821 Int_t pvrNMiddle= 0+(pvr->
Npatterns()-1)/2;
825 printf(
"EdbEDAShowerTab::Create Histos...\n");
826 TH2F* h_plate =
new TH2F(
"All Plates",
"h_plate",125,0,125000,100,0,100000);
827 TH2F* BTDens =
new TH2F(
"BTDens",
"BTDens",125,0,125000,100,0,100000);
829 TProfile* BTDensProfile =
new TProfile(
"BTDensityProfile",
"BTDensityProfile",57,0,57,0,200);
830 TProfile* BTDensityProfile[10];
831 TH1F* h_BinContentDistribution =
new TH1F(
"h_BinContentDistribution",
"h_BinContentDistribution",50,0,50);
834 for (
int l=0; l<10; ++l) {
835 BTDensity[l]=(TH2F*)BTDens->Clone();
836 BTDensityProfile[l]=(TProfile*)BTDensProfile->Clone();
837 BTDensityProfile[l]->SetLineColor(21+2*l);
839 for (
int l=0; l<pvrN; ++l) {
840 h_BinCont[l]=(TH1F*)h_BinContentDistribution->Clone();
843 for (
int j=0; j<pvrN; ++j) {
847 for (
int i=0; i<patN; ++i) {
849 h_plate->Fill(seg->
X(),seg->
Y());
851 for (
int l=0; l<10; ++l) {
852 float factor=0.15-(float)l*0.01;
853 if (seg->
Chi2()<seg->
W()*factor-1.0) BTDensity[l]->
Fill(seg->
X(),seg->
Y());
857 for (
int ki=1; ki<h_plate->GetNbinsX(); ki++ ) {
858 for (
int kj=1; kj<h_plate->GetNbinsY(); kj++ ) {
859 for (
int l=0; l<10; ++l) {
860 BTpermm2=(Float_t)BTDensity[l]->GetBinContent(ki,kj);
861 if (BTpermm2==0)
continue;
862 BTDensityProfile[l]->Fill(j,BTpermm2,1);
863 if (l==3) h_BinCont[j]->Fill(BTpermm2);
867 for (
int l=0; l<10; ++l) {
868 BTDensity[l]->Reset();
874 printf(
"EdbEDAShowerTab::Draw Histos...\n");
877 h_plate->Draw(
"colz");
879 h_BinCont[0]->DrawNormalized();
880 h_BinCont[pvrNMiddle]->SetLineColor(2);
881 h_BinCont[pvrN-1]->SetLineColor(4);
882 h_BinCont[pvrNMiddle]->DrawNormalized(
"same");
883 h_BinCont[pvrN-1]->DrawNormalized(
"same");
884 TLegend*
leg=
new TLegend(0.77,0.6,0.98,0.8,
"",
"brNDC");
885 leg->AddEntry(h_BinCont[0],
"First plate",
"LP");
886 leg->AddEntry(h_BinCont[pvrNMiddle],
"Middle plate",
"LP");
887 leg->AddEntry(h_BinCont[pvrN-1],
"Last plate",
"LP");
888 leg->SetBorderSize(1);
891 BTDensityProfile[0]->Draw(
"profileZ");
893 BTDensityProfile[0]->GetXaxis()->SetRangeUser(0,xnpat);
894 BTDensityProfile[3]->Draw(
"profileZsame");
895 BTDensityProfile[9]->Draw(
"profileZsame");
896 BTDensityProfile[3]->SetLineColor(2);
897 BTDensityProfile[3]->SetLineWidth(2);
898 BTDensityProfile[9]->SetLineColor(6);
899 BTDensityProfile[0]->GetYaxis()->SetRangeUser(0.0,1.2* BTDensityProfile[0]->GetMaximum());
900 TLegend* leg2=
new TLegend(0.15,0.75,0.4,0.88,
"",
"brNDC");
901 leg2->AddEntry(BTDensityProfile[0],
"Chi2<W*0.15-1",
"LP");
902 leg2->AddEntry(BTDensityProfile[3],
"Chi2<W*0.12-1",
"LP");
903 leg2->AddEntry(BTDensityProfile[9],
"Chi2<W*0.06-1",
"LP");
904 leg2->SetBorderSize(1);
907 TLegend* leg3=
new TLegend(0.7,0.15,0.98,0.75,
"",
"brNDC");
908 leg3->AddEntry(BTDensityProfile[0],
"Chi2<W*0.15-1",
"LP");
909 leg3->AddEntry(BTDensityProfile[1],
"Chi2<W*0.14-1",
"LP");
910 leg3->AddEntry(BTDensityProfile[2],
"Chi2<W*0.13-1",
"LP");
911 leg3->AddEntry(BTDensityProfile[3],
"Chi2<W*0.12-1",
"LP");
912 leg3->AddEntry(BTDensityProfile[4],
"Chi2<W*0.11-1",
"LP");
913 leg3->AddEntry(BTDensityProfile[5],
"Chi2<W*0.10-1",
"LP");
914 leg3->AddEntry(BTDensityProfile[6],
"Chi2<W*0.09-1",
"LP");
915 leg3->AddEntry(BTDensityProfile[7],
"Chi2<W*0.08-1",
"LP");
916 leg3->AddEntry(BTDensityProfile[8],
"Chi2<W*0.07-1",
"LP");
917 leg3->AddEntry(BTDensityProfile[9],
"Chi2<W*0.06-1",
"LP");
918 leg3->SetBorderSize(1);
922 BTDensityProfile[0]->Draw(
"profileZ");
923 BTDensityProfile[0]->GetXaxis()->SetRangeUser(0,xnpat);
924 BTDensityProfile[0]->DrawCopy(
"profileZsame");
925 for (
int l=0; l<10; ++l) {
926 BTDensityProfile[l]->DrawCopy(
"profileZsame");
932 printf(
"EdbEDAShowerTab::Estimate Maximum by constant fit...\n");
934 Bool_t warning=kFALSE;
936 float factor=0.15-(float)last_l*0.01;
937 TString Chi2Cut=Form(
"s.eChi2<s.eW*%f-1.0",factor);
939 for (
int l=9; l>=0; --l) {
940 if (BTDensityProfile[l]->GetMaximum()<1)
continue;
941 BTDensityProfile[l]->Fit(
"pol0",
"Q0");
942 TF1 *myfunc = BTDensityProfile[l]->GetFunction(
"pol0");
943 if (myfunc->GetParameter(0)>20 && !warning) {
946 factor=0.15-(float)last_l*0.01;
947 Chi2Cut=Form(
"s.eChi2<s.eW*%f-1.0",factor);
948 cout <<
" WARNING BT DENSITY GREATER THAN 20 !! Appearing after maximum Chi2Cut of : " << Chi2Cut << endl;
951 factor=0.15-(float)last_l*0.01;
952 Chi2Cut=Form(
"s.eChi2<s.eW*%f-1.0",factor);
954 cout <<
"Maximum Chi2Cut = " << Chi2Cut << endl;
957 cout <<
"----- No high BT density observed. --------"<<endl;
TLegend * leg
Definition: Canv_SYSTEMATICS_ALLCOMBINED__RMSEnergy__vs__Energy__ELECTRON.C:122
TCanvas * CreateCanvas(char *plot_name)
Definition: EdbEDAShowerTab.h:164
EdbPVRec * pvrec_cleaned
Definition: EdbEDAShowerTab.h:26
TCanvas * c1
Definition: energy.C:13