CMS 3D CMS Logo

L2TauAnalyzer Class Reference

#include <HLTriggerOffline/Tau/interface/L2TauAnalyzer.h>

Inheritance diagram for L2TauAnalyzer:

edm::EDAnalyzer

List of all members.

Public Member Functions

 L2TauAnalyzer (const edm::ParameterSet &)
 ~L2TauAnalyzer ()

Private Member Functions

virtual void analyze (const edm::Event &, const edm::EventSetup &)
virtual void beginJob (const edm::EventSetup &)
virtual void endJob ()
MatchElementL2 match (const reco::Jet &, const l1extra::L1JetParticleCollection &)
MatchElementL2 match (const reco::Jet &, const LVColl &)

Private Attributes

float cl_drRMS
float cl_etaRMS
int cl_Nclusters
float cl_phiRMS
float ecalIsol_Et
bool IsSignal_
float JetEt
float JetEta
float L1et
float L1eta
edm::InputTag l1Jets_
edm::InputTag l1Taus_
TFile * l2file
edm::InputTag l2TauInfoAssoc_
TTree * l2tree
double matchDR_
edm::InputTag mcColl_
float MCet
float MCeta
std::string rootFile_
float seedTowerEt
float towerIsol_Et


Detailed Description

Definition at line 39 of file L2TauAnalyzer.h.


Constructor & Destructor Documentation

L2TauAnalyzer::L2TauAnalyzer ( const edm::ParameterSet iConfig  )  [explicit]

Definition at line 7 of file L2TauAnalyzer.cc.

References cl_drRMS, cl_etaRMS, cl_Nclusters, cl_phiRMS, ecalIsol_Et, JetEt, JetEta, L1et, L1eta, l2file, l2tree, MCet, MCeta, rootFile_, seedTowerEt, and towerIsol_Et.

00007                                                           :
00008  l2TauInfoAssoc_(iConfig.getParameter<edm::InputTag>("L2InfoAssociationInput")),
00009  l1Taus_(iConfig.getParameter<edm::InputTag>("L1TauCollection")),
00010  l1Jets_(iConfig.getParameter<edm::InputTag>("L1JetCollection")),
00011  rootFile_(iConfig.getParameter<std::string>("outputFileName")),
00012  IsSignal_(iConfig.getParameter<bool>("IsSignal")),
00013  mcColl_(iConfig.getParameter<edm::InputTag>("MatchedCollection"))
00014 {
00015   //File Setup
00016   l2file = new TFile(rootFile_.c_str(),"recreate");
00017   //Tree Setup
00018   l2tree = new TTree("l2tree","Level 2 Tau Tree");
00019 
00020 
00021   //Initialize the vars
00022   ecalIsol_Et=0.;
00023   towerIsol_Et=0.;
00024   cl_etaRMS=0.;
00025   cl_phiRMS=0.;
00026   cl_drRMS=0.;
00027   MCeta=0.;
00028   MCet=0.;
00029   cl_Nclusters=0;
00030   seedTowerEt = 0.;
00031   JetEt=0.;
00032   JetEta=0.;
00033   L1et=0.;
00034   L1eta=0.;
00035 
00036   //Setup Branches
00037   l2tree->Branch("ecalIsolEt",&ecalIsol_Et,"ecalIsolEt/F");
00038   l2tree->Branch("towerIsolEt",&towerIsol_Et,"towerIsolEt/F");
00039   l2tree->Branch("clEtaRMS",&cl_etaRMS,"clEtaRMS/F");
00040   l2tree->Branch("clPhiRMS",&cl_phiRMS,"clPhiRMS/F");
00041   l2tree->Branch("clDrRMS",&cl_drRMS,"clDrRMS/F");
00042   l2tree->Branch("mcEta",&MCeta,"mcEta/F");
00043   l2tree->Branch("mcEt",&MCet,"mcEt/F");
00044   l2tree->Branch("clNclusters",&cl_Nclusters,"clNclusters/I");
00045   l2tree->Branch("seedTowerEt",&seedTowerEt,"seedTowerEt/F");
00046   l2tree->Branch("jetEt",&JetEt,"jetEt/F");
00047   l2tree->Branch("jetEta",&JetEta,"jetEta/F");
00048   l2tree->Branch("L1Et",&L1et,"L1Et/F");
00049   l2tree->Branch("L1Eta",&L1eta,"L1Eta/F");
00050  
00051 }

