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

#include <PndLmdStripHitProducer.h>

Inheritance diagram for PndLmdStripHitProducer:
PndSdsStripHitProducer PndSdsTask PndPersistencyTask

Public Member Functions

 PndLmdStripHitProducer ()
 
virtual ~PndLmdStripHitProducer ()
 
virtual void SetBranchNames (TString inBranchname, TString outBranchname, TString folderName)
 
virtual void SetBranchNames ()
 
virtual void SetCalculators ()
 
virtual void SetParContainers ()
 
 ClassDef (PndLmdStripHitProducer, 65)
 
virtual InitStatus Init ()
 
virtual InitStatus ReInit ()
 
virtual void SetMCPointType ()
 
virtual void Exec (Option_t *opt)
 
virtual void FinishEvent ()
 
virtual void FinishTask ()
 
void AddDigi (Int_t &iStrip, Int_t iPoint, Int_t detID, Int_t sensorID, Int_t fe, Int_t chan, Double_t charge)
 
void RunTimeBased ()
 
virtual void SetInBranchId ()
 
void SetPersistency (Bool_t val=kTRUE)
 
Bool_t GetPersistency ()
 

Protected Member Functions

void Register ()
 
void Reset ()
 
void ProduceHits ()
 
Bool_t SelectSensorParams (Int_t sensorID)
 
Int_t DigitizeTime (Double_t time, Double_t charge)
 
 ClassDef (PndSdsStripHitProducer, 5)
 
 ClassDef (PndSdsTask, 1)
 

Protected Attributes

TClonesArray * fPointArray
 
TClonesArray * fStripArray
 Output array of PndSdsHits. More...
 
FairWriteoutBuffer * fDataBuffer
 
TList * fDigiParameterList
 Digitization Parameters. More...
 
TList * fChargeDigiParameterList
 
PndSdsStripDigiParfCurrentDigiPar
 
PndSdsChargeConversionfCurrentChargeConverter
 
std::map< const char
*, PndSdsCalcStrip * > 
fStripCalcTop
 Calculator objects. More...
 
std::map< const char
*, PndSdsCalcStrip * > 
fStripCalcBot
 
std::map< const char
*, PndSdsChargeConversion * > 
fChargeConverter
 
PndSdsCalcStripfCurrentStripCalcTop
 
PndSdsCalcStripfCurrentStripCalcBot
 
FairMCEventHeader * fMcEventHeader
 
PndGeoHandlingfGeoH
 
Bool_t fOverrideParams
 ///< converter for detector names More...
 
Bool_t fTimeOrderedDigi
 parameter to switch to time ordered simulation More...
 
Int_t fEventNr
 EventCounter. More...
 
TString fInBranchName
 
TString fOutBranchName
 
TString fFolderName
 
Int_t fInBranchId
 
Int_t fOutBranchId
 

Detailed Description

Definition at line 14 of file PndLmdStripHitProducer.h.

Constructor & Destructor Documentation

PndLmdStripHitProducer::PndLmdStripHitProducer ( )

Default constructor
creates object with parameters taken implicitly from DigiPar-File

Definition at line 21 of file PndLmdStripHitProducer.cxx.

22 {
23 }
PndLmdStripHitProducer::~PndLmdStripHitProducer ( )
virtual

Destructor

Definition at line 27 of file PndLmdStripHitProducer.cxx.

References PndSdsStripHitProducer::fGeoH.

28 {
29  delete fGeoH;
30 }

Member Function Documentation

void PndSdsStripHitProducer::AddDigi ( Int_t &  iStrip,
Int_t  iPoint,
Int_t  detID,
Int_t  sensorID,
Int_t  fe,
Int_t  chan,
Double_t  charge 
)
inherited

Definition at line 325 of file PndSdsStripHitProducer.cxx.

