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

#include <PndTrackSmearTask.h>

Inheritance diagram for PndTrackSmearTask:
PndPersistencyTask

Public Member Functions

 PndTrackSmearTask ()
 
 PndTrackSmearTask (const TString &branchName)
 
virtual ~PndTrackSmearTask ()
 
virtual void SetParContainers ()
 
virtual InitStatus Init ()
 
virtual void Exec (Option_t *opt)
 
virtual void FinishEvent ()
 
virtual void Finish ()
 
void SetMomSmearing (TVector3 dpop)
 
void AddInputTrackBranch (const TString &name)
 
void SetPersistence (const Bool_t &val)
 
void SetPersistency (Bool_t val=kTRUE)
 
Bool_t GetPersistency ()
 

Private Member Functions

FairTrackParP SmearTrackPar (FairTrackParP par)
 
void SmearMom (TVector3 &vec, Double_t Cov66[6][6])
 
 ClassDef (PndTrackSmearTask, 1)
 

Private Attributes

std::vector< TStringfInputTrackBranches
 
std::vector< TStringfOutputTrackBranches
 
std::vector< TClonesArray * > fTracks
 
std::vector< TClonesArray * > fOutputTracks
 
TVector3 fMomSigma
 Momentum smearing sigma (dp/p) More...
 

Detailed Description

Definition at line 26 of file PndTrackSmearTask.h.

Constructor & Destructor Documentation

PndTrackSmearTask::PndTrackSmearTask ( )
inline

Definition at line 28 of file PndTrackSmearTask.h.

References PndPersistencyTask::SetPersistency().

29  : PndPersistencyTask("Missing Pz Track Cleaner Task"), fInputTrackBranches(), fOutputTrackBranches(),fTracks(0),fMomSigma(0.03,0.03,0.03)
30  {SetPersistency(kTRUE); };
void SetPersistency(Bool_t val=kTRUE)
std::vector< TString > fInputTrackBranches
std::vector< TClonesArray * > fTracks
std::vector< TString > fOutputTrackBranches
TVector3 fMomSigma
Momentum smearing sigma (dp/p)
PndTrackSmearTask::PndTrackSmearTask ( const TString branchName)
inline

Definition at line 32 of file PndTrackSmearTask.h.

References AddInputTrackBranch(), and PndPersistencyTask::SetPersistency().

33  : PndPersistencyTask("Missing Pz Track Cleaner Task"), fInputTrackBranches(), fOutputTrackBranches(),fTracks(0),fMomSigma(0.03,0.03,0.03)
34  {SetPersistency(kTRUE); AddInputTrackBranch(branchName);};
void SetPersistency(Bool_t val=kTRUE)
std::vector< TString > fInputTrackBranches
void AddInputTrackBranch(const TString &name)
std::vector< TClonesArray * > fTracks
std::vector< TString > fOutputTrackBranches
TVector3 fMomSigma
Momentum smearing sigma (dp/p)
virtual PndTrackSmearTask::~PndTrackSmearTask ( )
inlinevirtual

Definition at line 36 of file PndTrackSmearTask.h.

36 {};

Member Function Documentation

void PndTrackSmearTask::AddInputTrackBranch ( const TString name)
inline

Definition at line 48 of file PndTrackSmearTask.h.

References fInputTrackBranches, and fOutputTrackBranches.

Referenced by PndMasterRecoTask::PndMasterRecoTask(), and PndTrackSmearTask().

48 { fInputTrackBranches.push_back(name); fOutputTrackBranches.push_back(name+"_fakeonline");}
std::vector< TString > fInputTrackBranches
TString name
std::vector< TString > fOutputTrackBranches
PndTrackSmearTask::ClassDef ( PndTrackSmearTask  ,
 
)
private
void PndTrackSmearTask::Exec ( Option_t *  opt)
virtual

Virtual method Exec

Definition at line 49 of file PndTrackSmearTask.cxx.

References fInputTrackBranches, fOutputTracks, fTracks, fVerbose, PndTrack::GetChi2(), PndTrack::GetFlag(), PndTrack::GetNDF(), PndTrack::GetParamFirst(), PndTrack::GetParamLast(), PndTrack::GetPidHypo(), PndTrack::GetTrackCand(), i, SmearTrackPar(), and TString.

49  {
50 
51  if (fVerbose > 1) {
52  std::cout << "============= Begin PndTrackSmearTask::Exec" << std::endl;
53  std::cout << std::endl;
54  std::cout << "Array size check: fTracks ("<<fTracks.size()<<") fOutputTracks ("<<fOutputTracks.size()<<") fInputTrackBranches ("<<fInputTrackBranches.size()<<")"<<std::endl;
55  }
56  for(TClonesArray* arr : fOutputTracks) {arr->Delete();}
57 
58 
59  for (unsigned int i=0;i<fTracks.size();i++)
60  {
61  TClonesArray* trkArray=fTracks[i];
62  if(trkArray==NULL) continue;
63  TClonesArray* trkOutArray=fOutputTracks[i];
64  if(trkOutArray==NULL) continue;
65  TString trkbranchname = fInputTrackBranches[i];
66  for (int j = 0; j < trkArray->GetEntriesFast(); j++)
67  {
68  PndTrack* myTrack = (PndTrack*)trkArray->At(j);
69  //PndTrackCand* myTrackCand=myTrack->GetPndTrackCandViaRef();
70  new((*trkOutArray)[j]) PndTrack(
71  SmearTrackPar(myTrack->GetParamFirst()), SmearTrackPar(myTrack->GetParamLast()),
72  myTrack->GetTrackCand(), myTrack->GetFlag(),
73  myTrack->GetChi2(), myTrack->GetNDF(), myTrack->GetPidHypo(), j,
74  FairRootManager::Instance()->GetBranchId(trkbranchname));
75  }
76  }
77 
78 }
int fVerbose
Definition: poormantracks.C:24
Int_t i
Definition: run_full.C:25
Int_t GetFlag() const
Definition: PndTrack.h:33
std::vector< TString > fInputTrackBranches
PndTrackCand GetTrackCand()
Definition: PndTrack.h:47
Int_t GetNDF() const
Definition: PndTrack.h:35
FairTrackParP GetParamLast()
Definition: PndTrack.h:50
std::vector< TClonesArray * > fTracks
std::vector< TClonesArray * > fOutputTracks
FairTrackParP SmearTrackPar(FairTrackParP par)
Double_t GetChi2() const
Definition: PndTrack.h:34
Int_t GetPidHypo() const
Definition: PndTrack.h:32
FairTrackParP GetParamFirst()
Definition: PndTrack.h:49
void PndTrackSmearTask::Finish ( )
virtual

Definition at line 119 of file PndTrackSmearTask.cxx.

119  {
120 }
void PndTrackSmearTask::FinishEvent ( )
virtual

Definition at line 115 of file PndTrackSmearTask.cxx.

115  {
116  //if(fTracks != 0) fTracks->Delete();
117 }
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(), 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 PndTrackSmearTask::Init ( )
virtual

Definition at line 22 of file PndTrackSmearTask.cxx.

References fInputTrackBranches, fOutputTrackBranches, fOutputTracks, fTracks, PndPersistencyTask::GetPersistency(), and TString.

22  {
23 
24  FairRootManager* ioman = FairRootManager::Instance();
25 
26  if (!ioman) {
27  std::cout << "-E- PndTrackSmearTask::Init: "
28  << "RootManager not instantiated!" << std::endl;
29  return kFATAL;
30  }
31 
32  // get track branches
33  for(TString branchname : fInputTrackBranches)
34  {
35  std::cout<<"PndTrackSmearTask::Init(): Adding track branch "<<branchname.Data()<<std::endl;
36  fTracks.push_back( (TClonesArray*) ioman->GetObject(branchname));
37  }
38 
39  // create output branches
40  for(TString branchname : fOutputTrackBranches)
41  {
42  fOutputTracks.push_back( ioman->Register(branchname, "PndTrack", "Tracks", GetPersistency()) );
43  }
44 
45  return kSUCCESS;
46 
47 }
std::vector< TString > fInputTrackBranches
std::vector< TClonesArray * > fTracks
std::vector< TClonesArray * > fOutputTracks
std::vector< TString > fOutputTrackBranches
void PndTrackSmearTask::SetMomSmearing ( TVector3  dpop)
inline

Definition at line 47 of file PndTrackSmearTask.h.

References fMomSigma.

47 {fMomSigma=dpop;}
TVector3 fMomSigma
Momentum smearing sigma (dp/p)
void PndTrackSmearTask::SetParContainers ( )
virtual

Virtual method Init

Definition at line 19 of file PndTrackSmearTask.cxx.

19  {
20 }
void PndTrackSmearTask::SetPersistence ( const Bool_t val)
inline

Definition at line 49 of file PndTrackSmearTask.h.

References PndPersistencyTask::SetPersistency().

Double_t val[nBoxes][nFEBox]
Definition: createCalib.C:11
void SetPersistency(Bool_t val=kTRUE)
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(), 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(), 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
void PndTrackSmearTask::SmearMom ( TVector3 &  vec,
Double_t  Cov66[6][6] 
)
private

Definition at line 94 of file PndTrackSmearTask.cxx.

References Double_t, and fMomSigma.

Referenced by SmearTrackPar().

95 {
96  // gaussian smearing
97  Double_t rannn=0.;
98  rannn = gRandom->Gaus(vec.X(),vec.X()*fMomSigma.X());
99  vec.SetX(rannn);
100 
101  rannn = gRandom->Gaus(vec.Y(),vec.Y()*fMomSigma.Y());
102  vec.SetY(rannn);
103 
104  rannn = gRandom->Gaus(vec.Z(),vec.Z()*fMomSigma.Z());
105  vec.SetZ(rannn);
106 
107  Cov66[3][3]+=vec.X()*vec.X()*fMomSigma.X()*fMomSigma.X();
108  Cov66[4][4]+=vec.Y()*vec.Y()*fMomSigma.Y()*fMomSigma.Y();
109  Cov66[5][5]+=vec.Z()*vec.Z()*fMomSigma.Z()*fMomSigma.Z();
110 
111  return;
112 }
Double_t
TVector3 fMomSigma
Momentum smearing sigma (dp/p)
dble_vec_t vec[12]
Definition: ranlxd.cxx:380
FairTrackParP PndTrackSmearTask::SmearTrackPar ( FairTrackParP  par)
private

Definition at line 81 of file PndTrackSmearTask.cxx.

References Double_t, mom, and SmearMom().

Referenced by Exec().

82 {
83  TVector3 mom=par.GetMomentum();
84  Double_t Cov66[6][6];
85  par.GetMARSCov(Cov66);
86  SmearMom(mom,Cov66);
87 
88  FairTrackParP result(par.GetPosition(), mom, Cov66,par.GetQ(), par.GetOrigin(), par.GetJVer(), par.GetKVer());
89 
90  return result;
91 }
Double_t par[3]
Double_t mom
Definition: plot_dirc.C:14
void SmearMom(TVector3 &vec, Double_t Cov66[6][6])
Double_t

Member Data Documentation

std::vector<TString> PndTrackSmearTask::fInputTrackBranches
private

Definition at line 55 of file PndTrackSmearTask.h.

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

TVector3 PndTrackSmearTask::fMomSigma
private

Momentum smearing sigma (dp/p)

Definition at line 60 of file PndTrackSmearTask.h.

Referenced by SetMomSmearing(), and SmearMom().

std::vector<TString> PndTrackSmearTask::fOutputTrackBranches
private

Definition at line 56 of file PndTrackSmearTask.h.

Referenced by AddInputTrackBranch(), and Init().

std::vector<TClonesArray*> PndTrackSmearTask::fOutputTracks
private

Definition at line 58 of file PndTrackSmearTask.h.

Referenced by Exec(), and Init().

std::vector<TClonesArray*> PndTrackSmearTask::fTracks
private

Definition at line 57 of file PndTrackSmearTask.h.

Referenced by Exec(), and Init().


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