FairRoot/PandaRoot
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
PndLmdHybridHitProducer Class Reference

#include <PndLmdHybridHitProducer.h>

Inheritance diagram for PndLmdHybridHitProducer:
PndSdsHybridHitProducer PndSdsTask PndPersistencyTask

Public Member Functions

 PndLmdHybridHitProducer ()
 
virtual ~PndLmdHybridHitProducer ()
 
virtual void SetParContainers ()
 
virtual InitStatus Init ()
 
void SetBranchNames (TString inBranchname, TString outBranchname, TString folderName)
 
virtual void SetBranchNames ()
 
 ClassDef (PndLmdHybridHitProducer, 9)
 
virtual InitStatus ReInit ()
 
virtual void Exec (Option_t *opt)
 
virtual void FinishEvent ()
 
virtual void FinishTask ()
 
void RunTimeBased ()
 
virtual void SetInBranchId ()
 
void SetPersistency (Bool_t val=kTRUE)
 
Bool_t GetPersistency ()
 

Protected Member Functions

void Register ()
 
void Reset ()
 
void ProduceHits ()
 
TGeoHMatrix GetTransformation (Int_t sensorID)
 
void GetLocalHitPoints (PndSdsMCPoint *myPoint, FairGeoVector &myHitIn, FairGeoVector &myHitOut)
 
TVector3 GetSensorDimensions (Int_t sensorID)
 
void AddHit (PndSdsPixel &hit, int mcIndex)
 
void AddHits (std::vector< PndSdsPixel > *hitList, int mcIndex)
 
 ClassDef (PndSdsHybridHitProducer, 8)
 
 ClassDef (PndSdsTask, 1)
 

Protected Attributes

Bool_t fPersistance
 
Bool_t fDigiPixelMCInfo
 
TClonesArray * fPointArray
 
TClonesArray * fPixelArray
 
TClonesArray * fPixelMCArray
 
PndSdsPixelDigiParfDigiPar
 
PndSdsTotDigiParfTotDigiPar
 
PndSdsChargeConversionfChargeConverter
 
FairMCEventHeader * fMCEventHeader
 
PndSdsDigiPixelWriteoutBufferfDataBuffer
 
Double_t flx
 
Double_t fly
 
Double_t fthreshold
 
Double_t fnoise
 
Double_t fqsigma
 
Int_t fcols
 
Int_t frows
 
Int_t fPixelHits
 
PndGeoHandlingfGeoH
 
Int_t fEventNr
 
Bool_t fOverwriteParams
 
Bool_t fTimeOrderedDigi
 set to kTRUE to use the time ordering of the output data. More...
 
std::vector< PndSdsPixelfPixelList
 
TString fInBranchName
 
TString fOutBranchName
 
TString fFolderName
 
Int_t fInBranchId
 
Int_t fOutBranchId
 

Detailed Description

PndLmdHybridHitProducer.h

Definition at line 13 of file PndLmdHybridHitProducer.h.

Constructor & Destructor Documentation

PndLmdHybridHitProducer::PndLmdHybridHitProducer ( )

Default constructor

Definition at line 14 of file PndLmdHybridHitProducer.cxx.

References PndSdsHybridHitProducer::fDigiPixelMCInfo, PndSdsHybridHitProducer::fEventNr, PndSdsHybridHitProducer::fOverwriteParams, PndSdsHybridHitProducer::fPersistance, PndSdsHybridHitProducer::fPixelHits, and fVerbose.

14  :
15  PndSdsHybridHitProducer("LMD Hybrid Hit Producer")
16 {
17  fPixelHits = 0;
18  fEventNr = 0;
19  fOverwriteParams = kFALSE;
20  fPersistance = kTRUE;
21  fDigiPixelMCInfo = kFALSE;
22  if(fVerbose>2) std::cout << "LMD Hybrid Digi Producer created, Parameters will be taken from RTDB" << std::endl;
23 
24 }
int fVerbose
Definition: poormantracks.C:24
PndLmdHybridHitProducer::~PndLmdHybridHitProducer ( )
virtual

Destructor

Definition at line 28 of file PndLmdHybridHitProducer.cxx.

29 {
30 }

Member Function Documentation

void PndSdsHybridHitProducer::AddHit ( PndSdsPixel hit,
int  mcIndex 
)
protectedinherited

Definition at line 505 of file PndSdsHybridHitProducer.cxx.

References PndSdsPixel::AddMCIndex(), PndSdsHybridHitProducer::fPixelList, fVerbose, PndSdsPixel::GetCharge(), PndSdsPixel::GetCol(), PndSdsPixel::GetFE(), PndSdsPixel::GetRow(), PndSdsPixel::GetSensorID(), and i.

Referenced by PndSdsHybridHitProducer::AddHits().

506 {
507  bool found = false;
508  if(fVerbose > 1) std::cout << "Adding Hits to PixelList with mcIndex: " << mcIndex << std::endl;
509  // check if the channel fired already
510  for (UInt_t i = 0; i < fPixelList.size(); i++){
511  if ( fPixelList[i].GetSensorID() == hit.GetSensorID() &&
512  fPixelList[i].GetFE() == hit.GetFE() &&
513  fPixelList[i].GetCol() == hit.GetCol() &&
514  fPixelList[i].GetRow() == hit.GetRow() )
515  {
516  if (fVerbose > 1)
517  std::cout << "Pixel " << hit.GetSensorID()
518  << " FE/col/row " << hit.GetFE()
519  << "/" << hit.GetCol()
520  << "/" << hit.GetRow() << " already hit!"<< std::endl;
521  fPixelList[i].AddCharge(hit.GetCharge());
522  fPixelList[i].AddMCIndex(mcIndex);
523  return;
524  }
525  }
526  if (found == false){
527  hit.AddMCIndex(mcIndex);
528  fPixelList.push_back(hit);
529  }
530 }
int fVerbose
Definition: poormantracks.C:24
Int_t i
Definition: run_full.C:25
Int_t GetSensorID() const
Definition: PndSdsPixel.h:44
Int_t GetCol() const
Definition: PndSdsPixel.h:41
Int_t GetFE() const
Definition: PndSdsPixel.h:45
Int_t GetRow() const
Definition: PndSdsPixel.h:42
void AddMCIndex(int i)
Definition: PndSdsPixel.h:55
std::vector< PndSdsPixel > fPixelList
Double_t GetCharge() const
Definition: PndSdsPixel.h:43
void PndSdsHybridHitProducer::AddHits ( std::vector< PndSdsPixel > *  hitList,
int  mcIndex 
)
protectedinherited

