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

Hit Producer Task for strip detectors. More...

#include <PndHypStripHitProducer.h>

Inheritance diagram for PndHypStripHitProducer:

Public Member Functions

 PndHypStripHitProducer ()
 
 PndHypStripHitProducer (Double_t topPitch, Double_t botPitch, Double_t ori, Double_t skew, TVector2 topAnchor, TVector2 botAnchor, Int_t nrTopFE, Int_t nrBotFE, Int_t nrFECh, Double_t threshold, Double_t noise, TString sensorType="Rect", TString feType="APV25")
 
virtual ~PndHypStripHitProducer ()
 
virtual void SetParContainers ()
 
virtual InitStatus Init ()
 
virtual InitStatus ReInit ()
 
virtual void Exec (Option_t *opt)
 
void SetParamSet (Double_t topPitch, Double_t botPitch, Double_t ori, Double_t skew, TVector2 topAnchor, TVector2 botAnchor, Int_t nrTopFE, Int_t nrBotFE, Int_t nrFECh, Double_t threshold, Double_t noise, TString sensorType, TString feType)
 

Private Member Functions

void Register ()
 
void Reset ()
 
void ProduceHits ()
 
TVector3 GetSensorDimensions (std::string detName) const
 
Bool_t SelectSensorParams (TString detname)
 
 ClassDef (PndHypStripHitProducer, 5)
 

Private Attributes

TString fBranchName
 
TClonesArray * fPointArray
 
TClonesArray * fHitArray
 
TClonesArray * fStripArray
 
PndGeoHypParfGeoPar
 
PndHypStripDigiParfCurrentDigiPar
 
PndHypStripDigiParfDigiPar
 
PndHypCalcStripfStripCalcTop
 
PndHypCalcStripfStripCalcBot
 
PndHypGeoHandlingfGeoH
 
TVector2 fTopAnchor
 Anchor Point on top side. More...
 
TVector2 fBotAnchor
 Anchor Point on bottom side. More...
 
Bool_t fOverrideParams
 internal Flag that controls use of Parameter Invocations More...
 

Detailed Description

Hit Producer Task for strip detectors.

The choice of the parameters used for Digitization depends on the invocation of the different constructors of this task. Instantiating by the default constructor forces the digitisation parameters initialized from the DigiPar-Database. On the other hand these parameters may be overridden by invoking the constructor:

* Int_t, Int_t, Int_t, Double_t, Double_t)


Basically, the sensors are thought to be rectangular (even if they are not). Knowing the origin of the wafer, the strips can be described by an angle (orientation), their separation with respect to each other (pitch) and one point that is known to be part of the first strip (anchor point).
The numbering scheme is as follows (assuming 128 channels per FE):

strip index frontend # side
0 0 top <- Top Anchor
1 0 top
... 0 top
127 0 top
128 1 top
... 1 top
255 1 top
256 2 top
... ... top
topNrFE*128-1 topNrFE-1 top
topNrFE*128 topNrFE bottom <- Bottom Anchor
... topNrFE bottom
topNrFE*128+127 topNrFE bottom
topNrFE*128+128 topNrFE+1 bottom
... ... bottom
(topNrFE+botNrFE)*128-1 topNrFE+botNrFE-1

bottom


The numbering starts from the strip containing the anchor point following the direction orthogonal to the strips in mathematically positive sense (along x-axis in positive direction, if the strip orientation equals 90 degrees).

Author
HG Zaunick hg.za.nosp@m.unic.nosp@m.k@phy.nosp@m.sik..nosp@m.tu-dr.nosp@m.esde.nosp@m.n.de

Definition at line 71 of file PndHypStripHitProducer.h.

Constructor & Destructor Documentation

PndHypStripHitProducer::PndHypStripHitProducer ( )

Default constructor

Definition at line 27 of file PndHypStripHitProducer.cxx.

References fBranchName, and fOverrideParams.

