FairRoot/PandaRoot
PndMvdStripHitProducer.cxx
Go to the documentation of this file.
1 // -------------------------------------------------------------------------
2 // ----- PndMvdStripHitProducer source file -----
3 // ----- Ralf Kliemt -----
4 // -------------------------------------------------------------------------
5 
6 //This Class
8 //MVD
9 #include "PndMvdContFact.h"
10 //SDS
13 #include "PndSdsTotDigiPar.h"
14 //FAIR
15 #include "FairRun.h"
16 #include "FairRuntimeDb.h"
17 //ROOT
18 #include "TList.h"
19 
20 // ----- Default constructor -------------------------------------------
22 PndSdsStripHitProducer("MVD Strip Digi Producer(PndMvdStripHitProducer)")
23 {
24 }
25 // -------------------------------------------------------------------------
26 
27 
28 // ----- Destructor ----------------------------------------------------
30 {
31 }
32 
33 // -------------------------------------------------------------------------
34 void PndMvdStripHitProducer::SetBranchNames(TString inBranchName, TString outBranchName, TString folderName)
35 {
36  fInBranchName = inBranchName;
37  fOutBranchName = outBranchName;
38  fFolderName = folderName;
39  SetInBranchId();
40 }
41 // -------------------------------------------------------------------------
43 {
45  //calculator for TOT charge conversion:
46  TIter params(fDigiParameterList);
47  TIter totparams(fChargeDigiParameterList);
48  while( PndSdsStripDigiPar* digipar = (PndSdsStripDigiPar*)params() ){
49  PndSdsTotDigiPar* totdigipar = (PndSdsTotDigiPar*) totparams();
50  if ( 0==digipar ) continue;
51  const char* senstype = digipar->GetSensType();
52  if ( digipar->GetChargeConvMethod() == 0 ){
53  if(fVerbose>0) Info("SetCalculators()","Use Ideal charge conversion for %s sensors",senstype);
54  fChargeConverter[senstype] = new PndSdsIdealChargeConversion(digipar->GetNoise());
55  }
56  else if (digipar->GetChargeConvMethod() == 1){
57  if(fVerbose>0) Info("SetCalculators()","Use Tot charge conversion for %s sensors",senstype);
59  totdigipar->GetChargingTime(),
60  totdigipar->GetConstCurrent(),
61  digipar->GetThreshold(),
62  totdigipar->GetClockFrequency(),
63  fVerbose);
64  }
65  else Fatal ("SetCalculators()","charge conversion method not defined!");
66  }
67 }
68 // -------------------------------------------------------------------------
69 // ----- Initialization of Parameter Containers -------------------------
71 {
72  // called from the FairRun::Init()
73  // Caution: The Parameter Set is not filled from the DB IO, yet.
74  // This will be done just before this Tasks Init() is called.
75 
76  FairRun* ana = FairRun::Instance();
77  FairRuntimeDb* rtdb=ana->GetRuntimeDb();
78  PndMvdContFact* themvdcontfact = (PndMvdContFact*)rtdb->getContFactory("PndMvdContFact");
79  TList* theContNames = themvdcontfact->GetDigiParNames();
80  if(fVerbose>0) Info("SetParContainers()","The container names list contains %i entries",theContNames->GetEntries());
81  TIter cfIter(theContNames);
82  while (TObjString* contname = (TObjString*)cfIter()) {
83  TString parsetname = contname->String();
84  if(fVerbose>0) Info("SetParContainers()","%s",parsetname.Data());
85  if(parsetname.BeginsWith("MVDStripDigiPar")){
86  PndSdsStripDigiPar* digipar = (PndSdsStripDigiPar*)(rtdb->getContainer(parsetname.Data()));
87  if ( ! digipar ) Fatal("SetParContainers","No DIGI parameter found: %s",parsetname.Data());
88  fDigiParameterList->Add(digipar);
89  }
90  if(parsetname.BeginsWith("MVDStripTotDigiPar")){
91  PndSdsTotDigiPar* totdigipar = (PndSdsTotDigiPar*)(rtdb->getContainer(parsetname.Data()));
92  if ( ! totdigipar ) Fatal("SetParContainers","No TOT parameter found: %s",parsetname.Data());
93  fChargeDigiParameterList->Add(totdigipar);
94  }
95  }
97 }
98 
99 // -------------------------------------------------------------------------
101 
TList * fDigiParameterList
Digitization Parameters.
int fVerbose
Definition: poormantracks.C:24
TString fOutBranchName
Definition: PndSdsTask.h:40
Hit Producer Task for strip detectors.
Charge Digitization Parameter Class for SDS.
Double_t GetConstCurrent() const
Double_t GetClockFrequency() const
TList * GetDigiParNames()
std::map< const char *, PndSdsChargeConversion * > fChargeConverter
TString fInBranchName
Definition: PndSdsTask.h:39
Digitization Parameter Class for MVD-Strip part.
FairRuntimeDb * rtdb
Definition: hit_dirc.C:66
TString fFolderName
Definition: PndSdsTask.h:41
Hit Producer Task for strip detectors.
ClassImp(PndMvdStripHitProducer)
Double_t GetChargingTime() const
virtual void SetInBranchId()
Definition: PndSdsTask.h:30