]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG4/macros/AddTaskJCORRANTask.C
Write Calo QA output to a separate file
[u/mrichter/AliRoot.git] / PWG4 / macros / AddTaskJCORRANTask.C
1
2 //---------------------------------------------------
3 // Macro to do analysis with AliJCORRANTask 
4 // Can be executed with Root and AliRoot
5 //
6 // ALICE Jyvaskyla group 
7 //
8 // last change 20th Jun 2010 FK
9 //-------------------------------------------------
10
11
12 const TString kInputData = "ESD";
13 const TString kJCORRANInputFormat = "ESD"; // ESD, AODout, AODin
14 const Bool_t  kMC = kFALSE; //With real data kMC = kFALSE, MC data kMC =kTRUE
15
16 AliJCORRANTask* AddTaskJCORRAN(const char* aodName="jcorran.root", const char* addPhysSelection="$ALICE_ROOT/ANALYSIS/macros/AddTaskPhysicsSelection.C")
17 {
18     //--------------------------------------
19     // Make the analysis manager
20     //-------------------------------------
21     AliAnalysisManager *mgr  = AliAnalysisManager::GetAnalysisManager();
22     if(!mgr){
23       ::Error("AddTaskJCORRAN", "No analysis manager to connect to.");
24       return NULL;
25     }
26
27     if(!mgr->GetInputEventHandler()){
28        ::Error("AddTaskJets", "This task requires an input event handler");
29        return NULL;
30     }
31
32  
33     //AliAODHandler *aodH = dynamic_cast<AliAODHandler*>(AliAnalysisManager::GetAnalysisManager()->GetOutputEventHandler());
34     //aodH->SetCreateNonStandardAOD();
35
36     //-------------------------------------------------------------------------
37     //           T R A C K     S E L E C T I O N
38
39     AliESDtrackCuts* esdTrackCuts = new AliESDtrackCuts("AliESDtrackCuts2009","Standard");
40   
41     /* // Apply loose track cuts   
42     AliESDtrackCuts* esdTrackCutsLoose = new AliESDtrackCuts("AliESDtrackCuts", "Loose");
43     esdTrackCutsLoose->SetMinNClustersTPC(60);
44     esdTrackCutsLoose->SetMaxChi2PerClusterTPC(4.0);
45     esdTrackCutsLoose->SetRequireTPCRefit(kTRUE);
46     //esdTrackCutsLoose->SetMaxNsigmaToVertex(3);
47     //esdTrackCutsLoose->SetRequireSigmaToVertex(kTRUE);
48     esdTrackCutsLoose->SetAcceptKinkDaughters(kFALSE);
49     esdTrackCutsLoose->SetMaxDCAToVertexXY(3.5);
50     esdTrackCutsLoose->SetMaxDCAToVertexZ(3.5);
51     */
52
53     //---------------------------------------------------------------------------
54     //       E V E N T     S E L E C T I O N
55
56     Int_t     downscaling     = 20;  //downscaling of normal events
57     Double_t  lowerCutOnLPmom =  3;  //select all events with a particle above momentum  
58     Double_t  lowerCutOnLeadingCaloClusterE = 1.; //GeV   select all events with a calo cluster above the energy   
59     Double_t  lowerCutOnCaloClusterE = 0.2; // GeV  store only calo clusters above this energy   
60
61     if(addPhysSelection){ 
62       gROOT->LoadMacro(addPhysSelection);
63       AliPhysicsSelectionTask* physSelTask = AddTaskPhysicsSelection();
64       AliPhysicsSelection* physSele = physSelTask->GetPhysicsSelection();
65     
66     //tag as MB different trigger than CINT1B
67     //physSele->AddCollisionTriggerClass("+CSMBB-ABCE-NOPF-ALL"); // Put here trigger to be selected, default is CINT1B 
68     }
69     //---------------------------------------------------------------------------
70     //            J C O R R A N    T A S K 
71
72     AliJCORRANTask *jctask = new AliJCORRANTask("PWG4JCORRANTask",kJCORRANInputFormat); 
73     jctask->SetDebugLevel(1);
74     /*jctask->SetAliESDtrackCuts(esdTrackCutsLoose); */
75     jctask->SetAliESDtrackCuts(esdTrackCuts->GetStandardITSTPCTrackCuts2009());
76     jctask->SetDownscaling(downscaling);
77     jctask->SetLowerCutOnLPMom(lowerCutOnLPmom);
78     jctask->SetLowerCutOnLeadingCaloClusterE(lowerCutOnLeadingCaloClusterE);
79     jctask->SetLowerCutOnCaloClusterE(lowerCutOnCaloClusterE);
80     jctask->SetRealOrMC(kMC); //flags whether the input are ESDs from real  exp or MonteCarlo 
81     jctask->SetOutputAODName(aodName); 
82     mgr->AddTask(jctask);
83
84     jctask->SelectCollisionCandidates();  //Apply offline trigger selection by AliPhysicsSelectionTask
85
86     
87     // Create containers for input:
88     AliAnalysisDataContainer *cinput0 = mgr->GetCommonInputContainer(); 
89
90     //connect input to JCORRAN task
91     mgr->ConnectInput(jctask, 0, cinput0);
92
93     
94     return jctask;
95 }
96
97