AliRunLoader::~AliRunLoader()
{
//dtor
- if (fgRunLoader == this) fgRunLoader = 0x0;
+
UnloadHeader();
UnloadgAlice();
-
+ if (fgRunLoader == this) fgRunLoader = 0x0;
if(fLoaders) {
fLoaders->SetOwner();
delete fLoaders;
//fEventFolder is deleted by the way of removing - TopAliceFolder owns it
if( fCTrigger ) delete fCTrigger;
- delete fHeader;
delete fStack;
delete fGAFile;
}
// create the CTP Trigger output file and tree
TFile* file = gROOT->GetFile( fgkDefaultTriggerFileName );
if( !file ) {
- file = TFile::Open( gSystem->ConcatFileName( fUnixDirName.Data(), fgkDefaultTriggerFileName.Data() ), "RECREATE" ) ;
+ char* tmp = gSystem->ConcatFileName( fUnixDirName.Data(), fgkDefaultTriggerFileName.Data() );
+ file = TFile::Open(tmp , "RECREATE" ) ;
+ delete[] tmp;
}
file->cd();
Int_t AliRunLoader::LoadTrigger(Option_t* option)
{
//Load treeCT
-
+ static Bool_t warned = kFALSE;
if( TreeCT() ) {
- AliWarning("Trigger is already loaded. Nothing done");
+ if (!warned) AliWarning("Trigger is already loaded. Nothing done. Message will not be repeated.");
+ warned = kTRUE;
return 0;
}
return 1;
}
// get the CTP Trigger output file and tree
- TString trgfile = gSystem->ConcatFileName( fUnixDirName.Data(),
- fgkDefaultTriggerFileName.Data() );
+ char* tmp = gSystem->ConcatFileName( fUnixDirName.Data(),
+ fgkDefaultTriggerFileName.Data() );
+ TString trgfile(tmp);
+ delete[] tmp;
+
TFile* file = gROOT->GetFile( trgfile );
if( !file ) {
file = TFile::Open( trgfile, option ) ;
//run loader object
char loadername[256];
- sprintf(loadername, "%sLoader", detname);
+ snprintf(loadername, 255, "%sLoader", detname);
AliLoader* loader = GetLoader(loadername);
if (!loader) {
AliError(Form("No loader for %s found", detname));
char buff[10];
char dets [200];
- strcpy(dets,namelist);//compiler cries when char* = const Option_t*;
- dets[strlen(dets)+1] = '\n';//set endl at the end of string
+ strncpy(dets,namelist,199);//compiler cries when char* = const Option_t*;
+ // dets[strlen(dets)+1] = '\n';//set endl at the end of string
char* pdet = dets;
Int_t tmp;
for(;;)
{
- tmp = sscanf(pdet,"%s",buff);//read the string from the input string pdet into buff
+ tmp = sscanf(pdet,"%9s",buff);//read the string from the input string pdet into buff
if ( (buff[0] == 0) || (tmp == 0) ) break; //if not read
pdet = strstr(pdet,buff) + strlen(buff);//move the input pointer about number of bytes (letters) read
//removes TreeE from folder and deletes it
// as well as fHeader object
CleanHeader();
- delete fHeader;
fHeader = 0x0;
}
/**************************************************************************/