23 char *
kInDir =
"/Users/ymao/group/ana/7TeV/corr";
28 char *
kXML =
"collection.xml";
58 if(kInputData ==
"ESD") kTreeName =
"esdTree" ;
59 else if(kInputData ==
"AOD") kTreeName =
"aodTree" ;
60 else if (kInputData ==
"MC") kTreeName =
"TE" ;
62 cout<<
"Wrong data type "<<kInputData<<endl;
69 cout<<
"Chain created"<<endl;
73 AliLog::SetGlobalLogLevel(AliLog::kError);
80 if( (
kMC && (kInputData ==
"ESD")) || kInputData ==
"MC"){
81 AliMCEventHandler* mcHandler =
new AliMCEventHandler();
82 mcHandler->SetReadTR(kFALSE);
83 mgr->SetMCtruthEventHandler(mcHandler);
84 if( kInputData ==
"MC") mgr->SetInputEventHandler(NULL);
93 Int_t maxiterations = 1;
94 AliEventPoolLoop* pool =
new AliEventPoolLoop(maxiterations);
95 pool->SetChain(chain);
96 Int_t eventsInPool = 10;
97 AliMultiEventInputHandler *inpHandler = NULL ;
98 if(kInputData ==
"ESD"){
100 printf(
"ESD MultiInput \n");
101 inpHandler =
new AliMultiEventInputHandler(eventsInPool, 0);
103 if(kInputData ==
"AOD"){
105 inpHandler =
new AliMultiEventInputHandler(eventsInPool, 1);
107 mgr->SetInputEventHandler(inpHandler);
108 cout<<
"Input handler "<<mgr->GetInputEventHandler()<<endl;
109 mgr->SetEventPool(pool);
110 inpHandler->SetEventPool(pool);
127 gROOT->LoadMacro(
"AddTaskCaloTrackCorrM.C");
131 mgr->AddTask(taskEMCAL);
135 mgr->AddTask(taskPHOS);
141 mgr->AddTask(taskCharge);
149 mgr->StartAnalysis(
"mix",chain);
151 cout <<
" Analysis ended sucessfully "<< endl ;
153 else cout <<
"Chain was not produced ! "<<endl;
182 SetupPar(
"PWGGACaloTrackCorrelations");
193 gSystem->Load(
"libANALYSISalice");
195 gSystem->Load(
"libEMCALUtils");
196 gSystem->Load(
"libPWGCaloTrackCorrBase");
197 gSystem->Load(
"libPWGGACaloTrackCorrelations");
211 TString parpar(Form(
"%s.par", pararchivename)) ;
212 if (
gSystem->AccessPathName(pararchivename) ) {
213 TString processline = Form(
".! tar xvzf %s",parpar.Data()) ;
214 gROOT->ProcessLine(processline.Data());
218 gSystem->ChangeDirectory(pararchivename);
221 if (!
gSystem->AccessPathName(
"PROOF-INF/BUILD.sh")) {
222 printf(
"*******************************\n");
223 printf(
"*** Building PAR archive ***\n");
224 cout<<pararchivename<<endl;
225 printf(
"*******************************\n");
227 if (
gSystem->Exec(
"PROOF-INF/BUILD.sh")) {
228 Error(
"runProcess",
"Cannot Build the PAR Archive! - Abort!");
233 if (!
gSystem->AccessPathName(
"PROOF-INF/SETUP.C")) {
234 printf(
"*******************************\n");
235 printf(
"*** Setup PAR archive ***\n");
236 cout<<pararchivename<<endl;
237 printf(
"*******************************\n");
238 gROOT->Macro(
"PROOF-INF/SETUP.C");
241 gSystem->ChangeDirectory(ocwd.Data());
242 printf(
"Current dir: %s\n", ocwd.Data());
253 if(kInputData ==
"ESD") datafileName =
"AliESDs.root" ;
254 else if(kInputData ==
"AOD") datafileName =
"AliAOD.root" ;
255 else if(kInputData ==
"MC") datafileName =
"galice.root" ;
268 cout<<
"INDIR : "<<
kInDir<<endl;
269 cout<<
"NFILES : "<<
kFile<<endl;
275 for (
Int_t iFile = 0 ; iFile <
kFile ; iFile++) {
276 FileName = Form(
"%s/%s%d/%s",
kInDir,
kPattern,iFile,datafileName.Data()) ;
278 TFile * dataFile = 0 ;
280 if ( dataFile = TFile::Open(FileName.Data())) {
281 if ( dataFile->Get(kTreeName) ) {
282 Int_t nEventsPerFile = ((
TTree*) dataFile->Get(kTreeName)) ->GetEntries();
283 printf(
" ++++ Adding %s, with %d events \n", FileName.Data(), nEventsPerFile) ;
284 chain->AddFile(FileName);
288 printf(
"number of entries # %lld \n", chain->GetEntries()) ;
294 else if(mode ==
mGRID)
299 TGrid::Connect(
"alien://") ;
303 TGridCollection * collection = (TGridCollection*) TAlienCollection::Open(
kXML);
305 AliError(Form(
"%s not found",
kXML)) ;
308 TGridResult* result = collection->GetGridResult(
"",0 ,0);
311 printf(
"*** Getting the Chain ***\n");
312 Int_t nEventsPerFile = 0;
313 for (
Int_t index = 0; index < result->GetEntries(); index++) {
314 TString alienURL = result->GetKey(index,
"turl") ;
315 cout <<
"================== " << alienURL << endl ;
316 chain->Add(alienURL) ;
321 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.