27  :
28 FairTask("Hyp Strip Hit Producer")
29 {
30  fBranchName = "HypPoint";
31 
32  /*ftopPitch = 0.;
33  fbotPitch = 0.;
34  forient = 0.;
35  fskew = 0.;
36  fTopAnchor = TVector2(0,0);
37  fBotAnchor = TVector2(0,0);
38  fnrTopFE = 0;
39  fnrBotFE = 0;
40  fnrFECh = 0;
41  fthreshold = 0.;
42  fnoise = 0.;*/
43 
44  fOverrideParams = false;
45  // stripHits = 0;
46  // fHitArray = new TClonesArray("PndHypHit");
47  // fStripArray = new TClonesArray("PndHypStripHit");
48 }
Bool_t fOverrideParams
internal Flag that controls use of Parameter Invocations
PndHypStripHitProducer::PndHypStripHitProducer ( Double_t  topPitch,
Double_t  botPitch,
Double_t  ori,
Double_t  skew,
TVector2  topAnchor,
TVector2  botAnchor,
Int_t  nrTopFE,
Int_t  nrBotFE,
Int_t  nrFECh,
Double_t  threshold,
Double_t  noise,
TString  sensorType = "Rect",
TString  feType = "APV25" 
)

Definition at line 51 of file PndHypStripHitProducer.cxx.

References fBranchName, fOverrideParams, and SetParamSet().

56  : // sensorType //[R.K.03/2017] unused variable(s)
57 FairTask("Hyp Strip Hit Producer")
58 {
59  fBranchName = "HypPoint";
60  // ftopPitch = topPitch;
61  // fbotPitch = botPitch;
62  // forient = ori;
63  // fskew = skew;
64  // fTopAnchor = topAnchor;
65  // fBotAnchor = botAnchor;
66  // fnrTopFE = nrTopFE;
67  // fnrBotFE = nrBotFE;
68  // fnrFECh = nrFECh;
69  // fthreshold = threshold;
70  // fnoise = noise;
71 
72  fOverrideParams = true;
74  nrFECh,threshold,noise,"Rect",feType);
75  //stripHits = 0;
76  std::cout << "Hyp Strip Hit Producer initiated" << std::endl;
77 }
TVector2 botAnchor(0., 0.)
double skew
Bool_t fOverrideParams
internal Flag that controls use of Parameter Invocations
double botPitch
double threshold
double topPitch
double noise
void SetParamSet(Double_t topPitch, Double_t botPitch, Double_t ori, Double_t skew, TVector2 topAnchor, TVector2 botAnchor, Int_t nrTopFE, Int_t nrBotFE, Int_t nrFECh, Double_t threshold, Double_t noise, TString sensorType, TString feType)
TVector2 topAnchor(0., 0.)
PndHypStripHitProducer::~PndHypStripHitProducer ( )
virtual

Destructor

Definition at line 114 of file PndHypStripHitProducer.cxx.

References fGeoH.

115 {
116  delete fGeoH;
117 }

Member Function Documentation

PndHypStripHitProducer::ClassDef ( PndHypStripHitProducer  ,
 
)
private
void PndHypStripHitProducer::Exec ( Option_t *  opt)
virtual

Virtual method Exec

Definition at line 226 of file PndHypStripHitProducer.cxx.

References PndHypCalcStrip::CalcChannelfromStrip(), PndHypCalcStrip::CalcFEfromStrip(), Double_t, fDigiPar, fGeoH, fPointArray, fStripArray, fStripCalcBot, fStripCalcTop, fVerbose, PndHypStripDigiPar::GetBotPitch(), PndHypPoint::GetDetName(), PndHypGeoHandling::GetPath(), GetSensorDimensions(), PndHypCalcStrip::GetStrips(), PndHypStripDigiPar::GetTopPitch(), PndHypPoint::GetVolumeID(), PndHypGeoHandling::MasterToLocalId(), point, PndHypPoint::PositionIn(), PndHypPoint::PositionOut(), PndHypPoint::Print(), PndHypCalcStrip::SetAnchor(), PndHypCalcStrip::SetreStrip(), and PndHypCalcStrip::SetVerboseLevel().

