The MarlinRave plugin
We provide a Marlin Processor called RaveVertexing based on Rave, which enables the Marlin user to use Rave vertexing functionality within Marlin. The Rave vertexing algorithms can be completely configured by means of the Marlin steer file. A second processor called RaveKinematics allows application of kinematic constraints to precompiled event topologies.
The RaveVertexing processor
An exemplary steer file snippet should illustrate the configuration of the RaveVertexing processor:
<processor name="MyRaveVertexing" type="RaveVertexing"> <!--RaveVertexing does vertex finding and fitting using multiple algorithms--> <!--Name of the input track collection--> <parameter name="Tracks" type="string">Tracks </parameter> <!--Method used for vertex finding and fitting--> <parameter name="Method" type="string">default </parameter> <!--Print results to stdout--> <parameter name="Verbose" type="int">0 </parameter> <!--Name of the reconstructed vertex collection--> <parameter name="Vertices" type="string">Vertices </parameter> <!--Name of output the collection of refitted tracks--> <parameter name="RefittedTracks" type="string"> </parameter> <!--Optional filename for textual output of all vertices for histogramming--> <parameter name="HistFile" type="string"> </parameter> </processor>
As shown in this example, the RaveVertexing processor needs an input collection, defined by the Tracks parameter, holding the tracks generated by a Tracking processor. It then uses an algorithm specified by the Method parameter to reconstruct vertices and to refit the input tracks. The results are then stored in collections named by the Vertices and RefittedTracks parameters.
The Method string allows selection and full configuration od the available vertexing algorithms. See RaveMethods for detailed information.
The RaveKinematics processor
Again the XML snippet is used to illustrate the configuration:
<processor name="MyRaveKinematics" type="RaveKinematics"> <!--RaveKinematics uses a set of given particles to reconstruct the decay chain using the given constraints--> <!--Name of the input particle collection--> <parameter name="Particles" type="string" lcioInType="ReconstructedParticle">Particles </parameter> <!--Decay topology to be used for the fitting; registered: SingleVertex, TwoTrackMass, WW4Jet, --> <parameter name="Topology" type="string">SingleVertex </parameter> <!--Print results to stdout--> <!--Topology parameters forwarded to the selected topology--> <parameter name="Parameters" type="string"> </parameter> <parameter name="Verbose" type="int">0 </parameter> <!--Name of the output collection of particles linked to a decay chain--> <parameter name="KinematicParticles" type="string" lcioOutType="ReconstructedParticle">KinematicParticles </parameter> <!--Name of the reconstructed vertex collection linked to a decay chain--> <parameter name="KinematicVertices" type="string" lcioOutType="Vertex">KinematicVertices </parameter> </processor>
The input in this case is a ReconstructedParticle collection named Particles. The decay hypothesis is chosen by means of the Topology parameter which will be explained below. A string of parameters can be passed to the chosen topology. The rave::KinematicTree
produced by the fitter is split into a ReconstructedParticle and a Vertex collection to represent the edges and nodes of the tree.
Currently available topologies are:
- SingleVertex : Fits all particles to one vertex and returns a mother particle without further constraints
- TwoTrackMass : Does a similar job, but constraints the invariant mass of the first two found particles to a given value
- WW4Jet : Reconstructs the masses of two Ws from four given jets. The input collection needs to have exactly four particles output by a JetFinder and representing the jets.
Custom topologies
Arbitrary topologies can be used by inheriting the KinematicTopology class provided by MarlinRave and implementing the interface. The implementation in form of one .cc file has to be copied into the "topologies" directory of the MarlinRave source tree and the build will automatically include the new topology during the next run.
The perhaps most simple yet meaningful example is the SingleVertex topology:
#include "KinematicTopology.h" #include <rave/KinematicTreeFactory.h> class TopologySingleVertex : public KinematicTopology { public: std::string describe() const { return "Reconstructs a mother particle from all given daughters."; }; rave::KinematicTree build( const rave::KinematicTreeFactory & factory, const std::vector< rave::KinematicParticle > [http://buycialis.reciter.com/ Cialis] [http://www.folkd.com/user/buyviagra1 brand viagra] http://www.kaboodle.com/buycheapcialis http://www.folkd.com/user/buyviagra1 [http://buylevitra.gather.com/ order levitra online] [http://www.dogomania.com/forum/showthread.php?p=276144 order cheap tramadol online] 2Yo0SS7 http://community.tasteofhome.com/members/BuyLevitra/default.aspx http://buytramadol.gather.com/ [http://community.post-gazette.com/members/Buy-Fioricet-Online/default.aspx butalbital] [http://lnx.spmg.it/moodle/user/view.php?id=470&course=1&viagra-cialis viagra cialis] http://www.xomreviews.com/headachetreatment.net http://compracialis.it/it/item/viagra.html BOFH Excuse #367: Webmasters kidnapped by evil cult. [http://community.tasteofhome.com/members/BuyCialis/default.aspx cialis buy] [http://us.cyworld.com/buyviagraorderviagra viagra] http://www.spreadfirefox.com/user/269138?buy-cialis http://buyviagraonline.gather.com/ [http://www.kaboodle.com/buylevitra levitra] [http://www.kaneva.com/channel/tramadol.people tramadol] zpDObGk http://www.kaboodle.com/buylevitra http://www.kaneva.com/channel/tramadol.people [http://www.aboutus.org/HeadacheTreatment.net brand fioricet fioricet] [http://www.euronics.it/forum/user/profile/13031.page?Viagra-Cialis acquista viagra italia] http://buycialisonline.tv/product.php?prod=fioricet http://www.hotfrog.it/Societa/Compra-Cialis-e-Viagra