]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGLF/SPECTRA/PiKaPr/TestAOD/AliAnalysisTaskSpectraAOD.cxx
- Patch for centrality selection applied - signal for reconstructedID added
[u/mrichter/AliRoot.git] / PWGLF / SPECTRA / PiKaPr / TestAOD / AliAnalysisTaskSpectraAOD.cxx
index 07575e745bf06bc3af14affa422d5fc6543aaa71..74ce108b7fb4d9e3949052c931237545241d897f 100644 (file)
@@ -43,6 +43,8 @@
 #include "AliPIDResponse.h"\r
 #include "AliStack.h"\r
 #include "AliSpectraAODPID.h"\r
+#include <TMCProcess.h>\r
+\r
 #include <iostream>\r
 \r
 \r
@@ -86,12 +88,12 @@ void AliAnalysisTaskSpectraAOD::UserCreateOutputObjects()
 void AliAnalysisTaskSpectraAOD::UserExec(Option_t *)\r
 {\r
   // main event loop\r
+  Printf("ALIVE");\r
   fAOD = dynamic_cast<AliAODEvent*>(fInputEvent);\r
   if (strcmp(fAOD->ClassName(), "AliAODEvent"))\r
     {\r
       AliFatal("Not processing AODs");\r
     }\r
-    \r
   //check on centrality distribution\r
   fHistMan->GetPtHistogram("CentCheck")->Fill(fAOD->GetCentrality()->GetCentralityPercentile("V0M"),fAOD->GetHeader()->GetCentralityP()->GetCentralityPercentileUnchecked("V0M"));\r
   \r
@@ -113,7 +115,7 @@ void AliAnalysisTaskSpectraAOD::UserExec(Option_t *)
        {\r
          AliAODMCParticle *partMC = (AliAODMCParticle*) arrayMC->At(iMC);\r
          if(!partMC->Charge()) continue;//Skip neutrals\r
-         if(TMath::Abs(partMC->Eta()) > fTrackCuts->GetEta()){//charged hadron are filled inside the eta acceptance\r
+         if(TMath::Abs(partMC->Eta()) < fTrackCuts->GetEta()){//charged hadron are filled inside the eta acceptance\r
            fHistMan->GetPtHistogram(kHistPtGen)->Fill(partMC->Pt(),partMC->IsPhysicalPrimary());\r
          }\r
          //rapidity cut\r
@@ -138,21 +140,24 @@ void AliAnalysisTaskSpectraAOD::UserExec(Option_t *)
     // if ((qPos>fTrackCuts->GetQvecMin() && qPos<fTrackCuts->GetQvecMax() && track->Eta()<0) || (qNeg>fTrackCuts->GetQvecMin() && qNeg<fTrackCuts->GetQvecMax() && track->Eta()>=0)){\r
     \r
     //calculate DCA for AOD track\r
-    Double_t d[2], covd[3];\r
-    AliAODTrack* track_clone=(AliAODTrack*)track->Clone("track_clone"); // need to clone because PropagateToDCA updates the track parameters\r
-    Bool_t isDCA = track_clone->PropagateToDCA(fAOD->GetPrimaryVertex(),fAOD->GetMagneticField(),9999.,d,covd);\r
-    delete track_clone;\r
-    if(!isDCA)d[0]=-999;\r
-    \r
-    fHistMan->GetPtHistogram(kHistPtRec)->Fill(track->Pt(),d[0]);  // PT histo\r
+    Double_t dca=track->DCA();\r
+    if(dca==-999.){// track->DCA() does not work in old AOD production\r
+      Double_t d[2], covd[3];\r
+      AliAODTrack* track_clone=(AliAODTrack*)track->Clone("track_clone"); // need to clone because PropagateToDCA updates the track parameters\r
+      Bool_t isDCA = track_clone->PropagateToDCA(fAOD->GetPrimaryVertex(),fAOD->GetMagneticField(),9999.,d,covd);\r
+      delete track_clone;\r
+      if(!isDCA)d[0]=-999.;\r
+      dca=d[0];\r
+    }\r
+    fHistMan->GetPtHistogram(kHistPtRec)->Fill(track->Pt(),dca);  // PT histo\r
     \r
     // get identity and charge\r
-    Int_t idRec  = fPID->GetParticleSpecie(track, fTrackCuts);\r
+    Int_t idRec  = fPID->GetParticleSpecie(fHistMan,track, fTrackCuts);\r
     \r
     Int_t charge = track->Charge() > 0 ? kChPos : kChNeg;\r
     \r
     // Fill histograms, only if inside y and nsigma acceptance\r
-    if(idRec != kSpUndefined && fTrackCuts->CheckYCut ((AODParticleSpecies_t)idRec))fHistMan->GetHistogram2D(kHistPtRecSigma,idRec,charge)->Fill(track->Pt(),d[0]);\r
+    if(idRec != kSpUndefined && fTrackCuts->CheckYCut ((AODParticleSpecies_t)idRec))fHistMan->GetHistogram2D(kHistPtRecSigma,idRec,charge)->Fill(track->Pt(),dca);\r
     //can't put a continue because we still have to fill allcharged primaries, done later\r
     \r
     /* MC Part */\r
@@ -174,11 +179,15 @@ void AliAnalysisTaskSpectraAOD::UserExec(Option_t *)
          codemoth = TMath::Abs(moth->GetPdgCode());\r
          mfl = Int_t (codemoth/ TMath::Power(10, Int_t(TMath::Log10(codemoth))));\r
        }\r
+       //Int_t uniqueID = partMC->GetUniqueID();\r
+       cout<<"uniqueID: "<<partMC->GetUniqueID()<<"       "<<kPDecay<<endl;\r
+       cout<<"status: "<<partMC->GetStatus()<<"       "<<kPDecay<<endl;\r
+       // if(uniqueID == kPDecay)Printf("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");\r
        if(mfl==3) isSecondaryWeak     = kTRUE; // add if(partMC->GetStatus() & kPDecay)? FIXME\r
        else       isSecondaryMaterial = kTRUE;\r
       }\r
       \r
-      if (isPrimary)fHistMan->GetPtHistogram(kHistPtRecPrimary)->Fill(track->Pt(),d[0]);  // PT histo of primaries\r
+      if (isPrimary)fHistMan->GetPtHistogram(kHistPtRecPrimary)->Fill(track->Pt(),dca);  // PT histo of primaries\r
       \r
       //nsigma cut (reconstructed nsigma)\r
       if(idRec == kSpUndefined) continue;\r
@@ -191,33 +200,33 @@ void AliAnalysisTaskSpectraAOD::UserExec(Option_t *)
       //if(TMath::Abs(partMC->Y())   > fTrackCuts->GetY()  ) continue;     // FIXME: do we need a rapidity cut on the generated?\r
       // Fill histograms for primaries\r
       \r
-      if (idRec == idGen) fHistMan->GetHistogram2D(kHistPtRecTrue,  idGen, charge)->Fill(track->Pt(),d[0]); \r
+      if (idRec == idGen) fHistMan->GetHistogram2D(kHistPtRecTrue,  idGen, charge)->Fill(track->Pt(),dca); \r
       \r
       if (isPrimary) {\r
-       fHistMan                    ->GetHistogram2D(kHistPtRecSigmaPrimary, idRec, charge)->Fill(track->Pt(),d[0]); \r
+       fHistMan                    ->GetHistogram2D(kHistPtRecSigmaPrimary, idRec, charge)->Fill(track->Pt(),dca); \r
        if(idGen != kSpUndefined) {\r
-         fHistMan                    ->GetHistogram2D(kHistPtRecPrimary,      idGen, charge)->Fill(track->Pt(),d[0]);\r
-         if (idRec == idGen) fHistMan->GetHistogram2D(kHistPtRecTruePrimary,  idGen, charge)->Fill(track->Pt(),d[0]); \r
+         fHistMan                    ->GetHistogram2D(kHistPtRecPrimary,      idGen, charge)->Fill(track->Pt(),dca);\r
+         if (idRec == idGen) fHistMan->GetHistogram2D(kHistPtRecTruePrimary,  idGen, charge)->Fill(track->Pt(),dca); \r
        }\r
       }\r
       //25th Apr - Muons are added to Pions -- FIXME\r
       if ( partMC->PdgCode() == 13 && idRec == kSpPion) { \r
-       fHistMan->GetPtHistogram(kHistPtRecTrueMuonPlus)->Fill(track->Pt(),d[0]); \r
+       fHistMan->GetPtHistogram(kHistPtRecTrueMuonPlus)->Fill(track->Pt(),dca); \r
        if(isPrimary)\r
-         fHistMan->GetPtHistogram(kHistPtRecTruePrimaryMuonPlus)->Fill(track->Pt(),d[0]); \r
+         fHistMan->GetPtHistogram(kHistPtRecTruePrimaryMuonPlus)->Fill(track->Pt(),dca); \r
       }\r
       if ( partMC->PdgCode() == -13 && idRec == kSpPion) { \r
-       fHistMan->GetPtHistogram(kHistPtRecTrueMuonMinus)->Fill(track->Pt(),d[0]); \r
+       fHistMan->GetPtHistogram(kHistPtRecTrueMuonMinus)->Fill(track->Pt(),dca); \r
        if (isPrimary) {\r
-         fHistMan->GetPtHistogram(kHistPtRecTruePrimaryMuonMinus)->Fill(track->Pt(),d[0]); \r
+         fHistMan->GetPtHistogram(kHistPtRecTruePrimaryMuonMinus)->Fill(track->Pt(),dca); \r
        }\r
       }\r
       \r
       ///..... END FIXME\r
       \r
       // Fill secondaries\r
-      if(isSecondaryWeak    )  fHistMan->GetHistogram2D(kHistPtRecSigmaSecondaryWeakDecay, idRec, charge)->Fill(track->Pt(),d[0]);\r
-      if(isSecondaryMaterial)  fHistMan->GetHistogram2D(kHistPtRecSigmaSecondaryMaterial , idRec, charge)->Fill(track->Pt(),d[0]);\r
+      if(isSecondaryWeak    )  fHistMan->GetHistogram2D(kHistPtRecSigmaSecondaryWeakDecay, idRec, charge)->Fill(track->Pt(),dca);\r
+      if(isSecondaryMaterial)  fHistMan->GetHistogram2D(kHistPtRecSigmaSecondaryMaterial , idRec, charge)->Fill(track->Pt(),dca);\r
       \r
     }//end if(arrayMC)\r
   } // end loop on tracks\r