227 {
228  // Reset output array
229  //if ( ! fHitArray )
230  // Fatal("Exec", "No HitArray");
231 
232  //fHitArray->Delete();
233 
234  fStripArray->Delete();
235 
236  // fFeStripArray->Delete();
237 
238  // Declare some variables
239  PndHypPoint *point = NULL;
240 
241  Int_t detID = 0; // Detector ID
242  //trackID = 0; // Track index //[R.K.03/2017] unused variable
243 
244  // Loop over PndHypPoints
245  Int_t
246  nPoints = fPointArray->GetEntriesFast();
247  if (fVerbose > 0){
248  std::cout<<" Nr of Points: "<<nPoints<<std::endl;
249  }
250 
251 
252  Int_t iStrip = 0;
253  //Int_t iFeStrip = 0;
254  Int_t nSiL =-1;
255 
256  /*PndHypCalcStrip StripCalcTop(fDigiPar->topPitch, fDigiPar->orient,
257  fDigiPar->topNrFE * fDigiPar->feChannels , fDigiPar->feChannels,
258  fDigiPar->topAnchor,
259  fDigiPar->threshold, fDigiPar->noise);
260 
261  PndHypCalcStrip StripCalcBot(fDigiPar->botPitch, fDigiPar->orient + fDigiPar->skew,
262  fDigiPar->botNrFE * fDigiPar->feChannels, fDigiPar->feChannels,
263  fDigiPar->botAnchor,
264  fDigiPar->threshold, fDigiPar->noise);
265 
266  PndHypCalcStrip StripCalcTop(ftopPitch, forient,
267  fnrTopFE * fnrFECh , fnrFECh,
268  fTopAnchor,
269  fthreshold, fnoise);
270 
271  PndHypCalcStrip StripCalcBot(fbotPitch, forient + fskew,
272  fnrBotFE * fnrFECh, fnrFECh,
273  fBotAnchor,
274  fthreshold, fnoise);
275  */
276 
277  for (Int_t iPoint = 0; iPoint < nPoints; iPoint++)
278  {
279  point = (PndHypPoint*) fPointArray->At(iPoint);
280  //if (!((point->GetDetName()).Contains("Strip"))) continue;
281  //if ((point->GetDetName()).Contains("Disk")) continue;
282  // if ((point->GetDetName()).Contains("SideChips")) continue;
283 
284  //if (fVerbose > 1){
285  //std::cout<<"***** Strip Hit ******"<<std::endl;
286  //std::cout<<" DetName : "<<point->GetDetName()<<std::endl;
287  //}
288  if ( ! point){
289  std::cout<< "No Point!" << std::endl;
290  continue;
291  }
292  if (fVerbose > 1){
293  std::cout << "****Global Point: " << std::endl;
294  point->Print("");
295  }
296  //FairGeoVector posInL, posOutL, meanPos, meanPosL;
297  //GetLocalHitPoints(point, posInL, posOutL);
298  TVector3 posIn,posOut;
299  point->PositionIn(posIn);
300  point->PositionOut(posOut);
301 
302  TVector3 posInL = fGeoH->MasterToLocalId(posIn,point->GetDetName());
303  TVector3 posOutL = fGeoH->MasterToLocalId(posOut,point->GetDetName());
304 
305  if (fVerbose > 1){
306  std::cout << "Local Hits: " << std::endl;
307 
308  }
309 
310  if (fVerbose > 1){
311 
312  std::cout << "Energy: " << point->GetEnergyLoss() << std::endl;
313  }
314 
315  //TVector3 size = GetSensorDimensions(point->GetDetName().Data());
316  TVector3 size = GetSensorDimensions(fGeoH->GetPath(point->GetDetName()).Data());
317 
318  if (fVerbose > 2) std::cout<< "Sensor Size : x="
319  <<size.x()*2.<<" , y="
320  <<size.y()*2.<<" , z ="
321  <<size.z()*2.<<std::endl;
322 
323  TVector2 anchor(-size.x(),size.y());
324 
325  // Top Side
326  if (fVerbose > 0)
327  std::cout << "Top Side: " << std::endl;
328  // PndHypCalcStrip StripCalc(ftopPitch, forient, fnrTopFE * fnrFECh ,
329  // //FairGeoVector(-size.x(),-size.y(),0.),
330  // TVector2(0.,0.),
331  // fthreshold, fnoise);
332 
333  //StripCalcTop.SetVerboseLevel(fVerbose);
334  Double_t sttop = ((size.x()*2)/fDigiPar->GetTopPitch());
335 
336  Int_t rfetop = Int_t(sttop+0.5);
337  Int_t rtfe = Int_t((rfetop/128)+0.5);
338 
339  if(rfetop>=rtfe*128)fStripCalcTop->SetreStrip(rtfe*128);
340  else fStripCalcTop->SetreStrip(rfetop);
341  std::cout<<" tof fe "<<Int_t(rfetop/128)<<" total strips "<<rfetop<<std::endl;
342 
343  nSiL = point->GetVolumeID();
344 
345  fStripCalcTop->SetAnchor(anchor);
346  // Calculate a cluster of Strips fired
347  std::vector<PndHypStrip> topStrips =
348  fStripCalcTop->GetStrips(posInL.X(), posInL.Y(), posInL.Z(),
349  posOutL.X(), posOutL.Y(), posOutL.Z(),
350  point->GetEnergyLoss(),nSiL);
351 
352  if (topStrips.size() != 0){
353  //stripHits += topStrips.size();
354  if (fVerbose > 0)
355  std::cout << "SensorStrips: top " << topStrips.size()<<std::endl;
356 
357  //trackID = point->GetTrackID(); //[R.K.03/2017] unused variable
358  detID = point->GetVolumeID();
359 
360  // for(uint i = 0; i < myStrips.size(); i++)
361  //iStrip = 0;
362  //Int_t sp;SensorSide si; //[R.K. 01/2017] unused variable
363 
364 
365 
366  for(std::vector<PndHypStrip>::const_iterator it=topStrips.begin();
367  it!= topStrips.end();it++)
368 
369  {
370 
371  new ((*fStripArray)[iStrip]) PndHypDigiStrip(iPoint,detID,
372  point->GetDetName(),
373  fStripCalcTop->CalcFEfromStrip(it->GetIndex()),
374  fStripCalcTop->CalcChannelfromStrip(it->GetIndex()),it->GetCharge());
375  //dynamic_cast<PndHypDigiStrip*>(fStripArray->operator[](iStrip))->SetMCID(trackID);
376 
377 
378  if (fVerbose > 1)std::cout << *it <<" "<<topStrips[iStrip] << std::endl;
379  iStrip++;
380  }
381  }else if(fVerbose>2) std::cout<<"Top side empty"<<std::endl;
382 
383 
384  // Bottom Side
385  //MVD x-y local coordinates,TVector2(0.,size.y()*2.)
386  //HYP x-z,y-z local coor. TVector2(0.,size.z()*2.)
387  if (fVerbose > 0)
388  std::cout << "Bottom Side: " << std::endl;
389  // StripCalc = PndHypCalcStrip(fbotPitch, forient + fskew, fnrBotFE * fnrFECh ,
390  // //FairGeoVector(-size.x(),-size.y(),0.),
391  // TVector2(0.,size.y()*2.),
392  // fthreshold, fnoise);
393 
395  Double_t stbot;
396  stbot = ((size.y()*2)/fDigiPar->GetBotPitch());
397 
398  Int_t rfebot = Int_t(stbot);Int_t rbfe = Int_t(rfebot/128);
399 
400  if(rfebot>=rbfe*128)fStripCalcBot->SetreStrip(rbfe*128);
401  else fStripCalcBot->SetreStrip(rfebot);
402 
403  std::cout<<" bof fe "<<Int_t(rfebot/128)<<" total strips "<<rfebot<<std::endl;
404  fStripCalcBot->SetAnchor(anchor);
405 
406  // Calculate a cluster of Strips fired
407 
408  std::vector<PndHypStrip> botStrips =
409  fStripCalcBot->GetStrips(posInL.X(), posInL.Y(), posInL.Z(),
410  posOutL.X(), posOutL.Y(), posOutL.Z(),
411  point->GetEnergyLoss(),nSiL);
412 
413  if (botStrips.size() != 0){
414  //std::cout << "Deposited charge below threshold" << std::endl;
415  // continue;
416  //}
417  // stripHits += botStrips.size();
418  if (fVerbose > 1)
419  std::cout << "SensorStrips: bot " << botStrips.size()<<std::endl;
420 
421  //trackID = point->GetTrackID(); //[R.K.03/2017] unused variable
422  detID = point->GetVolumeID();
423  //uint iStrip = 0;
424  //Int_t sp;SensorSide si; //[R.K. 01/2017] unused variable
425 
426  for(std::vector<PndHypStrip>::const_iterator it=botStrips.begin();
427  it!= botStrips.end();++it)
428  {
429  new ((*fStripArray)[iStrip]) PndHypDigiStrip(iPoint,detID,
430  point->GetDetName(),
431  fStripCalcBot->CalcFEfromStrip(it->GetIndex()) + rtfe,
432  //StripCalcBot.CalcFEfromStrip(it->GetIndex()) + fnrTopFE,
433  fStripCalcBot->CalcChannelfromStrip(it->GetIndex()),it->GetCharge());
434  // dynamic_cast<PndHypDigiStrip*>(fStripArray->operator[](iStrip))->SetMCID(trackID);
435 
436 
437  if (fVerbose > 1)
438  std::cout << *it << std::endl;
439 
440  iStrip++;
441  }
442 
443  }else if(fVerbose>2) std::cout<<"Bottom side empty"<<std::endl;
444  // TODO read Parameters from Database
445  } // Loop over MCPoints
446 
447  // Event summary
448  std::cout << "-I- PndHypStripHitProducer: " << nPoints << " HypPoints, "
449  <<" Hits created." << " " << iStrip<< std::endl;
450 
451 }
int fVerbose
Definition: poormantracks.C:24
Double_t GetBotPitch() const
Int_t CalcFEfromStrip(Int_t stripNr) const
void SetreStrip(Int_t reStp)
virtual void Print(const Option_t *opt) const
Definition: PndHypPoint.cxx:77
TVector3 GetSensorDimensions(std::string detName) const
Int_t GetVolumeID() const
Definition: PndHypPoint.h:91
Int_t CalcChannelfromStrip(Int_t stripNr) const
void PositionIn(TVector3 &pos)
Definition: PndHypPoint.h:125
TString GetPath(TString id)
for a given ID the path is returned
Double_t
void SetAnchor(TVector2 edge)
std::vector< PndHypStrip > GetStrips(Double_t inx, Double_t iny, Double_t inz, Double_t outx, Double_t outy, Double_t outz, Double_t eLoss, int id)
void SetVerboseLevel(Int_t level)
void PositionOut(TVector3 &pos)
Definition: PndHypPoint.h:128
TString GetDetName() const
Definition: PndHypPoint.h:119
TVector3 MasterToLocalId(const TVector3 &master, const TString &id)
PndHypStripDigiPar * fDigiPar
Double_t GetTopPitch() const
PndSdsMCPoint * point
Definition: anaLmdCluster.C:72
TVector3 PndHypStripHitProducer::GetSensorDimensions ( std::string  detName) const
private