References PndSdsChargeConversion::ChargeToDigiValue(), PndSdsStripHitProducer::DigitizeTime(), PndSdsChargeConversion::DigiValueToCharge(), Double_t, PndSdsStripHitProducer::fCurrentChargeConverter, PndSdsStripHitProducer::fDataBuffer, PndSdsStripHitProducer::fEventNr, PndSdsTask::fInBranchId, PndSdsTask::fInBranchName, PndSdsStripHitProducer::fPointArray, PndSdsStripHitProducer::fTimeOrderedDigi, PndSdsMCPoint::GetSensorID(), PndSdsChargeConversion::GetTimeStep(), PndSdsChargeConversion::GetTimeWalk(), point, and PndSdsStripHitProducer::SelectSensorParams().

Referenced by PndSdsStripHitProducer::Exec().

326 {
327 
328  PndSdsMCPoint *point = (PndSdsMCPoint*)fPointArray->At(iPoint);
330  Int_t smearedCharge = (Int_t)fCurrentChargeConverter->ChargeToDigiValue(charge);
331  Int_t timeStamp = DigitizeTime(point->GetTime(), charge);
332 
333  Double_t smearedChargeInE = fCurrentChargeConverter->DigiValueToCharge(smearedCharge);
334  Double_t timewalk = fCurrentChargeConverter->GetTimeWalk(smearedChargeInE);
335 
336  Double_t correctedTimeStamp = timeStamp - timewalk - fCurrentChargeConverter->GetTimeStep()/2;
337 
338 // std::cout << " charge: " << charge << " smeared DigiCharge: " << smearedCharge << " smeared charge in e " << smearedChargeInE << std::endl;
339 // std::cout << "MCTime: " << point->GetTime() << " TimeStamp: " << timeStamp << " timewalk " << timewalk << " corrected TimeStamp: " << correctedTimeStamp << " charge: " << charge << " smearedCharge in e: " << smearedChargeInE << std::endl;
340 
341  std::vector<Int_t>indices;
342  indices.push_back(iPoint);
343 
344  PndSdsDigiStrip* tempStrip = new PndSdsDigiStrip(indices, FairRootManager::Instance()->GetBranchId(fInBranchName),
345  sensorID, fe, chan, smearedCharge, correctedTimeStamp);
346 
347  if (fTimeOrderedDigi){
348  tempStrip->ResetLinks();
349  FairEventHeader* evtHeader = (FairEventHeader*)FairRootManager::Instance()->GetObject("EventHeader.");
350  // for (int i = 0; i < indices.size(); i++)
351  tempStrip->AddLink(FairLink(evtHeader->GetInputFileId(), evtHeader->GetMCEntryNumber(), fInBranchId, iPoint));
352  tempStrip->AddLink(FairLink(-1, fEventNr, "EventHeader.", -1));
353  tempStrip->AddLinks(*(point->GetPointerToLinks()));
354  }
355  fDataBuffer->FillNewData(tempStrip, timeStamp + 100, point->GetTime() + FairRootManager::Instance()->GetEventTime());
356  delete(tempStrip);
357 
358 // std::cout << "AddDigi called: " << *tempStrip << std::endl;
359 
360 
361 // // we're here when this channel didn't fire
362 // std::vector<Int_t>indices;
363 // indices.push_back(iPoint);
364 //
365 // PndSdsDigiStrip* tempStrip = new ((*fStripArray)[iStrip]) PndSdsDigiStrip(indices,detID,sensorID,fe,chan,charge, FairRootManager::Instance()->GetEventTime());
366 // tempStrip->SetEntryNr(FairLink(FairRootManager::Instance()->GetBranchId(fOutBranchName), iStrip));
367 //
368  iStrip++;
369  return;
370 }
Int_t fInBranchId
Definition: PndSdsTask.h:43
virtual Double_t GetTimeStep()
Class for digitised strip hits.
Bool_t fTimeOrderedDigi
parameter to switch to time ordered simulation
Int_t DigitizeTime(Double_t time, Double_t charge)
FairWriteoutBuffer * fDataBuffer
Int_t GetSensorID() const
Definition: PndSdsMCPoint.h:89
Int_t fEventNr
EventCounter.
virtual Double_t DigiValueToCharge(Double_t digi)=0
Converts a given digitized charge into charge in electrons.
Double_t
TString fInBranchName
Definition: PndSdsTask.h:39
TClonesArray * point
Definition: anaLmdDigi.C:29
PndSdsChargeConversion * fCurrentChargeConverter
virtual Double_t ChargeToDigiValue(Double_t Charge)=0
Converts a given charge in electrons into the electronics answer e.g. ToT [ns].
int fe
Definition: anaLmdDigi.C:67
Bool_t SelectSensorParams(Int_t sensorID)
virtual Double_t GetTimeWalk(Double_t)
PndLmdStripHitProducer::ClassDef ( PndLmdStripHitProducer  ,
65   
)
PndSdsTask::ClassDef ( PndSdsTask  ,
 
)
protectedinherited
PndSdsStripHitProducer::ClassDef ( PndSdsStripHitProducer  ,
 
)
protectedinherited
Int_t PndSdsStripHitProducer::DigitizeTime ( Double_t  time,
Double_t  charge 
)
protectedinherited

