]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
changes by Simone Schuchmann
authorjotwinow <jotwinow@f7af4fe6-9843-0410-8265-dc069ae4e863>
Sun, 25 Jul 2010 14:57:06 +0000 (14:57 +0000)
committerjotwinow <jotwinow@f7af4fe6-9843-0410-8265-dc069ae4e863>
Sun, 25 Jul 2010 14:57:06 +0000 (14:57 +0000)
PWG1/TPC/AliPerformancePtCalib.cxx
PWG1/TPC/AliPerformancePtCalib.h
PWG1/TPC/AliPerformancePtCalibMC.cxx
PWG1/TPC/AliPerformancePtCalibMC.h

index cf19c60e961bf60b3019a453eacfff0c52e664da..b0ceb03e9708e219a2e9eeff08ba19c40cdf873d 100755 (executable)
@@ -264,7 +264,7 @@ void AliPerformancePtCalib::Init()
    fList = new TList();
    // init folder
    fAnalysisFolder = CreateFolder("folderPt_TPC","Analysis Pt Resolution Folder");
-   fList->Add(fAnalysisFolder);
+   
    // Primary Vertex:
    fHistPrimaryVertexPosX       = new TH1F("fHistPrimaryVertexPosX", "Primary Vertex Position X;Primary Vertex Position X (cm);Events",100,-0.5,0.5);
    fList->Add(fHistPrimaryVertexPosX);
@@ -280,19 +280,19 @@ void AliPerformancePtCalib::Init()
  
    // momentum histos
    //pt shift 0 only needed if shift in 1/pt is applied
-   fHistPtShift0 = new TH1F("fHistPtShift0","1/pt dN/pt vs. pt of ESD track  ",800,-20.0,20.0);
+   fHistPtShift0 = new TH1F("fHistPtShift0","1/pt dN/pt vs. pt of ESD track  ",800,-40.0,40.0);
    fList->Add(fHistPtShift0);
  
    // THnSparse for 1/pt and pt spectra vs angles
    const   Int_t invPtDims = 4;
-   fMaxPhi = 6.5;
+   fMaxPhi = 6.52;
    fMinPhi = 0.0;
    fMaxTheta = 3.0;
    fMinTheta = 0.0;
    
-   Double_t xminInvPt[invPtDims] = {-4.5,-20.0,fMinTheta,fMinPhi};
-   Double_t xmaxInvPt[invPtDims] = {4.5,20.0,fMaxTheta,fMaxPhi};
-   Int_t  binsInvPt[invPtDims] = {900,800,300,325};
+   Double_t xminInvPt[invPtDims] = {-4.5,-40.0,fMinTheta,fMinPhi};
+   Double_t xmaxInvPt[invPtDims] = {4.5,40.0,fMaxTheta,fMaxPhi};
+   Int_t  binsInvPt[invPtDims] = {450,400,150,163};
 
   
    fHistInvPtPtThetaPhi = new THnSparseF("fHistInvPtPtThetaPhi","1/pt vs pt vs #theta vs #phi ",invPtDims,binsInvPt,xminInvPt,xmaxInvPt);
@@ -314,7 +314,7 @@ void AliPerformancePtCalib::Init()
 
   
    // esd track cuts  
-   fESDTrackCuts =NULL;//neu
+   fESDTrackCuts =NULL;
 }
 
 //________________________________________________________________________
@@ -327,7 +327,7 @@ void AliPerformancePtCalib::SetPtShift(const Double_t shiftVal ) {
 //________________________________________________________________________
 void AliPerformancePtCalib::Exec(AliMCEvent* const /*mcEvent*/, AliESDEvent *const esdEvent, AliESDfriend * const /*esdFriend*/, const Bool_t /*bUseMC*/, const Bool_t /*bUseESDfriend*/)
 {
-   //exec: read esd or tpc tracksGetRunNumber
+   //exec: read esd or tpc
 
    if(!fESDTrackCuts) Printf("no esd track cut");
    
@@ -380,7 +380,7 @@ void AliPerformancePtCalib::Exec(AliMCEvent* const /*mcEvent*/, AliESDEvent *con
       if(fOptTPC){ //TPC tracks
         const AliExternalTrackParam *tpcTrack = esdTrack->GetTPCInnerParam(); 
         if(!tpcTrack) continue;
-        if(fabs(tpcTrack->Eta())> fEtaAcceptance) continue;
+        if(fabs(tpcTrack->Eta())>= fEtaAcceptance) continue;
       
         Double_t signedPt = tpcTrack->GetSignedPt();
         Double_t invPt = 0.0;
index f6cc2fc9a3ef0b4a36bb958e8a02066e6358d7d4..b88150a043ae3c3342b4d55819259e086eccaec8 100755 (executable)
@@ -58,15 +58,11 @@ public:
 
    // Get analysis folder
    virtual TFolder* GetAnalysisFolder() const {return fAnalysisFolder;}
-   
-   Bool_t AddTPCcuts(const AliESDtrack *esdTrack);// applies TPC cuts
-   Bool_t AddITScuts(const AliESDtrack *esdTrack);// applies ITS cuts
-   Bool_t AddDCAcuts(const AliESDtrack *esdTrack);// applies DCA cuts
  
    void SetReadTPCTracks(const Bool_t readTPC)        {fOptTPC   = readTPC;}//read only ESD tracks
    void SetEtaRange(const Double_t eta)               {fEtaAcceptance =  eta ;}//sets eta window
   
-   void SetAliESDtrackCuts( AliESDtrackCuts* esdTrackCuts) { fESDTrackCuts = esdTrackCuts;fESDcuts=kTRUE;}//neu
+   void SetAliESDtrackCuts( AliESDtrackCuts* esdTrackCuts) { fESDTrackCuts = esdTrackCuts;fESDcuts=kTRUE;}//esd track cuts
 
 
    void SetPtShift(const Double_t shiftVal); // set user defined shift in charge/pt
index 60cb5a86d5c25afacffafc0050442b05ba65a07d..3da01a4aa66cb53cab12e901ba9e9b7a18e262d4 100755 (executable)
@@ -319,7 +319,7 @@ void AliPerformancePtCalibMC::Init()
  
    // init folder
    fAnalysisFolder = CreateFolder("folderPt_TPC","Analysis Pt Resolution Folder");
-   fList->Add(fAnalysisFolder);
+  
    // Primary Vertex:
    fHistPrimaryVertexPosX       = new TH1F("fHistPrimaryVertexPosX", "Primary Vertex Position X;Primary Vertex Position X (cm);Events",100,-0.5,0.5);
    fList->Add(fHistPrimaryVertexPosX);
@@ -338,13 +338,13 @@ void AliPerformancePtCalibMC::Init()
    fHistPtShift0   = new TH1F("fHistPtShift0","1/pt dN/pt vs. pt of ESD track  ",800,-20.0,20.0);
    fList->Add(fHistPtShift0);
    const   Int_t invPtDims = 4;
-   fMaxPhi=6.5;
+   fMaxPhi=6.52;
    fMinPhi=0.0;
    fMaxTheta=3.0;
    fMinTheta=0.0;
    Double_t xminInvPt[invPtDims] = {-4.5,-20.0,fMinTheta,fMinPhi};
    Double_t xmaxInvPt[invPtDims] = {4.5,20.0,fMaxTheta,fMaxPhi};
-   Int_t  binsInvPt[invPtDims] = {900,800,300,325};
+   Int_t  binsInvPt[invPtDims] = {450,400,150,163};
    
    fHistInvPtPtThetaPhi = new THnSparseF("fHistInvPtPtThetaPhi","1/pt vs pt vs #theta vs #phi ",invPtDims,binsInvPt,xminInvPt,xmaxInvPt);
    fList->Add(fHistInvPtPtThetaPhi);
@@ -360,21 +360,21 @@ void AliPerformancePtCalibMC::Init()
    fList->Add(fHistTPCMomentaNegPt);
    
    // momentum test histos MC
-   fHistTPCMomentaPosInvPtMC = new TH2F("fHistTPCMomentaPosInvPtMC","TPC-MC of 1/pt vs global ESD-MC of 1/pt pos",500, -10.0, 10.0,500, -10.0,10.0);
+   fHistTPCMomentaPosInvPtMC = new TH2F("fHistTPCMomentaPosInvPtMC","TPC-MC of 1/pt vs global ESD-MC of 1/pt pos",250, -5.0, 5.0,250, -5.0,5.0);
    fList->Add(fHistTPCMomentaPosInvPtMC);
-   fHistTPCMomentaNegInvPtMC = new TH2F("fHistTPCMomentaNegInvPtMC","TPC-MC of 1/pt vs global ESD-MC 1/pt neg",500, -10.0, 10.0,500, -10.0, 10.0);
+   fHistTPCMomentaNegInvPtMC = new TH2F("fHistTPCMomentaNegInvPtMC","TPC-MC of 1/pt vs global ESD-MC 1/pt neg",250, -5.0, 5.0,250, -5.0, 5.0);
    fList->Add(fHistTPCMomentaNegInvPtMC);
-   fHistTPCMomentaPosPtMC    = new TH2F("fHistTPCMomentaPosPtMC","TPC-MC of pt vs global ESD-MC of pt pos",600,-4.0,44.0,600,-4.0,44.0);
+   fHistTPCMomentaPosPtMC    = new TH2F("fHistTPCMomentaPosPtMC","(TPC-MC)/MC^2  of pt vs global (ESD-MC)/MC^2 of pt pos",200,-2.0,2.0,200,-2.0,2.0);
    fList->Add(fHistTPCMomentaPosPtMC);
-   fHistTPCMomentaNegPtMC    = new TH2F("fHistTPCMomentaNegPtMC","TPC-MC of pt vs global ESD-MC of pt neg",600,-4.0,44.0,600,-4.0,44.0);
+   fHistTPCMomentaNegPtMC    = new TH2F("fHistTPCMomentaNegPtMC","(TPC-MC/)MC^2  of pt vs global (ESD-MC)/MC^2  of pt neg",200,-2.0,2.0,200,-2.0,2.0);
    fList->Add(fHistTPCMomentaNegPtMC);
-   fHistESDMomentaPosInvPtMC = new TH1F("fHistESDMomentaPosInvPtMC","ESD-MC of 1/pt ",500, -10.0, 10.0);
+   fHistESDMomentaPosInvPtMC = new TH1F("fHistESDMomentaPosInvPtMC","ESD-MC of 1/pt pos ",200, -2.0, 2.0);
    fList->Add(fHistESDMomentaPosInvPtMC);
-   fHistESDMomentaNegInvPtMC = new TH1F("fHistESDMomentaNegInvPtMC","ESD-MC of 1/pt",500, -10.0, 10.0);
+   fHistESDMomentaNegInvPtMC = new TH1F("fHistESDMomentaNegInvPtMC","ESD-MC of 1/pt neg",200, -2.0, 2.0);
    fList->Add(fHistESDMomentaNegInvPtMC);
-   fHistESDMomentaPosPtMC    = new TH1F("fHistESDMomentaPosPtMC","ESD-MC of pt ",600,-4.0,44.0);
+   fHistESDMomentaPosPtMC    = new TH1F("fHistESDMomentaPosPtMC","(ESD-MC)/MC^2 of pt pos",200,-2.0,2.0);
    fList->Add(fHistESDMomentaPosPtMC);
-   fHistESDMomentaNegPtMC    = new TH1F("fHistESDMomentaNegPtMC","ESD-MC of pt ",600,-4.0,44.0);
+   fHistESDMomentaNegPtMC    = new TH1F("fHistESDMomentaNegPtMC","(ESD-MC)/MC^2 of pt neg",200,-2.0,2.0);
    fList->Add(fHistESDMomentaNegPtMC);
 
    // MC only info
@@ -383,17 +383,17 @@ void AliPerformancePtCalibMC::Init()
 
  
    //correlation histos MC ESD or TPC
-   fHistInvPtMCESD  = new TH2F("fHistInvPtMCESD","inv pt ESD vs MC",900, 0.0, 9.0,900, 0.0, 9.0);
+   fHistInvPtMCESD  = new TH2F("fHistInvPtMCESD","inv pt ESD vs MC",450, -4.5, 4.5,450, -4.5, 4.5);
    fList->Add(fHistInvPtMCESD);
-   fHistPtMCESD     = new TH2F("fHistPtMCESD"," pt ESD vs MC",300, 0.0, 15.0,300, 0.0, 15.0);
+   fHistPtMCESD     = new TH2F("fHistPtMCESD"," pt ESD vs MC",500, 0.0, 50.0,500, 0.0, 50.0);
    fList->Add(fHistPtMCESD);
-   fHistInvPtMCTPC  = new TH2F("fHistInvPtMCTPC","inv pt TPC vs MC",900, 0.0, 9.0,900, 0.0, 9.0);
+   fHistInvPtMCTPC  = new TH2F("fHistInvPtMCTPC","inv pt TPC vs MC",450, -4.5, 4.5,450, -4.5, 4.5);
    fList->Add(fHistInvPtMCTPC);
-   fHistPtMCTPC     = new TH2F("fHistPtMCTPC"," pt TPC vs MC",300, 0.0, 15.0,300, 0.0, 15.0);
+   fHistPtMCTPC     = new TH2F("fHistPtMCTPC"," pt TPC vs MC",500, 0.0, 50.0,500, 0.0,50.0);
    fList->Add(fHistPtMCTPC);
-   fHistMomresMCESD = new TH2F("fHistMomresMCESD"," (pt ESD - pt MC)/ptMC vs pt MC",300, 0.0, 15.0,400, -2.0, 2.0);
-   fList->Add(fHistMomresMCESD);
-   fHistMomresMCTPC = new TH2F("fHistMomresMCTPC"," (pt TPC - pt MC)/ptMC vs pt MC",300, 0.0, 15.0,400, -2.0, 2.0);
+   fHistMomresMCESD = new TH2F("fHistMomresMCESD"," (pt ESD - pt MC)/ptMC vs pt MC",500, 0.0, 50.0,200, -2.0, 2.0);
+   fList->Add(fHistMomresMCESD); 
+   fHistMomresMCTPC = new TH2F("fHistMomresMCTPC"," (pt TPC - pt MC)/ptMC vs pt MC",500, 0.0, 50.0,200, -2.0, 2.0);
    fList->Add(fHistMomresMCTPC);
 
 
@@ -402,7 +402,7 @@ void AliPerformancePtCalibMC::Init()
    fList->Add(fHistUserPtShift);
    
    // esd track cuts  
-   fESDTrackCuts = new AliESDtrackCuts("AliESDtrackCuts");
+   fESDTrackCuts =NULL;
    
   
 }
@@ -427,10 +427,7 @@ void AliPerformancePtCalibMC::Exec(AliMCEvent* const mcEvent, AliESDEvent *const
       return;
    }
 
-   if (!(esdEvent->GetNumberOfTracks())) {
-      Printf(" PtCalibMC task: There is no track in this event");
-      return;
-   }
    fHistTrackMultiplicity->Fill(esdEvent->GetNumberOfTracks());
 
    if (!mcEvent) {
@@ -501,20 +498,20 @@ void AliPerformancePtCalibMC::Exec(AliMCEvent* const mcEvent, AliESDEvent *const
       Double_t momAngMC[4] = {signMC*(fabs(invPtMC)),signMC*(fabs(mcPt)),thetaMC,phiMC};
 
       // fill only if MC track is in eta acceptance of TPC in order to be compareable to TPC tracks
-      if(fabs( partMC->Eta())<= fEtaAcceptance) {
+      if(fabs( partMC->Eta())< fEtaAcceptance) {
         fHistInvPtPtThetaPhiMC->Fill(momAngMC);
         
         //correlation histos MC ESD
-        fHistInvPtMCESD->Fill(fabs(invPtMC),fabs(1.0/ptESD));
+        fHistInvPtMCESD->Fill(signMC*(fabs(invPtMC)),1.0/ptESD);
         fHistPtMCESD->Fill(fabs(mcPt),fabs(ptESD));
       }
-
+      
       // fill histos TPC or ESD
       if(fOptTPC){
         //TPC tracks and MC tracks
         const AliExternalTrackParam *tpcTrack = esdTrack->GetTPCInnerParam(); 
         if(!tpcTrack) continue;
-        if(fabs(tpcTrack->Eta())>  fEtaAcceptance) continue;
+        if(fabs(tpcTrack->Eta())>=  fEtaAcceptance) continue;
       
         Double_t signedPt = tpcTrack->GetSignedPt();
         Double_t invPt = 0.0;
@@ -530,14 +527,14 @@ void AliPerformancePtCalibMC::Exec(AliMCEvent* const mcEvent, AliESDEvent *const
            }
 
 
-            Double_t theta = tpcTrack->Theta();
-            Double_t phi = tpcTrack->Phi();
+           Double_t theta = tpcTrack->Theta();
+           Double_t phi = tpcTrack->Phi();
 
            Double_t momAng[4] = {invPt,signedPt,theta,phi};
            fHistInvPtPtThetaPhi->Fill(momAng);
 
            //correlation histos MC TPC
-           fHistInvPtMCTPC->Fill(fabs(invPtMC),fabs(invPt));
+           fHistInvPtMCTPC->Fill(signMC*(fabs(invPtMC)),invPt);
            fHistPtMCTPC->Fill(fabs(mcPt),fabs(signedPt));
        
            //compare to MC info
@@ -546,7 +543,7 @@ void AliPerformancePtCalibMC::Exec(AliMCEvent* const mcEvent, AliESDEvent *const
            Double_t  invPtDiffESD = fabs(1.0/ptESD)-1.0/fabs(mcPt);
            Double_t  invPtDiffTPC = fabs(invPt)-1.0/fabs(mcPt);
            Double_t  pTPC  = tpcTrack->GetP();
-       
+                 
            if(esdTrack->GetSign()>0){//compare momenta ESD track and TPC track
               fHistTPCMomentaPosP->Fill(fabs(pESD),fabs(pTPC));
               fHistTPCMomentaPosPt->Fill(fabs(ptESD),fabs(signedPt));
@@ -559,53 +556,53 @@ void AliPerformancePtCalibMC::Exec(AliMCEvent* const mcEvent, AliESDEvent *const
               fHistTPCMomentaNegInvPtMC->Fill(invPtDiffESD,invPtDiffTPC);
               fHistTPCMomentaNegPtMC->Fill(ptDiffESD,ptDiffTPC);
            }
-           fHistMomresMCESD->Fill((fabs(mcPt)-fabs(ptESD))/fabs(mcPt),fabs(mcPt));
-           fHistMomresMCTPC->Fill((fabs(mcPt)-fabs(signedPt))/fabs(mcPt),fabs(mcPt));
+           fHistMomresMCESD->Fill(fabs(mcPt),(fabs(mcPt)-fabs(ptESD))/fabs(mcPt));
+           fHistMomresMCTPC->Fill(fabs(mcPt),(fabs(mcPt)-fabs(signedPt))/fabs(mcPt));
            count++;
         }
         else continue;
       }
    
     else{
-        // ESD tracks and MC tracks
-        if(fabs(esdTrack->Eta())> fEtaAcceptance) continue;
-        Double_t invPt = 0.0;
+ else{
+    // ESD tracks and MC tracks
+    if(fabs(esdTrack->Eta())>= fEtaAcceptance) continue;
+    Double_t invPt = 0.0;
       
-        if(ptESD) {
-           invPt = 1.0/ptESD; 
-           fHistPtShift0->Fill(ptESD);//changed
+    if(ptESD) {
+       invPt = 1.0/ptESD; 
+       fHistPtShift0->Fill(ptESD);
        
-           if(fShift){Printf("user shift of momentum SET to non zero value!");
-              invPt += fDeltaInvP; //shift momentum for tests
-              if(invPt) ptESD = 1.0/invPt; 
-              else continue;
-           }
-
-           Double_t theta = esdTrack->Theta();
-           Double_t phi = esdTrack->Phi();
-
-           Double_t momAng[4] = {invPt,ptESD,theta,phi};
-           fHistInvPtPtThetaPhi->Fill(momAng);
-
-           //differences MC ESD tracks
-           Double_t ptDiffESD = (fabs(ptESD)-fabs(mcPt))/pow(mcPt,2);
-           Double_t invPtdiffESD = fabs(1.0/ptESD)-1.0/fabs(mcPt);
-           if(esdTrack->GetSign()>0){   
-              fHistESDMomentaPosInvPtMC->Fill(invPtdiffESD);
-              fHistESDMomentaPosPtMC->Fill(ptDiffESD);
-           }
-           else{
-              fHistESDMomentaNegInvPtMC->Fill(invPtdiffESD);
-              fHistESDMomentaNegPtMC->Fill(ptDiffESD);
-           }   
+       if(fShift){Printf("user shift of momentum SET to non zero value!");
+         invPt += fDeltaInvP; //shift momentum for tests
+         if(invPt) ptESD = 1.0/invPt; 
+         else continue;
+       }
+
+       Double_t theta = esdTrack->Theta();
+       Double_t phi = esdTrack->Phi();
+
+       Double_t momAng[4] = {invPt,ptESD,theta,phi};
+       fHistInvPtPtThetaPhi->Fill(momAng);
+
+       //differences MC ESD tracks
+       Double_t ptDiffESD = (fabs(ptESD)-fabs(mcPt))/pow(mcPt,2);
+       Double_t invPtdiffESD = fabs(1.0/ptESD)-1.0/fabs(mcPt);
+       if(esdTrack->GetSign()>0){   
+         fHistESDMomentaPosInvPtMC->Fill(invPtdiffESD);
+         fHistESDMomentaPosPtMC->Fill(ptDiffESD);
+       }
+       else{
+         fHistESDMomentaNegInvPtMC->Fill(invPtdiffESD);
+         fHistESDMomentaNegPtMC->Fill(ptDiffESD);
+       }       
        
-           fHistMomresMCESD->Fill((fabs(mcPt)-fabs(ptESD))/fabs(mcPt),fabs(mcPt));
-           count++;
-        }
     }
-   }
+       fHistMomresMCESD->Fill(fabs(mcPt),(fabs(mcPt)-fabs(ptESD))/fabs(mcPt));
+       count++;
+    }
+ }
+}
     
-   fHistTrackMultiplicityCuts->Fill(count);
+fHistTrackMultiplicityCuts->Fill(count);
   
 }    
 
index 754cb4811e4970813c020d670d7f230fe3041652..bc7f6c545eb5ebc14be381e22f8c0137bdcdf434 100755 (executable)
@@ -63,7 +63,7 @@ public:
    void SetReadTPCTracks(const Bool_t readTPC)        {fOptTPC   = readTPC;}//read only ESD tracks
    void SetEtaRange(const Double_t eta)               {fEtaAcceptance =  eta ;}//sets eta window
    
-   void SetAliESDtrackCuts( AliESDtrackCuts* esdTrackCuts) { fESDTrackCuts = esdTrackCuts;fESDcuts=kTRUE;}//neu
+   void SetAliESDtrackCuts( AliESDtrackCuts* esdTrackCuts) { fESDTrackCuts = esdTrackCuts;fESDcuts=kTRUE;}//esd track cuts
     
    //user defined shift in charge/pt
    void SetPtShift(const Double_t shiftVal); //sets user defined shift in charge/pt