File indexing completed on 2024-04-06 12:29:58
0001
0002 int plot( TString fileName = "px-00.txt", bool redraw = true )
0003 {
0004 if ( redraw ) {
0005 TCanvas* myCanvas = new TCanvas("myCanvas","Canvas",10,10,800,600);
0006 myCanvas->cd(1);
0007 }
0008
0009 TTree* tree = new TTree("tree","Cherenkov photons");
0010 std::cout << tree->ReadFile(fileName,"px/D:py:pz:x:y:z")
0011 << " lines read from " << fileName << std::endl;
0012 tree->Draw("x");
0013
0014 return 0;
0015 }
0016
0017
0018
0019 int trackAngle( TString fileName = "simevent.root" )
0020 {
0021
0022 TFile* f = new TFile(fileName);
0023 TTree* events = f->Get("Events");
0024
0025 events->SetAlias("position","SimTracks_g4SimHits__CaloTest.obj.tkposition.fCoordinates");
0026 events->SetAlias("momentum","SimTracks_g4SimHits__CaloTest.obj.theMomentum.fCoordinates");
0027
0028 TCanvas* myCanvas = new TCanvas("myCanvas","Canvas",10,10,600,900);
0029 myCanvas->Divide(1,2);
0030
0031 myCanvas->cd(1);
0032 events->Draw("position.fY");
0033 myCanvas->cd(2);
0034 events->Draw("TMath::ATan(momentum.fX/momentum.fY)*180/TMath::Pi()");
0035
0036 return 0;
0037 }
0038
0039
0040
0041 int getAngleParams( double angle )
0042 {
0043
0044 double meanY = 0.9;
0045
0046 double radAngle = angle*TMath::Pi()/180.;
0047
0048 double meanX = -meanY*TMath::Tan( radAngle );
0049
0050 double phi = TMath::PiOver2()-radAngle;
0051
0052 std::cout << " replace VtxSmeared.MeanX = " << meanX << std::endl;
0053 cout.precision(16);
0054 std::cout << " replace FlatRandomEGunProducer.PGunParameters.MinPhi = " << phi << std::endl;
0055 std::cout << " replace FlatRandomEGunProducer.PGunParameters.MaxPhi = " << phi << std::endl;
0056
0057 return 0;
0058
0059 }
0060
0061
0062 int plotAll() {
0063
0064 gStyle->SetOptStat(0);
0065 gStyle->SetOptDate(0);
0066 gStyle->SetOptTitle(0);
0067 TCanvas* myCanvas = new TCanvas("myCanvas","Canvas",10,10,800,800);
0068 myCanvas->Divide(2,5);
0069 TH2F* range = new TH2F("range","Cherenkov photons ; x [mm]; y [mm]",2,-50,50,2,-12,12);
0070
0071 range->GetXaxis()->SetTitleSize(0.09);
0072 range->GetXaxis()->SetTitleOffset(-0.5);
0073 range->GetYaxis()->SetTitleSize(0.09);
0074 range->GetYaxis()->SetTitleOffset(0.5);
0075
0076 const int nfiles = 9;
0077 TString fileRoot("output");
0078 char fileName[50];
0079
0080
0081 TLatex* t = new TLatex();
0082 char angle[20];
0083 TFile* file = new TFile("output-1.root");
0084 TTree* tree0 = file->Get("g4SimHits/tree");
0085 for ( int i=1; i<=2; ++i ) {
0086 myCanvas->cd(i);
0087 range->Draw();
0088 tree0->Draw("y:x","","same");
0089
0090 t->DrawLatex(-40,-10,"angle = 0");
0091 }
0092
0093
0094 for ( int ifile = 1; ifile<nfiles; ++ifile ) {
0095
0096 int ican = 2*ifile+1-(ifile/5)*7;
0097 std::cout << ican << std::endl;
0098 myCanvas->cd( ican );
0099 sprintf(fileName,"%s-%1d.root",fileRoot.Data(),ifile+1);
0100 TFile* file = new TFile(fileName);
0101 TTree* tree = file->Get("g4SimHits/tree");
0102 range->Draw();
0103 tree->Draw("y:x","","same");
0104
0105 if ( ifile<5) sprintf(angle,"angle = %02d",(ifile*10));
0106 else sprintf(angle,"angle = %02d",-((ifile-4)*10));
0107 t->DrawLatex(-40,-10,angle);
0108 }
0109
0110
0111 return 0;
0112
0113 }