Definition at line 408 of file PndSdsStripHitProducer.cxx.

References Double_t, PndSdsStripHitProducer::fCurrentChargeConverter, and PndSdsChargeConversion::GetTimeStamp().

Referenced by PndSdsStripHitProducer::AddDigi().

409 { // time [ns]
410  Double_t eventTime = FairRootManager::Instance()->GetEventTime();
411  return fCurrentChargeConverter->GetTimeStamp(time,charge,eventTime);
412 }
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)
Double_t
PndSdsChargeConversion * fCurrentChargeConverter
void PndSdsStripHitProducer::Exec ( Option_t *  opt)
virtualinherited

Virtual method Exec

Definition at line 205 of file PndSdsStripHitProducer.cxx.

References PndSdsStripHitProducer::AddDigi(), Bool_t, PndSdsCalcStrip::CalcChannelfromStrip(), PndSdsCalcStrip::CalcFEfromStrip(), PndSdsStripHitProducer::fChargeConverter, PndSdsStripHitProducer::fCurrentDigiPar, PndSdsStripHitProducer::fCurrentStripCalcBot, PndSdsStripHitProducer::fCurrentStripCalcTop, PndSdsStripHitProducer::fEventNr, PndSdsStripHitProducer::fGeoH, PndSdsTask::fInBranchName, PndSdsTask::fOutBranchName, PndSdsStripHitProducer::fPointArray, PndSdsStripHitProducer::fStripArray, fVerbose, PndSdsStripDigiPar::GetNrTopFE(), PndGeoHandling::GetPath(), PndSdsMCPoint::GetPosition(), PndSdsMCPoint::GetPositionOut(), PndSdsMCPoint::GetSensorID(), PndSdsStripDigiPar::GetSensType(), PndSdsCalcStrip::GetStrips(), PndGeoHandling::MasterToLocalShortId(), point, PndSdsMCPoint::Print(), PndSdsStripHitProducer::SelectSensorParams(), and PndGeoHandling::SetVerbose().

