35 char *
kInDir =
"/Users/Gustavo/Work/data/134908/pass1";
41 char *
kXML =
"collection.xml";
65 if(kInputData ==
"ESD") kTreeName =
"esdTree" ;
66 else if(kInputData ==
"AOD") kTreeName =
"aodTree" ;
68 cout<<
"Wrong data type "<<kInputData<<endl;
76 AliLog::SetGlobalLogLevel(AliLog::kError);
84 AliAODHandler* aodoutHandler =
new AliAODHandler();
85 aodoutHandler->SetOutputFileName(
"outputAOD.root");
87 aodoutHandler->SetCreateNonStandardAOD();
90 mgr->SetOutputEventHandler(aodoutHandler);
94 if(kInputData ==
"ESD")
97 AliESDInputHandler *esdHandler =
new AliESDInputHandler();
98 mgr->SetInputEventHandler(esdHandler);
99 esdHandler->SetReadFriends(kFALSE);
100 cout<<
"ESD handler "<<mgr->GetInputEventHandler()<<endl;
102 if(kInputData ==
"AOD")
105 AliAODInputHandler *aodHandler =
new AliAODInputHandler();
106 mgr->SetInputEventHandler(aodHandler);
108 aodHandler->SetMergeEvents(kTRUE);
109 aodHandler->AddFriend(
"AliAOD.root");
112 cout<<
"AOD handler "<<mgr->GetInputEventHandler()<<endl;
121 AliAnalysisDataContainer *cinput1 = mgr->GetCommonInputContainer();
122 AliAnalysisDataContainer *coutput1 = mgr->GetCommonOutputContainer();
126 gROOT->LoadMacro(
"AddTaskPhysicsSelection.C");
127 AliPhysicsSelectionTask* physSelTask = AddTaskPhysicsSelection();
130 gROOT->LoadMacro(
"$ALICE_PHYSICS/PWGPP/EMCAL/macros/AddTaskEMCALClusterize.C");
136 if(
kRun < 122195 || (
kRun > 126437 &&
kRun < 136851) || kMC) calibTT=kFALSE ;
142 Int_t minEseed = 100;
152 minEcell,minEseed,dTime,wTime,unfMinE,unfFrac,
153 calibEnergy,badMap,calibTime,nonlinear);
180 mgr->StartAnalysis(smode.Data(),chain);
182 cout <<
" Analysis ended sucessfully "<< endl ;
185 else cout <<
"Chain was not produced ! "<<endl;
214 gSystem->Load(
"libANALYSISalice");
215 gSystem->Load(
"libANALYSISalice");
220 gSystem->Load(
"libEMCALUtils");
221 gSystem->Load(
"libPWGPPEMCAL");
233 TProof::Open(
"proof://mgheata@lxb6046.cern.ch");
241 gProof->UploadPackage(
"STEERBase.par");
242 gProof->EnablePackage(
"STEERBase");
244 gProof->UploadPackage(
"ESD.par");
245 gProof->EnablePackage(
"ESD");
247 gProof->UploadPackage(
"AOD.par");
248 gProof->EnablePackage(
"AOD");
250 gProof->UploadPackage(
"ANALYSIS.par");
251 gProof->EnablePackage(
"ANALYSIS");
255 gProof->ShowEnabledPackages();
267 TString parpar(Form(
"%s.par", pararchivename)) ;
268 if (
gSystem->AccessPathName(parpar.Data()) ) {
270 TString processline(Form(
".! make %s", parpar.Data())) ;
271 gROOT->ProcessLine(processline.Data()) ;
272 gSystem->ChangeDirectory(cdir) ;
273 processline = Form(
".! mv $ALICE_PHYSICS/%s .", parpar.Data()) ;
274 gROOT->ProcessLine(processline.Data()) ;
276 if (
gSystem->AccessPathName(pararchivename) ) {
277 TString processline = Form(
".! tar xvzf %s",parpar.Data()) ;
278 gROOT->ProcessLine(processline.Data());
282 gSystem->ChangeDirectory(pararchivename);
285 if (!
gSystem->AccessPathName(
"PROOF-INF/BUILD.sh")) {
286 printf(
"*******************************\n");
287 printf(
"*** Building PAR archive ***\n");
288 cout<<pararchivename<<endl;
289 printf(
"*******************************\n");
291 if (
gSystem->Exec(
"PROOF-INF/BUILD.sh")) {
292 Error(
"runProcess",
"Cannot Build the PAR Archive! - Abort!");
297 if (!
gSystem->AccessPathName(
"PROOF-INF/SETUP.C")) {
298 printf(
"*******************************\n");
299 printf(
"*** Setup PAR archive ***\n");
300 cout<<pararchivename<<endl;
301 printf(
"*******************************\n");
302 gROOT->Macro(
"PROOF-INF/SETUP.C");
305 gSystem->ChangeDirectory(ocwd.Data());
306 printf(
"Current dir: %s\n", ocwd.Data());
320 gROOT->LoadMacro(
"$ALICE_PHYSICS/PWG/EMCAL/macros/CreateESDChain.C");
322 chain = CreateESDChain(
"ESD12001.txt", 5);
335 else cout<<
"INDIR not set, use default: "<<
kInDir<<endl;
339 else cout<<
"PATTERN not set, use default: "<<
kPattern<<endl;
343 else cout<<
"NFILES not set, use default: "<<
kFile<<endl;
347 printf(
"Get %d files from directory %s\n",
kFile,
kInDir);
349 printf(
"%s does not exist\n",
kInDir) ;
354 cout<<
"INDIR : "<<
kInDir<<endl;
355 cout<<
"NFILES : "<<
kFile<<endl;
356 cout<<
"PATTERN : " <<
kPattern<<endl;
359 if(kInputData ==
"ESD") datafile =
"AliESDs.root" ;
360 else if(kInputData ==
"AOD") datafile =
"AliAODs.root" ;
361 else if(kInputData ==
"MC") datafile =
"galice.root" ;
368 for (event = 0 ;
event <
kFile ;
event++) {
369 sprintf(file,
"%s/%s%d/%s",
kInDir,
kPattern,event,datafile.Data()) ;
372 if ( fESD = TFile::Open(file)) {
373 if ( fESD->Get(kTreeName) ) {
374 printf(
"++++ Adding %s\n", file) ;
375 chain->AddFile(file);
379 printf(
"---- Skipping %s\n", file) ;
383 printf(
"number of entries # %lld, skipped %d\n", chain->GetEntries(), skipped*100) ;
386 TString input =
"AliESDs.root" ;
387 cout<<
">>>>>> No list added, take a single file <<<<<<<<< "<<input<<endl;
388 chain->AddFile(input);
396 else if(mode ==
mGRID){
403 sprintf(
kXML,
"collection.xml") ;
405 if (!TFile::Open(
kXML)) {
406 printf(
"No collection file with name -- %s -- was found\n",
kXML);
409 else cout<<
"XML file "<<
kXML<<endl;
414 TGrid::Connect(
"alien://") ;
418 TGridCollection * collection = (TGridCollection*) TAlienCollection::Open(
kXML);
420 AliError(Form(
"%s not found",
kXML)) ;
423 TGridResult* result = collection->GetGridResult(
"",0 ,0);
426 printf(
"*** Getting the Chain ***\n");
427 for (
Int_t index = 0; index < result->GetEntries(); index++) {
428 TString alienURL = result->GetKey(index,
"turl") ;
429 cout <<
"================== " << alienURL << endl ;
430 chain->Add(alienURL) ;
434 gSystem->ChangeDirectory(ocwd.Data());
anaModes
Different analysis modes.
void CreateChain(const anaModes mode, TChain *chain)
void LoadLibraries(const anaModes mode)
AliAnalysisTaskEMCALClusterize * AddTaskEMCALClusterize(TString &arrayName, const Bool_t bFillAOD=kFALSE, const Int_t bMC=kFALSE, const Bool_t exotic=kTRUE, const TString name="V1Unfold", const TString trigger="", const Bool_t tm=kTRUE, const Int_t minEcell=50, const Int_t minEseed=100, const Int_t maxDeltaT=250, const Int_t timeWindow=1000, const Int_t minEUnf=15, const Int_t minFrac=1, const Bool_t bRecalE=kTRUE, const Bool_t bBad=kTRUE, const Bool_t bRecalT=kTRUE, const Bool_t bNonLine=kFALSE, const Int_t minCen=-1, const Int_t maxCen=-1, const Float_t clusterEnergyCutEvent=-1, const Int_t nRowDiff=1, const Int_t nColDiff=1, const Bool_t skipOrReject=kFALSE)
void emcalReclusterize(Int_t mode=mLocal)
void SetupPar(char *pararchivename)
Reclusterize EMCal clusters, put them in a new branch for other following analysis.