Definition at line 497 of file PndSdsHybridHitProducer.cxx.

References PndSdsHybridHitProducer::AddHit(), PndSdsHybridHitProducer::fPixelList, fVerbose, and i.

Referenced by PndSdsHybridHitProducer::Exec().

498 {
499  for (UInt_t i = 0; i < hits->size(); i++){
500  AddHit((*hits)[i], mcIndex);
501  }
502  if (fVerbose > 1) std::cout << "Size of fPixelList: " << fPixelList.size() << std::endl;
503 }
int fVerbose
Definition: poormantracks.C:24
Int_t i
Definition: run_full.C:25
std::vector< PndSdsPixel > fPixelList
void AddHit(PndSdsPixel &hit, int mcIndex)
CbmHit * hits[nHits]
Definition: RiemannTest.C:19
PndLmdHybridHitProducer::ClassDef ( PndLmdHybridHitProducer  ,
 
)
PndSdsTask::ClassDef ( PndSdsTask  ,
 
)
protectedinherited
PndSdsHybridHitProducer::ClassDef ( PndSdsHybridHitProducer  ,
 
)
protectedinherited
void PndSdsHybridHitProducer::Exec ( Option_t *  opt)
virtualinherited

Virtual method Exec

Definition at line 217 of file PndSdsHybridHitProducer.cxx.

References PndSdsHybridHitProducer::AddHits(), PndSdsCalcFePixel::CalcFEHits(), PndSdsChargeConversion::ChargeToDigiValue(), PndSdsChargeConversion::DigiValueToCharge(), Double_t, PndSdsChargeConversion::EndExecute(), PndSdsHybridHitProducer::fChargeConverter, PndSdsHybridHitProducer::fDataBuffer, PndSdsHybridHitProducer::fDigiPar, PndSdsHybridHitProducer::fEventNr, PndSdsHybridHitProducer::fGeoH, PndSdsTask::fInBranchId, PndSdsHybridHitProducer::flx, PndSdsHybridHitProducer::fly, PndSdsHybridHitProducer::fPixelHits, PndSdsHybridHitProducer::fPixelList, PndSdsHybridHitProducer::fPointArray, PndSdsHybridHitProducer::fqsigma, PndSdsHybridHitProducer::fthreshold, PndSdsHybridHitProducer::fTimeOrderedDigi, fVerbose, PndSdsHybridHitProducer::GetLocalHitPoints(), PndGeoHandling::GetPath(), PndSdsCalcPixel::GetPixels(), PndSdsCalcPixelDif::GetPixels(), PndSdsMCPoint::GetSensorID(), PndSdsChargeConversion::GetTimeStamp(), PndSdsChargeConversion::GetTimeStep(), PndSdsChargeConversion::GetTimeWalk(), i, point, PndSdsMCPoint::Print(), PndGeoHandling::SetVerbose(), and PndSdsChargeConversion::StartExecute().