206 {
207  // Reset output array
209 
210  // std::cout << "EventTime: " << FairRootManager::Instance()->GetEventTime() << std::endl;
211 
212  for (std::map<const char*,PndSdsChargeConversion*>::iterator it = fChargeConverter.begin(); it != fChargeConverter.end(); it++){
213  it->second->StartExecute();
214  }
215 
216  // Declare some variables
217  PndSdsMCPoint *point = NULL;
218 
219  // Int_t detID = 0; // Detector ID
220  // Int_t trackID = 0; // Track index
221 
222  fStripArray = FairRootManager::Instance()->GetTClonesArray(fOutBranchName);
223 
224  // Loop over PndSdsMCPoints
225  Int_t nPoints = fPointArray->GetEntriesFast();
226  if (fVerbose > 0){
227  std::cout<<" Nr of Points: "<<nPoints<<std::endl;
228  }
229 
230  Int_t iStrip = 0;
231  Bool_t selected = kFALSE;
232 
233  for (Int_t iPoint = 0; iPoint < nPoints; iPoint++)
234  {
235  point = (PndSdsMCPoint*) fPointArray->At(iPoint);
236  // std::cout << "Point " << iPoint << ": " << *point << std::endl;
237  selected = SelectSensorParams(point->GetSensorID());
238  if( !selected ) { continue; }
239 
240  if (fVerbose > 2){
241  std::cout<<"***** Strip Digi for "<<fCurrentDigiPar->GetSensType()<<" ******"<<std::endl;
242  std::cout<<" DetName : "<<fGeoH->GetPath(point->GetSensorID())<<std::endl;
243  }
244  if ( ! point){
245  std::cout<< "No Point!" << std::endl;
246  continue;
247  }
248  if (fVerbose > 2){
249  std::cout << "****Global Point: " << std::endl;
250  point->Print("");
251  }
252 
253  // transform to local sensor system... (mc point has the ID not the path to the volume)
254  TVector3 posInL = fGeoH->MasterToLocalShortId(point->GetPosition(),point->GetSensorID());
255  TVector3 posOutL = fGeoH->MasterToLocalShortId(point->GetPositionOut(),point->GetSensorID());
256  if (fVerbose > 2){
257  posInL.Print();posOutL.Print();
258  std::cout << "Energy: " << point->GetEnergyLoss() << std::endl;
259  }
260  // detID = point->GetDetectorID();
261 
262  // Top Side
263  if (fVerbose > 2) std::cout << "Top Side: " << std::endl;
264  // Calculate a cluster of Strips fired
265  std::vector<PndSdsStrip> topStrips =
266  fCurrentStripCalcTop->GetStrips(posInL.X(), posInL.Y(), posInL.Z(),
267  posOutL.X(), posOutL.Y(), posOutL.Z(),
268  point->GetEnergyLoss());
269 
270  if (topStrips.size() != 0)
271  {
272  if (fVerbose > 1) std::cout << "SensorStrips: " << std::endl;
273  for(std::vector<PndSdsStrip>::const_iterator kit=topStrips.begin();
274  kit!= topStrips.end(); ++kit)
275  {
276 
277  AddDigi(iStrip,iPoint,FairRootManager::Instance()->GetBranchId(fInBranchName),point->GetSensorID(),
278  fCurrentStripCalcTop->CalcFEfromStrip(kit->GetIndex()),
279  fCurrentStripCalcTop->CalcChannelfromStrip(kit->GetIndex()),kit->GetCharge());
280 
281  if (fVerbose > 1) std::cout << *kit << std::endl;
282 
283  }
284  }else if(fVerbose>2) std::cout<<"Top side empty"<<std::endl;
285 
286  // Bottom Side
287  if (fVerbose > 2) std::cout << "Bottom Side: " << std::endl;
288  std::vector<PndSdsStrip> botStrips =
289  fCurrentStripCalcBot->GetStrips(posInL.X(), posInL.Y(), posInL.Z(),
290  posOutL.X(), posOutL.Y(), posOutL.Z(),
291  point->GetEnergyLoss());
292  if (botStrips.size() != 0)
293  {
294  if (fVerbose > 2) std::cout << " SensorStrips: " << std::endl;
295  for(std::vector<PndSdsStrip>::const_iterator kit=botStrips.begin();
296  kit!= botStrips.end();
297  ++kit)
298  {
299 
300  AddDigi(iStrip, iPoint, FairRootManager::Instance()->GetBranchId(fInBranchName),
302  fCurrentStripCalcBot->CalcChannelfromStrip(kit->GetIndex()), kit->GetCharge());
303 
304 
305  // }
306  if (fVerbose > 2) std::cout << *kit << std::endl;
307  }
308  } else if(fVerbose>2) std::cout<<"Bottom side empty"<<std::endl;
309 
310  } // Loop over MCPoints
311 
312 
313  for (std::map<const char*,PndSdsChargeConversion*>::iterator it = fChargeConverter.begin(); it != fChargeConverter.end(); it++){
314  it->second->EndExecute();
315  }
316 
317  // Event summary
318  if(fVerbose > 1) std::cout << "-I- PndSdsStripHitProducer: EventNr " << fEventNr << " from " << nPoints << " PndSdsMCPoints, "
319  << iStrip << " Digis created."<< std::endl;
320 
321  fEventNr++;
322 }
int fVerbose
Definition: poormantracks.C:24
TString fOutBranchName
Definition: PndSdsTask.h:40
Int_t CalcFEfromStrip(Int_t stripNr) const
const char * GetSensType() const
TVector3 GetPositionOut() const
Definition: PndSdsMCPoint.h:91
Int_t GetSensorID() const
Definition: PndSdsMCPoint.h:89
Int_t fEventNr
EventCounter.
TString GetPath(Int_t shortID)
for a given shortID the path is returned
std::map< const char *, PndSdsChargeConversion * > fChargeConverter
PndSdsStripDigiPar * fCurrentDigiPar
TString fInBranchName
Definition: PndSdsTask.h:39
TClonesArray * point
Definition: anaLmdDigi.C:29
void AddDigi(Int_t &iStrip, Int_t iPoint, Int_t detID, Int_t sensorID, Int_t fe, Int_t chan, Double_t charge)
TClonesArray * fStripArray
Output array of PndSdsHits.
TVector3 MasterToLocalShortId(const TVector3 &master, const Int_t &shortId)
TVector3 GetPosition() const
Definition: PndSdsMCPoint.h:90
void SetVerbose(Int_t v)
Int_t CalcChannelfromStrip(Int_t stripNr) const
Bool_t SelectSensorParams(Int_t sensorID)
PndSdsCalcStrip * fCurrentStripCalcBot
Int_t GetNrTopFE() const
PndSdsCalcStrip * fCurrentStripCalcTop
std::vector< PndSdsStrip > GetStrips(Double_t inx, Double_t iny, Double_t inz, Double_t outx, Double_t outy, Double_t outz, Double_t eLoss)
virtual void Print(const Option_t *opt=0) const
void PndSdsStripHitProducer::FinishEvent ( )
virtualinherited

