]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
adapt for ITS upgrade
authordainesea <dainesea@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 15 May 2013 21:24:19 +0000 (21:24 +0000)
committerdainesea <dainesea@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 15 May 2013 21:24:19 +0000 (21:24 +0000)
PWGPP/ITS/AliAnalysisTaskITSTrackingCheck.cxx
PWGPP/ITS/AliAnalysisTaskITSTrackingCheck.h
PWGPP/macros/PlotITSTrackingEff.C
PWGPP/macros/PlotITSTrackingHists.C
PWGPP/macros/PlotITSTrackingRes.C
PWGPP/macros/PlotImpParResVsPt.C
PWGPP/macros/RunAnalysisITS.C

index 57a63ab9e4d1d9471620060a83d6a72cec437e87..ccc3c70f213ec57b032bfdc5508d57670bf8a1d6 100644 (file)
 ClassImp(AliAnalysisTaskITSTrackingCheck)
 AliAnalysisTaskITSTrackingCheck::AliAnalysisTaskITSTrackingCheck() : 
 AliAnalysisTaskSE(), 
+fNITSLayers(6),
 fReadMC(kFALSE),
 fReadRPLabels(kFALSE),
 fFillNtuples(kFALSE),
 fUseITSSAforNtuples(kFALSE),
 fUsePhysSel(kFALSE),
+fRequireSPDvtx(kTRUE),
 fRejPileupSPD(kFALSE),
 fCheckSDDIsIn(0),
 fESD(0), 
@@ -77,6 +79,7 @@ fMinMult(0),
 fMaxMult(1000000),
 fTriggerClass(""),
 fTrigConfig(0),
+fUsePtBinsForBox(kFALSE),
 fOCDBPath(""),
 fOutput(0), 
 fHistNEvents(0),
@@ -160,15 +163,19 @@ fHistPtITSMI3(0),
 fHistPtITSMI4(0),
 fHistPtITSMI5(0),
 fHistPtITSMI6(0),
+fHistPtITSMI7(0),
 fHistPtITSMISPD(0),
 fHistPtITSMIoneSPD(0),
+fHistPtITSMItwoSPD(0),
 fHistPtITSMI2InAcc(0),
 fHistPtITSMI3InAcc(0),
 fHistPtITSMI4InAcc(0),
 fHistPtITSMI5InAcc(0),
 fHistPtITSMI6InAcc(0),
+fHistPtITSMI7InAcc(0),
 fHistPtITSMISPDInAcc(0),
 fHistPtITSMIoneSPDInAcc(0),
+fHistPtITSMItwoSPDInAcc(0),
 fHistPtITSMI2InAccTOFbc0(0),
 fHistPtITSMI3InAccTOFbc0(0),
 fHistPtITSMI4InAccTOFbc0(0),
@@ -215,22 +222,28 @@ fHistPhiITSMI3InAcc(0),
 fHistPhiITSMI4InAcc(0),
 fHistPhiITSMI5InAcc(0),
 fHistPhiITSMI6InAcc(0),
+fHistPhiITSMI7InAcc(0),
 fHistPhiITSMISPDInAcc(0),
 fHistPhiITSMIoneSPDInAcc(0),
+fHistPhiITSMItwoSPDInAcc(0),
 fHistEtaITSMI2InAcc(0),
 fHistEtaITSMI3InAcc(0),
 fHistEtaITSMI4InAcc(0),
 fHistEtaITSMI5InAcc(0),
 fHistEtaITSMI6InAcc(0),
+fHistEtaITSMI7InAcc(0),
 fHistEtaITSMISPDInAcc(0),
 fHistEtaITSMIoneSPDInAcc(0),
+fHistEtaITSMItwoSPDInAcc(0),
 fHistPtITSMI2InAccFake(0),
 fHistPtITSMI3InAccFake(0),
 fHistPtITSMI4InAccFake(0),
 fHistPtITSMI5InAccFake(0),
 fHistPtITSMI6InAccFake(0),
+fHistPtITSMI7InAccFake(0),
 fHistPtITSMISPDInAccFake(0),
 fHistPtITSMIoneSPDInAccFake(0),
+fHistPtITSMItwoSPDInAccFake(0),
 fHistPtITSMIoneSPDthreeSDDSSDInAcc(0),
 fHistPtITSTPCsel(0),
 fHistPtITSTPCselTOFbc0(0),
@@ -249,15 +262,19 @@ fHistPtITSMI3InAccP(0),
 fHistPtITSMI4InAccP(0),
 fHistPtITSMI5InAccP(0),
 fHistPtITSMI6InAccP(0),
+fHistPtITSMI7InAccP(0),
 fHistPtITSMISPDInAccP(0),
 fHistPtITSMIoneSPDInAccP(0),
+fHistPtITSMItwoSPDInAccP(0),
 fHistPtITSMI2InAccS(0),
 fHistPtITSMI3InAccS(0),
 fHistPtITSMI4InAccS(0),
 fHistPtITSMI5InAccS(0),
 fHistPtITSMI6InAccS(0),
+fHistPtITSMI7InAccS(0),
 fHistPtITSMISPDInAccS(0),
 fHistPtITSMIoneSPDInAccS(0),
+fHistPtITSMItwoSPDInAccS(0),
 fHistPtITSMIokbadoutinz6(0),
 fHistPtITSMIokbadoutinz4InAcc(0),
 fHistPtITSMIokbadoutinz5InAcc(0),
@@ -340,11 +357,13 @@ fESDtrackCutsITSTPC(0)
 //________________________________________________________________________
 AliAnalysisTaskITSTrackingCheck::AliAnalysisTaskITSTrackingCheck(const char *name) : 
 AliAnalysisTaskSE(name), 
+fNITSLayers(6),
 fReadMC(kFALSE),
 fReadRPLabels(kFALSE),
 fFillNtuples(kFALSE),
 fUseITSSAforNtuples(kFALSE),
 fUsePhysSel(kFALSE),
+fRequireSPDvtx(kTRUE),
 fRejPileupSPD(kFALSE),
 fCheckSDDIsIn(0),
 fESD(0), 
@@ -352,6 +371,7 @@ fMinMult(0),
 fMaxMult(1000000),
 fTriggerClass(""),
 fTrigConfig(0),
+fUsePtBinsForBox(kFALSE),
 fOCDBPath(""),
 fOutput(0), 
 fHistNEvents(0),
@@ -435,15 +455,19 @@ fHistPtITSMI3(0),
 fHistPtITSMI4(0),
 fHistPtITSMI5(0),
 fHistPtITSMI6(0),
+fHistPtITSMI7(0),
 fHistPtITSMISPD(0),
 fHistPtITSMIoneSPD(0),
+fHistPtITSMItwoSPD(0),
 fHistPtITSMI2InAcc(0),
 fHistPtITSMI3InAcc(0),
 fHistPtITSMI4InAcc(0),
 fHistPtITSMI5InAcc(0),
 fHistPtITSMI6InAcc(0),
+fHistPtITSMI7InAcc(0),
 fHistPtITSMISPDInAcc(0),
 fHistPtITSMIoneSPDInAcc(0),
+fHistPtITSMItwoSPDInAcc(0),
 fHistPtITSMI2InAccTOFbc0(0),
 fHistPtITSMI3InAccTOFbc0(0),
 fHistPtITSMI4InAccTOFbc0(0),
@@ -490,22 +514,28 @@ fHistPhiITSMI3InAcc(0),
 fHistPhiITSMI4InAcc(0),
 fHistPhiITSMI5InAcc(0),
 fHistPhiITSMI6InAcc(0),
+fHistPhiITSMI7InAcc(0),
 fHistPhiITSMISPDInAcc(0),
 fHistPhiITSMIoneSPDInAcc(0),
+fHistPhiITSMItwoSPDInAcc(0),
 fHistEtaITSMI2InAcc(0),
 fHistEtaITSMI3InAcc(0),
 fHistEtaITSMI4InAcc(0),
 fHistEtaITSMI5InAcc(0),
 fHistEtaITSMI6InAcc(0),
+fHistEtaITSMI7InAcc(0),
 fHistEtaITSMISPDInAcc(0),
 fHistEtaITSMIoneSPDInAcc(0),
+fHistEtaITSMItwoSPDInAcc(0),
 fHistPtITSMI2InAccFake(0),
 fHistPtITSMI3InAccFake(0),
 fHistPtITSMI4InAccFake(0),
 fHistPtITSMI5InAccFake(0),
 fHistPtITSMI6InAccFake(0),
+fHistPtITSMI7InAccFake(0),
 fHistPtITSMISPDInAccFake(0),
 fHistPtITSMIoneSPDInAccFake(0),
+fHistPtITSMItwoSPDInAccFake(0),
 fHistPtITSMIoneSPDthreeSDDSSDInAcc(0),
 fHistPtITSTPCsel(0),
 fHistPtITSTPCselTOFbc0(0),
@@ -524,15 +554,19 @@ fHistPtITSMI3InAccP(0),
 fHistPtITSMI4InAccP(0),
 fHistPtITSMI5InAccP(0),
 fHistPtITSMI6InAccP(0),
+fHistPtITSMI7InAccP(0),
 fHistPtITSMISPDInAccP(0),
 fHistPtITSMIoneSPDInAccP(0),
+fHistPtITSMItwoSPDInAccP(0),
 fHistPtITSMI2InAccS(0),
 fHistPtITSMI3InAccS(0),
 fHistPtITSMI4InAccS(0),
 fHistPtITSMI5InAccS(0),
 fHistPtITSMI6InAccS(0),
+fHistPtITSMI7InAccS(0),
 fHistPtITSMISPDInAccS(0),
 fHistPtITSMIoneSPDInAccS(0),
+fHistPtITSMItwoSPDInAccS(0),
 fHistPtITSMIokbadoutinz6(0),
 fHistPtITSMIokbadoutinz4InAcc(0),
 fHistPtITSMIokbadoutinz5InAcc(0),
@@ -637,8 +671,17 @@ void AliAnalysisTaskITSTrackingCheck::UserCreateOutputObjects()
   gStyle->SetHistLineWidth(2);
 
   Int_t nPtBins=34;
-  //Float_t xPtBins[35]={0,0.025,0.05,0.075,0.08,0.125,0.15,0.175,0.2,0.225,0.25,0.275,0.280,0.325,0.35,0.375,0.4,0.45,0.55,0.7,0.75,0.9,1.2,1.7,2.5,3.5,4.5,5,6,8,13,15,23,28,35};
-  Float_t xPtBins[35]={0,0.025,0.05,0.075,0.1,0.125,0.15,0.175,0.2,0.225,0.25,0.275,0.3,0.325,0.35,0.375,0.4,0.5,0.6,0.7,0.8,1.0,1.5,2.,2.5,3,4,5,6,8,10,15,20,25,30};
+  Float_t xPtBinsDefault[35]={0,0.025,0.05,0.075,0.1,0.125,0.15,0.175,0.2,0.225,0.25,0.275,0.3,0.325,0.35,0.375,0.4,0.5,0.6,0.7,0.8,1.0,1.5,2.,2.5,3,4,5,6,8,10,15,20,25,30};
+  Float_t xPtBinsForBox[35]={0,0.025,0.05,0.075,0.08,0.125,0.15,0.175,0.2,0.225,0.25,0.275,0.280,0.325,0.35,0.375,0.4,0.45,0.55,0.7,0.75,0.9,1.2,1.7,2.5,3.5,4.5,5,6,8,13,15,23,28,35};
+  Float_t xPtBins[35];
+  for(Int_t ib=0; ib<=nPtBins; ib++) {
+    if(fUsePtBinsForBox) {
+      xPtBins[ib]=xPtBinsForBox[ib];
+    } else {
+      xPtBins[ib]=xPtBinsDefault[ib];
+    }
+  }
+
 
   for(Int_t i=0; i<11; i++) fCountsPerPtBin[i]=0;
 
@@ -669,7 +712,7 @@ void AliAnalysisTaskITSTrackingCheck::UserCreateOutputObjects()
   fHistNtracks->SetMinimum(0);
   fOutput->Add(fHistNtracks);
 
-  fHistNclsITSMI = new TH1F("fHistNclsITSMI", "N ITS clusters per track (MI); N clusters; Counts",7, -0.5, 6.5);
+  fHistNclsITSMI = new TH1F("fHistNclsITSMI", "N ITS clusters per track (MI); N clusters; Counts",8, -0.5, 7.5);
   fHistNclsITSMI->Sumw2();
   fHistNclsITSMI->SetMinimum(0);
   fOutput->Add(fHistNclsITSMI);
@@ -679,34 +722,34 @@ void AliAnalysisTaskITSTrackingCheck::UserCreateOutputObjects()
   fHistNclsITSSAInAcc->SetMinimum(0);
   fOutput->Add(fHistNclsITSSAInAcc);  
 
-  fHistNclsITSSA = new TH1F("fHistNclsITSSA", "N ITS clusters per track (SA); N clusters; Counts",7, -0.5, 6.5);
+  fHistNclsITSSA = new TH1F("fHistNclsITSSA", "N ITS clusters per track (SA); N clusters; Counts",8, -0.5, 7.5);
   fHistNclsITSSA->Sumw2();
   fHistNclsITSSA->SetMinimum(0);
   fOutput->Add(fHistNclsITSSA);  
 
-  fHistClusterMapITSMI = new TH1F("fHistClusterMapITSMI", "N tracks with point on Layer (MI); Layer; N tracks",6, -0.5, 5.5);
+  fHistClusterMapITSMI = new TH1F("fHistClusterMapITSMI", "N tracks with point on Layer (MI); Layer; N tracks",7, -0.5, 6.5);
   fHistClusterMapITSMI->Sumw2();
   fHistClusterMapITSMI->SetMinimum(0);
   fOutput->Add(fHistClusterMapITSMI);
   
-  fHistClusterMapITSSA = new TH1F("fHistClusterMapITSSA", "N tracks with point on Layer (SA); Layer; N tracks",6, -0.5, 5.5);
+  fHistClusterMapITSSA = new TH1F("fHistClusterMapITSSA", "N tracks with point on Layer (SA); Layer; N tracks",7, -0.5, 6.5);
   fHistClusterMapITSSA->Sumw2();
   fHistClusterMapITSSA->SetMinimum(0);
   fOutput->Add(fHistClusterMapITSSA);
 
-  fHistClusterMapITSSAInAcc = new TH1F("fHistClusterMapITSSAInAcc", "N tracks with point on Layer (SA); Layer; N tracks",6, -0.5, 5.5);
+  fHistClusterMapITSSAInAcc = new TH1F("fHistClusterMapITSSAInAcc", "N tracks with point on Layer (SA); Layer; N tracks",7, -0.5, 6.5);
   fHistClusterMapITSSAInAcc->Sumw2();
   fHistClusterMapITSSAInAcc->SetMinimum(0);
   fOutput->Add(fHistClusterMapITSSAInAcc);
 
