FairRoot/PandaRoot
Public Member Functions | List of all members
PndTrkSttAdjacencies Class Reference

#include <PndTrkSttAdjacencies.h>

Public Member Functions

 PndTrkSttAdjacencies ()
 
virtual ~PndTrkSttAdjacencies ()
 
void CalculateAdjacentStt (const Short_t NUMBER_STRAWS, TClonesArray *SttTubeArray, Short_t *nParContiguous, Short_t ListParContiguous[][6])
 
void CalculateAdjacentStt2 (const Short_t NUMBER_STRAWS, TClonesArray *SttTubeArray, Short_t *nParContiguous, Short_t ListParContiguous[][6], Double_t *x, Double_t *y, Double_t *z, Double_t *rxy2)
 
 ClassDef (PndTrkSttAdjacencies, 1)
 

Detailed Description

Definition at line 7 of file PndTrkSttAdjacencies.h.

Constructor & Destructor Documentation

PndTrkSttAdjacencies::PndTrkSttAdjacencies ( )

Default constructor

Definition at line 16 of file PndTrkSttAdjacencies.cxx.

16 {};
PndTrkSttAdjacencies::~PndTrkSttAdjacencies ( )
virtual

Destructor

Definition at line 19 of file PndTrkSttAdjacencies.cxx.

19 {};

Member Function Documentation

void PndTrkSttAdjacencies::CalculateAdjacentStt ( const Short_t  NUMBER_STRAWS,
TClonesArray *  SttTubeArray,
Short_t *  nParContiguous,
Short_t  ListParContiguous[][6] 
)

Definition at line 23 of file PndTrkSttAdjacencies.cxx.

References exit(), fabs(), PndSttTube::GetPosition(), PndSttTube::GetWireDirection(), i, x, and y.

31  {
32  int i,j; //n, ncontigue, //[R.K. 01/2017] unused variable?
33 
34 // FILE *HAND = fopen("ListaSttStraw.lis","w");
35 
36  double
37  dis2,
38  x[NUMBER_STRAWS],
39  //Xwiredirection[NUMBER_STRAWS], //[R.K. 9/2018] unused
40  y[NUMBER_STRAWS],
41  //Ywiredirection[NUMBER_STRAWS], //[R.K. 9/2018] unused
42  //z[NUMBER_STRAWS], //[R.K. 9/2018] unused
43  Zwiredirection[NUMBER_STRAWS];
44 
45  PndSttTube *pSttTube;
46 
47  // the total n. of STT straws is NUMBER_STRAWS;
48  for (i=1;i<= NUMBER_STRAWS; i++){
49  pSttTube = (PndSttTube *) SttTubeArray->At(i);
50  x[i-1] = pSttTube->GetPosition().X();
51  y[i-1] = pSttTube->GetPosition().Y();
52  //z[i-1] = pSttTube->GetPosition().Z(); //[R.K. 9/2018] unused
53  //Xwiredirection[i-1] = pSttTube->GetWireDirection().X(); //[R.K. 9/2018] unused
54  //Ywiredirection[i-1] = pSttTube->GetWireDirection().Y(); //[R.K. 9/2018] unused
55  Zwiredirection[i-1] = pSttTube->GetWireDirection().Z();
56  }
57 
58 
59  for (i=0;i< NUMBER_STRAWS; i++){
60  if( fabs(Zwiredirection[i] -1.) > 1.e-5) continue; // for now I don't consider the skews;
61 
62  nParContiguous[i+1]= 0;
63  for(j=0;j<NUMBER_STRAWS; j++){
64  if(j==i) continue;
65  if( fabs(Zwiredirection[j] -1.) > 1.e-5) continue; // for now I don't consider the skews;
66  dis2 = ( x[i]-x[j])*( x[i]-x[j]) +
67  (y[i]-y[j])*(y[i]-y[j]);
68  if(dis2>1.1) continue;
69  ListParContiguous[i][nParContiguous[i]] = j+1;
70  nParContiguous[i]++;
71  if( nParContiguous[i]>6 ) { cout<<"Error ! Contiguous Axial Straws > 6!!! Exit.\n"; exit(-1);}
72  }
73 
74 
75  } // end of for (i=0;i< NUMBER_STRAWS; i++)
76 
77 
78 
79 
80 
81 // fclose (HAND);
82 
83  }
Int_t i
Definition: run_full.C:25
exit(0)
TVector3 GetPosition()
Definition: PndSttTube.cxx:87
friend F32vec4 fabs(const F32vec4 &a)
Definition: P4_F32vec4.h:47
Double_t x
Double_t y
TVector3 GetWireDirection()
Definition: PndSttTube.cxx:107
void PndTrkSttAdjacencies::CalculateAdjacentStt2 ( const Short_t  NUMBER_STRAWS,
TClonesArray *  SttTubeArray,
Short_t *  nParContiguous,
Short_t  ListParContiguous[][6],
Double_t x,
Double_t y,
Double_t z,
Double_t rxy2 
)