Definition at line 417 of file PndSdsStripHitProducer.cxx.

418 {
419  // called after all Tasks did their Exex() and the data is copied to the file
420  // fStripArray->Delete();
421  FinishEvents();
422 }
void PndSdsStripHitProducer::FinishTask ( )
virtualinherited

Definition at line 425 of file PndSdsStripHitProducer.cxx.

426 {
427 }
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(), PndRichHitProducer::Init(), PndSttHitProducerRealFast::Init(), PndDiscTaskReconstruction::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; }
InitStatus PndSdsStripHitProducer::Init ( )
virtualinherited

Virtual method Init

Definition at line 158 of file PndSdsStripHitProducer.cxx.

References PndSdsStripHitProducer::fDataBuffer, PndSdsStripHitProducer::fDigiParameterList, PndSdsTask::fFolderName, PndSdsTask::fInBranchName, PndSdsTask::fOutBranchName, PndSdsStripHitProducer::fPointArray, PndSdsStripHitProducer::fTimeOrderedDigi, fVerbose, PndPersistencyTask::GetPersistency(), PndSdsStripHitProducer::SetBranchNames(), and PndSdsStripHitProducer::SetCalculators().

159 {
160  FairRootManager* ioman = FairRootManager::Instance();
161 
162  SetBranchNames();
163 
164 
165  if ( ! ioman )
166  {
167  std::cout << "-E- PndSdsStripHitProducer::Init: "
168  << "RootManager not instantiated!" << std::endl;
169  return kFATAL;
170  }
171 
172  fPointArray = (TClonesArray*) ioman->GetObject(fInBranchName);
173  if ( ! fPointArray )
174  {
175  std::cout << "-E- PndSdsStripHitProducer::Init: "
176  << "No "<<fInBranchName<<" array!" << std::endl;
177  return kERROR;
178  }
179 
180 
182  fDataBuffer = (PndSdsDigiStripWriteoutBuffer*)ioman->RegisterWriteoutBuffer(fOutBranchName, fDataBuffer);
183 
184  fDataBuffer->ActivateBuffering(fTimeOrderedDigi);
185 
186  SetCalculators();
187 
188  if(fVerbose>0){
189  std::cout << "-I- PndSdsStripHitProducer: Initialisation successfull with these parameters:" << std::endl;
190  TIter params(fDigiParameterList);
191  while(PndSdsStripDigiPar* digipar=(PndSdsStripDigiPar*)params()){
192  if(0!=digipar) {
193  digipar->Print();
194  }
195  }
196  }
197 
198  return kSUCCESS;
199 }
TList * fDigiParameterList
Digitization Parameters.
int fVerbose
Definition: poormantracks.C:24
TString fOutBranchName
Definition: PndSdsTask.h:40
Bool_t fTimeOrderedDigi
parameter to switch to time ordered simulation
FairWriteoutBuffer * fDataBuffer
TString fInBranchName
Definition: PndSdsTask.h:39
Digitization Parameter Class for MVD-Strip part.
TString fFolderName
Definition: PndSdsTask.h:41
virtual void SetBranchNames()=0
void PndSdsStripHitProducer::ProduceHits ( )
protectedinherited
void PndSdsStripHitProducer::Register ( )
protectedinherited
InitStatus PndSdsStripHitProducer::ReInit ( )
virtualinherited

