/****************************************************************\ | This file is part of the PAX example files for CDF | | -------------------------------------------------------------- | | Author of the last change: $Author: erdmann $ | Date of last change: $Date: 2003/11/18 15:13:17 $ | Revision number: $Revision: 1.2 $ \****************************************************************/ // //! example interface: fill CDF vertices into PAX event interpretation // #include "TPAXAnaModule.hh" #include "PAX/PAXexperimentclass.hh" #include "PAX/PAXinterpret.hh" #include "PAX/PAXiterator.hh" #include "PAX/PAXphysicsmap.hh" #include "PAX/PAXvertex.hh" #include bool TPAXAnaModule::FillVertices(PaxEventInterpret* ei, int currentevent){ bool eventOK = 0; // fill the vertices from the VertexBlock into the event interpretation if (fVertexData) { // set name of event interpretation ei->SetPaxName("vertices"); // read Stntuple data fVertexData->GetEntry(currentevent); // loop over all CDF vertices int nvertex = fVertexData->NVertices(); for (Int_t i=0; iVertex(i); // create empty pax vertex PaxVertex* pax_vertex = new PaxVertex; // add new vertex to the event interpretation ei->Add(pax_vertex); // set values pax_vertex->SetX((double) cdf_vertex->X()); pax_vertex->SetY((double) cdf_vertex->Y()); pax_vertex->SetZ((double) cdf_vertex->Z()); // set name of vertices if (cdf_vertex->VClass()==cdf_vertex->kPRIMARY) pax_vertex->SetPaxName("primary vertex"); else pax_vertex->SetPaxName("other vertex"); // ---------------------------------------------------------------- // in order to enable access to the original CDF data within PAX, // register an experiment relation to the instance of the TStnVertex // class // create empty experiment relation PaxExperimentClassRelations* experiment_class_relation = new PaxExperimentClassRelations; // add a manager with pax vertex under the name of the CDF class string experiment_class_manager = "TStnVertex"; pax_vertex->map_experimentclass_relations ->Add( experiment_class_manager, experiment_class_relation ); // register the CDF vertex instance with the experiment class relation PaxExperimentClass* ec = new PaxExperiment(cdf_vertex); experiment_class_relation->Add(i,ec); } eventOK = 1; } else cerr << "VertexBlock was not found in the STNTUPLE!!" << endl; return eventOK; } //_____________________________________________________________________________