]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
-add user task of michael
authorjbook <jbook@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 18 Jun 2012 13:04:00 +0000 (13:04 +0000)
committerjbook <jbook@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 18 Jun 2012 13:04:00 +0000 (13:04 +0000)
PWGDQ/dielectron/macrosJPSI/AddTask_mwinn_JPsi.C [new file with mode: 0644]
PWGDQ/dielectron/macrosJPSI/ConfigJpsiQA_jb_PbPb.C
PWGDQ/dielectron/macrosJPSI/ConfigJpsi_jb_PbPb.C
PWGDQ/dielectron/macrosJPSI/ConfigJpsi_mw_pp.C [new file with mode: 0644]

diff --git a/PWGDQ/dielectron/macrosJPSI/AddTask_mwinn_JPsi.C b/PWGDQ/dielectron/macrosJPSI/AddTask_mwinn_JPsi.C
new file mode 100644 (file)
index 0000000..b5a91cd
--- /dev/null
@@ -0,0 +1,101 @@
+AliAnalysisTask *AddTask_mwinn_JPsi(){
+  //get the current analysis manager
+  AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
+  if (!mgr) {
+    Error("AddTask_mwinn_JPsi", "No analysis manager found.");
+    return 0;
+  }
+
+  if (mgr->GetInputEventHandler()->IsA()==AliAODInputHandler::Class()){
+    ::Info("AddTask_mwinn_JPsi", "Not used in AOD!!!");
+    return 0;
+  }
+
+  //Get the current train configuration
+  //NOTE train config not there on grid, PbPb anyhow not used for correlations
+  //TString trainConfig=gSystem->Getenv("CONFIG_FILE");
+
+  //set config file name
+  //for grid running: "$ALICE_ROOT/PWGDQ/dielectron/macros/ConfigJpsi2eeDebugTree.C"
+  //for gsi running "$TRAIN_ROOT/jpsi_JPSI/ConfigJpsi2eeDebugTree.C"
+  TString configFile("$ALICE_ROOT/PWGDQ/dielectron/macrosJPSI/ConfigJpsi_mw_pp.C");
+  //NOTE train config not there on grid, PbPb anyhow not used for correlations
+  //if ( trainConfig.Contains("PbPb") ) configFile="$TRAIN_ROOT/jpsi_JPSI/ConfigJpsi2eeDebugTreePbPb.C";
+  
+    //load dielectron configuration file
+  gROOT->LoadMacro(configFile.Data());
+
+  
+  //Do we have an MC handler?
+  Bool_t hasMC=(AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler()!=0x0);
+  
+  //create task and add it to the manager
+  AliAnalysisTaskMultiDielectron *task=new AliAnalysisTaskMultiDielectron("mwinn_JPsi");
+  if (!hasMC) task->UsePhysicsSelection();
+         //NOTE trigger selection for EMCAL triggered data...
+       task->SetTriggerMask(AliVEvent::kEMC7);
+  mgr->AddTask(task);
+  
+  //load dielectron configuration file, already done before!
+  //gROOT->LoadMacro(configFile.Data());
+  
+  //add dielectron analysis with different cuts to the task
+       //NOTE: for 11d running just taking one single configuration, see configjpsi2eeDebugTree
+  for (Int_t i=0; i<nDie; ++i){ //nDie defined in config file
+    AliDielectron *jpsi=ConfigJpsi_mw_pp(i);
+    if(jpsi) {
+      jpsi->SetDontClearArrays();
+      task->AddDielectron(jpsi);
+    }
+  }
+
+  
+  //Add event filter
+  AliDielectronEventCuts *eventCuts=new AliDielectronEventCuts("eventCuts","Vertex Track && |vtxZ|<10 && ncontrib>0");
+  eventCuts->SetRequireVertex();
+  eventCuts->SetMinVtxContributors(1);
+  eventCuts->SetVertexZ(-10.,10.);
+  //NOTE train config not there on grid, PbPb anyhow not used for correlations
+  //  if ( trainConfig.Contains("PbPb") ) eventCuts->SetCentralityRange(40.,80.);
+  task->SetEventFilter(eventCuts);
+  
+  //   task->SetTriggerOnV0AND();
+  
+  //create output container
+  AliAnalysisDataContainer *coutput1 =
+    mgr->CreateContainer("mwinn_tree",
+                         TTree::Class(),
+                         AliAnalysisManager::kExchangeContainer,
+                         "mwinn_default");
+                                                                                                
+  AliAnalysisDataContainer *cOutputHist1 =
+    mgr->CreateContainer("mwinn_QA",
+                         TList::Class(),
+                         AliAnalysisManager::kOutputContainer,
+                         "mwinn.root");
+
+  AliAnalysisDataContainer *cOutputHist2 =
+    mgr->CreateContainer("mwinn_CF",
+                         TList::Class(),
+                         AliAnalysisManager::kExchangeContainer,
+                         "mwinn.root");
+                                                                                                
+
+
+  AliAnalysisDataContainer *cOutputHist3 =
+    mgr->CreateContainer("mwinn_EventStat",
+                         TH1D::Class(),
+                         AliAnalysisManager::kOutputContainer,
+                         "mwinn.root");
+
+                                                                                                
+       //is the first output type  a problem??!
+  mgr->ConnectInput(task,  0, mgr->GetCommonInputContainer());
+  mgr->ConnectOutput(task, 0, coutput1 );
+  mgr->ConnectOutput(task, 1, cOutputHist1);
+  mgr->ConnectOutput(task, 2, cOutputHist2);
+  mgr->ConnectOutput(task, 3, cOutputHist3);
+
+  
+  return task;
+}
index ae48ffce6a9c191d5b6bb7f032b0d458fafdbdc6..72a97fcc19c72841d4686e9cb1cbf25002089e5e 100644 (file)
@@ -58,8 +58,8 @@ AliDielectron* ConfigJpsiQA_jb_PbPb(Int_t cutDefinition, TString prod="")
   if (cutDefinition<arrNames->GetEntriesFast()){
     name=arrNames->At(cutDefinition)->GetName();
   }
-  AliDielectron *die = new AliDielectron(Form("%s",name.Data()),
-                                         Form("Track cuts: %s",name.Data()));
+  AliDielectron *die = new AliDielectron(Form("%s",name.Data()),Form("Track cuts: %s",name.Data()));
+  die->SetHasMC(hasMC);
 
   //only track QA, no Pairing
   if(cutDefinition<kTRDeff) die->SetNoPairing();
@@ -159,6 +159,8 @@ void SetupTrackCuts(AliDielectron *die, Int_t cutDefinition)
   varCuts->AddCut(AliDielectronVarManager::kTPCchi2Cl,    0.0,   4.0);
   varCuts->AddCut(AliDielectronVarManager::kNclsTPC,     70.0, 160.0);
   varCuts->AddCut(AliDielectronVarManager::kKinkIndex0,   0.0);
+  if(isESD && (cutDefinition==kTOFTRD || cutDefinition==kTRD)) 
+    varCuts->AddCut(AliDielectronVarManager::kTRDchi2,    0.0,   2.0);
   if(cutDefinition!=kCutStats) cuts->AddCut(varCuts);
   
   AliDielectronTrackCuts *trkCuts = new AliDielectronTrackCuts("TrkCuts","TrkCuts");
@@ -166,13 +168,13 @@ void SetupTrackCuts(AliDielectron *die, Int_t cutDefinition)
   trkCuts->SetRequireITSRefit(kTRUE);
   trkCuts->SetRequireTPCRefit(kTRUE);
   if(cutDefinition!=kCutStats) cuts->AddCut(trkCuts);
-
+  
   /* vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv PID CUTS vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv */
   AliDielectronPID *pid = new AliDielectronPID("PID","PID");
   
   ////////////////////////////////// DATA
   if(!hasMC) {
-    pid->AddCut(AliDielectronPID::kTPC,AliPID::kPion,-100.,3.5,0.,0.,kTRUE);
+    pid->AddCut(AliDielectronPID::kTPC,AliPID::kPion,-100.,2.5,0.,0.,kTRUE);
     pid->AddCut(AliDielectronPID::kTPC,AliPID::kProton,-100.,3.5,0.,0.,kTRUE);
   }
   
index 7070465f88a74c9ebf49832101c5a036980aa1c5..2b9d8cf0c6672e38e6e271bf2721edef6a50599f 100644 (file)
@@ -76,9 +76,9 @@ AliDielectron* ConfigJpsi_jb_PbPb(Int_t cutDefinition, TString prod="")
   if (cutDefinition<arrNames->GetEntriesFast()){
     name=arrNames->At(cutDefinition)->GetName();
   }
-  AliDielectron *die = new AliDielectron(Form("%s",name.Data()),
-                                         Form("Track cuts: %s",name.Data()));
-  
+  AliDielectron *die = new AliDielectron(Form("%s",name.Data()), Form("Track cuts: %s",name.Data()));
+  die->SetHasMC(hasMC);
+
   // Monte Carlo Signals and TRD efficiency tables
   if(hasMC) {
     AddMCSignals(die);
@@ -204,6 +204,8 @@ void SetupTrackCuts(AliDielectron *die, Int_t cutDefinition)
   varCuts->AddCut(AliDielectronVarManager::kTPCchi2Cl,    0.0,   4.0);
   varCuts->AddCut(AliDielectronVarManager::kNclsTPC,     70.0, 160.0);
   varCuts->AddCut(AliDielectronVarManager::kKinkIndex0,   0.0);
+  if(isESD) 
+    varCuts->AddCut(AliDielectronVarManager::kTRDchi2,    0.0,   2.0);
   cuts->AddCut(varCuts);
   
   AliDielectronTrackCuts *trkCuts = new AliDielectronTrackCuts("TrkCuts","TrkCuts");
@@ -225,7 +227,7 @@ void SetupTrackCuts(AliDielectron *die, Int_t cutDefinition)
   
   ////////////////////////////////// DATA
   if(!hasMC) {
-    pid->AddCut(AliDielectronPID::kTPC,AliPID::kPion,-100.,3.5,0.,0.,kTRUE);
+    pid->AddCut(AliDielectronPID::kTPC,AliPID::kPion,-100.,2.5,0.,0.,kTRUE);
     pid->AddCut(AliDielectronPID::kTPC,AliPID::kProton,-100.,3.5,0.,0.,kTRUE);
     
     if(cutDefinition==kTRD || cutDefinition>=kTOFTRD || cutDefinition>=kTOFTRD2) 
@@ -748,7 +750,7 @@ void InitCF(AliDielectron* die, Int_t cutDefinition)
     if(cutDefinition!=kSubRndm) {
       cf->AddVariable(AliDielectronVarManager::kPt,"0.8, 1.0, 1.1, 1.2, 1.5, 100.0",kTRUE);
       cf->AddVariable(AliDielectronVarManager::kTPCnSigmaEle,"-3,-2.5,-2,2,2.5,3",kTRUE);
-      //cf->AddVariable(AliDielectronVarManager::kTPCnSigmaPio,"3.5,4.0,4.5,5.0,100",kTRUE);
+      cf->AddVariable(AliDielectronVarManager::kTPCnSigmaPio,"2.5,3.0,3.5,4.0,4.5,100",kTRUE);
       //    cf->AddVariable(AliDielectronVarManager::kTPCnSigmaPro,"3.5,4.0,4.5,5.0,100",kTRUE);
       cf->AddVariable(AliDielectronVarManager::kTRDpidQuality,"3.5, 4.5, 5.5, 6.5",kTRUE);
        
diff --git a/PWGDQ/dielectron/macrosJPSI/ConfigJpsi_mw_pp.C b/PWGDQ/dielectron/macrosJPSI/ConfigJpsi_mw_pp.C
new file mode 100644 (file)
index 0000000..3660fbe
--- /dev/null
@@ -0,0 +1,315 @@
+void InitHistograms(AliDielectron *die, Int_t cutDefinition);
+void InitCF(AliDielectron* die, Int_t cutDefinition);
+
+void SetupTrackCuts(AliDielectron *die, Int_t cutDefinition);
+void SetupPairCuts(AliDielectron *die, Int_t cutDefinition);
+
+AliESDtrackCuts *SetupESDtrackCuts(Int_t cutDefinition);
+
+TString names=("trackQ+highpT+11dE/p(oneleg)+55<dEdx<120");
+TObjArray *arrNames=names.Tokenize(";");
+
+const Int_t nDie=arrNames->GetEntries();
+
+AliDielectron* ConfigJpsi_mw_pp(Int_t cutDefinition)
+{
+  //
+  // Setup the instance of AliDielectron
+  //
+  
+  // create the actual framework object
+  TString name=Form("%02d",cutDefinition);
+  if (cutDefinition<arrNames->GetEntriesFast()){
+    name=arrNames->At(cutDefinition)->GetName();
+  }
+  AliDielectron *die =
+    new AliDielectron(Form("%s",name.Data()),
+                      Form("Track cuts: %s",name.Data()));
+  
+  // cut setup
+  SetupTrackCuts(die,cutDefinition);
+  SetupPairCuts(die,cutDefinition);
+  
+  //
+  // histogram setup
+  // only if an AliDielectronHistos object is attached to the
+  //  dielectron framework histograms will be filled
+  //
+  InitHistograms(die,cutDefinition);
+
+  // init the debug tree. Use this only if you know what you are doing!!!
+  InitDebugTree(die,cutDefinition);
+  
+  return die;
+}
+
+//______________________________________________________________________________________
+void SetupTrackCuts(AliDielectron *die, Int_t cutDefinition)
+{
+  //
+  // Setup the track cuts
+  //
+
+  AliDielectronCutGroup* cuts = new AliDielectronCutGroup("cuts","cuts",AliDielectronCutGroup::kCompAND);
+  die->GetTrackFilter().AddCuts(cuts);
+  
+  //Pt + nsigma cut
+  AliDielectronVarCuts *pt = new AliDielectronVarCuts("Pt>1.5+55<dEdx<120","Pt>1.5");
+       
+         pt->AddCut(AliDielectronVarManager::kPt,1.5,1e30);
+   //pt->AddCut(AliDielectronVarManager::kTPCsignal,70.,100.);//was before 60!!
+        pt->AddCut(AliDielectronVarManager::kNclsTPC,50.,160.);
+               //here also cut for 0.9 eta range of legs
+        pt->AddCut(AliDielectronVarManager::kEta,-0.9,0.9);
+        
+        /*
+  pt->AddCut(AliDielectronVarManager::kPt,.6,1e30);
+  //  pt->AddCut(AliDielectronVarManager::kTPCsignal,60.,100.);
+  pt->AddCut(AliDielectronVarManager::kTPCnSigmaEle,-3.,5.);
+  */
+       pt->AddCut(AliDielectronVarManager::kTPCsignal,55.,120.);//to be checked, usually rather 70, but after check in reduced trees and look at QA plots from GSI and consultation with Jens from 55 to 120 chosen, lower (seems to be also logical due to relative pull down of electron compared to pion line (MIP usually set to 50 by default)  by lower TPC gain )
+  cuts->AddCut(pt);
+  
+  //ESD quality cuts
+  cuts->AddCut(SetupESDtrackCuts(cutDefinition));
+  
+  //remove conversions tagged by the V0 tender supply
+  AliDielectronTrackCuts *noconv=new AliDielectronTrackCuts("noConv","noConv");
+  noconv->SetV0DaughterCut(AliPID::kElectron,kTRUE);
+  cuts->AddCut(noconv);
+       
+  
+}
+
+//______________________________________________________________________________________
+void SetupPairCuts(AliDielectron *die, Int_t cutDefinition)
+{
+  //
+  // Setup the pair cuts
+  //
+  
+   //
+  // Setup the pair cuts
+  //
+  //Invarian mass selection
+  AliDielectronVarCuts *invMassCut=new AliDielectronVarCuts("InvMass","1.6<M<5.0, pT>3.");
+  // Minv > 1.8
+  invMassCut->AddCut(AliDielectronVarManager::kM,1.6,5.0);
+//invMassCut->AddCut(AliDielectronVarManager::kPairType,1.);
+  // ptJpsi > 1GeV
+  invMassCut->AddCut(AliDielectronVarManager::kPt,3.,1e30);//pT in the end also more stringent 5 or something like this
+  die->GetPairFilter().AddCuts(invMassCut);
+
+  AliDielectronVarCuts *gammaCut=new AliDielectronVarCuts("gammaCut","gammaCut");
+  gammaCut->AddCut(AliDielectronVarManager::kM,0.,.05);// was first at 0.05
+  die->GetPairPreFilter().AddCuts(gammaCut);
+
+       //EMCAL cut only on one leg!
+  AliDielectronPID *EMCAL = new AliDielectronPID("EMCAL","EMCAL nSigma e>-3. +e<4.");
+       EMCAL->AddCut(AliDielectronPID::kEMCAL, AliPID::kElectron,-3.,4.);
+
+       AliDielectronVarCuts *ptoneleg = new AliDielectronVarCuts("Pt>2.","Pt>2.");//finally perhaps 3.5, just more open for playing
+  // pt > 0.7GeV
+  ptoneleg->AddCut(AliDielectronVarManager::kPt,2.0,1e30);
+
+       AliDielectronPairLegCuts *EMCALAny = new AliDielectronPairLegCuts("EMCALpid any","EMCALpid any");
+       EMCALAny->GetLeg1Filter().AddCuts(EMCAL);
+       EMCALAny->GetLeg1Filter().AddCuts(ptoneleg);
+       EMCALAny->GetLeg2Filter().AddCuts(EMCAL);
+       EMCALAny->GetLeg2Filter().AddCuts(ptoneleg);
+       EMCALAny->SetCutType(AliDielectronPairLegCuts::kAnyLeg);
+       die->GetPairFilter().AddCuts(EMCALAny);
+
+
+
+  die->SetPreFilterUnlikeOnly();
+}
+
+//______________________________________________________________________________________
+AliESDtrackCuts *SetupESDtrackCuts(Int_t cutDefinition)
+{
+  //
+  // Setup default AliESDtrackCuts
+  //
+  AliESDtrackCuts *esdTrackCuts = new AliESDtrackCuts;
+  
+  esdTrackCuts->SetMaxDCAToVertexZ(3.0);
+  esdTrackCuts->SetMaxDCAToVertexXY(1.0); 
+  esdTrackCuts->SetRequireTPCRefit(kTRUE);
+  //esdTrackCuts->SetRequireITSRefit(kTRUE);
+  esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
+//   esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
+  
+  esdTrackCuts->SetMinNClustersTPC(50);
+  esdTrackCuts->SetMaxChi2PerClusterTPC(4);
+
+  return esdTrackCuts;
+}
+
+
+//______________________________________________________________________________________
+void InitHistograms(AliDielectron *die, Int_t cutDefinition)
+{
+  //
+  // Initialise the histograms
+  //
+  
+//Setup histogram classes
+  AliDielectronHistos *histos=
+    new AliDielectronHistos(die->GetName(),
+                            die->GetTitle());
+  
+  //Initialise histogram classes
+  histos->SetReservedWords("Track;Pair");
+  
+  //Event class
+  histos->AddClass("Event");
+  
+  //Track classes
+  //to fill also track info from 2nd event loop until 2
+  for (Int_t i=0; i<2; ++i){
+    histos->AddClass(Form("Track_%s",AliDielectron::TrackClassName(i)));
+  }
+  
+  //Pair classes
+  // to fill also mixed event histograms loop until 10
+  for (Int_t i=0; i<3; ++i){
+    histos->AddClass(Form("Pair_%s",AliDielectron::PairClassName(i)));
+  }
+  
+  //add histograms to event class
+  histos->UserHistogram("Event","VtxZ","Vertex Z;Z[cm]",300,-15.,15.,AliDielectronVarManager::kZvPrim);
+  
+  //add histograms to Track classes
+  histos->UserHistogram("Track","Pt","Pt;Pt [GeV];#tracks",200,0,20.,AliDielectronVarManager::kPt);
+  histos->UserHistogram("Track","dEdx_P","dEdx;P [GeV];TPC signal (arb units);#tracks",
+                        200,0.2,20.,100,0.,200.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTPCsignal,kTRUE);
+  histos->UserHistogram("Track","TPCnSigmaEle_P","TPC number of sigmas Electrons;P [GeV];TPC number of sigmas Electrons;#tracks",
+                        200,0.2,20.,100,-10.,10.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTPCnSigmaEle,kTRUE);
+  histos->UserHistogram("Track","TPCnSigmaKao_P","TPC number of sigmas Kaons;P [GeV];TPC number of sigmas Kaons;#tracks",
+                        200,0.2,20.,100,-10.,10.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTPCnSigmaKao,kTRUE);
+  histos->UserHistogram("Track","TPCnSigmaPio_P","TPC number of sigmas Pions;P [GeV];TPC number of sigmas Pions;#tracks",
+                        200,0.2,20.,100,-10.,10.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTPCnSigmaPio,kTRUE);
+  
+  
+  histos->UserHistogram("Track","TOFnSigmaEle_P","TOF number of sigmas Electrons;P [GeV];TOF number of sigmas Electrons;#tracks",
+                        200,0.2,20.,100,-10.,10.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTOFnSigmaEle,kTRUE);
+  histos->UserHistogram("Track","TOFnSigmaKao_P","TOF number of sigmas Kaons;P [GeV];TOF number of sigmas Kaons;#tracks",
+                        200,0.2,20.,100,-10.,10.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTOFnSigmaKao,kTRUE);
+  histos->UserHistogram("Track","TOFnSigmaPro_P","TOF number of sigmas Protons;P [GeV];TOF number of sigmas Protons;#tracks",
+                        200,0.2,20.,100,-10.,10.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTOFnSigmaPro,kTRUE);
+                                                                                               
+histos->UserHistogram("Track","EmCalnSigmaEle_P","EMCAL number of sigmas Electrons;P [GeV];EMCAL number of sigmas Electrons;#tracks",
+                        200,0.2,20.,100,-10.,10.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kEMCALnSigmaEle,kTRUE);
+  
+  histos->UserHistogram("Track","dXY","dXY;dXY [cm];#tracks",200,-2.,2.,AliDielectronVarManager::kImpactParXY);
+  
+  histos->UserHistogram("Track","TPCnCls","Number of Clusters TPC;TPC number clusteres;#tracks",159,0.,159.,AliDielectronVarManager::kNclsTPC);
+  histos->UserHistogram("Track","TPCnClsIter1","Number of Clusters TPC;TPC number clusteres;#tracks",160,-0.5,159.5,AliDielectronVarManager::kNclsTPCiter1);
+  histos->UserHistogram("Track","TPCsignalN","Number of Clusters TPC;TPC number clusteres;#tracks",160,-0.5,159.5,AliDielectronVarManager::kTPCsignalN);
+  
+  //add histograms to Pair classes
+  histos->UserHistogram("Pair","InvMass","Inv.Mass;Inv. Mass [GeV];#pairs",
+                        201,-.01,4.01,AliDielectronVarManager::kM);
+  histos->UserHistogram("Pair","Rapidity","Rapidity;Rapidity;#pairs",
+                        100,-2.,2.,AliDielectronVarManager::kY);
+  histos->UserHistogram("Pair","OpeningAngle","Opening angle;angle",
+                        100,0.,3.15,AliDielectronVarManager::kOpeningAngle);
+  histos->UserHistogram("Pair","Chi2/NDF","#Chi^{2}/NDF;#Chi^{2}/NDF",
+                        100, 0., 20., AliDielectronVarManager::kChi2NDF);
+  
+  die->SetHistogramManager(histos);
+}
+
+//______________________________________________________________________________________
+void InitDebugTree(AliDielectron *die, Int_t cutDefinition)
+{
+  //
+  // Create a debug tree manager
+  // it should be only defined for ONE AliDielectron manager!!!
+  
+  //follwing lines taken out for grid compatibility and replaced by lines after this!
+  /*
+  AliDielectronDebugTree *tree=new AliDielectronDebugTree(Form("%sDebug",die->GetName()), "DielectronDebugTree");
+  tree->SetOutputFileName(Form("jpsi_debug%02d.root",cutDefinition));
+  TString addoutput=gSystem->Getenv("ADD_OUTPUT_FILES");
+  if (addoutput.Length()) addoutput+=",";
+  addoutput+=Form("jpsi_debug%02d.root",cutDefinition);
+  gSystem->Setenv("ADD_OUTPUT_FILES",addoutput.Data());
+  */
+
+  AliDielectronDebugTree *tree=new AliDielectronDebugTree(Form("%sDebug",die->GetName()), "DielectronDebugTree");
+  tree->SetOutputFileName("Jpsi_debugTree.root"); 
+  //  tree->AddPairVariable(AliDielectronVarManager::kPx);
+  //  tree->AddPairVariable(AliDielectronVarManager::kPy);
+  //  tree->AddPairVariable(AliDielectronVarManager::kPz);
+  tree->AddPairVariable(AliDielectronVarManager::kZvPrim);
+  tree->AddPairVariable(AliDielectronVarManager::kPt);
+  tree->AddPairVariable(AliDielectronVarManager::kY);
+  tree->AddPairVariable(AliDielectronVarManager::kPhi);
+  tree->AddPairVariable(AliDielectronVarManager::kM);
+  tree->AddPairVariable(AliDielectronVarManager::kPairType);
+  //  tree->AddPairVariable(AliDielectronVarManager::kLegDist);     // needs fix in KF package
+  //  tree->AddPairVariable(AliDielectronVarManager::kLegDistXY);
+  tree->AddPairVariable(AliDielectronVarManager::kOpeningAngle);
+  tree->AddPairVariable(AliDielectronVarManager::kChi2NDF);
+  tree->AddPairVariable(AliDielectronVarManager::kThetaCS);
+  tree->AddPairVariable(AliDielectronVarManager::kThetaHE);
+  
+  //   leg variables
+  //  tree->AddLegVariable(AliDielectronVarManager::kPx);
+  //  tree->AddLegVariable(AliDielectronVarManager::kPy);
+  //  tree->AddLegVariable(AliDielectronVarManager::kPz);
+  tree->AddLegVariable(AliDielectronVarManager::kPt);
+  tree->AddLegVariable(AliDielectronVarManager::kP);
+  //  tree->AddLegVariable(AliDielectronVarManager::kE);
+  //  tree->AddLegVariable(AliDielectronVarManager::kM);
+  tree->AddLegVariable(AliDielectronVarManager::kEta);
+  tree->AddLegVariable(AliDielectronVarManager::kPhi);
+  tree->AddLegVariable(AliDielectronVarManager::kImpactParXY);
+  tree->AddLegVariable(AliDielectronVarManager::kImpactParZ);
+  
+  tree->AddLegVariable(AliDielectronVarManager::kPIn);
+  tree->AddLegVariable(AliDielectronVarManager::kTPCsignal);
+  tree->AddLegVariable(AliDielectronVarManager::kTPCsignalN);
+  tree->AddLegVariable(AliDielectronVarManager::kNclsTPC);
+//   tree->AddLegVariable(AliDielectronVarManager::kNFclsTPCr);
+//   tree->AddLegVariable(AliDielectronVarManager::kNFclsTPCrFrac);
+  tree->AddLegVariable(AliDielectronVarManager::kTPCchi2Cl);
+  tree->AddLegVariable(AliDielectronVarManager::kITSchi2Cl);
+  tree->AddLegVariable(AliDielectronVarManager::kTrackStatus);
+  
+  tree->AddLegVariable(AliDielectronVarManager::kTPCnSigmaEle);
+  tree->AddLegVariable(AliDielectronVarManager::kTPCnSigmaPio);
+//   tree->AddLegVariable(AliDielectronVarManager::kTPCnSigmaMuo);
+  tree->AddLegVariable(AliDielectronVarManager::kTPCnSigmaKao);
+  tree->AddLegVariable(AliDielectronVarManager::kTPCnSigmaPro);
+
+  tree->AddLegVariable(AliDielectronVarManager::kEMCALnSigmaEle);
+  
+  tree->AddLegVariable(AliDielectronVarManager::kKinkIndex0);
+  
+//   tree->AddLegVariable(AliDielectronVarManager::kITSclusterMap);
+  tree->AddLegVariable(AliDielectronVarManager::kITSLayerFirstCls);
+  
+  tree->AddLegVariable(AliDielectronVarManager::kTOFnSigmaEle);
+  //  tree->AddLegVariable(AliDielectronVarManager::kTOFnSigmaPio);
+  //  tree->AddLegVariable(AliDielectronVarManager::kTOFnSigmaMuo);
+  //  tree->AddLegVariable(AliDielectronVarManager::kTOFnSigmaKao);
+  //  tree->AddLegVariable(AliDielectronVarManager::kTOFnSigmaPro);
+
+  //  tree->AddLegVariable(AliDielectronVarManager::kTRDpidQuality);
+  //  tree->AddLegVariable(AliDielectronVarManager::kTRDprobEle);
+  //  tree->AddLegVariable(AliDielectronVarManager::kTRDprobPio);
+  
+  Bool_t hasMC=(AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler()!=0x0);
+  if (hasMC){
+    tree->AddLegVariable(AliDielectronVarManager::kPdgCode);
+    tree->AddLegVariable(AliDielectronVarManager::kPdgCodeMother);
+    tree->AddLegVariable(AliDielectronVarManager::kPdgCodeGrandMother);
+  }
+  
+  die->SetDebugTree(tree);
+}
+
+