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

Task to create digis from waveforms. More...

#include <PndEmcFWEndcapDigi.h>

Inheritance diagram for PndEmcFWEndcapDigi:
PndPersistencyTask

Public Member Functions

 PndEmcFWEndcapDigi (Int_t verbose=0, Bool_t storedigis=kTRUE)
 
virtual ~PndEmcFWEndcapDigi ()
 
virtual InitStatus Init ()
 Init Task. More...
 
virtual void Exec (Option_t *opt)
 Runs the task. More...
 
void SetStorageOfData (Bool_t val)
 
void RunTimeBased ()
 
void SetPSAAlgorithms (PndEmcAbsPSA *highgain, PndEmcAbsPSA *lowgain)
 
virtual void SetCrystalCalibrator (PndEmcAbsCrystalCalibrator *Cal)
 
void SetPersistency (Bool_t val=kTRUE)
 
Bool_t GetPersistency ()
 

Protected Member Functions

virtual void SetParContainers ()
 

Private Member Functions

 PndEmcFWEndcapDigi (const PndEmcFWEndcapDigi &)
 
PndEmcFWEndcapDigioperator= (const PndEmcFWEndcapDigi &)
 
 ClassDef (PndEmcFWEndcapDigi, 1)
 

Private Attributes

TClonesArray * fWaveformArray
 
TClonesArray * fDigiArray
 
Double_t fEnergyDigiThreshold
 
TString fDigiPosMethod
 
Double_t fEmcDigiRescaleFactor
 
Double_t fEmcDigiPositionDepthPWO
 
Double_t fEmcDigiPositionDepthShashlyk
 
PndEmcPSAFPGASampleAnalyserfHighgainPSA
 
PndEmcPSAFPGASampleAnalyserfLowgainPSA
 
PndEmcHighLowPSA fHighLowPSA
 
PndEmcSimCrystalCalibratorfCalibrator
 
PndEmcFWEndcapDigiParfDigiPar
 Digitisation parameter container. More...
 
PndEmcRecoParfRecoPar
 Reconstruction parameter container. More...
 
PndEmcGeoParfGeoPar
 Digitisation parameter container. More...
 
Int_t fVerbose
 
Bool_t fTimeOrderedDigi
 set to kTRUE to use the time ordering of the output data. More...
 

Detailed Description

Task to create digis from waveforms.

This is an alternative to PndEmcWaveformToDigi, which despite its name could be used for all the EMC, not just FwEndcap.

Author
Ph. Mahlberg mahlb.nosp@m.erg@.nosp@m.hiskp.nosp@m..uni.nosp@m.-bonn.nosp@m..de

Definition at line 34 of file PndEmcFWEndcapDigi.h.

Constructor & Destructor Documentation

PndEmcFWEndcapDigi::PndEmcFWEndcapDigi ( Int_t  verbose = 0,
Bool_t  storedigis = kTRUE 
)

Definition at line 30 of file PndEmcFWEndcapDigi.cxx.

References PndPersistencyTask::SetPersistency().

30  :
32 {
33  SetPersistency(storedigis);
34 }
#define verbose
void SetPersistency(Bool_t val=kTRUE)
PndEmcFWEndcapDigiPar * fDigiPar
Digitisation parameter container.
PndEmcPSAFPGASampleAnalyser * fLowgainPSA
Double_t fEmcDigiPositionDepthShashlyk
PndEmcHighLowPSA fHighLowPSA
TClonesArray * fWaveformArray
Double_t fEmcDigiPositionDepthPWO
PndEmcRecoPar * fRecoPar
Reconstruction parameter container.
PndEmcPSAFPGASampleAnalyser * fHighgainPSA
TClonesArray * fDigiArray
PndEmcSimCrystalCalibrator * fCalibrator
PndEmcGeoPar * fGeoPar
Digitisation parameter container.
Bool_t fTimeOrderedDigi
set to kTRUE to use the time ordering of the output data.
PndEmcFWEndcapDigi::~PndEmcFWEndcapDigi ( )
virtual

Definition at line 39 of file PndEmcFWEndcapDigi.cxx.

References fDigiArray.