Definition at line 111 of file PndSdsStripHitProducer.cxx.

References PndSdsStripHitProducer::SetCalculators(), and PndSdsStripHitProducer::SetParContainers().

112 {
114  SetCalculators();
115  return kSUCCESS;
116 }
void PndSdsStripHitProducer::Reset ( )
protectedinherited
void PndSdsStripHitProducer::RunTimeBased ( )
inlineinherited

Definition at line 127 of file PndSdsStripHitProducer.h.

References PndSdsStripHitProducer::fTimeOrderedDigi.

Referenced by runDigi().

127 {fTimeOrderedDigi = kTRUE;}
Bool_t fTimeOrderedDigi
parameter to switch to time ordered simulation
Bool_t PndSdsStripHitProducer::SelectSensorParams ( Int_t  sensorID)
protectedinherited

Definition at line 374 of file PndSdsStripHitProducer.cxx.

References PndSdsStripHitProducer::fChargeConverter, PndSdsStripHitProducer::fCurrentChargeConverter, PndSdsStripHitProducer::fCurrentDigiPar, PndSdsStripHitProducer::fCurrentStripCalcBot, PndSdsStripHitProducer::fCurrentStripCalcTop, PndSdsStripHitProducer::fDigiParameterList, PndSdsStripHitProducer::fGeoH, PndSdsStripHitProducer::fStripCalcBot, PndSdsStripHitProducer::fStripCalcTop, fVerbose, PndGeoHandling::GetPath(), and TString.

Referenced by PndSdsStripHitProducer::AddDigi(), and PndSdsStripHitProducer::Exec().

