29 , fStoreAllEndpoints(kTRUE)
30 , fStoreIntermediate(kTRUE)
110 std::cout <<
"-------------------------------------" << std::endl;
111 std::cout <<
"StartLink: " << startLink;
116 GetNextStage(startLink, stopStageId);
118 std::cout <<
"FinalStage: " << fFinalStage << std::endl;
136 for (
int i = 0; i < startStage.
GetNLinks(); i++) {
139 if (actualLink.
GetType() < 0) {
140 if (fStoreAllEndpoints) {
141 AddToFinalStage(actualLink, 1);
144 std::cout <<
"ActualLink.Type < 0" << std::endl;
145 std::cout <<
"FinalStage: " << fFinalStage << std::endl;
146 std::cout <<
"---------------------" << std::endl;
149 std::cout << std::endl;
151 }
else if (actualLink.
GetType() == stopStage) {
152 AddToFinalStage(actualLink, 1);
154 std::cout <<
"ActualLink.Type == stopStage" << std::endl;
155 std::cout <<
"FinalStage: " << fFinalStage << std::endl;
156 std::cout <<
"---------------------" << std::endl;
159 std::cout << std::endl;
161 }
else if (actualLink.
GetType() == fUltimateStage) {
162 if (fStoreAllEndpoints) {
163 AddToFinalStage(actualLink, 1);
166 std::cout <<
"ActualLink.Type == UltimateStage" << std::endl;
167 std::cout <<
"FinalStage: " << fFinalStage << std::endl;
168 std::cout <<
"---------------------" << std::endl;
171 std::cout << std::endl;
174 if (fStoreAllEndpoints) {
175 AddToFinalStage(actualLink, 1);
178 std::cout <<
"ActualLink.Type == EventHeader" << std::endl;
179 std::cout <<
"FinalStage: " << fFinalStage << std::endl;
180 std::cout <<
"---------------------" << std::endl;
183 std::cout << std::endl;
187 if (tempStage == 0) {
188 if (fStoreAllEndpoints) {
189 AddToFinalStage(actualLink, 1);
192 std::cout <<
"TempStage == 0" << std::endl;
193 std::cout <<
"FinalStage: " << fFinalStage << std::endl;
194 std::cout <<
"---------------------" << std::endl;
197 std::cout << std::endl;
204 std::cout << actualLink;
205 std::cout <<
" --> " << *tempStage;
208 if (fStoreAllEndpoints) {
209 AddToFinalStage(actualLink, 1);
212 std::cout <<
"tempStage->GetNLinks == 0" << std::endl;
213 std::cout <<
"FinalStage: " << fFinalStage << std::endl;
214 std::cout <<
"---------------------" << std::endl;
217 if (fStoreIntermediate) {
218 AddToFinalStage(actualLink, 1);
220 double tempStageWeight = 1;
226 std::cout <<
"StartLinkWeight " << startLinkWeight << std::endl;
231 if ((tempStageWeight * startLinkWeight) == 0) {
235 std::cout <<
" NLinks: " << tempStage->
GetNLinks() <<
" ";
236 std::cout <<
"AddAllWeights: " << startLinkWeight / startStage.
GetNLinks() << std::endl;
241 std::cout <<
"MultiplyAllWeights: " << startLinkWeight << std::endl;
248 GetNextStage(*tempStage, stopStage);
253 void FairMCDataCrawler::AddToFinalStage(
FairLink hitPair, Float_t mult) { fFinalStage.
AddLink(hitPair,
false, mult); }
virtual ~FairMCDataCrawler()
virtual void InitDataObjects()=0
TObject * GetCloneOfLinkData(const FairLink link)
virtual void AddAllWeights(Double_t weight)
Adds weight to all Links.
static FairRootManager * Instance()
virtual void ResetLinks()
Clears fLinks.
ClassImp(FairEventBuilder)
virtual void MultiplyAllWeights(Double_t weight)
Multiplies all Links with weight.
FairMultiLinkedData * GetEntry(Int_t fileId, Int_t eventNr, Int_t type, Int_t index)
FairMultiLinkedData GetInfo(FairMultiLinkedData startLink, TString stopStage)
TString GetBranchName(Int_t id)
virtual Int_t GetNLinks() const
returns the number of stored links
virtual FairLink GetLink(Int_t pos) const
returns the FairLink at the given position
virtual void AddLink(FairLink link, Bool_t bypass=kFALSE, Float_t mult=1.0)
Int_t GetBranchId(TString const &BrName)