FairRoot/PandaRoot
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
PndSdsStripHitProducerDif Class Referenceabstract

Hit Producer Task for strip detectors with electron diffusion. More...

#include <PndSdsStripHitProducerDif.h>

Inheritance diagram for PndSdsStripHitProducerDif:
PndSdsTask PndPersistencyTask

Public Member Functions

 PndSdsStripHitProducerDif ()
 
 PndSdsStripHitProducerDif (Double_t topPitch, Double_t botPitch, Double_t ori, Double_t skew, TVector2 topAnchor, TVector2 botAnchor, Int_t nrTopFE, Int_t nrBotFE, Int_t nrFECh, Double_t threshold, Double_t noise, TString sensorType="Rect", TString feType="APV25")
 
virtual ~PndSdsStripHitProducerDif ()
 
virtual void SetParContainers ()
 
virtual InitStatus Init ()
 
virtual InitStatus ReInit ()
 
virtual void SetBranchNames ()=0
 
virtual void SetMCPointType ()=0
 
virtual void Exec (Option_t *opt)
 
void AddDigi (Int_t &iStrip, Int_t iPoint, Int_t detID, Int_t sensorID, Int_t fe, Int_t chan, Double_t charge)
 
void SetParamSet (Double_t topPitch, Double_t botPitch, Double_t ori, Double_t skew, TVector2 topAnchor, TVector2 botAnchor, Int_t nrTopFE, Int_t nrBotFE, Int_t nrFECh, Double_t threshold, Double_t noise, TString sensorType, TString feType)
 
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)
 
 ClassDef (PndSdsStripHitProducerDif, 6)
 
 ClassDef (PndSdsTask, 1)
 

Protected Attributes

TString fBranchName
 
TClonesArray * fPointArray
 
TClonesArray * fStripArray
 Output array of PndSdsHits. More...
 
PndSdsStripDigiParfDigiParRect
 Digitization Parameters. More...
 
PndSdsStripDigiParfDigiParTrap
 
PndSdsStripDigiParfCurrentDigiPar
 
fDetectorType fMCPointType
 
PndSdsCalcStripDiffStripCalcTopRect
 Calculator objects. More...
 
PndSdsCalcStripDiffStripCalcBotRect
 
PndSdsCalcStripDiffStripCalcTopTrap
 
PndSdsCalcStripDiffStripCalcBotTrap
 
PndSdsCalcStripDiffCurrentStripCalcTop
 
PndSdsCalcStripDiffCurrentStripCalcBot
 
PndGeoHandlingfGeoH
 
Bool_t fOverrideParams
 
TString fInBranchName
 
TString fOutBranchName
 
TString fFolderName
 
Int_t fInBranchId
 
Int_t fOutBranchId
 

Detailed Description

Hit Producer Task for strip detectors with electron diffusion.

The choice of the parameters used for Digitization depends on the invocation of the different constructors of this task. Instantiating by the default constructor forces the digitisation parameters initialized from the DigiPar-Database. On the other hand these parameters may be overridden by invoking the constructor:

* Int_t, Int_t, Int_t, Double_t, Double_t)


Basically, the sensors are thought to be rectangular (even if they are not). Knowing the origin of the wafer, the strips can be described by an angle (orientation), their separation with respect to each other (pitch) and one point that is known to be part of the first strip (anchor point).
The numbering scheme is as follows (assuming 128 channels per FE):

strip index frontend # side
0 0 top <- Top Anchor
1 0 top
... 0 top
127 0 top
128 1 top
... 1 top
255 1 top
256 2 top
... ... top
topNrFE*128-1 topNrFE-1 top
topNrFE*128 topNrFE bottom <- Bottom Anchor
... topNrFE bottom
topNrFE*128+127 topNrFE bottom
topNrFE*128+128 topNrFE+1 bottom
... ... bottom
(topNrFE+botNrFE)*128-1 topNrFE+botNrFE-1

bottom


The numbering starts from the strip containing the anchor point following the direction orthogonal to the strips in mathematically positive sense (along x-axis in positive direction, if the strip orientation equals 90 degrees).

Author
HG Zaunick hg.za.nosp@m.unic.nosp@m.k@phy.nosp@m.sik..nosp@m.tu-dr.nosp@m.esde.nosp@m.n.de

Definition at line 67 of file PndSdsStripHitProducerDif.h.

Constructor & Destructor Documentation

PndSdsStripHitProducerDif::PndSdsStripHitProducerDif ( )

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

Definition at line 27 of file PndSdsStripHitProducerDif.cxx.

References fBranchName, fGeoH, fOverrideParams, and PndGeoHandling::Instance().

27  :
28  PndSdsTask("SSD Strip Digi Producer(PndSdsStripHitProducerDif)")
29 {
30  fBranchName = "SSDPoint";
31 // stripHits = 0;
32 
33 /* fTopPitch = 0.;
34  fBotPitch = 0.;
35  fOrient = 0.;
36  fSkew = 0.;
37  fTopAnchor = TVector2(0,0);
38  fBotAnchor = TVector2(0,0);
39  fNrTopFE = 0;
40  fNrBotFE = 0;
41  fNrFECh = 0;
42  fThreshold = 0.;
43  fNoise = 0.;*/
44  fOverrideParams = false;
45 // fHitArray = new TClonesArray("PndSdsHit");
46 // fStripArray = new TClonesArray("PndSdsStripHit");
47  fPersistance = kTRUE;
49 }
static PndGeoHandling * Instance()
PndSdsStripHitProducerDif::PndSdsStripHitProducerDif ( Double_t  topPitch,
Double_t  botPitch,
Double_t  ori,
Double_t  skew,
TVector2  topAnchor,
TVector2  botAnchor,
Int_t  nrTopFE,
Int_t  nrBotFE,
Int_t  nrFECh,
Double_t  threshold,
Double_t  noise,
TString  sensorType = "Rect",
TString  feType = "APV25" 
)

creates object with explicit assignment of Digitization parameters

Parameters
topPitchstrip pitch on top side (cm)
botPitchstrip pitch on bottom side (cm)
oriOrientation angle of strips on top side (x-y-plane)
skewOrientation angle of bottom strips relative to top strips
topAnchorAnchor Point on top side. The coordinates of this point are to be in centimeters from the center (0,0) of the sensor.
botAnchorAnchor Point on bottom side. Same as above
nrTopFEnumber of frontends attached to the top sensor side
nrBotFEnumber of frontends attached to the bottom sensor side
nrFEChnumber of channels of one single frontend
thresholdcharge threshold (electrons)
noiseequiv. noise charge (electrons)

Definition at line 52 of file PndSdsStripHitProducerDif.cxx.

References fBranchName, fGeoH, fOverrideParams, PndGeoHandling::Instance(), and SetParamSet().

57  :
58  PndSdsTask("SSD Strip Digi Producer")
59 {
60  // This constructor is probably not needed anymore, since the parameters are
61  // read in via an ascii file.
62  std::cout <<" -W- Obsolete constructor for PndSdsStripHitProducer called."
63  <<"Ssd strip sensors in barrel and disk are set to the SAME."<< std::endl;
64 
65  fBranchName = "SSDPoint";
66  fOverrideParams = true;
68  nrFECh,threshold,noise,"Rect",feType);
70  nrFECh,threshold,noise,"Trap",feType);
71  std::cout << "SSD Strip Digi Producer initiated" << std::endl;
73 }
void SetParamSet(Double_t topPitch, Double_t botPitch, Double_t ori, Double_t skew, TVector2 topAnchor, TVector2 botAnchor, Int_t nrTopFE, Int_t nrBotFE, Int_t nrFECh, Double_t threshold, Double_t noise, TString sensorType, TString feType)
TVector2 botAnchor(0., 0.)
double skew
double botPitch
static PndGeoHandling * Instance()
double threshold
double topPitch
double noise
TVector2 topAnchor(0., 0.)
PndSdsStripHitProducerDif::~PndSdsStripHitProducerDif ( )
virtual

Destructor

Definition at line 111 of file PndSdsStripHitProducerDif.cxx.

112 {
113 }

Member Function Documentation

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

Definition at line 303 of file PndSdsStripHitProducerDif.cxx.

References PndSdsDigi::AddCharge(), PndSdsDigi::AddIndex(), Bool_t, fMCPointType, fStripArray, PndSdsDigiStrip::GetChannel(), PndSdsDigi::GetDetID(), PndSdsDigi::GetFE(), and PndSdsDigi::GetSensorID().

