Warning, /GeneratorInterface/CosmicMuonGenerator/test/cos_sf is written in an unsupported language. File is not indexed.
0001 {
0002 cout << "macro cos_sf: generate cosmic muons at surface" << endl;
0003 gROOT->Reset();
0004 gROOT->LoadMacro("GeneratorInterface/CosmicMuonGenerator/src/CosmicMuonGenerator.cc");
0005 gROOT->LoadMacro("GeneratorInterface/CosmicMuonGenerator/src/CMSCGEN.cc");
0006 gROOT->LoadMacro("GeneratorInterface/CosmicMuonGenerator/src/CMSCGENnorm.cc");
0007 gROOT->LoadMacro("GeneratorInterface/CosmicMuonGenerator/src/SingleParticleEvent.cc");
0008
0009 #define ROOT_INTERACTIVE true
0010
0011 //*******************************
0012 //*******************************
0013 // define the generator
0014 CosmicMuonGenerator CosSfGen;
0015 // set up generator
0016 CosSfGen.setNumberOfEvents(100);
0017 CosSfGen.setRanSeed(135799468);
0018 CosSfGen.setMinP(3.); // could be set higher for more muons to cross CMS
0019 CosSfGen.setMaxP(3000.);
0020 CosSfGen.setMaxTheta(84.); // "default" value for surface
0021 CosSfGen.setElossScaleFactor(0.0); // "default" value for surface
0022 // run the generator (in this order)
0023 CosSfGen.runCMG();
0024 // rate (cosmic muons per second)
0025 double Rate = CosSfGen.getRate();
0026 //*******************************
0027 //*******************************
0028
0029 #if ROOT_INTERACTIVE
0030 double Weight = Rate/phi->GetEntries();
0031 ene->Scale(Weight);
0032 the->Scale(Weight);
0033 phi->Scale(Weight);
0034 // plot results
0035 TCanvas *C1 = new TCanvas("cosgen","generated cosmic muons",50,50,1000,400);
0036 C1->SetBottomMargin(0.15);
0037 C1->Divide(3,1);
0038 C1->cd(1); gPad->SetLogy(1);
0039 ene->SetFillStyle(1001);
0040 ene->SetFillColor(1111);
0041 ene->SetLineWidth(1.1);
0042 ene->SetLineColor(8888);
0043 ene->Draw();
0044 ene->GetXaxis()->SetLabelSize(0.04);
0045 ene->GetXaxis()->SetTitleSize(0.044);
0046 ene->GetXaxis()->SetTitleOffset(0.8);
0047 ene->GetXaxis()->SetTitle("E [GeV]");
0048 ene->GetYaxis()->SetLabelSize(0.04);
0049 ene->GetYaxis()->SetLabelOffset(0.004);
0050 ene->GetYaxis()->SetTitleSize(0.044);
0051 ene->GetYaxis()->SetTitleOffset(1.2);
0052 ene->GetYaxis()->SetTitle("rate per 5 GeV [Hz]");
0053 C1->cd(2);
0054 the->SetMinimum(0.);
0055 the->SetFillStyle(1001);
0056 the->SetFillColor(1111);
0057 the->SetLineWidth(1.1);
0058 the->SetLineColor(8888);
0059 the->Draw();
0060 the->GetXaxis()->SetLabelSize(0.04);
0061 the->GetXaxis()->SetTitleSize(0.044);
0062 the->GetXaxis()->SetTitleOffset(0.8);
0063 the->GetXaxis()->SetTitle("#vartheta [#circ]");
0064 the->GetYaxis()->SetLabelSize(0.04);
0065 the->GetYaxis()->SetLabelOffset(0.004);
0066 the->GetYaxis()->SetTitleSize(0.044);
0067 the->GetYaxis()->SetTitleOffset(1.8);
0068 the->GetYaxis()->SetTitle("rate per 1 #circ [Hz]");
0069 C1->cd(3);
0070 phi->SetMinimum(0.);
0071 phi->SetFillStyle(1001);
0072 phi->SetFillColor(1111);
0073 phi->SetLineWidth(1.1);
0074 phi->SetLineColor(8888);
0075 phi->Draw();
0076 phi->GetXaxis()->SetLabelSize(0.04);
0077 phi->GetXaxis()->SetTitleSize(0.044);
0078 phi->GetXaxis()->SetTitleOffset(0.8);
0079 phi->GetXaxis()->SetTitle("#varphi [#circ]");
0080 phi->GetYaxis()->SetLabelSize(0.04);
0081 phi->GetYaxis()->SetLabelOffset(0.004);
0082 phi->GetYaxis()->SetTitleSize(0.044);
0083 phi->GetYaxis()->SetTitleOffset(1.8);
0084 phi->GetYaxis()->SetTitle("rate per 3 #circ [Hz]");
0085
0086 TCanvas *C2 = new TCanvas("vertex","position of generated vertex",100,200,900,450);
0087 C2->SetBottomMargin(0.15);
0088 C2->Divide(1,1);
0089 C2->cd(1);
0090 ver->SetMarkerColor(3333);
0091 ver->Draw();
0092 ver->GetXaxis()->SetLabelSize(0.05);
0093 ver->GetXaxis()->SetTitleSize(0.06);
0094 ver->GetXaxis()->SetTitle("gen. Z [m]");
0095 ver->GetYaxis()->SetLabelSize(0.04);
0096 ver->GetYaxis()->SetTitleSize(0.05);
0097 ver->GetYaxis()->SetTitleOffset(1.0);
0098 ver->GetYaxis()->SetTitle("gen. X [m]");
0099 ver->GetZaxis()->SetLabelSize(0.05);
0100 ver->GetZaxis()->SetTitleSize(0.06);
0101 ver->GetZaxis()->SetTitleOffset(0.6);
0102 ver->GetZaxis()->SetTitle("gen. Y [m]");
0103 #endif
0104 }