15 #if !defined(__CINT__) || defined(__MAKECINT__) 18 #include <Riostream.h> 24 #include <TApplication.h> 30 #include "TGridCollection.h" 31 #include "TAlienCollection.h" 32 #include "TGridResult.h" 39 #include "AliAnalysisGrid.h" 40 #include "AliAnalysisManager.h" 41 #include "AliMCEventHandler.h" 42 #include "AliAnalysisTaskSE.h" 43 #include "AliESDEvent.h" 44 #include "AliAODEvent.h" 45 #include "AliESDInputHandler.h" 46 #include "AliAODInputHandler.h" 47 #include "AliAODHandler.h" 48 #include "AliMultiInputEventHandler.h" 49 #include "AliAnalysisDataContainer.h" 50 #include "AliESDtrack.h" 51 #include "AliAODTrack.h" 60 #include "AliPhysicsSelection.h" 61 #include "AliPhysicsSelectionTask.h" 62 #include "AddTaskPhysicsSelection.C" 67 #include "AliMultSelectionTask.h" 68 #include "AddTaskMultSelection.C" 87 #include "AddTaskCDBconnect.C" 93 #include "AddTaskEmcalCorrectionTask.C" 112 char *
kInDir = (
char*)
"/user/data/files/";
128 char *
kXML = (
char*)
"collection.xml";
171 TString parpar(Form(
"%s.par", pararchivename)) ;
173 if (
gSystem->AccessPathName(pararchivename) )
175 TString processline = Form(
".! tar xvzf %s",parpar.Data()) ;
176 gROOT->ProcessLine(processline.Data());
180 gSystem->ChangeDirectory(pararchivename);
183 if ( !
gSystem->AccessPathName(
"PROOF-INF/BUILD.sh") )
185 printf(
"*******************************\n");
186 printf(
"*** Building PAR archive ***\n");
187 cout<<pararchivename<<endl;
188 printf(
"*******************************\n");
190 if (
gSystem->Exec(
"PROOF-INF/BUILD.sh") )
192 Error(
"runProcess",
"Cannot Build the PAR Archive! - Abort!");
197 if ( !
gSystem->AccessPathName(
"PROOF-INF/SETUP.C") )
199 printf(
"*******************************\n");
200 printf(
"*** Setup PAR archive ***\n");
201 cout<<pararchivename<<endl;
202 printf(
"*******************************\n");
203 gROOT->Macro(
"PROOF-INF/SETUP.C");
206 gSystem->ChangeDirectory(ocwd.Data());
207 printf(
"Current dir: %s\n", ocwd.Data());
226 if (
gSystem->Getenv(
"INDIR") )
229 cout<<
"INDIR not set, use default: "<<
kInDir<<endl;
232 if ( sindir.Contains(
"pass1") ) kPass =
"pass1";
233 else if ( sindir.Contains(
"pass2") ) kPass =
"pass2";
234 else if ( sindir.Contains(
"pass3") ) kPass =
"pass3";
235 else if ( sindir.Contains(
"pass4") ) kPass =
"pass4";
237 if (
gSystem->Getenv(
"PATTERN") )
240 cout<<
"PATTERN not set, use default: "<<
kPattern<<endl;
242 cout<<
"INDIR : "<<
kInDir<<endl;
243 cout<<
"NFILES : "<<
kFile<<endl;
249 for (
Int_t event = 0 ;
event <
kFile ;
event++)
254 sprintf(fileEm,
"%s/%s%d/embededAOD.root",
kInDir,
kPattern,event) ;
256 TFile * fESD = TFile::Open(fileE) ;
257 TFile * fAOD = TFile::Open(fileA) ;
262 kTreeName =
"esdTree";
264 TFile * fG = TFile::Open(fileG);
265 if(fG) {
kMC = kTRUE; fG->Close();}
269 TTree* esdTree = (
TTree*)fESD->Get(
"esdTree");
271 esd->ReadFromTree(esdTree);
272 esdTree->GetEvent(0);
273 kRun = esd->GetRunNumber();
279 kTreeName =
"aodTree";
281 if(((
TTree*) fAOD->Get(
"aodTree"))->GetBranch(
"mcparticles"))
kMC=kTRUE;
285 TTree* aodTree = (
TTree*)fAOD->Get(
"aodTree");
287 aod->ReadFromTree(aodTree);
288 aodTree->GetEvent(0);
289 kRun = aod->GetRunNumber();
292 else if ( TFile::Open(fileEm) )
294 kTreeName =
"aodTree";
300 else if ( TFile::Open(fileG) )
308 if ( fESD ) fESD->Close();
309 if ( fAOD ) fAOD->Close();
317 else if ( mode ==
mGRID )
324 sprintf(
kXML,
"collection.xml") ;
326 if ( !TFile::Open(
kXML) )
328 printf(
"No collection file with name -- %s -- was found\n",
kXML);
332 cout<<
"XML file "<<
kXML<<endl;
337 TGrid::Connect(
"alien://") ;
340 TGridCollection * collection = (TGridCollection*) TAlienCollection::Open(
kXML);
343 printf(
"%s not found\n",
kXML) ;
347 TGridResult* result = collection->GetGridResult(
"",0 ,0);
349 for (
Int_t index = 0; index < result->GetEntries(); index++)
351 TString alienURL = result->GetKey(index,
"turl") ;
352 cout <<
"================== " << alienURL << endl ;
354 if (alienURL.Contains(
"pass1")) kPass =
"pass1";
355 else if(alienURL.Contains(
"pass2")) kPass =
"pass2";
356 else if(alienURL.Contains(
"pass3")) kPass =
"pass3";
357 else if(alienURL.Contains(
"pass4")) kPass =
"pass4";
359 kRun = AliAnalysisManager::GetRunFromAlienPath(alienURL.Data());
360 printf(
"Run number from alien path = %d\n",
kRun);
364 if ( alienURL.Contains(
"AliESDs.root") )
366 kTreeName =
"esdTree";
368 alienURL.ReplaceAll(
"AliESDs.root",
"galice.root");
369 if(TFile::Open(alienURL))
kMC=kTRUE;
373 else if ( alienURL.Contains(
"AliAOD.root") )
375 kTreeName =
"aodTree";
377 fAOD = TFile::Open(alienURL);
378 if(((
TTree*) fAOD->Get(
"aodTree"))->GetBranch(
"mcparticles"))
kMC=kTRUE;
382 else if ( alienURL.Contains(
"embededAOD.root") )
384 kTreeName =
"aodTree";
389 else if ( alienURL.Contains(
"galice.root") )
462 gSystem->ChangeDirectory(ocwd.Data());
472 if ( kInputData ==
"AOD" )
487 if (
gSystem->Getenv(
"INDIR") )
490 cout<<
"INDIR not set, use default: "<<
kInDir<<endl;
492 if (
gSystem->Getenv(
"PATTERN") )
495 cout<<
"PATTERN not set, use default: "<<
kPattern<<endl;
497 if (
gSystem->Getenv(
"NFILES") )
500 cout<<
"NFILES not set, use default: "<<
kFile<<endl;
505 printf(
"Get %d files from directory %s\n",
kFile,
kInDir);
509 printf(
"%s does not exist\n",
kInDir) ;
517 char * kGener = (
char*)
gSystem->Getenv(
"GENER");
520 cout<<
"GENER "<<kGener<<endl;
521 if (!strcmp(kGener,
"PYTHIA"))
kXSFileName =
"pyxsec.root";
522 else if(!strcmp(kGener,
"HERWIG"))
kXSFileName =
"hexsec.root";
523 else cout<<
" UNKNOWN GENER, use default: "<<
kXSFileName<<endl;
526 cout<<
" GENER not set, use default xs file name: "<<
kXSFileName<<endl;
528 if ( kInputData ==
"AOD" )
535 cout<<
"INDIR : "<<
kInDir <<endl;
536 cout<<
"NFILES : "<<
kFile <<endl;
537 cout<<
"PATTERN : "<<
kPattern <<endl;
541 if (kInputData ==
"ESD") datafile =
"AliESDs.root" ;
542 else if(kInputData.Contains(
"AOD")) datafile =
"AliAOD.root" ;
543 else if(kInputData ==
"MC") datafile =
"galice.root" ;
551 for (event = 0 ;
event <
kFile ;
event++)
553 sprintf(file,
"%s/%s%d/%s",
kInDir,
kPattern,event,datafile.Data()) ;
556 TFile * fData = TFile::Open(file) ;
560 if ( fData->Get(kTreeName) )
562 printf(
"++++ Adding %s\n", file) ;
563 chain->AddFile(file);
565 if(kInputData !=
"AOD")
567 chainxs->Add(filexs) ;
571 TFile* fxsec = TFile::Open(filexs);
574 TKey* key = (TKey*)fxsec->GetListOfKeys()->At(0);
582 TList *list =
dynamic_cast<TList*
>(key->ReadObj());
590 Float_t xsection = ((TProfile*)list->FindObject(
"h1Xsec")) ->GetBinContent(1);
591 Int_t ntrials = ((TH1F*) list->FindObject(
"h1Trials"))->GetBinContent(1);
594 xsArr->SetAt(xsection,event);
595 trArr->SetAt(ntrials,event);
597 printf(
"recovered xs %f, ntrials %d, event %d\n",xsection,ntrials, event);
606 printf(
"---- Skipping %s\n", file) ;
613 TString input =
"AliESDs.root" ;
614 cout<<
">>>>>> No list added, take a single file <<<<<<<<< "<<input<<endl;
615 chain->AddFile(input);
623 else if ( mode ==
mGRID )
629 TGridCollection * collection = (TGridCollection*) TAlienCollection::Open(
kXML);
632 printf(
"%s not found \n",
kXML) ;
636 TGridResult* result = collection->GetGridResult(
"",0 ,0);
639 printf(
"*** Getting the Chain ***\n");
640 for (
Int_t index = 0; index < result->GetEntries(); index++)
642 TString alienURL = result->GetKey(index,
"turl") ;
643 cout <<
"================== " << alienURL << endl ;
644 chain->Add(alienURL) ;
646 if ( kInputData !=
"AOD" )
650 chainxs->Add(alienURL) ;
654 alienURL.ReplaceAll(
"AliESDs.root",
"pyxsec_hists.root");
655 alienURL.ReplaceAll(
"AliAOD.root",
"pyxsec_hists.root");
657 TFile* fxsec = TFile::Open(alienURL);
660 TKey* key = (TKey*)fxsec->GetListOfKeys()->At(0);
668 TList *list =
dynamic_cast<TList*
>(key->ReadObj());
676 Float_t xsection = ((TProfile*)list->FindObject(
"h1Xsec")) ->GetBinContent(1);
677 Int_t ntrials = ((TH1F*) list->FindObject(
"h1Trials"))->GetBinContent(1);
680 xsArr->SetAt(xsection,index);
681 trArr->SetAt(ntrials,index);
683 printf(
"recovered xs %f, ntrials %d, event %d\n",xsection,ntrials, index);
703 gSystem->ChangeDirectory(ocwd.Data());
713 Bool_t bRecalibrate = kFALSE;
714 Bool_t bBadChannel = kFALSE;
718 for (
int i=0; i< gApplication->Argc();i++)
721 printf(
"Arg %d: %s\n",i,gApplication->Argv(i));
726 if (!(strcmp(gApplication->Argv(i),
"--recalibrate")))
727 bRecalibrate = atoi(gApplication->Argv(i+1));
729 if (!(strcmp(gApplication->Argv(i),
"--badchannel")))
730 bBadChannel = atoi(gApplication->Argv(i+1));
732 if (!(strcmp(gApplication->Argv(i),
"--year")))
733 kYear = atoi(gApplication->Argv(i+1));
735 if (!(strcmp(gApplication->Argv(i),
"--run")))
737 sRun = gApplication->Argv(i+1);
738 if ( sRun.Contains(
"LHC10") )
746 kRun = atoi(gApplication->Argv(i+1));
749 printf(
"** Run number already set to %d, do not set to %d\n",
kRun,atoi(gApplication->Argv(i+1)));
756 if ( !sRun.Contains(
"LHC") )
768 else if(
kRun < 170600)
778 else if(
kRun < 200000 )
788 else if(
kRun < 247000 )
798 else if(
kRun < 268875 )
808 else if(
kRun < 283616 )
812 if(
kRun == 280235 ||
kRun == 280234 )
831 printf(
"*********************************************\n");
834 printf(
"*** Settings year %d, collision %s, run %d ***\n",
kYear,kCollision.Data(),
kRun);
835 printf(
"*********************************************\n");
863 if( kInputData !=
"AOD" && tree )
865 nfiles = tree->GetEntries() ;
867 tree->SetBranchAddress(
"xsection",&xsection);
868 tree->SetBranchAddress(
"ntrials" ,&ntrials );
869 for(
Int_t i = 0; i < nfiles; i++)
878 cout <<
"xsection " <<xsection<<
" ntrials "<<ntrials<<endl;
881 else if( kInputData ==
"AOD" &&
xsArr )
883 nfiles =
xsArr->GetSize();
885 for(
Int_t i = 0; i < nfiles; i++)
887 if(
xsArr->GetAt(i) > 0)
889 xs +=
xsArr->GetAt(i) ;
890 ntr += trArr->GetAt(i) ;
893 cout <<
"xsection " <<
xsArr->GetAt(i)<<
" ntrials "<<trArr->GetAt(i)<<endl;
900 cout <<
"-----------------------------------------------------------------"<<endl;
901 cout <<
"Average of "<< n <<
" files: xsection " <<xs<<
" ntrials "<<ntr<<endl;
902 cout <<
"-----------------------------------------------------------------"<<endl;
970 gSystem->AddIncludePath(
"-I$ALICE_ROOT");
971 gSystem->AddIncludePath(
"-I$ALICE_PHYSICS");
972 gSystem->AddIncludePath(
"-I./");
1007 printf(
"*********************************************\n");
1008 printf(
"*** Input data < %s >, pass %s, tree < %s >, MC? < %d > ***\n",
1009 kInputData.Data(),kPass.Data(),kTreeName.Data(),
kMC);
1010 printf(
"*********************************************\n");
1017 printf(
"===== kMC %d, chainxs %p\n",
kMC,chainxs);
1028 printf(
"n xs files %d ntrials %f \n",nfiles, ntrials);
1029 if ( nfiles > 0 && ntrials > 0 )
1033 Int_t nEventsPerFile = chain->GetEntries() / nfiles;
1035 Double_t trials = ntrials / nEventsPerFile ;
1037 scale = xsection / trials;
1039 printf(
"Get Cross section : nfiles %d, nevents %lld, nevents per file %d \n",
1040 nfiles, chain->GetEntries(),nEventsPerFile);
1041 printf(
" ntrials %2.2f, trials %2.2f, xs %2.2e, scale factor %2.2e\n",
1042 ntrials,trials,xsection,scale);
1044 if ( chainxs->GetEntries() != chain->GetEntries() )
1045 printf(
"CAREFUL: Number of files in data chain %lld, in cross section chain %lld \n",
1046 chainxs->GetEntries(),chain->GetEntries());
1050 if ( scale <= 0 || !ok )
1051 { printf(
"STOP, cross section not available! nfiles %lld \n", chainxs->GetEntries() ) ; return ; }
1055 printf(
"*********************************************\n");
1056 printf(
"number of entries # %lld \n", chain->GetEntries()) ;
1057 printf(
"*********************************************\n");
1061 printf(
"STOP, no chain available\n");
1065 AliLog::SetGlobalLogLevel(AliLog::kError);
1106 if ( (
kMC || kInputData ==
"MC") && !kInputData.Contains(
"AOD") )
1108 AliMCEventHandler* mcHandler =
new AliMCEventHandler();
1109 mcHandler->SetReadTR(kFALSE);
1110 mgr->SetMCtruthEventHandler(mcHandler);
1111 if ( kInputData ==
"MC" )
1113 cout<<
"MC INPUT EVENT HANDLER"<<endl;
1114 mgr->SetInputEventHandler(NULL);
1119 if ( kInputData !=
"deltaAOD" &&
outAOD)
1121 cout<<
"Init output handler"<<endl;
1122 AliAODHandler* aodoutHandler =
new AliAODHandler();
1123 aodoutHandler->SetOutputFileName(
"aod.root");
1125 mgr->SetOutputEventHandler(aodoutHandler);
1131 if ( kInputData ==
"ESD" )
1134 AliESDInputHandler *esdHandler =
new AliESDInputHandler();
1135 esdHandler->SetReadFriends(kFALSE);
1136 mgr->SetInputEventHandler(esdHandler);
1137 cout<<
"ESD handler "<<mgr->GetInputEventHandler()<<endl;
1139 else if ( kInputData.Contains(
"AOD") )
1142 AliAODInputHandler *aodHandler =
new AliAODInputHandler();
1143 mgr->SetInputEventHandler(aodHandler);
1144 if(kInputData ==
"deltaAOD") aodHandler->AddFriend((
char*)
"deltaAODCaloTrackCorr.root");
1145 cout<<
"AOD handler "<<mgr->GetInputEventHandler()<<endl;
1151 TString outputFile = AliAnalysisManager::GetCommonFileName();
1160 gROOT->LoadMacro(
"$ALICE_PHYSICS/OADB/macros/AddTaskPhysicsSelection.C");
1161 AliPhysicsSelectionTask* physSelTask = AddTaskPhysicsSelection(
kMC,kTRUE);
1175 gROOT->LoadMacro(
"$ALICE_PHYSICS/OADB/COMMON/MULTIPLICITY/macros/AddTaskMultSelection.C");
1176 AliMultSelectionTask * task = AddTaskMultSelection(kFALSE);
1179 task->SetUseDefaultCalib (kTRUE);
1180 task->SetUseDefaultMCCalib(kTRUE);
1197 gROOT->LoadMacro(
"AddTaskCDBconnect.C");
1198 AddTaskCDBconnect();
1199 ((
AliTaskCDBconnect*)(AliAnalysisManager::GetAnalysisManager()->GetTask(
"CDBconnect")))->SetFallBackToRaw(kTRUE);
1206 printf(
"INIT EMCal corrections\n");
1207 gROOT->LoadMacro(
"$ALICE_PHYSICS/PWG/EMCAL/macros/AddTaskEmcalCorrectionTask.C");
1224 emcorr->
SetUserConfigurationFilename(
"$ALICE_PHYSICS_SRC/PWGGA/CaloTrackCorrelations/yaml/EMCalCorrConfig_MC_Run1_ClV1_xTalk_ECellCut.yaml");
1242 printf(
"INIT EMCal Clusterizer\n");
1243 gROOT->LoadMacro(
"$ALICE_PHYSICS/PWGPP/EMCAL/macros/AddTaskEMCALClusterize.C");
1249 Int_t minEcell = 100;
1250 Int_t minEseed = 500;
1251 Int_t dTime = 10000;
1252 Int_t wTime = 10000;
1255 Bool_t updateCell= kTRUE;
1256 Bool_t filterEvents = kFALSE;
1257 Int_t cenBin[] = {-1,-1};
1266 minEcell,minEseed,dTime,wTime,unfMinE,unfFrac,
1267 calibEE,badMap,calibTT,clnonlin,
1268 cenBin[0],cenBin[1],-1,1,1,filterEvents,
xTalkEmul,updateCell);
1287 clustersArray = Form(
"V1_Ecell%d_Eseed%d",minEcell,minEseed);
1292 cellsArray =
"Cells_Updated";
1294 cellsArray =
"Cells_xTalkEmulation";
1329 Bool_t calibrate = kFALSE;
1335 TString lTrig[] = {
"default",
"EMCAL_L0",
"EMCAL_L1",
"EMCAL_L2"};
1351 Int_t rejectEMCTrig = 0;
1352 Bool_t nonLinOn = kFALSE;
1363 Bool_t printSettings = kFALSE;
1364 TString cutSelected =
"SPDPileUp";
1365 TString analysisSelected =
"Photon_InvMass";
1368 gROOT->LoadMacro(
"$ALICE_PHYSICS/PWGGA/CaloTrackCorrelations/macros/AddTaskGammaHadronCorrelationSelectAnalysis.C");
1370 for(
Int_t itrig = trig0; itrig < nTrig; itrig++)
1372 if ( itrig > 0 &&
kMC )
continue;
1375 (
"EMCAL",
kMC,
kYear,kCollision,kPeriod,rejectEMCTrig,clustersArray,cutSelected,calibrate,nonLinOn, analysisSelected,
1376 shshMax,isoCone,isoConeMin,isoPtTh,isoMethod ,isoContent,leading,
1377 tm,minCen,maxCen,mixOn,outputfile,printSettings,debug,lTrig[itrig]);
1405 if (
kYear < 2014 )
continue;
1407 TString dcalTrig = lTrig[itrig];
1408 dcalTrig.ReplaceAll(
"EM",
"D");
1411 (
"DCAL",
kMC,
kYear,kCollision,kPeriod,rejectEMCTrig,clustersArray,cutSelected,calibrate,nonLinOn, analysisSelected,
1412 shshMax,isoCone,isoConeMin,isoPtTh,isoMethod ,isoContent,leading,
1413 tm,minCen,maxCen,mixOn,outputfile,printSettings,-1,lTrig[itrig]);
1509 mgr->InitAnalysis();
1513 else if (
mode ==
mPROOF ) mgr->StartAnalysis(
"proof",chain);
1514 else mgr->StartAnalysis(
"local",chain);
1516 cout <<
" Analysis ended sucessfully "<< endl ;
Bool_t bMultiplicity
Do photon/pi0 isolation correlation analysis.
Steering task for the EMCal correction framework.
Analyze locally files in your computer.
AliAnalysisTaskCaloTrackCorrelation * AddTaskGammaHadronCorrelationSelectAnalysis(TString calorimeter="EMCAL", Bool_t simulation=kFALSE, Int_t year=-1, TString col="", TString period="", Int_t rejectEMCTrig=0, TString clustersArray="", TString gloCutsString="", Bool_t calibrate=kFALSE, Bool_t nonLinOn=kFALSE, TString analysisString="Photon_MergedPi0_DecayPi0_Isolation_Correlation_QA_Charged", Float_t shshMax=0.27, Float_t isoCone=0.4, Float_t isoConeMin=-1, Float_t isoPtTh=2, Int_t isoMethod=AliIsolationCut::kSumPtIC, Int_t isoContent=AliIsolationCut::kNeutralAndCharged, Int_t leading=0, Int_t tm=2, Int_t minCen=-1, Int_t maxCen=-1, Bool_t mixOn=kTRUE, TString outputfile="", Bool_t printSettings=kFALSE, Int_t debug=0, const char *trigSuffix="EMC7")
void SwitchOffUseEMCALTimeCut()
anaModes
Different analysis modes.
Bool_t GetAverageXsection(TTree *tree, Double_t &xs, Float_t &ntr, Int_t &n)
char * kXML
Maximum number of files to analyze.
void SetEMCALCellsListName(TString name)
void CreateChain(const Int_t mode, TChain *chain, TChain *chainxs)
Fills chain with data files paths.
AliAnaCaloTrackCorrMaker * GetAnalysisMaker()
void SwitchOnUseClusterMCLabelForCell(Int_t opt=0)
char * kPattern
Directory path to files.
TArrayF * xsArr
Name of file with pT-hard cross sections.
void SetNonLinearityFunction(Int_t fun)
TString kPass
"esdTree" or "aodTree" or "TE" for pure MC kinematics analysis
void ana(Int_t mode=mLocal)
Int_t xTalkEmul
Use the EMCal correction framework.
void SetUserConfigurationFilename(std::string name)
Set the path to the user configuration filename.
TString kCollision
Run period.
Bool_t kMC
Set some default values, but used values are set in the code!
Int_t kYear
ESD, AOD, MC, deltaAOD.
void CheckEnvironmentVariables()
TString kPeriod
Year of data.
Bool_t bEMCCluster
Run number.
TString kTreeName
Create output AOD, needed by some.
void SetAODBranchName(TString name)
Bool_t outAOD
Collision type: pp, pPb, PbPb.
void SwitchOffRejectNoTrackEvents()
Analyze files on GRID with Plugin.
Analyze files on GRID with Plugin.
Configuration of (isolated) gamma/pi0-hadron analysis with multiple cuts.
void CheckInputData(const Int_t mode)
Sets input data and tree strings.
void SetForceBeamType(BeamType f)
void SetupPar(char *pararchivename)
Execute multiplicity task.
void LoadLibraries(Int_t)
void SetEMCALTimeCut(Double_t a, Double_t b)
Main class conecting the CaloTrackCorrelations package and Analysis Frame.
TFile * file
TList with histograms for a given trigger.
void SetAODCellsName(TString name)
const char * kXSFileName
Global name for the xml collection file with data on grid.
AliAnalysisTaskEMCALClusterize * AddTaskEMCALClusterize(const char *clusArrTit="EMCAL_Clusters_New", 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=0, const Bool_t cellUpd=kTRUE)
Int_t kFile
Common pattern in directory name containing files.
Configuration of EMCal re-clusterization analysis task.
AliEMCALRecoUtils * GetRecoUtils()
AliCaloTrackReader * GetReader()
TString kInputData
With real data kMC = kFALSE.
Bool_t bAnalysis
Activate cross-talk emulation, 0 -no, 1 do not subtract induced energy from reference cell...
Bool_t bEMCCorrFra
Use the EMCal clusterization task.
void Initialize(bool removeDummyTask=false)
Reclusterize EMCal clusters, put them in a new branch for other following analysis.