Definition at line 525 of file PndHypStripHitProducer.cxx.

References gGeoManager.

Referenced by Exec().

526 {
527  gGeoManager->cd(detName.c_str());
528  TGeoVolume* actVolume = gGeoManager->GetCurrentVolume();
529  TGeoBBox* actBox = (TGeoBBox*)(actVolume->GetShape());
530  TVector3 result;
531  result.SetX(actBox->GetDX());
532  result.SetY(actBox->GetDY());
533  result.SetZ(actBox->GetDZ());
534 
535  // //result.Dump();
536 
537  return result;
538 }
TGeoManager * gGeoManager
InitStatus PndHypStripHitProducer::Init ( )
virtual

Definition at line 150 of file PndHypStripHitProducer.cxx.

References fBranchName, fDigiPar, fGeoH, fPointArray, fStripArray, fStripCalcBot, fStripCalcTop, fVerbose, gGeoManager, kBOTTOM, kTOP, PndHypStripDigiPar::print(), and PndHypCalcStrip::SetVerboseLevel().

151 {
152  //FairRunAna* ana = FairRunAna::Instance(); //[R.K. 01/2017] unused variable
153  FairRootManager* ioman = FairRootManager::Instance();
154 
156 
157  if ( ! ioman )
158  {
159  std::cout << "-E- PndHypStripHitProducer::Init: "
160  << "RootManager not instantiated!" << std::endl;
161  return kFATAL;
162  }
163 
164  fPointArray = (TClonesArray*) ioman->GetObject(fBranchName);
165  if ( ! fPointArray )
166  {
167  std::cout << "-W- PndHypStripHitProducer::Init: "
168  << "No HypPoint array!" << std::endl;
169  return kERROR;
170  }
171 
172  // Create and register output array
173  //fHitArray = new TClonesArray("PndHypHit");
174  //ioman->Register("HypHit", "Hyp", fHitArray, kTRUE);
175 
176  // Create and register output array
177  fStripArray = new TClonesArray("PndHypDigiStrip");
178  ioman->Register("HypStripDigis", "Hyp", fStripArray, kTRUE);
179 
180  // Create and register parameter array
181  // fStripArray = new TClonesArray("PndHypDigiPar");
182  // ioman->Register("HypDigiParam", "Hyp", fDigiPar, kTRUE);
183 
184  // SetParContainers();
185 
186  std::cout << "-I- PndHypStripHitProducer: Initialisation successfull" << std::endl;
187  //std::cout << "-I- Test: " << fGeoMappingPar->detIdPairArray->GetEntries() << std::endl;
188 
189 
190  if (!fDigiPar) {
191  std::cout<<"-E- MvdStripHitProducer: DigiPar Container does not exist!"<<std::endl;
192  return kERROR;
193  }
194  // if (fOverrideParams)
195  // {
196  // fDigiPar->SetTopPitch(ftopPitch);
197  // fDigiPar->SetBotPitch(fbotPitch);
198  // fDigiPar->SetSkew(fskew);
199  // fDigiPar->SetOrient(forient);
200  // fDigiPar->SetTopAnchor(fTopAnchor);
201  // fDigiPar->SetBotAnchor(fBotAnchor);
202  // fDigiPar->SetNrFECh(fnrFECh);
203  // fDigiPar->SetNrTopFE(fnrTopFE);
204  // fDigiPar->SetNrBotFE(fnrBotFE);
205  // fDigiPar->SetThreshold(fthreshold);
206  // fDigiPar->SetNoise(fnoise);
207  // fDigiPar->setChanged();
208  // fDigiPar->setInputVersion(ana->GetRunId(),1);
209 
210  // }
211 
212  fDigiPar->print();
213 
218 
219  return kSUCCESS;
220 }
int fVerbose
Definition: poormantracks.C:24
Class to access the naming information of the MVD.
TGeoManager * gGeoManager
void SetVerboseLevel(Int_t level)
PndHypStripDigiPar * fDigiPar
void PndHypStripHitProducer::ProduceHits ( )
private
void PndHypStripHitProducer::Register ( )
private
InitStatus PndHypStripHitProducer::ReInit ( )
virtual

Definition at line 133 of file PndHypStripHitProducer.cxx.

References SetParContainers().

134 {
135  /*
136  FairRunAna* ana = FairRunAna::Instance();
137  FairRuntimeDb* rtdb=ana->GetRuntimeDb();
138  //fGeoPar = (PndGeoHypPar*)(rtdb->getContainer("PndGeoHypPar"));
139  fDigiPar=(PndHypStripDigiPar*)(rtdb->getContainer("PndHypStripDigiPar"));
140  //fGeoMappingPar = (PndHypGeoMappingPar*)(rtdb->getContainer("PndHypGeoMappingPar"));
141  std::cout << "fdigi par 2 init" << std::endl;
142  */
144  return kSUCCESS;
145 
146 }
void PndHypStripHitProducer::Reset ( )
private
Bool_t PndHypStripHitProducer::SelectSensorParams ( TString  detname)
private
void PndHypStripHitProducer::SetParamSet ( Double_t  topPitch,
Double_t  botPitch,
Double_t  ori,
Double_t  skew,
TVector2  topAnchor,
TVector2  botAnchor,
Int_t  nrTopFE,
Int_t  nrBotFE,
Int_t  nrFECh,
Double_t  threshold,
Double_t  noise,
TString  sensorType,
TString  feType 
)

Definition at line 80 of file PndHypStripHitProducer.cxx.

References fCurrentDigiPar, fDigiPar, fOverrideParams, PndHypStripDigiPar::SetBotAnchor(), PndHypStripDigiPar::SetBotPitch(), PndHypStripDigiPar::SetFeType(), PndHypStripDigiPar::SetNoise(), PndHypStripDigiPar::SetNrBotFE(), PndHypStripDigiPar::SetNrFECh(), PndHypStripDigiPar::SetNrTopFE(), PndHypStripDigiPar::SetOrient(), SetParContainers(), PndHypStripDigiPar::SetSensType(), PndHypStripDigiPar::SetSkew(), PndHypStripDigiPar::SetThreshold(), PndHypStripDigiPar::SetTopAnchor(), and PndHypStripDigiPar::SetTopPitch().

Referenced by PndHypStripHitProducer().

86 {
87  FairRunAna* ana = FairRunAna::Instance();
88  //FairRootManager* ioman = FairRootManager::Instance(); //[R.K. 01/2017] unused variable
89  if ( fDigiPar==0 ) SetParContainers();
90  if (fOverrideParams){
91  if (sensorType.Contains("Rect"))fCurrentDigiPar = fDigiPar;
92  else if (sensorType.Contains("Trap")) fCurrentDigiPar = fDigiPar;
99  fCurrentDigiPar->SetNrFECh(nrFECh);
100  fCurrentDigiPar->SetNrTopFE(nrTopFE);
101  fCurrentDigiPar->SetNrBotFE(nrBotFE);
104  fCurrentDigiPar->SetSensType(sensorType);
105  fCurrentDigiPar->SetFeType(feType);
106  fCurrentDigiPar->setChanged();
107  fCurrentDigiPar->setInputVersion(ana->GetRunId(),1);
108  }
109 
110 
111 }
PndHypStripDigiPar * fCurrentDigiPar
void SetTopAnchor(TVector2 x)
void SetBotPitch(Double_t x)
void SetBotAnchor(TVector2 x)
TVector2 botAnchor(0., 0.)
void SetNoise(Double_t x)
double skew
void SetSensType(TString x)
Bool_t fOverrideParams
internal Flag that controls use of Parameter Invocations
void SetTopPitch(Double_t x)
double botPitch
double threshold
void SetNrTopFE(Int_t x)
void SetFeType(TString x)
void SetSkew(Double_t x)
void SetThreshold(Double_t x)
void SetOrient(Double_t x)
double topPitch
PndHypStripDigiPar * fDigiPar
void SetNrFECh(Int_t x)
double noise
void SetNrBotFE(Int_t x)
TVector2 topAnchor(0., 0.)
void PndHypStripHitProducer::SetParContainers ( )
virtual

Virtual method Init

Definition at line 121 of file PndHypStripHitProducer.cxx.

References fDigiPar, and rtdb.

Referenced by ReInit(), and SetParamSet().

122 {
123  // Get Base Container
124 
125  FairRunAna* ana = FairRunAna::Instance();
126  FairRuntimeDb* rtdb=ana->GetRuntimeDb();
127  //fGeoPar = (PndGeoHypPar*)(rtdb->getContainer("PndGeoHypPar"));
128  fDigiPar = (PndHypStripDigiPar*)(rtdb->getContainer("PndHypStripDigiPar"));
129  //fGeoMappingPar = (PndHypGeoMappingPar*)(rtdb->getContainer("PndHypGeoMappingPar"));
130  std::cout << "fdigi par init" << std::endl;
131 }
FairRuntimeDb * rtdb
Definition: hit_dirc.C:66
PndHypStripDigiPar * fDigiPar

Member Data Documentation

TVector2 PndHypStripHitProducer::fBotAnchor
private

Anchor Point on bottom side.

Definition at line 135 of file PndHypStripHitProducer.h.

TString PndHypStripHitProducer::fBranchName
private

Definition at line 107 of file PndHypStripHitProducer.h.

Referenced by Init(), and PndHypStripHitProducer().

PndHypStripDigiPar* PndHypStripHitProducer::fCurrentDigiPar
private

Definition at line 117 of file PndHypStripHitProducer.h.

Referenced by SetParamSet().

PndHypStripDigiPar* PndHypStripHitProducer::fDigiPar
private

Definition at line 118 of file PndHypStripHitProducer.h.

Referenced by Exec(), Init(), SetParamSet(), and SetParContainers().

PndHypGeoHandling* PndHypStripHitProducer::fGeoH
private

Definition at line 131 of file PndHypStripHitProducer.h.

Referenced by Exec(), Init(), and ~PndHypStripHitProducer().

PndGeoHypPar* PndHypStripHitProducer::fGeoPar
private

Definition at line 116 of file PndHypStripHitProducer.h.

TClonesArray* PndHypStripHitProducer::fHitArray
private

Output array of PndHypHits

Definition at line 112 of file PndHypStripHitProducer.h.

Bool_t PndHypStripHitProducer::fOverrideParams
private

internal Flag that controls use of Parameter Invocations

Definition at line 152 of file PndHypStripHitProducer.h.

Referenced by PndHypStripHitProducer(), and SetParamSet().

TClonesArray* PndHypStripHitProducer::fPointArray
private

Input array of PndHypPoints

Definition at line 109 of file PndHypStripHitProducer.h.

Referenced by Exec(), and Init().

TClonesArray* PndHypStripHitProducer::fStripArray
private

Definition at line 113 of file PndHypStripHitProducer.h.

Referenced by Exec(), and Init().

PndHypCalcStrip* PndHypStripHitProducer::fStripCalcBot
private

Definition at line 120 of file PndHypStripHitProducer.h.

Referenced by Exec(), and Init().

PndHypCalcStrip* PndHypStripHitProducer::fStripCalcTop
private

Definition at line 119 of file PndHypStripHitProducer.h.

Referenced by Exec(), and Init().

TVector2 PndHypStripHitProducer::fTopAnchor
private

Anchor Point on top side.

Definition at line 133 of file PndHypStripHitProducer.h.


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