{
// Create folder and task hierarchy
fName="PHOS";
+ fTreeQA = 0 ;
CreatePHOSWhiteBoard();
}
AliPHOS::AliPHOS(const char* name, const char* title): AliDetector(name, title)
{
// Create folder and task hierarchy
+ fTreeQA = 0 ;
CreatePHOSWhiteBoard();
}
// add the Alice QA Alarms
// this should be done of course by AliRun
//==================== BEG TO BE DONE BY AliRUN ===========================
- TFolder *alice = gROOT->GetRootFolder()->AddFolder("YSAlice","Alice Folder") ;
- gROOT->GetListOfBrowsables()->Add(alice, "YSAlice") ;
-
- TFolder * aliceF = alice->AddFolder("WhiteBoard", "Alice memory Folder") ;
- // make it the owner of the objects that it contains
- aliceF->SetOwner() ;
- // geometry folder
- TFolder * geomF = aliceF->AddFolder("Geometry", "Geometry objects") ;
- // alarms folder
- TFolder * alarmsF = aliceF->AddFolder("QAAlarms", "Alarms raised by QA check") ;
- // Hits folder
- TFolder * hitsF = aliceF->AddFolder("Hits", "Hits") ;
- // SDigits folder
- TFolder * sdigitsF = aliceF->AddFolder("SDigits", "Summable Digits") ;
- // Digits folder
- TFolder * digitsF = aliceF->AddFolder("Digits", "Digits") ;
- // RecPoints folder
- TFolder * rpointsF = aliceF->AddFolder("RecPoints", "RecPoints") ;
- // TrackSegments folder
- TFolder * tsF = aliceF->AddFolder("TrackSegments", "TrackSegments") ;
- // RecParticles folder
- TFolder * rparticlesF = aliceF->AddFolder("RecParticles", "RecParticles") ;
- // make it the owner of the objects that it contains
- alarmsF->SetOwner() ;
- hitsF->SetOwner() ;
- sdigitsF->SetOwner() ;
- digitsF->SetOwner() ;
- rpointsF->SetOwner() ;
- tsF->SetOwner() ;
- rparticlesF->SetOwner() ;
-
- // Tasks folder
- TFolder * aliceT = alice->AddFolder("tasks", "Alice tasks Folder") ;
- // make it the owner of the objects that it contains
- aliceT->SetOwner() ;
-
- TTask * aliceQA = new TTask("QA", "Alice QA tasks") ;
- aliceT->Add(aliceQA);
-
- TTask * aliceSD = new TTask("SDigitizer", "Alice SDigitizer") ;
- aliceT->Add(aliceSD);
-
- TTask * aliceDi = new TTask("Digitizer", "Alice Digitizer") ;
- aliceT->Add(aliceDi);
-
- TTask * aliceRe = new TTask("Reconstructioner", "Alice Reconstructioner") ;
- aliceT->Add(aliceRe);
-
+ if ( ! (gROOT->GetRootFolder()->FindObject("YSAlice")) ) {
+ TFolder *alice = gROOT->GetRootFolder()->AddFolder("YSAlice","Alice Folder") ;
+ gROOT->GetListOfBrowsables()->Add(alice, "YSAlice") ;
+
+ TFolder * aliceF = alice->AddFolder("WhiteBoard", "Alice memory Folder") ;
+ // make it the owner of the objects that it contains
+ aliceF->SetOwner() ;
+ // geometry folder
+ aliceF->AddFolder("Geometry", "Geometry objects") ;
+ // alarms folder
+ TFolder * alarmsF = aliceF->AddFolder("QAAlarms", "Alarms raised by QA check") ;
+ // Hits folder
+ TFolder * hitsF = aliceF->AddFolder("Hits", "Hits") ;
+ // SDigits folder
+ TFolder * sdigitsF = aliceF->AddFolder("SDigits", "Summable Digits") ;
+ // Digits folder
+ TFolder * digitsF = aliceF->AddFolder("Digits", "Digits") ;
+ // RecPoints folder
+ TFolder * rpointsF = aliceF->AddFolder("RecPoints", "RecPoints") ;
+ // TrackSegments folder
+ TFolder * tsF = aliceF->AddFolder("TrackSegments", "TrackSegments") ;
+ // RecParticles folder
+ TFolder * rparticlesF = aliceF->AddFolder("RecParticles", "RecParticles") ;
+ // make it the owner of the objects that it contains
+ alarmsF->SetOwner() ;
+ hitsF->SetOwner() ;
+ sdigitsF->SetOwner() ;
+ digitsF->SetOwner() ;
+ rpointsF->SetOwner() ;
+ tsF->SetOwner() ;
+ rparticlesF->SetOwner() ;
+
+ // Tasks folder
+ TFolder * aliceT = alice->AddFolder("tasks", "Alice tasks Folder") ;
+ // make it the owner of the objects that it contains
+ aliceT->SetOwner() ;
+
+ TTask * aliceQA = new TTask("QA", "Alice QA tasks") ;
+ aliceT->Add(aliceQA);
+
+ TTask * aliceSD = new TTask("SDigitizer", "Alice SDigitizer") ;
+ aliceT->Add(aliceSD);
+
+ TTask * aliceDi = new TTask("Digitizer", "Alice Digitizer") ;
+ aliceT->Add(aliceDi);
+
+ TTask * aliceRe = new TTask("Reconstructioner", "Alice Reconstructioner") ;
+ aliceT->Add(aliceRe);
+
//==================== END TO BE DONE BY AliRUN ===========================
-
+ }
// =================== Creating PHOS related folders
char * tempo = new char[80] ;
// creates the PHOSQA (QAChecker knows how to add itself in the tasks list)
sprintf(tempo, "%sCheckers container",GetName() ) ;
fQATask = new AliPHOSQAChecker(GetName(), tempo);
-
+
// creates the PHOS SDigitizer and adds it to alice main SDigitizer task
sprintf(tempo, "%sSDigitizers container",GetName() ) ;
TTask * sdT = new TTask(GetName(), tempo);
- aliceSD->Add(sdT) ;
+ TTask * task = (TTask*)(gROOT->GetRootFolder()->FindObjectAny("SDigitizer")) ;
+ task->Add(sdT) ;
// creates the PHOS Digitizer and adds it to alice main Digitizer task
sprintf(tempo, "%sDigitizers container",GetName() ) ;
TTask * dT = new TTask(GetName(), tempo);
- aliceDi->Add(dT) ;
+ task = (TTask*)(gROOT->GetRootFolder()->FindObjectAny("Digitizer")) ;
+ task->Add(dT) ;
// creates the PHOS reconstructioner and adds it to alice main Reconstructioner task
sprintf(tempo, "%s Reconstructioner container",GetName() ) ;
TTask * reT = new TTask(GetName(), tempo);
- aliceRe->Add(reT) ;
+ task = (TTask*)(gROOT->GetRootFolder()->FindObjectAny("Reconstructioner")) ;
+ task->Add(reT) ;
// creates the PHOS clusterizer, tracksegment maker and PID and adds it to the PHOS Reconstructioner task
delete tempo ;
// creates the PHOS geometry folder
- geomF->AddFolder("PHOS", "Geometry for PHOS") ;
+ TFolder * folder = (TFolder*)(gROOT->GetRootFolder()->FindObjectAny("Geometry")) ;
+ folder->AddFolder("PHOS", "Geometry for PHOS") ;
// creates the PHOSQA alarm folder
- alarmsF->AddFolder("PHOS", "QA alarms from PHOS") ;
+ folder = (TFolder*)(gROOT->GetRootFolder()->FindObjectAny("QAAlarms")) ;
+ folder->AddFolder("PHOS", "QA alarms from PHOS") ;
// creates the PHOS Hits folder
- hitsF->AddFolder("PHOS", "Hits for PHOS") ;
+ folder = (TFolder*)(gROOT->GetRootFolder()->FindObjectAny("Hits")) ;
+ folder->AddFolder("PHOS", "Hits for PHOS") ;
// creates the PHOS Summable Digits folder
- sdigitsF->AddFolder("PHOS", "Summable Digits for PHOS") ;
+ folder = (TFolder*)(gROOT->GetRootFolder()->FindObjectAny("SDigits")) ;
+ folder->AddFolder("PHOS", "Summable Digits for PHOS") ;
// creates the PHOS Digits folder
- digitsF->AddFolder("PHOS", "Digits for PHOS") ;
+ folder = (TFolder*)(gROOT->GetRootFolder()->FindObjectAny("Digits")) ;
+ folder->AddFolder("PHOS", "Digits for PHOS") ;
// creates the PHOS RecPoints folder
- TFolder * prpF = rpointsF->AddFolder("PHOS", "RecPoints for PHOS") ;
+ folder = (TFolder*)(gROOT->GetRootFolder()->FindObjectAny("RecPoints")) ;
+ TFolder * prpF = folder->AddFolder("PHOS", "RecPoints for PHOS") ;
// creates the PHOS EMC RecPoints folder
prpF->AddFolder("emc", "EMC RecPoints for PHOS") ;
// creates the PHOS CPV RecPoints folder
prpF->AddFolder("cpv", "CPV RecPoints for PHOS") ;
// creates the PHOS TrackSegments folder
- tsF->AddFolder("PHOS", "Track Segments for PHOS") ;
+ folder = (TFolder*)(gROOT->GetRootFolder()->FindObjectAny("TrackSegments")) ;
+ folder->AddFolder("PHOS", "Track Segments for PHOS") ;
// creates the PHOS RecParticles folder
- rparticlesF->AddFolder("PHOS", "RecParticles for PHOS") ;
+ folder = (TFolder*)(gROOT->GetRootFolder()->FindObjectAny("RecParticles")) ;
+ folder->AddFolder("PHOS", "RecParticles for PHOS") ;
}
//____________________________________________________________________________
{
// remove the alice folder and alice QA task that PHOS creates instead of AliRun
- // remove and delete the PHOS QA tasks
- TTask * aliceQA = (TTask*)gROOT->FindObjectAny("YSAlice/tasks/QA") ;
- fQATask->GetListOfTasks()->Delete() ;
- aliceQA->GetListOfTasks()->Remove(fQATask) ;
- delete fQATask ;
+ // remove and delete the PHOS related items in folders
+ // Geometry
+ TFolder * foldera = (TFolder*)(gROOT->GetRootFolder()->FindObjectAny("Geometry")) ;
+ TFolder * folderp = (TFolder*)foldera->FindObject("PHOS") ;
+ folderp->Clear() ;
+ foldera->Remove(folderp) ;
+ // QA Alarms
+ foldera = (TFolder*)(gROOT->GetRootFolder()->FindObjectAny("QAAlarms")) ;
+ folderp = (TFolder*)foldera->FindObject("PHOS") ;
+ folderp->Clear() ;
+ foldera->Remove(folderp) ;
+ // Hits
+ foldera = (TFolder*)(gROOT->GetRootFolder()->FindObjectAny("Hits")) ;
+ folderp = (TFolder*)foldera->FindObject("PHOS") ;
+ folderp->Clear() ;
+ foldera->Remove(folderp) ;
+ // SDigits
+ foldera = (TFolder*)(gROOT->GetRootFolder()->FindObjectAny("SDigits")) ;
+ folderp = (TFolder*)foldera->FindObject("PHOS") ;
+ folderp->Clear() ;
+ foldera->Remove(folderp) ;
+ // Digits
+ foldera = (TFolder*)(gROOT->GetRootFolder()->FindObjectAny("Digits")) ;
+ folderp = (TFolder*)foldera->FindObject("PHOS") ;
+ folderp->Clear() ;
+ foldera->Remove(folderp) ;
+ // RecPoints
+ foldera = (TFolder*)(gROOT->GetRootFolder()->FindObjectAny("RecPoints")) ;
+ folderp = (TFolder*)foldera->FindObject("PHOS") ;
+ folderp->Clear() ;
+ foldera->Remove(folderp) ;
+ // TrackSegments
+ foldera = (TFolder*)(gROOT->GetRootFolder()->FindObjectAny("TrackSegments")) ;
+ folderp = (TFolder*)foldera->FindObject("PHOS") ;
+ folderp->Clear() ;
+ foldera->Remove(folderp) ;
+ // RecParticles
+ foldera = (TFolder*)(gROOT->GetRootFolder()->FindObjectAny("RecParticles")) ;
+ folderp = (TFolder*)foldera->FindObject("PHOS") ;
+ folderp->Clear() ;
+ foldera->Remove(folderp) ;
+
+ //QA tasks
+ TTask * taska = (TTask*)gROOT->FindObjectAny("QA") ;
+ TTask * taskp = (TTask*)taska->GetListOfTasks()->FindObject("PHOS") ;
+ // taskp->GetListOfTasks()->Delete() ;
+ taska->GetListOfTasks()->Remove(taskp) ;
+
+ //SDigitizer tasks
+ taska = (TTask*)gROOT->FindObjectAny("SDigitizer") ;
+ taskp = (TTask*)taska->GetListOfTasks()->FindObject("PHOS") ;
+ taskp->GetListOfTasks()->Delete() ;
+ taska->GetListOfTasks()->Remove(taskp) ;
+
+ //Digitizer tasks
+ taska = (TTask*)gROOT->FindObjectAny("Digitizer") ;
+ taskp = (TTask*)taska->GetListOfTasks()->FindObject("PHOS") ;
+ taskp->GetListOfTasks()->Delete() ;
+ taska->GetListOfTasks()->Remove(taskp) ;
+
+ //Reconstructioner tasks
+ taska = (TTask*)gROOT->FindObjectAny("Reconstructioner") ;
+ taskp = (TTask*)taska->GetListOfTasks()->FindObject("PHOS") ;
+ taskp->GetListOfTasks()->Delete() ;
+ taska->GetListOfTasks()->Remove(taskp) ;
// remove and delete aliceQA (should be done by AliRun)
}