FairRoot/PandaRoot
Public Member Functions | Private Member Functions | Private Attributes | List of all members
PndLmdCalStrip Class Reference

#include <PndLmdCalStrip.h>

Public Member Functions

 PndLmdCalStrip ()
 
 PndLmdCalStrip (Double_t pitch, Double_t orient, Int_t nrStrips, Int_t nrFeChannels, const TVector2 &firstStripAnchor, Double_t threshold, Double_t noise, Double_t sigma)
 
 PndLmdCalStrip (const PndLmdDigiPara *digipara, SensorSegment segment=kLEFT)
 
 ~PndLmdCalStrip ()
 
std::vector< PndLmdStrips > GetStrips (Double_t inx, Double_t iny, Double_t inz, Double_t outx, Double_t outy, Double_t outz, Double_t eloss)
 
std::vector< PndLmdStrips > DigiStripFromPoint (Double_t inx, Double_t iny, Double_t inz, Double_t outx, Double_t outy, Double_t outz, Double_t eloss)
 
std::vector< PndLmdStrips > GetCurveStrip (Double_t inx, Double_t iny, Double_t inz, Double_t outx, Double_t outy, Double_t outz, Double_t eLoss)
 
Int_t CalChannelFromStrip (Int_t stripNr)
 
Int_t CalFeFromStrip (Int_t stripNr)
 
Double_t AddNoise (Double_t charge)
 
Double_t ChargeDiffusion (Double_t u, Double_t a, Double_t path, Double_t dir, Double_t Q)
 
void print () const
 

Private Member Functions

Double_t CalStripFromPoint (Double_t x, Double_t y)
 
Double_t CalCurveStripFromPoint (Double_t x, Double_t y)
 
Double_t ChargeFromEloss (Double_t eloss) const
 
 ClassDef (PndLmdCalStrip, 3)
 

Private Attributes

Double_t fPitch
 
Double_t fOrient
 
TVector2 fAnchor
 
Int_t fNrStrips
 
Int_t fNrFEChannels
 
Double_t fThreshold
 
Double_t fNoise
 
TVector2 fStripDir
 
TVector2 fOrthoDir
 
TRandom3 * fRNG
 
Double_t fSigma
 

Detailed Description

Definition at line 31 of file PndLmdCalStrip.h.

Constructor & Destructor Documentation

PndLmdCalStrip::PndLmdCalStrip ( )

Definition at line 20 of file PndLmdCalStrip.cxx.

21 {
22  fPitch = 0;
23  fOrient = 0;
24  fAnchor = TVector2(0,0);
25  fThreshold = 0;
26  fNoise = 0;
27  fNrFEChannels = 0;
28  fNrStrips = 0;
29 
30  }
Double_t fOrient
Double_t fThreshold
TVector2 fAnchor
PndLmdCalStrip::PndLmdCalStrip ( Double_t  pitch,
Double_t  orient,
Int_t  nrStrips,
Int_t  nrFeChannels,
const TVector2 &  firstStripAnchor,
Double_t  threshold,
Double_t  noise,
Double_t  sigma 
)

Definition at line 32 of file PndLmdCalStrip.cxx.

References cos(), noise, nrFeChannels, nrStrips, orient, sigma, sin(), and threshold.

36 {
37  fPitch = pitch;
38  fOrient = orient;
39  fAnchor = firstStripAnchor;
41  fNoise = noise;
44  fSigma = sigma;
45 
46  fRNG = new TRandom3();
47 
50 
51  }
friend F32vec4 cos(const F32vec4 &a)
Definition: P4_F32vec4.h:112
friend F32vec4 sin(const F32vec4 &a)
Definition: P4_F32vec4.h:111
TVector2 fOrthoDir
Double_t sigma[nsteps]
Definition: dedx_bands.C:65
Double_t fOrient
int nrStrips
Definition: anaLmdDigi.C:76
int nrFeChannels
Definition: anaLmdDigi.C:75
double threshold
double orient
Double_t fThreshold
double noise
TRandom3 * fRNG
TVector2 fAnchor
TVector2 fStripDir
PndLmdCalStrip::PndLmdCalStrip ( const PndLmdDigiPara digipara,
SensorSegment  segment = kLEFT 
)

Definition at line 53 of file PndLmdCalStrip.cxx.

References cos(), PndLmdDigiPara::GetGausSigma(), PndLmdDigiPara::GetLeftAnchor(), PndLmdDigiPara::GetLeftOrient(), PndLmdDigiPara::GetLeftPitch(), PndLmdDigiPara::GetNoise(), PndLmdDigiPara::GetNrFeChannels(), PndLmdDigiPara::GetNrLeftFe(), PndLmdDigiPara::GetNrRightFe(), PndLmdDigiPara::GetRightAnchor(), PndLmdDigiPara::GetRightOrient(), PndLmdDigiPara::GetRightPitch(), PndLmdDigiPara::GetThreshold(), and sin().

54 {
55  if(segment == kLEFT)
56  {
57  fPitch = digipara->GetLeftPitch();
58  fOrient = digipara->GetLeftOrient();
59  fAnchor = digipara->GetLeftAnchor();
60  fNrStrips = digipara->GetNrLeftFe()*digipara->GetNrFeChannels();
61 
64  }
65  else if(segment==kRIGHT)
66  {
67  fPitch = digipara->GetRightPitch();
68  fOrient = digipara->GetRightOrient();
69  fAnchor = digipara->GetRightAnchor();
70  fNrStrips = digipara->GetNrRightFe()*digipara->GetNrFeChannels();
71 
74  }
75 
76  fNrFEChannels = digipara->GetNrFeChannels();
77  fThreshold = digipara->GetThreshold();
78  fNoise = digipara->GetNoise();
79  fSigma = digipara->GetGausSigma();
80 
81  fRNG = new TRandom3();
82 
83 }
friend F32vec4 cos(const F32vec4 &a)
Definition: P4_F32vec4.h:112
Double_t GetNoise() const
Int_t GetNrRightFe() const
Double_t GetGausSigma() const
friend F32vec4 sin(const F32vec4 &a)
Definition: P4_F32vec4.h:111
TVector2 fOrthoDir
Double_t fOrient
Double_t GetThreshold() const
TVector2 GetRightAnchor() const
Double_t GetRightOrient() const
Double_t GetLeftPitch() const
Int_t GetNrFeChannels() const
Int_t GetNrLeftFe() const
Double_t GetLeftOrient() const
TVector2 GetLeftAnchor() const
Double_t fThreshold
Double_t GetRightPitch() const
TRandom3 * fRNG
TVector2 fAnchor
TVector2 fStripDir
PndLmdCalStrip::~PndLmdCalStrip ( )
inline

Definition at line 52 of file PndLmdCalStrip.h.

52 {};

Member Function Documentation

Double_t PndLmdCalStrip::AddNoise ( Double_t  charge)

Definition at line 421 of file PndLmdCalStrip.cxx.

References Double_t.

422 {
423  Double_t smeared = fRNG->Gaus(charge,fNoise);
424  return smeared;
425  }
Double_t
TRandom3 * fRNG
Int_t PndLmdCalStrip::CalChannelFromStrip ( Int_t  stripNr)

Definition at line 414 of file PndLmdCalStrip.cxx.

Referenced by PndLmdDigiProducer::Exec().

415 {return stripNr%fNrFEChannels;}
Double_t PndLmdCalStrip::CalCurveStripFromPoint ( Double_t  x,
Double_t  y 
)
private

Definition at line 411 of file PndLmdCalStrip.cxx.

References sqrt().

412 {return (std::sqrt((x-fAnchor.X())*(x-fAnchor.X())+(y-fAnchor.Y())*(y-fAnchor.Y()))-30.0)/fPitch;}
friend F32vec4 sqrt(const F32vec4 &a)
Definition: P4_F32vec4.h:29
Double_t x
Double_t y
TVector2 fAnchor
Int_t PndLmdCalStrip::CalFeFromStrip ( Int_t  stripNr)

Definition at line 417 of file PndLmdCalStrip.cxx.

Referenced by PndLmdDigiProducer::Exec().

418 {return stripNr/fNrFEChannels;}
Double_t PndLmdCalStrip::CalStripFromPoint ( Double_t  x,
Double_t  y 
)
private

Definition at line 408 of file PndLmdCalStrip.cxx.

409 { return ((x-fAnchor.X())*fOrthoDir.X()+(y-fAnchor.Y())*fOrthoDir.Y())/fPitch;}
TVector2 fOrthoDir
Double_t x
Double_t y
TVector2 fAnchor
Double_t PndLmdCalStrip::ChargeDiffusion ( Double_t  u,
Double_t  a,
Double_t  path,
Double_t  dir,
Double_t  Q 
)

Definition at line 431 of file PndLmdCalStrip.cxx.

References a, Double_t, and sqrt().

432 { Int_t N = 150;
433  Double_t Npath = path/N;
434  Double_t NQ = Q/N;
435  Double_t Delta; //the area of Gaussian from (-infinite,u)
436  Double_t dQ=0; //the Q in the given range
437  if(path==0.)
438  {
439  Delta = 0.5 *(1+TMath::Erf((u-a)/fSigma*std::sqrt(2.)));
440  dQ = NQ*Delta;
441  }
442  else { if(dir>0.)
443  {
444  for(Double_t da=a;da<=a+path;da+=Npath)
445  {
446  Delta = 0.5*(1+TMath::Erf((u-da)/fSigma*std::sqrt(2.)));
447  dQ +=NQ * Delta;
448  }
449  }
450  if(dir<0)
451  {
452  for(Double_t da=a-path;da<=a;da+=Npath)
453  {
454  Delta = 0.5*(1+TMath::Erf((u-da)/fSigma*std::sqrt(2.)));
455  dQ +=NQ * Delta;
456  }
457  }//dir<<0
458 
459  }//path>0
460  return dQ;
461 }
friend F32vec4 sqrt(const F32vec4 &a)
Definition: P4_F32vec4.h:29
Int_t a
Definition: anaLmdDigi.C:126
Double_t
Double_t PndLmdCalStrip::ChargeFromEloss ( Double_t  eloss) const
private

Definition at line 405 of file PndLmdCalStrip.cxx.

405 {return eloss/3.61*1e9;}
double eloss
Definition: anaLmdSim.C:34
PndLmdCalStrip::ClassDef ( PndLmdCalStrip  ,
 
)
private
std::vector< PndLmdStrips > PndLmdCalStrip::DigiStripFromPoint ( Double_t  inx,
Double_t  iny,
Double_t  inz,
Double_t  outx,
Double_t  outy,
Double_t  outz,
Double_t  eloss 
)

Definition at line 211 of file PndLmdCalStrip.cxx.

References Double_t, fabs(), i, and genfit::tools::QR().

Referenced by PndLmdDigiProducer::Exec().

213 {
214  //call the GetStrips to initialize the strips
215  std::vector<PndLmdStrips> strips = GetStrips(inx, iny, inz, outx, outy,outz,eLoss);
216  cout<<" Number of strips initially fired :"<<strips.size()<<endl;
217 
218  //the charge of the whole path
219  Double_t total_Q = ChargeFromEloss(eLoss);
220 
221  //Strip numbers
222  Double_t nuIn = CalStripFromPoint(inx,iny);
223  Double_t nuOut= CalStripFromPoint(outx,outy);
224 
225 // cout<<"the entry strip and exit strip are :"<<nuIn<<","<<nuOut<<endl;
226 
227  //Strip number for FE channel
228  Int_t inStrip = Int_t(nuIn);
229  Int_t outStrip = Int_t(nuOut);
230 
231  //path direction
232  Double_t dir = (nuIn<nuOut)? 1 : -1;
233 
234  //the path portion on the first and last strip
235  Double_t Path1 = (nuIn-inStrip) * fPitch;
236  Double_t Path2 = (nuOut-outStrip) * fPitch;
237 
238  //path projection
239  Double_t path = std::fabs(nuOut-nuIn) * fPitch;
240  Int_t size = strips.size();
241 
242  //digitize the strips
243  //only 1 strip fired
244  if(size==1){
245  PndLmdStrips strip = strips.at(0);
246  Double_t path_real = strip.GetPath();
247  Double_t Q = strip.GetCharge();
248  Int_t index = strip.GetIndex();
249  strips.clear();
250 
251  // cout<<"the information of strip fired including:"<<index<<","<<path_real<<","<<Q<<endl;
252 
253  Double_t charge1, charge2, dQ, dQR, dQL;
254  Int_t id;
255  Double_t q_head,q_tail;
256  //charge diffusion according to the gaussian smearing
257  //between the 3 strips of index-1, index, and index+1
258  Double_t QL = ChargeDiffusion(0,Path1,path,dir,Q);//the diffusion charge from -infinite to index
259  Double_t QR = Q - ChargeDiffusion(fPitch,Path1,path,dir,Q);//the diffusion charge from index to infinite
260  Double_t QM = Q - QR -QL;// the charge left on the strip index
261 
262 // cout<<"the QL is "<<QL<<endl;
263 // cout<<"the QR is "<<QR<<endl;
264 // cout<<"the fNoise is :"<<fNoise<<endl;
265 
266  //noise smearing for the QL,QR and QM
267  dQR = AddNoise(QR);
268  dQL = AddNoise(QL);
269  cout<<"the QL was smeared by noise :"<<dQL<<endl;
270  cout<<"the QR was smeared by noise :"<<dQR<<endl;
271 
272 
273  //is it only 1 strip involved
274  if(dQL<fThreshold && dQR<fThreshold){
275  dQ = AddNoise(QM);
276  if(QM>=fThreshold)
277  strips.push_back(PndLmdStrips(index,path_real,dQ));
278  // cout<<"the dQ for the center strip is "<<dQ<<endl;
279 
280  }else{
281  Int_t i=0;
282  Int_t j=0;
283 
284  if(dQL>=fThreshold){
285  //charge distribution at the head of the track
286  charge1 = ChargeDiffusion((i-1)*fPitch,Path1,path,dir,Q);//charge distribution from -infinite to strip of index-1
287  charge2 = ChargeDiffusion(i*fPitch,Path1,path,dir,Q);
288  q_head = charge2 - charge1;
289  id = index + i-1;
290  dQ = AddNoise(q_head);
291  if(dQ>fThreshold)
292  strips.push_back(PndLmdStrips(id,0,dQ));
293  }
294 
295  if(dQR>=fThreshold){
296  //charge distribution at the head of the track
297  charge1 = ChargeDiffusion(j*fPitch,Path1,path,dir,Q);//charge distribution from -infinite to strip of index-1
298  charge2 = ChargeDiffusion((j+1)*fPitch,Path1,path,dir,Q);
299  q_tail = charge2 - charge1;
300  id = index + j;
301  dQ = AddNoise(q_tail);
302  if(dQ>fThreshold)
303  strips.push_back(PndLmdStrips(id,0,dQ));
304  }
305 
306  //the charge left on the center strip
307  Double_t restQ = ChargeDiffusion(fPitch,Path1,path,dir,Q) - ChargeDiffusion(0,Path1,path,dir,Q);
308  strips.push_back(PndLmdStrips(index,path_real,AddNoise(restQ)));
309  }
310 
311  }//for size == 1
312  // else for the size>1, means the number of strips fired greater than 1
313  else{
314  //for the strips
315  Double_t head_Path, tail_Path;
316  std::vector<PndLmdStrips> strip_head;
317  std::vector<PndLmdStrips> strip_tail;
318  std::vector<PndLmdStrips> strip_middle;
319  PndLmdStrips str_head;
320  PndLmdStrips str_tail;
321  PndLmdStrips str_middle;
322 
323  if(inStrip<outStrip){
324  str_head = strips.at(0);
325  str_tail = strips.at(size-1);
326  head_Path = Path1;
327  tail_Path = Path2+(size-1)*fPitch;
328 
329  for(Int_t i = 1; i<size-1;i++)
330  {str_middle = strips.at(i);}
331  }else{
332  str_tail = strips.at(0);
333  str_head = strips.at(size-1);
334  head_Path = Path2;
335  tail_Path = Path1+(size-1)*fPitch;
336 
337  for(Int_t i = size-2; i>0;i--)
338  {str_middle = strips.at(i);}
339 
340  }
341  strips.erase(strips.begin(),strips.begin()+size);
342 
343  //strips initialization
344  Int_t index_head = str_head.GetIndex();
345  Double_t path_head = str_head.GetPath();
346  //Double_t q_head = str_head.GetCharge();
347 
348  Int_t index_tail = str_tail.GetIndex();
349  Double_t path_tail = str_tail.GetPath();
350 // Double_t q_tail = str_tail.GetCharge();
351 
352 
353  //for the left strip of the head strip
354  Double_t charge1, charge2, dQ;
355  Int_t id;
356  Double_t ipath;
357  //Double_t q_head,q_tail;
358  Double_t dq_head = ChargeDiffusion(0,head_Path,path,dir,total_Q);//the diffusion charge from -infinite to index
359  Double_t dq_tail = total_Q- ChargeDiffusion(size*fPitch,tail_Path,path,(-1)*dir,total_Q);//the diffusion charge from index+size to infinite
360  Double_t q_head = ChargeDiffusion(fPitch,head_Path,path,dir,total_Q);// the charge left on the strip index
361  Double_t q_tail = ChargeDiffusion(size*fPitch,tail_Path,path,(-1)*dir,total_Q)
362  -ChargeDiffusion((size-1)*fPitch,tail_Path,path,(-1)*dir,total_Q);
363 
364  Double_t dQ_head = AddNoise(dq_head);
365  Double_t dQ_tail = AddNoise(dq_tail);
366  Double_t Q_head = AddNoise(q_head);
367  Double_t Q_tail = AddNoise(q_tail);
368 
369  if(dQ_head>fThreshold) {
370  id = index_head-1;
371  strip_head.push_back(PndLmdStrips(id,0,dQ_head));}
372  if(Q_head>fThreshold) {
373  id = index_head;
374  strip_head.push_back(PndLmdStrips(id,path_head,Q_head));}
375  strips.insert(strips.begin(),strip_head.begin(),strip_head.end());
376 
377  if(dQ_tail>fThreshold) {
378  id = index_tail+1;
379  strip_tail.push_back(PndLmdStrips(id,0,dQ_tail));}
380  if(Q_tail>fThreshold) {
381  id = index_tail;
382  strip_head.push_back(PndLmdStrips(id,path_tail,Q_tail));}
383  strips.insert(strips.end(),strip_tail.begin(),strip_tail.end());
384 
385  //for the strips between the head and the tail
386  for(Double_t i= 1;i< size-1;i++){
387  charge1 = ChargeDiffusion(i*fPitch,head_Path,path,dir,total_Q);
388  charge2 = ChargeDiffusion((i+1)*fPitch,head_Path,path,dir,total_Q);
389  dQ = charge2 - charge1;
390  std::vector<PndLmdStrips>::iterator iter_ii=strip_middle.begin();
391  id = iter_ii->GetIndex();
392  ipath = iter_ii->GetPath();
393  if(dQ>fThreshold) strip_middle.push_back(PndLmdStrips(id,ipath,dQ));
394  iter_ii++;
395  }//
396  strips.insert(strips.begin()+strip_head.size(),strip_middle.begin(),strip_middle.begin()+strip_middle.size());
397 
398 
399  }//for size>1
400  return strips;
401 
402 
403 }//digitize the strips
Int_t i
Definition: run_full.C:25
Double_t ChargeDiffusion(Double_t u, Double_t a, Double_t path, Double_t dir, Double_t Q)
void QR(TMatrixD &A)
Replaces A with an upper right matrix connected to A by an orthongonal transformation. I.e., it computes R from a QR decomposition of A = QR, replacing A.
Double_t AddNoise(Double_t charge)
std::vector< PndLmdStrips > GetStrips(Double_t inx, Double_t iny, Double_t inz, Double_t outx, Double_t outy, Double_t outz, Double_t eloss)
Double_t ChargeFromEloss(Double_t eloss) const
Double_t
friend F32vec4 fabs(const F32vec4 &a)
Definition: P4_F32vec4.h:47
Double_t fThreshold
Double_t CalStripFromPoint(Double_t x, Double_t y)
std::vector<PndLmdStrips> PndLmdCalStrip::GetCurveStrip ( Double_t  inx,
Double_t  iny,
Double_t  inz,
Double_t  outx,
Double_t  outy,
Double_t  outz,
Double_t  eLoss 
)
std::vector< PndLmdStrips > PndLmdCalStrip::GetStrips ( Double_t  inx,
Double_t  iny,
Double_t  inz,
Double_t  outx,
Double_t  outy,
Double_t  outz,
Double_t  eloss 
)

Definition at line 104 of file PndLmdCalStrip.cxx.

References Double_t, fabs(), n, and out.

106 { //2d projection of trajectory
107  TVector2 in(inx,iny);
108  TVector2 out(outx, outy);
109  TVector2 tpath= out-in;
110  Double_t path = tpath.Mod();
111 
112  std::vector<PndLmdStrips> strips;
113  // Double_t fract_Q;
114 
115 
116  if(path<1e-18)
117  {
118  std::cout<<"-w- PndLmdCalStrip::GetStrips: No Trajectory inside sensor!"<<tpath.Mod()<<std::endl;
119  return strips;
120  }
121  Double_t nuIn = CalStripFromPoint(inx,iny);
122  Double_t nuOut= CalStripFromPoint(outx,outy);
123  cout<<"The nuIn strip is :"<<nuIn<<endl;
124  cout<<"The outIn strip is :"<<nuOut<<endl;
125 
126  Double_t Q = ChargeFromEloss(eLoss);
127 
128  //the strip number for electronics channel
129  Int_t inStrip = Int_t(nuIn);
130  Int_t outStrip = Int_t(nuOut);
131 
132  //did the particle hit the active area?
133  if(nuIn<0.&& nuOut<0.|| nuIn>Double_t(fNrStrips)&&nuOut>Double_t(fNrStrips)){
134  std::cout<<"-i- warning: Hit outside active area."<<std::endl;
135  return strips;
136  }
137 
138  //the track direction
139  Double_t dir = (inStrip<outStrip) ? 1:-1;
140 
141  //is the In-point inside the active area?
142  if(nuIn<0.){
143  Q *= (nuOut)/(nuOut-nuIn);
144  nuIn = 0;
145  }else if(nuIn>(Double_t(fNrStrips))){
146  Q *=((Double_t)fNrStrips-nuIn)/(nuOut-nuIn);
147  nuIn = Double_t(fNrStrips);
148  }
149 
150  //is the Out-point inside the active area?
151  if(nuOut<0.){
152  Q *=(nuIn)/(-nuOut+nuIn);
153  nuOut = 0;
154  }else if(nuOut>(Double_t(fNrStrips))){
155  Q *=((Double_t)fNrStrips-nuIn)/(nuOut-nuIn);
156  nuOut = Double_t(fNrStrips);
157  }
158 
159  //only 1 hit happened
160  if(inStrip==outStrip){
161  // fract_Q = Q;
162  strips.push_back(PndLmdStrips(inStrip,path,Q));
163 
164 // cout<<"Only one hit happened and the strip fired is "<<inStrip<<endl;
165 
166  }else{
167  Double_t dQ = Q/std::fabs(nuOut-nuIn);
168  Double_t dPath = path/std::fabs(nuOut-nuIn);
169  Int_t nrHits = 0;
170  //calculate the portion of track in first strip
171  Int_t nextIn = Int_t(nuIn+0.5+0.5*dir);
172  Double_t path1 = std::fabs(nextIn-nuIn)*dPath;
173  Double_t Q1 = dQ * path1;
174 
175  if(Q1>fThreshold)
176  strips.push_back(PndLmdStrips(inStrip,path1,Q1));
177  nrHits++;
178  Q -= Q1;
179 
180  //calculate the portion of track in the last strip
181  Int_t prevOut = Int_t(nuOut+0.5+0.5*dir);
182  Double_t path2 = std::fabs(nuOut-prevOut)*dPath;
183  Double_t Q2 = dQ * path2;
184  if(Q2 > fThreshold)
185  strips.push_back(PndLmdStrips(outStrip,path2,Q2));
186  nrHits++;
187  Q -= Q2;
188 
189  //distribute the charge among the intermediate strips
190  nextIn = Int_t(nextIn-0.5+0.5*dir);
191  prevOut = Int_t(prevOut-0.5+0.5*dir);
192  for(Int_t n = nextIn; n != prevOut; n +=Int_t(dir)){
193  if(dQ > fThreshold)
194  strips.push_back(PndLmdStrips(n,dPath,dQ));
195  nrHits++;
196  Q -= dQ;
197  /*
198  cout<<"more than 1 hits: the strips fired are :"
199  <<"inStrip is"<<inStrip<<","
200  <<"the nextIn is:"<<nextIn<<","
201  <<"the prevOut is :"<<prevOut<<","
202  <<"the outStrip is :"<< outStrip<<endl;
203  */
204  }
205  }//for hits>1 loop
206 
207  return strips;
208  }
int n
Double_t ChargeFromEloss(Double_t eloss) const
Double_t
friend F32vec4 fabs(const F32vec4 &a)
Definition: P4_F32vec4.h:47
TFile * out
Definition: reco_muo.C:20
Double_t fThreshold
Double_t CalStripFromPoint(Double_t x, Double_t y)
void PndLmdCalStrip::print ( ) const

Definition at line 463 of file PndLmdCalStrip.cxx.

References Pi.

Referenced by PndLmdDigiProducer::Init().

464 {
465  std::cout<<"-I- PndLmdCalStrip Info :"<<std::endl;
466  std::cout<<" pitch = "<<fPitch*10000.<<" um"<<std::endl;
467  std::cout<<" orientation angle = "<<fOrient/TMath::Pi()*180.<<" deg"<<std::endl;
468  std::cout<<" nr of strips = "<<fNrStrips<<std::endl;
469  std::cout<<" nr of channels per FE = "<<fNrFEChannels<<std::endl;
470  std::cout<<" nr of frontends = "<<fNrStrips/fNrFEChannels<<std::endl;
471  std::cout<<" anchor point = ("<<fAnchor.X()<<","<<fAnchor.Y()<<")"<<std::endl;
472  std::cout<<" strip-direction vector = ("<<fStripDir.X()<<","<<fStripDir.Y()<<")"<<std::endl;
473 
474 
475 }
Double_t fOrient
Double_t Pi
TVector2 fAnchor
TVector2 fStripDir

Member Data Documentation

TVector2 PndLmdCalStrip::fAnchor
private

Definition at line 81 of file PndLmdCalStrip.h.

Double_t PndLmdCalStrip::fNoise
private

Definition at line 85 of file PndLmdCalStrip.h.

Int_t PndLmdCalStrip::fNrFEChannels
private

Definition at line 83 of file PndLmdCalStrip.h.

Int_t PndLmdCalStrip::fNrStrips
private

Definition at line 82 of file PndLmdCalStrip.h.

Double_t PndLmdCalStrip::fOrient
private

Definition at line 80 of file PndLmdCalStrip.h.

TVector2 PndLmdCalStrip::fOrthoDir
private

Definition at line 87 of file PndLmdCalStrip.h.

Double_t PndLmdCalStrip::fPitch
private

Definition at line 79 of file PndLmdCalStrip.h.

TRandom3* PndLmdCalStrip::fRNG
private

Definition at line 88 of file PndLmdCalStrip.h.

Double_t PndLmdCalStrip::fSigma
private

Definition at line 89 of file PndLmdCalStrip.h.

TVector2 PndLmdCalStrip::fStripDir
private

Definition at line 86 of file PndLmdCalStrip.h.

Double_t PndLmdCalStrip::fThreshold
private

Definition at line 84 of file PndLmdCalStrip.h.


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