]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Split task for ITS tracks: 1. ITS tracks with TPC partner, 2. pure ITS standalone
authoresicking <esicking@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 26 May 2010 11:44:26 +0000 (11:44 +0000)
committeresicking <esicking@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 26 May 2010 11:44:26 +0000 (11:44 +0000)
PWG1/AliAnalysisTaskQASym.cxx
PWG1/AliAnalysisTaskQASym.h
PWG1/PilotTrain/AddTaskQAsym.C

index 5052e4e38cb81ec3563c5abdf52160a6d16b385c..904e33f7107d7c2b1cff75414477c6501307fd5c 100644 (file)
@@ -39,6 +39,7 @@ ClassImp(AliAnalysisTaskQASym)
   AliAnalysisTaskQASym::AliAnalysisTaskQASym(const char *name) 
     : AliAnalysisTaskSE(name) 
     ,fTrackType(0)
+    ,fStandAlone(0)
     ,fFieldOn(kTRUE)
     ,fHists(0)
     ,fHistRECpt(0)
@@ -1077,6 +1078,9 @@ void AliAnalysisTaskQASym::UserExec(Option_t *)
       phiIn = tpcP->Phi();
       if (!tpcP) continue;
       if (!fCuts->AcceptTrack(tpcP)) continue;
+      if(fStandAlone==kTRUE) {
+       if(!(tpcP->GetStatus()&AliESDtrack::kITSpureSA))continue;
+      }
     }
     else if(fTrackType==2){     
       //Fill all histograms with TPC track information
index 6fa4dcc3f118da514c3442ebb42445ae8fdc19e1..92c4f7e59dd643a263ef9cadfb56f7c167524f9c 100644 (file)
@@ -26,6 +26,7 @@ class AliAnalysisTaskQASym : public AliAnalysisTaskSE {
   virtual void   UserExec(Option_t *option);
   virtual void   Terminate(Option_t *);
   virtual void   SetTrackType(Int_t type) {fTrackType = type;}  
+  virtual void   SetStandAloneTrack(Bool_t standAlone = kFALSE) {fStandAlone = standAlone;}  //needed for ITS tracks
   
   
   virtual void   SetCuts(AliESDtrackCuts* cuts)
@@ -37,6 +38,7 @@ class AliAnalysisTaskQASym : public AliAnalysisTaskSE {
  private:
 
   Int_t       fTrackType;
+  Int_t       fStandAlone; // needed for ITS tracks
   Bool_t      fFieldOn;
 
   TList       *fHists;          // List of histos
index 0732bc99f06f35a4e839b714d24411fc73cf06ff..a6aa0a437a37a937259db44ba5718b3ae303cad5 100644 (file)
@@ -30,7 +30,13 @@ AliAnalysisTaskQASym * AddTaskQAsym(Int_t runNumber)
    //Task for ITS tracks 
    AliAnalysisTaskQASym *task1 = new AliAnalysisTaskQASym("AliAnalysisTaskQASym_ITS");
    task1->SetTrackType(1);
+   task1->SetStandAloneTrack(kFALSE);
    task1->SelectCollisionCandidates();
+   //Task for ITS tracks SA
+   AliAnalysisTaskQASym *task1sa = new AliAnalysisTaskQASym("AliAnalysisTaskQASym_ITS_SA");
+   task1sa->SetTrackType(1);
+   task1sa->SetStandAloneTrack(kTRUE);
+   task1sa->SelectCollisionCandidates();
    //Task for TPC tracks 
    AliAnalysisTaskQASym *task2 = new AliAnalysisTaskQASym("AliAnalysisTaskQASym_TPC");
    task2->SetTrackType(2);
@@ -43,13 +49,22 @@ AliAnalysisTaskQASym * AddTaskQAsym(Int_t runNumber)
    esdTrackCutsL0->SetMaxDCAToVertexXY(3.);
    esdTrackCutsL0->SetMaxDCAToVertexZ(3.);
    esdTrackCutsL0->SetAcceptKinkDaughters(kFALSE);
-
+   
+   //cuts for ITS tracks
    AliESDtrackCuts* esdTrackCutsL1 = new AliESDtrackCuts("AliESDtrackCuts1","ITS");
    esdTrackCutsL1->SetMaxDCAToVertexXY(3.);
    esdTrackCutsL1->SetMaxDCAToVertexZ(3.);
    esdTrackCutsL1->SetAcceptKinkDaughters(kFALSE);
    esdTrackCutsL1->SetRequireITSRefit(kTRUE);
-   esdTrackCutsL1->SetRequireITSStandAlone(kTRUE);
+   esdTrackCutsL1->SetRequireITSStandAlone(kTRUE, kFALSE);
+
+   //cuts for ITS tracks SA
+   AliESDtrackCuts* esdTrackCutsL1sa = new AliESDtrackCuts("AliESDtrackCuts1","ITS_SA");
+   esdTrackCutsL1sa->SetMaxDCAToVertexXY(3.);
+   esdTrackCutsL1sa->SetMaxDCAToVertexZ(3.);
+   esdTrackCutsL1sa->SetAcceptKinkDaughters(kFALSE);
+   esdTrackCutsL1sa->SetRequireITSRefit(kTRUE);
+   // esdTrackCutsL1sa->SetRequireITSStandAlone(kTRUE, kTRUE); //cut on SA tracks in AliAnalysisTaskQASym
    
    //cuts for TPC tracks
    AliESDtrackCuts* esdTrackCutsL2 = new AliESDtrackCuts("AliESDtrackCuts2","TPC");
@@ -68,14 +83,17 @@ AliAnalysisTaskQASym * AddTaskQAsym(Int_t runNumber)
 
    task0->SetCuts(esdTrackCutsL0);
    task1->SetCuts(esdTrackCutsL1);
+   task1sa->SetCuts(esdTrackCutsL1sa);
    task2->SetCuts(esdTrackCutsL2);
 
    mgr->AddTask(task0);
    mgr->AddTask(task1);
+   mgr->AddTask(task1sa);
    mgr->AddTask(task2);
   
    AliAnalysisDataContainer *cout0  = 0;
    AliAnalysisDataContainer *cout1  = 0;
+   AliAnalysisDataContainer *cout1sa  = 0;
    AliAnalysisDataContainer *cout2  = 0;
    
    if(runNumber>0){ 
@@ -83,6 +101,8 @@ AliAnalysisTaskQASym * AddTaskQAsym(Int_t runNumber)
                                  AliAnalysisManager::kOutputContainer, Form("run%d.root",runNumber));
     cout1 =  mgr->CreateContainer("QAsymHists_ITS",TList::Class(),
                                  AliAnalysisManager::kOutputContainer, Form("run%d.root",runNumber));
+    cout1sa =  mgr->CreateContainer("QAsymHists_ITS_SA",TList::Class(),
+                                   AliAnalysisManager::kOutputContainer, Form("run%d.root",runNumber));
     cout2 =  mgr->CreateContainer("QAsymHists_TPC",TList::Class(),
                                  AliAnalysisManager::kOutputContainer, Form("run%d.root",runNumber));
    }
@@ -94,6 +114,9 @@ AliAnalysisTaskQASym * AddTaskQAsym(Int_t runNumber)
       cout1 = mgr->CreateContainer("QAsymHists_ITS",TList::Class(),
                                   AliAnalysisManager::kOutputContainer, 
                                 Form("%s:PWG1_QAsymHists",AliAnalysisManager::GetCommonFileName()));
+      cout1sa = mgr->CreateContainer("QAsymHists_ITS_SA",TList::Class(),
+                                    AliAnalysisManager::kOutputContainer, 
+                                    Form("%s:PWG1_QAsymHists",AliAnalysisManager::GetCommonFileName()));
       cout2 = mgr->CreateContainer("QAsymHists_TPC",TList::Class(),
                                   AliAnalysisManager::kOutputContainer, 
                                 Form("%s:PWG1_QAsymHists",AliAnalysisManager::GetCommonFileName()));
@@ -102,14 +125,12 @@ AliAnalysisTaskQASym * AddTaskQAsym(Int_t runNumber)
 
    mgr->ConnectInput  (task0, 0, mgr->GetCommonInputContainer());
    mgr->ConnectInput  (task1, 0, mgr->GetCommonInputContainer());
+   mgr->ConnectInput  (task1sa, 0, mgr->GetCommonInputContainer());
    mgr->ConnectInput  (task2, 0, mgr->GetCommonInputContainer());
 
-   // mgr->ConnectOutput (task0, 0, mgr->GetCommonOutputContainer());
-   // mgr->ConnectOutput (task1, 0, mgr->GetCommonOutputContainer());
-   // mgr->ConnectOutput (task2, 0, mgr->GetCommonOutputContainer());
-
    mgr->ConnectOutput (task0, 1, cout0);
    mgr->ConnectOutput (task1, 1, cout1);
+   mgr->ConnectOutput (task1sa, 1, cout1sa);
    mgr->ConnectOutput (task2, 1, cout2);
   
    return task0;