]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Merge branch 'master' of https://git.cern.ch/reps/AliRoot
authormorsch <andreas.morsch@cern.ch>
Mon, 8 Sep 2014 10:48:39 +0000 (12:48 +0200)
committermorsch <andreas.morsch@cern.ch>
Mon, 8 Sep 2014 10:48:39 +0000 (12:48 +0200)
122 files changed:
ITS/UPGRADE/AliITSUReconstructor.cxx
ITS/UPGRADE/AliITSUVertexer.cxx
ITS/UPGRADE/AliITSUv1Layer.cxx
MFT/AliMFTTrackerMU.cxx
PHOS/AliPHOSDApi0mip.cxx
PWG/CaloTrackCorrBase/AliMCAnalysisUtils.cxx
PWG/CaloTrackCorrBase/AliMCAnalysisUtils.h
PWG/EMCAL/AliClusterContainer.cxx
PWG/EMCAL/AliClusterContainer.h
PWG/EMCAL/AliEmcalTrackingQATask.cxx
PWG/EMCAL/AliEmcalTrackingQATask.h
PWG/EMCAL/AliParticleContainer.cxx
PWG/EMCAL/AliParticleContainer.h
PWG/FLOW/Tasks/AliJetFlowTools.cxx
PWG/FLOW/Tasks/AliJetFlowTools.h
PWG/muon/AliMuonEventCuts.cxx
PWG/muon/AliMuonEventCuts.h
PWGCF/CMakelibPWGCFESE.pkg [new file with mode: 0644]
PWGCF/FEMTOSCOPY/Chaoticity/AliFourPion.cxx
PWGCF/FEMTOSCOPY/Chaoticity/AliFourPion.h
PWGCF/FEMTOSCOPY/ESE/AliAnalysisTaskFemtoESE.cxx [new file with mode: 0644]
PWGCF/FEMTOSCOPY/ESE/AliAnalysisTaskFemtoESE.h [new file with mode: 0644]
PWGCF/FEMTOSCOPY/macros/AddTaskFemtoESE.C [new file with mode: 0644]
PWGCF/PWGCFESELinkDef.h [new file with mode: 0644]
PWGDQ/dielectron/AliDielectron.cxx
PWGDQ/dielectron/AliDielectronHF.cxx
PWGDQ/dielectron/AliDielectronHF.h
PWGDQ/dielectron/AliDielectronHistos.cxx
PWGGA/CaloTrackCorrelations/AliAnaCalorimeterQA.cxx
PWGGA/CaloTrackCorrelations/AliAnaElectron.cxx
PWGGA/CaloTrackCorrelations/AliAnaInsideClusterInvariantMass.cxx
PWGGA/CaloTrackCorrelations/AliAnaParticleHadronCorrelation.cxx
PWGGA/CaloTrackCorrelations/AliAnaParticleHadronCorrelation.h
PWGGA/CaloTrackCorrelations/AliAnaParticleIsolation.cxx
PWGGA/CaloTrackCorrelations/AliAnaParticleIsolation.h
PWGGA/CaloTrackCorrelations/AliAnaParticleJetFinderCorrelation.cxx
PWGGA/CaloTrackCorrelations/AliAnaPhoton.cxx
PWGGA/CaloTrackCorrelations/AliAnaPi0.cxx
PWGGA/CaloTrackCorrelations/AliAnaPi0EbE.cxx
PWGGA/CaloTrackCorrelations/AliAnaPi0EbE.h
PWGGA/CaloTrackCorrelations/macros/AddTaskIsoPhoton.C
PWGGA/EMCALTasks/AliAnalysisTaskEMCALIsoPhoton.cxx
PWGGA/EMCALTasks/AliAnalysisTaskEMCALIsoPhoton.h
PWGGA/GammaConv/AliAnalysisTaskNeutralMesonToPiPlPiMiPiZero.cxx
PWGGA/GammaConv/AliAnalysisTaskNeutralMesonToPiPlPiMiPiZero.h
PWGGA/GammaConv/AliCaloPhotonCuts.cxx
PWGGA/GammaConv/AliCaloPhotonCuts.h
PWGGA/GammaConv/AliPrimaryPionCuts.cxx
PWGGA/GammaConv/AliPrimaryPionCuts.h
PWGGA/GammaConv/macros/AddTask_GammaConvNeutralMesonPiPlPiMiPiZero_CaloMode_pPb.C [new file with mode: 0644]
PWGGA/GammaConv/macros/AddTask_GammaConvNeutralMesonPiPlPiMiPiZero_ConvMode_pPb.C [moved from PWGGA/GammaConv/macros/AddTask_GammaConvNeutralMesonPiPlPiMiPiZero_pPb.C with 85% similarity]
PWGGA/GammaConv/macros/AddTask_GammaConvNeutralMesonPiPlPiMiPiZero_MixedMode_pPb.C [new file with mode: 0644]
PWGGA/PHOSTasks/PHOS_Tagging/AliAnalysisTaskTaggedPhotons.cxx
PWGGA/PHOSTasks/PHOS_Tagging/AliAnalysisTaskTaggedPhotons.h
PWGHF/correlationHF/AliAnalysisTaskDStarCorrelations.cxx
PWGHF/hfe/AliHFEV0pid.cxx
PWGHF/vertexingHF/AliAnalysisTaskSEDvsMultiplicity.cxx
PWGJE/AliAnalysisTaskAj.cxx
PWGJE/AliAnalysisTaskJetCore.cxx
PWGJE/AliAnalysisTaskJetProperties.cxx
PWGJE/CMakelibPWGJEEMCALJetTasks.pkg
PWGJE/EMCALJetTasks/AliAnalysisTaskRhoBase.cxx
PWGJE/EMCALJetTasks/AliAnalysisTaskScale.cxx
PWGJE/EMCALJetTasks/AliAnalysisTaskScale.h
PWGJE/EMCALJetTasks/AliEmcalJetTask.cxx
PWGJE/EMCALJetTasks/AliEmcalJetTask.h
PWGJE/EMCALJetTasks/AliJetEmbeddingFromAODTask.cxx
PWGJE/EMCALJetTasks/AliJetEmbeddingFromAODTask.h
PWGJE/EMCALJetTasks/AliJetEmbeddingFromGenTask.cxx
PWGJE/EMCALJetTasks/AliJetEmbeddingFromPYTHIATask.cxx
PWGJE/EMCALJetTasks/AliJetEmbeddingFromPYTHIATask.h
PWGJE/EMCALJetTasks/AliJetEmbeddingTask.cxx
PWGJE/EMCALJetTasks/AliJetEmbeddingTask.h
PWGJE/EMCALJetTasks/AliJetFastSimulation.cxx [new file with mode: 0644]
PWGJE/EMCALJetTasks/AliJetFastSimulation.h [new file with mode: 0644]
PWGJE/EMCALJetTasks/AliJetModelCopyTracks.cxx [new file with mode: 0644]
PWGJE/EMCALJetTasks/AliJetModelCopyTracks.h [new file with mode: 0644]
PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskJetMassResponseDet.cxx
PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskJetMassResponseDet.h
PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskPtEMCalTrigger.cxx
PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskPtEMCalTrigger.h
PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskRhoMass.cxx
PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskRhoMass.h
PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskRhoMassBase.cxx
PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskRhoMassScale.cxx [new file with mode: 0644]
PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskRhoMassScale.h [new file with mode: 0644]
PWGJE/EMCALJetTasks/macros/AddTaskFastSimulation.C [new file with mode: 0644]
PWGJE/EMCALJetTasks/macros/AddTaskJetEmbeddingFromPYTHIA.C
PWGJE/EMCALJetTasks/macros/AddTaskJetMassResponseDet.C
PWGJE/EMCALJetTasks/macros/AddTaskModelCopyTracks.C [new file with mode: 0644]
PWGJE/EMCALJetTasks/macros/AddTaskPtEMCalTrigger.C
PWGJE/EMCALJetTasks/macros/AddTaskRhoMassScale.C [new file with mode: 0644]
PWGJE/EMCALJetTasks/macros/AddTaskScale.C
PWGJE/PWGJEEMCALJetTasksLinkDef.h
PWGJE/StrangenessInJets/AliAnalysisTaskJetChem.cxx
PWGJE/UserTasks/AliAnalysisTaskPID.cxx
PWGJE/UserTasks/AliAnalysisTaskPID.h
PWGJE/UserTasks/AliAnalysisTaskPIDV0base.cxx
PWGJE/UserTasks/AliAnalysisTaskPIDV0base.h
PWGJE/macros/AddTaskJetCorePP.C
PWGJE/macros/AddTaskPID.C
PWGLF/SPECTRA/Nuclei/masses/AliAnalysisNucleiMass.cxx
PWGLF/SPECTRA/PiKaPr/TestAOD/AliSpectraAODEventCuts.cxx
PWGLF/SPECTRA/PiKaPr/TestAOD/AliSpectraAODEventCuts.h
PWGLF/STRANGENESS/Cascades/AliAnalysisTaskCheckCascadepp276.cxx
PWGLF/STRANGENESS/Cascades/AliAnalysisTaskCheckCascadepp276.h
PWGLF/STRANGENESS/Cascades/AliAnalysisTaskCheckPerformanceCascadepp276.cxx
PWGLF/STRANGENESS/Cascades/AliAnalysisTaskCheckPerformanceCascadepp276.h
PWGLF/STRANGENESS/Cascades/macros/AddTaskCheckCascadepp276.C
PWGLF/STRANGENESS/Cascades/macros/AddTaskCheckPerformanceCascadepp276.C
PWGLF/STRANGENESS/Correlations/AliAnalysisTaskLambdaOverK0sJets.cxx
PWGPP/CalibMacros/CPass0/mergeMakeOCDB.byComponent.sh
PWGPP/CalibMacros/CPass1/mergeMakeOCDB.byComponent.sh
PWGPP/QA/detectorQAscripts/FMD.sh [new file with mode: 0644]
PWGPP/QA/scripts/alienSync.sh
PWGPP/benchmark/benchmark.config
PWGPP/benchmark/benchmark.config.d/90cern-virtual-cluster.config.example
PWGPP/benchmark/benchmark.sh
PWGPP/benchmark/files.list
PWGPP/global/AliAnalysisTaskVertexESD.cxx
STEER/AOD/AliAODTrack.h
STEER/STEERBase/AliVTrack.h

index 5795edca0b132e52aec5d3b855901706ac7f6db3..9241326bd6141724b224fb5ffa8ad96dadf0e95c 100644 (file)
@@ -191,8 +191,8 @@ AliTracker* AliITSUReconstructor::CreateTracker() const
 AliVertexer* AliITSUReconstructor::CreateVertexer() const
 {
   // create a ITS vertexer
-  // to be implemented for the upgrade
-  AliInfo("Creating dummy vertexer");
+  // 
+  AliInfo("Creating vertexer using tracklets with the first 3 ITS layers");
   //  AliDebug(1,"ITSU vertexer should be initiated here\n");
   return new AliITSUVertexer();
 }
index 2d8a8919c43516327c078154c661fd5ca6e5b493..865c0bead16610964758ff7ac7e36c376b461427 100644 (file)
@@ -143,7 +143,7 @@ void AliITSUVertexer::FindVerticesForCurrentEvent() {
   }
 
   fVertices=new AliESDVertex[fNoClusters];
-  for(Int_t i0=0; i0<fNoClusters; ++i0) {
+  for(UInt_t i0=0; i0<fNoClusters; ++i0) {
     AliITSUClusterLines *clu0 = (AliITSUClusterLines*)fLinesClusters.At(i0);
     Int_t size=clu0->GetSize();
     if(size<fClusterContribCut&&fNoClusters>1) {
index 220010ee130f0e08331bd5c8030e277e3621f331..dc580f7265a5cdfba2738dd1d6c73c62e973b3ca 100644 (file)
@@ -74,8 +74,8 @@ const Double_t AliITSUv1Layer::fgkOBModuleZLength     =  21.06 *fgkcm;
 const Double_t AliITSUv1Layer::fgkOBHalfStaveYTrans   =   1.76 *fgkmm;
 const Double_t AliITSUv1Layer::fgkOBHalfStaveXOverlap =   4.3  *fgkmm;
 const Double_t AliITSUv1Layer::fgkOBGraphiteFoilThick =  30.0  *fgkmicron;
-const Double_t AliITSUv1Layer::fgkOBCoolTubeInnerD    =   2.67 *fgkmm;
-const Double_t AliITSUv1Layer::fgkOBCoolTubeThick     =  64.0  *fgkmicron;
+const Double_t AliITSUv1Layer::fgkOBCoolTubeInnerD    =   2.052*fgkmm;
+const Double_t AliITSUv1Layer::fgkOBCoolTubeThick     =  32.0  *fgkmicron;
 const Double_t AliITSUv1Layer::fgkOBCoolTubeXDist     =  11.1  *fgkmm;
 
 const Double_t AliITSUv1Layer::fgkOBSpaceFrameWidth   =  42.0  *fgkmm;
@@ -1320,8 +1320,8 @@ TGeoVolume* AliITSUv1Layer::CreateStaveModelInnerB22(const Double_t xsta,
   TGeoMedium *medCarbonFleece = mgr->GetMedium("ITS_CarbonFleece$"); 
 
   // Local parameters
-  Double_t kConeOutRadius =0.107/2;//0.107/2;
-  Double_t kConeInRadius = 0.1015/2;//0.10105/2
+  Double_t kConeOutRadius =(0.1024+0.0025)/2;//0.107/2;
+  Double_t kConeInRadius = 0.1024/2;//0.10105/2
   Double_t kStaveLength = zsta;
   Double_t kStaveWidth = xsta*2;
   Double_t kWidth = (kStaveWidth)/4;
@@ -2516,7 +2516,7 @@ TGeoVolume* AliITSUv1Layer::CreateSpaceFrameOuterB1(const TGeoManager *mgr){
                                    -beamPhiPrime*TMath::RadToDeg(), -90);
 
   TGeoCombiTrans *beamTransf[8];
-  xpos = 0.5*triangleHeight*TMath::Tan(halfTheta);
+  xpos = 0.49*triangleHeight*TMath::Tan(halfTheta);//was 0.5, fix small overlap
   ypos = staveBeamRadius/2;
   zpos = seglen/8;
   beamTransf[0] = new TGeoCombiTrans( xpos, ypos,-3*zpos, beamRot1);
index b089176b3e0740ea93cbd3c43cc2d3e9f2a3971f..42338ca6c226269961bfd52fb1642dfa2b2cd788 100644 (file)
@@ -256,6 +256,8 @@ Int_t AliMFTTrackerMU::Clusters2Tracks(AliESDEvent *event) {
       
       Int_t nCandidates = fCandidateTracks->GetEntriesFast();
       for (Int_t iCandidate=0; iCandidate<nCandidates; iCandidate++) {
+
+       if (!(fCandidateTracks->UncheckedAt(iCandidate))) continue;
        fCurrentTrack = (AliMuonForwardTrack*) fCandidateTracks->UncheckedAt(iCandidate);
 
        // if the old track is compatible with the new cluster, the track is updated and inserted as new track in the array 
@@ -298,6 +300,7 @@ Int_t AliMFTTrackerMU::Clusters2Tracks(AliESDEvent *event) {
 
     for (Int_t iFinalCandidate=0; iFinalCandidate<nFinalTracks; iFinalCandidate++) {
       
+      if (!(fCandidateTracks->UncheckedAt(iFinalCandidate))) continue;
       AliMuonForwardTrack *finalTrack = (AliMuonForwardTrack*) fCandidateTracks->UncheckedAt(iFinalCandidate);
       Int_t nMFTClusters  = finalTrack->GetNMFTClusters();
 
index a2e97fba8d72f8f7b0ee292c4578fbdc8c1f30b9..b4cf9f26de45af452aaff99abdbb4b00ae30494e 100644 (file)
@@ -191,7 +191,7 @@ bool AliPHOSDApi0mip::CreateHist(){
   snprintf(hname,100,"h1_time_mod%d_iter%d",fMod,fIterId);
   snprintf(htitle,100,"Time : Mod:%d Iter:%d",fMod,fIterId);
   fH1Time = (TH1I*) gDirectory->Get(hname);
-  if( fH1Time>0 ){
+  if( fH1Time ){
     std::cout<<" AliPHOSDApi0mip:Warning!! Output object already exist : "<<fH1Time->GetName()<<std::endl;
     return false;
   }
index a9ef30c14f8f68d51ee048c4c6f0818dea8d5cc9..ffaefb73a9fa0cc9696191272bd46349489feac5 100755 (executable)
@@ -212,9 +212,9 @@ Int_t AliMCAnalysisUtils::CheckCommonAncestor(Int_t index1, Int_t index2,
   return ancLabel;
 }
 
-//_______________________________________________________________________
+//________________________________________________________________________________________
 Int_t AliMCAnalysisUtils::CheckOrigin(const Int_t * label, Int_t nlabels,
-                                      const AliCaloTrackReader* reader)
+                                      const AliCaloTrackReader* reader, TString calorimeter)
 {
   //Play with the montecarlo particles if available
   Int_t tag = 0;
@@ -224,19 +224,23 @@ Int_t AliMCAnalysisUtils::CheckOrigin(const Int_t * label, Int_t nlabels,
     return kMCBadLabel;
   }
   
+  TObjArray* arrayCluster = 0;
+  if      ( calorimeter == "EMCAL" ) arrayCluster = reader->GetEMCALClusters();
+  else if ( calorimeter ==  "PHOS" ) arrayCluster= reader->GetPHOSClusters();
+  
   //Select where the information is, ESD-galice stack or AOD mcparticles branch
   if(reader->ReadStack()){
-    tag = CheckOriginInStack(label, nlabels, reader->GetStack());
+    tag = CheckOriginInStack(label, nlabels, reader->GetStack(), arrayCluster);
   }
   else if(reader->ReadAODMCParticles()){
-    tag = CheckOriginInAOD(label, nlabels, reader->GetAODMCParticles());
+    tag = CheckOriginInAOD(label, nlabels, reader->GetAODMCParticles(),arrayCluster);
   }
   
   return tag ;
 }
 
-//__________________________________________________________________________________
-Int_t AliMCAnalysisUtils::CheckOrigin(Int_t label, const AliCaloTrackReader* reader)
+//____________________________________________________________________________________________________
+Int_t AliMCAnalysisUtils::CheckOrigin(Int_t label, const AliCaloTrackReader* reader, TString calorimeter)
 {
   //Play with the montecarlo particles if available
   Int_t tag = 0;
@@ -246,21 +250,26 @@ Int_t AliMCAnalysisUtils::CheckOrigin(Int_t label, const AliCaloTrackReader* rea
     return kMCBadLabel;
   }
   
+  TObjArray* arrayCluster = 0;
+  if      ( calorimeter == "EMCAL" ) arrayCluster = reader->GetEMCALClusters();
+  else if ( calorimeter ==  "PHOS" ) arrayCluster= reader->GetPHOSClusters();
+  
   Int_t labels[]={label};
   
   //Select where the information is, ESD-galice stack or AOD mcparticles branch
   if(reader->ReadStack()){
-    tag = CheckOriginInStack(labels, 1,reader->GetStack());
+    tag = CheckOriginInStack(labels, 1,reader->GetStack(),arrayCluster);
   }
   else if(reader->ReadAODMCParticles()){
-    tag = CheckOriginInAOD(labels, 1,reader->GetAODMCParticles());
+    tag = CheckOriginInAOD(labels, 1,reader->GetAODMCParticles(),arrayCluster);
   }
   
   return tag ;
 }      
 
-//_______________________________________________________________________________________________
-Int_t AliMCAnalysisUtils::CheckOriginInStack(const Int_t *labels, Int_t nlabels, AliStack* stack)
+//__________________________________________________________________________________________
+Int_t AliMCAnalysisUtils::CheckOriginInStack(const Int_t *labels, Int_t nlabels,
+                                             AliStack* stack, const TObjArray* arrayCluster)
 {
   // Play with the MC stack if available. Tag particles depending on their origin.
   // Do same things as in CheckOriginInAOD but different input.
@@ -408,6 +417,7 @@ Int_t AliMCAnalysisUtils::CheckOriginInStack(const Int_t *labels, Int_t nlabels,
         printf("AliMCAnalysisUtils::CheckOriginInStack() - First mother is directly pi0, not decayed by generator \n");
       
       CheckOverlapped2GammaDecay(labels,nlabels, iMom, stack, tag); //set to kMCPi0 if 2 gammas in same cluster
+      
     }
     else if(mPdg == 221)
     {
@@ -430,6 +440,11 @@ Int_t AliMCAnalysisUtils::CheckOriginInStack(const Int_t *labels, Int_t nlabels,
         if(fDebug > 2 ) printf("AliMCAnalysisUtils::CheckOriginInStack() - PYTHIA pi0 decay photon,  parent pi0 with status 11 \n");
         
         CheckOverlapped2GammaDecay(labels,nlabels, iParent, stack, tag); //set to kMCPi0 if 2 gammas in same cluster
+        // In case it did not merge, check if the decay companion is lost
+        if(!CheckTagBit(tag, kMCPi0) && !CheckTagBit(tag,kMCDecayPairInCalo))
+          CheckLostDecayPair(arrayCluster,iMom, iParent, stack, tag);
+
+        //printf("Bit set is Merged %d, Pair in calo %d, Lost %d\n",CheckTagBit(tag, kMCPi0),CheckTagBit(tag,kMCDecayPairInCalo),CheckTagBit(tag,kMCDecayPairLost));
       }
       else if (pPdg == 221)
       {
@@ -438,6 +453,9 @@ Int_t AliMCAnalysisUtils::CheckOriginInStack(const Int_t *labels, Int_t nlabels,
         if(fDebug > 2 ) printf("AliMCAnalysisUtils::CheckOriginInStack() - PYTHIA eta decay photon,  parent pi0 with status 11 \n");
         
         CheckOverlapped2GammaDecay(labels,nlabels, iParent, stack, tag);//set to kMCEta if 2 gammas in same cluster
+        // In case it did not merge, check if the decay companion is lost
+        if(!CheckTagBit(tag, kMCEta) && !CheckTagBit(tag,kMCDecayPairInCalo))
+          CheckLostDecayPair(arrayCluster,iMom, iParent, stack, tag);
       }
       else if(mStatus == 1)
       { //undecayed particle
@@ -504,8 +522,8 @@ Int_t AliMCAnalysisUtils::CheckOriginInStack(const Int_t *labels, Int_t nlabels,
       
       if(fDebug > 0) printf("AliMCAnalysisUtils::CheckOriginInStack() - Checking ancestors of electrons\n");
      
-      if (pPdg == 111) { SetTagBit(tag,kMCPi0Decay); } //Pi0 Dalitz decay
-      else if (pPdg == 221) { SetTagBit(tag,kMCEtaDecay); } //Eta Dalitz decay
+      if      (pPdg == 111) { SetTagBit(tag,kMCPi0Decay); SetTagBit(tag, kMCDecayDalitz) ; } //Pi0 Dalitz decay
+      else if (pPdg == 221) { SetTagBit(tag,kMCEtaDecay); SetTagBit(tag, kMCDecayDalitz) ; } //Eta Dalitz decay
       else if((499 < pPdg && pPdg < 600)||(4999 < pPdg && pPdg < 6000)) { SetTagBit(tag,kMCEFromB); } //b-->e decay
       else if((399 < pPdg && pPdg < 500)||(3999 < pPdg && pPdg < 5000)) { //check charm decay
         if(parent)
@@ -557,9 +575,9 @@ Int_t AliMCAnalysisUtils::CheckOriginInStack(const Int_t *labels, Int_t nlabels,
 }
 
 
-//____________________________________________________________________________
+//________________________________________________________________________________________________________
 Int_t AliMCAnalysisUtils::CheckOriginInAOD(const Int_t *labels, Int_t nlabels,
-                                           const TClonesArray *mcparticles
+                                           const TClonesArray *mcparticles, const TObjArray* arrayCluster)
 {
   // Play with the MCParticles in AOD if available. Tag particles depending on their origin.
   // Do same things as in CheckOriginInStack but different input.
@@ -719,6 +737,11 @@ Int_t AliMCAnalysisUtils::CheckOriginInAOD(const Int_t *labels, Int_t nlabels,
         if(fDebug > 2 ) printf("AliMCAnalysisUtils::CheckOriginInAOD() - Generator pi0 decay photon \n");
         
         CheckOverlapped2GammaDecay(labels,nlabels, iParent, mcparticles, tag); //set to kMCPi0 if 2 gammas in same cluster
+        // In case it did not merge, check if the decay companion is lost
+        if(!CheckTagBit(tag, kMCPi0) && !CheckTagBit(tag,kMCDecayPairInCalo) && !CheckTagBit(tag,kMCDecayPairLost))
+          CheckLostDecayPair(arrayCluster,iMom, iParent, mcparticles, tag);
+
+        //printf("Bit set is Merged %d, Pair in calo %d, Lost %d\n",CheckTagBit(tag, kMCPi0),CheckTagBit(tag,kMCDecayPairInCalo),CheckTagBit(tag,kMCDecayPairLost));
       }
       else if (pPdg == 221)
       {
@@ -727,6 +750,9 @@ Int_t AliMCAnalysisUtils::CheckOriginInAOD(const Int_t *labels, Int_t nlabels,
         if(fDebug > 2 ) printf("AliMCAnalysisUtils::CheckOriginInAOD() - Generator eta decay photon \n");
         
         CheckOverlapped2GammaDecay(labels,nlabels, iParent, mcparticles, tag); //set to kMCEta if 2 gammas in same cluster
+        // In case it did not merge, check if the decay companion is lost
+        if(!CheckTagBit(tag, kMCEta) && !CheckTagBit(tag,kMCDecayPairInCalo))
+          CheckLostDecayPair(arrayCluster,iMom, iParent, mcparticles, tag);
       }
       else if(mom->IsPhysicalPrimary() && (fMCGenerator=="PYTHIA" || fMCGenerator=="HERWIG")) //undecayed particle
       {
@@ -763,9 +789,10 @@ Int_t AliMCAnalysisUtils::CheckOriginInAOD(const Int_t *labels, Int_t nlabels,
       
       SetTagBit(tag,kMCElectron);
       
-      if (fDebug > 0) printf("AliMCAnalysisUtils::CheckOriginInAOD() - Checking ancestors of electrons");
-      if (pPdg == 111) { SetTagBit(tag,kMCPi0Decay); } //Pi0 Dalitz decay
-      else if (pPdg == 221) { SetTagBit(tag,kMCEtaDecay); } //Eta Dalitz decay
+      if(fDebug > 0) printf("AliMCAnalysisUtils::CheckOriginInAOD() - Checking ancestors of electrons");
+      
+      if      (pPdg == 111) { SetTagBit(tag,kMCPi0Decay); SetTagBit(tag,kMCDecayDalitz);} //Pi0 Dalitz decay
+      else if (pPdg == 221) { SetTagBit(tag,kMCEtaDecay); SetTagBit(tag,kMCDecayDalitz);} //Eta Dalitz decay
       else if((499 < pPdg && pPdg < 600)||(4999 < pPdg && pPdg < 6000)) { SetTagBit(tag,kMCEFromB);} //b-hadron decay
       else if((399 < pPdg && pPdg < 500)||(3999 < pPdg && pPdg < 5000))
       { //c-hadron decay check
@@ -1091,6 +1118,220 @@ void AliMCAnalysisUtils::CheckOverlapped2GammaDecay(const Int_t *labels, Int_t n
   
 }
 
+//______________________________________________________________________________________________________
+void    AliMCAnalysisUtils::CheckLostDecayPair(const TObjArray* arrayCluster,   Int_t iMom, Int_t iParent,
+                                               AliStack * stack,                Int_t & tag)
+{
+  // Check on ESDs if the current decay photon has the second photon companion lost
+  
+  if(!arrayCluster || iMom < 0 || iParent < 0|| !stack) return;
+  
+  TParticle * parent= stack->Particle(iParent);
+  
+  if(parent->GetNDaughters()!=2)
+  {
+    SetTagBit(tag, kMCDecayPairLost);
+    return ;
+  }
+  
+  Int_t pairLabel = -1;
+  if     ( iMom != parent->GetDaughter(0) ) pairLabel = parent->GetDaughter(0);
+  else if( iMom != parent->GetDaughter(1) ) pairLabel = parent->GetDaughter(1);
+  
+  if(pairLabel<0)
+  {
+    SetTagBit(tag, kMCDecayPairLost);
+    return ;
+  }
+  
+  for(Int_t iclus = 0; iclus < arrayCluster->GetEntriesFast(); iclus++)
+  {
+    AliVCluster * cluster = (AliVCluster*) arrayCluster->At(iclus);
+    for(UInt_t ilab = 0; ilab< cluster->GetNLabels(); ilab++)
+    {
+      Int_t label = cluster->GetLabels()[ilab];
+      if(label==pairLabel)
+      {
+        SetTagBit(tag, kMCDecayPairInCalo);
+        return ;
+      }
+      else if(label== iParent || label== iMom)
+      {
+        continue;
+      }
+      else // check the ancestry
+      {
+        TParticle * mother = stack->Particle(label);
+        Int_t momPDG = TMath::Abs(mother->GetPdgCode());
+        if(momPDG!=11 && momPDG!=22) continue;
+        
+        //Check if "mother" of entity is converted, if not, get the first non converted mother
+        Int_t iParentClus = mother->GetFirstMother();
+        if(iParentClus < 0) continue;
+        
+        TParticle * parentClus = stack->Particle(iParentClus);
+        if(!parentClus) continue;
+        
+        Int_t parentClusPDG    = TMath::Abs(parentClus->GetPdgCode());
+        Int_t parentClusStatus = parentClus->GetStatusCode();
+        
+        if( parentClusPDG != 22 && parentClusPDG != 11 && parentClusStatus != 0) continue;
+        
+        //printf("Conversion\n");
+        
+        //Check if the mother is photon or electron with status not stable
+        while ((parentClusPDG == 22 || parentClusPDG == 11) && parentClusStatus != 1)
+        {
+          //New Mother
+          label            = iParentClus;
+          momPDG           = parentClusPDG;
+          
+          iParentClus      = parentClus->GetFirstMother();
+          if(iParentClus < 0) break;
+          
+          parentClus       = stack->Particle(iParentClus);
+          if(!parentClus) break;
+          
+          parentClusPDG    = TMath::Abs(parentClus->GetPdgCode());
+          parentClusStatus = parentClus->GetStatusCode() ;
+        }//while
+    
+        if((momPDG == 22 || parentClusPDG ==22) && (label==pairLabel || iParentClus == pairLabel))
+        {
+          SetTagBit(tag, kMCDecayPairInCalo);
+          //printf("Conversion is paired\n");
+          return ;
+        }
+        else continue;
+        
+      }
+    }
+  } // cluster loop
+  
+  SetTagBit(tag, kMCDecayPairLost);
+
+}
+
+//______________________________________________________________________________________________________
+void    AliMCAnalysisUtils::CheckLostDecayPair(const TObjArray   * arrayCluster,Int_t iMom, Int_t iParent,
+                                               const TClonesArray* mcparticles, Int_t & tag)
+{
+  // Check on AODs if the current decay photon has the second photon companion lost
+  
+  if(!arrayCluster || iMom < 0 || iParent < 0|| !mcparticles) return;
+
+  AliAODMCParticle * parent = (AliAODMCParticle*) mcparticles->At(iParent);
+  
+  //printf("*** Check label %d with parent %d\n",iMom, iParent);
+  
+  if(parent->GetNDaughters()!=2)
+  {
+    SetTagBit(tag, kMCDecayPairLost);
+    //printf("\t ndaugh = %d\n",parent->GetNDaughters());
+    return ;
+  }
+  
+  Int_t pairLabel = -1;
+  if     ( iMom != parent->GetDaughter(0) ) pairLabel = parent->GetDaughter(0);
+  else if( iMom != parent->GetDaughter(1) ) pairLabel = parent->GetDaughter(1);
+  
+  if(pairLabel<0)
+  {
+    //printf("\t pair Label not found = %d\n",pairLabel);
+    SetTagBit(tag, kMCDecayPairLost);
+    return ;
+  }
+  
+  //printf("\t *** find pair %d\n",pairLabel);
+  
+  for(Int_t iclus = 0; iclus < arrayCluster->GetEntriesFast(); iclus++)
+  {
+    AliVCluster * cluster = (AliVCluster*) arrayCluster->At(iclus);
+    //printf("\t \t ** Cluster %d, nlabels %d\n",iclus,cluster->GetNLabels());
+    for(UInt_t ilab = 0; ilab< cluster->GetNLabels(); ilab++)
+    {
+      Int_t label = cluster->GetLabels()[ilab];
+      
+      //printf("\t \t label %d\n",label);
+
+      if(label==pairLabel)
+      {
+        //printf("\t \t Pair found\n");
+        SetTagBit(tag, kMCDecayPairInCalo);
+        return ;
+      }
+      else if(label== iParent || label== iMom)
+      {
+        //printf("\t \t skip\n");
+        continue;
+      }
+      else // check the ancestry
+      {
+        AliAODMCParticle * mother = (AliAODMCParticle*) mcparticles->At(label);
+        Int_t momPDG = TMath::Abs(mother->GetPdgCode());
+        if(momPDG!=11 && momPDG!=22)
+        {
+          //printf("\t \t skip, pdg %d\n",momPDG);
+          continue;
+        }
+        
+        //Check if "mother" of entity is converted, if not, get the first non converted mother
+        Int_t iParentClus = mother->GetMother();
+        if(iParentClus < 0) continue;
+        
+        AliAODMCParticle * parentClus =  (AliAODMCParticle*) mcparticles->At(iParentClus);
+        if(!parentClus) continue;
+        
+        Int_t parentClusPDG    = TMath::Abs(parentClus->GetPdgCode());
+        Int_t parentClusStatus = parentClus->GetStatus();
+        
+        if( parentClusPDG != 22 && parentClusPDG != 11 && parentClusStatus != 0)
+        {
+          //printf("\t \t skip, not a conversion, parent: pdg %d, status %d\n",parentClusPDG,parentClusStatus);
+          continue;
+        }
+        
+        //printf("\t \t Conversion\n");
+        
+        //Check if the mother is photon or electron with status not stable
+        while ((parentClusPDG == 22 || parentClusPDG == 11) && parentClusStatus != 1)
+        {
+          //New Mother
+          label            = iParentClus;
+          momPDG           = parentClusPDG;
+          
+          iParentClus      = parentClus->GetMother();
+          if(iParentClus < 0) break;
+          
+          parentClus       =  (AliAODMCParticle*) mcparticles->At(iParentClus);
+          if(!parentClus) break;
+          
+          parentClusPDG    = TMath::Abs(parentClus->GetPdgCode());
+          parentClusStatus = parentClus->GetStatus() ;
+        }//while
+        
+        if((momPDG == 22 || parentClusPDG ==22) && (label==pairLabel || iParentClus == pairLabel))
+        {
+          SetTagBit(tag, kMCDecayPairInCalo);
+          //printf("\t \t Conversion is paired: mom %d, parent %d\n",label,iParentClus);
+          return ;
+        }
+        else
+        {
+          //printf("\t \t Skip, finally label %d, pdg %d, parent label %d, pdg %d, status %d\n",label,momPDG,iParentClus,parentClusPDG,parentClusStatus);
+          continue;
+        }
+        
+      }
+    }
+  } // cluster loop
+
+  
+  SetTagBit(tag, kMCDecayPairLost);
+
+
+}
+
 //_____________________________________________________________________
 TList * AliMCAnalysisUtils::GetJets(const AliCaloTrackReader * reader)
 {
index 306fda6d41f9c9c1a631e6ecffdb3502920a5abf..8e51bac76c49ab09202f6c62918cf1029d502f1a 100755 (executable)
@@ -39,8 +39,10 @@ class AliMCAnalysisUtils : public TObject {
   //then charged particles on line 4,                                                                                    
   //followed by other and unknown on line 5                                                                              
   enum mcTypes { kMCPhoton,     kMCPrompt,      kMCFragmentation, kMCISR,    
-                 kMCPi0Decay,   kMCEtaDecay,    kMCOtherDecay,    kMCConversion,
-                 kMCElectron,   kMCEFromCFromB, kMCEFromC,        kMCEFromB, kMCZDecay,   kMCWDecay,
+                 kMCPi0Decay,   kMCEtaDecay,    kMCOtherDecay,
+                 kMCDecayPairLost, kMCDecayPairInCalo,
+                 kMCDecayDalitz,kMCConversion,  kMCElectron,
+                 kMCEFromCFromB,kMCEFromC,      kMCEFromB,        kMCZDecay, kMCWDecay,
                  kMCMuon,       kMCPion,        kMCPi0,           kMCKaon,   kMCEta,      kMCProton,   
                  kMCAntiProton, kMCNeutron,     kMCAntiNeutron,
                  kMCUnknown,    kMCBadLabel                                                         } ;
@@ -52,16 +54,19 @@ class AliMCAnalysisUtils : public TObject {
   Int_t   CheckCommonAncestor(Int_t index1, Int_t index2, const AliCaloTrackReader* reader, 
                              Int_t & ancPDG, Int_t & ancStatus, TLorentzVector & momentum, TVector3 & v) ;
   
-  Int_t   CheckOrigin(Int_t label, const AliCaloTrackReader * reader) ;
+  Int_t   CheckOrigin(Int_t label, const AliCaloTrackReader * reader, TString calorimeter) ;
   
   //Check the label of the most significant particle but do checks on the rest of the contributing labels
-  Int_t   CheckOrigin       (const Int_t *label,  Int_t nlabels, const AliCaloTrackReader * reader) ;
-  Int_t   CheckOriginInStack(const Int_t *labels, Int_t nlabels, AliStack * stack)                ; // ESD
-  Int_t   CheckOriginInAOD  (const Int_t *labels, Int_t nlabels, const TClonesArray* mcparticles) ; // AOD
+  Int_t   CheckOrigin       (const Int_t *label,  Int_t nlabels, const AliCaloTrackReader * reader, TString calorimeter) ;
+  Int_t   CheckOriginInStack(const Int_t *labels, Int_t nlabels, AliStack * stack               , const TObjArray *arrayCluster) ; // ESD
+  Int_t   CheckOriginInAOD  (const Int_t *labels, Int_t nlabels, const TClonesArray* mcparticles, const TObjArray *arrayCluster) ; // AOD
   
-  void    CheckOverlapped2GammaDecay(const Int_t *labels, Int_t nlabels, Int_t mesonIndex, AliStack * stack, Int_t & tag); // ESD
+  void    CheckOverlapped2GammaDecay(const Int_t *labels, Int_t nlabels, Int_t mesonIndex, AliStack * stack,                Int_t & tag); // ESD
   void    CheckOverlapped2GammaDecay(const Int_t *labels, Int_t nlabels, Int_t mesonIndex, const TClonesArray* mcparticles, Int_t & tag); // AOD
   
+  void    CheckLostDecayPair(const TObjArray *arrayCluster, Int_t iMom, Int_t iParent, AliStack* stack,                 Int_t & tag); // ESD
+  void    CheckLostDecayPair(const TObjArray *arrayCluster, Int_t iMom, Int_t iParent, const TClonesArray* mcparticles, Int_t & tag); // AOD
+  
   TLorentzVector GetMother     (Int_t label,const AliCaloTrackReader* reader, Bool_t & ok);
   TLorentzVector GetMother     (Int_t label,const AliCaloTrackReader* reader, Int_t & pdg, Int_t & status, Bool_t & ok);
   TLorentzVector GetMother     (Int_t label,const AliCaloTrackReader* reader, Int_t & pdg, Int_t & status, Bool_t & ok, Int_t & momLabel);
index 79b03d4073966814f6f8909fc3d9be991d2fa6fe..f536eabc1c6de848604d0035d99615143069aac1 100644 (file)
@@ -209,6 +209,21 @@ Bool_t AliClusterContainer::AcceptCluster(AliVCluster *clus) const
   return kTRUE;
 }
 
+//________________________________________________________________________
+Int_t AliClusterContainer::GetNAcceptedClusters()
+{
+  // Get number of accepted particles
+
+  Int_t nClus = 0;
+
+  AliVCluster *clus = GetNextAcceptCluster(0);
+  if(clus) nClus = 1;
+  while (GetNextAcceptCluster())
+    nClus++;
+
+  return nClus;
+}
+
 //________________________________________________________________________
 void AliClusterContainer::SetClassName(const char *clname)
 {
index fa0ebfc8f903f0dd7f21a4210e905b7cc2559552..3790e78dbacedff6a99f056f9937020759175da2 100644 (file)
@@ -26,6 +26,7 @@ class AliClusterContainer : public AliEmcalContainer {
   AliVCluster                *GetNextAcceptCluster(Int_t i=-1)            ;
   AliVCluster                *GetNextCluster(Int_t i=-1)                  ;
   Int_t                       GetNClusters()                         const { return GetNEntries();   }
+  Int_t                       GetNAcceptedClusters()                      ;
   void                        SetClassName(const char *clname);
   void                        SetClusECut(Double_t cut)                    { fClusECut      = cut ; }
   void                        SetClusPtCut(Double_t cut)                   { fClusPtCut      = cut ; }
index 41be85cda40a953398e76f03a60b5dac65e5457a..6afca51498f5810c86251be5c7039d70f91c24e0 100644 (file)
@@ -22,6 +22,7 @@ ClassImp(AliEmcalTrackingQATask)
 AliEmcalTrackingQATask::AliEmcalTrackingQATask() : 
   AliAnalysisTaskEmcal("AliEmcalTrackingQA", kTRUE),
   fSelectHIJING(kTRUE),
+  fDoSigma1OverPt(kFALSE),
   fGeneratorLevel(0),
   fDetectorLevel(0),
   fNPtHistBins(0),
@@ -32,6 +33,8 @@ AliEmcalTrackingQATask::AliEmcalTrackingQATask() :
   fPhiHistBins(0),
   fNCentHistBins(0),
   fCentHistBins(0),
+  fNPtRelDiffHistBins(0),
+  fPtRelDiffHistBins(0),
   fNPtResHistBins(0),
   fPtResHistBins(0),
   f1OverPtResHistBins(0),
@@ -53,6 +56,7 @@ AliEmcalTrackingQATask::AliEmcalTrackingQATask() :
 AliEmcalTrackingQATask::AliEmcalTrackingQATask(const char *name) : 
   AliAnalysisTaskEmcal(name, kTRUE),
   fSelectHIJING(kTRUE),
+  fDoSigma1OverPt(kFALSE),
   fGeneratorLevel(0),
   fDetectorLevel(0),
   fNPtHistBins(0),
@@ -63,6 +67,8 @@ AliEmcalTrackingQATask::AliEmcalTrackingQATask(const char *name) :
   fPhiHistBins(0),
   fNCentHistBins(0),
   fCentHistBins(0),
+  fNPtRelDiffHistBins(0),
+  fPtRelDiffHistBins(0),
   fNPtResHistBins(0),
   fPtResHistBins(0),
   f1OverPtResHistBins(0),
@@ -115,13 +121,27 @@ void AliEmcalTrackingQATask::GenerateHistoBins()
   fCentHistBins[3] = 50;
   fCentHistBins[4] = 90;
 
-  fNPtResHistBins = 200;
+  fNPtResHistBins = 175;
   fPtResHistBins = new Double_t[fNPtResHistBins+1];
-  GenerateFixedBinArray(fNPtResHistBins, -2, 2, fPtResHistBins);
-
-  fN1OverPtResHistBins = 100;
+  GenerateFixedBinArray(50, 0, 0.05, fPtResHistBins);
+  GenerateFixedBinArray(25, 0.05, 0.10, fPtResHistBins+50);
+  GenerateFixedBinArray(25, 0.10, 0.20, fPtResHistBins+75);
+  GenerateFixedBinArray(30, 0.20, 0.50, fPtResHistBins+100);
+  GenerateFixedBinArray(25, 0.50, 1.00, fPtResHistBins+130);
+  GenerateFixedBinArray(20, 1.00, 2.00, fPtResHistBins+155);
+
+  fNPtRelDiffHistBins = 200;
+  fPtRelDiffHistBins = new Double_t[fNPtRelDiffHistBins+1];
+  GenerateFixedBinArray(fNPtRelDiffHistBins, -2, 2, fPtRelDiffHistBins);
+
+  fN1OverPtResHistBins = 385;
   f1OverPtResHistBins = new Double_t[fN1OverPtResHistBins+1];
-  GenerateFixedBinArray(fN1OverPtResHistBins, 0, 1, f1OverPtResHistBins);
+  GenerateFixedBinArray(100, 0, 0.02, f1OverPtResHistBins);
+  GenerateFixedBinArray(60, 0.02, 0.05, f1OverPtResHistBins+100);
+  GenerateFixedBinArray(50, 0.05, 0.1, f1OverPtResHistBins+160);
+  GenerateFixedBinArray(50, 0.1, 0.2, f1OverPtResHistBins+210);
+  GenerateFixedBinArray(75, 0.2, 0.5, f1OverPtResHistBins+260);
+  GenerateFixedBinArray(50, 0.5, 1.5, f1OverPtResHistBins+335);
 
   fNIntegerHistBins = 10;
   fIntegerHistBins = new Double_t[fNIntegerHistBins+1];
@@ -200,10 +220,18 @@ void AliEmcalTrackingQATask::AllocateDetectorLevelTHnSparse()
   dim++;
 
   if (fIsEsd) {
-    title[dim] = "#sigma(1/#it{p}_{T}) (GeV/#it{c})^{-1}";
-    nbins[dim] = fN1OverPtResHistBins;
-    binEdges[dim] = f1OverPtResHistBins;
-    dim++;
+    if (fDoSigma1OverPt) {
+      title[dim] = "#sigma(1/#it{p}_{T}) (GeV/#it{c})^{-1}";
+      nbins[dim] = fN1OverPtResHistBins;
+      binEdges[dim] = f1OverPtResHistBins;
+      dim++;
+    }
+    else {
+      title[dim] = "#sigma(#it{p}_{T}) / #it{p}_{T}";
+      nbins[dim] = fNPtResHistBins;
+      binEdges[dim] = fPtResHistBins;
+      dim++;
+    }    
   }
  
   fTracks = new THnSparseF("fTracks","fTracks",dim,nbins);
@@ -312,8 +340,8 @@ void AliEmcalTrackingQATask::AllocateMatchedParticlesTHnSparse()
   dim++;
 
   title[dim] = "(#it{p}_{T}^{gen} - #it{p}_{T}^{det}) / #it{p}_{T}^{gen}";
-  nbins[dim] = fNPtResHistBins;
-  binEdges[dim] = fPtResHistBins;
+  nbins[dim] = fNPtRelDiffHistBins;
+  binEdges[dim] = fPtRelDiffHistBins;
   dim++;
 
   title[dim] = "track type";
@@ -394,6 +422,8 @@ void AliEmcalTrackingQATask::FillDetectorLevelTHnSparse(Double_t cent, Double_t
       contents[i] = trackPhi;
     else if (title=="#sigma(1/#it{p}_{T}) (GeV/#it{c})^{-1}")
       contents[i] = sigma1OverPt;
+    else if (title=="#sigma(#it{p}_{T}) / #it{p}_{T}")
+      contents[i] = sigma1OverPt*trackPt;
     else if (title=="MC Generator")
       contents[i] = mcGen;
     else if (title=="track type")
index a2fb40138b7f24fa586c255dfbc2736baed38fba..98a4c5ab8c01439bea0caee2a0d3cc881b75d90c 100644 (file)
@@ -34,6 +34,7 @@ class AliEmcalTrackingQATask : public AliAnalysisTaskEmcal {
 
   // Task configuration
   Bool_t                fSelectHIJING          ; //  select HIJING particles
+  Bool_t                fDoSigma1OverPt        ; //  add sigma(1/pt), if false add sigma(pt)/pt instead
 
   // Service fields (non-streamed)
   AliParticleContainer* fGeneratorLevel        ; //! generator level container
@@ -46,9 +47,11 @@ class AliEmcalTrackingQATask : public AliAnalysisTaskEmcal {
   Double_t*             fPhiHistBins           ; //! phi bins
   Int_t                 fNCentHistBins         ; //! number of cent bins
   Double_t*             fCentHistBins          ; //! cent bins
+  Int_t                 fNPtRelDiffHistBins    ; //! number of pt relative difference bins
+  Double_t*             fPtRelDiffHistBins     ; //! pt relative difference bins
   Int_t                 fNPtResHistBins        ; //! number of pt res bins
-  Double_t*             fPtResHistBins         ; //! 1/pt res bins
-  Double_t*             f1OverPtResHistBins    ; //! pt res bins
+  Double_t*             fPtResHistBins         ; //! pt res bins
+  Double_t*             f1OverPtResHistBins    ; //! 1/pt res bins
   Int_t                 fN1OverPtResHistBins   ; //! number of 1/pt res bins
   Int_t                 fNIntegerHistBins      ; //! number of integer bins
   Double_t*             fIntegerHistBins       ; //! integer bins
@@ -63,6 +66,6 @@ class AliEmcalTrackingQATask : public AliAnalysisTaskEmcal {
   AliEmcalTrackingQATask(const AliEmcalTrackingQATask&);            // not implemented
   AliEmcalTrackingQATask &operator=(const AliEmcalTrackingQATask&); // not implemented
 
-  ClassDef(AliEmcalTrackingQATask, 1) // Track QA task (efficiency and pt resolution)
+  ClassDef(AliEmcalTrackingQATask, 2) // Track QA task (efficiency and pt resolution)
 };
 #endif
index 8626d2515cea4838a1a2938949b6d046d415ec1a..b9b0ef0716fb5846250658f5c345df2a4215ac5f 100644 (file)
@@ -25,7 +25,8 @@ AliParticleContainer::AliParticleContainer():
   fMCTrackBitMap(0),
   fMinMCLabel(0),
   fMCFlag(0),
-  fGeneratorIndex(-1)
+  fGeneratorIndex(-1),
+  fCharge(-1)
 {
   // Default constructor.
 
@@ -44,7 +45,8 @@ AliParticleContainer::AliParticleContainer(const char *name):
   fMCTrackBitMap(0),
   fMinMCLabel(0),
   fMCFlag(0),
-  fGeneratorIndex(-1)
+  fGeneratorIndex(-1),
+  fCharge(-1)
 {
   // Standard constructor.
 
@@ -99,7 +101,7 @@ AliVParticle* AliParticleContainer::GetAcceptParticle(Int_t i) const {
   if(!vp) return 0;
 
   if(AcceptParticle(vp))
-    return vp;
+      return vp;
   else {
     AliDebug(2,"Particle not accepted.");
     return 0;
@@ -201,6 +203,9 @@ Bool_t AliParticleContainer::AcceptParticle(AliVParticle *vp) const
 
   if (fGeneratorIndex >= 0 && fGeneratorIndex != vp->GetGeneratorIndex())
     return kFALSE;
+
+  if (fCharge>=0 && fCharge != vp->Charge() )
+    return kFALSE;
   
   return kTRUE;
 }
index 7cde62138e7c75a17080677d8f3311456ee190e2..cb2ec28c98a4b0896418bbd61b889083d206aeef 100644 (file)
@@ -44,6 +44,7 @@ class AliParticleContainer : public AliEmcalContainer {
   void                        SetGeneratorIndex(Short_t i)                      { fGeneratorIndex = i  ; }
   void                        SelectPhysicalPrimaries(Bool_t s)                 { if (s) fMCFlag |=  AliAODMCParticle::kPhysicalPrim ; 
                                                                                   else   fMCFlag &= ~AliAODMCParticle::kPhysicalPrim ; }
+  void                        SetCharge(Short_t c)                              { fCharge = c         ; }
 
  protected:
   Double_t                    fParticlePtCut;                 // cut on particle pt
@@ -56,12 +57,13 @@ class AliParticleContainer : public AliEmcalContainer {
   Int_t                       fMinMCLabel;                    // minimum MC label value for the tracks/clusters being considered MC particles
   UInt_t                      fMCFlag;                        // select MC particles with flags
   Short_t                     fGeneratorIndex;                // select MC particles with generator index (default = -1 = switch off selection)
+  Short_t                     fCharge;                        // select particles with charge=fCharge
 
  private:
   AliParticleContainer(const AliParticleContainer& obj); // copy constructor
   AliParticleContainer& operator=(const AliParticleContainer& other); // assignment
 
-  ClassDef(AliParticleContainer,2);
+  ClassDef(AliParticleContainer,3);
 
 };
 
index c71b5ebdee19a8b380732394f946681ed1ebcd78..c1500caef4a82275cd583ca2721ba317f743898f 100644 (file)
@@ -3988,8 +3988,8 @@ void AliJetFlowTools::GetSignificance(
         Int_t up                        // upper bin
         )
 {
-    // calculate some significance levels
-    Double_t statE(0), shapeE(0), corrE(0), statT(0), totalE(0), y(0), x(0), average(0), averageStat(0), chi2(0);
+    // calculate confidence level based on statistical uncertainty only
+    Double_t statE(0), shapeE(0), corrE(0), totalE(0), y(0), x(0), chi2(0);
 
     // print some stuff
     for(Int_t i(low); i < up+1; i++) { 
@@ -4000,45 +4000,36 @@ void AliJetFlowTools::GetSignificance(
         statE = n->GetErrorYlow(i);
         printf(" > stat \t %.4f \n", statE);
     }
-    for(Int_t i(low); i < up+1; i++) {    
-        shapeE = shape->GetErrorYlow(i);
-        printf(" > shape \t %.4f \n", shapeE);
-    }
-    for(Int_t i(low); i < up+1; i++) {    
-        corrE = corr->GetErrorYlow(i);
-        printf(" > corr \t %.4f \n", corrE);
+
+    // get the p value based solely on statistical uncertainties
+    for(Int_t i(low); i < up+1; i++) {
+        // set some flags to 0
+        x = 0.;
+        y = 0.;
+        // get the nominal point
+        n->GetPoint(i, x, y);
+        statE = n->GetErrorYlow(i);
+        // combine the errors
+        chi2 += TMath::Power(y/statE, 2);
     }
+    cout << "p-value: p(" << chi2 << ", 6) " << TMath::Prob(chi2, 6) << endl;
+    cout << "  so the probability of finding data at least as imcompatible with 0 as the actually" << endl;
+    cout << "  observed data, using only statistical uncertainties, is " << TMath::Prob(chi2, 2) << endl << endl << endl ; 
 
+    // to plot the average error as function of number of events
     for(Int_t i(low); i < up+1; i++) {
         // set some flags to 0
-        statE = 0.;
-        shapeE = 0.;
-        corrE = 0.;
         x = 0.;
         y = 0.;
-        totalE = 0.;
         // get the nominal point
         n->GetPoint(i, x, y);
-        printf(" > v2 \t %.4f \n", y);
-        // get the uncorrelated errors. all errors are 'low' errors as all v2 points are positive in this range
         statE = n->GetErrorYlow(i);
-        printf(" > stat \t %.4f \n", statE);
-        statT += statE;
         shapeE = shape->GetErrorYlow(i);
-        printf(" > shape \t %.4f \n", shapeE);
-        // get the correalted error
         corrE = corr->GetErrorYlow(i);
-        printf(" > corr \t %.4f \n", corrE);
         // combine the errors
-        totalE = TMath::Sqrt(statE*statE+shapeE*shapeE) + TMath::Sqrt(corrE*corrE);
-        printf(" > Bin %i \t totalE %.4f \t statE %.4f \t v2 %.4f \t nSigma %.4f \t(just stat %.4f) < \n", i, totalE, statE, y, y/totalE, y/statE);
-        average += y/totalE;
-        averageStat += y/statE;
-        chi2 += TMath::Power(y/totalE, 2);
+        totalE = TMath::Sqrt(statE*statE+shapeE*shapeE);// + TMath::Sqrt(corrE*corrE);
     }
-    printf(" > Average n-sigmas: %.4f \t (stat only %.4f) <\n", average/(up-low+1), averageStat/(up-low+1));
-    printf(" > Chi2: %.4f <\n", chi2);
-    printf(" > p-value %.4f <\n", 1.-TMath::Gamma((up-low+1)/2., chi2/2.)); 
+    cout << " AVERAGE_E " << totalE/((float)(up-low+1)) << endl;
 }
 //_____________________________________________________________________________
 void AliJetFlowTools::MinimizeChi22d()
@@ -4223,11 +4214,75 @@ void AliJetFlowTools::MinimizeChi2()
 Double_t AliJetFlowTools::PhenixChi2(const Double_t *xx )
 {
     // define arrays with results and errors
-    Double_t v2[6]      = {0.};
-    Double_t stat[6]    = {0.};
-    Double_t corr[6]    = {0.};
-    Double_t shape[6]   = {0.};
-
+  /* 
+   Double_t v2[] = {
+        0.0094,
+        0.0559,
+        0.0746,
+        0.1077,
+        0.1208,
+        0.0883
+    };
+   Double_t stat[] = {
+        0.0287,
+        0.0311, 
+        0.0443, 
+        0.0600, 
+        0.0802, 
+        0.1223
+   };
+   Double_t shape[] = {
+        0.0607, 
+        0.0623, 
+        0.0397, 
+        0.0312, 
+        0.0452, 
+        0.0716
+   };
+   Double_t corr[] = { 
+        0.0402,
+        0.0460, 
+        0.0412, 
+        0.0411, 
+        0.0403, 
+        0.0402 
+ };
+*/
+    // these points are for 30 - 50 centrality, 20-90 gev (in which data is reported)
+    Double_t v2[] = {
+        0.0816,
+        0.0955, 
+        0.0808, 
+        0.0690, 
+        0.0767, 
+        0.1005 
+    };
+    Double_t stat[] = { 
+        0.0113,
+        0.0172,
+        0.0221, 
+        0.0317, 
+        0.0469, 
+        0.0694 
+    };
+    Double_t shape[] = { 
+        0.1024,
+        0.0552, 
+        0.0275, 
+        0.0231, 
+        0.0234, 
+        0.0665
+    };
+    Double_t corr[] = { 
+        0.0165,
+        0.0164, 
+        0.0165, 
+        0.0166, 
+        0.0166, 
+        0.0165
+    };
     // return the function value at certain epsilon
     const Double_t epsc = xx[0];
     Double_t chi2(0);
@@ -4303,11 +4358,75 @@ Double_t AliJetFlowTools::PhenixChi2nd(const Double_t *xx )
     // define arrays with results and errors here, see example at PhenixChi2()
     // very ugly, but two set of data, for 0-5  and 30-50 pct centrality
     // this function has to be static, so this is the easiest way to implement it in the class ...
-    Double_t v2[6]      = {0.};
-    Double_t stat[6]    = {0.};
-    Double_t corr[6]    = {0.};
-    Double_t shape[6]   = {0.};
-
+  /* 
+   Double_t v2[] = {
+        0.0094,
+        0.0559,
+        0.0746,
+        0.1077,
+        0.1208,
+        0.0883
+    };
+   Double_t stat[] = {
+        0.0287,
+        0.0311, 
+        0.0443, 
+        0.0600, 
+        0.0802, 
+        0.1223
+   };
+   Double_t shape[] = {
+        0.0607, 
+        0.0623, 
+        0.0397, 
+        0.0312, 
+        0.0452, 
+        0.0716
+   };
+   Double_t corr[] = { 
+        0.0402,
+        0.0460, 
+        0.0412, 
+        0.0411, 
+        0.0403, 
+        0.0402 
+ };
+*/
+    // these points are for 30 - 50 centrality, 20-90 gev (in which data is reported)
+    Double_t v2[] = {
+        0.0816,
+        0.0955, 
+        0.0808, 
+        0.0690, 
+        0.0767, 
+        0.1005 
+    };
+    Double_t stat[] = { 
+        0.0113,
+        0.0172,
+        0.0221, 
+        0.0317, 
+        0.0469, 
+        0.0694 
+    };
+    Double_t shape[] = { 
+        0.1024,
+        0.0552, 
+        0.0275, 
+        0.0231, 
+        0.0234, 
+        0.0665
+    };
+    Double_t corr[] = { 
+        0.0165,
+        0.0164, 
+        0.0165, 
+        0.0166, 
+        0.0166, 
+        0.0165
+    };
     // return the function value at certain epsilon
     const Double_t epsc = xx[0];
     const Double_t epsb = xx[1];
index 39b190ae3883042adb97d89775977685aab2b935..f63b8b7869286ab8f5f5ecd6cd30266719bd2507 100644 (file)
@@ -225,7 +225,7 @@ class AliJetFlowTools {
         static void     GetSignificance(
                 TGraphErrors* n,                // points with stat error
                 TGraphAsymmErrors* shape,       // points with shape error
-                TGraphAsymmErrors* corr,        // points with stat error
+                TGraphAsymmErrors* corr,        // corr with stat error
                 Int_t low,                      // pt lower level
                 Int_t up                        // pt upper level
         );
@@ -316,7 +316,7 @@ TLatex* tex = new TLatex(xmin, ymax, string.Data());
             return tex;
         }
 
-        static void     SavePadToPDF(TVirtualPad* pad)  {pad->SaveAs(Form("%s.pdf", pad->GetName()));}
+        static void     SavePadToPDF(TVirtualPad* pad)  {return;/*pad->SaveAs(Form("%s.pdf", pad->GetName()));*/}
         // interface to AliUnfolding, not necessary but nice to have all parameters in one place
         static void     SetMinuitStepSize(Float_t s)    {AliUnfolding::SetMinuitStepSize(s);}
         static void     SetMinuitPrecision(Float_t s)   {AliUnfolding::SetMinuitPrecision(s);}
index 7a9916a11e83eff41085dd412eb4b990cbb55dad..1541ba25e62bd5a43912a45ca78574d26c5d59f7 100644 (file)
@@ -53,7 +53,6 @@ AliMuonEventCuts::AliMuonEventCuts() :
   fVertexVzMin(0.),
   fVertexVzMax(0.),
   fCheckMask(0),
-  fDefaultTrigClassPatterns(""),
   fSelectedTrigPattern(0x0),
   fRejectedTrigPattern(0x0),
   fSelectedTrigLevel(0x0),
@@ -76,7 +75,6 @@ AliAnalysisCuts(name, title),
   fVertexVzMin(0.),
   fVertexVzMax(0.),
   fCheckMask(0xFFFF),
-  fDefaultTrigClassPatterns(""),
   fSelectedTrigPattern(new TObjArray()),
   fRejectedTrigPattern(new TObjArray()),
   fSelectedTrigLevel(new TObjArray()),
@@ -93,7 +91,6 @@ AliAnalysisCuts(name, title),
   SetDefaultFilterMask();
   SetDefaultTrigClassPatterns();
   SetTrigClassLevels();
-  SetDefaultTrigInputsMap();
   SetCentralityClasses();
   fAnalysisUtils = new AliAnalysisUtils();
   fAllSelectedTrigClasses->SetOwner();
@@ -108,7 +105,6 @@ AliMuonEventCuts::AliMuonEventCuts(const AliMuonEventCuts& obj) :
   fVertexVzMin(obj.fVertexVzMin),
   fVertexVzMax(obj.fVertexVzMax),
   fCheckMask(obj.fCheckMask),
-  fDefaultTrigClassPatterns(obj.fDefaultTrigClassPatterns),
   fSelectedTrigPattern(obj.fSelectedTrigPattern),
   fRejectedTrigPattern(obj.fRejectedTrigPattern),
   fSelectedTrigLevel(obj.fSelectedTrigLevel),
@@ -135,7 +131,6 @@ AliMuonEventCuts& AliMuonEventCuts::operator=(const AliMuonEventCuts& obj)
     fVertexVzMin = obj.fVertexVzMin;
     fVertexVzMax = obj.fVertexVzMax;
     fCheckMask = obj.fCheckMask;
-    fDefaultTrigClassPatterns = obj.fDefaultTrigClassPatterns;
     fSelectedTrigPattern = obj.fSelectedTrigPattern;
     fRejectedTrigPattern = obj.fRejectedTrigPattern;
     fSelectedTrigLevel = obj.fSelectedTrigLevel;
@@ -248,18 +243,78 @@ Bool_t AliMuonEventCuts::UpdateEvent ( const AliVEvent* event )
   return kTRUE;
 }
 
+//________________________________________________________________________
+TString AliMuonEventCuts::GetDefaultTrigClassPatterns () const
+{
+  /// Get the default patterns
+  /// (done in such a way to get all muon triggers)
+  return "CM*,C0M*,CINT*,CPBI*,CCENT*,CV*,!*ABCE*,!*-ACE-*,!*-AC-*,!*-E-*,!*WU*,!*EGA*,!*EJE*,!*PHS*";
+}
+
+//________________________________________________________________________
+TString AliMuonEventCuts::GetDefaultTrigInputsMap () const
+{
+  /// Get the default trigger inputs
+  ///
+
+  TString trigInputsMap = "0VBA:0,";
+  trigInputsMap += "0VBC:1,";
+  trigInputsMap += "0SMB:2,";
+  trigInputsMap += "0TVX:3,";
+  trigInputsMap += "0VGC:4,";
+  trigInputsMap += "0VGA:5,";
+  trigInputsMap += "0SH1:6,";
+  trigInputsMap += "0SH2:7,";
+  trigInputsMap += "0HPT:8,";
+  trigInputsMap += "0AMU:9,";
+  trigInputsMap += "0OB0:10,";
+  trigInputsMap += "0ASL:11,";
+  trigInputsMap += "0MSL:12,";
+  trigInputsMap += "0MSH:13,";
+  trigInputsMap += "0MUL:14,";
+  trigInputsMap += "0MLL:15,";
+  trigInputsMap += "0EMC:16,";
+  trigInputsMap += "0PH0:17,";
+  trigInputsMap += "0HWU:18,";
+  trigInputsMap += "0LSR:19,";
+  trigInputsMap += "0T0A:20,";
+  trigInputsMap += "0BPA:21,";
+  trigInputsMap += "0BPC:22,";
+  trigInputsMap += "0T0C:23,";
+
+  trigInputsMap += "1EJE:0,";
+  trigInputsMap += "1EGA:1,";
+  trigInputsMap += "1EJ2:2,";
+  trigInputsMap += "1EG2:3,";
+  trigInputsMap += "1PHL:4,";
+  trigInputsMap += "1PHM:5,";
+  trigInputsMap += "1PHH:6,";
+  trigInputsMap += "1HCO:8,";
+  trigInputsMap += "1HJT:9,";
+  trigInputsMap += "1HSE:10,";
+  trigInputsMap += "1DUM:11,";
+  trigInputsMap += "1HQU:12,";
+  trigInputsMap += "1H14:13,";
+  trigInputsMap += "1ZMD:14,";
+  trigInputsMap += "1ZMB:16,";
+  trigInputsMap += "1ZED:17,";
+  trigInputsMap += "1ZAC:18,";
+  trigInputsMap += "1EJE:19";
+
+  return trigInputsMap;
+}
+
 //________________________________________________________________________
 void AliMuonEventCuts::SetDefaultTrigClassPatterns ()
 {
   /// Set the default patterns
   /// (done in such a way to get all muon triggers)
-  fDefaultTrigClassPatterns = "CM*,C0M*,CINT*,CPBI*,CCENT*,CV*,!*ABCE*,!*-ACE-*,!*-AC-*,!*-E-*,!*WU*,!*EGA*,!*EJE*,!*PHS*";
-  SetTrigClassPatterns(fDefaultTrigClassPatterns);
+  SetTrigClassPatterns(GetDefaultTrigClassPatterns(),GetDefaultTrigInputsMap());
 }
 
 
 //________________________________________________________________________
-void AliMuonEventCuts::SetTrigClassPatterns ( TString trigPattern )
+void AliMuonEventCuts::SetTrigClassPatterns ( TString trigPattern, TString trigInputsMap )
 {
   /// Set trigger classes
   ///
@@ -298,7 +353,9 @@ void AliMuonEventCuts::SetTrigClassPatterns ( TString trigPattern )
   if ( fSelectedTrigPattern->GetEntries() > 0 ) fSelectedTrigPattern->Delete();
   fRejectedTrigPattern->SetOwner();
   if ( fRejectedTrigPattern->GetEntries() > 0 ) fRejectedTrigPattern->Delete();
-  
+
+  SetTrigInputsMap(trigInputsMap);
+
   TString badSyntax = "", duplicated = "";
   TString listName[4] = {"L0","L1","L2","trigClass"};
   
@@ -316,7 +373,7 @@ void AliMuonEventCuts::SetTrigClassPatterns ( TString trigPattern )
     Bool_t isSingleTrigger = ( ! isCombination && ! currPattern.BeginsWith("0") && ! currPattern.BeginsWith("1") && ! currPattern.BeginsWith("2") );
     Bool_t isMatchPattern = ( currPattern.Contains("*") || isSingleTrigger );
     Bool_t isRejectPattern = kFALSE;
-    if ( currPattern.Contains("!") ) {
+    if ( isMatchPattern && currPattern.Contains("!") ) {
       currPattern.ReplaceAll("!","");
       isRejectPattern = kTRUE;
     }
@@ -341,7 +398,7 @@ void AliMuonEventCuts::SetTrigClassPatterns ( TString trigPattern )
     TString currPattern = objString->String();
     
     TString tn (currPattern);
-    Bool_t hasAND = kFALSE, hasOR = kFALSE;
+    Bool_t hasAND = kFALSE, hasOR = kFALSE, hasNOT = kFALSE;
     if ( tn.Contains("&") ) {
       tn.ReplaceAll("&",":");
       hasAND = kTRUE;
@@ -350,12 +407,16 @@ void AliMuonEventCuts::SetTrigClassPatterns ( TString trigPattern )
       tn.ReplaceAll("|",":");
       hasOR = kTRUE;
     }
+    if ( tn.Contains("!") ) {
+      tn.ReplaceAll("!","");
+      hasNOT = kTRUE;
+    }
     if ( tn.Contains("(") || tn.Contains(")") ) {
       tn.ReplaceAll("(","");
       tn.ReplaceAll(")","");
     }
     
-    if ( ! hasAND && ! hasOR ) {
+    if ( ! hasAND && ! hasOR && ! hasNOT ) {
       if ( CheckTriggerClassPattern(currPattern) ) {
         duplicated += Form("%s ", currPattern.Data());
         continue;
@@ -367,7 +428,7 @@ void AliMuonEventCuts::SetTrigClassPatterns ( TString trigPattern )
     trigCombo->SetName(currPattern.Data());
     
     UInt_t uniqueID = kComboSimple;
-    if ( hasAND && hasOR ) uniqueID = kComboFormula;
+    if ( ( hasAND && hasOR ) || hasNOT ) uniqueID = kComboFormula;
     else if ( hasAND ) uniqueID = kComboAND;
     else if ( hasOR ) uniqueID = kComboOR;
     
@@ -526,9 +587,14 @@ void AliMuonEventCuts::SetTrigInputsMap ( TString trigInputsMap )
   
   fTrigInputsMap->SetOwner();
   if ( fTrigInputsMap->GetEntries() > 0 ) fTrigInputsMap->Delete();
-  
+
+  if ( trigInputsMap.IsNull() ) {
+    AliWarning("Trigger input map not specified: using default");
+    trigInputsMap = GetDefaultTrigInputsMap();
+  }
+
   trigInputsMap.ReplaceAll(" ","");
-  
+
   TObjArray* fullList = trigInputsMap.Tokenize(",");
   for ( Int_t ipat=0; ipat<fullList->GetEntries(); ++ipat ) {
     TString currPattern = fullList->At(ipat)->GetName();
@@ -542,58 +608,6 @@ void AliMuonEventCuts::SetTrigInputsMap ( TString trigInputsMap )
   delete fullList;
 }
 
-//________________________________________________________________________
-void AliMuonEventCuts::SetDefaultTrigInputsMap ()
-{
-  /// Set default trigger input mask
-  
-  TString trigInputsMap = "0VBA:0,";
-  trigInputsMap += "0VBC:1,";
-  trigInputsMap += "0SMB:2,";
-  trigInputsMap += "0TVX:3,";
-  trigInputsMap += "0VGC:4,";
-  trigInputsMap += "0VGA:5,";
-  trigInputsMap += "0SH1:6,";
-  trigInputsMap += "0SH2:7,";
-  trigInputsMap += "0HPT:8,";
-  trigInputsMap += "0AMU:9,";
-  trigInputsMap += "0OB0:10,";
-  trigInputsMap += "0ASL:11,";
-  trigInputsMap += "0MSL:12,";
-  trigInputsMap += "0MSH:13,";
-  trigInputsMap += "0MUL:14,";
-  trigInputsMap += "0MLL:15,";
-  trigInputsMap += "0EMC:16,";
-  trigInputsMap += "0PH0:17,";
-  trigInputsMap += "0HWU:18,";
-  trigInputsMap += "0LSR:19,";
-  trigInputsMap += "0T0A:20,";
-  trigInputsMap += "0BPA:21,";
-  trigInputsMap += "0BPC:22,";
-  trigInputsMap += "0T0C:23,";
-  
-  trigInputsMap += "1EJE:0,";
-  trigInputsMap += "1EGA:1,";
-  trigInputsMap += "1EJ2:2,";
-  trigInputsMap += "1EG2:3,";
-  trigInputsMap += "1PHL:4,";
-  trigInputsMap += "1PHM:5,";
-  trigInputsMap += "1PHH:6,";
-  trigInputsMap += "1HCO:8,";
-  trigInputsMap += "1HJT:9,";
-  trigInputsMap += "1HSE:10,";
-  trigInputsMap += "1DUM:11,";
-  trigInputsMap += "1HQU:12,";
-  trigInputsMap += "1H14:13,";
-  trigInputsMap += "1ZMD:14,";
-  trigInputsMap += "1ZMB:16,";
-  trigInputsMap += "1ZED:17,";
-  trigInputsMap += "1ZAC:18,";
-  trigInputsMap += "1EJE:19";
-  
-  SetTrigInputsMap(trigInputsMap);
-}
-
 //________________________________________________________________________
 const TObjArray*
 AliMuonEventCuts::GetSelectedTrigClassesInEvent(const TString& firedTriggerClasses,
@@ -753,9 +767,28 @@ AliMuonEventCuts::AddToEventSelectedClass ( const TString& toCheck, const TObjSt
     // - the lowest pt cut among the macthing ones in case "toCheck" is a trigger class/input
     //   combined through (only) logical OR "|"
     // This may lead to errors in case of complex combinations of trigger/inputs
+
+    // First eliminate trigger classes which are negated in combinations
+    TString checkStr(toCheck);
+    while ( checkStr.Contains("!") ) {
+      Int_t startNot = checkStr.Index("!");
+      Int_t endNot = startNot;
+      Int_t npars = 0;
+      for ( endNot = startNot; endNot<checkStr.Length(); endNot++ ) {
+        if ( checkStr[endNot] == '(' ) npars++;
+        else if ( checkStr[endNot] == ')' ) npars--;
+
+        if ( npars == 0 ) {
+          if ( checkStr[endNot] == '&' || checkStr[endNot] == '|' ) break;
+        }
+      }
+      checkStr.Remove(startNot,endNot-startNot);
+    }
+
+    // Then check if they match the Lpt or Hpt
     Bool_t isFirst = kTRUE;
     for ( Int_t ipat=0; ipat<fSelectedTrigLevel->GetEntries(); ++ipat ) {
-      if ( toCheck.Contains(fSelectedTrigLevel->At(ipat)->GetName() ) ) {
+      if ( checkStr.Contains(fSelectedTrigLevel->At(ipat)->GetName() ) ) {
         UInt_t currLevel = fSelectedTrigLevel->At(ipat)->GetUniqueID();
         if ( comboType == kComboAND ) trigLevel = TMath::Max(trigLevel, currLevel);
         else if ( comboType == kComboOR || comboType == kComboFormula ) {
index 05be26cbb7905cb22a39265457c5fce3ebe823bd..1a16694e341ea5f96b8d09ad918cc528100517cf 100644 (file)
@@ -43,12 +43,12 @@ class AliMuonEventCuts : public AliAnalysisCuts
   void SkipTestsNonInFilterMask ( UInt_t skipMask = 0xFFFF) { fCheckMask = ~skipMask; }
   
   // Handle trigger
-  void SetTrigClassPatterns (TString trigPattern );
+  void SetTrigClassPatterns ( TString trigPattern, TString trigInputsMap = "" );
   /// Get default trigger class patterns
-  TString GetDefaultTrigClassPatterns() { return fDefaultTrigClassPatterns; };
+  TString GetDefaultTrigClassPatterns() const;
+  TString GetDefaultTrigInputsMap() const;
   void SetTrigClassLevels (TString pattern = "MSL:Lpt,MUSL:Lpt,MSH:Hpt,MUSH:Hpt,MUL:LptLpt,MUU:LptLpt,MLL:LptLpt" );
   TArrayI GetTrigClassPtCutLevel (TString trigClassName ) const;
-  void SetTrigInputsMap (TString trigInputsMap );
   /// Get trigger classes found in run
   TList* GetAllSelectedTrigClasses () const { return fAllSelectedTrigClasses; }
   const TObjArray* GetSelectedTrigClassesInEvent ( const AliVEvent* event );
@@ -95,7 +95,7 @@ class AliMuonEventCuts : public AliAnalysisCuts
   void AddToEventSelectedClass ( const TString& toCheck, const TObjString* foundTrig, const UInt_t comboType = 0 );
   Bool_t UpdateEvent( const AliVEvent* event );
   void SetDefaultTrigClassPatterns();
-  void SetDefaultTrigInputsMap();
+  void SetTrigInputsMap ( TString trigInputsMap );
     
   UInt_t fPhysicsSelectionMask; ///< Physics selection mask
   
@@ -105,7 +105,6 @@ class AliMuonEventCuts : public AliAnalysisCuts
   
   UInt_t fCheckMask;              ///< Mask telling which cuts to check (by default check filter mask)
   
-  TString fDefaultTrigClassPatterns; ///< Default trigger class patterns
   TObjArray* fSelectedTrigPattern; ///< List of triggers to be kept
   TObjArray* fRejectedTrigPattern; ///< List of triggers to be rejected
   TObjArray* fSelectedTrigLevel;   ///< Track-trigger pt cut for selected trigger class
@@ -120,7 +119,7 @@ class AliMuonEventCuts : public AliAnalysisCuts
   TObjArray* fSelectedTrigClassesInEvent; //!< list of selected trigger classes in current event
   enum {kComboSimple, kComboFormula, kComboAND, kComboOR}; //!< Trigger combination types
   
-  ClassDef(AliMuonEventCuts, 5); // Class for muon event filters
+  ClassDef(AliMuonEventCuts, 6); // Class for muon event filters
 };
 
 #endif
diff --git a/PWGCF/CMakelibPWGCFESE.pkg b/PWGCF/CMakelibPWGCFESE.pkg
new file mode 100644 (file)
index 0000000..683ba0f
--- /dev/null
@@ -0,0 +1,47 @@
+# -*- mode: CMake -*-
+#------------------------------------------------------------------------#
+# Package File for PWG2femtoscopy                                        #
+# Author : Johny Jose (johny.jose@cern.ch)                               #
+# Variables Defined :                                                    #
+#                                                                        #
+# SRCS - C++ source files                                                #
+# HDRS - C++ header files                                                #
+# DHDR - ROOT Dictionary Linkdef header file                             #
+# CSRCS - C source files                                                 #
+# CHDRS - C header files                                                 #
+# EINCLUDE - Include directories                                         #
+# EDEFINE - Compiler definitions                                         #
+# ELIBS - Extra libraries to link                                        #
+# ELIBSDIR - Extra library directories                                   #
+# PACKFFLAGS - Fortran compiler flags for package                        #
+# PACKCXXFLAGS - C++ compiler flags for package                          #
+# PACKCFLAGS - C compiler flags for package                              #
+# PACKSOFLAGS - Shared library linking flags                             #
+# PACKLDFLAGS - Module linker flags                                      #
+# PACKBLIBS - Libraries to link (Executables only)                       #
+# EXPORT - Header files to be exported                                   #
+# CINTHDRS - Dictionary header files                                     #
+# CINTAUTOLINK - Set automatic dictionary generation                     #
+# ARLIBS - Archive Libraries and objects for linking (Executables only)  #
+# SHLIBS - Shared Libraries and objects for linking (Executables only)   #
+#------------------------------------------------------------------------#
+
+set ( SRCS  
+    FEMTOSCOPY/ESE/AliAnalysisTaskFemtoESE.cxx
+    )
+
+string ( REPLACE ".cxx" ".h" HDRS "${SRCS}" )
+
+set ( DHDR  PWGCFESELinkDef.h)
+
+set ( EXPORT )
+
+set ( EINCLUDE PWGCF/FEMTOSCOPY/ESE STEER/AOD STEER/ESD STEER/STEERBase ANALYSIS PWGLF/SPECTRA/PiKaPr/TestAOD)
+
+install (DIRECTORY FEMTOSCOPY/macros
+         DESTINATION PWGCF/FEMTOSCOPY 
+         PATTERN .svn EXCLUDE)
+
+#
+# EOF
+#
index 3090853237c4e199c5e785fc597fcfbbb62e0481..7dcb7969d11d2460eebd014a2c1e0807ac3db2e9 100755 (executable)
@@ -78,6 +78,7 @@ AliAnalysisTaskSE(),
   fMultLimit(0),
   fCentBinLowLimit(0),
   fCentBinHighLimit(1),
+  fTriggerType(0),
   fEventCounter(0),
   fEventsToMix(0),
   fZvertexBins(0),
@@ -257,6 +258,7 @@ AliFourPion::AliFourPion(const Char_t *name)
   fMultLimit(0),
   fCentBinLowLimit(0),
   fCentBinHighLimit(1),
+  fTriggerType(0),
   fEventCounter(0),
   fEventsToMix(0),
   fZvertexBins(0),
@@ -440,6 +442,7 @@ AliFourPion::AliFourPion(const AliFourPion &obj)
     fMultLimit(obj.fMultLimit),
     fCentBinLowLimit(obj.fCentBinLowLimit),
     fCentBinHighLimit(obj.fCentBinHighLimit),
+    fTriggerType(obj.fTriggerType),
     fEventCounter(obj.fEventCounter),
     fEventsToMix(obj.fEventsToMix),
     fZvertexBins(obj.fZvertexBins),
@@ -570,6 +573,7 @@ AliFourPion &AliFourPion::operator=(const AliFourPion &obj)
   fMultLimit = obj.fMultLimit;
   fCentBinLowLimit = obj.fCentBinLowLimit;
   fCentBinHighLimit = obj.fCentBinHighLimit;
+  fTriggerType = obj.fTriggerType;
   fEventCounter = obj.fEventCounter;
   fEventsToMix = obj.fEventsToMix;
   fZvertexBins = obj.fZvertexBins;
@@ -757,9 +761,10 @@ void AliFourPion::ParInit()
   fShareFraction = .05;// max
   ////////////////////////////////////////////////
   
-  
-  fMultLimits[0]=0, fMultLimits[1]=2, fMultLimits[2]=4, fMultLimits[3]=6, fMultLimits[4]=8, fMultLimits[5]=10;
-  fMultLimits[6]=12, fMultLimits[7]=14, fMultLimits[8]=16, fMultLimits[9]=18, fMultLimits[10]=20, fMultLimits[11]=150;
+  // pp and pPb mult limits
+  fMultLimits[0]=0, fMultLimits[1]=5; fMultLimits[2]=10; fMultLimits[3]=15; fMultLimits[4]=20;
+  fMultLimits[5]=30, fMultLimits[6]=40; fMultLimits[7]=50; fMultLimits[8]=70; fMultLimits[9]=100;
+  fMultLimits[10]=150;
   
     
   
@@ -771,7 +776,7 @@ void AliFourPion::ParInit()
     fNormQcutHigh = 0.2;// 0.175
   }else {// pp
     fMultLimit=kMultLimitpp; 
-    fMbins=kMultBinspp
+    fMbins=1
     fQcut=0.6;
     fNormQcutLow = 1.0;
     fNormQcutHigh = 1.5;
@@ -822,9 +827,9 @@ void AliFourPion::ParInit()
   fEC = new AliFourPionEventCollection **[fZvertexBins];
   for(UShort_t i=0; i<fZvertexBins; i++){
     
-    fEC[i] = new AliFourPionEventCollection *[fCentBinsMixing];
+    fEC[i] = new AliFourPionEventCollection *[fMbinsMixing];
 
-    for(UShort_t j=0; j<fCentBinsMixing; j++){
+    for(UShort_t j=0; j<fMbinsMixing; j++){
       
       fEC[i][j] = new AliFourPionEventCollection(fEventsToMix+1, fMultLimit, kMCarrayLimit, fMCcase);
     }
@@ -920,12 +925,16 @@ void AliFourPion::UserCreateOutputObjects()
   fMultDist3->GetXaxis()->SetTitle("Multiplicity");
   fOutputList->Add(fMultDist3);
   
-  TH3F *fPtEtaDist = new TH3F("fPtEtaDist","fPtEtaDist",2,-1.1,1.1, 300,0,3., 28,-1.4,1.4);
-  fOutputList->Add(fPtEtaDist);
-
-  TH3F *fPhiPtDist = new TH3F("fPhiPtDist","fPhiPtDist",2,-1.1,1.1, 120,0,2*PI, 300,0,3.);
-  fOutputList->Add(fPhiPtDist);
+  TH3F *fChPtEtaDist = new TH3F("fChPtEtaDist","fChPtEtaDist",2,-1.1,1.1, 300,0,3., 28,-1.4,1.4);
+  fOutputList->Add(fChPtEtaDist);
+  TH3F *fChPhiPtDist = new TH3F("fChPhiPtDist","fChPhiPtDist",2,-1.1,1.1, 120,0,2*PI, 300,0,3.);
+  fOutputList->Add(fChPhiPtDist);
   
+  TH2F *fCentEtaDist = new TH2F("fCentEtaDist","",10,-.5,9.5, 28,-1.4,1.4);
+  fOutputList->Add(fCentEtaDist);
+  TH2F *fCentPtDist = new TH2F("fCentPtDist","",10,-.5,9.5, 600,0,3.);
+  fOutputList->Add(fCentPtDist);
+
   TH3F *fTOFResponse = new TH3F("fTOFResponse","TOF relative time",20,0,100, 200,0,2, 4000,-20000,20000);
   fOutputList->Add(fTOFResponse);
   TH3F *fTPCResponse = new TH3F("fTPCResponse","TPCsignal",20,0,100, 200,0,2, 1000,0,1000);
@@ -1065,7 +1074,7 @@ void AliFourPion::UserCreateOutputObjects()
 
       
   for(Int_t mb=0; mb<fMbins; mb++){
-    if((mb < fCentBinLowLimit) || (mb > fCentBinHighLimit)) continue;
+    if(fPbPbcase) {if((mb < fCentBinLowLimit) || (mb > fCentBinHighLimit)) continue;}
     
     for(Int_t edB=0; edB<fEDbins; edB++){
       for(Int_t c1=0; c1<2; c1++){
@@ -1433,16 +1442,16 @@ void AliFourPion::UserCreateOutputObjects()
   TH2D *fQ4Res = new TH2D("fQ4Res","",20,0,1, 200,-.4,.4);
   fOutputList->Add(fQ4Res);
   
-  TH2D *DistQinv4pion = new TH2D("DistQinv4pion","",6,0.5,6.5, 20,0,0.1);
+  TH2D *DistQinv4pion = new TH2D("DistQinv4pion","",6,0.5,6.5, fQbinsQ2,0,fQupperBoundQ2);
   fOutputList->Add(DistQinv4pion);
-  TH2D *DistQinvMC4pion = new TH2D("DistQinvMC4pion","",6,0.5,6.5, 20,0,0.1);
+  TH2D *DistQinvMC4pion = new TH2D("DistQinvMC4pion","",6,0.5,6.5, fQbinsQ2,0,fQupperBoundQ2);
   if(fMCcase) fOutputList->Add(DistQinvMC4pion);
 
-  TH2D *fAvgQ12VersusQ3 = new TH2D("fAvgQ12VersusQ3","",10,0,0.1, 20,0,0.1);
+  TH2D *fAvgQ12VersusQ3 = new TH2D("fAvgQ12VersusQ3","",40,0,0.2, fQbinsQ3,0,fQupperBoundQ3);
   fOutputList->Add(fAvgQ12VersusQ3);
-  TH2D *fAvgQ13VersusQ3 = new TH2D("fAvgQ13VersusQ3","",10,0,0.1, 20,0,0.1);
+  TH2D *fAvgQ13VersusQ3 = new TH2D("fAvgQ13VersusQ3","",40,0,0.2, fQbinsQ3,0,fQupperBoundQ3);
   fOutputList->Add(fAvgQ13VersusQ3);
-  TH2D *fAvgQ23VersusQ3 = new TH2D("fAvgQ23VersusQ3","",10,0,0.1, 20,0,0.1);
+  TH2D *fAvgQ23VersusQ3 = new TH2D("fAvgQ23VersusQ3","",40,0,0.2, fQbinsQ3,0,fQupperBoundQ3);
   fOutputList->Add(fAvgQ23VersusQ3);
 
   TH1D *fDistPionParents4 = new TH1D("fDistPionParents4","",4,0.5,4.5);
@@ -1494,7 +1503,8 @@ void AliFourPion::UserExec(Option_t *)
   // Called for each event
   //cout<<"===========  Event # "<<fEventCounter+1<<"  ==========="<<endl;
   fEventCounter++;
-  
+  if(fEventCounter%1000==0) cout<<"===========  Event # "<<fEventCounter<<"  ==========="<<endl;
+
   if(!fAODcase) {cout<<"ESDs not supported"<<endl; return;}
   
   fAOD = dynamic_cast<AliAODEvent*> (InputEvent());
@@ -1509,8 +1519,15 @@ void AliFourPion::UserExec(Option_t *)
     Bool_t isSelected1 = (((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & AliVEvent::kCentral);
     Bool_t isSelected2 = (((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & AliVEvent::kSemiCentral);
     if(!isSelected1 && !isSelected2 && !fMCcase) {return;}
-  }else {return;}
-
+  }else {
+    Bool_t isSelected[4]={kFALSE};
+    isSelected[0] = (((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & AliVEvent::kMB);
+    isSelected[1] = (((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & AliVEvent::kAny);
+    isSelected[2] = (((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & AliVEvent::kINT7);
+    isSelected[3] = (((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & AliVEvent::kHighMult);
+    if(!isSelected[fTriggerType] && !fMCcase) return;
+  }
   ///////////////////////////////////////////////////////////
   const AliAODVertex *primaryVertexAOD;
   AliCentrality *centrality;// for AODs and ESDs
@@ -1542,9 +1559,18 @@ void AliFourPion::UserExec(Option_t *)
   Double_t zstep=2*10/Double_t(fZvertexBins), zstart=-10.;
   /////////////////////////////////////////////////
   // ratio of Real data to HIJING reconstructed pT (10 MeV bins)
-  Double_t HIJINGptWeights[100]={0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.590355, 0.672751, 0.795686, 0.848618, 0.861539, 0.874636, 0.880394, 0.87923, 0.885105, 0.888841, 0.892765, 0.896278, 0.899725, 0.903054, 0.907074, 0.91066, 0.913765, 0.918804, 0.923374, 0.929005, 0.935538, 0.942802, 0.949584, 0.956928, 0.963521, 0.972898, 0.981403, 0.989027, 0.997965, 1.00558, 1.01372, 1.02148, 1.03064, 1.04131, 1.05199, 1.06319, 1.07698, 1.09113, 1.10416, 1.11662, 1.12823, 1.14161, 1.15455, 1.1683, 1.18439, 1.19696, 1.21124, 1.22607, 1.24087, 1.25386, 1.26666, 1.27374, 1.2821, 1.29218, 1.30137, 1.30795, 1.31512, 1.32047, 1.32571, 1.33242, 1.3376, 1.34084, 1.34644, 1.34978, 1.35259, 1.35149, 1.35534, 1.3541, 1.35808, 1.36003, 1.35981, 1.36037, 1.35774, 1.35814, 1.35796, 1.35764, 1.35517, 1.34804, 1.34797, 1.33822, 1.32501, 1.30844, 1.2971, 1.27107};
+  //Double_t HIJINGptWeights[100]={0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.5, 0.590355, 0.672751, 0.795686, 0.848618, 0.861539, 0.874636, 0.880394, 0.87923, 0.885105, 0.888841, 0.892765, 0.896278, 0.899725, 0.903054, 0.907074, 0.91066, 0.913765, 0.918804, 0.923374, 0.929005, 0.935538, 0.942802, 0.949584, 0.956928, 0.963521, 0.972898, 0.981403, 0.989027, 0.997965, 1.00558, 1.01372, 1.02148, 1.03064, 1.04131, 1.05199, 1.06319, 1.07698, 1.09113, 1.10416, 1.11662, 1.12823, 1.14161, 1.15455, 1.1683, 1.18439, 1.19696, 1.21124, 1.22607, 1.24087, 1.25386, 1.26666, 1.27374, 1.2821, 1.29218, 1.30137, 1.30795, 1.31512, 1.32047, 1.32571, 1.33242, 1.3376, 1.34084, 1.34644, 1.34978, 1.35259, 1.35149, 1.35534, 1.3541, 1.35808, 1.36003, 1.35981, 1.36037, 1.35774, 1.35814, 1.35796, 1.35764, 1.35517, 1.34804, 1.34797, 1.33822, 1.32501, 1.30844, 1.2971, 1.27107};
+  Float_t HIJINGq2WeightsSC[200]={0.72, 0.723886, 0.770856, 0.799396, 0.815821, 0.827209, 0.833142, 0.837393, 0.839721, 0.842022, 0.84374, 0.845376, 0.84732, 0.848803, 0.850515, 0.852089, 0.853712, 0.855571, 0.857279, 0.85894, 0.860671, 0.862479, 0.863945, 0.865519, 0.867301, 0.868955, 0.870215, 0.871652, 0.873089, 0.874289, 0.875633, 0.876694, 0.877712, 0.878681, 0.879694, 0.88073, 0.881459, 0.882039, 0.882761, 0.88334, 0.884004, 0.884455, 0.884816, 0.885327, 0.88556, 0.885997, 0.886291, 0.886526, 0.886975, 0.887374, 0.887712, 0.888016, 0.888627, 0.888971, 0.889295, 0.889845, 0.890088, 0.890599, 0.890893, 0.891363, 0.891598, 0.892019, 0.892141, 0.892256, 0.892372, 0.892276, 0.892012, 0.891801, 0.891554, 0.891267, 0.891074, 0.890822, 0.890737, 0.890768, 0.89081, 0.890987, 0.89124, 0.891499, 0.891887, 0.892403, 0.892978, 0.893485, 0.894214, 0.894858, 0.895669, 0.896584, 0.897447, 0.89844, 0.899375, 0.900527, 0.901568, 0.902717, 0.903952, 0.905128, 0.90645, 0.907729, 0.909055, 0.910516, 0.911916, 0.913396, 0.914911, 0.91645, 0.918067, 0.919725, 0.921435, 0.923185, 0.925044, 0.926784, 0.928747, 0.930641, 0.932574, 0.934767, 0.93666, 0.938805, 0.94098, 0.943166, 0.945492, 0.947778, 0.950146, 0.952474, 0.954981, 0.957334, 0.959891, 0.96247, 0.965063, 0.967719, 0.97025, 0.973033, 0.975868, 0.978622, 0.981536, 0.984275, 0.987362, 0.990211, 0.993284, 0.996277, 0.999363, 1.00251, 1.00555, 1.00883, 1.01209, 1.01519, 1.01853, 1.02184, 1.0252, 1.02866, 1.03206, 1.03545, 1.03881, 1.04227, 1.04569, 1.04914, 1.05259, 1.056, 1.05953, 1.063, 1.06652, 1.07005, 1.07353, 1.07719, 1.0808, 1.08426, 1.08763, 1.09136, 1.09486, 1.0985, 1.10199, 1.10562, 1.10933, 1.11293, 1.11628, 1.11992, 1.1236, 1.12736, 1.13088, 1.13448, 1.13815, 1.14168, 1.14537, 1.1489, 1.15255, 1.15629, 1.15981, 1.16349, 1.16699, 1.17076, 1.17445, 1.17833, 1.18188, 1.18551, 1.18928, 1.19318, 1.19691, 1.20059, 1.20455, 1.20817, 1.21199, 1.21609, 1.21977, 1.22367};
+  Float_t HIJINGq2WeightsMC[200]={0.83, 0.833821, 0.834928, 0.836263, 0.837359, 0.83809, 0.838463, 0.840012, 0.840868, 0.842129, 0.843379, 0.844784, 0.846186, 0.847562, 0.849184, 0.850567, 0.85239, 0.854038, 0.855708, 0.857257, 0.859145, 0.860831, 0.862469, 0.864066, 0.865664, 0.867224, 0.868654, 0.870187, 0.871525, 0.872742, 0.874066, 0.875166, 0.876261, 0.877325, 0.878249, 0.879089, 0.879897, 0.880624, 0.881234, 0.881898, 0.88248, 0.882964, 0.883452, 0.883857, 0.884323, 0.884818, 0.885157, 0.885589, 0.88595, 0.886352, 0.886864, 0.887326, 0.887809, 0.888366, 0.888873, 0.889273, 0.889781, 0.890211, 0.890571, 0.891011, 0.891294, 0.891612, 0.891867, 0.892072, 0.89211, 0.891951, 0.891729, 0.891513, 0.891194, 0.890843, 0.89054, 0.890331, 0.890168, 0.890082, 0.890156, 0.890266, 0.890395, 0.890707, 0.891075, 0.891482, 0.891972, 0.89255, 0.893115, 0.893882, 0.89471, 0.895582, 0.896505, 0.897537, 0.898425, 0.89959, 0.900708, 0.901903, 0.903061, 0.904374, 0.905684, 0.907069, 0.908443, 0.909809, 0.911322, 0.912849, 0.914481, 0.916016, 0.917755, 0.919439, 0.921197, 0.922945, 0.924892, 0.926703, 0.928648, 0.930665, 0.932648, 0.934779, 0.936863, 0.939002, 0.941158, 0.943437, 0.945753, 0.948068, 0.950428, 0.952854, 0.955338, 0.957853, 0.960329, 0.962977, 0.965578, 0.968212, 0.970931, 0.97373, 0.97653, 0.979386, 0.982208, 0.985161, 0.988179, 0.991104, 0.994135, 0.997152, 1.00033, 1.00348, 1.00664, 1.00977, 1.01307, 1.01632, 1.01975, 1.02304, 1.02628, 1.02974, 1.03302, 1.03653, 1.03986, 1.04345, 1.04684, 1.05039, 1.05374, 1.05738, 1.06089, 1.06444, 1.06794, 1.07139, 1.07506, 1.07841, 1.08201, 1.08563, 1.08919, 1.09277, 1.09637, 1.10003, 1.10361, 1.10713, 1.11064, 1.11432, 1.11795, 1.12165, 1.12533, 1.1289, 1.13251, 1.13617, 1.13979, 1.1435, 1.14709, 1.15079, 1.15436, 1.15803, 1.16164, 1.16529, 1.1688, 1.17255, 1.17619, 1.17996, 1.18369, 1.18727, 1.19104, 1.19478, 1.1986, 1.20233, 1.20613, 1.20977, 1.21385, 1.21761, 1.22134, 1.22535};
+  //
+  Float_t HIJINGq3WeightsSC[35]={0.946, 0.946, 0.946171, 0.92177, 0.958284, 0.986155, 0.99244, 0.999372, 1.00152, 1.00427, 1.00328, 1.00546, 1.00546, 1.00628, 1.00586, 1.00446, 1.00496, 1.00427, 1.00413, 1.00354, 1.00322, 1.00266, 1.00158, 1.00123, 1.00048, 0.999826, 0.99901, 0.997586, 0.996728, 0.994507, 0.993044, 0.990995, 0.989289, 0.988248, 0.988455};
+  Float_t HIJINGq3WeightsMC[35]={0.634, 0.63488, 0.963204, 0.977364, 0.992797, 1.00015, 1.00179, 1.00467, 1.00602, 1.00635, 1.00665, 1.00677, 1.00643, 1.00601, 1.00562, 1.00542, 1.00494, 1.0048, 1.00406, 1.0036, 1.00297, 1.0025, 1.00178, 1.00126, 1.00035, 0.999798, 0.998795, 0.997544, 0.996334, 0.994345, 0.992467, 0.991007, 0.988918, 0.9877, 0.98789};
+  //
+  Float_t HIJINGq4WeightsSC[50]={0.88, 0.88, 0.88, 0.88, 0.88, 0.88, 0.889957, 0.911624, 0.932747, 0.959097, 0.987571, 0.974175, 0.974291, 0.985743, 0.989953, 0.988542, 0.992858, 0.995232, 0.995808, 0.997182, 0.997073, 0.99795, 0.998597, 0.999141, 0.999598, 1.00026, 1.0002, 1.00061, 1.0003, 1.00054, 1.0006, 1.00082, 1.00094, 1.00092, 1.00058, 1.00036, 0.999695, 0.999366, 0.998782, 0.998301, 0.997107, 0.995746, 0.994276, 0.992814, 0.992403, 0.992536, 0.994614, 0.982908, 0.992077, .99};
+  Float_t HIJINGq4WeightsMC1[50]={0.82, 0.82, 0.82, 0.82, 0.82, 0.823248, 0.917691, 0.960501, 0.96697, 0.972048, 0.984931, 0.98916, 0.986344, 0.992934, 0.996263, 0.996503, 0.996566, 0.997508, 0.998417, 0.999181, 0.999746, 0.999707, 1.00034, 1.00065, 1.00081, 1.00104, 1.0009, 1.00097, 1.00088, 1.00111, 1.00101, 1.00095, 1.00078, 1.00069, 1.00037, 1.00002, 0.999555, 0.998796, 0.998073, 0.997315, 0.9964, 0.994994, 0.993685, 0.990758, 0.990211, 0.987958, 0.980713, 0.985536, 0.923206, 0.92};
+  Float_t HIJINGq4WeightsMC2[50]={0.88, 0.88, 0.88, 0.88, 0.885817, 0.9888, 1.00199, 0.974765, 0.987792, 0.989186, 0.984239, 0.991871, 0.992879, 0.995809, 0.997829, 0.998076, 0.998521, 0.998509, 0.999429, 0.999958, 1.00029, 1.00064, 1.00052, 1.00095, 1.00107, 1.00121, 1.0011, 1.00123, 1.00106, 1.00111, 1.00108, 1.00097, 1.00078, 1.00066, 1.00038, 0.999903, 0.99931, 0.998711, 0.997939, 0.997057, 0.99611, 0.994732, 0.993368, 0.991332, 0.989286, 0.987895, 0.983888, 0.986218, 0.945475, .94};
+
 
-  
   Float_t centralityPercentile=0;
   Float_t cStep=5.0, cStepMixing=5.0, cStart=0;
   Int_t MbinMixing=0;
@@ -1575,7 +1601,7 @@ void AliFourPion::UserExec(Option_t *)
     primaryVertexAOD = fAOD->GetPrimaryVertex();
     vertex[0]=primaryVertexAOD->GetX(); vertex[1]=primaryVertexAOD->GetY(); vertex[2]=primaryVertexAOD->GetZ();
     
-    if(fabs(vertex[2]) > 10) {cout<<"Zvertex Out of Range. Skip Event"<<endl; return;} // Z-Vertex Cut 
+    if(fabs(vertex[2]) > 10) {/*cout<<"Zvertex Out of Range. Skip Event"<<endl;*/ return;} // Z-Vertex Cut 
     ((TH3F*)fOutputList->FindObject("fVertexDist"))->Fill(vertex[0], vertex[1], vertex[2]);
     
     if(!fMCcase && primaryVertexAOD->GetNContributors() < 1) {cout<<"Bad Vertex. Skip Event"<<endl; return;}
@@ -1637,7 +1663,7 @@ void AliFourPion::UserExec(Option_t *)
       if(!goodMomentum) continue; 
       aodtrack->GetXYZ( fTempStruct[myTracks].fX);
       
-        
+      
       Double_t dca2[2]={0};
       dca2[0] = sqrt( pow(fTempStruct[myTracks].fX[0] - vertex[0],2) + pow(fTempStruct[myTracks].fX[1] - vertex[1],2));
       dca2[1] = sqrt( pow(fTempStruct[myTracks].fX[2] - vertex[2],2));
@@ -1766,9 +1792,7 @@ void AliFourPion::UserExec(Option_t *)
       if(fTempStruct[myTracks].fPion && fTempStruct[myTracks].fKaon) continue;
       if(fTempStruct[myTracks].fPion && fTempStruct[myTracks].fProton) continue;
       if(fTempStruct[myTracks].fKaon && fTempStruct[myTracks].fProton) continue;
-      //if(fTempStruct[myTracks].fPion && fTempStruct[myTracks].fKaon && fTempStruct[myTracks].fProton) continue;// superfluous
-      ////////////////////////
-      //if(fTempStruct[myTracks].fProton && fTempStruct[myTracks].fMom < 0.25) continue;//extra cut for protons// superfluous
+     
 
 
    
@@ -1780,9 +1804,11 @@ void AliFourPion::UserExec(Option_t *)
        ((TH2F*)fOutputList->FindObject("fDCAzDistMinus"))->Fill(fTempStruct[myTracks].fPt, dca2[1]);
       }
      
-      ((TH3F*)fOutputList->FindObject("fPhiPtDist"))->Fill(aodtrack->Charge(), aodtrack->Phi(), aodtrack->Pt());
-      ((TH3F*)fOutputList->FindObject("fPtEtaDist"))->Fill(aodtrack->Charge(), aodtrack->Pt(), aodtrack->Eta());
-      
+      ((TH3F*)fOutputList->FindObject("fChPhiPtDist"))->Fill(aodtrack->Charge(), aodtrack->Phi(), aodtrack->Pt());
+      ((TH3F*)fOutputList->FindObject("fChPtEtaDist"))->Fill(aodtrack->Charge(), aodtrack->Pt(), aodtrack->Eta());
+      ((TH2F*)fOutputList->FindObject("fCentPtDist"))->Fill(int(centralityPercentile/5.), aodtrack->Pt());
+      ((TH2F*)fOutputList->FindObject("fCentEtaDist"))->Fill(int(centralityPercentile/5.), aodtrack->Eta());
+
       ((TH2D*)fOutputList->FindObject("fDistTPCNclsFindable"))->Fill(aodtrack->Pt(), aodtrack->GetTPCNclsF());
       ((TProfile*)fOutputList->FindObject("fProfileTPCNclsFindable"))->Fill(aodtrack->Pt(), aodtrack->GetTPCNclsF());
       //
@@ -1889,7 +1915,7 @@ void AliFourPion::UserExec(Option_t *)
 
   /////////////////////////////////////////
   // Pion Multiplicity Cut (To ensure all Correlation orders are present in each event)
-  if(myTracks < 4) {cout<<"Less than 4 tracks. Skipping Event."<<endl; return;}
+  if(myTracks < 4) {/*cout<<"Less than 4 tracks. Skipping Event."<<endl;*/ return;}
   /////////////////////////////////////////
  
 
@@ -1900,10 +1926,16 @@ void AliFourPion::UserExec(Option_t *)
   // Mbin set to Pion Count Only for pp!!!!!!!
   fMbin=-1;
   if(!fPbPbcase){
-    for(Int_t i=0; i<kMultBinspp; i++){
-      if( ( pionCount > fMultLimits[i]) && ( pionCount <= fMultLimits[i+1]) ) { fMbin=i; break;}
-      // Mbin 0 has 1 pion
+    
+    if(pionCount >= fMultLimits[3] && pionCount < fMultLimits[10]) fMbin=0;// only 1 bin
+    
+    for(Int_t i=0; i<fMbinsMixing; i++){// event-mixing M bin
+      if( ( pionCount >= fMultLimits[i]) && ( pionCount < fMultLimits[i+1]) ){
+       MbinMixing=i;// 0 = lowest mult
+       break;
+      }
     }
+
   }else{
     for(Int_t i=0; i<fCentBins; i++){// correlation analysis M bin
       if( (centralityPercentile >= cStart+i*cStep) && (centralityPercentile < cStart+(i+1)*cStep) ){
@@ -1911,15 +1943,15 @@ void AliFourPion::UserExec(Option_t *)
        break;
       }
     }
-    for(Int_t i=0; i<fCentBinsMixing; i++){// event-mixing M bin
+    for(Int_t i=0; i<fMbinsMixing; i++){// event-mixing M bin
       if( (centralityPercentile >= cStart+i*cStepMixing) && (centralityPercentile < cStart+(i+1)*cStepMixing) ){
        MbinMixing=i;// 0 = most central
        break;
       }
     }
   }
-
-  if(fMbin==-1) {cout<<"Bad Mbin+++++++++++++++++++++++++++++++++++++++++++++++++++"<<endl; return;}
+  
+  if(fMbin==-1) {return;}
   
   ///////////////////
   // can only be called after fMbin has been set
@@ -2017,7 +2049,7 @@ void AliFourPion::UserExec(Option_t *)
   Int_t KT3index=0, KT4index=0;
 
   // reset to defaults
-  for(Int_t i=0; i<kMultLimitPbPb; i++) {
+  for(Int_t i=0; i<fMultLimit; i++) {
     fLowQPairSwitch_E0E0[i]->Set(kMultLimitPbPb,fDefaultsCharSwitch);
     fLowQPairSwitch_E0E1[i]->Set(kMultLimitPbPb,fDefaultsCharSwitch);
     fLowQPairSwitch_E0E2[i]->Set(kMultLimitPbPb,fDefaultsCharSwitch);
@@ -2298,7 +2330,7 @@ void AliFourPion::UserExec(Option_t *)
   }
     
 
-   
+  
 
     ///////////////////////////////////////////////////////////////////////
     ///////////////////////////////////////////////////////////////////////
@@ -2520,19 +2552,18 @@ void AliFourPion::UserExec(Option_t *)
                    }// muon check
                  
                    
-                   Int_t index1pt = sqrt(pow(pVect1MC[1],2)+pow(pVect1MC[2],2)) / 0.01;
-                   Int_t index2pt = sqrt(pow(pVect2MC[1],2)+pow(pVect2MC[2],2)) / 0.01;
-                   if(index1pt >=100) index1pt=99; 
-                   if(index2pt >=100) index2pt=99; 
-                   Float_t WptSpectrum = HIJINGptWeights[index1pt] * HIJINGptWeights[index2pt];
+                   Int_t indexq2 = qinv12 / 0.005;
+                   if(indexq2 >=200) indexq2=199; 
+                   Float_t WSpectrum = HIJINGq2WeightsSC[indexq2];
+                   if(ch1!=ch2) WSpectrum = HIJINGq2WeightsMC[indexq2];
                    // momentum resolution
                    for(Int_t Riter=0; Riter<fRVALUES; Riter++){
                      Float_t Rvalue = 5+Riter;
                      Float_t WInput = MCWeight(chGroup2, Rvalue, ffcSqMRC, qinv12MC, 0.);
-                     Charge1[bin1].Charge2[bin2].MB[0].EDB[kTindex].TwoPT[0].fIdeal->Fill(Rvalue, qinv12MC, WInput * WptSpectrum);
-                     Charge1[bin1].Charge2[bin2].MB[0].EDB[kTindex].TwoPT[1].fIdeal->Fill(Rvalue, qinv12MC, WptSpectrum);
-                     Charge1[bin1].Charge2[bin2].MB[0].EDB[kTindex].TwoPT[0].fSmeared->Fill(Rvalue, qinv12, WInput * WptSpectrum);
-                     Charge1[bin1].Charge2[bin2].MB[0].EDB[kTindex].TwoPT[1].fSmeared->Fill(Rvalue, qinv12, WptSpectrum);
+                     Charge1[bin1].Charge2[bin2].MB[0].EDB[kTindex].TwoPT[0].fIdeal->Fill(Rvalue, qinv12MC, WInput * WSpectrum);
+                     Charge1[bin1].Charge2[bin2].MB[0].EDB[kTindex].TwoPT[1].fIdeal->Fill(Rvalue, qinv12MC, WSpectrum);
+                     Charge1[bin1].Charge2[bin2].MB[0].EDB[kTindex].TwoPT[0].fSmeared->Fill(Rvalue, qinv12, WInput * WSpectrum);
+                     Charge1[bin1].Charge2[bin2].MB[0].EDB[kTindex].TwoPT[1].fSmeared->Fill(Rvalue, qinv12, WSpectrum);
                    }
                    
                  }// ENsum check
@@ -2568,7 +2599,7 @@ void AliFourPion::UserExec(Option_t *)
                Float_t QinvMCGroup3[3]={0};
                Float_t kTGroup3[3]={0};
                FilledMCtriplet123 = kFALSE;
-               if(fMCcase && fGenerateSignal){
+               if(fMCcase){
                  if((fEvt+en3)->fTracks[k].fLabel == (fEvt+en2)->fTracks[j].fLabel) continue;
                  if((fEvt+en3)->fTracks[k].fLabel == (fEvt)->fTracks[i].fLabel) continue;
                  
@@ -2652,7 +2683,7 @@ void AliFourPion::UserExec(Option_t *)
                }
                
                // r3 denominator
-               if(ENsum==6 && ch1==ch2 && ch1==ch3){
+               if(ENsum==6 && ch1==ch2 && ch1==ch3 && fPbPbcase){
                  Positive1stTripletWeights = kTRUE;
                  //
                  GetWeight(pVect1, pVect2, weight12, weight12Err);
@@ -2721,6 +2752,7 @@ void AliFourPion::UserExec(Option_t *)
                    }else{
                      Charge1[bin1].Charge2[bin2].Charge3[bin3].MB[fMbin].EDB[KT3index].ThreePT[4].fTwoPartNegNorm->Fill(4, q3, 1);
                    }
+                  
                    //
                    // Full Weight reconstruction
                    
@@ -2873,20 +2905,18 @@ void AliFourPion::UserExec(Option_t *)
                      }// pion parent check
                    }// parentQ check (muon correction)
 
-                   Int_t index1pt = sqrt(pow(pVect1MC[1],2)+pow(pVect1MC[2],2)) / 0.01;
-                   Int_t index2pt = sqrt(pow(pVect2MC[1],2)+pow(pVect2MC[2],2)) / 0.01;
-                   Int_t index3pt = sqrt(pow(pVect3MC[1],2)+pow(pVect3MC[2],2)) / 0.01;
-                   if(index1pt >=100) index1pt=99; 
-                   if(index2pt >=100) index2pt=99; 
-                   if(index3pt >=100) index3pt=99;
-                   Float_t WptSpectrum = HIJINGptWeights[index1pt] * HIJINGptWeights[index2pt] * HIJINGptWeights[index3pt];
+                   
+                   Int_t indexq3 = q3 / 0.005;
+                   if(indexq3 >=35) indexq3=34; 
+                   Float_t WSpectrum = HIJINGq3WeightsSC[indexq3];
+                   if(ch1!=ch2 || ch1!=ch3) WSpectrum = HIJINGq3WeightsMC[indexq3];
                    // 3-pion momentum resolution
                    for(Int_t term=1; term<=5; term++){
                      for(Int_t Riter=0; Riter<fRVALUES; Riter++){
                        Float_t Rvalue = 5+Riter;
                        Float_t WInput = MCWeight3(term, Rvalue, ffcSqMRC, chGroup3, QinvMCGroup3, kTGroup3);
-                       Charge1[bin1].Charge2[bin2].Charge3[bin3].MB[0].EDB[KT3index].ThreePT[term-1].fIdeal->Fill(Rvalue, q3MC, WInput*WptSpectrum);
-                       Charge1[bin1].Charge2[bin2].Charge3[bin3].MB[0].EDB[KT3index].ThreePT[term-1].fSmeared->Fill(Rvalue, q3, WInput*WptSpectrum);
+                       Charge1[bin1].Charge2[bin2].Charge3[bin3].MB[0].EDB[KT3index].ThreePT[term-1].fIdeal->Fill(Rvalue, q3MC, WInput*WSpectrum);
+                       Charge1[bin1].Charge2[bin2].Charge3[bin3].MB[0].EDB[KT3index].ThreePT[term-1].fSmeared->Fill(Rvalue, q3, WInput*WSpectrum);
                      }
                    }
                    
@@ -2937,7 +2967,7 @@ void AliFourPion::UserExec(Option_t *)
                  Float_t QinvMCGroup4[6]={0};
                  Float_t kTGroup4[6]={0};
                  
-                 if(fMCcase && fGenerateSignal){// for momentum resolution and muon correction
+                 if(fMCcase){// for momentum resolution and muon correction
                    if((fEvt+en4)->fTracks[l].fLabel == (fEvt+en3)->fTracks[k].fLabel) continue;
                    if((fEvt+en4)->fTracks[l].fLabel == (fEvt+en2)->fTracks[j].fLabel) continue;
                    if((fEvt+en4)->fTracks[l].fLabel == (fEvt)->fTracks[i].fLabel) continue;
@@ -3015,7 +3045,7 @@ void AliFourPion::UserExec(Option_t *)
                  
                  /////////////////////////////////////////////////////////////
                  // r4{2}
-                 if(ch1==ch2 && ch1==ch3 && ch1==ch4 && ENsum==6){
+                 if(ch1==ch2 && ch1==ch3 && ch1==ch4 && ENsum==6 && fPbPbcase){
                    Positive2ndTripletWeights=kTRUE;
                    //
                    GetWeight(pVect1, pVect4, weight14, weight14Err);
@@ -3312,25 +3342,21 @@ void AliFourPion::UserExec(Option_t *)
                        }// pion parent check
                      }// parentQ check (muon correction)
                    
-                     Int_t index1pt = sqrt(pow(pVect1MC[1],2)+pow(pVect1MC[2],2)) / 0.01;
-                     Int_t index2pt = sqrt(pow(pVect2MC[1],2)+pow(pVect2MC[2],2)) / 0.01;
-                     Int_t index3pt = sqrt(pow(pVect3MC[1],2)+pow(pVect3MC[2],2)) / 0.01;
-                     Int_t index4pt = sqrt(pow(pVect4MC[1],2)+pow(pVect4MC[2],2)) / 0.01;
-                     if(index1pt >=100) index1pt=99; 
-                     if(index2pt >=100) index2pt=99; 
-                     if(index3pt >=100) index3pt=99;
-                     if(index4pt >=100) index4pt=99;
-                     Float_t WptSpectrum = HIJINGptWeights[index1pt] * HIJINGptWeights[index2pt] * HIJINGptWeights[index3pt] * HIJINGptWeights[index4pt];
+                     Int_t indexq4 = q4 / 0.005;
+                     if(indexq4 >=50) indexq4=49; 
+                     Float_t WSpectrum = HIJINGq4WeightsSC[indexq4];
+                     if((ch1+ch2+ch3+ch4)==3 || (ch1+ch2+ch3+ch4)==1) WSpectrum = HIJINGq4WeightsMC1[indexq4];
+                     if((ch1+ch2+ch3+ch4)==2) WSpectrum = HIJINGq4WeightsMC2[indexq4];
                      // 4-pion momentum resolution
                      for(Int_t term=1; term<=13; term++){
                        for(Int_t Riter=0; Riter<fRVALUES; Riter++){
                          Float_t Rvalue = 5+Riter;
                          Float_t WInput = MCWeight4(term, Rvalue, ffcSqMRC, chGroup4, QinvMCGroup4, kTGroup4);
-                         Charge1[bin1].Charge2[bin2].Charge3[bin3].Charge4[bin4].MB[0].EDB[KT4index].FourPT[term-1].fIdeal->Fill(Rvalue, q4MC, WInput*WptSpectrum);
-                         Charge1[bin1].Charge2[bin2].Charge3[bin3].Charge4[bin4].MB[0].EDB[KT4index].FourPT[term-1].fSmeared->Fill(Rvalue, q4, WInput*WptSpectrum);
+                         Charge1[bin1].Charge2[bin2].Charge3[bin3].Charge4[bin4].MB[0].EDB[KT4index].FourPT[term-1].fIdeal->Fill(Rvalue, q4MC, WInput*WSpectrum);
+                         Charge1[bin1].Charge2[bin2].Charge3[bin3].Charge4[bin4].MB[0].EDB[KT4index].FourPT[term-1].fSmeared->Fill(Rvalue, q4, WInput*WSpectrum);
                        }
                      }
-                     
+                   
                    }// label check particle 4
                  }// MCcase
                  
index d48c647b381bd19d94532cdb629815bfd8b63319..81ee3360f109927d2dadca3b4d98993df463022c 100755 (executable)
@@ -51,7 +51,7 @@ class AliFourPion : public AliAnalysisTaskSE {
     kNormPairLimit = 45000,
     kMultLimitPbPb = 1800,//1800
     kMultLimitpp = 300,
-    kMultBinspp = 11,
+    kMultBinspp = 10,
     kMCarrayLimit = 150000,// 110000
     kQbinsWeights = 40,
     kNDampValues = 16,
@@ -63,7 +63,7 @@ class AliFourPion : public AliAnalysisTaskSE {
   static const Int_t fKbinsY   = 1;// Set fKstep as well !!!!
   static const Int_t fEDbins   = 2;
   static const Int_t fCentBins = 10;// 0-50%
-  static const Int_t fCentBinsMixing = 10;// 5% widths
+  static const Int_t fMbinsMixing = 10;// 5% widths
   static const Int_t fRVALUES  = 7;// 7 EW radii (5-11) , was 8 Gaussian radii (3-10fm)
 
 
@@ -98,6 +98,7 @@ class AliFourPion : public AliAnalysisTaskSE {
   void SetMaxPt(Float_t maxPt) {fMaxPt = maxPt;}
   void SetKT3transition(Float_t KT3trans) {fKT3transition = KT3trans;}
   void SetKT4transition(Float_t KT4trans) {fKT4transition = KT4trans;}
+  void SetTriggerType(Int_t tt) {fTriggerType = tt;}
   //
 
 
@@ -261,6 +262,7 @@ class AliFourPion : public AliAnalysisTaskSE {
   Int_t fMultLimit;      
   Int_t fCentBinLowLimit;
   Int_t fCentBinHighLimit;
+  Int_t fTriggerType;
   Int_t fEventCounter;
   Int_t fEventsToMix;
   Int_t fZvertexBins;
diff --git a/PWGCF/FEMTOSCOPY/ESE/AliAnalysisTaskFemtoESE.cxx b/PWGCF/FEMTOSCOPY/ESE/AliAnalysisTaskFemtoESE.cxx
new file mode 100644 (file)
index 0000000..d2bacfc
--- /dev/null
@@ -0,0 +1,1249 @@
+#include <iostream>
+#include <math.h>
+#include "TChain.h"
+#include "TFile.h"
+#include "TKey.h"
+#include "TObject.h"
+#include "TObjString.h"
+#include "TList.h"
+#include "TTree.h"
+#include "TH1F.h"
+#include "TH1D.h"
+#include "TH2D.h"
+#include "TH3D.h"
+#include "THn.h"
+#include "THnSparse.h"
+#include "TProfile.h"
+#include "TProfile2D.h"
+#include "TCanvas.h"
+#include "TRandom3.h"
+#include "TF1.h"
+#include "TObjectTable.h"
+#include <vector>
+
+#include "AliAnalysisTask.h"
+#include "AliAnalysisManager.h"
+
+
+#include "AliESDEvent.h"
+#include "AliESDInputHandler.h"
+#include "AliESDtrackCuts.h"
+
+#include "AliAODEvent.h"
+#include "AliAODInputHandler.h"
+#include "AliAODMCParticle.h"
+//#include "AliAnalysisUtils.h"
+#include "AliHelperPID.h"
+#include "AliEventPoolManager.h"
+
+#include "AliAnalysisTaskFemtoESE.h"
+
+//#include "AliSpectraAODEventCuts.h"
+//#include "AliSpectraAODTrackCuts.h"
+//#include "/opt/alice/aliroot/master/src/PWGLF/SPECTRA/PiKaPr/TestAOD/AliSpectraAODEventCuts.h"
+//#include "/opt/alice/aliroot/master/src/PWGLF/SPECTRA/PiKaPr/TestAOD/AliSpectraAODTrackCuts.h"
+//#include "AliSpectraAODEventCuts.h"
+//#include "AliSpectraAODTrackCuts.h"
+
+ClassImp(AliAnalysisTaskFemtoESE)
+
+
+//________________________________________________________________________
+// Default constructor
+AliAnalysisTaskFemtoESE::AliAnalysisTaskFemtoESE() : 
+  AliAnalysisTaskSE(),
+  fAOD(0x0), 
+  fOutputList(0x0),
+  fHelperPID(0x0),
+  fPoolMgr(0x0),
+  fEventCuts(0x0),
+  fTrackCuts(0x0),
+  fFilterBit(128),
+  fSelectBit(AliVEvent::kMB),
+  fEventCounter(0),
+  fMixingTracks(10000),
+  fBfield(0.),
+  fMinSepPairEta(0.),
+  fMinSepPairPhi(0.),
+  fShareQuality(0.5),
+  fShareFraction(0.05),
+  nCountSamePairs(0),
+  nCountMixedPairs(0),
+  nCountTracks(0),
+  fMinQPerc(-1000),
+  fMaxQPerc(1000),
+  fQPercDet(0),
+  fEPDet(0),
+  fPsiEPmix(0),
+  fPsiEPmixtemp(0),
+  nKtBins(0),
+  nKtBins1(1),
+  ktBins(0),
+  nEPBins(0),
+  nEPBins1(1),
+  epBins(0),
+  nCentBins(0),
+  nCentBins1(1),
+  centBins(0),
+  nVzBins(0),
+  nVzBins1(1),
+  vzBins(0),
+  hq(0x0),
+  hqmix(0x0)
+{
+}
+
+//________________________________________________________________________
+// Constructor
+AliAnalysisTaskFemtoESE::AliAnalysisTaskFemtoESE(const char* name) : 
+  AliAnalysisTaskSE(name),
+  fAOD(0x0), 
+  fOutputList(0x0),
+  fHelperPID(0x0),
+  fPoolMgr(0x0),
+  fEventCuts(0x0),
+  fTrackCuts(0x0),
+  fFilterBit(128),
+  fSelectBit(AliVEvent::kMB),
+  fEventCounter(0),
+  fMixingTracks(10000),
+  fBfield(0.),
+  fMinSepPairEta(0.),
+  fMinSepPairPhi(0.),
+  fShareQuality(0.5),
+  fShareFraction(0.05),
+  nCountSamePairs(0),
+  nCountMixedPairs(0),
+  nCountTracks(0),
+  fMinQPerc(-1000),
+  fMaxQPerc(1000),
+  fQPercDet(0),
+  fEPDet(0),
+  fPsiEPmix(0),
+  fPsiEPmixtemp(0),
+  nKtBins(0),
+  nKtBins1(1),
+  ktBins(0),
+  nEPBins(0),
+  nEPBins1(1),
+  epBins(0),
+  nCentBins(0),
+  nCentBins1(1),
+  centBins(0),
+  nVzBins(0),
+  nVzBins1(1),
+  vzBins(0),
+  hq(0x0),
+  hqmix(0x0)
+{
+  
+  Printf("*******************************************");
+  Printf("AliAnalysisTaskFemtoESE named %s",name);
+  Printf("*******************************************");
+
+  // default binning
+  SetEPBins(12,-TMath::Pi()/12.,2*TMath::Pi()-TMath::Pi()/12.);
+  Double_t ktBinsTemp[5] = {0.2,0.3,0.4,0.5,0.7};
+  SetKtBins(4,ktBinsTemp);
+  Double_t centBinsTemp[6] = {0,10,20,30,40,50};
+  SetCentBins(5,centBinsTemp);
+  Double_t vzBinsTemp[11] = {-10,-8,-6,-4,-2,0,2,4,6,8,10};
+  SetVzBins(10,vzBinsTemp);
+
+  vertex[0] = vertex[1] = vertex[2] = 0.;
+
+  DefineInput(0, TChain::Class());
+  DefineOutput(1, TList::Class());
+  DefineOutput(2, AliHelperPID::Class());
+
+}
+
+//________________________________________________________________________
+// destructor
+AliAnalysisTaskFemtoESE::~AliAnalysisTaskFemtoESE()
+{
+  /* do nothing yet */  
+}
+//________________________________________________________________________
+// copy constructor
+AliAnalysisTaskFemtoESE::AliAnalysisTaskFemtoESE(const AliAnalysisTaskFemtoESE &/*obj*/) :
+  AliAnalysisTaskSE(),
+  fAOD(0x0), 
+  fOutputList(0x0),
+  fHelperPID(0x0),
+  fPoolMgr(0x0),
+  fEventCuts(0x0),
+  fTrackCuts(0x0),
+  fFilterBit(128),
+  fSelectBit(AliVEvent::kMB),
+  fEventCounter(0),
+  fMixingTracks(10000),
+  fBfield(0.),
+  fMinSepPairEta(0.),
+  fMinSepPairPhi(0.),
+  fShareQuality(0.5),
+  fShareFraction(0.05),
+  nCountSamePairs(0),
+  nCountMixedPairs(0),
+  nCountTracks(0),
+  fMinQPerc(-1000),
+  fMaxQPerc(1000),
+  fQPercDet(0),
+  fEPDet(0),
+  fPsiEPmix(0),
+  fPsiEPmixtemp(0),
+  nKtBins(0),
+  nKtBins1(1),
+  ktBins(0),
+  nEPBins(0),
+  nEPBins1(1),
+  epBins(0),
+  nCentBins(0),
+  nCentBins1(1),
+  centBins(0),
+  nVzBins(0),
+  nVzBins1(1),
+  vzBins(0),
+  hq(0x0),
+  hqmix(0x0)
+{
+  /* do nothing yet */  
+} 
+//________________________________________________________________________
+// assignment operator
+AliAnalysisTaskFemtoESE& AliAnalysisTaskFemtoESE::operator=(const AliAnalysisTaskFemtoESE &/*obj*/)
+{
+  /* do nothing yet */  
+  return *this;
+}
+
+//________________________________________________________________________
+void AliAnalysisTaskFemtoESE::UserCreateOutputObjects()
+{
+  // Create histograms
+
+  if (!fTrackCuts) AliFatal("Track Cuts should be set in the steering macro");
+  if (!fEventCuts) AliFatal("Event Cuts should be set in the steering macro");
+  if (!fHelperPID)  AliFatal("HelperPID should be set in the steering macro");
+  
+  fOutputList = new TList();
+  fOutputList->SetOwner();
+  fOutputList->SetName("fOutputList");
+  
+  TH1D *hpx = new TH1D("hpx","px",200,-2,2);
+  hpx->GetXaxis()->SetTitle("p_{x}");
+  fOutputList->Add(hpx);
+  TH1D *hpy = new TH1D("hpy","py",200,-2,2);
+  hpy->GetXaxis()->SetTitle("p_{y}");
+  fOutputList->Add(hpy);
+  TH1D *hpz = new TH1D("hpz","pz",200,-2,2);
+  hpz->GetXaxis()->SetTitle("p_{z}");
+  fOutputList->Add(hpz);
+  TH1D *hpt = new TH1D("hpt","pt",100,0,2);
+  hpt->GetXaxis()->SetTitle("p_{t}");
+  fOutputList->Add(hpt);
+  TH1D *hE = new TH1D("hE","E",100,0,2);
+  hE->GetXaxis()->SetTitle("E");
+  fOutputList->Add(hE);
+  TH2D *hphieta = new TH2D("hphieta","track #varphi vs #eta",100,0,2*TMath::Pi(),80,-0.8,0.8);
+  hphieta->GetXaxis()->SetTitle("#varphi");
+  hphieta->GetYaxis()->SetTitle("#eta");
+  fOutputList->Add(hphieta);
+  TH2D *hphieta_pid = new TH2D("hphieta_pid","PID check -- #Delta#varphi vs #Delta#eta",100,-0.3,0.3,100,-0.3,0.3);
+  hphieta_pid->GetXaxis()->SetTitle("#Delta#varphi");
+  hphieta_pid->GetYaxis()->SetTitle("#Delta#eta");
+  fOutputList->Add(hphieta_pid);
+  TH1D *hpt_pid = new TH1D("hpt_pid","PID check -- #Delta p_{t}",100,-0.5,0.5);
+  hpt_pid->GetXaxis()->SetTitle("#Delta p_{t}");
+  fOutputList->Add(hpt_pid);
+  TH2D *hvzcent = new TH2D("hvzcent","vz vs cent",nVzBins,vzBins,nCentBins,centBins);
+  hvzcent->GetXaxis()->SetTitle("v_{z}");
+  hvzcent->GetYaxis()->SetTitle("centrality");
+  fOutputList->Add(hvzcent);
+  TH1D *hcent = new TH1D("hcent","cent",10,0,100);
+  hcent->GetXaxis()->SetTitle("centrality");
+  fOutputList->Add(hcent);
+  TH2D *hcentn = new TH2D("hcentn","cent vs npions",50,0,50,100,0,2000);
+  hcentn->GetXaxis()->SetTitle("Centrality");
+  hcentn->GetYaxis()->SetTitle("Number of pions");
+  fOutputList->Add(hcentn);
+  TH3D *hphistaretapair10 = new TH3D("hphistaretapair10","pair #Delta#varphi* vs #Delta#eta at r=1.0m",100,-0.15,0.15,100,-0.1,0.1,10,0,1);
+  hphistaretapair10->GetXaxis()->SetTitle("#Delta#varphi*");
+  hphistaretapair10->GetYaxis()->SetTitle("#Delta#eta");
+  hphistaretapair10->GetZaxis()->SetTitle("k_{T}");
+  fOutputList->Add(hphistaretapair10);
+  TH3D *hphistaretapair16 = new TH3D("hphistaretapair16","pair #Delta#varphi* vs #Delta#eta at r=1.6m",100,-0.15,0.15,100,-0.1,0.1,10,0,1);
+  hphistaretapair16->GetXaxis()->SetTitle("#Delta#varphi*");
+  hphistaretapair16->GetYaxis()->SetTitle("#Delta#eta");
+  hphistaretapair16->GetZaxis()->SetTitle("k_{T}");
+  fOutputList->Add(hphistaretapair16);
+  TH3D *hphistaretapair10a = new TH3D("hphistaretapair10a","pair #Delta#varphi* vs #Delta#eta at r=1.0m",100,-0.15,0.15,100,-0.1,0.1,10,0,1);
+  hphistaretapair10a->GetXaxis()->SetTitle("#Delta#varphi*");
+  hphistaretapair10a->GetYaxis()->SetTitle("#Delta#eta");
+  hphistaretapair10a->GetZaxis()->SetTitle("k_{T}");
+  fOutputList->Add(hphistaretapair10a);
+  TH3D *hphistaretapair16a = new TH3D("hphistaretapair16a","pair #Delta#varphi* vs #Delta#eta at r=1.6m",100,-0.15,0.15,100,-0.1,0.1,10,0,1);
+  hphistaretapair16a->GetXaxis()->SetTitle("#Delta#varphi*");
+  hphistaretapair16a->GetYaxis()->SetTitle("#Delta#eta");
+  hphistaretapair16a->GetZaxis()->SetTitle("k_{T}");
+  fOutputList->Add(hphistaretapair16a);
+  TH3D *hphistaretapair10b = new TH3D("hphistaretapair10b","pair #Delta#varphi* vs #Delta#eta at r=1.0m",100,-TMath::Pi(),TMath::Pi(),100,-1.6,1.6,10,0,1);
+  hphistaretapair10b->GetXaxis()->SetTitle("#Delta#varphi*");
+  hphistaretapair10b->GetYaxis()->SetTitle("#Delta#eta");
+  hphistaretapair10b->GetZaxis()->SetTitle("k_{T}");
+  fOutputList->Add(hphistaretapair10b);
+  TH3D *hphistaretapair16b = new TH3D("hphistaretapair16b","pair #Delta#varphi* vs #Delta#eta at r=1.6m",100,-TMath::Pi(),TMath::Pi(),100,-1.6,1.6,10,0,1);
+  hphistaretapair16b->GetXaxis()->SetTitle("#Delta#varphi*");
+  hphistaretapair16b->GetYaxis()->SetTitle("#Delta#eta");
+  hphistaretapair16b->GetZaxis()->SetTitle("k_{T}");
+  fOutputList->Add(hphistaretapair16b);
+  TH3D *hphietapair = new TH3D("hphietapair","pair #Delta#varphi vs #Delta#eta",100,-0.1,0.1,100,-0.1,0.1,10,0,1);
+  hphietapair->GetXaxis()->SetTitle("#Delta#varphi");
+  hphietapair->GetYaxis()->SetTitle("#Delta#eta");
+  hphietapair->GetZaxis()->SetTitle("k_{T}");
+  fOutputList->Add(hphietapair);
+  TH3D *hphietapair2 = new TH3D("hphietapair2","pair #varphi vs #eta",100,-TMath::Pi(),TMath::Pi(),100,-1.6,1.6,10,0,1);
+  hphietapair2->GetXaxis()->SetTitle("#Delta#varphi");
+  hphietapair2->GetYaxis()->SetTitle("#eta");
+  hphietapair2->GetZaxis()->SetTitle("k_{T}");
+  fOutputList->Add(hphietapair2);
+  TH1D *hpidid = new TH1D("hpidid","pid id",9,-4.5,4.5);
+  hpidid->GetXaxis()->SetTitle("track PID ID");
+  fOutputList->Add(hpidid);
+  TH1D *hkt = new TH1D("hkt","k_{T}",100,0,2);
+  hkt->GetXaxis()->SetTitle("k_{T}");
+  fOutputList->Add(hkt);
+  TH1D *hktcheck = new TH1D("hktcheck","k_{T} check",100,0,2);
+  hktcheck->GetXaxis()->SetTitle("k_{T}");
+  fOutputList->Add(hktcheck);
+  TH3D *hkt3 = new TH3D("hkt3","kt vs pt",50,0,1,50,0,5,50,0,5);
+  hkt3->GetXaxis()->SetTitle("k_{T}");
+  hkt3->GetYaxis()->SetTitle("p_{T,1}");
+  hkt3->GetZaxis()->SetTitle("p_{T,2}");
+  fOutputList->Add(hkt3);
+  TH2D *hdcaxy = new TH2D("hdcaxy","DCA xy",100,-5,5,100,-5,5);
+  hdcaxy->GetXaxis()->SetTitle("DCA x");
+  hdcaxy->GetYaxis()->SetTitle("DCA y");
+  fOutputList->Add(hdcaxy);
+  TH1D *hdcaz = new TH1D("hdcaz","DCA z",100,-5,5);
+  hdcaz->GetXaxis()->SetTitle("DCA z");
+  fOutputList->Add(hdcaz);
+  TH1D *hsharequal = new TH1D("hsharequal","Share Quality",102,-1.02,1.02);
+  hsharequal->GetXaxis()->SetTitle("Share Quality");
+  fOutputList->Add(hsharequal);
+  TH1D *hsharefrac = new TH1D("hsharefrac","Share Fraction",100,0,1);
+  hsharefrac->GetXaxis()->SetTitle("Share Fraction");
+  fOutputList->Add(hsharefrac);
+  TH1D *hsharequalmix = new TH1D("hsharequalmix","Share Quality -- mixed events",102,-1.02,1.02);
+  hsharequalmix->GetXaxis()->SetTitle("Share Quality");
+  fOutputList->Add(hsharequalmix);
+  TH1D *hsharefracmix = new TH1D("hsharefracmix","Share Fraction -- mixed events",100,0,1);
+  hsharefracmix->GetXaxis()->SetTitle("Share Fraction");
+  fOutputList->Add(hsharefracmix);
+  TH1D *hPsiTPC = new TH1D("hPsiTPC","TPC EP",100,-1*TMath::Pi(),TMath::Pi());
+  hPsiTPC->GetXaxis()->SetTitle("#Psi{TPC}");
+  fOutputList->Add(hPsiTPC);
+  TH1D *hPsiV0A = new TH1D("hPsiV0A","V0A EP",100,-1*TMath::Pi(),TMath::Pi());
+  hPsiV0A->GetXaxis()->SetTitle("#Psi{V0A}");
+  fOutputList->Add(hPsiV0A);
+  TH1D *hPsiV0C = new TH1D("hPsiV0C","V0C EP",100,-1*TMath::Pi(),TMath::Pi());
+  hPsiV0C->GetXaxis()->SetTitle("#Psi{V0C}");
+  fOutputList->Add(hPsiV0C);
+  TH1D *hCheckEPA = new TH1D("hCheckEPA","Check EP V0A",100,-1*TMath::Pi(),TMath::Pi());
+  hCheckEPA->GetXaxis()->SetTitle("PsiV0A - PsiTPC");
+  fOutputList->Add(hCheckEPA);
+  TH1D *hCheckEPC = new TH1D("hCheckEPC","Check EP V0C",100,-1*TMath::Pi(),TMath::Pi());
+  hCheckEPC->GetXaxis()->SetTitle("PsiV0C - PsiTPC");
+  fOutputList->Add(hCheckEPC);
+  TH2D* hCheckEPmix = new TH2D("hCheckEPmix","Check EP mixed events",100,-1*TMath::Pi(),TMath::Pi(),100,-1*TMath::Pi(),TMath::Pi());
+  hCheckEPmix->GetXaxis()->SetTitle("Psi1 - Psi_mix");
+  hCheckEPmix->GetYaxis()->SetTitle("Psi1 - Psi2");
+  fOutputList->Add(hCheckEPmix);
+  TH2D *hcentq = new TH2D("hcentq","qvec vs cent",100,0,100,5,0,50);
+  hcentq->GetXaxis()->SetTitle("q_{2} percentile");
+  hcentq->GetYaxis()->SetTitle("centrality");
+  fOutputList->Add(hcentq);
+  TH2D* hMixedDist = new TH2D("hMixedDist", ";centrality;tracks;events", 101, 0, 101, 200, 0, fMixingTracks * 1.5);
+  fOutputList->Add(hMixedDist);
+
+  // resolution histograms (same binning as hvzcent)
+  TH2D *hresV0ATPC = new TH2D("hresV0ATPC","vz vs cent vs cos(2*(V0A-TPC))",nVzBins,vzBins,nCentBins,centBins);
+  hresV0ATPC->GetXaxis()->SetTitle("v_{z}");
+  hresV0ATPC->GetYaxis()->SetTitle("centrality");
+  fOutputList->Add(hresV0ATPC);
+  TH2D *hresV0CTPC = new TH2D("hresV0CTPC","vz vs cent vs cos(2*(V0C-TPC))",nVzBins,vzBins,nCentBins,centBins);
+  hresV0CTPC->GetXaxis()->SetTitle("v_{z}");
+  hresV0CTPC->GetYaxis()->SetTitle("centrality");
+  fOutputList->Add(hresV0CTPC);
+  TH2D *hresV0AV0C = new TH2D("hresV0AV0C","vz vs cent vs cos(2*(V0A-V0C))",nVzBins,vzBins,nCentBins,centBins);
+  hresV0AV0C->GetXaxis()->SetTitle("v_{z}");
+  hresV0AV0C->GetYaxis()->SetTitle("centrality");
+  fOutputList->Add(hresV0AV0C);
+
+  hq = new TH3F****[nKtBins];
+  hqmix = new TH3F****[nKtBins];
+  for(Int_t k = 0; k < nKtBins; k++)
+    {
+      hq[k] = new TH3F***[nEPBins];
+      hqmix[k] = new TH3F***[nEPBins];
+      for(Int_t e = 0; e < nEPBins; e++)
+       {
+         hq[k][e] = new TH3F**[nCentBins];
+         hqmix[k][e] = new TH3F**[nCentBins];
+         for(Int_t c = 0; c < nCentBins; c++)
+           {
+             hq[k][e][c] = new TH3F*[nVzBins];
+             hqmix[k][e][c] = new TH3F*[nVzBins];
+             for(Int_t v = 0; v < nVzBins; v++)
+               {
+                 hq[k][e][c][v] = new TH3F(Form("hq_%i_%i_%i_%i",k,e,c,v),Form("hq_%i_%i_%i_%i",k,e,c,v),30,-0.2,0.2,30,-0.2,0.2,30,-0.2,0.2);
+                 fOutputList->Add(hq[k][e][c][v]);
+                 //cout << "Made histogram " << hq[k][e][c][v]->GetName() << endl;
+                 hqmix[k][e][c][v] = new TH3F(Form("hqmix_%i_%i_%i_%i",k,e,c,v),Form("hqmix_%i_%i_%i_%i",k,e,c,v),30,-0.2,0.2,30,-0.2,0.2,30,-0.2,0.2);
+                 fOutputList->Add(hqmix[k][e][c][v]);
+                 //cout << "Made histogram " << hqmix[k][e][c][v]->GetName() << endl;
+               }
+           }
+       }
+    }
+
+  // create dummy histograms which just hold the values of the kt, cent, vz, ep bin edges
+  TH1F* hktbins = new TH1F("hktbins","kt bins",nKtBins,ktBins);
+  fOutputList->Add(hktbins);
+  TH1F* hcentbins = new TH1F("hcentbins","cent bins",nCentBins,centBins);
+  fOutputList->Add(hcentbins);
+  TH1F* hepbins = new TH1F("hepbins","ep bins",nEPBins,epBins);
+  fOutputList->Add(hepbins);
+  TH1F* hvzbins = new TH1F("hvzbins","vz bins",nVzBins,vzBins);
+  fOutputList->Add(hvzbins);
+
+
+  //cout << "nktbins = " << nKtBins << "   " << ktBins << endl;
+  cout << "kt bins: ";
+  for(Int_t y = 0; y < nKtBins+1; y++) cout << ktBins[y] << "  ";
+  cout << endl << "ep bins: ";
+  for(Int_t y = 0; y < nEPBins+1; y++) cout << epBins[y] << "  ";
+  cout << endl << "cent bins: ";
+  for(Int_t y = 0; y < nCentBins+1; y++) cout << centBins[y] << "  ";
+  cout << endl << "vz bins: ";
+  for(Int_t y = 0; y < nVzBins+1; y++) cout << vzBins[y] << "  ";
+  cout << endl;
+
+  Printf("************************");
+  Printf("using the %s detector for event plane determination",fEPDet ? "V0C" : "V0A");
+  Printf("using the %s detector for q-vector determination",fQPercDet ? "V0C" : "V0A");
+  Printf("************************");
+
+  vertex[0] = vertex[1] = vertex[2] = 0.;
+
+  // event mixing pool
+  Int_t poolsize = 1000;
+  fPoolMgr = new AliEventPoolManager(poolsize, fMixingTracks, nCentBins, centBins, nVzBins, vzBins);
+  fPoolMgr->SetTargetValues(fMixingTracks, 0.1, 5); // check these values
+
+
+  nCountSamePairs = 0;
+  nCountMixedPairs = 0;
+  nCountTracks = 0;
+
+  cout << "Done making stuff!" << endl;
+
+  PostData(1, fOutputList);
+  PostData(2, fHelperPID);
+}
+
+//________________________________________________________________________
+void AliAnalysisTaskFemtoESE::UserExec(Option_t *) 
+{
+  // Main loop
+  // Called for each event
+
+  //if(!fAODcase) {cout<<"ESDs not supported"<<endl; return;}
+
+  fAOD = dynamic_cast<AliAODEvent*> (InputEvent());
+  if (!fAOD) {Printf("ERROR: fAOD not available"); return;}
+
+  //if(!EventCut(fAOD)) return;  
+  if(!EventCut()) return; 
+
+  fEventCounter++;
+  if(fEventCounter%1000==0) cout<<"===========  Event # "<<fEventCounter<<"  ==========="<<endl;
+
+  AliCentrality *centrality;// for AODs and ESDs
+  const AliAODVertex *primaryVertexAOD;
+  //AliAnalysisManager *man=AliAnalysisManager::GetAnalysisManager();
+  //AliInputEventHandler* inputHandler = (AliInputEventHandler*) (man->GetInputEventHandler());
+  //fPIDResponse = inputHandler->GetPIDResponse();
+
+  fBfield = fAOD->GetMagneticField();
+
+  /////////////////////////////////////////////////
+  
+  Float_t centralityPercentile=0;
+  
+  centrality = fAOD->GetCentrality();
+  centralityPercentile = centrality->GetCentralityPercentile("V0M");
+  if(centralityPercentile <= centBins[0]) return;
+  if(centralityPercentile > centBins[nCentBins]) return;
+  
+  primaryVertexAOD = fAOD->GetPrimaryVertex();
+  vertex[0]=primaryVertexAOD->GetX(); vertex[1]=primaryVertexAOD->GetY(); vertex[2]=primaryVertexAOD->GetZ();
+  Double_t zvtx = vertex[2];
+  if(zvtx < vzBins[0] || zvtx > vzBins[nVzBins]) return; // Z-Vertex Cut 
+  //cout<<"Centrality % = " << centralityPercentile << "  z-vertex = " << zvtx << endl;
+
+  //ProcInfo_t procInfo;
+  //cout << "beginning of event" << endl;
+  //gSystem->GetProcInfo(&procInfo);
+  //printf("ResMem %ld VMem %ld\n", procInfo.fMemResident, procInfo.fMemVirtual);
+
+ // get event plane from V0's
+  if(!fEventCuts->IsSelected(fAOD,fTrackCuts)) cout << "Error! Event not accepted by AliAODSpectraEventCuts!" << endl;
+  //TVector2* qvecA = fEventCuts->GetqV0A();
+  //TVector2* qvecC = fEventCuts->GetqV0C();
+  //Double_t psiV0 = qvecA->Phi()/2.;
+  //fEventCuts->CalculateQVectorLHC10h();
+  Double_t psiV0A = fEventCuts->GetPsiV0A();
+  Double_t psiV0C = fEventCuts->GetPsiV0C();
+  //Double_t qV0a = fEventCuts->GetqV0A();
+  Double_t qperc = fEventCuts->GetQvecPercentile(fQPercDet);//0: VZERO-A 1: VZERO-C
+  //cout << "Psi = " << psiV0 << "   qV0a = " << qV0a << "   percentile = " << qperc << endl;
+
+  if(psiV0A == -999) return;
+  if(psiV0C == -999) return;
+  if(qperc < fMinQPerc || qperc > fMaxQPerc) return;
+
+
+  TH1D* hpx = (TH1D*)fOutputList->FindObject("hpx");
+  TH1D* hpy = (TH1D*)fOutputList->FindObject("hpy");
+  TH1D* hpz = (TH1D*)fOutputList->FindObject("hpz");
+  TH1D* hpt = (TH1D*)fOutputList->FindObject("hpt");
+  TH1D* hE = (TH1D*)fOutputList->FindObject("hE");
+  TH2D* hphieta = (TH2D*)fOutputList->FindObject("hphieta");
+  TH2D* hphieta_pid = (TH2D*)fOutputList->FindObject("hphieta_pid");
+  TH1D* hpt_pid = (TH1D*)fOutputList->FindObject("hpt_pid");
+  TH2D* hvzcent = (TH2D*)fOutputList->FindObject("hvzcent");
+  TH1D* hcent = (TH1D*)fOutputList->FindObject("hcent");
+  TH2D* hcentn = (TH2D*)fOutputList->FindObject("hcentn");
+  TH3D* hphistaretapair10 = (TH3D*)fOutputList->FindObject("hphistaretapair10");
+  TH3D* hphistaretapair16 = (TH3D*)fOutputList->FindObject("hphistaretapair16");
+  TH3D* hphistaretapair10a = (TH3D*)fOutputList->FindObject("hphistaretapair10a");
+  TH3D* hphistaretapair16a = (TH3D*)fOutputList->FindObject("hphistaretapair16a");
+  TH3D* hphistaretapair10b = (TH3D*)fOutputList->FindObject("hphistaretapair10b");
+  TH3D* hphistaretapair16b = (TH3D*)fOutputList->FindObject("hphistaretapair16b");
+  TH3D* hphietapair = (TH3D*)fOutputList->FindObject("hphietapair");
+  TH3D* hphietapair2 = (TH3D*)fOutputList->FindObject("hphietapair2");
+  TH1D* hpidid = (TH1D*)fOutputList->FindObject("hpidid");
+  TH1D* hkt = (TH1D*)fOutputList->FindObject("hkt");
+  TH1D* hktcheck = (TH1D*)fOutputList->FindObject("hktcheck");
+  TH3D* hkt3 = (TH3D*)fOutputList->FindObject("hkt3");
+  TH1D* hPsiTPC = (TH1D*)fOutputList->FindObject("hPsiTPC");
+  TH1D* hPsiV0A = (TH1D*)fOutputList->FindObject("hPsiV0A");
+  TH1D* hPsiV0C = (TH1D*)fOutputList->FindObject("hPsiV0C");
+  TH1D* hCheckEPA = (TH1D*)fOutputList->FindObject("hCheckEPA");
+  TH1D* hCheckEPC = (TH1D*)fOutputList->FindObject("hCheckEPC");
+  TH2D* hCheckEPmix = (TH2D*)fOutputList->FindObject("hCheckEPmix");
+  TH2D* hcentq = (TH2D*)fOutputList->FindObject("hcentq");
+  TH2D* hMixedDist = (TH2D*)fOutputList->FindObject("hMixedDist");
+  TH2D* hresV0ATPC = (TH2D*)fOutputList->FindObject("hresV0ATPC");
+  TH2D* hresV0CTPC = (TH2D*)fOutputList->FindObject("hresV0CTPC");
+  TH2D* hresV0AV0C = (TH2D*)fOutputList->FindObject("hresV0AV0C");
+
+  Double_t sin2phi = 0, cos2phi = 0;
+
+  TObjArray* tracks = new TObjArray();
+  //tracks->SetOwner(kTRUE);
+
+  // Track loop -- select pions
+  for (Int_t i = 0; i < fAOD->GetNumberOfTracks(); i++) {
+    AliAODTrack* aodtrack = fAOD->GetTrack(i);
+    if (!aodtrack) continue;
+    if(!TrackCut(aodtrack)) continue;
+
+    // filter bit 7 PID method...
+    Int_t trackPID=999;
+    for(Int_t m = 0; m < fAOD->GetNumberOfTracks(); m++) {
+      AliAODTrack* aodtrack2 = fAOD->GetTrack(m);
+      if (!aodtrack2) continue;
+      if(aodtrack->GetID() != (-aodtrack2->GetID() - 1)) continue;// (-aodTrack2->GetID() - 1)
+      trackPID=fHelperPID->GetParticleSpecies((AliVTrack*)aodtrack2,kTRUE);
+      hphieta_pid->Fill(aodtrack->Phi()-aodtrack2->Phi(),aodtrack->Eta()-aodtrack2->Eta());
+      hpt_pid->Fill(aodtrack->Pt()-aodtrack2->Pt());
+      //cout << aodtrack->Phi() << "   " << aodtrack->Eta() << "   " << aodtrack->Pt() << endl;
+      //cout << aodtrack2->Phi() << "   " << aodtrack2->Eta() << "   " << aodtrack2->Pt() << "   " << dataID2 << endl;
+    }
+
+    hpidid->Fill((trackPID+1)*aodtrack->Charge());
+
+    // select pions
+    if(trackPID==0) 
+      tracks->Add(aodtrack);
+
+      // check event plane angle using tracks in the TPC
+      if(aodtrack->Pt() < 2 && aodtrack->Pt() > 0.2)
+       {
+         sin2phi += (aodtrack->Pt())*sin(2*aodtrack->Phi());
+         cos2phi += (aodtrack->Pt())*cos(2*aodtrack->Phi());
+       }
+
+  }
+  // end track loop
+
+  Int_t ntracks = tracks->GetEntriesFast();
+
+  // get EP from TPC, just to check
+  Double_t psiTPC = 0.;
+  if(ntracks > 0)
+    psiTPC = 0.5*atan2(sin2phi,cos2phi);
+  else return;
+
+  Double_t psiEP = psiV0A;
+  if(fEPDet==1) psiEP = psiV0C;
+
+  hPsiTPC->Fill(psiTPC);
+  hPsiV0A->Fill(psiV0A);
+  hPsiV0C->Fill(psiV0C);
+  Double_t dphiEP = psiTPC-psiV0A;
+  if(dphiEP>TMath::Pi()) dphiEP-=2*TMath::Pi();
+  if(dphiEP<-TMath::Pi()) dphiEP+=2*TMath::Pi();
+  hCheckEPA->Fill(dphiEP);
+  dphiEP = psiTPC-psiV0C;
+  if(dphiEP>TMath::Pi()) dphiEP-=2*TMath::Pi();
+  if(dphiEP<-TMath::Pi()) dphiEP+=2*TMath::Pi();
+  hCheckEPC->Fill(dphiEP);
+
+
+  hcentq->Fill(qperc,centralityPercentile);
+
+
+  Double_t kt = 0;
+  Double_t qout=0, qside=0, qlong=0;
+  Double_t pVect1[4] = {0,0,0,0};
+  Double_t pVect2[4] = {0,0,0,0};
+  Int_t k, e, c, v; //bin indices for histograms
+
+  nCountTracks += ntracks;
+  //cout << "Found " << ntracks << " pion tracks..." << endl;
+
+  hvzcent->Fill(zvtx,centralityPercentile);
+  hcent->Fill(centralityPercentile);
+  hcentn->Fill(centralityPercentile,ntracks);
+
+  // resolution histograms
+  hresV0ATPC->Fill(zvtx,centralityPercentile,cos(2*(psiV0A-psiTPC)));
+  hresV0CTPC->Fill(zvtx,centralityPercentile,cos(2*(psiV0C-psiTPC)));
+  hresV0AV0C->Fill(zvtx,centralityPercentile,cos(2*(psiV0A-psiV0C)));
+
+  AliEventPool* pool = fPoolMgr->GetEventPool(centralityPercentile,zvtx);
+  if (!pool) AliFatal(Form("No pool found for centrality = %f, vz = %f", centralityPercentile, zvtx));
+  //if (!pool) AliFatal(Form("No pool found for centrality = %f, zVtx = %f, Psi_EP = %f", centralityPercentile, zvtx, psiEP));
+  //if(pool->IsReady()) hMixedDist->Fill(centralityPercentile, pool->NTracksInPool());
+
+
+  for(Int_t j = 0; j < ntracks; j++)
+    {
+      //cout << endl << j << "   ";
+      AliAODTrack* track1 = (AliAODTrack*)tracks->At(j);
+      pVect1[0]=sqrt(pow(track1->P(),2)+pow(0.13957, 2));
+      pVect1[1]=track1->Px();
+      pVect1[2]=track1->Py();
+      pVect1[3]=track1->Pz();
+      //cout << pVect1[0] << "   " << pVect1[1] << "   " <<  pVect1[2] << "   " << pVect1[3] << endl;
+
+      // track qa plots
+      hpx->Fill(pVect1[1]);
+      hpy->Fill(pVect1[2]);
+      hpz->Fill(pVect1[3]);
+      hpt->Fill(track1->Pt());
+      hE->Fill(pVect1[0]);
+      hphieta->Fill(track1->Phi(),track1->Eta());
+
+      // same event
+      for(Int_t i = j+1; i < ntracks; i++)
+       {
+         AliAODTrack* track2 = (AliAODTrack*)tracks->At(i);
+
+         hphistaretapair10->Fill(DeltaPhiStar(track1,track2,1.0),track1->Eta()-track2->Eta(),kt);
+         hphistaretapair16->Fill(DeltaPhiStar(track1,track2,1.6),track1->Eta()-track2->Eta(),kt);
+
+         if(!PairCut(track1,track2,kFALSE)) continue;
+
+         hphistaretapair10a->Fill(DeltaPhiStar(track1,track2,1.0),track1->Eta()-track2->Eta(),kt);
+         hphistaretapair16a->Fill(DeltaPhiStar(track1,track2,1.6),track1->Eta()-track2->Eta(),kt);
+         hphistaretapair10b->Fill(DeltaPhiStar(track1,track2,1.0),track1->Eta()-track2->Eta(),kt);
+         hphistaretapair16b->Fill(DeltaPhiStar(track1,track2,1.6),track1->Eta()-track2->Eta(),kt);
+
+         pVect2[0]=sqrt(pow(track2->P(),2)+pow(0.13957, 2));
+         pVect2[1]=track2->Px();
+         pVect2[2]=track2->Py();
+         pVect2[3]=track2->Pz();
+
+         //qinv = GetQinv(pVect1, pVect2); // = qinv**2 = (P1x-P2x)**2 + (P1y-P2y)**2 + (P1z-P2z)**2 - (P1t-P2t)**2 
+         GetQosl(pVect1, pVect2, qout, qside, qlong); // qout, qside, qlong = components of Q=P1-P2 in the P=P1+P2 frame
+         kt = sqrt(pow(pVect1[1]+pVect2[1],2) + pow(pVect1[2]+pVect2[2],2))/2.; // = Kt = |pT1+pT2|/2
+         hkt->Fill(kt);
+         hkt3->Fill(kt,track1->Pt(),track2->Pt());
+         Double_t deltaphi = GetDeltaPhiEP(pVect1[1],pVect1[2],pVect2[1],pVect2[2],psiEP); // angle to event plane in correct range
+         if(fabs(qout)<0.2 && fabs(qside)<0.2 && fabs(qlong)<0.2) nCountSamePairs++;
+         if(kt < ktBins[0] || kt > ktBins[nKtBins]) continue;
+         if(!FindBin(kt,deltaphi,centralityPercentile,zvtx,k,e,c,v)) continue;
+         hktcheck->Fill(kt);
+         hq[k][e][c][v]->Fill(qout,qside,qlong);
+         Double_t dphi = track1->Phi()-track2->Phi();
+         if(dphi<-TMath::Pi()) dphi += 2*TMath::Pi();
+         if(dphi>TMath::Pi()) dphi -= 2*TMath::Pi();
+         hphietapair->Fill(dphi,track1->Eta()-track2->Eta(),kt);
+         hphietapair2->Fill(dphi,track1->Eta()-track2->Eta(),kt);
+         //cout << k << "  ";
+       }
+
+      // mixed event
+      if (pool->IsReady()) 
+       {
+         Int_t nMix = pool->GetCurrentNEvents();
+         Int_t countmix = 0;
+
+         for (Int_t jMix=0; jMix<nMix; jMix++) 
+           {
+             TObjArray* bgTracks = pool->GetEvent(jMix);
+             Int_t ntracksmix = bgTracks->GetEntriesFast();
+
+             if(ntracksmix > 0)
+               {
+                 AliFemtoESEBasicParticle* tracktest = (AliFemtoESEBasicParticle*)bgTracks->UncheckedAt(0);
+                 fPsiEPmixtemp = tracktest->GetPsiEP();
+                 Double_t dphiEPtest = fPsiEPmixtemp-psiEP;
+                 while(dphiEPtest>2*TMath::Pi()) dphiEPtest-=2*TMath::Pi();
+                 while(dphiEPtest<0) dphiEPtest+=2*TMath::Pi();
+                 if(dphiEPtest>TMath::Pi()) dphiEPtest-=TMath::Pi();
+                 if(dphiEPtest>TMath::Pi()/2.) dphiEPtest = TMath::Pi()-dphiEPtest;
+                 if(dphiEPtest > TMath::Pi()/6.) continue;
+                 countmix += ntracksmix;
+
+                 fPsiEPmix = 0.5*atan2(sin(2*psiEP)+sin(2*fPsiEPmixtemp),cos(2*psiEP)+cos(2*fPsiEPmixtemp));
+                 Double_t dphimix = psiEP-fPsiEPmix;
+                 if(dphimix < -TMath::Pi()) dphimix += 2*TMath::Pi();
+                 if(dphimix > TMath::Pi()) dphimix -= 2*TMath::Pi();
+                 Double_t dphi12 = psiEP-fPsiEPmixtemp;
+                 if(dphi12 < -TMath::Pi()) dphi12 += 2*TMath::Pi();
+                 if(dphi12 > TMath::Pi()) dphi12 -= 2*TMath::Pi();
+                 hCheckEPmix->Fill(dphimix,dphi12);
+               }
+
+
+             //cout << "mixing with " << ntracksmix << " tracks" << endl;
+             for(Int_t i = 0; i < ntracksmix; i++)
+               {
+                 AliFemtoESEBasicParticle* track2 = (AliFemtoESEBasicParticle*)bgTracks->UncheckedAt(i);
+
+                 if(!PairCut(track1,track2,kTRUE)) continue;
+
+                 pVect2[0]=track2->E();
+                 pVect2[1]=track2->Px();
+                 pVect2[2]=track2->Py();
+                 pVect2[3]=track2->Pz();
+
+                 if(fPsiEPmixtemp != track2->GetPsiEP()) AliFatal("Error! Event plane angles are wrong in mixing!!");
+
+                 //qinv = GetQinv(pVect1, pVect2); // qinv**2 = (P1x-P2x)**2 + (P1y-P2y)**2 + (P1z-P2z)**2 - (P1t-P2t)**2 
+                 GetQosl(pVect1, pVect2, qout, qside, qlong); // qout, qside, qlong = components of Q=P1-P2 in the P=P1+P2 frame
+                 kt = sqrt(pow(pVect1[1]+pVect2[1],2) + pow(pVect1[2]+pVect2[2],2))/2.; // = Kt = |pT1+pT2|/2
+                 Double_t deltaphi = GetDeltaPhiEP(pVect1[1],pVect1[2],pVect2[1],pVect2[2],fPsiEPmix); // angle to event plane in correct range
+
+                 //Double_t weight = 1./(Double_t)nMix;
+                 if(fabs(qout)<0.2 && fabs(qside)<0.2 && fabs(qlong)<0.2) nCountMixedPairs++;
+                 if(kt < ktBins[0] || kt > ktBins[nKtBins]) continue;
+                 if(!FindBin(kt,deltaphi,centralityPercentile,zvtx,k,e,c,v)) continue;
+                 hqmix[k][e][c][v]->Fill(qout,qside,qlong);
+
+               }
+           }
+
+         hMixedDist->Fill(centralityPercentile, countmix);
+
+       }
+    }
+
+  TObjArray* clonedtracks = CloneAndReduceTrackList(tracks,psiEP);
+  pool->UpdatePool(clonedtracks);
+  //cout << "pool contains " << pool->GetCurrentNEvents() << " events and " << pool->NTracksInPool() << " tracks." << endl;
+  //tracks->Clear();
+  
+  delete tracks;
+
+  // Post output data.
+  PostData(1, fOutputList);
+  PostData(2, fHelperPID);
+}
+//________________________________________________________________________
+void AliAnalysisTaskFemtoESE::Terminate(Option_t *) 
+{
+
+  if(ktBins) delete [] ktBins;
+  if(epBins) delete [] epBins;
+  if(centBins) delete [] centBins;
+  if(vzBins) delete [] vzBins;
+
+  // Called once at the end of the query
+  cout<<"Done"<<endl;
+
+}
+
+
+/*
+
+//________________________________________________________________________
+Bool_t AliAnalysisTaskFemtoESE::AcceptPair(AliChaoticityTrackStruct *first, AliChaoticityTrackStruct *second)
+{
+  
+  if(fabs(first->fEta-second->fEta) > fMinSepPairEta) return kTRUE;
+  
+  // propagate through B field to r=1m
+  Float_t phi1 = first->fPhi - asin(first->fCharge*(0.1*fBfield)*0.15/first->fPt);// 0.15 for D=1m
+  if(phi1 > 2*PI) phi1 -= 2*PI;
+  if(phi1 < 0) phi1 += 2*PI;
+  Float_t phi2 = second->fPhi - asin(second->fCharge*(0.1*fBfield)*0.15/second->fPt);// 0.15 for D=1m 
+  if(phi2 > 2*PI) phi2 -= 2*PI;
+  if(phi2 < 0) phi2 += 2*PI;
+  
+  Float_t deltaphi = phi1 - phi2;
+  if(deltaphi > PI) deltaphi -= 2*PI;
+  if(deltaphi < -PI) deltaphi += 2*PI;
+  deltaphi = fabs(deltaphi);
+
+  if(deltaphi < fMinSepPairPhi) return kFALSE;// Min Separation
+    
+  
+  // propagate through B field to r=1.6m
+  phi1 = first->fPhi - asin(first->fCharge*(0.1*fBfield)*0.24/first->fPt);// mine. 0.24 for D=1.6m
+  if(phi1 > 2*PI) phi1 -= 2*PI;
+  if(phi1 < 0) phi1 += 2*PI;
+  phi2 = second->fPhi - asin(second->fCharge*(0.1*fBfield)*0.24/second->fPt);// mine. 0.24 for D=1.6m 
+  if(phi2 > 2*PI) phi2 -= 2*PI;
+  if(phi2 < 0) phi2 += 2*PI;
+  
+  deltaphi = phi1 - phi2;
+  if(deltaphi > PI) deltaphi -= 2*PI;
+  if(deltaphi < -PI) deltaphi += 2*PI;
+  deltaphi = fabs(deltaphi);
+
+  if(deltaphi < fMinSepPairPhi) return kFALSE;// Min Separation
+  
+  
+   
+  //
+  
+  Int_t ncl1 = first->fClusterMap.GetNbits();
+  Int_t ncl2 = second->fClusterMap.GetNbits();
+  Int_t sumCls = 0; Int_t sumSha = 0; Int_t sumQ = 0;
+  Double_t shfrac = 0; Double_t qfactor = 0;
+  for(Int_t imap = 0; imap < ncl1 && imap < ncl2; imap++) {
+    if (first->fClusterMap.TestBitNumber(imap) && second->fClusterMap.TestBitNumber(imap)) {// Both clusters
+      if (first->fSharedMap.TestBitNumber(imap) && second->fSharedMap.TestBitNumber(imap)) { // Shared
+       sumQ++;
+       sumCls+=2;
+       sumSha+=2;}
+      else {sumQ--; sumCls+=2;}
+    }
+    else if (first->fClusterMap.TestBitNumber(imap) || second->fClusterMap.TestBitNumber(imap)) {// Non shared
+      sumQ++;
+      sumCls++;}
+  }
+  if (sumCls>0) {
+    qfactor = sumQ*1.0/sumCls;
+    shfrac = sumSha*1.0/sumCls;
+  }
+  
+  if(qfactor > fShareQuality || shfrac > fShareFraction) return kFALSE;
+  
+  
+  return kTRUE;
+  
+
+}
+//________________________________________________________________________
+Float_t AliAnalysisTaskFemtoESE::GamovFactor(Int_t chargeBin1, Int_t chargeBin2, Float_t qinv)
+{
+  Float_t arg = G_Coeff/qinv;
+  
+  if(chargeBin1==chargeBin2) return (exp(arg)-1)/(arg);
+  else {return (exp(-arg)-1)/(-arg);}
+  
+}
+//________________________________________________________________________
+void AliAnalysisTaskFemtoESE::Shuffle(Int_t *iarr, Int_t i1, Int_t i2)
+{
+  Int_t j, k;
+  Int_t a = i2 - i1;
+  for (Int_t i = i1; i < i2+1; i++) {
+    j = (Int_t) (gRandom->Rndm() * a);
+    k = iarr[j];
+    iarr[j] = iarr[i];
+    iarr[i] = k;
+  }
+}
+*/
+//________________________________________________________________________
+Double_t AliAnalysisTaskFemtoESE::GetQinv(Double_t track1[], Double_t track2[]){
+  
+  Double_t qinv=1.0;
+  qinv = sqrt( pow(track1[1]-track2[1],2) + pow(track1[2]-track2[2],2) + pow(track1[3]-track2[3],2) - pow(track1[0]-track2[0],2));
+  return qinv;
+}
+
+//________________________________________________________________________
+void AliAnalysisTaskFemtoESE::GetQosl(Double_t track1[], Double_t track2[], Double_t& qout, Double_t& qside, Double_t& qlong){
+  Double_t p0 = track1[0] + track2[0];
+  Double_t px = track1[1] + track2[1];
+  Double_t py = track1[2] + track2[2];
+  Double_t pz = track1[3] + track2[3];
+  
+  Double_t mt = sqrt(p0*p0 - pz*pz);
+  Double_t pt = sqrt(px*px + py*py);
+  
+  Double_t v0 = track1[0] - track2[0];
+  Double_t vx = track1[1] - track2[1];
+  Double_t vy = track1[2] - track2[2];
+  Double_t vz = track1[3] - track2[3];
+   
+  if(gRandom->Rndm()<0.5)
+    {
+      v0 = -v0;
+      vx = -vx;
+      vy = -vy;
+      vz = -vz;
+    }
+
+  //cout << p0 << "  " << px << "  " << py << "  " << pz << "  " << v0 << "  " << vx << "  " << vy << "  " << vz << "  " << mt << "  " << pt << endl;
+  
+  qout = (px*vx + py*vy)/pt;
+  qside = (px*vy - py*vx)/pt;
+  qlong = (p0*vz - pz*v0)/mt;
+}
+
+//________________________________________________________________________
+Bool_t AliAnalysisTaskFemtoESE::EventCut(/*AliAODEvent* fevent*/){
+
+  // Trigger Cut
+
+  Bool_t isSelected1 = (((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & AliVEvent::kMB);
+  Bool_t isSelected2 = (((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & AliVEvent::kCentral);
+  Bool_t isSelected3 = (((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & AliVEvent::kSemiCentral);
+  if(!isSelected1 && !isSelected2 && !isSelected3) {return kFALSE;}
+
+      /*  
+    // Pile-up rejection
+    AliAnalysisUtils *AnaUtil=new AliAnalysisUtils();
+    if(!fPbPbcase) AnaUtil->SetUseMVPlpSelection(kTRUE);// use Multi-Vertex tool for pp and pPb
+    else AnaUtil->SetUseMVPlpSelection(kFALSE);
+    Bool_t pileUpCase=AnaUtil->IsPileUpEvent(fAOD); 
+    if(pileUpCase) return;
+
+    // Vertexing
+    primaryVertexAOD = fAOD->GetPrimaryVertex();
+    vertex[0]=primaryVertexAOD->GetX(); vertex[1]=primaryVertexAOD->GetY(); vertex[2]=primaryVertexAOD->GetZ();
+    
+    if(fabs(vertex[2]) > 10) {cout<<"Zvertex Out of Range. Skip Event"<<endl; return;} // Z-Vertex Cut 
+    ((TH3D*)fOutputList->FindObject("fVertexDist"))->Fill(vertex[0], vertex[1], vertex[2]);
+    
+    for (Int_t i = 0; i < fAOD->GetNumberOfTracks(); i++) {
+      AliAODTrack* aodtrack = fAOD->GetTrack(i);
+      if (!aodtrack) continue;
+      AODTracks++;
+      if(!aodtrack->TestFilterBit(BIT(fFilterBit))) continue;// AOD filterBit cut
+      FBTracks++;
+    }
+    ((TH1D*)fOutputList->FindObject("fMultDist2"))->Fill(FBTracks);
+
+    //if(fAOD->IsPileupFromSPD()) {cout<<"PileUpEvent. Skip Event"<<endl; return;} // Old Pile-up cut
+    if(primaryVertexAOD->GetNContributors() < 1) {cout<<"Bad Vertex. Skip Event"<<endl; return;}
+   
+    ((TH1D*)fOutputList->FindObject("fMultDist3"))->Fill(FBTracks);
+    fBfield = fAOD->GetMagneticField();
+    
+    for(Int_t i=0; i<fZvertexBins; i++){
+      if( (vertex[2] >= zstart+i*zstep) && (vertex[2] < zstart+(i+1)*zstep) ){
+       zbin=i;
+       break;
+      }
+    }
+      */
+
+    return kTRUE;
+
+}
+
+//________________________________________________________________________
+Bool_t AliAnalysisTaskFemtoESE::TrackCut(AliAODTrack* ftrack){
+
+  if (!ftrack->TestFilterBit(fFilterBit)) return kFALSE;
+
+  if(ftrack->Pt() < 0.14) return kFALSE;
+  if(ftrack->Pt() > 1.5) return kFALSE;
+  if(fabs(ftrack->Eta()) > 0.8) return kFALSE;
+  if(ftrack->GetTPCNcls() < 80) return kFALSE;// TPC nCluster cut
+
+  Double_t trackdca[3] = {ftrack->XAtDCA(),ftrack->YAtDCA(),ftrack->ZAtDCA()};
+  //ftrack->XYZAtDCA(trackdca);
+  //Double_t dcaxy = sqrt( pow(trackpos[0] - vertex[0],2) + pow(trackpos[1] - vertex[1],2));
+  //Double_t dcaz = sqrt( pow(trackpos[2] - vertex[2],2));
+  ((TH2D*)fOutputList->FindObject("hdcaxy"))->Fill(trackdca[0],trackdca[1]);
+  ((TH1D*)fOutputList->FindObject("hdcaz"))->Fill(trackdca[2]);
+  //if(dcaxy > 0.2) return kFALSE;
+  //if(dcaz > 0.15) return kFALSE;
+
+
+    //// FilterBit Overlap Check
+    //if(fFilterBit != 7){
+//     Bool_t goodTrackOtherFB = kFALSE;
+//     if(fMCcase && fAOD->GetRunNumber()<=126437) goodTrackOtherFB=kTRUE;// FB7 to FB5 mapping in 10f6a MC does not work
+//     
+//     for (Int_t j = 0; j < fAOD->GetNumberOfTracks(); j++) {
+//       AliAODTrack* aodtrack2 = fAOD->GetTrack(randomIndex[j]);
+//       if(!aodtrack2) continue;
+//       if(!aodtrack2->TestFilterBit(BIT(fFilterBit))) continue;
+//       
+//       if(-(aodtrack->GetID()+1)==aodtrack2->GetID()) {goodTrackOtherFB=kTRUE; break;}
+//       
+//     }
+//     if(!goodTrackOtherFB) continue;
+  //    }
+
+  return kTRUE;
+
+}
+
+//________________________________________________________________________
+Bool_t AliAnalysisTaskFemtoESE::PairCut(AliAODTrack* ftrack1, AliAODTrack* ftrack2, Bool_t mix){
+
+  // check for same charge
+  if(ftrack2->Charge() != ftrack1->Charge()) return kFALSE;
+  
+  // qinv cut
+  Double_t trackvec1[4] = {sqrt(pow(ftrack1->P(),2)+pow(0.13957, 2)),ftrack1->Px(),ftrack1->Py(),ftrack1->Pz()};
+  Double_t trackvec2[4] = {sqrt(pow(ftrack2->P(),2)+pow(0.13957, 2)),ftrack2->Px(),ftrack2->Py(),ftrack2->Pz()};
+  Double_t qinv = GetQinv(trackvec1,trackvec2);
+  if(qinv < 0.005) return kFALSE;
+
+  // deltaEta x deltaPhi* cut
+  if(fabs(ftrack1->Eta()-ftrack2->Eta()) < fMinSepPairEta)
+    {
+      Double_t deltaphistar = DeltaPhiStar(ftrack1,ftrack2,1.0); // angular separation at r=1m
+      deltaphistar = fabs(deltaphistar);
+      if(deltaphistar < fMinSepPairPhi) return kFALSE;
+      deltaphistar = DeltaPhiStar(ftrack1,ftrack2,1.6); // angular separation at r=1.6m
+      deltaphistar = fabs(deltaphistar);
+      if(deltaphistar < fMinSepPairPhi) return kFALSE;
+    }
+
+  // share fraction & share quality cut
+  TBits clusterMap1 = (TBits)(ftrack1->GetTPCClusterMap());
+  TBits sharedMap1 = (TBits)(ftrack1->GetTPCSharedMap());
+  TBits clusterMap2 = (TBits)(ftrack2->GetTPCClusterMap());
+  TBits sharedMap2 = (TBits)(ftrack2->GetTPCSharedMap());
+
+  Int_t ncl1 = clusterMap1.GetNbits();
+  Int_t ncl2 = clusterMap2.GetNbits();
+  Int_t sumCls = 0; Int_t sumSha = 0; Int_t sumQ = 0;
+  Double_t shfrac = 0; Double_t qfactor = 0;
+  for(Int_t imap = 0; imap < ncl1 && imap < ncl2; imap++)
+    {
+      if (clusterMap1.TestBitNumber(imap) && clusterMap2.TestBitNumber(imap)) // Both clusters
+       {
+         if (sharedMap1.TestBitNumber(imap) && sharedMap2.TestBitNumber(imap)) // Shared
+           {
+             sumQ++;
+             sumCls+=2;
+             sumSha+=2;}
+         else {sumQ--; sumCls+=2;}
+       }
+      else if (clusterMap1.TestBitNumber(imap) || clusterMap2.TestBitNumber(imap)) // Non shared
+       {
+         sumQ++;
+         sumCls++;
+       }
+    }
+  if (sumCls>0)
+    {
+      qfactor = sumQ*1.0/sumCls;
+      shfrac = sumSha*1.0/sumCls;
+    }
+  
+  // sumCls -- number of clusters in track 1 + number of clusters in track 2 (clusters in both tracks counted twice)
+  // sumSha -- number of shared clusters (counted twice)
+  // sumQ -- ?
+  
+  TH1D* hsharequal;
+  TH1D* hsharefrac;
+
+  if(!mix)
+    {
+      hsharequal = (TH1D*)fOutputList->FindObject("hsharequal");
+      hsharefrac = (TH1D*)fOutputList->FindObject("hsharefrac");
+    }
+  else
+    {
+     hsharequal = (TH1D*)fOutputList->FindObject("hsharequalmix");
+     hsharefrac = (TH1D*)fOutputList->FindObject("hsharefracmix");
+    }
+  hsharequal->Fill(qfactor);
+  hsharefrac->Fill(shfrac);
+  
+  if(qfactor > fShareQuality || shfrac > fShareFraction) return kFALSE;
+  
+  return kTRUE;
+}
+
+Double_t AliAnalysisTaskFemtoESE::DeltaPhiStar(AliAODTrack* ftrack1, AliAODTrack* ftrack2, Double_t r)
+{
+  Double_t phi1 = ftrack1->Phi() - asin(0.3*ftrack1->Charge()*(0.1*fBfield)*r/(2.*ftrack1->Pt())); // magnetic field converted from kilogauss to tesla
+  Double_t phi2 = ftrack2->Phi() - asin(0.3*ftrack2->Charge()*(0.1*fBfield)*r/(2.*ftrack2->Pt())); 
+  
+  Double_t deltaphi = phi1 - phi2;
+  while(deltaphi > TMath::Pi()) deltaphi -= 2*TMath::Pi();
+  while(deltaphi < -TMath::Pi()) deltaphi += 2*TMath::Pi();
+
+  return deltaphi;
+}
+
+TObjArray* AliAnalysisTaskFemtoESE::CloneAndReduceTrackList(TObjArray* tracks, Double_t psi)
+{
+  // clones a track list by using AliDPhiBasicParticle which uses much less memory (used for event mixing)
+
+  TObjArray* tracksClone = new TObjArray;
+  tracksClone->SetOwner(kTRUE);
+
+  for (Int_t i=0; i<tracks->GetEntriesFast(); i++)
+  {
+    AliAODTrack* particle = (AliAODTrack*) tracks->UncheckedAt(i);
+    AliFemtoESEBasicParticle* copy = new AliFemtoESEBasicParticle(sqrt(pow(particle->P(),2)+pow(0.13957, 2)),particle->Px(),particle->Py(),particle->Pz(),particle->Charge(),particle->Phi(),particle->Eta());
+    copy->SetPsiEP(psi);
+    copy->SetTPCClusterMap(particle->GetTPCClusterMap());
+    copy->SetTPCSharedMap(particle->GetTPCSharedMap());
+
+    tracksClone->Add(copy);
+  }
+  
+  return tracksClone;
+}
+
+Double_t AliAnalysisTaskFemtoESE::GetDeltaPhiEP(Double_t px1, Double_t py1, Double_t px2, Double_t py2, Double_t psi)
+{
+  // angle of pair
+  Double_t px = px1+px2;
+  Double_t py = py1+py2;
+  Double_t phi = atan2(py,px);
+
+  Double_t dphi = phi-psi;
+  while(dphi < epBins[0]) dphi += 2*TMath::Pi();
+  while(dphi > epBins[nEPBins]) dphi -= 2*TMath::Pi();
+
+  return dphi;
+}
+
+Bool_t AliAnalysisTaskFemtoESE::FindBin(Double_t kt, Double_t phi, Double_t cent, Double_t vz, Int_t& a, Int_t& b, Int_t&c, Int_t& d)
+{
+  a = b = c = d = -1;
+  for(Int_t i = 0; i < nKtBins; i++)
+    {
+      if(kt >= ktBins[i] && kt < ktBins[i+1])
+       {
+         a = i;
+         break;
+       }
+    }
+  if(a==-1) return kFALSE;
+
+  for(Int_t i = 0; i < nEPBins; i++)
+    {
+      if(phi >= epBins[i] && phi < epBins[i+1])
+       {
+         b = i;
+         break;
+       }
+    }
+  if(b==-1) return kFALSE;
+
+  for(Int_t i = 0; i < nCentBins; i++)
+    {
+      if(cent >= centBins[i] && cent < centBins[i+1])
+       {
+         c = i;
+         break;
+       }
+    }
+  if(c==-1) return kFALSE;
+
+  for(Int_t i = 0; i < nVzBins; i++)
+    {
+      if(vz >= vzBins[i] && vz < vzBins[i+1])
+       {
+         d = i;
+         break;
+       }
+    }
+  if(d==-1) return kFALSE;
+
+  return kTRUE;
+}
+
+
+
+void AliAnalysisTaskFemtoESE::SetKtBins(Int_t n, Double_t* bins)
+{
+  if(ktBins) delete [] ktBins;
+  nKtBins = n;
+  nKtBins1 = n+1;
+  ktBins = new Double_t[nKtBins+1];
+  for(Int_t i = 0; i < nKtBins+1; i++)
+    ktBins[i]=bins[i];
+  cout << endl << "Setting " << nKtBins << " kt bins: " << endl;
+  for(Int_t i = 0; i < nKtBins+1; i++)
+    cout << ktBins[i] << "   ";
+  cout << endl << endl;
+}
+void AliAnalysisTaskFemtoESE::SetCentBins(Int_t n, Double_t* bins)
+{
+  if(centBins) delete [] centBins;
+  nCentBins = n;
+  nCentBins1 = n+1;
+  centBins = new Double_t[nCentBins+1];
+  for(Int_t i = 0; i < nCentBins+1; i++)
+    centBins[i]=bins[i];
+  cout << endl << "Setting " << nCentBins << " centrality bins: " << endl;
+  for(Int_t i = 0; i < nCentBins+1; i++)
+    cout << centBins[i] << "   ";
+  cout << endl << endl;
+}
+void AliAnalysisTaskFemtoESE::SetVzBins(Int_t n, Double_t* bins)
+{
+  if(vzBins) delete [] vzBins;
+  nVzBins = n;
+  nVzBins1 = n+1;
+  vzBins = new Double_t[nVzBins+1];
+  for(Int_t i = 0; i < nVzBins+1; i++)
+    vzBins[i]=bins[i];
+  cout << endl << "Setting " << nVzBins << " vz bins: " << endl;
+  for(Int_t i = 0; i < nVzBins+1; i++)
+    cout << vzBins[i] << "   ";
+  cout << endl << endl;
+}
+void AliAnalysisTaskFemtoESE::SetEPBins(Int_t n, Double_t min, Double_t max)
+{
+  if(epBins) delete [] epBins;
+  nEPBins = n;
+  nEPBins1 = n+1;
+  epBins = new Double_t[nEPBins+1];
+  for(Int_t y = 0; y < nEPBins+1; y++)
+    epBins[y] = min+((max-min)/(Double_t)n)*((Double_t)y);
+  cout << endl << "Setting " << nEPBins << " event plane bins: " << endl;
+  for(Int_t i = 0; i < nEPBins+1; i++)
+    cout << epBins[i] << "   ";
+  cout << endl << endl;
+}
+
diff --git a/PWGCF/FEMTOSCOPY/ESE/AliAnalysisTaskFemtoESE.h b/PWGCF/FEMTOSCOPY/ESE/AliAnalysisTaskFemtoESE.h
new file mode 100644 (file)
index 0000000..d1f124e
--- /dev/null
@@ -0,0 +1,203 @@
+#ifndef AliAnalysisTaskFemtoESE_cxx
+#define AliAnalysisTaskFemtoESE_cxx
+
+
+class TH1F;
+class TH2F;
+class TH3F;
+class TH1D;
+class TH2D;
+class TH3D;
+
+class TProfile;
+class TProfile2D;
+
+class AliESDEvent;
+class AliAODEvent;
+class AliESDtrackCuts;
+class AliESDpid;
+class AliHelperPID;
+class AliEventPoolManager;
+class AliSpectraAODEventCuts;
+class AliSpectraAODTrackCuts;
+class AliAODTrack;
+
+#include "AliAnalysisTask.h"
+#include "AliAnalysisTaskSE.h"
+#include "AliESDpid.h"
+#include "AliAODPid.h"
+
+#include "AliAODEvent.h"
+#include "AliAnalysisManager.h"
+#include "AliAODInputHandler.h"
+#include "AliSpectraAODEventCuts.h"
+#include "AliSpectraAODTrackCuts.h"
+
+class AliAnalysisTaskFemtoESE : public AliAnalysisTaskSE {
+ public:
+
+  AliAnalysisTaskFemtoESE();
+  AliAnalysisTaskFemtoESE(const char* name);
+  virtual ~AliAnalysisTaskFemtoESE();
+  AliAnalysisTaskFemtoESE(const AliAnalysisTaskFemtoESE &/*obj*/); 
+  AliAnalysisTaskFemtoESE &operator=(const AliAnalysisTaskFemtoESE &/*obj*/);
+
+  virtual void   UserCreateOutputObjects();
+  virtual void   UserExec(Option_t *option);
+  virtual void   Terminate(Option_t *);
+
+  AliHelperPID* GetHelperPID() { return fHelperPID; }
+  void SetHelperPID(AliHelperPID* pid){ fHelperPID = pid; }
+  AliSpectraAODEventCuts* GetEventCuts() {return fEventCuts;}
+  void SetEventCuts(AliSpectraAODEventCuts* cuts) {fEventCuts = cuts;}
+  AliSpectraAODTrackCuts* GetTrackCuts() {return fTrackCuts;}
+  void SetTrackCuts(AliSpectraAODTrackCuts* cuts) {fTrackCuts = cuts;}
+
+  Int_t GetTrackFilterBit(){return fFilterBit;}
+  void SetTrackFilterBit(Int_t bit){fFilterBit=bit;}
+  void SetEventSelectionBit( UInt_t val ) {fSelectBit = val;}
+  void SetMinSepPair(Double_t eta,Double_t phi){fMinSepPairEta = eta; fMinSepPairPhi = phi;}
+  void SetShareFraction(Double_t val) {fShareFraction = val;}
+  Double_t GetShareFraction() {return fShareFraction;}
+  void SetShareQuality(Double_t val) {fShareQuality = val;}
+  Double_t GetShareQuality() {return fShareQuality;}
+  void SetQPercCuts(Double_t min, Double_t max) {fMinQPerc = min; fMaxQPerc = max;}
+  Double_t GetMinQPerc(){return fMinQPerc;}
+  Double_t GetMaxQPerc(){return fMaxQPerc;}
+  void SetQPercDetector(Int_t det){fQPercDet = det;};
+  void SetEPDetector(Int_t det){fEPDet = det;};
+
+
+  void SetKtBins(Int_t n, Double_t* bins);
+  void SetEPBins(Int_t n, Double_t min, Double_t max);
+  void SetCentBins(Int_t n, Double_t* bins);
+  void SetVzBins(Int_t n, Double_t* bins);
+
+ private:
+  Double_t GetQinv(Double_t[], Double_t[]);
+  void GetQosl(Double_t[], Double_t[], Double_t&, Double_t&, Double_t&);
+  Bool_t TrackCut(AliAODTrack* ftrack);
+  Bool_t EventCut(/*AliAODEvent* fevent*/);
+  Bool_t PairCut(AliAODTrack* ftrack1, AliAODTrack* ftrack2, Bool_t mix);
+  Double_t DeltaPhiStar(AliAODTrack* ftrack1, AliAODTrack* ftrack2, Double_t r);
+  TObjArray* CloneAndReduceTrackList(TObjArray* tracks, Double_t psi);
+  Double_t GetDeltaPhiEP(Double_t px1, Double_t py1, Double_t px2, Double_t py2, Double_t psi);
+  Bool_t FindBin(Double_t kt, Double_t phi, Double_t cent, Double_t vz, Int_t& a, Int_t& b, Int_t&c, Int_t& d);
+
+  AliAODEvent            *fAOD; //!    // AOD object
+  TList                  *fOutputList; //! Compact Output list
+  //AliPIDResponse         *fPIDResponse; //! PID response object; equivalent to AliAODpidUtil
+  AliHelperPID*     fHelperPID;      // points to class for PID
+  AliEventPoolManager*     fPoolMgr;         //! event pool manager
+  AliSpectraAODEventCuts* fEventCuts;
+  AliSpectraAODTrackCuts* fTrackCuts;
+
+  Int_t          fFilterBit;         // track selection cuts
+  UInt_t               fSelectBit;            // Select events according to AliAnalysisTaskJetServices bit maps 
+  Int_t fEventCounter;
+  Int_t fMixingTracks;
+  Double_t fBfield;
+  Double_t fMinSepPairEta;
+  Double_t fMinSepPairPhi;
+  Double_t fShareQuality;
+  Double_t fShareFraction;
+
+  Int_t nCountSamePairs;
+  Int_t nCountMixedPairs;
+  Int_t nCountTracks;
+
+  Double_t fMinQPerc;
+  Double_t fMaxQPerc;
+
+  Int_t fQPercDet; // detector used for q-vector (0-V0A, 1-V0C)
+  Int_t fEPDet; // detector used for event plane (0-V0A, 1-V0C)
+
+  Double_t fPsiEPmix;
+  Double_t fPsiEPmixtemp;
+
+  // binning for histograms
+  Int_t nKtBins;
+  Int_t nKtBins1;
+  Double_t* ktBins; //[nKtBins1]
+  Int_t nEPBins;
+  Int_t nEPBins1;
+  Double_t* epBins; //[nEPBins1]
+  Int_t nCentBins;
+  Int_t nCentBins1;
+  Double_t* centBins; //[nCentBins1]
+  Int_t nVzBins;
+  Int_t nVzBins1;
+  Double_t* vzBins; //[nVzBins1]
+
+  Double_t vertex[3];
+
+  TH3F***** hq;
+  TH3F***** hqmix;
+
+  ClassDef(AliAnalysisTaskFemtoESE, 1);
+};
+
+
+class AliFemtoESEBasicParticle : public AliAODTrack
+{
+ public:
+ AliFemtoESEBasicParticle(Double_t En, Double_t px, Double_t py, Double_t pz, Short_t charge, Double_t phi, Double_t eta)
+   : fE(En), fPx(px), fPy(py), fPz(pz), fCharge(charge), fPhi(phi), fEta(eta), fPsiEP(0.0)
+  {
+  }
+  ~AliFemtoESEBasicParticle() {}
+
+  // kinematics
+  virtual Double_t Px() const { return fPx;}
+  virtual Double_t Py() const { return fPy; }
+  virtual Double_t Pz() const { return fPz; }
+  virtual Double_t Pt() const { return sqrt(fPx*fPx+fPy*fPy); }
+  virtual Double_t P()  const { return sqrt(fPx*fPx+fPy*fPy+fPz*fPz);; }
+  virtual Bool_t   PxPyPz(Double_t[3]) const { AliFatal("Not implemented"); return 0; }
+  
+  virtual Double_t Xv() const { AliFatal("Not implemented"); return 0; }
+  virtual Double_t Yv() const { AliFatal("Not implemented"); return 0; }
+  virtual Double_t Zv() const { AliFatal("Not implemented"); return 0; }
+  virtual Bool_t   XvYvZv(Double_t[3]) const { AliFatal("Not implemented"); return 0; }
+  
+  virtual Double_t OneOverPt()  const { AliFatal("Not implemented"); return 0; }
+  virtual Double_t Phi()        const { return fPhi; }
+  virtual Double_t Theta()      const { AliFatal("Not implemented"); return 0; }
+  
+  virtual Double_t E()          const { return fE; }
+  virtual Double_t M()          const { AliFatal("Not implemented"); return 0; }
+  
+  virtual Double_t Eta()        const { return fEta; }
+  virtual Double_t Y()          const { AliFatal("Not implemented"); return 0; }
+  
+  virtual Short_t Charge()      const { return fCharge; }
+  virtual Int_t   GetLabel()    const { AliFatal("Not implemented"); return 0; }
+  // PID
+  virtual Int_t   PdgCode()     const { AliFatal("Not implemented"); return 0; }      
+  virtual const Double_t *PID() const { AliFatal("Not implemented"); return 0; }
+
+  void SetPsiEP(Double_t psi) {fPsiEP = psi;}
+  Double_t GetPsiEP() {return fPsiEP;}
+
+  /*void SetTPCClusterMap(TBits b){fClusterMap = TBits(b);};
+  void SetTPCSharedMap(TBits b){fSharedMap = TBits(b);};
+  TBits GetTPCClusterMap(){return fClusterMap;};
+  TBits GetTPCSharedMap(){return fSharedMap;};*/
+  
+private:
+  Double_t fE;
+  Double_t fPx;
+  Double_t fPy;
+  Double_t fPz;
+  Short_t fCharge;
+  Double_t fPhi;
+  Double_t fEta;
+  Double_t fPsiEP;
+  //TBits fClusterMap;
+  //TBits fSharedMap;
+
+  
+  ClassDef( AliFemtoESEBasicParticle, 1);
+};
+
+#endif
diff --git a/PWGCF/FEMTOSCOPY/macros/AddTaskFemtoESE.C b/PWGCF/FEMTOSCOPY/macros/AddTaskFemtoESE.C
new file mode 100644 (file)
index 0000000..bdbcf6f
--- /dev/null
@@ -0,0 +1,43 @@
+AliAnalysisTaskFemtoESE *AddTaskFemtoESE(Double_t qmin = 0, Double_t qmax = 100, Int_t EPdet = 1, Int_t qdet = 0)
+{
+  // Get the pointer to the existing analysis manager via the static access method.
+  //==============================================================================
+  AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
+  if (!mgr) {
+    ::Error("AddTaskFemtoESEtest", "No analysis manager to connect to.");
+    return NULL;
+  }  
+
+  TString taskname = Form("FemtoESETask_qperc%.2i_%.2i_EP%i_q%i",(Int_t)qmin,(Int_t)qmax,EPdet,qdet);
+
+  // Create the task and configure it.
+  //===========================================================================
+  AliAnalysisTaskFemtoESE* ana = new  AliAnalysisTaskFemtoESE(taskname);
+
+  ana->SetQPercCuts(qmin,qmax);
+  ana->SetEPDetector(EPdet); // detector used for event plane (0-V0A, 1-V0C)
+  ana->SetQPercDetector(qdet); // detector used for q-vector (0-V0A, 1-V0C)
+
+  mgr->AddTask(ana);
+  
+  // Create ONLY the output containers for the data produced by the task.
+  // Get and connect other common input/output containers via the manager as below
+  //==============================================================================
+  
+  TString contname(taskname);
+  contname += "_output";
+
+  TString outputFileName = AliAnalysisManager::GetCommonFileName();  
+
+  AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
+  AliAnalysisDataContainer *coutputA = mgr->CreateContainer(contname, TList::Class(), AliAnalysisManager::kOutputContainer, outputFileName);
+  AliAnalysisDataContainer *coutput1 = mgr->CreateContainer(Form("HelperPIDOutput_%s",contname.Data()), AliHelperPID::Class(), AliAnalysisManager::kOutputContainer, outputFileName);
+  
+  //connect containers
+  mgr->ConnectInput(ana, 0, cinput);
+  mgr->ConnectOutput(ana, 1, coutputA);
+  mgr->ConnectOutput(ana, 2, coutput1);
+  mgr->AddTask(ana);
+  return ana;
+
+}
diff --git a/PWGCF/PWGCFESELinkDef.h b/PWGCF/PWGCFESELinkDef.h
new file mode 100644 (file)
index 0000000..d99f795
--- /dev/null
@@ -0,0 +1,6 @@
+#pragma link off all globals;
+#pragma link off all classes;
+#pragma link off all functions;
+
+#pragma link C++ class AliAnalysisTaskFemtoESE+;
+#pragma link C++ class AliFemtoESEBasicParticle+;
index 11ef3534afdc4dcb66bc0e31542f983c2d328a0b..af4addbc935b1cd34d3b63cb115632bdb70ba791 100644 (file)
@@ -413,7 +413,9 @@ Bool_t AliDielectron::Process(AliVEvent *ev1, AliVEvent *ev2)
   //in case there is a histogram manager, fill the QA histograms
   if (fHistos && fSignalsMC) FillMCHistograms(ev1);
   if (fHistos) FillHistograms(ev1);
-
+  // fill histo array with event information only
+  if (fHistoArray && fHistoArray->IsEventArray()) 
+    fHistoArray->Fill(0,const_cast<Double_t *>(AliDielectronVarManager::GetData()),0x0,0x0);
 
   // clear arrays
   if (!fDontClearArrays) ClearArrays();
index b00b68f5311f5a45a1f663818fabc56baac2338b..af98094093dc72fc0d23ba5479d9db2175b4f778 100644 (file)
@@ -63,6 +63,7 @@ AliDielectronHF::AliDielectronHF() :
   fAxes(kMaxCuts),
   fHasMC(kFALSE),
   fStepGenerated(kFALSE),
+  fEventArray(kFALSE),
   fRefObj(1)
 {
   //
@@ -89,6 +90,7 @@ AliDielectronHF::AliDielectronHF(const char* name, const char* title) :
   fAxes(kMaxCuts),
   fHasMC(kFALSE),
   fStepGenerated(kFALSE),
+  fEventArray(kFALSE),
   fRefObj(1)
 {
   //
@@ -383,7 +385,7 @@ void AliDielectronHF::Fill(Int_t label1, Int_t label2, Int_t nSignal)
   // fill the pure MC part of the container starting from a pair of 2 particles (part1 and part2 are legs)
   //
   // fill only if we have asked for these steps
-  if(!fStepGenerated) return;
+  if(!fStepGenerated || fEventArray) return;
 
   AliVParticle* part1 = AliDielectronMC::Instance()->GetMCTrackFromMCEvent(label1);
   AliVParticle* part2 = AliDielectronMC::Instance()->GetMCTrackFromMCEvent(label2);
@@ -433,7 +435,7 @@ void AliDielectronHF::Fill(Int_t pairIndex, const AliDielectronPair *particle)
   //////////////////////////////  if(fHasMC && pairIndex!=AliDielectron::kEv1PM) return;
 
   // only selected pair types in case of data
-  if(!IsPairTypeSelected(pairIndex)) return;
+  if(!IsPairTypeSelected(pairIndex) || fEventArray) return;
 
   // get event and pair variables
   Double_t valuesPair[AliDielectronVarManager::kNMaxValues];
@@ -553,11 +555,12 @@ void AliDielectronHF::Init()
   fHasMC=AliDielectronMC::Instance()->HasMC();
   Int_t steps = 0;
   if(fHasMC) steps=fSignalsMC->GetEntries();
-  if(fStepGenerated) steps*=2; 
+  if(fStepGenerated) steps*=2;
+  if(fEventArray) steps=1;
 
   // init pair type array
   fArrPairType.SetName(Form("%s_HF",GetName()));
-  if(fHasMC && fPairType==kMConly) fArrPairType.Expand(steps);
+  if( (fHasMC && fPairType==kMConly) || fEventArray) fArrPairType.Expand(steps);
   else fArrPairType.Expand(AliDielectron::kEv1PMRot+1+steps);
 
   Int_t size  = GetNumberOfBins();
@@ -616,38 +619,46 @@ void AliDielectronHF::Init()
     sizeAdd*=nbins;
   } //end: cut loop
 
-  // copy array to the selected pair types/ MC sources
-
-  // pair types
+  // copy array to the selected event,  pair types/ MC sources
   Int_t istep=0;
-  if(fPairType != kMConly) {
-    for(istep=0; istep<AliDielectron::kEv1PMRot+1; istep++) {
-
-      if(IsPairTypeSelected(istep)) {
-       // add a deep copy of the array
-       fArrPairType[istep]=(TObjArray*)histArr->Clone(AliDielectron::PairClassName(istep));
-       ((TObjArray*)fArrPairType[istep])->SetOwner();
-      }
-      else {
-       fArrPairType[istep]=new TObjArray(0);
-       ((TObjArray*)fArrPairType[istep])->SetOwner();
-       ((TObjArray*)fArrPairType[istep])->SetName(AliDielectron::PairClassName(istep));
-      }
-    } //end: loop over pair types
-  }
 
-  // mc sources
-  if(fHasMC) {
-    for(Int_t i=0; i<fSignalsMC->GetEntries(); i++) {
-      TString title = Form("(Signal: %s)",fSignalsMC->At(i)->GetTitle());
-      fArrPairType[istep+i]=(TObjArray*)histArr->Clone(title.Data());
-      if(fStepGenerated)  {
-       title+=" MC truth";
-       fArrPairType[istep+i+fSignalsMC->GetEntries()]=(TObjArray*)histArr->Clone(title.Data());
-      }
-    } // end: loop over sources
+  ////////////////// only event array
+  if(fEventArray) {
+    // add a deep copy of the array
+    fArrPairType[istep]=(TObjArray*)histArr->Clone("Event");
+    ((TObjArray*)fArrPairType[istep])->SetOwner();
   }
+  else {
+    /////////////// pair types
+    if(fPairType != kMConly) {
+      for(istep=0; istep<AliDielectron::kEv1PMRot+1; istep++) {
+
+       // pair type should be filled
+       if(IsPairTypeSelected(istep)) {
+         // add a deep copy of the array
+         fArrPairType[istep]=(TObjArray*)histArr->Clone(AliDielectron::PairClassName(istep));
+         ((TObjArray*)fArrPairType[istep])->SetOwner();
+       }
+       else { //empty array
+         fArrPairType[istep]=new TObjArray(0);
+         ((TObjArray*)fArrPairType[istep])->SetOwner();
+         ((TObjArray*)fArrPairType[istep])->SetName(AliDielectron::PairClassName(istep));
+       }
+      } //end: loop over pair types
+    }
 
+    // mc sources
+    if(fHasMC) {
+      for(Int_t i=0; i<fSignalsMC->GetEntries(); i++) {
+       TString title = Form("(Signal: %s)",fSignalsMC->At(i)->GetTitle());
+       fArrPairType[istep+i]=(TObjArray*)histArr->Clone(title.Data());
+       if(fStepGenerated)  {
+         title+=" MC truth";
+         fArrPairType[istep+i+fSignalsMC->GetEntries()]=(TObjArray*)histArr->Clone(title.Data());
+       }
+      } // end: loop over sources
+    } //end: hasMC
+  } //end: pair type array
 
   // clean up
   if(histArr) {
index 235dc7a6c6f7191eb29d9f95bb9d601a17bcfd24..ff3d2ca7d81bf94a30bf5146812a31719d4ab137 100644 (file)
@@ -48,6 +48,7 @@ public:
   void SetSignalsMC(TObjArray* array)    {fSignalsMC = array;}
   void SetStepForMCGenerated(Bool_t switcher=kTRUE)    {fStepGenerated = switcher;}
   void SetPairTypes(EPairType ptype) { fPairType=ptype; }
+  void SetEventArray(Bool_t switcher=kTRUE) {fEventArray=switcher;}
 
   // functions to add 1-dimensional objects
   void UserProfile(const char* histClass, UInt_t valTypeP,
@@ -97,7 +98,10 @@ public:
 
   Int_t GetNumberOfBins() const;
   const TObjArray * GetHistArray() const { return &fArrPairType; }
-  Bool_t GetStepForMCGenerated() const   { return fStepGenerated; }
+  Bool_t GetStepForMCGenerated()   const { return fStepGenerated; }
+  Bool_t IsEventArray()           const { return fEventArray; }
+  
+  
 
 private:
   TBits     *fUsedVars;             // list of used variables
@@ -114,14 +118,14 @@ private:
   
   Bool_t    fHasMC;                 // is mc array
   Bool_t    fStepGenerated;         // switcher for generated particles
-
+  Bool_t    fEventArray;            // switch OFF pair types and ON event array
   TObjArray fRefObj;               // reference object
 
   AliDielectronHF(const AliDielectronHF &c);
   AliDielectronHF &operator=(const AliDielectronHF &c);
 
   
-  ClassDef(AliDielectronHF,5)         // Dielectron HF
+  ClassDef(AliDielectronHF,6)         // Dielectron HF
 };
 
 
index 85d4ef72ac3dbb39801c886fdc35d39ae0c394dc..51fa55896334cc9769cf3f49b2e69a2a48938b6d 100644 (file)
@@ -383,7 +383,7 @@ void AliDielectronHistos::UserProfile(const char* histClass,const char *name, co
 
     // store which variables are used
     for(Int_t i=0; i<4; i++)   fUsedVars->SetBitNumber(valType[i],kTRUE);
-    fUsedVars->SetBitNumber(valTypeW,kTRUE);
+    if(valTypeW!=kNoWeights)   fUsedVars->SetBitNumber(valTypeW,kTRUE);
 
     // adapt the name and title of the histogram in case they are empty
     AdaptNameTitle(hist, histClass);
@@ -1372,6 +1372,7 @@ void AliDielectronHistos::AdaptNameTitle(TH1 *hist, const char* histClass) {
   UInt_t varz = hist->GetZaxis()->GetUniqueID();
   UInt_t varp = hist->GetUniqueID();
   Bool_t weight = (varp!=kNoWeights);
+  if(bprf && dim==3) weight=kFALSE; // no weighting for profile3D
 
   // store titles in the axis
   if(btitle) {
@@ -1462,7 +1463,7 @@ void AliDielectronHistos::AdaptNameTitle(TH1 *hist, const char* histClass) {
        currentName+=Form("%s_",AliDielectronVarManager::GetValueName(vary));
        currentName+=Form("%s",AliDielectronVarManager::GetValueName(varz));
        if(bprf)   currentName+=Form("-%s%s",AliDielectronVarManager::GetValueName(varp),(bStdOpt ? "avg" : "rms"));
-       if(weight) currentName+=Form("-wght%s",AliDielectronVarManager::GetValueName(varp));
+       if(weight&&!bprf) currentName+=Form("-wght%s",AliDielectronVarManager::GetValueName(varp));
        break;
       case 2:
        currentName+=Form("%s_",AliDielectronVarManager::GetValueName(varx));
index 9ff5035826eb321aa814ecded9429110925ac3ea..72a7aa3aa020fe294394e782c6eea00a1278021f 100755 (executable)
@@ -788,7 +788,7 @@ void AliAnaCalorimeterQA::ClusterAsymmetryHistograms(AliVCluster* clus, Int_t ab
     
     if(IsDataMC())
     {
-      Int_t tag = GetMCAnalysisUtils()->CheckOrigin(labels,nLabel, GetReader());
+      Int_t tag = GetMCAnalysisUtils()->CheckOrigin(labels,nLabel, GetReader(),fCalorimeter);
       if(   GetMCAnalysisUtils()->CheckTagBit(tag, AliMCAnalysisUtils::kMCPhoton) && 
          !GetMCAnalysisUtils()->CheckTagBit(tag, AliMCAnalysisUtils::kMCPi0)    && 
          !GetMCAnalysisUtils()->CheckTagBit(tag, AliMCAnalysisUtils::kMCEta)    &&
@@ -1134,7 +1134,7 @@ Bool_t AliAnaCalorimeterQA::ClusterMCHistograms(TLorentzVector mom, Bool_t match
   Int_t charge  = 0;
   
   //Check the origin.
-  Int_t tag = GetMCAnalysisUtils()->CheckOrigin(labels,nLabels, GetReader());
+  Int_t tag = GetMCAnalysisUtils()->CheckOrigin(labels,nLabels, GetReader(),fCalorimeter);
   
   if     ( GetReader()->ReadStack() && 
           !GetMCAnalysisUtils()->CheckTagBit(tag, AliMCAnalysisUtils::kMCUnknown))
@@ -3586,7 +3586,7 @@ void AliAnaCalorimeterQA::WeightHistograms(AliVCluster *clus, AliVCaloCells* cel
     Int_t tagMC = -1;
     if(IsDataMC() && clus->GetNLabels() > 0)
     {
-      Int_t tag = GetMCAnalysisUtils()->CheckOrigin(clus->GetLabels(),clus->GetNLabels(), GetReader());
+      Int_t tag = GetMCAnalysisUtils()->CheckOrigin(clus->GetLabels(),clus->GetNLabels(), GetReader(),fCalorimeter);
       
       if( GetMCAnalysisUtils()->CheckTagBit(tag, AliMCAnalysisUtils::kMCPhoton)   &&
          !GetMCAnalysisUtils()->CheckTagBit(tag, AliMCAnalysisUtils::kMCPi0)      &&
index 46caafb1b7ee71e76ec7c129951d092d499bc32b..e50694eb8d722f6284a04468d8e16969b08a7ad6 100755 (executable)
@@ -1231,7 +1231,7 @@ void  AliAnaElectron::MakeAnalysisFillAOD()
     Int_t tag = -1 ;
     if(IsDataMC())
     {
-      tag = GetMCAnalysisUtils()->CheckOrigin(calo->GetLabels(),calo->GetNLabels(),GetReader());
+      tag = GetMCAnalysisUtils()->CheckOrigin(calo->GetLabels(),calo->GetNLabels(),GetReader(),fCalorimeter);
       
       if(GetDebug() > 0)
         printf("AliAnaElectron::MakeAnalysisFillAOD() - Origin of candidate, bit map %d\n",tag);
index 0099f7ac47eef2142c5ed8e980876e78333287d3..7430afffe88bc855ceca05485b0060ad341b9d37 100755 (executable)
@@ -6217,7 +6217,7 @@ void AliAnaInsideClusterInvariantMass::GetMCIndex(AliVCluster* cluster,
   
   // Assign mc index depending on MC bit set, to be used in histograms arrays
     
-  tag  = GetMCAnalysisUtils()->CheckOrigin(cluster->GetLabels(),cluster->GetNLabels(), GetReader());
+  tag  = GetMCAnalysisUtils()->CheckOrigin(cluster->GetLabels(),cluster->GetNLabels(), GetReader(),fCalorimeter);
   
   if      ( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPi0) &&
            !GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCConversion)) mcindex = kmcPi0;
index ffc1f88d44ae5b79d509ad24b0caf6c94c3d0ba2..d2eee6ac15794e881abbb1d1bb4575909c3174ba 100755 (executable)
@@ -185,7 +185,7 @@ ClassImp(AliAnaParticleHadronCorrelation)
   //Initialize parameters
   InitParameters();
   
-  for(Int_t i = 0; i < 7; i++)
+  for(Int_t i = 0; i < fgkNmcTypes; i++)
   { 
     fhPtTriggerMC[i] = 0;
     fhXEChargedMC[i] = 0;
@@ -325,7 +325,9 @@ void AliAnaParticleHadronCorrelation::FillChargedAngularCorrelationHistograms(Fl
   {
     Int_t mcIndex = GetMCTagHistogramIndex(mcTag);
     fhDeltaPhiChargedMC[mcIndex]->Fill(ptTrig , deltaPhi);
-  }  
+    if(GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCDecayPairLost) && mcIndex==2 )
+      fhDeltaPhiChargedMC[7]->Fill(ptTrig , deltaPhi);
+  }
   
   if(fDecayTrigger && decayTag > 0)
   {
@@ -398,7 +400,7 @@ void AliAnaParticleHadronCorrelation::FillChargedAngularCorrelationHistograms(Fl
 //___________________________________________________________________________________________________________________________________
 Bool_t AliAnaParticleHadronCorrelation::FillChargedMCCorrelationHistograms(Float_t mcAssocPt, Float_t mcAssocPhi, Float_t mcAssocEta,
                                                                            Float_t mcTrigPt,  Float_t mcTrigPhi,  Float_t mcTrigEta,
-                                                                           Int_t histoIndex)
+                                                                           Int_t histoIndex, Bool_t lostDecayPair)
 {
   // Fill MC histograms independently of AOD or ESD
   
@@ -470,6 +472,28 @@ Bool_t AliAnaParticleHadronCorrelation::FillChargedMCCorrelationHistograms(Float
     fhMCPtTrigPout       [histoIndex]->Fill(mcTrigPt, mcpout) ;
   }
 
+  if(histoIndex==2 && lostDecayPair && 7 >= fMCGenTypeMin && 7 <= fMCGenTypeMax )
+  {
+    fhMCEtaCharged     [7]->Fill(mcAssocPt, mcAssocEta);
+    fhMCPhiCharged     [7]->Fill(mcAssocPt, mcAssocPhi);
+    fhMCDeltaEtaCharged[7]->Fill(mcTrigPt , mcTrigEta-mcAssocEta);
+    fhMCDeltaPhiCharged[7]->Fill(mcTrigPt , mcdeltaPhi);
+    fhMCPtAssocDeltaPhi[7]->Fill(mcAssocPt, mcdeltaPhi);
+    
+    fhMCDeltaPhiDeltaEtaCharged[7]->Fill(mcdeltaPhi,mcTrigEta-mcAssocEta);
+    
+    //delta phi cut for correlation
+    if( (mcdeltaPhi > fDeltaPhiMinCut) && (mcdeltaPhi < fDeltaPhiMaxCut) )
+    {
+      fhMCDeltaPhiChargedPt[7]->Fill(mcAssocPt,mcdeltaPhi);
+      fhMCPtXECharged      [7]->Fill(mcTrigPt, mcxE);
+      fhMCPtHbpXECharged   [7]->Fill(mcTrigPt, mchbpXE);
+      fhMCPtZTCharged      [7]->Fill(mcTrigPt, mczT);
+      fhMCPtHbpZTCharged   [7]->Fill(mcTrigPt, mchbpZT);
+      fhMCPtTrigPout       [7]->Fill(mcTrigPt, mcpout) ;
+    }
+  }
+  
   // Underlying event
   
   // Right
@@ -491,6 +515,17 @@ Bool_t AliAnaParticleHadronCorrelation::FillChargedMCCorrelationHistograms(Float
     if(mcUezT > 0) fhMCPtHbpZTUeCharged[histoIndex]->Fill(mcTrigPt,TMath::Log(1/mcUezT));
     
     fhMCUePart[histoIndex]->Fill(mcTrigPt);
+    
+    if(histoIndex==2 && lostDecayPair && 7 >= fMCGenTypeMin && 7 <= fMCGenTypeMax )
+    {
+      fhMCPtXEUeCharged[7]->Fill(mcTrigPt,mcUexE);
+      if(mcUexE > 0) fhMCPtHbpXEUeCharged[histoIndex]->Fill(mcTrigPt,TMath::Log(1/mcUexE));
+      
+      fhMCPtZTUeCharged[7]->Fill(mcTrigPt,mcUezT);
+      if(mcUezT > 0) fhMCPtHbpZTUeCharged[histoIndex]->Fill(mcTrigPt,TMath::Log(1/mcUezT));
+      
+      fhMCUePart[7]->Fill(mcTrigPt);
+    }
   }
 
   if(fMakeSeveralUE)
@@ -511,6 +546,15 @@ Bool_t AliAnaParticleHadronCorrelation::FillChargedMCCorrelationHistograms(Float
       
       fhMCPtZTUeLeftCharged[histoIndex]->Fill(mcTrigPt,mcUezT);
       if(mcUezT > 0) fhMCPtHbpZTUeLeftCharged[histoIndex]->Fill(mcTrigPt,TMath::Log(1/mcUezT));
+      
+      if(histoIndex==2 && lostDecayPair && 7 >= fMCGenTypeMin && 7 <= fMCGenTypeMax )
+      {
+        fhMCPtXEUeLeftCharged[7]->Fill(mcTrigPt,mcUexE);
+        if(mcUexE > 0) fhMCPtHbpXEUeLeftCharged[7]->Fill(mcTrigPt,TMath::Log(1/mcUexE));
+        
+        fhMCPtZTUeLeftCharged[7]->Fill(mcTrigPt,mcUezT);
+        if(mcUezT > 0) fhMCPtHbpZTUeLeftCharged[7]->Fill(mcTrigPt,TMath::Log(1/mcUezT));
+      }
     }
   }
   
@@ -558,6 +602,8 @@ void AliAnaParticleHadronCorrelation::FillChargedMomentumImbalanceHistograms(Flo
   {
     Int_t mcIndex = GetMCTagHistogramIndex(mcTag);
     fhXEChargedMC[mcIndex]->Fill(ptTrig , xE);
+    if(GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCDecayPairLost) && mcIndex==2 )
+      fhXEChargedMC[7]->Fill(ptTrig , xE);
   }
   
   // Pile up studies
@@ -1213,7 +1259,7 @@ TList *  AliAnaParticleHadronCorrelation::GetCreateOutputObjects()
   
   Int_t nMixBins = GetNCentrBin()*GetNZvertBin()*GetNRPBin();
   
-  TString nameMC[]     = {"Photon","Pi0","Pi0Decay","EtaDecay","OtherDecay","Electron","Hadron"};
+  TString nameMC[]     = {"Photon","Pi0","Pi0Decay","EtaDecay","OtherDecay","Electron","Hadron","Pi0DecayLostPair"};
   TString pileUpName[] = {"SPD","EMCAL","SPDOrEMCAL","SPDAndEMCAL","SPDAndNotEMCAL","EMCALAndNotSPD","NotSPDAndNotEMCAL"} ;
   
   // For vz dependent histograms, if option ON
@@ -1254,7 +1300,7 @@ TList *  AliAnaParticleHadronCorrelation::GetCreateOutputObjects()
   
   if(IsDataMC())
   {
-    for(Int_t i=0; i < 7; i++)
+    for(Int_t i=0; i < fgkNmcTypes; i++)
     {
       fhPtTriggerMC[i]  = new TH1F(Form("hPtTrigger_MC%s",nameMC[i].Data()),
                                    Form("#it{p}_{T} distribution of trigger particles, trigger origin is %s",nameMC[i].Data()),
@@ -1276,7 +1322,7 @@ TList *  AliAnaParticleHadronCorrelation::GetCreateOutputObjects()
       
       if(IsDataMC())
       {
-        for(Int_t i=0; i < 7; i++)
+        for(Int_t i=0; i < fgkNmcTypes; i++)
         {
           fhPtDecayTriggerMC[ibit][i]  = new TH1F(Form("hPtDecayTrigger_bit%d_MC%s",fDecayBits[ibit], nameMC[i].Data()),
                                             Form("#it{p}_{T} distribution of trigger particles, decay Bit %d, trigger origin is %s",fDecayBits[ibit], nameMC[i].Data()),
@@ -1505,7 +1551,7 @@ TList *  AliAnaParticleHadronCorrelation::GetCreateOutputObjects()
   
   if(IsDataMC())
   {
-    for(Int_t i=0; i < 7; i++)
+    for(Int_t i=0; i < fgkNmcTypes; i++)
     {
       
       fhDeltaPhiChargedMC[i]  = new TH2F(Form("hDeltaPhiCharged_MC%s",nameMC[i].Data()),
@@ -3221,10 +3267,13 @@ void  AliAnaParticleHadronCorrelation::MakeAnalysisFillHistograms()
     
     // MC
     Int_t mcIndex = -1;
+    Int_t mcTag   = particle->GetTag();
+    Bool_t lostDecayPair = kFALSE;
     if(IsDataMC())
     {
-      mcIndex = GetMCTagHistogramIndex(particle->GetTag());
-      MakeMCChargedCorrelation(particle->GetLabel(), mcIndex);
+      mcIndex = GetMCTagHistogramIndex(mcTag);
+      lostDecayPair = GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCDecayPairLost);
+      MakeMCChargedCorrelation(particle->GetLabel(), mcIndex,lostDecayPair);
     }
     
     // Do own mixed event with charged,
@@ -3245,8 +3294,12 @@ void  AliAnaParticleHadronCorrelation::MakeAnalysisFillHistograms()
     // pT of the trigger, vs trigger origin if MC
     //
     fhPtTrigger->Fill(pt);
-    if(IsDataMC() && mcIndex >=0 && mcIndex < 7)
+    if(IsDataMC() && mcIndex >=0 && mcIndex < fgkNmcTypes)
+    {
       fhPtTriggerMC[mcIndex]->Fill(pt);
+      if( lostDecayPair && mcIndex==2 )
+        fhPtTriggerMC[7]->Fill(pt);
+    }
     
     if(fDecayTrigger)
     {
@@ -3259,8 +3312,12 @@ void  AliAnaParticleHadronCorrelation::MakeAnalysisFillHistograms()
           {
             fhPtDecayTrigger[ibit]->Fill(pt);
             
-            if(IsDataMC() && mcIndex >=0 && mcIndex < 7)
+            if(IsDataMC() && mcIndex >=0 && mcIndex < fgkNmcTypes)
+            {
               fhPtDecayTriggerMC[ibit][mcIndex]->Fill(pt);
+              if(lostDecayPair && mcIndex==2 )
+                fhPtDecayTriggerMC[ibit][7]->Fill(pt);
+            }
           }
         }
       }
@@ -4011,8 +4068,8 @@ void AliAnaParticleHadronCorrelation::MakeNeutralCorrelation(AliAODPWG4ParticleC
   }
 }
   
-//____________________________________________________________________________________________
-void  AliAnaParticleHadronCorrelation::MakeMCChargedCorrelation(Int_t label, Int_t histoIndex)
+//__________________________________________________________________________________________________________________
+void  AliAnaParticleHadronCorrelation::MakeMCChargedCorrelation(Int_t label, Int_t histoIndex, Bool_t lostDecayPair)
 {
   // Charged Hadron Correlation Analysis with MC information
   
@@ -4105,7 +4162,7 @@ void  AliAnaParticleHadronCorrelation::MakeMCChargedCorrelation(Int_t label, Int
       Float_t phi = particle->Phi();
       if(phi < 0) phi+=TMath::TwoPi();
       
-      Bool_t lead = FillChargedMCCorrelationHistograms(particle->Pt(),phi,particle->Eta(),ptprim,phiprim,etaprim,histoIndex);
+      Bool_t lead = FillChargedMCCorrelationHistograms(particle->Pt(),phi,particle->Eta(),ptprim,phiprim,etaprim,histoIndex,lostDecayPair);
       if(!lead) leadTrig = kFALSE;
       //if ( !lead && (fMakeAbsoluteLeading || fMakeNearSideLeading) ) return;
       
@@ -4173,7 +4230,7 @@ void  AliAnaParticleHadronCorrelation::MakeMCChargedCorrelation(Int_t label, Int
       Float_t phi = part->Phi();
       if(phi < 0) phi+=TMath::TwoPi();
       
-      Bool_t lead = FillChargedMCCorrelationHistograms(part->Pt(),phi,part->Eta(),ptprim,phiprim,etaprim, histoIndex);
+      Bool_t lead = FillChargedMCCorrelationHistograms(part->Pt(),phi,part->Eta(),ptprim,phiprim,etaprim, histoIndex,lostDecayPair);
       if(!lead) leadTrig = kFALSE;
       //if ( !lead && (fMakeAbsoluteLeading || fMakeNearSideLeading)) return;
       
@@ -4187,6 +4244,13 @@ void  AliAnaParticleHadronCorrelation::MakeMCChargedCorrelation(Int_t label, Int
   fhMCPhiTrigger[histoIndex]->Fill(ptprim,phiprim);
   fhMCEtaTrigger[histoIndex]->Fill(ptprim,etaprim);
   
+  if(histoIndex==2 && lostDecayPair && 7 >= fMCGenTypeMin && 7 <= fMCGenTypeMax )
+  {
+    fhMCPtTrigger [7]->Fill(ptprim);
+    fhMCPhiTrigger[7]->Fill(ptprim,phiprim);
+    fhMCEtaTrigger[7]->Fill(ptprim,etaprim);
+  }
+  
   if(!leadTrig && (fMakeAbsoluteLeading || fMakeNearSideLeading) )
   {
     if(GetDebug() > 1)
@@ -4196,6 +4260,13 @@ void  AliAnaParticleHadronCorrelation::MakeMCChargedCorrelation(Int_t label, Int
     fhMCPtTriggerNotLeading [histoIndex]->Fill(ptprim);
     fhMCPhiTriggerNotLeading[histoIndex]->Fill(ptprim,phiprim);
     fhMCEtaTriggerNotLeading[histoIndex]->Fill(ptprim,etaprim);
+    
+    if(histoIndex==2 && lostDecayPair && 7 >= fMCGenTypeMin && 7 <= fMCGenTypeMax )
+    {
+      fhMCPtTriggerNotLeading [7]->Fill(ptprim);
+      fhMCPhiTriggerNotLeading[7]->Fill(ptprim,phiprim);
+      fhMCEtaTriggerNotLeading[7]->Fill(ptprim,etaprim);
+    }
   }
 }
 
index c916f47887ba9f16f23413c8f7cde554c6af792c..f391b541afb1657a5a354640ec82fa20085a9be0 100755 (executable)
@@ -51,7 +51,7 @@ class AliAnaParticleHadronCorrelation : public AliAnaCaloTrackCorrBaseClass {
   
   void         MakeNeutralCorrelation   (AliAODPWG4ParticleCorrelation * particle) ;
   
-  void         MakeMCChargedCorrelation (Int_t triggerMCLable, Int_t histoIndex) ;
+  void         MakeMCChargedCorrelation (Int_t triggerMCLable, Int_t histoIndex, Bool_t lostDecayPair) ;
   
   void         MakeChargedMixCorrelation(AliAODPWG4ParticleCorrelation * particle) ;
   
@@ -66,8 +66,8 @@ class AliAnaParticleHadronCorrelation : public AliAnaCaloTrackCorrBaseClass {
   void         FillChargedEventMixPool();
   
   Bool_t       FillChargedMCCorrelationHistograms       (Float_t mcAssocPt, Float_t mcAssocPhi, Float_t mcAssocEta,
-                                                         Float_t mcTrigPt,  Float_t mcTrigPhi,  Float_t mcTrigEta, Int_t histoIndex);
-
+                                                         Float_t mcTrigPt,  Float_t mcTrigPhi,  Float_t mcTrigEta,
+                                                         Int_t histoIndex,  Bool_t  lostDecayPair);
   
   void         FillChargedMomentumImbalanceHistograms   (Float_t ptTrig,   Float_t ptAssoc, 
                                                          Float_t deltaPhi, Int_t cenbin, Int_t charge,
@@ -92,7 +92,8 @@ class AliAnaParticleHadronCorrelation : public AliAnaCaloTrackCorrBaseClass {
                                                          Float_t deltaPhi);  
     
   Int_t        GetMCTagHistogramIndex(Int_t tag);
-  
+  static const Int_t fgkNmcTypes = 8;
+
   Bool_t       IsTriggerTheEventLeadingParticle();
   
   // Parameter setter and getter
@@ -214,8 +215,8 @@ class AliAnaParticleHadronCorrelation : public AliAnaCaloTrackCorrBaseClass {
   void         SwitchOnFillPtImbalancePerPtABinHistograms()  { fFillMomImbalancePtAssocBinsHisto = kTRUE  ; }
   void         SwitchOffFillPtImbalancePerPtABinHistograms() { fFillMomImbalancePtAssocBinsHisto = kFALSE ; }
   
-  void         SetMCGenType(Int_t min = 0, Int_t max = 6) { if(min >= 0 && min < 7) fMCGenTypeMin = min ;
-                                                            if(max >= 0 && max < 7) fMCGenTypeMax = max ; }
+  void         SetMCGenType(Int_t min = 0, Int_t max = 6) { if(min >= 0 && min < fgkNmcTypes) fMCGenTypeMin = min ;
+                                                            if(max >= 0 && max < fgkNmcTypes) fMCGenTypeMax = max ; }
   
  private:
 
@@ -267,8 +268,8 @@ class AliAnaParticleHadronCorrelation : public AliAnaCaloTrackCorrBaseClass {
   Bool_t       fFillEtaGapsHisto;              // Fill azimuthal correlation histograms in 2 eta gaps, |eta|>0.8 and |eta|<0.01
   Bool_t       fFillMomImbalancePtAssocBinsHisto; // momentum imbalance histograms in bins of pT associated
   
-  Int_t        fMCGenTypeMin;                  // Of the 7 possible types, select those between fMCGenTypeMin and fMCGenTypeMax
-  Int_t        fMCGenTypeMax;                  // Of the 7 possible types, select those between fMCGenTypeMin and fMCGenTypeMax
+  Int_t        fMCGenTypeMin;                  // Of the fgkNmcTypes possible types, select those between fMCGenTypeMin and fMCGenTypeMax
+  Int_t        fMCGenTypeMax;                  // Of the fgkNmcTypes possible types, select those between fMCGenTypeMin and fMCGenTypeMax
   
   //Histograms
 
@@ -285,10 +286,10 @@ class AliAnaParticleHadronCorrelation : public AliAnaCaloTrackCorrBaseClass {
   TH2F *       fhPhiTrigger;                   //! phi distribution vs pT of trigger particles
   TH2F *       fhEtaTrigger;                   //! eta distribution vs pT of trigger particles
   
-  TH1F *       fhPtTriggerMC[7];               //! pT distribution of trigger particles, check the origin of the cluster : "Photon","Pi0","Pi0Decay","EtaDecay","OtherDecay","Electron","Hadron"
+  TH1F *       fhPtTriggerMC[fgkNmcTypes];     //! pT distribution of trigger particles, check the origin of the cluster : "Photon","Pi0","Pi0Decay","EtaDecay","OtherDecay","Electron","Hadron"
 
   TH1F *       fhPtDecayTrigger[4];            //! pT distribution of trigger particles, tagged as decay
-  TH1F *       fhPtDecayTriggerMC[4][7];       //! pT distribution of trigger particles, tagged as decay, check the origin of the cluster
+  TH1F *       fhPtDecayTriggerMC[4][fgkNmcTypes];//! pT distribution of trigger particles, tagged as decay, check the origin of the cluster
   
   TH2F *       fhPtTriggerCentrality;          //! pT distribution of trigger particles vs centrality
   TH2F *       fhPtTriggerEventPlane;          //! pT distribution of trigger particles vs centrality
@@ -331,8 +332,8 @@ class AliAnaParticleHadronCorrelation : public AliAnaCaloTrackCorrBaseClass {
   TH2F *       fhPtHbpZTCharged  ;             //! Trigger particle -charged hadron momentum HBP histogram
   TH2F *       fhPtHbpZTUeCharged  ;           //! Trigger particle -underlying charged hadron momentum HBP histogram  
   
-  TH2F *       fhXEChargedMC[7]  ;             //! Trigger particle -charged hadron momentum imbalance histogram, check the origin of the cluster : decay photon (pi0, eta, other), merged photon (pi0), hadron, rest of photons (prompt, FSR, ISR)
-  TH2F *       fhDeltaPhiChargedMC[7]  ;       //! Trigger particle -charged hadron delta phi histogram, check the origin of the cluster : decay photon (pi0, eta, other), merged photon (pi0), hadron, rest of photons (prompt, FSR, ISR)
+  TH2F *       fhXEChargedMC[fgkNmcTypes]  ;   //! Trigger particle -charged hadron momentum imbalance histogram, check the origin of the cluster : decay photon (pi0, eta, other), merged photon (pi0), hadron, rest of photons (prompt, FSR, ISR)
+  TH2F *       fhDeltaPhiChargedMC[fgkNmcTypes];//! Trigger particle -charged hadron delta phi histogram, check the origin of the cluster : decay photon (pi0, eta, other), merged photon (pi0), hadron, rest of photons (prompt, FSR, ISR)
 
   TH2F *       fhDeltaPhiDeltaEtaChargedPtA3GeV;//! differences of eta and phi between trigger and charged hadrons, pTa > 3 GeV
   TH2F *       fhDeltaPhiChargedPtA3GeV  ;      //! Difference of charged particle phi and trigger particle  phi as function of  trigger particle pT, pTa > 3 GeV
@@ -457,33 +458,33 @@ class AliAnaParticleHadronCorrelation : public AliAnaCaloTrackCorrBaseClass {
   // If the data is MC, correlation with generated particles
   // check the origin of the cluster : decay photon (pi0, eta, other), merged photon (pi0),
   // hadron, rest of photons (prompt, FSR, ISR)
-  TH1F *       fhMCPtTrigger[7];               //! MC pure pT distribution of trigger particles
-  TH2F *       fhMCPhiTrigger[7];              //! MC pure Phi distribution of trigger particles
-  TH2F *       fhMCEtaTrigger[7];              //! MC pure Eta distribution of trigger particles
-  TH1F *       fhMCPtTriggerNotLeading[7];     //! MC pure pT distribution of trigger not leading particles
-  TH2F *       fhMCPhiTriggerNotLeading[7];    //! MC pure Phi distribution of trigger not leading particles
-  TH2F *       fhMCEtaTriggerNotLeading[7];    //! MC pure Eta distribution of trigger not leading particles
-  TH2F *       fhMCEtaCharged[7];              //! MC pure particles charged primary pt vs eta (both associated)
-  TH2F *       fhMCPhiCharged[7];              //! MC pure particles charged primary pt vs phi (both associated)
-  TH2F *       fhMCDeltaEtaCharged[7];         //! MC pure particles charged trigger primary pt vs delta eta (associated-trigger)
-  TH2F *       fhMCDeltaPhiCharged[7];         //! MC pure particles charged trigger primary pt vs delta phi (associated-trigger)
-  TH2F *       fhMCDeltaPhiDeltaEtaCharged[7]; //! MC pure particles charged associated primary pt vs delta phi (associated-trigger), in away side
-  TH2F *       fhMCDeltaPhiChargedPt[7];       //! MC pure particles charged delta phi vs delta eta (associated-trigger)
-  TH2F *       fhMCPtXECharged[7];             //! MC pure particles charged trigger primary pt vs xE
-  TH2F *       fhMCPtXEUeCharged[7];           //! MC pure particles charged trigger primary pt vs xE (underlying event)
-  TH2F *       fhMCPtXEUeLeftCharged[7];       //! MC pure particles charged trigger primary pt vs xE (underlying event,left cone)
-  TH2F *       fhMCPtHbpXECharged[7];          //! MC pure particles charged trigger primary pt vs ln(1/xE)
-  TH2F *       fhMCPtHbpXEUeCharged[7];        //! MC pure particles charged trigger primary pt vs ln(1/xE) (underlying event)
-  TH2F *       fhMCPtHbpXEUeLeftCharged[7];    //! MC pure particles charged trigger primary pt vs ln(1/xE) (underlying event, left cone)
-  TH1F *       fhMCUePart[7];                  //! MC pure UE particles distribution vs pt trig
-  TH2F *       fhMCPtZTCharged[7];             //! MC pure particles charged trigger primary pt vs zT
-  TH2F *       fhMCPtZTUeCharged[7];           //! MC pure particles charged trigger primary pt vs zT (underlying event)
-  TH2F *       fhMCPtZTUeLeftCharged[7];       //! MC pure particles charged trigger primary pt vs zT (underlying event, left cone)
-  TH2F *       fhMCPtHbpZTCharged[7];          //! MC pure particles charged trigger primary pt vs ln(1/zT)
-  TH2F *       fhMCPtHbpZTUeCharged[7];        //! MC pure particles charged trigger primary pt vs ln(1/zT) (underlying event)
-  TH2F *       fhMCPtHbpZTUeLeftCharged[7];    //! MC pure particles charged trigger primary pt vs ln(1/zT) (underlying event, left cone)
-  TH2F *       fhMCPtTrigPout[7];              //! MC pure particles charged trigger primary pt vs pOut
-  TH2F *       fhMCPtAssocDeltaPhi[7];         //! MC pure particles charged associated primary pt vs delta phi (associated-trigger)
+  TH1F *       fhMCPtTrigger[fgkNmcTypes];               //! MC pure pT distribution of trigger particles
+  TH2F *       fhMCPhiTrigger[fgkNmcTypes];              //! MC pure Phi distribution of trigger particles
+  TH2F *       fhMCEtaTrigger[fgkNmcTypes];              //! MC pure Eta distribution of trigger particles
+  TH1F *       fhMCPtTriggerNotLeading[fgkNmcTypes];     //! MC pure pT distribution of trigger not leading particles
+  TH2F *       fhMCPhiTriggerNotLeading[fgkNmcTypes];    //! MC pure Phi distribution of trigger not leading particles
+  TH2F *       fhMCEtaTriggerNotLeading[fgkNmcTypes];    //! MC pure Eta distribution of trigger not leading particles
+  TH2F *       fhMCEtaCharged[fgkNmcTypes];              //! MC pure particles charged primary pt vs eta (both associated)
+  TH2F *       fhMCPhiCharged[fgkNmcTypes];              //! MC pure particles charged primary pt vs phi (both associated)
+  TH2F *       fhMCDeltaEtaCharged[fgkNmcTypes];         //! MC pure particles charged trigger primary pt vs delta eta (associated-trigger)
+  TH2F *       fhMCDeltaPhiCharged[fgkNmcTypes];         //! MC pure particles charged trigger primary pt vs delta phi (associated-trigger)
+  TH2F *       fhMCDeltaPhiDeltaEtaCharged[fgkNmcTypes]; //! MC pure particles charged associated primary pt vs delta phi (associated-trigger), in away side
+  TH2F *       fhMCDeltaPhiChargedPt[fgkNmcTypes];       //! MC pure particles charged delta phi vs delta eta (associated-trigger)
+  TH2F *       fhMCPtXECharged[fgkNmcTypes];             //! MC pure particles charged trigger primary pt vs xE
+  TH2F *       fhMCPtXEUeCharged[fgkNmcTypes];           //! MC pure particles charged trigger primary pt vs xE (underlying event)
+  TH2F *       fhMCPtXEUeLeftCharged[fgkNmcTypes];       //! MC pure particles charged trigger primary pt vs xE (underlying event,left cone)
+  TH2F *       fhMCPtHbpXECharged[fgkNmcTypes];          //! MC pure particles charged trigger primary pt vs ln(1/xE)
+  TH2F *       fhMCPtHbpXEUeCharged[fgkNmcTypes];        //! MC pure particles charged trigger primary pt vs ln(1/xE) (underlying event)
+  TH2F *       fhMCPtHbpXEUeLeftCharged[fgkNmcTypes];    //! MC pure particles charged trigger primary pt vs ln(1/xE) (underlying event, left cone)
+  TH1F *       fhMCUePart[fgkNmcTypes];                  //! MC pure UE particles distribution vs pt trig
+  TH2F *       fhMCPtZTCharged[fgkNmcTypes];             //! MC pure particles charged trigger primary pt vs zT
+  TH2F *       fhMCPtZTUeCharged[fgkNmcTypes];           //! MC pure particles charged trigger primary pt vs zT (underlying event)
+  TH2F *       fhMCPtZTUeLeftCharged[fgkNmcTypes];       //! MC pure particles charged trigger primary pt vs zT (underlying event, left cone)
+  TH2F *       fhMCPtHbpZTCharged[fgkNmcTypes];          //! MC pure particles charged trigger primary pt vs ln(1/zT)
+  TH2F *       fhMCPtHbpZTUeCharged[fgkNmcTypes];        //! MC pure particles charged trigger primary pt vs ln(1/zT) (underlying event)
+  TH2F *       fhMCPtHbpZTUeLeftCharged[fgkNmcTypes];    //! MC pure particles charged trigger primary pt vs ln(1/zT) (underlying event, left cone)
+  TH2F *       fhMCPtTrigPout[fgkNmcTypes];              //! MC pure particles charged trigger primary pt vs pOut
+  TH2F *       fhMCPtAssocDeltaPhi[fgkNmcTypes];         //! MC pure particles charged associated primary pt vs delta phi (associated-trigger)
 
   // Mixing
   TH1I *       fhNEventsTrigger;               //! number of analyzed triggered events
index 7117352c96ce61debe8bc4d98c57d4634e6e90f7..8d11d1bf42b0506b2732cf0f6c9a7a6ffdca04a1 100755 (executable)
@@ -137,10 +137,10 @@ fhConeSumPtSubvsConeSumPtTotEtaCell(0),     fhConeSumPtSubNormvsConeSumPtTotEtaC
 fhConeSumPtVSUETracksEtaBand(0),            fhConeSumPtVSUETracksPhiBand(0),
 fhConeSumPtVSUEClusterEtaBand(0),           fhConeSumPtVSUEClusterPhiBand(0),
 fhPtPrimMCPi0DecayPairOutOfCone(0),         fhPtPrimMCPi0DecayPairOutOfAcceptance(0),
-fhPtPrimMCPi0DecayPairAcceptInConeLowPt(0), fhPtPrimMCPi0DecayPairAcceptInConeLowPtNoOverlap(0),
+fhPtPrimMCPi0DecayPairAcceptInConeLowPt(0), fhPtPrimMCPi0DecayPairAcceptInConeLowPtNoOverlap(0),      fhPtPrimMCPi0DecayPairAcceptInConeLowPtNoOverlapCaloE(0),
 fhPtPrimMCPi0DecayPairNoOverlap(0),
 fhPtPrimMCPi0DecayIsoPairOutOfCone(0),      fhPtPrimMCPi0DecayIsoPairOutOfAcceptance(0),
-fhPtPrimMCPi0DecayIsoPairAcceptInConeLowPt(0),fhPtPrimMCPi0DecayIsoPairAcceptInConeLowPtNoOverlap(0),
+fhPtPrimMCPi0DecayIsoPairAcceptInConeLowPt(0),fhPtPrimMCPi0DecayIsoPairAcceptInConeLowPtNoOverlap(0), fhPtPrimMCPi0DecayIsoPairAcceptInConeLowPtNoOverlapCaloE(0),
 fhPtPrimMCPi0DecayIsoPairNoOverlap(0),
 fhPtPrimMCPi0Overlap(0),                    fhPtPrimMCPi0IsoOverlap(0),
 fhPtLeadConeBinLambda0(0),                  fhSumPtConeBinLambda0(0),
@@ -1245,6 +1245,9 @@ void AliAnaParticleIsolation::FillTrackMatchingShowerShapeControlHistograms(AliA
       if(GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCPhoton))
         fhPtLambda0MC[kmcPhoton][isolated]->Fill(pt,m02);
       
+      if(GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCDecayPairLost) && mcIndex==kmcPi0Decay )
+        fhPtLambda0MC[kmcPi0DecayLostPair][isolated]->Fill(pt,m02);
+      
       fhPtLambda0MC[mcIndex][isolated]->Fill(pt,m02);
     }
     
@@ -1475,12 +1478,12 @@ TList *  AliAnaParticleIsolation::GetCreateOutputObjects()
   
   // MC histograms title and name
   TString mcPartType[] = { "#gamma", "#gamma_{prompt}", "#gamma_{fragmentation}",
-    "#pi^{0} (merged #gamma)","#gamma_{#pi decay}",
+    "#pi^{0} (merged #gamma)","#gamma_{#pi decay}","#gamma_{#pi decay} lost companion",
     "#gamma_{#eta decay}","#gamma_{other decay}",
     "e^{#pm}","hadrons?"} ;
   
   TString mcPartName[] = { "Photon","PhotonPrompt","PhotonFrag",
-    "Pi0","Pi0Decay","EtaDecay","OtherDecay",
+    "Pi0","Pi0Decay","Pi0DecayLostPair","EtaDecay","OtherDecay",
     "Electron","Hadron"} ;
   
   // Primary MC histograms title and name
@@ -1519,7 +1522,6 @@ TList *  AliAnaParticleIsolation::GetCreateOutputObjects()
     
     for(Int_t imc = 0; imc < fgkNmcTypes; imc++)
     {
-      
       fhPtNoIsoMC[imc]  = new TH1F(Form("hPtNoIsoMC%s",mcPartName[imc].Data()),
                                    Form("#it{p}_{T} of NOT isolated %s, %s",mcPartType[imc].Data(),parTitle.Data()),
                                    nptbins,ptmin,ptmax);
@@ -2869,6 +2871,21 @@ TList *  AliAnaParticleIsolation::GetCreateOutputObjects()
                                                                         nptbins,ptmin,ptmax);
         fhPtPrimMCPi0DecayIsoPairAcceptInConeLowPtNoOverlap->SetXTitle("#it{p}_{T} (GeV/#it{c})");
         outputContainer->Add(fhPtPrimMCPi0DecayIsoPairAcceptInConeLowPtNoOverlap) ;
+
+        fhPtPrimMCPi0DecayPairAcceptInConeLowPtNoOverlapCaloE  = new TH1F("hPtPrim_MCPhotonPi0DecayPairAcceptInConeLowPtNoOverlapCaloE",
+                                                                     Form("primary photon  %s, no overlap, pair in cone, E > calo min: #it{p}_{T}, %s",
+                                                                          pptype[kmcPrimPi0Decay].Data(),parTitle.Data()),
+                                                                     nptbins,ptmin,ptmax);
+        fhPtPrimMCPi0DecayPairAcceptInConeLowPtNoOverlapCaloE->SetXTitle("#it{p}_{T} (GeV/#it{c})");
+        outputContainer->Add(fhPtPrimMCPi0DecayPairAcceptInConeLowPtNoOverlapCaloE) ;
+
+        fhPtPrimMCPi0DecayIsoPairAcceptInConeLowPtNoOverlapCaloE  = new TH1F("hPtPrim_MCisoPhotonPi0DecayPairAcceptInConeLowPtNoOverlapCaloE",
+                                                                        Form("isolated primary photon  %s, pair in cone,no overlap, E > calo min: #it{p}_{T}, %s",
+                                                                             pptype[kmcPrimPi0Decay].Data(),parTitle.Data()),
+                                                                        nptbins,ptmin,ptmax);
+        fhPtPrimMCPi0DecayIsoPairAcceptInConeLowPtNoOverlapCaloE->SetXTitle("#it{p}_{T} (GeV/#it{c})");
+        outputContainer->Add(fhPtPrimMCPi0DecayIsoPairAcceptInConeLowPtNoOverlapCaloE) ;
+
         
         fhPtPrimMCPi0DecayPairNoOverlap  = new TH1F("hPtPrim_MCPhotonPi0DecayPairNoOverlap",
                                                                      Form("primary photon  %s, no overlap: #it{p}_{T}, %s",
@@ -3728,6 +3745,13 @@ void  AliAnaParticleIsolation::MakeAnalysisFillHistograms()
           fhEtaIsoMC[kmcPhoton]->Fill(pt,eta);
         }
         
+        if(GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCDecayPairLost) && mcIndex==kmcPi0Decay )
+        {
+          fhPtIsoMC [kmcPi0DecayLostPair]->Fill(pt);
+          fhPhiIsoMC[kmcPi0DecayLostPair]->Fill(pt,phi);
+          fhEtaIsoMC[kmcPi0DecayLostPair]->Fill(pt,eta);
+        }
+        
         fhPtIsoMC [mcIndex]->Fill(pt);
         fhPhiIsoMC[mcIndex]->Fill(pt,phi);
         fhEtaIsoMC[mcIndex]->Fill(pt,eta);
@@ -3748,6 +3772,9 @@ void  AliAnaParticleIsolation::MakeAnalysisFillHistograms()
               if(GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCPhoton))
                 fhPtDecayIsoMC[ibit][kmcPhoton]->Fill(pt);
               
+              if(GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCDecayPairLost) && mcIndex==kmcPi0Decay )
+                fhPtDecayIsoMC[ibit][kmcPi0DecayLostPair]->Fill(pt);
+              
               fhPtDecayIsoMC[ibit][mcIndex]->Fill(pt);
             }
           } // bit ok
@@ -3793,6 +3820,9 @@ void  AliAnaParticleIsolation::MakeAnalysisFillHistograms()
         if( GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCPhoton) )
           fhPtNoIsoMC[kmcPhoton]->Fill(pt);
         
+        if(GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCDecayPairLost) && mcIndex==kmcPi0Decay )
+          fhPtNoIsoMC[kmcPi0DecayLostPair]->Fill(pt);
+
         fhPtNoIsoMC[mcIndex]->Fill(pt);
       }
       
@@ -3811,6 +3841,9 @@ void  AliAnaParticleIsolation::MakeAnalysisFillHistograms()
               if(GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCPhoton))
                 fhPtDecayNoIsoMC[ibit][kmcPhoton]->Fill(pt);
               
+              if(GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCDecayPairLost) && mcIndex==kmcPi0Decay )
+                fhPtDecayNoIsoMC[ibit][kmcPi0DecayLostPair]->Fill(pt);
+              
               fhPtDecayNoIsoMC[ibit][mcIndex]->Fill(pt);
             }
           } // bit ok
@@ -3862,8 +3895,17 @@ void AliAnaParticleIsolation::FillAcceptanceHistograms()
   // Calorimeter cluster merging angle
   // angle smaller than 3 cells  6 cm (0.014) in EMCal, 2.2 cm in PHOS (0.014*(2.2/6))
   Float_t overlapAngle = 0;
-  if      (fCalorimeter=="EMCAL") overlapAngle = 3*0.014  ;
-  else if (fCalorimeter=="PHOS" ) overlapAngle = 3*0.00382;
+  Float_t minECalo     = 0;
+  if      (fCalorimeter=="EMCAL")
+  {
+    overlapAngle = 3*0.014  ;
+    minECalo = GetReader()->GetEMCALEMin();
+  }
+  else if (fCalorimeter=="PHOS" )
+  {
+    overlapAngle = 3*0.00382;
+    minECalo = GetReader()->GetPHOSEMin();
+  }
   
   // Get the ESD MC particles container
   AliStack * stack = 0;
@@ -3963,7 +4005,7 @@ void AliAnaParticleIsolation::FillAcceptanceHistograms()
     
     // Get tag of this particle photon from fragmentation, decay, prompt ...
     // Set the origin of the photon.
-    tag = GetMCAnalysisUtils()->CheckOrigin(i,GetReader());
+    tag = GetMCAnalysisUtils()->CheckOrigin(i,GetReader(),fIsoDetector);
     
     if(pdg == 22 && !GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPhoton))
     {
@@ -4107,7 +4149,7 @@ void AliAnaParticleIsolation::FillAcceptanceHistograms()
         }
         else // neutrals E cut and acceptance
         {
-          if( partInConeE  < GetReader()->GetEMCALEMin() ) continue;
+          if( partInConeE  <= minECalo ) continue;
           
           if(!GetReader()->GetFiducialCut()->IsInFiducialCut(mcisoLV,fCalorimeter)) continue ;
           
@@ -4214,7 +4256,7 @@ void AliAnaParticleIsolation::FillAcceptanceHistograms()
         fhPtPrimMCPi0DecayPairOutOfCone->Fill(photonPt);
       
       // Second decay out of acceptance
-      if(!ok2 || !d2Acc)
+      if(!ok2 || !d2Acc || daugh2mom.E() <= minECalo)
         fhPtPrimMCPi0DecayPairOutOfAcceptance->Fill(photonPt);
     
       // Not Overlapped decay
@@ -4225,7 +4267,11 @@ void AliAnaParticleIsolation::FillAcceptanceHistograms()
          daugh2mom.E() < GetIsolationCut()->GetPtThreshold())
       {
         fhPtPrimMCPi0DecayPairAcceptInConeLowPt->Fill(photonPt);
-        if(!overlap) fhPtPrimMCPi0DecayPairAcceptInConeLowPtNoOverlap->Fill(photonPt);
+        if(!overlap)
+        {
+          fhPtPrimMCPi0DecayPairAcceptInConeLowPtNoOverlap->Fill(photonPt);
+          if(daugh2mom.E() > minECalo)fhPtPrimMCPi0DecayPairAcceptInConeLowPtNoOverlapCaloE->Fill(photonPt);
+        }
       }
     } // pi0 decay
     
@@ -4257,7 +4303,7 @@ void AliAnaParticleIsolation::FillAcceptanceHistograms()
           fhPtPrimMCPi0DecayIsoPairOutOfCone->Fill(photonPt);
         
         // Second decay out of acceptance
-        if(!ok2 || !d2Acc)
+        if(!ok2 || !d2Acc || daugh2mom.E() <= minECalo)
           fhPtPrimMCPi0DecayIsoPairOutOfAcceptance->Fill(photonPt);
         
         // Second decay pt smaller than threshold
@@ -4265,7 +4311,11 @@ void AliAnaParticleIsolation::FillAcceptanceHistograms()
            daugh2mom.E() < GetIsolationCut()->GetPtThreshold())
         {
           fhPtPrimMCPi0DecayIsoPairAcceptInConeLowPt->Fill(photonPt);
-          if(!overlap) fhPtPrimMCPi0DecayIsoPairAcceptInConeLowPtNoOverlap->Fill(photonPt);
+          if(!overlap)
+          {
+            fhPtPrimMCPi0DecayIsoPairAcceptInConeLowPtNoOverlap->Fill(photonPt);
+            if(daugh2mom.E() > minECalo) fhPtPrimMCPi0DecayIsoPairAcceptInConeLowPtNoOverlapCaloE->Fill(photonPt);
+          }
         }
       }// pi0 decay
       
@@ -4322,6 +4372,9 @@ void  AliAnaParticleIsolation::MakeSeveralICAnalysis(AliAODPWG4ParticleCorrelati
     if(GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPhoton))
       fhPtNoIsoMC[kmcPhoton]->Fill(ptC);
     
+    if(GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCDecayPairLost) && mcIndex==kmcPi0Decay )
+      fhPtNoIsoMC[kmcPi0DecayLostPair]->Fill(ptC);
+    
     fhPtNoIsoMC[mcIndex]->Fill(ptC);
   }
   
@@ -4339,6 +4392,9 @@ void  AliAnaParticleIsolation::MakeSeveralICAnalysis(AliAODPWG4ParticleCorrelati
         {
           if(GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPhoton))
             fhPtDecayNoIsoMC[ibit][kmcPhoton]->Fill(ptC);
+
+          if(GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCDecayPairLost) && mcIndex==kmcPi0Decay )
+            fhPtDecayNoIsoMC[ibit][kmcPi0DecayLostPair]->Fill(ptC);
           
           fhPtDecayNoIsoMC[ibit][mcIndex]->Fill(ptC);
         }
@@ -4449,6 +4505,9 @@ void  AliAnaParticleIsolation::MakeSeveralICAnalysis(AliAODPWG4ParticleCorrelati
       if( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPhoton))
         fhSumPtLeadingPtMC[kmcPhoton][icone]->Fill(ptC,coneptsum) ;
       
+      if(GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCDecayPairLost) && mcIndex==kmcPi0Decay )
+        fhSumPtLeadingPtMC[kmcPi0DecayLostPair][icone]->Fill(ptC,coneptsum) ;
+      
       fhSumPtLeadingPtMC[mcIndex][icone]->Fill(ptC,coneptsum) ;
     }
     
@@ -4503,6 +4562,9 @@ void  AliAnaParticleIsolation::MakeSeveralICAnalysis(AliAODPWG4ParticleCorrelati
           if( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPhoton) )
             fhPtThresIsolatedMC[kmcPhoton][icone][ipt]->Fill(ptC) ;
           
+          if(GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCDecayPairLost) && mcIndex==kmcPi0Decay )
+            fhPtThresIsolatedMC[kmcPi0DecayLostPair][icone][ipt]->Fill(ptC) ;
+
           fhPtThresIsolatedMC[mcIndex][icone][ipt]->Fill(ptC) ;
           
         }
@@ -4531,6 +4593,9 @@ void  AliAnaParticleIsolation::MakeSeveralICAnalysis(AliAODPWG4ParticleCorrelati
           if( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPhoton))
             fhPtFracIsolatedMC[kmcPhoton][icone][ipt]->Fill(ptC) ;
           
+          if(GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCDecayPairLost) && mcIndex==kmcPi0Decay )
+            fhPtFracIsolatedMC[kmcPi0DecayLostPair][icone][ipt]->Fill(ptC) ;
+          
           fhPtFracIsolatedMC[mcIndex][icone][ipt]->Fill(ptC) ;
         }
       }
@@ -4561,6 +4626,9 @@ void  AliAnaParticleIsolation::MakeSeveralICAnalysis(AliAODPWG4ParticleCorrelati
           if( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPhoton))
             fhSumPtIsolatedMC[kmcPhoton][icone][ipt]->Fill(ptC) ;
           
+          if(GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCDecayPairLost) && mcIndex==kmcPi0Decay )
+            fhSumPtIsolatedMC[kmcPi0DecayLostPair][icone][ipt]->Fill(ptC) ;
+          
           fhSumPtIsolatedMC[mcIndex][icone][ipt]->Fill(ptC) ;
         }
       }
index ffc30c79d016179ce9a9ed5c7f6dd1653a413c22..2995ac81e015ed4b76450cce394e10f44e8a3403 100755 (executable)
@@ -156,10 +156,11 @@ class AliAnaParticleIsolation : public AliAnaCaloTrackCorrBaseClass {
   static const Int_t fgkNmcPrimTypes = 7;
   
   // For histograms in arrays, index in the array, corresponding to any particle origin
-  enum mcTypes     { kmcPhoton   = 0, kmcPrompt   = 1, kmcFragment = 2,
-                     kmcPi0      = 3, kmcPi0Decay = 4, kmcEtaDecay = 5, kmcOtherDecay = 6,
-                     kmcElectron = 7, kmcHadron   = 8                                     } ;
-  static const Int_t fgkNmcTypes = 9;
+  enum mcTypes     { kmcPhoton   = 0, kmcPrompt     = 1, kmcFragment         = 2,
+                     kmcPi0      = 3, kmcPi0Decay   = 4, kmcPi0DecayLostPair = 5,
+                     kmcEtaDecay = 6, kmcOtherDecay = 7,
+                     kmcElectron = 8, kmcHadron     = 9                          } ;
+  static const Int_t fgkNmcTypes = 10;
 
  private:
   
@@ -351,12 +352,14 @@ class AliAnaParticleIsolation : public AliAnaCaloTrackCorrBaseClass {
   TH1F *   fhPtPrimMCPi0DecayPairOutOfAcceptance; //! Pi0 decay photons, with decay pair out of detector acceptance
   TH1F *   fhPtPrimMCPi0DecayPairAcceptInConeLowPt;//! Pi0 decay photons, with decay pair in cone and acceptance and lower pT than threshold
   TH1F *   fhPtPrimMCPi0DecayPairAcceptInConeLowPtNoOverlap; //! Pi0 decay photons, with decay pair in cone and acceptance and lower pT than threshold, and do not overlap
+  TH1F *   fhPtPrimMCPi0DecayPairAcceptInConeLowPtNoOverlapCaloE; //! Pi0 decay photons, with decay pair in cone and acceptance and lower pT than threshold, and larger than detector threshold, and do not overlap
   TH1F *   fhPtPrimMCPi0DecayPairNoOverlap;        //! Pi0 decay photons, not overlapped decay
 
   TH1F *   fhPtPrimMCPi0DecayIsoPairOutOfCone;       //! Pi0 decay photons, with decay pair out of isolation cone, isolated
   TH1F *   fhPtPrimMCPi0DecayIsoPairOutOfAcceptance; //! Pi0 decay photons, with decay pair out of detector acceptance, isolated
   TH1F *   fhPtPrimMCPi0DecayIsoPairAcceptInConeLowPt;//! Pi0 decay photons, with decay pair in cone and acceptance and lower pT than threshold, isolated
   TH1F *   fhPtPrimMCPi0DecayIsoPairAcceptInConeLowPtNoOverlap; //! Pi0 decay photons, with decay pair in cone and acceptance and lower pT than threshold, and do not overlap, isolated
+  TH1F *   fhPtPrimMCPi0DecayIsoPairAcceptInConeLowPtNoOverlapCaloE; //! Pi0 decay photons, with decay pair in cone and acceptance and lower pT than threshold, and larger than detector threshold, and do not overlap, isolated
   TH1F *   fhPtPrimMCPi0DecayIsoPairNoOverlap;    //! Pi0 decay photons isolated, not overlapped decay
 
   TH1F *   fhPtPrimMCPi0Overlap;                  //! Pi0 with overlapped decay photons
@@ -411,7 +414,6 @@ class AliAnaParticleIsolation : public AliAnaCaloTrackCorrBaseClass {
   TH1F *   fhSumPtIsolatedMC  [fgkNmcTypes][5][5];//! Isolated mcTypes particle with threshold on cone pt sum
   TH2F *   fhSumPtLeadingPtMC [fgkNmcTypes][5];   //! mcTypes particle for sum Pt, different cone
 
-  
   // Track matching studies
   TH2F *   fhTrackMatchedDEta[2]     ;            //! Eta distance between track and cluster vs cluster E
   TH2F *   fhTrackMatchedDPhi[2]     ;            //! Phi distance between track and cluster vs cluster E
index 3af1ff786332ebc27d30fa1391ab1a8230b7a182..3fc588e2b607ee662a654640904b32435fed415e 100644 (file)
@@ -881,21 +881,21 @@ void AliAnaParticleJetFinderCorrelation::InitParameters()
   SetInputAODName("PWG4Particle");
   AddToHistogramsName("AnaJetFinderCorr_");
 
-  fDeltaPhiMinCut    = 1.5 ;
-  fDeltaPhiMaxCut    = 4.5 ; 
+  fDeltaPhiMinCut    = 2.6 ;
+  fDeltaPhiMaxCut    = 3.7 ; 
   fRatioMaxCut       = 1.2 ; 
   fRatioMinCut       = 0.3 ; 
-  fConeSize          = 0.3 ;
+  fConeSize          = 0.4 ;
   fPtThresholdInCone = 0.5 ;
   fUseJetRefTracks   = kFALSE ;
   fMakeCorrelationInHistoMaker = kFALSE ;
   fSelectIsolated = kTRUE;
   fJetConeSize = 0.4 ;
-  fJetMinPt = 5. ; //GeV/c
+  fJetMinPt = 15. ; //GeV/c
   fJetAreaFraction = 0.6 ;
   fJetBranchName = "jets";
   fBkgJetBranchName = "jets";
-  fGammaConeSize = 0.3;
+  fGammaConeSize = 0.4;
   fUseBackgroundSubtractionGamma = kFALSE;
   fSaveGJTree = kTRUE;
   fMostEnergetic = kFALSE;
index 7b8a96119bb44aba70d59370bb10ba7cd29de6fa..69c0e28c6509f7ee83e7b07e72074a41e02853ad 100755 (executable)
@@ -441,7 +441,7 @@ void AliAnaPhoton::FillAcceptanceHistograms()
     
     // Get tag of this particle photon from fragmentation, decay, prompt ...
     // Set the origin of the photon.
-    tag = GetMCAnalysisUtils()->CheckOrigin(i,GetReader());
+    tag = GetMCAnalysisUtils()->CheckOrigin(i,GetReader(),fCalorimeter);
     
     if(!GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPhoton))
     {
@@ -1047,7 +1047,7 @@ void AliAnaPhoton::FillTrackMatchingResidualHistograms(AliVCluster* cluster,
       if(IsDataMC())
       {
         
-        Int_t tag = GetMCAnalysisUtils()->CheckOrigin(cluster->GetLabels(),cluster->GetNLabels(),GetReader());
+        Int_t tag = GetMCAnalysisUtils()->CheckOrigin(cluster->GetLabels(),cluster->GetNLabels(),GetReader(),fCalorimeter);
         
         if  ( !GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCConversion)  )
         {
@@ -2384,7 +2384,7 @@ void  AliAnaPhoton::MakeAnalysisFillAOD()
     
     if(IsDataMC())
     {
-      tag = GetMCAnalysisUtils()->CheckOrigin(calo->GetLabels(),calo->GetNLabels(),GetReader());
+      tag = GetMCAnalysisUtils()->CheckOrigin(calo->GetLabels(),calo->GetNLabels(),GetReader(),fCalorimeter);
       aodph.SetTag(tag);
       
       if(GetDebug() > 0)
index aed6dcc4951a599a84e2320e6fa4123b3309a032..a4e310faea9d5746f56411f8697c56793509a459 100755 (executable)
@@ -1685,8 +1685,12 @@ void AliAnaPi0::FillMCVersusRecDataHistograms(Int_t index1,  Int_t index2,
   Int_t momindex  = -1;
   Int_t mompdg    = -1;
   Int_t momstatus = -1;
-  if(GetDebug() > 1) printf("AliAnaPi0::FillMCVersusRecDataHistograms() - Common ancestor label %d, pdg %d, name %s, status %d; \n",
-                            ancLabel,ancPDG,TDatabasePDG::Instance()->GetParticle(ancPDG)->GetName(),ancStatus);
+  if(GetDebug() > 1 )
+  {
+    if(ancLabel >= 0) printf("AliAnaPi0::FillMCVersusRecDataHistograms() - Common ancestor label %d, pdg %d, name %s, status %d; \n",
+                             ancLabel,ancPDG,TDatabasePDG::Instance()->GetParticle(ancPDG)->GetName(),ancStatus);
+    else              printf("AliAnaPi0::FillMCVersusRecDataHistograms() - Common ancestor not found \n");
+  }
   
   Float_t prodR = -1;
   Int_t mcIndex = -1;
@@ -1973,21 +1977,19 @@ void AliAnaPi0::MakeAnalysisFillHistograms()
   for(Int_t i1=0; i1<nPhot-1; i1++)
   {
     AliAODPWG4Particle * p1 = (AliAODPWG4Particle*) (GetInputAODBranch()->At(i1)) ;
-    //printf("AliAnaPi0::MakeAnalysisFillHistograms() : cluster1 id %d\n",p1->GetCaloLabel(0));
+    //printf("AliAnaPi0::MakeAnalysisFillHistograms() : cluster1 id %d/%d\n",i1,nPhot-1);
     
     // get the event index in the mixed buffer where the photon comes from 
     // in case of mixing with analysis frame, not own mixing
-    evtIndex1 = GetEventIndex(p1, vert) ; 
-    //printf("charge = %d\n", track->Charge());
+    evtIndex1 = GetEventIndex(p1, vert) ;
     if ( evtIndex1 == -1 )
       return ; 
     if ( evtIndex1 == -2 )
       continue ; 
-    
-    //printf("z vertex %f < %f\n",vert[2],GetZvertexCut());
+
+    // Only effective in case of mixed event frame
     if(TMath::Abs(vert[2]) > GetZvertexCut()) continue ;   //vertex cut
     
-    
     if (evtIndex1 != currentEvtIndex) 
     {
       //Fill event bin info
@@ -2020,7 +2022,8 @@ void AliAnaPi0::MakeAnalysisFillHistograms()
     for(Int_t i2=i1+1; i2<nPhot; i2++)
     {
       AliAODPWG4Particle * p2 = (AliAODPWG4Particle*) (GetInputAODBranch()->At(i2)) ;
-      
+      //printf("AliAnaPi0::MakeAnalysisFillHistograms() : cluster2 i %d/%d\n",i2,nPhot);
+
       //In case of mixing frame, check we are not in the same event as the first cluster
       Int_t evtIndex2 = GetEventIndex(p2, vert) ; 
       if ( evtIndex2 == -1 )
@@ -2230,7 +2233,7 @@ void AliAnaPi0::MakeAnalysisFillHistograms()
           {
             fhReMCFromMixConversion->Fill(pt,m);
           }
-                  
+          
           if(fFillOriginHisto)
             FillMCVersusRecDataHistograms(p1->GetLabel(), p2->GetLabel(),p1->Pt(), p2->Pt(),ncell1, ncell2, m, pt, a,deta, dphi);
         }
@@ -2280,7 +2283,9 @@ void AliAnaPi0::MakeAnalysisFillHistograms()
             }
           }
         }// multiple cuts analysis
+        
       }// ok if same sm
+      
     }// second same event particle
   }// first cluster
   
@@ -2309,7 +2314,8 @@ void AliAnaPi0::MakeAnalysisFillHistograms()
       Int_t nPhot2=ev2->GetEntriesFast() ;
       Double_t m = -999;
       if(GetDebug() > 1) 
-        printf("AliAnaPi0::MakeAnalysisFillHistograms() - Mixed event %d photon entries %d, centrality bin %d\n", ii, nPhot2, GetEventCentralityBin());
+        printf("AliAnaPi0::MakeAnalysisFillHistograms() - Mixed event %d photon entries %d, centrality bin %d\n",
+               ii, nPhot2, GetEventCentralityBin());
 
       fhEventMixBin->Fill(eventbin) ;
 
@@ -2347,11 +2353,12 @@ void AliAnaPi0::MakeAnalysisFillHistograms()
               printf("AliAnaPi0::MakeAnalysisFillHistograms() -Mix pair angle %f not in E %f window\n",angle, (photon1+photon2).E());
             continue;
           }
-          if(fUseAngleCut && (angle < fAngleCut || angle > fAngleMaxCut)) {
+          
+          if(fUseAngleCut && (angle < fAngleCut || angle > fAngleMaxCut))
+          {
             if(GetDebug() > 2)
               printf("AliAnaPi0::MakeAnalysisFillHistograms() -Mix pair angle %f < cut %f\n",angle,fAngleCut);
-            continue; 
-            
+            continue;
           } 
           
           if(GetDebug() > 2)
@@ -2500,8 +2507,9 @@ void AliAnaPi0::MakeAnalysisFillHistograms()
       currentEvent=0 ; 
     }
   }// DoOwnMix
-  
-}      
+  if(GetDebug() > 0) printf("AliAnaPi0::MakeAnalysisFillHistograms() - End fill histograms\n");
+}
 
 //________________________________________________________________________
 Int_t AliAnaPi0::GetEventIndex(AliAODPWG4Particle * part, Double_t * vert)  
@@ -2511,17 +2519,19 @@ Int_t AliAnaPi0::GetEventIndex(AliAODPWG4Particle * part, Double_t * vert)
   //    for normal events   returns 0 if vertex OK and -1 if vertex NOK
   
   Int_t evtIndex = -1 ; 
-  if(GetReader()->GetDataType()!=AliCaloTrackReader::kMC){
-    
-    if (GetMixedEvent()){
-      
+  if(GetReader()->GetDataType()!=AliCaloTrackReader::kMC)
+  {
+    if (GetMixedEvent())
+    {
       evtIndex = GetMixedEvent()->EventIndexForCaloCluster(part->GetCaloLabel(0)) ;
       GetVertex(vert,evtIndex); 
       
       if(TMath::Abs(vert[2])> GetZvertexCut())
         evtIndex = -2 ; //Event can not be used (vertex, centrality,... cuts not fulfilled)
-    } else {// Single event
-      
+    }
+    else
+    {
+      // Single event
       GetVertex(vert);
       
       if(TMath::Abs(vert[2])> GetZvertexCut())
@@ -2530,7 +2540,8 @@ Int_t AliAnaPi0::GetEventIndex(AliAODPWG4Particle * part, Double_t * vert)
         evtIndex = 0 ;
     }
   }//No MC reader
-  else {
+  else
+  {
     evtIndex = 0;
     vert[0] = 0. ; 
     vert[1] = 0. ; 
index 64a3d60b139c98439b9164ec05e8218123a13d3f..71d1366ad22b179501b67b76a0d6f6c3a9f55b88 100755 (executable)
@@ -98,6 +98,7 @@ fhPtSumEta(0),                      fhPtSumPhi(0),                      fhPtSumE
 fhPtDispEtaPhiDiff(0),              fhPtSphericity(0),
 
 // MC histos
+fhMCPtDecayLostPairPi0(0),          fhMCPtDecayLostPairEta(0),
 fhMCE(),                            fhMCPt(),
 fhMCPtPhi(),                        fhMCPtEta(),
 fhMCEReject(),                      fhMCPtReject(),
@@ -926,11 +927,11 @@ TList *  AliAnaPi0EbE::GetCreateOutputObjects()
   
   TString nlm[]   = {"1 Local Maxima","2 Local Maxima", "NLM > 2"};
   
-  TString ptype [] = {"#gamma (#pi^{0})", "#gamma (#eta)", "#gamma (other)",  "#pi^{0}", "#eta", "#gamma (direct)","e^{#pm}"  , "hadron/other combinations"};
-  TString pname [] = {"Pi0Decay"        , "EtaDecay"     , "OtherDecay"    ,  "Pi0"    , "Eta" , "Photon"         , "Electron", "Hadron"};
+  TString ptype [] = {"#pi^{0}", "#eta", "#gamma (direct)","#gamma (#pi^{0})", "#gamma (#eta)", "#gamma (other)",  "e^{#pm}"  , "hadron/other combinations"};
+  TString pname [] = {"Pi0"    , "Eta" , "Photon"         ,"Pi0Decay"        , "EtaDecay"     , "OtherDecay"    ,   "Electron", "Hadron"};
   
   Int_t   bin[]   = {0,2,4,6,10,15,20,100}; // energy bins
-  
+
   fhPt  = new TH1F("hPt","Number of identified  #pi^{0} (#eta) decay",nptbins,ptmin,ptmax);
   fhPt->SetYTitle("#it{N}");
   fhPt->SetXTitle("#it{p}_{T} (GeV/#it{c})");
@@ -1214,6 +1215,18 @@ TList *  AliAnaPi0EbE::GetCreateOutputObjects()
     
     if(IsDataMC())
     {
+      fhMCPtDecayLostPairPi0  = new TH1F("hPtDecay_MCPi0DecayLostPair","Selected  #pi^{0} (#eta) decay photons, from MC #gamma #pi^{0} decay, companion lost",
+                                     nptbins,ptmin,ptmax);
+      fhMCPtDecayLostPairPi0->SetYTitle("#it{N}");
+      fhMCPtDecayLostPairPi0->SetXTitle("#it{p}_{T} (GeV/#it{c})");
+      outputContainer->Add(fhMCPtDecayLostPairPi0) ;
+
+      fhMCPtDecayLostPairEta  = new TH1F("hPtDecay_MCEtaDecayLostPair","Selected  #pi^{0} (#eta) decay photons, from MC #gamma #eta decay, companion lost",
+                                         nptbins,ptmin,ptmax);
+      fhMCPtDecayLostPairEta->SetYTitle("#it{N}");
+      fhMCPtDecayLostPairEta->SetXTitle("#it{p}_{T} (GeV/#it{c})");
+      outputContainer->Add(fhMCPtDecayLostPairEta) ;
+      
       for(Int_t ipart = 0; ipart < fgkNmcTypes; ipart++)
       {
         fhMCPtDecay[ipart]  = new TH1F(Form("hPtDecay_MC%s",pname[ipart].Data()),
@@ -1790,7 +1803,10 @@ TList *  AliAnaPi0EbE::GetCreateOutputObjects()
       outputContainer->Add(fhMassPairMCEta) ;
     }
     
-    for(Int_t i = 0; i < fgkNmcTypes; i++)
+    Int_t ntypes = fgkNmcTypes;
+    if(fAnaType != kSSCalo) ntypes = 2;
+  
+    for(Int_t i = 0; i < ntypes; i++)
     {
       fhMCE[i]  = new TH1F
       (Form("hE_MC%s",pname[i].Data()),
@@ -2577,7 +2593,7 @@ Int_t AliAnaPi0EbE::GetMCIndex(const Int_t tag)
   else if  ( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPhoton) &&
              GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPi0Decay) )
   {
-    return kmcPi0Decay ;
+      return kmcPi0Decay ;
   }//decay photon from pi0
   else if  ( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPhoton) &&
              GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCEtaDecay) )
@@ -2605,13 +2621,13 @@ void AliAnaPi0EbE::HasPairSameMCMother(AliAODPWG4Particle * photon1,
                                        AliAODPWG4Particle * photon2,
                                        Int_t & label, Int_t & tag)
 {
-  // Check the labels of pare in case mother was same pi0 or eta
+  // Check the labels of pair in case mother was same pi0 or eta
   // Set the new AOD accordingly
   
   Int_t  label1 = photon1->GetLabel();
   Int_t  label2 = photon2->GetLabel();
   
-  if(label1 < 0 || label2 < 0 ) return ;
+  if(label1 < 0 || label2 < 0 || label1 == label2) return ;
   
   //Int_t tag1 = GetMCAnalysisUtils()->CheckOrigin(label1, GetReader());
   //Int_t tag2 = GetMCAnalysisUtils()->CheckOrigin(label2, GetReader());
@@ -2625,7 +2641,8 @@ void AliAnaPi0EbE::HasPairSameMCMother(AliAODPWG4Particle * photon1,
        GetMCAnalysisUtils()->CheckTagBit(tag2,AliMCAnalysisUtils::kMCEtaDecay)    )
      )
   {
-    
+    Int_t pdg1    = -1, pdg2    = -1;
+    Int_t ndaugh1 = -1, ndaugh2 = -1;
     //Check if pi0/eta mother is the same
     if(GetReader()->ReadStack())
     {
@@ -2633,13 +2650,17 @@ void AliAnaPi0EbE::HasPairSameMCMother(AliAODPWG4Particle * photon1,
       {
         TParticle * mother1 = GetMCStack()->Particle(label1);//photon in kine tree
         label1 = mother1->GetFirstMother();
-        //mother1 = GetMCStack()->Particle(label1);//pi0
+        mother1 = GetMCStack()->Particle(label1);//pi0
+        pdg1=mother1->GetPdgCode();
+        ndaugh1 = mother1->GetNDaughters();
       }
       if(label2>=0)
       {
         TParticle * mother2 = GetMCStack()->Particle(label2);//photon in kine tree
         label2 = mother2->GetFirstMother();
-        //mother2 = GetMCStack()->Particle(label2);//pi0
+        mother2 = GetMCStack()->Particle(label2);//pi0
+        pdg2=mother2->GetPdgCode();
+        ndaugh2 = mother2->GetNDaughters();
       }
     } // STACK
     else if(GetReader()->ReadAODMCParticles())
@@ -2648,18 +2669,22 @@ void AliAnaPi0EbE::HasPairSameMCMother(AliAODPWG4Particle * photon1,
       {
         AliAODMCParticle * mother1 = (AliAODMCParticle *) (GetReader()->GetAODMCParticles())->At(label1);//photon in kine tree
         label1 = mother1->GetMother();
-        //mother1 = GetMCStack()->Particle(label1);//pi0
+        mother1 = (AliAODMCParticle *) (GetReader()->GetAODMCParticles())->At(label1);//pi0
+        pdg1=mother1->GetPdgCode();
+        ndaugh1 = mother1->GetNDaughters();
       }
       if(label2>=0)
       {
         AliAODMCParticle * mother2 = (AliAODMCParticle *) (GetReader()->GetAODMCParticles())->At(label2);//photon in kine tree
         label2 = mother2->GetMother();
-        //mother2 = GetMCStack()->Particle(label2);//pi0
+        mother2 = (AliAODMCParticle *) (GetReader()->GetAODMCParticles())->At(label2);//pi0
+        pdg2=mother2->GetPdgCode();
+        ndaugh2 = mother2->GetNDaughters();
       }
     }// AOD
     
     //printf("mother1 %d, mother2 %d\n",label1,label2);
-    if( label1 == label2 && label1>=0 )
+    if( label1 == label2 && label1>=0  && ndaugh1==ndaugh2 && ndaugh1==2)
     {
       label = label1;
       
@@ -2670,14 +2695,22 @@ void AliAnaPi0EbE::HasPairSameMCMother(AliAODPWG4Particle * photon1,
       Double_t mass  = (mom1+mom2).M();
       Double_t epair = (mom1+mom2).E();
       
-      if(GetMCAnalysisUtils()->CheckTagBit(tag1,AliMCAnalysisUtils::kMCPi0Decay))
+      if(pdg1==111)
       {
+        //printf("Real pi0 pair: pt %f, mass %f\n",(mom1+mom2).Pt(),mass);
         fhMassPairMCPi0 ->Fill(epair,mass);
         fhAnglePairMCPi0->Fill(epair,angle);
         GetMCAnalysisUtils()->SetTagBit(tag,AliMCAnalysisUtils::kMCPi0);
+//        printf(" Lab1 %d (%d), lab2 %d (%d), pdg1 %d, pdg2 %d, Is In calo %d, %d, Is lost %d, %d\n",
+//               label1,photon1->GetLabel(),label2,photon2->GetLabel(), pdg1, pdg2,
+//               GetMCAnalysisUtils()->CheckTagBit(photon1->GetTag(),AliMCAnalysisUtils::kMCDecayPairInCalo),
+//               GetMCAnalysisUtils()->CheckTagBit(photon2->GetTag(),AliMCAnalysisUtils::kMCDecayPairInCalo),
+//               GetMCAnalysisUtils()->CheckTagBit(photon1->GetTag(),AliMCAnalysisUtils::kMCDecayPairLost),
+//               GetMCAnalysisUtils()->CheckTagBit(photon2->GetTag(),AliMCAnalysisUtils::kMCDecayPairLost));
       }
-      else
+      else  if(pdg1==221)
       {
+        //printf("Real eta pair\n");
         fhMassPairMCEta ->Fill(epair,mass);
         fhAnglePairMCEta->Fill(epair,angle);
         GetMCAnalysisUtils()->SetTagBit(tag,AliMCAnalysisUtils::kMCEta);
@@ -2727,6 +2760,8 @@ void  AliAnaPi0EbE::MakeAnalysisFillAOD()
 {
   //Do analysis and fill aods
   
+  if(GetDebug() > 0) printf("AliAnaPi0EbE::MakeAnalysisFillAOD() - Start analysis type %d\n",fAnaType);
+  
   switch(fAnaType)
   {
     case kIMCalo:
@@ -2742,6 +2777,9 @@ void  AliAnaPi0EbE::MakeAnalysisFillAOD()
       break;
       
   }
+  
+  if(GetDebug() > 0) printf("AliAnaPi0EbE::MakeAnalysisFillAOD() - End\n");
+
 }
 
 //____________________________________________
@@ -2756,9 +2794,6 @@ void  AliAnaPi0EbE::MakeInvMassInCalorimeter()
   TLorentzVector mom2;
   TLorentzVector mom ;
   
-  Int_t tag   = 0;
-  Int_t label = 0;
-  
   if(!GetInputAODBranch())
   {
     AliFatal(Form("No input calo photons in AOD with name branch < %s >, STOP \n",GetInputAODName().Data()));
@@ -2770,7 +2805,8 @@ void  AliAnaPi0EbE::MakeInvMassInCalorimeter()
   if     (fCalorimeter=="EMCAL") clusters = GetEMCALClusters();
   else if(fCalorimeter=="PHOS")  clusters = GetPHOSClusters() ;
   
-  for(Int_t iphoton = 0; iphoton < GetInputAODBranch()->GetEntriesFast()-1; iphoton++)
+  Int_t nphoton = GetInputAODBranch()->GetEntriesFast();
+  for(Int_t iphoton = 0; iphoton < nphoton-1; iphoton++)
   {
     AliAODPWG4Particle * photon1 =  (AliAODPWG4Particle*) (GetInputAODBranch()->At(iphoton));
     
@@ -2794,7 +2830,7 @@ void  AliAnaPi0EbE::MakeInvMassInCalorimeter()
       return;
     }
     
-    for(Int_t jphoton = iphoton+1; jphoton < GetInputAODBranch()->GetEntriesFast(); jphoton++)
+    for(Int_t jphoton = iphoton+1; jphoton < nphoton; jphoton++)
     {
       AliAODPWG4Particle * photon2 =  (AliAODPWG4Particle*) (GetInputAODBranch()->At(jphoton));
       
@@ -2844,6 +2880,8 @@ void  AliAnaPi0EbE::MakeInvMassInCalorimeter()
       
       //Play with the MC stack if available
       Int_t mcIndex = kmcHadron;
+      Int_t tag     = 0;
+      Int_t label   =-1;
       if(IsDataMC())
       {
         HasPairSameMCMother(photon1, photon2, label, tag) ;
@@ -2894,13 +2932,13 @@ void  AliAnaPi0EbE::MakeInvMassInCalorimeter()
       //Mass of all pairs
       fhMass  ->Fill( epair,mass);
       fhMassPt->Fill(ptpair,mass);
-      if(IsDataMC()) fhMCMassPt[mcIndex]->Fill(ptpair,mass);
+      if(IsDataMC() && mcIndex < 2) fhMCMassPt[mcIndex]->Fill(ptpair,mass);
       
       //
       // Select good pair (good phi, pt cuts, aperture and invariant mass)
       //
       if(!GetNeutralMesonSelection()->SelectPair(mom1, mom2,fCalorimeter)) continue;
-            
+      
       if(GetDebug()>1)
         printf("AliAnaPi0EbE::MakeInvMassInCalorimeter() - Selected gamma pair: pt %f, phi %f, eta%f \n",
                mom.Pt(), mom.Phi()*TMath::RadToDeg(), mom.Eta());
@@ -2934,6 +2972,11 @@ void  AliAnaPi0EbE::MakeInvMassInCalorimeter()
         {
           Int_t mcIndex1 = GetMCIndex(photon1->GetTag());
           fhMCPtDecay[mcIndex1]->Fill(photon1->Pt());
+          if(GetMCAnalysisUtils()->CheckTagBit(photon1->GetTag(),AliMCAnalysisUtils::kMCDecayPairLost))
+          {
+            if     ( mcIndex1 == kmcPi0Decay ) fhMCPtDecayLostPairPi0->Fill(photon1->Pt());
+            else if( mcIndex1 == kmcEtaDecay ) fhMCPtDecayLostPairEta->Fill(photon1->Pt());
+          }
         }
       }
       
@@ -2962,13 +3005,18 @@ void  AliAnaPi0EbE::MakeInvMassInCalorimeter()
         {
           Int_t mcIndex2 = GetMCIndex(photon2->GetTag());
           fhMCPtDecay[mcIndex2]->Fill(photon2->Pt());
+          if(GetMCAnalysisUtils()->CheckTagBit(photon2->GetTag(),AliMCAnalysisUtils::kMCDecayPairLost))
+          {
+            if     ( mcIndex2 == kmcPi0Decay ) fhMCPtDecayLostPairPi0->Fill(photon2->Pt());
+            else if( mcIndex2 == kmcEtaDecay ) fhMCPtDecayLostPairEta->Fill(photon2->Pt());
+          }
         }
       }
       
       //Mass of selected pairs
       fhSelectedMass  ->Fill( epair,mass);
       fhSelectedMassPt->Fill(ptpair,mass);
-      if(IsDataMC())fhMCSelectedMassPt[mcIndex]->Fill(ptpair,mass);
+      if(IsDataMC()  && mcIndex < 2) fhMCSelectedMassPt[mcIndex]->Fill(ptpair,mass);
       
       // Fill histograms to undertand pile-up before other cuts applied
       // Remember to relax time cuts in the reader
@@ -3015,9 +3063,6 @@ void  AliAnaPi0EbE::MakeInvMassInCalorimeterAndCTS()
   TLorentzVector mom1;
   TLorentzVector mom2;
   TLorentzVector mom ;
-  Int_t tag   = 0;
-  Int_t label = 0;
-  Int_t evtIndex = 0;
   
   // Check calorimeter input
   if(!GetInputAODBranch())
@@ -3078,9 +3123,12 @@ void  AliAnaPi0EbE::MakeInvMassInCalorimeterAndCTS()
     {
       AliAODPWG4Particle * photon2 =  (AliAODPWG4Particle*) (inputAODGammaConv->At(jphoton));
       
+      Int_t evtIndex = 0;
       if(GetMixedEvent())
+      {
         evtIndex = GetMixedEvent()->EventIndexForCaloCluster(photon2->GetCaloLabel(0)) ;
-      if(TMath::Abs(GetVertex(evtIndex)[2]) > GetZvertexCut()) continue ;  //vertex cut
+        if(TMath::Abs(GetVertex(evtIndex)[2]) > GetZvertexCut()) continue ;  //vertex cut
+      }
       
       mom2 = *(photon2->Momentum());
       
@@ -3103,10 +3151,12 @@ void  AliAnaPi0EbE::MakeInvMassInCalorimeterAndCTS()
       
       //Play with the MC stack if available
       Int_t mcIndex = kmcHadron;
+      Int_t tag     = 0;
+      Int_t label   =-1;
       if(IsDataMC())
       {
         Int_t  label2 = photon2->GetLabel();
-        if(label2 >= 0 )photon2->SetTag(GetMCAnalysisUtils()->CheckOrigin(label2, GetReader()));
+        if(label2 >= 0 )photon2->SetTag(GetMCAnalysisUtils()->CheckOrigin(label2, GetReader(),"CTS"));
         
         HasPairSameMCMother(photon1, photon2, label, tag) ;
         mcIndex = GetMCIndex(tag);
@@ -3115,7 +3165,7 @@ void  AliAnaPi0EbE::MakeInvMassInCalorimeterAndCTS()
       //Mass of selected pairs
       fhMass  ->Fill( epair,mass);
       fhMassPt->Fill(ptpair,mass);
-      if(IsDataMC()) fhMCMassPt[mcIndex]->Fill(ptpair,mass);
+      if(IsDataMC() && mcIndex < 2 ) fhMCMassPt[mcIndex]->Fill(ptpair,mass);
 
       //
       // Select good pair (good phi, pt cuts, aperture and invariant mass)
@@ -3146,6 +3196,11 @@ void  AliAnaPi0EbE::MakeInvMassInCalorimeterAndCTS()
         {
           Int_t mcIndex1 = GetMCIndex(photon1->GetTag());
           fhMCPtDecay[mcIndex1]->Fill(photon1->Pt());
+          if(GetMCAnalysisUtils()->CheckTagBit(photon1->GetTag(),AliMCAnalysisUtils::kMCDecayPairLost))
+          {
+            if     ( mcIndex1 == kmcPi0Decay ) fhMCPtDecayLostPairPi0->Fill(photon1->Pt());
+            else if( mcIndex1 == kmcEtaDecay ) fhMCPtDecayLostPairEta->Fill(photon1->Pt());
+          }
         }
       }
       
@@ -3161,7 +3216,7 @@ void  AliAnaPi0EbE::MakeInvMassInCalorimeterAndCTS()
       //Mass of selected pairs
       fhSelectedMass  ->Fill( epair,mass);
       fhSelectedMassPt->Fill(ptpair,mass);
-      if(IsDataMC()) fhMCSelectedMassPt[mcIndex]->Fill(ptpair,mass);
+      if(IsDataMC()  && mcIndex < 2) fhMCSelectedMassPt[mcIndex]->Fill(ptpair,mass);
       
       // Fill histograms to undertand pile-up before other cuts applied
       // Remember to relax time cuts in the reader
@@ -3236,8 +3291,7 @@ void  AliAnaPi0EbE::MakeShowerShapeIdentification()
     if (GetMixedEvent())
     {
       evtIndex=GetMixedEvent()->EventIndexForCaloCluster(calo->GetID()) ;
-    
-    if(TMath::Abs(GetVertex(evtIndex)[2]) > GetZvertexCut()) continue ;  //vertex cut
+      if(TMath::Abs(GetVertex(evtIndex)[2]) > GetZvertexCut()) continue ;  //vertex cut
     }
     
     //Get Momentum vector,
@@ -3269,7 +3323,7 @@ void  AliAnaPi0EbE::MakeShowerShapeIdentification()
     Int_t tag  = 0 ;
     if(IsDataMC())
     {
-      tag = GetMCAnalysisUtils()->CheckOrigin(calo->GetLabels(),calo->GetNLabels(),GetReader());
+      tag = GetMCAnalysisUtils()->CheckOrigin(calo->GetLabels(),calo->GetNLabels(),GetReader(),fCalorimeter);
       //GetMCAnalysisUtils()->CheckMultipleOrigin(calo->GetLabels(),calo->GetNLabels(), GetReader(), aodpi0.GetInputFileIndex(), tag);
       if(GetDebug() > 0) printf("AliAnaPi0EbE::MakeShowerShapeIdentification() - Origin of candidate %d\n",tag);
     }
@@ -3620,11 +3674,12 @@ void  AliAnaPi0EbE::MakeAnalysisFillHistograms()
   if(!GetOutputAODBranch())
   {
     AliFatal(Form("No output pi0 in AOD branch with name < %s >,STOP \n",GetOutputAODName().Data()));
+    return;
   }
   
   //Loop on stored AOD pi0
   Int_t naod = GetOutputAODBranch()->GetEntriesFast();
-  if(GetDebug() > 0) Info("MakeAnalysisFillHistograms","aod branch entries %d\n", naod);
+  if(GetDebug() > 0) printf("AliAnaPi0EbE::MakeAnalysisFillHistograms() - aod branch entries %d\n", naod);
   
   Float_t cen = GetEventCentrality();
   Float_t ep  = GetEventPlaneAngle();
@@ -3661,6 +3716,8 @@ void  AliAnaPi0EbE::MakeAnalysisFillHistograms()
       Int_t tag     = pi0->GetTag();
       Int_t label   = pi0->GetLabel();
       Int_t mcIndex = GetMCIndex(tag);
+
+      if(fAnaType!=kSSCalo && mcIndex > 1) continue;
       
       fhMCE    [mcIndex] ->Fill(ener);
       fhMCPt   [mcIndex] ->Fill(pt);
@@ -3792,6 +3849,8 @@ void  AliAnaPi0EbE::MakeAnalysisFillHistograms()
     
   }// aod loop
   
+  if(GetDebug() > 0) printf("AliAnaPi0EbE::MakeAnalysisFillHistograms() - end\n");
+
 }
 
 //__________________________________________________________________
index ca3ec197aca321188811bdacbef7a645f50a0ea5..e65bcd4d10cc71722a53bec34fee6b97a54dea75 100755 (executable)
@@ -132,9 +132,9 @@ class AliAnaPi0EbE : public AliAnaCaloTrackCorrBaseClass {
   void           SwitchOffSelectIsolatedDecay()              { fSelectIsolatedDecay    = kFALSE; }
   
   //For histograms
-  enum mcTypes   { kmcPi0Decay = 0, kmcEtaDecay = 1, kmcOtherDecay = 2,
-                   kmcPi0      = 3, kmcEta      = 4, kmcPhoton     = 5,
-                   kmcElectron = 6, kmcHadron   = 7                    };
+  enum mcTypes   { kmcPi0      = 0, kmcEta      = 1, kmcPhoton           = 2,
+                   kmcPi0Decay = 3, kmcEtaDecay = 4, kmcOtherDecay       = 5,
+                   kmcElectron = 6, kmcHadron   = 7                          } ;
   
   static const Int_t fgkNmcTypes = 8;
   
@@ -289,7 +289,9 @@ class AliAnaPi0EbE : public AliAnaCaloTrackCorrBaseClass {
 
   //MC histograms
   
-  TH1F         * fhMCPtDecay            [fgkNmcTypes]; //! pT vs from MC particle
+  TH1F         * fhMCPtDecay            [fgkNmcTypes]; //! pT from MC particle
+  TH1F         * fhMCPtDecayLostPairPi0;               //! pT for tagged clustres when MC Pi0 Decay, when companion is lost
+  TH1F         * fhMCPtDecayLostPairEta;               //! pT for tagged clustres when MC Eta Decay, when companion is lost
   TH2F         * fhMCPtLambda0          [fgkNmcTypes]; //! pT vs lambda0 of pi0 pairs but really from MC particle
   TH2F         * fhMCPtLambda1          [fgkNmcTypes]; //! pT vs lambda1 of pi0 pairs but really from MC particle
   TH2F         * fhMCPtDispersion       [fgkNmcTypes]; //! pT vs dispersion of pi0 pairs but really from MC particle
index 9cacc423bf27d60d47107723a5c283a3fbaea18b..accaacfac2d3b2da88943099973ab72b1a829910 100644 (file)
@@ -247,13 +247,13 @@ AliCaloTrackReader * ConfigureReader(TString inputDataType = "AOD", Bool_t useKi
     //reader->SwitchOnConstrainTrackToVertex();
     
 //    if(kYears>2010)
-    {
+//    {
       //Hybrids 2011
       AliESDtrackCuts * esdTrackCuts  = CreateTrackCutsPWGJE(10001008);
       reader->SetTrackCuts(esdTrackCuts);
-      AliESDtrackCuts * esdTrackCuts2 = CreateTrackCutsPWGJE(10011008);
-      reader->SetTrackComplementaryCuts(esdTrackCuts2);
-    }
+//      AliESDtrackCuts * esdTrackCuts2 = CreateTrackCutsPWGJE(10011008);
+//      reader->SetTrackComplementaryCuts(esdTrackCuts2);
+//    }
 //    else
 //    {
 //      //Hybrids 2010
index 41788d97a4d6df7415cf511aa72519d296d84407..ec154710337b037209ebaca31f7fe280fd2ef537 100644 (file)
@@ -56,6 +56,7 @@ AliAnalysisTaskEMCALIsoPhoton::AliAnalysisTaskEMCALIsoPhoton() :
   fGeom(0x0),
   fGeoName("EMCAL_COMPLETEV1"),
   fOADBContainer(0),
+  fVecPv(0.,0.,0.),
   fPeriod("LHC11c"),
   fTrigBit("kEMC7"),
   fIsTrain(0),
@@ -87,7 +88,7 @@ AliAnalysisTaskEMCALIsoPhoton::AliAnalysisTaskEMCALIsoPhoton() :
   fRemMatchClus(kFALSE),
   fMinIsoClusE(0),
   fNCuts(5),
-  fTrCoreRem(kTRUE),
+  fTrCoreRem(kFALSE),
   fClusTDiff(30e-9),
   fESD(0),
   fAOD(0),
@@ -162,6 +163,7 @@ AliAnalysisTaskEMCALIsoPhoton::AliAnalysisTaskEMCALIsoPhoton(const char *name) :
   fGeom(0x0),
   fGeoName("EMCAL_COMPLETEV1"),
   fOADBContainer(0),
+  fVecPv(0.,0.,0.),
   fPeriod("LHC11c"),
   fTrigBit("kEMC7"),
   fIsTrain(0),
@@ -193,7 +195,7 @@ AliAnalysisTaskEMCALIsoPhoton::AliAnalysisTaskEMCALIsoPhoton(const char *name) :
   fRemMatchClus(kFALSE),
   fMinIsoClusE(0),
   fNCuts(5),
-  fTrCoreRem(kTRUE),
+  fTrCoreRem(kFALSE),
   fClusTDiff(30e-9),
   fESD(0),
   fAOD(0),
@@ -532,6 +534,7 @@ void AliAnalysisTaskEMCALIsoPhoton::UserExec(Option_t *)
   else
     fRecoPV->Fill(1);
   fPVtxZ->Fill(pv->GetZ());
+  fVecPv.SetXYZ(pv->GetX(),pv->GetY(),pv->GetZ());
   if(TMath::Abs(pv->GetZ())>10)
     return;
   if(fDebug)
@@ -649,6 +652,7 @@ void AliAnalysisTaskEMCALIsoPhoton::UserExec(Option_t *)
   fNClusForDirPho = 0;
   fNCells50 = 0;
   fClusIdFromTracks = "";
+  fVecPv.Clear();
 
   PostData(1, fOutputList);
   PostData(2, fQAList);
@@ -703,6 +707,7 @@ void AliAnalysisTaskEMCALIsoPhoton::FillClusHists()
     Float_t clsPos[3] = {0,0,0};
     c->GetPosition(clsPos);
     TVector3 clsVec(clsPos);
+    clsVec += fVecPv;
     Double_t Et = c->E()*TMath::Sin(clsVec.Theta());
     if(fDebug)
       printf("\tcluster eta=%1.1f,phi=%1.1f,E=%1.1f\n",clsVec.Eta(),clsVec.Phi(),c->E());
@@ -854,6 +859,7 @@ void AliAnalysisTaskEMCALIsoPhoton::GetCeIso(TVector3 vec, Int_t maxid, Float_t
     Float_t clsPos[3] = {0,0,0};
     c->GetPosition(clsPos);
     TVector3 cv(clsPos);
+    cv += fVecPv;
     Double_t Et = c->E()*TMath::Sin(cv.Theta());
     Float_t dphi = TMath::Abs(cv.Phi()-phicl);
     Float_t deta = TMath::Abs(cv.Eta()-etacl);
@@ -1118,6 +1124,7 @@ Float_t AliAnalysisTaskEMCALIsoPhoton::GetClusSource(const AliVCluster *c)
   Float_t clsPos[3] = {0,0,0};
   c->GetPosition(clsPos);
   TVector3 clsVec(clsPos);
+  clsVec += fVecPv;
   Double_t Et = c->E()*TMath::Sin(clsVec.Theta());
   //ESD
   if(fStack){
@@ -1425,6 +1432,7 @@ void AliAnalysisTaskEMCALIsoPhoton::FillQA()
     Float_t clsPos[3] = {0,0,0};
     c->GetPosition(clsPos);
     TVector3 clsVec(clsPos);
+    clsVec += fVecPv;
     Double_t cphi = clsVec.Phi();
     Double_t ceta = clsVec.Eta();
     Short_t id;
index d2a1582a36ebda04f9ffe1a6f8bc184cc3773264..9605a7492e16555f381174ff29b09b7a6edad430 100644 (file)
@@ -87,6 +87,7 @@ class AliAnalysisTaskEMCALIsoPhoton : public AliAnalysisTaskSE {
   AliEMCALGeometry      *fGeom;                  // geometry utils
   TString                fGeoName;               // geometry name (def = EMCAL_FIRSTYEARV1)
   AliOADBContainer      *fOADBContainer;         //!OADB container used to load misalignment matrices
+  TVector3               fVecPv;                 // vector to hold the event's primary vertex
   TString                fPeriod;                // string to the LHC period
   TString                fTrigBit;               // string to the trigger bit name
   Bool_t                 fIsTrain;               // variable to set train mode
index 1d0f7ca1a6c716b4e846530a74ab5f8bdf50e16c..f8acd8046c93c876aca369df8966a4aa91002f7f 100644 (file)
@@ -72,18 +72,23 @@ AliAnalysisTaskNeutralMesonToPiPlPiMiPiZero::AliAnalysisTaskNeutralMesonToPiPlPi
        fReaderGammas(NULL),
        fSelectorNegPionIndex(0),
        fSelectorPosPionIndex(0),
-       fGoodGammas(NULL),
+       fGoodConvGammas(NULL),
+       fClusterCandidates(NULL),
        fNeutralPionCandidates(NULL),
        fGoodVirtualParticles(NULL),
        fEventCutArray(NULL),
        fGammaCutArray(NULL),
+       fClusterCutArray(NULL),
        fPionCutArray(NULL),
        fNeutralPionMesonCutArray(NULL),
        fMesonCutArray(NULL),
        fEventCuts(NULL),
        fConversionCuts(NULL),
+       fClusterCuts(NULL),
        fHistoConvGammaPt(NULL),
        fHistoConvGammaEta(NULL),
+       fHistoClusterGammaPt(NULL),
+       fHistoClusterGammaEta(NULL),
        fHistoNegPionPt(NULL),
        fHistoPosPionPt(NULL),
        fHistoNegPionPhi(NULL),
@@ -119,6 +124,8 @@ AliAnalysisTaskNeutralMesonToPiPlPiMiPiZero::AliAnalysisTaskNeutralMesonToPiPlPi
        fHistoTrueMotherGammaGammaFromOmegaInvMassPt(NULL),
        fHistoTrueConvGammaPt(NULL),
        fHistoTrueConvGammaFromNeutralMesonPt(NULL),
+       fHistoTrueClusterGammaPt(NULL),
+       fHistoTrueClusterGammaFromNeutralMesonPt(NULL),
        fHistoTruePosPionPt(NULL),
        fHistoTruePosPionFromNeutralMesonPt(NULL),
        fHistoTrueNegPionPt(NULL),
@@ -139,7 +146,8 @@ AliAnalysisTaskNeutralMesonToPiPlPiMiPiZero::AliAnalysisTaskNeutralMesonToPiPlPi
        fDoMesonAnalysis(kTRUE),
        fDoMesonQA(kFALSE),
        fIsFromMBHeader(kTRUE),
-       fIsMC(kFALSE)
+       fIsMC(kFALSE),
+       fNeutralPionMode(0)
 {
 
 }
@@ -163,18 +171,23 @@ AliAnalysisTaskNeutralMesonToPiPlPiMiPiZero::AliAnalysisTaskNeutralMesonToPiPlPi
        fReaderGammas(NULL),
        fSelectorNegPionIndex(0),
        fSelectorPosPionIndex(0),
-       fGoodGammas(NULL),
+       fGoodConvGammas(NULL),
+       fClusterCandidates(NULL),
        fNeutralPionCandidates(NULL),   
        fGoodVirtualParticles(NULL),
        fEventCutArray(NULL),
        fGammaCutArray(NULL),
+       fClusterCutArray(NULL),
        fPionCutArray(NULL),
        fNeutralPionMesonCutArray(NULL),
        fMesonCutArray(NULL),
        fEventCuts(NULL),
        fConversionCuts(NULL),
+       fClusterCuts(NULL),
        fHistoConvGammaPt(NULL),
        fHistoConvGammaEta(NULL),
+       fHistoClusterGammaPt(NULL),
+       fHistoClusterGammaEta(NULL),
        fHistoNegPionPt(NULL),
        fHistoPosPionPt(NULL),
        fHistoNegPionPhi(NULL),
@@ -210,6 +223,8 @@ AliAnalysisTaskNeutralMesonToPiPlPiMiPiZero::AliAnalysisTaskNeutralMesonToPiPlPi
        fHistoTrueMotherGammaGammaFromOmegaInvMassPt(NULL),
        fHistoTrueConvGammaPt(NULL),
        fHistoTrueConvGammaFromNeutralMesonPt(NULL),
+       fHistoTrueClusterGammaPt(NULL),
+       fHistoTrueClusterGammaFromNeutralMesonPt(NULL),
        fHistoTruePosPionPt(NULL),
        fHistoTruePosPionFromNeutralMesonPt(NULL),
        fHistoTrueNegPionPt(NULL),
@@ -230,7 +245,8 @@ AliAnalysisTaskNeutralMesonToPiPlPiMiPiZero::AliAnalysisTaskNeutralMesonToPiPlPi
        fDoMesonAnalysis(kTRUE),
        fDoMesonQA(kFALSE),
        fIsFromMBHeader(kTRUE),
-       fIsMC(kFALSE)
+       fIsMC(kFALSE),
+       fNeutralPionMode(0)
 {
    DefineOutput(1, TList::Class());
 }
@@ -242,10 +258,15 @@ AliAnalysisTaskNeutralMesonToPiPlPiMiPiZero::~AliAnalysisTaskNeutralMesonToPiPlP
        // virtual destructor
        //
        cout<<"Destructor"<<endl;
-       if(fGoodGammas){
-               delete fGoodGammas;
-               fGoodGammas = 0x0;
+       if(fGoodConvGammas){
+               delete fGoodConvGammas;
+               fGoodConvGammas = 0x0;
        }
+       if(fClusterCandidates){
+               delete fClusterCandidates;
+               fClusterCandidates = 0x0;
+       }
+
        if(fNeutralPionCandidates){
                delete fNeutralPionCandidates;
                fNeutralPionCandidates = 0x0;
@@ -272,15 +293,23 @@ void AliAnalysisTaskNeutralMesonToPiPlPiMiPiZero::InitBack(){
        fTHnSparseMotherBackInvMassPtZM = new THnSparseF*[fnCuts];
 
        fBGHandler = new AliGammaConversionAODBGHandler*[fnCuts];
+
        for(Int_t iCut = 0; iCut<fnCuts;iCut++){
                
                TString cutstringEvent          = ((AliConvEventCuts*)fEventCutArray->At(iCut))->GetCutNumber();
                TString cutstringPion           = ((AliPrimaryPionCuts*)fPionCutArray->At(iCut))->GetCutNumber();
-               TString cutstringGamma          = ((AliConversionPhotonCuts*)fGammaCutArray->At(iCut))->GetCutNumber();
+               TString cutstringConvGamma = "";
+               if (fNeutralPionMode < 2)  cutstringConvGamma = ((AliConversionPhotonCuts*)fGammaCutArray->At(iCut))->GetCutNumber();
+               TString cutstringCaloGamma = "";
+               if (fNeutralPionMode > 0)  cutstringCaloGamma = ((AliCaloPhotonCuts*)fClusterCutArray->At(iCut))->GetCutNumber();
                TString cutstringNeutralPion= ((AliConversionMesonCuts*)fNeutralPionMesonCutArray->At(iCut))->GetCutNumber();
                TString cutstringMeson          = ((AliConversionMesonCuts*)fMesonCutArray->At(iCut))->GetCutNumber();
                
-               TString fullCutString = Form("%s_%s_%s_%s_%s",cutstringEvent.Data(),cutstringGamma.Data(),cutstringNeutralPion.Data(), cutstringPion.Data(),cutstringMeson.Data());
+               TString fullCutString = "";
+               if (fNeutralPionMode == 0) fullCutString = Form("%i_%s_%s_%s_%s_%s",fNeutralPionMode,cutstringEvent.Data(),cutstringConvGamma.Data(),cutstringNeutralPion.Data(), cutstringPion.Data(),cutstringMeson.Data());
+               else if (fNeutralPionMode == 1) fullCutString = Form("%i_%s_%s_%s_%s_%s_%s",fNeutralPionMode,cutstringEvent.Data(),cutstringConvGamma.Data(),cutstringCaloGamma.Data(),cutstringNeutralPion.Data(), cutstringPion.Data(),cutstringMeson.Data());
+               else if (fNeutralPionMode == 2) fullCutString = Form("%i_%s_%s_%s_%s_%s",fNeutralPionMode,cutstringEvent.Data(),cutstringCaloGamma.Data(),cutstringNeutralPion.Data(), cutstringPion.Data(),cutstringMeson.Data());
+               
                TString nameBackList = Form("%s Back histograms",fullCutString.Data());
                TString nameMotherList = Form("%s Mother histograms",fullCutString.Data());
                
@@ -345,7 +374,8 @@ void AliAnalysisTaskNeutralMesonToPiPlPiMiPiZero::UserCreateOutputObjects()
                fOutputContainer->SetOwner(kTRUE);
        }
 
-       fGoodGammas = new TList();
+       fGoodConvGammas = new TList();
+       fClusterCandidates = new TList();
        fNeutralPionCandidates = new TList();
        fGoodVirtualParticles = new TList();
        
@@ -356,8 +386,14 @@ void AliAnalysisTaskNeutralMesonToPiPlPiMiPiZero::UserCreateOutputObjects()
        fHistoNEvents                   = new TH1I*[fnCuts];
        fHistoNGoodESDTracks    = new TH1I*[fnCuts];
        fProfileEtaShift                = new TProfile*[fnCuts];
-       fHistoConvGammaPt               = new TH1F*[fnCuts];
-       fHistoConvGammaEta              = new TH1F*[fnCuts];
+       if (fNeutralPionMode < 2){
+               fHistoConvGammaPt               = new TH1F*[fnCuts];
+               fHistoConvGammaEta              = new TH1F*[fnCuts];
+       }
+       if (fNeutralPionMode > 0){
+               fHistoClusterGammaPt            = new TH1F*[fnCuts];
+               fHistoClusterGammaEta           = new TH1F*[fnCuts];
+       }
        fHistoNegPionPt                 = new TH1F*[fnCuts];
        fHistoPosPionPt                 = new TH1F*[fnCuts];
        fHistoNegPionPhi                = new TH1F*[fnCuts];
@@ -381,11 +417,17 @@ void AliAnalysisTaskNeutralMesonToPiPlPiMiPiZero::UserCreateOutputObjects()
        for(Int_t iCut = 0; iCut<fnCuts;iCut++){
                TString cutstringEvent          = ((AliConvEventCuts*)fEventCutArray->At(iCut))->GetCutNumber();
                TString cutstringPion           = ((AliPrimaryPionCuts*)fPionCutArray->At(iCut))->GetCutNumber();
-               TString cutstringGamma          = ((AliConversionPhotonCuts*)fGammaCutArray->At(iCut))->GetCutNumber();
+               TString cutstringConvGamma = "";
+               if (fNeutralPionMode < 2)  cutstringConvGamma = ((AliConversionPhotonCuts*)fGammaCutArray->At(iCut))->GetCutNumber();
+               TString cutstringCaloGamma = "";
+               if (fNeutralPionMode > 0)  cutstringCaloGamma = ((AliCaloPhotonCuts*)fClusterCutArray->At(iCut))->GetCutNumber();
                TString cutstringNeutralPion= ((AliConversionMesonCuts*)fNeutralPionMesonCutArray->At(iCut))->GetCutNumber();
                TString cutstringMeson          = ((AliConversionMesonCuts*)fMesonCutArray->At(iCut))->GetCutNumber();
                
-               TString fullCutString = Form("%s_%s_%s_%s_%s",cutstringEvent.Data(),cutstringGamma.Data(),cutstringNeutralPion.Data(), cutstringPion.Data(),cutstringMeson.Data());
+               TString fullCutString = "";
+               if (fNeutralPionMode == 0) fullCutString = Form("%i_%s_%s_%s_%s_%s",fNeutralPionMode,cutstringEvent.Data(),cutstringConvGamma.Data(),cutstringNeutralPion.Data(), cutstringPion.Data(),cutstringMeson.Data());
+               else if (fNeutralPionMode == 1) fullCutString = Form("%i_%s_%s_%s_%s_%s_%s",fNeutralPionMode,cutstringEvent.Data(),cutstringConvGamma.Data(),cutstringCaloGamma.Data(),cutstringNeutralPion.Data(), cutstringPion.Data(),cutstringMeson.Data());
+               else if (fNeutralPionMode == 2) fullCutString = Form("%i_%s_%s_%s_%s_%s",fNeutralPionMode,cutstringEvent.Data(),cutstringCaloGamma.Data(),cutstringNeutralPion.Data(), cutstringPion.Data(),cutstringMeson.Data());
                TString nameCutFolder = Form("Cut Number %s", fullCutString.Data());
                TString nameESDList = Form("%s ESD histograms", fullCutString.Data());
                
@@ -417,10 +459,18 @@ void AliAnalysisTaskNeutralMesonToPiPlPiMiPiZero::UserCreateOutputObjects()
 
                fProfileEtaShift[iCut] = new TProfile("Eta Shift","Eta Shift",1, -0.5,0.5);
                fESDList[iCut]->Add(fProfileEtaShift[iCut]);
-               fHistoConvGammaPt[iCut] = new TH1F("ESD_ConvGamma_Pt","ESD_ConvGamma_Pt",250,0,25);
-               fESDList[iCut]->Add(fHistoConvGammaPt[iCut]);
-               fHistoConvGammaEta[iCut] = new TH1F("ESD_ConvGamma_Eta","ESD_ConvGamma_Eta",600,-1.5,1.5);
-               fESDList[iCut]->Add(fHistoConvGammaEta[iCut]);
+               if (fNeutralPionMode < 2){
+                       fHistoConvGammaPt[iCut] = new TH1F("ESD_ConvGamma_Pt","ESD_ConvGamma_Pt",250,0,25);
+                       fESDList[iCut]->Add(fHistoConvGammaPt[iCut]);
+                       fHistoConvGammaEta[iCut] = new TH1F("ESD_ConvGamma_Eta","ESD_ConvGamma_Eta",600,-1.5,1.5);
+                       fESDList[iCut]->Add(fHistoConvGammaEta[iCut]);
+               }
+               if (fNeutralPionMode > 0){
+                       fHistoClusterGammaPt[iCut] = new TH1F("ESD_ClusterGamma_Pt","ESD_ClusterGamma_Pt",250,0,25);
+                       fESDList[iCut]->Add(fHistoClusterGammaPt[iCut]);
+                       fHistoClusterGammaEta[iCut] = new TH1F("ESD_ClusterGamma_Eta","ESD_ClusterGamma_Eta",600,-1.5,1.5);
+                       fESDList[iCut]->Add(fHistoClusterGammaEta[iCut]);
+               }
                fHistoNegPionPt[iCut] = new TH1F("ESD_PrimaryNegPions_Pt","ESD_PrimaryNegPions_Pt",1000,0,25);
                fESDList[iCut]->Add(fHistoNegPionPt[iCut]);
                fHistoPosPionPt[iCut] = new TH1F("ESD_PrimaryPosPions_Pt","ESD_PrimaryPosPions_Pt",1000,0,25);
@@ -483,8 +533,14 @@ void AliAnalysisTaskNeutralMesonToPiPlPiMiPiZero::UserCreateOutputObjects()
                fMCList = new TList*[fnCuts];
                // True Histogramms
                fTrueList = new TList*[fnCuts];
-               fHistoTrueConvGammaPt = new TH1F*[fnCuts];
-               fHistoTrueConvGammaFromNeutralMesonPt = new TH1F*[fnCuts];
+               if (fNeutralPionMode < 2){
+                       fHistoTrueConvGammaPt = new TH1F*[fnCuts];
+                       fHistoTrueConvGammaFromNeutralMesonPt = new TH1F*[fnCuts];
+               }       
+               if (fNeutralPionMode > 0){
+                       fHistoTrueClusterGammaPt = new TH1F*[fnCuts];
+                       fHistoTrueClusterGammaFromNeutralMesonPt = new TH1F*[fnCuts];
+               }       
                fHistoTruePosPionPt  = new TH1F*[fnCuts];
                fHistoTrueNegPionPt  = new TH1F*[fnCuts];               
                fHistoTruePosPionFromNeutralMesonPt  = new TH1F*[fnCuts];
@@ -492,7 +548,9 @@ void AliAnalysisTaskNeutralMesonToPiPlPiMiPiZero::UserCreateOutputObjects()
                
 
                fHistoMCAllGammaPt  = new TH1F*[fnCuts];
-               fHistoMCConvGammaPt = new TH1F*[fnCuts];
+               if (fNeutralPionMode < 2){
+                       fHistoMCConvGammaPt = new TH1F*[fnCuts];
+               }       
                fHistoMCAllPosPionsPt = new TH1F*[fnCuts];
                fHistoMCAllNegPionsPt = new TH1F*[fnCuts];
                fHistoMCGammaFromNeutralMesonPt  = new TH1F*[fnCuts];
@@ -522,11 +580,17 @@ void AliAnalysisTaskNeutralMesonToPiPlPiMiPiZero::UserCreateOutputObjects()
                for(Int_t iCut = 0; iCut<fnCuts;iCut++){
                        TString cutstringEvent          = ((AliConvEventCuts*)fEventCutArray->At(iCut))->GetCutNumber();
                        TString cutstringPion           = ((AliPrimaryPionCuts*)fPionCutArray->At(iCut))->GetCutNumber();
-                       TString cutstringGamma          = ((AliConversionPhotonCuts*)fGammaCutArray->At(iCut))->GetCutNumber();
+                       TString cutstringConvGamma = "";
+                       if (fNeutralPionMode < 2)  cutstringConvGamma = ((AliConversionPhotonCuts*)fGammaCutArray->At(iCut))->GetCutNumber();
+                       TString cutstringCaloGamma = "";
+                       if (fNeutralPionMode > 0)  cutstringCaloGamma = ((AliCaloPhotonCuts*)fClusterCutArray->At(iCut))->GetCutNumber();
                        TString cutstringNeutralPion= ((AliConversionMesonCuts*)fNeutralPionMesonCutArray->At(iCut))->GetCutNumber();
                        TString cutstringMeson          = ((AliConversionMesonCuts*)fMesonCutArray->At(iCut))->GetCutNumber();
                        
-                       TString fullCutString = Form("%s_%s_%s_%s_%s",cutstringEvent.Data(),cutstringGamma.Data(),cutstringNeutralPion.Data(), cutstringPion.Data(),cutstringMeson.Data());
+                       TString fullCutString = "";
+                       if (fNeutralPionMode == 0) fullCutString = Form("%i_%s_%s_%s_%s_%s",fNeutralPionMode,cutstringEvent.Data(),cutstringConvGamma.Data(),cutstringNeutralPion.Data(), cutstringPion.Data(),cutstringMeson.Data());
+                       else if (fNeutralPionMode == 1) fullCutString = Form("%i_%s_%s_%s_%s_%s_%s",fNeutralPionMode,cutstringEvent.Data(),cutstringConvGamma.Data(),cutstringCaloGamma.Data(),cutstringNeutralPion.Data(), cutstringPion.Data(),cutstringMeson.Data());
+                       else if (fNeutralPionMode == 2) fullCutString = Form("%i_%s_%s_%s_%s_%s",fNeutralPionMode,cutstringEvent.Data(),cutstringCaloGamma.Data(),cutstringNeutralPion.Data(), cutstringPion.Data(),cutstringMeson.Data());
                        TString nameMCList = Form("%s MC histograms", fullCutString.Data());
                        TString nameTrueRecList = Form("%s True histograms", fullCutString.Data());
 
@@ -537,8 +601,11 @@ void AliAnalysisTaskNeutralMesonToPiPlPiMiPiZero::UserCreateOutputObjects()
 
                        fHistoMCAllGammaPt[iCut] = new TH1F("MC_AllGamma_Pt","MC_AllGamma_Pt",250,0,25);
                        fMCList[iCut]->Add(fHistoMCAllGammaPt[iCut]);                   
-                       fHistoMCConvGammaPt[iCut] = new TH1F("MC_ConvGamma_Pt","MC_ConvGamma_Pt",250,0,25);
-                       fMCList[iCut]->Add(fHistoMCConvGammaPt[iCut]);                                          
+                       if (fNeutralPionMode < 2){
+                               fHistoMCConvGammaPt[iCut] = new TH1F("MC_ConvGamma_Pt","MC_ConvGamma_Pt",250,0,25);
+                               fMCList[iCut]->Add(fHistoMCConvGammaPt[iCut]);                                          
+                       }
+                       
                        fHistoMCAllPosPionsPt[iCut] = new TH1F("MC_AllPosPions_Pt","MC_AllPosPions_Pt",1000,0,25);
                        fMCList[iCut]->Add(fHistoMCAllPosPionsPt[iCut]);
                        fHistoMCAllNegPionsPt[iCut] = new TH1F("MC_AllNegPions_Pt","MC_AllNegPions_Pt",1000,0,25);
@@ -571,11 +638,18 @@ void AliAnalysisTaskNeutralMesonToPiPlPiMiPiZero::UserCreateOutputObjects()
                        fTrueList[iCut]->SetOwner(kTRUE);
                        fCutFolder[iCut]->Add(fTrueList[iCut]);
 
-                       fHistoTrueConvGammaPt[iCut] = new TH1F("ESD_TrueConvGamma_Pt","ESD_TrueConvGamma_Pt",250,0,25);
-                       fTrueList[iCut]->Add(fHistoTrueConvGammaPt[iCut]);
-                       fHistoTrueConvGammaFromNeutralMesonPt[iCut] = new TH1F("ESD_TrueConvGammaFromNeutralMeson_Pt","ESD_TrueConvGammaFromNeutralMeson_Pt",250,0,25);
-                       fTrueList[iCut]->Add(fHistoTrueConvGammaFromNeutralMesonPt[iCut]);
-               
+                       if (fNeutralPionMode < 2){
+                               fHistoTrueConvGammaPt[iCut] = new TH1F("ESD_TrueConvGamma_Pt","ESD_TrueConvGamma_Pt",250,0,25);
+                               fTrueList[iCut]->Add(fHistoTrueConvGammaPt[iCut]);
+                               fHistoTrueConvGammaFromNeutralMesonPt[iCut] = new TH1F("ESD_TrueConvGammaFromNeutralMeson_Pt","ESD_TrueConvGammaFromNeutralMeson_Pt",250,0,25);
+                               fTrueList[iCut]->Add(fHistoTrueConvGammaFromNeutralMesonPt[iCut]);
+                       }
+                       if (fNeutralPionMode > 0){
+                               fHistoTrueClusterGammaPt[iCut] = new TH1F("ESD_TrueClusterGamma_Pt","ESD_TrueClusterGamma_Pt",250,0,25);
+                               fTrueList[iCut]->Add(fHistoTrueClusterGammaPt[iCut]);
+                               fHistoTrueClusterGammaFromNeutralMesonPt[iCut] = new TH1F("ESD_TrueClusterGammaFromNeutralMeson_Pt","ESD_TrueClusterGammaFromNeutralMeson_Pt",250,0,25);
+                               fTrueList[iCut]->Add(fHistoTrueClusterGammaFromNeutralMesonPt[iCut]);
+                       }
                        fHistoTruePosPionPt[iCut] = new TH1F("ESD_TruePosPion_Pt","ESD_TruePosPion_Pt",1000,0,25);
                        fTrueList[iCut]->Add(fHistoTruePosPionPt[iCut]);
                        fHistoTrueNegPionPt[iCut] = new TH1F("ESD_TrueNegPion_Pt","ESD_TrueNegPion_Pt",1000,0,25);
@@ -641,11 +715,20 @@ void AliAnalysisTaskNeutralMesonToPiPlPiMiPiZero::UserCreateOutputObjects()
                                fCutFolder[iCut]->Add( ((AliPrimaryPionCuts*)fPionCutArray->At(iCut))->GetCutHistograms() );
                        }
                }
-               if( fGammaCutArray ) {
-                       if( ((AliConversionPhotonCuts*)fGammaCutArray->At(iCut))->GetCutHistograms() ) {
-                               fCutFolder[iCut]->Add( ((AliConversionPhotonCuts*)fGammaCutArray->At(iCut))->GetCutHistograms()  );
+               if (fNeutralPionMode < 2){
+                       if( fGammaCutArray ) {
+                               if( ((AliConversionPhotonCuts*)fGammaCutArray->At(iCut))->GetCutHistograms() ) {
+                                       fCutFolder[iCut]->Add( ((AliConversionPhotonCuts*)fGammaCutArray->At(iCut))->GetCutHistograms()  );
+                               }
                        }
-               }
+               } 
+               if (fNeutralPionMode > 0){
+                       if( fClusterCutArray ) {
+                               if( ((AliCaloPhotonCuts*)fClusterCutArray->At(iCut))->GetCutHistograms() ) {
+                                       fCutFolder[iCut]->Add( ((AliCaloPhotonCuts*)fClusterCutArray->At(iCut))->GetCutHistograms()  );
+                               }
+                       }                       
+               }       
                if( fNeutralPionMesonCutArray  ) {
                        if( ((AliConversionMesonCuts*)fNeutralPionMesonCutArray->At(iCut))->GetCutHistograms() ) {
                                fCutFolder[iCut]->Add( ((AliConversionMesonCuts*)fNeutralPionMesonCutArray->At(iCut))->GetCutHistograms());
@@ -722,19 +805,33 @@ void AliAnalysisTaskNeutralMesonToPiPlPiMiPiZero::UserExec(Option_t *){
                        ProcessMCParticles();
                }
 
-               ProcessPhotonCandidates(); // Process this cuts gammas
-               ProcessNeutralPionCandidatesPureConversions(); // Process neutral pion candidates
+               if (fNeutralPionMode < 2){
+                       ProcessConversionPhotonCandidates(); // Process this cuts conversion gammas
+               }
+               if (fNeutralPionMode > 0){
+                       ProcessCaloPhotonCandidates(); // Process this cuts calo gammas
+               }
+               
+               if (fNeutralPionMode == 0 ){
+                       ProcessNeutralPionCandidatesPureConversions(); // Process neutral pion candidates purely from conversions
+               }
+               if (fNeutralPionMode == 1){
+                       ProcessNeutralPionCandidatesMixedConvCalo(); // Process neutral pion candidates mixed conv and calo
+               }       
+               if (fNeutralPionMode == 2){
+                       ProcessNeutralPionCandidatesPureCalo(); // Process neutral pion candidates purely from calo
+               }       
+                       
                ProcessPionCandidates(); // Process this cuts gammas
                        
                CalculateMesonCandidates();
                CalculateBackground();
                UpdateEventByEventData();
                                
-               fGoodGammas->Clear(); // delete this cuts good gammas
-//             if (fNeutralPionCandidates->GetEntries()>0)cout << "##################################"<<  fNeutralPionCandidates->GetEntries() << endl;
-               if(fNeutralPionCandidates->GetEntries()>0){
-                       fNeutralPionCandidates->Clear();
-               }       
+               
+               if (fGoodConvGammas->GetEntries()>0) fGoodConvGammas->Clear(); 
+               if (fClusterCandidates->GetEntries()>0) fClusterCandidates->Clear();
+               if (fNeutralPionCandidates->GetEntries()>0) fNeutralPionCandidates->Clear();
                fGoodVirtualParticles->Clear(); // delete this cuts good gammas
        }
 
@@ -772,8 +869,122 @@ void AliAnalysisTaskNeutralMesonToPiPlPiMiPiZero::Terminate(const Option_t *){
 ///Grid
 }
 
+
+//________________________________________________________________________
+void AliAnalysisTaskNeutralMesonToPiPlPiMiPiZero::ProcessCaloPhotonCandidates()
+{
+       
+       Int_t nclus = 0;
+       nclus = fInputEvent->GetNumberOfCaloClusters();
+       
+//     cout << nclus << endl;
+       
+       if(nclus == 0)  return;
+       
+       // vertex
+       Double_t vertex[3] = {0};
+       InputEvent()->GetPrimaryVertex()->GetXYZ(vertex);
+       
+       // Loop over EMCal clusters
+       for(Long_t i = 0; i < nclus; i++){
+               
+               AliVCluster* clus = NULL;
+               clus = fInputEvent->GetCaloCluster(i);          
+               if (!clus) continue;
+               if(!((AliCaloPhotonCuts*)fClusterCutArray->At(fiCut))->ClusterIsSelected(clus,fInputEvent,fIsMC)) continue;
+               // TLorentzvector with cluster
+               TLorentzVector clusterVector;
+               clus->GetMomentum(clusterVector,vertex);
+               
+               TLorentzVector* tmpvec = new TLorentzVector();
+               tmpvec->SetPxPyPzE(clusterVector.Px(),clusterVector.Py(),clusterVector.Pz(),clusterVector.E());
+               
+               // convert to AODConversionPhoton
+               AliAODConversionPhoton *PhotonCandidate=new AliAODConversionPhoton(tmpvec);
+               if(!PhotonCandidate) continue;
+               
+               // Flag Photon as CaloPhoton
+               PhotonCandidate->SetIsCaloPhoton();
+               PhotonCandidate->SetCaloClusterRef(i);
+               // get MC label
+               if(fIsMC){
+                       Int_t* mclabelsCluster = clus->GetLabels();
+                       PhotonCandidate->SetNCaloPhotonMCLabels(clus->GetNLabels());
+//                     cout << clus->GetNLabels() << endl;
+                       if (clus->GetNLabels()>0){
+                               for (Int_t k =0; k< (Int_t)clus->GetNLabels(); k++){
+                                       if (k< 20)PhotonCandidate->SetCaloPhotonMCLabel(k,mclabelsCluster[k]);
+//                                     Int_t pdgCode = fMCStack->Particle(mclabelsCluster[k])->GetPdgCode();
+//                                     cout << "label " << k << "\t" << mclabelsCluster[k] << " pdg code: " << pdgCode << endl;
+                               }       
+                       }
+               }
+               
+               fIsFromMBHeader = kTRUE; 
+               // test whether largest contribution to cluster orginates in added signals
+               if (fIsMC && ((AliConvEventCuts*)fEventCutArray->At(fiCut))->IsParticleFromBGEvent(PhotonCandidate->GetCaloPhotonMCLabel(0), fMCStack, fInputEvent) == 0) fIsFromMBHeader = kFALSE;
+               
+               if (fIsFromMBHeader){
+                       fHistoClusterGammaPt[fiCut]->Fill(PhotonCandidate->Pt());
+                       fHistoClusterGammaEta[fiCut]->Fill(PhotonCandidate->Eta());
+               }       
+               fClusterCandidates->Add(PhotonCandidate); // if no second loop is required add to events good gammas
+               
+               if(fIsMC){
+//                     if(fInputEvent->IsA()==AliESDEvent::Class()){
+                               ProcessTrueCaloPhotonCandidates(PhotonCandidate);
+//                     } else {
+//                             ProcessTrueClusterCandidatesAOD(PhotonCandidate);
+//                     }       
+               }
+               
+               delete tmpvec;
+       }
+       
+}
+
+//________________________________________________________________________
+void AliAnalysisTaskNeutralMesonToPiPlPiMiPiZero::ProcessTrueCaloPhotonCandidates(AliAODConversionPhoton *TruePhotonCandidate)
+{
+       TParticle *Photon = NULL;
+       if (!TruePhotonCandidate->GetIsCaloPhoton()) AliFatal("CaloPhotonFlag has not been set task will abort");
+//     fHistoTrueNLabelsInClus[fiCut]->Fill(TruePhotonCandidate->GetNCaloPhotonMCLabels());
+       
+       if (TruePhotonCandidate->GetNCaloPhotonMCLabels()>0)Photon = fMCStack->Particle(TruePhotonCandidate->GetCaloPhotonMCLabel(0));
+               else return;
+               
+       if(Photon == NULL){
+       //    cout << "no photon" << endl;
+               return;
+       }
+
+//     Int_t pdgCodeParticle = Photon->GetPdgCode();
+       TruePhotonCandidate->SetCaloPhotonMCFlags(fMCStack);
+       
+       // True Photon
+       if(fIsFromMBHeader){    
+               if(TruePhotonCandidate->GetCaloPhotonMCLabel(0) <= fMCStack->GetNprimary()){
+                       if (TruePhotonCandidate->IsLargestComponentPhoton()){
+                               fHistoTrueClusterGammaPt[fiCut]->Fill(TruePhotonCandidate->Pt());
+                               if (GammaIsNeutralMesonPiPlPiMiPiZeroDaughter(TruePhotonCandidate->GetCaloPhotonMCLabel(0))){
+                                       fHistoTrueClusterGammaFromNeutralMesonPt[fiCut]->Fill(TruePhotonCandidate->Pt());
+                               }
+                       }       
+                       if (TruePhotonCandidate->IsLargestComponentElectron() && TruePhotonCandidate->IsConversion()){
+                                       fHistoTrueClusterGammaPt[fiCut]->Fill(TruePhotonCandidate->Pt());
+                                       if (GammaIsNeutralMesonPiPlPiMiPiZeroDaughter(TruePhotonCandidate->GetCaloPhotonMCLabel(0))){
+                                       fHistoTrueClusterGammaFromNeutralMesonPt[fiCut]->Fill(TruePhotonCandidate->Pt());
+                               }
+                       }
+               }       
+       }
+       return;
+}
+
+
+
 //________________________________________________________________________
-void AliAnalysisTaskNeutralMesonToPiPlPiMiPiZero::ProcessPhotonCandidates(){
+void AliAnalysisTaskNeutralMesonToPiPlPiMiPiZero::ProcessConversionPhotonCandidates(){
        Int_t nV0 = 0;
        TList *GoodGammasStepOne = new TList();
        TList *GoodGammasStepTwo = new TList();
@@ -800,7 +1011,7 @@ void AliAnalysisTaskNeutralMesonToPiPlPiMiPiZero::ProcessPhotonCandidates(){
                if(!((AliConversionPhotonCuts*)fGammaCutArray->At(fiCut))->UseElecSharingCut() &&
                        !((AliConversionPhotonCuts*)fGammaCutArray->At(fiCut))->UseToCloseV0sCut()){ // if no post reader loop is required add to events good gammas
                        
-                       fGoodGammas->Add(PhotonCandidate);
+                       fGoodConvGammas->Add(PhotonCandidate);
                
                        if(fIsFromMBHeader){
                                fHistoConvGammaPt[fiCut]->Fill(PhotonCandidate->Pt());
@@ -808,7 +1019,7 @@ void AliAnalysisTaskNeutralMesonToPiPlPiMiPiZero::ProcessPhotonCandidates(){
                        }
                
                        if(fMCEvent){
-                               ProcessTruePhotonCandidates(PhotonCandidate);
+                               ProcessTrueConversionPhotonCandidates(PhotonCandidate);
                        }
                } else if(((AliConversionPhotonCuts*)fGammaCutArray->At(fiCut))->UseElecSharingCut()){ // if Shared Electron cut is enabled, Fill array, add to step one
                        ((AliConversionPhotonCuts*)fGammaCutArray->At(fiCut))->FillElectonLabelArray(PhotonCandidate,nV0);
@@ -835,13 +1046,13 @@ void AliAnalysisTaskNeutralMesonToPiPlPiMiPiZero::ProcessPhotonCandidates(){
                        }
                        if(!((AliConversionPhotonCuts*)fGammaCutArray->At(fiCut))->RejectSharedElectronV0s(PhotonCandidate,i,GoodGammasStepOne->GetEntries())) continue;
                        if(!((AliConversionPhotonCuts*)fGammaCutArray->At(fiCut))->UseToCloseV0sCut()){ // To Colse v0s cut diabled, step two not needed
-                               fGoodGammas->Add(PhotonCandidate);
+                               fGoodConvGammas->Add(PhotonCandidate);
                                if(fIsFromMBHeader){
                                        fHistoConvGammaPt[fiCut]->Fill(PhotonCandidate->Pt());
                                        fHistoConvGammaEta[fiCut]->Fill(PhotonCandidate->Eta());
                                }
                                if(fMCEvent){
-                                       ProcessTruePhotonCandidates(PhotonCandidate);
+                                       ProcessTrueConversionPhotonCandidates(PhotonCandidate);
                                }
                        }
                        else GoodGammasStepTwo->Add(PhotonCandidate); // Close v0s cut enabled -> add to list two
@@ -861,7 +1072,7 @@ void AliAnalysisTaskNeutralMesonToPiPlPiMiPiZero::ProcessPhotonCandidates(){
                        }
                        
                        if(!((AliConversionPhotonCuts*)fGammaCutArray->At(fiCut))->RejectToCloseV0s(PhotonCandidate,GoodGammasStepTwo,i)) continue;
-                       fGoodGammas->Add(PhotonCandidate); // Add gamma to current cut TList
+                       fGoodConvGammas->Add(PhotonCandidate); // Add gamma to current cut TList
                
                        if(fIsFromMBHeader){
                                fHistoConvGammaPt[fiCut]->Fill(PhotonCandidate->Pt()); // Differences to old V0Reader in p_t due to conversion KF->TLorentzVector
@@ -869,7 +1080,7 @@ void AliAnalysisTaskNeutralMesonToPiPlPiMiPiZero::ProcessPhotonCandidates(){
                        }
                
                        if(fMCEvent){
-                               ProcessTruePhotonCandidates(PhotonCandidate);
+                               ProcessTrueConversionPhotonCandidates(PhotonCandidate);
                        }
                }
        }
@@ -881,7 +1092,7 @@ void AliAnalysisTaskNeutralMesonToPiPlPiMiPiZero::ProcessPhotonCandidates(){
 }
 
 //________________________________________________________________________
-void AliAnalysisTaskNeutralMesonToPiPlPiMiPiZero::ProcessTruePhotonCandidates(AliAODConversionPhoton *TruePhotonCandidate)
+void AliAnalysisTaskNeutralMesonToPiPlPiMiPiZero::ProcessTrueConversionPhotonCandidates(AliAODConversionPhoton *TruePhotonCandidate)
 {
        // Process True Photons
        AliStack *MCStack = fMCEvent->Stack();
@@ -921,12 +1132,12 @@ void AliAnalysisTaskNeutralMesonToPiPlPiMiPiZero::ProcessTruePhotonCandidates(Al
 //________________________________________________________________________
 void AliAnalysisTaskNeutralMesonToPiPlPiMiPiZero::ProcessNeutralPionCandidatesPureConversions(){
        // Conversion Gammas
-       if(fGoodGammas->GetEntries()>1){
-               for(Int_t firstGammaIndex=0;firstGammaIndex<fGoodGammas->GetEntries()-1;firstGammaIndex++){
-                       AliAODConversionPhoton *gamma0=dynamic_cast<AliAODConversionPhoton*>(fGoodGammas->At(firstGammaIndex));
+       if(fGoodConvGammas->GetEntries()>1){
+               for(Int_t firstGammaIndex=0;firstGammaIndex<fGoodConvGammas->GetEntries()-1;firstGammaIndex++){
+                       AliAODConversionPhoton *gamma0=dynamic_cast<AliAODConversionPhoton*>(fGoodConvGammas->At(firstGammaIndex));
                        if (gamma0==NULL) continue;
-                       for(Int_t secondGammaIndex=firstGammaIndex+1;secondGammaIndex<fGoodGammas->GetEntries();secondGammaIndex++){
-                               AliAODConversionPhoton *gamma1=dynamic_cast<AliAODConversionPhoton*>(fGoodGammas->At(secondGammaIndex));
+                       for(Int_t secondGammaIndex=firstGammaIndex+1;secondGammaIndex<fGoodConvGammas->GetEntries();secondGammaIndex++){
+                               AliAODConversionPhoton *gamma1=dynamic_cast<AliAODConversionPhoton*>(fGoodConvGammas->At(secondGammaIndex));
                                //Check for same Electron ID
                                if (gamma1==NULL) continue;
                                if(gamma0->GetTrackLabelPositive() == gamma1->GetTrackLabelPositive() ||
@@ -960,6 +1171,117 @@ void AliAnalysisTaskNeutralMesonToPiPlPiMiPiZero::ProcessNeutralPionCandidatesPu
 }
 
 
+//________________________________________________________________________
+void AliAnalysisTaskNeutralMesonToPiPlPiMiPiZero::ProcessNeutralPionCandidatesPureCalo(){
+       
+       // Conversion Gammas
+       if(fClusterCandidates->GetEntries()>0){
+
+               // vertex
+               Double_t vertex[3] = {0};
+               InputEvent()->GetPrimaryVertex()->GetXYZ(vertex);
+
+               for(Int_t firstGammaIndex=0;firstGammaIndex<fClusterCandidates->GetEntries();firstGammaIndex++){
+                       AliAODConversionPhoton *gamma0=dynamic_cast<AliAODConversionPhoton*>(fClusterCandidates->At(firstGammaIndex));
+                       if (gamma0==NULL) continue;
+                       
+                       for(Int_t secondGammaIndex=0;secondGammaIndex<fClusterCandidates->GetEntries();secondGammaIndex++){
+                               if (firstGammaIndex == secondGammaIndex) continue;
+                               AliAODConversionPhoton *gamma1=dynamic_cast<AliAODConversionPhoton*>(fClusterCandidates->At(secondGammaIndex));
+                               if (gamma1==NULL) continue;
+                               
+                               AliAODConversionMother *pi0cand = new AliAODConversionMother(gamma0,gamma1);
+                               pi0cand->SetLabels(firstGammaIndex,secondGammaIndex);
+
+                               if((((AliConversionMesonCuts*)fNeutralPionMesonCutArray->At(fiCut))->MesonIsSelected(pi0cand,kTRUE,((AliConvEventCuts*)fEventCutArray->At(fiCut))->GetEtaShift()))){
+                                       fHistoGammaGammaInvMassPt[fiCut]->Fill(pi0cand->M(),pi0cand->Pt());
+                                       if (pi0cand->M() > ((AliConversionMesonCuts*)fNeutralPionMesonCutArray->At(fiCut))->GetSelectionLow() && pi0cand->M() < ((AliConversionMesonCuts*)fNeutralPionMesonCutArray->At(fiCut))->GetSelectionHigh()){
+                                               fNeutralPionCandidates->Add(pi0cand);
+//                                             cout << "Pi0 candidate " << pi0cand->M() << "\t" << pi0cand->Pt() << endl;
+                                       }       
+                               
+                                       if(fIsMC){
+//                                             if(fInputEvent->IsA()==AliESDEvent::Class())
+                                                       ProcessTrueNeutralPionCandidatesPureCalo(pi0cand,gamma0,gamma1);
+//                                             if(fInputEvent->IsA()==AliAODEvent::Class())
+//                                                     ProcessTrueNeutralPionCandidatesPureConversionsAOD(pi0cand,gamma0,gamma1);
+                                       }
+                               }       
+                       }
+               }
+       }
+}      
+
+//______________________________________________________________________
+void AliAnalysisTaskNeutralMesonToPiPlPiMiPiZero::ProcessTrueNeutralPionCandidatesPureCalo( AliAODConversionMother *Pi0Candidate, AliAODConversionPhoton *TrueGammaCandidate0, AliAODConversionPhoton *TrueGammaCandidate1)
+{
+       // Process True Mesons
+       AliStack *MCStack = fMCEvent->Stack();
+       
+       Bool_t isTruePi0 = kFALSE;
+       Int_t gamma0MCLabel = TrueGammaCandidate0->GetCaloPhotonMCLabel(0);     // get most probable MC label
+       Int_t gamma0MotherLabel = -1;
+       Int_t motherRealLabel = -1;
+       
+       if(gamma0MCLabel != -1){ // Gamma is Combinatorial; MC Particles don't belong to the same Mother
+               TParticle * gammaMC0 = (TParticle*)MCStack->Particle(gamma0MCLabel);
+               if (TrueGammaCandidate0->IsLargestComponentPhoton() || TrueGammaCandidate0->IsLargestComponentElectron()){              // largest component is electro magnetic
+                       // get mother of interest (pi0 or eta)
+                       if (TrueGammaCandidate0->IsLargestComponentPhoton()){                                                                                                           // for photons its the direct mother 
+                               gamma0MotherLabel=gammaMC0->GetMother(0);
+                               motherRealLabel=gammaMC0->GetFirstMother();
+                       } else if (TrueGammaCandidate0->IsLargestComponentElectron()){                                                                                          // for electrons its either the direct mother or for conversions the grandmother
+                               if (TrueGammaCandidate0->IsConversion()){
+                                       gamma0MotherLabel=MCStack->Particle(gammaMC0->GetMother(0))->GetMother(0);
+                                       motherRealLabel=MCStack->Particle(gammaMC0->GetMother(0))->GetMother(0);
+                               } else {
+                                       gamma0MotherLabel=gammaMC0->GetMother(0); 
+                                       motherRealLabel=gammaMC0->GetMother(0); 
+                               }
+                       }
+               }
+       }
+       
+       if (!TrueGammaCandidate1->GetIsCaloPhoton()) AliFatal("CaloPhotonFlag has not been set. Aborting");
+       
+       Int_t gamma1MCLabel = TrueGammaCandidate1->GetCaloPhotonMCLabel(0);     // get most probable MC label
+       Int_t gamma1MotherLabel = -1;
+       // check if 
+       if(gamma1MCLabel != -1){ // Gamma is Combinatorial; MC Particles don't belong to the same Mother
+               // Daughters Gamma 1
+               TParticle * gammaMC1 = (TParticle*)MCStack->Particle(gamma1MCLabel);
+               if (TrueGammaCandidate1->IsLargestComponentPhoton() || TrueGammaCandidate1->IsLargestComponentElectron()){              // largest component is electro magnetic
+                       // get mother of interest (pi0 or eta)
+                       if (TrueGammaCandidate1->IsLargestComponentPhoton()){                                                                                                           // for photons its the direct mother 
+                               gamma1MotherLabel=gammaMC1->GetMother(0);
+                       } else if (TrueGammaCandidate1->IsLargestComponentElectron()){                                                                                          // for electrons its either the direct mother or for conversions the grandmother
+                               if (TrueGammaCandidate1->IsConversion()) gamma1MotherLabel=MCStack->Particle(gammaMC1->GetMother(0))->GetMother(0);
+                               else gamma1MotherLabel=gammaMC1->GetMother(0); 
+                       }
+               }       
+       }
+                       
+       if(gamma0MotherLabel>=0 && gamma0MotherLabel==gamma1MotherLabel){
+               if(((TParticle*)MCStack->Particle(gamma1MotherLabel))->GetPdgCode() == 111){
+                       isTruePi0=kTRUE;
+               }
+       }
+       
+       if(isTruePi0){// True Pion
+               Pi0Candidate->SetTrueMesonValue(1);
+               Pi0Candidate->SetMCLabel(motherRealLabel);
+               fHistoTrueMotherGammaGammaInvMassPt[fiCut]->Fill(Pi0Candidate->M(),Pi0Candidate->Pt());                 
+               if( IsEtaPiPlPiMiPiZeroDaughter(motherRealLabel) ) { 
+                       fHistoTrueMotherGammaGammaFromEtaInvMassPt[fiCut]->Fill(Pi0Candidate->M(),Pi0Candidate->Pt());
+               }
+               if( IsOmegaPiPlPiMiPiZeroDaughter(motherRealLabel) ) { 
+                       fHistoTrueMotherGammaGammaFromOmegaInvMassPt[fiCut]->Fill(Pi0Candidate->M(),Pi0Candidate->Pt());
+               }
+       }
+}
+
+
+
 //______________________________________________________________________
 void AliAnalysisTaskNeutralMesonToPiPlPiMiPiZero::ProcessTrueNeutralPionCandidatesPureConversions(AliAODConversionMother *Pi0Candidate, AliAODConversionPhoton *TrueGammaCandidate0, AliAODConversionPhoton *TrueGammaCandidate1)
 {
@@ -1043,6 +1365,7 @@ void AliAnalysisTaskNeutralMesonToPiPlPiMiPiZero::ProcessTrueNeutralPionCandidat
                }       
        }
 }
+
 //______________________________________________________________________
 void AliAnalysisTaskNeutralMesonToPiPlPiMiPiZero::ProcessTrueNeutralPionCandidatesPureConversionsAOD(AliAODConversionMother *Pi0Candidate, AliAODConversionPhoton *TrueGammaCandidate0, AliAODConversionPhoton *TrueGammaCandidate1)
 {
@@ -1143,6 +1466,134 @@ void AliAnalysisTaskNeutralMesonToPiPlPiMiPiZero::ProcessTrueNeutralPionCandidat
 }
 
 
+//________________________________________________________________________
+void AliAnalysisTaskNeutralMesonToPiPlPiMiPiZero::ProcessNeutralPionCandidatesMixedConvCalo(){
+       
+       // Conversion Gammas
+       if(fGoodConvGammas->GetEntries()>0){
+               // vertex
+               Double_t vertex[3] = {0};
+               InputEvent()->GetPrimaryVertex()->GetXYZ(vertex);
+
+               for(Int_t firstGammaIndex=0;firstGammaIndex<fGoodConvGammas->GetEntries();firstGammaIndex++){
+                       AliAODConversionPhoton *gamma0=dynamic_cast<AliAODConversionPhoton*>(fGoodConvGammas->At(firstGammaIndex));
+                       if (gamma0==NULL) continue;
+                       
+                       for(Int_t secondGammaIndex=0;secondGammaIndex<fClusterCandidates->GetEntries();secondGammaIndex++){
+                               Bool_t matched = kFALSE;
+                               AliAODConversionPhoton *gamma1=dynamic_cast<AliAODConversionPhoton*>(fClusterCandidates->At(secondGammaIndex));
+                               if (gamma1==NULL) continue;
+                               
+                               if (gamma1->GetIsCaloPhoton()){
+                                       AliVCluster* cluster = fInputEvent->GetCaloCluster(gamma1->GetCaloClusterRef());
+                                       matched = ((AliCaloPhotonCuts*)fClusterCutArray->At(fiCut))->MatchConvPhotonToCluster(gamma0,cluster, fInputEvent );
+                               }       
+                               
+                               AliAODConversionMother *pi0cand = new AliAODConversionMother(gamma0,gamma1);
+                               pi0cand->SetLabels(firstGammaIndex,secondGammaIndex);
+                               
+                               if((((AliConversionMesonCuts*)fNeutralPionMesonCutArray->At(fiCut))->MesonIsSelected(pi0cand,kTRUE,((AliConvEventCuts*)fEventCutArray->At(fiCut))->GetEtaShift()))){
+                                       if (!matched){
+                                               fHistoGammaGammaInvMassPt[fiCut]->Fill(pi0cand->M(),pi0cand->Pt());
+                                               if (pi0cand->M() > ((AliConversionMesonCuts*)fNeutralPionMesonCutArray->At(fiCut))->GetSelectionLow() && pi0cand->M() < ((AliConversionMesonCuts*)fNeutralPionMesonCutArray->At(fiCut))->GetSelectionHigh()){
+                                                       fNeutralPionCandidates->Add(pi0cand);
+       //                                              cout << "Pi0 candidate " << pi0cand->M() << "\t" << pi0cand->Pt() << endl;
+                                               }       
+                                       
+                                               if(fIsMC){
+//                                                     if(fInputEvent->IsA()==AliESDEvent::Class())
+                                                               ProcessTrueNeutralPionCandidatesMixedConvCalo(pi0cand,gamma0,gamma1);
+//                                                     if(fInputEvent->IsA()==AliAODEvent::Class())
+//                                                             ProcessTrueMesonCandidatesAOD(pi0cand,gamma0,gamma1, matched);
+                                               }
+                                       }
+                               }
+                       }
+               }
+       }
+}
+
+//______________________________________________________________________
+void AliAnalysisTaskNeutralMesonToPiPlPiMiPiZero::ProcessTrueNeutralPionCandidatesMixedConvCalo( AliAODConversionMother *Pi0Candidate, AliAODConversionPhoton *TrueGammaCandidate0, AliAODConversionPhoton *TrueGammaCandidate1)
+{
+       // Process True Mesons
+       AliStack *MCStack = fMCEvent->Stack();
+       if(TrueGammaCandidate0->GetV0Index()<fInputEvent->GetNumberOfV0s()){
+               Bool_t isTruePi0 = kFALSE;
+               Bool_t isTruePi0Dalitz = kFALSE;
+               Bool_t gamma0DalitzCand = kFALSE;
+               
+               Int_t gamma0MCLabel = TrueGammaCandidate0->GetMCParticleLabel(MCStack);
+               Int_t gamma0MotherLabel = -1;
+               Int_t motherRealLabel = -1;
+               if(gamma0MCLabel != -1){ // Gamma is Combinatorial; MC Particles don't belong to the same Mother
+                       // Daughters Gamma 0
+                       TParticle * negativeMC = (TParticle*)TrueGammaCandidate0->GetNegativeMCDaughter(MCStack);
+                       TParticle * positiveMC = (TParticle*)TrueGammaCandidate0->GetPositiveMCDaughter(MCStack);
+                       TParticle * gammaMC0 = (TParticle*)MCStack->Particle(gamma0MCLabel);
+                       if(abs(negativeMC->GetPdgCode())==11 && abs(positiveMC->GetPdgCode())==11){  // Electrons ...
+                               if(negativeMC->GetUniqueID() == 5 && positiveMC->GetUniqueID() ==5){ // ... From Conversion ...
+                                       if(gammaMC0->GetPdgCode() == 22){ // ... with Gamma Mother
+                                               gamma0MotherLabel=gammaMC0->GetFirstMother();
+                                               motherRealLabel=gammaMC0->GetFirstMother();
+                                       }
+                               }
+                               if(gammaMC0->GetPdgCode() ==111){ // Dalitz candidate
+                                       gamma0DalitzCand = kTRUE;
+                                       gamma0MotherLabel=-111;
+                                       motherRealLabel=gamma0MCLabel;
+                               }
+
+                       }
+               }
+               
+               if (!TrueGammaCandidate1->GetIsCaloPhoton()) AliFatal("CaloPhotonFlag has not been set. Aborting");
+               
+               Int_t gamma1MCLabel = TrueGammaCandidate1->GetCaloPhotonMCLabel(0);     // get most probable MC label
+               Int_t gamma1MotherLabel = -1;
+               // check if 
+
+               if(gamma1MCLabel != -1){ // Gamma is Combinatorial; MC Particles don't belong to the same Mother
+                       // Daughters Gamma 1
+                       TParticle * gammaMC1 = (TParticle*)MCStack->Particle(gamma1MCLabel);
+                       if (TrueGammaCandidate1->IsLargestComponentPhoton() || TrueGammaCandidate1->IsLargestComponentElectron()){              // largest component is electro magnetic
+                               // get mother of interest (pi0 or eta)
+                               if (TrueGammaCandidate1->IsLargestComponentPhoton()){                                                                                                           // for photons its the direct mother 
+                                       gamma1MotherLabel=gammaMC1->GetMother(0);
+                               } else if (TrueGammaCandidate1->IsLargestComponentElectron()){                                                                                          // for electrons its either the direct mother or for conversions the grandmother
+                                       if (TrueGammaCandidate1->IsConversion()) gamma1MotherLabel=MCStack->Particle(gammaMC1->GetMother(0))->GetMother(0);
+                                       else gamma1MotherLabel=gammaMC1->GetMother(0); 
+                               }
+                       }       
+               }
+                               
+               if(gamma0MotherLabel>=0 && gamma0MotherLabel==gamma1MotherLabel){
+                       if(((TParticle*)MCStack->Particle(gamma1MotherLabel))->GetPdgCode() == 111){
+                               isTruePi0=kTRUE;
+                       }
+               }
+               
+               if (gamma0DalitzCand ){
+                       if (gamma0DalitzCand && gamma0MCLabel >=0 && gamma0MCLabel==gamma1MotherLabel){
+                               if (gamma0MotherLabel == -111) isTruePi0Dalitz = kTRUE;
+                       }       
+               }
+                       
+               if(isTruePi0 || isTruePi0Dalitz ){
+                       Pi0Candidate->SetTrueMesonValue(1);
+                       Pi0Candidate->SetMCLabel(motherRealLabel);
+                       fHistoTrueMotherGammaGammaInvMassPt[fiCut]->Fill(Pi0Candidate->M(),Pi0Candidate->Pt());                 
+                       if( IsEtaPiPlPiMiPiZeroDaughter(motherRealLabel) ) { 
+                               fHistoTrueMotherGammaGammaFromEtaInvMassPt[fiCut]->Fill(Pi0Candidate->M(),Pi0Candidate->Pt());
+                       }
+                       if( IsOmegaPiPlPiMiPiZeroDaughter(motherRealLabel) ) { 
+                               fHistoTrueMotherGammaGammaFromOmegaInvMassPt[fiCut]->Fill(Pi0Candidate->M(),Pi0Candidate->Pt());
+                       }
+               }
+       }
+}
+
+
 
 //________________________________________________________________________
 void AliAnalysisTaskNeutralMesonToPiPlPiMiPiZero::ProcessPionCandidates(){
@@ -1243,13 +1694,15 @@ void AliAnalysisTaskNeutralMesonToPiPlPiMiPiZero::ProcessPionCandidates(){
                                }                               
                        }
                        
-                       AliAODConversionPhoton *vParticle = new AliAODConversionPhoton(virtualPhoton); //To Apply PsiPairCut
+                       AliAODConversionPhoton *vParticle = new AliAODConversionPhoton(virtualPhoton); //To apply mass 2 pion mass cut
                        if (((AliPrimaryPionCuts*)fPionCutArray->At(fiCut))->DoMassCut()){
                                if (vParticle->GetMass() < ((AliPrimaryPionCuts*)fPionCutArray->At(fiCut))->GetMassCut()){
                                        fGoodVirtualParticles->Add(  vParticle );
+                                       fHistoPionPionInvMassPt[fiCut]->Fill( vParticle->GetMass(),vParticle->Pt());
                                }
                        } else {
                                fGoodVirtualParticles->Add(  vParticle );
+                               fHistoPionPionInvMassPt[fiCut]->Fill( vParticle->GetMass(),vParticle->Pt());
                        }       
 
                        Double_t clsToFPos = -1.0;
@@ -1260,7 +1713,7 @@ void AliAnalysisTaskNeutralMesonToPiPlPiMiPiZero::ProcessPionCandidates(){
                        Float_t dcaToVertexXYNeg = -1.0;
                        Float_t dcaToVertexZNeg  = -1.0;
                        
-                       fHistoPionPionInvMassPt[fiCut]->Fill( vParticle->GetMass(),vParticle->Pt());
+                       
                        
                        if ( fDoMesonQA ) {     
                                clsToFPos = ((AliPrimaryPionCuts*)fPionCutArray->At(fiCut))->GetNFindableClustersTPC(posPionCandidate);
@@ -1307,18 +1760,35 @@ void AliAnalysisTaskNeutralMesonToPiPlPiMiPiZero::ProcessPionCandidates(){
 
                        if (fMCEvent){
                                if (fPositiveMCParticle && fNegativeMCParticle ) {
-                                       if(TMath::Abs(fNegativeMCParticle->GetPdgCode())==211 && TMath::Abs(fPositiveMCParticle->GetPdgCode())==211){  // Pions ...
-                                               fHistoTruePionPionInvMassPt[fiCut]->Fill(vParticle->GetMass(),vParticle->Pt());
-                                               if (motherlabeln == motherlabelp){
-                                                       fHistoTruePionPionFromSameMotherInvMassPt[fiCut]->Fill(vParticle->GetMass(),vParticle->Pt());
-                                                       if( IsEtaPiPlPiMiPiZeroDaughter(labeln) ) { //|| IsOmegaPiPlPiMiPiZeroDaughter(labeln) 
-                                                               fHistoTruePionPionFromEtaInvMassPt[fiCut]->Fill(vParticle->GetMass(),vParticle->Pt());
+                                       if (((AliPrimaryPionCuts*)fPionCutArray->At(fiCut))->DoMassCut()){
+                                               if (vParticle->GetMass() < ((AliPrimaryPionCuts*)fPionCutArray->At(fiCut))->GetMassCut()){
+                                                       if(TMath::Abs(fNegativeMCParticle->GetPdgCode())==211 && TMath::Abs(fPositiveMCParticle->GetPdgCode())==211){  // Pions ...
+                                                               fHistoTruePionPionInvMassPt[fiCut]->Fill(vParticle->GetMass(),vParticle->Pt());
+                                                               if (motherlabeln == motherlabelp){
+                                                                       fHistoTruePionPionFromSameMotherInvMassPt[fiCut]->Fill(vParticle->GetMass(),vParticle->Pt());
+                                                                       if( IsEtaPiPlPiMiPiZeroDaughter(labeln) ) { //|| IsOmegaPiPlPiMiPiZeroDaughter(labeln) 
+                                                                               fHistoTruePionPionFromEtaInvMassPt[fiCut]->Fill(vParticle->GetMass(),vParticle->Pt());
+                                                                       }
+                                                                       if( IsOmegaPiPlPiMiPiZeroDaughter(labeln) ) { //||  
+                                                                               fHistoTruePionPionFromOmegaInvMassPt[fiCut]->Fill(vParticle->GetMass(),vParticle->Pt());
+                                                                       }
+                                                               }
                                                        }
-                                                       if( IsOmegaPiPlPiMiPiZeroDaughter(labeln) ) { //||  
-                                                               fHistoTruePionPionFromOmegaInvMassPt[fiCut]->Fill(vParticle->GetMass(),vParticle->Pt());
+                                               }
+                                       } else { 
+                                               if(TMath::Abs(fNegativeMCParticle->GetPdgCode())==211 && TMath::Abs(fPositiveMCParticle->GetPdgCode())==211){  // Pions ...
+                                                       fHistoTruePionPionInvMassPt[fiCut]->Fill(vParticle->GetMass(),vParticle->Pt());
+                                                       if (motherlabeln == motherlabelp){
+                                                               fHistoTruePionPionFromSameMotherInvMassPt[fiCut]->Fill(vParticle->GetMass(),vParticle->Pt());
+                                                               if( IsEtaPiPlPiMiPiZeroDaughter(labeln) ) { //|| IsOmegaPiPlPiMiPiZeroDaughter(labeln) 
+                                                                       fHistoTruePionPionFromEtaInvMassPt[fiCut]->Fill(vParticle->GetMass(),vParticle->Pt());
+                                                               }
+                                                               if( IsOmegaPiPlPiMiPiZeroDaughter(labeln) ) { //||  
+                                                                       fHistoTruePionPionFromOmegaInvMassPt[fiCut]->Fill(vParticle->GetMass(),vParticle->Pt());
+                                                               }
                                                        }
                                                }
-                                       }
+                                       }       
                                }       
                        }
                                                
@@ -1347,27 +1817,43 @@ void AliAnalysisTaskNeutralMesonToPiPlPiMiPiZero::ProcessMCParticles(){
                }
 
                if(((AliConvEventCuts*)fEventCutArray->At(fiCut))->IsParticleFromBGEvent(i, fMCStack,fInputEvent)){
-                       
                        // find MC photons 
-                       if(((AliConversionPhotonCuts*)fGammaCutArray->At(fiCut))->PhotonIsSelectedMC(particle,fMCStack,kFALSE)){
-                               fHistoMCAllGammaPt[fiCut]->Fill(particle->Pt()); // All MC Gamma
-                               if(particle->GetMother(0) >-1){
-                                       if (fMCStack->Particle(particle->GetMother(0))->GetPdgCode() ==111){
-                                               if (fMCStack->Particle(particle->GetMother(0))->GetMother(0) > -1){
-                                                       if ( fMCStack->Particle((fMCStack->Particle(particle->GetMother(0)))->GetMother(0))->GetPdgCode() == 221 || 
-                                                                fMCStack->Particle((fMCStack->Particle(particle->GetMother(0)))->GetMother(0))->GetPdgCode() == 223 ){ 
-                                                               if ( fMCStack->Particle(particle->GetMother(0))->GetNDaughters()==3 ) 
-                                                                       fHistoMCGammaFromNeutralMesonPt[fiCut]->Fill(particle->Pt()); // All photons from eta or omega via pi0 
+                       if (fNeutralPionMode < 2){
+                               if(((AliConversionPhotonCuts*)fGammaCutArray->At(fiCut))->PhotonIsSelectedMC(particle,fMCStack,kFALSE)){
+                                       fHistoMCAllGammaPt[fiCut]->Fill(particle->Pt()); // All MC Gamma
+                                       if(particle->GetMother(0) >-1){
+                                               if (fMCStack->Particle(particle->GetMother(0))->GetPdgCode() ==111){
+                                                       if (fMCStack->Particle(particle->GetMother(0))->GetMother(0) > -1){
+                                                               if ( fMCStack->Particle((fMCStack->Particle(particle->GetMother(0)))->GetMother(0))->GetPdgCode() == 221 || 
+                                                                       fMCStack->Particle((fMCStack->Particle(particle->GetMother(0)))->GetMother(0))->GetPdgCode() == 223 ){ 
+                                                                       if ( fMCStack->Particle(particle->GetMother(0))->GetNDaughters()==3 ) 
+                                                                               fHistoMCGammaFromNeutralMesonPt[fiCut]->Fill(particle->Pt()); // All photons from eta or omega via pi0 
+                                                               }               
                                                        }               
                                                }               
-                                       }               
-                               }       
+                                       }       
+                               }
+                       } else if (fNeutralPionMode == 2){
+                               if(((AliCaloPhotonCuts*)fClusterCutArray->At(fiCut))->ClusterIsSelectedMC(particle,fMCStack)){
+                                       fHistoMCAllGammaPt[fiCut]->Fill(particle->Pt()); // All MC Gamma
+                                       if(particle->GetMother(0) >-1){
+                                               if (fMCStack->Particle(particle->GetMother(0))->GetPdgCode() ==111){
+                                                       if (fMCStack->Particle(particle->GetMother(0))->GetMother(0) > -1){
+                                                               if ( fMCStack->Particle((fMCStack->Particle(particle->GetMother(0)))->GetMother(0))->GetPdgCode() == 221 || 
+                                                                       fMCStack->Particle((fMCStack->Particle(particle->GetMother(0)))->GetMother(0))->GetPdgCode() == 223 ){ 
+                                                                       if ( fMCStack->Particle(particle->GetMother(0))->GetNDaughters()==3 ) 
+                                                                               fHistoMCGammaFromNeutralMesonPt[fiCut]->Fill(particle->Pt()); // All photons from eta or omega via pi0 
+                                                               }               
+                                                       }               
+                                               }               
+                                       }       
+                               }
+                       }       
+                       if (fNeutralPionMode < 2){
+                               if (((AliConversionPhotonCuts*)fGammaCutArray->At(fiCut))->PhotonIsSelectedMC(particle,fMCStack,kTRUE)){
+                                       fHistoMCConvGammaPt[fiCut]->Fill(particle->Pt());
+                               } // Converted MC Gamma
                        }
-                       
-                       if(((AliConversionPhotonCuts*)fGammaCutArray->At(fiCut))->PhotonIsSelectedMC(particle,fMCStack,kTRUE)){
-                               fHistoMCConvGammaPt[fiCut]->Fill(particle->Pt());
-                       } // Converted MC Gamma
-                       
                        if(((AliPrimaryPionCuts*)fPionCutArray->At(fiCut))->PionIsSelectedMC(i,fMCStack)){
                                if( particle->GetPdgCode() == 211){
                                        fHistoMCAllPosPionsPt[fiCut]->Fill(particle->Pt()); // All pos pions
@@ -1406,15 +1892,28 @@ void AliAnalysisTaskNeutralMesonToPiPlPiMiPiZero::ProcessMCParticles(){
                                TParticle *neutPion    = fMCStack->Particle(labelNeutPion);
                                TParticle *gamma1 = fMCStack->Particle(neutPion->GetDaughter(0));
                                TParticle *gamma2 = fMCStack->Particle(neutPion->GetDaughter(1));
-                               if(
-                                       ((AliConversionPhotonCuts*)fGammaCutArray->At(fiCut))->PhotonIsSelectedMC(gamma1,fMCStack,kFALSE) &&                                    // test first daugther of pi0
-                                       ((AliConversionPhotonCuts*)fGammaCutArray->At(fiCut))->PhotonIsSelectedMC(gamma2,fMCStack,kFALSE) &&                                    // test second daughter of pi0
-                                       ((AliPrimaryPionCuts*)fPionCutArray->At(fiCut))->PionIsSelectedMC(labelNegPion,fMCStack) &&                                                             // test negative pion
-                                       ((AliPrimaryPionCuts*)fPionCutArray->At(fiCut))->PionIsSelectedMC(labelPosPion,fMCStack)                                                                // test positive pion
-                                  ) {
-                                               if(particle->GetPdgCode() == 221) fHistoMCEtaPiPlPiMiPiZeroInAccPt[fiCut]->Fill(particle->Pt(), weighted );             // MC Eta pi+ pi- pi0 with gamma's and e+e- in acc
-                                               if(particle->GetPdgCode() == 223) fHistoMCOmegaPiPlPiMiPiZeroInAccPt[fiCut]->Fill(particle->Pt(), weighted );           // MC Omega pi+ pi- pi0 with gamma's and e+e- in acc
-                               }                               
+                               if (fNeutralPionMode == 0){                                     
+                                       if(
+                                               ((AliConversionPhotonCuts*)fGammaCutArray->At(fiCut))->PhotonIsSelectedMC(gamma1,fMCStack,kFALSE) &&                                    // test first daugther of pi0
+                                               ((AliConversionPhotonCuts*)fGammaCutArray->At(fiCut))->PhotonIsSelectedMC(gamma2,fMCStack,kFALSE) &&                                    // test second daughter of pi0
+                                               ((AliPrimaryPionCuts*)fPionCutArray->At(fiCut))->PionIsSelectedMC(labelNegPion,fMCStack) &&                                                             // test negative pion
+                                               ((AliPrimaryPionCuts*)fPionCutArray->At(fiCut))->PionIsSelectedMC(labelPosPion,fMCStack)                                                                // test positive pion
+                                       ) {
+                                                       if(particle->GetPdgCode() == 221) fHistoMCEtaPiPlPiMiPiZeroInAccPt[fiCut]->Fill(particle->Pt(), weighted );             // MC Eta pi+ pi- pi0 with gamma's and e+e- in acc
+                                                       if(particle->GetPdgCode() == 223) fHistoMCOmegaPiPlPiMiPiZeroInAccPt[fiCut]->Fill(particle->Pt(), weighted );           // MC Omega pi+ pi- pi0 with gamma's and e+e- in acc
+                                       }                               
+                               } else if (fNeutralPionMode == 2){
+                                       if(
+                                               ((AliCaloPhotonCuts*)fClusterCutArray->At(fiCut))->ClusterIsSelectedMC(gamma1,fMCStack) &&                                      // test first daugther of pi0
+                                               ((AliCaloPhotonCuts*)fClusterCutArray->At(fiCut))->ClusterIsSelectedMC(gamma2,fMCStack) &&                                      // test second daughter of pi0
+                                               ((AliPrimaryPionCuts*)fPionCutArray->At(fiCut))->PionIsSelectedMC(labelNegPion,fMCStack) &&                                                             // test negative pion
+                                               ((AliPrimaryPionCuts*)fPionCutArray->At(fiCut))->PionIsSelectedMC(labelPosPion,fMCStack)                                                                // test positive pion
+                                       ) {
+                                                       if(particle->GetPdgCode() == 221) fHistoMCEtaPiPlPiMiPiZeroInAccPt[fiCut]->Fill(particle->Pt(), weighted );             // MC Eta pi+ pi- pi0 with gamma's and e+e- in acc
+                                                       if(particle->GetPdgCode() == 223) fHistoMCOmegaPiPlPiMiPiZeroInAccPt[fiCut]->Fill(particle->Pt(), weighted );           // MC Omega pi+ pi- pi0 with gamma's and e+e- in acc
+                                       }
+                               }       
+                                       
                        }
                }
        }
@@ -1448,7 +1947,8 @@ void AliAnalysisTaskNeutralMesonToPiPlPiMiPiZero::CalculateMesonCandidates(){
                                        if( ((AliConversionMesonCuts*)fMesonCutArray->At(fiCut))->UseTrackMultiplicity()){
                                                mbin = fBGHandler[fiCut]->GetMultiplicityBinIndex(fNumberOfESDTracks);
                                        } else {
-                                               mbin = fBGHandler[fiCut]->GetMultiplicityBinIndex(fGoodGammas->GetEntries());
+                                               if (fNeutralPionMode < 2) mbin = fBGHandler[fiCut]->GetMultiplicityBinIndex(fGoodConvGammas->GetEntries());
+                                               else mbin = fBGHandler[fiCut]->GetMultiplicityBinIndex(fClusterCandidates->GetEntries());
                                        }
                                                                                
                                        fHistoMotherInvMassPt[fiCut]->Fill(mesoncand->M(),mesoncand->Pt());
@@ -1476,7 +1976,8 @@ void AliAnalysisTaskNeutralMesonToPiPlPiMiPiZero::CalculateBackground(){
        if(((AliConversionMesonCuts*)fMesonCutArray->At(fiCut))->UseTrackMultiplicity()){
                mbin = fBGHandler[fiCut]->GetMultiplicityBinIndex(fNumberOfESDTracks);
        } else {
-               mbin = fBGHandler[fiCut]->GetMultiplicityBinIndex(fGoodGammas->GetEntries());
+               if (fNeutralPionMode < 2) mbin = fBGHandler[fiCut]->GetMultiplicityBinIndex(fGoodConvGammas->GetEntries());
+               else mbin = fBGHandler[fiCut]->GetMultiplicityBinIndex(fClusterCandidates->GetEntries());
        }
 
        Int_t method = 1;
@@ -1638,8 +2139,9 @@ void AliAnalysisTaskNeutralMesonToPiPlPiMiPiZero::UpdateEventByEventData(){
                if(fNeutralPionCandidates->GetEntries() >0 ){
                        if(((AliConversionMesonCuts*)fMesonCutArray->At(fiCut))->UseTrackMultiplicity()){
                                fBGHandler[fiCut]->AddMesonEvent(fNeutralPionCandidates,fInputEvent->GetPrimaryVertex()->GetX(),fInputEvent->GetPrimaryVertex()->GetY(),fInputEvent->GetPrimaryVertex()->GetZ(),fV0Reader->GetNumberOfPrimaryTracks(),0);
-                       } else{ // means we use #V0s for multiplicity
-                               fBGHandler[fiCut]->AddMesonEvent(fNeutralPionCandidates,fInputEvent->GetPrimaryVertex()->GetX(),fInputEvent->GetPrimaryVertex()->GetY(),fInputEvent->GetPrimaryVertex()->GetZ(),fGoodGammas->GetEntries(),0);
+                       } else { // means we use #V0s for multiplicity
+                               if (fNeutralPionMode < 2) fBGHandler[fiCut]->AddMesonEvent(fNeutralPionCandidates,fInputEvent->GetPrimaryVertex()->GetX(),fInputEvent->GetPrimaryVertex()->GetY(),fInputEvent->GetPrimaryVertex()->GetZ(),fGoodConvGammas->GetEntries(),0);
+                               else fBGHandler[fiCut]->AddMesonEvent(fNeutralPionCandidates,fInputEvent->GetPrimaryVertex()->GetX(),fInputEvent->GetPrimaryVertex()->GetY(),fInputEvent->GetPrimaryVertex()->GetZ(),fClusterCandidates->GetEntries(),0);
                        }
                }
        } else if ( method == 2 ){
index a99d92ec3cdb52927d6a81d9031a949d5bf3c353..88dc959a810200430d7cc9998632fa39a58c0288 100644 (file)
@@ -11,6 +11,7 @@
 #include "AliPrimaryPionSelector.h"
 #include "AliConversionMesonCuts.h"
 #include "AliConvEventCuts.h"
+#include "AliCaloPhotonCuts.h"
 #include "AliGammaConversionAODBGHandler.h"
 #include "TProfile2D.h"
 
@@ -20,7 +21,6 @@ class AliESDEvent;
 class AliESDtrack;
 class AliESDtrackCuts;
 class AliESDpidCuts;
-class AliV0Reader;
 class AliTriggerAnalysis;
 
 class AliAnalysisTaskNeutralMesonToPiPlPiMiPiZero: public AliAnalysisTaskSE
@@ -38,7 +38,6 @@ class AliAnalysisTaskNeutralMesonToPiPlPiMiPiZero: public AliAnalysisTaskSE
 
                        
                void SetMoveParticleAccordingToVertex(Bool_t flag){fMoveParticleAccordingToVertex = flag;}
-                       
                void SetIsHeavyIon(Int_t flag){
                        if (flag == 1 || flag ==2 ){
                                fIsHeavyIon = 1;    
@@ -48,37 +47,47 @@ class AliAnalysisTaskNeutralMesonToPiPlPiMiPiZero: public AliAnalysisTaskSE
                }
                
                void SetIsMC(Bool_t isMC){fIsMC=isMC;}
-               void SetConversionCutList(Int_t nCuts, TList *CutArray){
-                       fnCuts= nCuts;
-                       fGammaCutArray = CutArray;
-               }
-               void SetEventCutList(Int_t nCuts, TList *CutArray){
-                       fnCuts= nCuts;
+               void SetEventCutList(Int_t nCuts, TList *CutArray){ 
+                       fnCuts= nCuts;  
                        fEventCutArray = CutArray;
                }
-
-               void SetPionCutList(TList *CutArray){
-                       fPionCutArray = CutArray;
-               }
-               void SetNeutralPionCutList(TList *CutArray){
-                       fNeutralPionMesonCutArray = CutArray;
-               }
-               void SetMesonCutList(TList *CutArray){
-                       fMesonCutArray = CutArray;
-               }
+               void SetConversionCutList(TList *CutArray){ fGammaCutArray = CutArray;}
+               void SetClusterCutList(TList *CutArray){ fClusterCutArray = CutArray;}
+               void SetPionCutList(TList *CutArray){ fPionCutArray = CutArray;}
+               void SetNeutralPionCutList(TList *CutArray){ fNeutralPionMesonCutArray = CutArray; }
+               void SetMesonCutList(TList *CutArray){ fMesonCutArray = CutArray; }
                void SetDoMesonQA(Bool_t flag){ fDoMesonQA = flag; }
+               void SetNeutralPionMode(Int_t mode){fNeutralPionMode = mode; }
        
 
        private:
 
                void InitBack();
-               void ProcessPhotonCandidates();
-               void ProcessTruePhotonCandidates(AliAODConversionPhoton*);
+               
+               // routines for photon selection from conversions
+               void ProcessConversionPhotonCandidates();
+               void ProcessTrueConversionPhotonCandidates(AliAODConversionPhoton*);
+               
+               // routines for photon selection from clusters
+               void ProcessCaloPhotonCandidates();
+               void ProcessTrueCaloPhotonCandidates(AliAODConversionPhoton *TruePhotonCandidate);
+               
                void ProcessTrueMesonCandidates(AliAODConversionMother *Pi0Candidate, AliAODConversionMother *TrueNeutralPionCandidate, AliAODConversionPhoton *TrueVirtualGammaCandidate);
                void MoveParticleAccordingToVertex(AliAODConversionMother* particle,const AliGammaConversionAODBGHandler::GammaConversionVertex *vertex);
-       void ProcessNeutralPionCandidatesPureConversions();     
+       
+               // routines for neutral pion candidates from pure conversion
+               void ProcessNeutralPionCandidatesPureConversions();     
                void ProcessTrueNeutralPionCandidatesPureConversions(AliAODConversionMother *Pi0Candidate, AliAODConversionPhoton *TrueGammaCandidate0, AliAODConversionPhoton *TrueGammaCandidate1);
                void ProcessTrueNeutralPionCandidatesPureConversionsAOD(AliAODConversionMother *Pi0Candidate, AliAODConversionPhoton *TrueGammaCandidate0, AliAODConversionPhoton *TrueGammaCandidate1);
+               
+               // routines for neutral pion candidates from pure calo
+               void ProcessNeutralPionCandidatesPureCalo();
+               void ProcessTrueNeutralPionCandidatesPureCalo(AliAODConversionMother *Pi0Candidate, AliAODConversionPhoton *TrueGammaCandidate0, AliAODConversionPhoton *TrueGammaCandidate1);
+
+               // routines for neutral pion candidates from mixed conv + calo
+               void ProcessNeutralPionCandidatesMixedConvCalo();
+               void ProcessTrueNeutralPionCandidatesMixedConvCalo( AliAODConversionMother *Pi0Candidate, AliAODConversionPhoton *TrueGammaCandidate0, AliAODConversionPhoton *TrueGammaCandidate1);
+               
                void ProcessPionCandidates();
                void ProcessMCParticles();
                void CalculateMesonCandidates();
@@ -90,75 +99,82 @@ class AliAnalysisTaskNeutralMesonToPiPlPiMiPiZero: public AliAnalysisTaskSE
                Bool_t IsOmegaPiPlPiMiPiZeroDaughter( Int_t label ) const;
                Bool_t GammaIsNeutralMesonPiPlPiMiPiZeroDaughter( Int_t label ) const;
 
-               AliV0ReaderV1                                   *fV0Reader;                                                                     //
-               AliPrimaryPionSelector                  *fPionSelector;                                                         //
-               AliGammaConversionAODBGHandler  **fBGHandler;                                                           //
-               AliESDEvent                                     *fESDEvent;                                                                     //
-               AliMCEvent                                              *fMCEvent;                                                                      //
-               AliStack                                                *fMCStack;                                                                      //
-               TList                                                   **fCutFolder;                                                           //
-               TList                                                   **fESDList;                                                                     //
-               TList                                                   **fBackList;                                                            //
-               TList                                                   **fMotherList;                                                          //
-               TList                                                   **fTrueList;                                                            //
-               TList                                                   **fMCList;                                                                      //
-               TList                                                   *fOutputContainer;                                                      //
-               TClonesArray                                    *fReaderGammas;                                                         //
-               vector<Int_t>                                   fSelectorNegPionIndex;                                          //
-               vector<Int_t>                                   fSelectorPosPionIndex;                                          //
-               TList                                                   *fGoodGammas;                                                           //
-               TList                                                   *fNeutralPionCandidates;                                        //
-               TList                                                   *fGoodVirtualParticles;                                         //
-               TList                                                   *fEventCutArray;                                                        //
-               TList                                                   *fGammaCutArray;                                                        //
-               TList                                                   *fPionCutArray;                                                         //
-               TList                                                   *fNeutralPionMesonCutArray;                                     //
-               TList                                                   *fMesonCutArray;                                                        //
-               AliConvEventCuts                                *fEventCuts;                                                            //
-               AliConversionPhotonCuts                 *fConversionCuts;                                                       //
+               AliV0ReaderV1                                   *fV0Reader;                                                                     // V0Reader for basic conversion photon selection
+               AliPrimaryPionSelector                  *fPionSelector;                                                         // primary charged pion selector, basic selection of pi+,pi-
+               AliGammaConversionAODBGHandler  **fBGHandler;                                                           // BG handler
+               AliESDEvent                                     *fESDEvent;                                                                     // current event
+               AliMCEvent                                              *fMCEvent;                                                                      // current MC event
+               AliStack                                                *fMCStack;                                                                      // current MC stack
+               TList                                                   **fCutFolder;                                                           // list of output folders with main cut name 
+               TList                                                   **fESDList;                                                                     // list with main output histograms for data
+               TList                                                   **fBackList;                                                            // list with THnSparseF for BG 
+               TList                                                   **fMotherList;                                                          // list with THnSparseF for FG 
+               TList                                                   **fTrueList;                                                            // list with validated reconstructed MC histograms
+               TList                                                   **fMCList;                                                                      // list with pure MC histograms
+               TList                                                   *fOutputContainer;                                                      // output container
+               TClonesArray                                    *fReaderGammas;                                                         // array with photon from fV0Reader
+               vector<Int_t>                                   fSelectorNegPionIndex;                                          // array with pion indices for negative pions from fPionSelector
+               vector<Int_t>                                   fSelectorPosPionIndex;                                          // array with pion indices for positive pions from fPionSelector
+               TList                                                   *fGoodConvGammas;                                                       // good conv gammas after selection
+               TList                                                   *fClusterCandidates;                                            //! good calo gammas after selection 
+               TList                                                   *fNeutralPionCandidates;                                        // good neutral pion candidates
+               TList                                                   *fGoodVirtualParticles;                                         // combination of pi+pi- candidates
+               TList                                                   *fEventCutArray;                                                        // array with event cuts
+               TList                                                   *fGammaCutArray;                                                        // array with Conversion Cuts
+               TList                                                   *fClusterCutArray;                                                      // array with Cluster Cuts
+               TList                                                   *fPionCutArray;                                                         // array with charged pion cuts
+               TList                                                   *fNeutralPionMesonCutArray;                                     // array with neutral pion cuts
+               TList                                                   *fMesonCutArray;                                                        // array with neutral meson cuts
+               AliConvEventCuts                                *fEventCuts;                                                            // current event cuts
+               AliConversionPhotonCuts                 *fConversionCuts;                                                       // current conversion cuts
+               AliCaloPhotonCuts                               *fClusterCuts;                                                          // current cluster cuts
                
                // reconstructed particles
-               TH1F                                                    **fHistoConvGammaPt;                                            //
-               TH1F                                                    **fHistoConvGammaEta;                                           //
-               TH1F                                                    **fHistoNegPionPt;                                                      //
-               TH1F                                                    **fHistoPosPionPt;                                                      //
-               TH1F                                                    **fHistoNegPionPhi;                                                     //
-               TH1F                                                    **fHistoPosPionPhi;                                                     //
-               TH1F                                                    **fHistoNegPionEta;                                                     //
-               TH1F                                                    **fHistoPosPionEta;                                                     //
-               TH2F                                                    **fHistoNegPionClsTPC;                                          //
-               TH2F                                                    **fHistoPosPionClsTPC;                                          //
-               TH2F                                                    **fHistoPionDCAxy;                                                      //
-               TH2F                                                    **fHistoPionDCAz;                                                       //
-               TH2F                                                    **fHistoPionTPCdEdxNSigma;                                      //
-               TH2F                                                    **fHistoPionTPCdEdx;                                            //
-               TH2F                                                    **fHistoPionPionInvMassPt;                                      //
-               TH2F                                                    **fHistoGammaGammaInvMassPt;                            //
-               TH2F                                                    **fHistoMotherInvMassPt;                                        //
-               THnSparseF                                              **fTHnSparseMotherInvMassPtZM;                          //
-               TH2F                                                    **fHistoMotherBackInvMassPt;                            //
-               THnSparseF                                              **fTHnSparseMotherBackInvMassPtZM;                      //
+               TH1F                                                    **fHistoConvGammaPt;                                            // array of histos of conversion photon, pt
+               TH1F                                                    **fHistoConvGammaEta;                                           // array of histos of conversion photon, eta
+               TH1F                                                    **fHistoClusterGammaPt;                                         // array of histos of Cluster photon, pt
+               TH1F                                                    **fHistoClusterGammaEta;                                        // array of histos of Cluster photon, eta
+               TH1F                                                    **fHistoNegPionPt;                                                      // array of histos of negative pion, pt
+               TH1F                                                    **fHistoPosPionPt;                                                      // array of histos of positive pion, pt
+               TH1F                                                    **fHistoNegPionPhi;                                                     // array of histos of negative pion, phi
+               TH1F                                                    **fHistoPosPionPhi;                                                     // array of histos of positive pion, phi
+               TH1F                                                    **fHistoNegPionEta;                                                     // array of histos of negative pion, eta
+               TH1F                                                    **fHistoPosPionEta;                                                     // array of histos of positive pion, eta
+               TH2F                                                    **fHistoNegPionClsTPC;                                          // array of histos of negative pion, findable tpc cluster, pT
+               TH2F                                                    **fHistoPosPionClsTPC;                                          // array of histos of positive pion, findable tpc cluster, pT
+               TH2F                                                    **fHistoPionDCAxy;                                                      // array of histos of pion, dca_xy, pT
+               TH2F                                                    **fHistoPionDCAz;                                                       // array of histos of pion, dca_z, pT
+               TH2F                                                    **fHistoPionTPCdEdxNSigma;                                      // array of histos of pion, p, TPC nSigma dEdx pion
+               TH2F                                                    **fHistoPionTPCdEdx;                                            // array of histos of pion, p, TPC dEdx
+               TH2F                                                    **fHistoPionPionInvMassPt;                                      // array of histos of pion pion, invMass, pT_{pi+pi-}
+               TH2F                                                    **fHistoGammaGammaInvMassPt;                            // array of histos of gamma-gamma, invMass, pT_{gamma gamma}
+               TH2F                                                    **fHistoMotherInvMassPt;                                        // array of histos of pi+pi-pi0 same event, invMass, pT_{pi+pi-pi0}
+               THnSparseF                                              **fTHnSparseMotherInvMassPtZM;                          // array of THnSparseF of pi+pi-pi0 same event, invMass, pT_{pi+pi-pi0}, Z, M
+               TH2F                                                    **fHistoMotherBackInvMassPt;                            // array of histos of pi+pi-pi0 mixed event, invMass, pT_{pi+pi-pi0}
+               THnSparseF                                              **fTHnSparseMotherBackInvMassPtZM;                      // array of THnSparseF of pi+pi-pi0 mixed event, invMass, pT_{pi+pi-pi0}, Z, M
                
                // pure MC properties
-               TH1F                                                    **fHistoMCAllGammaPt;                                           //
-               TH1F                                                    **fHistoMCConvGammaPt;                                          //
-               TH1F                                                    **fHistoMCAllPosPionsPt;                                        //
-               TH1F                                                    **fHistoMCAllNegPionsPt;                                        //
-               TH1F                                                    **fHistoMCGammaFromNeutralMesonPt;                      //
-               TH1F                                                    **fHistoMCPosPionsFromNeutralMesonPt;           //
-               TH1F                                                    **fHistoMCNegPionsFromNeutralMesonPt;           //
-               TH1F                                                    **fHistoMCEtaPiPlPiMiPiZeroPt;                          //
-               TH1F                                                    **fHistoMCEtaPiPlPiMiPiZeroInAccPt;                     //
-               TH1F                                                    **fHistoMCOmegaPiPlPiMiPiZeroPt;                        //
-               TH1F                                                    **fHistoMCOmegaPiPlPiMiPiZeroInAccPt;           //
+               TH1F                                                    **fHistoMCAllGammaPt;                                           // array of histos of all produced gammas in the specified y range
+               TH1F                                                    **fHistoMCConvGammaPt;                                          // array of histos of all converted gammas in the specified y range 
+               TH1F                                                    **fHistoMCAllPosPionsPt;                                        // array of histos with all produced primary positive pions in the specified y range
+               TH1F                                                    **fHistoMCAllNegPionsPt;                                        // array of histos with all produced primary negative pions in the specified y range
+               TH1F                                                    **fHistoMCGammaFromNeutralMesonPt;                      // array of histos of all produced gammas from omega or eta via pi+pi-pi0 in the specified y range/
+               TH1F                                                    **fHistoMCPosPionsFromNeutralMesonPt;           // array of histos of all produced positive pions from omega or eta via pi+pi-pi0 in the specified y range/
+               TH1F                                                    **fHistoMCNegPionsFromNeutralMesonPt;           // array of histos of all produced negative pions from omega or eta via pi+pi-pi0 in the specified y range/
+               TH1F                                                    **fHistoMCEtaPiPlPiMiPiZeroPt;                          // array of histos of produced etas via pi+pi-pi0 in the specified y range
+               TH1F                                                    **fHistoMCEtaPiPlPiMiPiZeroInAccPt;                     // array of histos of produced etas via pi+pi-pi0 in the specified y range, with decay products in respective y, eta ranges 
+               TH1F                                                    **fHistoMCOmegaPiPlPiMiPiZeroPt;                        // array of histos of produced omegas via pi+pi-pi0 in the specified y range
+               TH1F                                                    **fHistoMCOmegaPiPlPiMiPiZeroInAccPt;           // array of histos of produced omegas via pi+pi-pi0 in the specified y range, with decay products in respective y, eta ranges 
 
                // reconstructed particles MC validated
                TH2F                                                    **fHistoTrueMotherPiPlPiMiPiZeroInvMassPt;      // histos with reconstructed validated eta or omega, inv mass, pT
                TH2F                                                    **fHistoTrueMotherGammaGammaInvMassPt;          // histos with reconstructed validated pi0, inv mass, pT
                TH2F                                                    **fHistoTrueMotherGammaGammaFromEtaInvMassPt;   // histos with reconstructed validated pi0, inv mass, pT
                TH2F                                                    **fHistoTrueMotherGammaGammaFromOmegaInvMassPt; // histos with reconstructed validated pi0, inv mass, pT
-               TH1F                                                    **fHistoTrueConvGammaPt;                                        // histos with reconstructed validated gamma, pT
-               TH1F                                                    **fHistoTrueConvGammaFromNeutralMesonPt;        // histos with reconstructed validated gamma from eta or omega via pi0, pT
+               TH1F                                                    **fHistoTrueConvGammaPt;                                        // histos with reconstructed validated conv gamma, pT
+               TH1F                                                    **fHistoTrueConvGammaFromNeutralMesonPt;        // histos with reconstructed validated conv gamma from eta or omega via pi0, pT
+               TH1F                                                    **fHistoTrueClusterGammaPt;                                     // histos with reconstructed validated cluster gamma, pT
+               TH1F                                                    **fHistoTrueClusterGammaFromNeutralMesonPt;     // histos with reconstructed validated cluster gamma from eta or omega via pi0, pT
                TH1F                                                    **fHistoTruePosPionPt;                                          // histos with reconstructed validated positive pion, pT
                TH1F                                                    **fHistoTruePosPionFromNeutralMesonPt;          // histos with reconstructed validated positive pion from eta or omega, pT
                TH1F                                                    **fHistoTrueNegPionPt;                                          // histos with reconstructed validated negative pion, pT
@@ -182,12 +198,13 @@ class AliAnalysisTaskNeutralMesonToPiPlPiMiPiZero: public AliAnalysisTaskSE
                Bool_t                                                  fDoMesonQA;                                                                     // Flag for switching on small meson QA
                Bool_t                                                  fIsFromMBHeader;                                                        // Flag for particle whether it belongs to accepted header
                Bool_t                                                  fIsMC;                                                                          // Flag for MC  
+               Int_t                                                   fNeutralPionMode;                                                       // Flag how neutral pion is reconstructed 0=PCM-PCM, 1=PCM-Calo, 2=Calo-Calo
 
        private:
                AliAnalysisTaskNeutralMesonToPiPlPiMiPiZero( const AliAnalysisTaskNeutralMesonToPiPlPiMiPiZero& ); // Not implemented
                AliAnalysisTaskNeutralMesonToPiPlPiMiPiZero& operator=( const AliAnalysisTaskNeutralMesonToPiPlPiMiPiZero& ); // Not implemented
 
-               ClassDef( AliAnalysisTaskNeutralMesonToPiPlPiMiPiZero, 1 );
+               ClassDef( AliAnalysisTaskNeutralMesonToPiPlPiMiPiZero, 2 );
 };
 
 #endif // ALIANALYSISTASKNEUTRALMESONTOPIPLPIMIPIZERO_H
index d1cfa29a2384322d887d9171811c7ca5838ad21e..3b28168e592a62d893756464bc340c588a57220a 100644 (file)
@@ -43,7 +43,7 @@
 #include "AliAODMCHeader.h"
 #include "AliPicoTrack.h"
 #include "AliEMCALRecoUtils.h"
-#include "AliPHOSGeoUtils.h"
+#include "AliTrackerBase.h"
 
 class iostream;
 
@@ -118,6 +118,8 @@ AliCaloPhotonCuts::AliCaloPhotonCuts(const char *name,const char *title) :
        fHistDistanceToBadChannelAfterAcc(NULL),
     fHistClusterRBeforeQA(NULL),
     fHistClusterRAfterQA(NULL),
+    fHistClusterdEtadPhiBeforeQA(NULL),
+    fHistClusterdEtadPhiAfterQA(NULL),
        fHistClusterTimevsEBeforeQA(NULL),
        fHistClusterTimevsEAfterQA(NULL),
        fHistExoticCellBeforeQA(NULL),
@@ -185,8 +187,10 @@ AliCaloPhotonCuts::AliCaloPhotonCuts(const AliCaloPhotonCuts &ref) :
        fHistClusterEtavsPhiAfterQA(NULL),
        fHistDistanceToBadChannelBeforeAcc(NULL),
        fHistDistanceToBadChannelAfterAcc(NULL),
-    fHistClusterRBeforeQA(NULL),
-    fHistClusterRAfterQA(NULL),
+       fHistClusterRBeforeQA(NULL),
+       fHistClusterRAfterQA(NULL),
+       fHistClusterdEtadPhiBeforeQA(NULL),
+       fHistClusterdEtadPhiAfterQA(NULL),
        fHistClusterTimevsEBeforeQA(NULL),
        fHistClusterTimevsEAfterQA(NULL),
        fHistExoticCellBeforeQA(NULL),
@@ -290,10 +294,14 @@ void AliCaloPhotonCuts::InitCutHistograms(TString name){
        fHistograms->Add(fHistDistanceToBadChannelAfterAcc);
        
        // Cluster quality related histograms
-    fHistClusterRBeforeQA = new TH1F(Form("R_Cluster_beforeClusterQA %s",GetCutNumber().Data()),"R of cluster",200,400,500);
-    fHistograms->Add(fHistClusterRBeforeQA);
-    fHistClusterRAfterQA = new TH1F(Form("R_Cluster_afterClusterQA %s",GetCutNumber().Data()),"R of cluster_matched",200,400,500);
-    fHistograms->Add(fHistClusterRAfterQA);
+       fHistClusterRBeforeQA = new TH1F(Form("R_Cluster_beforeClusterQA %s",GetCutNumber().Data()),"R of cluster",200,400,500);
+       fHistograms->Add(fHistClusterRBeforeQA);
+       fHistClusterRAfterQA = new TH1F(Form("R_Cluster_afterClusterQA %s",GetCutNumber().Data()),"R of cluster_matched",200,400,500);
+       fHistograms->Add(fHistClusterRAfterQA);
+       fHistClusterdEtadPhiBeforeQA=new TH2F(Form("dEtaVsdPhi_beforeClusterQA %s",GetCutNumber().Data()),"dEtaVsdPhi_beforeClusterQA",240,-0.3,0.3,240,-0.3,0.3);
+       fHistograms->Add(fHistClusterdEtadPhiBeforeQA);
+       fHistClusterdEtadPhiAfterQA=new TH2F(Form("dEtaVsdPhi_afterClusterQA %s",GetCutNumber().Data()),"dEtaVsdPhi_afterClusterQA",240,-0.3,0.3,240,-0.3,0.3);
+       fHistograms->Add(fHistClusterdEtadPhiAfterQA);
        fHistClusterTimevsEBeforeQA=new TH2F(Form("ClusterTimeVsE_beforeClusterQA %s",GetCutNumber().Data()),"ClusterTimeVsE_beforeClusterQA",400,-10e-6,10e-6,100,0.,40);
        fHistograms->Add(fHistClusterTimevsEBeforeQA);
        fHistClusterTimevsEAfterQA=new TH2F(Form("ClusterTimeVsE_afterClusterQA %s",GetCutNumber().Data()),"ClusterTimeVsE_afterClusterQA",400,-10e-6,10e-6,100,0.,40);
@@ -686,17 +694,10 @@ Bool_t AliCaloPhotonCuts::MatchConvPhotonToCluster(AliAODConversionPhoton* convP
                }
        }
 
-//cout << "Got the event" << endl;
-       
     Double_t vertex[3] = {0,0,0};
        event->GetPrimaryVertex()->GetXYZ(vertex);
 
     if(!cluster->IsEMCAL() && !cluster->IsPHOS()){AliError("Cluster is neither EMCAL nor PHOS, returning"); return kFALSE;}
-    // TLorentzvector with cluster
-       TLorentzVector clusterVector;
-       cluster->GetMomentum(clusterVector,vertex);
-       Double_t etaCluster = clusterVector.Eta();
-       Double_t phiCluster = clusterVector.Phi();
 
     Float_t clusterPosition[3] = {0,0,0};
     cluster->GetPosition(clusterPosition);
@@ -726,66 +727,69 @@ Bool_t AliCaloPhotonCuts::MatchConvPhotonToCluster(AliAODConversionPhoton* convP
                                }
                        }
                }
-//cout << "found track " << endl;
-//             AliVTrack *outTrack = 0x00;
-//             if (esdev)
-//                     outTrack = new AliESDtrack(*((AliESDtrack*)inTrack));
-//             else
-//                     outTrack = new AliAODTrack(*((AliAODTrack*)inTrack));
-
-        Bool_t propagated = kFALSE;
-        TVector3 VecPHOS(0,0,0);
-        //Double_t EMCALpos[3]={0,0,0};
-
-        if(cluster->IsEMCAL()){
-            //AliExternalTrackParam t;
-            //t.CopyFromVTrack(inTrack);
-            //Double_t b[3]={0,0,0};
-            //t.GetBxByBz(b);
-            //propagated = t.PropagateToBxByBz(clusterR,b);
-            //t.GetXYZ(EMCALpos);
-            propagated = AliEMCALRecoUtils::ExtrapolateTrackToEMCalSurface(inTrack, clusterR, 0.000510999, 20, 0.05);
-        }
-        if(cluster->IsPHOS()){
-            AliExternalTrackParam t;// = inTrack->GetOuterParam();
-            t.CopyFromVTrack(inTrack);
-            Double_t b[3]={0,0,0};
-            Double_t PHOSpos[3]={0,0,0};
-            t.GetBxByBz(b);
-            propagated = t.PropagateToBxByBz(clusterR,b);
-            t.GetXYZ(PHOSpos);
-            VecPHOS.SetXYZ(PHOSpos[0],PHOSpos[1],PHOSpos[2]);
-        }
-
-        if (propagated){
-//cout << "Track "<< i  << "\t"<< inTrack->GetTrackPhiOnEMCal() << "\t" << inTrack->GetTrackEtaOnEMCal() << endl;
-//cout << "Cluster " << phiCluster << "\t" << etaCluster << endl;
-            Double_t dPhi = 0;
-            Double_t dEta = 0;
-            if(cluster->IsEMCAL()){
-                //TVector3 VecEMCAL(EMCALpos[0],EMCALpos[1],EMCALpos[2]);
-                //dPhi=TMath::Abs(phiCluster-VecEMCAL.Phi());
-                //dEta=TMath::Abs(etaCluster-VecEMCAL.Eta());
-                dPhi = TMath::Abs(phiCluster-inTrack->GetTrackPhiOnEMCal());
-                dEta = TMath::Abs(etaCluster-inTrack->GetTrackEtaOnEMCal());
-            }
-            if(cluster->IsPHOS()){
-                dPhi = TMath::Abs(phiCluster-VecPHOS.Phi());
-                dEta = TMath::Abs(etaCluster-VecPHOS.Eta());
-            }
-
-            Double_t dR2 = dPhi*dPhi + dEta*dEta;
-//cout << "distance to cluster \t" << TMath::Sqrt(dR2) << endl;
-            if (fHistDistanceTrackToClusterBeforeQA)fHistDistanceTrackToClusterBeforeQA->Fill(TMath::Sqrt(dR2));
-            if(dR2 < fMinDistTrackToCluster*fMinDistTrackToCluster){
-                matched = kTRUE;
-                if (fHistDistanceTrackToClusterAfterQA)fHistDistanceTrackToClusterAfterQA->Fill(TMath::Sqrt(dR2));
-                if (fHistClusterRAfterQA) fHistClusterRAfterQA->Fill(clusterR);
-            }
-        }
-    }
+       if( inTrack->Pt() < 0.005 ) continue;
+
+               AliESDtrack *esdt = dynamic_cast<AliESDtrack*>(inTrack);
+               AliAODTrack *aodt = 0;
+               if (!esdt) {
+                       aodt = dynamic_cast<AliAODTrack*>(inTrack);
+                       if (!aodt){AliError("Track is neither ESD nor AOD, continue"); continue;}
+               }
+
+               AliExternalTrackParam *trackParam = 0;
+               if (esdt) {
+                       const AliExternalTrackParam *in = esdt->GetInnerParam();
+                       if (!in){AliError("Could not get InnerParam of Track, continue"); continue;}
+                       trackParam = new AliExternalTrackParam(*in);
+               } else {
+                       Double_t xyz[3] = {0}, pxpypz[3] = {0}, cv[21] = {0};
+                       aodt->PxPyPz(pxpypz);
+                       aodt->XvYvZv(xyz);
+                       aodt->GetCovarianceXYZPxPyPz(cv);
+                       trackParam = new AliExternalTrackParam(xyz,pxpypz,cv,aodt->Charge());
+               }
+
+               Bool_t propagated = kFALSE;
+               AliExternalTrackParam emcParam(*trackParam);
+               Float_t dPhi = 0;
+               Float_t dEta = 0;
+
+               if(cluster->IsEMCAL()){
+                       Float_t eta = 0; Float_t phi = 0; Float_t pt = 0;
+                       propagated = AliEMCALRecoUtils::ExtrapolateTrackToEMCalSurface(&emcParam, 430, 0.000510999, 20, eta, phi, pt);
+                       if(propagated){
+                               propagated = AliEMCALRecoUtils::ExtrapolateTrackToCluster(&emcParam, cluster, 0.000510999, 5, dEta, dPhi);
+                       }
+               }
+               if(cluster->IsPHOS()){
+                       propagated = AliTrackerBase::PropagateTrackToBxByBz(&emcParam, clusterR, 0.000510999, 20, kTRUE, 0.8, -1);
+                       if (propagated){
+                               Double_t trkPos[3] = {0,0,0};
+                               emcParam.GetXYZ(trkPos);
+                               TVector3 trkPosVec(trkPos[0],trkPos[1],trkPos[2]);
+                               TVector3 clsPosVec(clusterPosition);
+                               dPhi = clsPosVec.DeltaPhi(trkPosVec);
+                               dEta = clsPosVec.Eta()-trkPosVec.Eta();
+                       }
+               }
+
+               if (propagated){
+                       Float_t dR2 = dPhi*dPhi + dEta*dEta;
+                       if (fHistDistanceTrackToClusterBeforeQA)fHistDistanceTrackToClusterBeforeQA->Fill(TMath::Sqrt(dR2));
+                       if (fHistClusterdEtadPhiBeforeQA) fHistClusterdEtadPhiBeforeQA->Fill(dEta, dPhi);
+                       if(dR2 < fMinDistTrackToCluster*fMinDistTrackToCluster){
+                               matched = kTRUE;
+                               if (fHistDistanceTrackToClusterAfterQA)fHistDistanceTrackToClusterAfterQA->Fill(TMath::Sqrt(dR2));
+                               if (fHistClusterdEtadPhiAfterQA) fHistClusterdEtadPhiAfterQA->Fill(dEta, dPhi);
+                               if (fHistClusterRAfterQA) fHistClusterRAfterQA->Fill(clusterR);
+                       }
+
+               }
+               delete trackParam;
+       }
 
        return matched;
+
 }
 
 //____________________________________________________________________________________________
@@ -1185,39 +1189,39 @@ Bool_t AliCaloPhotonCuts::SetTrackMatchingCut(Int_t trackMatching)
                break;
        case 1: 
                if (!fUseDistTrackToCluster) fUseDistTrackToCluster=1;
-               fMinDistTrackToCluster=0.04; 
+               fMinDistTrackToCluster= 0.03;   //0.04;  
                break;
        case 2: 
                if (!fUseDistTrackToCluster) fUseDistTrackToCluster=1;
-               fMinDistTrackToCluster=0.05; 
+               fMinDistTrackToCluster= 0.035;  //0.05; 
                break;
        case 3: 
                if (!fUseDistTrackToCluster) fUseDistTrackToCluster=1;
-               fMinDistTrackToCluster=0.1; 
+               fMinDistTrackToCluster= 0.04;   //0.1;  
                break;
        case 4: 
                if (!fUseDistTrackToCluster) fUseDistTrackToCluster=1;
-               fMinDistTrackToCluster=0.13; 
+               fMinDistTrackToCluster= 0.045;  //0.13; 
                break;
        case 5: 
                if (!fUseDistTrackToCluster) fUseDistTrackToCluster=1;
-               fMinDistTrackToCluster=0.15; 
+               fMinDistTrackToCluster= 0.05;   //0.15 
                break;
        case 6: 
                if (!fUseDistTrackToCluster) fUseDistTrackToCluster=1;
-               fMinDistTrackToCluster=0.2; 
+               fMinDistTrackToCluster= 0.055;  //0.2; 
                break;
        case 7: 
                if (!fUseDistTrackToCluster) fUseDistTrackToCluster=1;
-               fMinDistTrackToCluster=0.3; 
+               fMinDistTrackToCluster= 0.06;   //0.3; 
                break;
        case 8: 
                if (!fUseDistTrackToCluster) fUseDistTrackToCluster=1;
-               fMinDistTrackToCluster=0.4; 
+               fMinDistTrackToCluster= 0.07;   //0.4; 
                break;
        case 9: 
                if (!fUseDistTrackToCluster) fUseDistTrackToCluster=1;
-               fMinDistTrackToCluster=0.5; 
+               fMinDistTrackToCluster= 0.1;    //0.5; 
                break;
 
        default:
index df4cd6c0818178739f8c6b623ab1ec7aef5c3fb4..414f677f6610cab5d5f7ae1be97e85f4d86a708e 100644 (file)
@@ -170,8 +170,10 @@ class AliCaloPhotonCuts : public AliAnalysisCuts {
                TH2F* fHistClusterEtavsPhiAfterQA;                      // eta-phi-distribution of all after cluster quality cuts
                TH1F* fHistDistanceToBadChannelBeforeAcc;   // distance to bad channel before acceptance cuts
                TH1F* fHistDistanceToBadChannelAfterAcc;        // distance to bad channel after acceptance cuts
-        TH1F *fHistClusterRBeforeQA;                // cluster position in R=SQRT(x^2+y^2) (before QA)
-        TH1F *fHistClusterRAfterQA;                 // cluster position in R=SQRT(x^2+y^2) for matched tracks (After QA)
+               TH1F* fHistClusterRBeforeQA;                            // cluster position in R=SQRT(x^2+y^2) (before QA)
+               TH1F* fHistClusterRAfterQA;                                     // cluster position in R=SQRT(x^2+y^2) for matched tracks (After QA)
+               TH2F* fHistClusterdEtadPhiBeforeQA;                     // 2-dim plot dEta vs. dPhi
+               TH2F* fHistClusterdEtadPhiAfterQA;                      // 2-dim plot dEta vs. dPhi for matched tracks (after QA)
                TH2F* fHistClusterTimevsEBeforeQA;                      // Cluster time vs E before cluster quality cuts
                TH2F* fHistClusterTimevsEAfterQA;                       // Cluster time vs E after cluster quality cuts
                TH2F* fHistExoticCellBeforeQA;                          // Exotic cell: 1-Ecross/E cell vs Ecluster before acceptance cuts
@@ -194,7 +196,7 @@ class AliCaloPhotonCuts : public AliAnalysisCuts {
                                
        private:
 
-               ClassDef(AliCaloPhotonCuts,1)
+               ClassDef(AliCaloPhotonCuts,2)
 };
 
 #endif
index fe29afd72243e081306d40d3dcc531ea7688f0e1..e1262ca13437f69aa697be88f0e6c1bc91b0d47c 100644 (file)
@@ -100,7 +100,8 @@ AliPrimaryPionCuts::AliPrimaryPionCuts(const char *name,const char *title) : Ali
        fHistTrackDCAzPtbefore(NULL),
        fHistTrackDCAzPtafter(NULL),
        fHistTrackNFindClsPtTPCbefore(NULL),
-       fHistTrackNFindClsPtTPCafter(NULL)
+       fHistTrackNFindClsPtTPCafter(NULL),
+       fStringITSClusterCut("")
 {
        InitPIDResponse();
        for(Int_t jj=0;jj<kNCuts;jj++){ fCuts[jj]=0; }
@@ -510,7 +511,7 @@ Bool_t AliPrimaryPionCuts::InitializeCutsFromCutString(const TString analysisCut
                if(!SetCut(cutIds(ii),fCuts[ii]))return kFALSE;
        }
 
-       PrintCuts();
+       PrintCutsWithValues();
        return kTRUE;
 }
 ///________________________________________________________________________
@@ -584,7 +585,6 @@ Bool_t AliPrimaryPionCuts::SetCut(cutIds cutID, const Int_t value) {
 }
 
 ///________________________________________________________________________
-
 void AliPrimaryPionCuts::PrintCuts() {
     // Print out current Cut Selection
        for(Int_t ic = 0; ic < kNCuts; ic++) {
@@ -592,6 +592,35 @@ void AliPrimaryPionCuts::PrintCuts() {
        }
 }
 
+///________________________________________________________________________
+void AliPrimaryPionCuts::PrintCutsWithValues() {
+   // Print out current Cut Selection with value
+       printf("\nCharged Pion cutnumber \n");
+       for(Int_t ic = 0; ic < kNCuts; ic++) {
+               printf("%d",fCuts[ic]);
+       }
+       printf("\n\n");
+
+       printf("Acceptance cuts \n");
+       if (fDoEtaCut) printf("\t |eta_{pi+-}| < %3.2f  \n", fEtaCut);
+       else    printf("\t none \n");
+       printf("Track cuts \n");
+       printf("\t %s \n", fStringITSClusterCut.Data());
+       printf("\t min N cluster TPC > %3.2f \n", fMinClsTPC);
+       printf("\t min N cluster TPC/ findable > %3.2f \n", fMinClsTPCToF);
+//     printf("\t dca > %3.2f \n", fMinClsTPCToF);
+//     "kDCAcut",                              // 3
+       printf("\t min pT > %3.2f \n", fPtCut);
+       printf("PID cuts \n");
+       if (fDodEdxSigmaITSCut)printf("\t %3.2f < ITS n_sigma pi < %3.2f \n", fPIDnSigmaBelowPionLineITS, fPIDnSigmaAbovePionLineITS );
+       if (fDodEdxSigmaTPCCut)printf("\t %3.2f < TPC n_sigma pi < %3.2f \n", fPIDnSigmaBelowPionLineTPC, fPIDnSigmaAbovePionLineTPC );
+       if (fDoTOFsigmaCut)printf("\t %3.2f < TOF n_sigma pi < %3.2f \n", fPIDnSigmaBelowPionLineTOF, fPIDnSigmaAbovePionLineTOF );
+       if (fDoMassCut) printf("two-pion mass cut < %3.2f \n", fMassCut);
+       printf("\n\n");
+}
+
+
+
 ///________________________________________________________________________
 Bool_t AliPrimaryPionCuts::SetITSdEdxCutPionLine(Int_t ededxSigmaCut){ 
        switch(ededxSigmaCut){
@@ -713,31 +742,38 @@ Bool_t AliPrimaryPionCuts::SetITSClusterCut(Int_t clsITSCut){
        switch(clsITSCut){
                case 0: 
                        fEsdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD, AliESDtrackCuts::kOff);
+                       fStringITSClusterCut= "no SPD cluster requirement";
                        break;
                case 1: 
                        fEsdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD, AliESDtrackCuts::kFirst);
+                       fStringITSClusterCut= "first SPD cluster required";
                        break;  //1 hit first layer of SPD
                case 2: 
                        fEsdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD, AliESDtrackCuts::kAny);
+                       fStringITSClusterCut= "first or second SPD cluster required";
                        break; //1 hit in any layer of SPD
                case 3: 
                        fEsdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD, AliESDtrackCuts::kFirst);
                        fEsdTrackCuts->SetMinNClustersITS(4);
+                       fStringITSClusterCut= "first SPD cluster required, min number of ITS clusters = 4";
                        // 4 hits in total in the ITS. At least 1 hit in the first layer of SPD  
                        break;
                case 4: 
                        fEsdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD, AliESDtrackCuts::kAny);
                        fEsdTrackCuts->SetMinNClustersITS(3);
+                       fStringITSClusterCut= "first or second SPD cluster required, min number of ITS clusters = 3";
                        // 3 hits in total in the ITS. At least 1 hit in any layer of SPD
                        break;
                case 5: 
                        fEsdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD, AliESDtrackCuts::kAny);
                        fEsdTrackCuts->SetMinNClustersITS(4);
+                       fStringITSClusterCut= "first or second SPD cluster required, min number of ITS clusters = 4";
                        // 4 hits in total in the ITS. At least 1 hit in any layer of SPD
                        break;
                case 6: 
                        fEsdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD, AliESDtrackCuts::kAny);
                        fEsdTrackCuts->SetMinNClustersITS(5);
+                       fStringITSClusterCut= "first or second SPD cluster required, min number of ITS clusters = 5";
                        // 5 hits in total in the ITS. At least 1 hit in any layer of SPD
                        break;
                default:
@@ -899,7 +935,8 @@ Bool_t AliPrimaryPionCuts::SetDCACut(Int_t dcaCut)
                        fEsdTrackCuts->SetMaxDCAToVertexXYPtDep("0.0182+0.0350/pt^1.01");
                        fEsdTrackCuts->SetMaxChi2TPCConstrainedGlobal(36);
                        break;
-               case 2: fEsdTrackCuts->SetMaxDCAToVertexZ(2);
+               case 2: 
+                       fEsdTrackCuts->SetMaxDCAToVertexZ(2);
                        fEsdTrackCuts->SetMaxDCAToVertexXY(1);
                        fEsdTrackCuts->SetMaxChi2TPCConstrainedGlobal(36);
                        break; 
@@ -971,7 +1008,7 @@ Bool_t AliPrimaryPionCuts::SetMassCut(Int_t massCut){
                        break;
                case 2: // cut at 0.7 GeV/c^2
                        fDoMassCut = kTRUE;
-                       fMassCut = 0.7;
+                       fMassCut = 0.75;
                        break;
                case 3: // cut at 0.6 GeV/c^2
                        fDoMassCut = kTRUE;
index e6aef3a8ca0a4b5e0848f534997ffd29d0c13b71..ce400351b7512d14f8ebec5837c3e739c7da456a 100644 (file)
@@ -90,7 +90,8 @@ class AliPrimaryPionCuts : public AliAnalysisCuts {
        AliPIDResponse * GetPIDResponse() { return fPIDResponse;}
        
        void PrintCuts();
-
+       void PrintCutsWithValues();
+       
        void InitCutHistograms(TString name="",Bool_t preCut = kTRUE,TString cutName="");
        void SetFillCutHistograms(TString name="",Bool_t preCut = kTRUE,TString cutName=""){if(!fHistograms){InitCutHistograms(name,preCut,cutName);};}
        TList *GetCutHistograms(){return fHistograms;}
@@ -167,6 +168,8 @@ class AliPrimaryPionCuts : public AliAnalysisCuts {
        TH2F *fHistTrackNFindClsPtTPCbefore;
        TH2F *fHistTrackNFindClsPtTPCafter;
        
+       TString fStringITSClusterCut;
+       
        private:
 
        AliPrimaryPionCuts(const AliPrimaryPionCuts&); // not implemented
diff --git a/PWGGA/GammaConv/macros/AddTask_GammaConvNeutralMesonPiPlPiMiPiZero_CaloMode_pPb.C b/PWGGA/GammaConv/macros/AddTask_GammaConvNeutralMesonPiPlPiMiPiZero_CaloMode_pPb.C
new file mode 100644 (file)
index 0000000..1f9d6c9
--- /dev/null
@@ -0,0 +1,326 @@
+void AddTask_GammaConvNeutralMesonPiPlPiMiPiZero_CaloMode_pPb(    
+                                                                               Int_t trainConfig = 1,
+                                                                               Bool_t isMC       = kFALSE, //run MC 
+                                                                               Bool_t enableQAMesonTask = kTRUE, //enable QA in AliAnalysisTaskNeutralMesonToPiPlPiMiPiZero
+                                                                               TString fileNameInputForWeighting = "MCSpectraInput.root", // path to file for weigting input
+                                                                               Bool_t doWeighting = kFALSE,  //enable Weighting
+                                                                               TString generatorName = "HIJING",                               
+                                                                               TString cutnumberAODBranch = "0000000060084001001500000"
+                                                                               ) {
+
+       // ================= Load Librariers =================================
+       gSystem->Load("libCore.so");  
+       gSystem->Load("libTree.so");
+       gSystem->Load("libGeom.so");
+       gSystem->Load("libVMC.so");
+       gSystem->Load("libPhysics.so");
+       gSystem->Load("libMinuit");
+       gSystem->Load("libSTEERBase");
+       gSystem->Load("libESD");
+       gSystem->Load("libAOD");
+       gSystem->Load("libANALYSIS");
+       gSystem->Load("libANALYSISalice");  
+       gSystem->Load("libPWGGAGammaConv.so");
+       gSystem->Load("libCDB.so");
+       gSystem->Load("libSTEER.so");
+       gSystem->Load("libSTEERBase.so");
+       gSystem->Load("libTENDER.so");
+       gSystem->Load("libTENDERSupplies.so");
+
+       Int_t isHeavyIon = 2;
+       Int_t neutralPionMode = 2;
+       
+       // ================== GetAnalysisManager ===============================
+       AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
+       if (!mgr) {
+               Error(Form("AddTask_GammaConvNeutralMesonPiPlPiMiPiZero_pPb_%i",trainConfig), "No analysis manager found.");
+               return ;
+       }
+
+       // ================== GetInputEventHandler =============================
+       AliVEventHandler *inputHandler=mgr->GetInputEventHandler();
+       
+       //========= Add PID Reponse to ANALYSIS manager ====
+       if(!(AliPIDResponse*)mgr->GetTask("PIDResponseTask")){
+               gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskPIDResponse.C");
+               AddTaskPIDResponse(isMC);
+       }
+       
+       //=========  Set Cutnumber for V0Reader ================================
+       TString cutnumberPhoton = "060084001001500000000";
+       TString cutnumberEvent = "8000000";
+       TString PionCuts      = "000000200";            //Electron Cuts
+       
+
+       
+       Bool_t doEtaShift = kFALSE;
+
+       AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
+       
+       //========= Add V0 Reader to  ANALYSIS manager if not yet existent =====
+       if( !(AliV0ReaderV1*)mgr->GetTask("V0ReaderV1") ){
+               AliV0ReaderV1 *fV0ReaderV1 = new AliV0ReaderV1("V0ReaderV1");
+               
+               fV0ReaderV1->SetUseOwnXYZCalculation(kTRUE);
+               fV0ReaderV1->SetCreateAODs(kFALSE);// AOD Output
+               fV0ReaderV1->SetUseAODConversionPhoton(kTRUE);
+               
+               if (!mgr) {
+                       Error("AddTask_V0ReaderV1", "No analysis manager found.");
+                       return;
+               }
+
+               AliConvEventCuts *fEventCuts=NULL;
+               if(cutnumberEvent!=""){
+                       fEventCuts= new AliConvEventCuts(cutnumberEvent.Data(),cutnumberEvent.Data());
+                       fEventCuts->SetPreSelectionCutFlag(kTRUE);
+                       if(fEventCuts->InitializeCutsFromCutString(cutnumberEvent.Data())){
+                               fEventCuts->DoEtaShift(doEtaShift);
+                               fV0ReaderV1->SetEventCuts(fEventCuts);
+                               fEventCuts->SetFillCutHistograms("",kTRUE);
+                       }
+               }
+
+               // Set AnalysisCut Number
+               AliConversionPhotonCuts *fCuts=NULL;
+               if(cutnumberPhoton!=""){
+                       fCuts= new AliConversionPhotonCuts(cutnumberPhoton.Data(),cutnumberPhoton.Data());
+                       fCuts->SetPreSelectionCutFlag(kTRUE);
+                       fCuts->SetIsHeavyIon(isHeavyIon);
+                       if(fCuts->InitializeCutsFromCutString(cutnumberPhoton.Data())){
+                               fV0ReaderV1->SetConversionCuts(fCuts);
+                               fCuts->SetFillCutHistograms("",kTRUE);
+                       }
+               }
+
+               if(inputHandler->IsA()==AliAODInputHandler::Class()){
+               // AOD mode
+                       fV0ReaderV1->SetDeltaAODBranchName(Form("GammaConv_%s_gamma",cutnumberAODBranch.Data()));
+               }
+               fV0ReaderV1->Init();
+
+               AliLog::SetGlobalLogLevel(AliLog::kInfo);
+
+               //connect input V0Reader
+               mgr->AddTask(fV0ReaderV1);
+               mgr->ConnectInput(fV0ReaderV1,0,cinput);
+       }
+
+       //================================================
+       //========= Add Electron Selector ================
+
+
+       if( !(AliPrimaryPionSelector*)mgr->GetTask("PionSelector") ){
+
+               AliPrimaryPionSelector *fPionSelector = new AliPrimaryPionSelector("PionSelector");
+               // Set AnalysisCut Number
+
+               AliPrimaryPionCuts *fPionCuts=0;
+               if( PionCuts!=""){
+                       fPionCuts= new AliPrimaryPionCuts(PionCuts.Data(),PionCuts.Data());
+                       if(fPionCuts->InitializeCutsFromCutString(PionCuts.Data())){
+                               fPionSelector->SetPrimaryPionCuts(fPionCuts);
+                               fPionCuts->SetFillCutHistograms("",kTRUE);
+
+                       }
+               }
+
+               fPionSelector->Init();
+               mgr->AddTask(fPionSelector);
+               
+               AliAnalysisDataContainer *cinput1  = mgr->GetCommonInputContainer();
+
+               //connect input V0Reader
+               mgr->ConnectInput (fPionSelector,0,cinput1);
+
+       }
+
+       
+       
+       AliAnalysisTaskNeutralMesonToPiPlPiMiPiZero *task=NULL;
+
+       task= new AliAnalysisTaskNeutralMesonToPiPlPiMiPiZero(Form("GammaConvNeutralMesonPiPlPiMiPiZero_%i_%i",neutralPionMode, trainConfig));
+
+       task->SetIsHeavyIon(2);
+       task->SetIsMC(isMC);
+
+       // Cut Numbers to use in Analysis
+       Int_t numberOfCuts = 1;
+
+       TString *eventCutArray                  = new TString[numberOfCuts];
+       TString *ClusterCutarray                = new TString[numberOfCuts];
+       TString *PionCutarray                   = new TString[numberOfCuts];
+       TString *NeutralPionCutarray    = new TString[numberOfCuts];
+       TString *MesonCutarray                  = new TString[numberOfCuts];
+       
+       Bool_t doEtaShiftIndCuts = kFALSE;
+       TString stringShift = "";
+
+       // Shifting in pPb direction
+
+       doEtaShiftIndCuts = kTRUE;
+       stringShift = "pPb";
+
+       // EMCAL modes
+       if( trainConfig == 1 ) {
+               // everything open
+               eventCutArray[ 0] = "8000011"; ClusterCutarray[0] = "10000040022030000"; PionCutarray[0] = "000010400"; NeutralPionCutarray[0] = "01035030000000"; MesonCutarray[0] = "01035030000000"; 
+       } else if( trainConfig == 2 ) {
+               // closing charged pion cuts, minimum TPC cluster = 80, TPC dEdx pi = \pm 3 sigma, min pt charged pi = 100 MeV
+               eventCutArray[ 0] = "8000011"; ClusterCutarray[0] = "10000040022030000"; PionCutarray[0] = "002010700"; NeutralPionCutarray[0] = "01035030000000"; MesonCutarray[0] = "01035030000000"; 
+       } else if( trainConfig == 3 ) {
+               // closing charged pion cuts, minimum TPC cluster = 80, TPC dEdx pi = \pm 3 sigma, ITS dEdx = \pm 5 sigma, min pt charged pi = 100 MeV
+               eventCutArray[ 0] = "8000011"; ClusterCutarray[0] = "10000040022030000"; PionCutarray[0] = "002013700"; NeutralPionCutarray[0] = "01035030000000"; MesonCutarray[0] = "01035030000000"; 
+       } else if( trainConfig == 4 ) {
+               // closing charged pion cuts, minimum TPC cluster = 80, TPC dEdx pi = \pm 3 sigma, ITS dEdx = \pm 4 sigma, min pt charged pi = 100 MeV
+               eventCutArray[ 0] = "8000011"; ClusterCutarray[0] = "10000040022030000"; PionCutarray[0] = "002016700"; NeutralPionCutarray[0] = "01035030000000"; MesonCutarray[0] = "01035030000000"; 
+       } else if( trainConfig == 5 ) {
+               // closing charged pion cuts, minimum TPC cluster = 80, TPC dEdx pi = \pm 3 sigma, ITS dEdx = \pm 4 sigma, min pt charged pi = 100 MeV
+               // closing neural pion cuts, 0.1 < M_gamma,gamma < 0.145
+               eventCutArray[ 0] = "8000011"; ClusterCutarray[0] = "10000040022030000"; PionCutarray[0] = "002016700"; NeutralPionCutarray[0] = "01035031000000"; MesonCutarray[0] = "01035030000000";         
+       } else if( trainConfig == 6 ) {
+               // closing charged pion cuts, minimum TPC cluster = 80, TPC dEdx pi = \pm 3 sigma, ITS dEdx = \pm 4 sigma, min pt charged pi = 100 MeV
+               // closing neural pion cuts, 0.11 < M_gamma,gamma < 0.145
+               eventCutArray[ 0] = "8000011"; ClusterCutarray[0] = "10000040022030000"; PionCutarray[0] = "002016700"; NeutralPionCutarray[0] = "01035032000000"; MesonCutarray[0] = "01035030000000";         
+       } else if( trainConfig == 7 ) {
+               // closing charged pion cuts, minimum TPC cluster = 80, TPC dEdx pi = \pm 3 sigma, ITS dEdx = \pm 4 sigma, min pt charged pi = 100 MeV
+               // closing neural pion cuts, 0.12 < M_gamma,gamma < 0.145
+               eventCutArray[ 0] = "8000011"; ClusterCutarray[0] = "10000040022030000"; PionCutarray[0] = "002016700"; NeutralPionCutarray[0] = "01035033000000"; MesonCutarray[0] = "01035030000000";         
+       } else if( trainConfig == 8 ) {
+               // closing charged pion cuts, minimum TPC cluster = 80, TPC dEdx pi = \pm 3 sigma, ITS dEdx = \pm 5 sigma, min pt charged pi = 100 MeV
+               // closing neural pion cuts, 0.12 < M_gamma,gamma < 0.145
+               eventCutArray[ 0] = "8000011"; ClusterCutarray[0] = "10000040022030000"; PionCutarray[0] = "002013700"; NeutralPionCutarray[0] = "01035033000000"; MesonCutarray[0] = "01035030000000";                         
+       } else if( trainConfig == 9 ) {
+               // closing charged pion cuts, minimum TPC cluster = 80, TPC dEdx pi = \pm 3 sigma, pi+pi- mass Cut at 0.75, min pt charged pi = 100 MeV
+               // closing neural pion cuts, 0.1 < M_gamma,gamma < 0.145
+               eventCutArray[ 0] = "8000011"; ClusterCutarray[0] = "10000040022030000"; PionCutarray[0] = "002010702"; NeutralPionCutarray[0] = "01035031000000"; MesonCutarray[0] = "01035030000000"; 
+       }
+
+       
+       // PHOS modes
+       if( trainConfig == 31 ) {
+               // everything open
+               eventCutArray[ 0] = "8000011"; ClusterCutarray[0] = "20000030022000000"; PionCutarray[0] = "000010400"; NeutralPionCutarray[0] = "01035030000000"; MesonCutarray[0] = "01035030000000"; 
+       } else if( trainConfig == 32 ) {
+               // closing charged pion cuts, minimum TPC cluster = 80, TPC dEdx pi = \pm 3 sigma, min pt charged pi = 100 MeV
+               eventCutArray[ 0] = "8000011"; ClusterCutarray[0] = "20000030022000000"; PionCutarray[0] = "002010700"; NeutralPionCutarray[0] = "01035030000000"; MesonCutarray[0] = "01035030000000"; 
+       } else if( trainConfig == 33 ) {
+               // closing charged pion cuts, minimum TPC cluster = 80, TPC dEdx pi = \pm 3 sigma, ITS dEdx = \pm 5 sigma, min pt charged pi = 100 MeV
+               eventCutArray[ 0] = "8000011"; ClusterCutarray[0] = "20000030022000000"; PionCutarray[0] = "002013700"; NeutralPionCutarray[0] = "01035030000000"; MesonCutarray[0] = "01035030000000"; 
+       } else if( trainConfig == 34 ) {
+               // closing charged pion cuts, minimum TPC cluster = 80, TPC dEdx pi = \pm 3 sigma, ITS dEdx = \pm 4 sigma, min pt charged pi = 100 MeV
+               eventCutArray[ 0] = "8000011"; ClusterCutarray[0] = "20000030022000000"; PionCutarray[0] = "002016700"; NeutralPionCutarray[0] = "01035030000000"; MesonCutarray[0] = "01035030000000"; 
+       } else if( trainConfig == 35 ) {
+               // closing charged pion cuts, minimum TPC cluster = 80, TPC dEdx pi = \pm 3 sigma, ITS dEdx = \pm 4 sigma, min pt charged pi = 100 MeV
+               // closing neural pion cuts, 0.1 < M_gamma,gamma < 0.145
+               eventCutArray[ 0] = "8000011"; ClusterCutarray[0] = "20000030022000000"; PionCutarray[0] = "002016700"; NeutralPionCutarray[0] = "01035031000000"; MesonCutarray[0] = "01035030000000";         
+       } else if( trainConfig == 36 ) {
+               // closing charged pion cuts, minimum TPC cluster = 80, TPC dEdx pi = \pm 3 sigma, ITS dEdx = \pm 4 sigma, min pt charged pi = 100 MeV
+               // closing neural pion cuts, 0.11 < M_gamma,gamma < 0.145
+               eventCutArray[ 0] = "8000011"; ClusterCutarray[0] = "20000030022000000"; PionCutarray[0] = "002016700"; NeutralPionCutarray[0] = "01035032000000"; MesonCutarray[0] = "01035030000000";         
+       } else if( trainConfig == 37 ) {
+               // closing charged pion cuts, minimum TPC cluster = 80, TPC dEdx pi = \pm 3 sigma, ITS dEdx = \pm 4 sigma, min pt charged pi = 100 MeV
+               // closing neural pion cuts, 0.12 < M_gamma,gamma < 0.145
+               eventCutArray[ 0] = "8000011"; ClusterCutarray[0] = "20000030022000000"; PionCutarray[0] = "002016700"; NeutralPionCutarray[0] = "01035033000000"; MesonCutarray[0] = "01035030000000";         
+       } else if( trainConfig == 38 ) {
+               // closing charged pion cuts, minimum TPC cluster = 80, TPC dEdx pi = \pm 3 sigma, ITS dEdx = \pm 5 sigma, min pt charged pi = 100 MeV
+               // closing neural pion cuts, 0.12 < M_gamma,gamma < 0.145
+               eventCutArray[ 0] = "8000011"; ClusterCutarray[0] = "20000030022000000"; PionCutarray[0] = "002013700"; NeutralPionCutarray[0] = "01035033000000"; MesonCutarray[0] = "01035030000000";                         
+       } else if( trainConfig == 39 ) {
+               // closing charged pion cuts, minimum TPC cluster = 80, TPC dEdx pi = \pm 3 sigma, pi+pi- mass Cut at 0.75, min pt charged pi = 100 MeV
+               // closing neural pion cuts, 0.1 < M_gamma,gamma < 0.145
+               eventCutArray[ 0] = "8000011"; ClusterCutarray[0] = "20000030022000000"; PionCutarray[0] = "002010702"; NeutralPionCutarray[0] = "01035031000000"; MesonCutarray[0] = "01035030000000"; 
+       }
+
+       
+       TList *EventCutList = new TList();
+       TList *ClusterCutList  = new TList();
+       TList *NeutralPionCutList = new TList();
+       TList *MesonCutList = new TList();
+       TList *PionCutList  = new TList();
+
+       TList *HeaderList = new TList();
+       TObjString *Header1 = new TObjString("pi0_1");
+       HeaderList->Add(Header1);
+       TObjString *Header3 = new TObjString("eta_2");
+       HeaderList->Add(Header3);
+       
+       EventCutList->SetOwner(kTRUE);
+       AliConvEventCuts **analysisEventCuts = new AliConvEventCuts*[numberOfCuts];
+       ClusterCutList->SetOwner(kTRUE);
+       AliCaloPhotonCuts **analysisClusterCuts = new AliCaloPhotonCuts*[numberOfCuts];
+       NeutralPionCutList->SetOwner(kTRUE);
+       AliConversionMesonCuts **analysisNeutralPionCuts   = new AliConversionMesonCuts*[numberOfCuts];
+       MesonCutList->SetOwner(kTRUE);
+       AliConversionMesonCuts **analysisMesonCuts   = new AliConversionMesonCuts*[numberOfCuts];
+       PionCutList->SetOwner(kTRUE);
+       AliPrimaryPionCuts **analysisPionCuts     = new AliPrimaryPionCuts*[numberOfCuts];
+
+       for(Int_t i = 0; i<numberOfCuts; i++){
+               analysisEventCuts[i] = new AliConvEventCuts();   
+               analysisEventCuts[i]->InitializeCutsFromCutString(eventCutArray[i].Data());
+               EventCutList->Add(analysisEventCuts[i]);
+               analysisEventCuts[i]->SetFillCutHistograms("",kFALSE);
+
+               analysisClusterCuts[i] = new AliCaloPhotonCuts();
+               if( ! analysisClusterCuts[i]->InitializeCutsFromCutString(ClusterCutarray[i].Data()) ) {
+                               cout<<"ERROR: analysisClusterCuts [" <<i<<"]"<<endl;
+                               return 0;
+               } else {                                
+                       ClusterCutList->Add(analysisClusterCuts[i]);
+                       analysisClusterCuts[i]->SetFillCutHistograms("");                       
+               }
+
+               analysisNeutralPionCuts[i] = new AliConversionMesonCuts();
+               if( ! analysisNeutralPionCuts[i]->InitializeCutsFromCutString(NeutralPionCutarray[i].Data()) ) {
+                       cout<<"ERROR: analysisMesonCuts [ " <<i<<" ] "<<endl;
+                       return 0;
+               } else {
+                       NeutralPionCutList->Add(analysisNeutralPionCuts[i]);
+                       analysisNeutralPionCuts[i]->SetFillCutHistograms("");
+               }
+       
+               analysisMesonCuts[i] = new AliConversionMesonCuts();
+               if( ! analysisMesonCuts[i]->InitializeCutsFromCutString(MesonCutarray[i].Data()) ) {
+                       cout<<"ERROR: analysisMesonCuts [ " <<i<<" ] "<<endl;
+                       return 0;
+               } else {
+                       MesonCutList->Add(analysisMesonCuts[i]);
+                       analysisMesonCuts[i]->SetFillCutHistograms("");
+               }
+               analysisEventCuts[i]->SetAcceptedHeader(HeaderList);
+               
+               TString cutName( Form("%s_%s_%s_%s_%s",eventCutArray[i].Data(), ClusterCutarray[i].Data(),PionCutarray[i].Data(),NeutralPionCutarray[i].Data(), MesonCutarray[i].Data() ) );
+               analysisPionCuts[i] = new AliPrimaryPionCuts();
+               if( !analysisPionCuts[i]->InitializeCutsFromCutString(PionCutarray[i].Data())) {
+                       cout<< "ERROR:  analysisPionCuts [ " <<i<<" ] "<<endl;
+                       return 0;
+               } else { 
+                       PionCutList->Add(analysisPionCuts[i]);
+                       analysisPionCuts[i]->SetFillCutHistograms("",kFALSE,cutName); 
+               }
+       }
+
+       task->SetNeutralPionMode(neutralPionMode);
+       task->SetEventCutList(numberOfCuts,EventCutList);
+       task->SetClusterCutList(ClusterCutList);
+       task->SetNeutralPionCutList(NeutralPionCutList);
+       task->SetMesonCutList(MesonCutList);
+       task->SetPionCutList(PionCutList);
+
+       task->SetMoveParticleAccordingToVertex(kTRUE);
+
+       if(enableQAMesonTask) task->SetDoMesonQA(kTRUE);
+
+       //connect containers
+       AliAnalysisDataContainer *coutput =
+       mgr->CreateContainer(Form("GammaConvNeutralMesonPiPlPiMiPiZero_%i_%i",neutralPionMode, trainConfig), TList::Class(),
+                                                       AliAnalysisManager::kOutputContainer,Form("GammaConvNeutralMesonPiPlPiMiPiZero_%i_%i.root",neutralPionMode, trainConfig));
+
+       mgr->AddTask(task);
+       mgr->ConnectInput(task,0,cinput);
+       mgr->ConnectOutput(task,1,coutput);
+
+       return;
+
+}
similarity index 85%
rename from PWGGA/GammaConv/macros/AddTask_GammaConvNeutralMesonPiPlPiMiPiZero_pPb.C
rename to PWGGA/GammaConv/macros/AddTask_GammaConvNeutralMesonPiPlPiMiPiZero_ConvMode_pPb.C
index 944ae890515e9c72bb23d3a85b25893b7e8f4c40..06e508b53f6eb9568e07750d92c9c23e7d679093 100644 (file)
@@ -1,4 +1,4 @@
-void AddTask_GammaConvNeutralMesonPiPlPiMiPiZero_pPb(    
+void AddTask_GammaConvNeutralMesonPiPlPiMiPiZero_ConvMode_pPb(    
                                                                                Int_t trainConfig = 1,
                                                                                Bool_t isMC       = kFALSE, //run MC 
                                                                                Bool_t enableQAMesonTask = kTRUE, //enable QA in AliAnalysisTaskNeutralMesonToPiPlPiMiPiZero
@@ -28,6 +28,7 @@ void AddTask_GammaConvNeutralMesonPiPlPiMiPiZero_pPb(
        gSystem->Load("libTENDERSupplies.so");
 
        Int_t isHeavyIon = 2;
+       Int_t neutralPionMode = 0;
        
        // ================== GetAnalysisManager ===============================
        AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
@@ -49,7 +50,9 @@ void AddTask_GammaConvNeutralMesonPiPlPiMiPiZero_pPb(
        TString cutnumberPhoton = "060084001001500000000";
        TString cutnumberEvent = "8000000";
        TString PionCuts      = "000000200";            //Electron Cuts
-               
+       
+
+       
        Bool_t doEtaShift = kFALSE;
 
        AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
@@ -136,7 +139,7 @@ void AddTask_GammaConvNeutralMesonPiPlPiMiPiZero_pPb(
        
        AliAnalysisTaskNeutralMesonToPiPlPiMiPiZero *task=NULL;
 
-       task= new AliAnalysisTaskNeutralMesonToPiPlPiMiPiZero(Form("GammaConvNeutralMesonPiPlPiMiPiZero_%i",trainConfig));
+       task= new AliAnalysisTaskNeutralMesonToPiPlPiMiPiZero(Form("GammaConvNeutralMesonPiPlPiMiPiZero_%i_%i",neutralPionMode, trainConfig));
 
        task->SetIsHeavyIon(2);
        task->SetIsMC(isMC);
@@ -159,33 +162,37 @@ void AddTask_GammaConvNeutralMesonPiPlPiMiPiZero_pPb(
        stringShift = "pPb";
 
        if( trainConfig == 1 ) {
-               // everything open
-               eventCutArray[ 0] = "8000011"; ConvCutarray[0] = "002091170008260400000"; PionCutarray[0] = "000000400"; NeutralPionCutarray[0] = "01035030000000"; MesonCutarray[0] = "01035030000000"; 
+               // everything open, min pt charged pi = 100 MeV
+               eventCutArray[ 0] = "8000011"; ConvCutarray[0] = "002091170008260400000"; PionCutarray[0] = "000010400"; NeutralPionCutarray[0] = "01035030000000"; MesonCutarray[0] = "01035030000000"; 
        } else if( trainConfig == 2 ) {
-               // closing charged pion cuts, minimum TPC cluster = 80, TPC dEdx pi = \pm 3 sigma
-               eventCutArray[ 0] = "8000011"; ConvCutarray[0] = "002091170008260400000"; PionCutarray[0] = "002000700"; NeutralPionCutarray[0] = "01035030000000"; MesonCutarray[0] = "01035030000000"; 
+               // closing charged pion cuts, minimum TPC cluster = 80, TPC dEdx pi = \pm 3 sigma, min pt charged pi = 100 MeV
+               eventCutArray[ 0] = "8000011"; ConvCutarray[0] = "002091170008260400000"; PionCutarray[0] = "002010700"; NeutralPionCutarray[0] = "01035030000000"; MesonCutarray[0] = "01035030000000"; 
        } else if( trainConfig == 3 ) {
-               // closing charged pion cuts, minimum TPC cluster = 80, TPC dEdx pi = \pm 3 sigma, ITS dEdx = \pm 5 sigma
-               eventCutArray[ 0] = "8000011"; ConvCutarray[0] = "002091170008260400000"; PionCutarray[0] = "002003700"; NeutralPionCutarray[0] = "01035030000000"; MesonCutarray[0] = "01035030000000"; 
+               // closing charged pion cuts, minimum TPC cluster = 80, TPC dEdx pi = \pm 3 sigma, ITS dEdx = \pm 5 sigma, min pt charged pi = 100 MeV
+               eventCutArray[ 0] = "8000011"; ConvCutarray[0] = "002091170008260400000"; PionCutarray[0] = "002013700"; NeutralPionCutarray[0] = "01035030000000"; MesonCutarray[0] = "01035030000000"; 
        } else if( trainConfig == 4 ) {
-               // closing charged pion cuts, minimum TPC cluster = 80, TPC dEdx pi = \pm 3 sigma, ITS dEdx = \pm 4 sigma
-               eventCutArray[ 0] = "8000011"; ConvCutarray[0] = "002091170008260400000"; PionCutarray[0] = "002006700"; NeutralPionCutarray[0] = "01035030000000"; MesonCutarray[0] = "01035030000000"; 
+               // closing charged pion cuts, minimum TPC cluster = 80, TPC dEdx pi = \pm 3 sigma, ITS dEdx = \pm 4 sigma, min pt charged pi = 100 MeV
+               eventCutArray[ 0] = "8000011"; ConvCutarray[0] = "002091170008260400000"; PionCutarray[0] = "002016700"; NeutralPionCutarray[0] = "01035030000000"; MesonCutarray[0] = "01035030000000"; 
        } else if( trainConfig == 5 ) {
-               // closing charged pion cuts, minimum TPC cluster = 80, TPC dEdx pi = \pm 3 sigma, ITS dEdx = \pm 4 sigma
+               // closing charged pion cuts, minimum TPC cluster = 80, TPC dEdx pi = \pm 3 sigma, ITS dEdx = \pm 4 sigma, min pt charged pi = 100 MeV
                // closing neural pion cuts, 0.1 < M_gamma,gamma < 0.145
-               eventCutArray[ 0] = "8000011"; ConvCutarray[0] = "002091170008260400000"; PionCutarray[0] = "002006700"; NeutralPionCutarray[0] = "01035031000000"; MesonCutarray[0] = "01035030000000";        
+               eventCutArray[ 0] = "8000011"; ConvCutarray[0] = "002091170008260400000"; PionCutarray[0] = "002016700"; NeutralPionCutarray[0] = "01035031000000"; MesonCutarray[0] = "01035030000000";        
        } else if( trainConfig == 6 ) {
-               // closing charged pion cuts, minimum TPC cluster = 80, TPC dEdx pi = \pm 3 sigma, ITS dEdx = \pm 4 sigma
+               // closing charged pion cuts, minimum TPC cluster = 80, TPC dEdx pi = \pm 3 sigma, ITS dEdx = \pm 4 sigma, min pt charged pi = 100 MeV
                // closing neural pion cuts, 0.11 < M_gamma,gamma < 0.145
-               eventCutArray[ 0] = "8000011"; ConvCutarray[0] = "002091170008260400000"; PionCutarray[0] = "002006700"; NeutralPionCutarray[0] = "01035032000000"; MesonCutarray[0] = "01035030000000";        
+               eventCutArray[ 0] = "8000011"; ConvCutarray[0] = "002091170008260400000"; PionCutarray[0] = "002016700"; NeutralPionCutarray[0] = "01035032000000"; MesonCutarray[0] = "01035030000000";        
        } else if( trainConfig == 7 ) {
-               // closing charged pion cuts, minimum TPC cluster = 80, TPC dEdx pi = \pm 3 sigma, ITS dEdx = \pm 4 sigma
+               // closing charged pion cuts, minimum TPC cluster = 80, TPC dEdx pi = \pm 3 sigma, ITS dEdx = \pm 4 sigma, min pt charged pi = 100 MeV
                // closing neural pion cuts, 0.12 < M_gamma,gamma < 0.145
-               eventCutArray[ 0] = "8000011"; ConvCutarray[0] = "002091170008260400000"; PionCutarray[0] = "002006700"; NeutralPionCutarray[0] = "01035033000000"; MesonCutarray[0] = "01035030000000";        
+               eventCutArray[ 0] = "8000011"; ConvCutarray[0] = "002091170008260400000"; PionCutarray[0] = "002016700"; NeutralPionCutarray[0] = "01035033000000"; MesonCutarray[0] = "01035030000000";        
        } else if( trainConfig == 8 ) {
-               // closing charged pion cuts, minimum TPC cluster = 80, TPC dEdx pi = \pm 3 sigma, ITS dEdx = \pm 5 sigma
+               // closing charged pion cuts, minimum TPC cluster = 80, TPC dEdx pi = \pm 3 sigma, ITS dEdx = \pm 5 sigma, min pt charged pi = 100 MeV
                // closing neural pion cuts, 0.12 < M_gamma,gamma < 0.145
-               eventCutArray[ 0] = "8000011"; ConvCutarray[0] = "002091170008260400000"; PionCutarray[0] = "002003700"; NeutralPionCutarray[0] = "01035033000000"; MesonCutarray[0] = "01035030000000";                        
+               eventCutArray[ 0] = "8000011"; ConvCutarray[0] = "002091170008260400000"; PionCutarray[0] = "002013700"; NeutralPionCutarray[0] = "01035033000000"; MesonCutarray[0] = "01035030000000";                        
+       } else if( trainConfig == 9 ) {
+               // closing charged pion cuts, minimum TPC cluster = 80, TPC dEdx pi = \pm 3 sigma, pi+pi- mass cut of 0.75, min pt charged pi = 100 MeV
+               // closing neural pion cuts, 0.1 < M_gamma,gamma < 0.145
+               eventCutArray[ 0] = "8000011"; ConvCutarray[0] = "002091170008260400000"; PionCutarray[0] = "002010702"; NeutralPionCutarray[0] = "01035031000000"; MesonCutarray[0] = "01035030000000"; 
        }
        
        TList *EventCutList = new TList();
@@ -257,8 +264,9 @@ void AddTask_GammaConvNeutralMesonPiPlPiMiPiZero_pPb(
                }
        }
 
+       task->SetNeutralPionMode(0);
        task->SetEventCutList(numberOfCuts,EventCutList);
-       task->SetConversionCutList(numberOfCuts,ConvCutList);
+       task->SetConversionCutList(ConvCutList);
        task->SetNeutralPionCutList(NeutralPionCutList);
        task->SetMesonCutList(MesonCutList);
        task->SetPionCutList(PionCutList);
@@ -269,8 +277,8 @@ void AddTask_GammaConvNeutralMesonPiPlPiMiPiZero_pPb(
 
        //connect containers
        AliAnalysisDataContainer *coutput =
-       mgr->CreateContainer(Form("GammaConvNeutralMesonPiPlPiMiPiZero_%i",trainConfig), TList::Class(),
-                                                       AliAnalysisManager::kOutputContainer,Form("GammaConvNeutralMesonPiPlPiMiPiZero_%i.root",trainConfig));
+       mgr->CreateContainer(Form("GammaConvNeutralMesonPiPlPiMiPiZero_%i_%i",neutralPionMode, trainConfig), TList::Class(),
+                                                       AliAnalysisManager::kOutputContainer,Form("GammaConvNeutralMesonPiPlPiMiPiZero_%i_%i.root",neutralPionMode, trainConfig));
 
        mgr->AddTask(task);
        mgr->ConnectInput(task,0,cinput);
diff --git a/PWGGA/GammaConv/macros/AddTask_GammaConvNeutralMesonPiPlPiMiPiZero_MixedMode_pPb.C b/PWGGA/GammaConv/macros/AddTask_GammaConvNeutralMesonPiPlPiMiPiZero_MixedMode_pPb.C
new file mode 100644 (file)
index 0000000..d17b677
--- /dev/null
@@ -0,0 +1,338 @@
+void AddTask_GammaConvNeutralMesonPiPlPiMiPiZero_MixedMode_pPb(    
+                                                                               Int_t trainConfig = 1,
+                                                                               Bool_t isMC       = kFALSE, //run MC 
+                                                                               Bool_t enableQAMesonTask = kTRUE, //enable QA in AliAnalysisTaskNeutralMesonToPiPlPiMiPiZero
+                                                                               TString fileNameInputForWeighting = "MCSpectraInput.root", // path to file for weigting input
+                                                                               Bool_t doWeighting = kFALSE,  //enable Weighting
+                                                                               TString generatorName = "HIJING",                               
+                                                                               TString cutnumberAODBranch = "0000000060084001001500000"
+                                                                               ) {
+
+       // ================= Load Librariers =================================
+       gSystem->Load("libCore.so");  
+       gSystem->Load("libTree.so");
+       gSystem->Load("libGeom.so");
+       gSystem->Load("libVMC.so");
+       gSystem->Load("libPhysics.so");
+       gSystem->Load("libMinuit");
+       gSystem->Load("libSTEERBase");
+       gSystem->Load("libESD");
+       gSystem->Load("libAOD");
+       gSystem->Load("libANALYSIS");
+       gSystem->Load("libANALYSISalice");  
+       gSystem->Load("libPWGGAGammaConv.so");
+       gSystem->Load("libCDB.so");
+       gSystem->Load("libSTEER.so");
+       gSystem->Load("libSTEERBase.so");
+       gSystem->Load("libTENDER.so");
+       gSystem->Load("libTENDERSupplies.so");
+
+       Int_t isHeavyIon = 2;
+       Int_t neutralPionMode = 1;
+       
+       // ================== GetAnalysisManager ===============================
+       AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
+       if (!mgr) {
+               Error(Form("AddTask_GammaConvNeutralMesonPiPlPiMiPiZero_pPb_%i",trainConfig), "No analysis manager found.");
+               return ;
+       }
+
+       // ================== GetInputEventHandler =============================
+       AliVEventHandler *inputHandler=mgr->GetInputEventHandler();
+       
+       //========= Add PID Reponse to ANALYSIS manager ====
+       if(!(AliPIDResponse*)mgr->GetTask("PIDResponseTask")){
+               gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskPIDResponse.C");
+               AddTaskPIDResponse(isMC);
+       }
+       
+       //=========  Set Cutnumber for V0Reader ================================
+       TString cutnumberPhoton = "060084001001500000000";
+       TString cutnumberEvent = "8000000";
+       TString PionCuts      = "000000200";            //Electron Cuts
+       
+
+       
+       Bool_t doEtaShift = kFALSE;
+
+       AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
+       
+       //========= Add V0 Reader to  ANALYSIS manager if not yet existent =====
+       if( !(AliV0ReaderV1*)mgr->GetTask("V0ReaderV1") ){
+               AliV0ReaderV1 *fV0ReaderV1 = new AliV0ReaderV1("V0ReaderV1");
+               
+               fV0ReaderV1->SetUseOwnXYZCalculation(kTRUE);
+               fV0ReaderV1->SetCreateAODs(kFALSE);// AOD Output
+               fV0ReaderV1->SetUseAODConversionPhoton(kTRUE);
+               
+               if (!mgr) {
+                       Error("AddTask_V0ReaderV1", "No analysis manager found.");
+                       return;
+               }
+
+               AliConvEventCuts *fEventCuts=NULL;
+               if(cutnumberEvent!=""){
+                       fEventCuts= new AliConvEventCuts(cutnumberEvent.Data(),cutnumberEvent.Data());
+                       fEventCuts->SetPreSelectionCutFlag(kTRUE);
+                       if(fEventCuts->InitializeCutsFromCutString(cutnumberEvent.Data())){
+                               fEventCuts->DoEtaShift(doEtaShift);
+                               fV0ReaderV1->SetEventCuts(fEventCuts);
+                               fEventCuts->SetFillCutHistograms("",kTRUE);
+                       }
+               }
+
+               // Set AnalysisCut Number
+               AliConversionPhotonCuts *fCuts=NULL;
+               if(cutnumberPhoton!=""){
+                       fCuts= new AliConversionPhotonCuts(cutnumberPhoton.Data(),cutnumberPhoton.Data());
+                       fCuts->SetPreSelectionCutFlag(kTRUE);
+                       fCuts->SetIsHeavyIon(isHeavyIon);
+                       if(fCuts->InitializeCutsFromCutString(cutnumberPhoton.Data())){
+                               fV0ReaderV1->SetConversionCuts(fCuts);
+                               fCuts->SetFillCutHistograms("",kTRUE);
+                       }
+               }
+
+               if(inputHandler->IsA()==AliAODInputHandler::Class()){
+               // AOD mode
+                       fV0ReaderV1->SetDeltaAODBranchName(Form("GammaConv_%s_gamma",cutnumberAODBranch.Data()));
+               }
+               fV0ReaderV1->Init();
+
+               AliLog::SetGlobalLogLevel(AliLog::kInfo);
+
+               //connect input V0Reader
+               mgr->AddTask(fV0ReaderV1);
+               mgr->ConnectInput(fV0ReaderV1,0,cinput);
+       }
+
+       //================================================
+       //========= Add Electron Selector ================
+
+
+       if( !(AliPrimaryPionSelector*)mgr->GetTask("PionSelector") ){
+
+               AliPrimaryPionSelector *fPionSelector = new AliPrimaryPionSelector("PionSelector");
+               // Set AnalysisCut Number
+
+               AliPrimaryPionCuts *fPionCuts=0;
+               if( PionCuts!=""){
+                       fPionCuts= new AliPrimaryPionCuts(PionCuts.Data(),PionCuts.Data());
+                       if(fPionCuts->InitializeCutsFromCutString(PionCuts.Data())){
+                               fPionSelector->SetPrimaryPionCuts(fPionCuts);
+                               fPionCuts->SetFillCutHistograms("",kTRUE);
+
+                       }
+               }
+
+               fPionSelector->Init();
+               mgr->AddTask(fPionSelector);
+               
+               AliAnalysisDataContainer *cinput1  = mgr->GetCommonInputContainer();
+
+               //connect input V0Reader
+               mgr->ConnectInput (fPionSelector,0,cinput1);
+
+       }
+
+       
+       
+       AliAnalysisTaskNeutralMesonToPiPlPiMiPiZero *task=NULL;
+
+       task= new AliAnalysisTaskNeutralMesonToPiPlPiMiPiZero(Form("GammaConvNeutralMesonPiPlPiMiPiZero_%i_%i",neutralPionMode, trainConfig));
+
+       task->SetIsHeavyIon(2);
+       task->SetIsMC(isMC);
+
+       // Cut Numbers to use in Analysis
+       Int_t numberOfCuts = 1;
+
+       TString *eventCutArray                  = new TString[numberOfCuts];
+       TString *ClusterCutarray                = new TString[numberOfCuts];
+       TString *ConvCutarray                   = new TString[numberOfCuts];
+       TString *PionCutarray                   = new TString[numberOfCuts];
+       TString *NeutralPionCutarray    = new TString[numberOfCuts];
+       TString *MesonCutarray                  = new TString[numberOfCuts];
+       
+       Bool_t doEtaShiftIndCuts = kFALSE;
+       TString stringShift = "";
+
+       // Shifting in pPb direction
+
+       doEtaShiftIndCuts = kTRUE;
+       stringShift = "pPb";
+
+       // EMCAL mode
+       if( trainConfig == 1 ) {
+               // everything open
+               eventCutArray[ 0] = "8000011"; ConvCutarray[0] = "002091170008260400000"; ClusterCutarray[0] = "10000040022030000"; PionCutarray[0] = "000010400"; NeutralPionCutarray[0] = "01035030000000"; MesonCutarray[0] = "01035030000000"; 
+       } else if( trainConfig == 2 ) {
+               // closing charged pion cuts, minimum TPC cluster = 80, TPC dEdx pi = \pm 3 sigma, min pt charged pi = 100 MeV
+               eventCutArray[ 0] = "8000011"; ConvCutarray[0] = "002091170008260400000"; ClusterCutarray[0] = "10000040022030000"; PionCutarray[0] = "002010700"; NeutralPionCutarray[0] = "01035030000000"; MesonCutarray[0] = "01035030000000"; 
+       } else if( trainConfig == 3 ) {
+               // closing charged pion cuts, minimum TPC cluster = 80, TPC dEdx pi = \pm 3 sigma, ITS dEdx = \pm 5 sigma, min pt charged pi = 100 MeV
+               eventCutArray[ 0] = "8000011"; ConvCutarray[0] = "002091170008260400000"; ClusterCutarray[0] = "10000040022030000"; PionCutarray[0] = "002013700"; NeutralPionCutarray[0] = "01035030000000"; MesonCutarray[0] = "01035030000000"; 
+       } else if( trainConfig == 4 ) {
+               // closing charged pion cuts, minimum TPC cluster = 80, TPC dEdx pi = \pm 3 sigma, ITS dEdx = \pm 4 sigma, min pt charged pi = 100 MeV
+               eventCutArray[ 0] = "8000011"; ConvCutarray[0] = "002091170008260400000"; ClusterCutarray[0] = "10000040022030000"; PionCutarray[0] = "002016700"; NeutralPionCutarray[0] = "01035030000000"; MesonCutarray[0] = "01035030000000"; 
+       } else if( trainConfig == 5 ) {
+               // closing charged pion cuts, minimum TPC cluster = 80, TPC dEdx pi = \pm 3 sigma, ITS dEdx = \pm 4 sigma, min pt charged pi = 100 MeV
+               // closing neural pion cuts, 0.1 < M_gamma,gamma < 0.145
+               eventCutArray[ 0] = "8000011"; ConvCutarray[0] = "002091170008260400000"; ClusterCutarray[0] = "10000040022030000"; PionCutarray[0] = "002016700"; NeutralPionCutarray[0] = "01035031000000"; MesonCutarray[0] = "01035030000000";      
+       } else if( trainConfig == 6 ) {
+               // closing charged pion cuts, minimum TPC cluster = 80, TPC dEdx pi = \pm 3 sigma, ITS dEdx = \pm 4 sigma, min pt charged pi = 100 MeV
+               // closing neural pion cuts, 0.11 < M_gamma,gamma < 0.145
+               eventCutArray[ 0] = "8000011"; ConvCutarray[0] = "002091170008260400000"; ClusterCutarray[0] = "10000040022030000"; PionCutarray[0] = "002016700"; NeutralPionCutarray[0] = "01035032000000"; MesonCutarray[0] = "01035030000000";      
+       } else if( trainConfig == 7 ) {
+               // closing charged pion cuts, minimum TPC cluster = 80, TPC dEdx pi = \pm 3 sigma, ITS dEdx = \pm 4 sigma, min pt charged pi = 100 MeV
+               // closing neural pion cuts, 0.12 < M_gamma,gamma < 0.145
+               eventCutArray[ 0] = "8000011"; ConvCutarray[0] = "002091170008260400000"; ClusterCutarray[0] = "10000040022030000"; PionCutarray[0] = "002016700"; NeutralPionCutarray[0] = "01035033000000"; MesonCutarray[0] = "01035030000000";      
+       } else if( trainConfig == 8 ) {
+               // closing charged pion cuts, minimum TPC cluster = 80, TPC dEdx pi = \pm 3 sigma, ITS dEdx = \pm 5 sigma, min pt charged pi = 100 MeV
+               // closing neural pion cuts, 0.12 < M_gamma,gamma < 0.145
+               eventCutArray[ 0] = "8000011"; ConvCutarray[0] = "002091170008260400000"; ClusterCutarray[0] = "10000040022030000"; PionCutarray[0] = "002013700"; NeutralPionCutarray[0] = "01035033000000"; MesonCutarray[0] = "01035030000000";                      
+       } else if( trainConfig == 9 ) {
+               // closing charged pion cuts, minimum TPC cluster = 80, TPC dEdx pi = \pm 3 sigma, pi+pi- mass Cut at 0.75, min pt charged pi = 100 MeV
+               // closing neural pion cuts, 0.1 < M_gamma,gamma < 0.145
+               eventCutArray[ 0] = "8000011"; ConvCutarray[0] = "002091170008260400000"; ClusterCutarray[0] = "10000040022030000"; PionCutarray[0] = "002010702"; NeutralPionCutarray[0] = "01035031000000"; MesonCutarray[0] = "01035030000000"; 
+       }
+
+       // PHOS mode
+       if( trainConfig == 31 ) {
+               // everything open
+               eventCutArray[ 0] = "8000011"; ConvCutarray[0] = "002091170008260400000"; ClusterCutarray[0] = "20000030022000000"; PionCutarray[0] = "000010400"; NeutralPionCutarray[0] = "01035030000000"; MesonCutarray[0] = "01035030000000"; 
+       } else if( trainConfig == 32 ) {
+               // closing charged pion cuts, minimum TPC cluster = 80, TPC dEdx pi = \pm 3 sigma, min pt charged pi = 100 MeV
+               eventCutArray[ 0] = "8000011"; ConvCutarray[0] = "002091170008260400000"; ClusterCutarray[0] = "20000030022000000"; PionCutarray[0] = "002010700"; NeutralPionCutarray[0] = "01035030000000"; MesonCutarray[0] = "01035030000000"; 
+       } else if( trainConfig == 33 ) {
+               // closing charged pion cuts, minimum TPC cluster = 80, TPC dEdx pi = \pm 3 sigma, ITS dEdx = \pm 5 sigma, min pt charged pi = 100 MeV
+               eventCutArray[ 0] = "8000011"; ConvCutarray[0] = "002091170008260400000"; ClusterCutarray[0] = "20000030022000000"; PionCutarray[0] = "002013700"; NeutralPionCutarray[0] = "01035030000000"; MesonCutarray[0] = "01035030000000"; 
+       } else if( trainConfig == 34 ) {
+               // closing charged pion cuts, minimum TPC cluster = 80, TPC dEdx pi = \pm 3 sigma, ITS dEdx = \pm 4 sigma, min pt charged pi = 100 MeV
+               eventCutArray[ 0] = "8000011"; ConvCutarray[0] = "002091170008260400000"; ClusterCutarray[0] = "20000030022000000"; PionCutarray[0] = "002016700"; NeutralPionCutarray[0] = "01035030000000"; MesonCutarray[0] = "01035030000000"; 
+       } else if( trainConfig == 35 ) {
+               // closing charged pion cuts, minimum TPC cluster = 80, TPC dEdx pi = \pm 3 sigma, ITS dEdx = \pm 4 sigma, min pt charged pi = 100 MeV
+               // closing neural pion cuts, 0.1 < M_gamma,gamma < 0.145
+               eventCutArray[ 0] = "8000011"; ConvCutarray[0] = "002091170008260400000"; ClusterCutarray[0] = "20000030022000000"; PionCutarray[0] = "002016700"; NeutralPionCutarray[0] = "01035031000000"; MesonCutarray[0] = "01035030000000";      
+       } else if( trainConfig == 36 ) {
+               // closing charged pion cuts, minimum TPC cluster = 80, TPC dEdx pi = \pm 3 sigma, ITS dEdx = \pm 4 sigma, min pt charged pi = 100 MeV
+               // closing neural pion cuts, 0.11 < M_gamma,gamma < 0.145
+               eventCutArray[ 0] = "8000011"; ConvCutarray[0] = "002091170008260400000"; ClusterCutarray[0] = "20000030022000000"; PionCutarray[0] = "002016700"; NeutralPionCutarray[0] = "01035032000000"; MesonCutarray[0] = "01035030000000";      
+       } else if( trainConfig == 37 ) {
+               // closing charged pion cuts, minimum TPC cluster = 80, TPC dEdx pi = \pm 3 sigma, ITS dEdx = \pm 4 sigma, min pt charged pi = 100 MeV
+               // closing neural pion cuts, 0.12 < M_gamma,gamma < 0.145
+               eventCutArray[ 0] = "8000011"; ConvCutarray[0] = "002091170008260400000"; ClusterCutarray[0] = "20000030022000000"; PionCutarray[0] = "002016700"; NeutralPionCutarray[0] = "01035033000000"; MesonCutarray[0] = "01035030000000";      
+       } else if( trainConfig == 38 ) {
+               // closing charged pion cuts, minimum TPC cluster = 80, TPC dEdx pi = \pm 3 sigma, ITS dEdx = \pm 5 sigma, min pt charged pi = 100 MeV
+               // closing neural pion cuts, 0.12 < M_gamma,gamma < 0.145
+               eventCutArray[ 0] = "8000011"; ConvCutarray[0] = "002091170008260400000"; ClusterCutarray[0] = "20000030022000000"; PionCutarray[0] = "002013700"; NeutralPionCutarray[0] = "01035033000000"; MesonCutarray[0] = "01035030000000";                      
+       } else if( trainConfig == 39 ) {
+               // closing charged pion cuts, minimum TPC cluster = 80, TPC dEdx pi = \pm 3 sigma, pi+pi- mass Cut at 0.75, min pt charged pi = 100 MeV
+               // closing neural pion cuts, 0.1 < M_gamma,gamma < 0.145
+               eventCutArray[ 0] = "8000011"; ConvCutarray[0] = "002091170008260400000"; ClusterCutarray[0] = "20000030022000000"; PionCutarray[0] = "002010702"; NeutralPionCutarray[0] = "01035031000000"; MesonCutarray[0] = "01035030000000"; 
+       }
+
+       TList *EventCutList = new TList();
+       TList *ConvCutList  = new TList();
+       TList *ClusterCutList  = new TList();
+       TList *NeutralPionCutList = new TList();
+       TList *MesonCutList = new TList();
+       TList *PionCutList  = new TList();
+
+       TList *HeaderList = new TList();
+       TObjString *Header1 = new TObjString("pi0_1");
+       HeaderList->Add(Header1);
+       TObjString *Header3 = new TObjString("eta_2");
+       HeaderList->Add(Header3);
+       
+       EventCutList->SetOwner(kTRUE);
+       AliConvEventCuts **analysisEventCuts = new AliConvEventCuts*[numberOfCuts];
+       ConvCutList->SetOwner(kTRUE);
+       AliConversionPhotonCuts **analysisCuts = new AliConversionPhotonCuts*[numberOfCuts];
+       ClusterCutList->SetOwner(kTRUE);
+       AliCaloPhotonCuts **analysisClusterCuts = new AliCaloPhotonCuts*[numberOfCuts];
+       NeutralPionCutList->SetOwner(kTRUE);
+       AliConversionMesonCuts **analysisNeutralPionCuts   = new AliConversionMesonCuts*[numberOfCuts];
+       MesonCutList->SetOwner(kTRUE);
+       AliConversionMesonCuts **analysisMesonCuts   = new AliConversionMesonCuts*[numberOfCuts];
+       PionCutList->SetOwner(kTRUE);
+       AliPrimaryPionCuts **analysisPionCuts     = new AliPrimaryPionCuts*[numberOfCuts];
+
+       for(Int_t i = 0; i<numberOfCuts; i++){
+               analysisEventCuts[i] = new AliConvEventCuts();   
+               analysisEventCuts[i]->InitializeCutsFromCutString(eventCutArray[i].Data());
+               EventCutList->Add(analysisEventCuts[i]);
+               analysisEventCuts[i]->SetFillCutHistograms("",kFALSE);
+
+               analysisCuts[i] = new AliConversionPhotonCuts();
+               if( ! analysisCuts[i]->InitializeCutsFromCutString(ConvCutarray[i].Data()) ) {
+                               cout<<"ERROR: analysisCuts [" <<i<<"]"<<endl;
+                               return 0;
+               } else {                                
+                       ConvCutList->Add(analysisCuts[i]);
+                       analysisCuts[i]->SetFillCutHistograms("",kFALSE);       
+               }
+
+               analysisClusterCuts[i] = new AliCaloPhotonCuts();
+               if( ! analysisClusterCuts[i]->InitializeCutsFromCutString(ClusterCutarray[i].Data()) ) {
+                               cout<<"ERROR: analysisClusterCuts [" <<i<<"]"<<endl;
+                               return 0;
+               } else {                                
+                       ClusterCutList->Add(analysisClusterCuts[i]);
+                       analysisClusterCuts[i]->SetFillCutHistograms("");                       
+               }
+
+               analysisNeutralPionCuts[i] = new AliConversionMesonCuts();
+               if( ! analysisNeutralPionCuts[i]->InitializeCutsFromCutString(NeutralPionCutarray[i].Data()) ) {
+                       cout<<"ERROR: analysisMesonCuts [ " <<i<<" ] "<<endl;
+                       return 0;
+               } else {
+                       NeutralPionCutList->Add(analysisNeutralPionCuts[i]);
+                       analysisNeutralPionCuts[i]->SetFillCutHistograms("");
+               }
+       
+               analysisMesonCuts[i] = new AliConversionMesonCuts();
+               if( ! analysisMesonCuts[i]->InitializeCutsFromCutString(MesonCutarray[i].Data()) ) {
+                       cout<<"ERROR: analysisMesonCuts [ " <<i<<" ] "<<endl;
+                       return 0;
+               } else {
+                       MesonCutList->Add(analysisMesonCuts[i]);
+                       analysisMesonCuts[i]->SetFillCutHistograms("");
+               }
+               analysisEventCuts[i]->SetAcceptedHeader(HeaderList);
+               
+               TString cutName( Form("%s_%s_%s_%s_%s_%s",eventCutArray[i].Data(), ConvCutarray[i].Data(), ClusterCutarray[i].Data(),PionCutarray[i].Data(),NeutralPionCutarray[i].Data(), MesonCutarray[i].Data() ) );
+               analysisPionCuts[i] = new AliPrimaryPionCuts();
+               if( !analysisPionCuts[i]->InitializeCutsFromCutString(PionCutarray[i].Data())) {
+                       cout<< "ERROR:  analysisPionCuts [ " <<i<<" ] "<<endl;
+                       return 0;
+               } else { 
+                       PionCutList->Add(analysisPionCuts[i]);
+                       analysisPionCuts[i]->SetFillCutHistograms("",kFALSE,cutName); 
+               }
+       }
+
+       task->SetNeutralPionMode(neutralPionMode);
+       task->SetEventCutList(numberOfCuts,EventCutList);
+       task->SetConversionCutList(ConvCutList);
+       task->SetClusterCutList(ClusterCutList);
+       task->SetNeutralPionCutList(NeutralPionCutList);
+       task->SetMesonCutList(MesonCutList);
+       task->SetPionCutList(PionCutList);
+
+       task->SetMoveParticleAccordingToVertex(kTRUE);
+
+       if(enableQAMesonTask) task->SetDoMesonQA(kTRUE);
+
+       //connect containers
+       AliAnalysisDataContainer *coutput =
+       mgr->CreateContainer(Form("GammaConvNeutralMesonPiPlPiMiPiZero_%i_%i",neutralPionMode, trainConfig), TList::Class(),
+                                                       AliAnalysisManager::kOutputContainer,Form("GammaConvNeutralMesonPiPlPiMiPiZero_%i_%i.root",neutralPionMode, trainConfig));
+
+       mgr->AddTask(task);
+       mgr->ConnectInput(task,0,cinput);
+       mgr->ConnectOutput(task,1,coutput);
+
+       return;
+
+}
index 8785a488746ecb9b1c6dec0597cadd4aef3f57b6..746ce5f0b32d4a8706492215621f9246798e5913 100644 (file)
@@ -54,6 +54,7 @@
 #include "AliEMCALGeometry.h"
 #include "AliAnalysisUtils.h"
 #include "AliOADBContainer.h"
+#include "AliAODMCHeader.h"
 
 ClassImp(AliAnalysisTaskTaggedPhotons)
 
@@ -75,7 +76,8 @@ AliAnalysisTaskTaggedPhotons::AliAnalysisTaskTaggedPhotons() :
   fCentrality(0.),
   fCentBin(0), 
   fIsMB(0),
-  fIsMC(0)
+  fIsMC(0),
+  fIsFastMC(0)
 {
   //Deafult constructor
   //no memory allocations
@@ -103,7 +105,8 @@ AliAnalysisTaskTaggedPhotons::AliAnalysisTaskTaggedPhotons(const char *name) :
   fCentrality(0.),
   fCentBin(0),
   fIsMB(0),
-  fIsMC(0)
+  fIsMC(0),
+  fIsFastMC(0)
 {
   // Constructor.
 
@@ -137,7 +140,8 @@ AliAnalysisTaskTaggedPhotons::AliAnalysisTaskTaggedPhotons(const AliAnalysisTask
   fCentrality(0.),
   fCentBin(0),
   fIsMB(0),
-  fIsMC(0)
+  fIsMC(0),
+  fIsFastMC(0)
 {
   // cpy ctor
   fZmax=ap.fZmax ;
@@ -585,15 +589,17 @@ void AliAnalysisTaskTaggedPhotons::UserExec(Option_t *)
     InitGeometry() ;
   }
   
-  if(!fUtils) 
-    fUtils = new AliAnalysisUtils();
+  if(!fIsFastMC){
+    if(!fUtils) 
+      fUtils = new AliAnalysisUtils();
 
-  Bool_t isMB = (((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & AliVEvent::kINT7)  ; 
-  Bool_t isPHI7 = (((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & AliVEvent::kPHI7);
-   
-  if((fIsMB && !isMB) || (!fIsMB && !isPHI7)){
-    PostData(1, fOutputContainer);
-    return;    
+    Bool_t isMB = (((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & AliVEvent::kINT7)  ; 
+    Bool_t isPHI7 = (((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & AliVEvent::kPHI7);
+
+    if((fIsMB && !isMB) || (!fIsMB && !isPHI7)){
+      PostData(1, fOutputContainer);
+      return;    
+    }
   }
   FillHistogram("hSelEvents",2) ;
   
@@ -607,47 +613,61 @@ void AliAnalysisTaskTaggedPhotons::UserExec(Option_t *)
 
   FillHistogram("hNvertexTracks",event->GetPrimaryVertex()->GetNContributors());
   FillHistogram("hZvertex"      ,vtx5[2]);
+  if(fIsFastMC){ //vertex from header
+    AliAODMCHeader *cHeaderAOD = dynamic_cast<AliAODMCHeader*>(event->FindListObject(AliAODMCHeader::StdBranchName()));
+    if(!cHeaderAOD){
+      PostData(1, fOutputContainer);
+      return ;      
+    }
+    cHeaderAOD->GetVertex(vtx5);
+  }
   if (TMath::Abs(vtx5[2]) > 10. ){
     PostData(1, fOutputContainer);
     return ;
   }
-    
   FillHistogram("hSelEvents",3) ;
   //Vtx class z-bin
   Int_t zvtx = TMath::Min(9,Int_t((vtx5[2]+10.)/2.)) ; 
 
   
+  if(!fIsFastMC){
+//    if (event->IsPileupFromSPD()){
+//      PostData(1, fOutputContainer);
+//      return ;
+//    }
   
-//  if (event->IsPileupFromSPD()){
-//    PostData(1, fOutputContainer);
-//    return ;
-//  }
+    if(!fUtils->IsVertexSelected2013pA(event)){
+      PostData(1, fOutputContainer);
+      return ;
+    }
   
-  if(!fUtils->IsVertexSelected2013pA(event)){
-    PostData(1, fOutputContainer);
-    return ;
-  }
-  FillHistogram("hSelEvents",4) ;
+    FillHistogram("hSelEvents",4) ;
   
-  if(fUtils->IsPileUpEvent(event)){
-    PostData(1, fOutputContainer);
-    return ;
+    if(fUtils->IsPileUpEvent(event)){
+      PostData(1, fOutputContainer);
+      return ;
+    }
+    FillHistogram("hSelEvents",5) ;
   }
-  FillHistogram("hSelEvents",5) ;
   
   //centrality
-  AliCentrality *centrality = event->GetCentrality();
-  if( centrality )
-    fCentrality=centrality->GetCentralityPercentile("V0M");
-  else {
-    AliError("Event has 0x0 centrality");
-    fCentrality = -1.;
-  }
-  FillHistogram("hCentrality",fCentrality) ;
+  if(!fIsFastMC){  
+    AliCentrality *centrality = event->GetCentrality();
+    if( centrality )
+      fCentrality=centrality->GetCentralityPercentile("V0M");
+    else {
+      AliError("Event has 0x0 centrality");
+      fCentrality = -1.;
+    }
+    FillHistogram("hCentrality",fCentrality) ;
 
-  if(fCentrality<0. || fCentrality>=100.){
-    PostData(1, fOutputContainer);
-    return ;
+    if(fCentrality<0. || fCentrality>=100.){
+      PostData(1, fOutputContainer);
+      return ;
+    }
+  }
+  else{
+    fCentrality=1.;
   }
   fCentBin = (Int_t)(fCentrality/20.) ; 
 
index 67c5e3aa830553139e63b5acf3fa81fbea8498e0..a94924a62f687fadff909d73dfd32b1922e92a63 100644 (file)
@@ -41,6 +41,7 @@ public:
 
   void SetTrigger(Bool_t isPHOSTrig){fIsMB=isPHOSTrig;}
   void SetMC(Bool_t isMC=kTRUE){fIsMC=isMC;}
+  void SetFastMC(void){fIsFastMC=kTRUE;fIsMC=kTRUE; } //same as MC, but bypass event checks
   void SetPi0WeightParameters(TArrayD * ar) ;
 
 protected:
@@ -89,6 +90,7 @@ private:
   Int_t fCentBin ;
   Bool_t fIsMB ; //which trigger to use
   Bool_t fIsMC ; //Is this is MC
+  Bool_t fIsFastMC; //This is fast MC, bypass event checks
   TH2I * fPHOSBadMap[6] ; 
     
   ClassDef(AliAnalysisTaskTaggedPhotons, 2);   // a PHOS photon analysis task 
index 587e81b4b1bdb4c5ab95e633d657e221faed95d4..5cbd1914a5d77f72029aae16843c3644988963a2 100644 (file)
@@ -417,7 +417,7 @@ void AliAnalysisTaskDStarCorrelations::UserExec(Option_t *){
     if(!fmixing) ((TH1D*)fOutput->FindObject("MultiplicityOnlyCheck"))->Fill(AliVertexingHFUtils::GetNumberOfTrackletsInEtaRange(aodEvent,-1.,1.));
     
     
-   // Int_t poolbin = fAssocCuts->GetPoolBin(MultipOrCent, zVtxPosition); // get the event pool bin - commented for the moment - to be checked
+    Int_t poolbin = fAssocCuts->GetPoolBin(MultipOrCent, zVtxPosition); // get the event pool bin - commented for the moment - to be checked
     
     
     
@@ -485,10 +485,14 @@ void AliAnalysisTaskDStarCorrelations::UserExec(Option_t *){
     Double_t efficiencyvariable = -999; // Variable to be used (defined by the AddTask)
     Double_t dmDStarWindow = 0.0019/3; // DStar window
     
+    Int_t ncandidates = 0;
+    
     // cout << "Task debug check 3 " << endl;
     // loop over D meson candidates
     for (Int_t iDStartoD0pi = 0; iDStartoD0pi<looponDCands; iDStartoD0pi++) {
     
+         //if(ncandidates) continue;  // if there is more than one D candidate, skip it
+        
         // initialize variables
         isInPeak = kFALSE;
         isInDStarSideBand = kFALSE;
@@ -553,8 +557,8 @@ void AliAnalysisTaskDStarCorrelations::UserExec(Option_t *){
             phiDStar = fCorrelator->SetCorrectPhiRange(phiDStar); // set the Phi of the D* in the range defined a priori (-0.5 Pi - 1.5 Pi)
             ptbin=fCuts->PtBin(dstarD0pi->Pt()); // get the pt bin of the D*
             
-            cout << "DStar pt = " << ptDStar << endl;
-             cout << "pt bin = " << ptbin << endl;
+           // cout << "DStar pt = " << ptDStar << endl;
+           //  cout << "pt bin = " << ptbin << endl;
             if(ptbin<1) continue;
             
              Double_t mD0Window= fD0Window[ptbin]/3;
@@ -595,10 +599,17 @@ void AliAnalysisTaskDStarCorrelations::UserExec(Option_t *){
             
             // fill mass histograms
             
-            // cout << "Task debug check 5 " << endl;
+            // plot D0 vs DStar mass
+            if(!fmixing){
+              
+                ((TH2D*)fDmesonOutput->FindObject(Form("histDZerovsDStarMass_%d",ptbin)))->Fill(invMassDZero,deltainvMDStar);
+               if(fUseDmesonEfficiencyCorrection) ((TH2D*)fDmesonOutput->FindObject(Form("histDZerovsDStarMassWeight_%d",ptbin)))->Fill(invMassDZero,deltainvMDStar,DmesonWeight);
+            }
+            
+            
+           
             // fill D0 invariant mass
             if(!fmixing) {
-                cout << " histo name = " << Form("histDZeroMass_%d",ptbin) << endl;
                 ((TH1F*)fDmesonOutput->FindObject(Form("histDZeroMass_%d",ptbin)))->Fill(invMassDZero);
                 // cout << "Task debug check 5.1 " << endl;
                 if(fUseDmesonEfficiencyCorrection) ((TH1F*)fDmesonOutput->FindObject(Form("histDZeroMassWeight_%d",ptbin)))->Fill(invMassDZero,DmesonWeight);
@@ -621,6 +632,7 @@ void AliAnalysisTaskDStarCorrelations::UserExec(Option_t *){
                         if(!fmixing)   ((TH2F*)fDmesonOutput->FindObject("PhiInclusiveDStar"))->Fill(phiDStar,ptDStar); // fill phi, eta
                         if(!fmixing)   ((TH2F*)fDmesonOutput->FindObject("EtaInclusiveDStar"))->Fill(etaDStar,ptDStar); // fill phi, eta
                         nOfDStarCandidates++;
+                        ncandidates ++;
                         EventHasDStarCandidate=kTRUE;
                     } // end if in good D* mass window
                     
@@ -631,6 +643,7 @@ void AliAnalysisTaskDStarCorrelations::UserExec(Option_t *){
                             if(!fmixing)       ((TH2F*)fDmesonOutput->FindObject("PhiSidebandDStar"))->Fill(phiDStar,ptDStar); // fill phi, eta
                             if(!fmixing)       ((TH2F*)fDmesonOutput->FindObject("EtaSidebandDStar"))->Fill(etaDStar,ptDStar); // fill phi, eta
                             nOfSBCandidates++;
+                            ncandidates ++;
                             EventHasDStarSideBandCandidate = kTRUE;
                             }
                             
@@ -653,6 +666,7 @@ void AliAnalysisTaskDStarCorrelations::UserExec(Option_t *){
                              if(!fmixing)      ((TH2F*)fDmesonOutput->FindObject("PhiSidebandDStar"))->Fill(phiDStar,ptDStar); // fill phi, eta
                              if(!fmixing)      ((TH2F*)fDmesonOutput->FindObject("EtaSidebandDStar"))->Fill(etaDStar,ptDStar); // fill phi, eta
                              nOfSBCandidates++;
+                             ncandidates ++;
                              EventHasDZeroSideBandCandidate = kTRUE;
                          }
                      }
@@ -774,7 +788,7 @@ void AliAnalysisTaskDStarCorrelations::UserExec(Option_t *){
         
          // ************************************************ CORRELATION ANALYSIS STARTS HERE *****************************************************
         
-        cout << "Correlating " << endl;
+      //  cout << "Correlating " << endl;
         
         Bool_t execPool = fCorrelator->ProcessEventPool(); // checks pool readiness for mixed events
         
@@ -822,7 +836,7 @@ void AliAnalysisTaskDStarCorrelations::UserExec(Option_t *){
                 continue;
             }
             
-            Double_t arraytofill[4];
+            Double_t arraytofill[5];
           // Double_t MCarraytofill[4]; // think about this
             Double_t weight;
             
@@ -882,7 +896,7 @@ void AliAnalysisTaskDStarCorrelations::UserExec(Option_t *){
                  arraytofill[1] = deltainvMDStar;
                  arraytofill[2] = DeltaEta;
                  arraytofill[3] = ptHad;
-                // arraytofill[4] = poolbin;
+                 arraytofill[4] = poolbin;
                  
                  
                  // skip the D daughters in the correlation
@@ -942,7 +956,10 @@ void AliAnalysisTaskDStarCorrelations::UserExec(Option_t *){
         
     } // end loop on D mesons
     
-    
+    if(!fmixing){
+        if(nOfDStarCandidates) ((TH1D*)fDmesonOutput->FindObject("NumberOfDCandidates"))->Fill(nOfDStarCandidates);
+        if(nOfSBCandidates) ((TH1D*)fDmesonOutput->FindObject("NumberOfSBCandidates"))->Fill(nOfSBCandidates);
+    }
     
     
      Bool_t updated = fCorrelator->PoolUpdate(); // update event pool
@@ -1016,17 +1033,17 @@ void AliAnalysisTaskDStarCorrelations::DefineThNSparseForAnalysis(){
     //4 track pt
     
     
-    //Int_t nbinsPool = (fAssocCuts->GetNZvtxPoolBins())*(fAssocCuts->GetNCentPoolBins());
+    Int_t nbinsPool = (fAssocCuts->GetNZvtxPoolBins())*(fAssocCuts->GetNCentPoolBins());
     
     
     // for reconstruction on Data and MC
-    Int_t nbinsSparse[4]=         {nbinscorr ,     32 ,  32, 10};
-    Double_t binLowLimitSparse[4]={lowcorrbin,0.14314 ,-1.6,  0};
-    Double_t binUpLimitSparse[4]= {upcorrbin ,0.14794 , 1.6,  5};
+    Int_t nbinsSparse[5]=         {nbinscorr ,     32 ,  32, 10,nbinsPool};
+    Double_t binLowLimitSparse[5]={lowcorrbin,0.14314 ,-1.6,  0,-0.5};
+    Double_t binUpLimitSparse[5]= {upcorrbin ,0.14794 , 1.6,  5,nbinsPool-0.5};
     
-    Int_t nbinsSparseDStarSB[4]=         {nbinscorr ,     40 ,  32, 10};
-    Double_t binLowLimitSparseDStarSB[4]={lowcorrbin,0.14788 ,-1.6,  0};
-    Double_t binUpLimitSparseDStarSB[4]= {upcorrbin ,0.1504 , 1.6,  5};
+    Int_t nbinsSparseDStarSB[5]=         {nbinscorr ,     40 ,  32, 10,nbinsPool};
+    Double_t binLowLimitSparseDStarSB[5]={lowcorrbin,0.14788 ,-1.6,  0,-0.5};
+    Double_t binUpLimitSparseDStarSB[5]= {upcorrbin ,0.1504 , 1.6,  5,nbinsPool-0.5};
     
     TString signalSparseName = "";
     TString bkgSparseName = "";
@@ -1037,7 +1054,7 @@ void AliAnalysisTaskDStarCorrelations::DefineThNSparseForAnalysis(){
     
     Float_t * ptbinlims = fCuts->GetPtBinLimits();
     
-  
+    
     
     
     for(Int_t iBin =0; iBin < nofPtBins; iBin++){ // create a mass histogram for each ptbin
@@ -1045,8 +1062,8 @@ void AliAnalysisTaskDStarCorrelations::DefineThNSparseForAnalysis(){
         
         
         if(ptbinlims[iBin]<fCuts->GetMinPtCandidate() || ptbinlims[iBin]>fCuts->GetMaxPtCandidate())continue;
-
-
+        
+        
         
         signalSparseName = "CorrelationsDStar";
         if(fselect==1) signalSparseName += "Hadron_";
@@ -1065,20 +1082,20 @@ void AliAnalysisTaskDStarCorrelations::DefineThNSparseForAnalysis(){
         cout << "ThNSparses name = " << signalSparseName << endl;
         
         // define thnsparses for signal candidates
-        CorrelationsSignal = new THnSparseF(signalSparseName.Data(),"Correlations for signal; #Delta#Phi; invariant mass;  #Delta #eta;AssocTrk p_{T}",4,nbinsSparse,binLowLimitSparse,binUpLimitSparse);
-          CorrelationsSignal->Sumw2();
+        CorrelationsSignal = new THnSparseF(signalSparseName.Data(),"Correlations for signal; #Delta#Phi; invariant mass;  #Delta #eta;AssocTrk p_{T}",5,nbinsSparse,binLowLimitSparse,binUpLimitSparse);
+        CorrelationsSignal->Sumw2();
         fCorrelationOutput->Add(CorrelationsSignal);
         
         // define thnsparses for bkg candidates from DStar
         if(fBkgMethod == kDStarSB ){
-        CorrelationsBkg = new THnSparseF(bkgSparseName.Data(),"Correlations for bkg from DStar; #Delta#Phi; invariant mass;  #Delta #eta;AssocTrk p_{T}",4,nbinsSparseDStarSB,binLowLimitSparseDStarSB,binUpLimitSparseDStarSB);
-        CorrelationsBkg->Sumw2();
-        fCorrelationOutput->Add(CorrelationsBkg);
+            CorrelationsBkg = new THnSparseF(bkgSparseName.Data(),"Correlations for bkg from DStar; #Delta#Phi; invariant mass;  #Delta #eta;AssocTrk p_{T}",5,nbinsSparseDStarSB,binLowLimitSparseDStarSB,binUpLimitSparseDStarSB);
+            CorrelationsBkg->Sumw2();
+            fCorrelationOutput->Add(CorrelationsBkg);
         }
         
         // define thnsparses for bkg candidates from DZero
         if(fBkgMethod == kDZeroSB ){
-            CorrelationsBkg = new THnSparseF(bkgSparseName.Data(),"Correlations for bkg from DZero; #Delta#Phi; invariant mass;  #Delta #eta;AssocTrk p_{T}",4,nbinsSparse,binLowLimitSparse,binUpLimitSparse);
+            CorrelationsBkg = new THnSparseF(bkgSparseName.Data(),"Correlations for bkg from DZero; #Delta#Phi; invariant mass;  #Delta #eta;AssocTrk p_{T}",5,nbinsSparse,binLowLimitSparse,binUpLimitSparse);
             CorrelationsBkg->Sumw2();
             fCorrelationOutput->Add(CorrelationsBkg);
         }
@@ -1125,22 +1142,25 @@ void AliAnalysisTaskDStarCorrelations::DefineHistoForAnalysis(){
     TH1F * D0mass = NULL;
     TH1F * DStarMass = NULL;
     TH1F * DStarFromSBMass = NULL;
+    TH2D * DZerovsDStarMass = NULL;
     
     TH1F * D0massWeighted = NULL;
     TH1F * DStarMassWeighted = NULL;
     TH1F * DStarFromSBMassWeighted = NULL;
+    TH2D * DZerovsDStarMassWeighted = NULL;
+    
     
-    TString nameDZeroMass = "", nameDStarMass = "", nameDStarFromSBMass = "";
+    TString nameDZeroMass = "", nameDStarMass = "", nameDStarFromSBMass = "", nameDZerovsDStarMass = "";
     
     Int_t nofPtBins = fCuts->GetNPtBins();// number of ptbins
     Float_t * ptbinlims = fCuts->GetPtBinLimits();
     
     //GetMinPtCandidate()
-
+    
     
     for(Int_t iBin =0; iBin < nofPtBins; iBin++){ // create a mass histogram for each ptbin
         
-      
+        
         
         if(ptbinlims[iBin]<fCuts->GetMinPtCandidate() || ptbinlims[iBin]>fCuts->GetMaxPtCandidate())continue;
         
@@ -1150,42 +1170,49 @@ void AliAnalysisTaskDStarCorrelations::DefineHistoForAnalysis(){
         nameDZeroMass = "histDZeroMass_";
         nameDStarMass = "histDStarMass_";
         nameDStarFromSBMass = "histDStarFromSBMass_";
+        nameDZerovsDStarMass = "histDZerovsDStarMass_";
         
         nameDZeroMass+=Form("%d",iBin);
         nameDStarMass+=Form("%d",iBin);
         nameDStarFromSBMass+=Form("%d",iBin);
+        nameDZerovsDStarMass+=Form("%d",iBin);
+        cout << "D vs D histogram: " << nameDZerovsDStarMass << endl;
         
-        cout << "D zero histogram: " << nameDZeroMass << endl;
-        
-        D0mass = new TH1F(nameDZeroMass.Data(), Form("D^{0} invarians mass in bin %d; M(K#pi) GeV/c^{2};",iBin),200,1.75,1.95);
-        DStarMass = new TH1F(nameDStarMass.Data(), Form("Delta invarians mass for candidates in bin %d; M(K#pi) GeV/c^{2};",iBin),200,0.1,0.2);
-        DStarFromSBMass = new TH1F(nameDStarFromSBMass.Data(), Form("Delta invarians mass for sideband in bin %d; M(K#pi) GeV/c^{2};",iBin),200,0.1,0.2);
+        D0mass = new TH1F(nameDZeroMass.Data(), Form("D^{0} invariant mass in bin %d; M(K#pi) GeV/c^{2};",iBin),200,1.75,1.95);
+        DStarMass = new TH1F(nameDStarMass.Data(), Form("Delta invariant mass for candidates in bin %d; M(K#pi#pi)- M(K#pi) GeV/c^{2};",iBin),200,0.1,0.2);
+        DStarFromSBMass = new TH1F(nameDStarFromSBMass.Data(), Form("Delta invariant mass for sideband in bin %d; M(K#pi#pi)- M(K#pi) GeV/c^{2};",iBin),200,0.1,0.2);
+        DZerovsDStarMass = new TH2D(nameDZerovsDStarMass.Data(),Form("Delta invariant mass for sideband in bin %d; M(K#pi) GeV/c^{2};M(K#pi#pi)- M(K#pi) GeV/c^{2}",iBin),200,1.75,1.95,200,0.1,0.2);
         
         if(!fmixing){
-        fDmesonOutput->Add(D0mass);
-        fDmesonOutput->Add(DStarMass);
-        fDmesonOutput->Add(DStarFromSBMass);
+            fDmesonOutput->Add(D0mass);
+            fDmesonOutput->Add(DStarMass);
+            fDmesonOutput->Add(DStarFromSBMass);
+            fDmesonOutput->Add(DZerovsDStarMass);
         }
         
         // if using D meson efficiency, define weighted histos
         if(fUseDmesonEfficiencyCorrection){
-           
+            
             nameDZeroMass = "histDZeroMassWeight_";
             nameDStarMass = "histDStarMassWeight_";
             nameDStarFromSBMass = "histDStarFromSBMassWeight_";
+            nameDZerovsDStarMass = "histDZerovsDStarMassWeight_";
             
             nameDZeroMass+=Form("%d",iBin);
             nameDStarMass+=Form("%d",iBin);
             nameDStarFromSBMass+=Form("%d",iBin);
+            nameDZerovsDStarMass+=Form("%d",iBin);
             
-            D0massWeighted = new TH1F(nameDZeroMass.Data(), Form("D^{0} invarians mass in bin %d eff weight; M(K#pi) GeV/c^{2};",iBin),200,1.75,1.95);
-            DStarMassWeighted = new TH1F(nameDStarMass.Data(), Form("Delta invarians mass for candidates in bin %d eff weight; M(K#pi) GeV/c^{2};",iBin),200,0.1,0.2);
-            DStarFromSBMassWeighted = new TH1F(nameDStarFromSBMass.Data(), Form("Delta invarians mass for sideband in bin %d eff weight; M(K#pi) GeV/c^{2};",iBin),200,0.1,0.2);
+            D0massWeighted = new TH1F(nameDZeroMass.Data(), Form("D^{0} invariant mass in bin %d eff weight; M(K#pi) GeV/c^{2};",iBin),200,1.75,1.95);
+            DStarMassWeighted = new TH1F(nameDStarMass.Data(), Form("Delta invariant mass for candidates in bin %d eff weight; M(K#pi) GeV/c^{2};",iBin),200,0.1,0.2);
+            DStarFromSBMassWeighted = new TH1F(nameDStarFromSBMass.Data(), Form("Delta invariant mass for sideband in bin %d eff weight; M(K#pi) GeV/c^{2};",iBin),200,0.1,0.2);
+            DZerovsDStarMassWeighted = new TH2D(nameDZerovsDStarMass.Data(),Form("Delta invariant mass for sideband in bin %d; M(K#pi) GeV/c^{2};M(K#pi#pi)- M(K#pi) GeV/c^{2}",iBin),200,1.75,1.95,200,0.1,0.2);
             
             if(!fmixing){
-            fDmesonOutput->Add(D0massWeighted);
-            fDmesonOutput->Add(DStarMassWeighted);
-            fDmesonOutput->Add(DStarFromSBMassWeighted);
+                fDmesonOutput->Add(D0massWeighted);
+                fDmesonOutput->Add(DStarMassWeighted);
+                fDmesonOutput->Add(DStarFromSBMassWeighted);
+                fDmesonOutput->Add(DZerovsDStarMassWeighted);
             }
         }
     }// end loop on pt bins
@@ -1197,6 +1224,11 @@ void AliAnalysisTaskDStarCorrelations::DefineHistoForAnalysis(){
        TH1F *RecoPtBkg = new TH1F("RecoPtBkg","RECO pt distribution side bands",60,0,60);
     fDmesonOutput->Add(RecoPtBkg);
     
+    TH1D *NumberOfDCandidates = new TH1D("NumberOfDCandidates","Number of D candidates",10,-0.5,9.5);
+    TH1D *NumberOfSBCandidates = new TH1D("NumberOfSBCandidates","Number of SB candidates",10,-0.5,9.5);
+    if(!fmixing) fDmesonOutput->Add(NumberOfDCandidates);
+    if(!fmixing) fDmesonOutput->Add(NumberOfSBCandidates);
+    
     // phi distribution
     TH2F * PhiInclusiveDStar = new TH2F("PhiInclusiveDStar","Azimuthal distributions of Inclusive Dmesons; #phi; pT;Entries",nbinscorr,lowcorrbin,upcorrbin,30,0,30);
     TH2F * PhiSidebandDStar = new TH2F("PhiSidebandDStar","Azimuthal distributions of Sideband Dmesons; #phi; pT;Entries",nbinscorr,lowcorrbin,upcorrbin,30,0,30);
@@ -1220,11 +1252,16 @@ void AliAnalysisTaskDStarCorrelations::DefineHistoForAnalysis(){
     TH2F * EtaInclusiveTracks = new TH2F("EtaInclusiveTracks","Azimuthal distributions of tracks if Inclusive Dmesons; #eta; pT;Entries",20,-1,1,100,0,10);
     TH2F * EtaSidebandTracks = new TH2F("EtaSidebandTracks","Azimuthal distributions of tracks if Sideband Dmesons; #eta; pT;Entries",20,-1,1,100,0,10);
     
+    TH1D * TracksPerDcandidate = new TH1D("TracksPerDcandidate","Distribution of number of tracks per D meson candidate; N tracks; counts",200,-0.5,199.5);
+    TH1D * TracksPerSBcandidate = new TH1D("TracksPerSBcandidate","Distribution of number of tracks per sideband candidate; N tracks; counts",200,-0.5,199.5);
+    
     if(!fmixing) fTracksOutput->Add(PhiInclusiveTracks);
     if(!fmixing) fTracksOutput->Add(PhiSidebandTracks);
     if(!fmixing) fTracksOutput->Add(EtaInclusiveTracks);
     if(!fmixing) fTracksOutput->Add(EtaSidebandTracks);
-
+    if(!fmixing) fTracksOutput->Add(TracksPerDcandidate);
+    if(!fmixing) fTracksOutput->Add(TracksPerSBcandidate);
+    
     
     // Montecarlo for D*
     TH1D *MCtagPtDStarfromCharm = new TH1D("MCtagPtDStarfromCharm","RECO pt of MCtagged DStars from charm",50,0,50);
@@ -1237,6 +1274,7 @@ void AliAnalysisTaskDStarCorrelations::DefineHistoForAnalysis(){
        if(fmontecarlo) fOutputMC->Add(MCtagPtDStar);
     
     
+    
     // event mixing histograms
     TH1D * CheckPoolReadiness = new TH1D("CheckPoolReadiness","Pool readiness",5,-0.5,4.5);
     CheckPoolReadiness->GetXaxis()->SetBinLabel(1,"Have a D cand, pool is ready");
@@ -1247,17 +1285,17 @@ void AliAnalysisTaskDStarCorrelations::DefineHistoForAnalysis(){
     if(fmixing) fEMOutput->Add(CheckPoolReadiness);
     
     
-   /* Int_t NofCentBins = fAssocCuts->GetNCentPoolBins();
-    Int_t NofZVrtxBins = fAssocCuts->GetNZvtxPoolBins();
-    Int_t nPoolBins = NofCentBins*NofZVrtxBins;
-       
-    
-    TH1D * PoolBinDistribution  = new TH1D("PoolBinDistribution","Pool Bin Checks; PoolBin; Entry",nPoolBins5,-0.5,nPoolBins-0.5);
-    fEMOutput->Add(PoolBinDistribution);
-    
-    TH2D * EventDistributionPerPoolBin  = new TH2D("EventDistributionPerPoolBin","Pool Bin Checks; PoolBin; Entry",nPoolBins5,-0.5,nPoolBins-0.5);
-    fEMOutput->Add(EventDistributionPerPoolBin);
-    */
+    /* Int_t NofCentBins = fAssocCuts->GetNCentPoolBins();
+     Int_t NofZVrtxBins = fAssocCuts->GetNZvtxPoolBins();
+     Int_t nPoolBins = NofCentBins*NofZVrtxBins;
+     
+     
+     TH1D * PoolBinDistribution  = new TH1D("PoolBinDistribution","Pool Bin Checks; PoolBin; Entry",nPoolBins5,-0.5,nPoolBins-0.5);
+     fEMOutput->Add(PoolBinDistribution);
+     
+     TH2D * EventDistributionPerPoolBin  = new TH2D("EventDistributionPerPoolBin","Pool Bin Checks; PoolBin; Entry",nPoolBins5,-0.5,nPoolBins-0.5);
+     fEMOutput->Add(EventDistributionPerPoolBin);
+     */
 }
 
 
index a0a945be4e2c9282c304e33f1dc0e88a0b16fc7c..7efcc9eeaca5826d1db3732f6f46be098ae7d18a 100644 (file)
@@ -767,9 +767,10 @@ void AliHFEV0pid::BenchmarkV0finder(){
     if(!esdV0) continue;
     if(!esdV0->GetOnFlyStatus()) continue; // Take only V0s from the On-the-fly v0 finder
     // indetify the V0 candidate
-    Int_t idV0 = AliHFEV0cuts::kUndef;
+    //Int_t idV0 = AliHFEV0cuts::kUndef;
     Int_t idD[2] = {-1, -1};
-    idV0 = IdentifyV0(esdV0, idD);
+    //idV0 = IdentifyV0(esdV0, idD);
+    IdentifyV0(esdV0, idD);
   }
 }
 //____________________________________________________________
index ba03203b8399dae50a5ecdd2d6f9edbe483ca4f7..300420635c6c7ca06aec8fd84ba16224b2974471 100755 (executable)
@@ -577,25 +577,37 @@ void AliAnalysisTaskSEDvsMultiplicity::UserExec(Option_t */*option*/)
   // the AODs with null vertex pointer didn't pass the PhysSel
   if(!aod->GetPrimaryVertex()||TMath::Abs(aod->GetMagneticField())<0.001) return;
 
-  Int_t countTreta1=AliVertexingHFUtils::GetNumberOfTrackletsInEtaRange(aod,-1.,1.);
-  Int_t countTreta03=AliVertexingHFUtils::GetNumberOfTrackletsInEtaRange(aod,-0.3,0.3);
-  Int_t countTreta05=AliVertexingHFUtils::GetNumberOfTrackletsInEtaRange(aod,-0.5,0.5);
-  Int_t countTreta16=AliVertexingHFUtils::GetNumberOfTrackletsInEtaRange(aod,-1.6,1.6);
+  // Int_t countTreta1=AliVertexingHFUtils::GetNumberOfTrackletsInEtaRange(aod,-1.,1.);
+  // Int_t countTreta03=AliVertexingHFUtils::GetNumberOfTrackletsInEtaRange(aod,-0.3,0.3);
+  // Int_t countTreta05=AliVertexingHFUtils::GetNumberOfTrackletsInEtaRange(aod,-0.5,0.5);
+  // Int_t countTreta16=AliVertexingHFUtils::GetNumberOfTrackletsInEtaRange(aod,-1.6,1.6);
+  Int_t countTreta1=0, countTreta03=0, countTreta05=0, countTreta16=0;
+  AliAODTracklets* tracklets=aod->GetTracklets();
+  Int_t nTr=tracklets->GetNumberOfTracklets();
+  for(Int_t iTr=0; iTr<nTr; iTr++){
+    Double_t theta=tracklets->GetTheta(iTr);
+    Double_t eta=-TMath::Log(TMath::Tan(theta/2.));
+    if(eta>-0.3 && eta<0.3) countTreta03++;
+    if(eta>-0.5 && eta<0.5) countTreta05++;
+    if(eta>-1.0 && eta<1.0) countTreta1++;
+    if(eta>-1.6 && eta<1.6) countTreta16++;
+  }
+  
 
   Int_t vzeroMult=0;
   Int_t vzeroMultA=0;
   AliAODVZERO *vzeroAOD = (AliAODVZERO*)aod->GetVZEROData();
   if(vzeroAOD) {
-    vzeroMult = vzeroAOD->GetMTotV0A() +  vzeroAOD->GetMTotV0C();
     vzeroMultA = vzeroAOD->GetMTotV0A();
+    vzeroMult = vzeroMultA + vzeroAOD->GetMTotV0C();
   }
 
   Int_t countMult = countTreta1;
   if(fMultiplicityEstimator==kNtrk03) { countMult = countTreta03; }
-  if(fMultiplicityEstimator==kNtrk05) { countMult = countTreta05; }
-  if(fMultiplicityEstimator==kNtrk10to16) { countMult = countTreta16 - countTreta1; }
-  if(fMultiplicityEstimator==kVZERO) { countMult = vzeroMult; }
-  if(fMultiplicityEstimator==kVZEROA) { countMult = vzeroMultA; }
+  else if(fMultiplicityEstimator==kNtrk05) { countMult = countTreta05; }
+  else if(fMultiplicityEstimator==kNtrk10to16) { countMult = countTreta16 - countTreta1; }
+  else if(fMultiplicityEstimator==kVZERO) { countMult = vzeroMult; }
+  else if(fMultiplicityEstimator==kVZEROA) { countMult = vzeroMultA; }
 
 
   fCounterU->StoreEvent(aod,fRDCutsAnalysis,fReadMC,countMult);
@@ -666,9 +678,56 @@ void AliAnalysisTaskSEDvsMultiplicity::UserExec(Option_t */*option*/)
      }
   
 
-    Int_t nChargedMC=AliVertexingHFUtils::GetGeneratedMultiplicityInEtaRange(arrayMC,-1.0,1.0);
-    Int_t nChargedMCPrimary=AliVertexingHFUtils::GetGeneratedPrimariesInEtaRange(arrayMC,-1.0,1.0);
-    Int_t nChargedMCPhysicalPrimary=AliVertexingHFUtils::GetGeneratedPhysicalPrimariesInEtaRange(arrayMC,-1.0,1.0);
+    // Int_t nChargedMC=AliVertexingHFUtils::GetGeneratedMultiplicityInEtaRange(arrayMC,-1.0,1.0);
+    // Int_t nChargedMCPrimary=AliVertexingHFUtils::GetGeneratedPrimariesInEtaRange(arrayMC,-1.0,1.0);
+    // Int_t nChargedMCPhysicalPrimary=AliVertexingHFUtils::GetGeneratedPhysicalPrimariesInEtaRange(arrayMC,-1.0,1.0);
+    //
+    Int_t nChargedMCEta10=0, nChargedMCEta03=0, nChargedMCEta05=0, nChargedMCEta16=0, nChargedMCEtam37tm17=0, nChargedMCEta28t51=0;
+    Int_t nChargedMCPrimaryEta10=0, nChargedMCPrimaryEta03=0, nChargedMCPrimaryEta05=0, nChargedMCPrimaryEta16=0, nChargedMCPrimaryEtam37tm17=0, nChargedMCPrimaryEta28t51=0;
+    Int_t nChargedMCPhysicalPrimaryEta10=0, nChargedMCPhysicalPrimaryEta03=0, nChargedMCPhysicalPrimaryEta05=0, nChargedMCPhysicalPrimaryEta16=0, nChargedMCPhysicalPrimaryEtam37tm17=0, nChargedMCPhysicalPrimaryEta28t51=0;
+    for(Int_t i=0; i<arrayMC->GetEntriesFast(); i++){
+      AliAODMCParticle *part=(AliAODMCParticle*)arrayMC->UncheckedAt(i);
+      Int_t charge = part->Charge();
+      Double_t eta = part->Eta();
+      Bool_t isPrim = part->IsPrimary();
+      Bool_t isPhysPrim = part->IsPhysicalPrimary();
+      if(charge!=0) {
+       if(eta>-0.3 && eta< 0.3) { 
+         nChargedMCEta03++;
+         if(isPrim) nChargedMCPrimaryEta03++;
+         if(isPhysPrim) nChargedMCPhysicalPrimaryEta03++;
+       }
+       if(eta>-0.5 && eta< 0.5) { 
+         nChargedMCEta05++;
+         if(isPrim) nChargedMCPrimaryEta05++;
+         if(isPhysPrim) nChargedMCPhysicalPrimaryEta05++;
+       }
+       if(eta>-1.0 && eta< 1.0) { 
+         nChargedMCEta10++;
+         if(isPrim) nChargedMCPrimaryEta10++;
+         if(isPhysPrim) nChargedMCPhysicalPrimaryEta10++;
+       }
+       if(eta>-1.6 && eta< 1.6) { 
+         nChargedMCEta16++;
+         if(isPrim) nChargedMCPrimaryEta16++;
+         if(isPhysPrim) nChargedMCPhysicalPrimaryEta16++;
+       }
+       if(eta>-3.7 && eta<-1.7) { 
+         nChargedMCEtam37tm17++;
+         if(isPrim) nChargedMCPrimaryEtam37tm17++;
+         if(isPhysPrim) nChargedMCPhysicalPrimaryEtam37tm17++;
+       }
+       if(eta> 2.8 && eta< 5.1) { 
+         nChargedMCEta28t51++;
+         if(isPrim) nChargedMCPrimaryEta28t51++;
+         if(isPhysPrim) nChargedMCPhysicalPrimaryEta28t51++;
+       }
+      }
+    }
+    Int_t nChargedMC=nChargedMCEta10;
+    Int_t nChargedMCPrimary=nChargedMCPrimaryEta10;
+    Int_t nChargedMCPhysicalPrimary=nChargedMCPhysicalPrimaryEta10;
+
 
     // Compute the Nch weights (reference is Ntracklets within |eta|<1.0)
     if(fUseNchWeight){
@@ -685,24 +744,24 @@ void AliAnalysisTaskSEDvsMultiplicity::UserExec(Option_t */*option*/)
     }
 
     // Now recompute the variables in case another MC estimator is considered
-    Int_t nChargedMCEta10 = nChargedMC;
-    Int_t nChargedMCEta16 = AliVertexingHFUtils::GetGeneratedMultiplicityInEtaRange(arrayMC,-1.6,1.6);
-    Int_t nChargedMCEta05 = AliVertexingHFUtils::GetGeneratedMultiplicityInEtaRange(arrayMC,-0.5,0.5);
-    Int_t nChargedMCEta03 = AliVertexingHFUtils::GetGeneratedMultiplicityInEtaRange(arrayMC,-0.3,0.3);
-    Int_t nChargedMCEtam37tm17 = AliVertexingHFUtils::GetGeneratedMultiplicityInEtaRange(arrayMC,-3.7,-1.7);
-    Int_t nChargedMCEta28t51 = AliVertexingHFUtils::GetGeneratedMultiplicityInEtaRange(arrayMC,2.8,5.1);
-    Int_t nChargedMCPrimaryEta10 = nChargedMCPrimary;
-    Int_t nChargedMCPrimaryEta16 = AliVertexingHFUtils::GetGeneratedPrimariesInEtaRange(arrayMC,-1.6,1.6);
-    Int_t nChargedMCPrimaryEta05 = AliVertexingHFUtils::GetGeneratedPrimariesInEtaRange(arrayMC,-0.5,0.5);
-    Int_t nChargedMCPrimaryEta03 = AliVertexingHFUtils::GetGeneratedPrimariesInEtaRange(arrayMC,-0.3,0.3);
-    Int_t nChargedMCPrimaryEtam37tm17 = AliVertexingHFUtils::GetGeneratedPrimariesInEtaRange(arrayMC,-3.7,-1.7);
-    Int_t nChargedMCPrimaryEta28t51 = AliVertexingHFUtils::GetGeneratedPrimariesInEtaRange(arrayMC,2.8,5.1);
-    Int_t nChargedMCPhysicalPrimaryEta10 = nChargedMCPhysicalPrimary;
-    Int_t nChargedMCPhysicalPrimaryEta16 = AliVertexingHFUtils::GetGeneratedPhysicalPrimariesInEtaRange(arrayMC,-1.6,1.6);
-    Int_t nChargedMCPhysicalPrimaryEta05 = AliVertexingHFUtils::GetGeneratedPhysicalPrimariesInEtaRange(arrayMC,-0.5,0.5);
-    Int_t nChargedMCPhysicalPrimaryEta03 = AliVertexingHFUtils::GetGeneratedPhysicalPrimariesInEtaRange(arrayMC,-0.3,0.3);
-    Int_t nChargedMCPhysicalPrimaryEtam37tm17 = AliVertexingHFUtils::GetGeneratedPhysicalPrimariesInEtaRange(arrayMC,-3.7,-1.7);
-    Int_t nChargedMCPhysicalPrimaryEta28t51 = AliVertexingHFUtils::GetGeneratedPhysicalPrimariesInEtaRange(arrayMC,2.8,5.1);
+    // Int_t nChargedMCEta10 = nChargedMC;
+    // Int_t nChargedMCEta16 = AliVertexingHFUtils::GetGeneratedMultiplicityInEtaRange(arrayMC,-1.6,1.6);
+    // Int_t nChargedMCEta05 = AliVertexingHFUtils::GetGeneratedMultiplicityInEtaRange(arrayMC,-0.5,0.5);
+    // Int_t nChargedMCEta03 = AliVertexingHFUtils::GetGeneratedMultiplicityInEtaRange(arrayMC,-0.3,0.3);
+    // Int_t nChargedMCEtam37tm17 = AliVertexingHFUtils::GetGeneratedMultiplicityInEtaRange(arrayMC,-3.7,-1.7);
+    // Int_t nChargedMCEta28t51 = AliVertexingHFUtils::GetGeneratedMultiplicityInEtaRange(arrayMC,2.8,5.1);
+    // Int_t nChargedMCPrimaryEta10 = nChargedMCPrimary;
+    // Int_t nChargedMCPrimaryEta16 = AliVertexingHFUtils::GetGeneratedPrimariesInEtaRange(arrayMC,-1.6,1.6);
+    // Int_t nChargedMCPrimaryEta05 = AliVertexingHFUtils::GetGeneratedPrimariesInEtaRange(arrayMC,-0.5,0.5);
+    // Int_t nChargedMCPrimaryEta03 = AliVertexingHFUtils::GetGeneratedPrimariesInEtaRange(arrayMC,-0.3,0.3);
+    // Int_t nChargedMCPrimaryEtam37tm17 = AliVertexingHFUtils::GetGeneratedPrimariesInEtaRange(arrayMC,-3.7,-1.7);
+    // Int_t nChargedMCPrimaryEta28t51 = AliVertexingHFUtils::GetGeneratedPrimariesInEtaRange(arrayMC,2.8,5.1);
+    // Int_t nChargedMCPhysicalPrimaryEta10 = nChargedMCPhysicalPrimary;
+    // Int_t nChargedMCPhysicalPrimaryEta16 = AliVertexingHFUtils::GetGeneratedPhysicalPrimariesInEtaRange(arrayMC,-1.6,1.6);
+    // Int_t nChargedMCPhysicalPrimaryEta05 = AliVertexingHFUtils::GetGeneratedPhysicalPrimariesInEtaRange(arrayMC,-0.5,0.5);
+    // Int_t nChargedMCPhysicalPrimaryEta03 = AliVertexingHFUtils::GetGeneratedPhysicalPrimariesInEtaRange(arrayMC,-0.3,0.3);
+    // Int_t nChargedMCPhysicalPrimaryEtam37tm17 = AliVertexingHFUtils::GetGeneratedPhysicalPrimariesInEtaRange(arrayMC,-3.7,-1.7);
+    // Int_t nChargedMCPhysicalPrimaryEta28t51 = AliVertexingHFUtils::GetGeneratedPhysicalPrimariesInEtaRange(arrayMC,2.8,5.1);
     if(fMCPrimariesEstimator==kEta10to16){
       nChargedMC = nChargedMCEta16 - nChargedMCEta10;
       nChargedMCPrimary = nChargedMCPrimaryEta16 - nChargedMCPrimaryEta10;
index 165c6447ef3544b0f9e1e11fb94b7424a32622d9..94b28883d55510264c26dda08f3a16f21977530b 100644 (file)
@@ -552,14 +552,14 @@ void AliAnalysisTaskAj::UserExec(Option_t *)
    Int_t selec=-1;
    Double_t ptmax=-10; 
    Double_t areaj=0;
-   Double_t phij=0;
+   //   Double_t phij=0;
    Double_t etaj=0;
    Double_t ptj=0;
    Double_t ptcorrj=0;  
    for(Int_t i=0; i<fListJets[0]->GetEntries(); ++i){
            AliAODJet* jetj = (AliAODJet*)(fListJets[0]->At(i));
            etaj  = jetj->Eta();
-           phij  = jetj->Phi();
+          //           phij  = jetj->Phi();
            ptj = jetj->Pt();
            if(ptj==0) continue; 
            areaj = jetj->EffectiveAreaCharged();
@@ -596,7 +596,7 @@ void AliAnalysisTaskAj::UserExec(Option_t *)
           if(j==selec) continue;
            AliAODJet* jetb = (AliAODJet*)(fListJets[0]->At(j));
            etaj  = jetb->Eta();
-           phij  = jetb->Phi();
+          //           phij  = jetb->Phi();
            ptj   = jetb->Pt();
            if(ptj<=0) continue; 
            areaj = jetb->EffectiveAreaCharged();
@@ -640,7 +640,7 @@ void AliAnalysisTaskAj::UserExec(Option_t *)
       Float_t ptMax  = 0.;
       Float_t etaMax = 0.;
       Float_t phiMax = 0.;
-      Int_t   iMax   = -1;
+      //      Int_t   iMax   = -1;
       //1st loop over all tracks      
          for(int it = 0;it<nT;++it){
          AliVParticle *track = (AliVParticle*)ParticleList.At(it);
@@ -676,7 +676,7 @@ void AliAnalysisTaskAj::UserExec(Option_t *)
              // max pt
              if (pt > ptMax) {
                  ptMax  = pt;
-                 iMax   = it;
+                 //              iMax   = it;
                  etaMax = deta;
                  phiMax = dphi;
              }
@@ -884,7 +884,7 @@ Int_t  AliAnalysisTaskAj::GetListOfTracks(TList *list){
    
     Double_t ptmax=-10;
     Double_t dphi=0;
-    Double_t dif=0;
+    //    Double_t dif=0;
     Int_t iCount=0;
     for(int it = 0;it < aod->GetNumberOfTracks();++it){
       AliAODTrack *tr = aod->GetTrack(it);
@@ -896,7 +896,8 @@ Int_t  AliAnalysisTaskAj::GetListOfTracks(TList *list){
       if(TMath::Abs(dphi)<TMath::Pi()-0.2) continue;
       if(tr->Pt()>ptmax){ ptmax=tr->Pt();
       index=iCount-1;
-      dif=dphi;  }}
+      //  dif=dphi; 
+      }}
   
       return index;
 
index 64f375248a3fb40c7b94de518e2ec13d99b6cae0..66e1c556bc23e69f1e83af466e06342f86990e16 100644 (file)
@@ -757,7 +757,7 @@ void AliAnalysisTaskJetCore::UserExec(Option_t *)
    Double_t phibig=0.;
    Double_t etasmall=0;
    Double_t ptsmall=0;
-   Double_t areasmall=0;
+   //   Double_t areasmall=0;
    Double_t phismall=0.;
          
   
@@ -765,7 +765,7 @@ void AliAnalysisTaskJetCore::UserExec(Option_t *)
    Int_t iCount=0; 
    Int_t trigJet=-1;
    Int_t trigBBTrack=-1;
-   Int_t trigInTrack=-1;
+   //   Int_t trigInTrack=-1;
    fRPAngle = aod->GetHeader()->GetEventplane();     
 
    if(fHardest==0 || fHardest==1){
@@ -891,7 +891,7 @@ void AliAnalysisTaskJetCore::UserExec(Option_t *)
                       if(iCount==0){                        
                         trigJet=i;
                         trigBBTrack=nT;
-                        trigInTrack=ippt;
+                        //                      trigInTrack=ippt;
                         iCount=iCount+1;} 
                       
    
@@ -901,7 +901,7 @@ void AliAnalysisTaskJetCore::UserExec(Option_t *)
                           etasmall  = jetsmall->Eta();
                           phismall = jetsmall->Phi();
                           ptsmall   = jetsmall->Pt();
-                          areasmall = jetsmall->EffectiveAreaCharged();
+                          //                      areasmall = jetsmall->EffectiveAreaCharged();
                           Double_t tmpDeltaR=(phismall-phibig)*(phismall-phibig)+(etasmall-etabig)*(etasmall-etabig);
                           tmpDeltaR=TMath::Sqrt(tmpDeltaR);
                           //Fraction in the jet core  
@@ -1289,7 +1289,7 @@ Int_t  AliAnalysisTaskJetCore::SelectTrigger(TList *list,Double_t minT,Double_t
     Int_t index=-1;
     Double_t ptmax=-10;
     Double_t dphi=0;
-    Double_t dif=0;
+    // Double_t dif=0;
     Int_t iCount=0;
     for(int it = 0;it < aod->GetNumberOfTracks();++it){
       AliAODTrack *tr = aod->GetTrack(it);
@@ -1301,7 +1301,8 @@ Int_t  AliAnalysisTaskJetCore::SelectTrigger(TList *list,Double_t minT,Double_t
       if(TMath::Abs(dphi)<TMath::Pi()-0.6) continue;
       if(tr->Pt()>ptmax){ ptmax=tr->Pt();
       index=iCount-1;
-      dif=dphi;  }}
+      //  dif=dphi; 
+      }}
   
       return index;
 
index 40e5654783241b9f62da57704b256788e5ccfd5f..9338e9b05ebffe635e7872cde794f5dee756922f 100644 (file)
@@ -1037,13 +1037,13 @@ void AliAnalysisTaskJetProperties::FillJetProperties(TList *jetlist){
   if(fDebug > 2) printf("AliAnalysisTaskJetProperties::FillJetProperties() \n");
   
   for(Int_t iJet=0; iJet < jetlist->GetEntries(); iJet++){
-    Float_t JetPt;Float_t JetPhi;Float_t JetEta;Float_t JetE;
+    Float_t JetPt;Float_t JetPhi;Float_t JetEta; // Float_t JetE;
     AliAODJet *jet = dynamic_cast<AliAODJet*>(jetlist->At(iJet));
     if(!jet)continue;
     JetEta = jet->Eta();
     JetPhi = jet->Phi();
     JetPt  = jet->Pt();
-    JetE   = jet->E();
+    //    JetE   = jet->E();
     fh2EtaJet ->Fill(JetPt,JetEta);
     fh2PhiJet ->Fill(JetPt,JetPhi);
     fh2PtJet  ->Fill(JetPt,JetPt);
@@ -1064,7 +1064,8 @@ void AliAnalysisTaskJetProperties::FillJetProperties(TList *jetlist){
       if(fTrackType==kTrackUndef)continue;
        Float_t TrackEta=-99.0; Float_t TrackPt=-99.0; Float_t TrackPhi=-99.0;
        Float_t FF=-99.0;       Float_t DelEta=-99.0;  Float_t DelPhi=-99.0; 
-       Float_t DelR=-99.0;     Float_t AreaJ=-99.0;   Float_t Ksi=-99.0;
+       Float_t DelR=-99.0;     // Float_t AreaJ=-99.0;   
+       Float_t Ksi=-99.0;
        if(fTrackType==kTrackAOD){
          AliAODTrack *trackaod = dynamic_cast<AliAODTrack*>(fTrackListJet->At(j));
          if(!trackaod)continue;
@@ -1092,7 +1093,7 @@ void AliAnalysisTaskJetProperties::FillJetProperties(TList *jetlist){
        DelPhi      = TMath::Abs(JetPhi - TrackPhi);
        if(DelPhi>TMath::Pi())DelPhi = TMath::Abs(DelPhi-TMath::TwoPi());
        DelR        = TMath::Sqrt(DelEta*DelEta + DelPhi*DelPhi);
-       AreaJ       = TMath::Pi()*DelR*DelR;
+       // AreaJ       = TMath::Pi()*DelR*DelR;
        fh2EtaTrack ->Fill(JetPt,TrackEta);
        fh2PhiTrack ->Fill(JetPt,TrackPhi);
        fh2PtTrack  ->Fill(JetPt,TrackPt);
index 001d5fef758063b8ed079eef2e2da52fe6359b25..0ca76b662fc18491f131d6bb97a35516374fd77c 100644 (file)
@@ -42,7 +42,9 @@ set ( SRCS
  EMCALJetTasks/AliJetEmbeddingFromGenTask.cxx
  EMCALJetTasks/AliJetEmbeddingFromPYTHIATask.cxx
  EMCALJetTasks/AliJetEmbeddingTask.cxx
+ EMCALJetTasks/AliJetFastSimulation.cxx
  EMCALJetTasks/AliJetModelBaseTask.cxx
+ EMCALJetTasks/AliJetModelCopyTracks.cxx
  EMCALJetTasks/AliJetModelMergeBranches.cxx
  EMCALJetTasks/AliJetRandomizerTask.cxx
  EMCALJetTasks/AliJetResponseMaker.cxx
@@ -79,6 +81,7 @@ set ( SRCS
  EMCALJetTasks/UserTasks/AliAnalysisTaskEmcalJetv2QA.cxx
  EMCALJetTasks/UserTasks/AliAnalysisTaskRhoMass.cxx
  EMCALJetTasks/UserTasks/AliAnalysisTaskRhoMassBase.cxx
+ EMCALJetTasks/UserTasks/AliAnalysisTaskRhoMassScale.cxx
  EMCALJetTasks/UserTasks/AliAnalysisTaskSAJF.cxx
  EMCALJetTasks/UserTasks/AliAnalysisTaskSAQA.cxx
  EMCALJetTasks/UserTasks/AliAnalysisTaskSOH.cxx
index 3e087550ef6d3aade23a2a012d05822d84c23d24..891e57378def6fd9e3d7128e5d7a13802c7aeefb 100644 (file)
@@ -13,6 +13,8 @@
 #include "AliLog.h"
 #include "AliRhoParameter.h"
 #include "AliEmcalJet.h"
+#include "AliParticleContainer.h"
+#include "AliClusterContainer.h"
 
 #include "AliAnalysisTaskRhoBase.h"
 
@@ -274,10 +276,10 @@ Bool_t AliAnalysisTaskRhoBase::FillHistograms()
   Int_t Ntracks   = 0;
   Int_t Nclusters = 0;
 
-  if (fTracks)
-    Ntracks = fTracks->GetEntries();
-  if (fCaloClusters)
-    Nclusters = fCaloClusters->GetEntries();
+  if (GetParticleContainer(0))
+    Ntracks = GetParticleContainer(0)->GetNAcceptedParticles();
+  if (GetClusterContainer(0))
+    Nclusters = GetClusterContainer(0)->GetNAcceptedClusters();
 
   if (fJets) {
     Int_t    Njets         = fJets->GetEntries();
index d3ad5e7a09e01a23fdd1e372d5f4cd1aa70df202..44ddf9d38290098711f812caf3e99b2ce411d62f 100644 (file)
@@ -16,7 +16,9 @@
 #include "AliLog.h"
 #include "AliVCluster.h"
 #include "AliVParticle.h"
+#include "AliVTrack.h"
 #include "AliParticleContainer.h"
+#include "AliClusterContainer.h"
 
 ClassImp(AliAnalysisTaskScale)
 
@@ -51,7 +53,9 @@ AliAnalysisTaskScale::AliAnalysisTaskScale() :
   fHistClusterEtaPhi(0),
   fHistScalevsScale2Emcal(0),      
   fHistScalevsScaleEmcal(0),       
-  fHistScaleEmcalvsScale2Emcal(0)
+  fHistScaleEmcalvsScale2Emcal(0),
+  fTracksCont(0),
+  fCaloClustersCont(0)
 {
   // Default constructor.
 
@@ -89,7 +93,9 @@ AliAnalysisTaskScale::AliAnalysisTaskScale(const char *name) :
   fHistClusterEtaPhi(0),
   fHistScalevsScale2Emcal(0),      
   fHistScalevsScaleEmcal(0),       
-  fHistScaleEmcalvsScale2Emcal(0)
+  fHistScaleEmcalvsScale2Emcal(0),
+  fTracksCont(0),
+  fCaloClustersCont(0)
 {
   // Constructor.
 
@@ -103,6 +109,13 @@ void AliAnalysisTaskScale::UserCreateOutputObjects()
 
   AliAnalysisTaskEmcal::UserCreateOutputObjects();
 
+  //Get track and particle container
+  fTracksCont       = GetParticleContainer(0);
+  fCaloClustersCont = GetClusterContainer(0);
+  if(fTracksCont)       fTracksCont->SetClassName("AliVTrack");
+  if(fCaloClustersCont) fCaloClustersCont->SetClassName("AliVCluster");
+
+  //Create histos
   fHistPtTPCvsCent = new TH2F("fHistPtTPCvsCent", "fHistPtTPCvsCent", 101, -1, 100, 750, 0, 1500);
   fHistPtTPCvsCent->GetXaxis()->SetTitle("Centrality (%)");
   fHistPtTPCvsCent->GetYaxis()->SetTitle("#sum p_{T,track}^{TPC} GeV/c");
@@ -290,48 +303,37 @@ Bool_t AliAnalysisTaskScale::FillHistograms()
   Double_t ptEMCAL = 0;
   Double_t ptEMCAL2 = 0;
 
-  const Int_t Ntracks = fTracks->GetEntries();
-  for (Int_t iTracks = 0; iTracks < Ntracks; ++iTracks) {
-    AliVParticle *track = static_cast<AliVParticle*>(fTracks->At(iTracks));
-
-    if (!track)
-      continue;
-
-    if (!AcceptTrack(track))
-      continue;
-
-    if (TMath::Abs(track->Eta()) > 0.7)   // only accept tracks in the EMCal eta range
-      continue;
-
-    fHistTrackPtvsCent->Fill(fCent,track->Pt());
-    fHistTrackEtaPhi->Fill(track->Eta(),track->Phi());
-    ptTPC += track->Pt();
-    if ((track->Phi() > (EmcalMaxPhi+EmcalWidth)) || (track->Phi() < (EmcalMinPhi-EmcalWidth))) continue;
-    ptEMCAL2 += track->Pt();
-    if ((track->Phi() > EmcalMaxPhi) || (track->Phi() < EmcalMinPhi)) continue;
-    ptEMCAL += track->Pt();
+  const Int_t Ntracks = fTracksCont->GetNAcceptedParticles();
+  if (fTracksCont) {
+    fTracksCont->ResetCurrentID();
+    AliVTrack *track = NULL;
+    while((track = static_cast<AliVTrack*>(fTracksCont->GetNextAcceptParticle()))) {
+      fHistTrackPtvsCent->Fill(fCent,track->Pt());
+      fHistTrackEtaPhi->Fill(track->Eta(),track->Phi());
+      ptTPC += track->Pt();
+      if ((track->Phi() > (EmcalMaxPhi+EmcalWidth)) || (track->Phi() < (EmcalMinPhi-EmcalWidth))) continue;
+      ptEMCAL2 += track->Pt();
+      if ((track->Phi() > EmcalMaxPhi) || (track->Phi() < EmcalMinPhi)) continue;
+      ptEMCAL += track->Pt();
+    }
   }
 
   if (ptTPC == 0) 
     return kFALSE;
-  
-  Double_t Et = 0;
-  const Int_t Nclus = fCaloClusters->GetEntries();
-  for (Int_t iClus = 0; iClus < Nclus; ++iClus) {
-    AliVCluster *c = static_cast<AliVCluster*>(fCaloClusters->At(iClus));
-    if (!c)
-      continue;
 
-    if (!AcceptCluster(c))
-      continue;
+  Double_t Et = 0;  
+  if (fCaloClustersCont) {
+    fCaloClustersCont->ResetCurrentID();
+    AliVCluster *c = NULL;
+    while((c = fCaloClustersCont->GetNextAcceptCluster())) {
+      TLorentzVector nPart;
+      c->GetMomentum(nPart, fVertex);
 
-    TLorentzVector nPart;
-    c->GetMomentum(nPart, fVertex);
+      fHistClusterPtvsCent->Fill(fCent, nPart.Pt());
+      fHistClusterEtaPhi->Fill(nPart.Eta(), nPart.Phi());
 
-    fHistClusterPtvsCent->Fill(fCent, nPart.Pt());
-    fHistClusterEtaPhi->Fill(nPart.Eta(), nPart.Phi());
-
-    Et += nPart.Pt();
+      Et += nPart.Pt();
+    }
   }
  
   Double_t scalecalc         = -1;
@@ -405,4 +407,7 @@ void AliAnalysisTaskScale::ExecOnce()
   if (TpcMinPhi < 0) TpcMinPhi = 0;
 
   fTpcArea = (TpcMaxPhi - TpcMinPhi) * (EmcalMinEta - EmcalMaxEta);
+
+  if (fTracksCont && fTracksCont->GetArray() == 0) fTracksCont = 0;
+  if (fCaloClustersCont && fCaloClustersCont->GetArray() == 0) fCaloClustersCont = 0;
 }
index 08a906dfce4ca0c12b0899951529dc9b8923b52b..131c4f92774f26cdf5a8631553f42cce7795271b 100644 (file)
@@ -5,6 +5,8 @@
 
 class TH2;
 class TF1;
+class AliParticleContainer;
+class AliClusterContainer;
 
 #include "AliAnalysisTaskEmcal.h"
 
@@ -56,9 +58,12 @@ class AliAnalysisTaskScale : public AliAnalysisTaskEmcal {
   TH2                   *fHistScalevsScaleEmcal;       //!output histogram
   TH2                   *fHistScaleEmcalvsScale2Emcal; //!output histogram
 
+  AliParticleContainer  *fTracksCont;                  //!Tracks
+  AliClusterContainer   *fCaloClustersCont;            //!Clusters 
+
   AliAnalysisTaskScale(const AliAnalysisTaskScale&); // not implemented
   AliAnalysisTaskScale& operator=(const AliAnalysisTaskScale&); // not implemented
   
-  ClassDef(AliAnalysisTaskScale, 10); // Scale task
+  ClassDef(AliAnalysisTaskScale, 11); // Scale task
 };
 #endif
index 84d77ed726f29587e9b3dc2195e4229a5143c746..afc5f8afaad70a30db66145b112b9082426e66e7 100644 (file)
@@ -68,6 +68,7 @@ AliEmcalJetTask::AliEmcalJetTask() :
   fIsEmcPart(0),
   fLegacyMode(kFALSE),
   fCodeDebug(kFALSE),
+  fPionMassClusters(kFALSE),
   fDoGenericSubtractionJetMass(kFALSE),
   fDoGenericSubtractionGR(kFALSE),
   fDoGenericSubtractionExtraJetShapes(kFALSE),
@@ -128,6 +129,7 @@ AliEmcalJetTask::AliEmcalJetTask(const char *name) :
   fIsEmcPart(0),
   fLegacyMode(kFALSE),
   fCodeDebug(kFALSE),
+  fPionMassClusters(kFALSE),
   fDoGenericSubtractionJetMass(kFALSE),
   fDoGenericSubtractionGR(kFALSE),
   fDoGenericSubtractionExtraJetShapes(kFALSE),
@@ -391,7 +393,10 @@ void AliEmcalJetTask::FindJets()
        continue;
       // offset of 100 to skip ghost particles uid = -1
       AliDebug(2,Form("Cluster %d accepted (label = %d)", iClus, c->GetLabel()));
-      fjw.AddInputVector(cPx, cPy, cPz, TMath::Sqrt(cPx*cPx+cPy*cPy+cPz*cPz), -iClus - 100);
+      Double_t e = TMath::Sqrt(cPx*cPx+cPy*cPy+cPz*cPz);
+      if(fPionMassClusters) e = TMath::Sqrt(cPx*cPx+cPy*cPy+cPz*cPz + 0.13957*0.13957); //MV: dirty, need better solution
+      fjw.AddInputVector(cPx, cPy, cPz, e, -iClus - 100);
+      //      fjw.AddInputVector(cPx, cPy, cPz, TMath::Sqrt(cPx*cPx+cPy*cPy+cPz*cPz), -iClus - 100);
     }
   }
 
index e243c2d2adc7370ccf467ad129c4feba67de8053..6077913e3687e8a7c011a6e591316ab839c38571 100644 (file)
@@ -89,14 +89,16 @@ class AliEmcalJetTask : public AliAnalysisTaskSE {
                                                                 if (s) fMCFlag |=  AliAODMCParticle::kPhysicalPrim ; 
                                                                 else   fMCFlag &= ~AliAODMCParticle::kPhysicalPrim ; }
 
-  void                   SetCodeDebug(Bool_t val)         { fCodeDebug = val; }
+  void                   SetCodeDebug(Bool_t val)               { fCodeDebug    = val          ; }
+  void                   SetForceIsMcPart(Bool_t b)             { fIsMcPart     = b            ; }
+  void                   SetPionMassForClusters(Bool_t b)       { fPionMassClusters = b        ; }
 
   void                   SetRhoName(const char *n)              { fRhoName      = n            ; }
   void                   SetRhomName(const char *n)             { fRhomName     = n            ; }
   void                   SetGenericSubtractionJetMass(Bool_t b) { fDoGenericSubtractionJetMass = b; }
   void                   SetGenericSubtractionGR(Bool_t b, Double_t rmax = 2., Double_t dr = 0.04, Double_t ptmin = 0.) { fDoGenericSubtractionGR = b; fRMax=rmax; fDRStep=dr; fPtMinGR=ptmin;}
   void                   SetConstituentSubtraction(Bool_t b)    { fDoConstituentSubtraction = b; }
-  void                   SetGenericSubtractionExtraJetShapes(Bool_t b)        {fDoGenericSubtractionExtraJetShapes =b;}
+  void                   SetGenericSubtractionExtraJetShapes(Bool_t b)            { fDoGenericSubtractionExtraJetShapes =b;}
   void                   SetUseExternalBkg(Bool_t b, Double_t rho, Double_t rhom) { fUseExternalBkg = b; fRho = rho; fRhom = rhom;}
 
   UInt_t                 GetJetType()                     { return fJetType; }
@@ -170,6 +172,7 @@ class AliEmcalJetTask : public AliAnalysisTaskSE {
   Bool_t                 fIsEmcPart;              //!=true if emcal particles are given as input (for clusters)
   Bool_t                 fLegacyMode;             //! if true, enable FJ 2.x behavior
   Bool_t                 fCodeDebug;              // use nontested code changes 
+  Bool_t                 fPionMassClusters;       // assume pion mass for clusters
 
   Bool_t                 fDoGenericSubtractionJetMass;        // calculate generic subtraction
   Bool_t                 fDoGenericSubtractionGR;             // calculate generic subtraction for angular structure function GR
@@ -197,6 +200,6 @@ class AliEmcalJetTask : public AliAnalysisTaskSE {
   AliEmcalJetTask(const AliEmcalJetTask&);            // not implemented
   AliEmcalJetTask &operator=(const AliEmcalJetTask&); // not implemented
 
-  ClassDef(AliEmcalJetTask, 15) // Jet producing task
+  ClassDef(AliEmcalJetTask, 16) // Jet producing task
 };
 #endif
index 8a782d56468581b7ee2f7062b45a989a924b31ed..7e071cff990d04c127b9c9883f6d4858952ba93d 100644 (file)
@@ -76,7 +76,7 @@ AliJetEmbeddingFromAODTask::AliJetEmbeddingFromAODTask() :
   fIncludeNoITS(kFALSE),
   fCutMaxFractionSharedTPCClusters(0.4),
   fUseNegativeLabels(kTRUE),
-  fTrackEfficiency(1),
+  fTrackEfficiency(0),
   fIsAODMC(kFALSE),
   fTotalFiles(2050),
   fAttempts(5),
@@ -93,6 +93,8 @@ AliJetEmbeddingFromAODTask::AliJetEmbeddingFromAODTask() :
   fAODCaloCells(0),
   fAODMCParticles(0),
   fCurrentAODEntry(-1),
+  fFirstAODEntry(-1),
+  fLastAODEntry(-1),
   fAODFilePath(0),
   fHistFileMatching(0),
   fHistAODFileError(0),
@@ -146,7 +148,7 @@ AliJetEmbeddingFromAODTask::AliJetEmbeddingFromAODTask(const char *name, Bool_t
   fIncludeNoITS(kFALSE),
   fCutMaxFractionSharedTPCClusters(0.4),
   fUseNegativeLabels(kTRUE),
-  fTrackEfficiency(1),
+  fTrackEfficiency(0),
   fIsAODMC(kFALSE),
   fTotalFiles(2050),
   fAttempts(5),
@@ -163,6 +165,8 @@ AliJetEmbeddingFromAODTask::AliJetEmbeddingFromAODTask(const char *name, Bool_t
   fAODCaloCells(0),  
   fAODMCParticles(0),
   fCurrentAODEntry(-1),
+  fFirstAODEntry(-1),
+  fLastAODEntry(-1),
   fAODFilePath(0),
   fHistFileMatching(0),
   fHistAODFileError(0),
@@ -329,10 +333,16 @@ Bool_t AliJetEmbeddingFromAODTask::OpenNextFile()
   if (!fAODMCParticlesName.IsNull()) 
     fCurrentAODTree->SetBranchAddress(fAODMCParticlesName, &fAODMCParticles);
   
-  if (fRandomAccess)
-    fCurrentAODEntry = TMath::Nint(gRandom->Rndm()*fCurrentAODTree->GetEntries());
-  else
-    fCurrentAODEntry = -1;
+  if (fRandomAccess) {
+    fFirstAODEntry = TMath::Nint(gRandom->Rndm()*fCurrentAODTree->GetEntries())-1;
+    fLastAODEntry = fCurrentAODTree->GetEntries();
+  }
+  else {
+    fFirstAODEntry = -1;
+  }
+
+  fLastAODEntry = fCurrentAODTree->GetEntries();
+  fCurrentAODEntry = fFirstAODEntry;
 
   AliDebug(3,Form("Will start embedding from entry %d", fCurrentAODEntry+1));
   
@@ -392,8 +402,15 @@ Bool_t AliJetEmbeddingFromAODTask::GetNextEntry()
 {
   Int_t attempts = -1;
 
+  fLastAODEntry = fCurrentAODTree->GetEntries();
+
   do {
-    if (!fCurrentAODFile || !fCurrentAODTree || fCurrentAODEntry+1 >= fCurrentAODTree->GetEntries()) {
+    if (fCurrentAODEntry+1 >= fLastAODEntry) { // in case it did not start from the first entry, it will go back
+      fLastAODEntry = fFirstAODEntry;
+      fFirstAODEntry = -1;
+      fCurrentAODEntry = -1;
+    }
+    if (!fCurrentAODFile || !fCurrentAODTree || fCurrentAODEntry+1 >= fLastAODEntry) {
       if (!OpenNextFile()) {
        AliError("Could not open the next file!");
        return kFALSE;
@@ -434,13 +451,12 @@ Bool_t AliJetEmbeddingFromAODTask::IsAODEventSelected()
     AliAODHeader *aodHeader = static_cast<AliAODHeader*>(fAODHeader);
 
     // Trigger selection
-    if (fTriggerMask != AliVEvent::kAny) {
+    if (fTriggerMask != 0) {
       UInt_t offlineTrigger = aodHeader->GetOfflineTrigger();
-      
       if ((offlineTrigger & fTriggerMask) == 0) {
-       AliDebug(2,Form("Event rejected due to physics selection. Event trigger mask: %d, trigger mask selection: %d.", 
-                       offlineTrigger, fTriggerMask));
-       return kFALSE;
+        AliDebug(2,Form("Event rejected due to physics selection. Event trigger mask: %d, trigger mask selection: %d.", 
+                        offlineTrigger, fTriggerMask));
+        return kFALSE;
       }
     }
     
@@ -665,10 +681,10 @@ void AliJetEmbeddingFromAODTask::Run()
          continue;
        }
        
-       if (fTrackEfficiency < 1) {
+       if (fTrackEfficiency) {
          Double_t r = gRandom->Rndm();
-         if (fTrackEfficiency < r) {
-           AliDebug(3, "Track not embedded because of artificial inefiiciency.");
+         if (fTrackEfficiency->Eval(track->Pt()) < r) {
+           AliDebug(3, "Track not embedded because of artificial inefficiency.");
            continue;
          }
        }
index 6e902d68c66a8b0ec2f758ea88918c6de8fc515a..24af10f61ba54e041eea9435f07a764a5dad2153 100644 (file)
@@ -38,7 +38,8 @@ class AliJetEmbeddingFromAODTask : public AliJetModelBaseTask {
   void           SetIncludeNoITS(Bool_t f)                         { fIncludeNoITS       = f     ; }
   void           SetCutMaxFractionSharedTPCClusters(Double_t c = 0.4) { fCutMaxFractionSharedTPCClusters  = c ; }
   void           SetUseNegativeLabels(Bool_t f)                    { fUseNegativeLabels  = f     ; }
-  void           SetTrackEfficiency(Double_t eff = 0.95)           { fTrackEfficiency    = eff   ; }
+  void           SetTrackEfficiency(Double_t eff = 0.95)           { fTrackEfficiency    = new TF1("eff", "[0]", 0, 500); fTrackEfficiency->FixParameter(0,eff); }
+  void           SetTrackEfficiency(TF1* eff)                      { fTrackEfficiency    = eff   ; }
   void           SetTotalFiles(Int_t n)                            { fTotalFiles         = n     ; }
   void           SetAttempts(Int_t n)                              { fAttempts           = n     ; }
   void           SetRandomAccess(Bool_t r=kTRUE)                   { fRandomAccess       = r     ; }
@@ -94,7 +95,7 @@ class AliJetEmbeddingFromAODTask : public AliJetModelBaseTask {
   Bool_t         fIncludeNoITS        ;//  True = includes tracks with failed ITS refit
   Double_t       fCutMaxFractionSharedTPCClusters;  // max fraction of shared TPC clusters
   Bool_t         fUseNegativeLabels   ;//  Whether or not should use negative MC labels
-  Double_t       fTrackEfficiency     ;//  Track efficiency
+  TF1           *fTrackEfficiency     ;//  Track efficiency
   Bool_t         fIsAODMC             ;//  Whether the embedding AOD is MC or not
   Int_t          fTotalFiles          ;//  Total number of files per pt hard bin
   Int_t          fAttempts            ;//  Attempts to be tried before giving up in opening the next file
@@ -111,6 +112,8 @@ class AliJetEmbeddingFromAODTask : public AliJetModelBaseTask {
   AliVCaloCells *fAODCaloCells        ;//! AOD cell collection
   TClonesArray  *fAODMCParticles      ;//! AOD MC particles collection
   Int_t          fCurrentAODEntry     ;//! Current entry in the AOD tree
+  Int_t          fFirstAODEntry       ;//! First entry in the AOD tree
+  Int_t          fLastAODEntry        ;//! Last entry in the AOD tree
   AliNamedString *fAODFilePath        ;//! Current AOD file path being embedded
   TH2           *fHistFileMatching    ;//! Current file ID vs. AOD file ID (to be embedded)
   TH1           *fHistAODFileError    ;//! AOD file ID (to be embedded) error
@@ -123,6 +126,6 @@ class AliJetEmbeddingFromAODTask : public AliJetModelBaseTask {
   AliJetEmbeddingFromAODTask(const AliJetEmbeddingFromAODTask&);            // not implemented
   AliJetEmbeddingFromAODTask &operator=(const AliJetEmbeddingFromAODTask&); // not implemented
 
-  ClassDef(AliJetEmbeddingFromAODTask, 11) // Jet embedding from AOD task
+  ClassDef(AliJetEmbeddingFromAODTask, 12) // Jet embedding from AOD task
 };
 #endif
index 6fe2b3ddf77825818ab158ca542ca2311d5eea1e..beb9614fdf7470cd6f8d61d0f4af8be8bb5349d2 100644 (file)
@@ -82,7 +82,7 @@ void AliJetEmbeddingFromGenTask::UserCreateOutputObjects()
   fHistPt = new TH1F("fHistpt","fHistPt;#it{p}_{T};N",100,0.,100.);
   fOutput->Add(fHistPt);
 
-  fHistEtaPhi = new TH2F("fHistEtapHI","fHistEtaPhi;#eta;#varphi",100,-3.,3.,100.,0.,TMath::TwoPi());
+  fHistEtaPhi = new TH2F("fHistEtaPhi","fHistEtaPhi;#eta;#varphi",100,-3.,3.,100.,0.,TMath::TwoPi());
   fOutput->Add(fHistEtaPhi);
 
   fHistTrials = new TH1F("fHistTrials", "fHistTrials", 1, 0, 1);
index d22f676d4346080014f6a49c868d04d99e6588ad..00e5fc51666b6c35c13567723bfbdecbea1c5d71 100644 (file)
@@ -30,9 +30,10 @@ AliJetEmbeddingFromPYTHIATask::AliJetEmbeddingFromPYTHIATask() :
   fAnchorRun(-1),
   fFileTable(0),
   fUseAsVetoTable(kTRUE),
-  fMinEntriesFromFile(0),
+  fMinEntriesPerPtHardBin(1),
   fCurrentPtHardBin(-1),
   fPtHardBinParam(0),
+  fPtHardBinCount(0),
   fHistPtHardBins(0)
 {
   // Default constructor.
@@ -51,9 +52,10 @@ AliJetEmbeddingFromPYTHIATask::AliJetEmbeddingFromPYTHIATask(const char *name, B
   fAnchorRun(-1),
   fFileTable(0),
   fUseAsVetoTable(kTRUE),
-  fMinEntriesFromFile(0),
+  fMinEntriesPerPtHardBin(1),
   fCurrentPtHardBin(-1),
   fPtHardBinParam(0),
+  fPtHardBinCount(0),
   fHistPtHardBins(0)
 {
   // Standard constructor.
@@ -133,20 +135,21 @@ Bool_t AliJetEmbeddingFromPYTHIATask::ExecOnce()
 //________________________________________________________________________
 Bool_t AliJetEmbeddingFromPYTHIATask::GetNextEntry()
 {
-  if (fEmbeddingCount >= fMinEntriesFromFile) {
+  if (fPtHardBinCount >= fMinEntriesPerPtHardBin || fCurrentPtHardBin < 0) {
+    fPtHardBinCount = 0;
+
     Int_t newPtHard = GetRandomPtHardBin();
     
-    new (fPtHardBinParam) TParameter<int>("PYTHIAPtHardBin", newPtHard);
-    
-    if (fHistPtHardBins)
-      fHistPtHardBins->SetBinContent(newPtHard+1, fHistPtHardBins->GetBinContent(newPtHard+1)+1);
-    
     if (newPtHard != fCurrentPtHardBin) {
+      new (fPtHardBinParam) TParameter<int>("PYTHIAPtHardBin", newPtHard);
       fCurrentPtHardBin = newPtHard;
       if (!OpenNextFile()) return kFALSE;
     }
   }
 
+  fPtHardBinCount++;
+  fHistPtHardBins->SetBinContent(fCurrentPtHardBin+1, fHistPtHardBins->GetBinContent(fCurrentPtHardBin+1)+1);
+
   return AliJetEmbeddingFromAODTask::GetNextEntry();
 }
 
index cb9cb9d5514801507f6a698a365e3e42ec44e33c..8ec11c843742c7ff32875d928dd41e37abb59241 100644 (file)
@@ -1,8 +1,6 @@
 #ifndef ALIJETEMBEDDINGFROMPYTHIATASK_H
 #define ALIJETEMBEDDINGFROMPYTHIATASK_H
 
-// $Id$
-
 #include "AliJetEmbeddingFromAODTask.h"
 #include <TArrayD.h>
 
@@ -28,30 +26,31 @@ class AliJetEmbeddingFromPYTHIATask : public AliJetEmbeddingFromAODTask {
   void           SetLHC11hAnchorRuns(Bool_t a=kTRUE)               { fLHC11hAnchorRun                           = a ; }
   void           SetFileTable(THashTable *t)                       { fFileTable                                 = t ; }
   void           SetUseAsVetoTable(Bool_t v)                       { fUseAsVetoTable                            = v ; }
-  void           SetMinEntriesFromFile(Int_t r)                    { fMinEntriesFromFile                        = r ; }
+  void           SetMinEntriesPerPtHardBin(Int_t r)                { fMinEntriesPerPtHardBin                    = r ; }
 
  protected:
-  Bool_t         ExecOnce()           ;// intialize task
-  Bool_t         GetNextEntry()       ;// get next entry in current tree
-  Int_t          GetRandomPtHardBin() ;// get a radnom pt hard bin according to fPtHardBinScaling
-  TFile         *GetNextFile()        ;// get next file
-
-  TString        fPYTHIAPath          ;// Path of the PYTHIA production
-  TArrayD        fPtHardBinScaling    ;// Pt hard bin scaling
-  Bool_t         fLHC11hAnchorRun     ;// LHC11h anchor runs
-  Int_t          fAnchorRun           ;// Anchor run
-  THashTable    *fFileTable           ;// Table of allowed/vetoed files
-  Bool_t         fUseAsVetoTable      ;// Use fFileTable as a veto table
-  Int_t          fMinEntriesFromFile  ;// Minimum number of embedded events before changing file
-  Int_t          fCurrentPtHardBin    ;//!Pt hard bin of the current open file
-  TParameter<int> *fPtHardBinParam    ;//!Pt hard bin param
-
-  TH1           *fHistPtHardBins      ;//!Embeded pt hard bin distribution
+  Bool_t           ExecOnce()               ;// intialize task
+  Bool_t           GetNextEntry()           ;// get next entry in current tree
+  Int_t            GetRandomPtHardBin()     ;// get a radnom pt hard bin according to fPtHardBinScaling
+  TFile           *GetNextFile()            ;// get next file
+
+  TString          fPYTHIAPath              ;// Path of the PYTHIA production
+  TArrayD          fPtHardBinScaling        ;// Pt hard bin scaling
+  Bool_t           fLHC11hAnchorRun         ;// LHC11h anchor runs
+  Int_t            fAnchorRun               ;// Anchor run
+  THashTable      *fFileTable               ;// Table of allowed/vetoed files
+  Bool_t           fUseAsVetoTable          ;// Use fFileTable as a veto table
+  Int_t            fMinEntriesPerPtHardBin  ;// Minimum number of embedded events before changing pt hard bin
+  Int_t            fCurrentPtHardBin        ;//!Pt hard bin of the current open file
+  TParameter<int> *fPtHardBinParam          ;//!Pt hard bin param
+  Int_t            fPtHardBinCount          ;//!Number of event embedded from the current pt hard bin
+
+  TH1             *fHistPtHardBins          ;//!Embeded pt hard bin distribution
 
  private:
   AliJetEmbeddingFromPYTHIATask(const AliJetEmbeddingFromPYTHIATask&);            // not implemented
   AliJetEmbeddingFromPYTHIATask &operator=(const AliJetEmbeddingFromPYTHIATask&); // not implemented
 
-  ClassDef(AliJetEmbeddingFromPYTHIATask, 3) // Jet embedding from PYTHIA task
+  ClassDef(AliJetEmbeddingFromPYTHIATask, 4) // Jet embedding from PYTHIA task
 };
 #endif
index 199581085820a09b09dde8ae02d51d492459ee0b..90be965425555c7ae5e41cded0ac39acce87465a 100644 (file)
@@ -4,6 +4,8 @@
 //
 // Author: S.Aiola, C.Loizides
 
+#include <TRandom3.h>
+
 #include "AliJetEmbeddingTask.h"
 
 ClassImp(AliJetEmbeddingTask)
@@ -11,7 +13,8 @@ ClassImp(AliJetEmbeddingTask)
 //________________________________________________________________________
 AliJetEmbeddingTask::AliJetEmbeddingTask() : 
   AliJetModelBaseTask("AliJetEmbeddingTask"),
-  fMassless(kFALSE)
+  fMassless(kFALSE),
+  fNeutralFraction(0)
 {
   // Default constructor.
   SetSuffix("Embedded");
@@ -20,7 +23,8 @@ AliJetEmbeddingTask::AliJetEmbeddingTask() :
 //________________________________________________________________________
 AliJetEmbeddingTask::AliJetEmbeddingTask(const char *name) : 
   AliJetModelBaseTask(name),
-  fMassless(kFALSE)
+  fMassless(kFALSE),
+  fNeutralFraction(0)
 {
   // Standard constructor.
   SetSuffix("Embedded");
@@ -51,7 +55,12 @@ void AliJetEmbeddingTask::Run()
     for (Int_t i = 0; i < fNTracks; ++i) {
       Double_t mass = 0.1396;
       if(fMassless) mass = 0.;
-      AddTrack(-1,-999,-1,0,0,0,0,kFALSE,0,1,mass);
+      Short_t charge = 1;
+      if(fNeutralFraction>0.) {
+       Double_t rnd = gRandom->Rndm();
+       if(rnd<fNeutralFraction) charge = 0;
+      }
+      AddTrack(-1,-999,-1,0,0,0,0,kFALSE,0,charge,mass);
     }
   }
 }
index ae4ed37e30b8135625fa0f964893c1c71ed6a671..9a61fd085776dc32155a97380c0d6067c90214fe 100644 (file)
@@ -11,17 +11,19 @@ class AliJetEmbeddingTask : public AliJetModelBaseTask {
   AliJetEmbeddingTask(const char *name); 
   virtual ~AliJetEmbeddingTask();
 
-  void           SetMasslessParticles(Bool_t b) { fMassless = b ; }
+  void           SetMasslessParticles(Bool_t b) { fMassless        = b ; }
+  void           SetNeutralFraction(Double_t f) { fNeutralFraction = f ; }
 
  protected:
   void           Run();
 
+ private:
   Bool_t         fMassless;               //make particles massless
+  Double_t       fNeutralFraction;        //assign charge==0 to fraction of particles
 
- private:
   AliJetEmbeddingTask(const AliJetEmbeddingTask&);            // not implemented
   AliJetEmbeddingTask &operator=(const AliJetEmbeddingTask&); // not implemented
 
-  ClassDef(AliJetEmbeddingTask, 2) // Jet embedding task
+  ClassDef(AliJetEmbeddingTask, 3) // Jet embedding task
 };
 #endif
diff --git a/PWGJE/EMCALJetTasks/AliJetFastSimulation.cxx b/PWGJE/EMCALJetTasks/AliJetFastSimulation.cxx
new file mode 100644 (file)
index 0000000..7680a5b
--- /dev/null
@@ -0,0 +1,414 @@
+// $Id$
+//
+// Jet model task to merge to existing branches
+// only implemented for track branches
+//
+// Author: M. Verweij
+
+#include "AliJetFastSimulation.h"
+
+#include <TClonesArray.h>
+#include <TFolder.h>
+#include <TLorentzVector.h>
+#include <TParticle.h>
+#include <TParticlePDG.h>
+#include <TRandom3.h>
+#include <TProfile.h>
+#include <TGrid.h>
+#include <TFile.h>
+#include <TF1.h>
+#include "AliAnalysisManager.h"
+#include "AliEMCALDigit.h"
+#include "AliEMCALGeometry.h"
+#include "AliEMCALRecPoint.h"
+#include "AliGenerator.h"
+#include "AliHeader.h"
+#include "AliLog.h"
+#include "AliPicoTrack.h"
+#include "AliRun.h"
+#include "AliRunLoader.h"
+#include "AliStack.h"
+#include "AliStack.h"
+#include "AliVCluster.h"
+#include "AliVEvent.h"
+
+ClassImp(AliJetFastSimulation)
+
+//________________________________________________________________________
+AliJetFastSimulation::AliJetFastSimulation() : 
+AliAnalysisTaskEmcal("AliJetFastSimulation",kTRUE),
+  fTracksOutName(""),
+  fTracksOut(0x0),
+  fNTrackClasses(2),
+  fRandom(0),
+  fEfficiencyFixed(1.),
+  fMomResH1(0x0),
+  fMomResH2(0x0),
+  fMomResH3(0x0),
+  fMomResH1Fit(0x0),
+  fMomResH2Fit(0x0),
+  fMomResH3Fit(0x0),
+  fhEffH1(0x0),
+  fhEffH2(0x0),
+  fhEffH3(0x0),
+  fUseTrPtResolutionSmearing(kFALSE),
+  fUseDiceEfficiency(kFALSE),
+  fDiceEfficiencyMinPt(-1.),
+  fUseTrPtResolutionFromOADB(kFALSE),
+  fUseTrEfficiencyFromOADB(kFALSE),
+  fPathTrPtResolution(""),
+  fPathTrEfficiency(""),
+  fHistPtDet(0),
+  fh2PtGenPtSmeared(0),
+  fp1Efficiency(0),
+  fp1PtResolution(0)
+{
+  // Default constructor.
+  SetMakeGeneralHistograms(kTRUE);
+}
+
+//________________________________________________________________________
+AliJetFastSimulation::AliJetFastSimulation(const char *name) : 
+  AliAnalysisTaskEmcal(name,kTRUE),
+  fTracksOutName(""),
+  fTracksOut(0x0),
+  fNTrackClasses(2),
+  fRandom(0),
+  fEfficiencyFixed(1.),
+  fMomResH1(0x0),
+  fMomResH2(0x0),
+  fMomResH3(0x0),
+  fMomResH1Fit(0x0),
+  fMomResH2Fit(0x0),
+  fMomResH3Fit(0x0),
+  fhEffH1(0x0),
+  fhEffH2(0x0),
+  fhEffH3(0x0),
+  fUseTrPtResolutionSmearing(kFALSE),
+  fUseDiceEfficiency(kFALSE),
+  fDiceEfficiencyMinPt(-1.),
+  fUseTrPtResolutionFromOADB(kFALSE),
+  fUseTrEfficiencyFromOADB(kFALSE),
+  fPathTrPtResolution(""),
+  fPathTrEfficiency(""),
+  fHistPtDet(0),
+  fh2PtGenPtSmeared(0),
+  fp1Efficiency(0),
+  fp1PtResolution(0)
+{
+  // Standard constructor.
+  SetMakeGeneralHistograms(kTRUE);
+}
+
+//________________________________________________________________________
+AliJetFastSimulation::~AliJetFastSimulation()
+{
+  // Destructor
+
+  delete fRandom;
+}
+
+//________________________________________________________________________
+void AliJetFastSimulation::ExecOnce() 
+{
+  // Exec only once.
+
+  AliAnalysisTaskEmcal::ExecOnce();
+
+  if(!fRandom) fRandom = new TRandom3(0);
+
+  if (!fTracksOutName.IsNull()) {
+    fTracksOut = new TClonesArray("AliPicoTrack");
+    fTracksOut->SetName(fTracksOutName);
+    if (InputEvent()->FindListObject(fTracksOutName)) {
+      AliFatal(Form("%s: Collection %s is already present in the event!", GetName(), fTracksOutName.Data()));
+      return;
+    }
+    else {
+      InputEvent()->AddObject(fTracksOut);
+    }
+  }
+}
+//________________________________________________________________________
+void AliJetFastSimulation::LocalInit() {
+  //initialize track response
+  if(fUseTrPtResolutionFromOADB) LoadTrPtResolutionRootFileFromOADB();
+  if(fUseTrEfficiencyFromOADB)   LoadTrEfficiencyRootFileFromOADB();
+  FitMomentumResolution();
+}
+
+//________________________________________________________________________
+void AliJetFastSimulation::UserCreateOutputObjects() 
+{
+  AliAnalysisTaskEmcal::UserCreateOutputObjects();
+
+  const Int_t nBinPt = 100;
+  Double_t binLimitsPt[nBinPt+1];
+  for(Int_t iPt = 0;iPt <= nBinPt;iPt++){
+    if(iPt == 0){
+      binLimitsPt[iPt] = 0.0;
+    } else {// 1.0
+      binLimitsPt[iPt] =  binLimitsPt[iPt-1] + 1.0;
+    }
+  }
+
+  fHistPtDet = new TH1F("fHistpt","fHistPtDet;#it{p}_{T};N",nBinPt,binLimitsPt);
+  fOutput->Add(fHistPtDet);
+
+  fh2PtGenPtSmeared = new TH2F("fh2PtGenPtSmeared","fh2PtGenPtSmeared",nBinPt,binLimitsPt,nBinPt,binLimitsPt);
+  fOutput->Add(fh2PtGenPtSmeared);
+
+  fp1Efficiency = new TProfile("fp1Efficiency","fp1Efficiency",nBinPt,binLimitsPt);
+  fOutput->Add(fp1Efficiency);
+
+  fp1PtResolution = new TProfile("fp1PtResolution","fp1PtResolution",nBinPt,binLimitsPt);
+  fOutput->Add(fp1PtResolution);
+
+  PostData(1, fOutput); // Post data for ALL output slots > 0 here.
+}
+
+
+//________________________________________________________________________
+Bool_t AliJetFastSimulation::Run() 
+{
+  //Check if information is provided detector level effects
+  if(!fMomResH1 && fNTrackClasses>0 ) 
+    fUseTrPtResolutionSmearing = 0;
+  if(!fMomResH2 && fNTrackClasses>1 ) 
+    fUseTrPtResolutionSmearing = 0;
+  if(!fMomResH3 && fNTrackClasses>2 ) 
+    fUseTrPtResolutionSmearing = 0;
+
+  if(fEfficiencyFixed < 1. && !fUseDiceEfficiency)
+    fUseDiceEfficiency = 1; // 1 is the default; 2 can be set by user but not implemented
+  else {
+    if(!fhEffH1 && fNTrackClasses>0 ) 
+      fUseDiceEfficiency = 0;
+    if(!fhEffH2 && fNTrackClasses>1 ) 
+      fUseDiceEfficiency = 0;
+    if(!fhEffH3 && fNTrackClasses>2 ) 
+      fUseDiceEfficiency = 0;
+  }
+
+  fTracksOut->Delete();
+  SimulateTracks();
+  return kTRUE;
+}
+
+//________________________________________________________________________
+void AliJetFastSimulation::SimulateTracks()
+{
+  //Apply toy detector simulation to tracks
+  Int_t it = 0;
+  const Int_t nTracks = fTracks->GetEntriesFast();
+   for (Int_t i = 0; i < nTracks; ++i) {
+    AliPicoTrack *picotrack = static_cast<AliPicoTrack*>(fTracks->At(i));
+    if (!picotrack)
+      continue;
+
+    Bool_t accept = kTRUE;
+    Double_t eff[3] = {0};
+    Double_t rnd = fRandom->Uniform(1.);  
+    if(fUseDiceEfficiency) accept = DiceEfficiency(picotrack,eff,rnd);
+    if(!accept) continue;
+
+    AliPicoTrack *track = NULL;
+    if(fUseTrPtResolutionSmearing) {
+      track = SmearPt(picotrack,eff,rnd);
+      (*fTracksOut)[it] = track;
+    } else
+      track = new ((*fTracksOut)[it]) AliPicoTrack(*picotrack);
+
+    track->SetBit(TObject::kBitMask,1);
+    fHistPtDet->Fill(track->Pt());
+    it++;
+   }
+}
+
+//________________________________________________________________________
+Bool_t AliJetFastSimulation::DiceEfficiency(AliPicoTrack *vp, Double_t eff[3], Double_t rnd)
+{
+  // Dice to decide if particle is kept or not - toy  model for efficiency
+  //
+  Double_t sumEff = 0.;
+  Double_t pT = 0.;
+  if(fEfficiencyFixed<1.)
+    sumEff = fEfficiencyFixed;
+  else {
+    pT = vp->Pt();
+    Double_t pTtmp = pT;
+    if(pT>10.) pTtmp = 10.;
+    if(fhEffH1) eff[0] = fhEffH1->GetBinContent(fhEffH1->FindBin(pTtmp));
+    if(fhEffH2) eff[1] = fhEffH2->GetBinContent(fhEffH2->FindBin(pTtmp));
+    if(fhEffH3) eff[2] = fhEffH3->GetBinContent(fhEffH3->FindBin(pTtmp));
+
+    sumEff = eff[0]+eff[1]+eff[2];
+  }
+  fp1Efficiency->Fill(vp->Pt(),sumEff);
+  if(rnd>sumEff && pT > fDiceEfficiencyMinPt) return kFALSE;
+  return kTRUE;
+}
+
+//________________________________________________________________________
+AliPicoTrack* AliJetFastSimulation::SmearPt(AliPicoTrack *vp, Double_t eff[3], Double_t rnd)
+{
+  //Smear momentum of generated particle
+  Double_t smear = 1.;
+  Double_t  pT = vp->Pt();
+  //Select hybrid track category
+
+  //Sort efficiencies from large to small
+  Int_t cat[3] = {0};
+  TMath::Sort(3,eff,cat);
+  if(rnd<=eff[cat[2]])
+    smear = GetMomentumSmearing(cat[2],pT);
+  else if(rnd<=(eff[cat[2]]+eff[cat[1]]))
+    smear = GetMomentumSmearing(cat[1],pT);
+  else
+    smear = GetMomentumSmearing(cat[0],pT);
+  
+  fp1PtResolution->Fill(vp->Pt(),smear);
+
+  Double_t sigma = vp->Pt()*smear;
+  Double_t pTrec = fRandom->Gaus(vp->Pt(),sigma);
+  fh2PtGenPtSmeared->Fill(vp->Pt(),pTrec);
+
+  AliPicoTrack *picotrack = new AliPicoTrack(pTrec,
+                                            vp->Eta(),
+                                            vp->Phi(),
+                                            vp->Charge(),
+                                            vp->GetLabel(),
+                                            AliPicoTrack::GetTrackType(vp),
+                                            vp->GetTrackEtaOnEMCal(),
+                                            vp->GetTrackPhiOnEMCal(),
+                                            vp->GetTrackPtOnEMCal(),
+                                            vp->IsEMCAL(),
+                                            0.13957); //assume pion mass
+    return picotrack;
+}
+
+//________________________________________________________________________
+Double_t AliJetFastSimulation::GetMomentumSmearing(Int_t cat, Double_t pt) {
+
+  //
+  // Get smearing on generated momentum
+  //
+
+  TProfile *fMomRes = 0x0;
+  if(cat==1 && fMomResH1) fMomRes = (TProfile*)fMomResH1->Clone("fMomRes");
+  if(cat==2 && fMomResH2) fMomRes = (TProfile*)fMomResH2->Clone("fMomRes");
+  if(cat==3 && fMomResH3) fMomRes = (TProfile*)fMomResH3->Clone("fMomRes");
+
+  if(!fMomRes)
+    return 0.;
+
+  Double_t smear = 0.;
+  if(pt>20.) {
+    if(cat==1 && fMomResH1Fit) smear = fMomResH1Fit->Eval(pt);
+    if(cat==2 && fMomResH2Fit) smear = fMomResH2Fit->Eval(pt);
+    if(cat==3 && fMomResH3Fit) smear = fMomResH3Fit->Eval(pt);
+  }
+  else {
+    Int_t bin = fMomRes->FindBin(pt);
+    smear = fRandom->Gaus(fMomRes->GetBinContent(bin),fMomRes->GetBinError(bin));
+  }
+  
+  if(fMomRes) delete fMomRes;
+
+  return smear;
+}
+
+//________________________________________________________________________
+void AliJetFastSimulation::LoadTrPtResolutionRootFileFromOADB() {
+
+  if (!gGrid && fPathTrPtResolution.Contains("alien://")) {
+     AliInfo("Trying to connect to AliEn ...");
+     TGrid::Connect("alien://");
+   }
+
+  TFile *f = TFile::Open(fPathTrPtResolution.Data());
+  if(!f)return;
+  TProfile *fProfPtPtSigma1PtGlobSt     = NULL;
+  TProfile *fProfPtPtSigma1PtGlobCnoSPD = NULL;
+  TProfile *fProfPtPtSigma1PtGlobCnoITS = NULL;
+  if(fNTrackClasses>0) fProfPtPtSigma1PtGlobSt     = (TProfile*)f->Get("fProfPtPtSigma1PtGlobSt");
+  if(fNTrackClasses>1) fProfPtPtSigma1PtGlobCnoSPD = (TProfile*)f->Get("fProfPtPtSigma1PtGlobCnoSPD");
+  if(fNTrackClasses>2) fProfPtPtSigma1PtGlobCnoITS = (TProfile*)f->Get("fProfPtPtSigma1PtGlobCnoITS");
+
+  SetSmearResolution(kTRUE);
+  SetMomentumResolutionHybrid(fProfPtPtSigma1PtGlobSt,fProfPtPtSigma1PtGlobCnoSPD,fProfPtPtSigma1PtGlobCnoITS);
+}
+
+//________________________________________________________________________
+void AliJetFastSimulation::LoadTrEfficiencyRootFileFromOADB() {
+
+   if (!gGrid && fPathTrPtResolution.Contains("alien://")) {
+     AliInfo("Trying to connect to AliEn ...");
+     TGrid::Connect("alien://");
+   }
+
+  TFile *f = TFile::Open(fPathTrEfficiency.Data());
+  if(!f)return;
+  TH1D *hEffPosGlobSt     = NULL;
+  TH1D *hEffPosGlobCnoSPD = NULL;
+  TH1D *hEffPosGlobCnoITS = NULL;
+  if(fNTrackClasses>0) hEffPosGlobSt = (TH1D*)f->Get("hEffPosGlobSt");
+  if(fNTrackClasses>1) hEffPosGlobCnoSPD = (TH1D*)f->Get("hEffPosGlobCnoSPD");
+  if(fNTrackClasses>2) hEffPosGlobCnoITS = (TH1D*)f->Get("hEffPosGlobCnoITS");
+
+  SetDiceEfficiency(kTRUE);
+  SetEfficiencyHybrid(hEffPosGlobSt,hEffPosGlobCnoSPD,hEffPosGlobCnoITS);
+}
+
+//________________________________________________________________________
+void AliJetFastSimulation::SetMomentumResolutionHybrid(TProfile *p1, TProfile *p2, TProfile *p3) {
+  //
+  // set mom res profiles
+  //
+  if(fMomResH1) delete fMomResH1;
+  if(fMomResH2) delete fMomResH2;
+  if(fMomResH3) delete fMomResH3;
+  
+  if(p1) fMomResH1 = new TProfile(*p1);//(TProfile*)p1->Clone("fMomResH1");
+  if(p2) fMomResH2 = new TProfile(*p2);//(TProfile*)p2->Clone("fMomResH2");
+  if(p3) fMomResH3 = new TProfile(*p3);//(TProfile*)p3->Clone("fMomResH3");
+}
+
+//________________________________________________________________________
+void AliJetFastSimulation:: SetEfficiencyHybrid(TH1 *h1, TH1 *h2, TH1 *h3) {
+  //
+  // set tracking efficiency histos
+  //
+  if(h1) fhEffH1 = (TH1*)h1->Clone("fhEffH1");
+  if(h2) fhEffH2 = (TH1*)h2->Clone("fhEffH2");
+  if(h3) fhEffH3 = (TH1*)h3->Clone("fhEffH3");
+}
+
+//________________________________________________________________________
+void AliJetFastSimulation::FitMomentumResolution() {
+  //
+  // Fit linear function on momentum resolution at high pT
+  //
+
+  if(!fMomResH1Fit && fMomResH1) {
+    fMomResH1Fit = new TF1("fMomResH1Fit","[0]+[1]*x",0.,200.);
+    fMomResH1->Fit(fMomResH1Fit,"LL V0","",5.,30.);
+    fMomResH1Fit ->SetRange(5.,100.);
+  }
+
+  if(!fMomResH2Fit && fMomResH2) {
+    fMomResH2Fit = new TF1("fMomResH2Fit","[0]+[1]*x",0.,200.);
+    fMomResH2->Fit(fMomResH2Fit,"LL V0","",5.,30.);
+    fMomResH2Fit ->SetRange(5.,100.);
+  }
+
+  if(!fMomResH3Fit && fMomResH3) {
+    fMomResH3Fit = new TF1("fMomResH3Fit","[0]+[1]*x",0.,200.);
+    fMomResH3->Fit(fMomResH3Fit,"LL V0","",5.,30.);
+    fMomResH3Fit ->SetRange(5.,100.);
+  }
+
+}
+
+
diff --git a/PWGJE/EMCALJetTasks/AliJetFastSimulation.h b/PWGJE/EMCALJetTasks/AliJetFastSimulation.h
new file mode 100644 (file)
index 0000000..be2b8df
--- /dev/null
@@ -0,0 +1,81 @@
+#ifndef ALIJETFASTSIMULATION_H
+#define ALIJETFASTSIMULATION_H
+
+// $Id$
+
+class TClonesArray;
+class TRandom3;
+class AliVParticle;
+class AliPicoTrack;
+
+#include "AliAnalysisTaskEmcal.h"
+
+class AliJetFastSimulation : public AliAnalysisTaskEmcal {
+ public:
+  AliJetFastSimulation();
+  AliJetFastSimulation(const char *name); 
+  virtual ~AliJetFastSimulation();
+
+  virtual void           LocalInit();
+  virtual void           UserCreateOutputObjects();
+
+  void                   SetTracksOutName(const char *n)          { fTracksOutName   = n;    }
+  void                   SetNTrackClasses(Int_t i)                { fNTrackClasses   = i;    }
+  void                   SetFixedTrackEfficiency(Double_t eff)    { fEfficiencyFixed = eff ; }
+
+  void                   SetUseTrResolutionFromOADB(Bool_t b=kTRUE, TString path="$ALICE_ROOT/OADB/PWGJE/Resolution/PtResol_LHCh_Cent0-10_v1.root") {fUseTrPtResolutionFromOADB = b; fPathTrPtResolution=path;}
+  void                   SetUseTrEfficiencyFromOADB(Bool_t b=kTRUE, TString path="$ALICE_ROOT/OADB/PWGJE/Efficiency/Efficiency_LHC11a2aj_Cent0_v1.root") {fUseTrEfficiencyFromOADB = b; fPathTrEfficiency=path;}
+  void                   SetSmearResolution(Bool_t b)                               { fUseTrPtResolutionSmearing = b ;}
+  void                   SetDiceEfficiency(Int_t b)                                 { fUseDiceEfficiency         = b ;}
+  void                   SetDiceEfficiencyMinPt(Double_t pt)                        { fDiceEfficiencyMinPt       = pt;}
+
+ protected:
+  void                   ExecOnce();
+  Bool_t                 Run();
+
+  void                   SimulateTracks();
+  Bool_t                 DiceEfficiency(AliPicoTrack *vp, Double_t eff[3], Double_t rnd);
+  AliPicoTrack          *SmearPt(AliPicoTrack *vp, Double_t eff[3], Double_t rnd);
+  Double_t               GetMomentumSmearing(Int_t cat, Double_t pt);
+  void                   FitMomentumResolution();
+  void                   LoadTrEfficiencyRootFileFromOADB();
+  void                   LoadTrPtResolutionRootFileFromOADB();
+  void                   SetMomentumResolutionHybrid(TProfile *p1, TProfile *p2, TProfile *p3);
+  void                   SetEfficiencyHybrid(TH1 *h1, TH1 *h2, TH1 *h3);
+
+  TString                fTracksOutName;       // name of output track collection
+  TClonesArray          *fTracksOut;           //!output track collection
+  Int_t                  fNTrackClasses;       // number of track classes
+  TRandom3 *fRandom;                           //! random number generator
+  Double_t  fEfficiencyFixed;                  // fixed efficiency for all pT and all types of tracks
+  TProfile *fMomResH1;                         // Momentum resolution from TrackQA Hybrid Category 1
+  TProfile *fMomResH2;                         // Momentum resolution from TrackQA Hybrid Category 2
+  TProfile *fMomResH3;                         // Momentum resolution from TrackQA Hybrid Category 3
+  TF1      *fMomResH1Fit;                      // fit to momentum resolution
+  TF1      *fMomResH2Fit;                      // fit to momentum resolution
+  TF1      *fMomResH3Fit;                      // fit to momentum resolution
+  TH1      *fhEffH1;                           // Efficiency for Spectra Hybrid Category 1
+  TH1      *fhEffH2;                           // Efficiency for Spectra Hybrid Category 2
+  TH1      *fhEffH3;                           // Efficiency for Spectra Hybrid Category 3
+  Bool_t    fUseTrPtResolutionSmearing;        // Apply momentum smearing on track level
+  Int_t     fUseDiceEfficiency;                // Flag to apply efficiency on track level by dicing 0: no dicing; 1: dicing wrt to input branch;
+  Double_t  fDiceEfficiencyMinPt;              // Only do efficiency dicing for tracks above this pt
+  Bool_t    fUseTrPtResolutionFromOADB;        // Load track pt resolution root file from OADB path
+  Bool_t    fUseTrEfficiencyFromOADB;          // Load tracking efficiency root file from OADB path
+  TString   fPathTrPtResolution;               // OADB path to root file
+  TString   fPathTrEfficiency;                 // OADB path to root file
+
+  //Output objects
+  TH1F     *fHistPtDet;                        //!pT spectrum of detector level particles
+  TH2F     *fh2PtGenPtSmeared;                 //! Control histo smeared momentum
+  TProfile *fp1Efficiency;                     //! Control profile efficiency
+  TProfile *fp1PtResolution;                   //! Control profile for pT resolution
+
+  
+ private:
+  AliJetFastSimulation(const AliJetFastSimulation&);            // not implemented
+  AliJetFastSimulation &operator=(const AliJetFastSimulation&); // not implemented
+
+  ClassDef(AliJetFastSimulation, 1) // Jet fast simulation task
+};
+#endif
diff --git a/PWGJE/EMCALJetTasks/AliJetModelCopyTracks.cxx b/PWGJE/EMCALJetTasks/AliJetModelCopyTracks.cxx
new file mode 100644 (file)
index 0000000..ac37136
--- /dev/null
@@ -0,0 +1,154 @@
+// $Id$
+//
+// Jet model task to copy tracks while making small change
+// - make particles massless
+//
+// Author: M. Verweij
+
+#include "AliJetModelCopyTracks.h"
+
+#include <TClonesArray.h>
+#include <TFolder.h>
+#include <TLorentzVector.h>
+#include <TParticle.h>
+#include <TParticlePDG.h>
+#include <TRandom3.h>
+#include <TProfile.h>
+#include <TGrid.h>
+#include <TFile.h>
+#include <TF1.h>
+#include "AliAnalysisManager.h"
+#include "AliEMCALDigit.h"
+#include "AliEMCALGeometry.h"
+#include "AliEMCALRecPoint.h"
+#include "AliGenerator.h"
+#include "AliHeader.h"
+#include "AliLog.h"
+#include "AliPicoTrack.h"
+#include "AliRun.h"
+#include "AliRunLoader.h"
+#include "AliStack.h"
+#include "AliStack.h"
+#include "AliVCluster.h"
+#include "AliVEvent.h"
+
+ClassImp(AliJetModelCopyTracks)
+
+//________________________________________________________________________
+AliJetModelCopyTracks::AliJetModelCopyTracks() : 
+AliAnalysisTaskEmcal("AliJetModelCopyTracks",kTRUE),
+  fTracksOutName(""),
+  fTracksOut(0x0),
+  fParticleMass(kMassive),
+  fHistPtOut(0)
+{
+  // Default constructor.
+  SetMakeGeneralHistograms(kTRUE);
+}
+
+//________________________________________________________________________
+AliJetModelCopyTracks::AliJetModelCopyTracks(const char *name) : 
+  AliAnalysisTaskEmcal(name,kTRUE),
+  fTracksOutName(""),
+  fTracksOut(0x0),
+  fParticleMass(kMassive),
+  fHistPtOut(0)
+{
+  // Standard constructor.
+  SetMakeGeneralHistograms(kTRUE);
+}
+
+//________________________________________________________________________
+AliJetModelCopyTracks::~AliJetModelCopyTracks()
+{
+  // Destructor
+
+}
+
+//________________________________________________________________________
+void AliJetModelCopyTracks::ExecOnce() 
+{
+  // Exec only once.
+
+  AliAnalysisTaskEmcal::ExecOnce();
+
+  if (!fTracksOutName.IsNull()) {
+    fTracksOut = new TClonesArray("AliPicoTrack");
+    fTracksOut->SetName(fTracksOutName);
+    if (InputEvent()->FindListObject(fTracksOutName)) {
+      AliFatal(Form("%s: Collection %s is already present in the event!", GetName(), fTracksOutName.Data()));
+      return;
+    }
+    else {
+      InputEvent()->AddObject(fTracksOut);
+    }
+  }
+}
+
+//________________________________________________________________________
+void AliJetModelCopyTracks::UserCreateOutputObjects() 
+{
+  AliAnalysisTaskEmcal::UserCreateOutputObjects();
+
+  const Int_t nBinPt = 100;
+  Double_t binLimitsPt[nBinPt+1];
+  for(Int_t iPt = 0;iPt <= nBinPt;iPt++){
+    if(iPt == 0){
+      binLimitsPt[iPt] = 0.0;
+    } else {// 1.0
+      binLimitsPt[iPt] =  binLimitsPt[iPt-1] + 1.0;
+    }
+  }
+
+  fHistPtOut = new TH1F("fHistPtOut","fHistPtOut;#it{p}_{T};N",nBinPt,binLimitsPt);
+  fOutput->Add(fHistPtOut);
+
+  PostData(1, fOutput); // Post data for ALL output slots > 0 here.
+}
+
+
+//________________________________________________________________________
+Bool_t AliJetModelCopyTracks::Run() 
+{
+  CopyTracks();
+  return kTRUE;
+}
+
+//________________________________________________________________________
+void AliJetModelCopyTracks::CopyTracks()
+{
+  //Apply toy detector simulation to tracks
+  fTracksOut->Delete();
+  
+  Int_t nt = 0;
+  const Int_t nTracks = fTracks->GetEntriesFast();
+   for (Int_t i = 0; i < nTracks; ++i) {
+    AliPicoTrack *picotrack = static_cast<AliPicoTrack*>(fTracks->At(i));
+    if (!picotrack)
+      continue;
+
+    Double_t mass = picotrack->M();
+    if(fParticleMass==kMassless) mass = 0.;
+    if(fParticleMass==kPionMass) mass = 0.13957;
+
+    AliPicoTrack *track = new ((*fTracksOut)[nt]) AliPicoTrack(picotrack->Pt(),
+                                                              picotrack->Eta(),
+                                                              picotrack->Phi(),
+                                                              picotrack->Charge(),
+                                                              picotrack->GetLabel(),
+                                                              AliPicoTrack::GetTrackType(picotrack),
+                                                              picotrack->GetTrackEtaOnEMCal(),
+                                                              picotrack->GetTrackPhiOnEMCal(),
+                                                              picotrack->GetTrackPtOnEMCal(),
+                                                              picotrack->IsEMCAL(),
+                                                              mass); 
+    track->SetBit(TObject::kBitMask,1);
+    fHistPtOut->Fill(track->Pt());
+    nt++;
+   }
+}
+
+
+
+
+
diff --git a/PWGJE/EMCALJetTasks/AliJetModelCopyTracks.h b/PWGJE/EMCALJetTasks/AliJetModelCopyTracks.h
new file mode 100644 (file)
index 0000000..f040e81
--- /dev/null
@@ -0,0 +1,49 @@
+#ifndef ALIJETMODELCOPYTRACKS_H
+#define ALIJETMODELCOPYTRACKS_H
+
+// $Id$
+
+class TClonesArray;
+class TRandom3;
+class AliVParticle;
+class AliPicoTrack;
+
+#include "AliAnalysisTaskEmcal.h"
+
+class AliJetModelCopyTracks : public AliAnalysisTaskEmcal {
+ public:
+  enum ParticleMass {
+    kMassive  = 0,
+    kMassless = 1,
+    kPionMass = 2
+  };
+
+
+  AliJetModelCopyTracks();
+  AliJetModelCopyTracks(const char *name); 
+  virtual ~AliJetModelCopyTracks();
+
+  virtual void           UserCreateOutputObjects();
+
+  void                   SetTracksOutName(const char *n)          { fTracksOutName   = n;    }
+  void                   SetParticleMassType(ParticleMass m)      { fParticleMass    = m;    }
+
+  void                   ExecOnce();
+  Bool_t                 Run();
+
+  void                   CopyTracks();
+
+  TString                fTracksOutName;       // name of output track collection
+  TClonesArray          *fTracksOut;           //!output track collection
+  ParticleMass           fParticleMass;        // particle mass to use
+
+  //Output objects
+  TH1F     *fHistPtOut;                        //!pT spectrum of output particles
+  
+ private:
+  AliJetModelCopyTracks(const AliJetModelCopyTracks&);            // not implemented
+  AliJetModelCopyTracks &operator=(const AliJetModelCopyTracks&); // not implemented
+
+  ClassDef(AliJetModelCopyTracks, 1) // copy tracks class
+};
+#endif
index da8cbeab7d9a9d38e11150cda1de48ac6a01d6be..f19a5db43a96fe5924509f438db6e0fca450a77f 100644 (file)
@@ -47,7 +47,11 @@ AliAnalysisTaskJetMassResponseDet::AliAnalysisTaskJetMassResponseDet() :
   fh2PtVsMassJetPartTaggedMatch(0),
   fh2PtVsMassJetDetAll(0),
   fh2PtVsMassJetDetTagged(0),
-  fhnMassResponse(0)
+  fh2EtaPhiMatchedDet(0),
+  fh2EtaPhiMatchedPart(0),
+  fhnMassResponse(0),
+  fh1AreaPartAll(0),
+  fh1AreaDetAll(0)
 {
   // Default constructor.
 
@@ -66,7 +70,11 @@ AliAnalysisTaskJetMassResponseDet::AliAnalysisTaskJetMassResponseDet(const char
   fh2PtVsMassJetPartTaggedMatch(0),
   fh2PtVsMassJetDetAll(0),
   fh2PtVsMassJetDetTagged(0),
-  fhnMassResponse(0)
+  fh2EtaPhiMatchedDet(0),
+  fh2EtaPhiMatchedPart(0),
+  fhnMassResponse(0),
+  fh1AreaPartAll(0),
+  fh1AreaDetAll(0)
 {
   // Standard constructor.
 
@@ -97,15 +105,19 @@ void AliAnalysisTaskJetMassResponseDet::UserCreateOutputObjects()
   const Double_t minM = 0.;
   const Double_t maxM = 50.;
 
-  const Int_t nBinsMT  = 50;
-  const Double_t minMT = 0.;
-  const Double_t maxMT = 50.;
+  const Int_t nBinsConstEff  = 40;
+  const Double_t minConstEff = 0.;
+  const Double_t maxConstEff = 2.;
+
+  // const Int_t nBinsConst = 26;
+  // const Double_t minConst = -5.5;
+  // const Double_t maxConst = 20.5;
 
   //Binning for THnSparse
   const Int_t nBinsSparse0 = 5;
-  const Int_t nBins0[nBinsSparse0] = {nBinsM,nBinsM,nBinsPt,nBinsPt,nBinsMT};
-  const Double_t xmin0[nBinsSparse0]  = { minM, minM, minPt, minPt, minMT};
-  const Double_t xmax0[nBinsSparse0]  = { maxM, maxM, maxPt, maxPt, maxMT};
+  const Int_t nBins0[nBinsSparse0] = {nBinsM,nBinsM,nBinsPt,nBinsPt,nBinsConstEff};
+  const Double_t xmin0[nBinsSparse0]  = { minM, minM, minPt, minPt, minConstEff};
+  const Double_t xmax0[nBinsSparse0]  = { maxM, maxM, maxPt, maxPt, maxConstEff};
 
   //Create histograms
   TString histName = "";
@@ -141,11 +153,27 @@ void AliAnalysisTaskJetMassResponseDet::UserCreateOutputObjects()
   fh2PtVsMassJetDetTagged = new TH2F(histName.Data(),histTitle.Data(),nBinsPt,minPt,maxPt,nBinsM,minM,maxM);
   fOutput->Add(fh2PtVsMassJetDetTagged);
 
+  histName = "fh2EtaPhiMatchedDet";
+  histTitle = TString::Format("%s;#eta;#varphi",histName.Data());
+  fh2EtaPhiMatchedDet = new TH2F(histName.Data(),histTitle.Data(),100,-1.,1.,72,0.,TMath::TwoPi());
+  fOutput->Add(fh2EtaPhiMatchedDet);
+
+  histName = "fh2EtaPhiMatchedPart";
+  histTitle = TString::Format("%s;#eta;#varphi",histName.Data());
+  fh2EtaPhiMatchedPart = new TH2F(histName.Data(),histTitle.Data(),100,-1.,1.,72,0.,TMath::TwoPi());
+  fOutput->Add(fh2EtaPhiMatchedPart);
+
   histName = "fhnMassResponse";
-  histTitle = Form("%s;#it{M}_{det};#it{M}_{part};#it{p}_{T,det};#it{p}_{T,part};#it{M}_{det}^{tagged}",histName.Data());
+  histTitle = Form("%s;#it{M}_{det};#it{M}_{part};#it{p}_{T,det};#it{p}_{T,part};#it{N}_{const}^{det}/#it{N}_{const}^{part}",histName.Data());
   fhnMassResponse = new THnSparseF(histName.Data(),histTitle.Data(),nBinsSparse0,nBins0,xmin0,xmax0);
   fOutput->Add(fhnMassResponse);
 
+  fh1AreaPartAll = new TH1D("fh1AreaPartAll","fh1AreaPartAll",100.,0.,1.);
+  fOutput->Add(fh1AreaPartAll);
+
+  fh1AreaDetAll = new TH1D("fh1AreaDetAll","fh1AreaDetAll",100.,0.,1.);
+  fOutput->Add(fh1AreaDetAll);
+
 
   // =========== Switch on Sumw2 for all histos ===========
   for (Int_t i=0; i<fOutput->GetEntries(); ++i) {
@@ -167,7 +195,6 @@ void AliAnalysisTaskJetMassResponseDet::UserCreateOutputObjects()
 Bool_t AliAnalysisTaskJetMassResponseDet::Run()
 {
   // Run analysis code here, if needed. It will be executed before FillHistograms().
-
   return kTRUE;
 }
 
@@ -176,16 +203,19 @@ Bool_t AliAnalysisTaskJetMassResponseDet::FillHistograms()
 {
   // Fill histograms.
 
-  AliJetContainer *jetPart = GetJetContainer(fContainerPart);
-  AliJetContainer *jetDet = GetJetContainer(fContainerDet);
+  AliJetContainer *cPart = GetJetContainer(fContainerPart);
+  AliJetContainer *cDet = GetJetContainer(fContainerDet);
   AliEmcalJet* jPart = NULL;
   AliEmcalJet* jDet = NULL;
 
   //loop on particle level jets
-  if(jetPart) {
-    jetPart->ResetCurrentID();
-    while((jPart = jetPart->GetNextAcceptJet())) {
+  Int_t nAccPart = 0;
+  if(cPart) {
+    cPart->ResetCurrentID();
+    while((jPart = cPart->GetNextAcceptJet())) {
       fh2PtVsMassJetPartAll->Fill(jPart->Pt(),jPart->M());
+      fh1AreaPartAll->Fill(jPart->Area());
+      nAccPart++;
       jDet = jPart->ClosestJet();
       if(jDet) fh2PtVsMassJetPartMatch->Fill(jPart->Pt(),jPart->M());
       if(jPart->GetTagStatus()<1 || !jPart->GetTaggedJet())
@@ -196,25 +226,33 @@ Bool_t AliAnalysisTaskJetMassResponseDet::FillHistograms()
   }
   
   //loop on detector level jets
-  if(jetDet) {
-    jetDet->ResetCurrentID();
-    while((jDet = jetDet->GetNextAcceptJet())) {
+  Int_t nAccDet = 0;
+  if(cDet) {
+    cDet->ResetCurrentID();
+    while((jDet = cDet->GetNextAcceptJet())) {
       Double_t mjet = GetJetMass(jDet);     
       fh2PtVsMassJetDetAll->Fill(jDet->Pt(),mjet);
-       if(jDet->GetTagStatus()>=1 && jDet->GetTaggedJet())
+      fh1AreaDetAll->Fill(jDet->Area());
+      nAccDet++;
+      if(jDet->GetTagStatus()>=1 && jDet->GetTaggedJet())
         fh2PtVsMassJetDetTagged->Fill(jDet->Pt(),mjet);
        
        //fill detector response
        jPart = jDet->ClosestJet();
        if(jPart) {
-        AliEmcalJet *jDetT = jDet->GetTaggedJet();
-        Double_t mdetT = 0.;
-        if(jDetT) mdetT = jDetT->M();
-        Double_t var[5] = {GetJetMass(jDet),jPart->M(),jDet->Pt(),jPart->Pt(),mdetT};
+        fh2EtaPhiMatchedDet->Fill(jDet->Eta(),jDet->Phi());
+        fh2EtaPhiMatchedPart->Fill(jPart->Eta(),jPart->Phi());
+
+        Int_t nConstPart = jPart->GetNumberOfConstituents();
+        Int_t nConstDet = jDet->GetNumberOfConstituents();
+        Double_t eff = -1.;
+        if(nConstPart>0) eff = (Double_t)nConstDet/((Double_t)nConstPart);
+        Double_t var[5] = {GetJetMass(jDet),jPart->M(),jDet->Pt(),jPart->Pt(),eff};
         fhnMassResponse->Fill(var);
        }
     }
   }
+
   return kTRUE;
 }
 
index d9d5edf94200c6e5499c7c8c415c084af79fb67f..d14eba96035dac821cbcef9fd13c5ec21ac6364b 100644 (file)
@@ -49,13 +49,18 @@ class AliAnalysisTaskJetMassResponseDet : public AliAnalysisTaskEmcalJet {
   TH2F            *fh2PtVsMassJetPartTaggedMatch;    //!pT vs mass of tagged particle level jets matched to a detector level jet
   TH2F            *fh2PtVsMassJetDetAll;             //!pT vs mass of all detector level jets
   TH2F            *fh2PtVsMassJetDetTagged;          //!pT vs mass of tagged detector level jets
+  TH2F            *fh2EtaPhiMatchedDet;              //!eta,phi of matched detector level jets
+  TH2F            *fh2EtaPhiMatchedPart;             //!eta,phi of matched particle level jets
   THnSparse       *fhnMassResponse;                  //!response matrix
 
+  TH1D            *fh1AreaPartAll;                   //!area of all particle level jets
+  TH1D            *fh1AreaDetAll;                    //!area of all detector level jets
+
  private:
   AliAnalysisTaskJetMassResponseDet(const AliAnalysisTaskJetMassResponseDet&);            // not implemented
   AliAnalysisTaskJetMassResponseDet &operator=(const AliAnalysisTaskJetMassResponseDet&); // not implemented
 
-  ClassDef(AliAnalysisTaskJetMassResponseDet, 1)
+  ClassDef(AliAnalysisTaskJetMassResponseDet, 3)
 };
 #endif
 
index 31549f0ad23cdb7e4b7c4ea3b02ce94b36dbbefd..ce76a6bd756ce984411830fd8558c8b3cc25c8d0 100644 (file)
@@ -53,11 +53,15 @@ namespace EMCalTriggerPtAnalysis {
        //______________________________________________________________________________
        AliAnalysisTaskPtEMCalTrigger::AliAnalysisTaskPtEMCalTrigger():
                                AliAnalysisTaskSE(),
+                               fCalibratedClusters(NULL),
+                               fMatchedTracks(NULL),
                                fResults(NULL),
                                fHistos(NULL),
                                fListTrackCuts(NULL),
                                fEtaRange(),
-                               fPtRange()
+                               fPtRange(),
+                               fSwapEta(kFALSE),
+                               fNameTrackContainer()
        {
                /*
                 * Dummy constructor, initialising the values with default (NULL) values
@@ -67,11 +71,15 @@ namespace EMCalTriggerPtAnalysis {
        //______________________________________________________________________________
        AliAnalysisTaskPtEMCalTrigger::AliAnalysisTaskPtEMCalTrigger(const char *name):
                                AliAnalysisTaskSE(name),
+                               fCalibratedClusters(NULL),
+                               fMatchedTracks(NULL),
                                fResults(NULL),
                                fHistos(NULL),
                                fListTrackCuts(NULL),
                                fEtaRange(),
-                               fPtRange()
+                               fPtRange(),
+                               fSwapEta(kFALSE),
+                               fNameTrackContainer("ESDFilterTracks")
        {
                /*
                 * Main constructor, setting default values for eta and zvertex cut
@@ -173,6 +181,7 @@ namespace EMCalTriggerPtAnalysis {
                                fHistos->CreateTH2(Form("hEventHist%s", name.c_str()), Form("Event-based data for %s events; pileup rejection; z_{V} (cm)", title.c_str()), pileupaxis, zvertexBinning);
                                // Create track-based histogram
                                fHistos->CreateTHnSparse(Form("hTrackHist%s", name.c_str()), Form("Track-based data for %s events", title.c_str()), 6, trackaxes);
+                               fHistos->CreateTHnSparse(Form("hTrackInAcceptanceHist%s", name.c_str()), Form("Track-based data for %s events", title.c_str()), 6, trackaxes);
                                // Create cluster-based histogram (Uncalibrated and calibrated clusters)
                                fHistos->CreateTHnSparse(Form("hClusterCalibHist%s", name.c_str()), Form("Calib. cluster-based histogram for %s events", title.c_str()), 3, clusteraxes);
                                fHistos->CreateTHnSparse(Form("hClusterUncalibHist%s", name.c_str()), Form("Uncalib. cluster-based histogram for %s events", title.c_str()), 3, clusteraxes);
@@ -204,6 +213,10 @@ namespace EMCalTriggerPtAnalysis {
                 * @param option: Additional options
                 */
                // Common checks: Have SPD vertex and primary vertex from tracks, and both need to have at least one contributor
+               fCalibratedClusters = dynamic_cast<TClonesArray *>(fInputEvent->FindListObject("EmcCaloClusters"));
+               AliDebug(1,Form("Number of calibrated clusters: %d", fCalibratedClusters->GetEntries()));
+               fMatchedTracks = dynamic_cast<TClonesArray *>(fInputEvent->FindListObject(fNameTrackContainer.Data()));
+
                AliESDEvent *esd = static_cast<AliESDEvent *>(fInputEvent);
                const AliESDVertex *vtxTracks = esd->GetPrimaryVertex(),
                                *vtxSPD = esd->GetPrimaryVertexSPD();
@@ -294,8 +307,8 @@ namespace EMCalTriggerPtAnalysis {
 
                AliESDtrack *track(NULL);
                // Loop over all tracks (No cuts applied)
-               for(int itrk = 0; itrk < fInputEvent->GetNumberOfTracks(); ++itrk){
-                       track = dynamic_cast<AliESDtrack *>(fInputEvent->GetTrack(itrk));
+               for(int itrk = 0; itrk < fMatchedTracks->GetEntries(); ++itrk){
+                       track = dynamic_cast<AliESDtrack *>(fMatchedTracks->At(itrk));
                        if(!fEtaRange.IsInRange(track->Eta())) continue;
                        if(!fPtRange.IsInRange(track->Pt())) continue;
                        if(triggers[0]) FillTrackHist("MinBias", track, zv, isPileupEvent, 0);
@@ -315,7 +328,7 @@ namespace EMCalTriggerPtAnalysis {
                if(fListTrackCuts && fListTrackCuts->GetEntries()){
                        for(int icut = 0; icut < fListTrackCuts->GetEntries(); icut++){
                                AliESDtrackCuts *trackSelection = static_cast<AliESDtrackCuts *>(fListTrackCuts->At(icut));
-                               std::auto_ptr<TObjArray> acceptedTracks(trackSelection->GetAcceptedTracks(esd));
+                               std::auto_ptr<TObjArray> acceptedTracks(GetAcceptedTracks(fMatchedTracks,trackSelection));
                                TIter trackIter(acceptedTracks.get());
                                while((track = dynamic_cast<AliESDtrack *>(trackIter()))){
                                        if(!fEtaRange.IsInRange(track->Eta())) continue;
@@ -346,10 +359,9 @@ namespace EMCalTriggerPtAnalysis {
                        }
                }
 
-               TClonesArray *calibratedClusters = dynamic_cast<TClonesArray *>(fInputEvent->FindListObject("EmcCaloClusters"));
-               if(calibratedClusters){
-                       for(int icl = 0; icl < calibratedClusters->GetEntries(); icl++){
-                               const AliVCluster *clust = dynamic_cast<const AliVCluster *>((*calibratedClusters)[icl]);
+               if(fCalibratedClusters){
+                       for(int icl = 0; icl < fCalibratedClusters->GetEntries(); icl++){
+                               const AliVCluster *clust = dynamic_cast<const AliVCluster *>((*fCalibratedClusters)[icl]);
                                if(!clust->IsEMCAL()) continue;
                                if(triggers[0]) FillClusterHist("MinBias", clust, true, zv, isPileupEvent);
                                if(!triggerstrings.size())      // Non-EMCal-triggered
@@ -522,11 +534,33 @@ namespace EMCalTriggerPtAnalysis {
                 * @param isPileup: flag event as pileup event
                 * @param cut: id of the cut (0 = no cut)
                 */
-        double data[6] = {track->Pt(), track->Eta(), track->Phi(), vz, 0, static_cast<double>(cut)};
-               char histname[1024];
+               double etasign = fSwapEta ? -1. : 1.;
+        double data[6] = {track->Pt(), etasign * track->Eta(), track->Phi(), vz, 0, static_cast<double>(cut)};
+               char histname[1024], histnameAcc[1024];
                sprintf(histname, "hTrackHist%s", trigger);
+               sprintf(histnameAcc, "hTrackInAcceptanceHist%s", trigger);
+               Bool_t isEMCAL = kFALSE;
+               if(track->IsEMCAL()){
+                       // Check if the cluster is matched to only one track
+                       AliVCluster *emcclust(NULL);
+                       AliDebug(2, Form("cluster id: %d\n", track->GetEMCALcluster()));
+                       if(fCalibratedClusters) {
+                               AliDebug(2, "Using calibrated clusters");
+                               emcclust = dynamic_cast<AliVCluster *>(fCalibratedClusters->At(track->GetEMCALcluster()));
+                       } else {
+                               AliDebug(2, "Using uncalibrated clusters");
+                               emcclust = fInputEvent->GetCaloCluster(track->GetEMCALcluster());
+                       }
+                       if(!emcclust) AliError("Null pointer to EMCal cluster");
+                       if(emcclust && emcclust->GetNTracksMatched() <= 1){
+                               isEMCAL = kTRUE;
+                       }
+               }
                try{
                        fHistos->FillTHnSparse(histname, data);
+                       if(isEMCAL){
+                               fHistos->FillTHnSparse(histnameAcc, data);
+                       }
                } catch (HistoContainerContentException &e){
                        std::stringstream errormessage;
                        errormessage << "Filling of histogram failed: " << e.what();
@@ -536,6 +570,9 @@ namespace EMCalTriggerPtAnalysis {
                        data[4] = 1;
                        try{
                                fHistos->FillTHnSparse(histname, data);
+                               if(isEMCAL){
+                                       fHistos->FillTHnSparse(histnameAcc, data);
+                               }
                        } catch (HistoContainerContentException &e){
                                std::stringstream errormessage;
                                errormessage << "Filling of histogram failed: " << e.what();
@@ -577,4 +614,14 @@ namespace EMCalTriggerPtAnalysis {
                }
        }
 
+       TObjArray *AliAnalysisTaskPtEMCalTrigger::GetAcceptedTracks(const TClonesArray * const inputlist, AliESDtrackCuts *const cuts){
+               TObjArray *acceptedTracks = new TObjArray;
+               TIter trackIter(inputlist);
+               AliESDtrack *track(NULL);
+               while((track = dynamic_cast<AliESDtrack *>(trackIter()))){
+                       if(cuts->AcceptTrack(track)) acceptedTracks->Add(track);
+               }
+               return acceptedTracks;
+       }
 }
+
index 6582d6d44f46c7a04e8464a5ed34b7c8a3d1d434..5ee48498b220c4834fb569adb3f3bf3b3532c3bf 100644 (file)
@@ -8,11 +8,13 @@
 #include "AliAnalysisTaskSE.h"
 #include "AliCutValueRange.h"
 #include "AliESDtrackCuts.h"
+#include <TClonesArray.h>
 #include <TList.h>
 
 class TArrayD;
 class Axis;
 class AliESDtrack;
+class AliVTrack;
 
 namespace EMCalTriggerPtAnalysis {
 class AliEMCalHistoContainer;
@@ -36,6 +38,8 @@ public:
        void AddTrackCuts(AliESDtrackCuts *trackCuts) { fListTrackCuts->Add(trackCuts); }
        void SetEtaRange(double etamin, double etamax) { fEtaRange.SetLimits(etamin, etamax); }
        void SetPtRange(double ptmin, double ptmax) { fPtRange.SetLimits(ptmin, ptmax); }
+       void SetTrackContainerName(const char *name) { fNameTrackContainer = name; }
+       void SetSwapEta() { fSwapEta = kTRUE; }
 
 private:
        AliAnalysisTaskPtEMCalTrigger(const AliAnalysisTaskPtEMCalTrigger &);
@@ -48,7 +52,10 @@ private:
        void FillEventHist(const char *trigger, double vz, bool isPileup);
        void FillTrackHist(const char *trigger, const AliESDtrack *track, double vz, bool isPileup, int cut);
        void FillClusterHist(const char *trigger, const AliVCluster *clust, bool isCalibrated, double vz, bool isPileup);
+       TObjArray *GetAcceptedTracks(const TClonesArray * const inputlist, AliESDtrackCuts *const cuts);
 
+       TClonesArray                              *fCalibratedClusters;   //! container of recalibrated EMCal clusters
+       TClonesArray                              *fMatchedTracks;                //! container of tracks used for track matching
        TList                         *fResults;              //! container for results
        AliEMCalHistoContainer        *fHistos;               //! Histogram container for the task
        TList                                             *fListTrackCuts;                // List of track cuts
@@ -56,6 +63,8 @@ private:
        // Cuts
        AliCutValueRange<double>      fEtaRange;              // Eta Selection Range
        AliCutValueRange<double>          fPtRange;                               // Pt Selection Range
+       Bool_t                                            fSwapEta;                               // Allow swapping of the eta sign in asymmetric collision systems
+       TString                                           fNameTrackContainer;    // Name of the Track container
 
        ClassDef(AliAnalysisTaskPtEMCalTrigger, 1);           // Analysis of EMCal triggered events
 };
index 4ea19fbe28d15e8afe77413ffa4a36c8fd2681f7..85fec7cd2fa4d816915e6d595a11f03b5a8a4b5d 100644 (file)
@@ -23,6 +23,7 @@ AliAnalysisTaskRhoMass::AliAnalysisTaskRhoMass() :
   AliAnalysisTaskRhoMassBase("AliAnalysisTaskRhoMass"),
   fNExclLeadJets(0),
   fJetRhoMassType(kMd),
+  fPionMassClusters(kFALSE),
   fHistMdAreavsCent(0)
 {
   // Constructor.
@@ -33,6 +34,7 @@ AliAnalysisTaskRhoMass::AliAnalysisTaskRhoMass(const char *name, Bool_t histo) :
   AliAnalysisTaskRhoMassBase(name, histo),
   fNExclLeadJets(0),
   fJetRhoMassType(kMd),
+  fPionMassClusters(kFALSE),
   fHistMdAreavsCent(0)
 {
   // Constructor.
@@ -190,19 +192,43 @@ Double_t AliAnalysisTaskRhoMass::GetMd(AliEmcalJet *jet) {
   Double_t py = 0.;
   Double_t pz = 0.;
   Double_t E = 0.;
-  AliVParticle *vp;
-  for(Int_t icc=0; icc<jet->GetNumberOfTracks(); icc++) {
-    vp = static_cast<AliVParticle*>(jet->TrackAt(icc, fTracks));
-    if(!vp) continue;
-    if(fJetRhoMassType==kMd) sum += TMath::Sqrt(vp->M()*vp->M() + vp->Pt()*vp->Pt()) - vp->Pt(); //sqrt(E^2-P^2+pt^2)=sqrt(E^2-pz^2)
-    else if(fJetRhoMassType==kMdP) sum += TMath::Sqrt(vp->M()*vp->M() + vp->P()*vp->P()) - vp->P();
-    else if(fJetRhoMassType==kMd4) {
-      px+=vp->Px();
-      py+=vp->Py();
-      pz+=vp->Pz();
-      E+=vp->E();
+
+  if (fTracks) {
+    AliVParticle *vp;
+    for(Int_t icc=0; icc<jet->GetNumberOfTracks(); icc++) {
+      vp = static_cast<AliVParticle*>(jet->TrackAt(icc, fTracks));
+      if(!vp) continue;
+      if(fJetRhoMassType==kMd) sum += TMath::Sqrt(vp->M()*vp->M() + vp->Pt()*vp->Pt()) - vp->Pt(); //sqrt(E^2-P^2+pt^2)=sqrt(E^2-pz^2)
+      else if(fJetRhoMassType==kMdP) sum += TMath::Sqrt(vp->M()*vp->M() + vp->P()*vp->P()) - vp->P();
+      else if(fJetRhoMassType==kMd4) {
+       px+=vp->Px();
+       py+=vp->Py();
+       pz+=vp->Pz();
+       E+=vp->E();
+      }
     }
   }
+
+  if (fCaloClusters) {
+    AliVCluster *vp;
+    for(Int_t icc=0; icc<jet->GetNumberOfClusters(); icc++) {
+      vp = static_cast<AliVCluster*>(jet->ClusterAt(icc, fCaloClusters));
+      if(!vp) continue;
+      TLorentzVector nPart;
+      vp->GetMomentum(nPart, fVertex);
+      Double_t m = 0.;
+      if(fPionMassClusters) m = 0.13957;
+      if(fJetRhoMassType==kMd) sum += TMath::Sqrt(m*m + nPart.Pt()*nPart.Pt()) - nPart.Pt();
+      else if(fJetRhoMassType==kMdP) sum += TMath::Sqrt(nPart.M()*nPart.M() + nPart.P()*nPart.P()) - nPart.P();
+      else if(fJetRhoMassType==kMd4) {
+       px+=nPart.Px();
+       py+=nPart.Py();
+       pz+=nPart.Pz();
+       E+=nPart.E();
+      }
+    }
+  }
+
   if(fJetRhoMassType==kMd4) {
     Double_t pt = TMath::Sqrt(px*px + py*py);
     Double_t m2 = E*E - pt*pt - pz*pz;
index 8db4a1336932aa71db669b1edd89ae642126142d..754be4600b4f5c4a6af823762ad8e1f44af03162 100644 (file)
@@ -22,6 +22,7 @@ class AliAnalysisTaskRhoMass : public AliAnalysisTaskRhoMassBase {
 
   void             SetExcludeLeadJets(UInt_t n)     { fNExclLeadJets  = n   ; }
   void             SetRhoMassType(JetRhoMassType t) { fJetRhoMassType = t   ; }
+  void             SetPionMassForClusters(Bool_t b) { fPionMassClusters = b ; }
 
  protected:
   Bool_t           Run();
@@ -32,12 +33,13 @@ class AliAnalysisTaskRhoMass : public AliAnalysisTaskRhoMassBase {
 
   UInt_t           fNExclLeadJets;                 // number of leading jets to be excluded from the median calculation
   JetRhoMassType   fJetRhoMassType;                // method for rho_m calculation
+  Bool_t           fPionMassClusters;              // assume pion mass for clusters
 
   TH2F            *fHistMdAreavsCent;              //! Md/Area vs cent for all kt clusters
 
   AliAnalysisTaskRhoMass(const AliAnalysisTaskRhoMass&);             // not implemented
   AliAnalysisTaskRhoMass& operator=(const AliAnalysisTaskRhoMass&);  // not implemented
   
-  ClassDef(AliAnalysisTaskRhoMass, 1); // Rho_m task
+  ClassDef(AliAnalysisTaskRhoMass, 2); // Rho_m task
 };
 #endif
index a4b0b45e8e1ea34e64ccac47c1f838af80da84cd..0fe517af0cb691f356ee403a220b30c3c20c54c8 100644 (file)
@@ -13,6 +13,8 @@
 #include "AliLog.h"
 #include "AliRhoParameter.h"
 #include "AliEmcalJet.h"
+#include "AliParticleContainer.h"
+#include "AliClusterContainer.h"
 
 #include "AliAnalysisTaskRhoMassBase.h"
 
@@ -204,10 +206,10 @@ Bool_t AliAnalysisTaskRhoMassBase::FillHistograms()
   Int_t Ntracks   = 0;
   Int_t Nclusters = 0;
 
-  if (fTracks)
-    Ntracks = fTracks->GetEntries();
-  if (fCaloClusters)
-    Nclusters = fCaloClusters->GetEntries();
+  if (GetParticleContainer(0))
+    Ntracks = GetParticleContainer(0)->GetNAcceptedParticles();
+  if (GetClusterContainer(0))
+    Nclusters = GetClusterContainer(0)->GetNAcceptedClusters();
 
   if (fJets) {
     Int_t    Njets         = fJets->GetEntries();
diff --git a/PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskRhoMassScale.cxx b/PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskRhoMassScale.cxx
new file mode 100644 (file)
index 0000000..c91d784
--- /dev/null
@@ -0,0 +1,227 @@
+//
+// rho mass scale task
+// task to estimate scale factor for rho_m
+//
+// Author: M.Verweij
+
+#include <TClonesArray.h>
+#include <TH1F.h>
+#include <TH2F.h>
+#include <TH3F.h>
+#include <THnSparse.h>
+#include <TList.h>
+#include <TLorentzVector.h>
+#include <TProfile.h>
+#include <TChain.h>
+#include <TSystem.h>
+#include <TFile.h>
+#include <TKey.h>
+
+#include "AliAnalysisManager.h"
+// #include "AliAODMCHeader.h"
+// #include "AliMCEvent.h"
+// #include "AliGenPythiaEventHeader.h"
+// #include "AliAODEvent.h"
+#include "AliLog.h"
+#include "AliVCluster.h"
+#include "AliVTrack.h"
+#include "AliEmcalJet.h"
+#include "AliRhoParameter.h"
+#include "AliEmcalParticle.h"
+#include "AliJetContainer.h"
+#include "AliParticleContainer.h"
+
+#include "AliAnalysisTaskRhoMassScale.h"
+
+ClassImp(AliAnalysisTaskRhoMassScale)
+
+//________________________________________________________________________
+AliAnalysisTaskRhoMassScale::AliAnalysisTaskRhoMassScale() : 
+  AliAnalysisTaskEmcalJet("AliAnalysisTaskRhoMassScale", kTRUE),
+  fContainerNeutral(0),
+  fContainerCharged(1),
+  fRhoMNeutralName(""),
+  fRhoMChargedEmcalName(""),
+  fRhoMCharged2xEmcalName(""),
+  fRhoMNeutral(0),
+  fRhoMChargedEmcal(0),
+  fRhoMCharged2xEmcal(0),
+  fHistScaleEmcalvsCent(0),
+  fHistScale2EmcalvsCent(0),
+  fHistDeltaScale2EmcalvsCent(0),
+  fHistScaleEmcalvsMult(0),
+  fHistScale2EmcalvsMult(0),
+  fHistDeltaScale2EmcalvsMult(0)
+{
+  // Default constructor.
+
+  SetMakeGeneralHistograms(kTRUE);
+}
+
+//________________________________________________________________________
+AliAnalysisTaskRhoMassScale::AliAnalysisTaskRhoMassScale(const char *name) : 
+  AliAnalysisTaskEmcalJet(name, kTRUE),  
+  fContainerNeutral(0),
+  fContainerCharged(1),
+  fRhoMNeutralName(""),
+  fRhoMChargedEmcalName(""),
+  fRhoMCharged2xEmcalName(""),
+  fRhoMNeutral(0),
+  fRhoMChargedEmcal(0),
+  fRhoMCharged2xEmcal(0),
+  fHistScaleEmcalvsCent(0),
+  fHistScale2EmcalvsCent(0),
+  fHistDeltaScale2EmcalvsCent(0),
+  fHistScaleEmcalvsMult(0),
+  fHistScale2EmcalvsMult(0),
+  fHistDeltaScale2EmcalvsMult(0)
+{
+  // Standard constructor.
+
+  SetMakeGeneralHistograms(kTRUE);
+}
+
+//________________________________________________________________________
+AliAnalysisTaskRhoMassScale::~AliAnalysisTaskRhoMassScale()
+{
+  // Destructor.
+}
+
+//________________________________________________________________________
+void AliAnalysisTaskRhoMassScale::UserCreateOutputObjects()
+{
+  // Create user output.
+
+  AliAnalysisTaskEmcalJet::UserCreateOutputObjects();
+
+  Bool_t oldStatus = TH1::AddDirectoryStatus();
+  TH1::AddDirectory(kFALSE);
+
+  //Create histograms
+  TString histName = "";
+  TString histTitle = "";
+  histName = "fHistScaleEmcalvsCent";
+  histTitle = TString::Format("%s;Centrality;s_{EMC}",histName.Data());
+  fHistScaleEmcalvsCent= new TH2F(histName.Data(),histTitle.Data(), 101, -1, 100, 500, 0, 5);
+  fOutput->Add(fHistScaleEmcalvsCent);
+
+  histName = "fHistScale2EmcalvsCent";
+  histTitle = TString::Format("%s;Centrality;s_{2 #times EMC}",histName.Data());
+  fHistScale2EmcalvsCent = new TH2F(histName.Data(),histTitle.Data(), 101, -1, 100, 500, 0, 5);
+  fOutput->Add(fHistScale2EmcalvsCent);
+
+  histName = "fHistDeltaScale2EmcalvsCent";
+  histTitle = TString::Format("%s;Centrality;s_{2 #times EMC}-s_{EMC}",histName.Data());
+  fHistDeltaScale2EmcalvsCent = new TH2F(histName.Data(),histTitle.Data(), 101, -1, 100, 500, -2.5, 2.5);
+  fOutput->Add(fHistDeltaScale2EmcalvsCent);
+
+  histName = "fHistScaleEmcalvsMult";
+  histTitle = TString::Format("%s;#it{N}_{track};s_{EMC}",histName.Data());
+  fHistScaleEmcalvsMult= new TH2F(histName.Data(),histTitle.Data(), 800, 0, 4000, 500, 0, 5);
+  fOutput->Add(fHistScaleEmcalvsMult);
+
+  histName = "fHistScale2EmcalvsMult";
+  histTitle = TString::Format("%s;#it{N}_{track};s_{2 #times EMC}",histName.Data());
+  fHistScale2EmcalvsMult = new TH2F(histName.Data(),histTitle.Data(), 800, 0, 4000, 500, 0, 5);
+  fOutput->Add(fHistScale2EmcalvsMult);
+
+  histName = "fHistDeltaScale2EmcalvsMult";
+  histTitle = TString::Format("%s;#it{N}_{track};s_{2 #times EMC}-s_{EMC}",histName.Data());
+  fHistDeltaScale2EmcalvsMult = new TH2F(histName.Data(),histTitle.Data(), 800, 0, 4000, 500, -2.5, 2.5);
+  fOutput->Add(fHistDeltaScale2EmcalvsMult);
+  // =========== Switch on Sumw2 for all histos ===========
+  for (Int_t i=0; i<fOutput->GetEntries(); ++i) {
+    TH1 *h1 = dynamic_cast<TH1*>(fOutput->At(i));
+    if (h1){
+      h1->Sumw2();
+      continue;
+    }
+    THnSparse *hn = dynamic_cast<THnSparse*>(fOutput->At(i));
+    if(hn)hn->Sumw2();
+  }
+
+  TH1::AddDirectory(oldStatus);
+
+  PostData(1, fOutput); // Post data for ALL output slots > 0 here.
+}
+
+//________________________________________________________________________
+Bool_t AliAnalysisTaskRhoMassScale::Run()
+{
+  // Run analysis code here, if needed. It will be executed before FillHistograms().
+  return kTRUE;
+}
+
+//________________________________________________________________________
+Bool_t AliAnalysisTaskRhoMassScale::FillHistograms()
+{
+  // Fill histograms.
+
+  Double_t rhomNe        = fRhoMNeutral->GetVal();
+  Double_t rhomChEmcal   = fRhoMChargedEmcal->GetVal();
+  Double_t rhomCh2xEmcal = fRhoMCharged2xEmcal->GetVal();
+
+  Double_t scale = -1.; Double_t scale2 = -1.;
+  if(rhomChEmcal>0.)   scale = (rhomNe+rhomChEmcal)/rhomChEmcal;
+  if(rhomCh2xEmcal>0.) scale2 = (rhomNe+rhomChEmcal)/rhomCh2xEmcal;
+
+  fHistScaleEmcalvsCent->Fill(fCent,scale);
+  fHistScale2EmcalvsCent->Fill(fCent,scale2);
+  fHistDeltaScale2EmcalvsCent->Fill(fCent,scale2-scale);
+
+  Int_t mult = -1;
+  if(GetParticleContainer(0))
+    mult = GetParticleContainer(0)->GetNAcceptedParticles();
+
+  fHistScaleEmcalvsMult->Fill(mult,scale);
+  fHistScale2EmcalvsMult->Fill(mult,scale2);
+  fHistDeltaScale2EmcalvsMult->Fill(mult,scale2-scale);
+
+  return kTRUE;
+}
+
+//________________________________________________________________________
+Bool_t AliAnalysisTaskRhoMassScale::RetrieveEventObjects() {
+  //
+  // retrieve event objects
+  if (!AliAnalysisTaskEmcalJet::RetrieveEventObjects())
+    return kFALSE;
+
+  if (!fRhoMNeutralName.IsNull() && !fRhoMNeutral) { // get rho_m from the event
+    fRhoMNeutral = dynamic_cast<AliRhoParameter*>(InputEvent()->FindListObject(fRhoMNeutralName));
+    if (!fRhoMNeutral) {
+      AliError(Form("%s: Could not retrieve rho %s!", GetName(), fRhoMNeutralName.Data()));
+      fInitialized = kFALSE;
+      return kFALSE;
+    }
+  }
+
+  if (!fRhoMChargedEmcalName.IsNull() && !fRhoMChargedEmcal) { // get rho_m from the event
+    fRhoMChargedEmcal = dynamic_cast<AliRhoParameter*>(InputEvent()->FindListObject(fRhoMChargedEmcalName));
+    if (!fRhoMChargedEmcal) {
+      AliError(Form("%s: Could not retrieve rho %s!", GetName(), fRhoMChargedEmcalName.Data()));
+      fInitialized = kFALSE;
+      return kFALSE;
+    }
+  }
+
+  if (!fRhoMCharged2xEmcalName.IsNull() && !fRhoMCharged2xEmcal) { // get rho_m from the event
+    fRhoMCharged2xEmcal = dynamic_cast<AliRhoParameter*>(InputEvent()->FindListObject(fRhoMCharged2xEmcalName));
+    if (!fRhoMCharged2xEmcal) {
+      AliError(Form("%s: Could not retrieve rho %s!", GetName(), fRhoMCharged2xEmcalName.Data()));
+      fInitialized = kFALSE;
+      return kFALSE;
+    }
+  }
+
+  return kTRUE;
+}
+
+//_______________________________________________________________________
+void AliAnalysisTaskRhoMassScale::Terminate(Option_t *) 
+{
+  // Called once at the end of the analysis.
+}
+
diff --git a/PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskRhoMassScale.h b/PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskRhoMassScale.h
new file mode 100644 (file)
index 0000000..38c9694
--- /dev/null
@@ -0,0 +1,63 @@
+#ifndef ALIANALYSISTASKRHOMASSSCALE_H
+#define ALIANALYSISTASKRHOMASSSCALE_H
+
+class TH1;
+class TH2;
+class TH3;
+class TH3F;
+class THnSparse;
+class TClonesArray;
+class TArrayI;
+class AliAnalysisManager;
+class AliJetContainer;
+class AliRhoParameter;
+
+#include "AliAnalysisTaskEmcalJet.h"
+
+class AliAnalysisTaskRhoMassScale : public AliAnalysisTaskEmcalJet {
+ public:
+  AliAnalysisTaskRhoMassScale();
+  AliAnalysisTaskRhoMassScale(const char *name);
+  virtual ~AliAnalysisTaskRhoMassScale();
+
+  void                                UserCreateOutputObjects();
+  void                                Terminate(Option_t *option);
+
+  //Setters
+  void SetJetContainerNeutral(Int_t c)                { fContainerNeutral     = c   ; }
+  void SetJetContainerCharged(Int_t c)                { fContainerCharged     = c   ; }
+
+  void SetRhoMNeutralName(const char *n)              { fRhoMNeutralName = n ; }
+  void SetRhoMChargedEmcalName(const char *n)         { fRhoMChargedEmcalName = n ; }
+  void SetRhoMCharged2xEmcalName(const char *n)       { fRhoMCharged2xEmcalName = n ; }
+
+ protected:
+  Bool_t                              RetrieveEventObjects();
+  Bool_t                              Run();
+  Bool_t                              FillHistograms();
+
+ private:
+  Int_t                               fContainerNeutral;              // particle level jets
+  Int_t                               fContainerCharged;              // detector level jets
+  TString                             fRhoMNeutralName;               // Name of neutral rho mass object
+  TString                             fRhoMChargedEmcalName;          // Name of charged rho mass object in EMCal acceptance
+  TString                             fRhoMCharged2xEmcalName;        // Name of charged rho mass object in two times EMCal acceptance
+  AliRhoParameter                    *fRhoMNeutral;                   //!neutral rho_m
+  AliRhoParameter                    *fRhoMChargedEmcal;              //!charged rho_m in EMCal acceptance
+  AliRhoParameter                    *fRhoMCharged2xEmcal;            //!charged rho_m in two times EMCal acceptance
+
+  TH2                                *fHistScaleEmcalvsCent;          //!scale factor 1xEmcal vs centrality
+  TH2                                *fHistScale2EmcalvsCent;         //!scale factor 2xEmcal vs centrality
+  TH2                                *fHistDeltaScale2EmcalvsCent;    //!difference between scale factors vs centrality
+
+  TH2                                *fHistScaleEmcalvsMult;          //!scale factor 1xEmcal vs track multiplicity
+  TH2                                *fHistScale2EmcalvsMult;         //!scale factor 2xEmcal vs track multiplicity
+  TH2                                *fHistDeltaScale2EmcalvsMult;    //!difference between scale factors vs track multiplicity
+
+  AliAnalysisTaskRhoMassScale(const AliAnalysisTaskRhoMassScale&);            // not implemented
+  AliAnalysisTaskRhoMassScale &operator=(const AliAnalysisTaskRhoMassScale&); // not implemented
+
+  ClassDef(AliAnalysisTaskRhoMassScale, 1)
+};
+#endif
+
diff --git a/PWGJE/EMCALJetTasks/macros/AddTaskFastSimulation.C b/PWGJE/EMCALJetTasks/macros/AddTaskFastSimulation.C
new file mode 100644 (file)
index 0000000..5979353
--- /dev/null
@@ -0,0 +1,52 @@
+// $Id$
+
+AliJetFastSimulation* AddTaskFastSimulation(
+                                           const char     *tracksName1   = "Tracks",
+                                           const char     *tracksName2   = "Tracks2",
+                                           const char     *taskName      = "JetFastSimulation"
+                                           )
+{  
+  // Get the pointer to the existing analysis manager via the static access method.
+  //==============================================================================
+  AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
+  if (!mgr)
+  {
+    ::Error("AddTaskMergeBranches", "No analysis manager to connect to.");
+    return NULL;
+  }  
+  
+  // Check the analysis type using the event handlers connected to the analysis manager.
+  //==============================================================================
+  if (!mgr->GetInputEventHandler())
+  {
+    ::Error("AddTaskMergeBranches", "This task requires an input event handler");
+    return NULL;
+  }
+  
+  //-------------------------------------------------------
+  // Init the task and do settings
+  //-------------------------------------------------------
+
+  AliJetFastSimulation *jetFastSim = new AliJetFastSimulation(taskName);
+  jetFastSim->SetTracksName(tracksName1);
+  jetFastSim->SetTracksOutName(tracksName2);
+
+  //-------------------------------------------------------
+  // Final settings, pass to manager and set the containers
+  //-------------------------------------------------------
+  mgr->AddTask(jetFastSim);
+    
+  // Create containers for input/output
+  mgr->ConnectInput (jetFastSim, 0, mgr->GetCommonInputContainer() );
+
+  TString contName = taskName;
+  contName += "_histos";
+  TString outputfile = Form("%s",AliAnalysisManager::GetCommonFileName());
+  AliAnalysisDataContainer *outc = mgr->CreateContainer(contName.Data(),
+                                                       TList::Class(),
+                                                       AliAnalysisManager::kOutputContainer,
+                                                       outputfile);
+  mgr->ConnectOutput(jetFastSim, 1, outc);
+
+  return jetFastSim;
+}
index 13f6cd0b87d4c3d1a73db1047bcb7945ac018552..6c2bd0fe3bf1180978c4a9d762b0289e32da930e 100644 (file)
@@ -19,7 +19,7 @@ AliJetEmbeddingFromPYTHIATask* AddTaskJetEmbeddingFromPYTHIA(
   Bool_t          includeNoITS  = kFALSE,
   Double_t        minCent       = -1,
   Double_t        maxCent       = -1,
-  UInt_t          mask          = AliVEvent::kAny,
+  UInt_t          mask          = 0,
   Double_t        minJetPt      = 0,
   const Bool_t    copyArray     = kFALSE,  
   const Bool_t    makeQA        = kFALSE,
index 92ea7bf94ced7011a3deb6b2c2f9e35d580d9bbc..0b2bc8482c9b86c7b7f4170121a3ad29b9fb3326 100644 (file)
@@ -30,14 +30,14 @@ AliAnalysisTaskJetMassResponseDet* AddTaskJetMassResponseDet(const char * njetsP
   AliAnalysisTaskJetMassResponseDet *task = new AliAnalysisTaskJetMassResponseDet(wagonName.Data());
 
   task->SetNCentBins(1);
-  task->SetVzRange(-10.,10.);
+  //task->SetVzRange(-10.,10.);
 
   task->SetJetContainerPart(0);
   task->SetJetContainerDet(1);
 
   AliJetContainer *jetContPart = task->AddJetContainer(njetsPart,strType,R);
   if(jetContPart) {
-    jetContPart->SetPercAreaCut(0.6);
+    // jetContPart->SetPercAreaCut(0.6);
   }
 
   AliJetContainer *jetContDet = task->AddJetContainer(njetsDet,strType,R);
diff --git a/PWGJE/EMCALJetTasks/macros/AddTaskModelCopyTracks.C b/PWGJE/EMCALJetTasks/macros/AddTaskModelCopyTracks.C
new file mode 100644 (file)
index 0000000..0ed6b9a
--- /dev/null
@@ -0,0 +1,54 @@
+// $Id$
+
+AliJetModelCopyTracks* AddTaskModelCopyTracks(
+                                            const char     *tracksName1   = "Tracks",
+                                            const char     *tracksName2   = "Tracks2",
+                                            Int_t           massType      = AliJetModelCopyTracks::kMassless,
+                                            const char     *taskName      = "JetModelCopyTracks"
+                                           )
+{  
+  // Get the pointer to the existing analysis manager via the static access method.
+  //==============================================================================
+  AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
+  if (!mgr)
+  {
+    ::Error("AddTaskModelCopyTracks", "No analysis manager to connect to.");
+    return NULL;
+  }  
+  
+  // Check the analysis type using the event handlers connected to the analysis manager.
+  //==============================================================================
+  if (!mgr->GetInputEventHandler())
+  {
+    ::Error("AddTaskModelCopyTracks", "This task requires an input event handler");
+    return NULL;
+  }
+  
+  //-------------------------------------------------------
+  // Init the task and do settings
+  //-------------------------------------------------------
+
+  AliJetModelCopyTracks *copyTask = new AliJetModelCopyTracks(taskName);
+  copyTask->SetTracksName(tracksName1);
+  copyTask->SetTracksOutName(tracksName2);
+  copyTask->SetParticleMassType(massType);
+
+  //-------------------------------------------------------
+  // Final settings, pass to manager and set the containers
+  //-------------------------------------------------------
+  mgr->AddTask(copyTask);
+    
+  // Create containers for input/output
+  mgr->ConnectInput (copyTask, 0, mgr->GetCommonInputContainer() );
+
+  TString contName = taskName;
+  contName += "_histos";
+  TString outputfile = Form("%s",AliAnalysisManager::GetCommonFileName());
+  AliAnalysisDataContainer *outc = mgr->CreateContainer(contName.Data(),
+                                                       TList::Class(),
+                                                       AliAnalysisManager::kOutputContainer,
+                                                       outputfile);
+  mgr->ConnectOutput(copyTask, 1, outc);
+
+  return copyTask;
+}
index ff294d90b80112d9d0aaa05771b7360493504422..209148bf2ff4fb66c3bd2afb8dc9a36b4ca3896a 100644 (file)
@@ -6,7 +6,7 @@
 #include <TString.h>
 #endif
 
-AliAnalysisTask* AddTaskPtEMCalTrigger(){
+AliAnalysisTask* AddTaskPtEMCalTrigger(const char *period ="LHC13d"){
         AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
          
         if (!mgr) {
@@ -22,6 +22,7 @@ AliAnalysisTask* AddTaskPtEMCalTrigger(){
         EMCalTriggerPtAnalysis::AliAnalysisTaskPtEMCalTrigger *pttriggertask = new EMCalTriggerPtAnalysis::AliAnalysisTaskPtEMCalTrigger("ptemcaltriggertask");
         //pttriggertask->SelectCollisionCandidates(AliVEvent::kINT7 | AliVEvent::kEMC7);                          // Select both INT7 or EMC7 triggered events
         pttriggertask->SelectCollisionCandidates(AliVEvent::kAny);
+        if(!TString(period).CompareTo("LHC13f")) pttriggertask->SetSwapEta();
         mgr->AddTask(pttriggertask);
         pttriggertask->SetPtRange(2., 100.);
 
diff --git a/PWGJE/EMCALJetTasks/macros/AddTaskRhoMassScale.C b/PWGJE/EMCALJetTasks/macros/AddTaskRhoMassScale.C
new file mode 100644 (file)
index 0000000..757afab
--- /dev/null
@@ -0,0 +1,75 @@
+AliAnalysisTaskRhoMassScale* AddTaskRhoMassScale(const char *rhomNeutral,
+                                                const char *rhomChEmcal,
+                                                const char *rhomCh2xEmcal,
+                                                const char *ntracks,
+                                                const Double_t kMinTrackPt = 0.15,
+                                                Int_t       pSel        = AliVEvent::kAny,
+                                                const char * njetsNeutral  = "",
+                                                const char * njetsCharged   = "",
+                                                const Double_t R        = 0.4,
+                                                const char *type        = "EMCAL",                                          
+                                                TString     tag         = "") {
+
+  AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
+  if (!mgr)
+    {
+      Error("AddTaskRhoMassScale","No analysis manager found.");
+      return 0;
+    }
+
+  // Check the analysis type using the event handlers connected to the analysis manager.
+  //==============================================================================
+  if (!mgr->GetInputEventHandler())
+    {
+      ::Error("AddTaskRhoMassScale", "This task requires an input event handler");
+      return NULL;
+    }
+
+  TString wagonName = Form("RhoMassScale%s",tag.Data());
+  TString strType(type);
+
+  //Configure jet mass detector response task
+  AliAnalysisTaskRhoMassScale *task = new AliAnalysisTaskRhoMassScale(wagonName.Data());
+
+  task->SetNCentBins(1);
+  //task->SetVzRange(-10.,10.);
+
+  task->SelectCollisionCandidates(pSel);
+  task->SetUseAliAnaUtils(kFALSE);
+
+  task->SetRhoMNeutralName(rhomNeutral);
+  task->SetRhoMChargedEmcalName(rhomChEmcal);
+  task->SetRhoMCharged2xEmcalName(rhomCh2xEmcal);
+
+  AliParticleContainer *pcont = task->AddParticleContainer(ntracks);
+  pcont->SetParticlePtCut(kMinTrackPt);
+  pcont->SetParticleEtaLimits(-0.9,0.9);
+  pcont->SetCharge(1);
+
+  task->SetJetContainerNeutral(0);
+  // task->SetJetContainerCharged(1);
+
+  AliJetContainer *jetContNeutral = task->AddJetContainer(njetsNeutral,strType,R);
+  if(jetContNeutral) {
+    jetContNeutral->SetPercAreaCut(0.6);
+  }
+
+  // AliJetContainer *jetContCharged = task->AddJetContainer(njetsCharged,strType,R);
+  // if(jetContCharged) {
+  //   jetContCharged->SetPercAreaCut(0.6);
+  // }
+
+  mgr->AddTask(task);
+
+  //Connnect input
+  mgr->ConnectInput (task, 0, mgr->GetCommonInputContainer() );
+
+  //Connect output
+  TString contName(wagonName);
+  TString outputfile = Form("%s",AliAnalysisManager::GetCommonFileName());
+  AliAnalysisDataContainer *coutput1 = mgr->CreateContainer(contName.Data(), TList::Class(),AliAnalysisManager::kOutputContainer,outputfile);
+  mgr->ConnectOutput(task,1,coutput1);
+
+  return task;  
+}
+
index 464e49afeb1e0e88722213d04893583c8be935b1..3e43dcd9b25daaf6e8997e549e98cf0e9655014d 100644 (file)
@@ -32,10 +32,13 @@ AliAnalysisTaskScale* AddTaskScale(
 
   TString name(Form("%s_%s_%s_%d_%d", taskname, nTracks, nClusters, TMath::FloorNint(trackptcut*1000), TMath::FloorNint(clusptcut*1000)));
   AliAnalysisTaskScale *scaletask = new AliAnalysisTaskScale(name);
-  scaletask->SetTracksName(nTracks);
-  scaletask->SetClusName(nClusters);
-  scaletask->SetTrackPtCut(trackptcut);
-  scaletask->SetClusPtCut(clusptcut);
+  AliParticleContainer *pcont = scaletask->AddParticleContainer(nTracks);
+  if(pcont) {
+    pcont->SetParticlePtCut(trackptcut);
+    pcont->SetParticleEtaLimits(-0.7,0.7); // only accept tracks in the EMCal eta range
+  }
+  AliClusterContainer  *ccont = scaletask->AddClusterContainer(nClusters);
+  if(ccont) ccont->SetClusPtCut(clusptcut);
 
   //-------------------------------------------------------
   // Final settings, pass to manager and set the containers
index 0397dea971540c362350802cacccfd990e6c2a42..cb987bf00cdbf9cc18ed069d06a607a9a3754a5b 100644 (file)
@@ -20,7 +20,9 @@
 #pragma link C++ class AliJetEmbeddingTask+;
 #pragma link C++ class AliJetEmbeddingFromGenTask+;
 #pragma link C++ class AliJetEmbeddingFromPYTHIATask+;
+#pragma link C++ class AliJetFastSimulation+;
 #pragma link C++ class AliJetModelBaseTask+;
+#pragma link C++ class AliJetModelCopyTracks+;
 #pragma link C++ class AliJetModelMergeBranches+;
 #pragma link C++ class AliJetRandomizerTask+;
 #pragma link C++ class AliJetConstituentTagCopier+;
@@ -61,6 +63,7 @@
 #pragma link C++ class AliAnalysisTaskEmcalJetv2QA+;
 #pragma link C++ class AliAnalysisTaskRhoMass+;
 #pragma link C++ class AliAnalysisTaskRhoMassBase+;
+#pragma link C++ class AliAnalysisTaskRhoMassScale+;
 #pragma link C++ class AliAnalysisTaskSAJF+;
 #pragma link C++ class AliAnalysisTaskSAQA+;
 #pragma link C++ class AliAnalysisTaskSOH+;
index 6617ade67a01fc1cc2a7b0e72f7f7031a1120d4e..e43619755bb35436134d97b107493e5c0e3c87a8 100644 (file)
@@ -1247,9 +1247,9 @@ void AliAnalysisTaskJetChem::AliFragFuncHistosInvMass::FillFF(Float_t trackPt, F
  
   if(incrementJetPt) fh1JetPt->Fill(jetPt);    
   //fh3TrackPt->Fill(jetPt,invM,trackPt);//Fill(x,y,z)
-  invM = 0;
-  Double_t z = 0.;
-  if(jetPt>0) z = trackPt / jetPt;
+  //  invM = 0;
+  //  Double_t z = 0.;
+  // if(jetPt>0) z = trackPt / jetPt;
   // Double_t xi = 0;
   //if(z>0) xi = TMath::Log(1/z);
   
index 573f044d6db432590dde28ae65a92a520f499728..e0aae2acd41b52ff5ea70b090c8155c52c5662df 100644 (file)
@@ -604,11 +604,19 @@ void AliAnalysisTaskPID::UserCreateOutputObjects()
   // This centrality estimator deals with integers! This implies that the ranges are always [lowlim, uplim - 1]
   Double_t binsCentITSTPCTracklets[nCentBins+1] = { 0, 7, 13, 20, 29, 40, 50, 60, 72, 83, 95, 105, 115 };
   
+  // Special centrality binning for pp
+  Double_t binsCentpp[nCentBins+1] =   { 0, 0.01, 0.1, 1, 5, 10, 15, 20, 30, 40, 50, 70, 100};
+  
   if (fCentralityEstimator.CompareTo("ITSTPCtracklets", TString::kIgnoreCase) == 0 && fStoreCentralityPercentile) {
     // Special binning for this centrality estimator; but keep number of bins!
     for (Int_t i = 0; i < nCentBins+1; i++)
       binsCent[i] = binsCentITSTPCTracklets[i];
   }
+  else if (fCentralityEstimator.Contains("ppMult", TString::kIgnoreCase) && fStoreCentralityPercentile) {
+    // Special binning for this pp centrality estimator; but keep number of bins!
+    for (Int_t i = 0; i < nCentBins+1; i++)
+      binsCent[i] = binsCentpp[i];
+  }
 
   const Int_t nJetPtBins = 11;
   Double_t binsJetPt[nJetPtBins+1] = {0, 2, 5, 10, 15, 20, 30, 40, 60, 80, 120, 200};
@@ -763,26 +771,26 @@ void AliAnalysisTaskPID::UserCreateOutputObjects()
   
   
   fhEventsProcessed = new TH1D("fhEventsProcessed",
-                               "Number of events passing trigger selection, vtx and zvtx cuts and pile-up rejection;Centrality percentile", 
+                               "Number of events passing trigger selection, vtx and zvtx cuts and pile-up rejection;Centrality Percentile", 
                                nCentBins, binsCent);
   fhEventsProcessed->Sumw2();
   fOutputContainer->Add(fhEventsProcessed);
   
   fhEventsTriggerSelVtxCut = new TH1D("fhEventsTriggerSelVtxCut",
-                                      "Number of events passing trigger selection and vtx cut;Centrality percentile", 
+                                      "Number of events passing trigger selection and vtx cut;Centrality Percentile", 
                                       nCentBins, binsCent);
   fhEventsTriggerSelVtxCut->Sumw2();
   fOutputContainer->Add(fhEventsTriggerSelVtxCut);
   
   fhEventsTriggerSel = new TH1D("fhEventsTriggerSel",
-                                "Number of events passing trigger selection;Centrality percentile", 
+                                "Number of events passing trigger selection;Centrality Percentile", 
                                 nCentBins, binsCent);
   fOutputContainer->Add(fhEventsTriggerSel);
   fhEventsTriggerSel->Sumw2();
   
   
   fhEventsProcessedNoPileUpRejection = new TH1D("fhEventsProcessedNoPileUpRejection",
-                                                "Number of events passing trigger selection, vtx and zvtx cuts;Centrality percentile", 
+                                                "Number of events passing trigger selection, vtx and zvtx cuts;Centrality Percentile", 
                                                 nCentBins, binsCent);
   fOutputContainer->Add(fhEventsProcessedNoPileUpRejection);
   fhEventsProcessedNoPileUpRejection->Sumw2();
@@ -1053,12 +1061,17 @@ void AliAnalysisTaskPID::UserExec(Option_t *)
         AliError("Not esd event -> Cannot use tracklet multiplicity estimator!");
         centralityPercentile = -1;
       }
-      else {
+      else
         centralityPercentile = AliESDtrackCuts::GetReferenceMultiplicity(esdEvent, AliESDtrackCuts::kTrackletsITSTPC, fEtaAbsCutUp);
-      }
     }
-    else
+    else if (fCentralityEstimator.Contains("ppMult", TString::kIgnoreCase)) {
+      // Another special pp centrality estimator
+      centralityPercentile = fAnaUtils->GetMultiplicityPercentile(fEvent, GetPPCentralityEstimator().Data());
+    }
+    else {
+      // Ordinary centrality estimator
       centralityPercentile = fEvent->GetCentrality()->GetCentralityPercentile(fCentralityEstimator.Data());
+    }
   }
   
   // Check if vertex is ok, but don't apply cut on z position
@@ -1115,10 +1128,13 @@ void AliAnalysisTaskPID::UserExec(Option_t *)
     return;
   
   IncrementEventCounter(centralityPercentile, kTriggerSelAndVtxCutAndZvtxCutNoPileUpRejection);
-  //TODO ATTENTION: Is this the right place for the pile-up rejection? Important to have still the proper bin-0 correction,
+  // ATTENTION: Is this the right place for the pile-up rejection? Important to have still the proper bin-0 correction,
   // which is done solely with sel and selVtx, since the zvtx selection does ~not change the spectra. The question is whether the pile-up
   // rejection changes the spectra. If not, then it is perfectly fine to put it here and keep the usual histo for the normalisation to number
   // of events. But if it does change the spectra, this must somehow be corrected for.
+  // NOTE: multiplicity >= 0 usually implies a properly reconstructed vertex. Hence, the bin-0 correction cannot be done in multiplicity bins.
+  // Furthermore, there seems to be no MC simulation with pile-up rejection, so the bin-0 correction cannot be extracted with it. Pile-up
+  // rejection has only a minor impact, so maybe there is no need to dig further.
   if (isPileUp)
     return;
   
@@ -3599,7 +3615,7 @@ void AliAnalysisTaskPID::SetUpGenHist(THnSparse* hist, Double_t* binsPt, Double_
   
   hist->GetAxis(kGenDeltaPrimeSpecies)->SetTitle("TPC #Delta'_{species} (arb. unit)");
   
-  hist->GetAxis(kGenCentrality)->SetTitle(Form("Centrality Percentile (%s)", fCentralityEstimator.Data()));
+  hist->GetAxis(kGenCentrality)->SetTitle(Form("Centrality Percentile (%s)", GetPPCentralityEstimator().Data()));
   
   if (fStoreAdditionalJetInformation) {
     hist->GetAxis(kGenJetPt)->SetTitle("p_{T}^{jet} (GeV/c)");
@@ -3637,7 +3653,7 @@ void AliAnalysisTaskPID::SetUpGenYieldHist(THnSparse* hist, Double_t* binsPt, Do
   // Set axes titles
   hist->GetAxis(kGenYieldMCID)->SetTitle("MC PID");
   hist->GetAxis(kGenYieldPt)->SetTitle("p_{T}^{gen} (GeV/c)");
-  hist->GetAxis(kGenYieldCentrality)->SetTitle(Form("Centrality Percentile (%s)", fCentralityEstimator.Data()));
+  hist->GetAxis(kGenYieldCentrality)->SetTitle(Form("Centrality Percentile (%s)", GetPPCentralityEstimator().Data()));
   
   if (fStoreAdditionalJetInformation) {
     hist->GetAxis(kGenYieldJetPt)->SetTitle("p_{T}^{jet, gen} (GeV/c)");
@@ -3681,7 +3697,7 @@ void AliAnalysisTaskPID::SetUpHist(THnSparse* hist, Double_t* binsPt, Double_t*
     
   hist->GetAxis(kDataDeltaPrimeSpecies)->SetTitle("TPC #Delta'_{species} (arb. unit)");
   
-  hist->GetAxis(kDataCentrality)->SetTitle(Form("Centrality Percentile (%s)", fCentralityEstimator.Data()));
+  hist->GetAxis(kDataCentrality)->SetTitle(Form("Centrality Percentile (%s)", GetPPCentralityEstimator().Data()));
   
   if (fStoreAdditionalJetInformation) {
     hist->GetAxis(kDataJetPt)->SetTitle("p_{T}^{jet} (GeV/c)");
@@ -3719,7 +3735,7 @@ void AliAnalysisTaskPID::SetUpPtResHist(THnSparse* hist, Double_t* binsPt, Doubl
   hist->GetAxis(kPtResRecPt)->SetTitle("p_{T}^{rec} (GeV/c)");  
   
   hist->GetAxis(kPtResCharge)->SetTitle("Charge (e_{0})");
-  hist->GetAxis(kPtResCentrality)->SetTitle(Form("Centrality Percentile (%s)", fCentralityEstimator.Data()));
+  hist->GetAxis(kPtResCentrality)->SetTitle(Form("Centrality Percentile (%s)", GetPPCentralityEstimator().Data()));
 }
 
 
@@ -3772,7 +3788,7 @@ void AliAnalysisTaskPID::SetUpBinZeroStudyHist(THnSparse* hist, const Double_t*
   hist->SetBinEdges(kBinZeroStudyGenPt, binsPt);
   
   // Set axes titles
-  hist->GetAxis(kBinZeroStudyCentrality)->SetTitle(Form("Centrality Percentile (%s)", fCentralityEstimator.Data()));
+  hist->GetAxis(kBinZeroStudyCentrality)->SetTitle(Form("Centrality Percentile (%s)", GetPPCentralityEstimator().Data()));
   hist->GetAxis(kBinZeroStudyGenEta)->SetTitle("#it{#eta}^{gen}");  
   hist->GetAxis(kBinZeroStudyGenPt)->SetTitle("#it{p}_{T}^{gen} (GeV/#it{c})"); 
 }
\ No newline at end of file
index bb530192a35c9e003fbd12bcbb38808d24a635fc..4fd4f6b8ed67c4d5638fd8040ee1966d19c1df22 100644 (file)
@@ -134,6 +134,8 @@ class AliAnalysisTaskPID : public AliAnalysisTaskPIDV0base {
   ErrorCode SetParamsForConvolutedGaus(Double_t gausMean, Double_t gausSigma);
   
   const TString GetCentralityEstimator() const { return fCentralityEstimator; };
+  const TString GetPPCentralityEstimator() const {
+    TString ppCentEstimator = fCentralityEstimator; ppCentEstimator = ppCentEstimator.ReplaceAll("ppMult", ""); return ppCentEstimator; }
   void SetCentralityEstimator(TString estimator) { fCentralityEstimator = estimator; };
   
   Double_t GetCentralityPercentile(AliVEvent* evt) const;
@@ -632,6 +634,8 @@ inline Int_t AliAnalysisTaskPID::GetParticleFractionHistoNbinsCentrality() const
 //_____________________________________________________________________________
 inline Double_t AliAnalysisTaskPID::GetCentralityPercentile(AliVEvent* evt) const
 {
+  // WARNING: This function may not be used in case of special pp centrality estimators which require different handling
+  // (and sometimes ESD events)
   if (!evt)
     return -1;
   
index 99be55f51eb6c3738076b92a3e0dc479785b161d..81c4bb3a18538785dc9440e9585281fbe3d16229 100644 (file)
@@ -17,7 +17,6 @@
 #include "AliExternalTrackParam.h"
 #include "AliVVertex.h"
 #include "AliAnalysisFilter.h"
-#include "AliAnalysisUtils.h"
 #include "AliPID.h"
 #include "AliPIDResponse.h"
 #include "AliESDv0KineCuts.h"
@@ -180,6 +179,9 @@ void AliAnalysisTaskPIDV0base::UserCreateOutputObjects()
   
   // Default analysis utils
   fAnaUtils = new AliAnalysisUtils();
+  
+  // Not used yet, but to be save, forward vertex z cut to analysis utils object
+  fAnaUtils->SetMaxVtxZ(fZvtxCutEvent);
 }
 
 
index 94d31c167edde95c961fc66078eefba0435cb275..b652d262e851dbaf16dee28d2b409abf39eca630 100644 (file)
@@ -21,13 +21,13 @@ class AliPIDResponse;
 class AliESDv0KineCuts;
 class AliPID;
 class AliAnalysisFilter;
-class AliAnalysisUtils;
 class AliVTrack;
 
 #include <TTreeStream.h>
 #include "AliInputEventHandler.h"
 #include "AliTOFPIDResponse.h"
 #include "AliAnalysisTaskSE.h"
+#include "AliAnalysisUtils.h"
 
 class AliAnalysisTaskPIDV0base : public AliAnalysisTaskSE {
  public:
@@ -49,7 +49,7 @@ class AliAnalysisTaskPIDV0base : public AliAnalysisTaskSE {
   virtual void SetIsPbpOrpPb(Bool_t newValue) { fIsPbpOrpPb = newValue; };
   
   virtual Double_t GetZvtxCutEvent() const { return fZvtxCutEvent; };
-  virtual void SetZvtxCutEvent(Double_t newValue) { fZvtxCutEvent = newValue; };
+  virtual void SetZvtxCutEvent(Double_t newValue) { fZvtxCutEvent = newValue; if (fAnaUtils) fAnaUtils->SetMaxVtxZ(fZvtxCutEvent);};
   
   virtual Bool_t GetUsePhiCut() const { return fUsePhiCut; };
   virtual void SetUsePhiCut(Bool_t newValue) { fUsePhiCut = newValue; };
@@ -139,7 +139,7 @@ class AliAnalysisTaskPIDV0base : public AliAnalysisTaskSE {
   AliAnalysisTaskPIDV0base(const AliAnalysisTaskPIDV0base&); // not implemented
   AliAnalysisTaskPIDV0base& operator=(const AliAnalysisTaskPIDV0base&); // not implemented
   
-  ClassDef(AliAnalysisTaskPIDV0base, 2);
+  ClassDef(AliAnalysisTaskPIDV0base, 3);
 };
 
 
index f0f2618fb75f495235debd55e71f91334cba61a2..cfc5c77812dcd12f0268fd2360c00643b75bc7fc 100644 (file)
@@ -26,6 +26,7 @@ AliAnalysisTaskJetCorePP* AddTaskJetCorePP(
    const Char_t* mcChargFlag="",  // real="", charged jets = "MC2" 
    Bool_t bfillrespmx=0,  // 0=dont fill resp mx histos, 1=fill histos
    Bool_t bDiceEff=0,  // 0=leave efficiency as it is,  1= reduce efficiency by constant amount via SetFixedEfficiency
+   Bool_t bMomSmear=0,  // 0=leave efficiency as it is,  1= reduce efficiency by constant amount via SetFixedEfficiency
    Bool_t bDoubleBinning=0,  // 0= 2GeV bin size  1= 1GeV/bin size
    Bool_t bUseExchContainer=0, //
    Int_t triggerType=0,  //0=single incl trigger, 1=leading track, 2=hadron pt>10 
@@ -91,9 +92,9 @@ AliAnalysisTaskJetCorePP* AddTaskJetCorePP(
       analBranch   = analBranch   + jet   + otherparams; //antikt jet 
       analBranchBg = analBranchBg + jetbg + otherparams; //kt bg jet
 
-      if(bDiceEff){ //dicing efficiency relates rec only
-         analBranch   = analBranch   + "Detector10Fr0"; //dice=1, smear=0, change eff fraction =0
-         analBranchBg = analBranchBg + "Detector10Fr0"
+      if(bDiceEff || bMomSmear){ //dicing efficiency relates rec only
+         analBranch   = analBranch   + Form("Detector%d%dFr0",(Int_t) bDiceEff,(Int_t) bMomSmear); //dice=1, smear=0, change eff fraction =0
+         analBranchBg = analBranchBg + Form("Detector%d%dFr0",(Int_t) bDiceEff,(Int_t) bMomSmear)
       }
 
       //clustersAOD_ANTIKT04_B0_Filter00272_Cut00150_Skip00   
index fe208cc216180bf758c6071e7bb92b381a9d736d..224905fe5d4e88f3206d774eb532fcdd26175cac 100644 (file)
@@ -1,7 +1,8 @@
 AliAnalysisTask *AddTaskPID(TString nameSuffix, Bool_t writeOutputToSeparateFiles = kTRUE,
                             Bool_t useConvolutedGauss = kTRUE, TString centralityEstimator = "V0A",
                             Bool_t considerJets = kTRUE, Bool_t overrideStoreCentralityPercentile = kFALSE,
-                            Bool_t overrideStoreCentralityPercentileValue = kFALSE)
+                            Bool_t overrideStoreCentralityPercentileValue = kFALSE,
+                            TString listOfFiles = "")
 {
   // Macro to set up and add PID task with default settings.
   //
@@ -27,7 +28,6 @@ AliAnalysisTask *AddTaskPID(TString nameSuffix, Bool_t writeOutputToSeparateFile
   
   
   printf("\nSetting up task %s:\n", taskName.Data());
-  TString listOfFiles = gSystem->Getenv("LIST");
   
   if (!considerJets) {
     //
@@ -68,6 +68,7 @@ AliAnalysisTask *AddTaskPID(TString nameSuffix, Bool_t writeOutputToSeparateFile
   if (listOfFiles.Contains("pPb") || listOfFiles.Contains("Pbp")) {
     task->SetIsPbpOrpPb(kTRUE);
     printf("pPb/Pbp detected -> Adapting vertex cuts!\n");
+    task->SetCentralityEstimator("V0A");
   }
   else  {
     task->SetIsPbpOrpPb(kFALSE);
index 9a6f597230804942f53f44093ce2ddbdd7ade469..c91b4770899898c911b125d25583639912412c9c 100644 (file)
@@ -607,14 +607,15 @@ void AliAnalysisNucleiMass::UserExec(Option_t *)
       //-------------------------------------start TRACK CUTS (II)-------------------------------------
       //Cut on the DCAxy
       Bool_t isDCAxyCut=kFALSE;
-      if(DCAxy<DCAxyCut) isDCAxyCut=kTRUE;
+      if(TMath::Abs(DCAxy)<DCAxyCut) isDCAxyCut=kTRUE;
       
       //Cut on the DCAz
       Bool_t isDCAzCut=kFALSE;
-      if(DCAz<DCAzCut) isDCAzCut=kTRUE;
+      if(TMath::Abs(DCAz)<DCAzCut) isDCAzCut=kTRUE;
+      
       if (!isDCAxyCut || !isDCAzCut)
        continue;
-      
+          
       //-------------------------------------end TRACK CUTS (II)----------------------------------
       
       hEta[iBconf]->Fill(eta);
@@ -839,11 +840,11 @@ void AliAnalysisNucleiMass::FillDCAdist(Double_t DCAxy, Double_t DCAz, Double_t
        }
        for(Int_t j=0;j<nbin;j++) {
          if(pC[iS]>binP[j] && pC[iS]<binP[j+1]) {
-           if(DCAz<DCAzCut) {
+           if(TMath::Abs(DCAz)<DCAzCut) {
              hDCAxy[iBconf][iS][j]->Fill(DCAxy);
              hDCAxy[iBconf][iS][j]->Fill(-DCAxy);
            }
-           if(DCAxy<DCAxyCut) {
+           if(TMath::Abs(DCAxy)<DCAxyCut) {
              hDCAz[iBconf][iS][j]->Fill(DCAz);
              hDCAz[iBconf][iS][j]->Fill(-DCAz);
            }
@@ -864,11 +865,11 @@ void AliAnalysisNucleiMass::FillDCAdist(Double_t DCAxy, Double_t DCAz, Double_t
        }
        for(Int_t j=0;j<nbin;j++) {
          if(pC[iS]>binP[j] && pC[iS]<binP[j+1]) {
-           if(DCAz<DCAzCut) {
+           if(TMath::Abs(DCAz)<DCAzCut) {
              hDCAxy[iBconf][iS+nPart][j]->Fill(DCAxy);
              hDCAxy[iBconf][iS+nPart][j]->Fill(-DCAxy);
            }
-           if(DCAxy<DCAxyCut) {
+           if(TMath::Abs(DCAxy)<DCAxyCut) {
              hDCAz[iBconf][iS+nPart][j]->Fill(DCAz);
              hDCAz[iBconf][iS+nPart][j]->Fill(-DCAz);
            }
index bfae432442320507147121c5e5fbb93f5c12924e..5eb16e1e9d2303b858873a926507c4147c4a4bd2 100644 (file)
@@ -231,7 +231,6 @@ Bool_t AliSpectraAODEventCuts::CheckMultiplicityCut()
 //______________________________________________________
 Bool_t AliSpectraAODEventCuts::CheckQVectorCut()
 { 
-  Double_t qxEPVZERO = -999., qyEPVZERO = -999.;
   Double_t qVZERO = -999.;
   Double_t psi=-999.;
   
@@ -239,8 +238,8 @@ Bool_t AliSpectraAODEventCuts::CheckQVectorCut()
     qVZERO=CalculateQVectorLHC10h();
     psi=fPsiV0A;
   }else{
-    psi=fAOD->GetEventplane()->CalculateVZEROEventPlane(fAOD,10,2,qxEPVZERO,qyEPVZERO);//FIXME we can a flag for 2010 and 2011
-    qVZERO= TMath::Sqrt(qxEPVZERO*qxEPVZERO + qyEPVZERO*qyEPVZERO);
+    qVZERO=CalculateQVector();
+    psi=fPsiV0A;
   }
   
   //cut on q vector
@@ -374,6 +373,43 @@ Double_t AliSpectraAODEventCuts::CalculateQVectorLHC10h(){
   return fqV0A; //FIXME we have to combine VZERO-A and C
 }
 
+//______________________________________________________
+Double_t AliSpectraAODEventCuts::CalculateQVector(){
+  
+  //V0 info    
+  Double_t Qxa2 = 0, Qya2 = 0;
+  Double_t Qxc2 = 0, Qyc2 = 0;
+  
+  AliAODVZERO* aodV0 = fAOD->GetVZEROData();
+  
+  for (Int_t iv0 = 0; iv0 < 64; iv0++) {
+    
+    Float_t multv0 = aodV0->GetMultiplicity(iv0);
+  
+    ((TH2F*)fOutput->FindObject("fV0M"))->Fill(iv0,multv0);
+    
+  }
+
+  fPsiV0A = fAOD->GetEventplane()->CalculateVZEROEventPlane(fAOD,8,2,Qxa2,Qya2); // V0A
+  fPsiV0C = fAOD->GetEventplane()->CalculateVZEROEventPlane(fAOD,9,2,Qxc2,Qyc2); // V0C
+  
+  ((TH2F*)fOutput->FindObject("fPsiACor"))->Fill((Float_t)fAOD->GetCentrality()->GetCentralityPercentile("V0M"), fPsiV0A);
+  ((TH2F*)fOutput->FindObject("fPsiCCor"))->Fill((Float_t)fAOD->GetCentrality()->GetCentralityPercentile("V0M"), fPsiV0C);
+  
+  fqV0A = TMath::Sqrt((Qxa2*Qxa2 + Qya2*Qya2));
+  fqV0C = TMath::Sqrt((Qxc2*Qxc2 + Qyc2*Qyc2));
+  fqV0Ax = Qxa2;
+  fqV0Cx = Qxc2;
+  fqV0Ay = Qya2;
+  fqV0Cy = Qyc2;
+  
+  ((TH2F*)fOutput->FindObject("fQVecACor"))->Fill((Float_t)fAOD->GetCentrality()->GetCentralityPercentile("V0M"), fqV0A);
+  ((TH2F*)fOutput->FindObject("fQVecCCor"))->Fill((Float_t)fAOD->GetCentrality()->GetCentralityPercentile("V0M"), fqV0C);
+  
+  return fqV0A; //FIXME we have to combine VZERO-A and C
+  
+}
+
 //______________________________________________________
 Short_t AliSpectraAODEventCuts::GetCentrCode(AliVEvent* ev)
 {
index f412f6e3b0f9bed2778b89e42afdefa30f6754dc..e05a0d2626bbbe9d83841d3a182e6737e6802b5e 100644 (file)
@@ -146,6 +146,8 @@ class AliSpectraAODEventCuts : public TNamed
   Bool_t OpenInfoCalbration(Int_t run);
   Short_t  GetCentrCode(AliVEvent* ev);
   
+  Double_t CalculateQVector();
+  
   Float_t  NumberOfEvents()     { return ((TH1I*)fOutput->FindObject("fHistoCuts"))->GetBinContent(kAcceptedEvents+1); }
   Float_t  NumberOfProcessedEvents()     { return ((TH1I*)fOutput->FindObject("fHistoCuts"))->GetBinContent(kProcessedEvents+1); }
   Float_t  NumberOfPhysSelEvents()     { return ((TH1I*)fOutput->FindObject("fHistoCuts"))->GetBinContent(kPhysSelEvents+1); }
index b3093b2100cbff05c445809233f3a3de9a8df20c..18adc0e02063a51df64bff59563eacc88d79b41d 100644 (file)
 //                - AOD analysis part completed 
 //
 //
-//              Adapted to pp 2.76 analysis: D. Colella, domenico.colella@ba.infn.it
+//              Adapted to pp 2.76 TeV analysis: D. Colella, domenico.colella@ba.infn.it
 //               Gen-now 2012
 //                - Physics selection re-moved here (mainly for normalization in the efficiency calcuation)
 //                - Centrality selection deleted
-//                - 
+//
+//
+//             Adapted to pPb 5.02 TeV analysis: D. Colella, domenico.colella@ba.infn.it
+//               Aug-Sep 2014
+//               - Added the parameter fCollidingSystem, to distingish between pp and pPb procedures
+//               - 
+//
+//
 //
 //-----------------------------------------------------------------
 
@@ -92,6 +99,7 @@ class AliAODv0;
 #include "AliESDcascade.h"
 #include "AliAODcascade.h"
 #include "AliAODTrack.h"
+#include "AliAnalysisUtils.h"
 
 #include "AliAnalysisTaskCheckCascadepp276.h"
 
@@ -108,6 +116,8 @@ AliAnalysisTaskCheckCascadepp276::AliAnalysisTaskCheckCascadepp276()
   : AliAnalysisTaskSE(), 
     fAnalysisType               ("ESD"),
     fESDtrackCuts               (0),
+    fUtils                      (0),
+    fCollidingSystem            ("pp"),
     fPIDResponse                (0),
     fkRerunV0CascVertexers      (0),
     fkSDDSelectionOn            (kTRUE),
@@ -202,6 +212,8 @@ AliAnalysisTaskCheckCascadepp276::AliAnalysisTaskCheckCascadepp276(const char *n
   : AliAnalysisTaskSE(name), 
     fAnalysisType               ("ESD"), 
     fESDtrackCuts               (0), 
+    fUtils                      (0),
+    fCollidingSystem            ("pp"),
     fPIDResponse                (0),
     fkRerunV0CascVertexers      (0),
     fkSDDSelectionOn            (kTRUE),
@@ -289,24 +301,39 @@ AliAnalysisTaskCheckCascadepp276::AliAnalysisTaskCheckCascadepp276(const char *n
      // Input slot #0 works with a TChain
      // DefineInput(0, TChain::Class());
      // Output slot #1 writes into a TList container (cascade)
-        // default p-p values
-        fV0Sels[0] =  33.  ;     // max allowed chi2
-        fV0Sels[1] =   0.01;     // min allowed impact parameter for the 1st daughter 
-        fV0Sels[2] =   0.01;     // min allowed impact parameter for the 2nd daughter 
-        fV0Sels[3] =   1.5;      // max allowed DCA between the daughter tracks       
-        fV0Sels[4] =   0.9;      // min allowed cosine of V0's pointing angle  - This is pT dependent         
-        fV0Sels[5] =   0.2;      // min radius of the fiducial volume                 
-        fV0Sels[6] = 200.;       // max radius of the fiducial volume                 
-
-        fCascSels[0] =  33.;     // max allowed chi2 (same as PDC07)
-        fCascSels[1] =   0.01;   // min allowed V0 impact parameter                    
-        fCascSels[2] =   0.008;  // "window" around the Lambda mass                    
-        fCascSels[3] =   0.01;   // min allowed bachelor's impact parameter          
-        fCascSels[4] =   2.0;    // max allowed DCA between the V0 and the bachelor    
-        fCascSels[5] =   0.95;   // min allowed cosine of the cascade pointing angle   
-        fCascSels[6] =   0.2;    // min radius of the fiducial volume                  
-        fCascSels[7] = 100.;     // max radius of the fiducial volume                  
-
+     if (fCollidingSystem == "pp") {
+         fV0Sels[0] =  33.  ;     // max allowed chi2
+         fV0Sels[1] =   0.01;     // min allowed impact parameter for the 1st daughter 
+         fV0Sels[2] =   0.01;     // min allowed impact parameter for the 2nd daughter 
+         fV0Sels[3] =   1.5;      // max allowed DCA between the daughter tracks       
+         fV0Sels[4] =   0.9;      // min allowed cosine of V0's pointing angle - This is pT dependent        
+         fV0Sels[5] =   0.2;      // min radius of the fiducial volume                 
+         fV0Sels[6] = 200.;       // max radius of the fiducial volume                 
+         fCascSels[0] =  33.;     // max allowed chi2 (same as PDC07)
+         fCascSels[1] =   0.01;   // min allowed V0 impact parameter                    
+         fCascSels[2] =   0.008;  // "window" around the Lambda mass                    
+         fCascSels[3] =   0.01;   // min allowed bachelor's impact parameter          
+         fCascSels[4] =   2.0;    // max allowed DCA between the V0 and the bachelor    
+         fCascSels[5] =   0.95;   // min allowed cosine of the cascade pointing angle   
+         fCascSels[6] =   0.2;    // min radius of the fiducial volume                  
+         fCascSels[7] = 100.;     // max radius of the fiducial volume 
+     } else if (fCollidingSystem == "pPb") {
+         fV0Sels[0] =  33.  ;     // max allowed chi2
+         fV0Sels[1] =   0.02;     // min allowed impact parameter for the 1st daughter (LHC09a4 : 0.05)
+         fV0Sels[2] =   0.02;     // min allowed impact parameter for the 2nd daughter (LHC09a4 : 0.05)
+         fV0Sels[3] =   2.0 ;     // max allowed DCA between the daughter tracks       (LHC09a4 : 0.5)
+         fV0Sels[4] =   0.95;     // min allowed cosine of V0's pointing angle         (LHC09a4 : 0.99)
+         fV0Sels[5] =   1.0 ;     // min radius of the fiducial volume                 (LHC09a4 : 0.2)
+         fV0Sels[6] = 200.  ;     // max radius of the fiducial volume                 (LHC09a4 : 100.0)
+         fCascSels[0] =  33.   ;  // max allowed chi2 (same as PDC07)
+         fCascSels[1] =   0.05 ;  // min allowed V0 impact parameter                    (PDC07 : 0.05   / LHC09a4 : 0.025 )
+         fCascSels[2] =   0.010;  // "window" around the Lambda mass                    (PDC07 : 0.008  / LHC09a4 : 0.010 )
+         fCascSels[3] =   0.03 ;  // min allowed bachelor's impact parameter            (PDC07 : 0.035  / LHC09a4 : 0.025 )
+         fCascSels[4] =   2.0  ;  // max allowed DCA between the V0 and the bachelor    (PDC07 : 0.1    / LHC09a4 : 0.2   )
+         fCascSels[5] =   0.95 ;  // min allowed cosine of the cascade pointing angle   (PDC07 : 0.9985 / LHC09a4 : 0.998 )
+         fCascSels[6] =   0.4  ;  // min radius of the fiducial volume                  (PDC07 : 0.9    / LHC09a4 : 0.2   )
+         fCascSels[7] = 100.   ;  // max radius of the fiducial volume                  (PDC07 : 100    / LHC09a4 : 100   )
+     }
      // Output slot #0 writes into a TList container (Cascade)
      DefineOutput(1, TList::Class());
      DefineOutput(2, AliCFContainer::Class());
@@ -348,7 +375,6 @@ void AliAnalysisTaskCheckCascadepp276::UserCreateOutputObjects() {
  AliAnalysisManager *man=AliAnalysisManager::GetAnalysisManager();
  AliInputEventHandler* inputHandler = (AliInputEventHandler*) (man->GetInputEventHandler());
  fPIDResponse = inputHandler->GetPIDResponse();
-
  // Only used to get the number of primary reconstructed tracks
  if (fAnalysisType == "ESD" && (! fESDtrackCuts )){
    fESDtrackCuts = new AliESDtrackCuts();
@@ -358,22 +384,39 @@ void AliAnalysisTaskCheckCascadepp276::UserCreateOutputObjects() {
  // Initialize cuts to re-run V0 and cascade vertexers
  //---------------------------------------------------
  // Not validated; to be checked
- fV0Sels[0] =  33.  ;     // max allowed chi2
- fV0Sels[1] =   0.01;     // min allowed impact parameter for the 1st daughter 
- fV0Sels[2] =   0.01;     // min allowed impact parameter for the 2nd daughter 
- fV0Sels[3] =   1.5;      // max allowed DCA between the daughter tracks       
- fV0Sels[4] =   0.9;     // min allowed cosine of V0's pointing angle         
- fV0Sels[5] =   0.2;      // min radius of the fiducial volume                 
- fV0Sels[6] = 200.;       // max radius of the fiducial volume                 
-
- fCascSels[0] =  33.;     // max allowed chi2 (same as PDC07)
- fCascSels[1] =   0.01;   // min allowed V0 impact parameter                    
- fCascSels[2] =   0.008;  // "window" around the Lambda mass                    
- fCascSels[3] =   0.01;   // min allowed bachelor's impact parameter          
- fCascSels[4] =   2.0;    // max allowed DCA between the V0 and the bachelor    
- fCascSels[5] =   0.95;   // min allowed cosine of the cascade pointing angle   
- fCascSels[6] =   0.2;    // min radius of the fiducial volume                  
- fCascSels[7] = 100.;     // max radius of the fiducial volume 
+ if (fCollidingSystem == "pp") {
+      fV0Sels[0] =  33.  ;     // max allowed chi2
+      fV0Sels[1] =   0.01;     // min allowed impact parameter for the 1st daughter 
+      fV0Sels[2] =   0.01;     // min allowed impact parameter for the 2nd daughter 
+      fV0Sels[3] =   1.5;      // max allowed DCA between the daughter tracks       
+      fV0Sels[4] =   0.9;      // min allowed cosine of V0's pointing angle         
+      fV0Sels[5] =   0.2;      // min radius of the fiducial volume                 
+      fV0Sels[6] = 200.;       // max radius of the fiducial volume                 
+      fCascSels[0] =  33.;     // max allowed chi2 (same as PDC07)
+      fCascSels[1] =   0.01;   // min allowed V0 impact parameter                    
+      fCascSels[2] =   0.008;  // "window" around the Lambda mass                    
+      fCascSels[3] =   0.01;   // min allowed bachelor's impact parameter          
+      fCascSels[4] =   2.0;    // max allowed DCA between the V0 and the bachelor    
+      fCascSels[5] =   0.95;   // min allowed cosine of the cascade pointing angle   
+      fCascSels[6] =   0.2;    // min radius of the fiducial volume                  
+      fCascSels[7] = 100.;     // max radius of the fiducial volume 
+ } else if (fCollidingSystem == "pPb") {
+      fV0Sels[0] =  33.  ;     // max allowed chi2
+      fV0Sels[1] =   0.02;     // min allowed impact parameter for the 1st daughter (LHC09a4 : 0.05)
+      fV0Sels[2] =   0.02;     // min allowed impact parameter for the 2nd daughter (LHC09a4 : 0.05)
+      fV0Sels[3] =   2.0 ;     // max allowed DCA between the daughter tracks       (LHC09a4 : 0.5)
+      fV0Sels[4] =   0.95;     // min allowed cosine of V0's pointing angle         (LHC09a4 : 0.99)
+      fV0Sels[5] =   1.0 ;     // min radius of the fiducial volume                 (LHC09a4 : 0.2)
+      fV0Sels[6] = 200.  ;     // max radius of the fiducial volume                 (LHC09a4 : 100.0)
+      fCascSels[0] =  33.   ;  // max allowed chi2 (same as PDC07)
+      fCascSels[1] =   0.05 ;  // min allowed V0 impact parameter                    (PDC07 : 0.05   / LHC09a4 : 0.025 )
+      fCascSels[2] =   0.010;  // "window" around the Lambda mass                    (PDC07 : 0.008  / LHC09a4 : 0.010 )
+      fCascSels[3] =   0.03 ;  // min allowed bachelor's impact parameter            (PDC07 : 0.035  / LHC09a4 : 0.025 )
+      fCascSels[4] =   2.0  ;  // max allowed DCA between the V0 and the bachelor    (PDC07 : 0.1    / LHC09a4 : 0.2   )
+      fCascSels[5] =   0.95 ;  // min allowed cosine of the cascade pointing angle   (PDC07 : 0.9985 / LHC09a4 : 0.998 )
+      fCascSels[6] =   0.4  ;  // min radius of the fiducial volume                  (PDC07 : 0.9    / LHC09a4 : 0.2   )
+      fCascSels[7] = 100.   ;  // max radius of the fiducial volume                  (PDC07 : 100    / LHC09a4 : 100   )
+ }
 
  //----------------------
  // Initialize the histos
@@ -691,10 +734,22 @@ void AliAnalysisTaskCheckCascadepp276::UserCreateOutputObjects() {
    lNbBinsPerVar[0] = 100;
    lNbBinsPerVar[1] = 800;
    lNbBinsPerVar[2] = 22;
-   if (fkSDDSelectionOn) {
-        if (fwithSDD) fCFContCascadePIDXiMinus = new AliCFContainer(Form("fCFContCascadePIDXiMinus_minnTPCcls%i_vtxlim%.1f-%.1f_minptdghtrk%.1f_etacutdghtrk%.1f_wSDDon",fMinnTPCcls,fVtxRange,fVtxRangeMin,fMinPtCutOnDaughterTracks,fEtaCutOnDaughterTracks),"Pt_{cascade} Vs M_{#Xi^{-} candidates} Vs Y_{#Xi}", lNbSteps, lNbVariables, lNbBinsPerVar );
-        else if (!fwithSDD) fCFContCascadePIDXiMinus = new AliCFContainer(Form("fCFContCascadePIDXiMinus_minnTPCcls%i_vtxlim%.1f-%.1f_minptdghtrk%.1f_etacutdghtrk%.1f_wSDDoff",fMinnTPCcls,fVtxRange,fVtxRangeMin,fMinPtCutOnDaughterTracks,fEtaCutOnDaughterTracks),"Pt_{cascade} Vs M_{#Xi^{-} candidates} Vs Y_{#Xi}", lNbSteps, lNbVariables, lNbBinsPerVar ); 
-   } else if (!fkSDDSelectionOn) fCFContCascadePIDXiMinus = new AliCFContainer(Form("fCFContCascadePIDXiMinus_minnTPCcls%i_vtxlim%.1f-%.1f_minptdghtrk%.1f_etacutdghtrk%.1f_woSDD",fMinnTPCcls,fVtxRange,fVtxRangeMin,fMinPtCutOnDaughterTracks,fEtaCutOnDaughterTracks),"Pt_{cascade} Vs M_{#Xi^{-} candidates} Vs Y_{#Xi}", lNbSteps, lNbVariables, lNbBinsPerVar );
+   if (fCollidingSystem == "pp" && fkSDDSelectionOn) {
+        if (fwithSDD) fCFContCascadePIDXiMinus = new AliCFContainer(Form("fCFContCascadePIDXiMinus_minnTPCcls%i_vtxlim%.1f-%.1f_minptdghtrk%.1f_etacutdghtrk%.1f_wSDDon",
+                                                                    fMinnTPCcls,fVtxRange,fVtxRangeMin,fMinPtCutOnDaughterTracks,fEtaCutOnDaughterTracks),
+                                                                    "Pt_{cascade} Vs M_{#Xi^{-} candidates} Vs Y_{#Xi}", lNbSteps, lNbVariables, lNbBinsPerVar );
+        else if (!fwithSDD) fCFContCascadePIDXiMinus = new AliCFContainer(Form("fCFContCascadePIDXiMinus_minnTPCcls%i_vtxlim%.1f-%.1f_minptdghtrk%.1f_etacutdghtrk%.1f_wSDDoff",
+                                                                    fMinnTPCcls,fVtxRange,fVtxRangeMin,fMinPtCutOnDaughterTracks,fEtaCutOnDaughterTracks),
+                                                                    "Pt_{cascade} Vs M_{#Xi^{-} candidates} Vs Y_{#Xi}", lNbSteps, lNbVariables, lNbBinsPerVar ); 
+   } else if (fCollidingSystem == "pp" && !fkSDDSelectionOn) {
+        fCFContCascadePIDXiMinus = new AliCFContainer(Form("fCFContCascadePIDXiMinus_minnTPCcls%i_vtxlim%.1f-%.1f_minptdghtrk%.1f_etacutdghtrk%.1f_woSDD",
+                                                      fMinnTPCcls,fVtxRange,fVtxRangeMin,fMinPtCutOnDaughterTracks,fEtaCutOnDaughterTracks),
+                                                      "Pt_{cascade} Vs M_{#Xi^{-} candidates} Vs Y_{#Xi}", lNbSteps, lNbVariables, lNbBinsPerVar );
+   } else if (fCollidingSystem == "pPb") {
+        fCFContCascadePIDXiMinus = new AliCFContainer(Form("fCFContCascadePIDXiMinus_minnTPCcls%i_vtxlim%.1f-%.1f_minptdghtrk%.1f_etacutdghtrk%.1f",
+                                                      fMinnTPCcls,fVtxRange,fVtxRangeMin,fMinPtCutOnDaughterTracks,fEtaCutOnDaughterTracks),
+                                                      "Pt_{cascade} Vs M_{#Xi^{-} candidates} Vs Y_{#Xi}", lNbSteps, lNbVariables, lNbBinsPerVar );
+   }
      //Setting the bin limits 
    fCFContCascadePIDXiMinus->SetBinLimits(0,   0.0  ,  10.0 ); // Pt(Cascade)
    fCFContCascadePIDXiMinus->SetBinLimits(1,   1.2  ,   2.0 ); // Xi Effective mass
@@ -722,10 +777,22 @@ void AliAnalysisTaskCheckCascadepp276::UserCreateOutputObjects() {
    lNbBinsPerVar[0] = 100;
    lNbBinsPerVar[1] = 800;
    lNbBinsPerVar[2] = 22;
-   if (fkSDDSelectionOn) {
-        if (fwithSDD) fCFContCascadePIDXiPlus = new AliCFContainer(Form("fCFContCascadePIDXiPlus_minnTPCcls%i_vtxlim%.1f-%.1f_minptdghtrk%.1f_etacutdghtrk%.1f_wSDDon",fMinnTPCcls,fVtxRange,fVtxRangeMin,fMinPtCutOnDaughterTracks,fEtaCutOnDaughterTracks),"Pt_{cascade} Vs M_{#Xi^{+} candidates} Vs Y_{#Xi}", lNbSteps, lNbVariables, lNbBinsPerVar );
-        else if (!fwithSDD) fCFContCascadePIDXiPlus = new AliCFContainer(Form("fCFContCascadePIDXiPlus_minnTPCcls%i_vtxlim%.1f-%.1f_minptdghtrk%.1f_etacutdghtrk%.1f_wSDDoff",fMinnTPCcls,fVtxRange,fVtxRangeMin,fMinPtCutOnDaughterTracks,fEtaCutOnDaughterTracks),"Pt_{cascade} Vs M_{#Xi^{+} candidates} Vs Y_{#Xi}", lNbSteps, lNbVariables, lNbBinsPerVar );
-   } else if (!fkSDDSelectionOn) fCFContCascadePIDXiPlus = new AliCFContainer(Form("fCFContCascadePIDXiPlus_minnTPCcls%i_vtxlim%.1f-%.1f_minptdghtrk%.1f_etacutdghtrk%.1f_woSDD",fMinnTPCcls,fVtxRange,fVtxRangeMin,fMinPtCutOnDaughterTracks,fEtaCutOnDaughterTracks),"Pt_{cascade} Vs M_{#Xi^{+} candidates} Vs Y_{#Xi}", lNbSteps, lNbVariables, lNbBinsPerVar );
+   if (fCollidingSystem == "pp" && fkSDDSelectionOn) {
+        if (fwithSDD) fCFContCascadePIDXiPlus = new AliCFContainer(Form("fCFContCascadePIDXiPlus_minnTPCcls%i_vtxlim%.1f-%.1f_minptdghtrk%.1f_etacutdghtrk%.1f_wSDDon",
+                                                                   fMinnTPCcls,fVtxRange,fVtxRangeMin,fMinPtCutOnDaughterTracks,fEtaCutOnDaughterTracks),
+                                                                   "Pt_{cascade} Vs M_{#Xi^{+} candidates} Vs Y_{#Xi}", lNbSteps, lNbVariables, lNbBinsPerVar);
+        else if (!fwithSDD) fCFContCascadePIDXiPlus = new AliCFContainer(Form("fCFContCascadePIDXiPlus_minnTPCcls%i_vtxlim%.1f-%.1f_minptdghtrk%.1f_etacutdghtrk%.1f_wSDDoff",
+                                                                         fMinnTPCcls,fVtxRange,fVtxRangeMin,fMinPtCutOnDaughterTracks,fEtaCutOnDaughterTracks),
+                                                                         "Pt_{cascade} Vs M_{#Xi^{+} candidates} Vs Y_{#Xi}", lNbSteps, lNbVariables, lNbBinsPerVar);
+   } else if (fCollidingSystem == "pp" && !fkSDDSelectionOn) { 
+        fCFContCascadePIDXiPlus = new AliCFContainer(Form("fCFContCascadePIDXiPlus_minnTPCcls%i_vtxlim%.1f-%.1f_minptdghtrk%.1f_etacutdghtrk%.1f_woSDD",
+                                                     fMinnTPCcls,fVtxRange,fVtxRangeMin,fMinPtCutOnDaughterTracks,fEtaCutOnDaughterTracks),
+                                                     "Pt_{cascade} Vs M_{#Xi^{+} candidates} Vs Y_{#Xi}", lNbSteps, lNbVariables, lNbBinsPerVar);
+   } else if (fCollidingSystem == "pPb") {
+        fCFContCascadePIDXiPlus = new AliCFContainer(Form("fCFContCascadePIDXiPlus_minnTPCcls%i_vtxlim%.1f-%.1f_minptdghtrk%.1f_etacutdghtrk%.1f",
+                                                     fMinnTPCcls,fVtxRange,fVtxRangeMin,fMinPtCutOnDaughterTracks,fEtaCutOnDaughterTracks),
+                                                     "Pt_{cascade} Vs M_{#Xi^{+} candidates} Vs Y_{#Xi}", lNbSteps, lNbVariables, lNbBinsPerVar);
+   }
      //Setting the bin limits 
    fCFContCascadePIDXiPlus->SetBinLimits(0,   0.0  ,  10.0 );  // Pt(Cascade)
    fCFContCascadePIDXiPlus->SetBinLimits(1,   1.2  ,   2.0 );  // Xi Effective mass
@@ -753,10 +820,22 @@ void AliAnalysisTaskCheckCascadepp276::UserCreateOutputObjects() {
    lNbBinsPerVar[0] = 100;
    lNbBinsPerVar[1] = 1000;
    lNbBinsPerVar[2] = 22;
-   if (fkSDDSelectionOn) {
-        if (fwithSDD) fCFContCascadePIDOmegaMinus = new AliCFContainer(Form("fCFContCascadePIDOmegaMinus_minnTPCcls%i_vtxlim%.1f-%.1f_minptdghtrk%.1f_etacutdghtrk%.1f_wSDDon",fMinnTPCcls,fVtxRange,fVtxRangeMin,fMinPtCutOnDaughterTracks,fEtaCutOnDaughterTracks),"Pt_{cascade} Vs M_{#Omega^{-} candidates} Vs Y_{#Omega}", lNbSteps, lNbVariables, lNbBinsPerVar );
-        else if (!fwithSDD) fCFContCascadePIDOmegaMinus = new AliCFContainer(Form("fCFContCascadePIDOmegaMinus_minnTPCcls%i_vtxlim%.1f-%.1f_minptdghtrk%.1f_etacutdghtrk%.1f_wSDDoff",fMinnTPCcls,fVtxRange,fVtxRangeMin,fMinPtCutOnDaughterTracks,fEtaCutOnDaughterTracks),"Pt_{cascade} Vs M_{#Omega^{-} candidates} Vs Y_{#Omega}", lNbSteps, lNbVariables, lNbBinsPerVar );
-   } else if (!fkSDDSelectionOn) fCFContCascadePIDOmegaMinus = new AliCFContainer(Form("fCFContCascadePIDOmegaMinus_minnTPCcls%i_vtxlim%.1f-%.1f_minptdghtrk%.1f_etacutdghtrk%.1f_woSDD",fMinnTPCcls,fVtxRange,fVtxRangeMin,fMinPtCutOnDaughterTracks,fEtaCutOnDaughterTracks),"Pt_{cascade} Vs M_{#Omega^{-} candidates} Vs Y_{#Omega}", lNbSteps, lNbVariables, lNbBinsPerVar );
+   if (fCollidingSystem == "pp" && fkSDDSelectionOn) {
+        if (fwithSDD) fCFContCascadePIDOmegaMinus = new AliCFContainer(Form("fCFContCascadePIDOmegaMinus_minnTPCcls%i_vtxlim%.1f-%.1f_minptdghtrk%.1f_etacutdghtrk%.1f_wSDDon",
+                                                                       fMinnTPCcls,fVtxRange,fVtxRangeMin,fMinPtCutOnDaughterTracks,fEtaCutOnDaughterTracks),
+                                                                       "Pt_{cascade} Vs M_{#Omega^{-} candidates} Vs Y_{#Omega}", lNbSteps, lNbVariables, lNbBinsPerVar );
+        else if (!fwithSDD) fCFContCascadePIDOmegaMinus = new AliCFContainer(Form("fCFContCascadePIDOmegaMinus_minnTPCcls%i_vtxlim%.1f-%.1f_minptdghtrk%.1f_etacutdghtrk%.1f_wSDDoff",
+                                                                             fMinnTPCcls,fVtxRange,fVtxRangeMin,fMinPtCutOnDaughterTracks,fEtaCutOnDaughterTracks),
+                                                                             "Pt_{cascade} Vs M_{#Omega^{-} candidates} Vs Y_{#Omega}", lNbSteps, lNbVariables, lNbBinsPerVar );
+   } else if (!fkSDDSelectionOn) {
+        fCFContCascadePIDOmegaMinus = new AliCFContainer(Form("fCFContCascadePIDOmegaMinus_minnTPCcls%i_vtxlim%.1f-%.1f_minptdghtrk%.1f_etacutdghtrk%.1f_woSDD",
+                                                         fMinnTPCcls,fVtxRange,fVtxRangeMin,fMinPtCutOnDaughterTracks,fEtaCutOnDaughterTracks),
+                                                         "Pt_{cascade} Vs M_{#Omega^{-} candidates} Vs Y_{#Omega}", lNbSteps, lNbVariables, lNbBinsPerVar );
+   } else if (fCollidingSystem == "pPb") {
+        fCFContCascadePIDOmegaMinus = new AliCFContainer(Form("fCFContCascadePIDOmegaMinus_minnTPCcls%i_vtxlim%.1f-%.1f_minptdghtrk%.1f_etacutdghtrk%.1f",
+                                                         fMinnTPCcls,fVtxRange,fVtxRangeMin,fMinPtCutOnDaughterTracks,fEtaCutOnDaughterTracks),
+                                                         "Pt_{cascade} Vs M_{#Omega^{-} candidates} Vs Y_{#Omega}", lNbSteps, lNbVariables, lNbBinsPerVar );
+   }
      //Setting the bin limits 
    fCFContCascadePIDOmegaMinus->SetBinLimits(0,   0.0  ,  10.0 );      // Pt(Cascade)
    fCFContCascadePIDOmegaMinus->SetBinLimits(1,   1.5  ,   2.5 );      // Omega Effective mass
@@ -784,10 +863,22 @@ void AliAnalysisTaskCheckCascadepp276::UserCreateOutputObjects() {
    lNbBinsPerVar[0] = 100;
    lNbBinsPerVar[1] = 1000;
    lNbBinsPerVar[2] = 22; 
-   if (fkSDDSelectionOn) {
-        if (fwithSDD) fCFContCascadePIDOmegaPlus = new AliCFContainer(Form("fCFContCascadePIDOmegaPlus_minnTPCcls%i_vtxlim%.1f-%.1f_minptdghtrk%.1f_etacutdghtrk%.1f_wSDDon",fMinnTPCcls,fVtxRange,fVtxRangeMin,fMinPtCutOnDaughterTracks,fEtaCutOnDaughterTracks),"Pt_{cascade} Vs M_{#Omega^{+} candidates} Vs Y_{#Omega}", lNbSteps, lNbVariables, lNbBinsPerVar );
-        else if (!fwithSDD) fCFContCascadePIDOmegaPlus = new AliCFContainer(Form("fCFContCascadePIDOmegaPlus_minnTPCcls%i_vtxlim%.1f-%.1f_minptdghtrk%.1f_etacutdghtrk%.1f_wSDDoff",fMinnTPCcls,fVtxRange,fVtxRangeMin,fMinPtCutOnDaughterTracks,fEtaCutOnDaughterTracks),"Pt_{cascade} Vs M_{#Omega^{+} candidates} Vs Y_{#Omega}", lNbSteps, lNbVariables, lNbBinsPerVar );
-   } else if (!fkSDDSelectionOn) fCFContCascadePIDOmegaPlus = new AliCFContainer(Form("fCFContCascadePIDOmegaPlus_minnTPCcls%i_vtxlim%.1f-%.1f_minptdghtrk%.1f_etacutdghtrk%.1f_woSDD",fMinnTPCcls,fVtxRange,fVtxRangeMin,fMinPtCutOnDaughterTracks,fEtaCutOnDaughterTracks),"Pt_{cascade} Vs M_{#Omega^{+} candidates} Vs Y_{#Omega}", lNbSteps, lNbVariables, lNbBinsPerVar );
+   if (fCollidingSystem == "pp" && fkSDDSelectionOn) {
+        if (fwithSDD) fCFContCascadePIDOmegaPlus = new AliCFContainer(Form("fCFContCascadePIDOmegaPlus_minnTPCcls%i_vtxlim%.1f-%.1f_minptdghtrk%.1f_etacutdghtrk%.1f_wSDDon",
+                                                                      fMinnTPCcls,fVtxRange,fVtxRangeMin,fMinPtCutOnDaughterTracks,fEtaCutOnDaughterTracks),
+                                                                      "Pt_{cascade} Vs M_{#Omega^{+} candidates} Vs Y_{#Omega}", lNbSteps, lNbVariables, lNbBinsPerVar );
+        else if (!fwithSDD) fCFContCascadePIDOmegaPlus = new AliCFContainer(Form("fCFContCascadePIDOmegaPlus_minnTPCcls%i_vtxlim%.1f-%.1f_minptdghtrk%.1f_etacutdghtrk%.1f_wSDDoff",
+                                                                            fMinnTPCcls,fVtxRange,fVtxRangeMin,fMinPtCutOnDaughterTracks,fEtaCutOnDaughterTracks),
+                                                                            "Pt_{cascade} Vs M_{#Omega^{+} candidates} Vs Y_{#Omega}", lNbSteps, lNbVariables, lNbBinsPerVar );
+   } else if (fCollidingSystem == "pp" && !fkSDDSelectionOn) {
+        fCFContCascadePIDOmegaPlus = new AliCFContainer(Form("fCFContCascadePIDOmegaPlus_minnTPCcls%i_vtxlim%.1f-%.1f_minptdghtrk%.1f_etacutdghtrk%.1f_woSDD",
+                                                        fMinnTPCcls,fVtxRange,fVtxRangeMin,fMinPtCutOnDaughterTracks,fEtaCutOnDaughterTracks),
+                                                        "Pt_{cascade} Vs M_{#Omega^{+} candidates} Vs Y_{#Omega}", lNbSteps, lNbVariables, lNbBinsPerVar );
+   } else if (fCollidingSystem == "pPb") {
+        fCFContCascadePIDOmegaPlus = new AliCFContainer(Form("fCFContCascadePIDOmegaPlus_minnTPCcls%i_vtxlim%.1f-%.1f_minptdghtrk%.1f_etacutdghtrk%.1f",
+                                                        fMinnTPCcls,fVtxRange,fVtxRangeMin,fMinPtCutOnDaughterTracks,fEtaCutOnDaughterTracks),
+                                                        "Pt_{cascade} Vs M_{#Omega^{+} candidates} Vs Y_{#Omega}", lNbSteps, lNbVariables, lNbBinsPerVar );
+   }
      //Setting the bin limits 
    fCFContCascadePIDOmegaPlus->SetBinLimits(0,   0.0  ,  10.0 );       // Pt(Cascade)
    fCFContCascadePIDOmegaPlus->SetBinLimits(1,   1.5  ,   2.5 );       // Omega Effective mass
@@ -833,10 +924,22 @@ void AliAnalysisTaskCheckCascadepp276::UserCreateOutputObjects() {
    lNbBinsPerVar[16] = 112;    //Proper lenght of cascade       
    lNbBinsPerVar[17] = 112;    //Proper lenght of V0
    lNbBinsPerVar[18] = 112;    //Distance V0-Xi in transverse plane
-   if (fkSDDSelectionOn) {
-        if (fwithSDD) fCFContCascadeCuts = new AliCFContainer(Form("fCFContCascadeCuts_minnTPCcls%i_vtxlim%.1f-%.1f_minptdghtrk%.1f_etacutdghtrk%.1f_wSDDon",fMinnTPCcls,fVtxRange,fVtxRangeMin,fMinPtCutOnDaughterTracks,fEtaCutOnDaughterTracks),"Container for Cascade cuts", lNbSteps, lNbVariables, lNbBinsPerVar);
-        else if (!fwithSDD) fCFContCascadeCuts = new AliCFContainer(Form("fCFContCascadeCuts_minnTPCcls%i_vtxlim%.1f-%.1f_minptdghtrk%.1f_etacutdghtrk%.1f_wSDDoff",fMinnTPCcls,fVtxRange,fVtxRangeMin,fMinPtCutOnDaughterTracks,fEtaCutOnDaughterTracks),"Container for Cascade cuts", lNbSteps, lNbVariables, lNbBinsPerVar);
-   } else if (!fkSDDSelectionOn) fCFContCascadeCuts = new AliCFContainer(Form("fCFContCascadeCuts_minnTPCcls%i_vtxlim%.1f-%.1f_minptdghtrk%.1f_etacutdghtrk%.1f_woSDD",fMinnTPCcls,fVtxRange,fVtxRangeMin,fMinPtCutOnDaughterTracks,fEtaCutOnDaughterTracks),"Container for Cascade cuts", lNbSteps, lNbVariables, lNbBinsPerVar);
+   if (fCollidingSystem == "pp" && fkSDDSelectionOn) {
+        if (fwithSDD) fCFContCascadeCuts = new AliCFContainer(Form("fCFContCascadeCuts_minnTPCcls%i_vtxlim%.1f-%.1f_minptdghtrk%.1f_etacutdghtrk%.1f_wSDDon",
+                                                              fMinnTPCcls,fVtxRange,fVtxRangeMin,fMinPtCutOnDaughterTracks,fEtaCutOnDaughterTracks),
+                                                              "Container for Cascade cuts", lNbSteps, lNbVariables, lNbBinsPerVar);
+        else if (!fwithSDD) fCFContCascadeCuts = new AliCFContainer(Form("fCFContCascadeCuts_minnTPCcls%i_vtxlim%.1f-%.1f_minptdghtrk%.1f_etacutdghtrk%.1f_wSDDoff",
+                                                                    fMinnTPCcls,fVtxRange,fVtxRangeMin,fMinPtCutOnDaughterTracks,fEtaCutOnDaughterTracks),
+                                                                    "Container for Cascade cuts", lNbSteps, lNbVariables, lNbBinsPerVar);
+   } else if (fCollidingSystem == "pp" && !fkSDDSelectionOn) {
+        fCFContCascadeCuts = new AliCFContainer(Form("fCFContCascadeCuts_minnTPCcls%i_vtxlim%.1f-%.1f_minptdghtrk%.1f_etacutdghtrk%.1f_woSDD",
+                                                fMinnTPCcls,fVtxRange,fVtxRangeMin,fMinPtCutOnDaughterTracks,fEtaCutOnDaughterTracks),
+                                                "Container for Cascade cuts", lNbSteps, lNbVariables, lNbBinsPerVar);
+   } else if (fCollidingSystem == "pPb") {
+        fCFContCascadeCuts = new AliCFContainer(Form("fCFContCascadeCuts_minnTPCcls%i_vtxlim%.1f-%.1f_minptdghtrk%.1f_etacutdghtrk%.1f",
+                                                fMinnTPCcls,fVtxRange,fVtxRangeMin,fMinPtCutOnDaughterTracks,fEtaCutOnDaughterTracks),
+                                                "Container for Cascade cuts", lNbSteps, lNbVariables, lNbBinsPerVar);
+   }
      //Setting the bin limits 
      //0 -  DcaXiDaughters
    Double_t *lBinLim0  = new Double_t[ lNbBinsPerVar[0] + 1 ];
@@ -956,12 +1059,20 @@ void AliAnalysisTaskCheckCascadepp276::UserExec(Option_t *) {
   AliESDEvent *lESDevent = 0x0;
   AliAODEvent *lAODevent = 0x0;
 
+  //----------------------
+  // Check the PIDresponse
   //---------------------
-  //Check the PIDresponse
   if(!fPIDResponse) {
        AliError("Cannot get pid response");
        return;
   }
+  if(! fESDtrackCuts ){
+       fESDtrackCuts = new AliESDtrackCuts();
+  }
+  if(! fUtils ){
+       fUtils = new AliAnalysisUtils();
+  }
+
 
   ///////////////////
   // EVENT SELECTIONS
@@ -1006,7 +1117,7 @@ void AliAnalysisTaskCheckCascadepp276::UserExec(Option_t *) {
   // - Fill the plots
   fHistCascadeMultiplicityBeforeAnySel->Fill(ncascadesBeforeAnySel);
   fHistTrackMultiplicityBeforeAnySel->Fill(nTrackMultiplicityBeforeAnySel);
+
   //--------------
   // SDD selection
   //--------------
@@ -1015,7 +1126,7 @@ void AliAnalysisTaskCheckCascadepp276::UserExec(Option_t *) {
   Int_t nTrackMultiplicityAfterSDDSel = 0;
   // - Selection for ESD and AOD
   if (fAnalysisType == "ESD") {
-     if (fkSDDSelectionOn) {
+     if (fkSDDSelectionOn && fCollidingSystem == "pp") {
         TString trcl = lESDevent->GetFiredTriggerClasses();
         //cout<<"Fired Trigger Classes: "<<trcl<<endl;
         if (fwithSDD){
@@ -1046,7 +1157,7 @@ void AliAnalysisTaskCheckCascadepp276::UserExec(Option_t *) {
      ncascadesAfterSDDSel = lESDevent->GetNumberOfCascades();
      nTrackMultiplicityAfterSDDSel = fESDtrackCuts->GetReferenceMultiplicity(lESDevent,AliESDtrackCuts::kTrackletsITSTPC,0.5);
   } else if (fAnalysisType == "AOD") {
-     if (fkSDDSelectionOn) {
+     if (fkSDDSelectionOn && fCollidingSystem == "pp") {
         TString trcl = lAODevent->GetFiredTriggerClasses();
         if (fwithSDD){
            if(!(trcl.Contains("ALLNOTRD"))) {
@@ -1080,60 +1191,54 @@ void AliAnalysisTaskCheckCascadepp276::UserExec(Option_t *) {
   fHistCascadeMultiplicityAfterSDDSel->Fill(ncascadesAfterSDDSel);
   fHistTrackMultiplicityAfterSDDSel->Fill(nTrackMultiplicityAfterSDDSel);
 
-  //----------------------------------------------
-  // Physics selection (+ re-vertexer for the ESD)
-  //----------------------------------------------
+  //-------------------------------------------
+  // Multiplicity estimators for pPb collisions  //FIXME
+  //-------------------------------------------
+  //AliCentrality* centrality = 0;
+  //if      (fAnalysisType == "ESD" && (fCollidingSystem == "pPb")) centrality = lESDevent->GetCentrality();
+  //else if (fAnalysisType == "AOD" && (fCollidingSystem == "pPb")) centrality = lAODevent->GetCentrality();
+  //Float_t lcentrality = 0.;
+  //if (fCollidingSystem == "pPb") {
+  //     if (fkUseCleaning) lcentrality = centrality->GetCentralityPercentile(fCentrEstimator.Data());
+  //     else {
+  //         lcentrality = centrality->GetCentralityPercentileUnchecked(fCentrEstimator.Data());
+  //         if (centrality->GetQuality()>1) {
+  //             PostData(1, fCFContCascadeCuts);
+  //            return;
+  //         }
+  //     }
+  //     //if (lcentrality<fCentrLowLim||lcentrality>=fCentrUpLim) { 
+  //     //    PostData(1, fCFContCascadeCuts);
+  //     //    return;
+  //     //}
+  //} else if (fCollidingSystem == "pp") lcentrality = 0.;  
+
+  //------------------
+  // Physics selection 
+  //-----------------
   // - Define the variables
   Int_t ncascadesAfterPhysicsSel = 0;
   Int_t nTrackMultiplicityAfterPhysicsSel = 0;
   // - Selection for ESD and AOD
+  UInt_t maskIsSelected = ((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected();
+  Bool_t isSelected = 0;
+  if      (fCollidingSystem == "pp" ) isSelected = (maskIsSelected & AliVEvent::kMB) == AliVEvent::kMB;
+  else if (fCollidingSystem == "pPb") isSelected = (maskIsSelected & AliVEvent::kINT7) == AliVEvent::kINT7;
+  if(! isSelected){
+      PostData(1, fListHistCascade);
+      PostData(2, fCFContCascadePIDXiMinus);
+      PostData(3, fCFContCascadePIDXiPlus);
+      PostData(4, fCFContCascadePIDOmegaMinus);
+      PostData(5, fCFContCascadePIDOmegaPlus);
+      PostData(6, fCFContCascadeCuts);
+      cout<<"We are selecting the events that past tha Physics Selection. This event does not pass the Physics Selection. =>  RETURN!! (Exclude it)..."<<endl;
+      return;
+  }
   if (fAnalysisType == "ESD") {
-      UInt_t maskIsSelected = ((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected();
-      Bool_t isSelected = 0;
-      isSelected = (maskIsSelected & AliVEvent::kMB) == AliVEvent::kMB;
-      if(! isSelected){
-          PostData(1, fListHistCascade);
-          PostData(2, fCFContCascadePIDXiMinus);
-          PostData(3, fCFContCascadePIDXiPlus);
-          PostData(4, fCFContCascadePIDOmegaMinus);
-          PostData(5, fCFContCascadePIDOmegaPlus);
-          PostData(6, fCFContCascadeCuts);
-          cout<<"We are selecting the events that past tha Physics Selection. This event does not pass the Physics Selection. =>  RETURN!! (Exclude it)..."<<endl;
-          return;
-      }
       // - Take the number of cascades and tracks after physics selection
       ncascadesAfterPhysicsSel = lESDevent->GetNumberOfCascades();    
       nTrackMultiplicityAfterPhysicsSel = fESDtrackCuts->GetReferenceMultiplicity(lESDevent,AliESDtrackCuts::kTrackletsITSTPC,0.5);  
-      // - Cascade vertexer (ESD)
-      // Relaunch V0 and Cascade vertexers
-      if (fkRerunV0CascVertexers) { 
-            lESDevent->ResetCascades();
-            lESDevent->ResetV0s();
-            AliV0vertexer *lV0vtxer = new AliV0vertexer();
-            AliCascadeVertexer *lCascVtxer = new AliCascadeVertexer();
-            //lV0vtxer->GetCuts(fV0Sels);
-            //lCascVtxer->GetCuts(fCascSels);
-            lV0vtxer->SetCuts(fV0Sels);      // NB don't use SetDefaultCuts!! because it acts on static variables 
-            lCascVtxer->SetCuts(fCascSels);
-            lV0vtxer->Tracks2V0vertices(lESDevent);
-            lCascVtxer->V0sTracks2CascadeVertices(lESDevent);
-            //delete lV0vtxer;
-            //delete lCascVtxer;
-      }         
   } else if (fAnalysisType == "AOD") {
-      UInt_t maskIsSelected = ((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected();
-      Bool_t isSelected = 0;
-      isSelected = (maskIsSelected & AliVEvent::kMB) == AliVEvent::kMB;
-      if(! isSelected){
-          PostData(1, fListHistCascade);
-          PostData(2, fCFContCascadePIDXiMinus);
-          PostData(3, fCFContCascadePIDXiPlus);
-          PostData(4, fCFContCascadePIDOmegaMinus);
-          PostData(5, fCFContCascadePIDOmegaPlus);
-          PostData(6, fCFContCascadeCuts);
-          cout<<"We are selecting the events that past tha Physics Selection. This event does not pass the Physics Selection. =>  RETURN!! (Exclude it)..."<<endl;
-          return;
-      }    
       // - Take the number of cascades and tracks after the physics selection
       ncascadesAfterPhysicsSel = lAODevent->GetNumberOfCascades();
       nTrackMultiplicityAfterPhysicsSel = -100;  //FIXME: I can't find the equivalent method for the AOD    
@@ -1142,20 +1247,90 @@ void AliAnalysisTaskCheckCascadepp276::UserExec(Option_t *) {
   fHistCascadeMultiplicityAfterPhysicsSel->Fill(ncascadesAfterPhysicsSel);
   fHistTrackMultiplicityAfterPhysicsSel->Fill(nTrackMultiplicityAfterPhysicsSel);
 
+  //---------------------------------------
+  // Re-run cascade vertexer (only for ESD)
+  //---------------------------------------
+  if (fAnalysisType == "ESD" && fkRerunV0CascVertexers) {
+       lESDevent->ResetCascades();
+       lESDevent->ResetV0s();
+       AliV0vertexer *lV0vtxer = new AliV0vertexer();
+       AliCascadeVertexer *lCascVtxer = new AliCascadeVertexer();
+       //lV0vtxer->GetCuts(fV0Sels);
+       //lCascVtxer->GetCuts(fCascSels);
+       lV0vtxer->SetCuts(fV0Sels);      // NB don't use SetDefaultCuts!! because it acts on static variables 
+       lCascVtxer->SetCuts(fCascSels);
+       lV0vtxer->Tracks2V0vertices(lESDevent);
+       lCascVtxer->V0sTracks2CascadeVertices(lESDevent);
+       //delete lV0vtxer;
+       //delete lCascVtxer;
+  }
+
   //------------------------------
   // Well-established PV selection
   //------------------------------
   // - Define variables
   Int_t ncascadesForSelEvtNoTPCOnly = 0;
   Int_t nTrackMultiplicityForSelEvtNoTPCOnly = 0;
-  // - Selection for ESD and AOD
-  if (fAnalysisType == "ESD") {
-      // - Vertex coordinates: get the PVs stored in the ESD found with tracks and SPD
-      const AliESDVertex *lPrimaryTrackingESDVtx = lESDevent->GetPrimaryVertexTracks();
-      const AliESDVertex *lPrimarySPDVtx = lESDevent->GetPrimaryVertexSPD();
-      // - Select only looking at events with well-established PV
-      if (fkQualityCutNoTPConlyPrimVtx) {
-          if (!lPrimarySPDVtx->GetStatus() && !lPrimaryTrackingESDVtx->GetStatus() ){
+  // - Selection for the two colliding systems
+  if (fCollidingSystem == "pp") {
+      // - Selection for ESD and AOD
+      if (fAnalysisType == "ESD") {
+          // - Vertex coordinates: get the PVs stored in the ESD found with tracks and SPD
+          const AliESDVertex *lPrimaryTrackingESDVtx = lESDevent->GetPrimaryVertexTracks();
+          const AliESDVertex *lPrimarySPDVtx = lESDevent->GetPrimaryVertexSPD();
+          // - Select only looking at events with well-established PV
+          if (fkQualityCutNoTPConlyPrimVtx) {
+              if (!lPrimarySPDVtx->GetStatus() && !lPrimaryTrackingESDVtx->GetStatus() ){
+                  AliWarning("Pb / No SPD prim. vertex nor prim. Tracking vertex ... return !");
+                  PostData(1, fListHistCascade);
+                  PostData(2, fCFContCascadePIDXiMinus);
+                  PostData(3, fCFContCascadePIDXiPlus);
+                  PostData(4, fCFContCascadePIDOmegaMinus);
+                  PostData(5, fCFContCascadePIDOmegaPlus);
+                  PostData(6, fCFContCascadeCuts);
+                  return;
+              }
+          }
+          // - Take the number of cascades and tracks after TPConly selection
+          ncascadesForSelEvtNoTPCOnly = lESDevent->GetNumberOfCascades();
+          nTrackMultiplicityForSelEvtNoTPCOnly = fESDtrackCuts->GetReferenceMultiplicity(lESDevent,AliESDtrackCuts::kTrackletsITSTPC,0.5);
+      } else if (fAnalysisType == "AOD") {
+          // - Vertex coordinates: get the PVs stored in the AOD found with tracks and SPD
+          const AliAODVertex *lPrimarySPDVtx = lAODevent->GetPrimaryVertexSPD();
+          const AliAODVertex *lPrimaryTrackingAODVtx = lAODevent->GetPrimaryVertex();
+          // - Select only looking at events with well-established PV
+          if (fkQualityCutNoTPConlyPrimVtx) {
+              if (!lPrimarySPDVtx && !lPrimaryTrackingAODVtx) {
+                  AliWarning("Pb / No SPD prim. vertex nor prim. Tracking vertex ... return !");
+                  PostData(1, fListHistCascade);
+                  PostData(2, fCFContCascadePIDXiMinus);
+                  PostData(3, fCFContCascadePIDXiPlus);
+                  PostData(4, fCFContCascadePIDOmegaMinus);
+                  PostData(5, fCFContCascadePIDOmegaPlus);
+                  PostData(6, fCFContCascadeCuts);
+                  return;
+              }
+          }
+          // - Take the number of cascades and tracks after TPConly selection
+          ncascadesForSelEvtNoTPCOnly = lAODevent->GetNumberOfCascades();
+          nTrackMultiplicityForSelEvtNoTPCOnly = -100;  //FIXME: I can't find the equivalent method for the AOD
+      }
+  } else if (fCollidingSystem == "pPb") {
+      if (fAnalysisType == "ESD") {
+          Bool_t fHasVertex = kFALSE;
+          const AliESDVertex *vertex = lESDevent->GetPrimaryVertexTracks();
+          if (vertex->GetNContributors() < 1) {
+              vertex = lESDevent->GetPrimaryVertexSPD();
+              if (vertex->GetNContributors() < 1) fHasVertex = kFALSE;
+              else fHasVertex = kTRUE;
+              TString vtxTyp = vertex->GetTitle();
+              Double_t cov[6]={0};
+              vertex->GetCovarianceMatrix(cov);
+              Double_t zRes = TMath::Sqrt(cov[5]);
+              if (vtxTyp.Contains("vertexer:Z") && (zRes>0.25)) fHasVertex = kFALSE;
+          }
+          else fHasVertex = kTRUE;
+          if (fUtils->IsFirstEventInChunk(lESDevent)) { //Is First event in chunk rejection: Still present!
               AliWarning("Pb / No SPD prim. vertex nor prim. Tracking vertex ... return !");
               PostData(1, fListHistCascade);
               PostData(2, fCFContCascadePIDXiMinus);
@@ -1165,17 +1340,24 @@ void AliAnalysisTaskCheckCascadepp276::UserExec(Option_t *) {
               PostData(6, fCFContCascadeCuts);
               return;
           }
-      }
-      // - Take the number of cascades and tracks after TPConly selection
-      ncascadesForSelEvtNoTPCOnly = lESDevent->GetNumberOfCascades();
-      nTrackMultiplicityForSelEvtNoTPCOnly = fESDtrackCuts->GetReferenceMultiplicity(lESDevent,AliESDtrackCuts::kTrackletsITSTPC,0.5);
-  } else if (fAnalysisType == "AOD") {
-      // - Vertex coordinates: get the PVs stored in the AOD found with tracks and SPD
-      const AliAODVertex *lPrimarySPDVtx = lAODevent->GetPrimaryVertexSPD();
-      const AliAODVertex *lPrimaryTrackingAODVtx = lAODevent->GetPrimaryVertex();
-      // - Select only looking at events with well-established PV
-      if (fkQualityCutNoTPConlyPrimVtx) {
-          if (!lPrimarySPDVtx && !lPrimaryTrackingAODVtx) {
+          // - Take the number of cascades and tracks after TPConly selection
+          ncascadesForSelEvtNoTPCOnly = lESDevent->GetNumberOfCascades();
+          nTrackMultiplicityForSelEvtNoTPCOnly = fESDtrackCuts->GetReferenceMultiplicity(lESDevent,AliESDtrackCuts::kTrackletsITSTPC,0.5);
+      } else if (fAnalysisType == "AOD") {
+          Bool_t fHasVertex = kFALSE;
+          const AliAODVertex *vertex = lAODevent->GetPrimaryVertex();
+          if (vertex->GetNContributors() < 1) {
+              vertex = lAODevent->GetPrimaryVertexSPD();
+              if (vertex->GetNContributors() < 1) fHasVertex = kFALSE;
+              else fHasVertex = kTRUE;
+              TString vtxTyp = vertex->GetTitle();
+              Double_t cov[6]={0};
+              vertex->GetCovarianceMatrix(cov);
+              Double_t zRes = TMath::Sqrt(cov[5]);
+              if (vtxTyp.Contains("vertexer:Z") && (zRes>0.25)) fHasVertex = kFALSE;
+          }  
+          else fHasVertex = kTRUE;
+          if (fHasVertex == kFALSE) { //Is First event in chunk rejection: Still present!  //FIXME
               AliWarning("Pb / No SPD prim. vertex nor prim. Tracking vertex ... return !");
               PostData(1, fListHistCascade);
               PostData(2, fCFContCascadePIDXiMinus);
@@ -1184,16 +1366,17 @@ void AliAnalysisTaskCheckCascadepp276::UserExec(Option_t *) {
               PostData(5, fCFContCascadePIDOmegaPlus);
               PostData(6, fCFContCascadeCuts);
               return;
-          }
+          }  
+          // - Take the number of cascades and tracks after TPConly selection
+          ncascadesForSelEvtNoTPCOnly = lAODevent->GetNumberOfCascades();
+          nTrackMultiplicityForSelEvtNoTPCOnly = -100;  //FIXME: I can't find the equivalent method for the AOD
       }
-      // - Take the number of cascades and tracks after TPConly selection
-      ncascadesForSelEvtNoTPCOnly = lAODevent->GetNumberOfCascades();
-      nTrackMultiplicityForSelEvtNoTPCOnly = -100;  //FIXME: I can't find the equivalent method for the AOD
   }
   // - Fill the plots
   fHistCascadeMultiplicityForSelEvtNoTPCOnly->Fill(ncascadesForSelEvtNoTPCOnly);
   fHistTrackMultiplicityForSelEvtNoTPCOnly->Fill(nTrackMultiplicityForSelEvtNoTPCOnly);
-    
+   
   //----------------
   // Pilup selection
   //----------------
@@ -1201,7 +1384,7 @@ void AliAnalysisTaskCheckCascadepp276::UserExec(Option_t *) {
   Int_t ncascadesForSelEvtNoTPCOnlyNoPileup = 0;
   Int_t nTrackMultiplicityForSelEvtNoTPCOnlyNoPileup = 0;
   // - Selection for ESD and AOD
-  if (fAnalysisType == "ESD") {
+  if (fAnalysisType == "ESD" && fCollidingSystem == "pp") {
       if (fkQualityCutPileup) {
           if(lESDevent->IsPileupFromSPD()){
               AliWarning("Pb / Pile-up event ... return!");
@@ -1217,7 +1400,7 @@ void AliAnalysisTaskCheckCascadepp276::UserExec(Option_t *) {
       // - Take the number of cascades and tracks after Pileup selection
       ncascadesForSelEvtNoTPCOnlyNoPileup = lESDevent->GetNumberOfCascades();
       nTrackMultiplicityForSelEvtNoTPCOnlyNoPileup = fESDtrackCuts->GetReferenceMultiplicity(lESDevent,AliESDtrackCuts::kTrackletsITSTPC,0.5);
-  } else if (fAnalysisType == "AOD") {
+  } else if (fAnalysisType == "AOD" && fCollidingSystem == "pp") {
       if (fkQualityCutPileup) {
           if(lAODevent->IsPileupFromSPD()){
               AliWarning("Pb / Pile-up event ... return!");
index ad6650f6f38812279d272d327d1909e66d7e28e0..35bebe3167565e33038ec416b7360ec183c68041 100644 (file)
@@ -28,6 +28,7 @@ class AliESDEvent;
 class AliPhysicsSelection;
 class AliCFContainer;
 class AliPIDResponse;
+class AliAnalysisUtils;
 
 #include "TString.h"
 
@@ -53,6 +54,7 @@ class AliAnalysisTaskCheckCascadepp276 : public AliAnalysisTaskSE {
   virtual void   Terminate(Option_t *);
   
   void SetAnalysisType               (const char* analysisType          = "ESD"  ) { fAnalysisType                = analysisType;               }
+  void SetCollidingSystem            (const char* collidingSystem       = "pp") { fCollidingSystem             = collidingSystem;            }
   void SetRelaunchV0CascVertexers    (Bool_t rerunV0CascVertexers       = kFALSE ) { fkRerunV0CascVertexers       = rerunV0CascVertexers;       }
   void SetSDDSelection               (Bool_t sddOnSelection             = kTRUE  ) { fkSDDSelectionOn             = sddOnSelection;             }
   void SetQualityCutZprimVtxPos      (Bool_t qualityCutZprimVtxPos      = kTRUE  ) { fkQualityCutZprimVtxPos      = qualityCutZprimVtxPos;      }
@@ -74,9 +76,13 @@ class AliAnalysisTaskCheckCascadepp276 : public AliAnalysisTaskSE {
         // http://root.cern.ch/download/doc/11InputOutput.pdf, page 14
 
 
-        TString         fAnalysisType;                  // "ESD" or "AOD" analysis type        
-        AliESDtrackCuts *fESDtrackCuts;                 // ESD track cuts used for primary track definition
-        AliPIDResponse  *fPIDResponse;                  //! PID response object
+        TString          fAnalysisType;                  // "ESD" or "AOD" analysis type       
+       // TString          fCollidingSystem;               // "pPb" or "pp" colliding system
+        AliESDtrackCuts  *fESDtrackCuts;                 // ESD track cuts used for primary track definition
+       // AliPIDResponse   *fPIDResponse;                  //! PID response object
+        AliAnalysisUtils *fUtils;                        // analysis utils (for pA vertex selection)
+        TString          fCollidingSystem;               // "pPb" or "pp" colliding system
+        AliPIDResponse   *fPIDResponse;                  //! PID response object
 
         Bool_t          fkRerunV0CascVertexers;         // Boolean : kTRUE = relaunch both V0 + Cascade vertexers
         Bool_t          fkSDDSelectionOn;               // Boolena : kTRUE = select events with SDD on
index 2f4398dd66a86b1c62a301d720cef095cc96b573..48bf37e19e4808126d67d8bb8067d00ec93f02b0 100644 (file)
 //                        - cos of PA V0 wrt Xi vertex and not primary vertex  
 //                        - distance xi-V0 added in the container
 //                        - AOD analysis developed (January 2012)
-//
-//
-//
-//              Adapted to pp 2.76 analysis: D. Colella, domenico.colella@ba.infn.it (Nov. 2012):
+//                   
+//            Adapted to pp 2.76 analysis: D. Colella, domenico.colella@ba.infn.it (Nov. 2012):
 //                        - added new and removed other histograms 
 //                        - Physics selection moved here (mainly for normalization in the efficiency calcuation)
 //                        - Centrality selection deleted
 //                        - 3DHisto denominator moved before any event selection for Normalization
 //                        - injected and natural part of MC selection removed
 // 
-//
+//            Adapted to pPb 5.02 TeV analysis: D. Colella, domenico.colella@ba.infn.it (Sep. 2014)
+//                        - Added the parameter fCollidingSystem, to distingish between pp and pPb procedures
+//                         
 //
 //-----------------------------------------------------------------
 
@@ -83,6 +83,7 @@
 #include "AliAODEvent.h"
 #include "AliAODMCParticle.h" 
 #include "AliAnalysisTaskCheckPerformanceCascadepp276.h"
+#include "AliAnalysisUtils.h"
 
 using std::cout;
 using std::endl;
@@ -96,6 +97,8 @@ AliAnalysisTaskCheckPerformanceCascadepp276::AliAnalysisTaskCheckPerformanceCasc
 : AliAnalysisTaskSE(), // <- take care to AliAnalysisTask( empty )
     fAnalysisType                  ("ESD"), 
     fESDtrackCuts                  (0), 
+    fUtils                         (0),
+    fCollidingSystem               ("pp"), 
     fPIDResponse                   (0),
     fkRerunV0CascVertexers         (0),
     fkSDDselectionOn               (kTRUE),
@@ -294,6 +297,8 @@ AliAnalysisTaskCheckPerformanceCascadepp276::AliAnalysisTaskCheckPerformanceCasc
   : AliAnalysisTaskSE(name),
     fAnalysisType                  ("ESD"), 
     fESDtrackCuts                  (0),
+    fUtils                         (0),
+    fCollidingSystem               ("pp"),
     fPIDResponse                   (0),
     fkRerunV0CascVertexers         (0),
     fkSDDselectionOn               (kTRUE),
@@ -484,30 +489,46 @@ AliAnalysisTaskCheckPerformanceCascadepp276::AliAnalysisTaskCheckPerformanceCasc
       // Define input and output slots here
       // Input slot #0 works with a TChain
       // Output slot #1 writes into a TList container (cascade)
-        
-        // PbPb default cuts  
-        fV0Sels[0] =  33.;       // max allowed chi2
-        fV0Sels[1] =   0.1;      // min allowed impact parameter for the 1st daughter 
-        fV0Sels[2] =   0.1;      // min allowed impact parameter for the 2nd daughter 
-        fV0Sels[3] =   1.5 ;     // max allowed DCA between the daughter tracks       
-        fV0Sels[4] =   0.9 ;     // min allowed cosine of V0's pointing angle         
-        fV0Sels[5] =   0.2;      // min radius of the fiducial volume                 
-        fV0Sels[6] = 200.  ;     // max radius of the fiducial volume                 
-        fCascSels[0] =  33.;     // max allowed chi2 
-        fCascSels[1] =   0.01;   // min allowed V0 impact parameter                    
-        fCascSels[2] =   0.008;  // "window" around the Lambda mass                    
-        fCascSels[3] =   0.01;   // min allowed bachelor's impact parameter            
-        fCascSels[4] =   2.0  ;  // max allowed DCA between the V0 and the bachelor    
-        fCascSels[5] =   0.95;   // min allowed cosine of the cascade pointing angle   
-        fCascSels[6] =   0.2  ;  // min radius of the fiducial volume                  
-        fCascSels[7] = 100.   ;  // max radius of the fiducial volume                  
+      if (fCollidingSystem == "pp") {
+         fV0Sels[0] =  33.  ;     // max allowed chi2
+         fV0Sels[1] =   0.01;     // min allowed impact parameter for the 1st daughter 
+         fV0Sels[2] =   0.01;     // min allowed impact parameter for the 2nd daughter 
+         fV0Sels[3] =   1.5;      // max allowed DCA between the daughter tracks       
+         fV0Sels[4] =   0.9;      // min allowed cosine of V0's pointing angle - This is pT dependent        
+         fV0Sels[5] =   0.2;      // min radius of the fiducial volume                 
+         fV0Sels[6] = 200.;       // max radius of the fiducial volume                 
+         fCascSels[0] =  33.;     // max allowed chi2 (same as PDC07)
+         fCascSels[1] =   0.01;   // min allowed V0 impact parameter                    
+         fCascSels[2] =   0.008;  // "window" around the Lambda mass                    
+         fCascSels[3] =   0.01;   // min allowed bachelor's impact parameter          
+         fCascSels[4] =   2.0;    // max allowed DCA between the V0 and the bachelor    
+         fCascSels[5] =   0.95;   // min allowed cosine of the cascade pointing angle   
+         fCascSels[6] =   0.2;    // min radius of the fiducial volume                  
+         fCascSels[7] = 100.;     // max radius of the fiducial volume 
+      } else if (fCollidingSystem == "pPb") {
+         fV0Sels[0] =  33.  ;     // max allowed chi2
+         fV0Sels[1] =   0.02;     // min allowed impact parameter for the 1st daughter (LHC09a4 : 0.05)
+         fV0Sels[2] =   0.02;     // min allowed impact parameter for the 2nd daughter (LHC09a4 : 0.05)
+         fV0Sels[3] =   2.0 ;     // max allowed DCA between the daughter tracks       (LHC09a4 : 0.5)
+         fV0Sels[4] =   0.95;     // min allowed cosine of V0's pointing angle         (LHC09a4 : 0.99)
+         fV0Sels[5] =   1.0 ;     // min radius of the fiducial volume                 (LHC09a4 : 0.2)
+         fV0Sels[6] = 200.  ;     // max radius of the fiducial volume                 (LHC09a4 : 100.0)
+         fCascSels[0] =  33.   ;  // max allowed chi2 (same as PDC07)
+         fCascSels[1] =   0.05 ;  // min allowed V0 impact parameter                    (PDC07 : 0.05   / LHC09a4 : 0.025 )
+         fCascSels[2] =   0.010;  // "window" around the Lambda mass                    (PDC07 : 0.008  / LHC09a4 : 0.010 )
+         fCascSels[3] =   0.03 ;  // min allowed bachelor's impact parameter            (PDC07 : 0.035  / LHC09a4 : 0.025 )
+         fCascSels[4] =   2.0  ;  // max allowed DCA between the V0 and the bachelor    (PDC07 : 0.1    / LHC09a4 : 0.2   )
+         fCascSels[5] =   0.95 ;  // min allowed cosine of the cascade pointing angle   (PDC07 : 0.9985 / LHC09a4 : 0.998 )
+         fCascSels[6] =   0.4  ;  // min radius of the fiducial volume                  (PDC07 : 0.9    / LHC09a4 : 0.2   )
+         fCascSels[7] = 100.   ;  // max radius of the fiducial volume                  (PDC07 : 100    / LHC09a4 : 100   )
+      }
               
-        DefineOutput(1, TList::Class());
-        DefineOutput(2, AliCFContainer::Class());
-        DefineOutput(3, AliCFContainer::Class());
-        DefineOutput(4, AliCFContainer::Class());
-        DefineOutput(5, AliCFContainer::Class());
-        DefineOutput(6, AliCFContainer::Class());
+      DefineOutput(1, TList::Class());
+      DefineOutput(2, AliCFContainer::Class());
+      DefineOutput(3, AliCFContainer::Class());
+      DefineOutput(4, AliCFContainer::Class());
+      DefineOutput(5, AliCFContainer::Class());
+      DefineOutput(6, AliCFContainer::Class());
     }
 
     //____Destructor____
@@ -549,6 +570,9 @@ void AliAnalysisTaskCheckPerformanceCascadepp276::UserCreateOutputObjects() {
  if (! fESDtrackCuts ){
       fESDtrackCuts = new AliESDtrackCuts();
  }
+ if (! fUtils){
+      fUtils = new AliAnalysisUtils();
+ }
  
  //----------------------
  // Initialize the histos
@@ -1454,31 +1478,6 @@ void AliAnalysisTaskCheckPerformanceCascadepp276::UserExec(Option_t *) {
            cout << "Name of the file with pb :" <<  CurrentFileName() << endl;
            return;
        }
-       // - Cascade vertexer (ESD)
-       // Relaunch V0 and Cascade vertexer
-       if (fkRerunV0CascVertexers) { 
-           lESDevent->ResetCascades();
-           lESDevent->ResetV0s();
-           AliV0vertexer *lV0vtxer = new AliV0vertexer();
-           AliCascadeVertexer *lCascVtxer = new AliCascadeVertexer();
-           //lV0vtxer->GetCuts(fV0Sels);
-           //lCascVtxer->GetCuts(fCascSels);
-           lV0vtxer->SetCuts(fV0Sels);      // NB don't use SetDefaultCuts!! because it acts on static variables 
-           lCascVtxer->SetCuts(fCascSels);
-           lV0vtxer->Tracks2V0vertices(lESDevent);
-           lCascVtxer->V0sTracks2CascadeVertices(lESDevent);
-           //delete lV0vtxer;
-           //delete lCascVtxer; 
-           //---
-           //lESDevent->ResetCascades();
-           //lESDevent->ResetV0s();
-           //AliV0vertexer lV0vtxer;
-           //AliCascadeVertexer lCascVtxer;
-           //lV0vtxer.SetCuts(fV0Sels);
-           //lCascVtxer.SetCuts(fCascSels);
-           //lV0vtxer.Tracks2V0vertices(lESDevent);
-           //lCascVtxer.V0sTracks2CascadeVertices(lESDevent);
-       }
    } else if (fAnalysisType == "AOD") {  
        lAODevent = dynamic_cast<AliAODEvent*>( InputEvent() ); 
        if (!lAODevent) {
@@ -1509,7 +1508,7 @@ void AliAnalysisTaskCheckPerformanceCascadepp276::UserExec(Option_t *) {
        //Multiplicity
        Int_t lMultiplicity = -100;
        nTrackMultiplicityBeforeAnySel = lMultiplicity;
-       ncascadesBeforeAnySel  = lAODevent->GetNumberOfCascades();
+       ncascadesBeforeAnySel = lAODevent->GetNumberOfCascades();
    }
    fHistTrackMultiplicityBeforeAnySel->Fill(nTrackMultiplicityBeforeAnySel);
    fHistCascadeMultiplicityBeforeAnySel->Fill(ncascadesBeforeAnySel);
@@ -1520,7 +1519,7 @@ void AliAnalysisTaskCheckPerformanceCascadepp276::UserExec(Option_t *) {
    // - Define variables
    Int_t  ncascadesAfterSDDSel          = -1; //number of cascades after SDD selection
    Int_t  nTrackMultiplicityAfterSDDSel = -1; //number of tracks after SDD selection
-   if (fkSDDselectionOn) {
+   if (fkSDDselectionOn && fCollidingSystem == "pp") {
         TString trcl = " ";
         trcl = lESDevent->GetFiredTriggerClasses();
         if (fAnalysisType == "ESD") trcl = lESDevent->GetFiredTriggerClasses();
@@ -1673,7 +1672,6 @@ void AliAnalysisTaskCheckPerformanceCascadepp276::UserExec(Option_t *) {
        }
    }
 
    //--------------------
    // - Physics selection
    //--------------------
@@ -1681,35 +1679,24 @@ void AliAnalysisTaskCheckPerformanceCascadepp276::UserExec(Option_t *) {
    Int_t    ncascadesAfterPhysicsSel          = -1; //number of cascades after physics selection
    Int_t    nTrackMultiplicityAfterPhysicsSel = -1; //number of tracks after physics selection
    // - Selection for ESD and AOD
+   UInt_t maskIsSelected = ((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected();
+   Bool_t isSelected = 0;
+   if      (fCollidingSystem == "pp" ) isSelected = (maskIsSelected & AliVEvent::kMB) == AliVEvent::kMB;
+   else if (fCollidingSystem == "pPb") isSelected = (maskIsSelected & AliVEvent::kINT7) == AliVEvent::kINT7;
+   if(!isSelected){
+       PostData(1, fListHistCascade);
+       PostData(2, fCFContCascadePIDAsXiMinus);
+       PostData(3, fCFContCascadePIDAsXiPlus);
+       PostData(4, fCFContCascadePIDAsOmegaMinus);
+       PostData(5, fCFContCascadePIDAsOmegaPlus);
+       PostData(6, fCFContAsCascadeCuts);
+       return;
+   }
    if (fAnalysisType == "ESD") {
-       UInt_t maskIsSelected = ((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected();
-       Bool_t isSelected = 0;
-       isSelected = (maskIsSelected & AliVEvent::kMB) == AliVEvent::kMB;
-       if(!isSelected){
-           PostData(1, fListHistCascade);
-           PostData(2, fCFContCascadePIDAsXiMinus);
-           PostData(3, fCFContCascadePIDAsXiPlus);
-           PostData(4, fCFContCascadePIDAsOmegaMinus);
-           PostData(5, fCFContCascadePIDAsOmegaPlus);
-           PostData(6, fCFContAsCascadeCuts);
-           return;
-       }
        // - Take the number of cascades and tracks after physics selection
        ncascadesAfterPhysicsSel = lESDevent->GetNumberOfCascades();
        nTrackMultiplicityAfterPhysicsSel = fESDtrackCuts->GetReferenceMultiplicity(lESDevent, AliESDtrackCuts::kTrackletsITSTPC, 0.5);
    } else if (fAnalysisType == "AOD") {
-       UInt_t maskIsSelected = ((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected();
-       Bool_t isSelected = 0;
-       isSelected = (maskIsSelected & AliVEvent::kMB) == AliVEvent::kMB;
-       if(!isSelected){
-           PostData(1, fListHistCascade);
-           PostData(2, fCFContCascadePIDAsXiMinus);
-           PostData(3, fCFContCascadePIDAsXiPlus);
-           PostData(4, fCFContCascadePIDAsOmegaMinus);
-           PostData(5, fCFContCascadePIDAsOmegaPlus);
-           PostData(6, fCFContAsCascadeCuts);
-           return;
-       }
        // - Take the number of cascades and tracks after physics selection
        ncascadesAfterPhysicsSel = lAODevent->GetNumberOfCascades();
        nTrackMultiplicityAfterPhysicsSel = -100;
@@ -1717,50 +1704,129 @@ void AliAnalysisTaskCheckPerformanceCascadepp276::UserExec(Option_t *) {
    fHistCascadeMultiplicityAfterPhysicsSel->Fill(ncascadesAfterPhysicsSel);
    fHistTrackMultiplicityAfterPhysicsSel->Fill(nTrackMultiplicityAfterPhysicsSel);
 
+   //------------------------
+   // - Cascade vertexer (ESD)
+   //-------------------------
+   // Relaunch V0 and Cascade vertexer
+   if (fAnalysisType == "ESD" && fkRerunV0CascVertexers) {
+           lESDevent->ResetCascades();
+           lESDevent->ResetV0s();
+           AliV0vertexer *lV0vtxer = new AliV0vertexer();
+           AliCascadeVertexer *lCascVtxer = new AliCascadeVertexer();
+           //lV0vtxer->GetCuts(fV0Sels);
+           //lCascVtxer->GetCuts(fCascSels);
+           lV0vtxer->SetCuts(fV0Sels);      // NB don't use SetDefaultCuts!! because it acts on static variables 
+           lCascVtxer->SetCuts(fCascSels);
+           lV0vtxer->Tracks2V0vertices(lESDevent);
+           lCascVtxer->V0sTracks2CascadeVertices(lESDevent);
+           //delete lV0vtxer;
+           //delete lCascVtxer; 
+   }
+
    //-------------------------------------------------------
    // Select only looking at events with well-established PV
    //-------------------------------------------------------
    Int_t    ncascadesForSelEvtNoTPCOnly                  = -1; //number of cascades after the TPConly selection
    Int_t    nTrackMultiplicityForSelEvtNoTPCOnly         = -1; //number of tracks after the TPConly selection
-   if (fAnalysisType == "ESD" ) {
-       // - Select only looking at events with well-established PV
-       if (fkQualityCutNoTPConlyPrimVtx) {
-           const AliESDVertex *lPrimarySPDVtx = lESDevent->GetPrimaryVertexSPD();
-           const AliESDVertex *lPrimaryTrackingVtx = lESDevent->GetPrimaryVertexTracks();
-           if (!lPrimarySPDVtx->GetStatus() && !lPrimaryTrackingVtx->GetStatus() ){
-               AliWarning("Pb / No SPD prim. vertex nor prim. Tracking vertex ... return !");
-               PostData(1, fListHistCascade);
-               PostData(2, fCFContCascadePIDAsXiMinus);
-               PostData(3, fCFContCascadePIDAsXiPlus);
-               PostData(4, fCFContCascadePIDAsOmegaMinus);
-               PostData(5, fCFContCascadePIDAsOmegaPlus);
-               PostData(6, fCFContAsCascadeCuts);
-               return;
+   // - Selection for the two colliding systems
+   if (fCollidingSystem == "pp") {
+       if (fAnalysisType == "ESD" ) {
+           // - Select only looking at events with well-established PV
+           if (fkQualityCutNoTPConlyPrimVtx) {
+               const AliESDVertex *lPrimarySPDVtx = lESDevent->GetPrimaryVertexSPD();
+               const AliESDVertex *lPrimaryTrackingVtx = lESDevent->GetPrimaryVertexTracks();
+               if (!lPrimarySPDVtx->GetStatus() && !lPrimaryTrackingVtx->GetStatus() ){
+                   AliWarning("Pb / No SPD prim. vertex nor prim. Tracking vertex ... return !");
+                   PostData(1, fListHistCascade);
+                   PostData(2, fCFContCascadePIDAsXiMinus);
+                   PostData(3, fCFContCascadePIDAsXiPlus);
+                   PostData(4, fCFContCascadePIDAsOmegaMinus);
+                   PostData(5, fCFContCascadePIDAsOmegaPlus);
+                   PostData(6, fCFContAsCascadeCuts);
+                   return;
+               }
            }
-       }
-       // - Take the number of cascades and tracks after TPConly selection
-       ncascadesForSelEvtNoTPCOnly = lESDevent->GetNumberOfCascades();
-       nTrackMultiplicityForSelEvtNoTPCOnly = fESDtrackCuts->GetReferenceMultiplicity(lESDevent,AliESDtrackCuts::kTrackletsITSTPC,0.5);
-   } else if (fAnalysisType == "AOD") {
-       // - Select only looking at events with well-established PV
-       if (fkQualityCutNoTPConlyPrimVtx) {
-           const AliAODVertex *lPrimarySPDVtx = lAODevent->GetPrimaryVertexSPD();
-           const AliAODVertex *lPrimaryTrackingAODVtx = lAODevent->GetPrimaryVertex();
-           if (!lPrimarySPDVtx && !lPrimaryTrackingAODVtx) {
-               AliWarning("Pb / No SPD prim. vertex nor prim. Tracking vertex ... return !");
-               PostData(1, fListHistCascade);
-               PostData(2, fCFContCascadePIDAsXiMinus);
-               PostData(3, fCFContCascadePIDAsXiPlus);
-               PostData(4, fCFContCascadePIDAsOmegaMinus);
-               PostData(5, fCFContCascadePIDAsOmegaPlus);
-               PostData(6, fCFContAsCascadeCuts);
-               return;
+           // - Take the number of cascades and tracks after TPConly selection
+           ncascadesForSelEvtNoTPCOnly = lESDevent->GetNumberOfCascades();
+           nTrackMultiplicityForSelEvtNoTPCOnly = fESDtrackCuts->GetReferenceMultiplicity(lESDevent,AliESDtrackCuts::kTrackletsITSTPC,0.5);
+       } else if (fAnalysisType == "AOD") {
+           // - Select only looking at events with well-established PV
+           if (fkQualityCutNoTPConlyPrimVtx) {
+               const AliAODVertex *lPrimarySPDVtx = lAODevent->GetPrimaryVertexSPD();
+               const AliAODVertex *lPrimaryTrackingAODVtx = lAODevent->GetPrimaryVertex();
+               if (!lPrimarySPDVtx && !lPrimaryTrackingAODVtx) {
+                   AliWarning("Pb / No SPD prim. vertex nor prim. Tracking vertex ... return !");
+                   PostData(1, fListHistCascade);
+                   PostData(2, fCFContCascadePIDAsXiMinus);
+                   PostData(3, fCFContCascadePIDAsXiPlus);
+                   PostData(4, fCFContCascadePIDAsOmegaMinus);
+                   PostData(5, fCFContCascadePIDAsOmegaPlus);
+                   PostData(6, fCFContAsCascadeCuts);
+                   return;
+               }
            }
+           // - Take the number of cascades and tracks after TPConly selection
+           ncascadesForSelEvtNoTPCOnly = lAODevent->GetNumberOfCascades();
+           nTrackMultiplicityForSelEvtNoTPCOnly = -100;  //FIXME
+       }
+   } else if (fCollidingSystem == "pPb") {
+      if (fAnalysisType == "ESD") {
+          Bool_t fHasVertex = kFALSE;
+          const AliESDVertex *vertex = lESDevent->GetPrimaryVertexTracks();
+          if (vertex->GetNContributors() < 1) { 
+              vertex = lESDevent->GetPrimaryVertexSPD();
+              if (vertex->GetNContributors() < 1) fHasVertex = kFALSE;
+              else fHasVertex = kTRUE;
+              TString vtxTyp = vertex->GetTitle();
+              Double_t cov[6]={0};
+              vertex->GetCovarianceMatrix(cov);
+              Double_t zRes = TMath::Sqrt(cov[5]);
+              if (vtxTyp.Contains("vertexer:Z") && (zRes>0.25)) fHasVertex = kFALSE;
+          }    
+          else fHasVertex = kTRUE;
+          if (fUtils->IsFirstEventInChunk(lESDevent)) { //Is First event in chunk rejection: Still present!
+              AliWarning("Pb / No SPD prim. vertex nor prim. Tracking vertex ... return !");
+              PostData(1, fListHistCascade);
+              PostData(2, fCFContCascadePIDAsXiMinus);
+              PostData(3, fCFContCascadePIDAsXiPlus);
+              PostData(4, fCFContCascadePIDAsOmegaMinus);
+              PostData(5, fCFContCascadePIDAsOmegaPlus);
+              PostData(6, fCFContAsCascadeCuts);
+              return;
+          }    
+          // - Take the number of cascades and tracks after TPConly selection
+          ncascadesForSelEvtNoTPCOnly = lESDevent->GetNumberOfCascades();
+          nTrackMultiplicityForSelEvtNoTPCOnly = fESDtrackCuts->GetReferenceMultiplicity(lESDevent,AliESDtrackCuts::kTrackletsITSTPC,0.5);
+      } else if (fAnalysisType == "AOD") {
+          Bool_t fHasVertex = kFALSE;
+          const AliAODVertex *vertex = lAODevent->GetPrimaryVertex();
+          if (vertex->GetNContributors() < 1) { 
+              vertex = lAODevent->GetPrimaryVertexSPD();
+              if (vertex->GetNContributors() < 1) fHasVertex = kFALSE;
+              else fHasVertex = kTRUE;
+              TString vtxTyp = vertex->GetTitle();
+              Double_t cov[6]={0};
+              vertex->GetCovarianceMatrix(cov);
+              Double_t zRes = TMath::Sqrt(cov[5]);
+              if (vtxTyp.Contains("vertexer:Z") && (zRes>0.25)) fHasVertex = kFALSE;
+          }    
+          else fHasVertex = kTRUE;
+          if (fHasVertex == kFALSE) { //Is First event in chunk rejection: Still present! //FIXME
+              AliWarning("Pb / No SPD prim. vertex nor prim. Tracking vertex ... return !");
+              PostData(1, fListHistCascade);
+              PostData(2, fCFContCascadePIDAsXiMinus);
+              PostData(3, fCFContCascadePIDAsXiPlus);
+              PostData(4, fCFContCascadePIDAsOmegaMinus);
+              PostData(5, fCFContCascadePIDAsOmegaPlus);
+              PostData(6, fCFContAsCascadeCuts);
+              return;
+          }    
+          // - Take the number of cascades and tracks after TPConly selection
+          ncascadesForSelEvtNoTPCOnly = lAODevent->GetNumberOfCascades();
+          nTrackMultiplicityForSelEvtNoTPCOnly = -100;  //FIXME: I can't find the equivalent method for the AOD
        }
-       // - Take the number of cascades and tracks after TPConly selection
-       ncascadesForSelEvtNoTPCOnly = lAODevent->GetNumberOfCascades();
-       nTrackMultiplicityForSelEvtNoTPCOnly = -100;  //FIXME
    }
+   // - Fill the plots
    fHistCascadeMultiplicityForSelEvtNoTPCOnly->Fill(ncascadesForSelEvtNoTPCOnly);
    fHistTrackMultiplicityForSelEvtNoTPCOnly->Fill(nTrackMultiplicityForSelEvtNoTPCOnly);
     
@@ -1769,9 +1835,8 @@ void AliAnalysisTaskCheckPerformanceCascadepp276::UserExec(Option_t *) {
    //-----------------
    Int_t    ncascadesForSelEvtNoTPCOnlyNoPileup          = -1; //number of cascades after the NoPileup selection
    Int_t    nTrackMultiplicityForSelEvtNoTPCOnlyNoPileup = -1; //number of tracks after the Pileup selection
-   if (fAnalysisType == "ESD" ) {
-       // - Selection for pile up
-       if (fkRejectEventPileUp) {
+   if (fkRejectEventPileUp && fCollidingSystem == "pp") {
+       if (fAnalysisType == "ESD") {
            if(lESDevent->IsPileupFromSPD()){
                AliWarning("Pb / Pile-up event ... return!");
                PostData(1, fListHistCascade);
@@ -1781,14 +1846,8 @@ void AliAnalysisTaskCheckPerformanceCascadepp276::UserExec(Option_t *) {
                PostData(5, fCFContCascadePIDAsOmegaPlus);
                PostData(6, fCFContAsCascadeCuts);
                return;
-           }
-       }
-       // - Take the number of cascades and tracks after Pileup selection
-       ncascadesForSelEvtNoTPCOnlyNoPileup = lESDevent->GetNumberOfCascades();
-       nTrackMultiplicityForSelEvtNoTPCOnlyNoPileup = fESDtrackCuts->GetReferenceMultiplicity(lESDevent,AliESDtrackCuts::kTrackletsITSTPC,0.5);
-   } else if (fAnalysisType == "AOD") {
-       // - Selection for pile up
-       if (fkRejectEventPileUp) {
+           } 
+       } else if (fAnalysisType == "AOD") {
            if(lAODevent->IsPileupFromSPD()){
                AliWarning("Pb / Pile-up event ... return!");
                PostData(1, fListHistCascade);
@@ -1798,9 +1857,14 @@ void AliAnalysisTaskCheckPerformanceCascadepp276::UserExec(Option_t *) {
                PostData(5, fCFContCascadePIDAsOmegaPlus);
                PostData(6, fCFContAsCascadeCuts);
                return;
-           }
+           } 
        }
-       // - Take the number of cascades and tracks after Pileup selection
+   }
+   // - Take the number of cascades and tracks after Pileup selection
+   if (fAnalysisType == "ESD") {
+       ncascadesForSelEvtNoTPCOnlyNoPileup = lESDevent->GetNumberOfCascades();
+       nTrackMultiplicityForSelEvtNoTPCOnlyNoPileup = fESDtrackCuts->GetReferenceMultiplicity(lESDevent,AliESDtrackCuts::kTrackletsITSTPC,0.5);
+   } else if (fAnalysisType == "AOD") {
        ncascadesForSelEvtNoTPCOnlyNoPileup = lAODevent->GetNumberOfCascades();
        nTrackMultiplicityForSelEvtNoTPCOnlyNoPileup = -100;
    }
index ffc0348b473f443b386384516622c17fcb3c50f2..8cf17dad1eea653279838c92b385e6fceccc004c 100644 (file)
@@ -22,6 +22,7 @@ class AliESDtrackCuts;
 class AliPhysicsSelection;
 class AliCFContainer;
 class AliPIDResponse;
+class AliAnalysisUtils;
 
 #include "AliAnalysisTaskSE.h"
 
@@ -36,23 +37,23 @@ class AliAnalysisTaskCheckPerformanceCascadepp276 : public AliAnalysisTaskSE {
   virtual void   UserExec(Option_t *option);
   virtual void   Terminate(Option_t *);
   
-  void SetAnalysisType     (const char* analysisType    = "ESD") { fAnalysisType     = analysisType;}
-  
-  void SetRelaunchV0CascVertexers    (Bool_t  rerunV0CascVertexers       = 0    ) { fkRerunV0CascVertexers        = rerunV0CascVertexers;      }
-  void SetSDDSelection               (Bool_t  sddOnSelection             = kTRUE) { fkSDDselectionOn              = sddOnSelection;            }
-  void SetQualityCutZprimVtxPos      (Bool_t  qualityCutZprimVtxPos      = kTRUE) { fkQualityCutZprimVtxPos       = qualityCutZprimVtxPos;     }
-  void SetRejectEventPileUp          (Bool_t  rejectPileUp               = kTRUE) { fkRejectEventPileUp           = rejectPileUp;              }
-  void SetQualityCutNoTPConlyPrimVtx (Bool_t  qualityCutNoTPConlyPrimVtx = kTRUE) { fkQualityCutNoTPConlyPrimVtx  = qualityCutNoTPConlyPrimVtx;}
-  void SetQualityCutTPCrefit         (Bool_t  qualityCutTPCrefit         = kTRUE) { fkQualityCutTPCrefit          = qualityCutTPCrefit;        }
-  void SetQualityCutnTPCcls          (Bool_t  qualityCutnTPCcls          = kTRUE) { fkQualityCutnTPCcls           = qualityCutnTPCcls;         }
-  void SetWithSDDOn                  (Bool_t  withsddOn                  = kTRUE) { fwithSDD                      = withsddOn;                 }
-  void SetQualityCutMinnTPCcls       (Int_t   minnTPCcls                 = 70   ) { fMinnTPCcls                   = minnTPCcls;                }
-  void SetExtraSelections            (Bool_t  extraSelections            = 0    ) { fkExtraSelections             = extraSelections;           }
-  void SetVertexRange                (Float_t vtxrange                   = 0.   ) { fVtxRange                     = vtxrange;                  }
-  void SetVertexRangeMin             (Float_t vtxrangemin                = 0.   ) { fVtxRangeMin                  = vtxrangemin;               }
-  void SetApplyAccCut                (Bool_t  acccut                     = kFALSE){ fApplyAccCut                  = acccut;                    }    
-  void SetMinptCutOnDaughterTracks   (Float_t minptdaughtrks             = 0.   ) { fMinPtCutOnDaughterTracks     = minptdaughtrks;            }
-  void SetEtaCutOnDaughterTracks     (Float_t etadaughtrks               = 0.   ) { fEtaCutOnDaughterTracks       = etadaughtrks;              }
+  void SetAnalysisType               (const char* analysisType           = "ESD") { fAnalysisType                 = analysisType;               }
+  void SetCollidingSystem            (const char* collidingSystem        = "pp" ) { fCollidingSystem              = collidingSystem;            }  
+  void SetRelaunchV0CascVertexers    (Bool_t  rerunV0CascVertexers       = 0    ) { fkRerunV0CascVertexers        = rerunV0CascVertexers;       }
+  void SetSDDSelection               (Bool_t  sddOnSelection             = kTRUE) { fkSDDselectionOn              = sddOnSelection;             }
+  void SetQualityCutZprimVtxPos      (Bool_t  qualityCutZprimVtxPos      = kTRUE) { fkQualityCutZprimVtxPos       = qualityCutZprimVtxPos;      }
+  void SetRejectEventPileUp          (Bool_t  rejectPileUp               = kTRUE) { fkRejectEventPileUp           = rejectPileUp;               }
+  void SetQualityCutNoTPConlyPrimVtx (Bool_t  qualityCutNoTPConlyPrimVtx = kTRUE) { fkQualityCutNoTPConlyPrimVtx  = qualityCutNoTPConlyPrimVtx; }
+  void SetQualityCutTPCrefit         (Bool_t  qualityCutTPCrefit         = kTRUE) { fkQualityCutTPCrefit          = qualityCutTPCrefit;         }
+  void SetQualityCutnTPCcls          (Bool_t  qualityCutnTPCcls          = kTRUE) { fkQualityCutnTPCcls           = qualityCutnTPCcls;          }
+  void SetWithSDDOn                  (Bool_t  withsddOn                  = kTRUE) { fwithSDD                      = withsddOn;                  }
+  void SetQualityCutMinnTPCcls       (Int_t   minnTPCcls                 = 70   ) { fMinnTPCcls                   = minnTPCcls;                 }
+  void SetExtraSelections            (Bool_t  extraSelections            = 0    ) { fkExtraSelections             = extraSelections;            }
+  void SetVertexRange                (Float_t vtxrange                   = 0.   ) { fVtxRange                     = vtxrange;                   }
+  void SetVertexRangeMin             (Float_t vtxrangemin                = 0.   ) { fVtxRangeMin                  = vtxrangemin;                }
+  void SetApplyAccCut                (Bool_t  acccut                     = kFALSE){ fApplyAccCut                  = acccut;                     }    
+  void SetMinptCutOnDaughterTracks   (Float_t minptdaughtrks             = 0.   ) { fMinPtCutOnDaughterTracks     = minptdaughtrks;             }
+  void SetEtaCutOnDaughterTracks     (Float_t etadaughtrks               = 0.   ) { fEtaCutOnDaughterTracks       = etadaughtrks;               }
 
  private:
         // Note : In ROOT, "//!" means "do not stream the data from Master node to Worker node" ...
@@ -61,8 +62,11 @@ class AliAnalysisTaskCheckPerformanceCascadepp276 : public AliAnalysisTaskSE {
 
         TString         fAnalysisType;          // "ESD" or "AOD" analysis type        
         AliESDtrackCuts *fESDtrackCuts;         // ESD track cuts used for primary track definition
-      //TPaveText       *fPaveTextBookKeeping;  // TString to store all the relevant info necessary for book keeping (v0 cuts, cascade cuts, quality cuts, ...)
+        AliAnalysisUtils *fUtils;
+        TString         fCollidingSystem;       // "pPb" or "pp" colliding system
+       // AliESDtrackCuts *fESDtrackCuts;         // ESD track cuts used for primary track definition
         AliPIDResponse *fPIDResponse;           //! PID response object        
+       // AliAnalysisUtils *fUtils;
 
         Bool_t          fkRerunV0CascVertexers;         // Boolean : kTRUE = relaunch both V0 + Cascade vertexers
         Bool_t          fkSDDselectionOn;               // Boolean : kTRUE = enable the selection based on the SDD status
@@ -83,7 +87,7 @@ class AliAnalysisTaskCheckPerformanceCascadepp276 : public AliAnalysisTaskSE {
         Double_t        fV0Sels[7];                     // Array to store the 7 values for the different selections V0 related (if fkRerunV0CascVertexers)
         Double_t        fCascSels[8];                   // Array to store the 8 values for the different selections Casc. related (if fkRerunV0CascVertexers)
        
-       TList   *fListHistCascade;              //! List of Cascade histograms
+       TList   *fListHistCascade;                      //! List of Cascade histograms
          // - General Plots
          // Cascade multiplicity plots
          TH1F *fHistCascadeMultiplicityBeforeAnySel;
index 8f1d1e4666b7658eed0043f02ea08eee0f3bc44f..1f0fcd6e8b4218459f9fe955f0308a4df5ab4e72 100644 (file)
@@ -1,4 +1,5 @@
-AliAnalysisTaskCheckCascadepp276 *AddTaskCheckCascadepp276( Int_t    minnTPCcls             = 70,
+AliAnalysisTaskCheckCascadepp276 *AddTaskCheckCascadepp276( TString  collidingSystem        = "pp",
+                                                            Int_t    minnTPCcls             = 70,
                                                             Float_t  vtxlim                 = 10.0,
                                                             Float_t  vtxlimmin              = 0.0,
                                                             Bool_t   fwithsdd               = kFALSE,
@@ -28,12 +29,15 @@ AliAnalysisTaskCheckCascadepp276 *AddTaskCheckCascadepp276( Int_t    minnTPCcls
    // Create and configure the task
    //==============================================================================
    TString taskname = Form("TaskCheckCascadepp276_minnTPCcls%i_vtxlim%.1f-%.1f_minptdghtrk%.1f_etacutdghtrk%.1f",minnTPCcls,vtxlim,vtxlimmin,minptondaughtertracks,etacutondaughtertracks);
-     if(fwithsdd) {
+     if(fwithsdd && collidingSystem == "pp") {
           if (ksddonselection)       taskname += "_wSDDon";
           else if (!ksddonselection) taskname += "_wSDDoff";
-     } else if (!fwithsdd)           taskname += "_woSDD";
+     } else if (!fwithsdd && collidingSystem == "pp") {
+          taskname += "_woSDD";
+     }
    AliAnalysisTaskCheckCascadepp276 *taskcheckcascadepp276 = new AliAnalysisTaskCheckCascadepp276(taskname);
      taskcheckcascadepp276->SetAnalysisType               (type);                   // "ESD" or "AOD"
+     taskcheckcascadepp276->SetCollidingSystem            (collidingSystem);        // choose the collidiond system to run on: "pp" and "pPb"
      taskcheckcascadepp276->SetRelaunchV0CascVertexers    (krelaunchvertexers);     // choose if reconstruct the vertex of V0 in the cascades
      taskcheckcascadepp276->SetSDDSelection               (fwithsdd);               // choose if apply SDD event selection
      taskcheckcascadepp276->SetQualityCutZprimVtxPos      (kTRUE);                  // choose if apply Z vtx PV position event selection
@@ -69,7 +73,7 @@ AliAnalysisTaskCheckCascadepp276 *AddTaskCheckCascadepp276( Int_t    minnTPCcls
       outputname3 += Form("_minnTPCcls%i_vtxlim%.1f-%.1f_minptdghtrk%.1f_etacutdghtrk%.1f",minnTPCcls,vtxlim,vtxlimmin,minptondaughtertracks,etacutondaughtertracks);
       outputname4 += Form("_minnTPCcls%i_vtxlim%.1f-%.1f_minptdghtrk%.1f_etacutdghtrk%.1f",minnTPCcls,vtxlim,vtxlimmin,minptondaughtertracks,etacutondaughtertracks);
       outputname5 += Form("_minnTPCcls%i_vtxlim%.1f-%.1f_minptdghtrk%.1f_etacutdghtrk%.1f",minnTPCcls,vtxlim,vtxlimmin,minptondaughtertracks,etacutondaughtertracks);
-      if(fwithsdd) {
+      if(fwithsdd && collidingSystem == "pp") {
           if (ksddonselection) {
               outputname0 += "_wSDDon";
               outputname1 += "_wSDDon";
@@ -77,7 +81,7 @@ AliAnalysisTaskCheckCascadepp276 *AddTaskCheckCascadepp276( Int_t    minnTPCcls
               outputname3 += "_wSDDon";
               outputname4 += "_wSDDon";
               outputname5 += "_wSDDon";
-          } else if (!ksddonselection) {
+          } else if (!ksddonselection && collidingSystem == "pp") {
               outputname0 += "_wSDDoff";
               outputname1 += "_wSDDoff";
               outputname2 += "_wSDDoff";
@@ -85,7 +89,7 @@ AliAnalysisTaskCheckCascadepp276 *AddTaskCheckCascadepp276( Int_t    minnTPCcls
               outputname4 += "_wSDDoff";
               outputname5 += "_wSDDoff";
           }
-      } else if (!fwithsdd) {
+      } else if (!fwithsdd && collidingSystem == "pp") {
           outputname0 += "_woSDD";
           outputname1 += "_woSDD";
           outputname2 += "_woSDD";
@@ -96,9 +100,9 @@ AliAnalysisTaskCheckCascadepp276 *AddTaskCheckCascadepp276( Int_t    minnTPCcls
 
    //Save objects into the train common file
    AliAnalysisDataContainer *coutput1 = mgr->CreateContainer(outputname0,
-                                                                                        TList::Class(),
-                                                                                        AliAnalysisManager::kOutputContainer,
-                                                                                        outputFileName );
+                                                            TList::Class(),
+                                                            AliAnalysisManager::kOutputContainer,
+                                                            outputFileName );
    AliAnalysisDataContainer *coutput2 = mgr->CreateContainer(outputname1,
                                                              AliCFContainer::Class(),
                                                              AliAnalysisManager::kOutputContainer,
index 0ff00dab7bd82600a9b0ba913441617ae074149e..3e1ebf4682ce08f656ce8f610bacf81d8f729a6e 100644 (file)
@@ -1,4 +1,5 @@
-AliAnalysisTaskCheckPerformanceCascadepp276 *AddTaskCheckPerformanceCascadepp276( Int_t    minnTPCcls             = 70,
+AliAnalysisTaskCheckPerformanceCascadepp276 *AddTaskCheckPerformanceCascadepp276( TString  collidingSystem        = "pp",
+                                                                                  Int_t    minnTPCcls             = 70,
                                                                                   Float_t  vtxlim                 = 10.,
                                                                                   Float_t  vtxlimmin              = 0.,
                                                                                   Bool_t   fwithsdd               = kFALSE,
@@ -32,6 +33,7 @@ AliAnalysisTaskCheckPerformanceCascadepp276 *AddTaskCheckPerformanceCascadepp276
      tasknameperf += Form("_minnTPCcls%i_vtxlim%.1f-%.1f_minptdghtrk%.1f_etacutdghtrk%.1f",minnTPCcls,vtxlim,vtxlimmin,minptondaughtertracks,etacutondaughtertracks);
    AliAnalysisTaskCheckPerformanceCascadepp276 *taskCheckPerfCascadepp276 = new AliAnalysisTaskCheckPerformanceCascadepp276(tasknameperf);
      taskCheckPerfCascadepp276->SetAnalysisType               (type);                   // "ESD" or "AOD"
+     taskCheckPerfCascadepp276->SetCollidingSystem            (collidingSystem);        // choose the collidiond system to run on: "pp" and "pPb"
      taskCheckPerfCascadepp276->SetRelaunchV0CascVertexers    (krelaunchvertexers);     // choose if reconstruct the vertex of V0 in the cascades
      taskCheckPerfCascadepp276->SetSDDSelection               (fwithsdd);               // choose if apply SDD event selection
      taskCheckPerfCascadepp276->SetQualityCutZprimVtxPos      (kTRUE);                  // choose if apply Z vtx PV position event selection
index b7f6116101cd9afec2cd3af22191d4c705030d50..ee54593ee25cc99a1eec55b6b6b97517ff186ce5 100644 (file)
@@ -72,7 +72,7 @@ static Float_t ptMaxLP = 50.;               // Max cut for transverse momentum L
 static Float_t lMin = 0.0;                  // Limits in the histo for fidutial volume
 static Float_t lMax = 100.;                 // Limits in the fidutial volume
 
-//static Int_t   nMaxEvMix = 250;
+static Int_t   nMaxEvMix = 250;
 
 //
 //  
@@ -2122,7 +2122,7 @@ static Int_t CentBin(Double_t cent)
 Bool_t AliAnalysisTaskLambdaOverK0sJets::AcceptTrack(const AliAODTrack *t) 
 {
   // Track criteria for primaries particles 
-  if(fTriggerFB!=128 && fTriggerFB!=272) return kFALSE; 
+  //if(fTriggerFB!=128 && fTriggerFB!=272) return kFALSE; 
   
   if (TMath::Abs(t->Eta())>0.8 )  return kFALSE; 
   //if (!(t->TestFilterMask(1<<7))) return kFALSE; 
@@ -5062,120 +5062,136 @@ void AliAnalysisTaskLambdaOverK0sJets::UserExec(Option_t *)
 
   } // End loop over trigger particles
  
+
   //-------------------------------------------------------------
   // Mixing
   //-------------------------------------------------------------
-  /*
-    Double_t phiTrigME=0, etaTrigME=0, phiAssocME=0, etaAssocME=0;
-    Double_t deltaPhi=0, deltaEta=0;
+  
+  Double_t phiTrigME=0, etaTrigME=0, phiAssocME=0, etaAssocME=0;
+  Double_t deltaPhi=0, deltaEta=0;
 
-    TList *evMixList = fMEList[curCentBin*kNVtxZ+curVtxBin];
-    Int_t nMixed = evMixList->GetSize(); 
+  TList *evMixList = fMEList[curCentBin*kNVtxZ+curVtxBin];
+  Int_t nMixed = evMixList->GetSize(); 
  
-    if( nMixed>0 && fAssocParticles->GetEntriesFast() >= 0 ){
+  if( nMixed>0 && fAssocParticles->GetEntriesFast() >= 0 ){
     
     for(Int_t ii=0; ii<nMixed; ii++){     
       
-    AliMiniParticle* trackTriggerME = (AliMiniParticle*) (evMixList->At(ii));
-    phiTrigME = trackTriggerME->Phi();
-    etaTrigME = trackTriggerME->Eta();
-      
-    // --- V0 associated particles
-    for(Int_t j=0; j<fAssocParticles->GetEntriesFast(); j++){
+      AliMiniParticle* trackTriggerME = (AliMiniParticle*) (evMixList->At(ii));
+      phiTrigME = trackTriggerME->Phi();
+      etaTrigME = trackTriggerME->Eta();
+
+      // --- V0 associated particles
+      for(Int_t j=0; j<fAssocParticles->GetEntriesFast(); j++){
        
-    AliMiniParticle* trackAssocME = (AliMiniParticle*) (fAssocParticles->At(j));
-    if( CentBin(trackTriggerME->Centrality()) != CentBin(trackAssocME->Centrality()) ) continue;
-    if( VtxBin(trackTriggerME->VtxZ()) != VtxBin(trackAssocME->VtxZ()) ) continue;
-    if( trackAssocME->WhichCandidate() ==  2 ) continue;
+       AliMiniParticle* trackAssocME = (AliMiniParticle*) (fAssocParticles->At(j));
+       if( CentBin(trackTriggerME->Centrality()) != CentBin(trackAssocME->Centrality()) ) continue;
+       if( VtxBin(trackTriggerME->VtxZ()) != VtxBin(trackAssocME->VtxZ()) ) continue;
+       if( trackAssocME->WhichCandidate() ==  2 ) continue;
 
-    AliAODv0 *tAssoc=fAOD->GetV0(trackAssocME->ID());
-    pt = tAssoc->Pt();
+       AliAODv0 *tAssoc=fAOD->GetV0(trackAssocME->ID());
+       const AliAODTrack *ntrack=(AliAODTrack *)tAssoc->GetDaughter(1);
+       const AliAODTrack *ptrack=(AliAODTrack *)tAssoc->GetDaughter(0);
 
-    Bool_t IsSelected = kFALSE;
-    // K0s
-    if( trackAssocME->WhichCandidate() == 3 ){
-    massK0s = tAssoc->MassK0Short();
-    mK0s = TDatabasePDG::Instance()->GetParticle(kK0Short)->Mass();
-    if( fCollision.Contains("PbPb2010") )
-    sK0s = kCteK0s2010[curCentBin] + kLinearK0s2010[curCentBin]*pt;
-    else if( fCollision.Contains("PbPb2011") ) 
-    sK0s = kCteK0s2011[curCentBin] + kLinearK0s2011[curCentBin]*pt;
-         
-    if (TMath::Abs(mK0s-massK0s) < 3*sK0s) IsSelected = kTRUE;
-    }
-    // Lambda
-    if( trackAssocME->WhichCandidate() == 4 ){
-    massL = tAssoc->MassLambda();
-    mL = TDatabasePDG::Instance()->GetParticle(kLambda0)->Mass();        
-    if( fCollision.Contains("PbPb2010") )
-    sL = kCteLambda2010[curCentBin] + kLinearLambda2010[curCentBin]*pt;
-    else if( fCollision.Contains("PbPb2011") ) 
-    sL = kCteLambda2011[curCentBin] + kLinearLambda2011[curCentBin]*pt;
+       // Fraction of TPC Shared Cluster 
+       fracPosDaugTPCSharedMap=0; fracNegDaugTPCSharedMap=0;
+       fracPosDaugTPCSharedMap = GetFractionTPCSharedCls(ptrack);
+       fracNegDaugTPCSharedMap = GetFractionTPCSharedCls(ntrack);
 
-    if (TMath::Abs(mL-massL) < 3*sL) IsSelected = kTRUE;
-    }
-    // AntiLambda
-    if( trackAssocME->WhichCandidate() == 5 ){
-    massAL = tAssoc->MassAntiLambda();
-    mL = TDatabasePDG::Instance()->GetParticle(kLambda0)->Mass();
-    if( fCollision.Contains("PbPb2010") )
-    sL = kCteAntiLambda2010[curCentBin] + kLinearAntiLambda2010[curCentBin]*pt;
-    else if( fCollision.Contains("PbPb2011") ) 
-    sL = kCteAntiLambda2011[curCentBin] + kLinearAntiLambda2011[curCentBin]*pt;
+       if( (fracPosDaugTPCSharedMap > fFracTPCcls) || (fracNegDaugTPCSharedMap > fFracTPCcls) )
+         continue;
+
+       pt = tAssoc->Pt();
+
+       Bool_t IsSelected = kFALSE;
+       // K0s
+       if( trackAssocME->WhichCandidate() == 3 ){
+         massK0s = tAssoc->MassK0Short();
+         mK0s = TDatabasePDG::Instance()->GetParticle(kK0Short)->Mass();
+         if( fCollision.Contains("PbPb2010") )
+           sK0s = kCteK0s2010[curCentBin] + kLinearK0s2010[curCentBin]*pt;
+         else if( fCollision.Contains("PbPb2011") ) 
+           sK0s = kCteK0s2011[curCentBin] + kLinearK0s2011[curCentBin]*pt;
          
-    if (TMath::Abs(mL-massAL) < 3*sL) IsSelected = kTRUE;
-    }
+         if (TMath::Abs(mK0s-massK0s) < 3*sK0s) IsSelected = kTRUE;
+       }
+       // Lambda
+       if( trackAssocME->WhichCandidate() == 4 ){
+         massL = tAssoc->MassLambda();
+         mL = TDatabasePDG::Instance()->GetParticle(kLambda0)->Mass();   
+         if( fCollision.Contains("PbPb2010") )
+           sL = kCteLambda2010[curCentBin] + kLinearLambda2010[curCentBin]*pt;
+         else if( fCollision.Contains("PbPb2011") ) 
+           sL = kCteLambda2011[curCentBin] + kLinearLambda2011[curCentBin]*pt;
+
+         if (TMath::Abs(mL-massL) < 3*sL) IsSelected = kTRUE;
+       }
+       // AntiLambda
+       if( trackAssocME->WhichCandidate() == 5 ){
+         massAL = tAssoc->MassAntiLambda();
+         mL = TDatabasePDG::Instance()->GetParticle(kLambda0)->Mass();
+         if( fCollision.Contains("PbPb2010") )
+           sL = kCteAntiLambda2010[curCentBin] + kLinearAntiLambda2010[curCentBin]*pt;
+         else if( fCollision.Contains("PbPb2011") ) 
+           sL = kCteAntiLambda2011[curCentBin] + kLinearAntiLambda2011[curCentBin]*pt;
+         
+         if (TMath::Abs(mL-massAL) < 3*sL) IsSelected = kTRUE;
+       }
 
-    if(!IsSelected) continue;
+       if(!IsSelected) continue;
 
-    phiAssocME = trackAssocME->Phi();
-    etaAssocME = trackAssocME->Eta();
+       phiAssocME = trackAssocME->Phi();
+       etaAssocME = trackAssocME->Eta();
         
-    deltaPhi = dPHI(phiTrigME,phiAssocME);
-    deltaEta = etaTrigME - etaAssocME;
+       deltaPhi = dPHI(phiTrigME,phiAssocME);
+       deltaEta = etaTrigME - etaAssocME;
 
-    Int_t binPtv0 = PtBin( trackAssocME->Pt() );
-    if(binPtv0==-1) continue;
+       Int_t binPtv0 = PtBin( trackAssocME->Pt() );
+       if(binPtv0==-1) continue;
     
-    if( trackAssocME->WhichCandidate() == 3 ) {
-    fK0sdPhidEtaME[curCentBin*kN1*kNVtxZ + binPtv0*kNVtxZ + curVtxBin]->Fill(deltaPhi,deltaEta);}
-    else if( trackAssocME->WhichCandidate() == 4 )
-    fLambdadPhidEtaME[curCentBin*kN1*kNVtxZ + binPtv0*kNVtxZ + curVtxBin]->Fill(deltaPhi,deltaEta);
-    else if( trackAssocME->WhichCandidate() == 5 )
-    fAntiLambdadPhidEtaME[curCentBin*kN1*kNVtxZ + binPtv0*kNVtxZ + curVtxBin]->Fill(deltaPhi,deltaEta);
+       if( trackAssocME->WhichCandidate() == 3 ) {
+         fK0sdPhidEtaME[curCentBin*kN1*kNVtxZ + binPtv0*kNVtxZ + curVtxBin]->Fill(deltaPhi,deltaEta);}
+       else if( trackAssocME->WhichCandidate() == 4 )
+         fLambdadPhidEtaME[curCentBin*kN1*kNVtxZ + binPtv0*kNVtxZ + curVtxBin]->Fill(deltaPhi,deltaEta);
+       else if( trackAssocME->WhichCandidate() == 5 )
+         fAntiLambdadPhidEtaME[curCentBin*kN1*kNVtxZ + binPtv0*kNVtxZ + curVtxBin]->Fill(deltaPhi,deltaEta);
                     
-    } // End loop over V0's
+      } // End loop over V0's
        
     }
     
-    }
-  */
+  }
+  
   //--------------------------------------------------------
   //Add the current event to the list of events for mixing
   //--------------------------------------------------------  
-  /*
+  
   //Add current  event to buffer and Remove redundant events 
   if(fTriggerParticles->GetEntriesFast()>=0){
     
-  for(Int_t ii=0; ii<(fTriggerParticles->GetEntriesFast()); ii++){
-  AliMiniParticle* trkTrig = (AliMiniParticle*) fTriggerParticles->At(ii);
-  //cout << trkTrig->Pt() << "          " << ii << endl;
+    for(Int_t ii=0; ii<(fTriggerParticles->GetEntriesFast()); ii++){
+      AliMiniParticle* trkTrig = (AliMiniParticle*) fTriggerParticles->At(ii);
+      //cout << trkTrig->Pt() << "          " << ii << endl;
     
-  if(evMixList->GetSize() < nMaxEvMix)
-  evMixList->AddFirst(trkTrig);
-  / *
-  if(evMixList->GetSize() >= nMaxEvMix) {
-  AliMiniParticle *tmp = (AliMiniParticle*) (evMixList->Last()) ;
-  evMixList->RemoveLast();
-  delete tmp;
-  }
-  * /
+      // Fraction of TPC Shared Cluster 
+      const AliAODTrack *tTrig = (AliAODTrack*)fAOD->GetTrack(trkTrig->ID());
+      fracTrigTPCSharedMap = GetFractionTPCSharedCls(tTrig);
+      if( (fracTrigTPCSharedMap > fFracTPCcls) ) continue;
+
+      if(evMixList->GetSize() < nMaxEvMix)
+       evMixList->AddFirst(trkTrig);
+      /*
+         if(evMixList->GetSize() >= nMaxEvMix) {
+           AliMiniParticle *tmp = (AliMiniParticle*) (evMixList->Last()) ;
+           evMixList->RemoveLast();
+           delete tmp;
+         }
+      */
       
-  }// End loop over fTriggerParticles
+    }// End loop over fTriggerParticles
 
   }// End adding trigger particles to buffers
-  */
+  
 }
 
 //___________________________________________________________________________________________
index 56c490adc8bda42293f48e3fd91a03eaa46d48e5..b94b657be355be220617684fb90f91c8dccacdf5 100644 (file)
@@ -1,6 +1,6 @@
 #!/bin/bash
 # example local use (files will be downloaded from alien)
-#./mergeMakeOCDB.byComponent.sh /alice/data/2012/LHC12g/000188362/cpass0/ 188362 local://./OCDB local:///cvmfs/alice.gsi.de/alice/data/2011/OCDB/ 0 30
+#./mergeMakeOCDB.byComponent.sh /alice/data/2012/LHC12g/000188362/cpass0/ 188362 local://./OCDB defaultOCDB=local:///cvmfs/alice.gsi.de/alice/data/2011/OCDB/ fileAccessMethod=tfilecp numberOfFilesInAbunch=30
 #
 # on ALIEN just do:
 # $1 = directory where to perform the find 
@@ -9,6 +9,7 @@
 
 main()
 {
+  save_args=("$@")
   if [[ $# -eq 0 ]]; then
     echo arguments:
     echo  "  1 - directory on which to look for the files to be merged or local file list"
@@ -66,7 +67,7 @@ main()
 
   #################################################################
   echo "" | tee -a merge.log
-  echo $0" $*" | tee -a merge.log
+  echo "$0 ${save_args[*]}" | tee -a merge.log
   echo "" | tee -a merge.log
   echo "***********************" | tee -a merge.log
   echo mergeMakeOCDB.byComponent.sh started | tee -a merge.log
@@ -403,4 +404,10 @@ copyScripts()
     echo "taking the default scripts from $ALICE_ROOT"
 }
 
+#these functions encode strings to and from a space-less form
+#use when spaces are not well handled (e.g. in arguments to
+#commands in makeflow files, etc.
+encSpaces()(echo "${1// /@@@@}")
+decSpaces()(echo "${1//@@@@/ }")
+
 main "$@"
index 9ce497bc81075f24cbfd78a3f501fbe056dab56b..0d7e9e4702a577802b7b163a2cfca20c2291c680 100644 (file)
@@ -1,6 +1,6 @@
 #!/bin/bash
 # example local use (files will be downloaded from alien)
-#./mergeMakeOCDB.byComponent.sh /alice/data/2012/LHC12g/000188362/cpass0/ 188362 local://./OCDB local:///cvmfs/alice.gsi.de/alice/data/2011/OCDB/ 0 30
+#./mergeMakeOCDB.byComponent.sh /alice/data/2012/LHC12g/000188362/cpass0/ 188362 local://./OCDB defaultOCDB=local:///cvmfs/alice.gsi.de/alice/data/2011/OCDB/ fileAccessMethod=tfilecp numberOfFilesInAbunch=30
 #
 # on ALIEN just do:
 # $1 = directory where to perform the find 
@@ -9,6 +9,7 @@
 
 main()
 {
+  save_args=("$@")
   if [[ $# -eq 0 ]]; then
     echo arguments:
     echo  "  1 - directory on which to look for the files to be merged or local file list"
@@ -66,7 +67,7 @@ main()
 
   #################################################################
   echo "" | tee -a merge.log
-  echo $0" $*" | tee -a merge.log
+  echo "$0 ${save_args[*]}" | tee -a merge.log
   echo "" | tee -a merge.log
   echo "***********************" | tee -a merge.log
   echo mergeMakeOCDB.byComponent.sh started | tee -a merge.log
@@ -403,4 +404,10 @@ copyScripts()
     echo "taking the default scripts from $ALICE_ROOT"
 }
 
+#these functions encode strings to and from a space-less form
+#use when spaces are not well handled (e.g. in arguments to
+#commands in makeflow files, etc.
+encSpaces()(echo "${1// /@@@@}")
+decSpaces()(echo "${1//@@@@/ }")
+
 main "$@"
diff --git a/PWGPP/QA/detectorQAscripts/FMD.sh b/PWGPP/QA/detectorQAscripts/FMD.sh
new file mode 100644 (file)
index 0000000..449050a
--- /dev/null
@@ -0,0 +1,55 @@
+# QA processing for the FMD
+#
+# it defines two functions: runLevelQA and periodLevelQA
+# 
+#available variables:
+#  $dataType     e.g. data or sim
+#  $year         e.g. 2011
+#  $period       e.g. LHC13g
+#  $runNumber    e.g. 169123
+#  $pass         e.g. cpass1,pass1,passMC
+
+fwd=${ALICE_ROOT}/PWGLF/FORWARD/analysis2
+
+runLevelQA()
+{
+
+  #full path of QAresults.root is provided
+
+  # 1: file
+  # 2: data type 
+  # 3: year
+  # 4: period
+  # 5: pass 
+  # 6: run
+  aliroot -l -b -q ${fwd}/qa/RunQA.C\(\"$1\",\"$2\",$3,\"$4\",\"$5\",$6\)
+}
+
+periodLevelQA()
+
+{
+ #path of the merged period trending.root is provided
+ # 1: file
+ # 2: data type 
+ # 3: year
+ # 4: period
+ # 5: pass 
+ aliroot -l -b -q ${fwd}/qa/PeriodQA.C\(\"$1\",\"\",0,\"\",\"\"\)
+
+  (cd ${outputDir} && \
+      pwd && \
+      if test -d FMD ; then cd FMD ; fi ; \
+      ${fwd}/qa/makeIndex.sh -t "QA for the FMD" -d "QA" -m 5 \
+         -o index.html -l ; \
+      cp ${fwd}/qa/style.css . ; \
+      cp ${fwd}/qa/script.js . ; \
+      cp ${fwd}/qa/fmd_favicon.png . ; \
+      cp ${fwd}/qa/fmd_logo.png . ; \
+      )
+}
+#
+# EOF
+#
+
index b30c58c28b4fbb05acd6b86dd5fd8918e617eb33..9de33b1dce55f91b479608aceb6683cbb431c463 100755 (executable)
@@ -27,6 +27,9 @@ main()
     return
   fi
   
+  #be nice and allow group members access as well (002 will create dirs with 775 and files with 664)
+  umask 0002
+
   # try to load the config file
   #[[ ! -f $1 ]] && echo "config file $1 not found, exiting..." | tee -a $logFile && exit 1
   if ! parseConfig "$@"; then return 1; fi
@@ -45,9 +48,6 @@ main()
   echo ""|tee -a $logFile
   echo log: $logFile
   
-  #be nice and allow group members access as well (002 will create dirs with 775 and files with 664)
-  umask 0002
-
   #lock
   lockFile=$logOutputPath/runningNow.lock
   [[ -f $lockFile && ${allowConcurrent} -ne 1 ]] && echo "locked. Another process running? ($lockFile)" | tee -a $logFile && exit 1
index f86d6b235227c4d320e09f415476ada33b2a0559..92ceb3f48fe8168d29d9d04596527fa4beb3c910 100644 (file)
@@ -115,3 +115,5 @@ ALIROOT_FORCE_COREDUMP=1
 #profilingCommand="valgrind --tool=callgrind --num-callers=40 -v --trace-children=yes"
 #nEventsProfiling=5
 
+#copy input data to current dir instead of linking
+#copyInputData=0
index f0c5bf4cd687291736a2a8a69286413482efdac9..4a77b90c47f6c5896d30d7e1fa91c61ff9d64b62 100644 (file)
@@ -21,3 +21,11 @@ reconstructInTemporaryDir=2
 
 # Never log to final destination: copy log file at the end instead
 logToFinalDestination=1
+
+# Copy input files into each job's workspace instead of symlinking: needed if
+# we are accessing files on a non-mounted filesystem (e.g. root://...)
+copyInputData=1
+
+# Tell xrdcp where to find the proxy and valid CAs
+export X509_CERT_DIR='/cvmfs/grid.cern.ch/etc/grid-security/certificates'
+export X509_USER_PROXY='/etc/eos-proxy'
index 8a374093c9e0c6125ca2352915d9e0f9c8e86af9..10cc5731aa92a59b2c2393c5683a6fcb5443fa31 100755 (executable)
@@ -155,7 +155,11 @@ goCPass0()
 
   #runCPassX/C expects the raw chunk to be linked in the run dir
   #despite it being accessed by the full path
-  ln -s ${infile} ${runpath}/${chunkName}
+  if [[ $copyInputData == 0 ]]; then
+    ln -s ${infile} ${runpath}/${chunkName}
+  else
+    copyFileToLocal ${infile} ${runpath}/${chunkName}
+  fi
 
   #####MC
   if [[ -n ${generateMC} ]]; then
@@ -191,7 +195,7 @@ goCPass0()
   fi
   ######
   
-  if [[ ! -f ${inputList} && -z ${pretend} ]]; then
+  if [[ "${inputList}" == "${inputList%%://*}" && ! -f "${inputList}" && -z ${pretend} ]]; then
     touch ${doneFileTmp}
     echo "input file ${inputList} not found, exiting..." >> ${doneFileTmp}
     cp "$doneFileTmp" "$doneFile" || rm -f "$doneFileTmp" "$doneFile"
@@ -256,7 +260,7 @@ goCPass0()
   fi
 
   #run CPass0
-  echo "${runpath}/runCPass0.sh ${infile} ${nEvents} ${runNumber} ${ocdbPath} ${recoTriggerOptions}"
+  echo "${runpath}/runCPass0.sh /${infile} ${nEvents} ${runNumber} ${ocdbPath} ${recoTriggerOptions}"
   if [[ -n ${pretend} ]]; then
     sleep ${pretendDelay}
     touch AliESDs.root
@@ -265,8 +269,8 @@ goCPass0()
     touch rec.log
     touch calib.log
   else
-    echo ./runCPass0.sh "${infile}" "${nEvents}" "${runNumber}" "${ocdbPath}" "${recoTriggerOptions}"
-    ./runCPass0.sh "${infile}" "${nEvents}" "${runNumber}" "${ocdbPath}" "${recoTriggerOptions}"
+    #caveat: in the local case, first arg must start with a slash
+    ./runCPass0.sh "/${infile}" "${nEvents}" "${runNumber}" "${ocdbPath}" "${recoTriggerOptions}"
   fi
   
   #move stuff to final destination
@@ -347,7 +351,7 @@ goCPass1()
   #Packages= ;OutputDir= ;LPMPass= ;TriggerAlias= ;LPMRunNumber= ;LPMProductionType= ;LPMInteractionType= ;LPMProductionTag= ;LPMAnchorRun= ;LPMAnchorProduction= ;LPMAnchorYear= 
   export PRODUCTION_METADATA="OutputDir=cpass1"
 
-  if [[ ! -f ${inputList} && -z ${pretend} ]]; then
+  if [[ "${inputList}" == "${inputList%%://*}" && ! -f "${inputList}" && -z ${pretend} ]]; then
     touch ${doneFileTmp}
     echo "input file ${inputList} not found, exiting..." >> ${doneFileTmp}
     cp "$doneFileTmp" "$doneFile" || rm -f "$doneFileTmp" "$doneFile"
@@ -399,7 +403,11 @@ goCPass1()
   fi
 
   #this is needed for runCPass1.sh
-  ln -s ${infile} ${runpath}/${chunkName}
+  if [[ $copyInputData == 0 ]]; then
+    ln -s ${infile} ${runpath}/${chunkName}
+  else
+    copyFileToLocal ${infile} ${runpath}/${chunkName}
+  fi
 
   logOutputDir=${runpath}
   [[ -n ${logToFinalDestination} ]] && logOutputDir=${outputDir}
@@ -503,7 +511,7 @@ goCPass1()
 
   #run CPass1
   chmod u+x runCPass1.sh
-  echo "${runpath}/runCPass1.sh ${infile} ${nEvents} ${runNumber} ${ocdbPath} ${recoTriggerOptions}"
+  echo "${runpath}/runCPass1.sh /${infile} ${nEvents} ${runNumber} ${ocdbPath} ${recoTriggerOptions}"
   if [[ -n ${pretend} ]]; then
     sleep ${pretendDelay}
     touch AliESDs_Barrel.root
@@ -521,7 +529,8 @@ goCPass1()
     touch qa.log
     touch filtering.log FilterEvents_Trees.root
   else
-    ./runCPass1.sh "${infile}" "${nEvents}" "${runNumber}" "${ocdbPath}" "${recoTriggerOptions}"
+    #caveat: in the local case, first arg must start with a slash
+    ./runCPass1.sh "/${infile}" "${nEvents}" "${runNumber}" "${ocdbPath}" "${recoTriggerOptions}"
     
     [[ ! -f AliESDs_Barrel.root && -f Barrel/AliESDs.root ]] && mv Barrel/AliESDs.root AliESDs_Barrel.root
     [[ ! -f AliESDfriends_Barrel.root && -f Barrel/AliESDfriends.root ]] && mv Barrel/AliESDfriends.root AliESDfriends_Barrel.root
@@ -707,7 +716,7 @@ goMergeCPass0()
     /bin/ls -1 ${outputDir}/*/AliESDfriends_v1.root 2>/dev/null > ${calibrationFilesToMerge}
   fi
   
-  echo "${mergingScript} ${calibrationFilesToMerge} ${runNumber} local://./OCDB ${ocdbStorage}"
+  echo "${mergingScript} ${calibrationFilesToMerge} ${runNumber} local://./OCDB defaultOCDB=${ocdbStorage} fileAccessMethod=nocopy"
   if [[ -n ${pretend} ]]; then
     sleep ${pretendDelay}
     touch CalibObjects.root
@@ -719,7 +728,7 @@ goMergeCPass0()
     echo "some calibration" >> ./OCDB/TPC/Calib/TimeGain/someCalibObject_0-999999_cpass0.root
     echo "some calibration" >> ./OCDB/TPC/Calib/TimeDrift/otherCalibObject_0-999999_cpass0.root
   else
-    ./${mergingScript} ${calibrationFilesToMerge} ${runNumber} "local://./OCDB" ${ocdbStorage} >> "mergeMakeOCDB.log"
+    ./${mergingScript} ${calibrationFilesToMerge} ${runNumber} "local://./OCDB" defaultOCDB=${ocdbStorage} fileAccessMethod=nocopy >> "mergeMakeOCDB.log"
 
     #produce the calib trees for expert QA (dcsTime.root)
     goMakeLocalOCDBaccessConfig ./OCDB
@@ -895,8 +904,8 @@ goMergeCPass1()
     echo "/bin/ls -1 ${outputDir}/*/QAresults*.root | while read x; do echo ${x%/*}; done | sort | uniq > ${qaFilesToMerge}"
     /bin/ls -1 ${outputDir}/*/QAresults*.root | while read x; do echo ${x%/*}; done | sort | uniq > ${qaFilesToMerge}
   fi
-  
-  echo "${mergingScript} ${calibrationFilesToMerge} ${runNumber} local://./OCDB ${ocdbStorage}"
+
+  echo "${mergingScript} ${calibrationFilesToMerge} ${runNumber} local://./OCDB defaultOCDB=${ocdbStorage} fileAccessMethod=nocopy"
   if [[ -n ${pretend} ]]; then
     sleep ${pretendDelay}
     touch ocdb.log
@@ -910,7 +919,7 @@ goMergeCPass1()
     touch ${qaMergedOutputFileName}
     mkdir -p OCDB
   else
-    ./${mergingScript} ${calibrationFilesToMerge} ${runNumber} "local://./OCDB" ${ocdbStorage}
+    ./${mergingScript} ${calibrationFilesToMerge} ${runNumber} "local://./OCDB" defaultOCDB=${ocdbStorage} fileAccessMethod=nocopy
 
     #merge QA (and filtered trees)
     [[ -n ${AliAnalysisTaskFilteredTree_fLowPtTrackDownscaligF} ]] && export AliAnalysisTaskFilteredTree_fLowPtTrackDownscaligF
@@ -1025,9 +1034,9 @@ goSubmitMakeflow()
   #if which greadlink; then self=$(greadlink -f "${0}"); fi
   
   #for reference copy the setup to the output dir
-  cp ${self} ${commonOutputPath}
-  cp ${configFile} ${commonOutputPath}
-  cp ${inputFileList} ${commonOutputPath}
+  paranoidCp ${self} ${commonOutputPath}
+  paranoidCp ${configFile} ${commonOutputPath}
+  paranoidCp ${inputFileList} ${commonOutputPath}
 
   #submit - use makeflow if available, fall back to old stuff when makeflow not there
   if which makeflow; then
@@ -2238,6 +2247,7 @@ goMakeSummary()
   # will appear in the submission dir.
   #some defaults:
   log="summary.log"
+  jsonLog="summary.json"
   productionID="qa"
 
   configFile=${1}
@@ -2250,8 +2260,8 @@ goMakeSummary()
   #record the working directory provided by the batch system
   batchWorkingDirectory=${PWD}
 
-  logTmp=${batchWorkingDirectory}/${log}
-  logDest=${commonOutputPath}/${log}
+  logTmp="${batchWorkingDirectory}/${log}"
+  jsonLogTmp="${batchWorkingDirectory}/${jsonLog}"
   
   [[ -f ${alirootSource} && -z ${ALICE_ROOT} ]] && source ${alirootSource}
 
@@ -2260,8 +2270,7 @@ goMakeSummary()
   [[ -z ${commonOutputPath} ]] && commonOutputPath=${PWD}
 
   #copy some useful stuff
-  #and go to the commonOutputPath
-  cp ${configFile} ${commonOutputPath}
+  [ -f "${commonOutputPath}/${configFile}" ] || paranoidCp "${configFile}" "${commonOutputPath}"
 
   exec &> >(tee ${logTmp})
 
@@ -2274,6 +2283,9 @@ goMakeSummary()
   stackTraceTree ${commonOutputPath}/*/*/000*/cpass0/*/stacktrace* > stacktrace_cpass0.tree
   stackTraceTree ${commonOutputPath}/*/*/000*/cpass1/*/stacktrace* > stacktrace_cpass1.tree
 
+  # json header: open array of objects
+  echo '[' > "${jsonLogTmp}"
+
   echo total numbers for the production:
   echo
   awk 'BEGIN {nFiles=0;nCore=0;} 
@@ -2366,8 +2378,38 @@ do
   statusQA=$(awk '/mergeMakeOCDB.log/ {print $2}' ${x/cpass0/cpass1} 2>/dev/null)
 
   printf "%s\t ocdb.log cpass0: %s\t ocdb.log cpass1: %s\tqa.log:%s\t| cpass0: rec:%s/%s stderr:%s/%s calib:%s/%s cpass1: rec:%s/%s stderr:%s/%s calib:%s/%s QAbarrel:%s/%s QAouter:%s/%s\n" ${runNumber} ${statusOCDBcpass0} ${statusOCDBcpass1} ${statusQA} ${statusCPass0[0]} ${statusCPass0[1]} ${statusCPass0[2]} ${statusCPass0[3]} ${statusCPass0[4]} ${statusCPass0[5]} ${statusCPass1[0]} ${statusCPass1[1]} ${statusCPass1[2]} ${statusCPass1[3]} ${statusCPass1[4]} ${statusCPass1[5]} ${statusCPass1[6]} ${statusCPass1[7]} ${statusCPass1[8]} ${statusCPass1[9]}
+
+  # produce json summary
+  statusOCDBcpass0json=false
+  statusOCDBcpass1json=false
+  statusQAjson=false
+  [[ "$statusOCDBcpass0" == 'OK' ]] && statusOCDBcpass0json=true
+  [[ "$statusOCDBcpass1" == 'OK' ]] && statusOCDBcpass1json=true
+  [[ "$statusQA" == 'OK' ]] && statusQAjson=true
+  cat >> "$jsonLogTmp" <<EOF
+  {
+    run: ${runNumber},
+    status: { ocdb_pass0: ${statusOCDBcpass0json}, ocdb_pass1: ${statusOCDBcpass1json}, qa: ${statusQAjson} },
+    cpass0: {
+      reco: { n_ok: ${statusCPass0[0]}, n_bad: ${statusCPass0[1]} },
+      stderr: { n_ok: ${statusCPass0[2]}, n_bad: ${statusCPass0[3]} },
+      calib: { n_ok: ${statusCPass0[4]}, n_bad: ${statusCPass0[5]} }
+    },
+    cpass1: {
+      reco: { n_ok: ${statusCPass1[0]}, n_bad: ${statusCPass1[1]} },
+      stderr: { n_ok: ${statusCPass1[2]}, n_bad: ${statusCPass1[3]} },
+      calib: { n_ok: ${statusCPass1[4]}, n_bad: ${statusCPass1[5]} },
+      qabarrel: { n_ok: ${statusCPass1[6]}, n_bad: ${statusCPass1[7]} },
+      qarouter: { n_ok: ${statusCPass1[8]}, n_bad: ${statusCPass1[9]} }
+    }
+  },
+EOF
+
 done
 
+  # json footer: close array of objects
+  echo ']' >> "${jsonLogTmp}"
+
   #make lists with output files - QA, trending, filtering and calibration
   ### wait for the merging of all runs to be over ###
   rm -f qa.list
@@ -2398,8 +2440,9 @@ done
   #if set, email the summary
   [[ -n ${MAILTO} ]] && cat ${logTmp} | mail -s "benchmark ${productionID} done" ${MAILTO}
 
-  # Copy log to destination (delete all on failure to signal error)
-  cp "$logTmp" "$logDest" || rm -f "$logTmp" "$logDest"
+  #copy logs to destination
+  paranoidCp "$logTmp" "${commonOutputPath}"
+  paranoidCp "$jsonLogTmp" "${commonOutputPath}"
   
   #copy output files
   exec &> >(tee fileCopy.log)
@@ -2556,6 +2599,7 @@ parseConfig()
   logToFinalDestination=1
   ALIROOT_FORCE_COREDUMP=1
   pretendDelay=0
+  copyInputData=0
 
   #first, source the config file
   if [ -f ${configFile} ]; then
@@ -2612,6 +2656,60 @@ aliroot()
   return 0
 }
 
+copyFileToLocal()
+(
+  #copies a single file to a local destination: the file may either come from
+  #a local filesystem or from a remote location (whose protocol must be
+  #supported)
+  #copy is "robust" and it is repeated some times in case of failure before
+  #giving up (1 is returned in that case)
+  src="$1"
+  dst="$2"
+  ok=0
+  [[ -z "${maxCopyTries}" ]] && maxCopyTries=10
+
+  proto="${src%%://*}"
+
+  echo "copy file to local dest started: $src -> $dst"
+
+  for (( i=1 ; i<=maxCopyTries ; i++ )) ; do
+
+    echo "...attempt $i of $maxCopyTries"
+    rm -f "$dst"
+
+    if [[ "$proto" == "$src" ]]; then
+      cp "$src" "$dst"
+    else
+      case "$proto" in
+        root)
+          xrdcp -f "$src" "$dst"
+        ;;
+        http)
+          curl -L "$src" -O "$dst"
+        ;;
+        *)
+          echo "protocol not supported: $proto"
+          return 2
+        ;;
+      esac
+    fi
+
+    if [ $? == 0 ] ; then
+      ok=1
+      break
+    fi
+
+  done
+
+  if [[ "$ok" == 1 ]] ; then
+    echo "copy file to local dest OK after $i attempt(s): $src -> $dst"
+    return 0
+  fi
+
+  echo "copy file to local dest FAILED after $maxCopyTries attempt(s): $src -> $dst"
+  return 1
+)
+
 paranoidCp()
 (
   #recursively copy files and directories
@@ -2637,22 +2735,36 @@ paranoidCopyFile()
 (
   #copy a single file to a target in an existing dir
   #repeat a few times if copy fails
+  #returns 1 on failure, 0 on success
   src="${1}"
   dst="${2}"
+  ok=0
   [[ -d "${dst}" ]] && dst="${dst}/${src##*/}"
-  [[ -z "${maxCopyTries}" ]] && maxCopyTries=5
-  #echo "maxCopyTries=${maxCopyTries}"
-  echo "cp ${src} ${dst}"
-  cp "${src}" "${dst}"
-  i=0
-  until cmp -s "${src}" "${dst}"; do
-    echo "try: ${i}"
-    [[ -f "${dst}" ]] && rm "${dst}"
-    cp "${src}" "${dst}"
-    [[ ${i} -gt ${maxCopyTries} ]] && ret=1 && return 1
-    (( i++ ))
+  [[ -z "${maxCopyTries}" ]] && maxCopyTries=10
+
+  echo "paranoid copy started: $src -> $dst"
+
+  for (( i=1 ; i<=maxCopyTries ; i++ )) ; do
+
+    echo "...attempt $i of $maxCopyTries"
+    rm -f "$dst"
+    cp "$src" "$dst"
+
+    cmp -s "$src" "$dst"
+    if [ $? == 0 ] ; then
+      ok=1
+      break
+    fi
+
   done
-  return 0
+
+  if [[ "$ok" == 1 ]] ; then
+    echo "paranoid copy OK after $i attempt(s): $src -> $dst"
+    return 0
+  fi
+
+  echo "paranoid copy FAILED after $maxCopyTries attempt(s): $src -> $dst"
+  return 1
 )
 
 guessRunData()
index ab414e6f2ee8d36cdedd107bfe6085465d862de4..bd086fd9998ab5e5cd66d34573bde92c4396354b 100644 (file)
-/eos/opstest/pbuncic/reference/2010/LHC10e/000127712/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000127712/filtered/2/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000127822/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000127822/filtered/2/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000127822/filtered/3/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000127933/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000127933/filtered/2/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000127933/filtered/3/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000127933/filtered/4/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000127935/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000127935/filtered/2/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000127935/filtered/3/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000127935/filtered/4/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000127936/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000127936/filtered/2/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000127936/filtered/3/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000127936/filtered/4/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000127936/filtered/5/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000127936/filtered/6/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000127937/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000127937/filtered/2/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000127937/filtered/3/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000127937/filtered/4/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000127937/filtered/5/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000127940/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000127941/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000127941/filtered/2/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000127941/filtered/3/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000127942/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000127942/filtered/10/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000127942/filtered/2/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000127942/filtered/3/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000127942/filtered/4/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000127942/filtered/5/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000127942/filtered/6/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000127942/filtered/7/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000127942/filtered/8/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000127942/filtered/9/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128185/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128185/filtered/2/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128185/filtered/3/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128185/filtered/4/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128185/filtered/5/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128185/filtered/6/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128186/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128186/filtered/2/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128186/filtered/3/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128186/filtered/4/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128186/filtered/5/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128186/filtered/6/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128186/filtered/7/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128189/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128189/filtered/10/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128189/filtered/11/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128189/filtered/12/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128189/filtered/13/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128189/filtered/14/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128189/filtered/15/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128189/filtered/16/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128189/filtered/17/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128189/filtered/18/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128189/filtered/2/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128189/filtered/3/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128189/filtered/4/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128189/filtered/5/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128189/filtered/6/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128189/filtered/7/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128189/filtered/8/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128189/filtered/9/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128191/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128191/filtered/2/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128191/filtered/3/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128191/filtered/4/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128192/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128192/filtered/2/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128260/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128260/filtered/2/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128260/filtered/3/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128260/filtered/4/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128260/filtered/5/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128366/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128366/filtered/2/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128366/filtered/3/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128366/filtered/4/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128452/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128452/filtered/10/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128452/filtered/11/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128452/filtered/12/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128452/filtered/13/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128452/filtered/14/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128452/filtered/2/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128452/filtered/3/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128452/filtered/4/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128452/filtered/5/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128452/filtered/6/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128452/filtered/7/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128452/filtered/8/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128452/filtered/9/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128483/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128483/filtered/2/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128486/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128486/filtered/2/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128486/filtered/3/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128486/filtered/4/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128486/filtered/5/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128486/filtered/6/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128486/filtered/7/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128486/filtered/8/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128494/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128494/filtered/2/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128494/filtered/3/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128494/filtered/4/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128495/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128495/filtered/2/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128503/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128503/filtered/10/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128503/filtered/11/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128503/filtered/12/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128503/filtered/13/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128503/filtered/14/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128503/filtered/15/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128503/filtered/16/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128503/filtered/17/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128503/filtered/18/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128503/filtered/19/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128503/filtered/2/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128503/filtered/20/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128503/filtered/21/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128503/filtered/22/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128503/filtered/3/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128503/filtered/4/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128503/filtered/5/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128503/filtered/6/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128503/filtered/7/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128503/filtered/8/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128503/filtered/9/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128504/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128504/filtered/10/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128504/filtered/11/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128504/filtered/12/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128504/filtered/13/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128504/filtered/14/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128504/filtered/2/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128504/filtered/3/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128504/filtered/4/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128504/filtered/5/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128504/filtered/6/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128504/filtered/7/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128504/filtered/8/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128504/filtered/9/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128582/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128582/filtered/2/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128605/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128605/filtered/2/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128609/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128609/filtered/10/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128609/filtered/11/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128609/filtered/12/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128609/filtered/13/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128609/filtered/14/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128609/filtered/15/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128609/filtered/16/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128609/filtered/17/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128609/filtered/2/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128609/filtered/3/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128609/filtered/4/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128609/filtered/5/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128609/filtered/6/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128609/filtered/7/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128609/filtered/8/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128609/filtered/9/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128611/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128611/filtered/2/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128611/filtered/3/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128615/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128615/filtered/2/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128615/filtered/3/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128615/filtered/4/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128677/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128678/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128678/filtered/2/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128777/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128777/filtered/2/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128777/filtered/3/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128777/filtered/4/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128777/filtered/5/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128777/filtered/6/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128778/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128778/filtered/2/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128778/filtered/3/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128778/filtered/4/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128820/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128820/filtered/2/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128820/filtered/3/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128823/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128823/filtered/2/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128824/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128824/filtered/2/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128824/filtered/3/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128824/filtered/4/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128824/filtered/5/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128824/filtered/6/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128824/filtered/7/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128835/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128836/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128836/filtered/2/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128836/filtered/3/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128836/filtered/4/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128836/filtered/5/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128843/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128843/filtered/2/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128843/filtered/3/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128843/filtered/4/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128853/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128853/filtered/2/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128853/filtered/3/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128853/filtered/4/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128855/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128855/filtered/2/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128855/filtered/3/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128855/filtered/4/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128855/filtered/5/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128913/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128913/filtered/2/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000128913/filtered/3/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129512/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129512/filtered/2/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129512/filtered/3/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129512/filtered/4/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129512/filtered/5/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129512/filtered/6/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129512/filtered/7/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129513/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129513/filtered/10/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129513/filtered/2/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129513/filtered/3/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129513/filtered/4/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129513/filtered/5/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129513/filtered/6/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129513/filtered/7/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129513/filtered/8/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129513/filtered/9/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129514/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129514/filtered/10/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129514/filtered/11/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129514/filtered/12/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129514/filtered/13/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129514/filtered/14/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129514/filtered/2/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129514/filtered/3/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129514/filtered/4/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129514/filtered/5/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129514/filtered/6/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129514/filtered/7/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129514/filtered/8/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129514/filtered/9/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129520/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129520/filtered/2/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129520/filtered/3/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129520/filtered/4/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129520/filtered/5/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129523/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129523/filtered/2/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129523/filtered/3/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129523/filtered/4/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129527/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129527/filtered/2/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129528/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129528/filtered/2/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129528/filtered/3/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129540/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129540/filtered/2/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129540/filtered/3/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129540/filtered/4/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129540/filtered/5/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129540/filtered/6/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129540/filtered/7/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129586/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129586/filtered/2/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129586/filtered/3/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129587/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129587/filtered/2/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129587/filtered/3/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129599/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129599/filtered/2/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129639/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129641/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129641/filtered/2/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129641/filtered/3/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129641/filtered/4/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129647/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129647/filtered/2/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129647/filtered/3/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129650/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129650/filtered/2/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129650/filtered/3/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129652/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129652/filtered/2/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129652/filtered/3/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129653/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129653/filtered/2/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129653/filtered/3/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129653/filtered/4/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129653/filtered/5/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129654/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129654/filtered/10/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129654/filtered/11/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129654/filtered/12/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129654/filtered/13/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129654/filtered/14/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129654/filtered/15/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129654/filtered/16/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129654/filtered/17/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129654/filtered/18/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129654/filtered/19/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129654/filtered/2/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129654/filtered/20/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129654/filtered/21/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129654/filtered/22/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129654/filtered/23/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129654/filtered/3/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129654/filtered/4/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129654/filtered/5/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129654/filtered/6/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129654/filtered/7/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129654/filtered/8/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129654/filtered/9/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129659/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129659/filtered/2/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129666/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129666/filtered/2/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129666/filtered/3/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129666/filtered/4/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129723/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129725/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129726/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129726/filtered/2/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129726/filtered/3/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129729/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129729/filtered/2/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129729/filtered/3/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129735/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129735/filtered/2/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129735/filtered/3/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129735/filtered/4/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129735/filtered/5/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129735/filtered/6/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129736/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129736/filtered/2/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129736/filtered/3/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129736/filtered/4/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129736/filtered/5/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129736/filtered/6/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129738/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129738/filtered/2/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129738/filtered/3/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129738/filtered/4/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129738/filtered/5/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129742/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129742/filtered/2/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129742/filtered/3/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129744/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129744/filtered/2/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129744/filtered/3/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129959/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129959/filtered/2/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129959/filtered/3/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129960/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129960/filtered/2/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129960/filtered/3/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129960/filtered/4/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129961/filtered/16/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129961/filtered/17/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129961/filtered/18/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000129961/filtered/19/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130149/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130149/filtered/10/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130149/filtered/11/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130149/filtered/12/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130149/filtered/13/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130149/filtered/14/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130149/filtered/15/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130149/filtered/16/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130149/filtered/17/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130149/filtered/18/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130149/filtered/19/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130149/filtered/2/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130149/filtered/20/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130149/filtered/21/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130149/filtered/22/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130149/filtered/23/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130149/filtered/24/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130149/filtered/25/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130149/filtered/26/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130149/filtered/27/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130149/filtered/28/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130149/filtered/29/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130149/filtered/3/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130149/filtered/30/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130149/filtered/31/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130149/filtered/32/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130149/filtered/33/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130149/filtered/34/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130149/filtered/35/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130149/filtered/36/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130149/filtered/4/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130149/filtered/5/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130149/filtered/6/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130149/filtered/7/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130149/filtered/8/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130149/filtered/9/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130157/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130157/filtered/10/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130157/filtered/11/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130157/filtered/12/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130157/filtered/13/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130157/filtered/14/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130157/filtered/15/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130157/filtered/16/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130157/filtered/17/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130157/filtered/18/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130157/filtered/19/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130157/filtered/2/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130157/filtered/20/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130157/filtered/21/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130157/filtered/22/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130157/filtered/23/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130157/filtered/24/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130157/filtered/25/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130157/filtered/26/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130157/filtered/27/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130157/filtered/28/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130157/filtered/29/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130157/filtered/3/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130157/filtered/30/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130157/filtered/31/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130157/filtered/32/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130157/filtered/33/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130157/filtered/34/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130157/filtered/35/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130157/filtered/36/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130157/filtered/37/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130157/filtered/38/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130157/filtered/39/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130157/filtered/4/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130157/filtered/5/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130157/filtered/6/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130157/filtered/7/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130157/filtered/8/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130157/filtered/9/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130158/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130158/filtered/10/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130158/filtered/11/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130158/filtered/12/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130158/filtered/13/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130158/filtered/14/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130158/filtered/15/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130158/filtered/16/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130158/filtered/17/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130158/filtered/18/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130158/filtered/19/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130158/filtered/2/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130158/filtered/20/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130158/filtered/21/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130158/filtered/22/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130158/filtered/23/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130158/filtered/24/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130158/filtered/25/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130158/filtered/26/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130158/filtered/27/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130158/filtered/28/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130158/filtered/29/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130158/filtered/3/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130158/filtered/30/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130158/filtered/31/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130158/filtered/32/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130158/filtered/33/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130158/filtered/34/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130158/filtered/35/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130158/filtered/36/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130158/filtered/37/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130158/filtered/38/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130158/filtered/39/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130158/filtered/4/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130158/filtered/40/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130158/filtered/41/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130158/filtered/5/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130158/filtered/6/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130158/filtered/7/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130158/filtered/8/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130158/filtered/9/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130172/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130172/filtered/10/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130172/filtered/11/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130172/filtered/12/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130172/filtered/13/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130172/filtered/14/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130172/filtered/15/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130172/filtered/2/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130172/filtered/3/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130172/filtered/4/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130172/filtered/5/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130172/filtered/6/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130172/filtered/7/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130172/filtered/8/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130172/filtered/9/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130178/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130178/filtered/10/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130178/filtered/11/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130178/filtered/12/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130178/filtered/13/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130178/filtered/14/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130178/filtered/15/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130178/filtered/16/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130178/filtered/17/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130178/filtered/18/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130178/filtered/19/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130178/filtered/2/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130178/filtered/20/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130178/filtered/21/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130178/filtered/22/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130178/filtered/23/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130178/filtered/24/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130178/filtered/25/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130178/filtered/26/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130178/filtered/27/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130178/filtered/28/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130178/filtered/29/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130178/filtered/3/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130178/filtered/30/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130178/filtered/31/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130178/filtered/32/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130178/filtered/33/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130178/filtered/34/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130178/filtered/35/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130178/filtered/36/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130178/filtered/37/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130178/filtered/38/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130178/filtered/39/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130178/filtered/4/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130178/filtered/5/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130178/filtered/6/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130178/filtered/7/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130178/filtered/8/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130178/filtered/9/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130342/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130342/filtered/2/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130342/filtered/3/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130342/filtered/4/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130342/filtered/5/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130342/filtered/6/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130342/filtered/7/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130343/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130343/filtered/10/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130343/filtered/11/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130343/filtered/12/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130343/filtered/13/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130343/filtered/14/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130343/filtered/15/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130343/filtered/16/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130343/filtered/17/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130343/filtered/18/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130343/filtered/19/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130343/filtered/2/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130343/filtered/20/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130343/filtered/21/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130343/filtered/22/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130343/filtered/23/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130343/filtered/24/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130343/filtered/25/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130343/filtered/26/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130343/filtered/27/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130343/filtered/3/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130343/filtered/4/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130343/filtered/5/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130343/filtered/6/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130343/filtered/7/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130343/filtered/8/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130343/filtered/9/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130354/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130354/filtered/2/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130354/filtered/3/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130356/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130356/filtered/10/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130356/filtered/11/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130356/filtered/12/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130356/filtered/13/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130356/filtered/14/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130356/filtered/15/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130356/filtered/16/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130356/filtered/17/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130356/filtered/18/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130356/filtered/19/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130356/filtered/2/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130356/filtered/20/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130356/filtered/21/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130356/filtered/22/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130356/filtered/23/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130356/filtered/24/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130356/filtered/25/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130356/filtered/26/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130356/filtered/27/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130356/filtered/28/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130356/filtered/29/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130356/filtered/3/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130356/filtered/30/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130356/filtered/31/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130356/filtered/4/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130356/filtered/5/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130356/filtered/6/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130356/filtered/7/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130356/filtered/8/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130356/filtered/9/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130480/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130480/filtered/10/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130480/filtered/11/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130480/filtered/12/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130480/filtered/13/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130480/filtered/14/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130480/filtered/15/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130480/filtered/16/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130480/filtered/17/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130480/filtered/18/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130480/filtered/19/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130480/filtered/2/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130480/filtered/20/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130480/filtered/21/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130480/filtered/22/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130480/filtered/23/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130480/filtered/24/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130480/filtered/25/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130480/filtered/26/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130480/filtered/27/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130480/filtered/28/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130480/filtered/29/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130480/filtered/3/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130480/filtered/30/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130480/filtered/31/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130480/filtered/32/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130480/filtered/33/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130480/filtered/34/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130480/filtered/35/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130480/filtered/36/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130480/filtered/37/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130480/filtered/38/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130480/filtered/39/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130480/filtered/4/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130480/filtered/40/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130480/filtered/41/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130480/filtered/42/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130480/filtered/43/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130480/filtered/44/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130480/filtered/45/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130480/filtered/5/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130480/filtered/6/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130480/filtered/7/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130480/filtered/8/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130480/filtered/9/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/10/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/11/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/12/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/13/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/14/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/15/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/16/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/17/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/18/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/19/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/2/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/20/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/21/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/22/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/23/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/24/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/25/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/26/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/27/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/28/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/29/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/3/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/30/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/31/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/32/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/33/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/34/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/35/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/36/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/37/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/38/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/39/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/4/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/40/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/41/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/42/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/43/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/44/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/45/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/46/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/47/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/48/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/49/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/5/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/50/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/51/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/52/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/53/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/54/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/55/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/56/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/57/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/58/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/59/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/6/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/60/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/61/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/62/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/63/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/64/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/65/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/66/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/67/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/68/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/69/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/7/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/70/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/71/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/72/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/73/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/74/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/75/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/76/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/77/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/78/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/79/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/8/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/80/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/81/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/82/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/83/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/84/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/85/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/86/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/87/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/88/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/89/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/9/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/90/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/91/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/92/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/93/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/94/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/95/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/96/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/10/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/11/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/12/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/13/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/14/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/15/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/16/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/17/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/18/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/19/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/2/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/20/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/21/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/22/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/23/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/24/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/25/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/26/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/27/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/28/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/29/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/3/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/30/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/31/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/32/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/33/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/34/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/35/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/36/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/37/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/38/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/39/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/4/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/40/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/41/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/42/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/43/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/44/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/45/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/46/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/47/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/48/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/49/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/5/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/50/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/51/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/52/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/53/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/54/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/55/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/56/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/57/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/58/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/59/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/6/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/60/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/61/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/62/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/63/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/64/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/65/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/66/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/7/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/8/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/9/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130696/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130696/filtered/10/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130696/filtered/11/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130696/filtered/12/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130696/filtered/13/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130696/filtered/14/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130696/filtered/15/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130696/filtered/16/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130696/filtered/17/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130696/filtered/18/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130696/filtered/19/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130696/filtered/2/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130696/filtered/20/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130696/filtered/21/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130696/filtered/22/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130696/filtered/23/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130696/filtered/24/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130696/filtered/25/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130696/filtered/26/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130696/filtered/27/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130696/filtered/28/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130696/filtered/29/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130696/filtered/3/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130696/filtered/30/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130696/filtered/31/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130696/filtered/32/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130696/filtered/33/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130696/filtered/34/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130696/filtered/4/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130696/filtered/5/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130696/filtered/6/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130696/filtered/7/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130696/filtered/8/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130696/filtered/9/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/10/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/11/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/12/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/13/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/14/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/15/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/16/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/17/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/18/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/19/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/2/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/20/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/21/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/22/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/23/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/24/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/25/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/26/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/27/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/28/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/29/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/3/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/30/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/31/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/32/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/33/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/34/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/35/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/36/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/37/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/38/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/39/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/4/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/40/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/41/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/42/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/43/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/44/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/45/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/46/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/47/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/48/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/49/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/5/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/50/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/6/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/7/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/8/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/9/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130793/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130793/filtered/10/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130793/filtered/11/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130793/filtered/12/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130793/filtered/13/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130793/filtered/14/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130793/filtered/15/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130793/filtered/16/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130793/filtered/17/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130793/filtered/18/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130793/filtered/19/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130793/filtered/2/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130793/filtered/20/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130793/filtered/21/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130793/filtered/22/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130793/filtered/23/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130793/filtered/24/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130793/filtered/25/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130793/filtered/26/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130793/filtered/27/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130793/filtered/28/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130793/filtered/29/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130793/filtered/3/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130793/filtered/30/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130793/filtered/31/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130793/filtered/32/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130793/filtered/33/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130793/filtered/34/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130793/filtered/35/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130793/filtered/36/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130793/filtered/4/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130793/filtered/5/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130793/filtered/6/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130793/filtered/7/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130793/filtered/8/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130793/filtered/9/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130795/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130795/filtered/11/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130795/filtered/12/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130795/filtered/13/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130795/filtered/14/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130795/filtered/15/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130795/filtered/16/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130795/filtered/17/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130795/filtered/18/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130795/filtered/2/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130795/filtered/21/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130795/filtered/22/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130795/filtered/23/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130795/filtered/24/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130795/filtered/25/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130795/filtered/26/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130795/filtered/27/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130795/filtered/28/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130795/filtered/3/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130795/filtered/31/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130795/filtered/32/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130795/filtered/33/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130795/filtered/34/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130795/filtered/35/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130795/filtered/36/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130795/filtered/37/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130795/filtered/38/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130795/filtered/4/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130795/filtered/41/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130795/filtered/42/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130795/filtered/43/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130795/filtered/44/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130795/filtered/45/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130795/filtered/46/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130795/filtered/5/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130795/filtered/6/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130795/filtered/7/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130795/filtered/8/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130798/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130798/filtered/2/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130798/filtered/3/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130798/filtered/4/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130798/filtered/5/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130798/filtered/6/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130798/filtered/7/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130798/filtered/8/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130798/filtered/9/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130799/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130799/filtered/10/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130799/filtered/11/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130799/filtered/12/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130799/filtered/13/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130799/filtered/14/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130799/filtered/15/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130799/filtered/16/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130799/filtered/17/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130799/filtered/18/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130799/filtered/19/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130799/filtered/2/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130799/filtered/20/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130799/filtered/21/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130799/filtered/22/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130799/filtered/23/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130799/filtered/24/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130799/filtered/25/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130799/filtered/26/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130799/filtered/27/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130799/filtered/28/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130799/filtered/3/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130799/filtered/4/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130799/filtered/5/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130799/filtered/6/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130799/filtered/7/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130799/filtered/8/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130799/filtered/9/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130834/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130834/filtered/10/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130834/filtered/11/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130834/filtered/12/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130834/filtered/13/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130834/filtered/14/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130834/filtered/15/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130834/filtered/16/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130834/filtered/17/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130834/filtered/18/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130834/filtered/19/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130834/filtered/2/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130834/filtered/20/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130834/filtered/21/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130834/filtered/22/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130834/filtered/3/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130834/filtered/4/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130834/filtered/5/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130834/filtered/6/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130834/filtered/7/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130834/filtered/8/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130834/filtered/9/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130840/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130840/filtered/10/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130840/filtered/11/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130840/filtered/2/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130840/filtered/3/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130840/filtered/4/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130840/filtered/5/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130840/filtered/6/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130840/filtered/7/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130840/filtered/8/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2010/LHC10e/000130840/filtered/9/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/10/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/100/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/101/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/102/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/103/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/104/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/105/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/106/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/107/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/108/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/109/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/11/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/110/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/111/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/112/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/113/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/115/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/116/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/117/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/119/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/12/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/120/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/122/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/123/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/124/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/125/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/126/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/127/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/128/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/129/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/13/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/130/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/131/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/132/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/133/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/134/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/135/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/136/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/137/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/138/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/139/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/14/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/140/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/141/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/142/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/143/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/144/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/145/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/146/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/147/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/148/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/149/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/15/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/150/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/151/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/152/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/153/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/154/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/155/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/156/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/157/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/16/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/161/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/17/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/18/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/19/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/20/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/21/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/22/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/23/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/24/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/25/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/26/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/27/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/28/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/29/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/30/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/32/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/33/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/34/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/35/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/36/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/37/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/38/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/39/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/40/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/41/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/42/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/43/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/44/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/45/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/46/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/47/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/48/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/49/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/50/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/51/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/52/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/53/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/54/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/56/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/57/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/58/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/59/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/6/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/60/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/61/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/63/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/64/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/65/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/66/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/67/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/68/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/69/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/7/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/70/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/71/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/72/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/73/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/74/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/75/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/76/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/77/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/78/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/79/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/80/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/81/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/82/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/83/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/84/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/85/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/86/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/87/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/88/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/89/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/9/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/91/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/92/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/93/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/94/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/95/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/96/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/97/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/98/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/99/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000168207/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000168207/filtered/2/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000168207/filtered/3/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000168207/filtered/4/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000168207/filtered/5/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000168207/filtered/6/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000168460/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000168460/filtered/10/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000168460/filtered/11/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000168460/filtered/12/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000168460/filtered/13/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000168460/filtered/14/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000168460/filtered/15/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000168460/filtered/16/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000168460/filtered/17/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000168460/filtered/18/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000168460/filtered/19/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000168460/filtered/2/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000168460/filtered/20/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000168460/filtered/21/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000168460/filtered/22/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000168460/filtered/23/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000168460/filtered/24/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000168460/filtered/25/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000168460/filtered/26/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000168460/filtered/27/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000168460/filtered/28/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000168460/filtered/29/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000168460/filtered/3/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000168460/filtered/30/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000168460/filtered/31/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000168460/filtered/32/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000168460/filtered/33/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000168460/filtered/34/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000168460/filtered/35/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000168460/filtered/36/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000168460/filtered/37/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000168460/filtered/38/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000168460/filtered/39/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000168460/filtered/4/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000168460/filtered/40/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000168460/filtered/41/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000168460/filtered/42/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000168460/filtered/43/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000168460/filtered/44/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000168460/filtered/45/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000168460/filtered/46/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000168460/filtered/5/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000168460/filtered/6/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000168460/filtered/7/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000168460/filtered/8/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000168460/filtered/9/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/10/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/100/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/101/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/102/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/103/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/104/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/105/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/106/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/107/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/108/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/109/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/11/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/110/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/111/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/112/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/113/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/114/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/115/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/116/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/117/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/118/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/12/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/13/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/14/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/15/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/16/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/17/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/18/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/19/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/2/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/20/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/21/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/22/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/23/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/24/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/25/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/26/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/27/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/28/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/29/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/3/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/30/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/31/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/32/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/33/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/34/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/35/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/36/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/37/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/38/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/39/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/4/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/40/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/41/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/42/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/43/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/44/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/45/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/46/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/47/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/48/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/49/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/5/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/50/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/51/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/52/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/53/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/54/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/55/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/56/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/57/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/58/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/59/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/6/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/60/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/61/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/62/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/63/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/64/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/65/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/66/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/67/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/68/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/69/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/7/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/70/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/71/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/72/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/73/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/74/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/75/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/76/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/77/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/78/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/79/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/8/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/80/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/81/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/82/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/83/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/84/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/85/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/86/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/87/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/88/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/89/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/9/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/90/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/91/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/92/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/93/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/94/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/95/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/96/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/97/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/98/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/99/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170269/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170269/filtered/10/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170269/filtered/11/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170269/filtered/12/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170269/filtered/13/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170269/filtered/14/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170269/filtered/15/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170269/filtered/16/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170269/filtered/17/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170269/filtered/18/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170269/filtered/19/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170269/filtered/2/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170269/filtered/20/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170269/filtered/21/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170269/filtered/22/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170269/filtered/23/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170269/filtered/24/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170269/filtered/25/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170269/filtered/26/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170269/filtered/27/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170269/filtered/28/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170269/filtered/29/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170269/filtered/3/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170269/filtered/30/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170269/filtered/31/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170269/filtered/32/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170269/filtered/33/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170269/filtered/34/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170269/filtered/35/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170269/filtered/36/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170269/filtered/37/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170269/filtered/38/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170269/filtered/4/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170269/filtered/5/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170269/filtered/6/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170269/filtered/7/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170269/filtered/8/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170269/filtered/9/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/10/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/11/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/12/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/13/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/14/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/15/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/16/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/17/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/18/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/19/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/2/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/20/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/21/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/22/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/23/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/24/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/25/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/26/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/27/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/28/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/29/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/3/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/30/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/31/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/32/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/33/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/34/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/35/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/36/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/37/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/38/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/39/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/4/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/40/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/41/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/42/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/43/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/44/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/45/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/46/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/47/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/48/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/49/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/5/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/50/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/51/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/52/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/53/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/54/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/55/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/6/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/7/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/8/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/9/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/10/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/100/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/101/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/102/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/104/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/105/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/106/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/107/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/108/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/109/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/11/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/110/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/111/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/112/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/113/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/114/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/115/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/116/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/117/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/118/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/119/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/120/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/13/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/14/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/15/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/16/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/17/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/18/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/2/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/20/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/22/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/23/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/24/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/25/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/26/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/29/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/3/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/30/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/31/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/33/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/34/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/35/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/36/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/37/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/38/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/39/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/4/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/40/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/41/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/43/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/44/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/45/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/46/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/47/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/48/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/49/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/5/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/50/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/51/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/52/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/53/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/54/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/55/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/56/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/57/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/6/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/61/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/63/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/64/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/66/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/67/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/68/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/69/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/7/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/70/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/71/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/72/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/73/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/74/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/76/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/77/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/78/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/79/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/8/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/80/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/82/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/83/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/84/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/85/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/86/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/87/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/88/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/89/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/90/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/91/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/92/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/93/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/94/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/95/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/96/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/99/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/10/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/100/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/101/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/102/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/103/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/104/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/105/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/106/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/107/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/108/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/109/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/11/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/110/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/111/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/112/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/113/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/114/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/115/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/116/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/117/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/118/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/119/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/12/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/120/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/121/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/122/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/123/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/124/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/125/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/126/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/127/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/128/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/129/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/13/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/14/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/15/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/16/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/17/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/18/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/19/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/2/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/20/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/21/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/22/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/23/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/24/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/25/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/26/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/27/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/28/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/29/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/3/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/30/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/31/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/32/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/33/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/34/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/35/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/36/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/37/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/38/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/39/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/4/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/40/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/41/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/42/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/43/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/44/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/45/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/46/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/47/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/48/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/49/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/5/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/50/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/51/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/52/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/53/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/54/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/55/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/56/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/57/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/58/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/59/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/6/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/60/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/61/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/62/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/63/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/64/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/65/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/66/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/67/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/68/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/69/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/7/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/70/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/71/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/72/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/73/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/74/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/75/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/76/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/77/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/78/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/79/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/8/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/80/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/81/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/82/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/83/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/84/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/85/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/86/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/87/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/88/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/89/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/9/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/90/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/91/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/92/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/93/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/94/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/95/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/96/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/97/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/98/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/99/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/1/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/10/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/11/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/12/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/13/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/14/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/15/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/16/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/17/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/18/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/19/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/2/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/20/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/21/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/22/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/23/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/24/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/25/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/26/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/27/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/28/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/29/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/3/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/30/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/31/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/32/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/33/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/34/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/35/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/36/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/37/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/38/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/39/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/4/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/40/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/41/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/42/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/43/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/44/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/45/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/46/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/47/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/48/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/49/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/5/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/50/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/51/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/52/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/53/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/54/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/55/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/56/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/57/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/58/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/59/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/6/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/60/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/61/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/62/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/64/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/65/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/66/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/7/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/8/filtered_highPt.root
-/eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/9/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000127712/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000127712/filtered/2/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000127822/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000127822/filtered/2/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000127822/filtered/3/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000127933/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000127933/filtered/2/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000127933/filtered/3/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000127933/filtered/4/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000127935/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000127935/filtered/2/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000127935/filtered/3/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000127935/filtered/4/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000127936/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000127936/filtered/2/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000127936/filtered/3/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000127936/filtered/4/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000127936/filtered/5/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000127936/filtered/6/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000127937/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000127937/filtered/2/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000127937/filtered/3/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000127937/filtered/4/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000127937/filtered/5/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000127940/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000127941/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000127941/filtered/2/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000127941/filtered/3/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000127942/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000127942/filtered/10/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000127942/filtered/2/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000127942/filtered/3/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000127942/filtered/4/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000127942/filtered/5/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000127942/filtered/6/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000127942/filtered/7/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000127942/filtered/8/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000127942/filtered/9/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128185/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128185/filtered/2/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128185/filtered/3/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128185/filtered/4/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128185/filtered/5/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128185/filtered/6/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128186/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128186/filtered/2/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128186/filtered/3/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128186/filtered/4/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128186/filtered/5/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128186/filtered/6/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128186/filtered/7/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128189/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128189/filtered/10/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128189/filtered/11/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128189/filtered/12/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128189/filtered/13/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128189/filtered/14/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128189/filtered/15/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128189/filtered/16/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128189/filtered/17/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128189/filtered/18/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128189/filtered/2/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128189/filtered/3/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128189/filtered/4/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128189/filtered/5/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128189/filtered/6/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128189/filtered/7/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128189/filtered/8/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128189/filtered/9/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128191/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128191/filtered/2/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128191/filtered/3/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128191/filtered/4/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128192/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128192/filtered/2/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128260/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128260/filtered/2/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128260/filtered/3/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128260/filtered/4/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128260/filtered/5/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128366/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128366/filtered/2/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128366/filtered/3/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128366/filtered/4/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128452/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128452/filtered/10/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128452/filtered/11/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128452/filtered/12/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128452/filtered/13/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128452/filtered/14/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128452/filtered/2/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128452/filtered/3/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128452/filtered/4/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128452/filtered/5/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128452/filtered/6/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128452/filtered/7/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128452/filtered/8/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128452/filtered/9/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128483/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128483/filtered/2/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128486/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128486/filtered/2/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128486/filtered/3/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128486/filtered/4/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128486/filtered/5/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128486/filtered/6/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128486/filtered/7/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128486/filtered/8/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128494/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128494/filtered/2/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128494/filtered/3/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128494/filtered/4/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128495/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128495/filtered/2/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128503/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128503/filtered/10/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128503/filtered/11/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128503/filtered/12/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128503/filtered/13/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128503/filtered/14/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128503/filtered/15/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128503/filtered/16/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128503/filtered/17/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128503/filtered/18/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128503/filtered/19/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128503/filtered/2/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128503/filtered/20/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128503/filtered/21/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128503/filtered/22/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128503/filtered/3/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128503/filtered/4/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128503/filtered/5/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128503/filtered/6/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128503/filtered/7/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128503/filtered/8/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128503/filtered/9/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128504/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128504/filtered/10/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128504/filtered/11/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128504/filtered/12/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128504/filtered/13/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128504/filtered/14/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128504/filtered/2/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128504/filtered/3/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128504/filtered/4/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128504/filtered/5/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128504/filtered/6/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128504/filtered/7/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128504/filtered/8/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128504/filtered/9/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128582/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128582/filtered/2/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128605/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128605/filtered/2/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128609/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128609/filtered/10/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128609/filtered/11/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128609/filtered/12/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128609/filtered/13/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128609/filtered/14/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128609/filtered/15/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128609/filtered/16/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128609/filtered/17/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128609/filtered/2/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128609/filtered/3/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128609/filtered/4/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128609/filtered/5/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128609/filtered/6/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128609/filtered/7/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128609/filtered/8/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128609/filtered/9/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128611/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128611/filtered/2/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128611/filtered/3/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128615/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128615/filtered/2/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128615/filtered/3/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128615/filtered/4/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128677/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128678/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128678/filtered/2/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128777/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128777/filtered/2/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128777/filtered/3/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128777/filtered/4/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128777/filtered/5/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128777/filtered/6/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128778/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128778/filtered/2/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128778/filtered/3/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128778/filtered/4/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128820/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128820/filtered/2/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128820/filtered/3/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128823/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128823/filtered/2/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128824/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128824/filtered/2/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128824/filtered/3/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128824/filtered/4/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128824/filtered/5/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128824/filtered/6/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128824/filtered/7/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128835/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128836/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128836/filtered/2/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128836/filtered/3/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128836/filtered/4/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128836/filtered/5/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128843/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128843/filtered/2/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128843/filtered/3/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128843/filtered/4/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128853/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128853/filtered/2/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128853/filtered/3/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128853/filtered/4/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128855/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128855/filtered/2/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128855/filtered/3/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128855/filtered/4/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128855/filtered/5/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128913/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128913/filtered/2/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000128913/filtered/3/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129512/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129512/filtered/2/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129512/filtered/3/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129512/filtered/4/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129512/filtered/5/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129512/filtered/6/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129512/filtered/7/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129513/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129513/filtered/10/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129513/filtered/2/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129513/filtered/3/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129513/filtered/4/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129513/filtered/5/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129513/filtered/6/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129513/filtered/7/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129513/filtered/8/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129513/filtered/9/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129514/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129514/filtered/10/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129514/filtered/11/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129514/filtered/12/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129514/filtered/13/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129514/filtered/14/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129514/filtered/2/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129514/filtered/3/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129514/filtered/4/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129514/filtered/5/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129514/filtered/6/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129514/filtered/7/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129514/filtered/8/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129514/filtered/9/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129520/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129520/filtered/2/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129520/filtered/3/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129520/filtered/4/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129520/filtered/5/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129523/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129523/filtered/2/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129523/filtered/3/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129523/filtered/4/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129527/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129527/filtered/2/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129528/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129528/filtered/2/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129528/filtered/3/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129540/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129540/filtered/2/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129540/filtered/3/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129540/filtered/4/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129540/filtered/5/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129540/filtered/6/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129540/filtered/7/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129586/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129586/filtered/2/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129586/filtered/3/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129587/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129587/filtered/2/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129587/filtered/3/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129599/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129599/filtered/2/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129639/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129641/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129641/filtered/2/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129641/filtered/3/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129641/filtered/4/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129647/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129647/filtered/2/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129647/filtered/3/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129650/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129650/filtered/2/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129650/filtered/3/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129652/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129652/filtered/2/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129652/filtered/3/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129653/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129653/filtered/2/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129653/filtered/3/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129653/filtered/4/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129653/filtered/5/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129654/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129654/filtered/10/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129654/filtered/11/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129654/filtered/12/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129654/filtered/13/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129654/filtered/14/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129654/filtered/15/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129654/filtered/16/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129654/filtered/17/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129654/filtered/18/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129654/filtered/19/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129654/filtered/2/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129654/filtered/20/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129654/filtered/21/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129654/filtered/22/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129654/filtered/23/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129654/filtered/3/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129654/filtered/4/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129654/filtered/5/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129654/filtered/6/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129654/filtered/7/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129654/filtered/8/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129654/filtered/9/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129659/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129659/filtered/2/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129666/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129666/filtered/2/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129666/filtered/3/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129666/filtered/4/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129723/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129725/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129726/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129726/filtered/2/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129726/filtered/3/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129729/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129729/filtered/2/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129729/filtered/3/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129735/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129735/filtered/2/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129735/filtered/3/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129735/filtered/4/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129735/filtered/5/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129735/filtered/6/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129736/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129736/filtered/2/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129736/filtered/3/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129736/filtered/4/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129736/filtered/5/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129736/filtered/6/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129738/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129738/filtered/2/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129738/filtered/3/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129738/filtered/4/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129738/filtered/5/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129742/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129742/filtered/2/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129742/filtered/3/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129744/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129744/filtered/2/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129744/filtered/3/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129959/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129959/filtered/2/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129959/filtered/3/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129960/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129960/filtered/2/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129960/filtered/3/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129960/filtered/4/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129961/filtered/16/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129961/filtered/17/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129961/filtered/18/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000129961/filtered/19/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130149/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130149/filtered/10/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130149/filtered/11/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130149/filtered/12/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130149/filtered/13/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130149/filtered/14/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130149/filtered/15/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130149/filtered/16/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130149/filtered/17/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130149/filtered/18/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130149/filtered/19/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130149/filtered/2/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130149/filtered/20/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130149/filtered/21/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130149/filtered/22/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130149/filtered/23/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130149/filtered/24/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130149/filtered/25/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130149/filtered/26/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130149/filtered/27/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130149/filtered/28/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130149/filtered/29/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130149/filtered/3/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130149/filtered/30/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130149/filtered/31/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130149/filtered/32/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130149/filtered/33/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130149/filtered/34/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130149/filtered/35/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130149/filtered/36/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130149/filtered/4/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130149/filtered/5/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130149/filtered/6/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130149/filtered/7/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130149/filtered/8/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130149/filtered/9/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130157/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130157/filtered/10/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130157/filtered/11/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130157/filtered/12/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130157/filtered/13/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130157/filtered/14/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130157/filtered/15/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130157/filtered/16/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130157/filtered/17/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130157/filtered/18/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130157/filtered/19/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130157/filtered/2/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130157/filtered/20/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130157/filtered/21/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130157/filtered/22/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130157/filtered/23/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130157/filtered/24/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130157/filtered/25/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130157/filtered/26/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130157/filtered/27/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130157/filtered/28/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130157/filtered/29/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130157/filtered/3/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130157/filtered/30/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130157/filtered/31/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130157/filtered/32/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130157/filtered/33/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130157/filtered/34/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130157/filtered/35/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130157/filtered/36/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130157/filtered/37/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130157/filtered/38/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130157/filtered/39/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130157/filtered/4/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130157/filtered/5/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130157/filtered/6/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130157/filtered/7/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130157/filtered/8/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130157/filtered/9/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130158/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130158/filtered/10/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130158/filtered/11/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130158/filtered/12/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130158/filtered/13/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130158/filtered/14/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130158/filtered/15/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130158/filtered/16/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130158/filtered/17/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130158/filtered/18/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130158/filtered/19/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130158/filtered/2/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130158/filtered/20/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130158/filtered/21/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130158/filtered/22/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130158/filtered/23/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130158/filtered/24/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130158/filtered/25/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130158/filtered/26/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130158/filtered/27/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130158/filtered/28/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130158/filtered/29/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130158/filtered/3/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130158/filtered/30/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130158/filtered/31/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130158/filtered/32/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130158/filtered/33/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130158/filtered/34/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130158/filtered/35/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130158/filtered/36/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130158/filtered/37/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130158/filtered/38/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130158/filtered/39/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130158/filtered/4/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130158/filtered/40/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130158/filtered/41/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130158/filtered/5/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130158/filtered/6/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130158/filtered/7/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130158/filtered/8/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130158/filtered/9/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130172/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130172/filtered/10/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130172/filtered/11/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130172/filtered/12/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130172/filtered/13/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130172/filtered/14/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130172/filtered/15/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130172/filtered/2/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130172/filtered/3/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130172/filtered/4/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130172/filtered/5/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130172/filtered/6/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130172/filtered/7/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130172/filtered/8/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130172/filtered/9/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130178/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130178/filtered/10/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130178/filtered/11/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130178/filtered/12/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130178/filtered/13/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130178/filtered/14/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130178/filtered/15/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130178/filtered/16/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130178/filtered/17/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130178/filtered/18/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130178/filtered/19/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130178/filtered/2/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130178/filtered/20/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130178/filtered/21/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130178/filtered/22/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130178/filtered/23/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130178/filtered/24/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130178/filtered/25/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130178/filtered/26/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130178/filtered/27/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130178/filtered/28/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130178/filtered/29/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130178/filtered/3/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130178/filtered/30/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130178/filtered/31/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130178/filtered/32/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130178/filtered/33/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130178/filtered/34/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130178/filtered/35/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130178/filtered/36/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130178/filtered/37/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130178/filtered/38/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130178/filtered/39/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130178/filtered/4/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130178/filtered/5/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130178/filtered/6/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130178/filtered/7/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130178/filtered/8/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130178/filtered/9/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130342/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130342/filtered/2/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130342/filtered/3/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130342/filtered/4/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130342/filtered/5/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130342/filtered/6/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130342/filtered/7/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130343/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130343/filtered/10/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130343/filtered/11/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130343/filtered/12/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130343/filtered/13/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130343/filtered/14/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130343/filtered/15/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130343/filtered/16/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130343/filtered/17/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130343/filtered/18/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130343/filtered/19/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130343/filtered/2/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130343/filtered/20/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130343/filtered/21/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130343/filtered/22/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130343/filtered/23/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130343/filtered/24/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130343/filtered/25/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130343/filtered/26/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130343/filtered/27/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130343/filtered/3/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130343/filtered/4/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130343/filtered/5/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130343/filtered/6/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130343/filtered/7/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130343/filtered/8/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130343/filtered/9/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130354/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130354/filtered/2/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130354/filtered/3/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130356/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130356/filtered/10/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130356/filtered/11/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130356/filtered/12/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130356/filtered/13/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130356/filtered/14/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130356/filtered/15/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130356/filtered/16/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130356/filtered/17/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130356/filtered/18/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130356/filtered/19/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130356/filtered/2/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130356/filtered/20/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130356/filtered/21/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130356/filtered/22/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130356/filtered/23/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130356/filtered/24/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130356/filtered/25/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130356/filtered/26/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130356/filtered/27/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130356/filtered/28/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130356/filtered/29/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130356/filtered/3/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130356/filtered/30/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130356/filtered/31/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130356/filtered/4/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130356/filtered/5/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130356/filtered/6/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130356/filtered/7/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130356/filtered/8/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130356/filtered/9/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130480/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130480/filtered/10/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130480/filtered/11/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130480/filtered/12/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130480/filtered/13/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130480/filtered/14/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130480/filtered/15/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130480/filtered/16/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130480/filtered/17/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130480/filtered/18/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130480/filtered/19/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130480/filtered/2/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130480/filtered/20/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130480/filtered/21/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130480/filtered/22/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130480/filtered/23/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130480/filtered/24/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130480/filtered/25/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130480/filtered/26/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130480/filtered/27/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130480/filtered/28/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130480/filtered/29/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130480/filtered/3/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130480/filtered/30/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130480/filtered/31/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130480/filtered/32/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130480/filtered/33/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130480/filtered/34/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130480/filtered/35/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130480/filtered/36/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130480/filtered/37/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130480/filtered/38/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130480/filtered/39/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130480/filtered/4/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130480/filtered/40/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130480/filtered/41/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130480/filtered/42/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130480/filtered/43/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130480/filtered/44/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130480/filtered/45/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130480/filtered/5/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130480/filtered/6/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130480/filtered/7/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130480/filtered/8/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130480/filtered/9/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/10/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/11/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/12/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/13/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/14/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/15/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/16/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/17/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/18/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/19/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/2/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/20/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/21/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/22/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/23/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/24/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/25/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/26/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/27/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/28/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/29/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/3/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/30/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/31/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/32/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/33/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/34/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/35/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/36/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/37/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/38/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/39/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/4/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/40/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/41/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/42/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/43/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/44/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/45/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/46/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/47/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/48/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/49/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/5/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/50/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/51/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/52/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/53/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/54/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/55/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/56/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/57/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/58/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/59/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/6/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/60/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/61/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/62/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/63/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/64/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/65/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/66/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/67/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/68/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/69/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/7/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/70/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/71/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/72/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/73/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/74/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/75/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/76/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/77/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/78/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/79/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/8/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/80/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/81/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/82/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/83/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/84/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/85/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/86/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/87/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/88/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/89/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/9/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/90/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/91/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/92/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/93/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/94/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/95/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130517/filtered/96/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/10/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/11/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/12/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/13/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/14/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/15/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/16/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/17/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/18/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/19/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/2/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/20/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/21/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/22/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/23/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/24/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/25/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/26/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/27/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/28/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/29/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/3/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/30/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/31/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/32/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/33/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/34/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/35/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/36/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/37/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/38/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/39/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/4/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/40/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/41/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/42/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/43/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/44/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/45/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/46/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/47/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/48/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/49/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/5/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/50/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/51/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/52/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/53/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/54/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/55/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/56/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/57/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/58/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/59/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/6/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/60/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/61/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/62/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/63/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/64/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/65/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/66/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/7/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/8/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130519/filtered/9/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130696/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130696/filtered/10/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130696/filtered/11/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130696/filtered/12/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130696/filtered/13/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130696/filtered/14/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130696/filtered/15/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130696/filtered/16/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130696/filtered/17/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130696/filtered/18/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130696/filtered/19/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130696/filtered/2/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130696/filtered/20/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130696/filtered/21/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130696/filtered/22/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130696/filtered/23/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130696/filtered/24/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130696/filtered/25/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130696/filtered/26/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130696/filtered/27/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130696/filtered/28/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130696/filtered/29/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130696/filtered/3/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130696/filtered/30/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130696/filtered/31/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130696/filtered/32/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130696/filtered/33/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130696/filtered/34/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130696/filtered/4/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130696/filtered/5/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130696/filtered/6/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130696/filtered/7/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130696/filtered/8/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130696/filtered/9/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/10/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/11/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/12/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/13/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/14/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/15/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/16/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/17/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/18/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/19/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/2/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/20/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/21/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/22/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/23/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/24/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/25/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/26/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/27/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/28/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/29/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/3/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/30/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/31/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/32/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/33/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/34/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/35/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/36/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/37/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/38/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/39/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/4/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/40/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/41/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/42/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/43/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/44/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/45/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/46/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/47/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/48/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/49/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/5/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/50/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/6/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/7/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/8/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130704/filtered/9/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130793/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130793/filtered/10/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130793/filtered/11/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130793/filtered/12/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130793/filtered/13/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130793/filtered/14/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130793/filtered/15/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130793/filtered/16/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130793/filtered/17/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130793/filtered/18/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130793/filtered/19/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130793/filtered/2/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130793/filtered/20/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130793/filtered/21/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130793/filtered/22/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130793/filtered/23/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130793/filtered/24/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130793/filtered/25/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130793/filtered/26/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130793/filtered/27/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130793/filtered/28/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130793/filtered/29/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130793/filtered/3/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130793/filtered/30/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130793/filtered/31/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130793/filtered/32/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130793/filtered/33/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130793/filtered/34/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130793/filtered/35/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130793/filtered/36/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130793/filtered/4/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130793/filtered/5/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130793/filtered/6/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130793/filtered/7/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130793/filtered/8/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130793/filtered/9/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130795/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130795/filtered/11/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130795/filtered/12/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130795/filtered/13/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130795/filtered/14/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130795/filtered/15/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130795/filtered/16/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130795/filtered/17/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130795/filtered/18/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130795/filtered/2/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130795/filtered/21/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130795/filtered/22/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130795/filtered/23/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130795/filtered/24/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130795/filtered/25/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130795/filtered/26/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130795/filtered/27/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130795/filtered/28/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130795/filtered/3/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130795/filtered/31/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130795/filtered/32/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130795/filtered/33/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130795/filtered/34/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130795/filtered/35/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130795/filtered/36/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130795/filtered/37/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130795/filtered/38/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130795/filtered/4/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130795/filtered/41/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130795/filtered/42/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130795/filtered/43/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130795/filtered/44/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130795/filtered/45/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130795/filtered/46/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130795/filtered/5/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130795/filtered/6/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130795/filtered/7/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130795/filtered/8/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130798/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130798/filtered/2/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130798/filtered/3/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130798/filtered/4/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130798/filtered/5/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130798/filtered/6/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130798/filtered/7/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130798/filtered/8/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130798/filtered/9/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130799/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130799/filtered/10/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130799/filtered/11/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130799/filtered/12/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130799/filtered/13/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130799/filtered/14/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130799/filtered/15/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130799/filtered/16/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130799/filtered/17/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130799/filtered/18/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130799/filtered/19/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130799/filtered/2/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130799/filtered/20/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130799/filtered/21/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130799/filtered/22/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130799/filtered/23/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130799/filtered/24/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130799/filtered/25/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130799/filtered/26/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130799/filtered/27/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130799/filtered/28/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130799/filtered/3/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130799/filtered/4/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130799/filtered/5/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130799/filtered/6/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130799/filtered/7/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130799/filtered/8/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130799/filtered/9/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130834/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130834/filtered/10/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130834/filtered/11/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130834/filtered/12/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130834/filtered/13/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130834/filtered/14/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130834/filtered/15/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130834/filtered/16/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130834/filtered/17/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130834/filtered/18/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130834/filtered/19/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130834/filtered/2/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130834/filtered/20/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130834/filtered/21/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130834/filtered/22/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130834/filtered/3/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130834/filtered/4/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130834/filtered/5/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130834/filtered/6/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130834/filtered/7/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130834/filtered/8/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130834/filtered/9/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130840/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130840/filtered/10/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130840/filtered/11/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130840/filtered/2/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130840/filtered/3/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130840/filtered/4/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130840/filtered/5/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130840/filtered/6/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130840/filtered/7/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130840/filtered/8/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2010/LHC10e/000130840/filtered/9/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/10/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/100/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/101/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/102/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/103/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/104/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/105/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/106/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/107/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/108/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/109/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/11/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/110/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/111/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/112/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/113/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/115/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/116/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/117/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/119/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/12/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/120/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/122/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/123/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/124/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/125/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/126/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/127/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/128/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/129/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/13/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/130/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/131/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/132/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/133/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/134/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/135/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/136/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/137/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/138/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/139/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/14/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/140/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/141/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/142/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/143/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/144/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/145/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/146/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/147/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/148/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/149/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/15/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/150/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/151/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/152/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/153/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/154/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/155/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/156/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/157/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/16/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/161/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/17/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/18/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/19/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/20/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/21/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/22/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/23/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/24/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/25/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/26/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/27/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/28/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/29/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/30/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/32/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/33/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/34/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/35/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/36/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/37/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/38/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/39/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/40/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/41/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/42/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/43/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/44/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/45/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/46/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/47/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/48/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/49/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/50/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/51/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/52/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/53/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/54/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/56/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/57/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/58/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/59/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/6/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/60/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/61/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/63/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/64/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/65/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/66/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/67/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/68/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/69/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/7/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/70/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/71/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/72/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/73/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/74/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/75/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/76/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/77/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/78/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/79/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/80/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/81/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/82/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/83/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/84/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/85/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/86/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/87/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/88/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/89/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/9/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/91/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/92/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/93/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/94/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/95/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/96/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/97/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/98/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000167988/filtered/99/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000168207/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000168207/filtered/2/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000168207/filtered/3/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000168207/filtered/4/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000168207/filtered/5/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000168207/filtered/6/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000168460/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000168460/filtered/10/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000168460/filtered/11/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000168460/filtered/12/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000168460/filtered/13/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000168460/filtered/14/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000168460/filtered/15/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000168460/filtered/16/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000168460/filtered/17/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000168460/filtered/18/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000168460/filtered/19/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000168460/filtered/2/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000168460/filtered/20/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000168460/filtered/21/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000168460/filtered/22/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000168460/filtered/23/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000168460/filtered/24/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000168460/filtered/25/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000168460/filtered/26/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000168460/filtered/27/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000168460/filtered/28/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000168460/filtered/29/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000168460/filtered/3/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000168460/filtered/30/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000168460/filtered/31/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000168460/filtered/32/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000168460/filtered/33/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000168460/filtered/34/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000168460/filtered/35/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000168460/filtered/36/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000168460/filtered/37/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000168460/filtered/38/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000168460/filtered/39/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000168460/filtered/4/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000168460/filtered/40/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000168460/filtered/41/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000168460/filtered/42/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000168460/filtered/43/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000168460/filtered/44/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000168460/filtered/45/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000168460/filtered/46/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000168460/filtered/5/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000168460/filtered/6/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000168460/filtered/7/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000168460/filtered/8/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000168460/filtered/9/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/10/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/100/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/101/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/102/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/103/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/104/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/105/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/106/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/107/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/108/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/109/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/11/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/110/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/111/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/112/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/113/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/114/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/115/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/116/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/117/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/118/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/12/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/13/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/14/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/15/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/16/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/17/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/18/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/19/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/2/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/20/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/21/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/22/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/23/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/24/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/25/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/26/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/27/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/28/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/29/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/3/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/30/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/31/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/32/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/33/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/34/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/35/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/36/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/37/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/38/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/39/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/4/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/40/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/41/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/42/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/43/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/44/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/45/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/46/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/47/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/48/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/49/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/5/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/50/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/51/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/52/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/53/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/54/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/55/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/56/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/57/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/58/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/59/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/6/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/60/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/61/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/62/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/63/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/64/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/65/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/66/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/67/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/68/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/69/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/7/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/70/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/71/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/72/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/73/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/74/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/75/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/76/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/77/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/78/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/79/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/8/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/80/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/81/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/82/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/83/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/84/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/85/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/86/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/87/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/88/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/89/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/9/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/90/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/91/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/92/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/93/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/94/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/95/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/96/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/97/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/98/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170268/filtered/99/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170269/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170269/filtered/10/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170269/filtered/11/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170269/filtered/12/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170269/filtered/13/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170269/filtered/14/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170269/filtered/15/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170269/filtered/16/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170269/filtered/17/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170269/filtered/18/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170269/filtered/19/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170269/filtered/2/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170269/filtered/20/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170269/filtered/21/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170269/filtered/22/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170269/filtered/23/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170269/filtered/24/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170269/filtered/25/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170269/filtered/26/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170269/filtered/27/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170269/filtered/28/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170269/filtered/29/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170269/filtered/3/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170269/filtered/30/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170269/filtered/31/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170269/filtered/32/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170269/filtered/33/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170269/filtered/34/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170269/filtered/35/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170269/filtered/36/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170269/filtered/37/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170269/filtered/38/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170269/filtered/4/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170269/filtered/5/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170269/filtered/6/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170269/filtered/7/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170269/filtered/8/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170269/filtered/9/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/10/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/11/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/12/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/13/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/14/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/15/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/16/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/17/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/18/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/19/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/2/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/20/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/21/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/22/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/23/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/24/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/25/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/26/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/27/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/28/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/29/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/3/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/30/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/31/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/32/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/33/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/34/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/35/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/36/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/37/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/38/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/39/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/4/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/40/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/41/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/42/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/43/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/44/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/45/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/46/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/47/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/48/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/49/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/5/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/50/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/51/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/52/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/53/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/54/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/55/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/6/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/7/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/8/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170270/filtered/9/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/10/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/100/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/101/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/102/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/104/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/105/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/106/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/107/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/108/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/109/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/11/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/110/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/111/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/112/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/113/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/114/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/115/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/116/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/117/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/118/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/119/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/120/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/13/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/14/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/15/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/16/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/17/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/18/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/2/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/20/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/22/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/23/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/24/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/25/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/26/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/29/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/3/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/30/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/31/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/33/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/34/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/35/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/36/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/37/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/38/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/39/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/4/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/40/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/41/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/43/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/44/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/45/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/46/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/47/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/48/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/49/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/5/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/50/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/51/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/52/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/53/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/54/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/55/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/56/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/57/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/6/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/61/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/63/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/64/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/66/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/67/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/68/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/69/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/7/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/70/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/71/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/72/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/73/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/74/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/76/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/77/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/78/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/79/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/8/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/80/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/82/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/83/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/84/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/85/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/86/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/87/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/88/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/89/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/90/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/91/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/92/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/93/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/94/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/95/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/96/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170309/filtered/99/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/10/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/100/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/101/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/102/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/103/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/104/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/105/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/106/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/107/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/108/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/109/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/11/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/110/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/111/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/112/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/113/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/114/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/115/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/116/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/117/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/118/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/119/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/12/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/120/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/121/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/122/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/123/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/124/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/125/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/126/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/127/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/128/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/129/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/13/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/14/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/15/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/16/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/17/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/18/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/19/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/2/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/20/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/21/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/22/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/23/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/24/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/25/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/26/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/27/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/28/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/29/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/3/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/30/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/31/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/32/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/33/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/34/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/35/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/36/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/37/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/38/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/39/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/4/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/40/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/41/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/42/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/43/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/44/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/45/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/46/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/47/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/48/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/49/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/5/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/50/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/51/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/52/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/53/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/54/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/55/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/56/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/57/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/58/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/59/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/6/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/60/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/61/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/62/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/63/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/64/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/65/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/66/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/67/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/68/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/69/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/7/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/70/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/71/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/72/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/73/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/74/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/75/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/76/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/77/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/78/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/79/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/8/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/80/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/81/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/82/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/83/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/84/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/85/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/86/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/87/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/88/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/89/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/9/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/90/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/91/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/92/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/93/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/94/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/95/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/96/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/97/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/98/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170312/filtered/99/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/1/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/10/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/11/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/12/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/13/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/14/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/15/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/16/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/17/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/18/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/19/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/2/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/20/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/21/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/22/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/23/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/24/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/25/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/26/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/27/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/28/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/29/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/3/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/30/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/31/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/32/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/33/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/34/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/35/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/36/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/37/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/38/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/39/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/4/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/40/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/41/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/42/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/43/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/44/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/45/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/46/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/47/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/48/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/49/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/5/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/50/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/51/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/52/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/53/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/54/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/55/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/56/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/57/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/58/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/59/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/6/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/60/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/61/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/62/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/64/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/65/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/66/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/7/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/8/filtered_highPt.root
+root://eospublic.cern.ch//eos/opstest/pbuncic/reference/2011/LHC11h/000170593/filtered/9/filtered_highPt.root
index 602e00e86efd5db0f40d74bf0ec660c8c2ac71ea..773355b1e2544230ed009eec61197db2137b4485 100644 (file)
@@ -861,6 +861,8 @@ AliESDVertex* AliAnalysisTaskVertexESD::ReconstructPrimaryVertexTPC(Bool_t const
   Float_t diamondcovxy[3]; evt->GetDiamondCovXY(diamondcovxy);
   Double_t pos[3]={evt->GetDiamondX(),evt->GetDiamondY(),0}; 
   Double_t cov[6]={diamondcovxy[0],diamondcovxy[1],diamondcovxy[2],0.,0.,10.*10.};
+  if (cov[0]<1e-10) cov[0] = 1e-2; // dummy error of 1mm
+  if (cov[2]<1e-10) cov[2] = 1e-2; // dummy error of 1mm
   AliESDVertex *initVertex = new AliESDVertex(pos,cov,1.,1);
   vertexer.SetVtxStart(initVertex);
   delete initVertex;
@@ -888,6 +890,8 @@ AliESDVertex* AliAnalysisTaskVertexESD::ReconstructPrimaryVertexITSTPC(Bool_t co
   Float_t diamondcovxy[3]; evt->GetDiamondCovXY(diamondcovxy);
   Double_t pos[3]={evt->GetDiamondX(),evt->GetDiamondY(),0}; 
   Double_t cov[6]={diamondcovxy[0],diamondcovxy[1],diamondcovxy[2],0.,0.,10.*10.};
+  if (cov[0]<1e-10) cov[0] = 1e-2; // dummy error of 1mm
+  if (cov[2]<1e-10) cov[2] = 1e-2; // dummy error of 1mm
   AliESDVertex *initVertex = new AliESDVertex(pos,cov,1.,1);
   vertexer.SetVtxStart(initVertex);
   delete initVertex;
index a1b169a8e901ebf79a910084af429936ff56fb0d..d441b883d53937a8e24caa93984688757fd7d208 100644 (file)
@@ -321,7 +321,7 @@ class AliAODTrack : public AliVTrack {
   
   Bool_t GetOuterHmpPxPyPz(Double_t *p) const;
   
-  void      GetIntegratedTimes(Double_t *times, Int_t nspec=AliPID::kSPECIESC) const {if (fDetPid) fDetPid->GetIntegratedTimes(times, nspec);}
+  void      GetIntegratedTimes(Double_t *times, Int_t nspec=AliPID::kSPECIES) const {if (fDetPid) fDetPid->GetIntegratedTimes(times, nspec);}
   Double_t  GetTRDslice(Int_t plane, Int_t slice) const;
   Double_t  GetTRDsignal()                        const {return fDetPid ? fDetPid->GetTRDsignal() : 0;}
   Double_t  GetTRDmomentum(Int_t plane, Double_t */*sp*/=0x0) const;
index 99f0df918d1238bc1f90bd11a67fd70d257f356c..1f408dc9b1e04b64a52094532405b99564bf7360 100644 (file)
@@ -133,7 +133,7 @@ public:
   
   virtual Bool_t GetOuterHmpPxPyPz(Double_t */*p*/) const {return kFALSE;}
   
-  virtual void      GetIntegratedTimes(Double_t */*times*/, Int_t nspec=AliPID::kSPECIESC) const;
+  virtual void      GetIntegratedTimes(Double_t */*times*/, Int_t nspec=AliPID::kSPECIES) const;
   virtual Double_t  GetTRDmomentum(Int_t /*plane*/, Double_t */*sp*/=0x0) const {return 0.;}
   virtual void      GetHMPIDpid(Double_t */*p*/) const {;}
   virtual Double_t  GetIntegratedLength() const { return 0.;}