35 char *
kXML =
"collection.xml";
37 const Bool_t
kMC = kFALSE;
81 AliLog::SetGlobalLogLevel(AliLog::kError);
86 AliAnalysisManager *mgr =
new AliAnalysisManager(
"Manager",
"Manager");
89 AliMCEventHandler* mcHandler =
new AliMCEventHandler();
90 mcHandler->SetReadTR(kFALSE);
91 mgr->SetMCtruthEventHandler(mcHandler);
92 if(
kInputData ==
"MC") mgr->SetInputEventHandler(NULL);
99 AliESDInputHandler *esdHandler =
new AliESDInputHandler();
100 mgr->SetInputEventHandler(esdHandler);
101 cout<<
"ESD handler "<<mgr->GetInputEventHandler()<<endl;
106 AliAODInputHandler *aodHandler =
new AliAODInputHandler();
107 mgr->SetInputEventHandler(aodHandler);
108 cout<<
"AOD handler "<<mgr->GetInputEventHandler()<<endl;
114 cout<<
"Init output handler"<<endl;
115 AliAODHandler* aodoutHandler =
new AliAODHandler();
116 aodoutHandler->SetOutputFileName(
"aod.root");
118 mgr->SetOutputEventHandler(aodoutHandler);
124 TString outputFile = AliAnalysisManager::GetCommonFileName();
125 AliAnalysisDataContainer *cinput1 = mgr->GetCommonInputContainer();
129 gROOT->LoadMacro(
"$ALICE_PHYSICS/OADB/macros/AddTaskPhysicsSelection.C");
130 AliPhysicsSelectionTask* physSelTask = AddTaskPhysicsSelection();
137 counterMB->SelectCollisionCandidates(AliVEvent::kMB);
139 AliAnalysisDataContainer *coutputMB =
140 mgr->CreateContainer(
"counterMB", TList::Class(), AliAnalysisManager::kOutputContainer, outputFile.Data());
141 mgr->AddTask(counterMB);
142 mgr->ConnectInput (counterMB, 0, cinput1 );
143 mgr->ConnectOutput (counterMB, 1, coutputMB);
146 counterEMC->SelectCollisionCandidates(AliVEvent::kEMC7);
148 AliAnalysisDataContainer *coutputEMC =
149 mgr->CreateContainer(
"counterEMC", TList::Class(), AliAnalysisManager::kOutputContainer, outputFile.Data());
150 mgr->AddTask(counterEMC);
151 mgr->ConnectInput (counterEMC, 0, cinput1 );
152 mgr->ConnectOutput (counterEMC, 1, coutputEMC);
155 counterINT->SelectCollisionCandidates(AliVEvent::kINT7);
157 AliAnalysisDataContainer *coutputINT =
158 mgr->CreateContainer(
"counterINT7", TList::Class(), AliAnalysisManager::kOutputContainer, outputFile.Data());
159 mgr->AddTask(counterINT);
160 mgr->ConnectInput (counterINT, 0, cinput1 );
161 mgr->ConnectOutput (counterINT, 1, coutputINT);
165 AliAnalysisDataContainer *coutput =
166 mgr->CreateContainer(
"counter", TList::Class(), AliAnalysisManager::kOutputContainer, outputFile.Data());
167 mgr->AddTask(counter);
168 mgr->ConnectInput (counter, 0, cinput1);
169 mgr->ConnectOutput (counter, 1, coutput);
174 gROOT->LoadMacro(
"$ALICE_PHYSICS/PWGGA/CaloTrackCorrelations/macros/QA/AddTaskCalorimeterQA.C");
178 taskQAEMC->SelectCollisionCandidates(AliVEvent::kEMC7);
180 taskQAINT->SelectCollisionCandidates(AliVEvent::kINT7);
200 mgr->StartAnalysis(smode.Data(),chain);
202 cout <<
" Analysis ended sucessfully "<< endl ;
205 else cout <<
"Chain was not produced ! "<<endl;
235 gSystem->Load(
"libANALYSISalice");
239 gSystem->Load(
"libEMCALUtils");
242 gSystem->Load(
"libTenderSupplies");
247 gSystem->Load(
"libPWGCaloTrackCorrBase");
248 gSystem->Load(
"libPWGGACaloTrackCorrelations");
276 TProof::Open(
"proof://mgheata@lxb6046.cern.ch");
286 gProof->UploadPackage(
"STEERBase.par");
287 gProof->EnablePackage(
"STEERBase");
289 gProof->UploadPackage(
"ESD.par");
290 gProof->EnablePackage(
"ESD");
292 gProof->UploadPackage(
"AOD.par");
293 gProof->EnablePackage(
"AOD");
295 gProof->UploadPackage(
"ANALYSIS.par");
296 gProof->EnablePackage(
"ANALYSIS");
301 gProof->UploadPackage(
"PWG4PartCorrBase.par");
302 gProof->EnablePackage(
"PWG4PartCorrBase");
303 gProof->UploadPackage(
"PWG4PartCorrDep.par");
304 gProof->EnablePackage(
"PWG4PartCorrDep");
305 gProof->ShowEnabledPackages();
316 TString cdir(Form(
"%s",
gSystem->WorkingDirectory() )) ;
318 TString parpar(Form(
"%s.par", pararchivename)) ;
320 if (
gSystem->AccessPathName(parpar.Data()) )
323 TString processline(Form(
".! make %s", parpar.Data())) ;
324 gROOT->ProcessLine(processline.Data()) ;
325 gSystem->ChangeDirectory(cdir) ;
326 processline = Form(
".! mv $ALICE_PHYSICS/%s .", parpar.Data()) ;
327 gROOT->ProcessLine(processline.Data()) ;
330 if (
gSystem->AccessPathName(pararchivename) )
332 TString processline = Form(
".! tar xvzf %s",parpar.Data()) ;
333 gROOT->ProcessLine(processline.Data());
336 TString ocwd =
gSystem->WorkingDirectory();
337 gSystem->ChangeDirectory(pararchivename);
340 if (!
gSystem->AccessPathName(
"PROOF-INF/BUILD.sh"))
342 printf(
"*******************************\n");
343 printf(
"*** Building PAR archive ***\n");
344 cout<<pararchivename<<endl;
345 printf(
"*******************************\n");
347 if (
gSystem->Exec(
"PROOF-INF/BUILD.sh"))
349 Error(
"runProcess",
"Cannot Build the PAR Archive! - Abort!");
354 if (!
gSystem->AccessPathName(
"PROOF-INF/SETUP.C"))
356 printf(
"*******************************\n");
357 printf(
"*** Setup PAR archive ***\n");
358 cout<<pararchivename<<endl;
359 printf(
"*******************************\n");
360 gROOT->Macro(
"PROOF-INF/SETUP.C");
363 gSystem->ChangeDirectory(ocwd.Data());
364 printf(
"Current dir: %s\n", ocwd.Data());
372 TString ocwd =
gSystem->WorkingDirectory();
380 gROOT->LoadMacro(
"$ALICE_PHYSICS/PWG/EMCAL/CreateESDChain.C");
382 chain = CreateESDChain(
"ESD12001.txt", 5);
396 else cout<<
"INDIR not set, use default: "<<
kInDir<<endl;
400 else cout<<
"PATTERN not set, use default: "<<
kPattern<<endl;
404 else cout<<
"NFILES not set, use default: "<<
kFile<<endl;
408 printf(
"Get %d files from directory %s\n",
kFile,
kInDir);
410 printf(
"%s does not exist\n",
kInDir) ;
414 cout<<
"INDIR : "<<
kInDir<<endl;
415 cout<<
"NFILES : "<<
kFile<<endl;
416 cout<<
"PATTERN : " <<
kPattern<<endl;
419 if(
kInputData ==
"ESD") datafile =
"AliESDs.root" ;
420 else if(
kInputData ==
"AOD") datafile =
"AliAOD.root" ;
427 for (event = 0 ;
event <
kFile ;
event++) {
428 sprintf(file,
"%s/%s%d/%s",
kInDir,
kPattern,event,datafile.Data()) ;
431 if ( fESD = TFile::Open(file)) {
433 printf(
"++++ Adding %s\n", file) ;
434 chain->AddFile(file);
438 printf(
"---- Skipping %s\n", file) ;
442 printf(
"number of entries # %lld, skipped %d\n", chain->GetEntries(), skipped*100) ;
445 TString input =
"AliESDs.root" ;
446 cout<<
">>>>>> No list added, take a single file <<<<<<<<< "<<input<<endl;
447 chain->AddFile(input);
455 else if(mode ==
mGRID){
462 sprintf(
kXML,
"collection.xml") ;
464 if (!TFile::Open(
kXML)) {
465 printf(
"No collection file with name -- %s -- was found\n",
kXML);
468 else cout<<
"XML file "<<
kXML<<endl;
473 TGrid::Connect(
"alien://") ;
476 TGridCollection * collection = (TGridCollection*) TAlienCollection::Open(
kXML);
478 AliError(Form(
"%s not found",
kXML)) ;
481 TGridResult* result = collection->GetGridResult(
"",0 ,0);
484 printf(
"*** Getting the Chain ***\n");
485 for (Int_t index = 0; index < result->GetEntries(); index++) {
486 TString alienURL = result->GetKey(index,
"turl") ;
487 cout <<
"================== " << alienURL << endl ;
488 chain->Add(alienURL) ;
492 gSystem->ChangeDirectory(ocwd.Data());
anaModes
Different analysis modes.
Count events with different selection criteria.
const TString kInputData
With real data kMC = kFALSE.
Analyze files on GRID with Plugin.
const Bool_t kMC
Global name for the xml collection file with data on grid.
void SetupPar(char *pararchivename)
AliAnalysisTaskCaloTrackCorrelation * AddTaskCalorimeterQA(const char *suffix="default", Bool_t simulation=kFALSE, TString outputFile="", Int_t year=2015, Bool_t printSettings=kFALSE, Bool_t calibrate=kTRUE)
void anaQA(Int_t mode=mLocal)
Analyze files on GRID with Plugin.
void CreateChain(const anaModes mode, TChain *chain)
Fills chain with data files paths.
Analyze locally files in your computer.
Main class conecting the CaloTrackCorrelations package and Analysis Frame.
Int_t kFile
Data are in files kInDir/kPattern+i.
char * kXML
Number of files to analyze in local mode.
void LoadLibraries(const anaModes mode)
Load analysis libraries.
TString kTreeName
ESD, AOD, MC.
char * kPattern
Global, path to data files.