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);
82 Float_t
X()
const {
return eX;}
83 Float_t
Y()
const {
return eY;}
84 Float_t
Z()
const {
return eZ;}
86 Int_t
N()
const {
return GetN();}
152 Float_t
Wmean()
const;
155 Float_t
M()
const {
return eM;}
177 Int_t
N()
const {
return (
eS) ?
eS->GetSize() : 0; }
178 Int_t
NF()
const {
return (
eSF)?
eSF->GetSize() : 0; }
207 Int_t
Dir()
const {
return (
DZ()<0) ? -1 : 1;}
208 Float_t
Zmax()
const;
209 Float_t
Zmin()
const;
216 if(!
eS)
eS =
new TSortedList();
237 eSF =
new TSortedList();
259 void SetPerr(Float_t perrDown, Float_t perrUp);
297 void SetSigma(
float sx,
float sy,
float stx,
float sty)
299 void SetStep(
float stepx,
float stepy,
float steptx,
float stepty )
303 void FillCell(
float stepx,
float stepy,
float steptx,
float stepty );
358 void Shift(
float x,
float y);
363 Float_t
X()
const {
return eX;}
364 Float_t
Y()
const {
return eY;}
365 Float_t
Z()
const {
return eZ;}
393 Long_t
Vid(
int pid,
int sid)
const {
return pid*1000000+sid; }
394 Int_t
Pid(Long_t vid)
const {
return vid/1000000; }
395 Int_t
Sid(Long_t vid)
const {
return vid%1000000; }
brick z0
Definition: RecDispMC.C:106
brick dz
Definition: RecDispMC.C:107
brick X0
Definition: RecDispMC.C:112
int design
Definition: RecDispMC.C:90
TTree * tr
Definition: Shower_E_FromShowerRoot.C:5
float min(TClonesArray *t)
Definition: bitview.cxx:275
Definition: EdbAffine.h:17
Int_t ePlate
Definition: EdbID.h:11
Definition: EdbPattern.h:273
void Reset()
Definition: EdbPattern.cxx:1509
void SetSegmentsPID()
Definition: EdbPattern.cxx:1455
float Xmean()
Definition: EdbPattern.cxx:1517
void SetSide(int side)
Definition: EdbPattern.h:312
void SetID(int id)
Definition: EdbPattern.h:309
void SetPID(int pid)
Definition: EdbPattern.h:310
void SetSigma(float sx, float sy, float stx, float sty)
Definition: EdbPattern.h:297
int PID() const
Definition: EdbPattern.h:320
Int_t eID
pattern id in the volume
Definition: EdbPattern.h:277
Float_t eStepY
bin size for the index cell
Definition: EdbPattern.h:280
Int_t ePID
correspond to the piece ID
Definition: EdbPattern.h:278
float SummaryPath()
Definition: EdbPattern.cxx:1309
void SetStep(float stepx, float stepy, float steptx, float stepty)
Definition: EdbPattern.h:299
float StepX() const
Definition: EdbPattern.h:315
TIndexCell * eCell
associated with eSegments
Definition: EdbPattern.h:279
float StepTY() const
Definition: EdbPattern.h:318
void SetNAff(int n)
Definition: EdbPattern.h:311
Int_t eNAff
number of segments selected for affine calculation
Definition: EdbPattern.h:284
void SetSegmentsScanID(EdbID id)
Definition: EdbPattern.cxx:1464
EdbID ScanID() const
Definition: EdbPattern.h:326
float StepTX() const
Definition: EdbPattern.h:317
Int_t eSide
emulsion side 0/1/2, defined when possible
Definition: EdbPattern.h:286
void SetScanID(EdbID id)
Definition: EdbPattern.h:296
EdbID eScanID
main scanning ID for this pattern, defined when possible
Definition: EdbPattern.h:285
EdbSegP * FindSegment(int id)
Definition: EdbPattern.cxx:1302
TIndexCell * Cell() const
Definition: EdbPattern.h:321
virtual ~EdbPattern()
Definition: EdbPattern.cxx:1284
Float_t eStepTY
bin size for the index cell
Definition: EdbPattern.h:281
Float_t eStepTX
Definition: EdbPattern.h:281
int FindCompliments(EdbSegP &s, TObjArray &arr, float nsig, float nsigt)
Definition: EdbPattern.cxx:1354
Float_t eSigma[4]
accuracy in comparison to neibour pattern
Definition: EdbPattern.h:282
Int_t eFlag
pattern flag
Definition: EdbPattern.h:283
int ID() const
Definition: EdbPattern.h:319
Int_t Side() const
Definition: EdbPattern.h:328
Int_t NAff() const
Definition: EdbPattern.h:314
EdbPattern()
Definition: EdbPattern.cxx:1255
float Ymean()
Definition: EdbPattern.cxx:1527
Int_t Plate() const
Definition: EdbPattern.h:327
void Set0()
Definition: EdbPattern.cxx:1290
EdbPattern * ExtractSubPattern(float min[5], float max[5], int MCevt=-1)
Definition: EdbPattern.cxx:1470
Float_t eStepX
Definition: EdbPattern.h:280
float StepY() const
Definition: EdbPattern.h:316
void FillCell(float stepx, float stepy, float steptx, float stepty)
Definition: EdbPattern.cxx:1323
Definition: EdbPattern.h:334
Int_t Sid(Long_t vid) const
Definition: EdbPattern.h:395
virtual ~EdbPatternsVolume()
Definition: EdbPattern.cxx:1573
Float_t eX
Definition: EdbPattern.h:338
int FindComplimentsVol(EdbSegP &s, TObjArray &arr, float nsig, float nsigt, int dpat)
Definition: EdbPattern.cxx:1938
EdbPattern * GetPatternZLowestHighest(Bool_t lowestZ=kTRUE) const
Definition: EdbPattern.cxx:1816
TIndexCell * eTracksCell
"vidt:vids" - connected segments cell
Definition: EdbPattern.h:344
void PrintStat(Option_t *opt="") const
Definition: EdbPattern.cxx:1662
void PassProperties(EdbPatternsVolume &pvol)
Definition: EdbPattern.cxx:1729
void AddPattern(EdbPattern *pat)
Definition: EdbPattern.cxx:1707
Float_t Z() const
Definition: EdbPattern.h:365
Int_t Pid(Long_t vid) const
Definition: EdbPattern.h:394
Float_t Ymean()
Definition: EdbPattern.cxx:1999
TIndexCell * ePatternsCell
"pid:id1:chi2:id2" - all found couples
Definition: EdbPattern.h:345
EdbSegP * GetSegment(Long_t vid) const
Definition: EdbPattern.h:397
void Set0()
Definition: EdbPattern.cxx:1585
EdbPattern * GetPatternByPID(int pid) const
Definition: EdbPattern.cxx:1879
void Shift(float x, float y)
Definition: EdbPattern.cxx:1748
Bool_t eDescendingZ
if =0 - z increase in the pattrens array; if =1 - decrease
Definition: EdbPattern.h:347
Float_t Y() const
Definition: EdbPattern.h:364
void Centralize()
Definition: EdbPattern.cxx:1621
Int_t Npatterns() const
Definition: EdbPattern.h:366
EdbPattern * GetPatternByZ(float z, float tolerance=5) const
EdbPattern* GetPatternByZ(float z) const;.
Definition: EdbPattern.cxx:1899
EdbPattern * GetPatternPreceding(EdbPattern *pat) const
Definition: EdbPattern.cxx:1851
EdbPattern * NextPattern(float z, int dir) const
Definition: EdbPattern.cxx:1920
void PrintAff() const
Definition: EdbPattern.cxx:1651
void AddPatternAt(EdbPattern *pat, int id)
Definition: EdbPattern.cxx:1713
void Transform(const EdbAffine2D *aff)
Definition: EdbPattern.cxx:1611
int DropCouples()
Definition: EdbPattern.cxx:1592
Long_t Vid(int pid, int sid) const
Definition: EdbPattern.h:393
void Print() const
Definition: EdbPattern.cxx:1693
void DropCell()
Definition: EdbPattern.cxx:1760
EdbPattern * GetPattern(int id) const
Definition: EdbPattern.cxx:1721
void SortPatternsByZ(Bool_t descendingZ=0)
Definition: EdbPattern.cxx:1794
Float_t eY
Definition: EdbPattern.h:338
EdbPattern * GetPatternByPlate(int plate, int side)
Definition: EdbPattern.cxx:1767
void SetXYZ(float x, float y, float z)
Definition: EdbPattern.h:361
void SetPatternsID()
Definition: EdbPattern.cxx:1603
EdbPattern * GetPatternNext(float z, int dir) const
Definition: EdbPattern.cxx:1857
EdbPattern * GetPatternSucceding(EdbPattern *pat) const
Definition: EdbPattern.cxx:1845
EdbPatternsVolume()
Definition: EdbPattern.cxx:1545
TObjArray * ePatterns
collection of patterns
Definition: EdbPattern.h:342
Float_t Xmean()
Definition: EdbPattern.cxx:1987
EdbPattern * InsertPattern(EdbPattern *pat, Bool_t descendingZ=0)
Definition: EdbPattern.cxx:1778
Float_t eZ
central point
Definition: EdbPattern.h:338
Float_t X() const
Definition: EdbPattern.h:363
protocol class for point (virtual point)
Definition: EdbVirtual.h:28
collection of 2D points
Definition: EdbVirtual.h:150
Float_t DZ() const
Definition: EdbSegP.h:154
void SetTrack(int trid)
Definition: EdbSegP.h:131
Int_t ID() const
Definition: EdbSegP.h:147
Float_t Z() const
Definition: EdbSegP.h:153
Int_t PID() const
Definition: EdbSegP.h:148
Definition: EdbPattern.h:27
void SetSegmentsDZ(float dz)
Definition: EdbPattern.cxx:259
Int_t CalculateAXAY(EdbSegmentsBox *p, EdbAffine2D *affA)
Definition: EdbPattern.cxx:293
Float_t Z() const
Definition: EdbPattern.h:84
Float_t GetSize(Int_t XorY)
Definition: EdbPattern.cxx:187
Float_t eY
Definition: EdbPattern.h:31
void SetZ(float z)
Definition: EdbPattern.h:41
void TransformA(const EdbAffine2D *affA)
Definition: EdbPattern.cxx:324
Int_t CalculateXY(EdbSegmentsBox *p, EdbAffine2D *aff)
Definition: EdbPattern.cxx:282
EdbSegmentsBox(EdbSegmentsBox &box)
Definition: EdbPattern.h:45
virtual ~EdbSegmentsBox()
Definition: EdbPattern.cxx:48
void SetY(float y)
Definition: EdbPattern.h:80
Float_t GetTrackDensitymm2()
Definition: EdbPattern.cxx:233
Float_t eZ
central point
Definition: EdbPattern.h:31
Float_t DiffAff(EdbAffine2D *aff)
Definition: EdbPattern.cxx:147
EdbSegP * AddSegmentNoDuplicate(EdbSegP &s)
Definition: EdbPattern.cxx:92
EdbSegP * GetSegmentLast() const
Definition: EdbPattern.h:67
void TransformShr(const float shr)
Definition: EdbPattern.cxx:341
Float_t GetTrackDensity()
Definition: EdbPattern.cxx:223
Int_t N() const
Definition: EdbPattern.h:86
Float_t Y() const
Definition: EdbPattern.h:83
EdbPoint * At(int i) const
Definition: EdbPattern.h:87
void Set0()
Definition: EdbPattern.cxx:58
void Print(Option_t *opt="") const
other functions
Definition: EdbPattern.cxx:377
TClonesArray * GetSegments() const
Definition: EdbPattern.h:69
Float_t Diff(EdbSegmentsBox &p)
Definition: EdbPattern.cxx:165
Int_t GetN() const
Definition: EdbPattern.h:65
void TransformARot(const EdbAffine2D *affA)
Definition: EdbPattern.cxx:358
EdbSegP * GetSegment(int i) const
Definition: EdbPattern.h:66
void SetX(float x)
mandatory virtual functions:
Definition: EdbPattern.h:79
void Reset()
Definition: EdbPattern.cxx:140
EdbSegmentsBox(int nseg=0)
Definition: EdbPattern.cxx:31
void ProjectTo(const float dz)
Definition: EdbPattern.cxx:268
Float_t eX
Definition: EdbPattern.h:31
Float_t GetSizeXY()
Definition: EdbPattern.cxx:217
TClonesArray * eSegments
collection of segments (EdbSegP)
Definition: EdbPattern.h:33
Float_t GetSizeY()
Definition: EdbPattern.h:104
Float_t GetSizeX()
Definition: EdbPattern.h:103
Float_t X() const
Definition: EdbPattern.h:82
void * GetSegmentsAddr()
Definition: EdbPattern.h:70
Float_t eDZkeep
eDZkeep = eZ - Zoriginal (before any projections)
Definition: EdbPattern.h:35
void SetSegmentsZ()
Definition: EdbPattern.cxx:250
EdbSegP * AddSegment(int i, EdbSegP &s)
Definition: EdbPattern.cxx:72
void SetSegmentsPlate(int plate)
Definition: EdbPattern.cxx:241
Float_t DZ() const
Definition: EdbPattern.h:85
Definition: EdbPattern.h:113
void AddVTA(EdbVTA *vta)
Definition: EdbPattern.cxx:450
void SetN0(int n0)
Definition: EdbPattern.h:161
void RemoveSegment(EdbSegP *s)
Definition: EdbPattern.h:219
void AddSegmentF(EdbSegP *s)
Definition: EdbPattern.h:233
EdbVertex * VertexS()
Definition: EdbPattern.cxx:1191
EdbVertex * VertexE()
Definition: EdbPattern.cxx:1198
float CHI2F()
Definition: EdbPattern.cxx:1116
TSortedList * eS
array of segments
Definition: EdbPattern.h:117
void AddSegment(EdbSegP *s)
Definition: EdbPattern.h:214
EdbSegP * TrackZmax(bool usesegpar=false) const
Definition: EdbPattern.h:199
Int_t NF() const
Definition: EdbPattern.h:178
void SubstituteSegment(EdbSegP *sold, EdbSegP *snew)
Definition: EdbPattern.h:226
Int_t Dir() const
Definition: EdbPattern.h:207
Int_t ePDG
particle ID from PDG
Definition: EdbPattern.h:123
Float_t PerrUp() const
Definition: EdbPattern.h:260
Int_t PDG() const
Definition: EdbPattern.h:150
int RemoveAliasSegments()
Definition: EdbPattern.cxx:515
Float_t Wgrains() const
Definition: EdbPattern.cxx:659
EdbTrackP(int nseg=0)
Definition: EdbPattern.cxx:386
void SetPerrUp(Float_t perrUp)
Definition: EdbPattern.cxx:1220
EdbSegP * GetSegmentFFirst() const
Definition: EdbPattern.h:192
Int_t eNpl
number of plates passed through
Definition: EdbPattern.h:119
void Print()
Definition: EdbPattern.cxx:1152
EdbTrackP(EdbTrackP &track)
Definition: EdbPattern.h:134
Float_t Zend() const
Definition: EdbPattern.h:211
Int_t N() const
Definition: EdbPattern.h:177
void Clear()
Definition: EdbPattern.h:264
void ClearF()
Definition: EdbPattern.h:265
Int_t N0() const
Definition: EdbPattern.h:163
EdbVTA * eVTAE
vertex track end is attached to
Definition: EdbPattern.h:127
int CheckAliasSegments()
Definition: EdbPattern.cxx:506
void SetOwner()
Definition: EdbPattern.h:139
EdbSegP * GetSegment(int i) const
Definition: EdbPattern.h:195
void Copy(const EdbTrackP &tr)
Definition: EdbPattern.cxx:473
int MakeSelector(EdbSegP &ss, bool followZ=true)
Definition: EdbPattern.cxx:1071
EdbSegP * GetSegmentLast() const
Definition: EdbPattern.h:190
Float_t eM
invariant mass of the particle
Definition: EdbPattern.h:121
const EdbSegP * TrackEnd() const
Definition: EdbPattern.cxx:1246
void PrintNice()
Definition: EdbPattern.cxx:1169
int CheckMaxGap()
Definition: EdbPattern.cxx:530
EdbSegP * TrackExtremity(bool zpos, bool usesegpar=false) const
Definition: EdbPattern.h:201
EdbVTA * VTAS() const
Definition: EdbPattern.h:143
Int_t eN0
number of holes (if any)
Definition: EdbPattern.h:120
Int_t GetSegmentsFlag(int &nseg) const
Definition: EdbPattern.cxx:591
EdbSegP * GetSegmentF(int i) const
Definition: EdbPattern.h:196
EdbVTA * VTAE() const
Definition: EdbPattern.h:144
Float_t eDE
total energy loss of the particle between first and last segments
Definition: EdbPattern.h:122
Int_t GetSegmentsAid(int &nseg) const
Definition: EdbPattern.cxx:624
TSortedList * eSF
array of fitted segments
Definition: EdbPattern.h:118
void SetNpl()
Definition: EdbPattern.h:169
void Set0()
Definition: EdbPattern.cxx:432
void SetN0()
Definition: EdbPattern.h:162
Float_t Zstart() const
Definition: EdbPattern.h:210
float MakePredictionTo(Float_t z, EdbSegP &ss)
Definition: EdbPattern.cxx:1050
void SetPerr(Float_t perrDown, Float_t perrUp)
Definition: EdbPattern.cxx:1230
int SetSegmentsTrack()
Definition: EdbPattern.h:247
Float_t M() const
Definition: EdbPattern.h:155
Float_t ePerrDown
error of P() in lower direction, obtained by MCS,or shower-algorithm
Definition: EdbPattern.h:125
void ClearVTA()
Definition: EdbPattern.cxx:459
int FitTrackKFS(bool zmax=false, float X0=5810., int design=0)
Definition: EdbPattern.cxx:722
Int_t GetSegmentsMCTrack(int &nseg) const
Definition: EdbPattern.cxx:545
void Transform(const EdbAffine2D &tr)
Definition: EdbPattern.cxx:497
virtual ~EdbTrackP()
Definition: EdbPattern.cxx:425
EdbSegP * GetSegmentWithClosestZ(float z, float dz)
Definition: EdbPattern.cxx:679
Float_t ePerrUp
error of P() in upper direction, obtained by MCS,or shower-algorithm
Definition: EdbPattern.h:124
const EdbSegP * TrackStart() const
Definition: EdbPattern.cxx:1237
void SetNpl(int npl)
Definition: EdbPattern.h:168
EdbSegP * GetSegmentFLast() const
Definition: EdbPattern.h:193
Int_t Npl() const
Definition: EdbPattern.h:171
EdbVertex * Vertex(int zpos)
Definition: EdbPattern.h:147
Float_t PerrDown() const
Definition: EdbPattern.h:261
int SetSegmentsTrack(int id)
Definition: EdbPattern.h:246
Float_t Zmin() const
Definition: EdbPattern.cxx:1205
void FitTrack()
Definition: EdbPattern.cxx:696
void SetDE(float de)
Definition: EdbPattern.h:165
Float_t DE() const
Definition: EdbPattern.h:166
EdbSegP * GetSegmentFirst() const
Definition: EdbPattern.h:189
void SetPDG(int pdg)
Definition: EdbPattern.h:149
EdbSegP * TrackZmin(bool usesegpar=false) const
Definition: EdbPattern.h:198
void SetCounters()
Definition: EdbPattern.h:159
void SetM(float m)
Definition: EdbPattern.h:154
Double_t GetBTEfficiency()
Definition: EdbPattern.cxx:1134
Float_t Zmax() const
Definition: EdbPattern.cxx:1213
void SetPerrDown(Float_t perrDown)
Definition: EdbPattern.cxx:1225
Float_t Wmean() const
Definition: EdbPattern.cxx:581
float CHI2()
Definition: EdbPattern.cxx:1099
EdbVTA * eVTAS
vertex track start is attached to
Definition: EdbPattern.h:126
void AddTrack(const EdbTrackP &tr)
Definition: EdbPattern.cxx:668
Definition: EdbVertex.h:26
Definition: EdbVertex.h:69
sort collection with attributes
Definition: TIndexCell.h:19
int pid[1000]
Definition: m2track.cpp:13
s
Definition: check_shower.C:55
int max
Definition: check_shower.C:41
ss
Definition: energy.C:62
EdbSegP * s1
Definition: tlg2couples.C:29
EdbSegP * s2
Definition: tlg2couples.C:30
const char * opt
Definition: mc2raw.cxx:42
Int_t plate
Definition: merge_Energy_SytematicSources_Electron.C:1
UInt_t id
Definition: tlg2couples.C:117
p
Definition: testBGReduction_AllMethods.C:8
void w(int rid=2, int nviews=2)
Definition: test.C:27