#include <TStopwatch.h>
#include <TSystem.h>
#include <TVirtualMC.h>
+#include <TParticle.h>
#include <TROOT.h>
#include "AliLog.h"
//
// write tracke reference for track which is dissapearing - MI
if (gMC->IsTrackDisappeared()) {
- if (gMC->Etot()>0.05) AddTrackReference(GetCurrentTrackNumber());
+ if (gMC->Etot()>0.05) AddTrackReference(GetCurrentTrackNumber(),
+ AliTrackReference::kDisappeared);
}
//Call the appropriate stepping routine;
//_______________________________________________________________________
void AliMC::EnergySummary()
{
- //
+ //e
// Print summary of deposited energy
//
else
runloader->MakeStack();//or make a new one
- if(gAlice->Lego() == 0x0)
+// runloader->Stack()->BeginEvent();
+
+if(gAlice->Lego() == 0x0)
{
AliDebug(1, "fRunLoader->MakeTree(K)");
runloader->MakeTree("K");
{
AliDebug(2, Form("%s->MakeBranch(H)",detector->GetName()));
detector->MakeBranch("H");
- AliDebug(2, Form("%s->MakeBranchTR()",detector->GetName()));
- detector->MakeBranchTR();
- AliDebug(2, Form("%s->SetTreeAddress()",detector->GetName()));
- detector->SetTreeAddress();
}
// make branch for AliRun track References
TTree * treeTR = runloader->TreeTR();
// make branch for central track references
if (!fTrackReferences) fTrackReferences = new TClonesArray("AliTrackReference",0);
TBranch *branch;
- branch = treeTR->Branch("AliRun",&fTrackReferences);
+ branch = treeTR->Branch("TrackReferences",&fTrackReferences);
branch->SetAddress(&fTrackReferences);
}
//
TObjArray* modules = gAlice->Modules();
TIter nextmod(modules);
- AliModule *detector;
- while((detector = dynamic_cast<AliModule*>(nextmod()))) {
+ AliDetector *detector;
+ while((detector = dynamic_cast<AliDetector*>(nextmod()))) {
detector->RemapTrackHitIDs(stack->TrackLabelMap());
- detector->RemapTrackReferencesIDs(stack->TrackLabelMap());
}
//
RemapTrackReferencesIDs(stack->TrackLabelMap());
}
//_______________________________________________________________________
-void AliMC::AddTrackReference(Int_t label){
+AliTrackReference* AliMC::AddTrackReference(Int_t label, Int_t id)
+{
//
// add a trackrefernce to the list
if (!fTrackReferences) {
AliError("Container trackrefernce not active");
- return;
+ return NULL;
}
+ Int_t primary = GetPrimary(label);
+ Particle(primary)->SetBit(kKeepBit);
+
Int_t nref = fTrackReferences->GetEntriesFast();
TClonesArray &lref = *fTrackReferences;
- new(lref[nref]) AliTrackReference(label);
+ return new(lref[nref]) AliTrackReference(label, id);
}
// Reset all references
//
if (fTrackReferences) fTrackReferences->Clear();
-
- TIter next(gAlice->Modules());
- AliModule *detector;
- while((detector = dynamic_cast<AliModule*>(next()))) {
- detector->ResetTrackReferences();
- }
}
void AliMC::RemapTrackReferencesIDs(Int_t *map)