]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGCF/FEMTOSCOPY/AliFemto/AliAnalysisTaskFemto.cxx
modified Azimuthal HBT analysis (Vera R. Loggins <veraloggins@wayne.edu>)
[u/mrichter/AliRoot.git] / PWGCF / FEMTOSCOPY / AliFemto / AliAnalysisTaskFemto.cxx
index dfcb588101d23e5ad44cb25e801ecce22767d6dc..37905579f0e7d8828e84e45df7d0efc451572c43 100644 (file)
@@ -33,28 +33,26 @@ ClassImp(AliAnalysisTaskFemto)
 
 //________________________________________________________________________
 AliAnalysisTaskFemto::AliAnalysisTaskFemto(const char *name, const char *aConfigMacro, const char *aConfigParams):
-    AliAnalysisTaskSE(name), //AliAnalysisTask(name,""), 
-    fESD(0), 
-    fESDpid(0),
-    fAOD(0),
-    fAODpidUtil(0),
-    fStack(0),
-    fOutputList(0), 
-    fReader(0x0),
-    fManager(0x0),
-    fAnalysisType(0),
-    fConfigMacro(0),
-    fConfigParams(0)
+AliAnalysisTaskSE(name), //AliAnalysisTask(name,""), 
+  fESD(0), 
+  fESDpid(0),
+  fAOD(0),
+  fAODpidUtil(0),
+  fAODheader(0),
+  fStack(0),
+  fOutputList(0), 
+  fReader(0x0),
+  fManager(0x0),
+  fAnalysisType(0),
+    fConfigMacro(aConfigMacro),
+    fConfigParams(aConfigParams)
 {
   // Constructor.
   // Input slot #0 works with an Ntuple
   DefineInput(0, TChain::Class());
   // Output slot #0 writes into a TH1 container
   DefineOutput(0, TList::Class());
-  fConfigMacro = (char *) malloc(sizeof(char) * strlen(aConfigMacro));
-  strcpy(fConfigMacro, aConfigMacro);
-  fConfigParams = (char *) malloc(sizeof(char) * strlen(aConfigParams));
-  strcpy(fConfigParams, aConfigParams);
+
 }
 //________________________________________________________________________
 AliAnalysisTaskFemto::AliAnalysisTaskFemto(const char *name, const char *aConfigMacro="ConfigFemtoAnalysis.C"): 