-  fHistClusterMapITSMIok = new TH1F("fHistClusterMapITSMIok", "N tracks with ok on Layer (MI); Layer; N tracks",6, -0.5, 5.5);
+  fHistClusterMapITSMIok = new TH1F("fHistClusterMapITSMIok", "N tracks with ok on Layer (MI); Layer; N tracks",7, -0.5, 6.5);
   fHistClusterMapITSMIok->Sumw2();
   fHistClusterMapITSMIok->SetMinimum(0);
   fOutput->Add(fHistClusterMapITSMIok);
   
   
 
-  fHistClusterMapITSSAokInAcc = new TH1F("fHistClusterMapITSSAokInAcc", "N tracks with ok on Layer (SA); Layer; N tracks",6, -0.5, 5.5);
+  fHistClusterMapITSSAokInAcc = new TH1F("fHistClusterMapITSSAokInAcc", "N tracks with ok on Layer (SA); Layer; N tracks",7, -0.5, 6.5);
   fHistClusterMapITSSAokInAcc->Sumw2();
   fHistClusterMapITSSAokInAcc->SetMinimum(0);
   fOutput->Add(fHistClusterMapITSSAokInAcc);
@@ -723,17 +766,17 @@ void AliAnalysisTaskITSTrackingCheck::UserCreateOutputObjects()
   fHistNClustersMapModule->SetMinimum(0);
   fOutput->Add(fHistNClustersMapModule);
 
-  fHistClusterMapITSSAok = new TH1F("fHistClusterMapITSSAok", "N tracks with ok on Layer (SA); Layer; N tracks",6, -0.5, 5.5);
+  fHistClusterMapITSSAok = new TH1F("fHistClusterMapITSSAok", "N tracks with ok on Layer (SA); Layer; N tracks",7, -0.5, 6.5);
   fHistClusterMapITSSAok->Sumw2();
   fHistClusterMapITSSAok->SetMinimum(0);
   fOutput->Add(fHistClusterMapITSSAok);
 
-  fHistClusterMapITSMIbad = new TH1F("fHistClusterMapITSMIbad", "N tracks with bad on Layer (MI); Layer; N tracks",6, -0.5, 5.5);
+  fHistClusterMapITSMIbad = new TH1F("fHistClusterMapITSMIbad", "N tracks with bad on Layer (MI); Layer; N tracks",7, -0.5, 6.5);
   fHistClusterMapITSMIbad->Sumw2();
   fHistClusterMapITSMIbad->SetMinimum(0);
   fOutput->Add(fHistClusterMapITSMIbad);
   
-  fHistClusterMapITSSAbadInAcc = new TH1F("fHistClusterMapITSSAbadInAcc", "N tracks with bad on Layer (SA); Layer; N tracks",6, -0.5, 5.5);
+  fHistClusterMapITSSAbadInAcc = new TH1F("fHistClusterMapITSSAbadInAcc", "N tracks with bad on Layer (SA); Layer; N tracks",7, -0.5, 6.5);
   fHistClusterMapITSSAbadInAcc->Sumw2();
   fHistClusterMapITSSAbadInAcc->SetMinimum(0);
   fOutput->Add(fHistClusterMapITSSAbadInAcc);
@@ -746,77 +789,77 @@ void AliAnalysisTaskITSTrackingCheck::UserCreateOutputObjects()
   fHistClusterMapModuleITSMIbadInAcc->SetMinimum(0);
   fOutput->Add(fHistClusterMapModuleITSMIbadInAcc);
 
-  fHistClusterMapITSSAbad = new TH1F("fHistClusterMapITSSAbad", "N tracks with bad on Layer (SA); Layer; N tracks",6, -0.5, 5.5);
+  fHistClusterMapITSSAbad = new TH1F("fHistClusterMapITSSAbad", "N tracks with bad on Layer (SA); Layer; N tracks",7, -0.5, 6.5);
   fHistClusterMapITSSAbad->Sumw2();
   fHistClusterMapITSSAbad->SetMinimum(0);
   fOutput->Add(fHistClusterMapITSSAbad);
 
-  fHistClusterMapITSMIskipped = new TH1F("fHistClusterMapITSMIskipped", "N tracks with skip on Layer (MI); Layer; N tracks",6, -0.5, 5.5);
+  fHistClusterMapITSMIskipped = new TH1F("fHistClusterMapITSMIskipped", "N tracks with skip on Layer (MI); Layer; N tracks",7, -0.5, 6.5);
   fHistClusterMapITSMIskipped->Sumw2();
   fHistClusterMapITSMIskipped->SetMinimum(0);
   fOutput->Add(fHistClusterMapITSMIskipped);
   
-  fHistClusterMapITSSAskippedInAcc = new TH1F("fHistClusterMapITSSAskippedInAcc", "N tracks with skip on Layer (SA); Layer; N tracks",6, -0.5, 5.5);
+  fHistClusterMapITSSAskippedInAcc = new TH1F("fHistClusterMapITSSAskippedInAcc", "N tracks with skip on Layer (SA); Layer; N tracks",7, -0.5, 6.5);
   fHistClusterMapITSSAskippedInAcc->Sumw2();
   fHistClusterMapITSSAskippedInAcc->SetMinimum(0);
   fOutput->Add(fHistClusterMapITSSAskippedInAcc);
 
-  fHistClusterMapITSSAskipped = new TH1F("fHistClusterMapITSSAskipped", "N tracks with skip on Layer (SA); Layer; N tracks",6, -0.5, 5.5);
+  fHistClusterMapITSSAskipped = new TH1F("fHistClusterMapITSSAskipped", "N tracks with skip on Layer (SA); Layer; N tracks",7, -0.5, 6.5);
   fHistClusterMapITSSAskipped->Sumw2();
   fHistClusterMapITSSAskipped->SetMinimum(0);
   fOutput->Add(fHistClusterMapITSSAskipped);
 
-  fHistClusterMapITSMIoutinz = new TH1F("fHistClusterMapITSMIoutinz", "N tracks out in z on Layer (MI); Layer; N tracks",6, -0.5, 5.5);
+  fHistClusterMapITSMIoutinz = new TH1F("fHistClusterMapITSMIoutinz", "N tracks out in z on Layer (MI); Layer; N tracks",7, -0.5, 6.5);
   fHistClusterMapITSMIoutinz->Sumw2();
   fHistClusterMapITSMIoutinz->SetMinimum(0);
   fOutput->Add(fHistClusterMapITSMIoutinz);
   
-  fHistClusterMapITSSAoutinzInAcc = new TH1F("fHistClusterMapITSSAoutinzInAcc", "N tracks with out in z on Layer (SA); Layer; N tracks",6, -0.5, 5.5);
+  fHistClusterMapITSSAoutinzInAcc = new TH1F("fHistClusterMapITSSAoutinzInAcc", "N tracks with out in z on Layer (SA); Layer; N tracks",7, -0.5, 6.5);
   fHistClusterMapITSSAoutinzInAcc->Sumw2();
   fHistClusterMapITSSAoutinzInAcc->SetMinimum(0);
   fOutput->Add(fHistClusterMapITSSAoutinzInAcc);
 
-  fHistClusterMapITSSAoutinz = new TH1F("fHistClusterMapITSSAoutinz", "N tracks with out in z on Layer (SA); Layer; N tracks",6, -0.5, 5.5);
+  fHistClusterMapITSSAoutinz = new TH1F("fHistClusterMapITSSAoutinz", "N tracks with out in z on Layer (SA); Layer; N tracks",7, -0.5, 6.5);
   fHistClusterMapITSSAoutinz->Sumw2();
   fHistClusterMapITSSAoutinz->SetMinimum(0);
   fOutput->Add(fHistClusterMapITSSAoutinz);
 
-  fHistClusterMapITSSAokoutinzbad = new TH1F("fHistClusterMapITSSAokoutinzbad", "N tracks with cluster or bad zone or out in z (SA); Layer; N tracks",6, -0.5, 5.5);
+  fHistClusterMapITSSAokoutinzbad = new TH1F("fHistClusterMapITSSAokoutinzbad", "N tracks with cluster or bad zone or out in z (SA); Layer; N tracks",7, -0.5, 6.5);
   fHistClusterMapITSSAokoutinzbad->Sumw2();
   fHistClusterMapITSSAokoutinzbad->SetMinimum(0);
   fOutput->Add(fHistClusterMapITSSAokoutinzbad);
 
-  fHistClusterMapITSMIokoutinzbad = new TH1F("fHistClusterMapITSMIokoutinzbad", "N tracks with cluster or bad zone or out in z (MI); Layer; N tracks",6, -0.5, 5.5);
+  fHistClusterMapITSMIokoutinzbad = new TH1F("fHistClusterMapITSMIokoutinzbad", "N tracks with cluster or bad zone or out in z (MI); Layer; N tracks",7, -0.5, 6.5);
   fHistClusterMapITSMIokoutinzbad->Sumw2();
   fHistClusterMapITSMIokoutinzbad->SetMinimum(0);
   fOutput->Add(fHistClusterMapITSMIokoutinzbad);
 
-  fHistClusterMapITSSAokoutinzbadInAcc = new TH1F("fHistClusterMapITSSAokoutinzbadInAcc", "N tracks with cluster or bad zone or out in z (SA); Layer; N tracks",6, -0.5, 5.5);
+  fHistClusterMapITSSAokoutinzbadInAcc = new TH1F("fHistClusterMapITSSAokoutinzbadInAcc", "N tracks with cluster or bad zone or out in z (SA); Layer; N tracks",7, -0.5, 6.5);
   fHistClusterMapITSSAokoutinzbadInAcc->Sumw2();
   fHistClusterMapITSSAokoutinzbadInAcc->SetMinimum(0);
   fOutput->Add(fHistClusterMapITSSAokoutinzbadInAcc);
 
-  fHistClusterMapITSMInorefit = new TH1F("fHistClusterMapITSMInorefit", "N tracks with norefit on Layer (MI); Layer; N tracks",6, -0.5, 5.5);
+  fHistClusterMapITSMInorefit = new TH1F("fHistClusterMapITSMInorefit", "N tracks with norefit on Layer (MI); Layer; N tracks",7, -0.5, 6.5);
   fHistClusterMapITSMInorefit->Sumw2();
   fHistClusterMapITSMInorefit->SetMinimum(0);
   fOutput->Add(fHistClusterMapITSMInorefit);
   
-  fHistClusterMapITSSAnorefitInAcc = new TH1F("fHistClusterMapITSSAnorefitInAcc", "N tracks with norefit on Layer (SA); Layer; N tracks",6, -0.5, 5.5);
+  fHistClusterMapITSSAnorefitInAcc = new TH1F("fHistClusterMapITSSAnorefitInAcc", "N tracks with norefit on Layer (SA); Layer; N tracks",7, -0.5, 6.5);
   fHistClusterMapITSSAnorefitInAcc->Sumw2();
   fHistClusterMapITSSAnorefitInAcc->SetMinimum(0);
   fOutput->Add(fHistClusterMapITSSAnorefitInAcc);
 
-  fHistClusterMapITSSAnorefit = new TH1F("fHistClusterMapITSSAnorefit", "N tracks with norefit on Layer (SA); Layer; N tracks",6, -0.5, 5.5);
+  fHistClusterMapITSSAnorefit = new TH1F("fHistClusterMapITSSAnorefit", "N tracks with norefit on Layer (SA); Layer; N tracks",7, -0.5, 6.5);
   fHistClusterMapITSSAnorefit->Sumw2();
   fHistClusterMapITSSAnorefit->SetMinimum(0);
   fOutput->Add(fHistClusterMapITSSAnorefit);
 
-  fHistClusterMapITSMInocls = new TH1F("fHistClusterMapITSMInocls", "N tracks with nocls on Layer (MI); Layer; N tracks",6, -0.5, 5.5);
+  fHistClusterMapITSMInocls = new TH1F("fHistClusterMapITSMInocls", "N tracks with nocls on Layer (MI); Layer; N tracks",7, -0.5, 6.5);
   fHistClusterMapITSMInocls->Sumw2();
   fHistClusterMapITSMInocls->SetMinimum(0);
   fOutput->Add(fHistClusterMapITSMInocls);
   
-  fHistClusterMapITSSAnoclsInAcc = new TH1F("fHistClusterMapITSSAnoclsInAcc", "N tracks with nocls on Layer (SA); Layer; N tracks",6, -0.5, 5.5);
+  fHistClusterMapITSSAnoclsInAcc = new TH1F("fHistClusterMapITSSAnoclsInAcc", "N tracks with nocls on Layer (SA); Layer; N tracks",7, -0.5, 6.5);
   fHistClusterMapITSSAnoclsInAcc->Sumw2();
   fHistClusterMapITSSAnoclsInAcc->SetMinimum(0);
   fOutput->Add(fHistClusterMapITSSAnoclsInAcc);
@@ -829,7 +872,7 @@ void AliAnalysisTaskITSTrackingCheck::UserCreateOutputObjects()
   fHistClusterMapModuleITSMInoclsInAcc->SetMinimum(0);
   fOutput->Add(fHistClusterMapModuleITSMInoclsInAcc);
 
-  fHistClusterMapITSSAnocls = new TH1F("fHistClusterMapITSSAnocls", "N tracks with nocls on Layer (SA); Layer; N tracks",6, -0.5, 5.5);
+  fHistClusterMapITSSAnocls = new TH1F("fHistClusterMapITSSAnocls", "N tracks with nocls on Layer (SA); Layer; N tracks",7, -0.5, 6.5);
   fHistClusterMapITSSAnocls->Sumw2();
   fHistClusterMapITSSAnocls->SetMinimum(0);
   fOutput->Add(fHistClusterMapITSSAnocls);
@@ -913,6 +956,11 @@ void AliAnalysisTaskITSTrackingCheck::UserCreateOutputObjects()
   fHistPtTPC->SetMinimum(0);
   fOutput->Add(fHistPtTPC);
   
