119 #ifndef StAssociationMaker_HH
120 #define StAssociationMaker_HH
149 unsigned int nPingsTpc;
150 unsigned int nPingsSvt;
151 unsigned int nPingsSsd;
152 unsigned int nPingsFtpc;
161 #if !defined(ST_NO_NAMESPACES)
166 #include "StMcHitComparisons.hh"
225 #ifndef ST_NO_TEMPLATE_DEF_ARGS
229 typedef multimap<const StTpcHit*, const StMcTpcHit*, compHit> rcTpcHitMapType;
230 typedef multimap<const StMcTpcHit*, const StTpcHit*, compMcHit> mcTpcHitMapType;
234 typedef multimap<const StSvtHit*, const StMcSvtHit*, compHit> rcSvtHitMapType;
235 typedef multimap<const StMcSvtHit*, const StSvtHit*, compMcHit> mcSvtHitMapType;
239 typedef multimap<const StSsdHit*, const StMcSsdHit*, compHit> rcSsdHitMapType;
240 typedef multimap<const StMcSsdHit*, const StSsdHit*, compMcHit> mcSsdHitMapType;
244 typedef multimap<const StFtpcHit*, const StMcFtpcHit*, compFtpcHit> rcFtpcHitMapType;
245 typedef multimap<const StMcFtpcHit*, const StFtpcHit*, compMcFtpcHit> mcFtpcHitMapType;
249 typedef multimap<const StGlobalTrack*, StTrackPairInfo*, compTrack> rcTrackMapType;
250 typedef multimap<const StMcTrack*, StTrackPairInfo*, compMcTrack> mcTrackMapType;
254 typedef multimap<const StKinkVertex*, const StMcVertex*, compKinkVertex> rcKinkMapType;
255 typedef multimap<const StMcVertex*, const StKinkVertex*, compMcVertex> mcKinkMapType;
259 typedef multimap<const StV0Vertex*, const StMcVertex*, compV0Vertex> rcV0MapType;
260 typedef multimap<const StMcVertex*, const StV0Vertex*, compMcVertex> mcV0MapType;
264 typedef multimap<const StXiVertex*, const StMcVertex*, compXiVertex> rcXiMapType;
265 typedef multimap<const StMcVertex*, const StXiVertex*, compMcVertex> mcXiMapType;
273 typedef const StTpcHit* rcTpcHitMapKey;
274 typedef const StTpcHit* mcTpcHitMapValue;
278 typedef multimap<rcTpcHitMapKey, rcTpcHitMapValue,
compHit,
279 allocator< OS_PAIR(rcTpcHitMapKey, rcTpcHitMapValue) > > rcTpcHitMapType;
281 typedef multimap<mcTpcHitMapKey, mcTpcHitMapValue,
compMcHit,
282 allocator< OS_PAIR(mcTpcHitMapKey, mcTpcHitMapValue) > > mcTpcHitMapType;
286 typedef const StSvtHit* rcSvtHitMapKey;
287 typedef const StSvtHit* mcSvtHitMapValue;
291 typedef multimap<rcSvtHitMapKey, rcSvtHitMapValue,
compHit,
292 allocator< OS_PAIR(rcSvtHitMapKey, rcSvtHitMapValue) > > rcSvtHitMapType;
294 typedef multimap<mcSvtHitMapKey, mcSvtHitMapValue,
compMcHit,
295 allocator< OS_PAIR(mcSvtHitMapKey, mcSvtHitMapValue) > > mcSvtHitMapType;
299 typedef const StSsdHit* rcSsdHitMapKey;
300 typedef const StSsdHit* mcSsdHitMapValue;
304 typedef multimap<rcSsdHitMapKey, rcSsdHitMapValue,
compHit,
305 allocator< OS_PAIR(rcSsdHitMapKey, rcSsdHitMapValue) > > rcSsdHitMapType;
307 typedef multimap<mcSsdHitMapKey, mcSsdHitMapValue,
compMcHit,
308 allocator< OS_PAIR(mcSsdHitMapKey, mcSsdHitMapValue) > > mcSsdHitMapType;
312 typedef const StFtpcHit* rcFtpcHitMapKey;
313 typedef const StFtpcHit* mcFtpcHitMapValue;
317 typedef multimap<rcFtpcHitMapKey, rcFtpcHitMapValue,
compFtpcHit,
318 allocator< OS_PAIR(rcFtpcHitMapKey, rcFtpcHitMapValue) > > rcFtpcHitMapType;
320 typedef multimap<mcFtpcHitMapKey, mcFtpcHitMapValue,
compMcFtpcHit,
321 allocator< OS_PAIR(mcFtpcHitMapKey, mcFtpcHitMapValue) > > mcFtpcHitMapType;
330 typedef multimap<rcTrackMapKey, trackMapValue,
compTrack,
331 allocator< OS_PAIR(rcTrackMapKey, trackMapValue) > > rcTrackMapType;
332 typedef multimap<mcTrackMapKey, trackMapValue,
compMcTrack,
333 allocator< OS_PAIR(mcTrackMapKey, trackMapValue) > > mcTrackMapType;
343 allocator< OS_PAIR(rcKinkMapKey, rcKinkMapValue) > > rcKinkMapType;
344 typedef multimap<mcKinkMapKey, mcKinkMapValue,
compMcVertex,
345 allocator< OS_PAIR(mcKinkMapKey, mcKinkMapValue) > > mcKinkMapType;
354 typedef multimap<rcV0MapKey, rcV0MapValue,
compV0Vertex,
355 allocator< OS_PAIR(rcV0MapKey, rcV0MapValue) > > rcV0MapType;
356 typedef multimap<mcV0MapKey, mcV0MapValue,
compMcVertex,
357 allocator< OS_PAIR(mcV0MapKey, mcV0MapValue) > > mcV0MapType;
366 typedef multimap<rcXiMapKey, rcXiMapValue,
compXiVertex,
367 allocator< OS_PAIR(rcXiMapKey, rcXiMapValue) > > rcXiMapType;
368 typedef multimap<mcXiMapKey, mcXiMapValue,
compMcVertex,
369 allocator< OS_PAIR(mcXiMapKey, mcXiMapValue) > > mcXiMapType;
372 typedef rcTpcHitMapType::iterator rcTpcHitMapIter;
373 typedef rcTpcHitMapType::value_type rcTpcHitMapValType;
374 typedef rcSvtHitMapType::iterator rcSvtHitMapIter;
375 typedef rcSvtHitMapType::value_type rcSvtHitMapValType;
376 typedef rcSsdHitMapType::iterator rcSsdHitMapIter;
377 typedef rcSsdHitMapType::value_type rcSsdHitMapValType;
378 typedef rcFtpcHitMapType::iterator rcFtpcHitMapIter;
379 typedef rcFtpcHitMapType::value_type rcFtpcHitMapValType;
380 typedef rcTrackMapType::iterator rcTrackMapIter;
381 typedef rcTrackMapType::const_iterator rcTrackMapConstIter;
382 typedef rcTrackMapType::value_type rcTrackMapValType;
383 typedef rcKinkMapType::iterator rcKinkMapIter;
384 typedef rcKinkMapType::const_iterator rcKinkMapConstIter;
385 typedef rcKinkMapType::value_type rcKinkMapValType;
386 typedef rcV0MapType::iterator rcV0MapIter;
387 typedef rcV0MapType::const_iterator rcV0MapConstIter;
388 typedef rcV0MapType::value_type rcV0MapValType;
389 typedef rcXiMapType::iterator rcXiMapIter;
390 typedef rcXiMapType::const_iterator rcXiMapConstIter;
391 typedef rcXiMapType::value_type rcXiMapValType;
393 typedef mcTpcHitMapType::iterator mcTpcHitMapIter;
394 typedef mcTpcHitMapType::value_type mcTpcHitMapValType;
395 typedef mcSvtHitMapType::iterator mcSvtHitMapIter;
396 typedef mcSvtHitMapType::value_type mcSvtHitMapValType;
397 typedef mcSsdHitMapType::iterator mcSsdHitMapIter;
398 typedef mcSsdHitMapType::value_type mcSsdHitMapValType;
399 typedef mcFtpcHitMapType::iterator mcFtpcHitMapIter;
400 typedef mcFtpcHitMapType::value_type mcFtpcHitMapValType;
401 typedef mcTrackMapType::iterator mcTrackMapIter;
402 typedef mcTrackMapType::const_iterator mcTrackMapConstIter;
403 typedef mcTrackMapType::value_type mcTrackMapValType;
404 typedef mcKinkMapType::iterator mcKinkMapIter;
405 typedef mcKinkMapType::const_iterator mcKinkMapConstIter;
406 typedef mcKinkMapType::value_type mcKinkMapValType;
407 typedef mcV0MapType::iterator mcV0MapIter;
408 typedef mcV0MapType::const_iterator mcV0MapConstIter;
409 typedef mcV0MapType::value_type mcV0MapValType;
410 typedef mcXiMapType::iterator mcXiMapIter;
411 typedef mcXiMapType::const_iterator mcXiMapConstIter;
412 typedef mcXiMapType::value_type mcXiMapValType;
414 class rcTpcHitMapType;
415 class rcTpcHitMapIter;
416 class rcTpcHitMapValType;
417 class rcSvtHitMapType;
418 class rcSvtHitMapIter;
419 class rcSvtHitMapType;
420 class rcSsdHitMapType;
421 class rcSsdHitMapIter;
422 class rcSsdHitMapType;
423 class rcFtpcHitMapType;
424 class rcFtpcHitMapIter;
425 class rcFtpcHitMapValType;
426 class rcTrackMapType;
427 class rcTrackMapValType;
428 class rcTrackMapIter;
429 class rcTrackMapConstIter;
431 class rcKinkMapValType;
433 class rcKinkMapConstIter;
435 class rcV0MapValType;
437 class rcV0MapConstIter;
439 class rcXiMapValType;
441 class rcXiMapConstIter;
443 class mcTpcHitMapType;
444 class mcTpcHitMapIter;
445 class mcTpcHitMapValType;
446 class mcSvtHitMapType;
447 class mcSvtHitMapIter;
448 class mcSvtHitMapValType;
449 class mcSsdHitMapType;
450 class mcSsdHitMapIter;
451 class mcSsdHitMapValType;
452 class mcFtpcHitMapType;
453 class mcFtpcHitMapIter;
454 class mcFtpcHitMapValType;
455 class mcTrackMapType;
456 class mcTrackMapValType;
457 class mcTrackMapIter;
458 class mcTrackMapConstIter;
460 class mcKinkMapValType;
462 class mcKinkMapConstIter;
464 class mcV0MapValType;
466 class mcV0MapConstIter;
468 class mcXiMapValType;
470 class mcXiMapConstIter;
480 const char* title =
"event/StAssociationMaker");
482 virtual void Clear(
const char* opt=
"");
483 virtual Int_t Init();
484 virtual Int_t
Make();
486 void useL3Trigger() {mL3TriggerOn =
true;}
487 void useInTracker() {mInTrackerOn =
true;}
488 void useEstTracks() {mEstTracksOn =
true;}
489 void useDistanceAssoc() {mDistanceAssoc =
true;}
490 void useIdAssoc() {mDistanceAssoc =
false;}
492 void dontUseL3Trigger() {mL3TriggerOn = kFALSE;}
493 void dontUseInTracker() {mInTrackerOn = kFALSE;}
494 void dontUseEstTracks() {mEstTracksOn = kFALSE;}
495 void dontUseDistanceAssoc() {mDistanceAssoc = kFALSE;}
496 void dontUseIdAssoc() {mDistanceAssoc = kTRUE;}
497 TH2F* mTpcLocalHitResolution;
505 mcTpcHitMapType* mcTpcHitMap() {
return mMcTpcHitMap; }
506 rcSvtHitMapType* rcSvtHitMap() {
return mRcSvtHitMap; }
507 mcSvtHitMapType* mcSvtHitMap() {
return mMcSvtHitMap; }
508 rcSsdHitMapType* rcSsdHitMap() {
return mRcSsdHitMap; }
509 mcSsdHitMapType* mcSsdHitMap() {
return mMcSsdHitMap; }
510 rcFtpcHitMapType* rcFtpcHitMap() {
return mRcFtpcHitMap; }
511 mcFtpcHitMapType* mcFtpcHitMap() {
return mMcFtpcHitMap; }
512 rcTrackMapType* rcTrackMap() {
return mRcTrackMap; }
513 mcTrackMapType* mcTrackMap() {
return mMcTrackMap; }
514 rcKinkMapType* rcKinkMap() {
return mRcKinkMap; }
515 mcKinkMapType* mcKinkMap() {
return mMcKinkMap; }
516 rcV0MapType* rcV0Map() {
return mRcV0Map; }
517 mcV0MapType* mcV0Map() {
return mMcV0Map; }
518 rcXiMapType* rcXiMap() {
return mRcXiMap; }
519 mcXiMapType* mcXiMap() {
return mMcXiMap; }
521 Bool_t doPrintMemoryInfo;
526 rcTpcHitMapType* mRcTpcHitMap;
527 mcTpcHitMapType* mMcTpcHitMap;
528 rcSvtHitMapType* mRcSvtHitMap;
529 mcSvtHitMapType* mMcSvtHitMap;
530 rcSsdHitMapType* mRcSsdHitMap;
531 mcSsdHitMapType* mMcSsdHitMap;
532 rcFtpcHitMapType* mRcFtpcHitMap;
533 mcFtpcHitMapType* mMcFtpcHitMap;
534 rcTrackMapType* mRcTrackMap;
535 mcTrackMapType* mMcTrackMap;
536 rcKinkMapType* mRcKinkMap;
537 mcKinkMapType* mMcKinkMap;
538 rcV0MapType* mRcV0Map;
539 mcV0MapType* mMcV0Map;
540 rcXiMapType* mRcXiMap;
541 mcXiMapType* mMcXiMap;
548 virtual const char* GetCVS()
const
549 {
static const char cvs[]=
"Tag $Name: $ $Id: StAssociationMaker.h,v 1.28 2015/03/13 18:44:44 perev Exp $ built " __DATE__
" " __TIME__;
return cvs;}
555 ostream& operator<<(ostream& out,
556 const pair<const StGlobalTrack* const, StTrackPairInfo*>& );
557 ostream& operator<<(ostream& out,
558 const pair<const StMcTrack* const, StTrackPairInfo*>& );
560 ostream& operator<<(ostream& out,
const rcTrackMapType& );
561 ostream& operator<<(ostream& out,
const mcTrackMapType& );
TH2F * mSsdHitResolution
Diff btw global x and z coords of SVT hits.
TH2F * mFtpcHitResolution
Diff btw global x and z coords of SSD hits.
Monte Carlo Track class All information on a simulated track is stored in this class: kinematics...
rcTpcHitMapType * rcTpcHitMap()
Diff btw global r and phi coords of FTPC hits.
TH2F * mSvtHitResolution
Diff btw local x and z coords of TPC hits.