L2TauAnalyzer::~L2TauAnalyzer (  ) 

Definition at line 54 of file L2TauAnalyzer.cc.

00055 {
00056 }


Member Function Documentation

void L2TauAnalyzer::analyze ( const edm::Event iEvent,
const edm::EventSetup iSetup 
) [private, virtual]

Implements edm::EDAnalyzer.

Definition at line 61 of file L2TauAnalyzer.cc.

References cl_drRMS, cl_etaRMS, cl_Nclusters, cl_phiRMS, MatchElementL2::deltar, ecalIsol_Et, edm::Event::getByLabel(), IsSignal_, metsig::jet, JetEt, JetEta, L1et, L1eta, l1Jets_, l1Taus_, l2TauInfoAssoc_, l2tree, match(), MatchElementL2::matched, mcColl_, MCet, MatchElementL2::mcEt, MCeta, MatchElementL2::mcEta, p, HcalSimpleRecAlgoImpl::reco(), seedTowerEt, and towerIsol_Et.

00062 {
00063    using namespace edm;
00064    using namespace reco;
00065 
00066    Handle<L2TauInfoAssociation> l2TauInfoAssoc; //Handle to the input (L2 Tau Info Association)
00067    Handle<LVColl> McInfo; //Handle To The Truth!!!!
00068    Handle<l1extra::L1JetParticleCollection> L1Taus; //Handle To The L1 Taus
00069    Handle<l1extra::L1JetParticleCollection> L1Jets; //Handle To The L1 jets
00070 
00071         if(iEvent.getByLabel(l2TauInfoAssoc_,l2TauInfoAssoc))//get the handle
00072           {
00073             if(l2TauInfoAssoc->size()>0)
00074               for(L2TauInfoAssociation::const_iterator p = l2TauInfoAssoc->begin();p!=l2TauInfoAssoc->end();++p)
00075                 {
00076                   const L2TauIsolationInfo l2info = p->val;
00077                   const CaloJet& jet =*(p->key);
00078        
00079                   MatchElementL2 mcMatch;
00080                   mcMatch.matched=false;
00081                   mcMatch.mcEt=0;
00082                   mcMatch.mcEta=0;
00083                   mcMatch.deltar=0;
00084 
00085                   if(IsSignal_) //Get Collection and match it
00086                     {
00087                       if(iEvent.getByLabel(mcColl_,McInfo))
00088                           mcMatch=match(jet,*McInfo);
00089                     }
00090 
00091                   if((mcMatch.matched&&IsSignal_)||(!IsSignal_))
00092                     {
00093                       //Fill variables
00094                       ecalIsol_Et=l2info.ECALIsolConeCut;
00095                       towerIsol_Et=l2info.TowerIsolConeCut;
00096                       cl_Nclusters=l2info.ECALClusterNClusters;
00097                       cl_etaRMS=l2info.ECALClusterEtaRMS;
00098                       cl_phiRMS=l2info.ECALClusterPhiRMS;
00099                       cl_drRMS=l2info.ECALClusterDRRMS;
00100                       seedTowerEt = l2info.SeedTowerEt;
00101                       MCeta =mcMatch.mcEta;
00102                       MCet=mcMatch.mcEt;
00103                       JetEt = jet.et();
00104                       JetEta = jet.eta();
00105 
00106                       //Match with L1 and fill
00107                       L1et=0;
00108                       L1eta=0;
00109                       if(iEvent.getByLabel(l1Taus_,L1Taus))
00110                         {
00111                             MatchElementL2 l1Match;
00112                             l1Match.matched=false;
00113                             l1Match.mcEt=0;
00114                             l1Match.mcEta=0;
00115                             l1Match.deltar=0;
00116                             l1Match=match(jet,*L1Taus);
00117                             if(l1Match.matched)
00118                               {
00119                                 L1et=l1Match.mcEt;
00120                                 L1eta=l1Match.mcEta;
00121                               }
00122                             //If not matched look at the jet collection
00123                             else
00124                               {
00125                                 if(iEvent.getByLabel(l1Jets_,L1Jets))
00126                                   {
00127                                     l1Match=match(jet,*L1Taus);
00128                                     if(l1Match.matched)
00129                                       {
00130                                         L1et=l1Match.mcEt;
00131                                         L1eta=l1Match.mcEta;
00132                                       }
00133 
00134                                   }
00135                               }
00136 
00137                         }
00138                       //Fill Tree
00139                       l2tree->Fill();
00140                     }
00141            
00142                 }
00143           } 
00144 }