+  fHistPtITSMI7 = new TH1F("fHistPtITSMI7","pt distribution of ITSMI7 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
+  fHistPtITSMI7->Sumw2();
+  fHistPtITSMI7->SetMinimum(0);
+  fOutput->Add(fHistPtITSMI7);
+  
   fHistPtITSMI6 = new TH1F("fHistPtITSMI6","pt distribution of ITSMI6 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
   fHistPtITSMI6->Sumw2();
   fHistPtITSMI6->SetMinimum(0);
@@ -948,6 +996,11 @@ void AliAnalysisTaskITSTrackingCheck::UserCreateOutputObjects()
   fHistPtITSMIoneSPD->SetMinimum(0);
   fOutput->Add(fHistPtITSMIoneSPD);
 
+  fHistPtITSMItwoSPD = new TH1F("fHistPtITSMItwoSPD","pt distribution of ITSMItwoSPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
+  fHistPtITSMItwoSPD->Sumw2();
+  fHistPtITSMItwoSPD->SetMinimum(0);
+  fOutput->Add(fHistPtITSMItwoSPD);
+
   fHistPtTPCInAcc = new TH1F("fHistPtTPCInAcc","pt distribution of TPC tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
   fHistPtTPCInAcc->Sumw2();
   fHistPtTPCInAcc->SetMinimum(0);
@@ -1027,6 +1080,11 @@ void AliAnalysisTaskITSTrackingCheck::UserCreateOutputObjects()
   fHistDeltaPtTPC->SetMinimum(0);
   fOutput->Add(fHistDeltaPtTPC);
   
+  fHistPtITSMI7InAcc = new TH1F("fHistPtITSMI7InAcc","pt distribution of ITSMI7 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
+  fHistPtITSMI7InAcc->Sumw2();
+  fHistPtITSMI7InAcc->SetMinimum(0);
+  fOutput->Add(fHistPtITSMI7InAcc);
+  
   fHistPtITSMI6InAcc = new TH1F("fHistPtITSMI6InAcc","pt distribution of ITSMI6 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
   fHistPtITSMI6InAcc->Sumw2();
   fHistPtITSMI6InAcc->SetMinimum(0);
@@ -1062,6 +1120,11 @@ void AliAnalysisTaskITSTrackingCheck::UserCreateOutputObjects()
   fHistPtITSMIoneSPDInAcc->SetMinimum(0);
   fOutput->Add(fHistPtITSMIoneSPDInAcc);
 
+  fHistPtITSMItwoSPDInAcc = new TH1F("fHistPtITSMItwoSPDInAcc","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
+  fHistPtITSMItwoSPDInAcc->Sumw2();
+  fHistPtITSMItwoSPDInAcc->SetMinimum(0);
+  fOutput->Add(fHistPtITSMItwoSPDInAcc);
+
   fHistPtITSMI6InAccTOFbc0 = new TH1F("fHistPtITSMI6InAccTOFbc0","pt distribution of ITSMI6 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
   fHistPtITSMI6InAccTOFbc0->Sumw2();
   fHistPtITSMI6InAccTOFbc0->SetMinimum(0);
@@ -1267,6 +1330,11 @@ void AliAnalysisTaskITSTrackingCheck::UserCreateOutputObjects()
   fHistPtITSMIoneSPDInAccSharedSPDFake->SetMinimum(0);
   fOutput->Add(fHistPtITSMIoneSPDInAccSharedSPDFake);
 
+  fHistPhiITSMI7InAcc = new TH1F("fHistPhiITSMI7InAcc","phi distribution of ITSMI7 tracks; #phi; N tracks",100,0,2*3.1415);
+  fHistPhiITSMI7InAcc->Sumw2();
+  fHistPhiITSMI7InAcc->SetMinimum(0);
+  fOutput->Add(fHistPhiITSMI7InAcc);
+
   fHistPhiITSMI6InAcc = new TH1F("fHistPhiITSMI6InAcc","phi distribution of ITSMI6 tracks; #phi; N tracks",100,0,2*3.1415);
   fHistPhiITSMI6InAcc->Sumw2();
   fHistPhiITSMI6InAcc->SetMinimum(0);
@@ -1302,10 +1370,20 @@ void AliAnalysisTaskITSTrackingCheck::UserCreateOutputObjects()
   fHistPhiITSMIoneSPDInAcc->SetMinimum(0);
   fOutput->Add(fHistPhiITSMIoneSPDInAcc);
 
+  fHistPhiITSMItwoSPDInAcc = new TH1F("fHistPhiITSMItwoSPDInAcc","phi distribution of ITSMISPD tracks; #phi; N tracks",100,0,2*3.1415);
+  fHistPhiITSMItwoSPDInAcc->Sumw2();
+  fHistPhiITSMItwoSPDInAcc->SetMinimum(0);
+  fOutput->Add(fHistPhiITSMItwoSPDInAcc);
+
   fHistEtaITSMI6InAcc = new TH1F("fHistEtaITSMI6InAcc","eta distribution of ITSMI6 tracks; #eta; N tracks",100,-1.5,+1.5);
   fHistEtaITSMI6InAcc->Sumw2();
   fHistEtaITSMI6InAcc->SetMinimum(0);
   fOutput->Add(fHistEtaITSMI6InAcc);
+
+  fHistEtaITSMI7InAcc = new TH1F("fHistEtaITSMI7InAcc","eta distribution of ITSMI7 tracks; #eta; N tracks",100,-1.5,+1.5);
+  fHistEtaITSMI7InAcc->Sumw2();
+  fHistEtaITSMI7InAcc->SetMinimum(0);
+  fOutput->Add(fHistEtaITSMI7InAcc);
   
   fHistEtaITSMI5InAcc = new TH1F("fHistEtaITSMI5InAcc","eta distribution of ITSMI5 tracks; #eta; N tracks",100,-1.5,+1.5);
   fHistEtaITSMI5InAcc->Sumw2();
@@ -1337,7 +1415,17 @@ void AliAnalysisTaskITSTrackingCheck::UserCreateOutputObjects()
   fHistEtaITSMIoneSPDInAcc->SetMinimum(0);
   fOutput->Add(fHistEtaITSMIoneSPDInAcc);
 
+  fHistEtaITSMItwoSPDInAcc = new TH1F("fHistEtaITSMItwoSPDInAcc","eta distribution of ITSMISPD tracks; #eta; N tracks",100,-1.5,+1.5);
+  fHistEtaITSMItwoSPDInAcc->Sumw2();
+  fHistEtaITSMItwoSPDInAcc->SetMinimum(0);
+  fOutput->Add(fHistEtaITSMItwoSPDInAcc);
+
 
+  fHistPtITSMI7InAccFake = new TH1F("fHistPtITSMI7InAccFake","pt distribution of ITSMI7 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
+  fHistPtITSMI7InAccFake->Sumw2();
+  fHistPtITSMI7InAccFake->SetMinimum(0);
+  fOutput->Add(fHistPtITSMI7InAccFake);
+  
   fHistPtITSMI6InAccFake = new TH1F("fHistPtITSMI6InAccFake","pt distribution of ITSMI6 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
   fHistPtITSMI6InAccFake->Sumw2();
   fHistPtITSMI6InAccFake->SetMinimum(0);
@@ -1373,6 +1461,11 @@ void AliAnalysisTaskITSTrackingCheck::UserCreateOutputObjects()
   fHistPtITSMIoneSPDInAccFake->SetMinimum(0);
   fOutput->Add(fHistPtITSMIoneSPDInAccFake);
 
+  fHistPtITSMItwoSPDInAccFake = new TH1F("fHistPtITSMItwoSPDInAccFake","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
+  fHistPtITSMItwoSPDInAccFake->Sumw2();
+  fHistPtITSMItwoSPDInAccFake->SetMinimum(0);
+  fOutput->Add(fHistPtITSMItwoSPDInAccFake);
+
   fHistPtITSMIoneSPDthreeSDDSSDInAcc = new TH1F("fHistPtITSMIoneSPDthreeSDDSSDInAcc","pt distribution of ITSMI tracks (>0 in SPD, >2 in SDD+SSD); p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
   fHistPtITSMIoneSPDthreeSDDSSDInAcc->Sumw2();
   fHistPtITSMIoneSPDthreeSDDSSDInAcc->SetMinimum(0);
@@ -1448,6 +1541,11 @@ void AliAnalysisTaskITSTrackingCheck::UserCreateOutputObjects()
   fHistPtTPCInAccPfromStrange->SetMinimum(0);
   fOutput->Add(fHistPtTPCInAccPfromStrange);
   
+  fHistPtITSMI7InAccP = new TH1F("fHistPtITSMI7InAccP","pt distribution of ITSMI7 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
+  fHistPtITSMI7InAccP->Sumw2();
+  fHistPtITSMI7InAccP->SetMinimum(0);
+  fOutput->Add(fHistPtITSMI7InAccP);
+  
   fHistPtITSMI6InAccP = new TH1F("fHistPtITSMI6InAccP","pt distribution of ITSMI6 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
   fHistPtITSMI6InAccP->Sumw2();
   fHistPtITSMI6InAccP->SetMinimum(0);
@@ -1483,6 +1581,11 @@ void AliAnalysisTaskITSTrackingCheck::UserCreateOutputObjects()
   fHistPtITSMIoneSPDInAccP->SetMinimum(0);
   fOutput->Add(fHistPtITSMIoneSPDInAccP);
 
+  fHistPtITSMItwoSPDInAccP = new TH1F("fHistPtITSMItwoSPDInAccP","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
+  fHistPtITSMItwoSPDInAccP->Sumw2();
+  fHistPtITSMItwoSPDInAccP->SetMinimum(0);
+  fOutput->Add(fHistPtITSMItwoSPDInAccP);
+
   fHistPtTPCInAccS = new TH1F("fHistPtTPCInAccS","pt distribution of TPC tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
   fHistPtTPCInAccS->Sumw2();
   fHistPtTPCInAccS->SetMinimum(0);
@@ -1498,6 +1601,11 @@ void AliAnalysisTaskITSTrackingCheck::UserCreateOutputObjects()
   fHistPtTPCInAccSfromMat->SetMinimum(0);
   fOutput->Add(fHistPtTPCInAccSfromMat);
   
+  fHistPtITSMI7InAccS = new TH1F("fHistPtITSMI7InAccS","pt distribution of ITSMI7 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
+  fHistPtITSMI7InAccS->Sumw2();
+  fHistPtITSMI7InAccS->SetMinimum(0);
+  fOutput->Add(fHistPtITSMI7InAccS);
+  
   fHistPtITSMI6InAccS = new TH1F("fHistPtITSMI6InAccS","pt distribution of ITSMI6 tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
   fHistPtITSMI6InAccS->Sumw2();
   fHistPtITSMI6InAccS->SetMinimum(0);
@@ -1532,6 +1640,11 @@ void AliAnalysisTaskITSTrackingCheck::UserCreateOutputObjects()
   fHistPtITSMIoneSPDInAccS->Sumw2();
   fHistPtITSMIoneSPDInAccS->SetMinimum(0);
   fOutput->Add(fHistPtITSMIoneSPDInAccS);
+
+  fHistPtITSMItwoSPDInAccS = new TH1F("fHistPtITSMItwoSPDInAccS","pt distribution of ITSMISPD tracks; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
+  fHistPtITSMItwoSPDInAccS->Sumw2();
+  fHistPtITSMItwoSPDInAccS->SetMinimum(0);
+  fOutput->Add(fHistPtITSMItwoSPDInAccS);
   
   fHistPtITSMIokbadoutinz6 = new TH1F("fHistPtITSMIokbadoutinz6","pt distribution of ITSMI tracks with 6 layers OK; p_{t} [GeV/c]; N tracks",nPtBins,xPtBins);
   fHistPtITSMIokbadoutinz6->Sumw2();
@@ -2034,12 +2147,14 @@ void AliAnalysisTaskITSTrackingCheck::UserExec(Option_t *)
   // Select good SPD vertices
   TString spdvtitle=spdv->GetTitle();
   //if(!spdvtitle.Contains("3D")) return;
-  if(spdv->GetNContributors()<mincontrSPDvtx ||
-     TMath::Abs(spdv->GetZv())>maxzSPDvtx ||  
-     spdv->GetXv()*spdv->GetXv()+spdv->GetYv()*spdv->GetYv()>maxrSPDvtx) {
-    delete esdtrackCutsTPC; esdtrackCutsTPC=0;
-    delete esdtrackCutsITSTPC; esdtrackCutsITSTPC=0;
-    return;
+  if(fRequireSPDvtx) {
+    if(spdv->GetNContributors()<mincontrSPDvtx ||
+       TMath::Abs(spdv->GetZv())>maxzSPDvtx ||  
+       spdv->GetXv()*spdv->GetXv()+spdv->GetYv()*spdv->GetYv()>maxrSPDvtx) {
+      delete esdtrackCutsTPC; esdtrackCutsTPC=0;
+      delete esdtrackCutsITSTPC; esdtrackCutsITSTPC=0;
+      return;
+    }
   }
   //spdv->Print();
 
@@ -2074,6 +2189,16 @@ void AliAnalysisTaskITSTrackingCheck::UserExec(Option_t *)
   Double_t rSPDouter=7.6,rSDDouter=23.9,rSSDouter=43.1;  
   Double_t zSPDouter=14.1,zSDDouter=29.7,zSSDouter=48.9;  
 
+
+  // loop on tracks to check if there are 7 ITS layers (upgrade)
+  for(Int_t itr=0; itr<ntracks; itr++) {
+    AliESDtrack *track = fESD->GetTrack(itr);
+    if(track->HasPointOnITSLayer(6)) {
+      fNITSLayers=7;
+      break;
+    }
+  }
+
   // loop on tracks
   for(Int_t itr=0; itr<ntracks; itr++) {
     AliESDtrack *track = fESD->GetTrack(itr);
@@ -2099,10 +2224,10 @@ void AliAnalysisTaskITSTrackingCheck::UserExec(Option_t *)
     Int_t trkLabel = TMath::Abs(track->GetLabel());
     Bool_t isFake=(track->GetLabel()>=0 ? kFALSE : kTRUE);
     Bool_t hasShared=kFALSE,hasSharedSPD=kFALSE;
-    for(Int_t i=0;i<6;i++) {
+    for(Int_t i=0;i<fNITSLayers;i++) {
       if(track->HasSharedPointOnITSLayer(i)) {
        hasShared=kTRUE;
-       if(i<2) hasSharedSPD=kTRUE;
+       if(i<(fNITSLayers-4)) hasSharedSPD=kTRUE;
       }
     }
 
@@ -2142,10 +2267,9 @@ void AliAnalysisTaskITSTrackingCheck::UserExec(Option_t *)
     Int_t nclsSDDSSD = 0;
     Int_t nclsokbadoutinzITS = 0;
     Bool_t outInZ=kFALSE;
-    Bool_t skipTrack=kFALSE;
 
-    for(Int_t layer=0; layer<6; layer++) {
-      if(layer>=2 && track->HasPointOnITSLayer(layer)) nclsSDDSSD++;
+    for(Int_t layer=0; layer<fNITSLayers; layer++) {
+      if(layer>=(fNITSLayers-4) && track->HasPointOnITSLayer(layer)) nclsSDDSSD++;
       if(layer==0 && !track->HasPointOnITSLayer(1)) continue;
       if(layer==1 && !track->HasPointOnITSLayer(0)) continue;
       track->GetITSModuleIndexInfo(layer,idet,status,xloc,zloc);
@@ -2215,23 +2339,6 @@ void AliAnalysisTaskITSTrackingCheck::UserExec(Option_t *)
 
          }     
        }
-      } else {
-       if(track->Phi()>1.5 && track->Phi()<1.7) { // ADDED
-       if(status==1) fHistClusterMapITSSAok->Fill(layer);
-       if(status==2) fHistClusterMapITSSAbad->Fill(layer);
-       if(status==3) fHistClusterMapITSSAskipped->Fill(layer);
-       if(status==4) fHistClusterMapITSSAoutinz->Fill(layer);
-       if(status==5) fHistClusterMapITSSAnocls->Fill(layer);
-       if(status==6) fHistClusterMapITSSAnorefit->Fill(layer);
-       if(status==1 || status==2 || status==4) fHistClusterMapITSSAokoutinzbad->Fill(layer);
-       if(status==1 && !outInZ) {fHistClusterMapITSSAokInAcc->Fill(layer);fHistClusterMapModuleITSSAokInAcc->Fill(idet);}
-       if((status==2 || status==7) && !outInZ) {fHistClusterMapITSSAbadInAcc->Fill(layer);fHistClusterMapModuleITSSAbadInAcc->Fill(idet);}
-       if(status==3 && !outInZ) fHistClusterMapITSSAskippedInAcc->Fill(layer);
-       if(status==4 && !outInZ) fHistClusterMapITSSAoutinzInAcc->Fill(layer);
-       if(status==5 && !outInZ) {fHistClusterMapITSSAnoclsInAcc->Fill(layer);fHistClusterMapModuleITSSAnoclsInAcc->Fill(idet);}
-       if(status==6 && !outInZ) fHistClusterMapITSSAnorefitInAcc->Fill(layer);
-       if((status==1 || status==2 || status==4) && !outInZ) fHistClusterMapITSSAokoutinzbadInAcc->Fill(layer);
-       } // ADDED
       }
       if(TESTBIT(track->GetITSClusterMap(),layer)) {
        if(tpcrefit) {
@@ -2241,82 +2348,7 @@ void AliAnalysisTaskITSTrackingCheck::UserExec(Option_t *)
          if(!outInZ) fHistClusterMapITSSAInAcc->Fill(layer);
        }
       }
-      /*    
-      // SKIP SDD MODULES LOW EFF
-      if(
-        idet==246 ||
-        idet==247 ||
-        idet==256 ||
-        idet==261 ||
-        idet==267 ||
-        idet==333 ||
-        idet==343 ||
-        idet==346 ||
-        idet==349 ||
-        idet==376 ||
-        idet==390 ||
-        idet==392 ||
-        idet==409 ||
-        idet==411 ||
-        idet==464 ||
-        idet==468 ||
-        idet==474 ||
-        idet==469
-        ) 
-       skipTrack=kTRUE;
-      */
-         /*
-      if(
-        idet==245
-        || idet==248
-        || idet==253
-        || idet==264
-        || idet==276
-        || idet==286
-        || idet==287
-        || idet==292
-        || idet==295
-        || idet==302
-        || idet==305
-        || idet==307
-        || idet==315
-        || idet==320
-        || idet==330
-        || idet==331
-        || idet==341
-        || idet==357
-        || idet==368
-        || idet==376
-        || idet==377
-        || idet==378
-        || idet==379
-        || idet==380
-        || idet==381
-        || idet==382
-        || idet==383
-        || idet==422
-        || idet==444
-        || idet==445
-        || idet==450
-        || idet==451
-        || idet==452
-        || idet==453
-        || idet==455
-        || idet==459
-        || idet==469
-        || idet==485
-        || idet==493
-        || idet==494
-        || idet==495
-        || idet==496
-        || idet==497
-        || idet==498
-        || idet==499
-        ) skipTrack=kTRUE;
-      // SKIP SDD MODULES LOW EFF
-      */
     }  
-    if(skipTrack) {delete trackTPC; trackTPC=0; continue;}
 
     // TPC track findable in ITS
     if(tpcrefit && trackTPC) { 
@@ -2389,20 +2421,34 @@ void AliAnalysisTaskITSTrackingCheck::UserExec(Option_t *)
     // track prolonged in ITS with different conditions
     if(itsrefit) {
       if(itsfindable) {
+       if(nclsITS==7) fHistPtITSMI7->Fill(track->Pt());
        if(nclsITS==6) fHistPtITSMI6->Fill(track->Pt());
        if(nclsITS==5) fHistPtITSMI5->Fill(track->Pt());
        if(nclsITS==4) fHistPtITSMI4->Fill(track->Pt());
        if(nclsITS==3) fHistPtITSMI3->Fill(track->Pt());
        if(nclsITS==2) fHistPtITSMI2->Fill(track->Pt());
-       if(track->HasPointOnITSLayer(0) && track->HasPointOnITSLayer(1)) {
+       if(ConditionSPD(track)) {
          fHistPtITSMISPD->Fill(track->Pt());
          fHistTPCclsVSPtITSMISPDInAcc->Fill(track->Pt(),track->GetNcls(1));
        }
-       if(track->HasPointOnITSLayer(0) || track->HasPointOnITSLayer(1))
+       if(ConditionSPDone(track)) {
          fHistPtITSMIoneSPD->Fill(track->Pt());
+       }
+       if(ConditionSPDtwo(track)) {
+         fHistPtITSMItwoSPD->Fill(track->Pt());
+       }
        if(nclsokbadoutinzITS==6) fHistPtITSMIokbadoutinz6->Fill(track->Pt());
       }
       if(itsfindableAcc) {
+       if(nclsITS==7) {
+         fHistPtITSMI7InAcc->Fill(track->Pt());
+         if(track->Pt()>1) {
+           fHistPhiITSMI7InAcc->Fill(track->Phi());
+           fHistEtaITSMI7InAcc->Fill(track->Eta());
+         }
+         if(isFake) fHistPtITSMI7InAccFake->Fill(track->Pt());
+         if(isPrimary) {fHistPtITSMI7InAccP->Fill(track->Pt());} else {fHistPtITSMI7InAccS->Fill(track->Pt());}  
+       }
        if(nclsITS==6) {
          fHistPtITSMI6InAcc->Fill(track->Pt());
          if(fCheckSDDIsIn && sddIsIn) fHistPtITSMI6InAccwSDD->Fill(track->Pt());
@@ -2483,7 +2529,7 @@ void AliAnalysisTaskITSTrackingCheck::UserExec(Option_t *)
          if(isFake) fHistPtITSMI2InAccFake->Fill(track->Pt());
          if(isPrimary) {fHistPtITSMI2InAccP->Fill(track->Pt());} else {fHistPtITSMI2InAccS->Fill(track->Pt());}  
        }
-       if(track->HasPointOnITSLayer(0) && track->HasPointOnITSLayer(1)) {
+       if(ConditionSPD(track)) {
          fHistPtITSMISPDInAcc->Fill(track->Pt());
          if(fCheckSDDIsIn && sddIsIn) fHistPtITSMISPDInAccwSDD->Fill(track->Pt());
          if(fCheckSDDIsIn && !sddIsIn) fHistPtITSMISPDInAccwoSDD->Fill(track->Pt());
@@ -2499,7 +2545,16 @@ void AliAnalysisTaskITSTrackingCheck::UserExec(Option_t *)
          if(isFake) fHistPtITSMISPDInAccFake->Fill(track->Pt());
          if(isPrimary) {fHistPtITSMISPDInAccP->Fill(track->Pt());} else {fHistPtITSMISPDInAccS->Fill(track->Pt());}  
        }
-       if(track->HasPointOnITSLayer(0) || track->HasPointOnITSLayer(1)) {
+       if(ConditionSPDtwo(track)) {
+         fHistPtITSMItwoSPDInAcc->Fill(track->Pt());
+         if(track->Pt()>1) {
+           fHistPhiITSMItwoSPDInAcc->Fill(track->Phi());
+           fHistEtaITSMItwoSPDInAcc->Fill(track->Eta());
+         }
+         if(isFake) fHistPtITSMItwoSPDInAccFake->Fill(track->Pt());
+         if(isPrimary) {fHistPtITSMItwoSPDInAccP->Fill(track->Pt());} else {fHistPtITSMItwoSPDInAccS->Fill(track->Pt());}  
+       }
+       if(ConditionSPDone(track)) {
          fHistPtITSMIoneSPDInAcc->Fill(track->Pt());
          if(fCheckSDDIsIn && sddIsIn) fHistPtITSMIoneSPDInAccwSDD->Fill(track->Pt());
          if(fCheckSDDIsIn && !sddIsIn) fHistPtITSMIoneSPDInAccwoSDD->Fill(track->Pt());
@@ -2604,18 +2659,18 @@ void AliAnalysisTaskITSTrackingCheck::UserExec(Option_t *)
       if(track->Pt()>0.150 && track->Pt()<0.200) {
        if(isPrimary) {
          fHistd0rphiTPCInAccP150200->Fill(d0z0TPC[0]);
-         if(track->HasPointOnITSLayer(0) && track->HasPointOnITSLayer(1) && itsrefit)
+         if(ConditionSPD(track) && itsrefit)
            fHistd0rphiITSMISPDInAccP150200->Fill(d0z0[0]);
-         if((track->HasPointOnITSLayer(0) || track->HasPointOnITSLayer(1)) && itsrefit) {
+         if((ConditionSPDone(track)) && itsrefit) {
            //if(((track->HasPointOnITSLayer(0) && !track->HasPointOnITSLayer(1)) || (!track->HasPointOnITSLayer(0) && track->HasPointOnITSLayer(1))) && itsrefit) {
            if(TMath::Abs(d0z0[1])<maxdcazITSTPC) fHistd0rphiITSMIoneSPDInAccP150200->Fill(d0z0[0]);
            if(TMath::Abs(d0z0[0])<maxdcaxyITSTPC) fHistd0zITSMIoneSPDInAccP150200->Fill(d0z0[1]);
          }
        } else {
          fHistd0rphiTPCInAccS150200->Fill(d0z0TPC[0]);
-         if(track->HasPointOnITSLayer(0) && track->HasPointOnITSLayer(1) && itsrefit)
+         if(ConditionSPD(track) && itsrefit)
            fHistd0rphiITSMISPDInAccS150200->Fill(d0z0[0]);
-         if((track->HasPointOnITSLayer(0) || track->HasPointOnITSLayer(1)) && itsrefit) {
+         if((ConditionSPDone(track)) && itsrefit) {
            if(TMath::Abs(d0z0[1])<maxdcazITSTPC) {
              fHistd0rphiITSMIoneSPDInAccS150200->Fill(d0z0[0]);
              if(isFromStrange) fHistd0rphiITSMIoneSPDInAccS150200fromStrange->Fill(d0z0[0]);
@@ -2628,11 +2683,11 @@ void AliAnalysisTaskITSTrackingCheck::UserExec(Option_t *)
       }
       if(track->Pt()>0.350 && track->Pt()<0.450) {
        if(isPrimary) {
-         if((track->HasPointOnITSLayer(0) || track->HasPointOnITSLayer(1)) && itsrefit) {
+         if((ConditionSPDone(track)) && itsrefit) {
            if(TMath::Abs(d0z0[1])<maxdcazITSTPC) fHistd0rphiITSMIoneSPDInAccP350450->Fill(d0z0[0]);
          }
        } else {
-         if((track->HasPointOnITSLayer(0) || track->HasPointOnITSLayer(1)) && itsrefit) {
+         if((ConditionSPDone(track)) && itsrefit) {
            if(TMath::Abs(d0z0[1])<maxdcazITSTPC) {
              fHistd0rphiITSMIoneSPDInAccS350450->Fill(d0z0[0]);
              if(isFromStrange) fHistd0rphiITSMIoneSPDInAccS350450fromStrange->Fill(d0z0[0]);
@@ -2644,17 +2699,17 @@ void AliAnalysisTaskITSTrackingCheck::UserExec(Option_t *)
       if(track->Pt()>0.500 && track->Pt()<0.700) {
        if(isPrimary) {
          fHistd0rphiTPCInAccP500700->Fill(d0z0TPC[0]);
-         if(track->HasPointOnITSLayer(0) && track->HasPointOnITSLayer(1) && itsrefit)
+         if(ConditionSPD(track) && itsrefit)
            fHistd0rphiITSMISPDInAccP500700->Fill(d0z0[0]);
-         if((track->HasPointOnITSLayer(0) || track->HasPointOnITSLayer(1)) && itsrefit) {
+         if((ConditionSPDone(track)) && itsrefit) {
            if(TMath::Abs(d0z0[1])<maxdcazITSTPC) fHistd0rphiITSMIoneSPDInAccP500700->Fill(d0z0[0]);
            if(TMath::Abs(d0z0[0])<maxdcaxyITSTPC) fHistd0zITSMIoneSPDInAccP500700->Fill(d0z0[1]);
          }
        } else {
          fHistd0rphiTPCInAccS500700->Fill(d0z0TPC[0]);
-         if(track->HasPointOnITSLayer(0) && track->HasPointOnITSLayer(1) && itsrefit)
+         if(ConditionSPD(track) && itsrefit)
            fHistd0rphiITSMISPDInAccS500700->Fill(d0z0[0]);
-         if((track->HasPointOnITSLayer(0) || track->HasPointOnITSLayer(1)) && itsrefit) {
+         if((ConditionSPDone(track)) && itsrefit) {
            fHistPDGTrk->Fill(pdgTrk);
            fHistPDGMoth->Fill(pdgMoth);
            if(TMath::Abs(d0z0[0])<0.1) fHistPDGMoth500700->Fill(pdgMoth);
@@ -2678,9 +2733,9 @@ void AliAnalysisTaskITSTrackingCheck::UserExec(Option_t *)
          fHistd0rphiTPCInAccP10001500->Fill(d0z0TPC[0]);
          fHistd0zVSetaTPCInAccP10001500->Fill(d0z0TPC[1],trackTPC->Eta());
 
-         if(track->HasPointOnITSLayer(0) && track->HasPointOnITSLayer(1) && itsrefit)
+         if(ConditionSPD(track) && itsrefit)
            fHistd0rphiITSMISPDInAccP10001500->Fill(d0z0[0]);
-         if((track->HasPointOnITSLayer(0) || track->HasPointOnITSLayer(1)) && itsrefit) {
+         if((ConditionSPDone(track)) && itsrefit) {
            if(TMath::Abs(d0z0[1])<maxdcazITSTPC) fHistd0rphiITSMIoneSPDInAccP10001500->Fill(d0z0[0]);
            if(TMath::Abs(d0z0[0])<maxdcaxyITSTPC) fHistd0zITSMIoneSPDInAccP10001500->Fill(d0z0[1]);
            fHistd0rphiVSphiITSMIoneSPDInAccP10001500->Fill(d0z0[0],track->Phi());
@@ -2688,9 +2743,9 @@ void AliAnalysisTaskITSTrackingCheck::UserExec(Option_t *)
          }
        } else {
          fHistd0rphiTPCInAccS10001500->Fill(d0z0TPC[0]);
-         if(track->HasPointOnITSLayer(0) && track->HasPointOnITSLayer(1) && itsrefit)
+         if(ConditionSPD(track) && itsrefit)
            fHistd0rphiITSMISPDInAccS10001500->Fill(d0z0[0]);
-         if((track->HasPointOnITSLayer(0) || track->HasPointOnITSLayer(1)) && itsrefit) {
+         if((ConditionSPDone(track)) && itsrefit) {
            if(TMath::Abs(d0z0[1])<maxdcazITSTPC) {
              fHistd0rphiITSMIoneSPDInAccS10001500->Fill(d0z0[0]);
              if(isFromStrange) fHistd0rphiITSMIoneSPDInAccS10001500fromStrange->Fill(d0z0[0]);
@@ -2703,11 +2758,11 @@ void AliAnalysisTaskITSTrackingCheck::UserExec(Option_t *)
       }
       if(track->Pt()>2.500 && track->Pt()<4.000) {
        if(isPrimary) {
-         if((track->HasPointOnITSLayer(0) || track->HasPointOnITSLayer(1)) && itsrefit) {
+         if((ConditionSPDone(track)) && itsrefit) {
            if(TMath::Abs(d0z0[1])<maxdcazITSTPC) fHistd0rphiITSMIoneSPDInAccP25004000->Fill(d0z0[0]);
          }
        } else {
-         if((track->HasPointOnITSLayer(0) || track->HasPointOnITSLayer(1)) && itsrefit) {
+         if((ConditionSPDone(track)) && itsrefit) {
            if(TMath::Abs(d0z0[1])<maxdcazITSTPC) {
              fHistd0rphiITSMIoneSPDInAccS25004000->Fill(d0z0[0]);
              if(isFromStrange) fHistd0rphiITSMIoneSPDInAccS25004000fromStrange->Fill(d0z0[0]);
@@ -2718,11 +2773,11 @@ void AliAnalysisTaskITSTrackingCheck::UserExec(Option_t *)
       }
       if(track->Pt()>4.000 && track->Pt()<8.000) {
        if(isPrimary) {
-         if((track->HasPointOnITSLayer(0) || track->HasPointOnITSLayer(1)) && itsrefit) {
+         if((ConditionSPDone(track)) && itsrefit) {
            if(TMath::Abs(d0z0[1])<maxdcazITSTPC) fHistd0rphiITSMIoneSPDInAccP40008000->Fill(d0z0[0]);
          }
        } else {
-         if((track->HasPointOnITSLayer(0) || track->HasPointOnITSLayer(1)) && itsrefit) {
+         if((ConditionSPDone(track)) && itsrefit) {
            if(TMath::Abs(d0z0[1])<maxdcazITSTPC) {
              fHistd0rphiITSMIoneSPDInAccS40008000->Fill(d0z0[0]);
              if(isFromStrange) fHistd0rphiITSMIoneSPDInAccS40008000fromStrange->Fill(d0z0[0]);
@@ -2896,7 +2951,7 @@ Int_t AliAnalysisTaskITSTrackingCheck::NumberOfITSClustersMC(Int_t label,Int_t n
 
   AliITSRecPoint *c=0;
   Int_t i,n,icl,lay,ilab;
-  Int_t ncls[6]={0,0,0,0,0,0};
+  Int_t ncls[7]={0,0,0,0,0,0,0};
   Int_t nclstot=0;
 
   for(i=0; i<nModules; i++) {
@@ -2911,7 +2966,7 @@ Int_t AliAnalysisTaskITSTrackingCheck::NumberOfITSClustersMC(Int_t label,Int_t n
       }
     }
   }
-  for(i=0;i<6;i++) { 
+  for(i=0;i<fNITSLayers;i++) { 
     //printf("%d\n",ncls[i]); 
     if(ncls[i]) nclstot++; 
   }
@@ -2977,6 +3032,9 @@ Double_t AliAnalysisTaskITSTrackingCheck::ParticleImpParMC(TParticle *part,
   //
   // Return the MC value of the impact parameter
   //
+
+  bzT = TMath::Abs(bzT);
+
  
   Double_t vx=part->Vx()-vert->GetX();
   Double_t vy=part->Vy()-vert->GetY();
@@ -2987,7 +3045,8 @@ Double_t AliAnalysisTaskITSTrackingCheck::ParticleImpParMC(TParticle *part,
   Double_t charge = (part->GetPdgCode()>0. ? 1. : -1.);
   if(TMath::Abs(part->GetPdgCode())<100) charge*=-1.;
 
-  if(px<0.000001) px=0.000001;     
+
+  if(TMath::Abs(px)<0.000001) px=0.000001;     
   Double_t rAnd=((10./2.99792458)*pt/bzT)*100.;
   Double_t center[3],d0;
   center[0]=vx-(1./charge)*rAnd*(py/pt);
@@ -2995,6 +3054,8 @@ Double_t AliAnalysisTaskITSTrackingCheck::ParticleImpParMC(TParticle *part,
   center[2]=TMath::Sqrt(center[0]*center[0]+center[1]*center[1]);
   d0 = -center[2]+rAnd;
 
+  //if(pt>29) printf("%f %f %f %d %f %f %f %f %f\n",px,py,pt,part->GetPdgCode(),center[0],center[1],center[2],rAnd,d0);
+
   return d0;
 }
 //---------------------------------------------------------------------------
@@ -3023,15 +3084,12 @@ Int_t AliAnalysisTaskITSTrackingCheck::MakeITSflag(AliESDtrack *track) const {
   // Then the same adding 10,20 or 30 for SDD and 100,200 or 300 for SSD
   //
   Int_t iITSflag=0;
-  if(track->HasPointOnITSLayer(0)) iITSflag+=1;
-  if(track->HasPointOnITSLayer(1)) iITSflag+=2;
-  if(track->HasPointOnITSLayer(2)) iITSflag+=10;
-  if(track->HasPointOnITSLayer(3)) iITSflag+=20;
-  if(track->HasPointOnITSLayer(4)) iITSflag+=100;
-  if(track->HasPointOnITSLayer(5)) iITSflag+=200;
-  
-  if(iITSflag==333 && track->GetNcls(0)<6)
-    printf(" ERROR %d   %d\n",track->GetNcls(0),track->GetLabel());
+  if(track->HasPointOnITSLayer(0))             iITSflag+=1;
+  if(track->HasPointOnITSLayer(fNITSLayers-5)) iITSflag+=2;
+  if(track->HasPointOnITSLayer(fNITSLayers-4)) iITSflag+=10;
+  if(track->HasPointOnITSLayer(fNITSLayers-3)) iITSflag+=20;
+  if(track->HasPointOnITSLayer(fNITSLayers-2)) iITSflag+=100;
+  if(track->HasPointOnITSLayer(fNITSLayers-1)) iITSflag+=200;
   
   // number of associated ITS clusters
   iITSflag += 1000*track->GetNcls(0);
@@ -3071,6 +3129,50 @@ Bool_t AliAnalysisTaskITSTrackingCheck::IsSelectedCentrality() const
 
   return kTRUE;
 }
+//---------------------------------------------------------------------------
+Bool_t AliAnalysisTaskITSTrackingCheck::ConditionSPD(AliESDtrack *track) const
+{
+  //
+  // check if track has points in all inner barrel layers
+  //
 
 
+  if(NPointsInnerBarrel(track)==(fNITSLayers-4)) return kTRUE;
+  return kFALSE;
+}
+//---------------------------------------------------------------------------
+Bool_t AliAnalysisTaskITSTrackingCheck::ConditionSPDone(AliESDtrack *track) const
+{
+  //
+  // check if track has points in at least one inner barrel layer
+  //
+
 
+  if(NPointsInnerBarrel(track)>=1) return kTRUE;
+  return kFALSE;
+}
+//---------------------------------------------------------------------------
+Bool_t AliAnalysisTaskITSTrackingCheck::ConditionSPDtwo(AliESDtrack *track) const
+{
+  //
+  // check if track has points in at least two inner barrel layers
+  //
+
+
+  if(NPointsInnerBarrel(track)>=2) return kTRUE;
+  return kFALSE;
+}
+//---------------------------------------------------------------------------
+Int_t AliAnalysisTaskITSTrackingCheck::NPointsInnerBarrel(AliESDtrack *track) const
+{
+  //
+  // N of points in inner barrel layers
+  //
+  Int_t n=0;
+
+  for(Int_t i=0; i<(fNITSLayers-4); i++) {
+    if(track->HasPointOnITSLayer(i)) n++;
+  }
+
+  return n;
+}
index edc24177af7a59d24ad95f15cbce1990bcc73fdf..9e4b749e1c815b00f91a2d52f949b504fe9e42f3 100644 (file)
@@ -36,6 +36,7 @@ class AliAnalysisTaskITSTrackingCheck : public AliAnalysisTaskSE
   Bool_t         GetReadMC() const { return fReadMC; }
   void           SetReadMC(Bool_t flag=kTRUE) { fReadMC=flag; }
   void           SetUsePhysSel() { fUsePhysSel=kTRUE; }
+  void           SetRequireSPDvtx(Bool_t flag=kTRUE) { fRequireSPDvtx=flag; }
   void           SetRejPileupSPD() { fRejPileupSPD=kTRUE; }
   void           SetReadRPLabels(Bool_t flag=kTRUE) { fReadRPLabels=flag; }
   void           SetFillNtuples(Bool_t flag=kTRUE) { fFillNtuples=flag; }
@@ -46,13 +47,17 @@ class AliAnalysisTaskITSTrackingCheck : public AliAnalysisTaskSE
   void           SetCheckSDDIsIn(Int_t check=0) { fCheckSDDIsIn=check; }
   void           SetTriggerClass(TString tclass="") { fTriggerClass=tclass; }
   void           SetOCDBPath(TString path="") { fOCDBPath=path; }
+  void           SetNITSLayers(Int_t n=6) { fNITSLayers=n; }
+  void           SetUsePtBinsForBox() { fUsePtBinsForBox=kTRUE; }
 
  protected:
+  Int_t        fNITSLayers; // number of layers (6 for current, 7 for upgrade)
   Bool_t       fReadMC; // read Monte Carlo
   Bool_t       fReadRPLabels; // read MC labels from ITS.RecPoints
   Bool_t       fFillNtuples; // fill expert ntuples
   Bool_t       fUseITSSAforNtuples; // fill expert ntuples with ITSSA tracks
   Bool_t       fUsePhysSel; // use AliPhysicsSelection
+  Bool_t       fRequireSPDvtx; // check for SPD vtx to be reconstructed
   Bool_t       fRejPileupSPD; // reject pileup events based on SPD vertex
   Int_t        fCheckSDDIsIn; // check for ITSSDD in the trigger cluster: 0 no check; +1 only wSDD; -1 only woSDD
   AliESDEvent  *fESD;    // ESD object
@@ -60,6 +65,7 @@ class AliAnalysisTaskITSTrackingCheck : public AliAnalysisTaskSE
   Int_t        fMaxMult; // maximum multiplicity
   TString      fTriggerClass; // trigger class to be inspected
   AliTriggerConfiguration *fTrigConfig; // trigger configuration (read from OCDB)
+  Bool_t       fUsePtBinsForBox; // to use special pt binning
   TString      fOCDBPath; // to the OCDB
   TList        *fOutput; //! list send on output slot 0
   TH1F         *fHistNEvents; //! output hist
@@ -143,15 +149,19 @@ class AliAnalysisTaskITSTrackingCheck : public AliAnalysisTaskSE
   TH1F         *fHistPtITSMI4; //! output hist
   TH1F         *fHistPtITSMI5; //! output hist
   TH1F         *fHistPtITSMI6; //! output hist
+  TH1F         *fHistPtITSMI7; //! output hist
   TH1F         *fHistPtITSMISPD; //! output hist
   TH1F         *fHistPtITSMIoneSPD; //! output hist
+  TH1F         *fHistPtITSMItwoSPD; //! output hist
   TH1F         *fHistPtITSMI2InAcc; //! output hist
   TH1F         *fHistPtITSMI3InAcc; //! output hist
   TH1F         *fHistPtITSMI4InAcc; //! output hist
   TH1F         *fHistPtITSMI5InAcc; //! output hist
   TH1F         *fHistPtITSMI6InAcc; //! output hist
+  TH1F         *fHistPtITSMI7InAcc; //! output hist
   TH1F         *fHistPtITSMISPDInAcc; //! output hist
   TH1F         *fHistPtITSMIoneSPDInAcc; //! output hist
+  TH1F         *fHistPtITSMItwoSPDInAcc; //! output hist
   TH1F         *fHistPtITSMI2InAccTOFbc0; //! output hist
   TH1F         *fHistPtITSMI3InAccTOFbc0; //! output hist
   TH1F         *fHistPtITSMI4InAccTOFbc0; //! output hist
@@ -198,22 +208,28 @@ class AliAnalysisTaskITSTrackingCheck : public AliAnalysisTaskSE
   TH1F         *fHistPhiITSMI4InAcc; //! output hist
   TH1F         *fHistPhiITSMI5InAcc; //! output hist
   TH1F         *fHistPhiITSMI6InAcc; //! output hist
+  TH1F         *fHistPhiITSMI7InAcc; //! output hist
   TH1F         *fHistPhiITSMISPDInAcc; //! output hist
   TH1F         *fHistPhiITSMIoneSPDInAcc; //! output hist
+  TH1F         *fHistPhiITSMItwoSPDInAcc; //! output hist
   TH1F         *fHistEtaITSMI2InAcc; //! output hist
   TH1F         *fHistEtaITSMI3InAcc; //! output hist
   TH1F         *fHistEtaITSMI4InAcc; //! output hist
   TH1F         *fHistEtaITSMI5InAcc; //! output hist
   TH1F         *fHistEtaITSMI6InAcc; //! output hist
+  TH1F         *fHistEtaITSMI7InAcc; //! output hist
   TH1F         *fHistEtaITSMISPDInAcc; //! output hist
   TH1F         *fHistEtaITSMIoneSPDInAcc; //! output hist
+  TH1F         *fHistEtaITSMItwoSPDInAcc; //! output hist
   TH1F         *fHistPtITSMI2InAccFake; //! output hist
   TH1F         *fHistPtITSMI3InAccFake; //! output hist
   TH1F         *fHistPtITSMI4InAccFake; //! output hist
   TH1F         *fHistPtITSMI5InAccFake; //! output hist
   TH1F         *fHistPtITSMI6InAccFake; //! output hist
+  TH1F         *fHistPtITSMI7InAccFake; //! output hist
   TH1F         *fHistPtITSMISPDInAccFake; //! output hist
   TH1F         *fHistPtITSMIoneSPDInAccFake; //! output hist
+  TH1F         *fHistPtITSMItwoSPDInAccFake; //! output hist
   TH1F         *fHistPtITSMIoneSPDthreeSDDSSDInAcc; //! output hist
   TH1F         *fHistPtITSTPCsel; //! output hist
   TH1F         *fHistPtITSTPCselTOFbc0; //! output hist
@@ -232,15 +248,19 @@ class AliAnalysisTaskITSTrackingCheck : public AliAnalysisTaskSE
   TH1F         *fHistPtITSMI4InAccP; //! output hist
   TH1F         *fHistPtITSMI5InAccP; //! output hist
   TH1F         *fHistPtITSMI6InAccP; //! output hist
+  TH1F         *fHistPtITSMI7InAccP; //! output hist
   TH1F         *fHistPtITSMISPDInAccP; //! output hist
   TH1F         *fHistPtITSMIoneSPDInAccP; //! output hist
+  TH1F         *fHistPtITSMItwoSPDInAccP; //! output hist
   TH1F         *fHistPtITSMI2InAccS; //! output hist
   TH1F         *fHistPtITSMI3InAccS; //! output hist
   TH1F         *fHistPtITSMI4InAccS; //! output hist
   TH1F         *fHistPtITSMI5InAccS; //! output hist
   TH1F         *fHistPtITSMI6InAccS; //! output hist
+  TH1F         *fHistPtITSMI7InAccS; //! output hist
   TH1F         *fHistPtITSMISPDInAccS; //! output hist
   TH1F         *fHistPtITSMIoneSPDInAccS; //! output hist
+  TH1F         *fHistPtITSMItwoSPDInAccS; //! output hist
   TH1F         *fHistPtITSMIokbadoutinz6; //! output hist
   TH1F         *fHistPtITSMIokbadoutinz4InAcc; //! output hist
   TH1F         *fHistPtITSMIokbadoutinz5InAcc; //! output hist
@@ -329,8 +349,14 @@ class AliAnalysisTaskITSTrackingCheck : public AliAnalysisTaskSE
   Int_t MakeITSflag(AliESDtrack *track) const;
   Bool_t IsSelectedCentrality() const;
   void FillNClustersModuleMap();
+  Int_t NPointsInnerBarrel(AliESDtrack *track) const;
+  Bool_t ConditionSPD(AliESDtrack *track) const;
+  Bool_t ConditionSPDone(AliESDtrack *track) const;
+  Bool_t ConditionSPDtwo(AliESDtrack *track) const;
 
-  ClassDef(AliAnalysisTaskITSTrackingCheck,15); // ITS tracks analysis
+
+
+  ClassDef(AliAnalysisTaskITSTrackingCheck,16); // ITS tracks analysis
 };
 
 #endif
index 51fd4dc4c8d0f5b626a1232c4b61743d89f2a918..2f52fb5b4f732cc77cc9d9ea1e07836008d0ff3f 100644 (file)
@@ -20,7 +20,17 @@ void PlotITSTrackingEff(TString filename="ITS.Performance.root",
   TFile *file= TFile::Open(filename.Data());
   cout<<"Open File "<<filename<<endl;   
 
+
+
   TList *list = (TList*)file->Get("cOutputITS");
+  TDirectoryFile *dir=0;
+  if(!list) {
+    dir=(TDirectoryFile*)file->GetDirectory("ITS_Performance");
+    if(dir) list = (TList*)dir->Get("cOutputITS");
+  }
+
+
+
   TNtuple *ntTracks = (TNtuple*)list->FindObject("fNtupleESDTracks");
     
   //Getting and Addressing  NTuples    
index b08d9fe1a88a40e27d220de72fa37cc1e9ae0162..c89b29eaf09e85864a7d3cb53299e5768284ffea 100644 (file)
@@ -389,6 +389,7 @@ Bool_t PlotITSTrackingHists(TString fname="ITS.Performance.root",
 
   TH1F *fHistPhiTPCInAcc = (TH1F*)list->FindObject("fHistPhiTPCInAcc");
   TH1F *fHistPhiITSMIokbadoutinz6InAcc = (TH1F*)list->FindObject("fHistPhiITSMIokbadoutinz6InAcc");
+  TH1F *fHistPhiITSMI7InAcc = (TH1F*)list->FindObject("fHistPhiITSMI7InAcc");
   TH1F *fHistPhiITSMI6InAcc = (TH1F*)list->FindObject("fHistPhiITSMI6InAcc");
   TH1F *fHistPhiITSMI5InAcc = (TH1F*)list->FindObject("fHistPhiITSMI5InAcc");
   TH1F *fHistPhiITSMI4InAcc = (TH1F*)list->FindObject("fHistPhiITSMI4InAcc");
@@ -399,6 +400,7 @@ Bool_t PlotITSTrackingHists(TString fname="ITS.Performance.root",
 
   TH1F *fHistEtaTPCInAcc = (TH1F*)list->FindObject("fHistEtaTPCInAcc");
   TH1F *fHistEtaITSMIokbadoutinz6InAcc = (TH1F*)list->FindObject("fHistEtaITSMIokbadoutinz6InAcc");
+  TH1F *fHistEtaITSMI7InAcc = (TH1F*)list->FindObject("fHistEtaITSMI7InAcc");
   TH1F *fHistEtaITSMI6InAcc = (TH1F*)list->FindObject("fHistEtaITSMI6InAcc");
   TH1F *fHistEtaITSMI5InAcc = (TH1F*)list->FindObject("fHistEtaITSMI5InAcc");
   TH1F *fHistEtaITSMI4InAcc = (TH1F*)list->FindObject("fHistEtaITSMI4InAcc");
@@ -414,6 +416,7 @@ Bool_t PlotITSTrackingHists(TString fname="ITS.Performance.root",
   TH1F *fHistPtTPCInAccPfromStrange = (TH1F*)list->FindObject("fHistPtTPCInAccPfromStrange");
   TH1F *fHistPtTPCInAccMCtwoSPD = (TH1F*)list->FindObject("fHistPtTPCInAccMCtwoSPD");
   TH1F *fHistPtTPCInAccMConeSPD = (TH1F*)list->FindObject("fHistPtTPCInAccMConeSPD");
+  TH1F *fHistPtITSMI7InAcc = (TH1F*)list->FindObject("fHistPtITSMI7InAcc");
   TH1F *fHistPtITSMI6InAcc = (TH1F*)list->FindObject("fHistPtITSMI6InAcc");
   TH1F *fHistPtITSMI5InAcc = (TH1F*)list->FindObject("fHistPtITSMI5InAcc");
   TH1F *fHistPtITSMI4InAcc = (TH1F*)list->FindObject("fHistPtITSMI4InAcc");
@@ -421,6 +424,7 @@ Bool_t PlotITSTrackingHists(TString fname="ITS.Performance.root",
   TH1F *fHistPtITSMI2InAcc = (TH1F*)list->FindObject("fHistPtITSMI2InAcc");
   TH1F *fHistPtITSMISPDInAcc = (TH1F*)list->FindObject("fHistPtITSMISPDInAcc");
   TH1F *fHistPtITSMIoneSPDInAcc = (TH1F*)list->FindObject("fHistPtITSMIoneSPDInAcc");
+  TH1F *fHistPtITSMI7InAccFake = (TH1F*)list->FindObject("fHistPtITSMI7InAccFake");
   TH1F *fHistPtITSMI6InAccFake = (TH1F*)list->FindObject("fHistPtITSMI6InAccFake");
   TH1F *fHistPtITSMI5InAccFake = (TH1F*)list->FindObject("fHistPtITSMI5InAccFake");
   TH1F *fHistPtITSMI4InAccFake = (TH1F*)list->FindObject("fHistPtITSMI4InAccFake");
@@ -433,6 +437,7 @@ Bool_t PlotITSTrackingHists(TString fname="ITS.Performance.root",
   TH1F *fHistPtITSMIokbadoutinz5InAcc = (TH1F*)list->FindObject("fHistPtITSMIokbadoutinz5InAcc");
   TH1F *fHistPtITSMIokbadoutinz4InAcc = (TH1F*)list->FindObject("fHistPtITSMIokbadoutinz4InAcc");
   TH1F *fHistPtTPCInAccP = (TH1F*)list->FindObject("fHistPtTPCInAccP");
+  TH1F *fHistPtITSMI7InAccP = (TH1F*)list->FindObject("fHistPtITSMI7InAccP");
   TH1F *fHistPtITSMI6InAccP = (TH1F*)list->FindObject("fHistPtITSMI6InAccP");
   TH1F *fHistPtITSMI5InAccP = (TH1F*)list->FindObject("fHistPtITSMI5InAccP");
   TH1F *fHistPtITSMI4InAccP = (TH1F*)list->FindObject("fHistPtITSMI4InAccP");
@@ -441,6 +446,7 @@ Bool_t PlotITSTrackingHists(TString fname="ITS.Performance.root",
   TH1F *fHistPtITSMISPDInAccP = (TH1F*)list->FindObject("fHistPtITSMISPDInAccP");
   TH1F *fHistPtITSMIoneSPDInAccP = (TH1F*)list->FindObject("fHistPtITSMIoneSPDInAccP");
   TH1F *fHistPtTPCInAccS = (TH1F*)list->FindObject("fHistPtTPCInAccS");
+  TH1F *fHistPtITSMI7InAccS = (TH1F*)list->FindObject("fHistPtITSMI7InAccS");
   TH1F *fHistPtITSMI6InAccS = (TH1F*)list->FindObject("fHistPtITSMI6InAccS");
   TH1F *fHistPtITSMI5InAccS = (TH1F*)list->FindObject("fHistPtITSMI5InAccS");
   TH1F *fHistPtITSMI4InAccS = (TH1F*)list->FindObject("fHistPtITSMI4InAccS");
@@ -468,11 +474,15 @@ Bool_t PlotITSTrackingHists(TString fname="ITS.Performance.root",
   TH1F *fHistPtTPCInAccSfromMat = (TH1F*)list->FindObject("fHistPtTPCInAccSfromMat");
 
 
+  Bool_t upgrade = kFALSE;
+  if(fHistNclsITSMI->GetBinContent(7)>0) upgrade=kTRUE;
+
   //ReweightStrange(fHistPtTPCInAcc,fHistPtTPCInAccPfromStrange,fHistPtTPCInAccSfromStrange);
   //ReweightStrange(fHistPtITSTPCsel,fHistPtITSTPCselPfromStrange,fHistPtITSTPCselSfromStrange);
 
   //---------------------------------------------------------------
   TH1F *fHistPtITSMIge2InAcc = (TH1F*)fHistPtITSMI6InAcc->Clone("fHistPtITSMIge2InAcc");
+  if(upgrade) fHistPtITSMIge2InAcc->Add(fHistPtITSMI7InAcc);
   fHistPtITSMIge2InAcc->Add(fHistPtITSMI5InAcc);
   fHistPtITSMIge2InAcc->Add(fHistPtITSMI4InAcc);
   fHistPtITSMIge2InAcc->Add(fHistPtITSMI3InAcc);
@@ -480,17 +490,20 @@ Bool_t PlotITSTrackingHists(TString fname="ITS.Performance.root",
   TH1F *fHistPtITSMIge2InAccFake = 0;
   if(fHistPtITSMI6InAccFake) {
     fHistPtITSMIge2InAccFake=(TH1F*)fHistPtITSMI6InAccFake->Clone("fHistPtITSMIge2InAccFake");
+    if(upgrade) fHistPtITSMIge2InAccFake->Add(fHistPtITSMI7InAccFake);
     fHistPtITSMIge2InAccFake->Add(fHistPtITSMI5InAccFake);
     fHistPtITSMIge2InAccFake->Add(fHistPtITSMI4InAccFake);
     fHistPtITSMIge2InAccFake->Add(fHistPtITSMI3InAccFake);
     fHistPtITSMIge2InAccFake->Add(fHistPtITSMI2InAccFake);
   }
   TH1F *fHistPtITSMIge2InAccP = (TH1F*)fHistPtITSMI6InAccP->Clone("fHistPtITSMIge2InAccP");
+  if(upgrade) fHistPtITSMIge2InAccP->Add(fHistPtITSMI7InAccP);
   fHistPtITSMIge2InAccP->Add(fHistPtITSMI5InAccP);
   fHistPtITSMIge2InAccP->Add(fHistPtITSMI4InAccP);
   fHistPtITSMIge2InAccP->Add(fHistPtITSMI3InAccP);
   fHistPtITSMIge2InAccP->Add(fHistPtITSMI2InAccP);
   TH1F *fHistPtITSMIge2InAccS = (TH1F*)fHistPtITSMI6InAccS->Clone("fHistPtITSMIge2InAccS");
+  if(upgrade) fHistPtITSMIge2InAccS->Add(fHistPtITSMI7InAccS);
   fHistPtITSMIge2InAccS->Add(fHistPtITSMI5InAccS);
   fHistPtITSMIge2InAccS->Add(fHistPtITSMI4InAccS);
   fHistPtITSMIge2InAccS->Add(fHistPtITSMI3InAccS);
@@ -504,6 +517,7 @@ Bool_t PlotITSTrackingHists(TString fname="ITS.Performance.root",
     fHistPtITSMI4InAccFake->Divide(fHistPtITSMI4InAccFake,fHistPtITSMI4InAcc,1,1,"B");
     fHistPtITSMI5InAccFake->Divide(fHistPtITSMI5InAccFake,fHistPtITSMI5InAcc,1,1,"B");
     fHistPtITSMI6InAccFake->Divide(fHistPtITSMI6InAccFake,fHistPtITSMI6InAcc,1,1,"B");
+    if(upgrade) fHistPtITSMI7InAccFake->Divide(fHistPtITSMI7InAccFake,fHistPtITSMI7InAcc,1,1,"B");
     fHistPtITSMISPDInAccFake->Divide(fHistPtITSMISPDInAccFake,fHistPtITSMISPDInAcc,1,1,"B");
     fHistPtITSMIoneSPDInAccFake->Divide(fHistPtITSMIoneSPDInAccFake,fHistPtITSMIoneSPDInAcc,1,1,"B");
     if (fHistPtITSTPCselFake)fHistPtITSTPCselFake->Divide(fHistPtITSTPCselFake,fHistPtITSTPCsel,1,1,"B");
@@ -517,23 +531,33 @@ Bool_t PlotITSTrackingHists(TString fname="ITS.Performance.root",
   TLegend *l2=new TLegend(0.5,0.5,0.9,0.9);
 
   TCanvas *c1= new TCanvas("c1","c1",10,10,600,500);
-  fHistNclsITSSA->SetMinimum(0);
-  fHistNclsITSSA->SetLineColor(1);
-  l1->AddEntry(fHistNclsITSSA,"ITS-SA","l");
-  fHistNclsITSSA->Draw();
-  fHistNclsITSSAInAcc->SetLineColor(4);
-  l1->AddEntry(fHistNclsITSSAInAcc,"ITS-SA in acc.","l");
-  fHistNclsITSSAInAcc->Draw("same");
+  fHistNclsITSMI->SetMinimum(0);
+  //fHistNclsITSSAInAcc->SetLineColor(4);
+  //l1->AddEntry(fHistNclsITSSAInAcc,"ITS-SA in acc.","l");
+  //fHistNclsITSSAInAcc->Draw("same");
   fHistNclsITSMI->SetLineColor(2);
   l1->AddEntry(fHistNclsITSMI,"ITS from TPC","l");
-  fHistNclsITSMI->Draw("same");
+  fHistNclsITSMI->Draw();
+  fHistNclsITSSA->SetLineColor(1);
+  l1->AddEntry(fHistNclsITSSA,"ITS-SA","l");
+  fHistNclsITSSA->Draw("same");
   l1->Draw();
 
 
   TCanvas *c2 =new TCanvas("c2","c2",10,10,1200,800);
   c2->Divide(3,2);
   c2->cd(1);
+  fHistClusterMapITSSA->SetLineColor(1);
+  fHistClusterMapITSSA->SetMarkerColor(1);
+  fHistClusterMapITSSA->SetMarkerStyle(21);
+  fHistClusterMapITSMI->SetLineColor(2);
+  fHistClusterMapITSMI->SetMarkerColor(2);
+  fHistClusterMapITSMI->SetMarkerStyle(21);
+  fHistClusterMapITSMI->Draw();
+  fHistClusterMapITSSA->Draw("same");
+  l1->Draw();
   //
+  c2->cd(2);
   fHistClusterMapITSSAokoutinzbad->SetLineColor(1);
   fHistClusterMapITSSAokoutinzbad->SetMarkerColor(1);
   fHistClusterMapITSSAokoutinzbad->SetMarkerStyle(20);
@@ -544,7 +568,7 @@ Bool_t PlotITSTrackingHists(TString fname="ITS.Performance.root",
   fHistClusterMapITSMIokoutinzbad->Draw("same");
   l1->Draw();
   //
-  c2->cd(2);
+  c2->cd(3);
   fHistClusterMapITSSAok->SetLineColor(1);
   fHistClusterMapITSSAok->SetMarkerColor(1);
   fHistClusterMapITSSAok->SetMarkerStyle(21);
@@ -554,7 +578,7 @@ Bool_t PlotITSTrackingHists(TString fname="ITS.Performance.root",
   fHistClusterMapITSMIok->SetMarkerStyle(21);
   fHistClusterMapITSMIok->Draw("same");
   //
-  c2->cd(3);
+  c2->cd(4);
   fHistClusterMapITSSAoutinz->SetLineColor(1);
   fHistClusterMapITSSAoutinz->SetMarkerColor(1);
   fHistClusterMapITSSAoutinz->SetMarkerStyle(22);
@@ -564,7 +588,7 @@ Bool_t PlotITSTrackingHists(TString fname="ITS.Performance.root",
   fHistClusterMapITSMIoutinz->SetMarkerStyle(22);
   fHistClusterMapITSMIoutinz->Draw("same");
   //
-  c2->cd(4);
+  c2->cd(5);
   fHistClusterMapITSSAbad->SetLineColor(1);
   fHistClusterMapITSSAbad->SetMarkerColor(1);
   fHistClusterMapITSSAbad->SetMarkerStyle(23);
@@ -574,7 +598,7 @@ Bool_t PlotITSTrackingHists(TString fname="ITS.Performance.root",
   fHistClusterMapITSMIbad->SetMarkerStyle(23);
   fHistClusterMapITSMIbad->Draw("same");
   //
-  c2->cd(5);
+  c2->cd(6);
   fHistClusterMapITSSAnocls->SetLineColor(1);
   fHistClusterMapITSSAnocls->SetMarkerColor(1);
   fHistClusterMapITSSAnocls->SetMarkerStyle(24);
@@ -584,6 +608,7 @@ Bool_t PlotITSTrackingHists(TString fname="ITS.Performance.root",
   fHistClusterMapITSMInocls->SetMarkerStyle(24);
   fHistClusterMapITSMInocls->Draw("same");
 
+  /*
   TCanvas *c3 =new TCanvas("c3","c3",10,10,1200,800);
   c3->Divide(1,2);
   c3->cd(1);
@@ -622,7 +647,9 @@ Bool_t PlotITSTrackingHists(TString fname="ITS.Performance.root",
     if(fHistClusterMapModuleITSMIallInAcc->GetBinContent(ib)) fHistClusterMapModuleITSMInoclsRatioInAcc->SetBinError(ib,TMath::Sqrt(fHistClusterMapModuleITSMInoclsRatioInAcc->GetBinContent(ib)*(1.-fHistClusterMapModuleITSMInoclsRatioInAcc->GetBinContent(ib))/fHistClusterMapModuleITSMIallInAcc->GetBinContent(ib))); 
   }
   fHistClusterMapModuleITSMInoclsRatioInAcc->Draw("same");
+  */
 
+  /*
   TCanvas *c3b = new TCanvas("c3b","c3b");
   c3b->Divide(2,1);
   c3b->cd(1);
@@ -631,6 +658,7 @@ Bool_t PlotITSTrackingHists(TString fname="ITS.Performance.root",
   c3b->cd(2);
   fHistzlocSDDok->Divide(fHistzlocSDDall);
   fHistzlocSDDok->Draw();
+  */
 
   TCanvas *c4 =new TCanvas("c4","c4",10,10,1000,500);
   TLegend *l4a=new TLegend(0.5,0.5,0.9,0.9);
@@ -645,6 +673,12 @@ Bool_t PlotITSTrackingHists(TString fname="ITS.Performance.root",
   fHistPhiITSMI6InAcc->SetMaximum(1.5);
   fHistPhiITSMI6InAcc->SetMinimum(0);
   fHistPhiITSMI6InAcc->Draw();
+  if(upgrade) {
+    fHistPhiITSMI7InAcc->Divide(fHistPhiITSMI7InAcc,fHistPhiTPCInAcc,1,1,"B");
+    fHistPhiITSMI7InAcc->SetLineColor(kOrange);
+    l4a->AddEntry(fHistPhiITSMI7InAcc,"7 cls","l");
+    fHistPhiITSMI7InAcc->Draw("same");
+  }
   fHistPhiITSMI5InAcc->Divide(fHistPhiITSMI5InAcc,fHistPhiTPCInAcc,1,1,"B");
   fHistPhiITSMI5InAcc->SetLineColor(3);
   //l4a->AddEntry(fHistPhiITSMI5InAcc,"5 cls","l");
@@ -663,11 +697,11 @@ Bool_t PlotITSTrackingHists(TString fname="ITS.Performance.root",
   //fHistPhiITSMI2InAcc->Draw("same");
   fHistPhiITSMISPDInAcc->Divide(fHistPhiITSMISPDInAcc,fHistPhiTPCInAcc,1,1,"B");
   fHistPhiITSMISPDInAcc->SetLineColor(9);
-  l4a->AddEntry(fHistPhiITSMISPDInAcc,"2SPD + any","l");
+  l4a->AddEntry(fHistPhiITSMISPDInAcc,"All Inner + any","l");
   fHistPhiITSMISPDInAcc->Draw("same");
   fHistPhiITSMIoneSPDInAcc->Divide(fHistPhiITSMIoneSPDInAcc,fHistPhiTPCInAcc,1,1,"B");
   fHistPhiITSMIoneSPDInAcc->SetLineColor(15);
-  l4a->AddEntry(fHistPhiITSMIoneSPDInAcc,">=1SPD + any","l");
+  l4a->AddEntry(fHistPhiITSMIoneSPDInAcc,">=1 Inner + any","l");
   fHistPhiITSMIoneSPDInAcc->Draw("same");
   l4a->Draw();
   c4->cd(2);
@@ -679,6 +713,11 @@ Bool_t PlotITSTrackingHists(TString fname="ITS.Performance.root",
   fHistEtaITSMI6InAcc->SetMaximum(1.5);
   fHistEtaITSMI6InAcc->SetMinimum(0);
   fHistEtaITSMI6InAcc->Draw();
+  if(upgrade) {
+    fHistEtaITSMI7InAcc->Divide(fHistEtaITSMI7InAcc,fHistEtaTPCInAcc,1,1,"B");
+    fHistEtaITSMI7InAcc->SetLineColor(kOrange);
+    fHistEtaITSMI7InAcc->Draw("same");
+  }
   fHistEtaITSMI5InAcc->Divide(fHistEtaITSMI5InAcc,fHistEtaTPCInAcc,1,1,"B");
   fHistEtaITSMI5InAcc->SetLineColor(3);
   //fHistEtaITSMI5InAcc->Draw("same");
@@ -739,10 +778,10 @@ Bool_t PlotITSTrackingHists(TString fname="ITS.Performance.root",
   fHistPtITSMIoneSPDInAccSecFrac->Divide(fHistPtITSMIoneSPDInAcc);
   fHistPtITSMIoneSPDInAccSecFrac->SetLineColor(15);
   fHistPtITSMIoneSPDInAccSecFrac->Draw("same");
-  TH1F *fHistPtITSTPCselSecFrac = (TH1F*)fHistPtITSTPCselS->Clone("fHistPtITSTPCselSecFrac");  
+  /* TH1F *fHistPtITSTPCselSecFrac = (TH1F*)fHistPtITSTPCselS->Clone("fHistPtITSTPCselSecFrac");  
   fHistPtITSTPCselSecFrac->Divide(fHistPtITSTPCsel);
   fHistPtITSTPCselSecFrac->SetLineColor(15);
-  fHistPtITSTPCselSecFrac->Draw("same");
+  fHistPtITSTPCselSecFrac->Draw("same"); */
 
 
   TLegend *l3=new TLegend(0.5,0.5,0.9,0.9);
@@ -759,8 +798,15 @@ Bool_t PlotITSTrackingHists(TString fname="ITS.Performance.root",
   fHistPtITSMIge2InAcc->SetTitle("Fraction of prolonged tracks with N ITS points");
   fHistPtITSMIge2InAcc->SetYTitle("ITS+TPC / TPC");
   fHistPtITSMIge2InAcc->Divide(fHistPtITSMIge2InAcc,fHistPtTPCInAcc,1,1,"B");
+  fHistPtITSMIge2InAcc->SetLineColor(1);
   fHistPtITSMIge2InAcc->Draw();
   l3->AddEntry(fHistPtITSMIge2InAcc,">=2 cls","l");
+  if(upgrade) {
+    fHistPtITSMI7InAcc->Divide(fHistPtITSMI7InAcc,fHistPtTPCInAcc,1,1,"B");
+    fHistPtITSMI7InAcc->SetLineColor(kOrange);
+    l3->AddEntry(fHistPtITSMI7InAcc,"7 cls","l");
+    fHistPtITSMI7InAcc->Draw("same");
+  }
   fHistPtITSMI6InAcc->Divide(fHistPtITSMI6InAcc,fHistPtTPCInAcc,1,1,"B");
   fHistPtITSMI6InAcc->SetLineColor(2);
   l3->AddEntry(fHistPtITSMI6InAcc,"6 cls","l");
@@ -783,21 +829,21 @@ Bool_t PlotITSTrackingHists(TString fname="ITS.Performance.root",
   fHistPtITSMI2InAcc->Draw("same");
   fHistPtITSMISPDInAcc->Divide(fHistPtITSMISPDInAcc,fHistPtTPCInAcc,1,1,"B");
   fHistPtITSMISPDInAcc->SetLineColor(9);
-  l3->AddEntry(fHistPtITSMISPDInAcc,"2SPD + any","l");
+  l3->AddEntry(fHistPtITSMISPDInAcc,"All Inner + any","l");
   fHistPtITSMISPDInAcc->Draw("same");
   fHistPtITSMIoneSPDInAcc->Divide(fHistPtITSMIoneSPDInAcc,fHistPtTPCInAcc,1,1,"B");
   fHistPtITSMIoneSPDInAcc->SetLineColor(15);
-  l3->AddEntry(fHistPtITSMIoneSPDInAcc,">=1SPD + any","l");
+  l3->AddEntry(fHistPtITSMIoneSPDInAcc,">=1 Inner + any","l");
   fHistPtITSMIoneSPDInAcc->Draw("same");
-  //fHistPtITSMIoneSPDthreeSDDSSDInAcc->Divide(fHistPtITSMIoneSPDthreeSDDSSDInAcc,fHistPtTPCInAcc,1,1,"B");
-  //fHistPtITSMIoneSPDthreeSDDSSDInAcc->SetLineColor(kOrange);
-  //l3->AddEntry(fHistPtITSMIoneSPDthreeSDDSSDInAcc,">=1SPD + >=3SDDSSD","l");
-  //fHistPtITSMIoneSPDthreeSDDSSDInAcc->Draw("same");
-  fHistPtITSTPCsel->Divide(fHistPtITSTPCsel,fHistPtTPCInAcc,1,1,"B");
-  fHistPtITSTPCsel->SetLineColor(kAzure+1);
-  l3->AddEntry(fHistPtITSTPCsel,">=1SPD + any + d_{0} cut","l");
-  fHistPtITSTPCsel->Draw("same");
-  fHistPtITSMIge2InAcc->Draw("same");
+  /fHistPtITSMIoneSPDthreeSDDSSDInAcc->Divide(fHistPtITSMIoneSPDthreeSDDSSDInAcc,fHistPtTPCInAcc,1,1,"B");
+     fHistPtITSMIoneSPDthreeSDDSSDInAcc->SetLineColor(kOrange);
+     l3->AddEntry(fHistPtITSMIoneSPDthreeSDDSSDInAcc,">=1SPD + >=3SDDSSD","l");
+     fHistPtITSMIoneSPDthreeSDDSSDInAcc->Draw("same"); */
+  /* fHistPtITSTPCsel->Divide(fHistPtITSTPCsel,fHistPtTPCInAcc,1,1,"B");
+     fHistPtITSTPCsel->SetLineColor(kAzure+1);
+     l3->AddEntry(fHistPtITSTPCsel,">=1 Inner + any + d_{0} cut","l");
+     fHistPtITSTPCsel->Draw("same"); */
+  //fHistPtITSMIge2InAcc->Draw("same");
   l3->Draw();
   if(ioValues) {
     Int_t index,ptbin;
@@ -885,7 +931,13 @@ Bool_t PlotITSTrackingHists(TString fname="ITS.Performance.root",
     fHistPtITSMIge2InAccFake->SetMinimum(0);
     fHistPtITSMIge2InAccFake->SetTitle("Fraction of fake tracks with N ITS points");
     fHistPtITSMIge2InAccFake->SetYTitle("Fraction of fakes");
+    fHistPtITSMIge2InAccFake->SetLineColor(1);
     fHistPtITSMIge2InAccFake->Draw();
+    if(upgrade) {
+      fHistPtITSMI7InAccFake->SetLineColor(kOrange);
+      fHistPtITSMI7InAccFake->Draw("same");
+    }
+    fHistPtITSMI5InAccFake->SetLineColor(3);
     fHistPtITSMI6InAccFake->SetLineColor(2);
     fHistPtITSMI6InAccFake->Draw("same");
     fHistPtITSMI5InAccFake->SetLineColor(3);
@@ -900,15 +952,16 @@ Bool_t PlotITSTrackingHists(TString fname="ITS.Performance.root",
     fHistPtITSMISPDInAccFake->Draw("same");
     fHistPtITSMIoneSPDInAccFake->SetLineColor(15);
     fHistPtITSMIoneSPDInAccFake->Draw("same");
-    if(fHistPtITSTPCselFake) {
-      fHistPtITSTPCselFake->SetLineColor(kAzure+1);
-      fHistPtITSTPCselFake->Draw("same");
-    }
+    /* if(fHistPtITSTPCselFake) {
+       fHistPtITSTPCselFake->SetLineColor(kAzure+1);
+       fHistPtITSTPCselFake->Draw("same");
+       } */
     fHistPtITSMIge2InAccFake->Draw("same");
     l3->Draw();
   }
 
 
+  /*
   TLegend *l4d=new TLegend(0.5,0.5,0.9,0.9);
   TCanvas *c5d =new TCanvas("c5d","c5d",10,10,600,600);
   c5d->SetGridy();
@@ -926,7 +979,9 @@ Bool_t PlotITSTrackingHists(TString fname="ITS.Performance.root",
   l4d->AddEntry(fHistPtITSMIoneSPDInAccMC,">=1SPD + any","l");
   fHistPtITSMIoneSPDInAccMC->Draw("same");
   l4d->Draw();
+  */
 
+  /*
   TFile *eff=new TFile("eff.root","recreate");
   fHistPtITSMIge2InAcc->Write();
   fHistPtITSMI6InAcc->Write();
@@ -943,11 +998,12 @@ Bool_t PlotITSTrackingHists(TString fname="ITS.Performance.root",
   fHistClusterMapModuleITSMIbadRatioInAcc->Write();
   fHistClusterMapModuleITSMInoclsRatioInAcc->Write();
   eff->Close();
+  */
 
   c5c->cd();
   l3->Draw();
 
-
+  /*
   TCanvas *c5b =new TCanvas("c5b","c5b",10,10,600,600);
   c5b->SetLogy();
   fHistRProdVtxInAccP->SetLineColor(2);
@@ -955,6 +1011,7 @@ Bool_t PlotITSTrackingHists(TString fname="ITS.Performance.root",
   fHistRProdVtxInAccS->SetMinimum(1);
   fHistRProdVtxInAccP->Draw();
   fHistRProdVtxInAccS->Draw("sames");
+  */
 
   TCanvas *c5a =new TCanvas("c5a","c5a",10,10,1200,600);
   c5a->Divide(2,1);
@@ -967,8 +1024,14 @@ Bool_t PlotITSTrackingHists(TString fname="ITS.Performance.root",
   fHistPtITSMIge2InAccP->SetMinimum(0);
   fHistPtITSMIge2InAccP->SetTitle("Fraction of prolonged tracks with N ITS points");
   fHistPtITSMIge2InAccP->SetYTitle("ITS+TPC / TPC");
+  fHistPtITSMIge2InAccP->SetLineColor(1);
   fHistPtITSMIge2InAccP->Draw();
   fHistPtITSMIge2InAccP->Divide(fHistPtITSMIge2InAccP,fHistPtTPCInAccP,1,1,"B");
+  if(upgrade) {
+    fHistPtITSMI7InAccP->Divide(fHistPtITSMI7InAccP,fHistPtTPCInAccP,1,1,"B");
+    fHistPtITSMI7InAccP->SetLineColor(kOrange);
+    fHistPtITSMI7InAccP->Draw("same");
+  }
   fHistPtITSMI6InAccP->Divide(fHistPtITSMI6InAccP,fHistPtTPCInAccP,1,1,"B");
   fHistPtITSMI6InAccP->SetLineColor(2);
   fHistPtITSMI6InAccP->Draw("same");
@@ -990,10 +1053,10 @@ Bool_t PlotITSTrackingHists(TString fname="ITS.Performance.root",
   fHistPtITSMIoneSPDInAccP->Divide(fHistPtITSMIoneSPDInAccP,fHistPtTPCInAccP,1,1,"B");
   fHistPtITSMIoneSPDInAccP->SetLineColor(15);
   fHistPtITSMIoneSPDInAccP->Draw("same");
-  fHistPtITSTPCselP->Divide(fHistPtITSTPCselP,fHistPtTPCInAccP,1,1,"B");
+  /* fHistPtITSTPCselP->Divide(fHistPtITSTPCselP,fHistPtTPCInAccP,1,1,"B");
   fHistPtITSTPCselP->SetLineColor(kAzure+1);
   fHistPtITSTPCselP->Draw("same");
-  fHistPtITSMIge2InAccP->Draw("same");
+  fHistPtITSMIge2InAccP->Draw("same"); */
   l3->Draw();
   c5a->cd(2);
   fHistPtITSMIge2InAccS->SetMaximum(1.5);
@@ -1001,10 +1064,16 @@ Bool_t PlotITSTrackingHists(TString fname="ITS.Performance.root",
   fHistPtITSMIge2InAccS->SetTitle("Fraction of prolonged tracks with N ITS points");
   fHistPtITSMIge2InAccS->SetYTitle("ITS+TPC / TPC");
   fHistPtITSMIge2InAccS->Divide(fHistPtITSMIge2InAccS,fHistPtTPCInAccS,1,1,"B");
+  fHistPtITSMIge2InAccS->SetLineColor(1);
   fHistPtITSMIge2InAccS->Draw();
   fHistPtITSMI6InAccS->Divide(fHistPtITSMI6InAccS,fHistPtTPCInAccS,1,1,"B");
   fHistPtITSMI6InAccS->SetLineColor(2);
   fHistPtITSMI6InAccS->Draw("same");
+  if(upgrade) {
+    fHistPtITSMI7InAccS->Divide(fHistPtITSMI7InAccS,fHistPtTPCInAccS,1,1,"B");
+    fHistPtITSMI7InAccS->SetLineColor(kOrange);
+    fHistPtITSMI7InAccS->Draw("same");
+  }
   fHistPtITSMI5InAccS->Divide(fHistPtITSMI5InAccS,fHistPtTPCInAccS,1,1,"B");
   fHistPtITSMI5InAccS->SetLineColor(3);
   fHistPtITSMI5InAccS->Draw("same");
@@ -1023,10 +1092,10 @@ Bool_t PlotITSTrackingHists(TString fname="ITS.Performance.root",
   fHistPtITSMIoneSPDInAccS->Divide(fHistPtITSMIoneSPDInAccS,fHistPtTPCInAccS,1,1,"B");
   fHistPtITSMIoneSPDInAccS->SetLineColor(15);
   fHistPtITSMIoneSPDInAccS->Draw("same");
-  fHistPtITSTPCselS->Divide(fHistPtITSTPCselS,fHistPtTPCInAccS,1,1,"B");
+  /* fHistPtITSTPCselS->Divide(fHistPtITSTPCselS,fHistPtTPCInAccS,1,1,"B");
   fHistPtITSTPCselS->SetLineColor(kAzure+1);
   fHistPtITSTPCselS->Draw("same");
-  fHistPtITSMIge2InAccS->Draw("same");
+  fHistPtITSMIge2InAccS->Draw("same"); */
   l3->Draw();
 
 
index 24e6b06d74e3388ca03863df2390e6de8adb0db2..60e95187735535a9ac58c9986d6d1ac109c0b428 100644 (file)
@@ -5,10 +5,10 @@ void PlotITSTrackingRes(TString filename="ITS.Performance.root",
                        Int_t pdgcode=211,
                        Bool_t useAbsPdg=kTRUE,
                        Bool_t box=kTRUE,
-                       Int_t minITSpoints=6,
+                       Int_t minITSpoints=7,
                        Bool_t nofakes=kTRUE,
                        Bool_t askITSrefit=kTRUE,
-                       Int_t minTPCcls=1
+                       Int_t minTPCcls=70
 {
   //
   // Plot ITS tracking resolutions from ITS.Performance.root
@@ -25,6 +25,13 @@ void PlotITSTrackingRes(TString filename="ITS.Performance.root",
   cout<<"Opening file "<<filename.Data()<<endl;   
     
   TList *list = (TList*)file->Get("cOutputITS");
+  TDirectoryFile *dir=0;
+  if(!list) {
+    dir=(TDirectoryFile*)file->GetDirectory("ITS_Performance");
+    if(dir) list = (TList*)dir->Get("cOutputITS");
+  }
+
+
   TNtuple *ntTracks = (TNtuple*)list->FindObject("fNtupleESDTracks");
 
       
@@ -385,6 +392,7 @@ void PlotITSTrackingRes(TString filename="ITS.Performance.root",
     //printf("%d\n",ITSflag);
     Int_t nITSsel=ITSnCluster(ITSflag);
 
+    //cout<<nITSsel<<"  "<<nITSclsassign<<endl;
 
     if(nTPCcls<=minTPCcls) continue;
 
index 5eba697cc606acd3f6d02fac097252d116b6a569..87e04e89ee689600c4e7e5e6575f86ef31f6b7d0 100644 (file)
@@ -6,10 +6,10 @@ void PlotImpParResVsPt()
   gStyle->SetOptStat(0);\r
 \r
 \r
-  TFile *file1=TFile::Open("QAresults_LHC11h_p2_170593.root","READ");\r
-  TDirectoryFile *dir1=(TDirectoryFile*)file1->GetDirectory("ImpParRes_Performance");\r
+  TFile *file1=TFile::Open("QAresults_merged_195344_195351.root","READ");\r
+  TDirectoryFile *dir1=(TDirectoryFile*)file1->GetDirectory("ImpParRes_Performance_wSDD");\r
   \r
-  //TFile *d0dist1=TFile::Open("/home/luojb/2011/ImpactParameter/OutputFile/PP/LHC10b/ImpParRes.Performance_LHC10bcde_pass2_ESDdiamond_2011_01_26.root","READ");\r
+  //TFile *d0dist1=TFile::Open("/home/luojb/2011/ImpactParameter/OutputFile/PP/LHC10b/ImpParRes.Performance_LHC10bcde_pass2_ESDdiamond_2011_01_26.root","READ"); \r
   \r
   //if (!d0dist1->IsOpen()) return;\r
   \r
@@ -68,7 +68,14 @@ void PlotImpParResVsPt()
     TString getstr;\r
     Int_t jj=i+1;\r
     Double_t j =3.;  \r
+    //\r
+    // CHANGE ONLY HERE TO GET rphi 6 points, rphi SPDany, or z 6 points\r
+    //\r
+    //getstr="d0allpointzSkip_"; \r
     getstr="d0allpointrphiSkip_"; \r
+    //getstr="d0partpointrphiSkip_"; \r
+    //\r
+    //\r
     getstr += jj;\r
     d0AllpointrphiSkip1_[i] = (TH1F*)d0allpointSkip1->FindObject(getstr);//->Clone(getstr+"d0allrphiRec");\r
 \r
index 1f03fda591693ee3d8156ca614ab16b3e6a1958b..951eb86a33c8751ac3efffb1bfaa00ed9a31f36b 100644 (file)
@@ -1,9 +1,9 @@
 class AliAnalysisGrid;
 
-void RunAnalysisITS(TString pluginmode,Int_t firstrun,Int_t lastrun,
+void RunAnalysisITS(TString pluginmode="",Int_t firstrun=177173,Int_t lastrun=177173,
                    Bool_t readMC=kFALSE,
-                   Bool_t runAlign=kTRUE,
-                   Bool_t runITS=kTRUE,
+                   Bool_t runAlign=kFALSE,
+                   Bool_t runITS=kFALSE,
                    Bool_t runImpPar=kTRUE,
                    Bool_t runVtx=kFALSE,
                    Bool_t runSPD=kFALSE) 
@@ -19,9 +19,9 @@ void RunAnalysisITS(TString pluginmode,Int_t firstrun,Int_t lastrun,
   TString analysisMode = "grid"; // "local", "grid", or "proof" (not yet)
 
   Long64_t nentries=1000000000000000,firstentry=0;
-  Bool_t useAlienPlugin=kTRUE;
-  Bool_t uselibPWGPP=kFALSE;
-  TString loadMacroPath="../../";
+  Bool_t useAlienPlugin=kFALSE;
+  Bool_t uselibPWGPP=kTRUE;
+  TString loadMacroPath="./";
   Bool_t readHLT=kFALSE;
   //
 
@@ -99,14 +99,14 @@ void RunAnalysisITS(TString pluginmode,Int_t firstrun,Int_t lastrun,
     taskName="AddTaskPerformanceITS.C"; 
     taskName.Prepend(loadMacroPath.Data());
     gROOT->LoadMacro(taskName.Data());
-    AliAnalysisTaskITSTrackingCheck *itsTask = AddTaskPerformanceITS(readMC,kFALSE,kFALSE);  
+    AliAnalysisTaskITSTrackingCheck *itsTask = AddTaskPerformanceITS(readMC,kFALSE,kFALSE,0,1000000,1);  
   }
   if(runImpPar) {
     if(!uselibPWGPP) gROOT->LoadMacro("AliAnalysisTaskSEImpParRes.cxx++g");
     taskName="AddTaskImpParRes.C"; 
     taskName.Prepend(loadMacroPath.Data());
     gROOT->LoadMacro(taskName.Data());
-    AliAnalysisTaskSEImpParRes *d0Task = AddTaskImpParRes(readMC,-1,kFALSE);  
+    AliAnalysisTaskSEImpParRes *d0Task = AddTaskImpParRes(readMC,-1,kFALSE,kFALSE,0,1000000,0);  
   }
   if(runVtx) {
     if(!uselibPWGPP) gROOT->LoadMacro("AliAnalysisTaskVertexESD.cxx++g");
@@ -135,7 +135,7 @@ void RunAnalysisITS(TString pluginmode,Int_t firstrun,Int_t lastrun,
   // Apply the event selection
   gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskPhysicsSelection.C");
   Bool_t bkgRej=kTRUE;
-  AliPhysicsSelectionTask *physSelTask = AddTaskPhysicsSelection(readMC,bkgRej);
+  //AliPhysicsSelectionTask *physSelTask = AddTaskPhysicsSelection(readMC,bkgRej);
   
 
   //