]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Next version of the muon-hadron correlations task.
authorcvetan <cvetan@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 12 Feb 2013 14:42:51 +0000 (14:42 +0000)
committercvetan <cvetan@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 12 Feb 2013 14:42:51 +0000 (14:42 +0000)
PWGCF/Correlations/DPhi/MuonHadron/AddAnalysisTaskMuonHadronCorrelations.C [new file with mode: 0644]
PWGCF/Correlations/DPhi/MuonHadron/AliAnalysisTaskMuonHadronCorrelations.cxx
PWGCF/Correlations/DPhi/MuonHadron/AliAnalysisTaskMuonHadronCorrelations.h
PWGCF/Correlations/DPhi/MuonHadron/RunAnalysisTaskMuonHadronCorrelations.C

diff --git a/PWGCF/Correlations/DPhi/MuonHadron/AddAnalysisTaskMuonHadronCorrelations.C b/PWGCF/Correlations/DPhi/MuonHadron/AddAnalysisTaskMuonHadronCorrelations.C
new file mode 100644 (file)
index 0000000..f9a43e0
--- /dev/null
@@ -0,0 +1,38 @@
+AliAnalysisTaskMuonHadronCorrelations *AddAnalysisTaskMuonHadronCorrelations(const char *centMethod = "V0M") {
+  
+  AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
+  if (!mgr) {
+    printf("Error in adding AnalysisTaskMuonHadronCorrelations: no Analysis Manager found!\n");
+    return NULL;
+  }
+
+  AliAnalysisTaskMuonHadronCorrelations *task = new AliAnalysisTaskMuonHadronCorrelations("AliAnalysisTaskMuonHadronCorrelations");
+
+  // Set analysis cuts   
+  task->SetFilterBitCentralBarrel(7);  // -> 128
+  task->SetMaxEtaCentralBarrel(1.0);
+  task->SetTriggerMatchLevelMuon(1);
+
+  const Int_t nBinCent = 4;
+  Double_t centLimits[nBinCent+1] = {0., 20., 40, 60., 100.};
+  task->SetCentBinning(nBinCent, centLimits);
+
+  task->SetCentMethod(centMethod);
+
+  const Int_t nBinPt = 3;
+  Double_t ptLimits[nBinPt+1] = {0., 1., 2., 4.};
+  task->SetPtBinning(nBinPt, ptLimits);
+
+  mgr->AddTask(task);
+
+  // create output container
+  AliAnalysisDataContainer *output = mgr->CreateContainer("MuonHadronCorrHistos", TList::Class(), AliAnalysisManager::kOutputContainer,
+                                                         Form("%s:MuonHadronCorrelations_%s", AliAnalysisManager::GetCommonFileName(), centMethod));
+  
+  // finaly connect input and output
+  mgr->ConnectInput(task, 0,  mgr->GetCommonInputContainer());
+  mgr->ConnectOutput(task, 1, output);
+    
+  return task;
+}
+
index fab718791ca387e57954f7bcb97f116359d4c19c..6b18204ff5405426d9f99561aef8984ba938fde8 100644 (file)
@@ -50,6 +50,9 @@ AliAnalysisTaskMuonHadronCorrelations::AliAnalysisTaskMuonHadronCorrelations() :
       }
     }
     fHistNTracksCB_vs_NTracksMA[iCent]  = NULL;
+    fHistNTracksCB_vs_NTracksMAmixed[iCent]  = NULL;
+    fHistSingleMuonsEtaVsPt[iCent]   = NULL;
+    fHistSingleMuonsEtaVsRAbs[iCent] = NULL;
   }  
   
 }
@@ -90,6 +93,9 @@ AliAnalysisTaskMuonHadronCorrelations::AliAnalysisTaskMuonHadronCorrelations(con
       }
     }
     fHistNTracksCB_vs_NTracksMA[iCent]  = NULL;
+    fHistNTracksCB_vs_NTracksMAmixed[iCent]  = NULL;
+    fHistSingleMuonsEtaVsPt[iCent]   = NULL;
+    fHistSingleMuonsEtaVsRAbs[iCent] = NULL;
   }  
   
   // Define input and output slots here
@@ -153,13 +159,29 @@ void AliAnalysisTaskMuonHadronCorrelations::UserCreateOutputObjects() {
 
     fHistNTracksCB_vs_NTracksMA[iCent] = new TH2D(Form("fHistNTracksCB_vs_NTracksMA_Cent%02d",iCent),
                                                  Form("%d-%d %%",Int_t(fCentAxis->GetBinLowEdge(iCent+1)),Int_t(fCentAxis->GetBinUpEdge(iCent+1))),
-                                                 100, 0, 1000, 100, 0, 100);
+                                                 100, 0, 500, 20, 0, 20);
     fHistNTracksCB_vs_NTracksMA[iCent] -> SetXTitle("N_{tracks} Central Barrel");
     fHistNTracksCB_vs_NTracksMA[iCent] -> SetYTitle("N_{tracks} Muon Arm");
