Coverity corrections, mainly FORWARD_NULL
authorgconesab <gconesab@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 1 Oct 2010 09:32:17 +0000 (09:32 +0000)
committergconesab <gconesab@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 1 Oct 2010 09:32:17 +0000 (09:32 +0000)
AliMCAnalysisUtils: Add new type of MC tag for negative labels

PWG4/PartCorrBase/AliCaloTrackAODReader.cxx
PWG4/PartCorrBase/AliCaloTrackESDReader.cxx
PWG4/PartCorrBase/AliCaloTrackReader.cxx
PWG4/PartCorrBase/AliCalorimeterUtils.cxx
PWG4/PartCorrBase/AliMCAnalysisUtils.cxx
PWG4/PartCorrBase/AliMCAnalysisUtils.h

index ef90778..97783c7 100755 (executable)
@@ -74,16 +74,22 @@ void AliCaloTrackAODReader::SetInputOutputMCEvent(AliVEvent* input, AliAODEvent*
   // Connect the data pointers
   // If input is AOD, do analysis with input, if not, do analysis with the output aod.
 
-         //printf("AODInputHandler %p, MergeEvents %d \n",aodIH, aodIH->GetMergeEvents());
+  //printf("AODInputHandler %p, MergeEvents %d \n",aodIH, aodIH->GetMergeEvents());
 
   Bool_t tesd = kFALSE ; 
   Bool_t taod = kTRUE ; 
   if ( strcmp(input->GetName(), "AliMixedEvent") == 0 ) {
     AliMultiEventInputHandler* multiEH = dynamic_cast<AliMultiEventInputHandler*>((AliAnalysisManager::GetAnalysisManager())->GetInputEventHandler());
-    if (multiEH->GetFormat() == 0 ) {
-      tesd = kTRUE ; 
-    } else if (multiEH->GetFormat() == 1) {
-      taod = kTRUE ; 
+    if(multiEH){
+      if (multiEH->GetFormat() == 0 ) {
+        tesd = kTRUE ; 
+      } else if (multiEH->GetFormat() == 1) {
+        taod = kTRUE ; 
+      }
+    }
+    else{
+      printf("AliCaloTrackAODReader::SetInputOutputMCEvent() - MultiEventHandler is NULL");
+      abort();
     }
   }
   if (strcmp(input->GetName(),"AliESDEvent") == 0) {
index 2562064..ddcb489 100755 (executable)
@@ -70,8 +70,14 @@ void AliCaloTrackESDReader::SetInputOutputMCEvent(AliVEvent* esd, AliAODEvent* a
 
   if ( strcmp(esd->GetName(), "AliMixedEvent") == 0 ) {
     AliMultiEventInputHandler* multiEH = dynamic_cast<AliMultiEventInputHandler*>((AliAnalysisManager::GetAnalysisManager())->GetInputEventHandler());
-    if (multiEH->GetFormat() == 0 ) {
-      tesd = kTRUE ; 
+    if(multiEH){
+      if (multiEH->GetFormat() == 0 ) {
+        tesd = kTRUE ; 
+      }
+    }
+    else{
+      printf("AliCaloTrackESDReader::SetInputOutputMCEvent() - MultiEventHandler is NULL");
+      abort();
     }
   }
   if (strcmp(esd->GetName(),"AliESDEvent") == 0) {
index 5380ef2..e5f74d7 100755 (executable)
@@ -233,13 +233,13 @@ Bool_t AliCaloTrackReader::ComparePtHardAndJetPt(){
        if(!fReadStack) return kTRUE; //Information not filtered to AOD
        
        if(!strcmp(GetGenEventHeader()->ClassName(), "AliGenPythiaEventHeader")){
-               TParticle * jet =  new TParticle;
+               TParticle * jet =  0;
                AliGenPythiaEventHeader* pygeh= (AliGenPythiaEventHeader*) GetGenEventHeader();
                Int_t nTriggerJets =  pygeh->NTriggerJets();
                Float_t ptHard = pygeh->GetPtHard();
                
                //if(fDebug > 1) printf("AliMCAnalysisUtils::PythiaEventHeader: Njets: %d, pT Hard %f\n",nTriggerJets, ptHard);
-           Float_t tmpjet[]={0,0,0,0};
+    Float_t tmpjet[]={0,0,0,0};
                for(Int_t ijet = 0; ijet< nTriggerJets; ijet++){
                        pygeh->TriggerJet(ijet, tmpjet);
                        jet = new TParticle(94, 21, -1, -1, -1, -1, tmpjet[0],tmpjet[1],tmpjet[2],tmpjet[3], 0,0,0,0);
@@ -251,8 +251,9 @@ Bool_t AliCaloTrackReader::ComparePtHardAndJetPt(){
                                return kFALSE;
                        }
                }
+    if(jet) delete jet; 
        }
-       
+         
        return kTRUE ;
        
 }
index 1e25b49..1a7c6d1 100755 (executable)
@@ -113,25 +113,33 @@ Bool_t AliCalorimeterUtils::CheckCellFiducialRegion(AliVCluster* cluster, AliVCa
       cellsCumul =  mixEvent->GetPHOSCellsCumul() ; 
       numberOfCells = mixEvent->GetNumberOfPHOSCells() ;
     } 
-    Int_t startCell = cellsCumul[iev] ; 
-    Int_t endCell   = (iev+1 < nMixedEvents)?cellsCumul[iev+1]:numberOfCells;
+    
+    if(cellsCumul){
+      
+      Int_t startCell = cellsCumul[iev] ; 
+      Int_t endCell   = (iev+1 < nMixedEvents)?cellsCumul[iev+1]:numberOfCells;
       //Find cells with maximum amplitude
-    for(Int_t i = 0; i < cluster->GetNCells() ; i++){
-      Int_t absId = cluster->GetCellAbsId(i) ;
-      for (Int_t j = startCell; j < endCell ;  j++) {
-        Short_t cellNumber; 
-        Double_t amp ; 
-        Double_t time; 
-        cells->GetCell(j, cellNumber, amp, time) ; 
-        if (absId == cellNumber) {
-          if(amp > ampMax){
-            ampMax   = amp;
-            absIdMax = absId;
-          }        
+      for(Int_t i = 0; i < cluster->GetNCells() ; i++){
+        Int_t absId = cluster->GetCellAbsId(i) ;
+        for (Int_t j = startCell; j < endCell ;  j++) {
+          Short_t cellNumber; 
+          Double_t amp ; 
+          Double_t time; 
+          cells->GetCell(j, cellNumber, amp, time) ; 
+          if (absId == cellNumber) {
+            if(amp > ampMax){
+              ampMax   = amp;
+              absIdMax = absId;
+            }        
+          }
         }
-      }
+      }//loop on cluster cells
+    }// cells cumul available
+    else {
+      printf("AliCalorimeterUtils::CheckCellFiducialRegion() - CellsCumul is NULL!!!\n");
+      abort();
     }
-  } else {
+  } else {//Normal SE Events
     for(Int_t i = 0; i < cluster->GetNCells() ; i++){
       Int_t absId = cluster->GetCellAbsId(i) ;
       Float_t amp      = cells->GetCellAmplitude(absId);
@@ -285,8 +293,13 @@ Int_t AliCalorimeterUtils::GetModuleNumber(AliAODPWG4Particle * particle, AliVEv
       else {
         Fatal("GetModuleNumber(PWG4AOD)", "Stack not available, stop!");
       }
-        
-      fPHOSGeo->ImpactOnEmc(primary,mod,z,x) ;
+      
+      if(primary){
+        fPHOSGeo->ImpactOnEmc(primary,mod,z,x) ;
+      }
+      else{
+        Fatal("GetModuleNumber(PWG4AOD)", "Primary not available, stop!");
+      }
       return mod;
     }
     // Input are ESDs or AODs, get the PHOS module number like this.
@@ -562,20 +575,20 @@ void AliCalorimeterUtils::Print(const Option_t * opt) const
 Float_t AliCalorimeterUtils::RecalibrateClusterEnergy(AliVCluster * cluster, AliVCaloCells * cells){
        // Recalibrate the cluster energy, considering the recalibration map and the energy of the cells that compose the cluster.
 
-       if(!cells) {
-               Fatal("RecalibrateClusterEnergy()","Cells pointer does not exist!");
-       }
+  //Initialize some used variables
+       Float_t energy   = 0;
+       Int_t absId      = -1;
+       Int_t icol = -1, irow = -1, iRCU = -1, module=1;
+       Float_t factor = 1, frac = 0;  
+  
+       if(cells) {
+       
        //Get the cluster number of cells and list of absId, check what kind of cluster do we have.
        UShort_t * index    = cluster->GetCellsAbsId() ;
        Double_t * fraction = cluster->GetCellsAmplitudeFraction() ;
        Int_t ncells     = cluster->GetNCells();        
        TString calo     = "EMCAL";
        if(cluster->IsPHOS()) calo = "PHOS";
-       //Initialize some used variables
-       Float_t energy   = 0;
-       Int_t absId      = -1;
-       Int_t icol = -1, irow = -1, iRCU = -1, module=1;
-       Float_t factor = 1, frac = 0;
        
        //Loop on the cells, get the cell amplitude and recalibration factor, multiply and and to the new energy
        for(Int_t icell = 0; icell < ncells; icell++){
@@ -594,7 +607,12 @@ Float_t AliCalorimeterUtils::RecalibrateClusterEnergy(AliVCluster * cluster, Ali
        
        if(fDebug>1)
                printf("AliCalorimeterUtils::RecalibrateClusterEnergy() - Energy before %f, after %f\n",cluster->E(),energy);
-       
+    
+       }// cells available
+  else{
+    Fatal("RecalibrateClusterEnergy()","Cells pointer does not exist!");
+  }
+  
        return energy;
 }
 
index dcc9ab7..f03481b 100755 (executable)
@@ -90,8 +90,8 @@ Int_t AliMCAnalysisUtils::CheckOrigin(const Int_t * label, const Int_t nlabels,
        Int_t tag = 0;
        
   if(nlabels<=0) {
-    printf("AliMCAnalysisUtils::CheckOrigin(nlabel<=0) - No MC labels available, please check!!!");
-    return kMCUnknown;
+    printf("AliMCAnalysisUtils::CheckOrigin(nlabel<=0) - No MC labels available, please check!!!\n");
+    return kMCBadLabel;
   }
 
        //Select where the information is, ESD-galice stack or AOD mcparticles branch
@@ -111,8 +111,8 @@ Int_t AliMCAnalysisUtils::CheckOrigin(const Int_t label, AliCaloTrackReader* rea
        Int_t tag = 0;
   
   if(label<0) {
-    printf("AliMCAnalysisUtils::CheckOrigin(label<0) - No MC labels available, please check!!!");
-    return kMCUnknown;
+    printf("AliMCAnalysisUtils::CheckOrigin(label<0) - No MC labels available, please check!!!\n");
+    return kMCBadLabel;
   }
   
        Int_t labels[]={label};
index 6c882dd..1169980 100755 (executable)
@@ -41,7 +41,7 @@ class AliMCAnalysisUtils : public TObject {
        enum mcTypes {kMCPhoton, kMCPrompt, kMCFragmentation, kMCISR, kMCPi0Decay, kMCEtaDecay, kMCOtherDecay, kMCConversion,
                        kMCElectron, kMCEFromCFromB, kMCEFromC, kMCEFromB, kMCZDecay, kMCWDecay,
                        kMCMuon, kMCPion, kMCPi0, kMCKaon, kMCEta, kMCProton, kMCAntiProton, kMCNeutron,
-                       kMCOther, kMCUnknown};
+                       kMCOther, kMCUnknown, kMCBadLabel};
        
        //Check only the label of the most significant particle
        Int_t   CheckOrigin(const Int_t label, AliCaloTrackReader * reader, const Int_t input) ;