All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups
DistilledPFOCreator.h
Go to the documentation of this file.
1 #include "marlin/Processor.h"
2 #include "EVENT/ReconstructedParticle.h"
3 #include "lcio.h"
4 #include <vector>
5 #include <set>
6 #include "IMPL/LCCollectionVec.h"
7 
8 using namespace lcio ;
9 
10 /** DistilledPFOCreator:<br>
11  *
12  * @author Graham W. Wilson, University of Kansas
13  */
14 
15 class DistilledPFOCreator : public marlin::Processor {
16 
17  public:
18 
19  virtual marlin::Processor* newProcessor() { return new DistilledPFOCreator ; }
20 
22 
23  /** Called at the beginning of the job before anything is read.
24  * Use to initialize the processor, e.g. book histograms.
25  */
26  virtual void init() ;
27 
28  /** Called for every run.
29  */
30  virtual void processRunHeader( LCRunHeader* run ) ;
31 
32  /** Called for every event - the working horse.
33  */
34  virtual void processEvent( LCEvent * evt ) ;
35 
36 
37  /** Called after data processing for clean up.
38  */
39  virtual void end() ;
40 
41  bool FindPFOs( LCEvent* evt );
42  void CreateDistilledPFOs( LCCollectionVec *);
43 
44 private:
45 
46  std::vector<ReconstructedParticle*>_pfovec{};
47  std::vector<ReconstructedParticle*>_ggpfovec{};
48  std::vector<ReconstructedParticle*>_mypfovec{}; // Not clear this is neeeded - but may be convenient to energy sort prior to finalization
49  int _printing{};
50  std::string _inputParticleCollectionName1{};
51  std::string _inputParticleCollectionName2{};
52  std::string _outputParticleCollectionName{};
53  static bool PfoEnergySortFunction(ReconstructedParticle* lhs,ReconstructedParticle* rhs);
54 
55 protected:
56 
57 } ;
virtual marlin::Processor * newProcessor()
std::vector< LCCollection * > LCCollectionVec
Definition: SiStripClus.h:55
DistilledPFOCreator: