]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Merge remote-tracking branch 'origin/flatdev' into mergeFlat2Master
authormkrzewic <mikolaj.krzewicki@cern.ch>
Tue, 23 Sep 2014 12:50:46 +0000 (14:50 +0200)
committermkrzewic <mikolaj.krzewicki@cern.ch>
Tue, 23 Sep 2014 12:50:46 +0000 (14:50 +0200)
Conflicts:
STEER/AOD/AliAODMCParticle.h
STEER/CMakelibSTEERBase.pkg
STEER/ESD/AliESDEvent.h
STEER/STEERBase/AliMCEvent.cxx
STEER/STEERBase/AliMCEvent.h
STEER/STEERBase/AliVEvent.h
STEER/STEERBase/AliVParticle.h
STEER/STEERBase/AliVTrack.h

25 files changed:
1  2 
ANALYSIS/AliAnalysisManager.cxx
HLT/ITS/AliHLTITSAgent.cxx
PWG/EMCAL/AliPicoTrack.h
PWG/FLOW/Tasks/AliFlowTrackCuts.h
PWGJE/EMCALJetTasks/AliEmcalJet.h
STEER/AOD/AliAODEvent.cxx
STEER/AOD/AliAODEvent.h
STEER/AOD/AliAODTrack.cxx
STEER/AOD/AliAODTrack.h
STEER/CMakelibSTEERBase.pkg
STEER/ESD/AliESDEvent.cxx
STEER/ESD/AliESDEvent.h
STEER/ESD/AliESDtrack.cxx
STEER/ESD/AliESDtrack.h
STEER/STEERBase/AliExternalTrackParam.h
STEER/STEERBase/AliMCEvent.cxx
STEER/STEERBase/AliMCEvent.h
STEER/STEERBase/AliTPCPIDResponse.cxx
STEER/STEERBase/AliVEvent.h
STEER/STEERBase/AliVParticle.h
STEER/STEERBase/AliVTrack.h
TPC/Calib/AliTPCcalibAlign.cxx
TPC/Calib/AliTPCcalibAlign.h
TPC/Calib/AliTPCcalibGainMult.cxx
TPC/TPCcalibLinkDef.h

Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index 3731a820ab071a978c1061ee72c5b6a5407a89e3,acbb0c0f4f0dcc67d2176e3066585bd83f49fe00..c4fb9a3de8afba1155520419e69c9e2dd782616a
@@@ -96,8 -96,9 +96,11 @@@ set ( SRC
      STEERBase/AliVTOFHit.cxx
      STEERBase/AliVTOFMatch.cxx
      STEERBase/AliVTOFcluster.cxx
 +    STEERBase/AliVMultiplicity.cxx
 +    STEERBase/AliGenHepMCEventHeader.cxx
+     STEERBase/AliVMisc.cxx
+     STEERBase/AliVfriendTrack.cxx
+     STEERBase/AliVfriendEvent.cxx
    )
  
  string(REPLACE ".cxx" ".h" HDRS  "${SRCS}")
Simple merge
index 4f8d359903b18b2b00e6ab3e539154c17eb85e40,db0bcae1f37d1dad705f7218e982ad84d3e0d825..e0a23d756af93346933e7aa93bf5ceee1f123c75
@@@ -55,8 -51,7 +55,6 @@@ class AliESDHLTtrack
  class AliESDVertex;
  class AliESDPmdTrack;
  class AliESDFMD;
- class AliESDkink;
- class AliESDv0;
 -class AliMultiplicity;
  class AliRawDataErrorLog;
  class AliESDRun;
  class AliESDTrdTrigger;
