drawtorroidmollers_rings.C

Go to the documentation of this file.
00001 
00002 
00003 using namespace std;
00004 
00005 void drawtorroidmollers_rings(TString infilename="0", TString outfilenamestem="0")
00006 {
00007   if (infilename=="0" || outfilenamestem=="0") {
00008     printf("Usage:\n\t.x drawtorroidmollers_rings_stamps.C(infilename, outfilename)\n\n");
00009     printf("Where infilename is a .root file \n");
00010     printf("  and outfilenamestem is the base name of an image file.\n");
00011     return;
00012   }  
00013 
00014   gROOT->Reset();
00015   char inifilename[200];//, outfilenamestem[200], parttype[100];
00016 
00017   Bool_t debug=0;
00018 
00019 //  Bool_t doproton=0;
00020 //  Bool_t dopostscript=0;
00021   Double_t deltaZwindowsize=20; //in mm
00022 
00023   sprintf(inifilename,"%s",infilename.Data());
00024 
00025   const Int_t totplots=6;
00026   Double_t distance[totplots]={6000,9000,14500,20000,24000,28250};
00027   TH2F* histos[totplots];
00028 
00029 //  const Int_t totplots=1;
00030 //  Double_t distance[totplots]={28479};
00031 
00032   char pstitle[200];
00033 
00034   printf("Using data file %s\n",inifilename);
00035   gROOT->SetStyle("Plain");
00036   gStyle->SetPalette(1);
00037   gStyle->SetOptStat(kFALSE);
00038   TFile *file0 = TFile::Open(inifilename);
00039   TCanvas *canvas = new TCanvas("canvas","Moller plots",800,800);
00040 
00041   char title[100];
00042   char weight[200];
00043   TGraph* scat[totplots];
00044   TLine line;
00045   TArc arc;
00046   arc.SetFillStyle(4000);
00047   arc.SetNoEdges(kFALSE);
00048   Double_t pi=3.14159265358979323846;
00049   Double_t length=600, openingangle=pi/14.;
00050   Double_t ymin, ymax, xmin, xmax;
00051   TTree *geant = (TTree*)file0->Get("geant");
00052   geant->SetMarkerStyle(20);
00053   geant->SetMarkerSize(0.15);
00054   for (int i=0; i<totplots; i++) {
00055     char drawstring[200];
00056     sprintf(drawstring,"y/1000:x/1000:1000*acos(pz2/sqrt(px2*px2+py2*py2+pz2*pz2))>>htemp%i",i);
00057     sprintf(weight,"(z>(%.0f)&&z<(%.0f)&&type==0)",distance[i]-deltaZwindowsize,distance[i]+deltaZwindowsize);
00058     if (debug) printf("%s\n%s\n",drawstring,weight);
00059     canvas->cd(i+1);
00060     Int_t num = geant->Draw(drawstring,weight,"colz");
00061     histos[i]=(TH2F*)gPad->GetPrimitive(Form("htemp%i",i));
00062     if (num<=0) {
00063       printf("\n%.0f doesn't seem to be a good choice!\n\n",distance[i]);
00064     } else {
00065       if (debug) printf("%i successful events\n",num);
00066       gPad->SetRightMargin(0.12);
00067       gPad->SetLeftMargin(0.12);
00068       gPad->SetTopMargin(0.12);
00069       gPad->SetBottomMargin(0.12);
00070       canvas->Update();
00071       ymin=gPad->GetUymin();
00072       ymax=gPad->GetUymax();
00073       xmin=gPad->GetUxmin();
00074       xmax=gPad->GetUxmax();
00075       printf("xmin %f, xmax %f, ymin %f, ymax %f, deltax %f, deltay %f\n",xmin,xmax,ymin,ymax,xmax-xmin,ymax-ymin);
00076     }
00077     sprintf(title,"z=%.2f m;x  (m);y   (m)", distance[i]/1000.);
00078     histos[i]->SetTitle(title);
00079     canvas->Update();
00080     canvas->Print(Form("%s_%.2fm.png",outfilenamestem.Data(),distance[i]/1000.));
00081   } 
00082 }
00083 
00084 /* emacs
00085  * Local Variables:
00086  * mode:C++
00087  * mode:font-lock
00088  * c-file-style: "stroustrup"
00089  * tab-width: 4
00090  * End:
00091  */

Generated on 16 Jun 2013 for mollersim by  doxygen 1.6.1