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.18 by dasu, Wed Nov 2 21:18:08 2011 UTC vs.
Revision 1.19 by dasu, Mon Apr 9 03:36:35 2012 UTC

# Line 44 | Line 44 | int main(int argc, char **argv) {
44    int runNumber = 0;
45    int meanPileupEventCount = 0;
46    float cmEnergy = 14000.;
47 +  bool cutOnMET = false;
48    if(argc < 3 || argc > 6)
49      {
50        cerr << "Command syntax: " << argv[0] << " ZHmmbb[...]" << " <nEvents> [RandomSeed] [meanPileupEventcount] [cmEnergy]" << endl;
# Line 56 | Line 57 | int main(int argc, char **argv) {
57        cerr << "or              " << argv[0] << " ZZeenn[...]" << " <nEvents> [RandomSeed] [meanPileupEventcount] [cmEnergy]" << endl;
58        cerr << "or              " << argv[0] << " BBHmh[...] " << " <nEvents> [RandomSeed] [meanPileupEventcount] [cmEnergy]" << endl;
59        cerr << "or              " << argv[0] << " BBAmh[...] " << " <nEvents> [RandomSeed] [meanPileupEventcount] [cmEnergy]" << endl;
60 +      cerr << "or              " << argv[0] << " VBFHXX[..] " << " <nEvents> [RandomSeed] [meanPileupEventcount] [cmEnergy]" << endl;
61        cerr << "or              " << argv[0] << " Zee[...]   " << " <nEvents> [RandomSeed] [meanPileupEventcount] [cmEnergy]" << endl;
62        cerr << "or              " << argv[0] << " Zmm[...]   " << " <nEvents> [RandomSeed] [meanPileupEventcount] [cmEnergy]" << endl;
63        cerr << "or              " << argv[0] << " Zeh[...]   " << " <nEvents> [RandomSeed] [meanPileupEventcount] [cmEnergy]" << endl;
64        cerr << "or              " << argv[0] << " Zmh[...]   " << " <nEvents> [RandomSeed] [meanPileupEventcount] [cmEnergy]" << endl;
65        cerr << "or              " << argv[0] << " Zhh[...]   " << " <nEvents> [RandomSeed] [meanPileupEventcount] [cmEnergy]" << endl;
66 +      cerr << "or              " << argv[0] << " Znn[...]   " << " <nEvents> [RandomSeed] [meanPileupEventcount] [cmEnergy]" << endl;
67        cerr << "or              " << argv[0] << " Wen[...]   " << " <nEvents> [RandomSeed] [meanPileupEventcount] [cmEnergy]" << endl;
68        cerr << "or              " << argv[0] << " Wmn[...]   " << " <nEvents> [RandomSeed] [meanPileupEventcount] [cmEnergy]" << endl;
69        cerr << "or              " << argv[0] << " Ten[...]   " << " <nEvents> [RandomSeed] [meanPileupEventcount] [cmEnergy]" << endl;
# Line 69 | Line 72 | int main(int argc, char **argv) {
72        cerr << "or              " << argv[0] << " QED[...]   " << " <nEvents> [RandomSeed] [meanPileupEventcount] [cmEnergy]" << endl;
73        cerr << "or              " << argv[0] << " EWK[...]   " << " <nEvents> [RandomSeed] [meanPileupEventcount] [cmEnergy]" << endl;
74        cerr << "or              " << argv[0] << " Top[...]   " << " <nEvents> [RandomSeed] [meanPileupEventcount] [cmEnergy]" << endl;
75 +      cerr << "or              " << argv[0] << " QCDMET[...]" << " <nEvents> [RandomSeed] [meanPileupEventcount] [cmEnergy]" << endl;
76 +      cerr << "or              " << argv[0] << " ZnnMET[...]" << " <nEvents> [RandomSeed] [meanPileupEventcount] [cmEnergy]" << endl;
77        cerr << "In above e-electron, m-muon, h-hadronic tau. n-neutrino" << endl;
78        cerr << "QCD, QED, EWK and Top do not specify the decays -- they are useful for generic BG production" << endl;
79 +      cerr << "QCDMET has MET > 50 GeV to make efficient to study QCD MET BG" << endl;
80 +      cerr << "ZnnMET has MET > 50 GeV to make efficient to study Znn MET BG" << endl;
81        exit(1);
82      }
83    else {
# Line 94 | Line 101 | int main(int argc, char **argv) {
101          pythia.readString("23:onMode = 0");       // Z decays to muons only
102          pythia.readString("23:onIfAny = 13");
103        }
104 +    else if(strncmp(argv[1], "Znn", 3) == 0)
105 +      {
106 +        pythia.readString("WeakSingleBoson:ffbar2gmZ = on");
107 +        pythia.readString("PhaseSpace:mHatMin = 60.");    
108 +        pythia.readString("PhaseSpace:mHatMax = -1");    
109 +        pythia.readString("23:onMode = 0");       // Z decays to neutrinos only
110 +        pythia.readString("23:onIfAny = 12, 14, 16");
111 +        if(strncmp(argv[1], "ZnnMET", 6) == 0) {
112 +          cutOnMET = true;
113 +        }
114 +      }
115      else if(strncmp(argv[1], "Zeh", 3) == 0)
116        {
117          pythia.readString("WeakSingleBoson:ffbar2gmZ = on");
# Line 233 | Line 251 | int main(int argc, char **argv) {
251       else if(strncmp(argv[1], "QCD", 3) == 0)
252         {
253           pythia.readString("HardQCD:all = on");    
254 <         pythia.readString("PhaseSpace:pTHatMin = 50.");  
254 >         pythia.readString("PhaseSpace:pTHatMin = 50.");
255 >         if(strncmp(argv[1], "QCDMET", 6) == 0) {
256 >           cutOnMET = true;
257 >         }
258         }
259       else if(strcmp(argv[1], "QED") == 0)
260         {
# Line 252 | Line 273 | int main(int argc, char **argv) {
273         {
274           pythia.readString("Top:all = on");
275         }
276 +     else if(strncmp(argv[1], "VBFHXX", 6) == 0)
277 +       {
278 +         pythia.readString("HiggsSM:ff2Hff(t:ZZ) = on");
279 +         pythia.readString("HiggsSM:ff2Hff(t:WW) = on");
280 +         pythia.readString("25:m0 = 120");
281 +         pythia.readString("25:mayDecay = false");      // Higgs does not decay -- becomes invisible
282 +         pythia.readString("25:isVisible = false");
283 +       }
284       else
285         {
286           cerr << "Unknown process type " << argv[1] << " - aborting" << endl;
# Line 321 | Line 350 | int main(int argc, char **argv) {
350          exit(1);
351        }
352  
353 +    // If necessary, check MET and decide to store or not
354 +
355 +    bool doStore = true;
356 +    if(cutOnMET) {
357 +      double MET = ufs.getMET().Pt();
358 +      if(MET < 50.) {
359 +        doStore = false;
360 +      }
361 +    }
362      // Store data
363  
364 <    if(!dataStore.run())
364 >    if(doStore && !dataStore.run())
365        {
366          cerr << "Failed to store data" << endl;
367          exit(3);

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines