24 char *
kInDir =
"/Users/ymao/group/ana/7TeV/corr";
29 char *
kXML =
"collection.xml";
59 if(kInputData ==
"ESD") kTreeName =
"esdTree" ;
60 else if(kInputData ==
"AOD") kTreeName =
"aodTree" ;
61 else if (kInputData ==
"MC") kTreeName =
"TE" ;
63 cout<<
"Wrong data type "<<kInputData<<endl;
70 cout<<
"Chain created"<<endl;
74 AliLog::SetGlobalLogLevel(AliLog::kError);
81 if( (
kMC && (kInputData ==
"ESD")) || kInputData ==
"MC"){
82 AliMCEventHandler* mcHandler =
new AliMCEventHandler();
83 mcHandler->SetReadTR(kFALSE);
84 mgr->SetMCtruthEventHandler(mcHandler);
85 if( kInputData ==
"MC") mgr->SetInputEventHandler(NULL);
94 Int_t maxiterations = 1;
95 AliEventPoolLoop* pool =
new AliEventPoolLoop(maxiterations);
96 pool->SetChain(chain);
97 Int_t eventsInPool = 10;
98 AliMultiEventInputHandler *inpHandler = NULL ;
99 if(kInputData ==
"ESD"){
101 printf(
"ESD MultiInput \n");
102 inpHandler =
new AliMultiEventInputHandler(eventsInPool, 0);
104 if(kInputData ==
"AOD"){
106 inpHandler =
new AliMultiEventInputHandler(eventsInPool, 1);
108 mgr->SetInputEventHandler(inpHandler);
109 cout<<
"Input handler "<<mgr->GetInputEventHandler()<<endl;
110 mgr->SetEventPool(pool);
111 inpHandler->SetEventPool(pool);
128 gROOT->LoadMacro(
"AddTaskCaloTrackCorrM.C");
132 mgr->AddTask(taskEMCAL);
136 mgr->AddTask(taskPHOS);
142 mgr->AddTask(taskCharge);
150 mgr->StartAnalysis(
"mix",chain);
152 cout <<
" Analysis ended sucessfully "<< endl ;
154 else cout <<
"Chain was not produced ! "<<endl;
183 SetupPar(
"PWGGACaloTrackCorrelations");
194 gSystem->Load(
"libANALYSISalice");
196 gSystem->Load(
"libEMCALUtils");
197 gSystem->Load(
"libPWGCaloTrackCorrBase");
198 gSystem->Load(
"libPWGGACaloTrackCorrelations");
212 TString parpar(Form(
"%s.par", pararchivename)) ;
213 if (
gSystem->AccessPathName(pararchivename) ) {
214 TString processline = Form(
".! tar xvzf %s",parpar.Data()) ;
215 gROOT->ProcessLine(processline.Data());
219 gSystem->ChangeDirectory(pararchivename);
222 if (!
gSystem->AccessPathName(
"PROOF-INF/BUILD.sh")) {
223 printf(
"*******************************\n");
224 printf(
"*** Building PAR archive ***\n");
225 cout<<pararchivename<<endl;
226 printf(
"*******************************\n");
228 if (
gSystem->Exec(
"PROOF-INF/BUILD.sh")) {
229 Error(
"runProcess",
"Cannot Build the PAR Archive! - Abort!");
234 if (!
gSystem->AccessPathName(
"PROOF-INF/SETUP.C")) {
235 printf(
"*******************************\n");
236 printf(
"*** Setup PAR archive ***\n");
237 cout<<pararchivename<<endl;
238 printf(
"*******************************\n");
239 gROOT->Macro(
"PROOF-INF/SETUP.C");
242 gSystem->ChangeDirectory(ocwd.Data());
243 printf(
"Current dir: %s\n", ocwd.Data());
254 if(kInputData ==
"ESD") datafileName =
"AliESDs.root" ;
255 else if(kInputData ==
"AOD") datafileName =
"AliAOD.root" ;
256 else if(kInputData ==
"MC") datafileName =
"galice.root" ;
269 cout<<
"INDIR : "<<
kInDir<<endl;
270 cout<<
"NFILES : "<<
kFile<<endl;
276 for (
Int_t iFile = 0 ; iFile <
kFile ; iFile++) {
277 FileName = Form(
"%s/%s%d/%s",
kInDir,
kPattern,iFile,datafileName.Data()) ;
279 TFile * dataFile = 0 ;
281 if ( dataFile = TFile::Open(FileName.Data())) {
282 if ( dataFile->Get(kTreeName) ) {
283 Int_t nEventsPerFile = ((
TTree*) dataFile->Get(kTreeName)) ->GetEntries();
284 printf(
" ++++ Adding %s, with %d events \n", FileName.Data(), nEventsPerFile) ;
285 chain->AddFile(FileName);
289 printf(
"number of entries # %lld \n", chain->GetEntries()) ;
295 else if(mode ==
mGRID)
300 TGrid::Connect(
"alien://") ;
304 TGridCollection * collection = (TGridCollection*) TAlienCollection::Open(
kXML);
306 AliError(Form(
"%s not found",
kXML)) ;
309 TGridResult* result = collection->GetGridResult(
"",0 ,0);
312 printf(
"*** Getting the Chain ***\n");
313 Int_t nEventsPerFile = 0;
314 for (
Int_t index = 0; index < result->GetEntries(); index++) {
315 TString alienURL = result->GetKey(index,
"turl") ;
316 cout <<
"================== " << alienURL << endl ;
317 chain->Add(alienURL) ;
322 gSystem->ChangeDirectory(ocwd.Data());
anaModes
Different analysis modes.
void CreateChain(const anaModes mode, TChain *chain)
Fills chain with data files paths.
const TString calorimeter
void anaM()
Main execution method.
Main class conecting the CaloTrackCorrelations package and Analysis Mixing Frame. ...
void LoadLibraries()
Load analysis libraries. Out of date.
AliAnalysisTaskCaloTrackCorrelationM * AddTaskCaloTrackCorrM(TString data, TString calorimeter, Bool_t kPrintSettings=kFALSE)
const Bool_t kDoESDFilter
void SetupPar(char *pararchivename)
Par files compilation method.