218 {
219  if(fVerbose>3) Info("Exec","Start");
220  //
221  // if (fFEModel == 0)
222  // std::cout << "-E- PndSdsHybridHitProducer::Exec No front end model defined!" << std::endl;
223 
224 
225  Double_t EventTime = FairRootManager::Instance()->GetEventTime();
226 
227  if(fVerbose>0)
228  {
229  std::cout << std::endl;
230  std::cout << "-I- PndSdsHybridHitProducer::Exec EventTime: " << EventTime << " event: " << FairRootManager::Instance()->GetEntryNr() << std::endl;
231  }
232 
233  fPixelList.clear();
235  // Declare some variables
236  PndSdsMCPoint *point = NULL;
237 
238  if( ! fChargeConverter) Fatal("Exec","No charge converter specified");
239  // Int_t detID = 0; // Detector ID
240  fChargeConverter->StartExecute(); //here parameters that change every event are set
241 
242  // Loop over PndSdsMCPoints
243  Int_t nPoints = fPointArray->GetEntriesFast();
244  Int_t iFePixel = 0;
245  fPixelHits = 0;
246 
247  if(fVerbose>3) Info("Exec","Begin loop for %i points",nPoints);
248  for (Int_t iPoint = 0; iPoint < nPoints; iPoint++)
249  {
250  point = (PndSdsMCPoint*) fPointArray->At(iPoint);
251  if ( ! point){
252  std::cout<< "No Point!" << std::endl;
253  continue;
254  }
255  if (fVerbose > 1){
256  std::cout << "****Global Point: " << std::endl;
257  point->Print("");
258  }
259  FairGeoVector posInL, posOutL;
260  GetLocalHitPoints(point, posInL, posOutL);
261 
262  if (fVerbose > 1){
263  std::cout << "posOutL: " << std::endl;
264  std::cout << posInL.X() << " " << posInL.Y() << " " << posInL.Z() << std::endl;
265  std::cout << posOutL.X() << " " << posOutL.Y() << " " << posOutL.Z() << std::endl;
266  }
267 
268  if (fVerbose > 1){
269  FairGeoVector meanPosL = posInL + posOutL;
270  meanPosL /= 2;
271  meanPosL.Print();
272  std::cout << "Energy: " << point->GetEnergyLoss() << std::endl;
273  std::cout << point->GetSensorID() << std::endl;
274  std::cout << fGeoH->GetPath(point->GetSensorID()) << std::endl;
275  std::cout << "Time since Event started: " << point->GetTime() << std::endl;
276  }
277  std::vector<PndSdsPixel> myFePixels;
278  if ( fGeoH->GetPath(point->GetSensorID()).Contains("Pixel")
279  ||
280  ( fGeoH->GetPath(point->GetSensorID()).Contains("Sensor") &&
281  !fGeoH->GetPath(point->GetSensorID()).Contains("Strip") )
282  )
283  {
284  std::vector<PndSdsPixel> myPixels;
285  if(fqsigma>0){
286  // Define sensor by pixelsizes threshold and noise from macro outside
287  PndSdsCalcPixelDif PixelCalc(*fDigiPar);
288  // Calculate a cluster of Pixels fired (in sensor system)
289  myPixels = PixelCalc.GetPixels (posInL.getX(), posInL.getY(),
290  posOutL.getX(), posOutL.getY(),
291  point->GetEnergyLoss());
292  } else {
293  // Define sensor by pixelsizes threshold and noise from macro outside
294  PndSdsCalcPixel PixelCalc(flx, fly);
295  // Calculate a cluster of Pixels fired (in sensor system)
296  myPixels = PixelCalc.GetPixels (posInL.getX(), posInL.getY(),
297  posOutL.getX(), posOutL.getY(),
298  point->GetEnergyLoss());
299  }
300  if (myPixels.size() == 0){
301  if (fVerbose > 1) std::cout << "Deposited charge below threshold" << std::endl;
302  } else {
303  fPixelHits += myPixels.size();
304  if (fVerbose > 1) std::cout << "SensorPixels: " << std::endl;
305  for(UInt_t i = 0; i < myPixels.size(); i++)
306  {
307  myPixels[i].SetSensorID(point->GetSensorID());
308  if (fVerbose > 1) std::cout << myPixels[i] << std::endl;
309  }
310  // Calculate channel numbers
311  PndSdsCalcFePixel feCalc(*fDigiPar); //TODO: Why do we set 10 column Frontends per hand?
312  myFePixels = feCalc.CalcFEHits(myPixels);
313  if (fVerbose > 1){
314  std::cout << "FePixels: " << myFePixels.size() << std::endl;
315  for(UInt_t i = 0; i < myFePixels.size(); i++){
316  std::cout << myFePixels[i] << std::endl;
317  }
318  }
319  AddHits(&myFePixels, iPoint);
320  }//endif myPixels.size
321 
322  }//endif pixel
323  } // Loop over MCPoints
324 
325  // convert to digi data type after all charge is collected
326  // and apply gaussian noise
327 
328  Double_t charge=0;
329  for (unsigned int iPix = 0; iPix < fPixelList.size(); iPix++)
330  {
331  if(fVerbose>1) std::cout << "fPixelList.size()" << fPixelList.size() << std::endl;
332  point = (PndSdsMCPoint*) fPointArray->At(fPixelList[iPix].GetMCIndex()[0]);
333  charge=fPixelList[iPix].GetCharge();
334  //std::cout << fPixelList[iPix] << std::endl;
335 
336  if (fVerbose > 1) std::cout << fPixelList[iPix] << std::endl;
337 
338  // if (fFEModel > 0){
339  // double correctedTimeStamp = (fFEModel->GetTimeStamp(EventTime, 0, charge) - fFEModel->GetTimeWalkFromTot(fFEModel->GetTotFromCharge(charge)) - fFEModel->GetTimeStep()/2);
340  // std::cout << "FEModel-Test: " << point->GetEnergyLoss() << " " << charge << " " << fChargeConverter->ChargeToDigiValue(charge) << " " << fFEModel->GetTotFromCharge(charge) << " " << fFEModel->GetChargeFromTot(fFEModel->GetTotFromCharge(charge)) << std::endl
341  // << " Time: " << point->GetTimeStamp() << " " << fFEModel->GetTimeStamp(EventTime, point->GetTime(), charge) << " " << correctedTimeStamp << std::endl
342  // << " TimeDifference: " << point->GetTimeStamp() - correctedTimeStamp << std::endl;
343  // if ((point->GetTimeStamp() - correctedTimeStamp) > 10 || (point->GetTimeStamp() - correctedTimeStamp) < -10) {
344  // std::cout << "BigDifference!" << std::endl;
345  // }
346  // }
347 
348  Int_t smearedCharge = (Int_t)fChargeConverter->ChargeToDigiValue(charge);
349  Double_t smearedChargeInE = fChargeConverter->DigiValueToCharge(smearedCharge);
350  Int_t timeStamp = (Int_t)fChargeConverter->GetTimeStamp(point->GetTime(),smearedChargeInE, EventTime);
351 
352  if (smearedChargeInE < fthreshold)
353  smearedChargeInE = fthreshold;
354  Double_t timewalk = fChargeConverter->GetTimeWalk(smearedChargeInE);
355 
356  Double_t correctedTimeStamp = timeStamp - timewalk - fChargeConverter->GetTimeStep()/2;
357 
358  if (fVerbose > 2){
359  std::cout << "TimeStampCalc: EventTime: " << EventTime << " ToF " << point->GetTime() << " charge " << smearedChargeInE << " TW: " << timewalk << " CorrectedTS: " << correctedTimeStamp << std::endl;
360  std::cout << "Diff TimeStamp - EventTime " << correctedTimeStamp - EventTime << std::endl;
361  }
362  PndSdsDigiPixel *tempPixel = new PndSdsDigiPixel( fPixelList[iPix].GetMCIndex(), fInBranchId, fPixelList[iPix].GetSensorID() ,fPixelList[iPix].GetFE(),
363  fPixelList[iPix].GetCol(), fPixelList[iPix].GetRow(),
364  smearedCharge, correctedTimeStamp); //fChargeConverter->GetTimeStamp(point->GetTime(), charge,fEventHeader->GetEventTime()) );
365 
366  if (fTimeOrderedDigi){
367  tempPixel->ResetLinks();
368  std::vector<int> indices = fPixelList[iPix].GetMCIndex();
369  FairEventHeader* evtHeader = (FairEventHeader*)FairRootManager::Instance()->GetObject("EventHeader.");
370  for (int i = 0; i < (int)indices.size(); i++){
371  tempPixel->SetInsertHistory(true);
372  tempPixel->AddLink(FairLink(evtHeader->GetInputFileId(), evtHeader->GetMCEntryNumber(), fInBranchId, indices[i]));
373  PndSdsMCPoint* myPoint = (PndSdsMCPoint*)fPointArray->At(indices[i]);
374  tempPixel->AddLinks(*(myPoint->GetPointerToLinks()));
375  }
376  tempPixel->AddLink(FairLink(-1, fEventNr, "EventHeader.", -1));
377  }
378  fDataBuffer->FillNewData(tempPixel, fChargeConverter->ChargeToDigiValue(fPixelList[iPix].GetCharge())*6 + EventTime, point->GetTime()+EventTime);
379  if (fVerbose > 0){
380  std::cout << "PixelDigi: " << (tempPixel) << std::endl;
381 #if (ROOT_VERSION_CODE >= ROOT_VERSION(5,34,10))
382  std::cout << "Links in Digi: " << (FairMultiLinkedData_Interface*)(tempPixel) << std::endl;
383 #else
384  std::cout << "Links in Digi: " << (FairMultiLinkedData)(*tempPixel) << std::endl;
385 #endif
386  }
387  delete tempPixel;
388 
389 
390  }
391 
392 
393 
394 
396  // Event summary
397 
398  if (fVerbose > 1){
399  std::cout << "-I- PndSdsHybridHitProducer: " << nPoints << " PndSdsMCPoints, "
400  << fPixelHits << " Digi created." << " " << iFePixel
401  << " (event "<<fEventNr <<")"<< std::endl;
402 
403 
404  }
405  fEventNr++;
406  if(fVerbose>3) Info("Exec","Loop MC points");
407 }
int fVerbose
Definition: poormantracks.C:24
Int_t fInBranchId
Definition: PndSdsTask.h:43
PndSdsChargeConversion * fChargeConverter
Int_t i
Definition: run_full.C:25
virtual Double_t GetTimeStep()
virtual Double_t GetTimeStamp(Double_t tof, Double_t charge, Double_t MCEventTime)=0
absolute time stamp of a hit in ns (clock is taken into account)
Int_t GetSensorID() const
Definition: PndSdsMCPoint.h:89
TString GetPath(Int_t shortID)
for a given shortID the path is returned
Bool_t fTimeOrderedDigi
set to kTRUE to use the time ordering of the output data.
virtual Double_t DigiValueToCharge(Double_t digi)=0
Converts a given digitized charge into charge in electrons.
Double_t
void AddHits(std::vector< PndSdsPixel > *hitList, int mcIndex)
TClonesArray * point
Definition: anaLmdDigi.C:29
void GetLocalHitPoints(PndSdsMCPoint *myPoint, FairGeoVector &myHitIn, FairGeoVector &myHitOut)
std::vector< PndSdsPixel > fPixelList
void SetVerbose(Int_t v)
virtual Double_t ChargeToDigiValue(Double_t Charge)=0
Converts a given charge in electrons into the electronics answer e.g. ToT [ns].
PndSdsDigiPixelWriteoutBuffer * fDataBuffer
Calculates the pixels (digis) fired from a particle hitting the sensor.
Data class to store the digi output of a pixel module.
virtual Double_t GetTimeWalk(Double_t)
Class to calculate the position of digis on a front-end from the digis on a sensor.
virtual void Print(const Option_t *opt=0) const
void PndSdsHybridHitProducer::FinishEvent ( )
virtualinherited

Definition at line 536 of file PndSdsHybridHitProducer.cxx.

References PndSdsHybridHitProducer::fDigiPixelMCInfo, and PndSdsHybridHitProducer::fPixelMCArray.

537 {
538  // called after all Tasks did their Exex() and the data is copied to the file
539 
540  if(fDigiPixelMCInfo==kTRUE)
541  {
542  fPixelMCArray->Delete();
543  }
544  // fPixelArray->Delete();
545  FinishEvents();
546 }
void PndSdsHybridHitProducer::FinishTask ( )
virtualinherited

Definition at line 549 of file PndSdsHybridHitProducer.cxx.

550 {
551  // called after all Tasks did their Exex() and the data is copied to the file
552  // if (fTimeOrderedDigi){
553  // fDataBuffer->WriteOutAllData();
554  // }
555 
556 }
void PndSdsHybridHitProducer::GetLocalHitPoints ( PndSdsMCPoint myPoint,
FairGeoVector &  myHitIn,
FairGeoVector &  myHitOut 
)
protectedinherited

Definition at line 409 of file PndSdsHybridHitProducer.cxx.

References Double_t, fVerbose, PndSdsHybridHitProducer::GetSensorDimensions(), PndSdsMCPoint::GetSensorID(), PndSdsHybridHitProducer::GetTransformation(), PndSdsMCPoint::GetXOut(), PndSdsMCPoint::GetYOut(), PndSdsMCPoint::GetZOut(), i, offset(), and trans.

Referenced by PndSdsHybridHitProducer::Exec().

410 {
411 
412  if (fVerbose > 1)
413  std::cout << "GetLocalHitPoints" << std::endl;
414  TGeoHMatrix trans = GetTransformation(myPoint->GetSensorID());
415 
416  Double_t posIn[3];
417  Double_t posOut[3];
418  Double_t posInLocal[3];
419  Double_t posOutLocal[3];
420 
421  posIn[0] = myPoint->GetX();
422  posIn[1] = myPoint->GetY();
423  posIn[2] = myPoint->GetZ();
424 
425  posOut[0] = myPoint->GetXOut();
426  posOut[1] = myPoint->GetYOut();
427  posOut[2] = myPoint->GetZOut();
428 
429  if (fVerbose > 1){
430  for (Int_t i = 0; i < 3; i++)
431  std::cout << "posIn "<< i << ": " << posIn[i] << std::endl;
432 
433  trans.Print("");
434  }
435 
436  trans.MasterToLocal(posIn, posInLocal);
437  trans.MasterToLocal(posOut, posOutLocal);
438 
439  if (fVerbose > 1) {
440  for (Int_t i = 0; i < 3; i++){
441  std::cout << "posInLocal "<< i << ": " << posInLocal[i] << std::endl;
442  std::cout << "posOutLocal "<< i << ": " << posOutLocal[i] << std::endl;
443  }
444  }
445 
446 
447  //posIn/OutLocal have the center of the coordinate system in the center of the shape
448  //typically sensors have their coordinate system centered at the lower left corner
449 
450  TVector3 offset = GetSensorDimensions(myPoint->GetSensorID());
451 
452  if (fVerbose > 1){
453  std::cout << "SensorDimension for: " << myPoint->GetSensorID() << std::endl;
454  std::cout << offset.X() << " " << offset.Y() << " " << offset.Z() << std::endl;
455  }
456 
457  posInLocal[0] += offset.x();
458  posInLocal[1] += offset.y();
459  //posInLocal[2] += offset.z();
460 
461  posOutLocal[0] += offset.x();
462  posOutLocal[1] += offset.y();
463  //posOutLocal[2] += offset.z();
464 
465 
466  myHitIn.setVector(posInLocal);
467  myHitOut.setVector(posOutLocal);
468 
469 }
Double_t GetXOut() const
Definition: PndSdsMCPoint.h:81
int fVerbose
Definition: poormantracks.C:24
Int_t i
Definition: run_full.C:25
Double_t GetZOut() const
Definition: PndSdsMCPoint.h:83
TVector3 offset(2, 0, 0)
Int_t GetSensorID() const
Definition: PndSdsMCPoint.h:89
TVector3 GetSensorDimensions(Int_t sensorID)
TGeoTranslation * trans
Double_t
Double_t GetYOut() const
Definition: PndSdsMCPoint.h:82
TGeoHMatrix GetTransformation(Int_t sensorID)
Bool_t PndPersistencyTask::GetPersistency ( )
inlineinherited

Definition at line 32 of file PndPersistencyTask.h.

References PndPersistencyTask::fPersistency.

Referenced by PndLmdPixelHitProducerFast::GetPersistance(), PndMdtDigitization::Init(), PndMdtHitProducerIdeal::Init(), PndMdtClusterTask::Init(), PndFtsHitProducerRealFast::Init(), PndDiscTaskReconstruction::Init(), PndRichHitProducer::Init(), PndSttHitProducerRealFast::Init(), PndSttHelixHitProducer::Init(), PndDiscTaskPID::Init(), PndIdealTrackFinder::Init(), PndSttMvdGemTracking::Init(), PndMdtTrkProducer::Init(), PndFtsHitProducerRealFull::Init(), PndLmdPixelClusterTask::Init(), PndSttHitProducerRealFull::Init(), PndLmdStripClusterTask::Init(), PndEmcApdHitProducer::Init(), PndMissingPzCleanerTask::Init(), PndEmcMakeRecoHit::Init(), PndEmcMakeClusterOnline::Init(), PndTrackSmearTask::Init(), PndEmcFWEndcapTimebasedWaveforms::Init(), PndSttHitProducerIdeal::Init(), PndEmcFWEndcapDigi::Init(), PndFtsHitProducerIdeal::Init(), PndEmcMakeCluster::Init(), PndMdtPointsToWaveform::Init(), PndDiscTaskDigitization::Init(), PndEmcMakeDigi::Init(), PndSdsTimeWalkCorrTask::Init(), PndLmdPixelHitProducerFast::Init(), PndDrcHitFinder::Init(), PndRichHitFinder::Init(), PndEmcMakeCorr::Init(), PndFtofHitProducerIdeal::Init(), PndEmcHitsToWaveform::Init(), PndSciTDigiTask::Init(), PndDrcHitProducerIdeal::Init(), PndSdsHitProducerIdeal::Init(), PndSciTHitProducerIdeal::Init(), PndEmcHitProducer::Init(), PndRecoMultiKalmanTask2::Init(), PndDrcHitProducerReal::Init(), PndDskFLGHitProducerIdeal::Init(), PndEmcTmpWaveformToDigi::Init(), PndDrcDigiTask::Init(), PndEmcWaveformToDigi::Init(), PndSttMatchTracks::Init(), PndEmcWaveformToCalibratedDigi::Init(), PndTrkTracking2::Init(), PndSttFindTracks::Init(), PndEmcMultiWaveformToCalibratedDigi::Init(), PndDrcTimeDigiTask::Init(), PndRecoKalmanTask2::Init(), PndEmcExpClusterSplitter::Init(), PndSdsNoiseProducer::Init(), PndFtsHoughTrackerTask::Init(), PndEmcPhiBumpSplitter::Init(), PndSdsHybridHitProducer::Init(), PndSdsIdealRecoTask::Init(), PndRecoMultiKalmanTask::Init(), PndSdsIdealClusterTask::Init(), PndRecoKalmanTask::Init(), PndSdsStripHitProducerDif::Init(), PndSdsStripHitProducer::Init(), PndGemDigitize::Init(), PndGemFindHits::Init(), PndSdsPixelClusterTask::Init(), PndSdsStripClusterTask::Init(), PndMvdGemTrackFinderOnHits::Init(), PndBarrelTrackFinder::Init(), PndEmcFullDigiTask::PndEmcFullDigiTask(), PndEmcMakeBump::PndEmcMakeBump(), PndUnassignedHitsTask::RegisterBranches(), PndMvdClusterTask::SetPersistance(), PndMvdDigiTask::SetPersistance(), PndEmcMakeBump::SetStorageOfData(), and PndEmcFullDigiTask::StoreDigi().

32 { return fPersistency; }
TVector3 PndSdsHybridHitProducer::GetSensorDimensions ( Int_t  sensorID)
protectedinherited

Definition at line 481 of file PndSdsHybridHitProducer.cxx.

References PndSdsHybridHitProducer::fGeoH, PndGeoHandling::GetPath(), and gGeoManager.

Referenced by PndSdsHybridHitProducer::GetLocalHitPoints().

482 {
483  //PndGeoHandling GeoH(gGeoManager);
484  gGeoManager->cd(fGeoH->GetPath(sensorID));
485  TGeoVolume* actVolume = gGeoManager->GetCurrentVolume();
486  TGeoBBox* actBox = (TGeoBBox*)(actVolume->GetShape());
487  TVector3 result;
488  result.SetX(actBox->GetDX());
489  result.SetY(actBox->GetDY());
490  result.SetZ(actBox->GetDZ());
491 
492  //result.Dump();
493 
494  return result;
495 }
TGeoManager * gGeoManager
TString GetPath(Int_t shortID)
for a given shortID the path is returned
TGeoHMatrix PndSdsHybridHitProducer::GetTransformation ( Int_t  sensorID)
protectedinherited

Definition at line 471 of file PndSdsHybridHitProducer.cxx.

References PndSdsHybridHitProducer::fGeoH, fVerbose, PndGeoHandling::GetPath(), and gGeoManager.

Referenced by PndSdsHybridHitProducer::GetLocalHitPoints().

472 {
473  //PndGeoHandling GeoH(gGeoManager);
474  gGeoManager->cd(fGeoH->GetPath(sensorID));
475  TGeoHMatrix* transMat = gGeoManager->GetCurrentMatrix();
476  if (fVerbose > 1)
477  transMat->Print("");
478  return *transMat;
479 }
int fVerbose
Definition: poormantracks.C:24
TGeoManager * gGeoManager
TString GetPath(Int_t shortID)
for a given shortID the path is returned
InitStatus PndLmdHybridHitProducer::Init ( )
virtual

Reimplemented from PndSdsHybridHitProducer.

Definition at line 33 of file PndLmdHybridHitProducer.cxx.

References PndSdsHybridHitProducer::fChargeConverter, PndSdsHybridHitProducer::fDigiPar, PndSdsHybridHitProducer::fTotDigiPar, fVerbose, PndSdsPixelDigiPar::GetChargeConvMethod(), PndSdsTotDigiPar::GetChargingTime(), PndSdsTotDigiPar::GetClockFrequency(), PndSdsTotDigiPar::GetConstCurrent(), PndSdsPixelDigiPar::GetNoise(), PndSdsPixelDigiPar::GetThreshold(), PndSdsHybridHitProducer::Init(), and status.

34 {
36  if (fDigiPar->GetChargeConvMethod() == 0){
37  if(fVerbose>0) Info("Init()","ideal charge conversion");
39  }
40  else if (fDigiPar->GetChargeConvMethod() == 1){
41  if(fVerbose>0) Info("Init()","use TOT charge conversion");
47  fVerbose);
48  }
49  else Fatal ("Init()","charge conversion method not defined!");
50  if(fVerbose>0) Info("Init","Intialisation successfull");
51  return status;
52 }
int fVerbose
Definition: poormantracks.C:24
PndSdsChargeConversion * fChargeConverter
Int_t GetChargeConvMethod() const
Double_t GetConstCurrent() const
Double_t GetNoise() const
Double_t GetClockFrequency() const
Double_t GetChargingTime() const
Double_t GetThreshold() const
int status[10]
Definition: f_Init.h:28
void PndSdsHybridHitProducer::ProduceHits ( )
protectedinherited
void PndSdsHybridHitProducer::Register ( )
protectedinherited
InitStatus PndSdsHybridHitProducer::ReInit ( )
virtualinherited

Definition at line 149 of file PndSdsHybridHitProducer.cxx.

References PndSdsHybridHitProducer::SetParContainers().

150 {
152  return kSUCCESS;
153 }
void PndSdsHybridHitProducer::Reset ( )
protectedinherited
void PndSdsHybridHitProducer::RunTimeBased ( )
inlineinherited

Definition at line 86 of file PndSdsHybridHitProducer.h.

References PndSdsHybridHitProducer::fTimeOrderedDigi.

Referenced by runDigi().

86 {fTimeOrderedDigi = kTRUE;}
Bool_t fTimeOrderedDigi
set to kTRUE to use the time ordering of the output data.
void PndLmdHybridHitProducer::SetBranchNames ( TString  inBranchname,
TString  outBranchname,
TString  folderName 
)

Specify the branch & folder names for the I/O

Definition at line 67 of file PndLmdHybridHitProducer.cxx.

References PndSdsTask::fFolderName, PndSdsTask::fInBranchName, PndSdsTask::fOutBranchName, and PndSdsTask::SetInBranchId().

68 {
69  fInBranchName = inBranchname;
70  fOutBranchName = outBranchname;
71  fFolderName = folderName;
72  SetInBranchId();
73 }
TString fOutBranchName
Definition: PndSdsTask.h:40
TString fInBranchName
Definition: PndSdsTask.h:39
TString fFolderName
Definition: PndSdsTask.h:41
virtual void SetInBranchId()
Definition: PndSdsTask.h:30
void PndLmdHybridHitProducer::SetBranchNames ( )
virtual

Take default naming

Implements PndSdsTask.

Definition at line 76 of file PndLmdHybridHitProducer.cxx.

References PndSdsTask::fFolderName, PndSdsTask::fInBranchName, PndSdsTask::fOutBranchName, fVerbose, and PndSdsTask::SetInBranchId().

77 {
78  if(fVerbose>1) Info("SetBranchNames","Set Lmd Pixel names.");
79  fInBranchName = "LMDPoint";
80  fOutBranchName = "LMDPixelDigis";
81  fFolderName = "pndsim";
82  SetInBranchId();
83 }
int fVerbose
Definition: poormantracks.C:24
TString fOutBranchName
Definition: PndSdsTask.h:40
TString fInBranchName
Definition: PndSdsTask.h:39
TString fFolderName
Definition: PndSdsTask.h:41
virtual void SetInBranchId()
Definition: PndSdsTask.h:30
virtual void PndSdsTask::SetInBranchId ( )
inlinevirtualinherited

Reimplemented in PndSdsStripClusterTask, PndSdsPixelClusterTask, and PndSdsIdealClusterTask.

Definition at line 30 of file PndSdsTask.h.

References PndSdsTask::fInBranchId, PndSdsTask::fInBranchName, PndSdsTask::fOutBranchId, and PndSdsTask::fOutBranchName.

Referenced by PndSdsTimeWalkCorrTask::Init(), PndSdsRecoTask::Init(), PndSdsIdealRecoTask::Init(), PndLmdStripHitProducer::SetBranchNames(), PndMvdHitProducerIdeal::SetBranchNames(), SetBranchNames(), PndMvdHybridHitProducer::SetBranchNames(), and PndMvdStripHitProducer::SetBranchNames().

