cover case for AOD analysis
authorkleinb <kleinb@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 16 Nov 2009 09:54:50 +0000 (09:54 +0000)
committerkleinb <kleinb@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 16 Nov 2009 09:54:50 +0000 (09:54 +0000)
PWG4/JetTasks/AliAnalysisTaskJetSpectrum2.cxx
PWG4/JetTasks/AliAnalysisTaskThreeJets.cxx
PWG4/macros/AddTaskJFSystematics.C
PWG4/macros/AddTaskJetSpectrum2.C
PWG4/macros/AddTaskThreeJets.C
PWG4/macros/AddTaskUE.C

index 878ed66..60b0035 100644 (file)
@@ -713,9 +713,8 @@ Int_t  AliAnalysisTaskJetSpectrum2::GetListOfTracks(TList *list,Int_t type){
   }
   else if (type == kTrackAODMCCharged || type == kTrackAODMCAll ) {
     AliAODEvent *aod = dynamic_cast<AliAODEvent*>(InputEvent());
-    if(!aod){
-      return iCount;
-    }
+    if(!aod) aod = AODEvent();
+    if(!aod)return iCount;
     TClonesArray *tca = dynamic_cast<TClonesArray*>(aod->FindListObject(AliAODMCParticle::StdBranchName()));
     if(!tca)return iCount;
     for(int it = 0;it < tca->GetEntriesFast();++it){
index e74b81b..1a2c9ed 100644 (file)
@@ -214,42 +214,29 @@ Bool_t AliAnalysisTaskThreeJets::Notify()
   // Implemented Notify() to read the cross sections
   // and number of trials from pyxsec.root
   // 
+
+
   TTree *tree = AliAnalysisManager::GetAnalysisManager()->GetTree();
-  UInt_t   ntrials  = 0;
+  Float_t xsection = 0;
+  Float_t ftrials  = 1;
+
+  Float_t fAvgTrials = 1;
   if(tree){
     TFile *curfile = tree->GetCurrentFile();
     if (!curfile) {
       Error("Notify","No current file");
       return kFALSE;
     }
+    AliAnalysisHelperJetTasks::PythiaInfoFromFile(curfile->GetName(),xsection,ftrials);
+    // construct a poor man average trials 
+    Float_t nEntries = (Float_t)tree->GetTree()->GetEntries();
+    if(ftrials>=nEntries)fAvgTrials = ftrials/nEntries; // CKB take this into account for normalisation
+  }  
+
+  if(xsection>0)fXsection  = xsection;
 
-    TString fileName(curfile->GetName());
-    if(fileName.Contains("AliESDs.root")){
-        fileName.ReplaceAll("AliESDs.root", "pyxsec.root");
-    }
-    else if(fileName.Contains("AliAOD.root")){
-        fileName.ReplaceAll("AliAOD.root", "pyxsec.root");
-    }
-    else if(fileName.Contains("galice.root")){
-        // for running with galice and kinematics alone...                      
-        fileName.ReplaceAll("galice.root", "pyxsec.root");
-    }
-    TFile *fxsec = TFile::Open(fileName.Data());
-    if(!fxsec){
-      Printf("%s:%d %s not found in the Input",(char*)__FILE__,__LINE__,fileName.Data());
-      // no a severe condition
-      return kTRUE;
-    }
-    TTree *xtree = (TTree*)fxsec->Get("Xsection");
-    if(!xtree){
-      Printf("%s:%d tree not found in the pyxsec.root",(char*)__FILE__,__LINE__);
-    }
-    xtree->SetBranchAddress("xsection",&fXsection);
-    xtree->SetBranchAddress("ntrials",&ntrials);
-    xtree->GetEntry(0);
-  }
-  
   return kTRUE;
+
 }
 
 
@@ -261,22 +248,6 @@ void AliAnalysisTaskThreeJets::UserCreateOutputObjects()
   //
   //  Printf("Analysing event  %s :: # %5d\n", gSystem->pwd(), (Int_t) fEntry);
 
