Next round of fixes (Jochen)
authorcblume <cblume@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 9 Nov 2010 08:56:55 +0000 (08:56 +0000)
committercblume <cblume@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 9 Nov 2010 08:56:55 +0000 (08:56 +0000)
PWG1/TRD/AliTRDonlineTrackletFilter.cxx
PWG1/TRD/AliTRDonlineTrackletQA.cxx
PWG1/TRD/AliTRDonlineTrackletQA.h
TRD/AliTRDgtuParam.cxx
TRD/AliTRDgtuSim.cxx
TRD/AliTRDgtuTMU.cxx
TRD/AliTRDmcmSim.cxx
TRD/AliTRDmcmSim.h
TRD/AliTRDtrapConfig.cxx

index 7b5ba70..ec228ca 100644 (file)
@@ -34,12 +34,16 @@ AliTRDonlineTrackletFilter::AliTRDonlineTrackletFilter(const char *name) :
   fMCEvent(0x0),
   fTrackletsRaw(new TClonesArray("AliTRDtrackletWord")),
   fTrackletsSim(new TClonesArray("AliTRDtrackletMCM")),
+  fTrackletTree(0x0),
   fGeo(new AliTRDgeometry),
   fNevent(0),
+  fPath(""),
   fTrackletFile(0x0),
+  fNEventsPerFile(0),
+  fEvent(0),
+  fFileNumber(0),
   fTrackletTreeSim(0x0),
-  fTrackletTreeRaw(0x0), 
-  fTrackletTree(0x0)
+  fTrackletTreeRaw(0x0)
 {
   // ctor
 
@@ -58,7 +62,7 @@ AliTRDonlineTrackletFilter::~AliTRDonlineTrackletFilter()
   delete fGeo;
 }
 
-void AliTRDonlineTrackletFilter::ConnectInputData(const Option_t *option)
+void AliTRDonlineTrackletFilter::ConnectInputData(const Option_t */* option */)
 {
   fInputHandler = (AliInputEventHandler*) AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler();
   if (fInputHandler)
@@ -107,10 +111,12 @@ Bool_t AliTRDonlineTrackletFilter::Notify()
 
   fEvent = -1;
   fFileNumber = 0;
+
+  return kTRUE;
 }
 
 
-void AliTRDonlineTrackletFilter::Exec(const Option_t *option)
+void AliTRDonlineTrackletFilter::Exec(const Option_t * /* option */)
 {
   // execute this for each event
 
@@ -158,7 +164,7 @@ void AliTRDonlineTrackletFilter::LocalInit()
 
 }
 
-void AliTRDonlineTrackletFilter::Terminate(const Option_t *option)
+void AliTRDonlineTrackletFilter::Terminate(const Option_t * /* option */)
 {
 
 }
index 2da9513..cd3335e 100644 (file)
@@ -60,10 +60,16 @@ AliTRDonlineTrackletQA::AliTRDonlineTrackletQA(const char *name) :
   fHistdYdiff(0x0),
   fHistdYdYraw(0x0),
   fTreeTracklets(0x0),
+  fY(0.),
+  fDY(0.),
+  fYdiff(0.),
+  fDYdiff(0.),
+  fQ0(0),
+  fQ1(0),
+  fNHits(0),
   fMinPt(1.),
   fGeo(new AliTRDgeometry),
   fNevent(0),
-  fTrackletFile(0x0),
   fTrackletTree(0x0),
   fTrackletTreeRaw(0x0)
 {
@@ -83,8 +89,10 @@ AliTRDonlineTrackletQA::~AliTRDonlineTrackletQA()
   delete fGeo;
 }
 
-void AliTRDonlineTrackletQA::ConnectInputData(const Option_t *option)
+void AliTRDonlineTrackletQA::ConnectInputData(const Option_t * /* option */)
 {
+  // connect input data
+
   fInputHandler = (AliInputEventHandler*) AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler();
   if (fInputHandler)
     fInputEvent = fInputHandler->GetEvent();
@@ -96,6 +104,8 @@ void AliTRDonlineTrackletQA::ConnectInputData(const Option_t *option)
 
 void AliTRDonlineTrackletQA::CreateOutputObjects()
 {
+  // create output objects
+
   OpenFile(1); 
   
   fOutputList = new TList();
@@ -217,7 +227,7 @@ void AliTRDonlineTrackletQA::CreateOutputObjects()
   fOutputList->Add(fTreeTracklets);
 }
 
-void AliTRDonlineTrackletQA::Exec(const Option_t *option)
+void AliTRDonlineTrackletQA::Exec(const Option_t * /* option */)
 {
   // execute this for each event
 
@@ -262,7 +272,7 @@ void AliTRDonlineTrackletQA::Exec(const Option_t *option)
   if (fTrackletsSim) {
     for (Int_t iTracklet = 0; iTracklet < fTrackletsSim->GetEntries(); iTracklet++) {
       trkl = (AliTRDtrackletMCM*) (*fTrackletsSim)[iTracklet];
-      Int_t label = trkl->GetLabel();
+//      Int_t label = trkl->GetLabel();
 //      if (label > -1 && label < maxTracks) 
 //     mcTrackToTrackletMCM[label].idx[mcTrackToTrackletMCM[label].size < 10 ? mcTrackToTrackletMCM[label].size++ : 0] = iTracklet;
       fHistYpos->Fill(trkl->GetY());
@@ -426,6 +436,7 @@ void AliTRDonlineTrackletQA::Exec(const Option_t *option)
   if (fESD) {
     for (Int_t iTrack = 0; iTrack < fESD->GetNumberOfTracks(); iTrack++) {
       AliESDtrack *esdTrack = fESD->GetTrack(iTrack);
+      AliDebug(1, Form("ESD track pt: %7.2f", esdTrack->Pt()));
     }
   }
 
@@ -437,8 +448,10 @@ void AliTRDonlineTrackletQA::LocalInit()
 
 }
 
-void AliTRDonlineTrackletQA::Terminate(const Option_t *option)
+void AliTRDonlineTrackletQA::Terminate(const Option_t * /* option */)
 {
+  // upon terminate
+
   fOutputList = dynamic_cast<TList*> (GetOutputData(1));
 
   if (!fOutputList) {
@@ -569,6 +582,7 @@ void AliTRDonlineTrackletQA::PlotMC(AliTRDtrackletMCM *trkl)
 
 void AliTRDonlineTrackletQA::PlotESD(AliTRDtrackletMCM *trkl)
 {
+  // plot comparison to ESD
 
   Float_t xTrkl = trkl->GetX();
   Float_t yTrkl = trkl->GetY();
@@ -591,7 +605,7 @@ void AliTRDonlineTrackletQA::PlotESD(AliTRDtrackletMCM *trkl)
 
     AliExternalTrackParam *param = new AliExternalTrackParam(*(track->GetOuterParam()));
 
-    AliDebug(10, Form("track %i at x = %f", 
+    AliDebug(10, Form("track %i at x = %f, y = %f", 
                      iTrack, param->GetX(), param->GetY()));
     param->Propagate(alpha, xTrkl, mag);
     AliDebug(10, Form("after propagating track %i at x = %f, y = %f", 
@@ -617,6 +631,7 @@ void AliTRDonlineTrackletQA::PlotESD(AliTRDtrackletMCM *trkl)
 
 void AliTRDonlineTrackletQA::PlotESD(AliTRDtrackletWord *trkl) 
 {
+  // plot comparison to ESD
 
   Float_t xTrkl = trkl->GetX();
   Float_t yTrkl = trkl->GetY();
@@ -639,7 +654,7 @@ void AliTRDonlineTrackletQA::PlotESD(AliTRDtrackletWord *trkl)
 
     AliExternalTrackParam *param = new AliExternalTrackParam(*(track->GetOuterParam()));
 
-    AliDebug(10, Form("track %i at x = %f", 
+    AliDebug(10, Form("track %i at x = %f, y = %f", 
                      iTrack, param->GetX(), param->GetY()));
     param->Propagate(alpha, xTrkl, mag);
     AliDebug(10, Form("after propagating track %i at x = %f, y = %f", 
@@ -662,7 +677,10 @@ void AliTRDonlineTrackletQA::PlotESD(AliTRDtrackletWord *trkl)
 }
 
 
-Int_t AliTRDonlineTrackletQA::GetTrackletsForMC(Int_t label, Int_t idx[])
+Int_t AliTRDonlineTrackletQA::GetTrackletsForMC(Int_t /* label */, Int_t /*idx*/ [])
 {
+  // get tracklets for MC label
+  // not implemented
+
   return 0;
 }
index 4a7c9ad..76e400d 100644 (file)
@@ -35,15 +35,15 @@ class AliTRDonlineTrackletQA : public AliAnalysisTask
   Int_t GetTrackletsForMC(Int_t label, Int_t idx[]);
 
  protected:
-  AliESDEvent *fESD;                    //!
+  AliESDEvent *fESD;                    //! current ESD event
 
-  AliInputEventHandler *fInputHandler;  //!
-  AliVEvent            *fInputEvent;    //!
-  AliAODEvent          *fOutputAOD;     //!
-  AliMCEvent           *fMCEvent;       //!
+  AliInputEventHandler *fInputHandler;  //! input handler
+  AliVEvent            *fInputEvent;    //! input event
+  AliAODEvent          *fOutputAOD;     //! output AOD
+  AliMCEvent           *fMCEvent;       //! MC event
 
-  TClonesArray         *fTrackletsRaw;  //!
-  TClonesArray         *fTrackletsSim;  //!
+  TClonesArray         *fTrackletsRaw;  //! array of raw tracklets
+  TClonesArray         *fTrackletsSim;  //! array of sim tracklets
 
   // ----- output objects -----
   TList                *fOutputList;   //! list of output objects
@@ -72,13 +72,13 @@ class AliTRDonlineTrackletQA : public AliAnalysisTask
   TTree                *fTreeTracklets; //! store tracklet information
 
   // ----- temporary storage -----
-  Float_t fY;
-  Float_t fDY;
-  Float_t fYdiff;
-  Float_t fDYdiff;
-  Int_t   fQ0;
-  Int_t   fQ1;
-  Int_t   fNHits;
+  Float_t fY;                  // y-position
+  Float_t fDY;                 // deflection length
+  Float_t fYdiff;              // difference in y-position
+  Float_t fDYdiff;             // difference in deflection
+  Int_t   fQ0;                 // accumulated charge in first window
+  Int_t   fQ1;                 // accumulated charge in second window
+  Int_t   fNHits;              // no. of hits
 
   // ----- configuration -----
   Float_t fMinPt;                       // minimal pt for tracks and track reference
@@ -87,15 +87,10 @@ class AliTRDonlineTrackletQA : public AliAnalysisTask
   // ----- internal use -----
   AliTRDgeometry       *fGeo; //! TRD geometry
 
-  Int_t fNevent;
+  Int_t fNevent;             // current event number
 
-  TString fPath; //!
-  TFile *fTrackletFile; //!
-  Int_t fNEventsPerFile; //!
-  Int_t fEvent;  //!
-  Int_t fFileNumber; //!
-  TTree *fTrackletTree;  //!
-  TTree *fTrackletTreeRaw; //!
+  TTree *fTrackletTree;  //! tracklets from simulation
+  TTree *fTrackletTreeRaw; //! tracklets from raw data
 
  private:
   AliTRDonlineTrackletQA(const AliTRDonlineTrackletQA&); // not implemented
index 8af2332..6ae8e07 100644 (file)
@@ -242,6 +242,7 @@ Bool_t AliTRDgtuParam::DisplayZChannelMap(Int_t zchannel, Int_t subchannel) cons
     graphz[zch]->Draw("P");
     gROOT->Add(graphz[zch]);
   }
+  delete [] graphz;
   return kTRUE;
 }
 
index a90c8c2..e574afb 100644 (file)
@@ -142,7 +142,7 @@ Bool_t AliTRDgtuSim::RunGTUFromTrackletFile(TString filename, Int_t event, Int_t
        }
        for (Int_t i = 5; i < tokens->GetEntriesFast(); i++) {
            UInt_t trackletWord = 0;
-           sscanf(((TObjString*) tokens->At(i))->GetString().Data(), "%u", &trackletWord);
+           sscanf(((TObjString*) tokens->At(i))->GetString().Data(), "%i", &trackletWord);
            if (trackletWord == 0x10001000) 
                break;
            AliDebug(2,Form("%i. tracklet: %s -> 0x%08x", i-4, ((TObjString*) tokens->At(i))->GetString().Data(), trackletWord));
index 5a631ee..5378f4d 100644 (file)
@@ -690,7 +690,7 @@ Bool_t AliTRDgtuTMU::RunTrackMerging(TList* ListOfTracks)
 
     for (Int_t i = 0; i < 2; i++)
       delete tracksZSplitted[i];
-    delete tracksZSplitted;
+    delete [] tracksZSplitted;
 
     delete tracksZMergedStage1;
 
index e36f3cc..c260c53 100644 (file)
@@ -88,6 +88,14 @@ AliTRDmcmSim::AliTRDmcmSim() :
   // AliTRDmcmSim default constructor
   // By default, nothing is initialized.
   // It is necessary to issue Init before use.
+
+  for (Int_t iDict = 0; iDict < 3; iDict++)
+    fDict[iDict] = 0x0;
+
+  fFitPtr[0] = 0;
+  fFitPtr[1] = 0;
+  fFitPtr[2] = 0;
+  fFitPtr[3] = 0;
 }
 
 AliTRDmcmSim::~AliTRDmcmSim() 
@@ -1552,7 +1560,7 @@ void AliTRDmcmSim::FitTracklet()
       nHits   = fit0->fNhits + fit1->fNhits; // number of hits
       sumX    = fit0->fSumX  + fit1->fSumX;
       sumX2   = fit0->fSumX2 + fit1->fSumX2;
-      denom   = nHits*sumX2 - sumX*sumX;
+      denom   = ((Long64_t) nHits)*((Long64_t) sumX2) - ((Long64_t) sumX)*((Long64_t) sumX);
 
       mult    = mult / denom; // exactly like in the TRAP program
       q0      = fit0->fQ0    + fit1->fQ0;
index 4989d5f..d7cb067 100644 (file)
@@ -181,6 +181,7 @@ class AliTRDmcmSim : public TObject {
          // hit detection
          // individual hits can be stored as MC info
          struct Hit_t {                                // Array of detected hits (only available in MC)
+         Hit_t() : fChannel(0), fTimebin(0), fQtot(0), fYpos(0) { fLabel[0] = 0; fLabel[1] = 0; fLabel[2] = 0; }
            Int_t fChannel;                             // ADC channel of the hit
            Int_t fTimebin;                             // timebin of the hit
            Int_t fQtot;                                // total charge of the hit
index a18550f..df08008 100644 (file)
@@ -636,7 +636,7 @@ Int_t AliTRDtrapConfig::GetTrapReg(TrapReg_t reg, Int_t det, Int_t rob, Int_t mc
 
   if ((reg < 0) || (reg >= kLastReg)) {
     AliError("Non-existing register requested");
-    return -1;
+    return 0;
   }
   else {
     if (fRegisterValue[reg].state == RegValue_t::kGlobal) {