10 #include <FairRootManager.h> 
   13 #include "TClonesArray.h" 
   66         for (
int i = 0; 
i < cands.second->GetEntries(); 
i++){
 
   69             for (
auto hit : hits) {
 
   78     FairRootManager* ioman = FairRootManager::Instance();
 
   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;
 
   93     FairRootManager* ioman = FairRootManager::Instance();
 
   95     std::cout << 
"PndUnassignedHitsTask::RegisterTrackCands" << std::endl;
 
   98         cand.second = (TClonesArray*) ioman->GetObject(cand.first);
 
  100         fTrackCands[cand.first] = cand.second;
 
  106     std::set<FairLink> usedHits = 
fHitsInTracks.GetLinksWithType(FairRootManager::Instance()->GetBranchId(branchName)).GetLinks();
 
  110     std::vector<int> unusedHits;
 
  111     for (
int i = 0; 
i < hits->GetEntries(); 
i++){
 
  112         unusedHits.push_back(
i);
 
  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){
 
  119         unusedHits.erase(unusedHits.begin()+reviter->GetIndex());
 
  122     std::cout << 
"Size of UnusedHits: " << unusedHits.size() << std::endl;
 
  124     if (unusedHits.size() > 0){
 
  129     std::cout << 
"Size of UnassignedBranch: " << 
fUnassignedHitBranches[branchName += 
"Unassigned"]->GetEntries() << std::endl;
 
  134     TString outputBranchName = branchName;
 
  135     outputBranchName += 
"Unassigned";
 
  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++){
 
  141         FairHit* myHit = (FairHit*)
fHitBranches[branchName]->
At(unusedHits[
i]);
 
  142         if (myHit == 
nullptr) 
continue;
 
  144         if (branchName.Contains(
"STTHit")){
 
  146         } 
else if (branchName.Contains(
"GEMHit")){
 
  148         } 
else if (branchName.Contains(
"MVDHitsPixel") || branchName.Contains(
"MVDHitsStrip")){
 
  150         } 
else if (branchName.Contains(
"FTSHit")){
 
std::vector< PndTrackCandHit > GetSortedHits()
FairMultiLinkedData fHitsInTracks
virtual void Exec(Option_t *opt)
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)
ClassImp(PndUnassignedHitsTask)
virtual void SetParContainers()
std::map< TString, TClonesArray * > fHitBranches
virtual void AddHitBranch(TString branchName)
std::map< TString, TClonesArray * > fTrackCands
void RegisterTrackCands()
std::map< TString, TClonesArray * > fUnassignedHitBranches
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)
virtual InitStatus Init()
void FillUnassignedHits(TString branchName)
virtual void AddTrackCands(TString trackCandName)
void FillOutputBranch(TString branchName, std::vector< int > unusedHits)