-
     fHistNTracksCB_vs_NTracksMA[iCent] -> Sumw2();
 
+    fHistNTracksCB_vs_NTracksMAmixed[iCent] = new TH2D(Form("fHistNTracksCB_vs_NTracksMAmixed_Cent%02d",iCent),
+                                                 Form("%d-%d %% MIXED",Int_t(fCentAxis->GetBinLowEdge(iCent+1)),Int_t(fCentAxis->GetBinUpEdge(iCent+1))),
+                                                 100, 0, 500, 20, 0, 20);
+    fHistNTracksCB_vs_NTracksMAmixed[iCent] -> SetXTitle("N_{tracks} Central Barrel");
+    fHistNTracksCB_vs_NTracksMAmixed[iCent] -> SetYTitle("N_{tracks} Muon Arm");
+    fHistNTracksCB_vs_NTracksMAmixed[iCent] -> Sumw2();
+
     fOutputList -> Add(fHistNTracksCB_vs_NTracksMA[iCent]);
+    fOutputList -> Add(fHistNTracksCB_vs_NTracksMAmixed[iCent]);
+
+    fHistSingleMuonsEtaVsPt[iCent]   = new TH2D(Form("fHistSingleMuonsEtaVsPt_Cent%02d",iCent),
+                                              "#eta vs p_{T} for single muons",
+                                              100, -4.5, -2., 100, 0., 10.);
+    fOutputList->Add(fHistSingleMuonsEtaVsPt[iCent]);
+    fHistSingleMuonsEtaVsRAbs[iCent] = new TH2D(Form("fHistSingleMuonsEtaVsRAbs_Cent%02d",iCent),
+                                              "#eta vs R_{Abs} for single muons",
+                                              100, -4.5, -2., 100, 0, 100);
+    fOutputList->Add(fHistSingleMuonsEtaVsRAbs[iCent]);
     
   }
   
@@ -213,7 +235,7 @@ void AliAnalysisTaskMuonHadronCorrelations::UserExec(Option_t *) {
   Double_t zVtx = vertex->GetZ();
   if (TMath::Abs(zVtx) > 10.) return;
   
-  TObjArray *tracksMuonArm = GetAcceptedTracksMuonArm(fAOD);
+  TObjArray *tracksMuonArm = GetAcceptedTracksMuonArm(fAOD,centBin);
   if (tracksMuonArm->GetEntriesFast() == 0) {
     delete tracksMuonArm;
     return;
@@ -239,9 +261,10 @@ void AliAnalysisTaskMuonHadronCorrelations::UserExec(Option_t *) {
     //pool->PrintInfo();
     if (pool->IsReady() || pool->NTracksInPool() > 2000 || pool->GetCurrentNEvents() >= 5) 
       for (Int_t jMix=0; jMix<pool->GetCurrentNEvents(); jMix++) {
+       TObjArray *mixedTracks = pool->GetEvent(jMix);
+       fHistNTracksCB_vs_NTracksMAmixed[centBin]->Fill(mixedTracks->GetEntriesFast(), tracksMuonArm->GetEntriesFast());
        for (Int_t iTrMA=0; iTrMA<tracksMuonArm->GetEntriesFast(); iTrMA++) {
          fTrackMA = (AliAODTrack*) tracksMuonArm->At(iTrMA);
-         TObjArray *mixedTracks = pool->GetEvent(jMix);
          for (Int_t iTrCB=0; iTrCB<mixedTracks->GetEntriesFast(); iTrCB++) {
            fTrackCB = (AliAODTrack*) mixedTracks -> At(iTrCB);
            FillHistograms(centBin, kMixedEvent);
@@ -320,7 +343,7 @@ TObjArray* AliAnalysisTaskMuonHadronCorrelations::GetAcceptedTracksCentralBarrel
 
 //====================================================================================================================================================
 
-TObjArray* AliAnalysisTaskMuonHadronCorrelations::GetAcceptedTracksMuonArm(AliAODEvent *aodEvent) {
+TObjArray* AliAnalysisTaskMuonHadronCorrelations::GetAcceptedTracksMuonArm(AliAODEvent *aodEvent, Int_t centBin) {
 
   // fills the array of muon tracks that pass the cuts
 
@@ -334,7 +357,17 @@ TObjArray* AliAnalysisTaskMuonHadronCorrelations::GetAcceptedTracksMuonArm(AliAO
   for (Int_t iTrack=0; iTrack<nTracks; iTrack++) {
     track = aodEvent->GetTrack(iTrack);
     if (track->IsMuonTrack() && track->GetMatchTrigger()>=fTriggerMatchLevelMuon) {
-      tracks->Add(new AliAODTrack(*track));
+      if (track->Chi2perNDF() < 5.) {
+       // histos
+       fHistSingleMuonsEtaVsPt[centBin]->Fill(track->Eta(),track->Pt());
+       fHistSingleMuonsEtaVsRAbs[centBin]->Fill(track->Eta(),track->GetRAtAbsorberEnd());
+       if (track->Eta() > -4. && track->Eta() < -2.5) {
+         Double_t rabs = track->GetRAtAbsorberEnd();
+         if (rabs > 17.6 && rabs < 89.5) {
+           tracks->Add(new AliAODTrack(*track));
+         }
+       }
+      }
     }
   }
 
index 3280af135d0888439d2c542536d58c6fd52a690d..11615dd4aaf8449bd86f769334bb8d6055e7d4a3 100644 (file)
@@ -42,7 +42,7 @@ class  AliAnalysisTaskMuonHadronCorrelations : public AliAnalysisTaskSE {
   Double_t GetITSMultiplicity();
   Bool_t IsTriggerFired();
   TObjArray* GetAcceptedTracksCentralBarrel(AliAODEvent *aodEvent);
-  TObjArray* GetAcceptedTracksMuonArm(AliAODEvent *aodEvent);
+  TObjArray* GetAcceptedTracksMuonArm(AliAODEvent *aodEvent, Int_t centBin);
   void SetPtBinning(Int_t nBins, Double_t *limits);
   void SetCentBinning(Int_t nBins, Double_t *limits);
   void SetCentMethod(const Char_t *method) { fCentMethod = method; }
@@ -73,11 +73,15 @@ class  AliAnalysisTaskMuonHadronCorrelations : public AliAnalysisTaskSE {
   TH1D *fHistDeltaPhi[fNMaxBinsCentrality][fNMaxBinsPt][fNMaxBinsPt]; //!
   TH1D *fHistDeltaPhiMix[fNMaxBinsCentrality][fNMaxBinsPt][fNMaxBinsPt]; //!
   TH2D *fHistNTracksCB_vs_NTracksMA[fNMaxBinsCentrality]; //!
+  TH2D *fHistNTracksCB_vs_NTracksMAmixed[fNMaxBinsCentrality]; //!
 
   TH1D *fHistV0Multiplicity; //!
   TH1D *fHistITSMultiplicity; //!
   TH1D *fHistCentrality; //!
 
+  TH2D *fHistSingleMuonsEtaVsPt[fNMaxBinsCentrality]; //!
+  TH2D *fHistSingleMuonsEtaVsRAbs[fNMaxBinsCentrality]; //!
+
   TString fCentMethod;
 
   TList *fOutputList; //!
index e5bcf49c3e16934b613d20d09893c95d0db71f9f..c5f0ba72f3c631d21ec7b3b4ecacc11c1d627bc1 100644 (file)
@@ -129,37 +129,9 @@ Bool_t RunAnalysisTaskMuonHadronCorrelations(Int_t runNumber = 188362, const cha
   //  AddTaskPhysicsSelection(0);
   mgr->AddStatisticsTask(AliVEvent::kAny);
   
-  // -------------------------------
-  // MUON TRACK CUTS CONFIGURATION
-  // -------------------------------
-
-  gROOT->LoadMacro("AliAnalysisTaskMuonHadronCorrelations.cxx++g");
-  AliAnalysisTaskMuonHadronCorrelations *task = new AliAnalysisTaskMuonHadronCorrelations("AliAnalysisTaskMuonHadronCorrelations");
-
-  // Set analysis cuts   
-  task->SetFilterBitCentralBarrel(7);  // -> 128
-  task->SetMaxEtaCentralBarrel(1.0);
-  task->SetTriggerMatchLevelMuon(1);
-
-  const Int_t nBinCent = 4;
-  Double_t centLimits[nBinCent+1] = {0., 20., 40, 60., 100.};
-  task->SetCentBinning(nBinCent, centLimits);
+  gROOT->LoadMacro("AddAnalysisTaskMuonHadronCorrelations.C");
+  AddAnalysisTaskMuonHadronCorrelations();
 
-  task->SetCentMethod(centMethod);
-
-  const Int_t nBinPt = 3;
-  Double_t ptLimits[nBinPt+1] = {0., 1., 2., 4.};
-  task->SetPtBinning(nBinPt, ptLimits);
-
-  mgr->AddTask(task);
-
-  // create output container
-  AliAnalysisDataContainer *output1 = mgr->CreateContainer("list", TList::Class(), AliAnalysisManager::kOutputContainer, "MuonHadronCorrelations.root");
-  
-  // finaly connect input and output
-  mgr->ConnectInput(task, 0,  mgr->GetCommonInputContainer());
-  mgr->ConnectOutput(task, 1, output1);
-    
   TStopwatch timer;
   timer.Start();
   // -------------------------------