1 #ifndef ROOT_EdbPattern
2 #define ROOT_EdbPattern
14 #include "TObjArray.h"
15 #include "TSortedList.h"
17 #include "TClonesArray.h"
51 eSegments =
new TClonesArray(
"EdbSegP",n);
52 for(
int i=0; i<n; i++)
63 float w=0,
int flag=0);
85 Float_t
X()
const {
return eX;}
86 Float_t
Y()
const {
return eY;}
87 Float_t
Z()
const {
return eZ;}
89 Int_t
N()
const {
return GetN();}
157 Float_t
Wmean()
const;
160 Float_t
M()
const {
return eM;}
182 Int_t
N()
const {
return (
eS) ?
eS->GetSize() : 0; }
183 Int_t
NF()
const {
return (
eSF)?
eSF->GetSize() : 0; }
212 Int_t
Dir()
const {
return (
DZ()<0) ? -1 : 1;}
213 Float_t
Zmax()
const;
214 Float_t
Zmin()
const;
221 if(!
eS)
eS =
new TSortedList();
242 eSF =
new TSortedList();
266 void SetPerr(Float_t perrDown, Float_t perrUp);
304 void SetSigma(
float sx,
float sy,
float stx,
float sty)
306 void SetStep(
float stepx,
float stepy,
float steptx,
float stepty )
310 void FillCell(
float stepx,
float stepy,
float steptx,
float stepty );
372 void Shift(
float x,
float y);
377 Float_t
X()
const {
return eX;}
378 Float_t
Y()
const {
return eY;}
379 Float_t
Z()
const {
return eZ;}
407 Long_t
Vid(
int pid,
int sid)
const {
return pid*1000000+sid; }
408 Int_t
Pid(Long_t vid)
const {
return vid/1000000; }
409 Int_t
Sid(Long_t vid)
const {
return vid%1000000; }
brick z0
Definition: RecDispMC.C:106
brick dz
Definition: RecDispMC.C:107
int design
Definition: RecDispMC.C:90
TTree * tr
Definition: Shower_E_FromShowerRoot.C:5
float min(TClonesArray *t)
Definition: bitview.cxx:275
int max
Definition: check_shower.C:41
Definition: EdbAffine.h:17
Int_t eBrick
Definition: EdbID.h:10
Int_t ePlate
Definition: EdbID.h:11
Definition: EdbPattern.h:280
void Reset()
Definition: EdbPattern.cxx:1632
void SetSegmentsPID()
Definition: EdbPattern.cxx:1548
float Xmean()
Definition: EdbPattern.cxx:1640
void SetSide(int side)
Definition: EdbPattern.h:321
void SetID(int id)
Definition: EdbPattern.h:318
void SetPID(int pid)
Definition: EdbPattern.h:319
void SetSigma(float sx, float sy, float stx, float sty)
Definition: EdbPattern.h:304
int PID() const
Definition: EdbPattern.h:329
Int_t eID
Definition: EdbPattern.h:284
Float_t eStepY
Definition: EdbPattern.h:287
Int_t ePID
Definition: EdbPattern.h:285
float SummaryPath()
Definition: EdbPattern.cxx:1402
TIndexCell * Cell() const
Definition: EdbPattern.h:330
void SetStep(float stepx, float stepy, float steptx, float stepty)
Definition: EdbPattern.h:306
float StepX() const
Definition: EdbPattern.h:324
TIndexCell * eCell
Definition: EdbPattern.h:286
float StepTY() const
Definition: EdbPattern.h:327
void SetNAff(int n)
Definition: EdbPattern.h:320
EdbPattern * ExtractSubPatternXY(float xmin, float xmax, float ymin, float ymax)
Definition: EdbPattern.cxx:1573
Int_t eNAff
Definition: EdbPattern.h:291
void SetSegmentsScanID(EdbID id)
Definition: EdbPattern.cxx:1557
EdbID ScanID() const
Definition: EdbPattern.h:339
float StepTX() const
Definition: EdbPattern.h:326
Int_t AddPattern(EdbPattern &p)
Definition: EdbPattern.cxx:1563
Int_t eSide
main scanning ID for this pattern, defined when possible
Definition: EdbPattern.h:293
void SetScanID(EdbID id)
Definition: EdbPattern.h:303
EdbID eScanID
Definition: EdbPattern.h:292
EdbSegP * FindSegment(int id)
Definition: EdbPattern.cxx:1395
virtual ~EdbPattern()
Definition: EdbPattern.cxx:1377
Float_t eStepTY
Definition: EdbPattern.h:288
Float_t eStepTX
Definition: EdbPattern.h:288
Int_t Brick() const
Definition: EdbPattern.h:341
int FindCompliments(EdbSegP &s, TObjArray &arr, float nsig, float nsigt)
Definition: EdbPattern.cxx:1447
Float_t eSigma[4]
Definition: EdbPattern.h:289
Int_t eFlag
Definition: EdbPattern.h:290
int ID() const
Definition: EdbPattern.h:328
Int_t Side() const
Definition: EdbPattern.h:342
Int_t NAff() const
Definition: EdbPattern.h:323
EdbPattern()
emulsion side 0/1/2, defined when possible
Definition: EdbPattern.cxx:1348
float Ymean()
Definition: EdbPattern.cxx:1687
Int_t Plate() const
Definition: EdbPattern.h:340
void Set0()
Definition: EdbPattern.cxx:1383
EdbPattern * ExtractSubPattern(float min[5], float max[5], int MCevt=-1)
Definition: EdbPattern.cxx:1593
Float_t eStepX
associated with eSegments
Definition: EdbPattern.h:287
float StepY() const
Definition: EdbPattern.h:325
void FillCell(float stepx, float stepy, float steptx, float stepty)
Definition: EdbPattern.cxx:1416
Definition: EdbPattern.h:348
Int_t Sid(Long_t vid) const
Definition: EdbPattern.h:409
virtual ~EdbPatternsVolume()
Definition: EdbPattern.cxx:1733
Float_t eX
Definition: EdbPattern.h:352
int FindComplimentsVol(EdbSegP &s, TObjArray &arr, float nsig, float nsigt, int dpat)
Definition: EdbPattern.cxx:2104
EdbPattern * GetPatternZLowestHighest(Bool_t lowestZ=kTRUE) const
Definition: EdbPattern.cxx:1982
TIndexCell * eTracksCell
Definition: EdbPattern.h:358
void PrintStat(Option_t *opt="") const
Definition: EdbPattern.cxx:1822
void PassProperties(EdbPatternsVolume &pvol)
Definition: EdbPattern.cxx:1895
void AddPattern(EdbPattern *pat)
Definition: EdbPattern.cxx:1867
Float_t Z() const
Definition: EdbPattern.h:379
Int_t Pid(Long_t vid) const
Definition: EdbPattern.h:408
Float_t Ymean()
Definition: EdbPattern.cxx:2165
TIndexCell * ePatternsCell
"vidt:vids" - connected segments cell
Definition: EdbPattern.h:359
void Set0()
Definition: EdbPattern.cxx:1745
EdbPattern * GetPatternByPID(int pid) const
Definition: EdbPattern.cxx:2045
void Shift(float x, float y)
Definition: EdbPattern.cxx:1914
Bool_t eDescendingZ
"pid:id1:chi2:id2" - all found couples
Definition: EdbPattern.h:361
Float_t Y() const
Definition: EdbPattern.h:378
void Centralize()
Definition: EdbPattern.cxx:1781
Int_t Npatterns() const
Definition: EdbPattern.h:380
EdbPattern * GetPatternByZ(float z, float tolerance=5) const
Definition: EdbPattern.cxx:2065
EdbPattern * GetPatternPreceding(EdbPattern *pat) const
Definition: EdbPattern.cxx:2017
EdbPattern * NextPattern(float z, int dir) const
Definition: EdbPattern.cxx:2086
void PrintAff() const
Definition: EdbPattern.cxx:1811
void AddPatternAt(EdbPattern *pat, int id)
Definition: EdbPattern.cxx:1873
void Transform(const EdbAffine2D *aff)
Definition: EdbPattern.cxx:1771
int DropCouples()
Definition: EdbPattern.cxx:1752
Long_t Vid(int pid, int sid) const
Definition: EdbPattern.h:407
EdbSegP * GetSegment(Long_t vid) const
Definition: EdbPattern.h:411
void Print() const
Definition: EdbPattern.cxx:1853
void DropCell()
Definition: EdbPattern.cxx:1926
EdbPattern * GetPattern(int id) const
Definition: EdbPattern.cxx:1887
void SortPatternsByZ(Bool_t descendingZ=0)
Definition: EdbPattern.cxx:1960
Float_t eY
Definition: EdbPattern.h:352
EdbPattern * GetPatternByPlate(int plate, int side)
Definition: EdbPattern.cxx:1933
void SetXYZ(float x, float y, float z)
Definition: EdbPattern.h:375
void SetPatternsID()
Definition: EdbPattern.cxx:1763
EdbPattern * GetPatternNext(float z, int dir) const
Definition: EdbPattern.cxx:2023
EdbPattern * GetPatternSucceding(EdbPattern *pat) const
Definition: EdbPattern.cxx:2011
EdbPatternsVolume()
Definition: EdbPattern.cxx:1705
TObjArray * ePatterns
Definition: EdbPattern.h:356
Float_t Xmean()
Definition: EdbPattern.cxx:2153
EdbPattern * InsertPattern(EdbPattern *pat, Bool_t descendingZ=0)
Definition: EdbPattern.cxx:1944
Float_t eZ
Definition: EdbPattern.h:352
Float_t X() const
Definition: EdbPattern.h:377
Definition: EdbVirtual.h:28
Definition: EdbVirtual.h:142
Float_t DZ() const
Definition: EdbSegP.h:151
void SetTrack(int trid)
Definition: EdbSegP.h:128
Int_t ID() const
Definition: EdbSegP.h:144
Float_t Z() const
Definition: EdbSegP.h:150
void SetP(float p)
Definition: EdbSegP.h:130
Int_t PID() const
Definition: EdbSegP.h:145
Definition: EdbPattern.h:27
void SetSegmentsDZ(float dz)
Definition: EdbPattern.cxx:284
Int_t CalculateAXAY(EdbSegmentsBox *p, EdbAffine2D *affA)
Definition: EdbPattern.cxx:336
void SetSegmentsFlag(int flag)
Definition: EdbPattern.cxx:302
Float_t Z() const
Definition: EdbPattern.h:87
Float_t GetSize(Int_t XorY)
Definition: EdbPattern.cxx:186
void SetSegmentsW(float w)
Definition: EdbPattern.cxx:293
Float_t eY
Definition: EdbPattern.h:31
void SetZ(float z)
Definition: EdbPattern.h:41
void TransformA(const EdbAffine2D *affA)
Definition: EdbPattern.cxx:367
Int_t CalculateXY(EdbSegmentsBox *p, EdbAffine2D *aff)
Definition: EdbPattern.cxx:325
EdbSegmentsBox(EdbSegmentsBox &box)
Definition: EdbPattern.h:45
virtual ~EdbSegmentsBox()
Definition: EdbPattern.cxx:47
void SetY(float y)
Definition: EdbPattern.h:83
Float_t GetTrackDensitymm2()
Definition: EdbPattern.cxx:232
Float_t eZ
Definition: EdbPattern.h:31
Float_t DiffAff(EdbAffine2D *aff)
Definition: EdbPattern.cxx:146
void RemovePosMargins(float x0, float y0, float dx, float dy)
Definition: EdbPattern.cxx:240
EdbSegP * AddSegmentNoDuplicate(EdbSegP &s)
Definition: EdbPattern.cxx:91
void TransformShr(const float shr)
Definition: EdbPattern.cxx:384
Float_t GetTrackDensity()
Definition: EdbPattern.cxx:222
Int_t N() const
Definition: EdbPattern.h:89
Float_t Y() const
Definition: EdbPattern.h:86
void Set0()
Definition: EdbPattern.cxx:57
void Print(Option_t *opt="") const
Definition: EdbPattern.cxx:420
Float_t Diff(EdbSegmentsBox &p)
Definition: EdbPattern.cxx:164
Int_t GetN() const
Definition: EdbPattern.h:65
void TransformARot(const EdbAffine2D *affA)
Definition: EdbPattern.cxx:401
void * GetSegmentsAddr()
Definition: EdbPattern.h:70
void Expand(int n)
Definition: EdbPattern.h:71
void SetX(float x)
Definition: EdbPattern.h:82
void Reset()
Definition: EdbPattern.cxx:139
EdbSegmentsBox(int nseg=0)
Definition: EdbPattern.cxx:30
void ProjectTo(const float dz)
Definition: EdbPattern.cxx:311
Float_t eX
Definition: EdbPattern.h:31
Float_t GetSizeXY()
Definition: EdbPattern.cxx:216
TClonesArray * eSegments
Definition: EdbPattern.h:33
Float_t GetSizeY()
Definition: EdbPattern.h:107
Float_t GetSizeX()
Definition: EdbPattern.h:106
EdbSegP * GetSegment(int i) const
Definition: EdbPattern.h:66
void RemoveAngMargins(float tx0, float ty0, float dtx, float dty)
Definition: EdbPattern.cxx:254
Float_t X() const
Definition: EdbPattern.h:85
Float_t eDZkeep
Definition: EdbPattern.h:35
EdbSegP * GetSegmentLast() const
Definition: EdbPattern.h:67
void SetSegmentsZ()
Definition: EdbPattern.cxx:275
TClonesArray * GetSegments() const
Definition: EdbPattern.h:69
EdbPoint * At(int i) const
Definition: EdbPattern.h:90
EdbSegP * AddSegment(int i, EdbSegP &s)
Definition: EdbPattern.cxx:71
void SetSegmentsPlate(int plate)
Definition: EdbPattern.cxx:266
Float_t DZ() const
Definition: EdbPattern.h:88
Definition: EdbPattern.h:118
void AddVTA(EdbVTA *vta)
Definition: EdbPattern.cxx:493
void SetN0(int n0)
Definition: EdbPattern.h:166
void RemoveSegment(EdbSegP *s)
Definition: EdbPattern.h:224
void AddSegmentF(EdbSegP *s)
Definition: EdbPattern.h:238
EdbVertex * VertexS()
Definition: EdbPattern.cxx:1284
EdbVertex * VertexE()
Definition: EdbPattern.cxx:1291
float CHI2F()
Definition: EdbPattern.cxx:1209
TSortedList * eS
Definition: EdbPattern.h:122
void AddSegment(EdbSegP *s)
Definition: EdbPattern.h:219
EdbVertex * Vertex(int zpos)
Definition: EdbPattern.h:152
Int_t NF() const
Definition: EdbPattern.h:183
void SubstituteSegment(EdbSegP *sold, EdbSegP *snew)
Definition: EdbPattern.h:231
Int_t Dir() const
Definition: EdbPattern.h:212
Int_t ePDG
Definition: EdbPattern.h:128
Float_t PerrUp() const
Definition: EdbPattern.h:267
Int_t PDG() const
Definition: EdbPattern.h:155
int RemoveAliasSegments()
Definition: EdbPattern.cxx:558
EdbSegP * GetSegmentFirst() const
Definition: EdbPattern.h:194
Float_t Wgrains() const
Definition: EdbPattern.cxx:702
EdbTrackP(int nseg=0)
vertex track end is attached to
Definition: EdbPattern.cxx:429
EdbSegP * GetSegmentLast() const
Definition: EdbPattern.h:195
void SetPerrUp(Float_t perrUp)
Definition: EdbPattern.cxx:1313
Int_t eNpl
Definition: EdbPattern.h:124
void Print()
Definition: EdbPattern.cxx:1245
EdbTrackP(EdbTrackP &track)
Definition: EdbPattern.h:139
EdbSegP * TrackExtremity(bool zpos, bool usesegpar=false) const
Definition: EdbPattern.h:206
EdbSegP * TrackZmin(bool usesegpar=false) const
Definition: EdbPattern.h:203
Float_t Zend() const
Definition: EdbPattern.h:216
int EstimatePositionAt(Float_t z, EdbSegP &ss)
Definition: EdbPattern.cxx:1093
Int_t N() const
Definition: EdbPattern.h:182
void Clear()
Definition: EdbPattern.h:271
void ClearF()
Definition: EdbPattern.h:272
Int_t N0() const
Definition: EdbPattern.h:168
EdbVTA * eVTAE
vertex track start is attached to
Definition: EdbPattern.h:132
int CheckAliasSegments()
Definition: EdbPattern.cxx:549
int SetSegmentsP(float p)
Definition: EdbPattern.h:251
void SetOwner()
Definition: EdbPattern.h:144
void Copy(const EdbTrackP &tr)
Definition: EdbPattern.cxx:516
int MakeSelector(EdbSegP &ss, bool followZ=true)
Definition: EdbPattern.cxx:1164
Float_t eM
Definition: EdbPattern.h:126
const EdbSegP * TrackEnd() const
Definition: EdbPattern.cxx:1339
void PrintNice()
Definition: EdbPattern.cxx:1262
int CheckMaxGap()
Definition: EdbPattern.cxx:573
Int_t eN0
Definition: EdbPattern.h:125
Int_t GetSegmentsFlag(int &nseg) const
Definition: EdbPattern.cxx:634
Float_t eDE
Definition: EdbPattern.h:127
EdbSegP * GetSegmentFFirst() const
Definition: EdbPattern.h:197
Int_t GetSegmentsAid(int &nseg) const
Definition: EdbPattern.cxx:667
TSortedList * eSF
Definition: EdbPattern.h:123
void SetNpl()
Definition: EdbPattern.h:174
void Set0()
Definition: EdbPattern.cxx:475
EdbSegP * GetSegmentF(int i) const
Definition: EdbPattern.h:201
void SetN0()
Definition: EdbPattern.h:167
Float_t Zstart() const
Definition: EdbPattern.h:215
float MakePredictionTo(Float_t z, EdbSegP &ss)
Definition: EdbPattern.cxx:1143
void SetPerr(Float_t perrDown, Float_t perrUp)
Definition: EdbPattern.cxx:1323
int SetSegmentsTrack()
Definition: EdbPattern.h:253
Float_t M() const
Definition: EdbPattern.h:160
Float_t ePerrDown
Definition: EdbPattern.h:130
void ClearVTA()
Definition: EdbPattern.cxx:502
int FitTrackKFS(bool zmax=false, float X0=5810., int design=0)
Definition: EdbPattern.cxx:765
Int_t GetSegmentsMCTrack(int &nseg) const
Definition: EdbPattern.cxx:588
void Transform(const EdbAffine2D &tr)
Definition: EdbPattern.cxx:540
virtual ~EdbTrackP()
Definition: EdbPattern.cxx:468
EdbSegP * GetSegmentWithClosestZ(float z, float dz)
Definition: EdbPattern.cxx:722
Float_t ePerrUp
Definition: EdbPattern.h:129
const EdbSegP * TrackStart() const
Definition: EdbPattern.cxx:1330
void SetNpl(int npl)
Definition: EdbPattern.h:173
Int_t Npl() const
Definition: EdbPattern.h:176
Float_t PerrDown() const
Definition: EdbPattern.h:268
int SetSegmentsTrack(int id)
Definition: EdbPattern.h:252
EdbVTA * VTAS() const
Definition: EdbPattern.h:148
Float_t Zmin() const
Definition: EdbPattern.cxx:1298
void FitTrack()
Definition: EdbPattern.cxx:739
void SetDE(float de)
Definition: EdbPattern.h:170
EdbSegP * GetSegment(int i) const
Definition: EdbPattern.h:200
Float_t DE() const
Definition: EdbPattern.h:171
void SetPDG(int pdg)
Definition: EdbPattern.h:154
void SetCounters()
Definition: EdbPattern.h:164
void SetM(float m)
Definition: EdbPattern.h:159
Double_t GetBTEfficiency()
Definition: EdbPattern.cxx:1227
EdbSegP * GetSegmentFLast() const
Definition: EdbPattern.h:198
Float_t Zmax() const
Definition: EdbPattern.cxx:1306
EdbVTA * VTAE() const
Definition: EdbPattern.h:149
void SetPerrDown(Float_t perrDown)
Definition: EdbPattern.cxx:1318
Float_t Wmean() const
Definition: EdbPattern.cxx:624
float CHI2()
Definition: EdbPattern.cxx:1192
EdbVTA * eVTAS
Definition: EdbPattern.h:131
EdbSegP * TrackZmax(bool usesegpar=false) const
Definition: EdbPattern.h:204
void AddTrack(const EdbTrackP &tr)
Definition: EdbPattern.cxx:711
Definition: EdbVertex.h:25
Definition: EdbVertex.h:68
Definition: TIndexCell.h:19
float xmin
Definition: emthickness.cpp:61
float X0
Definition: emthickness.cpp:69
float ymin
Definition: emthickness.cpp:63
float xmax
Definition: emthickness.cpp:61
float ymax
Definition: emthickness.cpp:63
ss
Definition: energy.C:62
int pid[1000]
Definition: m2track.cpp:13
const char * opt
Definition: mc2raw.cxx:42
Int_t plate
Definition: merge_Energy_SytematicSources_Electron.C:1
UInt_t id
Definition: tlg2pattern.C:118
p
Definition: testBGReduction_AllMethods.C:8
void w(int rid=2, int nviews=2)
Definition: test.C:27
EdbSegP * s1
Definition: tlg2pattern.C:30
EdbSegP * s2
Definition: tlg2pattern.C:31
EdbSegP * s
Definition: tlg2pattern.C:32