Fork me on GitHub

Changeset 310 in svn for trunk/src


Ignore:
Timestamp:
Mar 10, 2009, 11:52:16 AM (16 years ago)
Author:
severine ovyn
Message:

add Ehad/Eem

Location:
trunk/src
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/JetsUtil.cc

    r307 r310  
    120120}
    121121
    122 vector<fastjet::PseudoJet> JetsUtil::RunJets(const vector<fastjet::PseudoJet>&  input_particles,  const vector<TRootTracks> & TrackCentral,  vector<int> &NTrackJet)
     122vector<fastjet::PseudoJet> JetsUtil::RunJets(const vector<fastjet::PseudoJet>&  input_particles,  const vector<TRootTracks> & TrackCentral,  vector<int> &NTrackJet, vector<float> &EHADEEM,D_CaloTowerList list_of_active_towers)
    123123{
    124124  inclusive_jets.clear();
     
    135135      sorted_jets = sorted_by_pt(inclusive_jets);
    136136
    137       //check number of tracks in jets
     137      //Bin tracks to make the link
    138138      float  iEtaTrack[TrackCentral.size()];
    139139      float  iPhiTrack[TrackCentral.size()];
     
    145145      for (unsigned int i = 0; i < sorted_jets.size(); i++)
    146146          {
     147            //check number of tracks in jets
    147148            numTrackJet=0;
    148149            vector<fastjet::PseudoJet> constituents = clust_seq.constituents(sorted_jets[i]);
     
    155156               }
    156157            NTrackJet.push_back(numTrackJet);
     158            //now, get EHad over EEm
     159            float EmVal=0,HadVal=0;
     160            for (unsigned int j = 0; j < constituents.size(); j++)
     161                {
     162                  D_CaloTower calConsti(list_of_active_towers.getElement(constituents[j].eta(),constituents[j].phi()));
     163                  EmVal  += calConsti.getEem();
     164                  HadVal += calConsti.getEhad();
     165                }
     166            EHADEEM.push_back(HadVal/EmVal);
    157167       }
    158168    }
     
    161171}
    162172
    163 
    164 
    165 void JetsUtil::RunJetBtagging(ExRootTreeWriter *treeWriter, ExRootTreeBranch *branchJet,const vector<fastjet::PseudoJet> & sorted_jets,const TSimpleArray<TRootGenParticle>& NFCentralQ, const vector<int> &NTrackJet)
     173vector<fastjet::PseudoJet> JetsUtil::RunJetsResol(const vector<fastjet::PseudoJet>&  input_particles)
     174{
     175  inclusive_jets.clear();
     176  sorted_jets.clear();
     177  // run the jet clustering with the above jet definition
     178  if(input_particles.size()!=0)
     179    {
     180      fastjet::ClusterSequence clust_seq(input_particles, jet_def);
     181      // extract the inclusive jets with pt > 5 GeV
     182      double ptmin = 5.0;
     183      inclusive_jets = clust_seq.inclusive_jets(ptmin);
     184
     185      // sort jets into increasing pt
     186      sorted_jets = sorted_by_pt(inclusive_jets);
     187    }
     188  return sorted_jets;
     189}
     190
     191
     192void JetsUtil::RunJetBtagging(ExRootTreeWriter *treeWriter, ExRootTreeBranch *branchJet,const vector<fastjet::PseudoJet> & sorted_jets,const TSimpleArray<TRootGenParticle>& NFCentralQ, const vector<int> &NTrackJet, const vector<float> &EHADEEM)
    166193{
    167194  TRootJet *elementJet;
     
    175202        elementJet->Set(JET);
    176203        elementJet->NTracks = NTrackJet[i];
     204        elementJet->EHoverEE = EHADEEM[i];
    177205
    178206        // b-jets
     
    185213}
    186214
    187 void JetsUtil::RunTauJets(ExRootTreeWriter *treeWriter, ExRootTreeBranch *branchTauJet,const vector<fastjet::PseudoJet> & sorted_jets,const vector<PhysicsTower> & towers, const vector<TRootTracks> & TrackCentral, const vector<int> &NTrackJet)
     215void JetsUtil::RunTauJets(ExRootTreeWriter *treeWriter, ExRootTreeBranch *branchTauJet,const vector<fastjet::PseudoJet> & sorted_jets,const vector<PhysicsTower> & towers, const vector<TRootTracks> & TrackCentral, const vector<int> &NTrackJet, const vector<float> &EHADEEM)
    188216{
    189217  TRootTauJet *elementTauJet;
     
    205233        elementTauJet->NTracks=NTrackJet[i];
    206234        elementTauJet->Charge = charge;
     235        elementTauJet->EHoverEE = EHADEEM[i];
    207236      } // if tau jet
    208237    } // if JET.eta < tracker - tau_cone : Tau jet identification
  • trunk/src/LHCOConverter.cc

    r307 r310  
    174174        particle = (TRootParticle*) branch->At(i);
    175175        double temp =  sqrt(particle->PT*particle->PT + particle->Pz * particle->Pz);
    176         double jmass = (particle->E - temp) * (particle->E + temp); // prevents some numerical sensitivity
    177176        TLorentzVector pmu;
    178177        pmu.SetPtEtaPhiE(particle->PT, particle->Eta, particle->Phi, particle->E);
    179         jmass = pmu.M();
     178        float jmass = pmu.M();
    180179        float ntrk = 0.0;
    181180        float btag =0;
    182181        double ratioE = 0;
    183182
    184         if(lhcoID == lhcoElectronID) { TRootElectron elec(*((TRootElectron*) branch->At(i))); ntrk = elec.Charge; }
    185         else if (lhcoID == lhcoMuonID) { TRootMuon muon(*((TRootMuon*) branch->At(i))); ntrk = muon.Charge; }
     183        if(lhcoID == lhcoPhotonID){TRootPhoton gam(*((TRootPhoton*) branch->At(i))); jmass=0; ratioE = gam.EHoverEE;}
     184        if(lhcoID == lhcoElectronID) { TRootElectron elec(*((TRootElectron*) branch->At(i))); ntrk = elec.Charge; ratioE = elec.EHoverEE;}
     185        else if (lhcoID == lhcoMuonID) { TRootMuon muon(*((TRootMuon*) branch->At(i))); ntrk = muon.Charge;  ratioE = muon.EHoverEE;}
    186186        else if (lhcoID == lhcoTauJetID) { TRootTauJet taujet(*((TRootTauJet*) branch->At(i))); ntrk = taujet.Charge; }
    187         else if (lhcoID == lhcoJetID) { TRootJet jet(*((TRootJet*) branch->At(i))); ntrk = jet.NTracks; btag = jet.Btag;}
     187        else if (lhcoID == lhcoJetID) { TRootJet jet(*((TRootJet*) branch->At(i))); ntrk = jet.NTracks; btag = jet.Btag; ratioE = jet.EHoverEE;}
    188188        if(lhcoID != lhcoETmisID) {
    189189        outfile << fixed << setprecision(3)
Note: See TracChangeset for help on using the changeset viewer.