#include <CosmicGenFilterHelix.h>
Public Member Functions | |
virtual void | beginJob () |
CosmicGenFilterHelix (const edm::ParameterSet &config) | |
virtual void | endJob () |
virtual bool | filter (edm::Event &event, const edm::EventSetup &eventSetup) |
virtual | ~CosmicGenFilterHelix () |
Public Member Functions inherited from edm::EDFilter | |
EDFilter () | |
virtual | ~EDFilter () |
Public Member Functions inherited from edm::ProducerBase | |
ProducerBase () | |
void | registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &) |
boost::function< void(const BranchDescription &)> | registrationCallback () const |
used by the fwk to register list of products More... | |
virtual | ~ProducerBase () |
Private Member Functions | |
bool | charge (int id, int &charge) const |
true if ID selected, return by value its charge More... | |
void | createHistsEnd (const char *dirName, TObjArray &hists) |
void | createHistsStart (const char *dirName, TObjArray &hists) |
for final statistics: events with track reaching target More... | |
bool | equidistLogBins (double *bins, int nBins, double first, double last) const |
const MagneticField * | getMagneticField (const edm::EventSetup &setup) const |
provide magnetic field from Event Setup More... | |
const Propagator * | getPropagator (const edm::EventSetup &setup) const |
void | monitorEnd (const GlobalPoint &endVert, const GlobalVector &endMom, const GlobalPoint &vert, const GlobalVector &mom, double path, TObjArray &hists) |
void | monitorStart (const GlobalPoint &vert, const GlobalVector &mom, int charge, TObjArray &hists) |
bool | propagateToCutCylinder (const GlobalPoint &vertStart, const GlobalVector &momStart, int charge, const MagneticField *field, const Propagator *propagator) |
actually propagate to the defined cylinder More... | |
Private Attributes | |
const std::vector< int > | theCharges |
requested Ids More... | |
const bool | theDoMonitor |
TObjArray | theHistsAfter |
hists of properties from generator More... | |
TObjArray | theHistsBefore |
whether or not to fill monitor hists (needs TFileService) More... | |
const std::vector< int > | theIds |
const double | theMinP2 |
const double | theMinPt2 |
minimal momentum^2 after propagation to cylinder More... | |
unsigned int | theNumPass |
for final statistics: all seen events More... | |
unsigned int | theNumTotal |
plane closing cylinder at 'positive' side More... | |
const std::string | thePropagatorName |
charges, parallel to theIds More... | |
const edm::InputTag | theSrc |
Cylinder::ConstCylinderPointer | theTargetCylinder |
minimal transverse^2 momentum after propagation to cylinder More... | |
Plane::ConstPlanePointer | theTargetPlaneMax |
plane closing cylinder at 'negative' side More... | |
Plane::ConstPlanePointer | theTargetPlaneMin |
target cylinder, around z-axis More... | |
Additional Inherited Members | |
Public Types inherited from edm::EDFilter | |
typedef EDFilter | ModuleType |
typedef WorkerT< EDFilter > | WorkerType |
Public Types inherited from edm::ProducerBase | |
typedef ProductRegistryHelper::TypeLabelList | TypeLabelList |
Static Public Member Functions inherited from edm::EDFilter | |
static const std::string & | baseType () |
static void | fillDescriptions (ConfigurationDescriptions &descriptions) |
static void | prevalidate (ConfigurationDescriptions &) |
Protected Member Functions inherited from edm::EDFilter | |
CurrentProcessingContext const * | currentContext () const |
Protected Member Functions inherited from edm::ProducerBase | |
template<class TProducer , class TMethod > | |
void | callWhenNewProductsRegistered (TProducer *iProd, TMethod iMethod) |
-*- C++ -*-
Package: GeneratorInterface/GenFilters
Description: Event filter for generated particles reaching a certain cylinder surface (around z-axis).
Implementation: Assumes particles coming from outside of defined cylinder, but might work also otherwise. Uses SteppingHelixPropagator and IdealMagneticFieldRecord.
Original Author: Gero FLUCKE Created: Mon Mar 5 16:32:01 CET 2007
Definition at line 39 of file CosmicGenFilterHelix.h.
|
explicit |
Definition at line 44 of file CosmicGenFilterHelix.cc.
References Plane::build(), Cylinder::build(), edm::hlt::Exception, edm::ParameterSet::getParameter(), CosmicsPD_Skims::maxZ, cmsRun_displayProdMFGeom_cfg::minZ, CosmicsPD_Skims::radius, theCharges, theIds, theTargetCylinder, theTargetPlaneMax, and theTargetPlaneMin.
|
virtual |
Definition at line 73 of file CosmicGenFilterHelix.cc.
|
virtual |
Reimplemented from edm::EDFilter.
Definition at line 164 of file CosmicGenFilterHelix.cc.
References createHistsEnd(), createHistsStart(), theDoMonitor, theHistsAfter, theHistsBefore, theNumPass, and theNumTotal.
|
private |
true if ID selected, return by value its charge
Definition at line 311 of file CosmicGenFilterHelix.cc.
References end, i, theCharges, and theIds.
Referenced by filter().
|
private |
Definition at line 223 of file CosmicGenFilterHelix.cc.
References equidistLogBins(), CosmicsPD_Skims::maxZ, cmsRun_displayProdMFGeom_cfg::minZ, TFileDirectory::mkdir(), Pi, theTargetCylinder, theTargetPlaneMax, and theTargetPlaneMin.
Referenced by beginJob().
|
private |
for final statistics: events with track reaching target
Definition at line 177 of file CosmicGenFilterHelix.cc.
References equidistLogBins(), TFileDirectory::mkdir(), and Pi.
Referenced by beginJob().
|
virtual |
Reimplemented from edm::EDFilter.
Definition at line 292 of file CosmicGenFilterHelix.cc.
References geometryCSVtoXML::line, theMinP2, theMinPt2, theNumPass, theNumTotal, theTargetCylinder, theTargetPlaneMax, and theTargetPlaneMin.
|
private |
Definition at line 488 of file CosmicGenFilterHelix.cc.
References first, i, and prof2calltree::last.
Referenced by createHistsEnd(), and createHistsStart().
|
virtual |
Implements edm::EDFilter.
Definition at line 83 of file CosmicGenFilterHelix.cc.
References ecalTB2006H4_GenSimDigiReco_cfg::bField, charge(), edm::Event::getByLabel(), getMagneticField(), getPropagator(), monitorStart(), propagateToCutCylinder(), LargeD0_PixelPairStep_cff::propagator, query::result, theDoMonitor, theHistsBefore, theNumPass, theNumTotal, and theSrc.
|
private |
provide magnetic field from Event Setup
Definition at line 326 of file CosmicGenFilterHelix.cc.
References fieldHandle, edm::EventSetup::get(), and edm::ESHandle< class >::product().
Referenced by filter().
|
private |
Definition at line 335 of file CosmicGenFilterHelix.cc.
References edm::EventSetup::get(), edm::ESHandle< class >::product(), and thePropagatorName.
Referenced by filter().
|
private |
Definition at line 411 of file CosmicGenFilterHelix.cc.
References HcalObjRepresent::Fill(), PV3DBase< T, PVType, FrameType >::mag(), PV3DBase< T, PVType, FrameType >::perp(), PV3DBase< T, PVType, FrameType >::theta(), PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().
Referenced by propagateToCutCylinder().
|
private |
Definition at line 350 of file CosmicGenFilterHelix.cc.
References HcalObjRepresent::Fill(), PV3DBase< T, PVType, FrameType >::mag(), PV3DBase< T, PVType, FrameType >::perp(), phi, PV3DBase< T, PVType, FrameType >::phi(), alignCSCRings::r, PV3DBase< T, PVType, FrameType >::theta(), theta(), PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), detailsBasic3DVector::z, and PV3DBase< T, PVType, FrameType >::z().
Referenced by filter(), and propagateToCutCylinder().
|
private |
actually propagate to the defined cylinder
Definition at line 117 of file CosmicGenFilterHelix.cc.
References monitorEnd(), monitorStart(), Propagator::propagateWithPath(), query::result, theDoMonitor, theHistsAfter, theMinP2, theMinPt2, theTargetCylinder, theTargetPlaneMax, and theTargetPlaneMin.
Referenced by filter().
|
private |
requested Ids
Definition at line 62 of file CosmicGenFilterHelix.h.
Referenced by charge(), and CosmicGenFilterHelix().
|
private |
Definition at line 81 of file CosmicGenFilterHelix.h.
Referenced by beginJob(), filter(), and propagateToCutCylinder().
|
private |
hists of properties from generator
Definition at line 83 of file CosmicGenFilterHelix.h.
Referenced by beginJob(), and propagateToCutCylinder().
|
private |
whether or not to fill monitor hists (needs TFileService)
Definition at line 82 of file CosmicGenFilterHelix.h.
Referenced by beginJob(), and filter().
|
private |
Definition at line 61 of file CosmicGenFilterHelix.h.
Referenced by charge(), and CosmicGenFilterHelix().
|
private |
Definition at line 64 of file CosmicGenFilterHelix.h.
Referenced by endJob(), and propagateToCutCylinder().
|
private |
minimal momentum^2 after propagation to cylinder
Definition at line 65 of file CosmicGenFilterHelix.h.
Referenced by endJob(), and propagateToCutCylinder().
|
private |
for final statistics: all seen events
Definition at line 72 of file CosmicGenFilterHelix.h.
Referenced by beginJob(), endJob(), and filter().
|
private |
plane closing cylinder at 'positive' side
Definition at line 71 of file CosmicGenFilterHelix.h.
Referenced by beginJob(), endJob(), and filter().
|
private |
charges, parallel to theIds
Definition at line 63 of file CosmicGenFilterHelix.h.
Referenced by getPropagator().
|
private |
Definition at line 60 of file CosmicGenFilterHelix.h.
Referenced by filter().
|
private |
minimal transverse^2 momentum after propagation to cylinder
Definition at line 67 of file CosmicGenFilterHelix.h.
Referenced by CosmicGenFilterHelix(), createHistsEnd(), endJob(), and propagateToCutCylinder().
|
private |
plane closing cylinder at 'negative' side
Definition at line 69 of file CosmicGenFilterHelix.h.
Referenced by CosmicGenFilterHelix(), createHistsEnd(), endJob(), and propagateToCutCylinder().
|
private |
target cylinder, around z-axis
Definition at line 68 of file CosmicGenFilterHelix.h.
Referenced by CosmicGenFilterHelix(), createHistsEnd(), endJob(), and propagateToCutCylinder().