File indexing completed on 2024-04-06 11:56:42
0001
0002
0003
0004
0005 int plotDets( )
0006 {
0007
0008 TString cut("");
0009 return plotDets( cut );
0010
0011 }
0012
0013 int plotDets( TString cut )
0014 {
0015
0016 int showFlag = 3;
0017 float xmin = 0;
0018 float xmax = 0;
0019
0020 return plotDets( cut, showFlag, xmin, xmax );
0021 }
0022
0023
0024 int plotDets( TString cut, int showFlag, float xmin, float xmax )
0025 {
0026
0027 TCanvas* c1 = new TCanvas("c1","Misalignment validation",10,10,800,420);
0028 c1->Divide(2,1);
0029
0030 int resolution = 1;
0031
0032 TFile* alignedFile = new TFile("aligned.root");
0033 TTree* tmpTree = (TTree*)alignedFile->Get("theTree");
0034 TTree* alignedTree = (TTree*)tmpTree->CopyTree(cut);
0035
0036 TFile* misalignedFile = new TFile("misaligned.root");
0037 tmpTree = (TTree*)misalignedFile->Get("theTree");
0038 TTree* misalignedTree = (TTree*)tmpTree->CopyTree(cut);
0039
0040
0041 if ( fabs(xmax)<1e-12 ) xmax = TMath::Nint(alignedTree->GetMaximum("x")+1);
0042 if ( fabs(xmin)<1e-12 ) xmin = TMath::Nint(alignedTree->GetMinimum("x")-1);
0043 int nx = TMath::Nint(xmax-xmin)*resolution;
0044 TH2F* hRange1 = new TH2F("hRange1","X-Y Projection",nx,xmin,xmax,nx,xmin,xmax);
0045 TH2F* hAlignedXY = new TH2F("hAlignedXY","X-Y Projection - Aligned",nx,xmin,xmax,nx,xmin,xmax);
0046 TH2F* hMisalignedXY = new TH2F("hMisalignedXY","X-Y Projection - Misaligned",
0047 nx,xmin,xmax,nx,xmin,xmax);
0048 hAlignedXY->SetMarkerColor(4);
0049 hAlignedXY->SetMarkerStyle(5);
0050 hMisalignedXY->SetMarkerColor(2);
0051 hMisalignedXY->SetMarkerStyle(5);
0052
0053 alignedTree->Project("hAlignedXY","y:x");
0054 misalignedTree->Project("hMisalignedXY","y:x");
0055
0056 c1->cd(1);
0057 hRange1->Draw();
0058 hRange1->SetXTitle("X");
0059 hRange1->SetYTitle("Y");
0060 if ( showFlag&1 ) hAlignedXY->Draw("same");
0061 if ( showFlag&(1<<1) ) hMisalignedXY->Draw("same");
0062
0063
0064 xmin = 0;
0065 float zmax = TMath::Nint(alignedTree->GetMaximum("z")+1);
0066 float zmin = TMath::Nint(alignedTree->GetMinimum("z")-1);
0067 int nx = TMath::Nint(xmax-xmin)*resolution;
0068 int nz = TMath::Nint(zmax-zmin)*resolution;
0069 TH2F* hRange2 = new TH2F("hRange2","R-Z Projection",nz,zmin,zmax,nx,xmin,xmax);
0070 TH2F* hAlignedRZ = new TH2F("hAlignedRZ","X-Y Projection - Aligned",nz,zmin,zmax,nx,xmin,xmax);
0071 TH2F* hMisalignedRZ = new TH2F("hMisalignedRZ","X-Y Projection - Misaligned",
0072 nz,zmin,zmax,nx,xmin,xmax);
0073
0074 hAlignedRZ->SetMarkerColor(4);
0075 hMisalignedRZ->SetMarkerColor(2);
0076
0077 alignedTree->Project("hAlignedRZ","sqrt(x^2+y^2):z");
0078 misalignedTree->Project("hMisalignedRZ","sqrt(x^2+y^2):z");
0079 std::cout << hAlignedRZ->GetEntries() << " aligned detectors selected" << std::endl;
0080 std::cout << hMisalignedRZ->GetEntries() << " misaligned detectors selected" << std::endl;
0081
0082 c1->cd(2);
0083 hRange2->Draw();
0084 hRange2->SetYTitle("R");
0085 hRange2->SetXTitle("Z");
0086 if ( showFlag&1 ) hAlignedRZ->Draw("same");
0087 if ( showFlag&(1<<1) ) hMisalignedRZ->Draw("same");
0088
0089 return 0;
0090
0091 }