HYDRA_development_version
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
hgeantkine.h
Go to the documentation of this file.
1 //*************************************************************************
2 //
3 // HGeantKine
4 //
5 // GEANT KINE event data (GEANT data on primary and secondary tracks)
6 //
7 // last modified on 23/03/2005 by R.Holzmann (GSI)
8 //*************************************************************************
9 #ifndef HGEANTKINE_H
10 #define HGEANTKINE_H
11 
12 #include "TMath.h"
13 #include "TObject.h"
14 #include "hades.h"
15 #include "hrecevent.h"
16 #include "hgeomvector.h"
17 #include "hphysicsconstants.h"
18 #include "hgeantrich.h"
19 #include "hgeantmdc.h"
20 #include "hgeanttof.h"
21 #include "hgeantrpc.h"
22 #include "hgeantemc.h"
23 #include "hgeantwall.h"
24 #include "hgeantstart.h"
25 
26 #include <vector>
27 
28 using namespace std;
29 
30 class HLinkedDataObject;
31 class HCategory;
32 class HLinearCategory;
33 
34 class HGeantKine : public TObject
35 {
36 private:
37  Int_t richIndex; //! internal index variables
38  Int_t mdcIndex; //! used to set up linked chains
39  Int_t tofIndex; //! of hit objects
40  Int_t rpcIndex; //!
41  Int_t showIndex; //!
42  Int_t wallIndex; //!
43  Int_t emcIndex; //!
44  Int_t startIndex; //!
45  HCategory* pRich; //! internal pointers to category
46  HCategory* pMdc; //! used to set up linked chains
47  HCategory* pTof; //! of hit objects
48  HCategory* pRpc; //!
49  HCategory* pShow; //!
50  HCategory* pWall; //!
51  HCategory* pEmc; //!
52  HCategory* pStart; //!
53 
54 protected:
55  Int_t trackNumber; // GEANT track number
56  Int_t parentTrack; // GEANT track number of parent particle
57  Int_t particleID; // GEANT particle ID number
58  Int_t mediumNumber; // GEANT medium of creation number
59  Int_t creationMechanism; // GEANT creation mechanism number
60  Float_t xVertex; // x of track vertex (in mm)
61  Float_t yVertex; // y
62  Float_t zVertex; // z
63  Float_t xMom; // x component of particle momentum (in MeV/c)
64  Float_t yMom; // y
65  Float_t zMom; // z
66  Float_t generatorInfo; // event generator info PLUTO: SourceID : thermal (parentid + 500) or decay code (example : pp->pppi0 ==> 141407)
67  Float_t generatorInfo1; // additional event generator info PLUTO: parentID
68  Float_t generatorInfo2; // additional event generator info PLUTO: parentIndex
69  Float_t generatorWeight; // associated weight
70  Short_t firstRichHit; // index of first hit in RICH category
71  Short_t firstMdcHit; // index of first hit in MDC category
72  Short_t firstTofHit; // index of first hit in TOF category
73  Short_t firstRpcHit; // index of first hit in RPC category
74  Short_t firstShowerHit; // index of first hit in SHOWER category
75  Short_t firstWallHit; // index of first hit in WALL category
76  Short_t firstEmcHit; // index of first hit in EMC category
77  Short_t firstStartHit; // index of first hit in START category
78  Bool_t active; // active flag (set if track participates in a hit)
79  Bool_t suppressed; // flag used to filter out particle hits before digitization
80  Float_t userVal; // stores user specific values (for expample evtSeqnumber of PLUTO particles for embedding)
81  UInt_t acceptance ; // bit wise : 1-25 MDCLAYER 26-27 sys0/sys1 28-31 layer crop highest bit : filled/not filled
82 public:
83  HGeantKine(void);
84  HGeantKine(HGeantKine &aKine);
85  ~HGeantKine(void);
86  void setTrack(Int_t aTrack) { trackNumber = aTrack;}
87  void setParticle(Int_t aTrack, Int_t aID);
88  void setCreator(Int_t aPar, Int_t aMed, Int_t aMech);
89  void setVertex(Float_t ax, Float_t ay, Float_t az);
90  void setMomentum(Float_t apx, Float_t apy, Float_t apz);
91  void setGenerator(Float_t aInfo, Float_t aWeight);
92  void setGenerator(Float_t aInfo, Float_t aInfo1, Float_t aInfo2);
93  void setWeight(Float_t aWeight) {generatorWeight = aWeight;}
94  void getParticle(Int_t &aTrack, Int_t &aID);
95  void getCreator(Int_t &aPar, Int_t &aMed, Int_t &aMech);
96  void setID(Int_t aID) { particleID = aID; }
97  void setMedium(Int_t aMed) { mediumNumber = aMed; }
98  void setMechanism(Int_t aMech) { creationMechanism = aMech; }
99 
100  void getVertex(Float_t &ax, Float_t &ay, Float_t &az);
101  void getVertex(HGeomVector& ver);
102  Float_t getDistFromVertex();
103  void getMomentum(Float_t &apx, Float_t &apy, Float_t &apz);
104  inline Int_t getTrack(void) const { return trackNumber; }
105  inline Int_t getMedium() const { return mediumNumber; }
106  inline Int_t getMechanism() const { return creationMechanism; }
107  inline Int_t getID(void) const { return particleID; }
108  inline Int_t getParentTrack(void) const { return parentTrack; }
109  inline void setParentTrack(Int_t track) { parentTrack = track; }
110  void setNewTrackNumber(Int_t track);
111  Float_t getTotalMomentum2(void) const { return xMom*xMom + yMom*yMom + zMom*zMom; }
112  Float_t getTotalMomentum(void) const { return TMath::Sqrt(getTotalMomentum2()); }
113  Float_t getTransverseMomentum(void) const { return TMath::Sqrt(xMom*xMom + yMom*yMom); }
114  Int_t getSector();
115  Float_t getPhiDeg (Bool_t labSys = kTRUE);
116  Float_t getThetaDeg();
117  Int_t getPhiThetaDeg(Float_t& theta,Float_t& phi, Bool_t labSys = kTRUE);
118 
119  Float_t getM(void) const {return HPhysicsConstants::mass(particleID);}
120  Float_t getE(void) const {return TMath::Sqrt(getM()*getM() + getTotalMomentum2());}
121  Float_t getEkin(void) const {return getE()-getM();}
122  Float_t getRapidity(void) const{return 0.5*TMath::Log((getE()+zMom)/(getE()-zMom));}
123 
124  void getMomentum(HGeomVector &v) { v.setXYZ(xMom, yMom, zMom); }
125  void getGenerator(Float_t &aInfo, Float_t &aWeight);
126  void getGenerator(Float_t &aInfo, Float_t &aInfo1, Float_t &aInfo2);
127  Int_t getGeneratorInfo() const {return generatorInfo;}
128  Int_t getGeneratorInfo1() const {return generatorInfo1;}
129  Int_t getGeneratorInfo2() const {return generatorInfo2;}
130  Float_t getGeneratorWeight() const {return generatorWeight;}
131  static Int_t getGeneration(HGeantKine*);
132  static Int_t getMothers(HGeantKine*, vector<HGeantKine*>& mothers);
133  static Int_t getAllDaughters(HGeantKine* mother,vector<HGeantKine*>& daughters);
134  static Int_t getDaughters(HGeantKine* mother,vector<HGeantKine*>& daughters);
135  static HGeantKine* getChargedDecayDaughter(HGeantKine* mother);
136 
137  inline void setActive(Bool_t flag=kTRUE) {active=flag;}
138  inline void setSuppressed(Bool_t flag=kTRUE) {suppressed=flag;}
139  inline void setUserVal(Float_t val) {userVal=val;}
140  inline Bool_t isActive(void) const {return active;}
141  inline Bool_t isPrimary(void) const {return (parentTrack==0);}
142  inline Bool_t isSuppressed(void) const {return suppressed;}
143  inline Float_t getUserVal(void) const {return userVal;}
144  Bool_t hasAncestor(Int_t track, HLinearCategory* cat=NULL);
145  void printHistory();
146  void print();
147 
148 
149  //--------------------------------------------------------
150  // PLUTO helper functions
151  Bool_t isBugInfo();
152  Bool_t isExternalSource() ;
153  Bool_t isThermalSource() ;
154  static Bool_t isSameExternalSource(HGeantKine* kine1,HGeantKine* kine2);
155  Bool_t isSameExternalSource(HGeantKine* kine1);
156 
157 
158 
159  static Bool_t setChainActive(Int_t track, Bool_t flag=kTRUE, HLinearCategory* cat=NULL);
160  static Bool_t setAllDescendentsActive(Int_t track, Bool_t flag=kTRUE, HLinearCategory* cat=NULL);
161  static Bool_t setAllDescendentsSuppressed(Int_t track, Bool_t flag=kTRUE, HLinearCategory* cat=NULL);
162  static HGeantKine* getParent(Int_t track, HLinearCategory* cat=NULL);
163  static HGeantKine* getGrandParent(Int_t track, HLinearCategory* cat=NULL);
164  static HGeantKine* getPrimary(Int_t track, HLinearCategory* cat=NULL);
165  static HGeantKine* getCommonAncestor(Int_t track1, Int_t track2, HLinearCategory* cat=NULL);
166  static Bool_t suppressTracks(Int_t id, Float_t acceptedFraction, HLinearCategory* cat=NULL);
167 
168  inline Int_t setRichHitIndex(Int_t index);
169  inline Int_t setMdcHitIndex(Int_t index);
170  inline Int_t setTofHitIndex(Int_t index);
171  inline Int_t setRpcHitIndex(Int_t index);
172  inline Int_t setShowerHitIndex(Int_t index);
173  inline Int_t setWallHitIndex(Int_t index);
174  inline Int_t setEmcHitIndex(Int_t index);
175  inline Int_t setStartHitIndex(Int_t index);
176 
177  Int_t getNRichHits(void); // return number of hits in list
178  Int_t getFirstRichHit() {return firstRichHit;}
179  Int_t getNMdcHits(void);
180  Int_t getFirstMdcHit() {return firstMdcHit;}
181  Int_t getNMdcHits(Int_t module);
182  Int_t getNTofHits(void);
183  Int_t getFirstTofHit() {return firstTofHit;}
184  Int_t getNRpcHits(void);
185  Int_t getFirstRpcHit() {return firstRpcHit;}
186  Int_t getNShowerHits(void);
187  Int_t getFirstShowerHit() {return firstShowerHit;}
188  Int_t getNWallHits(void);
189  Int_t getFirstWallHit() {return firstWallHit;}
190  Int_t getNEmcHits(void);
191  Int_t getFirstEmcHit() {return firstEmcHit;}
192  Int_t getNStartHits(void);
193  Int_t getFirstStartHit() {return firstStartHit;}
194 
195  Int_t getRichHits (vector<HGeantRichPhoton*>& v);
196  Int_t getMdcHits (vector<HGeantMdc*>& v);
197  Int_t getTofHits (vector<HGeantTof*>& v);
198  Int_t getRpcHits (vector<HGeantRpc*>& v);
199  Int_t getWallHits (vector<HGeantWall*>& v);
200  Int_t getEmcHits (vector<HGeantEmc*>& v);
201  Int_t getStartHits(vector<HGeantStart*>& v);
202 
203  void setFirstRichHit (Int_t index) { firstRichHit = index;}
204  void setFirstMdcHit (Int_t index) { firstMdcHit = index;}
205  void setFirstTofHit (Int_t index) { firstTofHit = index;}
206  void setFirstRpcHit (Int_t index) { firstRpcHit = index;}
207  void setFirstShowerHit(Int_t index) { firstShowerHit= index;}
208  void setFirstWallHit (Int_t index) { firstWallHit = index;}
209  void setFirstEmcHit (Int_t index) { firstEmcHit = index;}
210  void setFirstStartHit (Int_t index) { firstStartHit = index;}
211 
212 
213  void sortRichHits(void); // sort hits in list
214  void sortMdcHits(void);
215  void sortTofHits(void);
216  void sortRpcHits(void);
217  void sortShowerHits(void);
218  void sortWallHits(void);
219 
220  Bool_t isInAcceptance (Int_t m0=4,Int_t m1=4,Int_t m2=4,Int_t m3=4,Int_t sys0=1,Int_t sys1=1);
221  Bool_t isInAcceptanceDecay(Int_t m0,Int_t m1,Int_t m2,Int_t m3,Int_t sys0,Int_t sys1);
222  Bool_t isInAcceptanceBit (Int_t m0=4,Int_t m1=4,Int_t m2=4,Int_t m3=4,Int_t sys0=1,Int_t sys1=1);
223  Bool_t isInAcceptanceDecayBit(Int_t m0,Int_t m1,Int_t m2,Int_t m3,Int_t sys0,Int_t sys1);
224  void getNHits (Int_t& m0,Int_t& m1,Int_t& m2,Int_t& m3,Int_t& sys0,Int_t& sys1);
225  void getNHitsDecay (Int_t& m0,Int_t& m1,Int_t& m2,Int_t& m3,Int_t& sys0,Int_t& sys1);
226  void getNHitsBit (Int_t& m0,Int_t& m1,Int_t& m2,Int_t& m3,Int_t& sys0,Int_t& sys1);
227  void getNHitsDecayBit(Int_t& m0,Int_t& m1,Int_t& m2,Int_t& m3,Int_t& sys0,Int_t& sys1);
228  Int_t getSystem(void);
229  Int_t getSectorFromBitArray(void);
230  UInt_t getMdcSectorBitArray(void);
231  UInt_t getMdcSectorDecimalArray(void);
232  UInt_t getShowerSectorBitArray(void);
233  UInt_t getShowerSectorDecimalArray(void);
234  UInt_t getTofSectorBitArray(void);
235  UInt_t getTofSectorDecimalArray(void);
236  UInt_t getRpcSectorBitArray(void);
237  UInt_t getRpcSectorDecimalArray(void);
238  UInt_t getRichSectorBitArray(void);
239  UInt_t getRichSectorDecimalArray(void);
240  UInt_t getSectorBitArray(void);
241  UInt_t getSectorDecimalArray(void);
242 
243  inline HLinkedDataObject* nextRichHit();
244  inline HLinkedDataObject* nextMdcHit();
245  inline HLinkedDataObject* nextTofHit();
246  inline HLinkedDataObject* nextRpcHit();
247  inline HLinkedDataObject* nextShowerHit();
248  inline HLinkedDataObject* nextWallHit();
249  inline HLinkedDataObject* nextEmcHit();
250  inline HLinkedDataObject* nextStartHit();
251 
252  // The following 4 are needed if the categories are created outside the HYDRA event
253  // and are hence not accessible via HRecEvent::getCategory(cat), e.g. in a macro.
254  inline void setRichCategory(HCategory* p) {pRich = p;}
255  inline void setMdcCategory(HCategory* p) {pMdc = p;}
256  inline void setTofCategory(HCategory* p) {pTof = p;}
257  inline void setRpcCategory(HCategory* p) {pRpc = p;}
258  inline void setShowerCategory(HCategory* p) {pShow = p;}
259  inline void setWallCategory(HCategory* p) {pWall = p;}
260  inline void setEmcCategory(HCategory* p) {pEmc = p;}
261  inline void setStartCategory(HCategory* p) {pStart = p;}
262 
263  inline void resetRichIter(void);
264  inline void resetMdcIter(void);
265  inline void resetTofIter(void);
266  inline void resetRpcIter(void);
267  inline void resetShowerIter(void);
268  inline void resetWallIter(void);
269  inline void resetEmcIter(void);
270  inline void resetStartIter(void);
271 
272 
273  //-----------------------------------------------------------------------
274  // acceptance bits
275  void setLayers(UInt_t io,UInt_t layers) { acceptance|=(layers&(0xFFF<<(io*12)));}
276  void setLayer (UInt_t io,UInt_t lay) { acceptance |= ( 0x01 << (io*12+lay) ); }
277  void unsetAllLayers() { acceptance &= ~0xFFFFFF; }
278  static void setLayer(UInt_t io,UInt_t lay,UInt_t& layers) { layers |= ( 0x01 << (io*12+lay) ); }
279  Bool_t getLayer (UInt_t io,UInt_t lay) { return ( acceptance & ( 0x01 << (io*12+lay) )); }
280  Bool_t hasLayers (UInt_t io,UInt_t layerstest) { return (((acceptance>>(io*12))&0xFFF)==((layerstest>>(io*12))&0xFFF));}
281  Int_t getNLayer (UInt_t io);
282  Int_t getNLayerMod(UInt_t mod);
283  void printLayers();
284  void setSys (UInt_t sys) { acceptance |= ( 0x01 << (24+sys) ); }
285  void unsetSys(UInt_t sys) { acceptance &= ~( 0x01 << (24+sys) ); }
286  Bool_t getSys (UInt_t sys) { return ( acceptance & ( 0x01 << (24+sys) )); }
287 
288  void setAtMdcEdge (UInt_t i) { if(i<4) { acceptance|=((0x1)<<(i+26)); } }
289  void unsetAtMdcEdge(UInt_t i) { if(i<4) { acceptance&=~((0x1)<<(i+26)); } }
290  Bool_t isAtMdcEdge (UInt_t i) { if(i<4) { return ( acceptance & ( 0x01 << (26+i) ));} else return kFALSE; }
291  Bool_t isAtAnyMdcEdge(UInt_t io=2){
292  if(io<3){
293  if(io==0||io==2){
294  if( acceptance & ( 0x01 << (26+0) )) return kTRUE;
295  if( acceptance & ( 0x01 << (26+1) )) return kTRUE;
296  }
297  if(io>=1){
298  if( acceptance & ( 0x01 << (26+2) )) return kTRUE;
299  if( acceptance & ( 0x01 << (26+3) )) return kTRUE;
300  }
301  return kFALSE;
302  } else return kFALSE;
303  }
304 
305  void setCropedFilled() { acceptance |=((0x1)<<(30)); }
306  void unsetCropedFilled() { acceptance &=~((0x1)<<(30)); }
307  Bool_t isCropedFilled() { return ( acceptance & ( 0x01 << (30) )); }
308  void setAcceptanceFilled() { acceptance |=((0x1)<<(31)); }
309  void unsetAcceptanceFilled() { acceptance &=~((0x1)<<(31)); }
310  Bool_t isAcceptanceFilled() { return ( acceptance & ( 0x01 << (31) )); }
311  void fillAcceptanceBit();
312 //-----------------------------------------------------------------------
313 
314 
315 
316 
317 private:
318  Int_t setHitIndex(HCategory* p, Short_t& first, Int_t index);
319  HLinkedDataObject* nextHit(HCategory* p, Int_t& next);
320 
321  ClassDef(HGeantKine,11) // GEANT KINE data class
322 };
323 
324 //------------------inlines----------------------------------
325 //----------------------hit index----------------------------
326  inline Int_t HGeantKine::setRichHitIndex(Int_t index) {
327  // set next RICH photon hit index in linked list
328  resetRichIter();
329  return setHitIndex(pRich,firstRichHit,index);
330  }
331 
332  inline Int_t HGeantKine::setMdcHitIndex(Int_t index) {
333  // set next MDC hit index in linked list
334  resetMdcIter();
335  return setHitIndex(pMdc,firstMdcHit,index);
336  }
337 
338  inline Int_t HGeantKine::setTofHitIndex(Int_t index) {
339  // set next TOF hit index in linked list
340  resetTofIter();
341  return setHitIndex(pTof,firstTofHit,index);
342  }
343 
344  inline Int_t HGeantKine::setRpcHitIndex(Int_t index) {
345  // set next RPC hit index in linked list
346  resetRpcIter();
347  return setHitIndex(pRpc,firstRpcHit,index);
348  }
349 
350  inline Int_t HGeantKine::setShowerHitIndex(Int_t index) {
351  // set next SHOWER hit index in linked list
352  resetShowerIter();
353  return setHitIndex(pShow, firstShowerHit,index);
354  }
355 
356  inline Int_t HGeantKine::setWallHitIndex(Int_t index) {
357  // set next WALL hit index in linked list
358  resetWallIter();
359  return setHitIndex(pWall, firstWallHit,index);
360  }
361 
362  inline Int_t HGeantKine::setEmcHitIndex(Int_t index) {
363  // set next EMC hit index in linked list
364  resetEmcIter();
365  return setHitIndex(pEmc,firstEmcHit,index);
366  }
367 
368  inline Int_t HGeantKine::setStartHitIndex(Int_t index) {
369  // set next START hit index in linked list
370  resetStartIter();
371  return setHitIndex(pStart,firstStartHit,index);
372  }
373 
374 //------------------------linked data objects--------------------
375  inline HLinkedDataObject* HGeantKine::nextRichHit() {
376  // return next RICH photon hit made by present track
377  return nextHit(pRich,richIndex);
378  }
379 
380  inline HLinkedDataObject* HGeantKine::nextMdcHit() {
381  // return next MDC hit made by present track
382  return nextHit(pMdc,mdcIndex);
383  }
384 
385  inline HLinkedDataObject* HGeantKine::nextTofHit() {
386  // return next TOF hit made by present track
387  return nextHit(pTof,tofIndex);
388  }
389 
390  inline HLinkedDataObject* HGeantKine::nextRpcHit() {
391  // return next RPC hit made by present track
392  return nextHit(pRpc,rpcIndex);
393  }
394 
395  inline HLinkedDataObject* HGeantKine::nextShowerHit() {
396  // return next SHOWER hit made by present track
397  return nextHit(pShow,showIndex);
398  }
399 
400  inline HLinkedDataObject* HGeantKine::nextWallHit() {
401  // return next WALL hit made by present track
402  return nextHit(pWall,wallIndex);
403  }
404 
405  inline HLinkedDataObject* HGeantKine::nextEmcHit() {
406  // return next EMC hit made by present track
407  return nextHit(pEmc,emcIndex);
408  }
409 
410  inline HLinkedDataObject* HGeantKine::nextStartHit() {
411  // return next START hit made by present track
412  return nextHit(pStart,startIndex);
413  }
414 
415 //----------------------iterators--------------------------------
416  inline void HGeantKine::resetRichIter(void) { // reset list iterator
417  richIndex = (Int_t)firstRichHit;
418  if(!pRich) pRich = ((HRecEvent*)gHades->getCurrentEvent())
419  ->getCategory(catRichGeantRaw);
420  }
421  inline void HGeantKine::resetMdcIter(void) {
422  mdcIndex = (Int_t)firstMdcHit;
423  if(!pMdc) pMdc = ((HRecEvent*)gHades->getCurrentEvent())
424  ->getCategory(catMdcGeantRaw);
425  }
426  inline void HGeantKine::resetTofIter(void) {
427  tofIndex = (Int_t)firstTofHit;
428  if(!pTof) pTof = ((HRecEvent*)gHades->getCurrentEvent())
429  ->getCategory(catTofGeantRaw);
430  }
431 
432  inline void HGeantKine::resetRpcIter(void) {
433  rpcIndex = (Int_t)firstRpcHit;
434  if(!pRpc) pRpc = ((HRecEvent*)gHades->getCurrentEvent())
435  ->getCategory(catRpcGeantRaw);
436  }
437 
438  inline void HGeantKine::resetShowerIter(void) {
439  showIndex = (Int_t)firstShowerHit;
440  if(!pShow) pShow = ((HRecEvent*)gHades->getCurrentEvent())
441  ->getCategory(catShowerGeantRaw);
442  }
443 
444  inline void HGeantKine::resetWallIter(void) {
445  wallIndex = (Int_t)firstWallHit;
446  if(!pWall) pWall = ((HRecEvent*)gHades->getCurrentEvent())
447  ->getCategory(catWallGeantRaw);
448  }
449 
450  inline void HGeantKine::resetEmcIter(void) {
451  emcIndex = (Int_t)firstEmcHit;
452  if(!pEmc) pEmc = ((HRecEvent*)gHades->getCurrentEvent())
453  ->getCategory(catEmcGeantRaw);
454  }
455 
456  inline void HGeantKine::resetStartIter(void) {
457  startIndex = (Int_t)firstStartHit;
458  if(!pStart) pStart = ((HRecEvent*)gHades->getCurrentEvent())
459  ->getCategory(catStartGeantRaw);
460  }
461 
462 #endif /*! HGEANTKINE_H */
463 
464 
465 
466 
467 
468 
469 
470 
471 
472 
Short_t firstRpcHit
Definition: hgeantkine.h:73
Short_t firstStartHit
Definition: hgeantkine.h:77
Float_t yVertex
Definition: hgeantkine.h:61
HLinkedDataObject * nextWallHit()
Definition: hgeantkine.h:400
Float_t getTotalMomentum(void) const
Definition: hgeantkine.h:112
HCategory * pRpc
of hit objects
Definition: hgeantkine.h:48
Float_t yMom
Definition: hgeantkine.h:64
const Cat_t catStartGeantRaw
Definition: hgeantdef.h:13
Bool_t getSys(UInt_t sys)
Definition: hgeantkine.h:286
Int_t setStartHitIndex(Int_t index)
Definition: hgeantkine.h:368
void setSuppressed(Bool_t flag=kTRUE)
Definition: hgeantkine.h:138
void getMomentum(HGeomVector &v)
Definition: hgeantkine.h:124
void setAtMdcEdge(UInt_t i)
Definition: hgeantkine.h:288
Int_t trackNumber
Definition: hgeantkine.h:55
Int_t getFirstRpcHit()
Definition: hgeantkine.h:185
Float_t xMom
Definition: hgeantkine.h:63
void resetRichIter(void)
Definition: hgeantkine.h:416
void setWallCategory(HCategory *p)
Definition: hgeantkine.h:259
Bool_t active
Definition: hgeantkine.h:78
void setID(Int_t aID)
Definition: hgeantkine.h:96
void setLayer(UInt_t io, UInt_t lay)
Definition: hgeantkine.h:276
void unsetCropedFilled()
Definition: hgeantkine.h:306
Float_t generatorInfo
Definition: hgeantkine.h:66
const Cat_t catMdcGeantRaw
Definition: hgeantdef.h:9
void setFirstRichHit(Int_t index)
Definition: hgeantkine.h:203
HEvent *& getCurrentEvent(void)
Definition: hades.cc:422
void resetTofIter(void)
Definition: hgeantkine.h:426
Int_t mdcIndex
internal index variables
Definition: hgeantkine.h:38
Int_t getFirstRichHit()
Definition: hgeantkine.h:178
HCategory * pEmc
Definition: hgeantkine.h:51
Int_t getGeneratorInfo() const
Definition: hgeantkine.h:127
Int_t tofIndex
used to set up linked chains
Definition: hgeantkine.h:39
void setFirstWallHit(Int_t index)
Definition: hgeantkine.h:208
Bool_t isAtAnyMdcEdge(UInt_t io=2)
Definition: hgeantkine.h:291
void setFirstTofHit(Int_t index)
Definition: hgeantkine.h:205
Int_t getGeneratorInfo2() const
Definition: hgeantkine.h:129
Float_t getM(void) const
Definition: hgeantkine.h:119
void unsetSys(UInt_t sys)
Definition: hgeantkine.h:285
Int_t m2
Definition: drawAccCuts.C:11
Int_t m1
Definition: drawAccCuts.C:11
Int_t startIndex
Definition: hgeantkine.h:44
void setActive(Bool_t flag=kTRUE)
Definition: hgeantkine.h:137
HCategory * pShow
Definition: hgeantkine.h:49
Bool_t isAtMdcEdge(UInt_t i)
Definition: hgeantkine.h:290
Double_t theta
Float_t zMom
Definition: hgeantkine.h:65
void setWeight(Float_t aWeight)
Definition: hgeantkine.h:93
void setMedium(Int_t aMed)
Definition: hgeantkine.h:97
Int_t setShowerHitIndex(Int_t index)
Definition: hgeantkine.h:350
Int_t getID(void) const
Definition: hgeantkine.h:107
Int_t emcIndex
Definition: hgeantkine.h:43
void resetEmcIter(void)
Definition: hgeantkine.h:450
void resetWallIter(void)
Definition: hgeantkine.h:444
void resetMdcIter(void)
Definition: hgeantkine.h:421
Short_t firstMdcHit
Definition: hgeantkine.h:71
void setMechanism(Int_t aMech)
Definition: hgeantkine.h:98
Int_t setTofHitIndex(Int_t index)
Definition: hgeantkine.h:338
Float_t getTransverseMomentum(void) const
Definition: hgeantkine.h:113
void setFirstMdcHit(Int_t index)
Definition: hgeantkine.h:204
Int_t getParentTrack(void) const
Definition: hgeantkine.h:108
Float_t getUserVal(void) const
Definition: hgeantkine.h:143
void setRpcCategory(HCategory *p)
Definition: hgeantkine.h:257
Int_t setRpcHitIndex(Int_t index)
Definition: hgeantkine.h:344
Float_t getGeneratorWeight() const
Definition: hgeantkine.h:130
Float_t generatorInfo1
Definition: hgeantkine.h:67
Bool_t isSuppressed(void) const
Definition: hgeantkine.h:142
Bool_t isCropedFilled()
Definition: hgeantkine.h:307
HLinkedDataObject * nextStartHit()
Definition: hgeantkine.h:410
HCategory * pRich
Definition: hgeantkine.h:45
void setUserVal(Float_t val)
Definition: hgeantkine.h:139
Float_t zVertex
Definition: hgeantkine.h:62
void setXYZ(const Double_t xx, const Double_t yy, const Double_t zz)
Definition: hgeomvector.h:25
static Float_t mass(const Int_t id)
HLinkedDataObject * nextShowerHit()
Definition: hgeantkine.h:395
const Cat_t catRpcGeantRaw
Definition: hgeantdef.h:15
Int_t getFirstStartHit()
Definition: hgeantkine.h:193
Int_t rpcIndex
of hit objects
Definition: hgeantkine.h:40
HLinkedDataObject * nextRpcHit()
Definition: hgeantkine.h:390
Short_t firstShowerHit
Definition: hgeantkine.h:74
void setParentTrack(Int_t track)
Definition: hgeantkine.h:109
Short_t firstTofHit
Definition: hgeantkine.h:72
Bool_t isPrimary(void) const
Definition: hgeantkine.h:141
UInt_t acceptance
Definition: hgeantkine.h:81
Hades * gHades
Definition: hades.cc:1213
Bool_t suppressed
Definition: hgeantkine.h:79
Bool_t isActive(void) const
Definition: hgeantkine.h:140
Float_t generatorWeight
Definition: hgeantkine.h:69
Float_t getTotalMomentum2(void) const
Definition: hgeantkine.h:111
static void setLayer(UInt_t io, UInt_t lay, UInt_t &layers)
Definition: hgeantkine.h:278
HCategory * pTof
used to set up linked chains
Definition: hgeantkine.h:47
const Cat_t catRichGeantRaw
Definition: hgeantdef.h:10
const Cat_t catEmcGeantRaw
Definition: hgeantdef.h:16
Int_t creationMechanism
Definition: hgeantkine.h:59
void resetStartIter(void)
Definition: hgeantkine.h:456
Int_t getFirstWallHit()
Definition: hgeantkine.h:189
HCategory * pWall
Definition: hgeantkine.h:50
Int_t getFirstEmcHit()
Definition: hgeantkine.h:191
void setFirstShowerHit(Int_t index)
Definition: hgeantkine.h:207
Int_t getGeneratorInfo1() const
Definition: hgeantkine.h:128
Bool_t hasLayers(UInt_t io, UInt_t layerstest)
Definition: hgeantkine.h:280
Short_t firstRichHit
Definition: hgeantkine.h:70
Int_t setRichHitIndex(Int_t index)
Definition: hgeantkine.h:326
void unsetAtMdcEdge(UInt_t i)
Definition: hgeantkine.h:289
Short_t firstEmcHit
Definition: hgeantkine.h:76
HLinkedDataObject * nextRichHit()
Definition: hgeantkine.h:375
Int_t getFirstShowerHit()
Definition: hgeantkine.h:187
const Cat_t catWallGeantRaw
Definition: hgeantdef.h:14
Float_t getRapidity(void) const
Definition: hgeantkine.h:122
void resetRpcIter(void)
Definition: hgeantkine.h:432
Float_t getEkin(void) const
Definition: hgeantkine.h:121
Float_t getE(void) const
Definition: hgeantkine.h:120
Short_t firstWallHit
Definition: hgeantkine.h:75
Int_t particleID
Definition: hgeantkine.h:57
HLinkedDataObject * nextMdcHit()
Definition: hgeantkine.h:380
void setCropedFilled()
Definition: hgeantkine.h:305
Int_t wallIndex
Definition: hgeantkine.h:42
void setSys(UInt_t sys)
Definition: hgeantkine.h:284
HLinkedDataObject * nextTofHit()
Definition: hgeantkine.h:385
Int_t getFirstTofHit()
Definition: hgeantkine.h:183
void unsetAcceptanceFilled()
Definition: hgeantkine.h:309
Bool_t getLayer(UInt_t io, UInt_t lay)
Definition: hgeantkine.h:279
HLinkedDataObject * nextEmcHit()
Definition: hgeantkine.h:405
void resetShowerIter(void)
Definition: hgeantkine.h:438
Int_t getFirstMdcHit()
Definition: hgeantkine.h:180
Int_t setWallHitIndex(Int_t index)
Definition: hgeantkine.h:356
void setTofCategory(HCategory *p)
Definition: hgeantkine.h:256
void setEmcCategory(HCategory *p)
Definition: hgeantkine.h:260
Int_t getMechanism() const
Definition: hgeantkine.h:106
Float_t phi
Definition: drawAccCuts.C:15
Float_t generatorInfo2
Definition: hgeantkine.h:68
void unsetAllLayers()
Definition: hgeantkine.h:277
HCategory * pStart
Definition: hgeantkine.h:52
void setFirstStartHit(Int_t index)
Definition: hgeantkine.h:210
const Cat_t catTofGeantRaw
Definition: hgeantdef.h:12
void setMdcCategory(HCategory *p)
Definition: hgeantkine.h:255
Int_t getMedium() const
Definition: hgeantkine.h:105
Int_t setEmcHitIndex(Int_t index)
Definition: hgeantkine.h:362
Int_t getTrack(void) const
Definition: hgeantkine.h:104
void setAcceptanceFilled()
Definition: hgeantkine.h:308
void setRichCategory(HCategory *p)
Definition: hgeantkine.h:254
Int_t parentTrack
Definition: hgeantkine.h:56
void setFirstEmcHit(Int_t index)
Definition: hgeantkine.h:209
const Cat_t catShowerGeantRaw
Definition: hgeantdef.h:11
Int_t richIndex
Definition: hgeantkine.h:37
void setShowerCategory(HCategory *p)
Definition: hgeantkine.h:258
void setStartCategory(HCategory *p)
Definition: hgeantkine.h:261
Int_t setMdcHitIndex(Int_t index)
Definition: hgeantkine.h:332
void setFirstRpcHit(Int_t index)
Definition: hgeantkine.h:206
Int_t showIndex
Definition: hgeantkine.h:41
Float_t userVal
Definition: hgeantkine.h:80
void setTrack(Int_t aTrack)
Definition: hgeantkine.h:86
Bool_t isAcceptanceFilled()
Definition: hgeantkine.h:310
Int_t m3
Definition: drawAccCuts.C:11
void setLayers(UInt_t io, UInt_t layers)
Definition: hgeantkine.h:275
HCategory * pMdc
internal pointers to category
Definition: hgeantkine.h:46
Int_t mediumNumber
Definition: hgeantkine.h:58
Float_t xVertex
Definition: hgeantkine.h:60