]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Fix Gamma calculation^CliFemtoModelGausLCMSFreezeOutGenerator.cxx
authorakisiel <akisiel@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 1 Feb 2010 10:24:05 +0000 (10:24 +0000)
committerakisiel <akisiel@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 1 Feb 2010 10:24:05 +0000 (10:24 +0000)
PWG2/FEMTOSCOPY/AliFemto/AliAnalysisTaskFemto.cxx
PWG2/FEMTOSCOPY/AliFemto/AliAnalysisTaskFemto.h
PWG2/FEMTOSCOPY/AliFemto/AliFemtoBasicEventCut.cxx
PWG2/FEMTOSCOPY/AliFemto/AliFemtoCutMonitorParticleYPt.cxx
PWG2/FEMTOSCOPY/AliFemto/AliFemtoEvent.cxx
PWG2/FEMTOSCOPY/AliFemto/AliFemtoEvent.h
PWG2/FEMTOSCOPY/AliFemto/AliFemtoEventReaderESDChain.cxx
PWG2/FEMTOSCOPY/AliFemto/AliFemtoModelGausLCMSFreezeOutGenerator.cxx

index 912245662ea2a215137acb712ed7ebf9f7d86066..d3e867ddb5504b97e39951e7172ca6d0823f4443 100644 (file)
@@ -241,6 +241,20 @@ void AliAnalysisTaskFemto::Exec(Option_t *) {
          fesdck->SetGenEventHeader(hdh);\r
          fManager->ProcessEvent();\r
        }\r
+      AliFemtoEventReaderStandard* fstd = dynamic_cast<AliFemtoEventReaderStandard *> (fReader);\r
+      if (fstd) \r
+       {\r
+         // Process the event with Kine information\r
+         fstd->SetESDSource(fESD);\r
+         if (mctruth) {\r
+           fstd->SetStackSource(fStack);\r
+           fstd->SetGenEventHeader(hdh);\r
+           fstd->SetInputType(AliFemtoEventReaderStandard::kESDKine);\r
+         }\r
+         else\r
+           fstd->SetInputType(AliFemtoEventReaderStandard::kESD);\r
+         fManager->ProcessEvent();\r
+       }\r
     } \r
 \r
     // Post the output histogram list\r
@@ -279,6 +293,14 @@ void AliAnalysisTaskFemto::Exec(Option_t *) {
          faodc->SetAODSource(fAOD);\r
          fManager->ProcessEvent();\r
        }\r
+       AliFemtoEventReaderStandard* fstd = dynamic_cast<AliFemtoEventReaderStandard *> (fReader);\r
+\r
+       if (fstd) {\r
+         // Process the event\r
+         fstd->SetAODSource(fAOD);\r
+         fstd->SetInputType(AliFemtoEventReaderStandard::kAOD);\r
+         fManager->ProcessEvent();\r
+       }\r
       }\r
     } \r
 \r