30  {
31  FairRootManager *ioman = FairRootManager::Instance();
32  fInBranchId = ioman->GetBranchId(fInBranchName);
33  fOutBranchId = ioman->GetBranchId(fOutBranchName);
34  std::cout << "InBranchId: " << fInBranchId << " for Branch: " << fInBranchName.Data() << std::endl;
35  std::cout << "OutBranchId: " << fOutBranchId << " for Branch: " << fOutBranchName.Data() << std::endl;
36  }
Int_t fInBranchId
Definition: PndSdsTask.h:43
TString fOutBranchName
Definition: PndSdsTask.h:40
Int_t fOutBranchId
Definition: PndSdsTask.h:44
TString fInBranchName
Definition: PndSdsTask.h:39
void PndLmdHybridHitProducer::SetParContainers ( )
virtual

Specific Parameter set loading

Reimplemented from PndSdsHybridHitProducer.

Definition at line 55 of file PndLmdHybridHitProducer.cxx.

References PndSdsHybridHitProducer::fDigiPar, PndSdsHybridHitProducer::fTotDigiPar, rtdb, and PndSdsHybridHitProducer::SetParContainers().

56 {
57  // called before Init()
58  // Get Base Container
59  FairRun* ana = FairRun::Instance();
60  FairRuntimeDb* rtdb=ana->GetRuntimeDb();
61  fDigiPar = (PndSdsPixelDigiPar*)(rtdb->getContainer("LMDPixelDigiPar"));
62  fTotDigiPar = (PndSdsTotDigiPar*)(rtdb->getContainer("LMDPixelTotDigiPar"));
64 }
Charge Digitization Parameter Class for SDS.
FairRuntimeDb * rtdb
Definition: hit_dirc.C:66
Digitization Parameter Class for SDS-Pixel part.
void PndPersistencyTask::SetPersistency ( Bool_t  val = kTRUE)
inlineinherited

Definition at line 31 of file PndPersistencyTask.h.

References PndPersistencyTask::fPersistency, and val.

Referenced by barrelTrackFinder(), digi_complete(), digi_complete_newSTT(), digiOnly_complete(), PndBarrelTrackFinder::PndBarrelTrackFinder(), PndCATracking::PndCATracking(), PndDrcHitFinder::PndDrcHitFinder(), PndEmc2DLocMaxFinder::PndEmc2DLocMaxFinder(), PndEmcExpClusterSplitter::PndEmcExpClusterSplitter(), PndEmcFullDigiTask::PndEmcFullDigiTask(), PndEmcFWEndcapDigi::PndEmcFWEndcapDigi(), PndEmcFWEndcapTimebasedWaveforms::PndEmcFWEndcapTimebasedWaveforms(), PndEmcHitProducer::PndEmcHitProducer(), PndEmcHitsToWaveform::PndEmcHitsToWaveform(), PndEmcMakeBump::PndEmcMakeBump(), PndEmcMakeCluster::PndEmcMakeCluster(), PndEmcMakeClusterOnline::PndEmcMakeClusterOnline(), PndEmcMakeDigi::PndEmcMakeDigi(), PndEmcMakeRecoHit::PndEmcMakeRecoHit(), PndEmcMultiWaveformToCalibratedDigi::PndEmcMultiWaveformToCalibratedDigi(), PndEmcPhiBumpSplitter::PndEmcPhiBumpSplitter(), PndEmcTmpWaveformToDigi::PndEmcTmpWaveformToDigi(), PndEmcWaveformToCalibratedDigi::PndEmcWaveformToCalibratedDigi(), PndEmcWaveformToDigi::PndEmcWaveformToDigi(), PndFtofHitProducerIdeal::PndFtofHitProducerIdeal(), PndFtsCATracking::PndFtsCATracking(), PndFtsHitProducerIdeal::PndFtsHitProducerIdeal(), PndFtsHitProducerRealFast::PndFtsHitProducerRealFast(), PndFtsHitProducerRealFull::PndFtsHitProducerRealFull(), PndFtsHoughTrackerTask::PndFtsHoughTrackerTask(), PndGemDigitize::PndGemDigitize(), PndGemFindHits::PndGemFindHits(), PndIdealTrackFinder::PndIdealTrackFinder(), PndLmdPixelClusterTask::PndLmdPixelClusterTask(), PndLmdPixelHitProducerFast::PndLmdPixelHitProducerFast(), PndMdtClusterTask::PndMdtClusterTask(), PndMdtDigitization::PndMdtDigitization(), PndMdtHitProducerIdeal::PndMdtHitProducerIdeal(), PndMdtPointsToWaveform::PndMdtPointsToWaveform(), PndMdtTrkProducer::PndMdtTrkProducer(), PndMissingPzCleanerTask::PndMissingPzCleanerTask(), PndMvdGemTrackFinderOnHits::PndMvdGemTrackFinderOnHits(), PndMvdHitProducerIdeal::PndMvdHitProducerIdeal(), PndMvdPixelClusterTask::PndMvdPixelClusterTask(), PndMvdTimeWalkCorrTask::PndMvdTimeWalkCorrTask(), PndMvdToPix4ClusterTask::PndMvdToPix4ClusterTask(), PndRecoKalmanTask::PndRecoKalmanTask(), PndRecoKalmanTask2::PndRecoKalmanTask2(), PndRecoMultiKalmanTask::PndRecoMultiKalmanTask(), PndRecoMultiKalmanTask2::PndRecoMultiKalmanTask2(), PndRichHitFinder::PndRichHitFinder(), PndRichHitProducer::PndRichHitProducer(), PndSciTDigiTask::PndSciTDigiTask(), PndSciTHitProducerIdeal::PndSciTHitProducerIdeal(), PndSdsHitProducerIdeal::PndSdsHitProducerIdeal(), PndSdsHybridHitProducer::PndSdsHybridHitProducer(), PndSdsIdealClusterTask::PndSdsIdealClusterTask(), PndSdsIdealRecoTask::PndSdsIdealRecoTask(), PndSdsNoiseProducer::PndSdsNoiseProducer(), PndSdsPixelClusterTask::PndSdsPixelClusterTask(), PndSdsStripClusterTask::PndSdsStripClusterTask(), PndSdsStripHitProducer::PndSdsStripHitProducer(), PndSdsTimeWalkCorrTask::PndSdsTimeWalkCorrTask(), PndSttFindTracks::PndSttFindTracks(), PndSttHelixHitProducer::PndSttHelixHitProducer(), PndSttHitProducerIdeal::PndSttHitProducerIdeal(), PndSttHitProducerRealFast::PndSttHitProducerRealFast(), PndSttHitProducerRealFull::PndSttHitProducerRealFull(), PndSttMatchTracks::PndSttMatchTracks(), PndSttMvdGemTracking::PndSttMvdGemTracking(), PndTrackSmearTask::PndTrackSmearTask(), PndTrkTracking2::PndTrkTracking2(), reco(), reco_complete(), reco_complete_gf2(), reco_complete_newSTT(), reco_complete_sec(), recoideal_complete(), PndMvdClusterTask::SetPersistance(), PndMvdDigiTask::SetPersistance(), PndLmdPixelHitProducerFast::SetPersistance(), PndSdsHitProducerIdeal::SetPersistance(), PndSttMvdGemTracking::SetPersistenc(), PndMdtClusterTask::SetPersistence(), PndSttHelixHitProducer::SetPersistence(), PndMissingPzCleanerTask::SetPersistence(), PndFtsHitProducerRealFast::SetPersistence(), PndFtsHitProducerRealFull::SetPersistence(), PndSttHitProducerIdeal::SetPersistence(), PndSttHitProducerRealFull::SetPersistence(), PndSttHitProducerRealFast::SetPersistence(), PndFtsHitProducerIdeal::SetPersistence(), PndTrackSmearTask::SetPersistence(), PndSciTHitProducerIdeal::SetPersistence(), PndIdealTrackFinder::SetPersistence(), PndSttMatchTracks::SetPersistence(), PndSttFindTracks::SetPersistence(), PndFtsHoughTrackerTask::SetPersistence(), PndTrkTracking2::SetPersistence(), PndEmcMakeRecoHit::SetStorageOfData(), PndEmcMakeClusterOnline::SetStorageOfData(), PndEmcFWEndcapDigi::SetStorageOfData(), PndEmcFWEndcapTimebasedWaveforms::SetStorageOfData(), PndEmcMakeDigi::SetStorageOfData(), PndMdtPointsToWaveform::SetStorageOfData(), PndEmc2DLocMaxFinder::SetStorageOfData(), PndEmcMakeCluster::SetStorageOfData(), PndEmcHitsToWaveform::SetStorageOfData(), PndEmcMakeBump::SetStorageOfData(), PndEmcTmpWaveformToDigi::SetStorageOfData(), PndEmcWaveformToDigi::SetStorageOfData(), PndEmcWaveformToCalibratedDigi::SetStorageOfData(), PndEmcMultiWaveformToCalibratedDigi::SetStorageOfData(), PndEmcExpClusterSplitter::SetStorageOfData(), PndEmcPhiBumpSplitter::SetStorageOfData(), standard_tracking(), and PndEmcFullDigiTask::StoreDigi().

