ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/dasu/UltraFastSim/generateData.cc
(Generate patch)

Comparing UserCode/dasu/UltraFastSim/generateData.cc (file contents):
Revision 1.1 by dasu, Wed Feb 9 05:39:29 2011 UTC vs.
Revision 1.8 by dasu, Wed Feb 16 01:46:58 2011 UTC

# Line 14 | Line 14 | using namespace std;
14   using namespace Pythia8;
15  
16   #include "UltraFastSim.h"
17 + #include "bbHAnalysis.h"
18  
19   int main(int argc, char **argv) {
20    // Generator. Process selection. LHC initialization. Histogram.
# Line 23 | Line 24 | int main(int argc, char **argv) {
24    int meanPileupEventCount = 0;
25    if(argc < 3 || argc > 5)
26      {
27 <      cerr << "Command syntax: " << argv[0] << " BBA[...]" << " <nEvents> [RandomSeed] [meanPileupEventCount]" << endl;
28 <      cerr << "or              " << argv[0] << " ZLL[...]" << " <nEvents> [RandomSeed] [meanPileupEventCount]" << endl;
29 <      cerr << "or              " << argv[0] << " TLN[...]" << " <nEvents> [RandomSeed] [meanPileupEventCount]" << endl;
30 <      cerr << "or              " << argv[0] << " WLN[...]" << " <nEvents> [RandomSeed] [meanPileupEventCount]" << endl;
27 >      cerr << "Command syntax: " << argv[0] << " ZHmmbb[...]" << " <nEvents> [RandomSeed] [meanPileupEventCount]" << endl;
28 >      cerr << "or              " << argv[0] << " ZHeebb[...]" << " <nEvents> [RandomSeed] [meanPileupEventCount]" << endl;
29 >      cerr << "or              " << argv[0] << " BBHmh[...] " << " <nEvents> [RandomSeed] [meanPileupEventCount]" << endl;
30 >      cerr << "or              " << argv[0] << " BBAmh[...] " << " <nEvents> [RandomSeed] [meanPileupEventCount]" << endl;
31 >      cerr << "or              " << argv[0] << " Zee[...]   " << " <nEvents> [RandomSeed] [meanPileupEventCount]" << endl;
32 >      cerr << "or              " << argv[0] << " Zmm[...]   " << " <nEvents> [RandomSeed] [meanPileupEventCount]" << endl;
33 >      cerr << "or              " << argv[0] << " Zeh[...]   " << " <nEvents> [RandomSeed] [meanPileupEventCount]" << endl;
34 >      cerr << "or              " << argv[0] << " Zmh[...]   " << " <nEvents> [RandomSeed] [meanPileupEventCount]" << endl;
35 >      cerr << "or              " << argv[0] << " Zhh[...]   " << " <nEvents> [RandomSeed] [meanPileupEventCount]" << endl;
36 >      cerr << "or              " << argv[0] << " Wen[...]   " << " <nEvents> [RandomSeed] [meanPileupEventCount]" << endl;
37 >      cerr << "or              " << argv[0] << " Wmn[...]   " << " <nEvents> [RandomSeed] [meanPileupEventCount]" << endl;
38 >      cerr << "or              " << argv[0] << " Ten[...]   " << " <nEvents> [RandomSeed] [meanPileupEventCount]" << endl;
39 >      cerr << "or              " << argv[0] << " Tmn[...]   " << " <nEvents> [RandomSeed] [meanPileupEventCount]" << endl;
40 >      cerr << "In above e-electron, m-muon, h-hadronic tau. n-neutrino" << endl;
41        exit(1);
42      }
43    else {
44      nEvents = atoi(argv[2]);
45      if(argc >= 4) runNumber = atoi(argv[3]);
46      if(argc >= 5) meanPileupEventCount = atoi(argv[4]);
47 <    if(strncmp(argv[1], "ZLL", 3) == 0)
47 >    if(strncmp(argv[1], "Zee", 3) == 0)
48        {
49          pythia.readString("WeakSingleBoson:ffbar2gmZ = on");
50          pythia.readString("PhaseSpace:mHatMin = 60.");    
51          pythia.readString("PhaseSpace:mHatMax = -1");    
52 <        pythia.readString("23:onMode = 0");       // Z decays to leptons only
53 <        pythia.readString("23:onIfAny = 11 13 15");
43 <        pythia.readString("15:onMode = 2");       // tau- decays to electrons and muons - second tau decays in all modes
44 <        pythia.readString("15:onIfAny = 11 13");
52 >        pythia.readString("23:onMode = 0");       // Z decays to electrons only
53 >        pythia.readString("23:onIfAny = 11");
54        }
55 <    else if(strncmp(argv[1], "WLN", 3) == 0)
55 >    else if(strncmp(argv[1], "Zmm", 3) == 0)
56 >      {
57 >        pythia.readString("WeakSingleBoson:ffbar2gmZ = on");
58 >        pythia.readString("PhaseSpace:mHatMin = 60.");    
59 >        pythia.readString("PhaseSpace:mHatMax = -1");    
60 >        pythia.readString("23:onMode = 0");       // Z decays to muons only
61 >        pythia.readString("23:onIfAny = 13");
62 >      }
63 >    else if(strncmp(argv[1], "Zeh", 3) == 0)
64 >      {
65 >        pythia.readString("WeakSingleBoson:ffbar2gmZ = on");
66 >        pythia.readString("PhaseSpace:mHatMin = 60.");    
67 >        pythia.readString("PhaseSpace:mHatMax = -1");    
68 >        pythia.readString("23:onMode = 0");       // Z decays to taus only
69 >        pythia.readString("23:onIfAny = 15");
70 >        pythia.readString("15:onMode = 2");       // tau- decays to electrons - second tau decays in all modes
71 >        pythia.readString("15:onIfAny = 11");
72 >      }
73 >    else if(strncmp(argv[1], "Zmh", 3) == 0)
74 >      {
75 >        pythia.readString("WeakSingleBoson:ffbar2gmZ = on");
76 >        pythia.readString("PhaseSpace:mHatMin = 60.");    
77 >        pythia.readString("PhaseSpace:mHatMax = -1");    
78 >        pythia.readString("23:onMode = 0");       // Z decays to taus only
79 >        pythia.readString("23:onIfAny = 15");
80 >        pythia.readString("15:onMode = 2");       // tau- decays to muons - second tau decays in all modes
81 >        pythia.readString("15:onIfAny = 13");
82 >      }
83 >    else if(strncmp(argv[1], "Zhh", 3) == 0)
84 >      {
85 >        pythia.readString("WeakSingleBoson:ffbar2gmZ = on");
86 >        pythia.readString("PhaseSpace:mHatMin = 60.");    
87 >        pythia.readString("PhaseSpace:mHatMax = -1");    
88 >        pythia.readString("23:onMode = 0");       // Z decays to taus only
89 >        pythia.readString("23:onIfAny = 15");
90 >      }
91 >    else if(strncmp(argv[1], "Wen", 3) == 0)
92 >      {
93 >        pythia.readString("WeakSingleBoson:ffbar2W = on");
94 >        pythia.readString("24:onMode = 0");       // W decays to electron
95 >        pythia.readString("24:onIfAny = 11");
96 >      }
97 >    else if(strncmp(argv[1], "Wmn", 3) == 0)
98        {
99          pythia.readString("WeakSingleBoson:ffbar2W = on");
100 <        pythia.readString("24:onMode = 0");       // W decays to light leptons only
101 <        pythia.readString("24:onIfAny = 11 13");
100 >        pythia.readString("24:onMode = 0");       // W decays to muon
101 >        pythia.readString("24:onIfAny = 13");
102        }
103 <    else if(strncmp(argv[1], "TLN", 3) == 0)
103 >    else if(strncmp(argv[1], "Ten", 3) == 0)
104        {
105          pythia.readString("Top:all = on");
106 <        pythia.readString("24:onMode = 2");       // W+ decays to light leptons only
107 <        pythia.readString("24:onIfAny = 11 13");
106 >        pythia.readString("24:onMode = 2");       // W+ decays to electron
107 >        pythia.readString("24:onIfAny = 11");
108 >      }
109 >    else if(strncmp(argv[1], "Tmn", 3) == 0)
110 >      {
111 >        pythia.readString("Top:all = on");
112 >        pythia.readString("24:onMode = 2");       // W+ decays to muon
113 >        pythia.readString("24:onIfAny = 13");
114 >      }
115 >    else if(strncmp(argv[1], "ZHmmbb", 6) == 0)
116 >      {
117 >        pythia.readString("HiggsSM:ffbar2HZ = on");
118 >        pythia.readString("25:m0 = 120");
119 >        pythia.readString("25:onMode = 0");      // Higgs decays to bbBar only
120 >        pythia.readString("25:onIfAny = 5");
121 >        pythia.readString("23:onMode = 0");      // Z decays to mu+,mu- only (for trigger)
122 >        pythia.readString("23:onIfAny = 13");
123 >      }
124 >    else if(strncmp(argv[1], "ZHeebb", 6) == 0)
125 >      {
126 >        pythia.readString("HiggsSM:ffbar2HZ = on");
127 >        pythia.readString("25:m0 = 120");
128 >        pythia.readString("25:onMode = 0");      // Higgs decays to bbBar only
129 >        pythia.readString("25:onIfAny = 5");
130 >        pythia.readString("23:onMode = 0");      // Z decays to e+,e- only (for trigger)
131 >        pythia.readString("23:onIfAny = 11");
132        }
133 <    else if(strncmp(argv[1], "BBA", 3) == 0)
133 >    else if(strncmp(argv[1], "BB", 2) == 0)
134        {
135          pythia.readString("Higgs:useBSM = on");
136 <        pythia.readString("HiggsBSM:gg2A3bbbar = on");
137 <        pythia.readString("36:onMode = 0");      // A0(H_3) decays only to tau-pairs
138 <        pythia.readString("36:onIfAny = 15");
136 >        pythia.readString("25:m0 = 129");
137 >        pythia.readString("35:m0 = 499.7");
138 >        pythia.readString("36:m0 = 500");
139 >        pythia.readString("37:m0 = 506");
140 >        pythia.readString("HiggsHchg:tanBeta = 30");
141 >        if(strncmp(argv[1], "BBH", 3) == 0) {
142 >          pythia.readString("HiggsBSM:gg2H2bbbar = on");
143 >          pythia.readString("35:onMode = 0");      // H2(H_2) decays only to tau-pairs
144 >          pythia.readString("35:onIfAny = 15");
145 >        }
146 >        else {
147 >          pythia.readString("HiggsBSM:gg2A3bbbar = on");
148 >          pythia.readString("36:onMode = 0");      // A0(H_3) decays only to tau-pairs
149 >          pythia.readString("36:onIfAny = 15");
150 >        }
151 >        if(strncmp(argv[1], "BBHmh", 5) == 0 ||
152 >           strncmp(argv[1], "BBAmh", 5) == 0) {
153 >          pythia.readString("15:onMode = 2");       // tau- decays to muons - second tau decays in all modes
154 >          pythia.readString("15:onIfAny = 13");
155 >        }
156        }
157      else
158        {
# Line 86 | Line 178 | int main(int argc, char **argv) {
178    // Ultra Fast Simulator
179  
180    UltraFastSim ufs(rndmPtr);
181 +  bbHAnalysis analysis(argv[1], &pythia, &ufs, true);
182  
183    // Begin event loop
184    for (int iEvent = 0; iEvent < nEvents; ) {
# Line 93 | Line 186 | int main(int argc, char **argv) {
186      // Generate event. Skip if error. List first one.
187      if (!pythia.next()) continue;
188  
189 +    if(iEvent < 10) pythia.event.list();
190 +
191      // Add pileup
192  
193      int pileupEventCount = 0;
# Line 120 | Line 215 | int main(int argc, char **argv) {
215          exit(1);
216        }
217  
218 +    // Run analysis
219 +
220 +    if(!analysis.run())
221 +      {
222 +        cerr << "Analysis failed - aborting" << endl;
223 +        exit(2);
224 +      }
225 +
226      // End of event loop. Statistics. Histogram. Done.
227  
228      if(!(iEvent % 100)) cout << "Processed event " << iEvent << endl;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines