/* Master Process script for analyzing a TChain of analyzed .root files -- ASC 3/21/2019 */ { gSystem->SetAclicMode(TSystem::kDebug); gSystem->SetAclicMode(TSystem::kOpt); // Get the shared object file which contains the beta decay classes //gSystem->Load("/user/e18018/RootAnalysis/libParametersddas.so"); gSystem->Load("/Users/mansisaxena/57ZnBetaP/RootAnalysis/libParametersddas.so"); // Make the libraries Int_t error; gROOT->ProcessLine(".L e18018Selector.C+", &error); if(error) exit(EXIT_FAILURE); gROOT->ProcessLine(".L Chain.C"); TChain *data = new TChain("data"); // Calibration runs // Chain(data,3); // 228Th on SSSD // Chain(data,16); // 241Am on DSSD // Chain(data,20); // 228Th on Pin01 // Chain(data,23); // PIN01XFP TAC calibration // Chain(data,24); // PIN02XFP TAC calibration // Chain(data,26); // PIN01RF TAC calibration // Chain(data,27); // 228Th on Pin02 in Pin01 DDAS channel // Chain(data,28); // SRM // Chain(data,29); // 56Co //checking individual runs ! // Chain(data,118); // Data runs // Chain(data,116); // phase change happens in this run // Chain(data,117); // Chain(data,118); // Chain(data,119); // Chain(data,121); // Chain(data,122); Chain(data,124); // Chain(data,125); // Chain(data,126); // Chain(data,127); // Chain(data,128); // Chain(data,129); // Chain(data,130); // Chain(data,131); // Chain(data,132); // Chain(data,134); // Chain(data,135); // Chain(data,136); // Chain(data,137); // Chain(data,139); // Chain(data,140); // Chain(data,141); // Chain(data,142); // Chain(data,143); // Chain(data,144); // Chain(data,145); // Chain(data,146); // Chain(data,147); // Chain(data,148); // Chain(data,149); // Chain(data,150); // Chain(data,151); // Chain(data,152); // Chain(data,154); // Chain(data,155); // Chain(data,156); // Chain(data,157); // Chain(data,158); // Chain(data,159); // Chain(data,160); // Chain(data,161); // Chain(data,162); // Chain(data,163); // Chain(data,165); // Chain(data,166); // Chain(data,167); // Chain(data,168); // Chain(data,169); // Chain(data,170); // Chain(data,171); // Chain(data,173); // Chain(data,174); // Chain(data,175); // Chain(data,301); cout << "Entries (from chain): " << data->GetEntries() << endl; // data->Print(); Int_t nwrks = 16; TProof* proof = TProof::Open(Form("workers=%i",nwrks)); proof->SetPerfTree("perftree.root",kFALSE); // Check number workers if(proof->GetParallel() < nwrks) { cout << "MasterProcess.C: request for " << nwrks << " workers larger then available - ignored" << endl; } cout << "Number of workers set to: " << proof->GetParallel() << endl; // proof->Print(); data->SetProof(proof); // Gates // gROOT->ProcessLine(".x gates/Zn57.C"); // gROOT->ProcessLine(".x gates/Cu56.C"); //gROOT->ProcessLine(".x gates/Ni55.C"); //gROOT->ProcessLine(".x gates/Mn52.C"); gROOT->ProcessLine(".x gates/57Zn_2a.C"); gROOT->ProcessLine(".x gates/57Zn_2b.C"); gROOT->ProcessLine(".x gates/57Zn_2c.C"); // gROOT->ProcessLine(".x gates/56Cu_1.C"); // gROOT->ProcessLine(".x gates/55Ni_1.C"); //gROOT->ProcessLine(".x gates/Mn52.C"); // Add the gates to the input list proof->AddInput(Zn57A); //Zn57 proof->AddInput(Zn57B); //Zn57 proof->AddInput(Zn57C); //Zn57 //proof->AddInput(Cu56); //Cu56 // proof->AddInput(55Ni); //Ni55 //proof->AddInput(Mn52); // Print out the input list, should include gates cout << "Input objects (from MasterProcess.C):" << endl; TIter next_object(proof->GetInputList()); TObject *this_object = 0; while ((this_object = next_object())) { cout << this_object->ClassName() << " " << this_object->GetName() << endl; } // Process data data->Process("e18018Selector.C+"); proof->Print("F"); data->SetProof(0); // Detach from the PROOF session }