40 {
41  if (fDigiArray!= 0) delete fDigiArray;
42 }
TClonesArray * fDigiArray
PndEmcFWEndcapDigi::PndEmcFWEndcapDigi ( const PndEmcFWEndcapDigi )
private

Member Function Documentation

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

Runs the task.

The task loops over the waveforms and uses the pulse shape analyser (PndEmcAbsPSA) to extract signal height and timing. The calibrator (PndEmcAbsCrystalCalibrator) is then used to calculate the energy. If the energy is above the threshold (fEnergyDigiThreshold), a PndEmcDigi is created.

Parameters
optunused
Returns
void

Definition at line 193 of file PndEmcFWEndcapDigi.cxx.

References PndEmcSimCrystalCalibrator::Calibrate(), ctime, Double_t, energy, fCalibrator, fDigiArray, fEnergyDigiThreshold, fHighLowPSA, fVerbose, fWaveformArray, PndEmcWaveform::GetDetectorId(), PndEmcHighLowPSA::GetHit(), PndEmcWaveform::GetHitIndex(), PndEmcWaveform::GetSampleRate(), PndEmcWaveform::GetTrackId(), PndEmcHighLowPSA::GetWaveformIdx(), nHits, PndEmcHighLowPSA::Process(), rtime, and timer.

194 {
195  TStopwatch timer;
196  if (fVerbose>2){
197  timer.Start();
198  }
199 
200  fDigiArray->Delete();
201 
203  Double_t digi_time;
204  Int_t hitIndex;
205  Int_t nHits;
206  Int_t detId;
207  Int_t trackId;
208  Int_t nWaveforms = fWaveformArray->GetEntriesFast();
209  PndEmcWaveform* theWaveform;
210 
211  for (Int_t iWaveform=0; iWaveform<nWaveforms; iWaveform++) {
212 
213  theWaveform = (PndEmcWaveform*) fWaveformArray->At(iWaveform);
214  hitIndex=theWaveform->GetHitIndex();
215  detId=theWaveform->GetDetectorId();
216  trackId=theWaveform->GetTrackId();
217 
218  //Double_t timeshift; // how maximum is shifted //[R.K. 01/2017] unused variable?
219 
220  nHits = fHighLowPSA.Process(theWaveform);
221 
222  for(Int_t iHit=0; iHit<nHits; ++iHit) {
223  fHighLowPSA.GetHit(iHit, energy, digi_time);
224  //PndEmcAbsCrystalCalibrator::CalibrationStatus_t CalS //[R.K. 03/2017] unused variable?tat;
225 
226  //cout << "#" << iHit << ".\tDetId: " << detId << "\tsample time: " << digi_time << "\traw energy: " << energy << "\t";
227  //CalStat = //[R.K. 03/2017] unused variable?
228  fCalibrator->Calibrate(energy, detId, fHighLowPSA.GetWaveformIdx(iHit));
229 
230  Double_t sampleRate = theWaveform->GetSampleRate();
231 
232  digi_time/=sampleRate;
233  digi_time*=1e9; //ns
234 
235  if (energy>fEnergyDigiThreshold) {
236  Double_t timestamp=theWaveform->GetTimeStamp() + digi_time;
237  //std::cout << "PndEmcFWEndcapDigi::Exec Waveform TS: " << theWaveform->GetTimeStamp() << " digiTime: " << digi_time << std::endl;
238 
239  PndEmcDigi* myDigi = new((*fDigiArray)[fDigiArray->GetEntriesFast()]) PndEmcDigi(trackId,detId, energy, timestamp, hitIndex);
240  myDigi->ResetLinks();
241  myDigi->AddLinks(theWaveform->GetLinksWithType(FairRootManager::Instance()->GetBranchId("EmcHit")));
242 
243  //std::cout << "-I- PndEmcFWEndcapDigi Links MyDigi: " << *myDigi->GetPointerToLinks() << std::endl;
244  //std::cout << "Waveform: " << *theWaveform->GetPointerToLinks() << std::endl;
245  //myDigi->AddLink(FairLink(-1, FairRootManager::Instance()->GetEntryNr(), "EmcWaveform", iWaveform));
246  //std::cout << "\t accepted" << std::endl;
247  //std::cout << "digi at:" << fDigiArray->GetEntriesFast()-1 << " links to: " << myDigi->GetLink(0).GetIndex() << " iwaveform: " << iWaveform << " number of links: " << myDigi->GetNLinks() << std::endl;
248  //std::cout << "#0: " << myDigi->GetLink(0) << "\n#1:" << myDigi->GetLink(1) << std::endl;
249  //std::cout << "\t rejected" << std::endl;
250  }
251 
252  }
253  }
254 
255  if (fVerbose>2) {
256  timer.Stop();
257  Double_t rtime = timer.RealTime();
258  Double_t ctime = timer.CpuTime();
259  cout << "PndEmcFWEndcapDigi, Real time " << rtime << " s, CPU time " << ctime << " s" << endl;
260  }
261 }
virtual void GetHit(Int_t i, Double_t &energy, Double_t &time)
Get energy and time of hit.
represents the reconstructed hit of one emc crystal
Definition: PndEmcDigi.h:40
Int_t GetHitIndex() const
int nHits
Definition: RiemannTest.C:16
Double_t
int GetTrackId() const
TStopwatch timer
Definition: hit_dirc.C:51
PndEmcHighLowPSA fHighLowPSA
TClonesArray * fWaveformArray
long GetDetectorId() const
virtual Int_t Process(const PndEmcWaveform *waveform)
Find Hits in Waveform.
represents a simulated waveform in an emc crystal
Double_t ctime
Definition: hit_dirc.C:114
virtual CalibrationStatus_t Calibrate(Double_t &Energy, Long_t DetId, Int_t SignalNr=1)
Apply CrystalCalibration to Energy of Crystal derId.
virtual Int_t GetWaveformIdx(Int_t i)
Double_t GetSampleRate() const
Double_t rtime
Definition: hit_dirc.C:113
TClonesArray * fDigiArray
PndEmcSimCrystalCalibrator * fCalibrator
Double_t energy
Definition: plot_dirc.C:15
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(), PndSttHitProducerRealFast::Init(), PndDiscTaskReconstruction::Init(), PndRichHitProducer::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(), 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 PndEmcFWEndcapDigi::Init ( )
virtual