-  if(fUseAODInput){
-    fAOD = dynamic_cast<AliAODEvent*>(InputEvent());
-    if(!fAOD){
-      Printf("%s:%d AODEvent not found in Input Manager %d",(char*)__FILE__,__LINE__,fUseAODInput);
-      return;
-    }    
-  }
-  else{
-    //  assume that the AOD is in the general output...
-    fAOD  = AODEvent();
-    if(!fAOD){
-      Printf("%s:%d AODEvent not found in the Output",(char*)__FILE__,__LINE__);
-      return;
-    }    
-  }
-
   printf("AnalysisTaskJetSpectrum::UserCreateOutputObjects() \n");
 
   fList = new TList();
@@ -475,18 +446,24 @@ void AliAnalysisTaskThreeJets::Init()
 //____________________________________________________________________________________________________________________________________________
 void AliAnalysisTaskThreeJets::UserExec(Option_t * )
 {
-  //  if (fDebug > 1) printf("Analysing event # %5d\n", (Int_t) fEntry);
+  if (fDebug > 1) printf("AliAnlysisTaskThreeJets::Analysing event # %5d\n", (Int_t) fEntry);
 
-  
-  //create an AOD handler
-  AliAODHandler *aodH = dynamic_cast<AliAODHandler*>(AliAnalysisManager::GetAnalysisManager()->GetOutputEventHandler());
-  
-  if(!aodH)
-    {
-      Printf("%s:%d no output aodHandler found Jet",(char*)__FILE__,__LINE__);
+  if(fUseAODInput){
+    fAOD = dynamic_cast<AliAODEvent*>(InputEvent());
+    if(!fAOD){
+      Printf("%s:%d AODEvent not found in Input Manager %d",(char*)__FILE__,__LINE__,fUseAODInput);
       return;
-    }
-  
+    }    
+  }
+  else{
+    //  assume that the AOD is in the general output...
+    fAOD  = AODEvent();
+    if(!fAOD){
+      Printf("%s:%d AODEvent not found in the Output",(char*)__FILE__,__LINE__);
+      return;
+    }    
+  }
+
   AliMCEvent* mcEvent =MCEvent();
   if(!mcEvent){
     Printf("%s:%d no mcEvent",(char*)__FILE__,__LINE__);
@@ -497,8 +474,10 @@ void AliAnalysisTaskThreeJets::UserExec(Option_t * )
   
   //primary vertex
   AliAODVertex * pvtx = dynamic_cast<AliAODVertex*>(fAOD->GetPrimaryVertex());
-  if(!pvtx) return;
-  
+  if(!pvtx){
+    if (fDebug > 1)     Printf("%s:%d AOD Vertex found",(char*)__FILE__,__LINE__);
+    return;
+  }  
   AliAODJet genJetsPythia[kMaxJets];
   Int_t nPythiaGenJets = 0;
   
index 29912d1..5389286 100644 (file)
@@ -19,12 +19,17 @@ AliAnalysisTaskJFSystematics *AddTaskJFSystematics(char *jf1 = "jetsMC",char *jf
    // Create the task and configure it.\r
    //===========================================================================\r
    \r
-   AliAnalysisTaskJFSystematics* pwg4jfs = new  AliAnalysisTaskJFSystematics("Jet Spectrum");\r
+   AliAnalysisTaskJFSystematics* pwg4jfs = new  AliAnalysisTaskJFSystematics("JF Systematics");\r
       \r
    // or a config file\r
    pwg4jfs->SetAnalysisType(AliAnalysisTaskJFSystematics::kSysJetOrder);\r
    //      if(iAODanalysis)pwg4spec->SetAODInput(kTRUE);\r
-   // pwg4spec->SetDebugLevel(11); \r
+   //   pwg4jfs->SetDebugLevel(11); \r
+   TString type = mgr->GetInputEventHandler()->GetDataType();\r
+   if(type == "AOD"){\r
+     pwg4jfs->SetAODInput(kTRUE);\r
+   }\r
+\r
    pwg4jfs->SetBranchGen(jf1); \r
    pwg4jfs->SetBranchRec(jf2); \r
    mgr->AddTask(pwg4jfs);\r
index 4947823..6ba46d5 100644 (file)
@@ -1,4 +1,4 @@
-AliAnalysisTaskJetSpectrum2 *AddTaskJetSpectrum2()\r
+AliAnalysisTaskJetSpectrum2 *AddTaskJetSpectrum2(char* bRec = "jets",char* bGen = "jetsAODMC_UA104",UInt_t filterMask = 16)\r
 {\r
 // Creates a jet fider task, configures it and adds it to the analysis manager.\r
 \r
@@ -13,30 +13,40 @@ AliAnalysisTaskJetSpectrum2 *AddTaskJetSpectrum2()
    // Check the analysis type using the event handlers connected to the analysis manager.\r
    //==============================================================================\r
    if (!mgr->GetInputEventHandler()) {\r
-      ::Error("AddTaskJetSpectrum2", "This task requires an input event handler");\r
+     ::Error("AddTaskJetSpectrum2", "This task requires an input event handler");\r
       return NULL;\r
    }\r
 \r
+   TString type = mgr->GetInputEventHandler()->GetDataType();\r
+   TString typeMC(bGen);\r
    // Create the task and configure it.\r
    //===========================================================================\r
    \r
-   AliAnalysisTaskJetSpectrum2* pwg4spec = new  AliAnalysisTaskJetSpectrum2("Jet Spectrum");\r
+   AliAnalysisTaskJetSpectrum2* pwg4spec = new  AliAnalysisTaskJetSpectrum2(Form("Jet Spectrum %s %s",bRec,bGen));\r
       \r
    // or a config file\r
    pwg4spec->SetAnalysisType(AliAnalysisTaskJetSpectrum2::kAnaMC);\r
-   //      if(iAODanalysis)pwg4spec->SetAODInput(kTRUE);\r
+   // if(iAODanalysis)pwg4spec->SetAODInput(kTRUE);\r
    // pwg4spec->SetDebugLevel(11); \r
-   pwg4spec->SetBranchGen("jetsMC"); \r
-   pwg4spec->SetBranchRec("jetsAOD"); \r
-   mgr->AddTask(pwg4spec);\r
-\r
+   pwg4spec->SetBranchRec(bRec); \r
+   pwg4spec->SetBranchGen(bGen); \r
+   pwg4spec->SetFilterMask(filterMask); \r
 \r
+   if(type == "AOD"){\r
+     pwg4spec->SetTrackTypeRec(AliAnalysisTaskJetSpectrum2::kTrackAODIn);\r
+     pwg4spec->SetAODInput(kTRUE);\r
+   }\r
+   else pwg4spec->SetTrackTypeRec(AliAnalysisTaskJetSpectrum2::kTrackAODOut);\r
 \r
-      \r
+   if(typeMC.Contains("AODMC2"))pwg4spec->SetTrackTypeGen(AliAnalysisTaskJetSpectrum2::kTrackAODMCCharged);\r
+   else pwg4spec->SetTrackTypeGen(AliAnalysisTaskJetSpectrum2::kTrackAODMCAll);\r
+   \r
+   mgr->AddTask(pwg4spec);\r
+     \r
    // Create ONLY the output containers for the data produced by the task.\r
    // Get and connect other common input/output containers via the manager as below\r
    //==============================================================================\r
-   AliAnalysisDataContainer *coutput1_Spec = mgr->CreateContainer("pwg4spec2", TList::Class(),AliAnalysisManager::kOutputContainer,Form("%s:PWG4_spec2",AliAnalysisManager::GetCommonFileName()));\r
+   AliAnalysisDataContainer *coutput1_Spec = mgr->CreateContainer("pwg4spec2", TList::Class(),AliAnalysisManager::kOutputContainer,Form("%s:PWG4_spec2_%s_%s",AliAnalysisManager::GetCommonFileName(),bRec,bGen));\r
 \r
    mgr->ConnectInput  (pwg4spec, 0, mgr->GetCommonInputContainer());\r
    mgr->ConnectOutput (pwg4spec, 0, mgr->GetCommonOutputContainer());\r
index 8ba9737..6199c58 100644 (file)
@@ -1,4 +1,4 @@
-AliAnalysisTaskThreeJets * AddTaskThreeJets()\r
+AliAnalysisTaskThreeJets * AddTaskThreeJets(char *bRec = "jets",char * bGen = "jetsAODMC_UA104")\r
 {\r
   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();\r
   if (!mgr) {\r
@@ -18,24 +18,32 @@ AliAnalysisTaskThreeJets * AddTaskThreeJets()
   \r
   AliAnalysisTaskThreeJets * threeJets = new  AliAnalysisTaskThreeJets("Three Jet Analysis");\r
   \r
-  threeJets->SetBranchGen("jetsMC"); \r
-  threeJets->SetBranchRec("jets");\r
+  threeJets->SetBranchRec(bRec);\r
+  threeJets->SetBranchGen(bGen); \r
+  threeJets->SetDebugLevel(10);\r
   threeJets->SetR(.5); \r
+  \r
+  TString type = mgr->GetInputEventHandler()->GetDataType();\r
+  if(type == "AOD"){\r
+    threeJets->SetAODInput(kTRUE);\r
+  }\r
+\r
   mgr->AddTask(threeJets);\r
    \r
+  \r
 \r
 \r
       \r
-   // Create ONLY the output containers for the data produced by the task.\r
-   // Get and connect other common input/output containers via the manager as below\r
-   //==============================================================================\r
-  AliAnalysisDataContainer *coutput1_Corr = mgr->CreateContainer("threeJets", TList::Class(),AliAnalysisManager::kOutputContainer,Form("%s:PWG4_threeJets",AliAnalysisManager::GetCommonFileName()));\r
+  // Create ONLY the output containers for the data produced by the task.\r
+  // Get and connect other common input/output containers via the manager as below\r
+  //==============================================================================\r
+  AliAnalysisDataContainer *coutput1_Corr = mgr->CreateContainer(Form("threeJets_%s_%s",bRec,bGen), TList::Class(),AliAnalysisManager::kOutputContainer,Form("%s:PWG4_threeJets_%s_%s",AliAnalysisManager::GetCommonFileName(),bRec,bGen));\r
 \r
-   mgr->ConnectInput  (threeJets, 0, mgr->GetCommonInputContainer());\r
-   mgr->ConnectOutput (threeJets, 0, mgr->GetCommonOutputContainer());\r
-   mgr->ConnectOutput (threeJets,  1, coutput1_Corr );\r
-   \r
-   return threeJets;\r
+  mgr->ConnectInput  (threeJets, 0, mgr->GetCommonInputContainer());\r
+  mgr->ConnectOutput (threeJets, 0, mgr->GetCommonOutputContainer());\r
+  mgr->ConnectOutput (threeJets,  1, coutput1_Corr );\r
+  \r
+  return threeJets;\r
 }\r
 \r
 \r
index 041b152..ab826d6 100644 (file)
@@ -30,7 +30,7 @@ AliAnalysisTaskUE *AddTaskUE()
    // Create ONLY the output containers for the data produced by the task.\r
    // Get and connect other common input/output containers via the manager as below\r
    //==============================================================================\r
-   AliAnalysisDataContainer *coutput1_UE = mgr->CreateContainer("histosUE", TList::Class(),AliAnalysisManager::kOutputContainer,"pwg4UE.root");\r
+   AliAnalysisDataContainer *coutput1_UE = mgr->CreateContainer("histosUE", TList::Class(),AliAnalysisManager::kOutputContainer,Form("%s:PWG4_UE",AliAnalysisManager::GetCommonFileName()));\r
    \r
    mgr->ConnectInput  (ueana, 0, mgr->GetCommonInputContainer());\r
    mgr->ConnectOutput (ueana,     0, coutput1_UE );\r