Fixed coverty 'defects'
authorcholm <cholm@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 29 Sep 2010 08:55:45 +0000 (08:55 +0000)
committercholm <cholm@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 29 Sep 2010 08:55:45 +0000 (08:55 +0000)
FMD/AliFMDInput.cxx
FMD/AliFMDInput.h
FMD/scripts/DrawHits.C

index e67c71c..cc7c89b 100644 (file)
@@ -44,6 +44,7 @@
 #include "AliFMDSDigit.h"      // ALIFMDDigit_H
 #include "AliFMDRecPoint.h"    // ALIFMDRECPOINT_H
 #include "AliFMDRawReader.h"    // ALIFMDRAWREADER_H
+#include "AliFMDGeometry.h"
 #include <AliESD.h>
 #include <AliESDFMD.h>
 #include <AliESDEvent.h>
@@ -191,7 +192,6 @@ AliFMDInput::Init()
        "\tRaw:           %d\n"
        "\tRawCalib:      %d\n"
        "\tGeometry:      %d\n"
-       "\tTracks:        %d\n"
        "\tTracksRefs:    %d",
        fTreeMask,
        TESTBIT(fTreeMask, kHits),
@@ -204,14 +204,12 @@ AliFMDInput::Init()
        TESTBIT(fTreeMask, kRaw),
        TESTBIT(fTreeMask, kRawCalib),
        TESTBIT(fTreeMask, kGeometry),
-       TESTBIT(fTreeMask, kTracks),
        TESTBIT(fTreeMask, kTrackRefs));
   // Get the run 
   if (TESTBIT(fTreeMask, kDigits)     ||
       TESTBIT(fTreeMask, kSDigits)    || 
       TESTBIT(fTreeMask, kKinematics) || 
       TESTBIT(fTreeMask, kTrackRefs)  || 
-      TESTBIT(fTreeMask, kTracks)     || 
       TESTBIT(fTreeMask, kHeader)) {
     if (!gSystem->FindFile(".:/", fGAliceFile)) {
       AliWarning(Form("Cannot find file %s in .:/", fGAliceFile.Data()));
@@ -293,23 +291,21 @@ AliFMDInput::Init()
   
   // Optionally, get the geometry 
   if (TESTBIT(fTreeMask, kGeometry)) {
+    TString fname;
     if (fRun) {
-      TString fname(""/*fRun->GetGeometryFileName()*/);
-      //   if (fname.IsNull()) {
-       Warning("Init", "No file name for the geometry from AliRun");
-       fname = gSystem->DirName(fGAliceFile);
-       fname.Append("/geometry.root");
-       //      }
-      fGeoManager = TGeoManager::Import(fname.Data());
-      if (!fGeoManager) {
-       Fatal("Init", "No geometry manager found");
-       return kFALSE;
-      }
-    }
-    else { 
-      AliGeomManager::LoadGeometry();
+      fname = gSystem->DirName(fGAliceFile);
+      fname.Append("/geometry.root");
     }
+    if (!gSystem->AccessPathName(fname.Data())) 
+      fname = "";
     AliCDBManager* cdb   = AliCDBManager::Instance();
+    if (!cdb->IsDefaultStorageSet()) {
+      cdb->SetDefaultStorage("local://$ALICE_ROOT/OCDB");
+      cdb->SetRun(0);
+    }
+
+    AliGeomManager::LoadGeometry(fname.IsNull() ? 0 : fname.Data());
+
     AliCDBEntry*   align = cdb->Get("FMD/Align/Data");
     if (align) {
       AliInfo("Got alignment data from CDB");
@@ -328,6 +324,9 @@ AliFMDInput::Init()
        }
       }
     }
+    AliFMDGeometry* geom = AliFMDGeometry::Instance();
+    geom->Init();
+    geom->InitTransformations();
   }
 
   fEventCount = 0;
@@ -355,14 +354,14 @@ AliFMDInput::Begin(Int_t event)
   AliInfo(Form("Now in event %8d/%8d", event, NEvents()));
 
   // Possibly load global kinematics information 