@@ -304,13 +326,13 @@ void AliAnalysisTaskFemto:: FinishTaskOutput() {
 //________________________________________________________________________\r
 void AliAnalysisTaskFemto::SetFemtoReaderESD(AliFemtoEventReaderESDChain *aReader)\r
 {\r
-  printf("Selectring Femto reader for ESD\n");\r
+  printf("Selecting Femto reader for ESD\n");\r
   fReader = aReader;\r
 }\r
 //________________________________________________________________________\r
 void AliAnalysisTaskFemto::SetFemtoReaderESDKine(AliFemtoEventReaderESDChainKine *aReader)\r
 {\r
-  printf("Selectring Femto reader for ESD with Kinematics information\n");\r
+  printf("Selecting Femto reader for ESD with Kinematics information\n");\r
   fReader = aReader;\r
 }\r
 //________________________________________________________________________\r
@@ -319,6 +341,11 @@ void AliAnalysisTaskFemto::SetFemtoReaderAOD(AliFemtoEventReaderAODChain *aReade
   printf("Selecting Femto reader for AOD\n");\r
   fReader = aReader;\r
 }\r
+void AliAnalysisTaskFemto::SetFemtoReaderStandard(AliFemtoEventReaderStandard *aReader)\r
+{\r
+  printf("Selecting Standard all-purpose Femto reader\n");\r
+  fReader = aReader;\r
+}\r
 //________________________________________________________________________\r
 void AliAnalysisTaskFemto::SetFemtoManager(AliFemtoManager *aManager)\r
 {\r
@@ -327,13 +354,15 @@ void AliAnalysisTaskFemto::SetFemtoManager(AliFemtoManager *aManager)
   AliFemtoEventReaderESDChain     *tReaderESDChain     = dynamic_cast<AliFemtoEventReaderESDChain *> (aManager->EventReader());\r
   AliFemtoEventReaderESDChainKine *tReaderESDChainKine = dynamic_cast<AliFemtoEventReaderESDChainKine *> (aManager->EventReader());\r
   AliFemtoEventReaderAODChain     *tReaderAODChain     = dynamic_cast<AliFemtoEventReaderAODChain *> (aManager->EventReader());\r
+  AliFemtoEventReaderStandard     *tReaderStandard     = dynamic_cast<AliFemtoEventReaderStandard *> (aManager->EventReader());\r
 \r
-  if ((!tReaderESDChain) && (!tReaderESDChainKine) && (!tReaderAODChain)) {\r
+  if ((!tReaderESDChain) && (!tReaderESDChainKine) && (!tReaderAODChain) && (!tReaderStandard)) {\r
     printf("No AliFemto event reader created. Will not run femto analysis.\n");\r
     return;\r
   }\r
   if (tReaderESDChain) SetFemtoReaderESD(tReaderESDChain);\r
   if (tReaderESDChainKine) SetFemtoReaderESDKine(tReaderESDChainKine);\r
   if (tReaderAODChain) SetFemtoReaderAOD(tReaderAODChain);\r
+  if (tReaderStandard) SetFemtoReaderStandard(tReaderStandard);\r
 }\r
 \r
index 49f771fcfe290137e80039b6603e3d071c2047ba..f240bd4503b181ac90ce2db0f9457d6135e6fab4 100644 (file)
@@ -24,6 +24,7 @@
 #include "AliFemtoEventReaderESDChain.h"
 #include "AliFemtoEventReaderESDChainKine.h"
 #include "AliFemtoEventReaderAODChain.h"
+#include "AliFemtoEventReaderStandard.h"
 #include "AliFemtoManager.h"
 
 class AliAnalysisTaskFemto : public AliAnalysisTask {
@@ -44,6 +45,7 @@ class AliAnalysisTaskFemto : public AliAnalysisTask {
   void SetFemtoReaderESD(AliFemtoEventReaderESDChain *aReader);
   void SetFemtoReaderESDKine(AliFemtoEventReaderESDChainKine *aReader);
   void SetFemtoReaderAOD(AliFemtoEventReaderAODChain *aReader);
+  void SetFemtoReaderStandard(AliFemtoEventReaderStandard *aReader);
   void SetFemtoManager(AliFemtoManager *aManager);
 
  private:
index 362aa4f369a4172d55bf7f95fc0043632c08ad25..713521992e3de256f709e15b69dda24ad435ee87 100644 (file)
@@ -35,7 +35,8 @@ AliFemtoBasicEventCut::~AliFemtoBasicEventCut(){
 bool AliFemtoBasicEventCut::Pass(const AliFemtoEvent* event){
   // Pass events if they fall within the multiplicity and z-vertex
   // position range. Fail otherwise
-  int mult =  event->NumberOfTracks();
+  //  int mult =  event->NumberOfTracks();
+  int mult =  event->UncorrectedNumberOfPrimaries();
   double vertexZPos = event->PrimVertPos().z();
 //   cout << "AliFemtoBasicEventCut:: mult:       " << fEventMult[0] << " < " << mult << " < " << fEventMult[1] << endl;
 //   cout << "AliFemtoBasicEventCut:: VertexZPos: " << fVertZPos[0] << " < " << vertexZPos << " < " << fVertZPos[1] << endl;
index e6c01b49b1c7b37eb2945d04c2fd2d12bd5a53ba..6b5ab7c6ee5dc7a5dd62fc44195502e9fa359cd6 100644 (file)
@@ -24,13 +24,13 @@ AliFemtoCutMonitorParticleYPt::AliFemtoCutMonitorParticleYPt():
   fMass(0.13957)
 {
   // Default constructor
-  fYPt = new TH2D("YPt", "Rapidity vs Pt",              100, -1.0, 1.0, 100, 0.1, 2.0);
+  fYPt = new TH2D("YPt", "Rapidity vs Pt",              100, -1.0, 1.0, 100, 0.0, 2.0);
   fYPhi = new TH2D("YPhi", "Rapidity vs Phi",           100, -1.0, 1.0, 100, -TMath::Pi(), TMath::Pi());
-  fPtPhi = new TH2D("PtPhi", "Pt vs Phi",               100,  0.1, 2.0, 100, -TMath::Pi(), TMath::Pi());
+  fPtPhi = new TH2D("PtPhi", "Pt vs Phi",               100,  0.0, 2.0, 100, -TMath::Pi(), TMath::Pi());
   fEtaPhi = new TH2D("EtaPhi", "Pseudorapidity vs Phi", 100, -1.0, 1.0, 100, -TMath::Pi(), TMath::Pi());
-  fEtaPt = new TH2D("EtaPt", "Pseudorapidity vs Pt",    100, -1.0, 1.0, 100, 0.1, 2.0);
+  fEtaPt = new TH2D("EtaPt", "Pseudorapidity vs Pt",    100, -1.0, 1.0, 100, 0.0, 2.0);
   fEtaPhiW = new TH2D("EtaPhiW", "Pseudorapidity vs Phi chi2/N weighted", 100, -1.0, 1.0, 100, -TMath::Pi(), TMath::Pi());
-  fEtaPtW = new TH2D("EtaPtW", "Pseudorapidity vs Pt chi2/N weighted",    100, -1.0, 1.0, 100, 0.1, 2.0);
+  fEtaPtW = new TH2D("EtaPtW", "Pseudorapidity vs Pt chi2/N weighted",    100, -1.0, 1.0, 100, 0.0, 2.0);
   fDCARPt = new TH2D("DCARPt", "DCA in XY vs. Pt", 400, -2.0, 2.0, 100,0.0,2.0);
   fDCAZPt = new TH2D("DCAZPt", "DCA in Z vs. Pt", 400, -2.0, 2.0, 100,0.0,2.0);
 }
@@ -51,19 +51,19 @@ AliFemtoCutMonitorParticleYPt::AliFemtoCutMonitorParticleYPt(const char *aName,
   // Normal constructor
   char name[200];
   snprintf(name, 200, "YPt%s", aName);
-  fYPt = new TH2D(name, "Rapdity vs Pt", 100, -1.0, 1.0, 100, 0.1, 2.0);
+  fYPt = new TH2D(name, "Rapdity vs Pt", 100, -1.0, 1.0, 100, 0.0, 2.0);
   snprintf(name, 200, "YPhi%s", aName);
   fYPhi = new TH2D(name, "Rapidity vs Phi",           100, -1.0, 1.0, 100, -TMath::Pi(), TMath::Pi());
   snprintf(name, 200, "PtPhi%s", aName);
-  fPtPhi = new TH2D(name, "Pt vs Phi",               100,  0.1, 2.0, 100, -TMath::Pi(), TMath::Pi());
+  fPtPhi = new TH2D(name, "Pt vs Phi",               100,  0.0, 2.0, 100, -TMath::Pi(), TMath::Pi());
   snprintf(name, 200, "EtaPhi%s", aName);
   fEtaPhi = new TH2D(name, "Pseudorapidity vs Phi", 100, -1.0, 1.0, 100, -TMath::Pi(), TMath::Pi());
   snprintf(name, 200, "EtaPt%s", aName);
-  fEtaPt = new TH2D(name, "Pseudorapidity vs Pt",    100, -1.0, 1.0, 100, 0.1, 2.0);
+  fEtaPt = new TH2D(name, "Pseudorapidity vs Pt",    100, -1.0, 1.0, 100, 0.0, 2.0);
   snprintf(name, 200, "EtaPhiW%s", aName);
   fEtaPhiW = new TH2D(name, "Pseudorapidity vs Phi chi2/N weighted", 100, -1.0, 1.0, 100, -TMath::Pi(), TMath::Pi());
   snprintf(name, 200, "EtaPtW%s", aName);
-  fEtaPtW = new TH2D(name, "Pseudorapidity vs Pt chi2/N weighted",    100, -1.0, 1.0, 100, 0.1, 2.0);
+  fEtaPtW = new TH2D(name, "Pseudorapidity vs Pt chi2/N weighted",    100, -1.0, 1.0, 100, 0.0, 2.0);
   snprintf(name, 200, "DCARPt%s", aName);
   fDCARPt = new TH2D(name, "DCA in XY vs. Pt", 400, -2.0, 2.0, 100,0.0,2.0);
   snprintf(name, 200, "DCAZPt%s", aName);
index 004edf006a29822feb63dd576abda098081798d2..003f5f0fe596620dd562640300f09c83040174ea 100644 (file)
@@ -28,6 +28,7 @@ AliFemtoEvent::AliFemtoEvent():
   fEventNumber(0),
   fRunNumber(0),
   fNumberOfTracks(0),
+  fNormalizedMult(-1),
   fMagneticField(0),
   fIsCollisionCandidate(kTRUE),
   fPrimVertPos(0,0,0),
@@ -67,6 +68,7 @@ AliFemtoEvent::AliFemtoEvent(const AliFemtoEvent& ev, AliFemtoTrackCut* tCut, Al
   fEventNumber(0),
   fRunNumber(0),
   fNumberOfTracks(0),
+  fNormalizedMult(-1),
   fMagneticField(0),
   fIsCollisionCandidate(kTRUE),
   fPrimVertPos(0,0,0),
@@ -98,6 +100,7 @@ AliFemtoEvent::AliFemtoEvent(const AliFemtoEvent& ev, AliFemtoTrackCut* tCut, Al
   fZDCEMEnergy=ev.fZDCEMEnergy;
   fZDCParticipants=ev.fZDCParticipants;
   fNumberOfTracks = ev.fNumberOfTracks;
+  fNormalizedMult = ev.fNormalizedMult;
   fMagneticField= ev.fMagneticField;
   fIsCollisionCandidate = ev.fIsCollisionCandidate;
 
@@ -145,6 +148,7 @@ AliFemtoEvent::AliFemtoEvent(const AliFemtoEvent& ev):
   fEventNumber(0),
   fRunNumber(0),
   fNumberOfTracks(0),
+  fNormalizedMult(-1),
   fMagneticField(0),
   fIsCollisionCandidate(kTRUE),
   fPrimVertPos(0,0,0),
@@ -225,6 +229,7 @@ AliFemtoEvent& AliFemtoEvent::operator=(const AliFemtoEvent& aEvent)
   fZDCEMEnergy=aEvent.fZDCEMEnergy;
   fZDCParticipants=aEvent.fZDCParticipants;
   fNumberOfTracks = aEvent.fNumberOfTracks;
+  fNormalizedMult = aEvent.fNormalizedMult;
   fMagneticField= aEvent.fMagneticField;
   fIsCollisionCandidate = aEvent.fIsCollisionCandidate;
 
@@ -304,11 +309,9 @@ void AliFemtoEvent::SetZDCN2Energy(const float& aZDCN2Energy){fZDCN2Energy=aZDCN
 void AliFemtoEvent::SetZDCP2Energy(const float& aZDCP2Energy){fZDCP2Energy=aZDCP2Energy;}      
 void AliFemtoEvent::SetZDCEMEnergy(const float& aZDCEMEnergy){fZDCEMEnergy=aZDCEMEnergy;}    
 void AliFemtoEvent::SetZDCParticipants(const unsigned int& aZDCParticipants){fZDCParticipants=aZDCParticipants;}
-    
 
 void AliFemtoEvent::SetNumberOfTracks(const unsigned short& tracks){fNumberOfTracks = tracks;}
-
-
+void AliFemtoEvent::SetNormalizedMult(const int& i){fNormalizedMult = i;}
 
 void AliFemtoEvent::SetPrimVertPos(const AliFemtoThreeVector& vp){fPrimVertPos = vp;}
 void AliFemtoEvent::SetPrimVertCov(const double* v){
@@ -364,19 +367,22 @@ double AliFemtoEvent::UncorrectedNumberOfNegativePrimaries() const
 
 double AliFemtoEvent::UncorrectedNumberOfPrimaries() const
 {
-  // Count number of normalized charged tracks 
-  Int_t tNormTrackCount = 0;
-  for (AliFemtoTrackIterator iter=fTrackCollection->begin();iter!=fTrackCollection->end();iter++){
-    if (!((*iter)->Flags()&(AliFemtoTrack::kTPCrefit))) continue;
-    if ((*iter)->TPCncls() < 50) continue;
-    if ((*iter)->TPCchi2()/(*iter)->TPCncls() > 60.0) continue;
-    if ((*iter)->ImpactD() > 6.0) continue;
-    if ((*iter)->ImpactZ() > 6.0) continue;
-    if (fabs((*iter)->P().pseudoRapidity()) > 0.9) continue;
-
-    tNormTrackCount++;
+  if (fNormalizedMult < 0) {
+    // Count number of normalized charged tracks 
+    Int_t tNormTrackCount = 0;
+    for (AliFemtoTrackIterator iter=fTrackCollection->begin();iter!=fTrackCollection->end();iter++){
+      if (!((*iter)->Flags()&(AliFemtoTrack::kTPCrefit))) continue;
+      if ((*iter)->TPCncls() < 50) continue;
+      if ((*iter)->TPCchi2()/(*iter)->TPCncls() > 60.0) continue;
+      if ((*iter)->ImpactD() > 6.0) continue;
+      if ((*iter)->ImpactZ() > 6.0) continue;
+      if (fabs((*iter)->P().pseudoRapidity()) > 0.9) continue;
+      
+      tNormTrackCount++;
+    }
+    return tNormTrackCount;
   }
 
-  return tNormTrackCount;
+  return fNormalizedMult;
   //  return NumberOfTracks();
 }
index 1d63559d978f6e17b42fa5a978d51cd17cd5247e..6af4953495eb7524adbdfd215d1c67cd1c9b78e6 100644 (file)
@@ -73,6 +73,7 @@ public:
   void SetEventNumber(const unsigned short& s);
   void SetRunNumber(const int& i);
   void SetNumberOfTracks(const unsigned short& s);
+  void SetNormalizedMult(const int& i);
   void SetPrimVertPos(const AliFemtoThreeVector& v);
   void SetPrimVertCov(const double* v);
   void SetMagneticField(const double& x);
@@ -98,6 +99,7 @@ private:
   unsigned short fEventNumber;           // Event number in file
   unsigned short fRunNumber;             // run number the event belong to
   unsigned short fNumberOfTracks;        // total number of TPC tracks
+  int   fNormalizedMult;                 // normalized multiplicity
   double fMagneticField;                 // magnetic field in Z direction
   bool fIsCollisionCandidate;            // is collision candidate
   
index ca84992482cdd3fec4fcdc5558b00f807deee956..d10f616d8b25880d145f5f0b05f260892d2bfb23 100644 (file)
@@ -316,12 +316,19 @@ AliFemtoEvent* AliFemtoEventReaderESDChain::ReturnHbtEvent()
       
 //   }
 
+  int tNormMult = 0;
   for (int i=0;i<nofTracks;i++)
     {
       bool  tGoodMomentum=true; //flaga to chcek if we can read momentum of this track
-               
+
       const AliESDtrack *esdtrack=fEvent->GetTrack(i);//getting next track
       //      const AliESDfriendTrack *tESDfriendTrack = esdtrack->GetFriendTrack();
+      if (esdtrack->GetStatus() & AliESDtrack::kTPCrefit)
+       if (esdtrack->GetTPCNcls() > 80) 
+         if (esdtrack->GetTPCchi2()/esdtrack->GetTPCNcls() < 6.0) 
+           if (esdtrack->GetConstrainedParam())
+             if (esdtrack->GetConstrainedParam()->Eta() < 0.9)
+               tNormMult++;
 
       // If reading ITS-only tracks, reject all with TPC
       if (fTrackType == kITSOnly) {
@@ -508,6 +515,7 @@ AliFemtoEvent* AliFemtoEventReaderESDChain::ReturnHbtEvent()
     }
 
   hbtEvent->SetNumberOfTracks(realnofTracks);//setting number of track which we read in event  
+  hbtEvent->SetNormalizedMult(tNormMult);
   fCurEvent++; 
   cout<<"end of reading nt "<<nofTracks<<" real number "<<realnofTracks<<endl;
   return hbtEvent; 
index 59654ae8e1934cea293ce6b9a2c45257fa234c06..cf962be0ec652474d0e0d94d6660ecafbec732f3 100644 (file)
@@ -68,7 +68,7 @@ void AliFemtoModelGausLCMSFreezeOutGenerator::GenerateFreezeOut(AliFemtoPair *aP
   Double_t tXside = (tPy * tRout - tPx * tRside)/tPt;
 
   Double_t tBetaz = tPz/tEs;
-  Double_t tGammaz = 1.0/(1-tBetaz*tBetaz);
+  Double_t tGammaz = 1.0/TMath::Sqrt(1-tBetaz*tBetaz);
   
   Double_t tXlong = tGammaz * (tRlong + tBetaz * 0);
   Double_t tXtime = tGammaz * (0 + tBetaz * tRlong);