8 #include "FairRootManager.h"
9 #include "FairRunAna.h"
10 #include "FairRuntimeDb.h"
12 #include "TClonesArray.h"
15 #include "TParticlePDG.h"
29 fOriginalHitArray = NULL;
34 fOriginalHitArray = OriginalHitArray;
40 fOriginalHitArray = OriginalHitArray;
47 delete fOriginalHitArray;
53 if(fOriginalHitArray == NULL)
return kFALSE;
54 if(OverlapHitArray == NULL)
return kFALSE;
55 fOverlapHitArray = OverlapHitArray;
56 fOverlapHitArray->Clear();
59 std::vector<int> firingtubes;
60 std::vector<int>::iterator it;
63 std::map<int, int> maptubetohit;
65 Int_t
nhits = fOriginalHitArray->GetEntriesFast();
67 for(
int ihit = 0; ihit <
nhits; ihit++) {
75 it = find(firingtubes.begin(), firingtubes.end(), tubeid);
78 if(it == firingtubes.end()) {
79 firingtubes.push_back(tubeid);
80 maptubetohit[tubeid] = ihit;
84 int oldhitid = maptubetohit[tubeid];
91 if(thisiso < oldiso) {
92 maptubetohit[tubeid] = ihit;
99 for(
size_t itube = 0; itube < firingtubes.size(); itube++) {
100 int tubeid = firingtubes[itube];
101 int hitid = maptubetohit[tubeid];
102 Bool_t wrote = WriteToOutputHit(hitid);
103 if(wrote == kFALSE) cout <<
"error in writing hit " << hitid << endl;
111 if(!hit)
return kFALSE;
112 TClonesArray& clref = *fOverlapHitArray;
113 Int_t size = clref.GetEntriesFast();
116 hitnew->SetDetectorID(hit->GetDetectorID());
Bool_t WriteToOutputHit(Int_t hitid)
ClassImp(PndSttSignalOverlap)
Double_t GetIsochrone() const
Bool_t OverlapSimultaneousSignals(TClonesArray *OverlapHitArray)
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)