Referenced by Exec().

304 {
305  Bool_t found = kFALSE;
306  PndSdsDigiStrip* aDigi = 0;
307  for(Int_t kstr = 0; kstr < iStrip && found==kFALSE ; kstr++)
308  {
309  aDigi = (PndSdsDigiStrip*)fStripArray->At(kstr);
310  if ( aDigi->GetDetID() == detID &&
311  aDigi->GetSensorID() == sensorID &&
312  aDigi->GetFE() == fe &&
313  aDigi->GetChannel() == chan )
314  {
315  aDigi->AddCharge(charge);
316  aDigi->AddIndex(iPoint);
317  found = kTRUE;
318 // ((PndSdsDigiStrip*)(*fStripArray)[kstr])->AddCarge(charge);
319 // ((PndSdsDigiStrip*)(*fStripArray)[kstr])->AddIndex(iPoint);
320 // return;
321  }
322  }
323  if(found == kFALSE){//TODO: Simulate a timestamp
324  new ((*fStripArray)[iStrip]) PndSdsDigiStrip(iPoint,detID,sensorID,fe,chan,0,fMCPointType, charge) ;
325  iStrip++;
326  }
327 }
Int_t GetSensorID() const
Definition: PndSdsDigi.h:59
virtual void AddIndex(int index)
Definition: PndSdsDigi.h:66
void AddCharge(double charge)
Definition: PndSdsDigi.h:78
Class for digitised strip hits.
Int_t GetFE() const
Definition: PndSdsDigi.h:57
TClonesArray * fStripArray
Output array of PndSdsHits.
Int_t GetDetID() const
Definition: PndSdsDigi.h:61
int fe
Definition: anaLmdDigi.C:67
Int_t GetChannel() const
PndSdsTask::ClassDef ( PndSdsTask  ,
 
)
protectedinherited
PndSdsStripHitProducerDif::ClassDef ( PndSdsStripHitProducerDif  ,
 
)
protected
void PndSdsStripHitProducerDif::Exec ( Option_t *  opt)
virtual

Virtual method Exec

Definition at line 206 of file PndSdsStripHitProducerDif.cxx.

References AddDigi(), PndSdsCalcStripDif::CalcChannelfromStrip(), PndSdsCalcStripDif::CalcFEfromStrip(), fCurrentDigiPar, fCurrentStripCalcBot, fCurrentStripCalcTop, fGeoH, fPointArray, fStripArray, fVerbose, PndSdsStripDigiPar::GetNrTopFE(), PndGeoHandling::GetPath(), PndSdsMCPoint::GetPosition(), PndSdsMCPoint::GetPositionOut(), PndSdsMCPoint::GetSensorID(), PndSdsStripDigiPar::GetSensType(), PndSdsCalcStripDif::GetStrips(), kMVDHitsStrip, PndGeoHandling::MasterToLocalShortId(), point, PndSdsMCPoint::Print(), and SelectSensorParams().

207 {
208  // Reset output array
209  fStripArray->Clear();
210 
211  // Declare some variables
212  PndSdsMCPoint *point = NULL;
213 
214 // Int_t detID = 0; // Detector ID
215 // Int_t trackID = 0; // Track index
216 
217  // Loop over PndSdsMCPoints
218  Int_t
219  nPoints = fPointArray->GetEntriesFast();
220  if (fVerbose > 0){
221  std::cout<<" Nr of Points: "<<nPoints<<std::endl;
222  }
223 
224  Int_t iStrip = 0;
225 
226  for (Int_t iPoint = 0; iPoint < nPoints; iPoint++)
227  {
228  point = (PndSdsMCPoint*) fPointArray->At(iPoint);
229  if( kFALSE == SelectSensorParams(point->GetSensorID()) ) continue;
230 
231  if (fVerbose > 2){
232  std::cout<<"***** Strip Digi for "<<fCurrentDigiPar->GetSensType()<<" ******"<<std::endl;
233  std::cout<<" DetName : "<<fGeoH->GetPath(point->GetSensorID())<<std::endl;
234  }
235  if ( ! point){
236  std::cout<< "No Point!" << std::endl;
237  continue;
238  }
239  if (fVerbose > 2){
240  std::cout << "****Global Point: " << std::endl;
241  point->Print("");
242  }
243 
244  // transform to local sensor system... (mc point has the ID not the path to the volume)
245  TVector3 posInL = fGeoH->MasterToLocalShortId(point->GetPosition(),point->GetSensorID());
246  TVector3 posOutL = fGeoH->MasterToLocalShortId(point->GetPositionOut(),point->GetSensorID());
247 
248  if (fVerbose > 2){
249  posInL.Print();posOutL.Print();
250  std::cout << "Energy: " << point->GetEnergyLoss() << std::endl;
251  }
252 // detID = point->GetDetectorID();
253 
254  // Top Side
255  if (fVerbose > 2) std::cout << "Top Side: " << std::endl;
256  // Calculate a cluster of Strips fired
257  std::vector<PndSdsStrip> topStrips =
258  fCurrentStripCalcTop->GetStrips(posInL.X(), posInL.Y(), posInL.Z(),
259  posOutL.X(), posOutL.Y(), posOutL.Z(),
260  point->GetEnergyLoss());
261 
262  if (topStrips.size() != 0)
263  {
264  if (fVerbose > 1) std::cout << "SensorStrips: " << std::endl;
265  for(std::vector<PndSdsStrip>::const_iterator kit=topStrips.begin();
266  kit!= topStrips.end(); ++kit)
267  {
268  AddDigi(iStrip,iPoint,kMVDHitsStrip,point->GetSensorID(),
269  fCurrentStripCalcTop->CalcFEfromStrip(kit->GetIndex()),
270  fCurrentStripCalcTop->CalcChannelfromStrip(kit->GetIndex()),kit->GetCharge());
271  if (fVerbose > 1) std::cout << *kit << std::endl;
272  }
273  }else if(fVerbose>2) std::cout<<"Top side empty"<<std::endl;
274 
275  // Bottom Side
276  if (fVerbose > 2) std::cout << "Bottom Side: " << std::endl;
277  std::vector<PndSdsStrip> botStrips =
278  fCurrentStripCalcBot->GetStrips(posInL.X(), posInL.Y(), posInL.Z(),
279  posOutL.X(), posOutL.Y(), posOutL.Z(),
280  point->GetEnergyLoss());
281  if (botStrips.size() != 0)
282  {
283  if (fVerbose > 2) std::cout << " SensorStrips: " << std::endl;
284  for(std::vector<PndSdsStrip>::const_iterator kit=botStrips.begin();
285  kit!= botStrips.end();
286  ++kit)
287  {
288  AddDigi(iStrip,iPoint,kMVDHitsStrip,point->GetSensorID(),
290  fCurrentStripCalcBot->CalcChannelfromStrip(kit->GetIndex()),kit->GetCharge());
291  if (fVerbose > 2) std::cout << *kit << std::endl;
292  }
293  } else if(fVerbose>2) std::cout<<"Bottom side empty"<<std::endl;
294 
295  } // Loop over MCPoints
296 
297  // Event summary
298  if(fVerbose > 1) std::cout << "-I- PndSdsStripHitProducer: " << nPoints << " PndSdsMCPoints, "
299  << iStrip << " Digis created."<< std::endl;
300 }
int fVerbose
Definition: poormantracks.C:24
PndSdsCalcStripDif * fCurrentStripCalcTop
const char * GetSensType() const
void AddDigi(Int_t &iStrip, Int_t iPoint, Int_t detID, Int_t sensorID, Int_t fe, Int_t chan, Double_t charge)
TVector3 GetPositionOut() const
Definition: PndSdsMCPoint.h:91
Int_t GetSensorID() const
Definition: PndSdsMCPoint.h:89
TString GetPath(Int_t shortID)
for a given shortID the path is returned
PndSdsCalcStripDif * fCurrentStripCalcBot
Int_t CalcChannelfromStrip(Int_t stripNr) const
Int_t CalcFEfromStrip(Int_t stripNr) const
TClonesArray * fStripArray
Output array of PndSdsHits.
TVector3 MasterToLocalShortId(const TVector3 &master, const Int_t &shortId)
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)
TVector3 GetPosition() const
Definition: PndSdsMCPoint.h:90
Bool_t SelectSensorParams(Int_t sensorID)
Int_t GetNrTopFE() const
virtual void Print(const Option_t *opt=0) const
PndSdsMCPoint * point
Definition: anaLmdCluster.C:72
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(), 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 PndSdsStripHitProducerDif::Init ( )
virtual

Virtual method Init

Definition at line 137 of file PndSdsStripHitProducerDif.cxx.

References fBranchName, fDigiParRect, fDigiParTrap, fPointArray, fStripArray, fStripCalcBotRect, fStripCalcBotTrap, fStripCalcTopRect, fStripCalcTopTrap, fVerbose, PndPersistencyTask::GetPersistency(), kBOTTOM, kTOP, PndSdsStripDigiPar::Print(), SetBranchNames(), SetMCPointType(), and PndSdsCalcStripDif::SetVerboseLevel().

138 {
139  // FairRun* ana = FairRun::Instance();
140  FairRootManager* ioman = FairRootManager::Instance();
141 
142  SetBranchNames();
143  SetMCPointType();
144 
145  //std::cout << "-I- PndSdsStripHitProucer::Init() " << fGeoH->GetPath("1_1/212_0/") << std::endl;
146 
147  if ( ! ioman )
148  {
149  std::cout << "-E- PndSdsStripHitProducer::Init: "
150  << "RootManager not instantiated!" << std::endl;
151  return kFATAL;
152  }
153 
154  fPointArray = (TClonesArray*) ioman->GetObject(fBranchName);
155  if ( ! fPointArray )
156  {
157  std::cout << "-W- PndSdsStripHitProducer::Init: "
158  << "No SSDPoint array!" << std::endl;
159  return kERROR;
160  }
161 
162  // Create and register output array
163 // fHitArray = new TClonesArray("PndSdsHit");
164 // ioman->Register("SSDHit", "SSD", fHitArray, kTRUE);
165 
166  // Create and register output array
167  fStripArray = new TClonesArray("PndSdsDigiStrip");
168  ioman->Register("SSDStripDigis", "SSD", fStripArray, GetPersistency());
169 
170  // Create and register parameter array
171 // fStripArray = new TClonesArray("PndSdsDigiPar");
172 // ioman->Register("SSDDigiParam", "SSD", fDigiParRect, fPersistance);
173 
174  std::cout << "-I- PndSdsStripHitProducer: Initialisation successfull" << std::endl;
175 
176 
177  if (!fDigiParRect){
178  std::cout<<"-E- PndSdsStripHitProducer: DigiPar Rect Container does not exist!"<<std::endl;
179  return kERROR;
180  }
181  if (!fDigiParTrap){
182  std::cout<<"-E- PndSdsStripHitProducer: DigiPar Trap Container does not exist!"<<std::endl;
183  return kERROR;
184  }
185 
186 
187  if(fVerbose>2) fDigiParRect->Print();
188  if(fVerbose>2) fDigiParTrap->Print();
189 
198 
199  return kSUCCESS;
200 }
int fVerbose
Definition: poormantracks.C:24
virtual void SetBranchNames()=0
Class for calculating strip indices from wafer hits.
void SetVerboseLevel(Int_t level)
PndSdsCalcStripDif * fStripCalcBotRect
PndSdsCalcStripDif * fStripCalcBotTrap
virtual void SetMCPointType()=0
PndSdsStripDigiPar * fDigiParRect
Digitization Parameters.
TClonesArray * fStripArray
Output array of PndSdsHits.
PndSdsCalcStripDif * fStripCalcTopRect
Calculator objects.
PndSdsCalcStripDif * fStripCalcTopTrap
void PndSdsStripHitProducerDif::ProduceHits ( )
protected
void PndSdsStripHitProducerDif::Register ( )
protected
InitStatus PndSdsStripHitProducerDif::ReInit ( )
virtual

Definition at line 129 of file PndSdsStripHitProducerDif.cxx.

References SetParContainers().

130 {
132  return kSUCCESS;
133 }
void PndSdsStripHitProducerDif::Reset ( )
protected
Bool_t PndSdsStripHitProducerDif::SelectSensorParams ( Int_t  sensorID)
protected

TODO change this to a switch on DetID==2 ?

Definition at line 417 of file PndSdsStripHitProducerDif.cxx.

References fCurrentDigiPar, fCurrentStripCalcBot, fCurrentStripCalcTop, fDigiParRect, fDigiParTrap, fGeoH, fStripCalcBotRect, fStripCalcBotTrap, fStripCalcTopRect, fStripCalcTopTrap, fVerbose, PndGeoHandling::GetPath(), PndSdsStripDigiPar::GetSensType(), and TString.

Referenced by Exec().

418 {
420  TString detpath = fGeoH->GetPath(sensorID);
421  if( !(detpath.Contains("Strip")) )
422  return kFALSE;
423 
424  if(detpath.Contains(fDigiParRect->GetSensType())) {
428  }else if(detpath.Contains(fDigiParTrap->GetSensType())) {
432  }else{
433  if (fVerbose > 1) std::cout<<"detector name does not contain 'Rect' or 'Trap'"<<std::endl;
434  if (fVerbose > 2) std::cout<<" DetName : "<<detpath<<std::endl;
435  return kFALSE;
436  }
437  return kTRUE;
438 }
int fVerbose
Definition: poormantracks.C:24
PndSdsCalcStripDif * fCurrentStripCalcTop
const char * GetSensType() const
PndSdsCalcStripDif * fStripCalcBotRect
TString GetPath(Int_t shortID)
for a given shortID the path is returned
PndSdsCalcStripDif * fCurrentStripCalcBot
PndSdsCalcStripDif * fStripCalcBotTrap
PndSdsStripDigiPar * fDigiParRect
Digitization Parameters.
PndSdsCalcStripDif * fStripCalcTopRect
Calculator objects.
PndSdsCalcStripDif * fStripCalcTopTrap
virtual void PndSdsStripHitProducerDif::SetBranchNames ( )
pure virtual

pure virtual method SetBranchNames

called by Init() function to set individual branch names

Implements PndSdsTask.

Referenced by Init().

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(), 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 PndSdsStripHitProducerDif::SetMCPointType ( )
pure virtual

Referenced by Init().

void PndSdsStripHitProducerDif::SetParamSet ( Double_t  topPitch,
Double_t  botPitch,
Double_t  ori,
Double_t  skew,
TVector2  topAnchor,
TVector2  botAnchor,
Int_t  nrTopFE,
Int_t  nrBotFE,
Int_t  nrFECh,
Double_t  threshold,
Double_t  noise,
TString  sensorType,
TString  feType 
)

Definition at line 75 of file PndSdsStripHitProducerDif.cxx.

References fCurrentDigiPar, fDigiParRect, fDigiParTrap, fOverrideParams, PndSdsStripDigiPar::SetBotAnchor(), PndSdsStripDigiPar::SetBotPitch(), PndSdsStripDigiPar::SetFeType(), PndSdsStripDigiPar::SetNoise(), PndSdsStripDigiPar::SetNrBotFE(), PndSdsStripDigiPar::SetNrFECh(), PndSdsStripDigiPar::SetNrTopFE(), PndSdsStripDigiPar::SetOrient(), SetParContainers(), PndSdsStripDigiPar::SetSensType(), PndSdsStripDigiPar::SetSkew(), PndSdsStripDigiPar::SetThreshold(), PndSdsStripDigiPar::SetTopAnchor(), and PndSdsStripDigiPar::SetTopPitch().

Referenced by PndSdsStripHitProducerDif().

