void AliTransportMonitor::AliTransportMonitorVol::Merge(AliTransportMonitorVol* volM)
{
+ //
// Merging
+ //
fTotalTime = (fTotalTime + volM->GetTotalTime());
if (fTimeRZ && volM->GetHistogram()) {
fTimeRZ->Add(volM->GetHistogram());
}
Int_t ntypes = volM->GetNtypes();
- Int_t ntypes2 = GetNtypes();
for (Int_t i = 0; i < ntypes; i++) {
Int_t pdg = volM->GetPDG(i);
- //PMonData &data = GetPMonData(pdg);
- //PMonData &dataM = volM->GetPMonData(pdg);
- //data.fEdt += dataM.fEdt;
- //data.fTime += dataM.fTime;
+ PMonData &data = GetPMonData(pdg);
+ data.fEdt += (volM->GetEmed(i) * volM->GetTotalTime());
+ data.fTime += (volM->GetTime(i));
}
}
timeperpart[i] = volMon->GetTime(i);
timepervol += timeperpart[i];
}
- printf("Volume %s: Transport time: %g%% of %g [s]\n", volMon->GetName(), 100.*timepervol/fTotalTime, fTotalTime);
+ printf("Volume %s: Transport time: %g%% of %g %g [s]\n", volMon->GetName(), 100.*timepervol/fTotalTime, fTotalTime,
+ volMon->GetTotalTime());
TMath::Sort(ntypes, timeperpart, isort, kTRUE);
TString particle;
TDatabasePDG *pdgDB = TDatabasePDG::Instance();
//______________________________________________________________________________
void AliTransportMonitor::Merge(AliTransportMonitor* mergeMon)
{
+
// merge with monitor
+ if (!fVolumeMon)
+ {
+ TObjArray* arr = mergeMon->GetVolumes();
+ Int_t nvol = arr->GetEntriesFast();
+ fVolumeMon = new TObjArray(nvol);
+ fVolumeMon->SetOwner();
+ for (Int_t i = 0; i < nvol; i++) {
+ AliTransportMonitorVol *volMon = new AliTransportMonitorVol();
+ volMon->SetName(arr->At(i)->GetName());
+ fVolumeMon->Add(volMon);
+ }
+ } // first time
+
+
Int_t n = fVolumeMon->GetEntriesFast();
TObjArray* mergeVols = mergeMon->GetVolumes();
fTotalTime = 0;
Double_t fEdt; // Energy * dt integral
Double_t fTime; // Total transport time for the particle in this volume
AliPMonData() : fPDG(0), fEdt(0), fTime(0) {}
- void Merge(AliPMonData* pdata) {fTime = 0.5*(fTime+pdata->fTime); fEdt = 0.5 * (fEdt+pdata->fEdt);}
virtual ~AliPMonData() {}
ClassDef(AliPMonData, 1) // Basic monitoring info structure
};