31 { fPersistency = val; }
Double_t val[nBoxes][nFEBox]
Definition: createCalib.C:11

Member Data Documentation

PndSdsChargeConversion* PndSdsHybridHitProducer::fChargeConverter
protectedinherited
Int_t PndSdsHybridHitProducer::fcols
protectedinherited
PndSdsDigiPixelWriteoutBuffer* PndSdsHybridHitProducer::fDataBuffer
protectedinherited
PndSdsPixelDigiPar* PndSdsHybridHitProducer::fDigiPar
protectedinherited
Bool_t PndSdsHybridHitProducer::fDigiPixelMCInfo
protectedinherited
Int_t PndSdsHybridHitProducer::fEventNr
protectedinherited
TString PndSdsTask::fFolderName
protectedinherited
PndGeoHandling* PndSdsHybridHitProducer::fGeoH
protectedinherited
Int_t PndSdsTask::fInBranchId
protectedinherited
TString PndSdsTask::fInBranchName
protectedinherited
Double_t PndSdsHybridHitProducer::flx
protectedinherited
Double_t PndSdsHybridHitProducer::fly
protectedinherited
FairMCEventHeader* PndSdsHybridHitProducer::fMCEventHeader
protectedinherited

Definition at line 137 of file PndSdsHybridHitProducer.h.

Referenced by PndSdsHybridHitProducer::operator=().

Double_t PndSdsHybridHitProducer::fnoise
protectedinherited
Int_t PndSdsTask::fOutBranchId
protectedinherited

Definition at line 44 of file PndSdsTask.h.

Referenced by PndSdsTask::SetInBranchId().

TString PndSdsTask::fOutBranchName
protectedinherited
Bool_t PndSdsHybridHitProducer::fOverwriteParams
protectedinherited
Bool_t PndSdsHybridHitProducer::fPersistance
protectedinherited
TClonesArray* PndSdsHybridHitProducer::fPixelArray
protectedinherited

Output array of PndSdsDigis

Definition at line 128 of file PndSdsHybridHitProducer.h.

Referenced by PndSdsHybridHitProducer::operator=().

Int_t PndSdsHybridHitProducer::fPixelHits
protectedinherited
std::vector<PndSdsPixel> PndSdsHybridHitProducer::fPixelList
protectedinherited
TClonesArray* PndSdsHybridHitProducer::fPixelMCArray
protectedinherited
TClonesArray* PndSdsHybridHitProducer::fPointArray
protectedinherited

Input array of PndSdsMCPoints

Definition at line 125 of file PndSdsHybridHitProducer.h.

Referenced by PndSdsHybridHitProducer::Exec(), PndSdsHybridHitProducer::Init(), and PndSdsHybridHitProducer::operator=().

Double_t PndSdsHybridHitProducer::fqsigma
protectedinherited
Int_t PndSdsHybridHitProducer::frows
protectedinherited
Double_t PndSdsHybridHitProducer::fthreshold
protectedinherited
Bool_t PndSdsHybridHitProducer::fTimeOrderedDigi
protectedinherited
PndSdsTotDigiPar* PndSdsHybridHitProducer::fTotDigiPar
protectedinherited

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