Simple merge
Simple merge
index 44515d6a402d12db97c32f921e962f7f3113c15d,be23a424aafc39f6d3caf1a29ca4542cf9144975..667a30f97d98956c05aaccf0820c6c10658b149b
@@@ -859,97 -822,28 +856,106 @@@ TString AliMCEvent::GetGenerator(Int_t 
      AliGenEventHeader* gh=(AliGenEventHeader*)lh->At(i);
      TString genname=gh->GetName();
      Int_t npart=gh->NProduced();
 -    if(index>=nsumpart && index<(nsumpart+npart)) return genname;
 -    nsumpart+=npart;
 +    if (i == 0) npart = nsumpart;
 +    if(index < nsumpart && index >= (nsumpart-npart)) return genname;
 +    nsumpart-=npart;
 +  }
 +  TString empty="";
 +  return empty;
 +}
 +
 +void AliMCEvent::AssignGeneratorIndex() {
 +  //
 +  // Assign the generator index to each particle
 +  //
 +  TList* list = GetCocktailList();
 +  if (fNprimaries <= 0) {
 +    AliWarning(Form("AliMCEvent::AssignGeneratorIndex: no primaries %10d\n", fNprimaries));
 +    return;
 +}
 +  if (!list) {
 +    return;
 +  } else {
 +    Int_t nh = list->GetEntries();
 +    Int_t nsumpart = fNprimaries;
 +    for(Int_t i = nh-1; i >= 0; i--){
 +      AliGenEventHeader* gh = (AliGenEventHeader*)list->At(i);
 +      Int_t npart = gh->NProduced();
 +      if (i==0) {
 +      if (npart != nsumpart) {
 +        //      printf("Header inconsistent ! %5d %5d \n", npart, nsumpart);
 +      }
 +      npart = nsumpart;
 +      }
 +      //
 +      // Loop over primary particles for generator i
 +      for (Int_t j = nsumpart-1; j >= nsumpart-npart; j--) {
 +      AliVParticle* part = GetTrack(j);
 +      if (!part) {
 +        AliWarning(Form("AliMCEvent::AssignGeneratorIndex: 0-pointer to particle j %8d npart %8d nsumpart %8d Nprimaries %8d\n", 
 +                        j, npart, nsumpart, fNprimaries));
 +        break;
 +      }
 +      part->SetGeneratorIndex(i);
 +      Int_t dmin = part->GetFirstDaughter();
 +      Int_t dmax = part->GetLastDaughter();
 +      if (dmin == -1) continue;
 +      AssignGeneratorIndex(i, dmin, dmax);
 +      } 
 +      nsumpart -= npart;
      }
 -    TString empty="";
 -    return empty;
 - 
 +  }
 +}
 +void AliMCEvent::AssignGeneratorIndex(Int_t index, Int_t dmin, Int_t dmax) {
 +  for (Int_t k = dmin; k <= dmax; k++) {
 +    AliVParticle* dpart = GetTrack(k);
 +    dpart->SetGeneratorIndex(index);
 +    Int_t d1 = dpart->GetFirstDaughter();
 +    Int_t d2 = dpart->GetLastDaughter();
 +    if (d1 > -1) {
 +      AssignGeneratorIndex(index, d1, d2);
 +    }
 +  }
  }
  
 -Bool_t  AliMCEvent::GetCocktailGenerator(Int_t index,TString &nameGen){
 -  //method that gives the generator for a given particle with label index (or that of the corresponding primary)
 -   nameGen=GetGenerator(index);
 -   if(nameGen.Contains("nococktailheader") )return 0;
 +   Bool_t  AliMCEvent::GetCocktailGenerator(Int_t index,TString &nameGen){
 +     //method that gives the generator for a given particle with label index (or that of the corresponding primary)
 +     AliVParticle* mcpart0 = (AliVParticle*) (GetTrack(index));
 +     if(!mcpart0){
 +       printf("AliMCEvent-BREAK: No valid AliMCParticle at label %i\n",index);
 +       return 0;
 +     }
 +     /*
 +     Int_t ig = mcpart0->GetGeneratorIndex();
 +     if (ig != -1) {
 +       nameGen = ((AliGenEventHeader*)GetCocktailList()->At(ig))->GetName();
 +       return 1;
 +     }
 +     */
 +    nameGen=GetGenerator(index);
 +    if(nameGen.Contains("nococktailheader") )return 0;
 +    Int_t lab=index;
 +
 +    while(nameGen.IsWhitespace()){
 +      
 +      
 +    AliVParticle* mcpart = (AliVParticle*) (GetTrack(lab));
 + 
 +     if(!mcpart){
 +      printf("AliMCEvent-BREAK: No valid AliMCParticle at label %i\n",lab);
 +      break;}
 +     Int_t mother=0;
 +     mother = mcpart->GetMother();
     
+    while(nameGen.IsWhitespace()){
+      
+      AliMCParticle* mcpart = (AliMCParticle*) (GetTrack(index));
+    
+     if(!mcpart){
+       printf("AliMCEvent-BREAK: No valid AliMCParticle at label %i\n",index);
+       break;
+     }
+     Int_t mother = mcpart->GetMother();
      if(mother<0){
        printf("AliMCEvent - BREAK: Reached primary particle without valid mother\n");
        break;
     }
     
     return 1;
   }
+ }
  
 -AliVEvent::EDataLayoutType AliMCEvent::GetDataLayoutType() const {return AliVEvent::kMC;}
 +void  AliMCEvent::SetParticleArray(TClonesArray* mcParticles) 
 +  {
 +    fMCParticles = mcParticles; 
 +    fNparticles = fMCParticles->GetEntries(); 
 +    fExternal = kTRUE; 
 +    fNprimaries = 0;
 +    struct Local {
 +      static Int_t binaryfirst(TClonesArray* a, Int_t low, Int_t high)
 +      {
 +      Int_t mid  = low + (high - low)/2;
 +      if (low > a->GetEntries()-1) return (a->GetEntries()-1);
 +      if (!((AliVParticle*) a->At(mid))->IsPrimary()) {
 +        if (mid > 1 && !((AliVParticle*) a->At(mid-1))->IsPrimary()) {
 +          return binaryfirst(a, low, mid-1);
 +        } else {
 +          return mid;
 +        } 
 +      } else {
 +        return binaryfirst(a, mid+1, high);
 +      }
 +      }
 +    };
 +    fNprimaries = Local::binaryfirst(mcParticles, 0, mcParticles->GetEntries()-1);
 +    AssignGeneratorIndex();
 +  }
 +
  
  ClassImp(AliMCEvent)
Simple merge
Simple merge
index be998dee9bf2d06a8b1620437d3cc383b40addad,0795d5b00e6a9d90378832e0ed0b8fa62d4409e3..d8b76a4ea1b3603f766a5d315083ca1105ad02e9
  #include "TRefArray.h"
  #include "AliTOFHeader.h"
  #include "AliVTrdTrack.h"
 -
 +#include "AliVMultiplicity.h"
+ class AliVfriendEvent;
  class AliCentrality;
  class AliEventplane;
  class AliVVZERO;
  class AliVZDC;
  class AliVMFT;   // AU
+ class AliESDkink;
+ class AliESDv0;
+ class AliESDVertex;
+ class AliVTrack;
  
  class AliVEvent : public TObject {
 - private:
 -  // disable some methods from AliVEvent interface
 -
 -  ULong64_t GetTriggerMaskNext50() const { return 0; }
  
  public:
+   enum EDataLayoutType { kESD, kMC, kAOD, kMixed, kFlat };
    enum EOfflineTriggerTypes { 
        kMB           = BIT(0), // Minimum bias trigger, i.e. interaction trigger, offline SPD or V0 selection
        kINT7         = BIT(1), // V0AND trigger, offline V0 selection
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge