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

#include <PndUnassignedHitsTask.h>

Inheritance diagram for PndUnassignedHitsTask:
PndPersistencyTask

Public Member Functions

 PndUnassignedHitsTask ()
 
virtual ~PndUnassignedHitsTask ()
 
virtual void SetParContainers ()
 
virtual InitStatus Init ()
 
virtual void Exec (Option_t *opt)
 
virtual void AddHitBranch (TString branchName)
 
virtual void AddTrackCands (TString trackCandName)
 
void SetVerbose (Int_t verbose)
 
void SetPersistency (Bool_t val=kTRUE)
 
Bool_t GetPersistency ()
 

Protected Member Functions

void RegisterBranches ()
 
void RegisterTrackCands ()
 
void FillTrackCands ()
 
void FillUnassignedHits (TString branchName)
 
void FillOutputBranch (TString branchName, std::vector< int > unusedHits)
 

Private Member Functions

 ClassDef (PndUnassignedHitsTask, 1)
 

Private Attributes

std::map< TString, TClonesArray * > fHitBranches
 
std::map< TString, TClonesArray * > fUnassignedHitBranches
 
std::map< TString, TClonesArray * > fTrackCands
 
FairMultiLinkedData fHitsInTracks
 

Detailed Description

Definition at line 20 of file PndUnassignedHitsTask.h.

Constructor & Destructor Documentation

PndUnassignedHitsTask::PndUnassignedHitsTask ( )
inline

Definition at line 22 of file PndUnassignedHitsTask.h.

22 : PndPersistencyTask("Unassigned Hits Task"){ };
virtual PndUnassignedHitsTask::~PndUnassignedHitsTask ( )
inlinevirtual

Definition at line 23 of file PndUnassignedHitsTask.h.

23 {};

Member Function Documentation

void PndUnassignedHitsTask::AddHitBranch ( TString  branchName)
virtual

Definition at line 54 of file PndUnassignedHitsTask.cxx.

References fHitBranches.

Referenced by Init().

54  {
55  fHitBranches[branchName] = nullptr;
56 }
std::map< TString, TClonesArray * > fHitBranches
void PndUnassignedHitsTask::AddTrackCands ( TString  trackCandName)
virtual

Definition at line 58 of file PndUnassignedHitsTask.cxx.

References fTrackCands.

58  {
59  fTrackCands[trackCandName] = nullptr;
60 }
std::map< TString, TClonesArray * > fTrackCands
PndUnassignedHitsTask::ClassDef ( PndUnassignedHitsTask  ,
 
)
private
void PndUnassignedHitsTask::Exec ( Option_t *  opt)
virtual

Virtual method Exec

Definition at line 44 of file PndUnassignedHitsTask.cxx.

References fHitBranches, FillTrackCands(), and FillUnassignedHits().

45 {
47 // std::cout << "PndUnassignedHitsTask::Exec TrackCands filled!" << std::endl;
48  for(auto branch : fHitBranches){
49 // std::cout << "PndUnassignedHitsTask::Exec Fill unassigned hits: " << branch.first << std::endl;
50  FillUnassignedHits(branch.first);
51  }
52 }
std::map< TString, TClonesArray * > fHitBranches
void FillUnassignedHits(TString branchName)
void PndUnassignedHitsTask::FillOutputBranch ( TString  branchName,
std::vector< int >  unusedHits 
)
protected

Definition at line 132 of file PndUnassignedHitsTask.cxx.

References At, fHitBranches, fUnassignedHitBranches, i, and TString.

Referenced by FillUnassignedHits().

132  {
133 // std::cout << "FillOutputBranch: " << branchName << std::endl;
134  TString outputBranchName = branchName;
135  outputBranchName += "Unassigned";
136  TClonesArray* outputArray = fUnassignedHitBranches[outputBranchName];
137  std::cout << "OutputArray: " << outputArray << std::endl;
138  std::cout << "HitBranch size: " << fHitBranches[branchName]->GetEntries() << std::endl;
139  for (unsigned int i = 0; i < unusedHits.size(); i++){
140 // std::cout << i << " : " << unusedHits[i] << std::endl;
141  FairHit* myHit = (FairHit*)fHitBranches[branchName]->At(unusedHits[i]);
142  if (myHit == nullptr) continue;
143 // std::cout << *myHit << std::endl;
144  if (branchName.Contains("STTHit")){
145  new((*outputArray)[outputArray->GetEntries()]) PndSttHit(*(PndSttHit*)myHit);
146  } else if (branchName.Contains("GEMHit")){
147  new((*outputArray)[outputArray->GetEntries()]) PndGemHit(*(PndGemHit*)myHit);
148  } else if (branchName.Contains("MVDHitsPixel") || branchName.Contains("MVDHitsStrip")){
149  new((*outputArray)[outputArray->GetEntries()]) PndSdsHit(*(PndSdsHit*)myHit);
150  } else if (branchName.Contains("FTSHit")){
151  new((*outputArray)[outputArray->GetEntries()]) PndFtsHit(*(PndFtsHit*)myHit);
152  }
153  }
154 // fUnassignedHitBranches[branchName += "Unassigned"]->AbsorbObjects(fHitBranches[branchName],0,hits->GetEntries()-1);
155 }
Int_t i
Definition: run_full.C:25
cout<< "blue = Monte Carlo "<< endl;cout<< "red = Helix Hit "<< endl;cout<< "green = Center Of Tubes "<< endl;for(Int_t k=0;k< track->GetEntriesFast();k++){PndSttTrack *stttrack=(PndSttTrack *) track-> At(k)
Definition: checkhelixhit.C:56
std::map< TString, TClonesArray * > fHitBranches
std::map< TString, TClonesArray * > fUnassignedHitBranches
void PndUnassignedHitsTask::FillTrackCands ( )
protected

Definition at line 62 of file PndUnassignedHitsTask.cxx.

References fHitsInTracks, fTrackCands, PndTrackCand::GetSortedHits(), hit(), hits, and i.

Referenced by Exec().

63 {
64  fHitsInTracks.Reset();
65  for (auto cands : fTrackCands){
66  for (int i = 0; i < cands.second->GetEntries(); i++){
67  PndTrackCand* cand = (PndTrackCand*)cands.second->At(i);
68  std::vector<PndTrackCandHit> hits = cand->GetSortedHits();
69  for (auto hit : hits) {
70  fHitsInTracks.AddLink(hit, kFALSE);
71  }
72  }
73  }
74 }
Int_t i
Definition: run_full.C:25
std::vector< PndTrackCandHit > GetSortedHits()
FairMultiLinkedData fHitsInTracks
std::map< TString, TClonesArray * > fTrackCands
int hit(Int_t nEvents=0, TString inFile="sim.root", TString parFile="par.root", TString inDigi="digi.root", TString outFile="hit.root", Int_t timeBased=0)
Definition: hit.C:1
CbmHit * hits[nHits]
Definition: RiemannTest.C:19
void PndUnassignedHitsTask::FillUnassignedHits ( TString  branchName)
protected

Definition at line 105 of file PndUnassignedHitsTask.cxx.

References fHitBranches, fHitsInTracks, FillOutputBranch(), fUnassignedHitBranches, hits, and i.

Referenced by Exec().

105  {
106  std::set<FairLink> usedHits = fHitsInTracks.GetLinksWithType(FairRootManager::Instance()->GetBranchId(branchName)).GetLinks();
107 // std::cout << "PndUnassignedHitsTask::FillUnassignedHits " << fHitsInTracks.GetLinksWithType(FairRootManager::Instance()->GetBranchId(branchName)) << std::endl;
108  TClonesArray* hits = fHitBranches[branchName];
109 
110  std::vector<int> unusedHits;
111  for (int i = 0; i < hits->GetEntries(); i++){
112  unusedHits.push_back(i);
113  }
114 
115  std::cout << "Hits: " << hits << std::endl;
116  std::cout << "Size of Hits: " << hits->GetEntries() << std::endl;
117  for (auto reviter = usedHits.rbegin(); reviter != usedHits.rend(); ++reviter){
118 // std::cout << "Index to remove: " << reviter->GetIndex() << std::endl;
119  unusedHits.erase(unusedHits.begin()+reviter->GetIndex());
120  }
121 
122  std::cout << "Size of UnusedHits: " << unusedHits.size() << std::endl;
123 
124  if (unusedHits.size() > 0){
125 // std::cout << "OutputBranch: " << branchName << " " << fUnassignedHitBranches[branchName += "Unassigned"] << std::endl;
126  FillOutputBranch(branchName, unusedHits);
127  }
128 
129  std::cout << "Size of UnassignedBranch: " << fUnassignedHitBranches[branchName += "Unassigned"]->GetEntries() << std::endl;
130 }
Int_t i
Definition: run_full.C:25
FairMultiLinkedData fHitsInTracks
std::map< TString, TClonesArray * > fHitBranches
std::map< TString, TClonesArray * > fUnassignedHitBranches
CbmHit * hits[nHits]
Definition: RiemannTest.C:19
void FillOutputBranch(TString branchName, std::vector< int > unusedHits)
Bool_t PndPersistencyTask::GetPersistency ( )
inlineinherited

Definition at line 32 of file PndPersistencyTask.h.

References PndPersistencyTask::fPersistency.

Referenced by PndLmdPixelHitProducerFast::GetPersistance(), PndMdtDigitization::Init(), PndMdtHitProducerIdeal::Init(), PndMdtClusterTask::Init(), PndFtsHitProducerRealFast::Init(), PndRichHitProducer::Init(), PndSttHitProducerRealFast::Init(), PndDiscTaskReconstruction::Init(), PndSttHelixHitProducer::Init(), PndDiscTaskPID::Init(), PndIdealTrackFinder::Init(), PndSttMvdGemTracking::Init(), PndMdtTrkProducer::Init(), PndFtsHitProducerRealFull::Init(), PndLmdPixelClusterTask::Init(), PndSttHitProducerRealFull::Init(), PndLmdStripClusterTask::Init(), PndEmcApdHitProducer::Init(), PndMissingPzCleanerTask::Init(), PndEmcMakeRecoHit::Init(), PndEmcMakeClusterOnline::Init(), PndTrackSmearTask::Init(), PndEmcFWEndcapTimebasedWaveforms::Init(), PndSttHitProducerIdeal::Init(), PndEmcFWEndcapDigi::Init(), PndFtsHitProducerIdeal::Init(), PndEmcMakeCluster::Init(), PndMdtPointsToWaveform::Init(), PndDiscTaskDigitization::Init(), PndEmcMakeDigi::Init(), PndSdsTimeWalkCorrTask::Init(), PndLmdPixelHitProducerFast::Init(), PndDrcHitFinder::Init(), PndRichHitFinder::Init(), PndEmcMakeCorr::Init(), PndFtofHitProducerIdeal::Init(), PndEmcHitsToWaveform::Init(), PndSciTDigiTask::Init(), PndDrcHitProducerIdeal::Init(), PndSdsHitProducerIdeal::Init(), PndSciTHitProducerIdeal::Init(), PndEmcHitProducer::Init(), PndRecoMultiKalmanTask2::Init(), PndDrcHitProducerReal::Init(), PndDskFLGHitProducerIdeal::Init(), PndEmcTmpWaveformToDigi::Init(), PndDrcDigiTask::Init(), PndEmcWaveformToDigi::Init(), PndSttMatchTracks::Init(), PndEmcWaveformToCalibratedDigi::Init(), PndTrkTracking2::Init(), PndSttFindTracks::Init(), PndEmcMultiWaveformToCalibratedDigi::Init(), PndDrcTimeDigiTask::Init(), PndRecoKalmanTask2::Init(), PndEmcExpClusterSplitter::Init(), PndSdsNoiseProducer::Init(), PndFtsHoughTrackerTask::Init(), PndEmcPhiBumpSplitter::Init(), PndSdsHybridHitProducer::Init(), PndSdsIdealRecoTask::Init(), PndRecoMultiKalmanTask::Init(), PndSdsIdealClusterTask::Init(), PndRecoKalmanTask::Init(), PndSdsStripHitProducerDif::Init(), PndSdsStripHitProducer::Init(), PndGemDigitize::Init(), PndGemFindHits::Init(), PndSdsPixelClusterTask::Init(), PndSdsStripClusterTask::Init(), PndMvdGemTrackFinderOnHits::Init(), PndBarrelTrackFinder::Init(), PndEmcFullDigiTask::PndEmcFullDigiTask(), PndEmcMakeBump::PndEmcMakeBump(), RegisterBranches(), PndMvdClusterTask::SetPersistance(), PndMvdDigiTask::SetPersistance(), PndEmcMakeBump::SetStorageOfData(), and PndEmcFullDigiTask::StoreDigi().

32 { return fPersistency; }
InitStatus PndUnassignedHitsTask::Init ( )
virtual

Definition at line 26 of file PndUnassignedHitsTask.cxx.

References AddHitBranch(), fHitBranches, RegisterBranches(), and RegisterTrackCands().

26  {
27 
28 
29  if (fHitBranches.size() == 0){
30  AddHitBranch("MVDHitsPixel");
31  AddHitBranch("MVDHitsStrip");
32  AddHitBranch("STTHit");
33  AddHitBranch("GEMHit");
34  AddHitBranch("FTSHit");
35  }
36 
39 
40  return kSUCCESS;
41 
42 }
std::map< TString, TClonesArray * > fHitBranches
virtual void AddHitBranch(TString branchName)
void PndUnassignedHitsTask::RegisterBranches ( )
protected

Definition at line 76 of file PndUnassignedHitsTask.cxx.

References fHitBranches, fUnassignedHitBranches, PndPersistencyTask::GetPersistency(), and TString.

Referenced by Init().

77 {
78  FairRootManager* ioman = FairRootManager::Instance();
79 
80  for (auto branch : fHitBranches) {
81  branch.second = (TClonesArray*)ioman->GetObject(branch.first);
82  TString unassignedName = branch.first;
83  unassignedName += "Unassigned";
84  fHitBranches[branch.first] = branch.second;
85  std::cout << "PndUnassignedHitsTask::RegisterBranches " << branch.first << " " << branch.second << std::endl;
86  fUnassignedHitBranches[unassignedName] = ioman->Register(unassignedName, branch.second->GetClass()->GetName(), "UnassignedHits", GetPersistency());
87  }
88 
89 }
std::map< TString, TClonesArray * > fHitBranches
std::map< TString, TClonesArray * > fUnassignedHitBranches
void PndUnassignedHitsTask::RegisterTrackCands ( )
protected

Definition at line 91 of file PndUnassignedHitsTask.cxx.

References fTrackCands.

Referenced by Init().

92 {
93  FairRootManager* ioman = FairRootManager::Instance();
94 
95  std::cout << "PndUnassignedHitsTask::RegisterTrackCands" << std::endl;
96  for (auto cand : fTrackCands)
97  {
98  cand.second = (TClonesArray*) ioman->GetObject(cand.first);
99 // std::cout << "PndUnassignedHitsTask::RegisterTrackCands " << cand.first << " " << cand.second << std::endl;
100  fTrackCands[cand.first] = cand.second;
101  }
102 
103 }
std::map< TString, TClonesArray * > fTrackCands
void PndUnassignedHitsTask::SetParContainers ( )
virtual

Virtual method Init

Definition at line 23 of file PndUnassignedHitsTask.cxx.

23  {
24 }
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
void PndUnassignedHitsTask::SetVerbose ( Int_t  verbose)
inline

Definition at line 35 of file PndUnassignedHitsTask.h.

References fVerbose, and verbose.

35 { fVerbose = verbose;};
int fVerbose
Definition: poormantracks.C:24
#define verbose

Member Data Documentation

std::map<TString, TClonesArray*> PndUnassignedHitsTask::fHitBranches
private
FairMultiLinkedData PndUnassignedHitsTask::fHitsInTracks
private

Definition at line 48 of file PndUnassignedHitsTask.h.

Referenced by FillTrackCands(), and FillUnassignedHits().

std::map<TString, TClonesArray*> PndUnassignedHitsTask::fTrackCands
private

Definition at line 47 of file PndUnassignedHitsTask.h.

Referenced by AddTrackCands(), FillTrackCands(), and RegisterTrackCands().

std::map<TString, TClonesArray*> PndUnassignedHitsTask::fUnassignedHitBranches
private

Definition at line 46 of file PndUnassignedHitsTask.h.

Referenced by FillOutputBranch(), FillUnassignedHits(), and RegisterBranches().


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