// Expand the path and create the pathname
Char_t* systemPath = gSystem->ExpandPathName(path);
- sprintf(pathname, "%s/%s", systemPath, nameC);
+ snprintf(pathname, fkMaxMacroPathNameLength, "%s/%s", systemPath, nameC);
delete systemPath;
systemPath = 0;
// A.B. gROOT->Reset();
// Clear old data and re-allocate
- if (fDataTree == 0x0){
+ if (fDataTree == NULL){
TDirectory *cwd = gDirectory;
fDataTree = new TTreeSRedirector(Form("/tmp/ListAnalyserMacroData_%s.root", gSystem->Getenv("USER")));
cwd->cd();
fDataFromMacroList->TCollection::SetOwner(kTRUE);
fHistoDataSelected = 0;
+ TGeneralMacroData* macro(NULL);
+ TString* procCmds = new TString[procIterator->GetEntries()];
+ AliEveListAnalyserMacroType* mProcType = new AliEveListAnalyserMacroType[procIterator->GetEntries()];
+ TClass** mProcObjectType = new TClass*[procIterator->GetEntries()];
+ TClass** mProcObjectType2 = new TClass*[procIterator->GetEntries()];
- TGeneralMacroData* macro = 0;
-
- TString* procCmds = 0;
- AliEveListAnalyserMacroType* mProcType = 0;
- if (procIterator->GetEntries() > 0) {
- procCmds = new TString[procIterator->GetEntries()];
- mProcType = new AliEveListAnalyserMacroType[procIterator->GetEntries()];
- }
-
- TClass** mProcObjectType = 0;
- TClass** mProcObjectType2 = 0;
- if (procIterator->GetEntries() > 0) {
- mProcObjectType = new TClass*[procIterator->GetEntries()];
- mProcObjectType2 = new TClass*[procIterator->GetEntries()];
- }
-
- TString* selCmds = 0;
- AliEveListAnalyserMacroType* mSelType = 0;
- if (selIterator->GetEntries() > 0) {
- selCmds = new TString[selIterator->GetEntries()];
- mSelType = new AliEveListAnalyserMacroType[selIterator->GetEntries()];
- }
-
- TClass** mSelObjectType = 0;
- TClass** mSelObjectType2 = 0;
- if (selIterator->GetEntries() > 0) {
- mSelObjectType = new TClass*[selIterator->GetEntries()];
- mSelObjectType2 = new TClass*[selIterator->GetEntries()];
- }
+ TString* selCmds(NULL);
+ AliEveListAnalyserMacroType* mSelType(NULL);
+ TClass** mSelObjectType(NULL);
+ TClass** mSelObjectType2(NULL);
Bool_t selectedByCorrSelMacro = kFALSE;
AliEveListAnalyserMacroType macroType = kUnknown;
Int_t numHistoMacros = 0;
- TH1** histos = 0;
+ TH1** histos(NULL);
- TEveElement* object1 = 0;
- TEveElement* object2 = 0;
- TH1* returnedHist = 0x0;
+ TEveElement* object1(NULL);
+ TEveElement* object2(NULL);
+ TH1* returnedHist(NULL);
// Collect the commands for each process macro and add them to "data-from-list"
for (Int_t i = 0; i < procIterator->GetEntries(); i++){
}
// Collect the commands for each selection macro and add them to "data-from-list"
- for (Int_t i = 0; i < selIterator->GetEntries(); i++){
- macro = (TGeneralMacroData*)fMacroList->GetValue(selIterator->At(i)->GetTitle());
-
- if (!macro){
- Error("Apply process macros",
- Form("Macro list is corrupted: Macro \"%s\" is not registered!",
- selIterator->At(i)->GetTitle()));
- continue;
- }
+ if (selIterator->GetEntries() > 0) {
+ selCmds = new TString[selIterator->GetEntries()];
+ mSelType = new AliEveListAnalyserMacroType[selIterator->GetEntries()];
+ mSelObjectType = new TClass*[selIterator->GetEntries()];
+ mSelObjectType2 = new TClass*[selIterator->GetEntries()];
+ for (Int_t i = 0; i < selIterator->GetEntries(); i++){
+ macro = (TGeneralMacroData*)fMacroList->GetValue(selIterator->At(i)->GetTitle());
+
+ if (!macro){
+ Error("Apply process macros",
+ Form("Macro list is corrupted: Macro \"%s\" is not registered!",
+ selIterator->At(i)->GetTitle()));
+ continue;
+ }
#ifdef AliEveListAnalyser_DEBUG
- printf("AliEveListAnalyser: Checking selection macro: %s\n", macro->GetName());
+ printf("AliEveListAnalyser: Checking selection macro: %s\n", macro->GetName());
#endif
- // Find the object types of the macro
- mSelObjectType[i] = macro->GetObjectType();
- mSelObjectType2[i] = macro->GetObjectType2();
-
- // Find the type of the process macro
- macroType = macro->GetType();
+ // Find the object types of the macro
+ mSelObjectType[i] = macro->GetObjectType();
+ mSelObjectType2[i] = macro->GetObjectType2();
+
+ // Find the type of the process macro
+ macroType = macro->GetType();
- // Single Object select macro
- if (macroType == kSingleObjectSelect) {
- // Has already been processed by ApplySOSelectionMacros(...)
- mSelType[i] = macroType;
+ // Single Object select macro
+ if (macroType == kSingleObjectSelect) {
+ // Has already been processed by ApplySOSelectionMacros(...)
+ mSelType[i] = macroType;
+ }
+ // Correlated Objects select macro
+ else if (macroType == kCorrelObjectSelect) {
+ mSelType[i] = macroType;
+
+ // Create the command
+ selCmds[i] = macro->GetCmd();
+ } else {
+ Error("Apply process macros",
+ Form("Macro list corrupted: Macro \"%s/%s.C\" is not registered as a selection macro!",
+ macro->GetPath(), macro->GetName()));
+ mSelType[i] = kUnknown;
+ }
}
- // Correlated Objects select macro
- else if (macroType == kCorrelObjectSelect) {
- mSelType[i] = macroType;
-
- // Create the command
- selCmds[i] = macro->GetCmd();
- } else {
- Error("Apply process macros",
- Form("Macro list corrupted: Macro \"%s/%s.C\" is not registered as a selection macro!",
- macro->GetPath(), macro->GetName()));
- mSelType[i] = kUnknown;
- }
- }
+ }
// Allocate memory for the histograms
- if (numHistoMacros > 0) histos = new TH1*[numHistoMacros];
- for (Int_t i = 0; i < numHistoMacros; i++) histos[i] = 0x0;
-
+ if (numHistoMacros > 0){
+ histos = new TH1*[numHistoMacros];
+ memset(histos, 0, numHistoMacros*sizeof(TH1*));
+ }
Bool_t secondBeforeFirstObject = kTRUE;
// Single object histo
if (mProcType[i] == kSingleObjectHisto){
returnedHist = (TH1*)gROOT->ProcessLineSync(procCmds[i]);
- if (returnedHist)
+ if (histos && returnedHist)
{
if (!histos[histoIndex]) histos[histoIndex] = returnedHist;
else
TString* mangledArg2Str = new TString();
// We want "const 'OBJECTTYPE'*"
- mangled1Str->Append("const ").Append(*typeStr).Append("*");
+ mangled1Str->Form("const %s*", typeStr->Data());
// We want "const 'OBJECTTYPE'*, Double_t*&, Int_t&"
- mangled2Str->Append("const ").Append(*typeStr).Append("*, Double_t*&, Int_t&");
+ mangled2Str->Form("const %s*, Double_t*&, Int_t&", typeStr->Data());
// We want "const 'OBJECTTYPE'*, const 'OBJECTTYPE2'*"
- mangled3Str->Append("const ").Append(*typeStr).Append("*, const ").Append(*typeStr2).Append("*");
+ mangled3Str->Form("const %s*, const %s*", typeStr->Data(), typeStr2->Data());
// We want "const 'OBJECTTYPE'*, const 'OBJECTTYPE2'*, Double_t*&, Int_t&"
- mangled4Str->Append("const ").Append(*typeStr).Append("*, const ").Append(*typeStr2).Append("*, Double_t*&, Int_t&");
+ mangled4Str->Form("const %s*, const %s*, Double_t*&, Int_t&", typeStr->Data(), typeStr2->Data());
// We want "oPconstsP'OBJECTTYPE'mUsP"
- mangledArg1Str->Append("oPconstsP").Append(*typeStr).Append("mUsP");
+ mangledArg1Str->Form("oPconstsP%smUsP", typeStr->Data());
// We want "cOconstsP'OBJECTTYPE2'mUsP"
- mangledArg2Str->Append("cOconstsP").Append(*typeStr2).Append("mUsP");
+ mangledArg2Str->Form("cOconstsP%smUsP", typeStr2->Data());
// Re-do the check of the macro type
if (!UseList){
DrawHistos();
}
-
- if (selIterator != 0) delete selIterator;
- selIterator = 0;
- if (procIterator != 0) delete procIterator;
- procIterator = 0;
+ delete selIterator;
+ delete procIterator;
if (!success)
{
{
name = new Char_t[AliEveListAnalyser::fkMaxMacroNameLength];
memset(name, '\0', sizeof(Char_t) * AliEveListAnalyser::fkMaxMacroNameLength);
- sprintf(name, "%s", fteField->GetText());
+ snprintf(name, AliEveListAnalyser::fkMaxMacroNameLength, "%s", fteField->GetText());
// Add path to textfield -> Path is "./" -> Use length for the name + 2
Char_t pathname[AliEveListAnalyser::fkMaxMacroNameLength + 2];
memset(pathname, '\0', sizeof(Char_t) * (AliEveListAnalyser::fkMaxMacroNameLength + 2));
- sprintf(pathname, "./%s", fteField->GetText());
+ snprintf(pathname, AliEveListAnalyser::fkMaxMacroNameLength + 2, "./%s", fteField->GetText());
fteField->SetText(pathname);
AddMacro(name);
- if (name != 0) delete [] name;
- name = 0;
+ delete [] name;
}
// Different path
else
strncpy(path, fteField->GetText(), strlen(fteField->GetText()) - strlen(name));
// Ignore the slash "/" in name
- AddMacro(name + 1, path);
-
- if (path != 0) delete [] path;
- path = 0;
+ AddMacro(name + 1, path);
+ delete [] path;
}
}
else
fM->fMacroListSelected = 0;
UpdateMacroList();
-
- if (iterator != 0) delete iterator;
- iterator = 0;
+ delete iterator;
}
//______________________________________________________
Bool_t useGivenType2 = kFALSE;
// Remove white-spaces
- TString* typeStr = new TString();
-
- typeStr->Append(fTextObjectType->GetText());
+ TString* typeStr = new TString(fTextObjectType->GetText());
typeStr->ReplaceAll(" ", "");
fTextObjectType->SetText(typeStr->Data(), kFALSE);
- TString* typeStr2 = new TString();
-
- typeStr2->Append(fTextObjectType2->GetText());
+ TString* typeStr2 = new TString(fTextObjectType2->GetText());
typeStr2->ReplaceAll(" ", "");
fTextObjectType2->SetText(typeStr2->Data(), kFALSE);
Char_t* line = 0x0; Int_t iline = 0;
while((line = comment->GetLine(TGLongPosition(0,iline++), 200))) fprintf(fp, "// %s\n", line);
- TString* tempStr = new TString();
+ TString* tempStr = new TString(fTextIncludes->GetText());
// Add include files:
// Remove white-spaces and replace commas
- tempStr->Append(fTextIncludes->GetText());
tempStr->ReplaceAll(" ", "");
tempStr->ReplaceAll(",","\n#include ");
// If there are files, add the first "#include " in front
if (!useGivenType)
{
typeStr->Clear();
- typeStr->Append("TObject");
+ (*typeStr)="TObject";
}
if (!useGivenType2)
{
typeStr2->Clear();
- typeStr2->Append("TObject");
+ (*typeStr2)="TObject";
}
switch(type){