FairRoot/PandaRoot
PndLmdStripHitProducer.cxx
Go to the documentation of this file.
1 // -------------------------------------------------------------------------
2 // ----- PndLmdStripHitProducer source file -----
3 // -------------------------------------------------------------------------
4 
5 //LUMI
7 //LUMI
8 #include "PndLmdContFact.h"
9 //#include "PndLmdAlignPar.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 {
23 }
24 // -------------------------------------------------------------------------
25 
26 // ----- Destructor ----------------------------------------------------
28 {
29  delete fGeoH;
30 }
31 // -------------------------------------------------------------------------
32 
33 void PndLmdStripHitProducer::SetBranchNames(TString inBranchname, TString outBranchname, TString folderName)
34 {
35  fInBranchName = inBranchname;
36  fOutBranchName = outBranchname;
37  fFolderName = folderName;
38 }
39 
41 {
42  fInBranchName = "LMDPoint";
43  fOutBranchName = "LMDStripDigis";
44  fFolderName = "PndLmd";
45  SetInBranchId();
46 }
47 // -------------------------------------------------------------------------
49 {
51  //calculator for TOT charge conversion:
52  TIter params(fDigiParameterList);
53  TIter totparams(fChargeDigiParameterList);
54  while(PndSdsStripDigiPar* digipar = (PndSdsStripDigiPar*)params() ){
55  PndSdsTotDigiPar* totdigipar = (PndSdsTotDigiPar*) totparams();
56  if ( 0==digipar ) continue;
57  const char* senstype = digipar->GetSensType();
58  // cout<<"digipar->GetChargeConvMethod() = "<<digipar->GetChargeConvMethod()<<endl;
59  if ( digipar->GetChargeConvMethod() == 0 ){
60  if(fVerbose>0) Info("SetCalculators()","Use Ideal charge conversion for %s sensors",senstype);
62  }
63  else if (digipar->GetChargeConvMethod() == 1){
64  if(fVerbose>0) Info("SetCalculators()","Use Tot charge conversion for %s sensors",senstype);
66  totdigipar->GetChargingTime(),
67  totdigipar->GetConstCurrent(),
68  digipar->GetThreshold(),
69  totdigipar->GetClockFrequency(),
70  fVerbose);
71  }
72  else Fatal ("SetCalculators()","charge conversion method not defined!");
73  }
74 }
75 // -------------------------------------------------------------------------
76 // ----- Initialization of Parameter Containers -------------------------
78 {
79  if ( fGeoH == NULL ) {
82  }
83  // called from the FairRun::Init()
84  // Caution: The Parameter Set is not filled from the DB IO, yet.
85  // This will be done just before this Tasks Init() is called.
86 
87  FairRun* ana = FairRun::Instance();
88  FairRuntimeDb* rtdb=ana->GetRuntimeDb();
89  PndLmdContFact* thelmdcontfact = (PndLmdContFact*)rtdb->getContFactory("PndLmdContFact");
90  TList* theContNames = thelmdcontfact->GetDigiParNames();
91  Info("SetParContainers()","The container names list contains %i entries",theContNames->GetEntries());
92  TIter cfIter(theContNames);
93  while (TObjString* contname = (TObjString*)cfIter()) {
94  TString parsetname = contname->String();
95  Info("SetParContainers()","%s",parsetname.Data());
96  if(parsetname.BeginsWith("SDSStripDigiPar")){
97  PndSdsStripDigiPar* digipar = (PndSdsStripDigiPar*)(rtdb->getContainer(parsetname.Data()));
98  fDigiParameterList->Add(digipar);
99  }
100  if(parsetname.BeginsWith("SDSStripTotDigiPar")){
101  PndSdsTotDigiPar* totdigipar = (PndSdsTotDigiPar*)(rtdb->getContainer(parsetname.Data()));
102  if ( ! totdigipar ) Fatal("SetParContainers","No TOT parameter found: %s",parsetname.Data());
103  fChargeDigiParameterList->Add(totdigipar);
104  }
105  }
107 }
108 
109 //------------------------------------------------------------------
111 
TList * fDigiParameterList
Digitization Parameters.
int fVerbose
Definition: poormantracks.C:24
TString fOutBranchName
Definition: PndSdsTask.h:40
virtual void SetParContainers()
Charge Digitization Parameter Class for SDS.
Double_t GetConstCurrent() const
Double_t GetClockFrequency() const
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
static PndGeoHandling * Instance()
TList * GetDigiParNames()
Double_t GetChargingTime() const
ClassImp(PndAnaContFact)
virtual void SetInBranchId()
Definition: PndSdsTask.h:30