81 {
82  FairRun* ana = FairRun::Instance();
83  // FairRootManager* ioman = FairRootManager::Instance();
84  if ( 0==fDigiParRect || 0==fDigiParTrap ) SetParContainers();
85  if (fOverrideParams){
86  if (sensorType.Contains("Rect")) fCurrentDigiPar = fDigiParRect;
87  else if (sensorType.Contains("Trap")) fCurrentDigiPar = fDigiParTrap;
94  fCurrentDigiPar->SetNrFECh(nrFECh);
95  fCurrentDigiPar->SetNrTopFE(nrTopFE);
96  fCurrentDigiPar->SetNrBotFE(nrBotFE);
99  fCurrentDigiPar->SetSensType(sensorType);
100  fCurrentDigiPar->SetFeType(feType);
101  fCurrentDigiPar->setChanged();
102  fCurrentDigiPar->setInputVersion(ana->GetRunId(),1);
103  }
104 
105 
106 }
void SetOrient(Double_t x)
void SetNrBotFE(Int_t x)
void SetBotPitch(Double_t x)
void SetTopPitch(Double_t x)
TVector2 botAnchor(0., 0.)
double skew
void SetBotAnchor(TVector2 x)
void SetNoise(Double_t x)
void SetTopAnchor(TVector2 x)
void SetNrFECh(Int_t x)
PndSdsStripDigiPar * fDigiParRect
Digitization Parameters.
double botPitch
double threshold
void SetSensType(TString x)
void SetNrTopFE(Int_t x)
void SetFeType(TString x)
double topPitch
void SetThreshold(Double_t x)
double noise
TVector2 topAnchor(0., 0.)
void SetSkew(Double_t x)
void PndSdsStripHitProducerDif::SetParContainers ( )
virtual

Definition at line 117 of file PndSdsStripHitProducerDif.cxx.

References fDigiParRect, fDigiParTrap, fGeoH, rtdb, and PndGeoHandling::SetParContainers().

Referenced by ReInit(), and SetParamSet().

118 {
119  // called from the FairRun::Init()
120  // Get Base Container
121 
123  FairRun* ana = FairRun::Instance();
124  FairRuntimeDb* rtdb=ana->GetRuntimeDb();
125  fDigiParRect = (PndSdsStripDigiPar*)(rtdb->getContainer("SSDStripDigiParRect"));
126  fDigiParTrap = (PndSdsStripDigiPar*)(rtdb->getContainer("SSDStripDigiParTrap"));
127 }
virtual void SetParContainers()
Digitization Parameter Class for MVD-Strip part.
FairRuntimeDb * rtdb
Definition: hit_dirc.C:66
PndSdsStripDigiPar * fDigiParRect
Digitization Parameters.
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(), PndSttHitProducerRealFull::SetPersistence(), PndSttHitProducerIdeal::SetPersistence(), PndSttHitProducerRealFast::SetPersistence(), PndFtsHitProducerIdeal::SetPersistence(), PndTrackSmearTask::SetPersistence(), PndSciTHitProducerIdeal::SetPersistence(), PndIdealTrackFinder::SetPersistence(), PndSttMatchTracks::SetPersistence(), PndSttFindTracks::SetPersistence(), PndFtsHoughTrackerTask::SetPersistence(), PndTrkTracking2::SetPersistence(), PndEmcMakeRecoHit::SetStorageOfData(), PndEmcFWEndcapDigi::SetStorageOfData(), PndEmcMakeClusterOnline::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

TString PndSdsStripHitProducerDif::fBranchName
protected

Accessor functions

Definition at line 142 of file PndSdsStripHitProducerDif.h.

Referenced by Init(), and PndSdsStripHitProducerDif().

PndSdsStripDigiPar* PndSdsStripHitProducerDif::fCurrentDigiPar
protected

Definition at line 156 of file PndSdsStripHitProducerDif.h.

Referenced by Exec(), SelectSensorParams(), and SetParamSet().

PndSdsCalcStripDif* PndSdsStripHitProducerDif::fCurrentStripCalcBot
protected

Definition at line 166 of file PndSdsStripHitProducerDif.h.

Referenced by Exec(), and SelectSensorParams().

PndSdsCalcStripDif* PndSdsStripHitProducerDif::fCurrentStripCalcTop
protected

Definition at line 165 of file PndSdsStripHitProducerDif.h.

Referenced by Exec(), and SelectSensorParams().

PndSdsStripDigiPar* PndSdsStripHitProducerDif::fDigiParRect
protected

Digitization Parameters.

Definition at line 154 of file PndSdsStripHitProducerDif.h.

Referenced by Init(), SelectSensorParams(), SetParamSet(), and SetParContainers().

PndSdsStripDigiPar* PndSdsStripHitProducerDif::fDigiParTrap
protected
TString PndSdsTask::fFolderName
protectedinherited
PndGeoHandling* PndSdsStripHitProducerDif::fGeoH
protected
Int_t PndSdsTask::fInBranchId
protectedinherited
TString PndSdsTask::fInBranchName
protectedinherited

Definition at line 39 of file PndSdsTask.h.

Referenced by PndSdsStripHitProducer::AddDigi(), PndLmdPixelClusterTask::Exec(), PndLmdStripClusterTask::Exec(), PndSdsStripHitProducer::Exec(), PndSdsPixelClusterTask::Exec(), PndSdsStripClusterTask::Exec(), PndLmdPixelClusterTask::Init(), PndLmdStripClusterTask::Init(), PndSdsTimeWalkCorrTask::Init(), PndLmdPixelHitProducerFast::Init(), PndSdsHitProducerIdeal::Init(), PndLmdPairFinderTask::Init(), PndSdsHybridHitProducer::Init(), PndSdsIdealRecoTask::Init(), PndSdsIdealClusterTask::Init(), PndSdsStripHitProducer::Init(), PndSdsPixelClusterTask::Init(), PndSdsStripClusterTask::Init(), PndMvdHitProducerIdeal::PndMvdHitProducerIdeal(), PndLmdIdealClusterTask::SetBranchNames(), PndMvdTimeWalkCorrTask::SetBranchNames(), PndLmdStripClusterTask::SetBranchNames(), PndMvdStripClusterTask::SetBranchNames(), PndLmdStripHitProducer::SetBranchNames(), PndMvdHitProducerIdeal::SetBranchNames(), PndMvdIdealClusterTask::SetBranchNames(), PndLmdPixelClusterTask::SetBranchNames(), PndMvdHybridHitProducer::SetBranchNames(), PndLmdHybridHitProducer::SetBranchNames(), PndMvdPixelClusterTask::SetBranchNames(), PndLmdIdealRecoTask::SetBranchNames(), PndLmdHitProducerIdeal::SetBranchNames(), PndLmdPixelHitProducerFast::SetBranchNames(), PndLmdPairFinderTask::SetBranchNames(), PndMvdStripHitProducer::SetBranchNames(), PndSdsTask::SetInBranchId(), PndSdsIdealClusterTask::SetInBranchId(), PndSdsPixelClusterTask::SetInBranchId(), and PndSdsStripClusterTask::SetInBranchId().

fDetectorType PndSdsStripHitProducerDif::fMCPointType
protected

Definition at line 158 of file PndSdsStripHitProducerDif.h.

Referenced by AddDigi().

Int_t PndSdsTask::fOutBranchId
protectedinherited

Definition at line 44 of file PndSdsTask.h.

Referenced by PndSdsTask::SetInBranchId().

TString PndSdsTask::fOutBranchName
protectedinherited
Bool_t PndSdsStripHitProducerDif::fOverrideParams
protected

Definition at line 189 of file PndSdsStripHitProducerDif.h.

Referenced by PndSdsStripHitProducerDif(), and SetParamSet().

TClonesArray* PndSdsStripHitProducerDif::fPointArray
protected

Input array of PndSdsMCPoints

Definition at line 146 of file PndSdsStripHitProducerDif.h.

Referenced by Exec(), and Init().

TClonesArray* PndSdsStripHitProducerDif::fStripArray
protected

Output array of PndSdsHits.

Array of hit strips

Definition at line 150 of file PndSdsStripHitProducerDif.h.

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

PndSdsCalcStripDif* PndSdsStripHitProducerDif::fStripCalcBotRect
protected

Definition at line 162 of file PndSdsStripHitProducerDif.h.

Referenced by Init(), and SelectSensorParams().

PndSdsCalcStripDif* PndSdsStripHitProducerDif::fStripCalcBotTrap
protected

Definition at line 164 of file PndSdsStripHitProducerDif.h.

Referenced by Init(), and SelectSensorParams().

PndSdsCalcStripDif* PndSdsStripHitProducerDif::fStripCalcTopRect
protected

Calculator objects.

Definition at line 161 of file PndSdsStripHitProducerDif.h.

Referenced by Init(), and SelectSensorParams().

PndSdsCalcStripDif* PndSdsStripHitProducerDif::fStripCalcTopTrap
protected

Definition at line 163 of file PndSdsStripHitProducerDif.h.

Referenced by Init(), and SelectSensorParams().


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