StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
StAssociationMaker.h
1 /**********************************************
2  *
3  * $Id: StAssociationMaker.h,v 1.28 2015/03/13 18:44:44 perev Exp $
4  * $Log: StAssociationMaker.h,v $
5  * Revision 1.28 2015/03/13 18:44:44 perev
6  * Roll back
7  *
8  * Revision 1.26 2014/08/06 11:42:52 jeromel
9  * Suffix on literals need to be space (later gcc compiler makes it an error) - first wave of fixes
10  *
11  * Revision 1.25 2011/04/01 19:40:07 perev
12  * const++
13  *
14  * Revision 1.24 2010/06/22 22:06:33 fine
15  * roll back the previous version to restore the nightly builds
16  *
17  * Revision 1.22 2009/11/10 20:19:36 fisyak
18  * Change default to ITTF
19  *
20  * Revision 1.21 2005/11/22 21:44:16 fisyak
21  * Add Ssd to Associator, add IdTruth options for Svt and Ssd
22  *
23  * Revision 1.20 2004/03/26 23:26:34 calderon
24  * -Adding switch to control Association based on IdTruth or on Distance.
25  * -Adding debug2 output to print out all hits in a padrow, both reco and MC,
26  * along with the IdTruth, quality (StHit) and the parentTrack()->key() (StMcHit)
27  * as well as the hit coordiantes. This is useful for debugging, but produces
28  * lots of output, so it is only turned on in Debug()>=2.
29  *
30  * Revision 1.19 2004/02/08 00:08:19 calderon
31  * Added method useEstTracks() requested by Helen, for association of estGlobals.
32  *
33  * Revision 1.18 2003/09/10 19:47:03 perev
34  * ansi corrs
35  *
36  * Revision 1.17 2002/04/11 22:11:11 calderon
37  * Changes to incorporate association of tracks from Sti
38  * Basically all that was needed was to add a flag to switch between
39  * Sti and regular EGR global tracks, and based on this flag, one looks for
40  * the proper bits to be set in the StTrack::encodedMethod() member function.
41  * Current default behaviour is still to use EGR global tracks, and the modification
42  * is done in the macro with a call to StAssociationMaker::useInTracker()
43  *
44  * Revision 1.16 2001/04/27 18:41:48 calderon
45  * Update with switches to use L3 Trigger.
46  *
47  * Revision 1.15 2000/06/09 19:54:02 calderon
48  * use the new StMcHitComparisons
49  * use the message manager more extensively
50  * protection against the absence of hit collections
51  *
52  * Revision 1.14 2000/05/11 15:34:29 calderon
53  * added option to print memory usage using StMemoryInfo, useful
54  * for checking leaks. If used, a lot of status information is printed
55  * at several points in Make() and then in Clear(). Whatever is allocated
56  * during Make() should be accounted for in Clear(). By default memory is
57  * not checked, so there are a lot less output messages.
58  *
59  * Revision 1.13 2000/04/20 16:56:12 calderon
60  * Speed up the tpc matching algorithm by using a seed to tell the iterator
61  * where to start looping, instead of looping over every hit all the time.
62  * Change the name from "Associations" to "StAssociationMaker"
63  *
64  * Revision 1.12 2000/03/06 18:08:56 calderon
65  * Hit comparisons are used for both sorting the hits in the
66  * StMcEvent containers and for ordering the hits in the multimaps,
67  * so they are kept now in StMcEvent.
68  *
69  * Revision 1.11 2000/01/18 20:53:38 calderon
70  * Changes to work with CC5
71  *
72  * Revision 1.10 1999/12/14 07:07:41 calderon
73  * Added Ratio Number of Common Hits / Number of Reconstructed Hits for
74  * each detector.
75  * Numbering scheme from StEvent & StMcEvent as per SVT request
76  * Added Kink, V0 and Xi vertex associations.
77  *
78  * Revision 1.9 1999/12/08 00:00:24 calderon
79  * New version of StAssociationMaker.
80  * -Uses new StEvent / StMcEvent
81  * -Includes maps using reconstructed and monte carlo objects as keys for:
82  * TPC Hits
83  * SVT Hits
84  * SSD Hits
85  * FTPC Hits
86  * Tracks (using all 3 hit multimaps)
87  *
88  * Revision 1.8 1999/10/01 14:08:55 calderon
89  * Added Local Hit resolution Histogram. It is made by default
90  * without any requirement of association, to serve
91  * as a diagnostic.
92  * Before building track multimap, check the size of the
93  * tpc hit map. If it is too small, print out a warning
94  * and exit.
95  *
96  * Revision 1.7 1999/09/09 23:51:22 calderon
97  * Made the following changes:
98  * StAssociationMaker
99  *
100  * -correct definition of multimap for Solaris/ObjectSpace
101  * -clear candidate vector at the end of reconstructed track loop
102  * -remove # of pings histogram
103  *
104  * StLocalHit
105  *
106  * -use math.h instead of cmath because of abs()
107  * -change abs() to fabs() everywhere
108  * -change bool's to int's so Solaris doesn't complain
109  *
110  * Revision 1.6 1999/07/30 16:19:14 calderon
111  * Use value_type typedef for inserting pairs in multimaps, Victor corrected iterators on HP in SL99h, Improved use of const for HP compilation
112  *
113  * Revision 1.5 1999/07/28 20:27:26 calderon
114  * Version with SL99f libraries
115  *
116  *
117  **********************************************/
118 
119 #ifndef StAssociationMaker_HH
120 #define StAssociationMaker_HH
121 
122 #ifndef StMaker_H
123 #include "StMaker.h"
124 #endif
125 
126 class StTpcHit;
127 class StSvtHit;
128 class StSsdHit;
129 class StFtpcHit;
130 class StGlobalTrack;
131 class StVertex;
132 class StKinkVertex;
133 class StV0Vertex;
134 class StXiVertex;
135 
136 class StMcTpcHit;
137 class StMcSvtHit;
138 class StMcSsdHit;
139 class StMcFtpcHit;
140 class StMcTrack;
141 class StMcVertex;
142 
143 class StTrackPairInfo;
144 
145 class TH2F;
146 
147 struct trackPing {
148  const StMcTrack* mcTrack;
149  unsigned int nPingsTpc;
150  unsigned int nPingsSvt;
151  unsigned int nPingsSsd;
152  unsigned int nPingsFtpc;
153 };
154 
155 
156 
157 
158 #ifndef __CINT__
159 #include <map>
160 #include <utility>
161 #if !defined(ST_NO_NAMESPACES)
162 using std::multimap;
163 using std::pair;
164 #endif
165 
166 #include "StMcHitComparisons.hh"
167 // // Define the comparisons to be used in the multimaps
168 // struct compTpcHit{
169 // bool operator()(const StTpcHit*,const StTpcHit*) const;
170 // };
171 
172 // struct compMcTpcHit{
173 // bool operator()(const StMcTpcHit*,const StMcTpcHit*) const;
174 // };
175 
176 // struct compSvtHit{
177 // bool operator()(const StSvtHit*,const StSvtHit*) const;
178 // };
179 
180 // struct compMcSvtHit{
181 // bool operator()(const StMcSvtHit*,const StMcSvtHit*) const;
182 // };
183 // struct compSsdHit{
184 // bool operator()(const StSsdHit*,const StSsdHit*) const;
185 // };
186 
187 // struct compMcSsdHit{
188 // bool operator()(const StMcSsdHit*,const StMcSsdHit*) const;
189 // };
190 
191 // struct compFtpcHit{
192 // bool operator()(const StFtpcHit*,const StFtpcHit*) const;
193 // };
194 
195 // struct compMcFtpcHit{
196 // bool operator()(const StMcFtpcHit*,const StMcFtpcHit*) const;
197 // };
198 
199 
200 struct compTrack {
201  bool operator()(const StGlobalTrack*, const StGlobalTrack*) const;
202 };
203 
204 struct compMcTrack {
205  bool operator()(const StMcTrack*, const StMcTrack*) const;
206 };
207 
209  bool operator()(const StKinkVertex*, const StKinkVertex*) const;
210 };
211 struct compV0Vertex {
212  bool operator()(const StV0Vertex*, const StV0Vertex*) const;
213 };
214 struct compXiVertex {
215  bool operator()(const StXiVertex*, const StXiVertex*) const;
216 };
217 
218 struct compMcVertex {
219  bool operator()(const StMcVertex*, const StMcVertex*) const;
220 };
221 
222 // Need to define the maps & Iterators,
223 // typedef them so we don't write the whole thing out every time
224 
225 #ifndef ST_NO_TEMPLATE_DEF_ARGS
226 //
227 // TPC
228 //
229 typedef multimap<const StTpcHit*, const StMcTpcHit*, compHit> rcTpcHitMapType;
230 typedef multimap<const StMcTpcHit*, const StTpcHit*, compMcHit> mcTpcHitMapType;
231 //
232 // SVT
233 //
234 typedef multimap<const StSvtHit*, const StMcSvtHit*, compHit> rcSvtHitMapType;
235 typedef multimap<const StMcSvtHit*, const StSvtHit*, compMcHit> mcSvtHitMapType;
236 //
237 // SSD
238 //
239 typedef multimap<const StSsdHit*, const StMcSsdHit*, compHit> rcSsdHitMapType;
240 typedef multimap<const StMcSsdHit*, const StSsdHit*, compMcHit> mcSsdHitMapType;
241 //
242 // FTPC
243 //
244 typedef multimap<const StFtpcHit*, const StMcFtpcHit*, compFtpcHit> rcFtpcHitMapType;
245 typedef multimap<const StMcFtpcHit*, const StFtpcHit*, compMcFtpcHit> mcFtpcHitMapType;
246 //
247 // Tracks
248 //
249 typedef multimap<const StGlobalTrack*, StTrackPairInfo*, compTrack> rcTrackMapType;
250 typedef multimap<const StMcTrack*, StTrackPairInfo*, compMcTrack> mcTrackMapType;
251 //
252 // Kink Vertices
253 //
254 typedef multimap<const StKinkVertex*, const StMcVertex*, compKinkVertex> rcKinkMapType;
255 typedef multimap<const StMcVertex*, const StKinkVertex*, compMcVertex> mcKinkMapType;
256 //
257 // V0 Vertices
258 //
259 typedef multimap<const StV0Vertex*, const StMcVertex*, compV0Vertex> rcV0MapType;
260 typedef multimap<const StMcVertex*, const StV0Vertex*, compMcVertex> mcV0MapType;
261 //
262 // Xi Vertices
263 //
264 typedef multimap<const StXiVertex*, const StMcVertex*, compXiVertex> rcXiMapType;
265 typedef multimap<const StMcVertex*, const StXiVertex*, compMcVertex> mcXiMapType;
266 
267 #else
268 // This type of definition is really criptic, but this is what ObjectSpace wants...
269 
270 //
271 // TPC
272 //
273 typedef const StTpcHit* rcTpcHitMapKey;
274 typedef const StTpcHit* mcTpcHitMapValue;
275 typedef const StMcTpcHit* rcTpcHitMapValue;
276 typedef const StMcTpcHit* mcTpcHitMapKey;
277 
278 typedef multimap<rcTpcHitMapKey, rcTpcHitMapValue, compHit,
279  allocator< OS_PAIR(rcTpcHitMapKey, rcTpcHitMapValue) > > rcTpcHitMapType;
280 
281 typedef multimap<mcTpcHitMapKey, mcTpcHitMapValue, compMcHit,
282  allocator< OS_PAIR(mcTpcHitMapKey, mcTpcHitMapValue) > > mcTpcHitMapType;
283 //
284 // SVT
285 //
286 typedef const StSvtHit* rcSvtHitMapKey;
287 typedef const StSvtHit* mcSvtHitMapValue;
288 typedef const StMcSvtHit* rcSvtHitMapValue;
289 typedef const StMcSvtHit* mcSvtHitMapKey;
290 
291 typedef multimap<rcSvtHitMapKey, rcSvtHitMapValue, compHit,
292  allocator< OS_PAIR(rcSvtHitMapKey, rcSvtHitMapValue) > > rcSvtHitMapType;
293 
294 typedef multimap<mcSvtHitMapKey, mcSvtHitMapValue, compMcHit,
295  allocator< OS_PAIR(mcSvtHitMapKey, mcSvtHitMapValue) > > mcSvtHitMapType;
296 //
297 // SSD
298 //
299 typedef const StSsdHit* rcSsdHitMapKey;
300 typedef const StSsdHit* mcSsdHitMapValue;
301 typedef const StMcSsdHit* rcSsdHitMapValue;
302 typedef const StMcSsdHit* mcSsdHitMapKey;
303 
304 typedef multimap<rcSsdHitMapKey, rcSsdHitMapValue, compHit,
305  allocator< OS_PAIR(rcSsdHitMapKey, rcSsdHitMapValue) > > rcSsdHitMapType;
306 
307 typedef multimap<mcSsdHitMapKey, mcSsdHitMapValue, compMcHit,
308  allocator< OS_PAIR(mcSsdHitMapKey, mcSsdHitMapValue) > > mcSsdHitMapType;
309 //
310 // FTPC
311 //
312 typedef const StFtpcHit* rcFtpcHitMapKey;
313 typedef const StFtpcHit* mcFtpcHitMapValue;
314 typedef const StMcFtpcHit* rcFtpcHitMapValue;
315 typedef const StMcFtpcHit* mcFtpcHitMapKey;
316 
317 typedef multimap<rcFtpcHitMapKey, rcFtpcHitMapValue, compFtpcHit,
318  allocator< OS_PAIR(rcFtpcHitMapKey, rcFtpcHitMapValue) > > rcFtpcHitMapType;
319 
320 typedef multimap<mcFtpcHitMapKey, mcFtpcHitMapValue, compMcFtpcHit,
321  allocator< OS_PAIR(mcFtpcHitMapKey, mcFtpcHitMapValue) > > mcFtpcHitMapType;
322 
323 //
324 // Tracks
325 //
326 typedef const StGlobalTrack* rcTrackMapKey;
327 typedef const StMcTrack* mcTrackMapKey;
328 typedef StTrackPairInfo* trackMapValue;
329 
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;
334 //
335 // Kink Vertices
336 //
337 typedef const StKinkVertex* rcKinkMapKey;
338 typedef const StKinkVertex* mcKinkMapValue;
339 typedef const StMcVertex* rcKinkMapValue;
340 typedef const StMcVertex* mcKinkMapKey;
341 
342 typedef multimap<rcKinkMapKey, rcKinkMapValue, compKinkVertex,
343  allocator< OS_PAIR(rcKinkMapKey, rcKinkMapValue) > > rcKinkMapType;
344 typedef multimap<mcKinkMapKey, mcKinkMapValue, compMcVertex,
345  allocator< OS_PAIR(mcKinkMapKey, mcKinkMapValue) > > mcKinkMapType;
346 //
347 // V0 Vertices
348 //
349 typedef const StV0Vertex* rcV0MapKey;
350 typedef const StV0Vertex* mcV0MapValue;
351 typedef const StMcVertex* rcV0MapValue;
352 typedef const StMcVertex* mcV0MapKey;
353 
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;
358 //
359 // Xi Vertices
360 //
361 typedef const StXiVertex* rcXiMapKey;
362 typedef const StXiVertex* mcXiMapValue;
363 typedef const StMcVertex* rcXiMapValue;
364 typedef const StMcVertex* mcXiMapKey;
365 
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;
370 
371 #endif
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;
392 
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;
413 #else
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;
430 class rcKinkMapType;
431 class rcKinkMapValType;
432 class rcKinkMapIter;
433 class rcKinkMapConstIter;
434 class rcV0MapType;
435 class rcV0MapValType;
436 class rcV0MapIter;
437 class rcV0MapConstIter;
438 class rcXiMapType;
439 class rcXiMapValType;
440 class rcXiMapIter;
441 class rcXiMapConstIter;
442 
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;
459 class mcKinkMapType;
460 class mcKinkMapValType;
461 class mcKinkMapIter;
462 class mcKinkMapConstIter;
463 class mcV0MapType;
464 class mcV0MapValType;
465 class mcV0MapIter;
466 class mcV0MapConstIter;
467 class mcXiMapType;
468 class mcXiMapValType;
469 class mcXiMapIter;
470 class mcXiMapConstIter;
471 
472 #endif
473 
474 class StAssociationMaker : public StMaker {
475 
476  public:
477 
478  StMaker* currentChain;
479  StAssociationMaker(const char* name = "StAssociationMaker",
480  const char* title = "event/StAssociationMaker");
481  virtual ~StAssociationMaker();
482  virtual void Clear(const char* opt="");
483  virtual Int_t Init();
484  virtual Int_t Make();
485  virtual Int_t Finish();
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;}
491 
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;
501 
502  // Have to tell CINT not to parse the Multimap stuff, or else it pukes.
503 
504  rcTpcHitMapType* rcTpcHitMap() { return mRcTpcHitMap; }
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; }
520 
521  Bool_t doPrintMemoryInfo;
522 private:
523 
524  // Define the maps. Note they are pointers to the maps.
525 
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;
542 
543  Bool_t drawinit;
544  bool mL3TriggerOn;
545  bool mInTrackerOn;
546  bool mEstTracksOn;
547  bool mDistanceAssoc;
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;}
550  // the following is a ROOT macro that is needed in all ROOT accessible code
551  ClassDef(StAssociationMaker,0)
552 
553 };
554 #ifndef __CINT__
555 ostream& operator<<(ostream& out,
556  const pair<const StGlobalTrack* const, StTrackPairInfo*>& );
557 ostream& operator<<(ostream& out,
558  const pair<const StMcTrack* const, StTrackPairInfo*>& );
559 
560 ostream& operator<<(ostream& out, const rcTrackMapType& );
561 ostream& operator<<(ostream& out, const mcTrackMapType& );
562 #endif
563 #endif
564 
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...
Definition: StMcTrack.hh:144
rcTpcHitMapType * rcTpcHitMap()
Diff btw global r and phi coords of FTPC hits.
TH2F * mSvtHitResolution
Diff btw local x and z coords of TPC hits.