@@ -63,23 +61,21 @@ AliAnalysisTaskFemto::AliAnalysisTaskFemto(const char *name, const char *aConfig
     fESDpid(0),
     fAOD(0),
     fAODpidUtil(0),
+    fAODheader(0),
     fStack(0),
     fOutputList(0), 
     fReader(0x0),
     fManager(0x0),
     fAnalysisType(0),
-    fConfigMacro(0),
-    fConfigParams(0)
+    fConfigMacro(aConfigMacro),
+    fConfigParams("")
 {
   // Constructor.
   // Input slot #0 works with an Ntuple
   DefineInput(0, TChain::Class());
   // Output slot #0 writes into a TH1 container
   DefineOutput(0, TList::Class());
-  fConfigMacro = (char *) malloc(sizeof(char) * strlen(aConfigMacro));
-  strcpy(fConfigMacro, aConfigMacro);
-  fConfigParams = (char *) malloc(sizeof(char) * 2);
-  strcpy(fConfigParams, "");
+
 }
 
 AliAnalysisTaskFemto::AliAnalysisTaskFemto(const AliAnalysisTaskFemto& aFemtoTask):
@@ -88,6 +84,7 @@ AliAnalysisTaskFemto::AliAnalysisTaskFemto(const AliAnalysisTaskFemto& aFemtoTas
     fESDpid(0),
     fAOD(0),
     fAODpidUtil(0),
+    fAODheader(0),
     fStack(0),
     fOutputList(0), 
     fReader(0x0),
@@ -101,15 +98,16 @@ AliAnalysisTaskFemto::AliAnalysisTaskFemto(const AliAnalysisTaskFemto& aFemtoTas
   fESDpid = aFemtoTask.fESDpid; 
   fAOD = aFemtoTask.fAOD; 
   fAODpidUtil = aFemtoTask.fAODpidUtil;
+  fAODheader = aFemtoTask.fAODheader;
   fStack = aFemtoTask.fStack;
   fOutputList = aFemtoTask.fOutputList;   
   fReader = aFemtoTask.fReader;       
   fManager = aFemtoTask.fManager;      
   fAnalysisType = aFemtoTask.fAnalysisType; 
-  fConfigMacro = (char *) malloc(sizeof(char) * strlen(aFemtoTask.fConfigMacro));
-  strcpy(fConfigMacro, aFemtoTask.fConfigMacro);
-  fConfigParams = (char *) malloc(sizeof(char) * strlen(aFemtoTask.fConfigParams));
-  strcpy(fConfigParams, aFemtoTask.fConfigParams);
+
+  fConfigMacro = aFemtoTask.fConfigMacro;
+  fConfigParams = aFemtoTask.fConfigParams;
+
 }
 
 
@@ -122,25 +120,21 @@ AliAnalysisTaskFemto& AliAnalysisTaskFemto::operator=(const AliAnalysisTaskFemto
   fESDpid = aFemtoTask.fESDpid;
   fAOD = aFemtoTask.fAOD; 
   fAODpidUtil = aFemtoTask.fAODpidUtil;
+  fAODheader = aFemtoTask.fAODheader;
   fStack = aFemtoTask.fStack;
   fOutputList = aFemtoTask.fOutputList;   
   fReader = aFemtoTask.fReader;       
   fManager = aFemtoTask.fManager;      
   fAnalysisType = aFemtoTask.fAnalysisType; 
-  if (fConfigMacro) free(fConfigMacro);
-  fConfigMacro = (char *) malloc(sizeof(char) * strlen(aFemtoTask.fConfigMacro));
-  strcpy(fConfigMacro, aFemtoTask.fConfigMacro);
-  if (fConfigParams) free(fConfigParams);
-  fConfigParams = (char *) malloc(sizeof(char) * strlen(aFemtoTask.fConfigParams));
-  strcpy(fConfigParams, aFemtoTask.fConfigParams);
+
+  fConfigMacro = aFemtoTask.fConfigMacro;
+  fConfigParams = aFemtoTask.fConfigParams;
 
   return *this;
 }
 
 AliAnalysisTaskFemto::~AliAnalysisTaskFemto() 
 {
-  if (fConfigMacro) free(fConfigMacro);
-  if (fConfigParams) free(fConfigParams);
 }
 
 
@@ -152,6 +146,7 @@ void AliAnalysisTaskFemto::ConnectInputData(Option_t *) {
   fESDpid = 0;
   fAOD = 0;
   fAODpidUtil = 0;
+  fAODheader=0;
   fAnalysisType = 0;
 
   TTree* tree = dynamic_cast<TTree*> (GetInputData(0));
@@ -259,9 +254,15 @@ void AliAnalysisTaskFemto::ConnectInputData(Option_t *) {
       
       fAOD = aodH->GetEvent();
 
-      fAODpidUtil = aodH->GetAODpidUtil();
+      fAODpidUtil = aodH->GetAODpidUtil(); //correct way
+      //fAODpidUtil = new AliAODpidUtil(); //not correct way
       //      printf("aodH->GetAODpidUtil(): %x",aodH->GetAODpidUtil());
+      cout<<"AliAnalysisTaskFemto::AodpidUtil:"<<fAODpidUtil<<endl;
       femtoReaderAOD->SetAODpidUtil(fAODpidUtil);
+
+      fAODheader = fAOD->GetHeader();
+      femtoReaderAOD->SetAODheader(fAODheader);
+   
     }
   }
 
@@ -283,7 +284,7 @@ void AliAnalysisTaskFemto::CreateOutputObjects() {
   if (!fConfigParams)
     SetFemtoManager((AliFemtoManager *) gInterpreter->ProcessLine("ConfigFemtoAnalysis()"));
   else
-    SetFemtoManager((AliFemtoManager *) gInterpreter->ProcessLine(Form("ConfigFemtoAnalysis(%s)", fConfigParams)));
+      SetFemtoManager((AliFemtoManager *) gInterpreter->ProcessLine(Form("ConfigFemtoAnalysis(%s)", fConfigParams.Data())));
 
   TList *tOL;
   fOutputList = fManager->Analysis(0)->GetOutputList();
@@ -421,7 +422,16 @@ void AliAnalysisTaskFemto::Exec(Option_t *) {
 //       fAOD = aodH->GetEvent();
 //     }
 
-    AliInfo(Form("Tracks in AOD: %d \n",fAOD->GetNumberOfTracks()));
+
+
+    Bool_t isSelected = (((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & fOfflineTriggerMask);
+  if(!isSelected) {//cout << "AliAnalysisTaskFemto: is not selected" << endl; 
+    return;}
+
+
+
+
+     AliInfo(Form("Tracks in AOD: %d \n",fAOD->GetNumberOfTracks()));
     
     if (fAOD->GetNumberOfTracks() > 0) {
       if (!fReader) {