1 #ifndef HMDCSTOREEVENTS_H
2 #define HMDCSTOREEVENTS_H
35 void addWireAddr(Int_t s, Int_t m, Int_t l, Int_t c);
42 inline static UShort_t
packAddress(Int_t s, Int_t m, Int_t l, Int_t c);
43 inline static void unpackAddress(UShort_t& addr, Int_t& s, Int_t& m,
55 return UShort_t((( ((s&7)<<5) + ((m&3)<<3) + (l&7) ) <<8) + (c&255));
59 Int_t& m, Int_t& l, Int_t& c) {
60 s=(Int_t)((addr>>13)&7);
61 m=(Int_t)((addr>>11)&3);
62 l=(Int_t)((addr>>8)&7);
92 void addWire(Int_t s,Int_t m,Int_t l,Int_t c,Float_t tm, Bool_t flag=kTRUE);
98 Bool_t
getNextCell(Int_t& s, Int_t& m, Int_t& l, Int_t& c, Float_t& tm);
99 Bool_t
getNextCell(Int_t& s, Int_t& m, Int_t& l, Int_t& c, Float_t& tm,
101 Bool_t
getNextCell(Int_t& s, Int_t& m, Int_t& l, Int_t& c, Float_t& tm,
102 Bool_t& flag,UInt_t** addr);
103 inline static UInt_t
packCell(Int_t s, Int_t m, Int_t l, Int_t c,
104 Float_t tm, Bool_t flag=kTRUE);
105 inline static Bool_t
unpackCell(UInt_t& addr, Int_t& s, Int_t& m,
106 Int_t& l, Int_t& c, Float_t& tm);
107 static void unsetFlag(UInt_t& addr) {addr &= 0xFFFEFFFF;}
108 static void setFlag(UInt_t& addr) {addr |= 0x10000;}
119 Float_t tm,Bool_t flag) {
120 UInt_t sign = tm>0 ? 0 : 0x4000;
122 UInt_t dt = UInt_t(tm*10. + 0.5);
123 if(dt > 0x3FFF) dt=0x3FFF;
126 return UInt_t((( ((s&7)<<5) + ((m&3)<<3) + (l&7) ) <<8) + (c&0xFF)) +dt;
130 Int_t& m, Int_t& l, Int_t& c, Float_t& tm) {
132 s = (Int_t)((addr>>13)&7);
133 m = (Int_t)((addr>>11)&3);
134 l = (Int_t)((addr>>8)&7);
135 c = (Int_t)(addr&0xFF);
136 tm = ((addr>>17)&0x3FFF)*0.1;
137 if(addr&0x80000000) tm = -tm;
138 return (addr&0x10000) > 0;
168 void setTrackPar(UChar_t s, UChar_t
m1, Float_t xf, Float_t yf,
169 UChar_t
m2, Float_t xl, Float_t yl, UChar_t flag=1);
179 UChar_t
getMod1(
void) {
return (flagAddress>>3)&3;}
180 UChar_t
getMod2(
void) {
return (flagAddress>>5)&3;}
184 Float_t
getZ1(
void)
const {
return 0.;}
187 Float_t
getZ2(
void)
const {
return 0.;}
188 void getTrackPar(Float_t& xf,Float_t& yf, Float_t& xl,Float_t& yl)
const;
196 Bool_t
resetTrackPar(Float_t xt,Float_t yt,Float_t xp,Float_t yp);
227 Bool_t
getNextCell(Int_t& s, Int_t& m, Int_t& l, Int_t& c, Float_t& tm) {
229 Bool_t
getNextCell(Int_t& s, Int_t& m, Int_t& l, Int_t& c, Float_t& tm,
239 Bool_t
unsetFlag(Int_t si,Int_t mi,Int_t li,Int_t ci);
240 Bool_t
setFlag(Int_t si,Int_t mi,Int_t li,Int_t ci);
static void unpackAddress(UShort_t &addr, Int_t &s, Int_t &m, Int_t &l, Int_t &c)
virtual void resetIter(void)
virtual UInt_t getMemSize(void) const
void getPoint1(HGeomVector &p1) const
virtual UInt_t getMemSize(void) const
Bool_t resetEventFlag(Bool_t flag)
void setMaxMemSize(UInt_t mSize)
void setTrackPar(UChar_t s, UChar_t m1, Float_t xf, Float_t yf, UChar_t m2, Float_t xl, Float_t yl, UChar_t flag=1)
static Bool_t unpackCell(UInt_t &addr, Int_t &s, Int_t &m, Int_t &l, Int_t &c, Float_t &tm)
Bool_t resetTrackPar(Float_t xt, Float_t yt, Float_t xp, Float_t yp)
static void unsetFlag(UInt_t &addr)
Bool_t getNextWireAddr(Int_t &s, Int_t &m, Int_t &l, Int_t &c)
Float_t getZ1(void) const
static UInt_t packCell(Int_t s, Int_t m, Int_t l, Int_t c, Float_t tm, Bool_t flag=kTRUE)
HSeqArrIter * iterTrackPos
Bool_t getNextEvent(void)
UInt_t * wiresListPack[1200]
TGraph p2(xdim, pgrid, respme)
void setEndEvent(Bool_t flag=kTRUE)
void setMaxMemSize(UInt_t mSize)
void resetEventIter(void)
virtual void resetIter(void)
Bool_t getNextCell(Int_t &s, Int_t &m, Int_t &l, Int_t &c, Float_t &tm, Bool_t &flag)
virtual void resetIter(void)
HSeqArrIter * iterAddress
Float_t getX2(void) const
void setXYZ(const Double_t xx, const Double_t yy, const Double_t zz)
Bool_t setFlag(Int_t si, Int_t mi, Int_t li, Int_t ci)
Bool_t getEventFlag(void)
void addWireAddr(Int_t s, Int_t m, Int_t l, Int_t c)
Bool_t getNextEvent(void)
Bool_t getNextCluster(void)
Bool_t testMemSize(void) const
Float_t getY2(void) const
virtual UInt_t getMemSize(void) const
Bool_t resetTrackFlag(Bool_t flag)
Float_t getX1(void) const
Bool_t unsetFlag(Int_t si, Int_t mi, Int_t li, Int_t ci)
static UShort_t packAddress(Int_t s, Int_t m, Int_t l, Int_t c)
TGraph p1(xdim, pgrid, resplo)
Float_t getZ2(void) const
virtual void resetIter(void)
Bool_t getNextCell(Int_t &s, Int_t &m, Int_t &l, Int_t &c, Float_t &tm)
virtual UInt_t getMemSize(void) const
void addEvent(const HMdcEvntListCells &event)
Bool_t getTrackFlag(void)
void getPoints(HGeomVector &p1, HGeomVector &p2) const
void addEvent(const HMdcEvntListCells &event)
void addWire(Int_t s, Int_t m, Int_t l, Int_t c, Float_t tm, Bool_t flag=kTRUE)
Float_t getY1(void) const
Bool_t getNextCell(Int_t &s, Int_t &m, Int_t &l, Int_t &c, Float_t &tm)
void addClustWires(const HMdcEvntListCells &event, const HMdcClus *cl)
Int_t getNumEventTracks(void) const
void getPoint2(HGeomVector &p2) const
Bool_t testMemSize(void) const
HSeqArrIter * iterNTrckEv
static void setFlag(UInt_t &addr)