CMS 3D CMS Logo

ImpactParameter Class Reference

Description: <one line="" class="" summary>="">. More...

#include <RecoBTag/ImpactParameter/src/ImpactParameter.cc>

Inheritance diagram for ImpactParameter:

edm::EDProducer edm::ProducerBase edm::ProductRegistryHelper

List of all members.

Public Member Functions

 ImpactParameter (const edm::ParameterSet &)
virtual void produce (edm::Event &, const edm::EventSetup &)
 ~ImpactParameter ()

Private Attributes

ImpactParameterAlgorithmalgo
string jetTrackSrc
bool usingVertex
string vertexSrc


Detailed Description

Description: <one line="" class="" summary>="">.

Implementation: <Notes on="" implementation>="">

Definition at line 13 of file ImpactParameter.h.


Constructor & Destructor Documentation

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

Definition at line 47 of file ImpactParameter.cc.

References algo, edm::ParameterSet::getParameter(), jetTrackSrc, usingVertex, and vertexSrc.

00047                                                                {
00048 
00049         jetTrackSrc = iConfig.getParameter<string>("JetTagProd");
00050         vertexSrc   = iConfig.getParameter<string>("vertexSrc");
00051         usingVertex = iConfig.getParameter<bool>("useVertex");
00052 
00053         algo = new ImpactParameterAlgorithm(iConfig);
00054 
00055         std::string modulname = iConfig.getParameter<string>( "@module_label" );
00056         produces<reco::JetTagCollection>().setBranchAlias(modulname);
00057         string infoBranchName = modulname + "Info";
00058         produces<reco::TauImpactParameterInfoCollection>().setBranchAlias(infoBranchName);
00059 }

ImpactParameter::~ImpactParameter (  ) 

Definition at line 62 of file ImpactParameter.cc.

References algo.

00062                                  {
00063         delete algo;
00064 }


Member Function Documentation

void ImpactParameter::produce ( edm::Event iEvent,
const edm::EventSetup iSetup 
) [virtual]

Implements edm::EDProducer.

Definition at line 72 of file ImpactParameter.cc.

References algo, e, cond::Error, edm::EventSetup::get(), edm::Event::getByLabel(), i, jetTrackSrc, p, edm::ESHandle< T >::product(), edm::Handle< T >::product(), edm::Event::put(), HcalSimpleRecAlgoImpl::reco(), ImpactParameterAlgorithm::setTransientTrackBuilder(), ImpactParameterAlgorithm::tag(), usingVertex, and vertexSrc.

00072                                                                           {
00073 
00074         using namespace reco;
00075 
00076         Handle<IsolatedTauTagInfoCollection> isolatedTaus;
00077         iEvent.getByLabel(jetTrackSrc,isolatedTaus);
00078 
00079         std::auto_ptr<JetTagCollection>                 tagCollection;
00080         std::auto_ptr<TauImpactParameterInfoCollection> extCollection( new TauImpactParameterInfoCollection() );
00081         if (not isolatedTaus->empty()) {
00082           edm::RefToBaseProd<reco::Jet> prod( isolatedTaus->begin()->jet() );
00083           tagCollection.reset( new JetTagCollection(prod) );
00084         } else {
00085           tagCollection.reset( new JetTagCollection() );
00086         }
00087 
00088         edm::ESHandle<TransientTrackBuilder> builder;
00089         iSetup.get<TransientTrackRecord>().get("TransientTrackBuilder",builder);
00090         algo->setTransientTrackBuilder(builder.product());
00091 
00092         Vertex PV;
00093         if (usingVertex) {
00094           Handle<reco::VertexCollection> vertices;
00095           iEvent.getByLabel(vertexSrc,vertices);
00096 
00097           const reco::VertexCollection vertCollection = *(vertices.product());
00098           reco::VertexCollection::const_iterator iVertex;
00099 
00100           for(iVertex = vertCollection.begin();iVertex!=vertCollection.end();iVertex++){
00101             PV = *iVertex;
00102           }
00103 
00104         } else {
00105           Vertex::Error e;
00106           e(0,0)=0;
00107           e(1,1)=0;
00108           e(2,2)=0;
00109           Vertex::Point p(0,0,0);
00110 
00111           Vertex dummyPV(p,e,1,1,1);
00112           PV = dummyPV;
00113         }
00114 
00115         for (unsigned int i = 0; i < isolatedTaus->size(); ++i) {
00116             IsolatedTauTagInfoRef tauRef(isolatedTaus, i);
00117             std::pair<float, TauImpactParameterInfo> ipInfo = algo->tag(tauRef,PV);
00118             tagCollection->setValue(i, ipInfo.first);    
00119             extCollection->push_back(ipInfo.second);
00120         }
00121 
00122         iEvent.put(extCollection);
00123         iEvent.put(tagCollection);
00124 }


Member Data Documentation

ImpactParameterAlgorithm* ImpactParameter::algo [private]

Definition at line 21 of file ImpactParameter.h.

Referenced by ImpactParameter(), produce(), and ~ImpactParameter().

string ImpactParameter::jetTrackSrc [private]

Definition at line 22 of file ImpactParameter.h.

Referenced by ImpactParameter(), and produce().

bool ImpactParameter::usingVertex [private]

Definition at line 24 of file ImpactParameter.h.

Referenced by ImpactParameter(), and produce().

string ImpactParameter::vertexSrc [private]

Definition at line 23 of file ImpactParameter.h.

Referenced by ImpactParameter(), and produce().


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