Hall-D Software  alpha
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
DTrackTimeBased_factory_Combo.h
Go to the documentation of this file.
1 #ifndef _DTrackTimeBased_factory_Combo_
2 #define _DTrackTimeBased_factory_Combo_
3 
4 #include <iostream>
5 #include <vector>
6 #include <set>
7 #include <map>
8 
9 #include "JANA/JFactory.h"
10 #include "particleType.h"
11 
14 #include "PID/DChargedTrack.h"
15 
16 #include "ANALYSIS/DReaction.h"
17 
18 using namespace jana;
19 using namespace std;
20 
21 class DTrackTimeBased_factory_Combo:public jana::JFactory<DTrackTimeBased>
22 {
23  public:
24  DTrackTimeBased_factory_Combo(){use_factory = 1;}; //prevents JANA from searching the input file for these objects
26  const char* Tag(void){return "Combo";}
27 
28  vector<Particle_t> Get_ParticleIDsToTry(Particle_t locPID) const
29  {
30  auto locIterator = dParticleIDsToTry.find(locPID);
31  if(locIterator == dParticleIDsToTry.end())
32  return vector<Particle_t>();
33  return locIterator->second;
34  }
35 
36  private:
37  jerror_t init(void); ///< Called once at program start.
38  jerror_t brun(jana::JEventLoop *locEventLoop, int32_t runnumber); ///< Called everytime a new run number is detected.
39  jerror_t evnt(jana::JEventLoop *locEventLoop, uint64_t eventnumber); ///< Called every event.
40 
41  void Create_PIDsAsNeeded(const DChargedTrack* locChargedTrack, set<Particle_t>& locPIDs);
42  const DChargedTrackHypothesis* Get_ChargedHypothesisToUse(const DChargedTrack* locChargedTrack, Particle_t locDesiredPID);
43  DTrackTimeBased* Convert_ChargedTrack(const DChargedTrackHypothesis* locChargedTrackHypothesis, Particle_t locNewPID);
44 
45  map<Particle_t, vector<Particle_t> > dParticleIDsToTry;
46 
47  set<Particle_t> dPositivelyChargedPIDs;
48  set<Particle_t> dNegativelyChargedPIDs;
49 
51 };
52 
53 #endif // _DTrackTimeBased_factory_Combo_
map< Particle_t, vector< Particle_t > > dParticleIDsToTry
vector< Particle_t > Get_ParticleIDsToTry(Particle_t locPID) const
Particle_t
Definition: particleType.h:12