]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
changes for 2011 track cuts, added backward compatile TPCcls to the aod
authorkleinb <kleinb@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 15 Dec 2011 13:07:05 +0000 (13:07 +0000)
committerkleinb <kleinb@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 15 Dec 2011 13:07:05 +0000 (13:07 +0000)
ANALYSIS/macros/AddTaskESDFilter.C
STEER/AOD/AliAODTrack.h

index 5096cee14b1b3461f7ba1fa4dec00a534772121c..29e4c92a0d8ccc4b318f32f23af21426144c8079 100644 (file)
@@ -88,17 +88,17 @@ AliAnalysisTaskESDfilter *AddTaskESDFilter(Bool_t useKineFilter=kTRUE,
    electronID->SetTPCnSigmaCut(AliPID::kElectron, 3.);
 
    // standard cuts with very loose DCA
-   AliESDtrackCuts* esdTrackCutsH = AliESDtrackCuts::GetStandardITSTPCTrackCuts2010(kFALSE); 
+   AliESDtrackCuts* esdTrackCutsH = AliESDtrackCuts::GetStandardITSTPCTrackCuts2011(kFALSE); 
    esdTrackCutsH->SetMaxDCAToVertexXY(2.4);
    esdTrackCutsH->SetMaxDCAToVertexZ(3.2);
    esdTrackCutsH->SetDCAToVertex2D(kTRUE);
 
    // standard cuts with tight DCA cut
-   AliESDtrackCuts* esdTrackCutsH2 = AliESDtrackCuts::GetStandardITSTPCTrackCuts2010();
+   AliESDtrackCuts* esdTrackCutsH2 = AliESDtrackCuts::GetStandardITSTPCTrackCuts2011();
 
    // standard cuts with tight DCA but with requiring the first SDD cluster instead of an SPD cluster
    // tracks selected by this cut are exclusive to those selected by the previous cut
-   AliESDtrackCuts* esdTrackCutsH3 = AliESDtrackCuts::GetStandardITSTPCTrackCuts2010(); 
+   AliESDtrackCuts* esdTrackCutsH3 = AliESDtrackCuts::GetStandardITSTPCTrackCuts2011(); 
    esdTrackCutsH3->SetClusterRequirementITS(AliESDtrackCuts::kSPD, AliESDtrackCuts::kNone);
    esdTrackCutsH3->SetClusterRequirementITS(AliESDtrackCuts::kSDD, AliESDtrackCuts::kFirst);
  
@@ -107,27 +107,50 @@ AliAnalysisTaskESDfilter *AddTaskESDFilter(Bool_t useKineFilter=kTRUE,
    AliESDtrackCuts* esdTrackCutsTPCOnly = AliESDtrackCuts::GetStandardTPCOnlyTrackCuts();
    esdTrackCutsTPCOnly->SetMinNClustersTPC(70);
 
+   // Extra cuts for hybrids
+   // first the global tracks we want to take
+   AliESDtrackCuts* esdTrackCutsHTG = AliESDtrackCuts::GetStandardITSTPCTrackCuts2011(kFALSE); 
+   esdTrackCutsHTG->SetName("Global Hybrid tracks, loose DCA");
+   esdTrackCutsHTG->SetMaxDCAToVertexXY(2.4);
+   esdTrackCutsHTG->SetMaxDCAToVertexZ(3.2);
+   esdTrackCutsHTG->SetDCAToVertex2D(kTRUE);
+   esdTrackCutsHTG->SetMaxChi2TPCConstrainedGlobal(36);
+   
+   // Than the complementary tracks which will be stored as global
+   // constraint, complement is done in the ESDFilter task
+   AliESDtrackCuts* esdTrackCutsHTGC = new AliESDtrackCuts(*esdTrackCutsHTG);
+   esdTrackCutsHTGC->SetName("Global Constraint Hybrid tracks, loose DCA no it requirement");
+   esdTrackCutsHTGC->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kOff);
+   //   esdTrackCutsHTGC->SetRequireITSRefit(kFALSE)
+
    // Compose the filter
    AliAnalysisFilter* trackFilter = new AliAnalysisFilter("trackFilter");
-   // 1
+   // 1, 1<<0
    trackFilter->AddCuts(esdTrackCutsL);
-   // 2
+   // 2, 1<<1
    trackFilter->AddCuts(esdTrackCutsITSsa);
-   // 4
+   // 4, 1<<2
    trackFilter->AddCuts(itsStrong);
    itsStrong->SetFilterMask(1);        // AND with Standard track cuts 
-   // 8
+   // 8, 1<<3
    trackFilter->AddCuts(electronID);
    electronID->SetFilterMask(4);       // AND with Pixel Cuts
-   // 16
+   // 16, 1<<4
    trackFilter->AddCuts(esdTrackCutsH);
-   // 32
+   // 32, 1<<5
    trackFilter->AddCuts(esdTrackCutsH2);
-   // 64
+   // 64, 1<<6
    trackFilter->AddCuts(esdTrackCutsH3);
    // 128 , 1 << 7
    trackFilter->AddCuts(esdTrackCutsTPCOnly);
    if(enableTPCOnlyAODTracks)esdfilter->SetTPCOnlyFilterMask(128);
+   // 256, 1 << 8 Global Hybrids
+   trackFilter->AddCuts(esdTrackCutsHTG);
+   esdfilter->SetHybridFilterMaskGlobalConstrainedGlobal((1<<8)); // these normal global tracks will be marked as hybrid    
+   // 512, 1<< 9 GlobalConstraint Hybrids
+   trackFilter->AddCuts(esdTrackCutsHTGC);
+   esdfilter->SetGlobalConstrainedFilterMask(1<<9); // these tracks are written out as global constrained tracks 
+   esdfilter->SetWriteHybridGlobalConstrainedOnly(kTRUE); // write only the complement
 
    // Filter with cuts on V0s
    AliESDv0Cuts*   esdV0Cuts = new AliESDv0Cuts("Standard V0 Cuts pp", "ESD V0 Cuts");
index 15e78383ffecf82151701013ceb2755688355334..386d41fd189db08b398443cc437f9ffb2371223f 100644 (file)
@@ -124,7 +124,12 @@ class AliAODTrack : public AliVTrack {
   virtual Bool_t   XvYvZv(Double_t x[3]) const { x[0] = Xv(); x[1] = Yv(); x[2] = Zv(); return kTRUE; }
 
   Double_t Chi2perNDF()  const { return fChi2perNDF; }
-  UShort_t GetTPCNcls()  const { return fTPCFitMap.CountBits();}
+  UShort_t GetTPCNcls()  const { 
+    UShort_t cl = 0;
+    cl = fTPCFitMap.CountBits();
+    if(cl==0)return fTPCClusterMap.CountBits();// backward compatibility
+    return cl;
+  }
   
   virtual Double_t M() const { return M(GetMostProbablePID()); }
   Double_t M(AODTrkPID_t pid) const;