375 {
376  fCurrentDigiPar = NULL;
377  fCurrentStripCalcTop = NULL;
378  fCurrentStripCalcBot = NULL;
380 
381  TString detpath = fGeoH->GetPath(sensorID);
382  // std::cout << "Detector: " << detpath.Data() << std::endl;
383  if( !(detpath.Contains("Strip")) )
384  { // filter from pixel points
385  return kFALSE;
386  }
387 
388  TIter parsetiter(fDigiParameterList);
389  while ( PndSdsStripDigiPar* digipar = (PndSdsStripDigiPar*)parsetiter() )
390  {
391  const char* sensortype = digipar->GetSensType();
392  if(detpath.Contains(sensortype)) {
393  fCurrentStripCalcTop = fStripCalcTop[sensortype];
394  fCurrentStripCalcBot = fStripCalcBot[sensortype];
396  fCurrentDigiPar = digipar;
397  return kTRUE;
398  }
399  }
400  // no suiting object found
401 
402  if(fVerbose>1) Info("SelectSensorParams()","No valid sensor parameters selected, skipping this point.");
403  std::cout<<"detector name does not contain a valid parameter name."<<std::endl;
404  std::cout<<" DetName : "<<detpath<<std::endl;
405  return kFALSE;
406 }
TList * fDigiParameterList
Digitization Parameters.
int fVerbose
Definition: poormantracks.C:24
TString GetPath(Int_t shortID)
for a given shortID the path is returned
std::map< const char *, PndSdsCalcStrip * > fStripCalcBot
std::map< const char *, PndSdsChargeConversion * > fChargeConverter
PndSdsStripDigiPar * fCurrentDigiPar
std::map< const char *, PndSdsCalcStrip * > fStripCalcTop
Calculator objects.
Digitization Parameter Class for MVD-Strip part.
PndSdsChargeConversion * fCurrentChargeConverter
PndSdsCalcStrip * fCurrentStripCalcBot
PndSdsCalcStrip * fCurrentStripCalcTop
void PndLmdStripHitProducer::SetBranchNames ( TString  inBranchname,
TString  outBranchname,
TString  folderName 
)
virtual

Definition at line 33 of file PndLmdStripHitProducer.cxx.

References PndSdsTask::fFolderName, PndSdsTask::fInBranchName, and PndSdsTask::fOutBranchName.

34 {
35  fInBranchName = inBranchname;
36  fOutBranchName = outBranchname;
37  fFolderName = folderName;
38 }
TString fOutBranchName
Definition: PndSdsTask.h:40
TString fInBranchName
Definition: PndSdsTask.h:39
TString fFolderName
Definition: PndSdsTask.h:41
void PndLmdStripHitProducer::SetBranchNames ( )
virtual

pure virtual method SetBranchNames

called by Init() function to set individual branch names

Implements PndSdsStripHitProducer.

Definition at line 40 of file PndLmdStripHitProducer.cxx.

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

41 {
42  fInBranchName = "LMDPoint";
43  fOutBranchName = "LMDStripDigis";
44  fFolderName = "PndLmd";
45  SetInBranchId();
46 }
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 PndLmdStripHitProducer::SetCalculators ( )
virtual

Reimplemented from PndSdsStripHitProducer.

Definition at line 48 of file PndLmdStripHitProducer.cxx.

References PndSdsStripHitProducer::fChargeConverter, PndSdsStripHitProducer::fChargeDigiParameterList, PndSdsStripHitProducer::fDigiParameterList, fVerbose, PndSdsTotDigiPar::GetChargingTime(), PndSdsTotDigiPar::GetClockFrequency(), PndSdsTotDigiPar::GetConstCurrent(), and PndSdsStripHitProducer::SetCalculators().

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 }
TList * fDigiParameterList
Digitization Parameters.
int fVerbose
Definition: poormantracks.C:24
Charge Digitization Parameter Class for SDS.
Double_t GetConstCurrent() const
Double_t GetClockFrequency() const
std::map< const char *, PndSdsChargeConversion * > fChargeConverter
Digitization Parameter Class for MVD-Strip part.
Double_t GetChargingTime() const
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(), SetBranchNames(), PndMvdHitProducerIdeal::SetBranchNames(), PndLmdHybridHitProducer::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
virtual void PndSdsStripHitProducer::SetMCPointType ( )
inlinevirtualinherited

Definition at line 118 of file PndSdsStripHitProducer.h.

118 {};
void PndLmdStripHitProducer::SetParContainers ( )
virtual

Reimplemented from PndSdsStripHitProducer.

Definition at line 77 of file PndLmdStripHitProducer.cxx.

References PndSdsStripHitProducer::fChargeDigiParameterList, PndSdsStripHitProducer::fDigiParameterList, PndSdsStripHitProducer::fGeoH, PndLmdContFact::GetDigiParNames(), PndGeoHandling::Instance(), rtdb, PndGeoHandling::SetParContainers(), PndSdsStripHitProducer::SetParContainers(), and TString.

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 }
TList * fDigiParameterList
Digitization Parameters.
virtual void SetParContainers()
Charge Digitization Parameter Class for SDS.
Digitization Parameter Class for MVD-Strip part.
FairRuntimeDb * rtdb
Definition: hit_dirc.C:66
static PndGeoHandling * Instance()
TList * GetDigiParNames()
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

std::map<const char*,PndSdsChargeConversion*> PndSdsStripHitProducer::fChargeConverter
protectedinherited
TList* PndSdsStripHitProducer::fChargeDigiParameterList
protectedinherited
PndSdsChargeConversion* PndSdsStripHitProducer::fCurrentChargeConverter
protectedinherited
PndSdsStripDigiPar* PndSdsStripHitProducer::fCurrentDigiPar
protectedinherited
PndSdsCalcStrip* PndSdsStripHitProducer::fCurrentStripCalcBot
protectedinherited
PndSdsCalcStrip* PndSdsStripHitProducer::fCurrentStripCalcTop
protectedinherited
FairWriteoutBuffer* PndSdsStripHitProducer::fDataBuffer
protectedinherited
TList* PndSdsStripHitProducer::fDigiParameterList
protectedinherited
Int_t PndSdsStripHitProducer::fEventNr
protectedinherited
TString PndSdsTask::fFolderName
protectedinherited
PndGeoHandling* PndSdsStripHitProducer::fGeoH
protectedinherited
Int_t PndSdsTask::fInBranchId
protectedinherited
TString PndSdsTask::fInBranchName
protectedinherited
FairMCEventHeader* PndSdsStripHitProducer::fMcEventHeader
protectedinherited

Definition at line 187 of file PndSdsStripHitProducer.h.

Referenced by PndSdsStripHitProducer::operator=().

Int_t PndSdsTask::fOutBranchId
protectedinherited

Definition at line 44 of file PndSdsTask.h.

Referenced by PndSdsTask::SetInBranchId().

TString PndSdsTask::fOutBranchName
protectedinherited
Bool_t PndSdsStripHitProducer::fOverrideParams
protectedinherited

///< converter for detector names

internal Flag that controls use of Parameter Invocations

Definition at line 190 of file PndSdsStripHitProducer.h.

Referenced by PndSdsStripHitProducer::operator=().

TClonesArray* PndSdsStripHitProducer::fPointArray
protectedinherited
TClonesArray* PndSdsStripHitProducer::fStripArray
protectedinherited

Output array of PndSdsHits.

Definition at line 162 of file PndSdsStripHitProducer.h.

Referenced by PndSdsStripHitProducer::Exec(), and PndSdsStripHitProducer::operator=().

std::map<const char*,PndSdsCalcStrip*> PndSdsStripHitProducer::fStripCalcBot
protectedinherited
std::map<const char*,PndSdsCalcStrip*> PndSdsStripHitProducer::fStripCalcTop
protectedinherited
Bool_t PndSdsStripHitProducer::fTimeOrderedDigi
protectedinherited

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