Init Task.

Prepares the TClonesArray of PndEmcMultiWaveform for reading and PndEmcDigi for writing. Also reads the EMC parameters and prepares the pulseshapes (PndEmcAbsPulseshape) and pulse shape analyser (PndEmcAbsPSA) as well as the calibrator (PndEmcSimCrystalCalibrator).

Returns
InitStatus
Return values
kSUCCESSsuccess

Definition at line 55 of file PndEmcFWEndcapDigi.cxx.

References PndEmcDigi::depth, fCalibrator, fDigiArray, fDigiPar, fDigiPosMethod, fEmcDigiPositionDepthPWO, fEmcDigiPositionDepthShashlyk, fEmcDigiRescaleFactor, fEnergyDigiThreshold, fGeoPar, fHighgainPSA, fHighLowPSA, fLowgainPSA, fRecoPar, fVerbose, fWaveformArray, PndEmcFWEndcapDigiPar::GetCalibHigh(), PndEmcFWEndcapDigiPar::GetCalibLow(), PndEmcRecoPar::GetEmcDigiPositionDepthPWO(), PndEmcRecoPar::GetEmcDigiPositionDepthShashlyk(), PndEmcFWEndcapDigiPar::GetEnergyDigiThreshold(), PndEmcFWEndcapDigiPar::GetNBits(), PndPersistencyTask::GetPersistency(), PndEmcFWEndcapDigiPar::GetPsaParHigh(), PndEmcFWEndcapDigiPar::GetPsaParLow(), PndEmcFWEndcapDigiPar::GetPsaTypeHigh(), PndEmcFWEndcapDigiPar::GetPsaTypeLow(), PndEmcFWEndcapDigiPar::GetRValueParHigh(), PndEmcFWEndcapDigiPar::GetRValueParLow(), PndEmcFWEndcapDigiPar::GetSignalOverflowHigh(), PndEmcPSAFPGAPileupAnalyser::Init(), PndEmcHighLowPSA::Init(), PndEmcSimCrystalCalibrator::Init(), PndEmcGeoPar::InitEmcMapper(), PndEmcStructure::Instance(), PndEmcDigi::selectDigiPositionMethod(), PndEmcSimCrystalCalibrator::SetCalibration(), PndEmcPSAFPGAPileupAnalyser::SetVerbose(), and PndEmcDigi::surface.

