46 char *
kXML =
"collection.xml";
106 printf(
"*********************************************\n");
107 printf(
"*** Input data < %s >, pass %s, tree < %s >, MC? < %d > ***\n",kInputData.Data(),kPass.Data(),kTreeName.Data(),
kMC);
108 printf(
"*********************************************\n");
115 printf(
"===== kMC %d, chainxs %p\n",
kMC,chainxs);
126 printf(
"n xs files %d",nfiles);
130 Int_t nEventsPerFile = chain->GetEntries() / nfiles;
132 Double_t trials = ntrials / nEventsPerFile ;
134 scale = xsection / trials;
136 printf(
"Get Cross section : nfiles %d, nevents %d, nevents per file %d \n",nfiles, chain->GetEntries(),nEventsPerFile);
137 printf(
" ntrials %d, trials %2.2f, xs %2.2e, scale factor %2.2e\n", ntrials,trials,xsection,scale);
139 if(chainxs->GetEntries()!=chain->GetEntries()) printf(
"CAREFUL: Number of files in data chain %d, in cross section chain %d \n",
140 chainxs->GetEntries(),chain->GetEntries());
144 if( scale <= 0 || !ok)
145 { printf(
"STOP, cross section not available! nfiles %d \n", chainxs->GetEntries() ) ; return ; }
149 printf(
"*********************************************\n");
150 printf(
"number of entries # %lld, skipped %d\n", chain->GetEntries()) ;
151 printf(
"*********************************************\n");
155 printf(
"STOP, no chain available\n");
159 AliLog::SetGlobalLogLevel(AliLog::kError);
164 AliAnalysisGrid *alienHandler=0x0;
168 gROOT->LoadMacro(
"CreateAlienHandler.C");
170 if (!alienHandler)
return;
184 mgr->SetGridHandler(alienHandler);
188 if((
kMC || kInputData ==
"MC") && !kInputData.Contains(
"AOD"))
190 AliMCEventHandler* mcHandler =
new AliMCEventHandler();
191 mcHandler->SetReadTR(kFALSE);
192 mgr->SetMCtruthEventHandler(mcHandler);
193 if( kInputData ==
"MC")
195 cout<<
"MC INPUT EVENT HANDLER"<<endl;
196 mgr->SetInputEventHandler(NULL);
202 if(kInputData!=
"deltaAOD" &&
outAOD)
204 cout<<
"Init output handler"<<endl;
205 AliAODHandler* aodoutHandler =
new AliAODHandler();
206 aodoutHandler->SetOutputFileName(
"aod.root");
208 mgr->SetOutputEventHandler(aodoutHandler);
213 if(kInputData ==
"ESD")
216 AliESDInputHandler *esdHandler =
new AliESDInputHandler();
217 esdHandler->SetReadFriends(kFALSE);
218 mgr->SetInputEventHandler(esdHandler);
219 cout<<
"ESD handler "<<mgr->GetInputEventHandler()<<endl;
221 else if(kInputData.Contains(
"AOD"))
224 AliAODInputHandler *aodHandler =
new AliAODInputHandler();
225 mgr->SetInputEventHandler(aodHandler);
226 if(kInputData ==
"deltaAOD") aodHandler->AddFriend(
"deltaAODCaloTrackCorr.root");
227 cout<<
"AOD handler "<<mgr->GetInputEventHandler()<<endl;
233 TString outputFile = AliAnalysisManager::GetCommonFileName();
240 if(kInputData==
"ESD" && !
kMC)
242 gROOT->LoadMacro(
"$ALICE_PHYSICS/OADB/macros/AddTaskPhysicsSelection.C");
243 AliPhysicsSelectionTask* physSelTask = AddTaskPhysicsSelection(
kMC);
247 if(kCollision==
"PbPb" && kInputData==
"ESD" &&
kRun < 200000)
249 gROOT->LoadMacro(
"$ALICE_PHYSICS/OADB/macros/AddTaskCentrality.C");
250 AliCentralitySelectionTask *taskCentrality = AddTaskCentrality();
255 gROOT->LoadMacro(
"$ALICE_PHYSICS/OADB/COMMON/MULTIPLICITY/macros/AddTaskMultSelection.C");
256 AliMultSelectionTask * task = AddTaskMultSelection(kFALSE);
259 task->SetUseDefaultCalib(kTRUE);
260 task->SetUseDefaultMCCalib(kTRUE);
263 if(kCollision==
"PbPb")
265 gROOT->LoadMacro(
"$ALICE_ROOT/ANALYSIS/macros/AddTaskVZEROEPSelection.C");
266 AliVZEROEPSelectionTask * EPV0 = AddTaskVZEROEPSelection();
268 gROOT->LoadMacro(
"$ALICE_ROOT/ANALYSIS/macros/AddTaskEventplane.C");
269 AliEPSelectionTask * EP = AddTaskEventplane();
276 gROOT->LoadMacro(
"$ALICE_PHYSICS/PWGGA/CaloTrackCorrelations/macros/AddTaskCounter.C");
287 if(kCollision==
"PbPb")
324 gROOT->LoadMacro(
"AddTaskCaloTrackCorr.C");
325 gROOT->LoadMacro(
"$ALICE_PHYSICS/PWGPP/EMCAL/macros/AddTaskEMCALClusterize.C");
337 if(
kRun < 122195 || (
kRun > 126437 &&
kRun < 136851) ||
kMC) calibTT=kFALSE ;
342 printf(
"==================================== \n");
343 printf(
"CONFIGURE ANALYSIS FOR PP COLLISIONS \n");
344 printf(
"==================================== \n");
354 Int_t minEseed = 100;
372 Bool_t selectEvents = kFALSE;
381 minEcell,minEseed,dTime,wTime,unfMinE,unfFrac,
382 calibEE,badMap,calibTT,clnonlin);
384 printf(
"Name of clusterizer1 array: %s\n",arrayNameV1.Data());
391 -1,-1, qa, hadron,calibEE,badMap,calibTT,deltaAOD,
kPrint,scale,
kRun);
396 -1,-1, qa, hadron,calibEE,badMap,calibTT,deltaAOD,
kPrint,scale,
kRun);
403 minEcell,minEseed,dTime,wTime,
404 calibEE,badMap,calibTT,clnonlin);
406 printf(
"Name of clusterizer2 array: %s\n",arrayNameV2.Data());
415 -1,-1,qa,hadron,calibEE,badMap,calibTT,deltaAOD,
kPrint,scale,
kRun);
421 -1,-1, qa, hadron,calibEE,badMap,calibTT,deltaAOD,
kPrint,scale,
kRun);
424 if(kCollision==
"PbPb")
426 printf(
"====================================== \n");
427 printf(
"CONFIGURE ANALYSIS FOR PbPb COLLISIONS \n");
428 printf(
"====================================== \n");
436 Int_t minEcell = 150;
437 Int_t minEseed = 300;
454 Bool_t selectEvents = kFALSE;
462 minEcell,minEseed,dTime,wTime,unfMinE,unfFrac,
463 calibEE,badMap,calibTT,clnonlin);
465 printf(
"Name of clusterizer1 array: %s\n",arrayNameV1.Data());
471 0,20,qa,hadron,calibEE,badMap,calibTT,deltaAOD,
kPrint,scale,
kRun);
474 20,40,qa,hadron,calibEE,badMap,calibTT,deltaAOD,
kPrint,scale,
kRun);
477 60,80,qa,hadron,calibEE,badMap,calibTT,deltaAOD,
kPrint,scale,
kRun);
484 minEcell,minEseed,dTime,wTime,unfMinE,unfFrac,
485 calibEE,badMap,calibTT,clnonlin);
487 printf(
"Name of clusterizer2 array: %s\n",arrayNameV2.Data());
496 0,20,qa,hadron,calibEE,badMap,calibTT,deltaAOD,
kPrint,scale,
kRun);
499 20,40,qa,hadron,calibEE,badMap,calibTT,deltaAOD,
kPrint,scale,
kRun);
502 60,80,qa,hadron,calibEE,badMap,calibTT,deltaAOD,
kPrint,scale,
kRun);
507 0,20,qa,hadron,calibEE,badMap,calibTT,deltaAOD,
kPrint,scale,
kRun);
510 20,40,qa,hadron,calibEE,badMap,calibTT,deltaAOD,
kPrint,scale,
kRun);
513 60,80,qa,hadron,calibEE,badMap,calibTT,deltaAOD,
kPrint,scale,
kRun);
525 else if (
mode ==
mPROOF ) mgr->StartAnalysis(
"proof",chain);
526 else mgr->StartAnalysis(
"local",chain);
528 cout <<
" Analysis ended sucessfully "<< endl ;
539 gROOT->LoadMacro(
"/afs/in2p3.fr/group/alice/laf/EnableAliRootForLAF.C");
540 TProof* proof = EnableAliRootForLAF(
"ccaplmaster",nPROOFWorkers.Data(),ccin2p3UserName.Data(),alienUserName.Data(),
"",kFALSE,kTRUE,kTRUE,
"OADB:ANALYSIS:ANALYSISalice:AOD:ESD:CORRFW:STEERBase:EMCALUtils:PHOSUtils:PWGCaloTrackCorrBase:PWGGACaloTrackCorrelations:PWGPPEMCAL");
592 gSystem->AddIncludePath(
"-I$ALICE_ROOT");
593 gSystem->AddIncludePath(
"-I$ALICE_PHYSICS");
594 gSystem->AddIncludePath(
"-I./");
606 TString parpar(Form(
"%s.par", pararchivename)) ;
608 if (
gSystem->AccessPathName(pararchivename) )
610 TString processline = Form(
".! tar xvzf %s",parpar.Data()) ;
611 gROOT->ProcessLine(processline.Data());
615 gSystem->ChangeDirectory(pararchivename);
618 if (!
gSystem->AccessPathName(
"PROOF-INF/BUILD.sh"))
620 printf(
"*******************************\n");
621 printf(
"*** Building PAR archive ***\n");
622 cout<<pararchivename<<endl;
623 printf(
"*******************************\n");
625 if (
gSystem->Exec(
"PROOF-INF/BUILD.sh"))
627 Error(
"runProcess",
"Cannot Build the PAR Archive! - Abort!");
632 if (!
gSystem->AccessPathName(
"PROOF-INF/SETUP.C"))
634 printf(
"*******************************\n");
635 printf(
"*** Setup PAR archive ***\n");
636 cout<<pararchivename<<endl;
637 printf(
"*******************************\n");
638 gROOT->Macro(
"PROOF-INF/SETUP.C");
641 gSystem->ChangeDirectory(ocwd.Data());
642 printf(
"Current dir: %s\n", ocwd.Data());
662 else cout<<
"INDIR not set, use default: "<<
kInDir<<endl;
665 if (sindir.Contains(
"pass1")) kPass =
"pass1";
666 else if(sindir.Contains(
"pass2")) kPass =
"pass2";
667 else if(sindir.Contains(
"pass3")) kPass =
"pass3";
671 else cout<<
"PATTERN not set, use default: "<<
kPattern<<endl;
673 cout<<
"INDIR : "<<
kInDir<<endl;
674 cout<<
"NFILES : "<<
kFile<<endl;
680 for (
Int_t event = 0 ;
event <
kFile ;
event++) {
684 sprintf(fileEm,
"%s/%s%d/embededAOD.root",
kInDir,
kPattern,event) ;
686 TFile * fESD = TFile::Open(fileE) ;
687 TFile * fAOD = TFile::Open(fileA) ;
692 kTreeName =
"esdTree";
694 TFile * fG = TFile::Open(fileG);
695 if(fG) {
kMC = kTRUE; fG->Close();}
699 TTree* esdTree = (
TTree*)fESD->Get(
"esdTree");
701 esd->ReadFromTree(esdTree);
702 esdTree->GetEvent(0);
703 kRun = esd->GetRunNumber();
709 kTreeName =
"aodTree";
711 if(((
TTree*) fAOD->Get(
"aodTree"))->GetBranch(
"mcparticles"))
kMC=kTRUE;
715 TTree* aodTree = (
TTree*)fAOD->Get(
"aodTree");
717 aod->ReadFromTree(aodTree);
718 aodTree->GetEvent(0);
719 kRun = aod->GetRunNumber();
722 else if(TFile::Open(fileEm))
724 kTreeName =
"aodTree";
730 else if(TFile::Open(fileG))
739 if(fESD) fESD->Close();
740 if(fAOD) fAOD->Close();
747 else if(mode ==
mGRID){
754 sprintf(
kXML,
"collection.xml") ;
756 if (!TFile::Open(
kXML)) {
757 printf(
"No collection file with name -- %s -- was found\n",
kXML);
760 else cout<<
"XML file "<<
kXML<<endl;
765 TGrid::Connect(
"alien://") ;
768 TGridCollection * collection = (TGridCollection*) TAlienCollection::Open(
kXML);
770 AliError(Form(
"%s not found",
kXML)) ;
773 TGridResult* result = collection->GetGridResult(
"",0 ,0);
775 for (
Int_t index = 0; index < result->GetEntries(); index++) {
776 TString alienURL = result->GetKey(index,
"turl") ;
777 cout <<
"================== " << alienURL << endl ;
779 if (alienURL.Contains(
"pass1")) kPass =
"pass1";
780 else if(alienURL.Contains(
"pass2")) kPass =
"pass2";
781 else if(alienURL.Contains(
"pass3")) kPass =
"pass3";
783 kRun = AliAnalysisManager::GetRunFromAlienPath(alienURL.Data());
784 printf(
"Run number from alien path = %d\n",
kRun);
788 if (alienURL.Contains(
"AliESDs.root"))
790 kTreeName =
"esdTree";
792 alienURL.ReplaceAll(
"AliESDs.root",
"galice.root");
793 if(TFile::Open(alienURL))
kMC=kTRUE;
797 else if(alienURL.Contains(
"AliAOD.root"))
799 kTreeName =
"aodTree";
801 fAOD = TFile::Open(alienURL);
802 if(((
TTree*) fAOD->Get(
"aodTree"))->GetBranch(
"mcparticles"))
kMC=kTRUE;
806 else if(alienURL.Contains(
"embededAOD.root"))
808 kTreeName =
"aodTree";
813 else if(alienURL.Contains(
"galice.root"))
827 TFileCollection* coll = gProof->GetDataSet(
kDatasetPROOF)->GetStagedSubset();
829 TIter iter(coll->GetList());
831 TFileInfo* fileInfo = 0;
832 while ((fileInfo = dynamic_cast<TFileInfo*> (iter())))
834 if (fileInfo->GetFirstUrl()) {
835 TString ProofURL = fileInfo->GetFirstUrl()->GetUrl();
836 cout <<
"================== " << ProofURL << endl ;
838 if (ProofURL.Contains(
"pass1")) kPass =
"pass1";
839 else if(ProofURL.Contains(
"pass2")) kPass =
"pass2";
840 else if(ProofURL.Contains(
"pass3")) kPass =
"pass3";
842 kRun = AliAnalysisManager::GetRunFromAlienPath(ProofURL.Data());
843 printf(
"Run number from alien path = %d\n",
kRun);
847 if (ProofURL.Contains(
"AliESDs.root"))
849 kTreeName =
"esdTree";
851 alienURL.ReplaceAll(
"AliESDs.root",
"galice.root");
852 if(TFile::Open(ProofURL))
kMC=kTRUE;
857 else if(ProofURL.Contains(
"AliAOD.root"))
859 kTreeName =
"aodTree";
861 fAOD = TFile::Open(ProofURL);
862 if(((
TTree*) fAOD->Get(
"aodTree"))->GetBranch(
"mcparticles"))
kMC=kTRUE;
866 else if(ProofURL.Contains(
"embededAOD.root"))
868 kTreeName =
"aodTree";
873 else if(ProofURL.Contains(
"galice.root"))
884 gSystem->ChangeDirectory(ocwd.Data());
894 if(kInputData ==
"AOD")
911 else cout<<
"INDIR not set, use default: "<<
kInDir<<endl;
915 else cout<<
"PATTERN not set, use default: "<<
kPattern<<endl;
919 else cout<<
"NFILES not set, use default: "<<
kFile<<endl;
924 printf(
"Get %d files from directory %s\n",
kFile,
kInDir);
927 printf(
"%s does not exist\n",
kInDir) ;
934 char * kGener =
gSystem->Getenv(
"GENER");
937 cout<<
"GENER "<<kGener<<endl;
938 if (!strcmp(kGener,
"PYTHIA"))
kXSFileName =
"pyxsec.root";
939 else if(!strcmp(kGener,
"HERWIG"))
kXSFileName =
"hexsec.root";
940 else cout<<
" UNKNOWN GENER, use default: "<<
kXSFileName<<endl;
942 else cout<<
" GENER not set, use default xs file name: "<<
kXSFileName<<endl;
944 if(kInputData==
"AOD")
951 cout<<
"INDIR : "<<
kInDir <<endl;
952 cout<<
"NFILES : "<<
kFile <<endl;
953 cout<<
"PATTERN : "<<
kPattern <<endl;
957 if (kInputData ==
"ESD") datafile =
"AliESDs.root" ;
958 else if(kInputData.Contains(
"AOD")) datafile =
"AliAOD.root" ;
959 else if(kInputData ==
"MC") datafile =
"galice.root" ;
967 for (event = 0 ;
event <
kFile ;
event++) {
968 sprintf(file,
"%s/%s%d/%s",
kInDir,
kPattern,event,datafile.Data()) ;
972 if ( fData = TFile::Open(file))
974 if ( fData->Get(kTreeName) )
976 printf(
"++++ Adding %s\n", file) ;
977 chain->AddFile(file);
979 if(kInputData !=
"AOD")
981 chainxs->Add(filexs) ;
985 TFile* fxsec = TFile::Open(filexs);
988 TKey* key = (TKey*)fxsec->GetListOfKeys()->At(0);
1004 Float_t xsection = ((TProfile*)list->FindObject(
"h1Xsec")) ->GetBinContent(1);
1005 Int_t ntrials = ((TH1F*) list->FindObject(
"h1Trials"))->GetBinContent(1);
1008 xsArr->SetAt(xsection,event);
1009 trArr->SetAt(ntrials,event);
1011 printf(
"recovered xs %f, ntrials %d, event %d\n",xsection,ntrials, event);
1021 printf(
"---- Skipping %s\n", file) ;
1027 TString input =
"AliESDs.root" ;
1028 cout<<
">>>>>> No list added, take a single file <<<<<<<<< "<<input<<endl;
1029 chain->AddFile(input);
1037 else if(mode ==
mGRID)
1043 TGridCollection * collection = (TGridCollection*) TAlienCollection::Open(
kXML);
1045 AliError(Form(
"%s not found",
kXML)) ;
1049 TGridResult* result = collection->GetGridResult(
"",0 ,0);
1052 printf(
"*** Getting the Chain ***\n");
1053 for (
Int_t index = 0; index < result->GetEntries(); index++) {
1054 TString alienURL = result->GetKey(index,
"turl") ;
1055 cout <<
"================== " << alienURL << endl ;
1056 chain->Add(alienURL) ;
1058 if(kInputData !=
"AOD")
1062 chainxs->Add(alienURL) ;
1066 alienURL.ReplaceAll(
"AliESDs.root",
"pyxsec_hists.root");
1067 alienURL.ReplaceAll(
"AliAOD.root",
"pyxsec_hists.root");
1068 TFile* fxsec = TFile::Open(alienURL);
1071 TKey* key = (TKey*)fxsec->GetListOfKeys()->At(0);
1087 Float_t xsection = ((TProfile*)list->FindObject(
"h1Xsec")) ->GetBinContent(1);
1088 Int_t ntrials = ((TH1F*) list->FindObject(
"h1Trials"))->GetBinContent(1);
1091 xsArr->SetAt(xsection,event);
1092 trArr->SetAt(ntrials,event);
1094 printf(
"recovered xs %f, ntrials %d, event %d\n",xsection,ntrials, event);
1106 TFileCollection* ds= gProof->GetDataSet(
kDatasetPROOF)->GetStagedSubset();
1108 gROOT->LoadMacro(
"/afs/in2p3.fr/group/alice/laf/dataset_management/CreateChainFromDataSet.C");
1110 printf(
"chain has %d entries\n",chain->GetEntries());
1113 gSystem->ChangeDirectory(ocwd.Data());
1125 Bool_t bRecalibrate = kFALSE;
1126 Bool_t bBadChannel = kFALSE;
1128 for (
int i=0; i< gApplication->Argc();i++){
1132 printf(
"Arg %d: %s\n",i,gApplication->Argv(i));
1138 if (!(strcmp(gApplication->Argv(i),
"--trigger")))
1139 sprintf(trigger,gApplication->Argv(i+1));
1141 if (!(strcmp(gApplication->Argv(i),
"--recalibrate")))
1142 bRecalibrate = atoi(gApplication->Argv(i+1));
1144 if (!(strcmp(gApplication->Argv(i),
"--badchannel")))
1145 bBadChannel = atoi(gApplication->Argv(i+1));
1147 if (!(strcmp(gApplication->Argv(i),
"--run")))
1149 sRun = gApplication->Argv(i+1);
1150 if(sRun.Contains(
"LHC10")) {
1155 kRun = atoi(gApplication->Argv(i+1));
1157 else printf(
"** Run number already set to %d, do not set to %d\n",
kRun,atoi(gApplication->Argv(i+1)));
1166 if(
kRun >= 136851 ) kCollision =
"PbPb";
1168 else if(
kRun < 170600)
1171 if(
kRun >= 166500 ) kCollision =
"PbPb";
1173 else if(
kRun < 200000 )
1176 if(
kRun >= 194000 ) kCollision =
"pPb";
1178 else if(
kRun < 247000 )
1181 if(
kRun >= 244820 ) kCollision =
"PbPb";
1190 printf(
"*********************************************\n");
1193 printf(
"*** Settings year %d, collision %s, run %d ***\n",
kYear,kCollision.Data(),
kRun);
1194 printf(
"*********************************************\n");
1222 if( kInputData !=
"AOD" && tree))
1224 nfiles = tree->GetEntries() ;
1226 tree->SetBranchAddress(
"xsection",&xsection);
1227 tree->SetBranchAddress(
"ntrials" ,&ntrials );
1228 for(
Int_t i = 0; i < nfiles; i++)
1237 cout <<
"xsection " <<xsection<<
" ntrials "<<ntrials<<endl;
1240 else if( kInputData ==
"AOD" &&
xsArr))
1242 nfiles =
xsArr->GetSize();
1244 for(
Int_t i = 0; i < nfiles; i++)
1246 if(
xsArr->GetAt(i) > 0)
1248 xs +=
xsArr->GetAt(i) ;
1249 ntr += trArr->GetAt(i) ;
1252 cout <<
"xsection " <<
xsArr->GetAt(i)<<
" ntrials "<<trArr->GetAt(i)<<endl;
1259 cout <<
"-----------------------------------------------------------------"<<endl;
1260 cout <<
"Average of "<< n <<
" files: xsection " <<xs<<
" ntrials "<<ntr<<endl;
1261 cout <<
"-----------------------------------------------------------------"<<endl;
Analyze locally files in your computer.
void ana(Int_t mode=mGRID)
anaModes
Different analysis modes.
Bool_t GetAverageXsection(TTree *tree, Double_t &xs, Float_t &ntr, Int_t &n)
void LoadLibraries(Int_t mode)
Load analysis libraries.
Count events with different selection criteria.
void CreateChain(const anaModes mode, TChain *chain, TChain *chainxs)
Fills chain with data files paths.
Bool_t kPrint
Global variables to be accessed by the different methods.
char * kPattern
Global, path to data files.
TList * list
TDirectory file where lists per trigger are stored in train ouput.
TArrayF * xsArr
Name of file with pT-hard cross sections.
Int_t kYear
ESD, AOD, MC, deltaAOD.
void CheckEnvironmentVariables()
TString kTreeName
Some tasks doesnt need it.
void CheckInputData(const anaModes mode)
Sets input data and tree strings.
AliAnalysisTaskCounter * AddTaskCounter(const TString trigger="", Bool_t xsOn=kFALSE)
AliAnalysisAlien * CreateAlienHandler()
Analyze files on GRID with Plugin.
Analyze files on GRID with Plugin.
void SetupPar(char *pararchivename)
Main class conecting the CaloTrackCorrelations package and Analysis Frame.
TFile * file
TList with histograms for a given trigger.
const char * kXSFileName
Global name for the xml collection file with data on grid.
AliAnalysisTaskCaloTrackCorrelation * AddTaskCaloTrackCorr(const TString data="", const TString calorimeter="EMCAL", const Bool_t simulation=kFALSE, const Bool_t eventsel=kFALSE, const Bool_t exotic=kTRUE, const Bool_t nonlin=kFALSE, TString outputfile="", const Int_t year=2010, const TString col="pp", const TString trigger="MB", const TString clustersArray="V1", const Bool_t mix=kTRUE, const Bool_t recaltm=kTRUE, const Bool_t tm=kTRUE, const Int_t minCen=-1, const Int_t maxCen=-1, const Bool_t qaan=kFALSE, const Bool_t hadronan=kFALSE, const Bool_t calibE=kTRUE, const Bool_t badmap=kTRUE, const Bool_t calibT=kTRUE, const Bool_t tender=kFALSE, const Bool_t outputAOD=kFALSE, const Bool_t printSettings=kFALSE, const Double_t scaleFactor=-1, const Int_t runNumber=-1)
Int_t kFile
Data are in files kInDir/kPattern+i.
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 Int_t tm=1, 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, const Int_t tCardMimic=kFALSE, const Bool_t cellUpd=kTRUE)
TString kInputData
With real data kMC = kFALSE.
Reclusterize EMCal clusters, put them in a new branch for other following analysis.
char * kDatasetPROOF
Number of files to analyze in local mode.