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

#include <PndSdsIdealRecoTask.h>

Inheritance diagram for PndSdsIdealRecoTask:
PndSdsTask PndPersistencyTask PndLmdIdealRecoTask

Public Member Functions

 PndSdsIdealRecoTask ()
 
 PndSdsIdealRecoTask (Double_t sx, Double_t sy, Double_t sz)
 
 PndSdsIdealRecoTask (PndSdsIdealRecoTask &other)
 
virtual ~PndSdsIdealRecoTask ()
 
PndSdsIdealRecoTaskoperator= (PndSdsIdealRecoTask &other)
 
virtual void SetParContainers ()
 
virtual InitStatus Init ()
 
virtual void Exec (Option_t *opt)
 
virtual void SetBranchNames ()=0
 
virtual void SetInBranchId ()
 
void SetPersistency (Bool_t val=kTRUE)
 
Bool_t GetPersistency ()
 

Protected Member Functions

void InitTransMat ()
 
void smear (TVector3 &pos)
 
void smearLocal (TVector3 &pos)
 
void CalcDetPlane (TVector3 &o, TVector3 &u, TVector3 &v)
 
void Register ()
 
void Reset ()
 
void ProduceHits ()
 
 ClassDef (PndSdsIdealRecoTask, 1)
 
 ClassDef (PndSdsTask, 1)
 

Protected Attributes

PndGeoHandlingfGeoH
 
TClonesArray * fPointArray
 
TClonesArray * fMctruthArray
 
TClonesArray * fHitOutputArray
 
Double_t fSigmaX
 
Double_t fSigmaY
 
Double_t fSigmaZ
 
PndSdsMCPointfCurrentPndSdsMCPoint
 
TGeoHMatrix * fCurrentTransMat
 
TMatrixT< Double_tfHitCovMatrix
 
TString fInBranchName
 
TString fOutBranchName
 
TString fFolderName
 
Int_t fInBranchId
 
Int_t fOutBranchId
 

Detailed Description

Definition at line 33 of file PndSdsIdealRecoTask.h.

Constructor & Destructor Documentation

PndSdsIdealRecoTask::PndSdsIdealRecoTask ( )

Default constructor

Definition at line 29 of file PndSdsIdealRecoTask.cxx.

References PndPersistencyTask::SetPersistency().

29  :
30  PndSdsTask("Ideal reconstruction task for PANDA PndSds"),
32  fPointArray(NULL),
33  fMctruthArray(NULL),
34  fHitOutputArray(NULL),
35  fSigmaX(0.),
36  fSigmaY(0.),
37  fSigmaZ(0.),
39  fCurrentTransMat(NULL),
40  fHitCovMatrix(3,3)
41 {
42  //fGeoH = PndGeoHandling::Instance();
43  SetPersistency(kTRUE);
44 }
PndGeoHandling * fGeoH
void SetPersistency(Bool_t val=kTRUE)
TGeoHMatrix * fCurrentTransMat
TClonesArray * fHitOutputArray
TClonesArray * fMctruthArray
static PndGeoHandling * Instance()
TClonesArray * fPointArray
PndSdsMCPoint * fCurrentPndSdsMCPoint
TMatrixT< Double_t > fHitCovMatrix
PndSdsIdealRecoTask::PndSdsIdealRecoTask ( Double_t  sx,
Double_t  sy,
Double_t  sz 
)

Definition at line 48 of file PndSdsIdealRecoTask.cxx.

References PndPersistencyTask::SetPersistency().

48  :
49  PndSdsTask("Ideal reconstruction task for PANDA PndSds"),
51  fPointArray(NULL),
52  fMctruthArray(NULL),
53  fHitOutputArray(NULL),
54  fSigmaX(sx),
55  fSigmaY(sy),
56  fSigmaZ(sz),
58  fCurrentTransMat(NULL),
59  fHitCovMatrix(3,3)
60 {
61  //fGeoH = PndGeoHandling::Instance();
62  SetPersistency(kTRUE);
63 }
PndGeoHandling * fGeoH
void SetPersistency(Bool_t val=kTRUE)
TGeoHMatrix * fCurrentTransMat
TClonesArray * fHitOutputArray
TClonesArray * fMctruthArray
static PndGeoHandling * Instance()
TClonesArray * fPointArray
PndSdsMCPoint * fCurrentPndSdsMCPoint
TMatrixT< Double_t > fHitCovMatrix
PndSdsIdealRecoTask::PndSdsIdealRecoTask ( PndSdsIdealRecoTask other)
inline

Definition at line 42 of file PndSdsIdealRecoTask.h.

42  :
43  PndSdsTask(),
44  fGeoH(other.fGeoH),
45  fPointArray(other.fPointArray),
48  fSigmaX(other.fSigmaX),
49  fSigmaY(other.fSigmaY),
50  fSigmaZ(other.fSigmaZ),
54  {}
PndGeoHandling * fGeoH
TGeoHMatrix * fCurrentTransMat
TClonesArray * fHitOutputArray
TClonesArray * fMctruthArray
TClonesArray * fPointArray
PndSdsMCPoint * fCurrentPndSdsMCPoint
TMatrixT< Double_t > fHitCovMatrix
PndSdsIdealRecoTask::~PndSdsIdealRecoTask ( )
virtual

Destructor

Definition at line 68 of file PndSdsIdealRecoTask.cxx.

69 {
70 }

Member Function Documentation

void PndSdsIdealRecoTask::CalcDetPlane ( TVector3 &  o,
TVector3 &  u,
TVector3 &  v 
)
protected

Definition at line 246 of file PndSdsIdealRecoTask.cxx.

References Double_t, fCurrentPndSdsMCPoint, fCurrentTransMat, fVerbose, PndSdsMCPoint::GetSensorID(), and v.

Referenced by Exec().

247 {
248  Double_t O[3], U[3], V[3], o[3], u[3], v[3];
249  O[0]=oVect.x(); O[1]=oVect.y(); O[2]=oVect.z();
250  U[0]=uVect.x(); U[1]=uVect.y(); U[2]=uVect.z();
251  V[0]=vVect.x(); V[1]=vVect.y(); V[2]=vVect.z();
252 
253  if (fVerbose > 1) {
254  std::cout<<"PndSdsIdealRecoTask::CalcDetPlane from Detector "
255  <<fCurrentPndSdsMCPoint->GetSensorID()<<std::endl;
256  }
257  //make transformation
258  fCurrentTransMat->LocalToMaster(O,o);
259  fCurrentTransMat->LocalToMaster(U,u);
260  fCurrentTransMat->LocalToMaster(V,v);
261  oVect.SetXYZ(o[0],o[1],o[2]);
262  uVect.SetXYZ(u[0],u[1],u[2]);
263  vVect.SetXYZ(v[0],v[1],v[2]);
264 }
int fVerbose
Definition: poormantracks.C:24
TGeoHMatrix * fCurrentTransMat
Int_t GetSensorID() const
Definition: PndSdsMCPoint.h:89
__m128 v
Definition: P4_F32vec4.h:4
Double_t
PndSdsMCPoint * fCurrentPndSdsMCPoint
PndSdsTask::ClassDef ( PndSdsTask  ,
 
)
protectedinherited
PndSdsIdealRecoTask::ClassDef ( PndSdsIdealRecoTask  ,
 
)
protected
void PndSdsIdealRecoTask::Exec ( Option_t *  opt)
virtual

Virtual method Exec

Definition at line 114 of file PndSdsIdealRecoTask.cxx.

References CalcDetPlane(), fCurrentPndSdsMCPoint, fHitOutputArray, fPointArray, fSigmaX, fSigmaY, fSigmaZ, fVerbose, PndSdsMCPoint::GetSensorID(), InitTransMat(), pos, smearLocal(), and v.

115 {
116  // Fills PndSdsHits with the MC Truth
117  // TODO filling of RecoHits, together with the sensor plane
118 
119 
120  if ( ! fHitOutputArray ) Fatal("Exec", "No fHitOutputArray");
121  fHitOutputArray->Delete();
122 
123  std::map<Int_t, PndSdsHit*> clusterMap;
124 
125  Int_t nPndSdsHits=fPointArray->GetEntriesFast();
126  for(Int_t iMvdPoint=0;iMvdPoint<nPndSdsHits;++iMvdPoint)
127  {
129  Int_t trackid=fCurrentPndSdsMCPoint->GetTrackID();
130  Int_t size = fHitOutputArray->GetEntriesFast();
131  InitTransMat();
132 
133  // cut on secondaries (deltas) etc
134  if(trackid<0)continue;
135 
136  //set the plane definition inside the local frame
137  //sensor origin in the middle, u^ and v^ are xy plane
138  TVector3 o(0.,0.,0.),u(1.,0.,0.),v(0.,1.,0.);
139  CalcDetPlane(o,u,v);
140  TVector3 pos;
141  fCurrentPndSdsMCPoint->Position(pos);
142  smearLocal(pos);
143  TVector3 dposLocal(fSigmaX,fSigmaY,fSigmaZ);
144 
145  // TODO here we shall distinguish between strip and pixel sensors
146  // TODO How to handle the covariance matrix? OR do we really use local point
147  // errors. this would avoid two conversations, myabe overload the FairHit
148  // functions for the global error points.
149 
150  // Now the 3D Info is smared inside the FairHit part of PndSdsHit
151  new ((*fHitOutputArray)[size]) PndSdsHit(fCurrentPndSdsMCPoint->GetDetectorID(),
152  fCurrentPndSdsMCPoint->GetSensorID(), pos, dposLocal,
153  -1,fCurrentPndSdsMCPoint->GetEnergyLoss(),1,iMvdPoint);
154 
155  }//end for PndSdsiMvdPoint
156 
157  if (fVerbose > 0) {
158  std::cout<<fHitOutputArray->GetEntriesFast() <<" Hits created out of "
159  <<fPointArray->GetEntriesFast() <<" Points"<<std::endl;
160  }
161 
162 }
TVector3 pos
int fVerbose
Definition: poormantracks.C:24
void smearLocal(TVector3 &pos)
Int_t GetSensorID() const
Definition: PndSdsMCPoint.h:89
__m128 v
Definition: P4_F32vec4.h:4
TClonesArray * fHitOutputArray
TClonesArray * fPointArray
void CalcDetPlane(TVector3 &o, TVector3 &u, TVector3 &v)
PndSdsMCPoint * fCurrentPndSdsMCPoint
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(), 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(), PndRecoMultiKalmanTask2::Init(), PndEmcHitProducer::Init(), PndDrcHitProducerReal::Init(), PndDskFLGHitProducerIdeal::Init(), PndEmcTmpWaveformToDigi::Init(), PndDrcDigiTask::Init(), PndEmcWaveformToDigi::Init(), PndSttMatchTracks::Init(), PndEmcWaveformToCalibratedDigi::Init(), PndTrkTracking2::Init(), PndSttFindTracks::Init(), PndEmcMultiWaveformToCalibratedDigi::Init(), PndRecoKalmanTask2::Init(), PndDrcTimeDigiTask::Init(), PndEmcExpClusterSplitter::Init(), PndFtsHoughTrackerTask::Init(), PndSdsNoiseProducer::Init(), PndEmcPhiBumpSplitter::Init(), Init(), PndSdsHybridHitProducer::Init(), PndRecoMultiKalmanTask::Init(), PndSdsIdealClusterTask::Init(), PndRecoKalmanTask::Init(), PndSdsStripHitProducerDif::Init(), PndGemDigitize::Init(), PndSdsStripHitProducer::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 PndSdsIdealRecoTask::Init ( )
virtual

Definition at line 73 of file PndSdsIdealRecoTask.cxx.

References PndSdsTask::fFolderName, fHitOutputArray, PndSdsTask::fInBranchName, fMctruthArray, PndSdsTask::fOutBranchName, fPointArray, PndPersistencyTask::GetPersistency(), gGeoManager, PndSdsTask::SetBranchNames(), and PndSdsTask::SetInBranchId().

74 {
76  SetInBranchId();
77 
78  // Get RootManager
79  FairRootManager* ioman = FairRootManager::Instance();
80  if ( ! ioman ) {
81  std::cout << "-E- PndSdsIdealRecoTask::Init: "
82  << "RootManager not instantiated!" << std::endl;
83  return kFATAL; }
84 
85  // Get input array
86  fPointArray = (TClonesArray*) ioman->GetObject(fInBranchName);
87  if ( ! fPointArray ) {
88  std::cout << "-W- PndSdsIdealRecoTask::Init: "<< "No "<<fInBranchName
89  <<" array!" << std::endl;
90  return kERROR; }
91 
92  // Get MCTruth collection
93  fMctruthArray=(TClonesArray*) ioman->GetObject("MCTrack");
94  if(fMctruthArray==0) {
95  std::cout << "-W- PndSdsIdealRecoTask::Init: No McTruth array!" << std::endl;
96  return kERROR; }
97 
98  // Create and register output array
99  fHitOutputArray = new TClonesArray("PndSdsHit");
101 
102  std::cout << "-I- gGeoManager = "<<gGeoManager << std::endl;
103 
104  return kSUCCESS;
105 }
TString fOutBranchName
Definition: PndSdsTask.h:40
TGeoManager * gGeoManager
TClonesArray * fHitOutputArray
TString fInBranchName
Definition: PndSdsTask.h:39
virtual void SetBranchNames()=0
TString fFolderName
Definition: PndSdsTask.h:41
TClonesArray * fMctruthArray
TClonesArray * fPointArray
virtual void SetInBranchId()
Definition: PndSdsTask.h:30
void PndSdsIdealRecoTask::InitTransMat ( )
protected

smearing and geometry access

Definition at line 164 of file PndSdsIdealRecoTask.cxx.

References fCurrentPndSdsMCPoint, fCurrentTransMat, fGeoH, fVerbose, PndGeoHandling::GetPath(), PndSdsMCPoint::GetSensorID(), and gGeoManager.

Referenced by Exec().

165 {
166 // std::cout<<"InitTransMat() with "<<fCurrentPndSdsMCPoint->GetDetName()<<std::endl;
167  gGeoManager->cd(
169  );
170  fCurrentTransMat = gGeoManager->GetCurrentMatrix();
171  if (fVerbose > 1) {
172  fCurrentTransMat->Print("");
173  }
174 }
int fVerbose
Definition: poormantracks.C:24
PndGeoHandling * fGeoH
TGeoHMatrix * fCurrentTransMat
TGeoManager * gGeoManager
Int_t GetSensorID() const
Definition: PndSdsMCPoint.h:89
TString GetPath(Int_t shortID)
for a given shortID the path is returned
PndSdsMCPoint * fCurrentPndSdsMCPoint
PndSdsIdealRecoTask& PndSdsIdealRecoTask::operator= ( PndSdsIdealRecoTask other)
inline

Definition at line 59 of file PndSdsIdealRecoTask.h.

References fCurrentPndSdsMCPoint, fCurrentTransMat, fGeoH, fHitCovMatrix, fHitOutputArray, fMctruthArray, fPointArray, fSigmaX, fSigmaY, and fSigmaZ.

60  {
61  fGeoH=other.fGeoH;
65  fSigmaX=other.fSigmaX;
66  fSigmaY=other.fSigmaY;
67  fSigmaZ=other.fSigmaZ;
71  return *this;
72  };
PndGeoHandling * fGeoH
TGeoHMatrix * fCurrentTransMat
TClonesArray * fHitOutputArray
TClonesArray * fMctruthArray
TClonesArray * fPointArray
PndSdsMCPoint * fCurrentPndSdsMCPoint
TMatrixT< Double_t > fHitCovMatrix
void PndSdsIdealRecoTask::ProduceHits ( )
protected
void PndSdsIdealRecoTask::Register ( )
protected
void PndSdsIdealRecoTask::Reset ( )
protected
virtual void PndSdsTask::SetBranchNames ( )
pure virtualinherited
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(), 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
void PndSdsIdealRecoTask::SetParContainers ( )
virtual

Virtual method Init

Definition at line 107 of file PndSdsIdealRecoTask.cxx.

References fGeoH, and PndGeoHandling::SetParContainers().

108 {
110 }
virtual void SetParContainers()
PndGeoHandling * fGeoH
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(), 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
void PndSdsIdealRecoTask::smear ( TVector3 &  pos)
protected

smear a 3d vector

Definition at line 177 of file PndSdsIdealRecoTask.cxx.

References Double_t, fSigmaX, fSigmaY, fSigmaZ, fVerbose, x, y, and z.

Referenced by smearLocal().

178 {
180 
181  Double_t sigx=gRandom->Gaus(0,fSigmaX);
182  Double_t sigy=gRandom->Gaus(0,fSigmaY);
183  Double_t sigz=gRandom->Gaus(0,fSigmaZ);
184 
185  Double_t x = pos.x() + sigx;
186  Double_t y = pos.y() + sigy;
187  Double_t z = pos.z() + sigz;
188 
189  if (fVerbose > 1) {
190  std::cout<<"PndSdsIdealRecoTask::smear Point (x,y,z)=("
191  <<pos.x()<<","<<pos.z()<<","<<pos.z()<<") by ("
192  <<fSigmaX<<","<<fSigmaY<<","<<fSigmaZ<<") to ";
193  }
194  pos.SetXYZ(x,y,z);
195  if (fVerbose > 1) {
196  std::cout<<"("<<pos.x()<<","<<pos.y()<<","<<pos.z()<<")"<<std::endl;
197  }
198  return;
199 }
TVector3 pos
int fVerbose
Definition: poormantracks.C:24
Double_t
Double_t z
Double_t x
Double_t y
void PndSdsIdealRecoTask::smearLocal ( TVector3 &  pos)
protected

smear a 3d vector in the local sensor plane

Definition at line 202 of file PndSdsIdealRecoTask.cxx.

References Double_t, fCurrentTransMat, fVerbose, and smear().

Referenced by Exec().

203 {
205  if (fVerbose > 1) {
206  std::cout<<"PndSdsIdealRecoTask::smearLocal"<<std::endl;
207  }
208  Double_t posLab[3], posSens[3];
209 
210  posLab[0]=pos.x(); posLab[1]=pos.y(); posLab[2]=pos.z();
211  fCurrentTransMat->MasterToLocal(posLab,posSens);
212 
213  pos.SetXYZ(posSens[0],posSens[1],posSens[2]);
214 
215  smear(pos); // apply a gaussian
216 
217  posSens[0]=pos.x(); posSens[1]=pos.y(); posSens[2]=pos.z();
218  fCurrentTransMat->LocalToMaster(posSens,posLab);
219  pos.SetXYZ(posLab[0],posLab[1],posLab[2]);
220 
221 
222 // TMatrixT<Double_t> cov(3,3);
223 // cov[0][0]=fSigmaX; cov[0][1]=0.; cov[0][2]=0.;
224 // cov[1][0]=0.; cov[1][1]=fSigmaY; cov[1][2]=0.;
225 // cov[2][0]=0.; cov[2][1]=0.; cov[2][2]=fSigmaZ;
226 
227 // TMatrixT<Double_t> rot(3,3);
228 // rot[0][0] = fCurrentTransMat->GetRotationMatrix()[0];
229 // rot[0][1] = fCurrentTransMat->GetRotationMatrix()[1];
230 // rot[0][2] = fCurrentTransMat->GetRotationMatrix()[2];
231 // rot[1][0] = fCurrentTransMat->GetRotationMatrix()[3];
232 // rot[1][1] = fCurrentTransMat->GetRotationMatrix()[4];
233 // rot[1][2] = fCurrentTransMat->GetRotationMatrix()[5];
234 // rot[2][0] = fCurrentTransMat->GetRotationMatrix()[6];
235 // rot[2][1] = fCurrentTransMat->GetRotationMatrix()[7];
236 // rot[2][2] = fCurrentTransMat->GetRotationMatrix()[8];
237 
238 // fHitCovMatrix = cov;
239 // fHitCovMatrix *= rot;
240 
241  return;
242 }
TVector3 pos
int fVerbose
Definition: poormantracks.C:24
void smear(TVector3 &pos)
TGeoHMatrix * fCurrentTransMat
Double_t

Member Data Documentation

PndSdsMCPoint* PndSdsIdealRecoTask::fCurrentPndSdsMCPoint
protected

Definition at line 96 of file PndSdsIdealRecoTask.h.

Referenced by CalcDetPlane(), Exec(), InitTransMat(), and operator=().

TGeoHMatrix* PndSdsIdealRecoTask::fCurrentTransMat
protected

Definition at line 97 of file PndSdsIdealRecoTask.h.

Referenced by CalcDetPlane(), InitTransMat(), operator=(), and smearLocal().

TString PndSdsTask::fFolderName
protectedinherited
PndGeoHandling* PndSdsIdealRecoTask::fGeoH
protected

Definition at line 84 of file PndSdsIdealRecoTask.h.

Referenced by InitTransMat(), operator=(), and SetParContainers().

TMatrixT<Double_t> PndSdsIdealRecoTask::fHitCovMatrix
protected

Definition at line 98 of file PndSdsIdealRecoTask.h.

Referenced by operator=().

TClonesArray* PndSdsIdealRecoTask::fHitOutputArray
protected

Output array of Hits

Definition at line 91 of file PndSdsIdealRecoTask.h.

Referenced by Exec(), Init(), and operator=().

Int_t PndSdsTask::fInBranchId
protectedinherited
TString PndSdsTask::fInBranchName
protectedinherited
TClonesArray* PndSdsIdealRecoTask::fMctruthArray
protected

Definition at line 88 of file PndSdsIdealRecoTask.h.

Referenced by Init(), and operator=().

Int_t PndSdsTask::fOutBranchId
protectedinherited

Definition at line 44 of file PndSdsTask.h.

Referenced by PndSdsTask::SetInBranchId().

TString PndSdsTask::fOutBranchName
protectedinherited
TClonesArray* PndSdsIdealRecoTask::fPointArray
protected

Input array of Points

Definition at line 87 of file PndSdsIdealRecoTask.h.

Referenced by Exec(), Init(), and operator=().

Double_t PndSdsIdealRecoTask::fSigmaX
protected

Properties

Definition at line 93 of file PndSdsIdealRecoTask.h.

Referenced by Exec(), operator=(), PndLmdIdealRecoTask::PndLmdIdealRecoTask(), and smear().

Double_t PndSdsIdealRecoTask::fSigmaY
protected
Double_t PndSdsIdealRecoTask::fSigmaZ
protected

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