Skip to content

Commit

Permalink
Merge pull request AliceO2Group#2 from a-mathis/work
Browse files Browse the repository at this point in the history
Fixed the missing time bin information and provided some simple conversion of the signal in ADC counts
  • Loading branch information
wiechula authored Jul 12, 2016
2 parents 43da1cf + d3201d0 commit 08c2cc0
Show file tree
Hide file tree
Showing 17 changed files with 221 additions and 181 deletions.
16 changes: 9 additions & 7 deletions Detectors/TPC/simulation/include/Digit.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/// \file AliITSUpgradeDigi.h
/// \brief Digits structure for upgrade ITS
/// \file Digit.h
/// \brief Digits structure for upgraded TPC
#ifndef ALICEO2_TPC_DIGIT_H
#define ALICEO2_TPC_DIGIT_H

Expand All @@ -24,6 +24,7 @@ namespace AliceO2{
Digit();

/// Constructor, initializing values for position, charge and time
/// @param cru CRU of the digit
/// @param charge Accumulated charge of digit
/// @param timestamp Time at which the digit was created
Digit(Int_t cru, Double_t charge, Int_t row, Int_t pad, Double_t time);
Expand All @@ -33,20 +34,21 @@ namespace AliceO2{

/// Get the accumulated charged of the digit
/// @return charge of the digit
Double_t GetCharge() const { return mCharge; }
Double_t getCharge() const { return mCharge; }

Int_t GetCRU() const { return mCRU; }
Int_t GetRow() const { return mRow; }
Int_t GetPad() const { return mPad; }
Int_t getCRU() const { return mCRU; }
Int_t getRow() const { return mRow; }
Int_t getPad() const { return mPad; }
// Double_t GetTime() const { return mTimeStamp; }

/// Set the charge of the digit
/// @param charge The charge of the the digit
void SetCharge(Double_t charge) { mCharge = charge; }
void setCharge(Double_t charge) { mCharge = charge; }

/// Print function: Print basic digit information on the output stream
/// @param output Stream to put the digit on
/// @return The output stream

std::ostream &Print(std::ostream &output) const;

private:
Expand Down
12 changes: 3 additions & 9 deletions Detectors/TPC/simulation/include/DigitADC.h
Original file line number Diff line number Diff line change
@@ -1,11 +1,5 @@
//
// DigitADC.h
// ALICEO2
//
// Created by Markus Fasel on 26.03.15.
//
//

/// \file DigitADC.h
/// \brief Container class for the ADC values
#ifndef _ALICEO2_DigitADC_
#define _ALICEO2_DigitADC_

Expand All @@ -25,7 +19,7 @@ namespace AliceO2 {
DigitADC(Float_t charge);
~DigitADC();

Float_t GetADC() {return mADC;}
Float_t getADC() {return mADC;}

private:
Float_t mADC;
Expand Down
18 changes: 6 additions & 12 deletions Detectors/TPC/simulation/include/DigitCRU.h
Original file line number Diff line number Diff line change
@@ -1,11 +1,5 @@
//
// DigitCRU.h
// ALICEO2
//
// Created by Markus Fasel on 25.03.15.
//
//

/// \file DigitCRU.h
/// \brief Digit container for the Row Digits
#ifndef _ALICEO2_ITS_DigitCRU_
#define _ALICEO2_ITS_DigitCRU_

Expand All @@ -27,12 +21,12 @@ namespace AliceO2 {
DigitCRU(Int_t mCRUID, Int_t nrows);
~DigitCRU();

void Reset();
Int_t GetCRUID() {return mCRUID;}
void reset();
Int_t getCRUID() {return mCRUID;}

void SetDigit(Int_t row, Int_t pad, Int_t time, Float_t charge);
void setDigit(Int_t row, Int_t pad, Int_t time, Float_t charge);

void FillOutputContainer(TClonesArray *output, Int_t cruID);
void fillOutputContainer(TClonesArray *output, Int_t cruID);

private:
Int_t mCRUID; ///< CRU ID
Expand Down
8 changes: 5 additions & 3 deletions Detectors/TPC/simulation/include/DigitContainer.h
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
/// \file DigitContainer.h
/// \brief Container class for the CRU Digits
#ifndef _ALICEO2_DigitContainer_
#define _ALICEO2_DigitContainer_

Expand All @@ -20,10 +22,10 @@ namespace AliceO2 {
DigitContainer();
~DigitContainer();

void Reset();
void reset();

void AddDigit(Int_t cru, Int_t row, Int_t pad, Int_t time, Float_t charge);
void FillOutputContainer(TClonesArray *outputcont);
void addDigit(Int_t cru, Int_t row, Int_t pad, Int_t time, Float_t charge);
void fillOutputContainer(TClonesArray *outputcont);

private:
Int_t mNCRU;
Expand Down
12 changes: 7 additions & 5 deletions Detectors/TPC/simulation/include/DigitPad.h
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
/// \file DigitPad.h
/// \brief Digit container for the TimeBin Digits
#ifndef _ALICEO2_ITS_DigitPad_
#define _ALICEO2_ITS_DigitPad_

Expand All @@ -15,16 +17,16 @@ namespace AliceO2 {

class DigitPad{
public:
DigitPad(Int_t mPadID, Int_t nTimeBins);
DigitPad(Int_t mPadID);
~DigitPad();

void Reset();
void reset();

Int_t GetPad() {return mPadID;}
Int_t getPad() {return mPadID;}

void SetDigit(Int_t time, Float_t charge);
void setDigit(Int_t time, Float_t charge);

void FillOutputContainer(TClonesArray *output, Int_t cruID, Int_t rowID, Int_t padID);
void fillOutputContainer(TClonesArray *output, Int_t cruID, Int_t rowID, Int_t padID);

private:
Int_t mPadID; ///< Layer ID
Expand Down
10 changes: 6 additions & 4 deletions Detectors/TPC/simulation/include/DigitRow.h
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
/// \file DigitPad.h
/// \brief Container class for the Pad Digits
#ifndef _ALICEO2_ITS_DigitRow_
#define _ALICEO2_ITS_DigitRow_

Expand All @@ -18,13 +20,13 @@ namespace AliceO2 {
DigitRow(Int_t mRowID, Int_t npads);
~DigitRow();

void Reset();
void reset();

Int_t GetRow() {return mRowID;}
Int_t getRow() {return mRowID;}

void SetDigit(Int_t pad, Int_t time, Float_t charge);
void setDigit(Int_t pad, Int_t time, Float_t charge);

void FillOutputContainer(TClonesArray *output, Int_t cruID, Int_t rowID);
void fillOutputContainer(TClonesArray *output, Int_t cruID, Int_t rowID);

private:
Int_t mRowID; ///< Layer ID
Expand Down
10 changes: 6 additions & 4 deletions Detectors/TPC/simulation/include/DigitTime.h
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
/// \file DigitTime.h
/// \brief Container class for the ADC Digits
#ifndef _ALICEO2_ITS_DigitTime_
#define _ALICEO2_ITS_DigitTime_

Expand All @@ -17,13 +19,13 @@ namespace AliceO2 {
DigitTime(Int_t mTimeBin);
~DigitTime();

void Reset();
void reset();

Int_t GetTimeBin() {return mTimeBin;}
Int_t getTimeBin() {return mTimeBin;}

void SetDigit(Float_t charge);
void setDigit(Float_t charge);

void FillOutputContainer(TClonesArray *output, Int_t cruID, Int_t rowID, Int_t padID, Int_t timeBin);
void fillOutputContainer(TClonesArray *output, Int_t cruID, Int_t rowID, Int_t padID, Int_t timeBin);

private:
Int_t mTimeBin;
Expand Down
27 changes: 15 additions & 12 deletions Detectors/TPC/simulation/include/Digitizer.h
Original file line number Diff line number Diff line change
Expand Up @@ -5,20 +5,17 @@

#include "DigitContainer.h"

#include "Rtypes.h" // for Digitizer::Class, Double_t, ClassDef, etc
#include "TObject.h" // for TObject
#include "Rtypes.h"
#include "TObject.h"


class TClonesArray; // lines 13-13
// namespace AliceO2 { namespace TPC { class DigitContainer; } } // lines 19-19
// namespace AliceO2 { namespace TPC { class UpgradeGeometryTGeo; } } // lines 20-20
class TClonesArray;

namespace AliceO2{

namespace TPC {

class DigitContainer;
// class UpgradeGeometryTGeo;

class Digitizer : public TObject {
public:
Expand All @@ -27,16 +24,22 @@ namespace AliceO2{
/// Destructor
~Digitizer();

void Init();
void init();

/// Steer conversion of points to digits
/// @param points Container with ITS points
/// @param points Container with TPC points
/// @return digits container
DigitContainer *Process(TClonesArray *points);
void DriftElectrons(Float_t *xyz);
void GEMAmplification(Float_t nele);

void SetGainFactor(Double_t gain) { mGain = gain; }
Int_t getADCvalue(Float_t nElectrons);
void getElectronDrift(Float_t *xyz);
Float_t getGEMAmplification();
const Int_t getTimeBin(Float_t zPos);



Double_t Gamma4(Double_t x, Double_t p0, Double_t p1);

void setGainFactor(Double_t gain) { mGain = gain; }


private:
Expand Down
24 changes: 8 additions & 16 deletions Detectors/TPC/simulation/include/DigitizerTask.h
Original file line number Diff line number Diff line change
@@ -1,19 +1,13 @@
//
// DigitizerTask.h
// ALICEO2
//
// Created by Markus Fasel on 16.07.15.
//
//

/// \file DigitizerTask.h
/// \brief Task for ALICE TPC digitization
#ifndef __ALICEO2__DigitizerTask__
#define __ALICEO2__DigitizerTask__

#include <stdio.h>
#include "FairTask.h" // for FairTask, InitStatus
#include "Rtypes.h" // for DigitizerTask::Class, ClassDef, etc
#include "FairTask.h"
#include "Rtypes.h"
class TClonesArray;
namespace AliceO2 { namespace TPC { class Digitizer; } } // lines 19-19
namespace AliceO2 { namespace TPC { class Digitizer; } }

namespace AliceO2 {
namespace TPC{
Expand All @@ -28,13 +22,11 @@ namespace AliceO2 {
virtual InitStatus Init();
virtual void Exec(Option_t *option);

// Digitizer *GetDigitizer() const { return fDigitizer; }

private:
Digitizer *fDigitizer;
Digitizer *mDigitizer;

TClonesArray *fPointsArray;
TClonesArray *fDigitsArray;
TClonesArray *mPointsArray;
TClonesArray *mDigitsArray;

ClassDef(DigitizerTask, 1)
};
Expand Down
2 changes: 2 additions & 0 deletions Detectors/TPC/simulation/include/Point.h
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
/// \file Point.h
/// \brief Class for TPC Point
#ifndef ALICEO2_TPC_POINT_H
#define ALICEO2_TPC_POINT_H

Expand Down
20 changes: 10 additions & 10 deletions Detectors/TPC/simulation/src/DigitCRU.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -15,33 +15,33 @@ DigitCRU::DigitCRU(Int_t cruID, Int_t nrows):
{}

DigitCRU::~DigitCRU(){
for (int irow = 0; irow < mNRows; irow++) {
for (int irow = 0; irow < mNRows; ++irow) {
delete mRows[irow];
}
}

void DigitCRU::SetDigit(Int_t row, Int_t pad, Int_t time, Float_t charge){
void DigitCRU::setDigit(Int_t row, Int_t pad, Int_t time, Float_t charge){
DigitRow *result = mRows[row];
if(result != nullptr){
mRows[row]->SetDigit(pad, time, charge);
mRows[row]->setDigit(pad, time, charge);
}
else{
const Mapper& mapper = Mapper::instance();
mRows[row] = new DigitRow(row, mapper.getPadRegionInfo(CRU(mCRUID).region()).getPadsInRowRegion(row));
mRows[row]->SetDigit(pad, time, charge);
mRows[row]->setDigit(pad, time, charge);
}
}

void DigitCRU::Reset(){
for(std::vector<DigitRow*>::iterator iterRow = mRows.begin(); iterRow != mRows.end(); iterRow++) {
void DigitCRU::reset(){
for(std::vector<DigitRow*>::iterator iterRow = mRows.begin(); iterRow != mRows.end(); ++iterRow) {
if((*iterRow) == nullptr) continue;
(*iterRow)->Reset();
(*iterRow)->reset();
}
}

void DigitCRU::FillOutputContainer(TClonesArray *output, Int_t cruID){
for(std::vector<DigitRow*>::iterator iterRow = mRows.begin(); iterRow != mRows.end(); iterRow++) {
void DigitCRU::fillOutputContainer(TClonesArray *output, Int_t cruID){
for(std::vector<DigitRow*>::iterator iterRow = mRows.begin(); iterRow != mRows.end(); ++iterRow) {
if((*iterRow) == nullptr) continue;
(*iterRow)->FillOutputContainer(output, cruID, (*iterRow)->GetRow());
(*iterRow)->fillOutputContainer(output, cruID, (*iterRow)->getRow());
}
}
18 changes: 9 additions & 9 deletions Detectors/TPC/simulation/src/DigitContainer.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -20,29 +20,29 @@ DigitContainer::~DigitContainer(){
}
}

void DigitContainer::Reset(){
for(std::vector<DigitCRU*>::iterator iterCRU = mCRU.begin(); iterCRU != mCRU.end(); iterCRU++) {
void DigitContainer::reset(){
for(std::vector<DigitCRU*>::iterator iterCRU = mCRU.begin(); iterCRU != mCRU.end(); ++iterCRU) {
if((*iterCRU) == nullptr) continue;
(*iterCRU)->Reset();
(*iterCRU)->reset();
}
}

void DigitContainer::AddDigit(Int_t cru, Int_t row, Int_t pad, Int_t time, Float_t charge){
void DigitContainer::addDigit(Int_t cru, Int_t row, Int_t pad, Int_t time, Float_t charge){
DigitCRU *result = mCRU[cru];
if(result != nullptr){
mCRU[cru]->SetDigit(row, pad, time, charge);
mCRU[cru]->setDigit(row, pad, time, charge);
}
else{
const Mapper& mapper = Mapper::instance();
mCRU[cru] = new DigitCRU(cru, mapper.getPadRegionInfo(CRU(cru).region()).getNumberOfPadRows());
mCRU[cru]->SetDigit(row, pad, time, charge);
mCRU[cru]->setDigit(row, pad, time, charge);
}
}


void DigitContainer::FillOutputContainer(TClonesArray *output){
for(std::vector<DigitCRU*>::iterator iterCRU = mCRU.begin(); iterCRU != mCRU.end(); iterCRU++) {
void DigitContainer::fillOutputContainer(TClonesArray *output){
for(std::vector<DigitCRU*>::iterator iterCRU = mCRU.begin(); iterCRU != mCRU.end(); ++iterCRU) {
if((*iterCRU) == nullptr) continue;
(*iterCRU)->FillOutputContainer(output, (*iterCRU)->GetCRUID());
(*iterCRU)->fillOutputContainer(output, (*iterCRU)->getCRUID());
}
}
Loading

0 comments on commit 08c2cc0

Please sign in to comment.