6 #include "StEventTypes.h"
7 #include "StMcEventTypes.hh"
8 #include "StEEmcPool/StEEmcAssociationMaker/StEEmcAssociationMaker.h"
9 #include "StEEmcMatchMaker.h"
18 StEEmcMatchMaker::~StEEmcMatchMaker()
22 Int_t StEEmcMatchMaker::Init()
24 return StMaker::Init();
30 const TString detname[] = {
"etow",
"eprs",
"esmdu",
"esmdv"};
31 const TString part[] = {
"none",
"gamma",
"e+",
"e-",
"nu",
32 "mu+",
"mu-",
"pi0",
"pi+",
33 "pi-",
"k0l",
"k+",
"k-",
34 "n",
"p",
"p-",
"k0s"};
41 for(
int i = 0; i < 4; i++) {
42 cout <<
"-----------------------------------------------------\n";
43 cout <<
"ASSOCIATION FOR DETECTOR "<<detname[i].Data()<<endl;
49 cout <<
"\nTrack->Cluster Association Map\n";
53 for(multiEEmcTrackClusterIter j=tMap->begin(); j!=tMap->end(); j++)
59 if(track != oldTrack) {
60 if(track->geantId() > 16)
continue;
63 <<
" McTrack" <<
"(" <<part[track->geantId()].Data() <<
")"
64 <<
" pt = " << track->pt()
65 <<
", TReta = " <<track->pseudoRapidity() << endl;
80 cout <<
" " << nCluster <<
" Cluster " << endl;
81 cout <<
" E=" << cluster->energy()
82 <<
", eta=" << cluster->eta()
83 <<
", phi=" << cluster->phi()
84 <<
", FrTr=" << value->getFractionTrack()
85 <<
", FrCl=" << value->getFractionCluster()<<endl;
97 cout <<
"\nCluster->Track Association Map\n";
101 for(multiEEmcClusterTrackIter j=cMap->begin(); j!=cMap->end(); j++)
104 if(!cluster)
continue;
107 if(cluster != oldCluster) {
110 cout <<
"\n"<< nCluster <<
" Cluster"
111 <<
" E=" << cluster->energy()
112 <<
", eta=" << cluster->eta()
113 <<
", phi="<< cluster->phi() << endl;
126 cout <<
" " << nTrack
127 <<
" McTrack" <<
"(" <<part[track->geantId()].Data() <<
")"<<endl
128 <<
" pt=" << track->pt()
129 <<
", TReta=" <<track->pseudoRapidity()
130 <<
", FrTr = " <<value->getFractionTrack()
131 <<
", FrCl = " <<value->getFractionCluster()<<endl;
143 cout <<
"\n===========================================================\n";
144 cout <<
"\nTrack->Point Association Map\n";
148 for(multiEEmcTrackPointIter j=tMap1->begin(); j!=tMap1->end(); j++)
154 if(track != oldTrack) {
155 if(track->geantId() > 16)
continue;
158 <<
" McTrack" <<
"(" <<part[track->geantId()].Data() <<
")"
159 <<
" pt = " << track->pt()
160 <<
", TReta = " <<track->pseudoRapidity() << endl;
175 cout <<
" " << nPoint <<
" Point "
176 <<
" E=" << point->energy()
177 <<
", Assoc.=" << value->getAssociation()
179 for(
int i = 0; i< 4; i++)
180 if (value->getAssociation(i+1) == 1)
181 cout <<
" " << detname[i].Data();
194 cout <<
"\nPoint->Track Association Map\n";
198 for(multiEEmcPointTrackIter j=pMap->begin(); j!=pMap->end(); j++)
207 if(point != oldPoint) {
210 cout <<
"\n"<< nPoint <<
" Point"
211 <<
" E=" << point->energy()
213 for(
int i = 0; i< 4; i++) {
215 cout <<
" det: " << detname[i].Data();
228 cout <<
" " << nTrack
229 <<
" McTrack" <<
"(" <<part[track->geantId()].Data() <<
")"
230 <<
" pt=" << track->pt()
231 <<
", TReta=" <<track->pseudoRapidity() << endl;
multiEEmcClusterTrack * getClusterTrackMap(Int_t i)
returns multimap for association betwwen clusters and MC tracks
multiEEmcTrackCluster * getTrackClusterMap(Int_t i)
returns multimap for association betwwen MC tracks and clusters
int getAssociation() const
returns Association information between MC track and EMC point
Monte Carlo Track class All information on a simulated track is stored in this class: kinematics...
multiEEmcPointTrack * getPointTrackMap()
returns multimap for association betwwen points and MC tracks
multiEEmcTrackPoint * getTrackPointMap()
returns multimap for association betwwen MC tracks and points
const StMcTrack * getTrack() const
returns pointer to the MC track