Definition at line 89 of file PndTrkSttAdjacencies.cxx.

References exit(), fabs(), PndSttTube::GetPosition(), PndSttTube::GetWireDirection(), and i.

Referenced by PndTrkTracking2::Init().

101  {
102  int i,j;//,n, ncontigue; //[R.K. 01/2017] unused variable?
103 
104 // FILE *HAND = fopen("ListaSttStraw.lis","w");
105 
106  double
107  dis2,
108  //Xwiredirection[NUMBER_STRAWS], //[R.K. 9/2018] unused
109  //Ywiredirection[NUMBER_STRAWS], //[R.K. 9/2018] unused
110  Zwiredirection[NUMBER_STRAWS];
111 
112  PndSttTube *pSttTube;
113 
114  // the total n. of STT straws is NUMBER_STRAWS;
115  for (i=1;i<= NUMBER_STRAWS; i++){
116  pSttTube = (PndSttTube *) SttTubeArray->At(i);
117  x[i-1] = pSttTube->GetPosition().X();
118  y[i-1] = pSttTube->GetPosition().Y();
119  z[i-1] = pSttTube->GetPosition().Z();
120  rxy2[i-1]= x[i-1]*x[i-1]+y[i-1]*y[i-1];
121  //Xwiredirection[i-1] = pSttTube->GetWireDirection().X(); //[R.K. 9/2018] unused
122  //Ywiredirection[i-1] = pSttTube->GetWireDirection().Y(); //[R.K. 9/2018] unused
123  Zwiredirection[i-1] = pSttTube->GetWireDirection().Z();
124  }
125 
126 
127  for (i=0;i< NUMBER_STRAWS; i++){
128  if( fabs(Zwiredirection[i] -1.) > 1.e-5) continue; // for now I don't consider the skews;
129 
130  nParContiguous[i+1]= 0;
131  for(j=0;j<NUMBER_STRAWS; j++){
132  if(j==i) continue;
133  if( fabs(Zwiredirection[j] -1.) > 1.e-5) continue; // for now I don't consider the skews;
134  dis2 = ( x[i]-x[j])*( x[i]-x[j]) +
135  (y[i]-y[j])*(y[i]-y[j]);
136  if(dis2>1.1) continue;
137  ListParContiguous[i][nParContiguous[i]] = j+1;
138  nParContiguous[i]++;
139  if( nParContiguous[i]>6 ) { cout<<"Errore ! N contigue Par > 6!!! Exit.\n"; exit(-1);}
140  }
141 
142 /*
143  fprintf(HAND,"Stt straw n. %d ",i+1);
144  fprintf(HAND,", X %g, Y %g, Z %g ",
145  x[i],y[i],z[i]);
146  if(Zwiredirection[i] <0.) {
147  fprintf(HAND," dirX %g , dirY %g , dirZ %g ; straw contigue = %d ;",
148  -Xwiredirection[i],-Ywiredirection[i],Zwiredirection[i],
149  nParContiguous[i]);
150  }else{
151  fprintf(HAND," dirX %g , dirY %g , dirZ %g ; straw contigue = %d ;",
152  Xwiredirection[i],Ywiredirection[i],Zwiredirection[i],
153  nParContiguous[i]);
154  }
155  if( nParContiguous[i]>0 ) {
156  fprintf(HAND," lista :");
157  for(n=0;n<nParContiguous[i];n++){
158  fprintf(HAND," %d",ListParContiguous[i][n]);
159  }
160  fprintf(HAND,";\n");
161  } else {
162  fprintf(HAND,"\n");
163  }
164 */
165 
166  } // end of for (i=0;i< NUMBER_STRAWS; i++)
167 
168 
169 
170 
171 
172 // fclose (HAND);
173 
174  }
Int_t i
Definition: run_full.C:25
exit(0)
TVector3 GetPosition()
Definition: PndSttTube.cxx:87
Double_t z
friend F32vec4 fabs(const F32vec4 &a)
Definition: P4_F32vec4.h:47
Double_t x
Double_t y
TVector3 GetWireDirection()
Definition: PndSttTube.cxx:107
PndTrkSttAdjacencies::ClassDef ( PndTrkSttAdjacencies  ,
 
)

The documentation for this class was generated from the following files: