-Bool_t kPrint = kFALSE;
+
+Bool_t kPrint = kFALSE;
Bool_t kSimulation = kFALSE;
Bool_t kUseKinematics = kFALSE;
Bool_t kOutputAOD = kFALSE;
Int_t kRunNumber = 0;
Int_t kYears = 2011;
-TString kCollisions = "pp";
-TString kTrig ="EMC7" ;
+TString kCollisions = "pp";
+TString kTrig = "EMC7" ;
TString kClusterArray = "";
TString kData = "ESD";
TString kInputDataType = "ESD";
TString kCalorimeter = "EMCAL";
AliAnalysisTaskParticleCorrelation *AddTaskPartCorr(
- const TString data = "AOD",
- const TString calorimeter = "EMCAL",
- const Bool_t printSettings = kFALSE,
- const Bool_t simulation = kFALSE,
- const Bool_t outputAOD = kFALSE,
- const TString outputfile = "",
- const Int_t year = 2010,
- const Int_t run = 0,
- const TString col = "pp",
- const TString trigger = "MB",
- const TString clustersArray = "V1"
- )
+ const TString data = "AOD",
+ const TString calorimeter = "EMCAL",
+ const Bool_t printSettings = kFALSE,
+ const Bool_t simulation = kFALSE,
+ const Bool_t outputAOD = kFALSE,
+ const TString outputfile = "",
+ const Int_t year = 2010,
+ const Int_t run = 0,
+ const TString col = "pp",
+ const TString trigger = "MB",
+ const TString clustersArray = "V1"
+ )
{
// Creates a PartCorr task, configures it and adds it to the analysis manager.
- kPrint = printSettings;
+ kPrint = printSettings;
kSimulation = simulation;
kRunNumber = run;
kYears = year;
cout<<"********* ACCESS KINE? "<<kUseKinematics<<endl;
// #### Configure analysis ####
-
+
AliAnaPartCorrMaker * maker = new AliAnaPartCorrMaker();
// General frame setting and configuration
// Analysis tasks setting and configuration
Int_t n = 0;//Analysis number, order is important
- maker->AddAnalysis(ConfigureQAAnalysis() , n++); // QA analysis (careful, if no tender used, cells are not updated or corrected, clusters OK)
- maker->AddAnalysis(ConfigurePhotonAnalysis() , n++); // Photon cluster selection
- maker->AddAnalysis(ConfigurePi0Analysis() , n++); // Pi0 invariant mass analysis
-
- maker->AddAnalysis(ConfigurePi0EbEAnalysis("Pi0", AliAnaPi0EbE::kIMCalo) , n++); // Pi0 event by event selection, and photon tagging from decay
- maker->AddAnalysis(ConfigurePi0EbEAnalysis("Eta", AliAnaPi0EbE::kIMCalo) , n++); // Eta event by event selection, and photon tagging from decay
-
- //maker->AddAnalysis(ConfigurePi0EbEAnalysis("Pi0", AliAnaPi0EbE::kIMCaloTracks), n++); // Pi0 (calo+conversion) event by event selection,
- // and photon tagging from decay, need to execute at the same time conversions analysis
+ maker->AddAnalysis(ConfigureQAAnalysis() , n++);
- maker->AddAnalysis(ConfigureIsolationAnalysis("Photon"), n++); // Photon isolation
- maker->AddAnalysis(ConfigureIsolationAnalysis("Pi0") , n++); // Pi0 isolation
+ // Isolation settings
+ Int_t partInCone = AliIsolationCut::kOnlyCharged;
+ Int_t thresType = AliIsolationCut::kPtThresIC;
- maker->AddAnalysis(ConfigureHadronCorrelationAnalysis("Photon",kFALSE), n++); // Gamma hadron correlation
- maker->AddAnalysis(ConfigureHadronCorrelationAnalysis("Photon",kTRUE) , n++); // Isolated gamma hadron correlation
- maker->AddAnalysis(ConfigureHadronCorrelationAnalysis("Pi0",kFALSE) , n++); // Pi0 hadron correlation
- maker->AddAnalysis(ConfigureHadronCorrelationAnalysis("Pi0",kTRUE) , n++); // Isolated pi0 hadron correlation
+ if(kClusterArray!=""){
+
+ maker->AddAnalysis(ConfigurePhotonAnalysis(), n++); // Photon cluster selection
+ maker->AddAnalysis(ConfigurePi0Analysis() , n++); // Pi0 invariant mass analysis
+ maker->AddAnalysis(ConfigurePi0EbEAnalysis("Pi0", AliAnaPi0EbE::kIMCalo), n++); // Pi0 event by event selection, and photon tagging from decay
+ maker->AddAnalysis(ConfigurePi0EbEAnalysis("Eta", AliAnaPi0EbE::kIMCalo), n++); // Eta event by event selection, and photon tagging from decay
+
+ //maker->AddAnalysis(ConfigurePi0EbEAnalysis("Pi0", AliAnaPi0EbE::kIMCaloTracks), n++); // Pi0 (calo+conversion) event by event selection,
+ // and photon tagging from decay, need to execute at the same time conversions analysis
+
+ maker->AddAnalysis(ConfigureIsolationAnalysis("Photon",partInCone,thresType), n++); // Photon isolation
+ maker->AddAnalysis(ConfigureIsolationAnalysis("Pi0", partInCone,thresType), n++); // Pi0 isolation
+
+ maker->AddAnalysis(ConfigureHadronCorrelationAnalysis("Photon",kFALSE), n++); // Gamma hadron correlation
+ maker->AddAnalysis(ConfigureHadronCorrelationAnalysis("Photon",kTRUE) , n++); // Isolated gamma hadron correlation
+ maker->AddAnalysis(ConfigureHadronCorrelationAnalysis("Pi0" ,kFALSE), n++); // Pi0 hadron correlation
+ maker->AddAnalysis(ConfigureHadronCorrelationAnalysis("Pi0" ,kTRUE) , n++); // Isolated pi0 hadron correlation
+ }
+ else
+ {
+ //Trigger on tracks, do only once, tracks do not depend on clusterizer
+ maker->AddAnalysis(ConfigureChargedAnalysis(), n++); // track selection
+ maker->AddAnalysis(ConfigureIsolationAnalysis("Hadron",partInCone,thresType), n++); // track isolation
+ maker->AddAnalysis(ConfigureHadronCorrelationAnalysis("Hadron",kFALSE), n++); // track-track correlation
+ maker->AddAnalysis(ConfigureHadronCorrelationAnalysis("Hadron",kTRUE) , n++); // Isolated track-track correlation
+ }
maker->SetAnaDebug(-1) ;
maker->SwitchOnHistogramsMaker() ;
if(kPrint) maker->Print("");
- printf("<< End Configuration of analysis %d for calorimeter %s >>\n",n, kCalorimeter.Data());
+ printf("<< End Configuration of %d analysis for calorimeter %s >>\n",n, kCalorimeter.Data());
// Create task
printf("PartCorr trigger INT7\n");
task->SelectCollisionCandidates(AliVEvent::kINT7);
}
- if(kTrig=="EMC1"){
+ else if(kTrig=="EMC1"){
printf("PartCorr trigger EMC1\n");
task->SelectCollisionCandidates(AliVEvent::kEMC1);
}
printf("PartCorr trigger MB\n");
task->SelectCollisionCandidates(AliVEvent::kMB);
}
+ else if(kTrig=="PHOS"){
+ printf("PartCorr trigger PHOS\n");
+ task->SelectCollisionCandidates(AliVEvent::kPHI7);
+ }
return task;
}
reader->SetDebug(-1);//10 for lots of messages
+ //Delta AOD?
+ //reader->SetDeltaAODFileName("");
+ if(kOutputAOD) reader->SwitchOnWriteDeltaAOD() ;
+
+ // MC settings
+ if(kUseKinematics){
+ if(kInputDataType == "ESD"){
+ reader->SwitchOnStack();
+ reader->SwitchOffAODMCParticles();
+ }
+ else if(kInputDataType == "AOD"){
+ reader->SwitchOffStack();
+ reader->SwitchOnAODMCParticles();
+ }
+ }
+
+ //------------------------
+ // Detector input filling
+ //------------------------
+
+ //Min cluster/track E
+ reader->SetEMCALEMin(0.5);
+ reader->SetEMCALEMax(1000);
+ reader->SetPHOSEMin(0.3);
+ reader->SetPHOSEMax(1000);
+ reader->SetCTSPtMin(0.1);
+ reader->SetCTSPtMax(1000);
+
+ reader->SwitchOffFiducialCut();
+
+ // Tracks
+ reader->SwitchOnCTS();
+ gROOT->LoadMacro("$ALICE_ROOT/PWG4/macros/CreateTrackCutsPWG4.C");
+ AliESDtrackCuts * esdTrackCuts = CreateTrackCutsPWG4(10011004);
+ reader->SetTrackCuts(esdTrackCuts);
+
+ // Calorimeter
+
reader->SetEMCALClusterListName(kClusterArray);
if(kClusterArray == "") {
printf("**************** Normal analysis **************** \n");
- //reader->SwitchOnClusterRecalculation();
+ reader->SwitchOnClusterRecalculation();
}
else {
printf("**************** Input for analysis is Clusterizer %s **************** \n", kClusterArray.Data());
- //reader->SwitchOffClusterRecalculation();
- }
-
- // Settings for LHC11a
- if(kRunNumber > 140000 && kRunNumber < = 146860){
- if(kClusterArray == "") reader->SwitchOnLEDEventsRemoval();
- reader->RejectFastClusterEvents();
- printf("Reader: Reject LED events and Fast cluster\n");
- }
-
- //reader->SetDeltaAODFileName("");
- //if(!kSimulation) reader->SetFiredTriggerClassName("CINT1B-ABCE-NOPF-ALL");
-
- // Detector input filling
-
- reader->SwitchOnCTS();
+ reader->SwitchOffClusterRecalculation();
+ }
- if(kCalorimeter == "EMCAL") {
+ //if(kCalorimeter == "EMCAL") {
reader->SwitchOnEMCALCells();
reader->SwitchOnEMCAL();
- }
- if(kCalorimeter == "PHOS") {
+ //}
+ //if(kCalorimeter == "PHOS") {
reader->SwitchOnPHOSCells();
reader->SwitchOnPHOS();
- }
+ //}
// for case data="deltaAOD", no need to fill the EMCAL/PHOS cluster lists
if(kData.Contains("delta")){
reader->SwitchOffPHOSCells();
}
- if(kUseKinematics){
- if(kInputDataType == "ESD"){
- reader->SwitchOnStack();
- reader->SwitchOffAODMCParticles();
- }
- else if(kInputDataType == "AOD"){
- reader->SwitchOffStack();
- reader->SwitchOnAODMCParticles();
- }
- }
+ //-----------------
+ // Event selection
+ //-----------------
+
+ // Settings for LHC11a
+ if(kRunNumber > 140000 && kRunNumber < = 146860){
+ if(kClusterArray == "") reader->SwitchOnLEDEventsRemoval();
+ reader->RejectFastClusterEvents();
+ printf("Reader: Reject LED events and Fast cluster\n");
+ }
+
+ //if(!kUseKinematics) reader->SetFiredTriggerClassName("CEMC7EGA-B-NOPF-CENTNOTRD"); // L1 Gamma
- //Event selection
if (kCollisions=="pp" ) {
if(kRunNumber < 140000) reader->SwitchOnEventSelection(); // remove pileup by default
+ else reader->SwitchOffEventSelection();
reader->SwitchOffV0ANDSelection() ; // and besides v0 AND
reader->SwitchOffPrimaryVertexSelection(); // and besides primary vertex
+ reader->SetZvertexCut(50.); // Open cut
}
else if(kCollisions=="PbPb") {
reader->SwitchOffEventSelection(); // remove pileup by default
reader->SwitchOffV0ANDSelection() ; // and besides v0 AND
reader->SwitchOffPrimaryVertexSelection(); // and besides primary vertex
+ reader->SetZvertexCut(10.); // Centrality defined in this range.
+
+ // Centrality
+ reader->SetCentralityClass("V0M");
+ reader->SetCentralityOpt("10"); // 10 centrality bins
+ reader->SetCentralityBin(-1,-1); // Accept all events, if not select range
+
+ // Event plane (only used in AliAnaPi0 for the moment)
+ reader->SetEventPlaneMethod("Q");
}
- if (kCollisions=="pp" ) reader->SetZvertexCut(50.); //Open cut
- else if(kCollisions=="PbPb") reader->SetZvertexCut(10.); //Centrality defined in this range.
-
- //Min particle pT
- reader->SetEMCALPtMin(0.5);
- reader->SetEMCALPtMax(1000);
- reader->SetPHOSPtMin(0.3);
- reader->SetCTSPtMin(0.);
-
- if(kOutputAOD) reader->SwitchOnWriteDeltaAOD() ;
if(kPrint) reader->Print("");
return reader;
{
AliCalorimeterUtils *cu = new AliCalorimeterUtils;
+ cu->SetDebug(-1);
if(kYears==2010) cu->SetEMCALGeometryName("EMCAL_FIRSTYEARV1");
- else cu->SetEMCALGeometryName("EMCAL_COMPLETEV1");
+ else cu->SetEMCALGeometryName("EMCAL_COMPLETEV1");
// Remove clusters close to borders, at least max energy cell is 1 cell away
cu->SetNumberOfCellsFromEMCALBorder(1);
cu->SwitchOnRecalculateClusterTrackMatching();
//EMCAL only settings
- AliEMCALRecoUtils * reco = cu->GetEMCALRecoUtils();
-
- if(kCollisions=="pp" ) {
+ AliEMCALRecoUtils * recou = cu->GetEMCALRecoUtils();
+
+ TGeoHMatrix* matrix[10];
+ gROOT->LoadMacro("ConfigureEMCALRecoUtils.C");
+ ConfigureEMCALRecoUtils(
+ recou,
+ kSimulation,
+ matrix,
+ "",//AODB path, default
+ kRunNumber,
+ kPass
+ );
+
+ if(kCollisions=="pp" ) { // Do only for pp for the moment
cu->SwitchOnCorrectClusterLinearity();
- if(!kSimulation) reco->SetNonLinearityFunction(AliEMCALRecoUtils::kBeamTestCorrected);
- else reco->SetNonLinearityFunction(AliEMCALRecoUtils::kPi0MC);
+ if(!kSimulation) recou->SetNonLinearityFunction(AliEMCALRecoUtils::kBeamTestCorrected);
+ else recou->SetNonLinearityFunction(AliEMCALRecoUtils::kPi0MC);
}
- if(kClusterArray == "") reco->SwitchOnRejectExoticCluster();
- else reco->SwitchOffRejectExoticCluster();
+ recou->SwitchOnRejectExoticCell();
+ if(kClusterArray == "") recou->SwitchOnRejectExoticCluster();
+ else recou->SwitchOffRejectExoticCluster();
- cu->SetDebug(-1);
if(kPrint) cu->Print("");
return cu;
AliAnaPhoton *anaphoton = new AliAnaPhoton();
anaphoton->SetDebug(-1); //10 for lots of messages
- anaphoton->SwitchOnFillShowerShapeHistograms();
- anaphoton->SwitchOnTrackMatchRejection() ;
+
+ // cluster selection cuts
+
+ anaphoton->SwitchOffFiducialCut();
+
+ anaphoton->SetCalorimeter(kCalorimeter);
if(kCalorimeter == "PHOS"){
anaphoton->SetNCellCut(2);// At least 2 cells
}
else {//EMCAL
anaphoton->SetNCellCut(1);// At least 2 cells
- anaphoton->SetMinPt(0.5); // no effect minium EMCAL cut.
+ anaphoton->SetMinPt(0.5); // avoid mip peak at E = 260 MeV
anaphoton->SetMaxPt(1000);
- //if(!kUseKinematics) anaphoton->SetTimeCut(400,900);// Time window of [400-900] ns
- anaphoton->SetMinDistanceToBadChannel(1, 2, 3);//For filtered AODs, new releases.
+ if(!kUseKinematics) anaphoton->SetTimeCut(-1000,1000);// Time window of [400-900] ns if time recalibration is off,
+ // restrict to less than 100 ns when time calibration is on
+ anaphoton->SetMinDistanceToBadChannel(1, 2, 3); // For filtered AODs, new releases.
}
- anaphoton->SetCalorimeter(kCalorimeter);
+ anaphoton->SwitchOnTrackMatchRejection() ;
- if(kUseKinematics) anaphoton->SwitchOnDataMC() ;//Access MC stack and fill more histograms
- else anaphoton->SwitchOffDataMC() ;
+ //PID cuts (shower shape)
- //PID cut
AliCaloPID* caloPID = anaphoton->GetCaloPID();
- caloPID->SetLambda0CutMax(0.4);
- caloPID->SetLambda0CutMin(0.1);
- anaphoton->SwitchOnCaloPID();
+ anaphoton->SwitchOnCaloPID(); // if nothing else specified bayesian
anaphoton->SwitchOnCaloPIDRecalculation(); // off, get bayesian weights, on use simple cut
+ caloPID->SetLambda0CutMax(0.30);
+ caloPID->SetLambda0CutMin(0.10);
+ anaphoton->SwitchOffFillShowerShapeHistograms(); // Filled before photon shower shape selection
- anaphoton->SwitchOffFiducialCut();
+ // Input / output delta AOD settings
if(!kData.Contains("delta")) {
anaphoton->SetOutputAODName(Form("Photon%s_Trig%s_Cl%s",kCalorimeter.Data(), kTrig.Data(),kClusterArray.Data()));
anaphoton->SetOutputAODClassName("AliAODPWG4ParticleCorrelation");
+ //anaphoton->SetOutputAODClassName("AliAODPWG4Particle"); // use if no correlation done
}
else anaphoton->SetInputAODName(Form("Photon%s_Trig%s_Cl%s",kCalorimeter.Data(), kTrig.Data(),kClusterArray.Data()));
+ //Set Histograms name tag, bins and ranges
+
anaphoton->AddToHistogramsName("AnaPhoton_");
+ SetHistoRangeAndNBins(anaphoton); // see method below
- //Set Histograms bins and ranges
- anaphoton->SetHistoPtRangeAndNBins(0, 100, 250) ;
- if(kYears==2010)anaphoton->SetHistoPhiRangeAndNBins(78*TMath::DegToRad(), 122*TMath::DegToRad(), 78) ;
- else anaphoton->SetHistoPhiRangeAndNBins(78*TMath::DegToRad(), 182*TMath::DegToRad(), 108) ;
- anaphoton->SetHistoEtaRangeAndNBins(-0.72, 0.72, 144) ;
- anaphoton->SetHistoShowerShapeRangeAndNBins(0, 1.5, 150);
+ // Number of particle type MC histograms
+ anaphoton->FillNOriginHistograms(8);
+ anaphoton->FillNPrimaryHistograms(4);
if(kPrint) anaphoton->Print("");
}
+//_______________________________________________
+AliAnaChargedParticles* ConfigureChargedAnalysis()
+{
+
+ AliAnaChargedParticles *anatrack = new AliAnaChargedParticles();
+ anatrack->SetDebug(-1); //10 for lots of messages
+
+ // selection cuts
+
+ anatrack->SetDebug(-1);//10 for lots of messages
+ anatrack->SetMinPt(5.);
+ anatrack->SwitchOffFiducialCut();
+
+ // Input / output delta AOD settings
+
+ if(!kData.Contains("delta")) {
+ anatrack->SetOutputAODName(Form("Hadron%s_Trig%s_Cl%s",kCalorimeter.Data(), kTrig.Data(),kClusterArray.Data()));
+ anatrack->SetOutputAODClassName("AliAODPWG4ParticleCorrelation");
+ //anaphoton->SetOutputAODClassName("AliAODPWG4Particle"); // use if no correlation done
+ }
+ else anatrack->SetInputAODName(Form("Hadron%s_Trig%s_Cl%s",kCalorimeter.Data(), kTrig.Data(),kClusterArray.Data()));
+ printf("Set Hadron%s_Trig%s_Cl%s\n",kCalorimeter.Data(), kTrig.Data(),kClusterArray.Data());
+ //Set Histograms name tag, bins and ranges
+
+ anatrack->AddToHistogramsName("AnaHadrons_");
+ SetHistoRangeAndNBins(anatrack); // see method below
+
+ if(kPrint) anatrack->Print("");
+
+ return anatrack;
+
+}
+
+
//_______________________________
AliAnaPi0* ConfigurePi0Analysis()
{
AliAnaPi0 *anapi0 = new AliAnaPi0();
+
anapi0->SetDebug(-1);//10 for lots of messages
+ if(kPrint) anapi0->Print("");
+
+ // Input delta AOD settings
anapi0->SetInputAODName(Form("Photon%s_Trig%s_Cl%s",kCalorimeter.Data(), kTrig.Data(),kClusterArray.Data()));
+
+ // Calorimeter settings
anapi0->SetCalorimeter(kCalorimeter);
- anapi0->SwitchOffMultipleCutAnalysis();
- anapi0->SetPairTimeCut(70);
+ if(kCalorimeter=="PHOS") anapi0->SetNumberOfModules(3); //PHOS first year
+ else {
+ if(kYears==2010) anapi0->SetNumberOfModules(4); //EMCAL first year
+ else anapi0->SetNumberOfModules(10);
+ }
//settings for pp collision mixing
anapi0->SwitchOnOwnMix(); //Off when mixing done with general mixing frame
+ // Cuts
+ if(kCalorimeter=="EMCAL") anapi0->SetPairTimeCut(70);
+
if (kCollisions=="pp" ) {
anapi0->SetNCentrBin(1);
anapi0->SetNZvertBin(10);
anapi0->SwitchOffSMCombinations();
}
- if(kUseKinematics)anapi0->SwitchOnDataMC() ;//Access MC stack and fill more histograms
- else anapi0->SwitchOffDataMC() ;
- if(kCalorimeter=="PHOS") anapi0->SetNumberOfModules(3); //PHOS first year
- else {
- if(kYears==2010) anapi0->SetNumberOfModules(4); //EMCAL first year
- else anapi0->SetNumberOfModules(10);
- }
-
- anapi0->SetHistoPtRangeAndNBins(0, 100, 250) ;
- anapi0->SetHistoEtaRangeAndNBins(-0.72, 0.72, 144) ;
- if(kYears==2010)anapi0->SetHistoPhiRangeAndNBins(78*TMath::DegToRad(), 122*TMath::DegToRad(), 78) ;
- else anapi0->SetHistoPhiRangeAndNBins(78*TMath::DegToRad(), 182*TMath::DegToRad(), 108) ;
+ //Set Histograms name tag, bins and ranges
- anapi0->SetHistoMassRangeAndNBins(0., 1., 200) ;
- anapi0->SetHistoAsymmetryRangeAndNBins(0., 1. , 100) ;
- anapi0->SetHistoTrackMultiplicityRangeAndNBins(0, 200, 20);
- anapi0->SetHistoShowerShapeRangeAndNBins(0, 3, 300);
- anapi0->SetHistoTimeRangeAndNBins(-200.,200,800);
- anapi0->SetHistoDiffTimeRangeAndNBins(-200, 200, 800);
-
- if(kPrint) anapi0->Print("");
+ anapi0->AddToHistogramsName("AnaPi0_");
+ SetHistoRangeAndNBins(anapi0); // see method below
return anapi0;
AliAnaPi0EbE *anapi0ebe = new AliAnaPi0EbE();
anapi0ebe->SetDebug(-1);//10 for lots of messages
-
+
anapi0ebe->SetAnalysisType(analysis);
TString opt = "";
if(analysis==AliAnaPi0EbE::kIMCaloTracks) opt = "Conv";
anapi0ebe->SwitchOffFillWeightHistograms();
anapi0ebe->SetMinPt(0.5);
- anapi0ebe->SetPairTimeCut(20);
+ if(kCalorimeter=="EMCAL")anapi0ebe->SetPairTimeCut(20);
anapi0ebe->SetCalorimeter(kCalorimeter);
- anapi0ebe->AddToHistogramsName(Form("Ana%s%sEbE_",particle.Data(),opt.Data()));
+ // Input / output delta AOD settings
+
anapi0ebe->SetInputAODName(Form("Photon%s_Trig%s_Cl%s",kCalorimeter.Data(), kTrig.Data(),kClusterArray.Data()));
if(!kInputDataType.Contains("delta")) {
anapi0ebe->SetOutputAODName(Form("%s%s%s_Trig%s_Cl%s",particle.Data(), opt.Data(), kCalorimeter.Data(), kTrig.Data(),kClusterArray.Data()));
if(analysis == AliAnaPi0EbE::kIMCaloTracks) anapi0ebe->SetInputAODGammaConvName("PhotonsCTS");
- if(kUseKinematics) anapi0ebe->SwitchOnDataMC() ;//Access MC stack and fill more histograms
- else anapi0ebe->SwitchOffDataMC() ;
-
if(analysis!=AliAnaPi0EbE::kSSCalo){
AliNeutralMesonSelection *nms = anapi0ebe->GetNeutralMesonSelection();
//nms->SetHistoIMRangeAndNBins(0, 1, 400);
}
- //Set Histrograms bins and ranges
- if(kCalorimeter=="EMCAL" ){
- anapi0ebe->SetHistoEtaRangeAndNBins(-0.72, 0.72, 144) ;
- if(kYears==2010)anapi0ebe->SetHistoPhiRangeAndNBins(78*TMath::DegToRad(), 122*TMath::DegToRad(), 78) ;
- else anapi0ebe->SetHistoPhiRangeAndNBins(78*TMath::DegToRad(), 182*TMath::DegToRad(), 108) ;
- anapi0ebe->SetHistoShowerShapeRangeAndNBins(0, 3, 300);
- }
+ //Set Histograms name tag, bins and ranges
- anapi0ebe->SetHistoTimeRangeAndNBins(-200.,200,800);
- anapi0ebe->SetHistoDiffTimeRangeAndNBins(-200, 200, 800);
+ anapi0ebe->AddToHistogramsName(Form("Ana%s%sEbE_",particle.Data(),opt.Data()));
+ SetHistoRangeAndNBins(anapi0ebe); // see method below
if(kPrint) anapi0ebe->Print("");
}
//___________________________________________________________________
-AliAnaParticleIsolation* ConfigureIsolationAnalysis(TString particle)
+AliAnaParticleIsolation* ConfigureIsolationAnalysis(TString particle="Photon",
+ Int_t partInCone = AliIsolationCut::kOnlyCharged,
+ Int_t thresType = AliIsolationCut::kSumPtFracIC,
+ Bool_t multi = kFALSE)
{
AliAnaParticleIsolation *anaisol = new AliAnaParticleIsolation();
anaisol->SetDebug(-1);
+
anaisol->SetMinPt(5);
+
+ // Input / output delta AOD settings
+
anaisol->SetInputAODName(Form("%s%s_Trig%s_Cl%s",particle.Data(),kCalorimeter.Data(), kTrig.Data(),kClusterArray.Data()));
anaisol->SetAODObjArrayName(Form("IC%s",particle.Data()));
anaisol->SetCalorimeter(kCalorimeter);
- if(kUseKinematics) anaisol->SwitchOnDataMC() ;//Access MC stack and fill more histograms
- else anaisol->SwitchOffDataMC() ;
-
- //Do isolation cut
+ //Do settings for main isolation cut class
AliIsolationCut * ic = anaisol->GetIsolationCut();
ic->SetConeSize(0.4);
- ic->SetPtThreshold(0.7);
+ ic->SetPtThreshold(0.5);
ic->SetPtFraction(0.1);
ic->SetSumPtThreshold(1.0) ;
- ic->SetParticleTypeInCone(AliIsolationCut::kOnlyCharged);
- ic->SetICMethod(AliIsolationCut::kSumPtFracIC);
- if(kPrint) ic->Print("");
+ ic->SetParticleTypeInCone(partInCone);
+ ic->SetICMethod(thresType);
//Do or not do isolation with previously produced AODs.
//No effect if use of SwitchOnSeveralIsolation()
anaisol->SwitchOffReIsolation();
//Multiple IC
- anaisol->SwitchOffSeveralIsolation() ;
- //Set Histograms bins and ranges
- anaisol->SetHistoPtRangeAndNBins(0, 50, 200) ;
- // ana->SetHistoPhiRangeAndNBins(0, TMath::TwoPi(), 100) ;
- // ana->SetHistoEtaRangeAndNBins(-0.7, 0.7, 100) ;
+ if(multi) anaisol->SwitchOnSeveralIsolation() ;
+ else anaisol->SwitchOffSeveralIsolation() ;
+
+ //Set Histograms name tag, bins and ranges
+
anaisol->AddToHistogramsName(Form("AnaIsol%s_",particle.Data()));
+ SetHistoRangeAndNBins(anaisol); // see method below
+
+ if(kPrint) ic ->Print("");
if(kPrint) anaisol->Print("");
return anaisol;
{
AliAnaParticleHadronCorrelation *anacorrhadron = new AliAnaParticleHadronCorrelation();
+ anacorrhadron->SetDebug(-1);
+
+ anacorrhadron->SetPtCutRange(5,200);
+
+ // Input / output delta AOD settings
+
anacorrhadron->SetInputAODName(Form("%s%s_Trig%s_Cl%s",particle.Data(),kCalorimeter.Data(), kTrig.Data(),kClusterArray.Data()));
anacorrhadron->AddToHistogramsName(Form("Ana%sHadronCorrIso%d_",particle.Data(),bIsolated));
anacorrhadron->SetAODObjArrayName(Form("%sHadronCorrIso%d",particle.Data(),bIsolated));
- anacorrhadron->SetDebug(-1);
- // if(kSimulation){
- // anacorrhadron->SwitchOnFiducialCut();
- // AliFiducialCut * fidCut1stYear = anacorrhadron->GetFiducialCut();
- // fidCut1stYear->DoEMCALFiducialCut(kTRUE) ;
- // fidCut1stYear->DoPHOSFiducialCut(kTRUE) ;
- // fidCut1stYear->SetSimpleEMCALFiducialCut(0.7,80.,120.);
- // fidCut1stYear->SetSimplePHOSFiducialCut(0.12,260.,320.);
- // fidCut1stYear->DoCTSFiducialCut(kTRUE) ;
- // fidCut1stYear->SetSimpleCTSFiducialCut(0.8,0.,360.);
- // }
anacorrhadron->SelectIsolated(bIsolated); // do correlation with isolated photons
anacorrhadron->SetMultiBin(1);
anacorrhadron->SwitchOffNeutralCorr();
anacorrhadron->SwitchOffEventSelection();
- anacorrhadron->SetPtCutRange(0.1,100);
anacorrhadron->SetDeltaPhiCutRange(1.5,4.5);
+
anacorrhadron->SwitchOnSeveralUECalculation();
anacorrhadron->SetUeDeltaPhiCutRange(TMath::Pi()/3, 2*TMath::Pi()/3);
- anacorrhadron->SelectIsolated(kFALSE); // do correlation with isolated photons
- if(kUseKinematics) anacorrhadron->SwitchOnDataMC() ;//Access MC stack and fill more histograms
- else anacorrhadron->SwitchOffDataMC() ;
+
//if(kCalorimeter=="PHOS"){
//Correlate with particles in EMCAL
//anacorrhadron->SwitchOnCaloPID();
- //anacorrhadron->SwitchOnCaloPIDRecalculation(); //recommended for EMCAL
+ //anacorrhadron->SwitchOnCaloPIDRecalculation();
//}
- //Set Histograms bins and ranges
- anacorrhadron->SetHistoPtRangeAndNBins(0, 50, 200) ;
- // ana->SetHistoPhiRangeAndNBins(0, TMath::TwoPi(), 100) ;
- // ana->SetHistoEtaRangeAndNBins(-0.7, 0.7, 100) ;
+
+ //Set Histograms name tag, bins and ranges
+
+ anacorrhadron->AddToHistogramsName(Form("Ana%sHadronCorr_Iso%d_",particle.Data(),bIsolated));
+ SetHistoRangeAndNBins(anacorrhadron); // see method below
+
if(kPrint) anacorrhadron->Print("");
return anacorrhadron;
//anaQA->SetDebug(10); //10 for lots of messages
anaQA->SetCalorimeter(kCalorimeter);
- if(kSimulation) anaQA->SwitchOnDataMC() ;//Access MC stack and fill more histograms, AOD MC not implemented yet.
- else anaQA->SwitchOffDataMC() ;
-
- anaQA->AddToHistogramsName("QA_"); //Begining of histograms name
-
anaQA->SwitchOffFiducialCut();
- anaQA->SwitchOnCorrelation();
+ anaQA->SwitchOnCorrelation(); // make sure you switch in the reader PHOS and EMCAL cells and clusters if option is ON
anaQA->SwitchOffFillAllTH3Histogram();
anaQA->SwitchOffFillAllPositionHistogram();
- //anaQA->SwitchOnStudyBadClusters() ;
- //anaQA->SwitchOnStudyClustersAsymmetry();
- //anaQA->SwitchOnStudyWeight();
+ anaQA->SwitchOnStudyBadClusters() ;
+ anaQA->SwitchOffStudyClustersAsymmetry();
+ anaQA->SwitchOffStudyWeight();
anaQA->SwitchOffFillAllTrackMatchingHistogram();
- //Set Histrograms bins and ranges
- anaQA->SetHistoPtRangeAndNBins(0, 100, 200) ;
- anaQA->SetHistoFinePtRangeAndNBins(0, 10, 200) ; // bining for fhAmpId
-
if(kCalorimeter=="EMCAL"){
- anaQA->SetHistoEtaRangeAndNBins(-0.71, 0.71, 200) ;
- if(kYears==2010){
+ if(kYears==2010)
anaQA->SetNumberOfModules(4);
- anaQA->SetHistoPhiRangeAndNBins(79*TMath::DegToRad(), 121*TMath::DegToRad(), 200) ;
- anaQA->SetHistoXRangeAndNBins(-230,90,120);
- anaQA->SetHistoYRangeAndNBins(370,450,40);
- }
- else{
+ else{
anaQA->SetNumberOfModules(10);
- anaQA->SetHistoPhiRangeAndNBins(79*TMath::DegToRad(), 181*TMath::DegToRad(), 200) ;
- anaQA->SetHistoXRangeAndNBins(-600,90,200);
- anaQA->SetHistoYRangeAndNBins(100,450,100);
}
- }
- anaQA->SetHistoMassRangeAndNBins(0., 1, 400) ;
- anaQA->SetHistoAsymmetryRangeAndNBins(0., 1. , 10 );
- anaQA->SetHistoPOverERangeAndNBins(0,10.,100);
- anaQA->SetHistodEdxRangeAndNBins(0.,200.,200);
- anaQA->SetHistodRRangeAndNBins(0.,TMath::Pi(),150);
- anaQA->SetHistoTimeRangeAndNBins(-500.,500,1000);
- anaQA->SetHistoRatioRangeAndNBins(0.,2.,100);
- anaQA->SetHistoVertexDistRangeAndNBins(0.,500.,500);
- anaQA->SetHistoNClusterCellRangeAndNBins(0,500,500);
- anaQA->SetHistoZRangeAndNBins(-400,400,200);
- anaQA->SetHistoRRangeAndNBins(400,450,25);
- anaQA->SetHistoV0SignalRangeAndNBins(0,5000,500);
- anaQA->SetHistoV0MultiplicityRangeAndNBins(0,5000,500);
- anaQA->SetHistoTrackMultiplicityRangeAndNBins(0,5000,500);
-
+ }
+ anaQA->AddToHistogramsName("QA_"); //Begining of histograms name
+ SetHistoRangeAndNBins(anaQA); // see method below
+
if(kPrint) anaQA->Print("");
return anaQA;
}
+//________________________________________________________
+void SetHistoRangeAndNBins (AliAnaPartCorrBaseClass* ana)
+{
+ // Set common bins for all analysis and MC histograms filling
+
+ if(kSimulation) ana->SwitchOnDataMC() ;//Access MC stack and fill more histograms, AOD MC not implemented yet.
+ else ana->SwitchOffDataMC() ;
+
+ ana->SetHistoPtRangeAndNBins(0, 100, 250) ; // Energy and pt histograms
+
+ if(kCalorimeter=="EMCAL"){
+ if(kYears==2010){
+ ana->SetHistoPhiRangeAndNBins(78*TMath::DegToRad(), 122*TMath::DegToRad(), 78) ;
+ ana->SetHistoXRangeAndNBins(-230,90,120); // QA
+ ana->SetHistoYRangeAndNBins(370,450,40); // QA
+ }
+ else {
+ ana->SetHistoPhiRangeAndNBins(78*TMath::DegToRad(), 182*TMath::DegToRad(), 108) ;
+ ana->SetHistoXRangeAndNBins(-600,90,200); // QA
+ ana->SetHistoYRangeAndNBins(100,450,100); // QA
+ }
+
+ ana->SetHistoEtaRangeAndNBins(-0.72, 0.72, 144) ;
+ }
+ else{
+ ana->SetHistoPhiRangeAndNBins(260*TMath::DegToRad(), 320*TMath::DegToRad(), 60) ;
+ ana->SetHistoEtaRangeAndNBins(-0.13, 0.13, 130) ;
+
+ }
+
+ ana->SetHistoShowerShapeRangeAndNBins(0, 3, 300);
+
+ // Invariant mass analysis
+ ana->SetHistoMassRangeAndNBins(0., 1., 200) ;
+ ana->SetHistoAsymmetryRangeAndNBins(0., 1. , 100) ;
+
+ // check if time calibration is on
+ ana->SetHistoTimeRangeAndNBins(-1000.,1000,1000);
+ ana->SetHistoDiffTimeRangeAndNBins(-200, 200, 800);
+
+ // QA, electron, charged
+ ana->SetHistoPOverERangeAndNBins(0,10.,100);
+ ana->SetHistodEdxRangeAndNBins(0.,200.,200);
+
+ // QA
+ ana->SetHistoFinePtRangeAndNBins(0, 10, 200) ; // bining for fhAmpId
+ ana->SetHistodRRangeAndNBins(0.,TMath::Pi(),150);
+ ana->SetHistoRatioRangeAndNBins(0.,2.,100);
+ ana->SetHistoVertexDistRangeAndNBins(0.,500.,500);
+ ana->SetHistoNClusterCellRangeAndNBins(0,500,500);
+ ana->SetHistoZRangeAndNBins(-400,400,200);
+ ana->SetHistoRRangeAndNBins(400,450,25);
+ ana->SetHistoV0SignalRangeAndNBins(0,5000,500);
+ ana->SetHistoV0MultiplicityRangeAndNBins(0,5000,500);
+ ana->SetHistoTrackMultiplicityRangeAndNBins(0,5000,500);
+
+}
void ana(Int_t mode=mGRID)
{
// Main
-
+
//--------------------------------------------------------------------
// Load analysis libraries
// Look at the method below,
//-------------------------------------------------------------------------------------------------
// Set kInputData and kTreeName looking to the kINDIR
-
+
CheckInputData(mode);
-
+
// Check global analysis settings
-
+
CheckEnvironmentVariables();
printf("*********************************************\n");
}
AliLog::SetGlobalLogLevel(AliLog::kError);//Minimum prints on screen
-
+
//--------------------------------------
// Make the analysis manager
//-------------------------------------
AddTaskCounter("INT7"); // Min Bias
AddTaskCounter("EMC1"); // Trig Th > 1.5 GeV approx
AddTaskCounter("EMC7"); // Trig Th > 4-5 GeV
- // Add PHOS trigger counter here
+ AddTaskCounter("PHOS"); //
}
-
gROOT->LoadMacro("AddTaskPartCorr.C"); // $ALICE_ROOT/PWG4/macros
+
Bool_t kPrint = kFALSE;
Bool_t deltaAOD = kFALSE;
+
+ // ------
+ // Tracks
+ // ------
- // Do not reclusterize, do analysis
- // TString sTrigger(kTrigger)
- // AliAnalysisTaskParticleCorrelation *ana = AddTaskPartCorr(kInputData, "EMCAL", kPrint,kMC, deltaAOD, outputFile.Data(),
- // kYear,kRun,kCollision,sTrigger,"");
+ // QA analysis to compare after clusterization and track isolation-correlation analysis
+ AliAnalysisTaskParticleCorrelation *ana = AddTaskPartCorr(kInputData, "EMCAL", kPrint,kMC, deltaAOD, outputFile.Data(),
+ kYear,kRun,kCollision,"EMC7","");
// -----
// EMCAL
- // -----
+ // -----
gROOT->LoadMacro("AddTaskEMCALClusterize.C"); // $ALICE_ROOT/PWG4/CaloCalib/macros
Bool_t bTrackMatch = kTRUE;
- Int_t minEcell = 50; // 50 MeV (10 MeV used in reconstruction)
- Int_t minEseed = 100; // 100 MeV
- Int_t dTime = 250; // 250 ns difference in time of cells in cluster, open
- Int_t wTime = 1000; // 1000 ns time window of cells in cluster, open
- TString clTrigger = ""; // Do not select, do Min Bias and triggered
+ Int_t minEcell = 50; // 50 MeV (10 MeV used in reconstruction)
+ Int_t minEseed = 100; // 100 MeV
+ Int_t dTime = 40; // 40 ns difference in time of cells in cluster, open
+ Int_t wTime = 40; // 40 ns time window of cells in cluster, open
+ TString clTrigger = ""; // Do not select, do Min Bias and triggered
- //Analysis with clusterizer V1 (add following lines again with V2, NxN or V1Unfold for other kind of clusterizations in EMCAL)
+ //Analysis with clusterizer V1
AliAnalysisTaskEMCALClusterize * clv1 = AddTaskEMCALClusterize(kMC,"V1",clTrigger,kRun,kPass, bTrackMatch,
minEcell,minEseed,dTime,wTime);
if(!kMC)
{
- AliAnalysisTaskParticleCorrelation *anav1tr = AddTaskPartCorr(kInputData, "EMCAL", kPrint,kMC, deltaAOD, outputFile.Data(),
+
+ AliAnalysisTaskParticleCorrelation *anav1tr = AddTaskPartCorr(kInputData, "EMCAL", kPrint,kMC, deltaAOD, outputFile.Data(),
kYear,kRun,kCollision,"EMC7",arrayNameV1);
- AliAnalysisTaskParticleCorrelation *anav1mb = AddTaskPartCorr(kInputData, "EMCAL", kPrint,kMC, deltaAOD, outputFile.Data(),
+ AliAnalysisTaskParticleCorrelation *anav1mb = AddTaskPartCorr(kInputData, "EMCAL", kPrint,kMC, deltaAOD, outputFile.Data(),
kYear,kRun,kCollision,"INT7",arrayNameV1);
}
else
{// No trigger (should be MB, but for single particle productions it does not work)
+
AliAnalysisTaskParticleCorrelation *anav1 = AddTaskPartCorr(kInputData, "EMCAL", kPrint,kMC, deltaAOD, outputFile.Data(),
kYear,kRun,kCollision,"",arrayNameV1);
}
- // -----
- // PHOS
- // -----
- /*
- //Add here PHOS tender or whatever is needed
-
+
+ //Analysis with clusterizer V2
+ AliAnalysisTaskEMCALClusterize * clv2 = AddTaskEMCALClusterize(kMC,"V2",clTrigger,kRun,kPass, bTrackMatch,
+ minEcell,minEseed,dTime,wTime);
+
+ TString arrayNameV2(Form("V2_Ecell%d_Eseed%d_DT%d_WT%d",minEcell,minEseed, dTime,wTime));
+ printf("Name of clusterizer array: %s\n",arrayNameV2.Data());
+
if(!kMC)
{
- AliAnalysisTaskParticleCorrelation *anav1tr = AddTaskPartCorr(kInputData, "PHOS", kPrint,kMC, deltaAOD, outputFile.Data(),
- kYear,kRun,kCollision,"EMC7",""); // Change to PHOS trigger
-
+
+ AliAnalysisTaskParticleCorrelation *anav2tr = AddTaskPartCorr(kInputData, "EMCAL", kPrint,kMC, deltaAOD, outputFile.Data(),
+ kYear,kRun,kCollision,"EMC7",arrayNameV2);
- AliAnalysisTaskParticleCorrelation *anav1mb = AddTaskPartCorr(kInputData, "PHOS", kPrint,kMC, deltaAOD, outputFile.Data(),
- kYear,kRun,kCollision,"INT7","");
+ AliAnalysisTaskParticleCorrelation *anav2mb = AddTaskPartCorr(kInputData, "EMCAL", kPrint,kMC, deltaAOD, outputFile.Data(),
+ kYear,kRun,kCollision,"INT7",arrayNameV2);
}
else
- {// No trigger
- AliAnalysisTaskParticleCorrelation *anav1mb = AddTaskPartCorr(kInputData, "PHOS", kPrint,kMC, deltaAOD, outputFile.Data(),
- kYear,kRun,kCollision,"","");
+ {// No trigger (should be MB, but for single particle productions it does not work)
+ AliAnalysisTaskParticleCorrelation *anav2 = AddTaskPartCorr(kInputData, "EMCAL", kPrint,kMC, deltaAOD, outputFile.Data(),
+ kYear,kRun,kCollision,"",arrayNameV2);
}
- */
+
+ // -----
+ // PHOS
+ // -----
+ /*
+ //Add here PHOS tender or whatever is needed
+
+ if(!kMC)
+ {
+
+ AliAnalysisTaskParticleCorrelation *anav1tr = AddTaskPartCorr(kInputData, "PHOS", kPrint,kMC, deltaAOD, outputFile.Data(),
+ kYear,kRun,kCollision,"PHOS",""); // Change to PHOS trigger
+
+
+ AliAnalysisTaskParticleCorrelation *anav1mb = AddTaskPartCorr(kInputData, "PHOS", kPrint,kMC, deltaAOD, outputFile.Data(),
+ kYear,kRun,kCollision,"INT7","");
+
+ }
+ else
+ {// No trigger
+
+ AliAnalysisTaskParticleCorrelation *anav1mb = AddTaskPartCorr(kInputData, "PHOS", kPrint,kMC, deltaAOD, outputFile.Data(),
+ kYear,kRun,kCollision,"","");
+
+ }
+ */
//-----------------------
//If you want to add several ESD files sitting in a common directory INDIR
//Specify as environmental variables the directory (INDIR), the number of files
//to analyze (NFILES) and the pattern name of the directories with files (PATTERN)
-
+
if(gSystem->Getenv("INDIR"))
kInDir = gSystem->Getenv("INDIR") ;
else cout<<"INDIR not set, use default: "<<kInDir<<endl;
void CheckEnvironmentVariables()
{
-sprintf(kTrigger,"");
-
-Bool_t bRecalibrate = kFALSE;
-Bool_t bBadChannel = kFALSE;
-
-for (int i=0; i< gApplication->Argc();i++){
-
-#ifdef VERBOSEARGS
+ sprintf(kTrigger,"");
- printf("Arg %d: %s\n",i,gApplication->Argv(i));
+ Bool_t bRecalibrate = kFALSE;
+ Bool_t bBadChannel = kFALSE;
+ for (int i=0; i< gApplication->Argc();i++){
+
+#ifdef VERBOSEARGS
+
+ printf("Arg %d: %s\n",i,gApplication->Argv(i));
+
#endif
-
- if (!(strcmp(gApplication->Argv(i),"--trigger")))
- sprintf(trigger,gApplication->Argv(i+1));
+
+ if (!(strcmp(gApplication->Argv(i),"--trigger")))
+ sprintf(trigger,gApplication->Argv(i+1));
if (!(strcmp(gApplication->Argv(i),"--recalibrate")))
bRecalibrate = atoi(gApplication->Argv(i+1));
-
- if (!(strcmp(gApplication->Argv(i),"--badchannel")))
- bBadChannel = atoi(gApplication->Argv(i+1));
-
- if (!(strcmp(gApplication->Argv(i),"--run"))){
- TString sRun(gApplication->Argv(i+1));
- if(sRun.Contains("LHC10")) {
- kYear = 2010;
- }
- else {
- if(kRun <=0){
- kRun = atoi(gApplication->Argv(i+1));
- }
- else printf("** Run number already set to %d, do not set to %d\n",kRun,atoi(gApplication->Argv(i+1)));
- }//numeric run
- }//--run available
-
-}// args loop
-
+
+ if (!(strcmp(gApplication->Argv(i),"--badchannel")))
+ bBadChannel = atoi(gApplication->Argv(i+1));
+
+ if (!(strcmp(gApplication->Argv(i),"--run"))){
+ TString sRun(gApplication->Argv(i+1));
+ if(sRun.Contains("LHC10")) {
+ kYear = 2010;
+ }
+ else {
+ if(kRun <=0){
+ kRun = atoi(gApplication->Argv(i+1));
+ }
+ else printf("** Run number already set to %d, do not set to %d\n",kRun,atoi(gApplication->Argv(i+1)));
+ }//numeric run
+ }//--run available
+
+ }// args loop
+
if(!sRun.Contains("LHC10")){
if ( kRun < 140000) {
kYear = 2010;
}
}
-if(kMC) sprintf(kTrigger,"");
-
-printf("*********************************************\n");
-//printf("*** Settings trigger %s, recalibrate %d, remove bad channels %d, year %d, collision %s, run %d ***\n",
-// kTrigger,bRecalibrate,bBadChannel, kYear,kCollision.Data(), kRun);
-printf("*** Settings year %d, collision %s, run %d ***\n",kYear,kCollision.Data(), kRun);
-printf("*********************************************\n");
-
+ if(kMC) sprintf(kTrigger,"");
+
+ printf("*********************************************\n");
+ //printf("*** Settings trigger %s, recalibrate %d, remove bad channels %d, year %d, collision %s, run %d ***\n",
+ // kTrigger,bRecalibrate,bBadChannel, kYear,kCollision.Data(), kRun);
+ printf("*** Settings year %d, collision %s, run %d ***\n",kYear,kCollision.Data(), kRun);
+ printf("*********************************************\n");
+
}
//_____________________________________________________________
printf("counter trigger MB\n");
counter->SelectCollisionCandidates(AliVEvent::kMB);
}
+ else if(trigger=="PHOS"){
+ printf("counter trigger PHOS\n");
+ counter->SelectCollisionCandidates(AliVEvent::kPHI7);
+ }
TString outputFile = AliAnalysisManager::GetCommonFileName();
AliAnalysisDataContainer *cinput1 = mgr->GetCommonInputContainer();
mgr->AddTask(counter);
mgr->ConnectInput (counter, 0, cinput1);
mgr->ConnectOutput (counter, 1, coutput);
-
+
}