HYDRA_development_version
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
hparticlecandsim.h
Go to the documentation of this file.
1 #ifndef __HPARTICLECANDSIM_H__
2 #define __HPARTICLECANDSIM_H__
3 
4 #include "hparticlecand.h"
5 #include "hvirtualcandsim.h"
6 
7 
9 {
10 private:
11 
12  // sim info
13  Int_t fGeantTrackRich [3]; // GEANT tracks in rich
14  Int_t fGeantTrackMeta [4]; // GEANT tracks in tof or rpc
15  Int_t fGeantTrackShower[4]; // GEANT tracks in Shower | ECAL
16  Int_t fGeantTrackInnerMdc[2]; // GEANT tracks in inner MDC seg
17  Int_t fGeantTrackOuterMdc[2]; // GEANT tracks in outer MDC seg
18  Char_t fGeantTrackInnerMdcN[2]; // GEANT number of wires contributing for tracks in inner MDC seg
19  Char_t fGeantTrackOuterMdcN[2]; // GEANT number of wires contributing for tracks in outer MDC seg
20 public:
22  {
23  for(Int_t i=0;i<4;i++){
24  fGeantTrackMeta[i]=-1;
25  fGeantTrackShower[i]=-1;
26  }
27  for(Int_t i=0;i<3;i++){
28  fGeantTrackRich[i]=-1;
29  }
30  for(Int_t i=0;i<2;i++){
31  fGeantTrackInnerMdc[i]=-1;
32  fGeantTrackOuterMdc[i]=-1;
33  fGeantTrackInnerMdcN[i]=0;
34  fGeantTrackOuterMdcN[i]=0;
35  }
36 
37  }
39 
40  void setGeantTrackRich(Int_t a,Int_t i) { if(i<3 && i>=0) fGeantTrackRich [i] = a; }
41  void setGeantTrackMeta(Int_t a,Int_t i) { if(i<4 && i>=0) fGeantTrackMeta [i] = a; }
42  void setGeantTrackShower(Int_t a,Int_t i) { if(i<4 && i>=0) fGeantTrackShower[i] = a; }
43  void setGeantTrackEmc (Int_t a,Int_t i) { if(i<4 && i>=0) fGeantTrackShower[i] = a; } // shared with shower
44  void setGeantTrackInnerMdc(Int_t a,Int_t i,Int_t n) { if(i<2 && i>=0) { fGeantTrackInnerMdc[i] = a; fGeantTrackInnerMdcN[i] = n; }}
45  void setGeantTrackOuterMdc(Int_t a,Int_t i,Int_t n) { if(i<2 && i>=0) { fGeantTrackOuterMdc[i] = a; fGeantTrackOuterMdcN[i] = n; }}
46 
47  Int_t getGeantTrackRich(Int_t i) { return (i<3 && i>=0)? fGeantTrackRich [i] :-1; }
48  Int_t getGeantTrackMeta(Int_t i) { return (i<4 && i>=0)? fGeantTrackMeta [i] :-1; }
49  Int_t getGeantTrackShower(Int_t i) { return (i<4 && i>=0)? fGeantTrackShower[i] :-1; }
50  Int_t getGeantTrackEmc (Int_t i) { return (i<4 && i>=0)? fGeantTrackShower[i] :-1; } // shared with shower
51  Int_t getGeantTrackInnerMdc(Int_t i) { return (i<2 && i>=0)? fGeantTrackInnerMdc[i] :-1; }
52  Int_t getGeantTrackOuterMdc(Int_t i) { return (i<2 && i>=0)? fGeantTrackOuterMdc[i] :-1; }
53  Int_t getGeantTrackInnerMdcN(Int_t i) { return (i<2 && i>=0)? fGeantTrackInnerMdcN[i] : 0; }
54  Int_t getGeantTrackOuterMdcN(Int_t i) { return (i<2 && i>=0)? fGeantTrackOuterMdcN[i] : 0; }
55  Float_t getGeantTrackInnerMdcWeight(Int_t i) { return (i<2 && i>=0 && getNWSeg(0) !=0 )? Float_t(fGeantTrackInnerMdcN[i])/getNWSeg(0) : 0; }
56  Float_t getGeantTrackOuterMdcWeight(Int_t i) { return (i<2 && i>=0 && getNWSeg(0) !=0 )? Float_t(fGeantTrackOuterMdcN[i])/getNWSeg(1) : 0; }
57 
58  Bool_t isGhostTrack() const { return (getGeantCorrTrackIds()&kIsGhost) == 0 ? kFALSE:kTRUE; }
59  Bool_t isInDetector (eDetBits det) const { return (getGeantCorrTrackIds()&det) == 0 ? kFALSE:kTRUE; }
60  Bool_t isInDetectors(UInt_t flagdetbits) const { return (getGeantCorrTrackIds()&flagdetbits) == flagdetbits ? kTRUE:kFALSE; }
61  Int_t getNDetector() const {
62  Int_t n=0;
66  if(getGeantCorrTrackIds()&kIsInTOF) n+=1;
67  if(getGeantCorrTrackIds()&kIsInRPC) n+=1;
69  return n;
70  }
71  Bool_t isGoodMDCWires (Int_t tr,Int_t minInner=7 ,Int_t minOuter=7 , Bool_t checkall=kFALSE,Bool_t requireOuter=kTRUE);
72  Bool_t isGoodMDCWeight(Int_t tr,Float_t minInner=0.5,Float_t minOuter=0.5, Bool_t checkall=kFALSE,Bool_t requireOuter=kTRUE);
73  Bool_t isGoodMDC (Int_t tr,Float_t minInner=0.5,Float_t minOuter=0.5,Int_t minInnerW=5,Int_t minOuterW=5,Bool_t checkall=kFALSE,Bool_t requireOuter=kTRUE);
74 
75  virtual void print(UInt_t selection=31);
76 
77  void OldStreamer(TBuffer &R__b, Int_t version);
78  ClassDef(HParticleCandSim,4) // A simple Sim track of a particle
79 };
80 
81 
82 #endif // __HPARTICLECANDSIM_H__
Bool_t isInDetector(eDetBits det) const
void setGeantTrackOuterMdc(Int_t a, Int_t i, Int_t n)
Int_t getGeantTrackOuterMdcN(Int_t i)
Int_t getGeantTrackShower(Int_t i)
Float_t getGeantTrackInnerMdcWeight(Int_t i)
void OldStreamer(TBuffer &R__b, Int_t version)
Bool_t isGoodMDCWeight(Int_t tr, Float_t minInner=0.5, Float_t minOuter=0.5, Bool_t checkall=kFALSE, Bool_t requireOuter=kTRUE)
Int_t fGeantTrackMeta[4]
Int_t n
Int_t getGeantTrackMeta(Int_t i)
Int_t fGeantTrackShower[4]
Int_t getGeantTrackOuterMdc(Int_t i)
UInt_t getGeantCorrTrackIds() const
Char_t fGeantTrackOuterMdcN[2]
Int_t getNWSeg(UInt_t io)
virtual void print(UInt_t selection=31)
void setGeantTrackEmc(Int_t a, Int_t i)
Bool_t isGhostTrack() const
Int_t getNDetector() const
Int_t getGeantTrackInnerMdc(Int_t i)
Int_t getGeantTrackRich(Int_t i)
void setGeantTrackShower(Int_t a, Int_t i)
Int_t fGeantTrackInnerMdc[2]
Float_t getGeantTrackOuterMdcWeight(Int_t i)
Bool_t isInDetectors(UInt_t flagdetbits) const
Int_t fGeantTrackOuterMdc[2]
void setGeantTrackInnerMdc(Int_t a, Int_t i, Int_t n)
void setGeantTrackMeta(Int_t a, Int_t i)
Int_t getGeantTrackEmc(Int_t i)
Char_t fGeantTrackInnerMdcN[2]
Int_t fGeantTrackRich[3]
Bool_t isGoodMDCWires(Int_t tr, Int_t minInner=7, Int_t minOuter=7, Bool_t checkall=kFALSE, Bool_t requireOuter=kTRUE)
Int_t getGeantTrackInnerMdcN(Int_t i)
void setGeantTrackRich(Int_t a, Int_t i)
Bool_t isGoodMDC(Int_t tr, Float_t minInner=0.5, Float_t minOuter=0.5, Int_t minInnerW=5, Int_t minOuterW=5, Bool_t checkall=kFALSE, Bool_t requireOuter=kTRUE)