void L2TauAnalyzer::beginJob ( const edm::EventSetup  )  [private, virtual]

Reimplemented from edm::EDAnalyzer.

Definition at line 149 of file L2TauAnalyzer.cc.

00150 {
00151 
00152 }

void L2TauAnalyzer::endJob ( void   )  [private, virtual]

Reimplemented from edm::EDAnalyzer.

Definition at line 156 of file L2TauAnalyzer.cc.

References l2file.

00156                       {
00157   l2file->Write();
00158 
00159 }

MatchElementL2 L2TauAnalyzer::match ( const reco::Jet jet,
const l1extra::L1JetParticleCollection McInfo 
) [private]

Definition at line 206 of file L2TauAnalyzer.cc.

References MatchElementL2::deltar, it, match(), MatchElementL2::matched, MatchElementL2::mcEt, MatchElementL2::mcEta, and reco::Particle::p4().

00207 {
00208 
00209   //Loop On the Collection and see if your tau jet is matched to one there
00210  //Also find the nearest Matched MC Particle to your Jet (to be complete)
00211  
00212  bool matched=false;
00213  double delta_min=100.;
00214  double mceta=0;
00215  double mcet=0;
00216  
00217  double matchingDR=0.5;
00218 
00219 
00220 
00221 
00222  if(McInfo.size()>0)
00223   for(l1extra::L1JetParticleCollection::const_iterator it = McInfo.begin();it!=McInfo.end();++it)
00224    {
00225           double delta = ROOT::Math::VectorUtil::DeltaR(jet.p4().Vect(),it->p4().Vect());
00226           if(delta<matchingDR)
00227             {
00228               matched=true;
00229               if(delta<delta_min)
00230                 {
00231                   delta_min=delta;
00232                   mceta=it->eta();
00233                   mcet=it->et();
00234                 }
00235             }
00236    }
00237 
00238   //Create Struct and send it out!
00239   MatchElementL2 match;
00240   match.matched=matched;
00241   match.deltar=delta_min;
00242   match.mcEta = mceta;
00243   match.mcEt = mcet;
00244 
00245 
00246  return match;
00247 }

MatchElementL2 L2TauAnalyzer::match ( const reco::Jet jet,
const LVColl McInfo 
) [private]

Definition at line 162 of file L2TauAnalyzer.cc.

References MatchElementL2::deltar, it, MatchElementL2::matched, MatchElementL2::mcEt, MatchElementL2::mcEta, and reco::Particle::p4().

Referenced by analyze(), and match().

00163 {
00164 
00165   //Loop On the Collection and see if your tau jet is matched to one there
00166  //Also find the nearest Matched MC Particle to your Jet (to be complete)
00167  
00168  bool matched=false;
00169  double delta_min=100.;
00170  double mceta=0;
00171  double mcet=0;
00172  
00173  double matchingDR=0.3;
00174 
00175 
00176 
00177 
00178  if(McInfo.size()>0)
00179   for(std::vector<LV>::const_iterator it = McInfo.begin();it!=McInfo.end();++it)
00180    {
00181           double delta = ROOT::Math::VectorUtil::DeltaR(jet.p4().Vect(),*it);
00182           if(delta<matchingDR)
00183             {
00184               matched=true;
00185               if(delta<delta_min)
00186                 {
00187                   delta_min=delta;
00188                   mceta=it->eta();
00189                   mcet=it->Et();
00190                 }
00191             }
00192    }
00193 
00194   //Create Struct and send it out!
00195   MatchElementL2 match;
00196   match.matched=matched;
00197   match.deltar=delta_min;
00198   match.mcEta = mceta;
00199   match.mcEt = mcet;
00200 
00201 
00202  return match;
00203 }


