9 #include "FairRootManager.h"
10 #include "FairRunAna.h"
11 #include "FairRuntimeDb.h"
13 #include "TClonesArray.h"
16 #include "TParticlePDG.h"
30 fOriginalHitArray = NULL;
35 fOriginalHitArray = OriginalHitArray;
41 fOriginalHitArray = OriginalHitArray;
48 delete fOriginalHitArray;
54 if(fOriginalHitArray == NULL)
return kFALSE;
55 if(OverlapHitArray == NULL)
return kFALSE;
56 fOverlapHitArray = OverlapHitArray;
57 fOverlapHitArray->Clear();
60 std::vector<int> firingtubes;
61 std::vector<int>::iterator it;
64 std::map<int, int> maptubetohit;
66 Int_t
nhits = fOriginalHitArray->GetEntriesFast();
68 for(
int ihit = 0; ihit <
nhits; ihit++) {
76 it = find(firingtubes.begin(), firingtubes.end(), tubeid);
79 if(it == firingtubes.end()) {
80 firingtubes.push_back(tubeid);
81 maptubetohit[tubeid] = ihit;
85 int oldhitid = maptubetohit[tubeid];
92 if(thisiso < oldiso) {
93 maptubetohit[tubeid] = ihit;
100 for(
size_t itube = 0; itube < firingtubes.size(); itube++) {
101 int tubeid = firingtubes[itube];
102 int hitid = maptubetohit[tubeid];
103 Bool_t wrote = WriteToOutputHit(hitid);
104 if(wrote == kFALSE) cout <<
"error in writing hit " << hitid << endl;
112 if(!hit)
return kFALSE;
113 TClonesArray& clref = *fOverlapHitArray;
114 Int_t size = clref.GetEntriesFast();
117 hitnew->SetDetectorID(hit->GetDetectorID());
Bool_t OverlapSimultaneousSignals(TClonesArray *OverlapHitArray)
Double_t GetIsochrone() const
Bool_t WriteToOutputHit(Int_t hitid)