|
[Rivet] question of using Rivet. final state radiation and different transverse momentum threshold in ZFinderYu-hsiang Chang 張祐祥 index0192 at yahoo.com.twThu May 21 14:07:43 BST 2015
Hi Deepak, Thanks for your reply and suggestion. It works that requires the event has leading muon pT>14 to make the 2 muons have different pT cuts (14 and 9 GeV). (the way [1]) But later I find another way to do it. I require the 2 muon constituents of Z/gamma to have pT>14 and >9 respectively. (the way[2] ) However, once I count the entries in my histogram, I find way [1] gives me 102 events,and way [2] gives me 111 events. And if I print (use "cout") the leading muon size(the # of leading muon) in way[2](from the more entries we know [2] is the loose requirement),sometime it shows it has "zero" leading muon but it still pass [2]. Like below---------------------------------------------------------------------------- Begin processing the 711th record. Run 1, Event 711, LumiSection 1 at 21-May-2015 12:12:24.093 CEST# of leading muon:0# of Z boson:1# of muon from Z:2i:0 i-th muon pT:14.1995i:1 i-th muon pT:12.1323---------------------------------------------------------------------------- Do you know what happens and why [1] and [2] give 2 numbers? The generator used here is Pythia6 and produce DY to MuMu event. The essential code of my Rivet plugin( [1] and [2] ) is shown in below. Thanks. Yu-hsiang [1] The first way: require the leading muon---------------------------------------------------------------------------- void init() { // Full final state const FinalState fs(-5.0, 5.0); addProjection(fs, "FS"); // Z finders for muons const ZFinder zfm(fs, -2.4, 2.4, 9*GeV, PID::MUON, 15*GeV, 1500*GeV); addProjection(zfm, "ZFM"); // leading muon LeadingParticlesFinalState muonfs(FinalState(-2.4, 2.4, 14.0*GeV)); muonfs.addParticleId(PID::MUON); addProjection(muonfs, "LeadingMuon"); // Histograms _hist1MZ_of_MuMu = bookHisto1D(2, 1, 3);// preFSR detector acc } void makeCut(const Event& event) { // Apply the Z finders and veto if no Z found const ZFinder& zfm = applyProjection<ZFinder>(event, "ZFM"); //leading muon const FinalState& muonfs = applyProjection<FinalState>(event, "LeadingMuon"); if (zfe.empty() ) vetoEvent; // di-muon if (!zfm.empty() && (muonfs.particles().size() >= 1) ){ const ParticleVector& z = zfm.bosons(); const ParticleVector& mu = zfm.constituents(); const Particle& leadingMu = muonfs.particles().front(); cout<< "# of leading muon:"<< muonfs.particles().size()<<endl;cout<< "leading muon pT:"<< leadingMu.pT()<<endl;cout<< "# of Z boson:" << z.size()<<endl; cout<< "# of muon from Z:" << mu.size()<<endl; for(unsigned int i=0;i<mu.size();i++) {cout<<"i:"<< i <<" i-th muon pT:"<<mu[i].pT()<<endl;} // Fill histos const double weight = event.weight(); const double mass_z = z[0].mass(); _hist1MZ_of_MuMu->fill(mass_z, weight); }//di-muon } void analyze(const Event& event) { makeCut(event); }---------------------------------------------------------------------------- [2] second way: require the constituents of Z boson.---------------------------------------------------------------------------- void init() { // Full final state const FinalState fs(-5.0, 5.0); addProjection(fs, "FS"); // Z finders for muons const ZFinder zfm(fs, -2.4, 2.4, 0*GeV, PID::MUON, 15*GeV, 1500*GeV); addProjection(zfm, "ZFM"); // leading muon LeadingParticlesFinalState muonfs(FinalState(-2.4, 2.4, 14.0*GeV)); muonfs.addParticleId(PID::MUON); addProjection(muonfs, "LeadingMuon"); // Histograms _hist1MZ_of_MuMu = bookHisto1D(2, 1, 3); } void makeCut(const Event& event) { // Apply the Z finders and veto if no Z found const ZFinder& zfm = applyProjection<ZFinder>(event, "ZFM"); //leading muon const FinalState& muonfs = applyProjection<FinalState>(event, "LeadingMuon"); if (zfe.empty() ) vetoEvent; // di-muon if (!zfm.empty() ){ const ParticleVector& z = zfm.bosons(); const ParticleVector& mu = zfm.constituents(); if( (mu[0].pT()>14 && mu[1].pT()>9) || (mu[1].pT()>14 && mu[0].pT()>9) ){ const Particle& leadingMu = muonfs.particles().front(); cout<< "# of leading muon:"<< muonfs.particles().size()<<endl; if (muonfs.particles().size()>0){ cout<< "leading muon pT:"<< leadingMu.pT()<<endl;} cout<< "# of Z boson:" << z.size()<<endl; cout<< "# of muon from Z:" << mu.size()<<endl; for(unsigned int i=0;i<mu.size();i++) {cout<<"i:"<< i <<" i-th muon pT:"<<mu[i].pT()<<endl;} // Fill histos const double weight = event.weight(); const double mass_z = z[0].mass(); _hist1MZ_of_MuMu->fill(mass_z, weight); } }// di-muon} void analyze(const Event& event) { makeCut(event); } ---------------------------------------------------------------------------- Deepak Kar <deepak.kar at cern.ch> 於 2015/5/20 (週三) 4:23 PM 寫道﹕ Hi Yu-hsiang, Please see inline. > (1) In my Rivet plugin, I use > > const FinalState fs(-5.0, 5.0); > > to define a final state, whose rapidity is within -5.0 to 5.0. > Has the fs undergone the final state radiation(FSR)? > Yes, they are final state stable particles after all radiation. > (2) In my Rivet plugin, I use > > const ZFinder zfm(fs, -2.4, 2.4, 9*GeV, PID::MUON, 15*GeV, 1500*GeV); > > to obtain the Z bosob or the virtual photon from 2 final states fs, > whose particle ID are Muon, > rapidities are in [-2.4,2.4], > transverse momentum(pT) are larger than 9 GeV, > invariant mass are in [15,1500] GeV. > > If I want to choose my Z boson from 2 muon, > but this time the 2 muons are required to different pT thresholds, > the first Muon is required to have pT> 14 GeV, > and the second Muon is required to have pT> 9 GeV, > then how can I achieve it? > > Or is there other way to do that instead of using ZFinder? I can think of a "dirty" way - select the Z with two muons having 9 GeV, then veto the event if the leading muon do not have 14 GeV subsequently. Best, Deepak > > Thanks. > > Yu-hsiang > > _______________________________________________ > Rivet mailing list > Rivet at projects.hepforge.org > https://www.hepforge.org/lists/listinfo/rivet -- Deepak Kar University of Witwatersrand Room PM15, School of Physics (0027) 011-7176958 (office) (0027) 079-8401087 (mobile) While at CERN: Building 1, R-016 (0041) 0767321349 (mobile) While at USA: (001) 330-998-1500 (mobile) -------------- next part -------------- An HTML attachment was scrubbed... URL: <https://www.hepforge.org/lists-archive/rivet/attachments/20150521/7feec255/attachment.html>
More information about the Rivet mailing list |