Back to home page

Project CMSSW displayed by LXR

 
 

    


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 }