Member Data Documentation

float L2TauAnalyzer::cl_drRMS [private]

Definition at line 59 of file L2TauAnalyzer.h.

Referenced by analyze(), and L2TauAnalyzer().

float L2TauAnalyzer::cl_etaRMS [private]

Definition at line 59 of file L2TauAnalyzer.h.

Referenced by analyze(), and L2TauAnalyzer().

int L2TauAnalyzer::cl_Nclusters [private]

Definition at line 58 of file L2TauAnalyzer.h.

Referenced by analyze(), and L2TauAnalyzer().

float L2TauAnalyzer::cl_phiRMS [private]

Definition at line 59 of file L2TauAnalyzer.h.

Referenced by analyze(), and L2TauAnalyzer().

float L2TauAnalyzer::ecalIsol_Et [private]

Definition at line 59 of file L2TauAnalyzer.h.

Referenced by analyze(), and L2TauAnalyzer().

bool L2TauAnalyzer::IsSignal_ [private]

Definition at line 53 of file L2TauAnalyzer.h.

Referenced by analyze().

float L2TauAnalyzer::JetEt [private]

Definition at line 59 of file L2TauAnalyzer.h.

Referenced by analyze(), and L2TauAnalyzer().

float L2TauAnalyzer::JetEta [private]

Definition at line 59 of file L2TauAnalyzer.h.

Referenced by analyze(), and L2TauAnalyzer().

float L2TauAnalyzer::L1et [private]

Definition at line 59 of file L2TauAnalyzer.h.

Referenced by analyze(), and L2TauAnalyzer().

float L2TauAnalyzer::L1eta [private]

Definition at line 59 of file L2TauAnalyzer.h.

Referenced by analyze(), and L2TauAnalyzer().

edm::InputTag L2TauAnalyzer::l1Jets_ [private]

Definition at line 51 of file L2TauAnalyzer.h.

Referenced by analyze().

edm::InputTag L2TauAnalyzer::l1Taus_ [private]

Definition at line 50 of file L2TauAnalyzer.h.

Referenced by analyze().

TFile* L2TauAnalyzer::l2file [private]

Definition at line 60 of file L2TauAnalyzer.h.

Referenced by endJob(), and L2TauAnalyzer().

edm::InputTag L2TauAnalyzer::l2TauInfoAssoc_ [private]

Definition at line 49 of file L2TauAnalyzer.h.

Referenced by analyze().

TTree* L2TauAnalyzer::l2tree [private]

Definition at line 61 of file L2TauAnalyzer.h.

Referenced by analyze(), and L2TauAnalyzer().

double L2TauAnalyzer::matchDR_ [private]

Definition at line 56 of file L2TauAnalyzer.h.

edm::InputTag L2TauAnalyzer::mcColl_ [private]

Definition at line 54 of file L2TauAnalyzer.h.

Referenced by analyze().

float L2TauAnalyzer::MCet [private]

Definition at line 59 of file L2TauAnalyzer.h.

Referenced by analyze(), and L2TauAnalyzer().

float L2TauAnalyzer::MCeta [private]

Definition at line 59 of file L2TauAnalyzer.h.

Referenced by analyze(), and L2TauAnalyzer().

std::string L2TauAnalyzer::rootFile_ [private]

Definition at line 52 of file L2TauAnalyzer.h.

Referenced by L2TauAnalyzer().

float L2TauAnalyzer::seedTowerEt [private]

Definition at line 59 of file L2TauAnalyzer.h.

Referenced by analyze(), and L2TauAnalyzer().

float L2TauAnalyzer::towerIsol_Et [private]

Definition at line 59 of file L2TauAnalyzer.h.

Referenced by analyze(), and L2TauAnalyzer().


The documentation for this class was generated from the following files:
Generated on Tue Jun 9 18:27:09 2009 for CMSSW by  doxygen 1.5.4