-  if (TESTBIT(fTreeMask, kKinematics) || TESTBIT(fTreeMask, kTracks)) {
+  if (TESTBIT(fTreeMask, kKinematics)) {
     // AliInfo("Getting kinematics");
     if (fLoader->LoadKinematics("READ")) return kFALSE;
     fStack = fLoader->Stack();
   }
 
   // Possibly load FMD Hit information 
-  if (TESTBIT(fTreeMask, kHits) || TESTBIT(fTreeMask, kTracks)) {
+  if (TESTBIT(fTreeMask, kHits)) {
     // AliInfo("Getting FMD hits");
     if (!fFMDLoader || fFMDLoader->LoadHits("READ")) return kFALSE;
     fTreeH = fFMDLoader->TreeH();
@@ -370,7 +369,7 @@ AliFMDInput::Begin(Int_t event)
   }
   
   // Possibly load FMD TrackReference information 
-  if (TESTBIT(fTreeMask, kTrackRefs) || TESTBIT(fTreeMask, kTracks)) {
+  if (TESTBIT(fTreeMask, kTrackRefs)) {
     // AliInfo("Getting FMD hits");
     if (!fLoader || fLoader->LoadTrackRefs("READ")) return kFALSE;
     fTreeTR = fLoader->TreeTR();
@@ -426,18 +425,6 @@ AliFMDInput::Begin(Int_t event)
     if (read <= 0) return kFALSE;
     fESD = fESDEvent->GetFMDData();
     if (!fESD) return kFALSE;
-#if 0
-    TFile* f = fChainE->GetFile();
-    if (f) {
-      TObject* o = f->GetStreamerInfoList()->FindObject("AliFMDMap");
-      if (o) {
-       TStreamerInfo* info = static_cast<TStreamerInfo*>(o);
-       std::cout << "AliFMDMap class version read is " 
-                 <<  info->GetClassVersion() << std::endl;
-      }
-    }
-    // fESD->CheckNeedUShort(fChainE->GetFile());
-#endif
   }
 
   // Possibly load FMD Digit information 
@@ -481,26 +468,18 @@ AliFMDInput::Event()
   //   -  ProcessRecPoints  if the reconstructed points are loaded. 
   //   -  ProcessESD        if the event summary data is loaded
   // 
-  if (TESTBIT(fTreeMask, kHits)) 
-    if (!ProcessHits()) return kFALSE; 
-  if (TESTBIT(fTreeMask, kTrackRefs)) 
-    if (!ProcessTrackRefs()) return kFALSE; 
-  if (TESTBIT(fTreeMask, kTracks)) 
-    if (!ProcessTracks()) return kFALSE; 
-  if (TESTBIT(fTreeMask, kSDigits)) 
-    if (!ProcessSDigits()) return kFALSE;
-  if (TESTBIT(fTreeMask, kDigits)) 
-    if (!ProcessDigits()) return kFALSE;
-  if (TESTBIT(fTreeMask, kRaw)) 
-    if (!ProcessRawDigits()) return kFALSE;
-  if (TESTBIT(fTreeMask, kRawCalib)) 
-    if (!ProcessRawCalibDigits()) return kFALSE;
-  if (TESTBIT(fTreeMask, kRecPoints)) 
-    if (!ProcessRecPoints()) return kFALSE;
-  if (TESTBIT(fTreeMask, kESD))
-    if (!ProcessESDs()) return kFALSE;
-  if (TESTBIT(fTreeMask, kUser))
-    if (!ProcessUsers()) return kFALSE;
+  if (TESTBIT(fTreeMask, kHits))     if (!ProcessHits())      return kFALSE; 
+  if (TESTBIT(fTreeMask, kTrackRefs))if (!ProcessTrackRefs()) return kFALSE; 
+  if (TESTBIT(fTreeMask, kKinematics) && 
+      TESTBIT(fTreeMask, kHits))     if (!ProcessTracks())    return kFALSE; 
+  if (TESTBIT(fTreeMask, kKinematics))if (!ProcessStack())     return kFALSE; 
+  if (TESTBIT(fTreeMask, kSDigits))  if (!ProcessSDigits())   return kFALSE;
+  if (TESTBIT(fTreeMask, kDigits))   if (!ProcessDigits())    return kFALSE;
+  if (TESTBIT(fTreeMask, kRaw))      if (!ProcessRawDigits()) return kFALSE;
+  if (TESTBIT(fTreeMask, kRawCalib)) if (!ProcessRawCalibDigits())return kFALSE;
+  if (TESTBIT(fTreeMask, kRecPoints))if (!ProcessRecPoints()) return kFALSE;
+  if (TESTBIT(fTreeMask, kESD))      if (!ProcessESDs())      return kFALSE;
+  if (TESTBIT(fTreeMask, kUser))     if (!ProcessUsers())     return kFALSE;
   
   return kTRUE;
 }
@@ -563,9 +542,10 @@ AliFMDInput::ProcessTrackRefs()
     if (trRead <= 0) continue;
     Int_t nTrackRefs = fArrayTR->GetEntries();
     for (Int_t j = 0; j < nTrackRefs; j++) {
-      AliTrackReference* trackRef = static_cast<AliTrackReference*>(fArrayTR->At(j));
+      AliTrackReference* trackRef = 
+       static_cast<AliTrackReference*>(fArrayTR->At(j));
       if (!trackRef) continue;
-      if (trackRef->DetectorId() != AliTrackReference::kFMD) continue;
+      // if (trackRef->DetectorId() != AliTrackReference::kFMD) continue;
       TParticle* track = 0;
       if (TESTBIT(fTreeMask, kKinematics) && fStack) {
        Int_t trackno = trackRef->GetTrack();
@@ -619,7 +599,26 @@ AliFMDInput::ProcessTracks()
   }
   return kTRUE;
 }
+//____________________________________________________________________
+Bool_t 
+AliFMDInput::ProcessStack()
+{
+  // Read the hit tree, and pass each hit to the member function
+  // ProcessTrack.
+  if (!fStack) {
+    AliError("No track tree defined");
+    return kFALSE;
+  }
+  Int_t nTracks = fStack->GetNtrack();
+  for (Int_t i = 0; i < nTracks; i++) {
+    Int_t      trackno = nTracks - i - 1;
+    TParticle* track   = fStack->Particle(trackno);
+    if (!track) continue;
 
+    if (!ProcessParticle(trackno, track)) return kFALSE;
+  }
+  return kTRUE;
+}
 //____________________________________________________________________
 Bool_t 
 AliFMDInput::ProcessDigits()
@@ -822,13 +821,13 @@ AliFMDInput::End()
     return fIsInit;
   }
   // Possibly unload global kinematics information 
-  if (TESTBIT(fTreeMask, kKinematics) || TESTBIT(fTreeMask, kTracks)) {
+  if (TESTBIT(fTreeMask, kKinematics)) {
     fLoader->UnloadKinematics();
     // fTreeK = 0;
     fStack = 0;
   }
   // Possibly unload FMD Hit information 
-  if (TESTBIT(fTreeMask, kHits) || TESTBIT(fTreeMask, kTracks)) {
+  if (TESTBIT(fTreeMask, kHits)) {
     fFMDLoader->UnloadHits();
     fTreeH = 0;
   }
index 8a931bc..70f6cae 100644 (file)
@@ -114,7 +114,6 @@ public:
     kESD,             // Load ESD's
     kRaw,             // Read raw data 
     kGeometry,        // Not really a tree 
-    kTracks,         // Hits and tracs - for BG study  
     kTrackRefs,       // Track references - also for BG study
     kRawCalib,        // Read raws and calibrate them
     kUser
@@ -173,6 +172,10 @@ public:
       that track
       @return @c false on error  */
   virtual Bool_t ProcessTracks();
+  /** Loop over all tracks, and call ProcessTrack with each hit for
+      that track
+      @return @c false on error  */
+  virtual Bool_t ProcessStack();
   /** Loop over all digits, and call ProcessDigit for each digit.
       @return @c false on error  */
   virtual Bool_t ProcessDigits();
@@ -218,6 +221,11 @@ public:
       @param h Associated Hit
       @return  @c false on error   */
   virtual Bool_t ProcessTrack(Int_t i, TParticle* p, AliFMDHit* h);
+  /** Process stack particle 
+      @param i Track number 
+      @param p Track  
+      @return  @c false on error   */
+  virtual Bool_t ProcessParticle(Int_t i , TParticle* p);
   /** Process one digit.  Users should over this to process each
       digit. 
       @param digit Digit
@@ -366,6 +374,7 @@ inline Bool_t AliFMDInput::ProcessTrackRef(AliTrackReference*,
                                           TParticle*) { return kTRUE; }
 inline Bool_t AliFMDInput::ProcessTrack(Int_t,TParticle*,
                                        AliFMDHit*) { return kTRUE; }
+inline Bool_t AliFMDInput::ProcessParticle(Int_t,TParticle*) { return kTRUE; }
 inline Bool_t AliFMDInput::ProcessDigit(AliFMDDigit*) { return kTRUE; }
 inline Bool_t AliFMDInput::ProcessSDigit(AliFMDSDigit*) { return kTRUE; }
 inline Bool_t AliFMDInput::ProcessRawDigit(AliFMDDigit*) { return kTRUE; }
index c314038..eb5a7a3 100644 (file)
@@ -50,7 +50,8 @@ public:
   DrawHits(const char* pdgName="pi+",
           Int_t m=1000, Double_t emin=1, Double_t emax=1000, 
           Int_t n=900, Double_t tmin=1e-2, Double_t tmax=1e3) 
-    : fPdg(0), 
+    : AliFMDInput("galice.root"),
+      fPdg(0), 
       fRho(2.33),
       fBetaGammaMip(3.4601)
   { 
@@ -92,6 +93,7 @@ public:
     }
     // if (!p->IsPrimary()) return kTRUE;
     if (hit->IsStop()) return kTRUE;
+    if (hit->Length() == 0) return kTRUE;
 
     Float_t x = hit->P();
     Float_t y = hit->Edep()/hit->Length();
@@ -103,7 +105,7 @@ public:
     y /= q * q;
     fElossVsPMQ->Fill(x, y);
     fEloss->Fill(y);
-    fNHits++;
+    // fNHits++;
     return kTRUE;
   }
   //__________________________________________________________________
@@ -178,8 +180,8 @@ public:
     
     l = new TLegend(.6, .6, .89, .89);
     l->AddEntry(fEloss, fEloss->GetTitle(), "lf");
-    l->AddEntry(land,   "Landau fit", "l");
-    l->AddEntry(resp,   "f(#Delta_{p}/x) [RPP fig 27.8]", "l");
+    // l->AddEntry(land,   "Landau fit", "l");
+    // l->AddEntry(resp,   "f(#Delta_{p}/x) [RPP fig 27.8]", "l");
     l->Draw("same");
 
     return kTRUE;