56 {
57  // Get RootManager
58  FairRootManager* ioman = FairRootManager::Instance();
59  if ( ! ioman )
60  {
61  cout << "-E- PndEmcFWEndcapDigi::Init: "
62  << "RootManager not instantiated!" << endl;
63  return kFATAL;
64  }
65 
66  // Get input array
67  fWaveformArray = (TClonesArray*) ioman->GetObject("EmcMultiWaveform");
68  if (!fWaveformArray) {
69  //check if EmcWaveform contains MultiWaveforms
70  fWaveformArray = (TClonesArray*) ioman->GetObject("EmcWaveform");
71  if((!fWaveformArray) || (!fWaveformArray->GetClass()->InheritsFrom("PndEmcMultiWaveform"))){
72  cout << "-W- PndEmcFWEndcapDigi::Init: "
73  << "No PndEmcWaveform array containing multi waveforms!" << endl;
74  return kERROR;
75  }
76 
77  }
78 
79  if(!fDigiPar) {
80  cout << "-E- PndEmcFWEndcapTimebasedWaveforms::Init: "
81  << "no DigiPar containter found" << endl;
82  return kFATAL;
83  }
84 
85  // Create and register output array
86  fDigiArray = ioman->Register("EmcDigi","PndEmcDigi", "Emc", GetPersistency());
87 
88  //position methods
91 
92  cout<<"fEmcDigiPositionDepthPWO: "<<fEmcDigiPositionDepthPWO<<endl;
93  cout<<"fEmcDigiPositionDepthShashlyk: "<<fEmcDigiPositionDepthShashlyk<<endl;
94 
95  //digi pos method
96  fDigiPosMethod = "depth"; //ATTN: hardcoded...do we need this at all?
97  fEmcDigiRescaleFactor = 1.08;
98  if (!fDigiPosMethod.CompareTo("surface")) {
100  } else if (!fDigiPosMethod.CompareTo("depth")) {
102  } else {
103  cout << "-W- PndEmcFWEndcapDigi::Init: " << "Unknown digi position method!" << endl;
104  return kERROR;
105  }
106 
107  // psa
108  if(!fDigiPar->GetPsaTypeLow().IsNull()) {
109 
110  if(fLowgainPSA) {
111  std::cout << "-W in PndEmcFWEndcapDigi::Init: Lowgain PSA already set. Skipping default initialization" << std::endl;
112  } else if(!fDigiPar->GetPsaTypeLow().CompareTo("PSAFPGAPileupAnalyser")) {
114  psa->SetVerbose(fVerbose);
115 
116  TObjArray* rparas = fDigiPar->GetRValueParLow().Tokenize(";");
117  TF1 R_thres("R_thres_Low", rparas->GetEntriesFast()>0 ? rparas->UncheckedAt(0)->GetName() : "", 1, TMath::Power(2, fDigiPar->GetNBits()));
118  TF1 R_mean("R_mean_Low", rparas->GetEntriesFast()>1 ? rparas->UncheckedAt(1)->GetName() : "", 1, TMath::Power(2, fDigiPar->GetNBits()));
119 
120  delete rparas;
121 
122  psa->Init(std::vector<Double_t>(fDigiPar->GetPsaParLow().GetArray(), fDigiPar->GetPsaParLow().GetArray()+fDigiPar->GetPsaParLow().GetSize()), R_thres.IsZombie() ? NULL : &R_thres, R_mean.IsZombie() ? NULL : & R_mean);
123 
124  fLowgainPSA = psa;
125 
126  } else {
127  std::cerr << "-E in PndEmcFWEndcapDigi::Init could not find PSA of type: " << fDigiPar->GetPsaTypeLow() << std::endl;
128  }
129  }
130 
131  if(!fDigiPar->GetPsaTypeHigh().IsNull()) {
132 
133  if(fHighgainPSA) {
134  std::cout << "-W in PndEmcFWEndcapDigi::Init: Highgain PSA already set. Skipping default initialization" << std::endl;
135  } else if(!fDigiPar->GetPsaTypeHigh().CompareTo("PSAFPGAPileupAnalyser")) {
137  psa->SetVerbose(fVerbose);
138 
139  TObjArray* rparas = fDigiPar->GetRValueParHigh().Tokenize(";");
140  TF1 R_thres("R_thres_High", rparas->GetEntriesFast()>0 ? rparas->UncheckedAt(0)->GetName() : "", 1, TMath::Power(2, fDigiPar->GetNBits()));
141  TF1 R_mean("R_mean_High", rparas->GetEntriesFast()>1 ? rparas->UncheckedAt(1)->GetName() : "", 1, TMath::Power(2, fDigiPar->GetNBits()));
142 
143  delete rparas;
144 
145  psa->Init(std::vector<Double_t>(fDigiPar->GetPsaParHigh().GetArray(), fDigiPar->GetPsaParHigh().GetArray()+fDigiPar->GetPsaParHigh().GetSize()), R_thres.IsZombie() ? NULL : &R_thres, R_mean.IsZombie() ? NULL : & R_mean);
146 
147  fHighgainPSA = psa;
148  } else {
149  std::cerr << "-E in PndEmcFWEndcapDigi::Init could not find PSA of type: " << fDigiPar->GetPsaTypeHigh() << std::endl;
150  }
151  }
152 
153 
154  if(fHighgainPSA && fLowgainPSA) {
156  } else {
157  std::cerr << "-E- PndEmcFWEndcapDigi::Init " << "No highgain and/or lowgain psa" << std::endl;
158  return kFATAL;
159  }
160 
161  //calibration
162  if(fCalibrator != NULL) {
163  std::cout << "-W in PndEmcFWEndcapDigi::Init: Calibrator already set. Skipping default initialization" << std::endl;
164  } else {
166  for(Int_t imod=1; imod<=5; ++imod) { //TODO: different calibration constants for different modules
167  fCalibrator->SetCalibration(imod, fDigiPar->GetCalibHigh(), 0, fDigiPar->GetSignalOverflowHigh()); //idx:0 <-> highgain
168  fCalibrator->SetCalibration(imod, fDigiPar->GetCalibLow(), 1, 0); //idx:1 <-> lowgain
169  }
170  fCalibrator->Init();
171  }
172 
174 
177 
178  cout << "-I- PndEmcFWEndcapDigi: Intialization successfull" << endl;
179  return kSUCCESS;
180 }
const TString & GetPsaTypeHigh()
Double_t GetEmcDigiPositionDepthShashlyk()
Definition: PndEmcRecoPar.h:25
static void selectDigiPositionMethod(PositionMethod, double positionDepthPWO=0., double positionDepthShahslyk=0., double rescaleFactor=1.)
Definition: PndEmcDigi.cxx:153
const TArrayD & GetPsaParLow()
virtual void SetVerbose(Int_t verbose=0)
void InitEmcMapper()
virtual void Init(PndEmcPSAFPGASampleAnalyser *highgainPSA, PndEmcPSAFPGASampleAnalyser *lowgainPSA, Double_t overflowThreshold, Int_t highgainWfIndex=0, Int_t lowgainWfIndex=1)
PndEmcFWEndcapDigiPar * fDigiPar
Digitisation parameter container.
PndEmcPSAFPGASampleAnalyser * fLowgainPSA
virtual void SetCalibration(Int_t ModId, Double_t cal, Int_t SignalNr=1, Double_t overflow=-1)
Set Calibration for a Module.
Double_t fEmcDigiPositionDepthShashlyk
PndEmcHighLowPSA fHighLowPSA
Class to simulate a Calibration.
TClonesArray * fWaveformArray
const TString & GetRValueParLow()
const TString & GetRValueParHigh()
Double_t fEmcDigiPositionDepthPWO
PndEmcRecoPar * fRecoPar
Reconstruction parameter container.
static PndEmcStructure * Instance()
const TString & GetPsaTypeLow()
const TArrayD & GetPsaParHigh()
virtual void Init(const std::vector< Double_t > &params, TF1 *R_thres, TF1 *R_mean, float extBaselineValue=0)
PndEmcPSAFPGASampleAnalyser * fHighgainPSA
TClonesArray * fDigiArray
PndEmcSimCrystalCalibrator * fCalibrator
PndEmcGeoPar * fGeoPar
Digitisation parameter container.
Double_t GetEmcDigiPositionDepthPWO()
Definition: PndEmcRecoPar.h:24
PndEmcFWEndcapDigi& PndEmcFWEndcapDigi::operator= ( const PndEmcFWEndcapDigi )
private
void PndEmcFWEndcapDigi::RunTimeBased ( )
inline

Definition at line 46 of file PndEmcFWEndcapDigi.h.

References fTimeOrderedDigi.

46 {fTimeOrderedDigi = kTRUE;};
Bool_t fTimeOrderedDigi
set to kTRUE to use the time ordering of the output data.
virtual void PndEmcFWEndcapDigi::SetCrystalCalibrator ( PndEmcAbsCrystalCalibrator Cal)
inlinevirtual

Definition at line 57 of file PndEmcFWEndcapDigi.h.

References fCalibrator.

57  {
58  fCalibrator = dynamic_cast<PndEmcSimCrystalCalibrator*>(Cal);
59  if(fCalibrator==NULL) {
60  std::cerr << "-E- in PndEmcFWEndcapDigi::SetCrystalCalibrator: Calibrator must be a PndEmcSimCrystalCalibrator. External Calibrator setting has no effect" << std::endl;
61  }
62  };
Class to simulate a Calibration.
PndEmcSimCrystalCalibrator * fCalibrator
void PndEmcFWEndcapDigi::SetParContainers ( )
protectedvirtual

Get parameter containers

Definition at line 263 of file PndEmcFWEndcapDigi.cxx.

References fDigiPar, fGeoPar, fRecoPar, and run.

264 {
265  // Get run and runtime database
266  FairRun* run = FairRun::Instance();
267  if ( ! run ) Fatal("SetParContainers", "No analysis run");
268 
269  FairRuntimeDb* db = run->GetRuntimeDb();
270  if ( ! db ) Fatal("SetParContainers", "No runtime database");
271 
272  // Get Emc digitisation parameter container
273  fDigiPar = dynamic_cast<PndEmcFWEndcapDigiPar*>(db->getContainer("PndEmcFWEndcapDigiPar"));
274 
275  // Get Emc reconstruction parameter container
276  fRecoPar = (PndEmcRecoPar*) db->getContainer("PndEmcRecoPar");
277 
278  // Get Emc geometry parameter container
279  fGeoPar = (PndEmcGeoPar*) db->getContainer("PndEmcGeoPar");
280 }
Int_t run
Definition: autocutx.C:47
PndEmcFWEndcapDigiPar * fDigiPar
Digitisation parameter container.
parameter set for the FWEndcap variant of waveform simulation
PndEmcRecoPar * fRecoPar
Reconstruction parameter container.
Parameter set for Emc Reco.
Definition: PndEmcRecoPar.h:12
PndEmcGeoPar * fGeoPar
Digitisation parameter container.
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(), 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(), 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
void PndEmcFWEndcapDigi::SetPSAAlgorithms ( PndEmcAbsPSA highgain,
PndEmcAbsPSA lowgain 
)
inline

Definition at line 48 of file PndEmcFWEndcapDigi.h.

References fHighgainPSA, and fLowgainPSA.

48  {
49  fHighgainPSA = dynamic_cast<PndEmcPSAFPGASampleAnalyser*>(highgain);
50  fLowgainPSA = dynamic_cast<PndEmcPSAFPGASampleAnalyser*>(lowgain);
51 
52  if(fHighgainPSA==NULL || fLowgainPSA==NULL) {
53  std::cerr << "-E- in PndEmcFWEndcapDigi::SetPSAAlgorithms: PSA must be a PndEmcPSAFPGASampleAnalyser. External PSA setting has no effect" << std::endl;
54  }
55  }
PndEmcPSAFPGASampleAnalyser * fLowgainPSA
PndEmcPSAFPGASampleAnalyser * fHighgainPSA
void PndEmcFWEndcapDigi::SetStorageOfData ( Bool_t  val)

Definition at line 282 of file PndEmcFWEndcapDigi.cxx.

References PndPersistencyTask::SetPersistency().

283 {
285  return;
286 }
Double_t val[nBoxes][nFEBox]
Definition: createCalib.C:11
void SetPersistency(Bool_t val=kTRUE)

Member Data Documentation

PndEmcSimCrystalCalibrator* PndEmcFWEndcapDigi::fCalibrator
private

Definition at line 89 of file PndEmcFWEndcapDigi.h.

Referenced by Exec(), Init(), and SetCrystalCalibrator().

TClonesArray* PndEmcFWEndcapDigi::fDigiArray
private

output array of EmcDigis

Definition at line 77 of file PndEmcFWEndcapDigi.h.

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

PndEmcFWEndcapDigiPar* PndEmcFWEndcapDigi::fDigiPar
private

Digitisation parameter container.

Definition at line 91 of file PndEmcFWEndcapDigi.h.

Referenced by Init(), and SetParContainers().

TString PndEmcFWEndcapDigi::fDigiPosMethod
private

Definition at line 80 of file PndEmcFWEndcapDigi.h.

Referenced by Init().

Double_t PndEmcFWEndcapDigi::fEmcDigiPositionDepthPWO
private

Definition at line 82 of file PndEmcFWEndcapDigi.h.

Referenced by Init().

Double_t PndEmcFWEndcapDigi::fEmcDigiPositionDepthShashlyk
private

Definition at line 83 of file PndEmcFWEndcapDigi.h.

Referenced by Init().

Double_t PndEmcFWEndcapDigi::fEmcDigiRescaleFactor
private

Definition at line 81 of file PndEmcFWEndcapDigi.h.

Referenced by Init().

Double_t PndEmcFWEndcapDigi::fEnergyDigiThreshold
private

Definition at line 79 of file PndEmcFWEndcapDigi.h.

Referenced by Exec(), and Init().

PndEmcGeoPar* PndEmcFWEndcapDigi::fGeoPar
private

Digitisation parameter container.

Definition at line 93 of file PndEmcFWEndcapDigi.h.

Referenced by Init(), and SetParContainers().

PndEmcPSAFPGASampleAnalyser* PndEmcFWEndcapDigi::fHighgainPSA
private

Definition at line 85 of file PndEmcFWEndcapDigi.h.

Referenced by Init(), and SetPSAAlgorithms().

PndEmcHighLowPSA PndEmcFWEndcapDigi::fHighLowPSA
private

Definition at line 87 of file PndEmcFWEndcapDigi.h.

Referenced by Exec(), and Init().

PndEmcPSAFPGASampleAnalyser* PndEmcFWEndcapDigi::fLowgainPSA
private

Definition at line 86 of file PndEmcFWEndcapDigi.h.

Referenced by Init(), and SetPSAAlgorithms().

PndEmcRecoPar* PndEmcFWEndcapDigi::fRecoPar
private

Reconstruction parameter container.

Definition at line 92 of file PndEmcFWEndcapDigi.h.

Referenced by Init(), and SetParContainers().

Bool_t PndEmcFWEndcapDigi::fTimeOrderedDigi
private

set to kTRUE to use the time ordering of the output data.

Definition at line 98 of file PndEmcFWEndcapDigi.h.

Referenced by RunTimeBased().

Int_t PndEmcFWEndcapDigi::fVerbose
private

Verbosity level

Definition at line 96 of file PndEmcFWEndcapDigi.h.

Referenced by Exec(), and Init().

TClonesArray* PndEmcFWEndcapDigi::fWaveformArray
private

Input array of PndEmcWaveforms

Definition at line 74 of file PndEmcFWEndcapDigi.h.

Referenced by Exec(), and Init().


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