diff --git a/core/data/mvd/CbmMvdCluster.cxx b/core/data/mvd/CbmMvdCluster.cxx index 052929f0fbe826c9042f3fbf74d5d91a12b092c7..1c0d054222a5a886e7fc526fe4f3c4901c66e468 100644 --- a/core/data/mvd/CbmMvdCluster.cxx +++ b/core/data/mvd/CbmMvdCluster.cxx @@ -13,7 +13,7 @@ using std::map; using std::pair; // ----- Default constructor ------------------------------------------- -CbmMvdCluster::CbmMvdCluster() : CbmCluster(), fPixelMap(), fRefId(-1), fClusterCharge(0) {} +CbmMvdCluster::CbmMvdCluster() : CbmCluster(), fPixelMap(), fRefId(-1), fClusterCharge(0) {fEarliestFrameNumber=-1;} // ------------------------------------------------------------------------- // ------------------------------------------------------------------------- @@ -22,6 +22,7 @@ CbmMvdCluster::CbmMvdCluster(const CbmMvdCluster& rhs) : CbmCluster(), fPixelMap fPixelMap = rhs.fPixelMap; fRefId = rhs.fRefId; fClusterCharge = rhs.fClusterCharge; + fEarliestFrameNumber=rhs.fEarliestFrameNumber; } // ------------------------------------------------------------------------- diff --git a/core/data/mvd/CbmMvdCluster.h b/core/data/mvd/CbmMvdCluster.h index b76c734eb6c4bda08f8996a60d8742cf6b0d711c..48c67f571da7b6d2503439d499b1c0fa655659c5 100644 --- a/core/data/mvd/CbmMvdCluster.h +++ b/core/data/mvd/CbmMvdCluster.h @@ -43,6 +43,7 @@ public: /** Setters **/ void SetPixelMap(std::map<std::pair<int32_t, int32_t>, int32_t> PixelMap); void SetRefId(int32_t RefId) { fRefId = RefId; }; //* stores the index to the global TClonesArray + void SetEarliestFrameNumber(Int_t frameNumber) {fEarliestFrameNumber=frameNumber;} /** Accessors **/ int16_t GetTotalDigisInCluster() { return fPixelMap.size(); }; @@ -51,6 +52,7 @@ public: int32_t GetRefId() { return fRefId; }; int32_t GetDetectorId() { return DetectorId(GetStationNr()); }; int32_t GetSensorNr() { return (GetAddress() % 1000); }; + int32_t GetEarliestFrameNumber(){return fEarliestFrameNumber;}; float GetClusterCharge() { return fClusterCharge; }; @@ -58,6 +60,7 @@ protected: std::map<std::pair<int32_t, int32_t>, int32_t> fPixelMap; int32_t fRefId; float fClusterCharge; + int32_t fEarliestFrameNumber; ClassDef(CbmMvdCluster, 4); }; diff --git a/core/data/mvd/CbmMvdHit.h b/core/data/mvd/CbmMvdHit.h index a6d8efe863f8254a8ce8296072bf588e5cbc6778..eefe9ecc47cd7a2ada8b4988daa6e596396e0be6 100644 --- a/core/data/mvd/CbmMvdHit.h +++ b/core/data/mvd/CbmMvdHit.h @@ -66,12 +66,20 @@ public: // void GetDigiIndexVector(TClonesArray* cbmMvdClusterArray, std::vector<int32_t>* digiIndexVector); int32_t GetRefIndex() { return fFlag; } + double GetValidityStartTime() {return fValidityStartTime;}; // returns earliest plausible time of particle impact + double GetValidityEndTime() {return fValidityEndTime;}; // returns latest plausible time of particle impact + + void SetValidityStartTime(double time) {fValidityStartTime=time;}; + void SetValidityEndTime(double time) {fValidityEndTime=time;}; + protected: int32_t fFlag; // Hit flag; to be used later int32_t fClusterIndex; int32_t fIndexCentralX; int32_t fIndexCentralY; + double fValidityStartTime; + double fValidityEndTime; int32_t fDetectorID; diff --git a/core/detectors/mvd/SensorDataSheets/CbmMvdSensorDataSheet.cxx b/core/detectors/mvd/SensorDataSheets/CbmMvdSensorDataSheet.cxx index 40980bc7a85c3f2da8d8d019d3177421de813d65..69b918c27e9b62c7f4c3ddc5d955fcb6b44100a3 100644 --- a/core/detectors/mvd/SensorDataSheets/CbmMvdSensorDataSheet.cxx +++ b/core/detectors/mvd/SensorDataSheets/CbmMvdSensorDataSheet.cxx @@ -16,10 +16,6 @@ #include <ostream> // for operator<<, stringstream, basic_ostream using std::endl; -/* -<<<<<<< HEAD -======= -*/ // ----- Default constructor ------------------------------------------- CbmMvdSensorDataSheet::CbmMvdSensorDataSheet() @@ -62,12 +58,6 @@ CbmMvdSensorDataSheet::CbmMvdSensorDataSheet() { } -// ----- Destructor ---------------------------------------------------- -//CbmMvdSensorDataSheet::~CbmMvdSensorDataSheet() {} -// ------------------------------------------------------------------------- - - -//>>>>>>> ddd5fbbb (Time response added) // ----- Public method Print ------------------------------------------- void CbmMvdSensorDataSheet::Print(Option_t* /*opt*/) const { LOG(info) << ToString(); } @@ -135,5 +125,17 @@ Double_t CbmMvdSensorDataSheet::ComputeCCE(Float_t chargePointX, Float_t chargeP // + fPar2); } +Int_t CbmMvdSensorDataSheet::ComputeAdcCharge(Float_t charge) +{ + + Int_t adcCharge; + + if (charge < fAdcOffset) { return 0; }; + + adcCharge = int((charge - fAdcOffset) / fAdcStepSize); + if (adcCharge > fAdcSteps - 1) { adcCharge = fAdcSteps - 1; } + + return adcCharge; +} ClassImp(CbmMvdSensorDataSheet) diff --git a/core/detectors/mvd/SensorDataSheets/CbmMvdSensorDataSheet.h b/core/detectors/mvd/SensorDataSheets/CbmMvdSensorDataSheet.h index 08d52fe8be4d5848992cd814a967b6aed4c342d6..88b512312e78339999280ee57f2d9da02f64358b 100644 --- a/core/detectors/mvd/SensorDataSheets/CbmMvdSensorDataSheet.h +++ b/core/detectors/mvd/SensorDataSheets/CbmMvdSensorDataSheet.h @@ -53,24 +53,12 @@ protected: // Defined according to pixelNumberX=fPixelSign * const * x Int_t fPixelSignY = 1; // Direction of the pixel count Y. // Defined according to pixelNumberY=fPixelSign * const * y - /* -<<<<<<< HEAD Int_t fShutterSign = 0; // Direction of the rolling shutter. // 1 => parallel to y-axis, -1 => anti-parallel Double_t fIntegrationTime = 50e3; // Integration time of the pixels - Double_t fEpiTh = 14e-4; // Thickness of the epitaxial layer -======= -*/ - Int_t fShutterSign; // Direction of the rolling shutter. - // 1 => parallel to y-axis, -1 => anti-parallel - Double_t fIntegrationTime; // Integration time of the pixels - Double_t fEpiTh; // Thickness of the epitaxial layer - - //Double_t fChargeThreshold; - //Double_t fSignalRiseTime; - //Double_t fSignalFallTime; + Double_t fEpiTh = 25.e-4; // Thickness of the epitaxial layer + Double_t fShaperNormalisationFactor; - //>>>>>>> ddd5fbbb (Time response added) Double_t fChargeThreshold = 0.; Double_t fSignalRiseTime = nan("NotSet"); @@ -122,19 +110,10 @@ public: virtual Double_t GetIntegrationTime() { return fIntegrationTime; }; virtual Double_t GetEpiThickness() { return fEpiTh; } virtual Double_t GetNoise() { return fNoise; }; - /* -<<<<<<< HEAD - virtual Double_t GetSignalRiseTime() { return fSignalRiseTime; }; - virtual Double_t GetSignalFallTime() { return fSignalFallTime; }; -======= -*/ virtual Double_t GetSignalRiseTime() { return fSignalRiseTime; }; virtual Double_t GetSignalFallTime() { return fSignalFallTime; }; virtual Float_t GetShaperNormalisationFactor() { return fShaperNormalisationFactor; } - //>>>>>>> ddd5fbbb (Time response added) - - /** Description of the sensor for the digitizer **/ virtual Double_t GetLandauMPV() { return fLandauMPV; }; // Landau for digitizer virtual Double_t GetLandauSigma() { return fLandauSigma; }; // Landau for digitizer @@ -145,23 +124,15 @@ public: virtual Double_t GetChargeThreshold() { return fChargeThreshold; }; - /* -<<<<<<< HEAD virtual Int_t GetAnalogThreshold() { return fAnalogThreshold; }; -======= -*/ - virtual Int_t GetAnalogThreshold() { return fAnalogThreshold; }; - virtual Double_t ComputeHitDeadTime(Float_t charge) - { - return charge * 0.; - }; // Multiplication only to suppress "variable not used" warning. - virtual Double_t ComputeHitDelay(Float_t charge) { return charge * 0.; }; - virtual Double_t ComputeHitJitter(Float_t charge) { return charge * 0.; }; - virtual Double_t ComputeCCE(Float_t chargePointX, Float_t chargePointY, Float_t chargePointZ, Float_t diodeX, - Float_t diodeY, Float_t diodeZ); - //>>>>>>> ddd5fbbb (Time response added) + virtual Double_t ComputeHitDeadTime(Float_t charge){return charge * 0.;}; // Multiplication only to suppress "variable not used" warning. + virtual Double_t ComputeHitDelay(Float_t charge){return charge * 0.;}; + virtual Double_t ComputeHitJitter (Float_t charge){return charge * 0.;}; + virtual Double_t ComputeCCE(Float_t chargePointX, Float_t chargePointY,Float_t chargePointZ,Float_t diodeX,Float_t diodeY,Float_t diodeZ); + virtual Int_t ComputeAdcCharge(Float_t charge); + /** ADC description **/ diff --git a/macro/mvd/qa/mvd_qa4_reco.C b/macro/mvd/qa/mvd_qa4_reco.C index f20c65b153cfa4b97f0b4aaeb8e5ba0bb9371f5f..2b2402669b73e4e89bb7ef29026ccd3af1cf8f2b 100644 --- a/macro/mvd/qa/mvd_qa4_reco.C +++ b/macro/mvd/qa/mvd_qa4_reco.C @@ -40,10 +40,10 @@ void mvd_qa4_reco(const char* setup = "sis100_electron") Int_t nEvents = 5; // Verbosity level (0=quiet, 1=event level, 2=track level, 3=debug) - Int_t iVerbose = 0; + Int_t iVerbose = 3; FairLogger* logger = FairLogger::GetLogger(); - logger->SetLogScreenLevel("INFO"); + logger->SetLogScreenLevel("DEBUG4"); logger->SetLogVerbosityLevel("LOW"); diff --git a/reco/detectors/mvd/plugins/tasks/CbmMvdSensorClusterfinderTask.cxx b/reco/detectors/mvd/plugins/tasks/CbmMvdSensorClusterfinderTask.cxx index 31bfd007bb847642686b93404aa7dfb2ad2c326e..8a0ad7e8b47716f3d2053d897d0f1119e3f9ccdc 100644 --- a/reco/detectors/mvd/plugins/tasks/CbmMvdSensorClusterfinderTask.cxx +++ b/reco/detectors/mvd/plugins/tasks/CbmMvdSensorClusterfinderTask.cxx @@ -220,6 +220,10 @@ void CbmMvdSensorClusterfinderTask::Exec() // Detect relevant frame numbers from digis in the input fInputBuffer + LOG(debug) << "CbmMvdSensorClusterfinderTask::Exec starting" << endl; + LOG(debug) << "Detected " << fInputBuffer->GetEntriesFast() << " digis for sensor " << fSensor->GetName(); + + CbmMvdDigi* digi; if (!fInputBuffer) { @@ -251,7 +255,9 @@ void CbmMvdSensorClusterfinderTask::Exec() // Continue filling starting from the 2nd frame. Two frames are processed by ExecFrame in order to avoid handle time walk - for (Int_t currentFrame = minFrame; maxFrame - 1; currentFrame++) { + for(Int_t currentFrame=minFrame; currentFrame<maxFrame-1; currentFrame++){ + + LOG(debug) << "CbmMvdSensorClusterfinderTask::Exec() - Running frame " << currentFrame; // Clean up input buffer from possible digis, which were already associated to a cluster while processing the previous frame @@ -410,14 +416,21 @@ void CbmMvdSensorClusterfinderTask::ExecFrame(Int_t currentFrame) CbmMvdCluster* clusterNew = new ((*fOutputFrameBuffer)[nClusters]) CbmMvdCluster(); clusterNew->SetAddress(fAddress); + CbmMvdDigi* digiInCluster = (CbmMvdDigi*) fInputFrameBuffer->At(clusterArray->at(0)); + Int_t earliestFrame=digiInCluster->GetFrameNumber(); + for (i = 0; i < clusterSize; i++) { - CbmMvdDigi* digiInCluster = (CbmMvdDigi*) fInputFrameBuffer->At(clusterArray->at(i)); - clusterNew->AddDigi(digiInCluster->GetRefId()); + digiInCluster = (CbmMvdDigi*) fInputFrameBuffer->At(clusterArray->at(i)); + + if(digiInCluster->GetFrameNumber()<earliestFrame){earliestFrame=digiInCluster->GetFrameNumber();} //fixme retundant for i==0 + + clusterNew->AddDigi(digiInCluster->GetRefId()); pixelCoords = std::make_pair(digiInCluster->GetPixelX(), digiInCluster->GetPixelY()); pixelCharge = digiInCluster->GetCharge(); ftempPixelMap[pixelCoords] = pixelCharge; } clusterNew->SetPixelMap(ftempPixelMap); + clusterNew->SetEarliestFrameNumber(earliestFrame); ftempPixelMap.clear(); if (fShowDebugHistos) UpdateDebugHistos(clusterNew); diff --git a/reco/detectors/mvd/plugins/tasks/CbmMvdSensorHitfinderTask.cxx b/reco/detectors/mvd/plugins/tasks/CbmMvdSensorHitfinderTask.cxx index 00e9c50465b118ed8dbabf94f1b2b8b26cf66bab..01f2b1846200633048df99bb8a539131df2981f3 100644 --- a/reco/detectors/mvd/plugins/tasks/CbmMvdSensorHitfinderTask.cxx +++ b/reco/detectors/mvd/plugins/tasks/CbmMvdSensorHitfinderTask.cxx @@ -12,6 +12,7 @@ #include "CbmMvdCluster.h" // for CbmMvdCluster #include "CbmMvdHit.h" // for CbmMvdHit #include "CbmMvdSensor.h" // for CbmMvdSensor +#include "CbmMvdDigi.h" // for CbmMvdDigi #include <TClonesArray.h> // for TClonesArray #include <TGeoMatrix.h> // for TGeoHMatrix @@ -248,8 +249,10 @@ void CbmMvdSensorHitfinderTask::Exec() void CbmMvdSensorHitfinderTask::CreateHit(CbmMvdCluster* cluster, TVector3& pos, TVector3& dpos) { // Calculate the center of gravity of the charge of a cluster + double startTime=0; + double endTime=0; - ComputeCenterOfGravity(cluster, pos, dpos); + ComputeCenterOfGravity(cluster, pos, dpos, startTime, endTime); Int_t indexX, indexY; @@ -271,8 +274,10 @@ void CbmMvdSensorHitfinderTask::CreateHit(CbmMvdCluster* cluster, TVector3& pos, new ((*fOutputBuffer)[nHits]) CbmMvdHit(fSensor->GetStationNr(), pos, dpos, indexX, indexY, cluster->GetRefId(), 0); // Bug - Should be the sensor ID CbmMvdHit* currentHit = (CbmMvdHit*) fOutputBuffer->At(nHits); - currentHit->SetTime(fSensor->GetCurrentEventTime()); - currentHit->SetTimeError(fSensor->GetIntegrationtime() / 2); + currentHit->SetTime(startTime+(startTime-endTime)/2); + currentHit->SetTimeError((endTime-startTime)/3.64); //Assume Sqrt(12) - Error + currentHit->SetValidityStartTime(startTime); + currentHit->SetValidityEndTime(endTime); currentHit->SetRefId(cluster->GetRefId()); } @@ -286,7 +291,7 @@ void CbmMvdSensorHitfinderTask::CreateHit(CbmMvdCluster* cluster, TVector3& pos, //-------------------------------------------------------------------------- -void CbmMvdSensorHitfinderTask::ComputeCenterOfGravity(CbmMvdCluster* cluster, TVector3& pos, TVector3& dpos) +void CbmMvdSensorHitfinderTask::ComputeCenterOfGravity(CbmMvdCluster* cluster, TVector3& pos, TVector3& dpos, double &startTime, double &endTime) { Double_t numeratorX = 0; @@ -306,6 +311,37 @@ void CbmMvdSensorHitfinderTask::ComputeCenterOfGravity(CbmMvdCluster* cluster, T Int_t yIndex0 = 0; Double_t sigmaIn[3], sigmaOut[3], shiftIn[3], shiftOut[3]; + //Double_t GetFrameStartTime(Int_t frameNumber); + //Double_t GetFrameEndTime(Int_t frameNumber) {return GetFrameStartTime (frameNumber+1);} + + + //Scan digis for the digi with minimal frame number. + //For the time being, it is anticipated that this digi provides the best time estimate as it has lowest signal delay + +// CbmMvdDigi* myDigi=(CbmMvdDigi*)cluster->GetDigi(0); +// int32_t minFrameNumber=myDigi->GetFrameNumber(); +// +// for(Int_t i=0;i<clusterSize; i++){ +// myDigi=(CbmMvdDigi*)cluster->GetDigi(i); +// int32_t frame=myDigi->GetFrameNumber(); +// if(frame<minFrameNumber){minFrameNumber=frame;} +// } + + //Estimate the highest possible delay and jitter of the analog amplifier chain from the sensor data sheet. + + CbmMvdSensorDataSheet* sensorDataSheet=fSensor->GetDataSheet(); + int32_t minFrameNumber=cluster->GetEarliestFrameNumber(); + + //Compute time walk and jitter assuming that the maximum possible signal is reasonably well represented with 10k signal electrons + Double_t timeWalk=sensorDataSheet->ComputeHitDelay(sensorDataSheet->GetAnalogThreshold())-sensorDataSheet->ComputeHitDelay(10000); + Double_t jitter=sensorDataSheet->ComputeHitJitter (sensorDataSheet->GetAnalogThreshold()); + + startTime=fSensor->GetFrameStartTime(minFrameNumber)-timeWalk-jitter; + endTime=fSensor->GetFrameEndTime(minFrameNumber)+jitter; + + + + for (map<pair<Int_t, Int_t>, Int_t>::iterator it = PixelMap.begin(); it != PixelMap.end(); ++it) { pair<Int_t, Int_t> pixel = it->first; @@ -358,87 +394,89 @@ void CbmMvdSensorHitfinderTask::ComputeCenterOfGravity(CbmMvdCluster* cluster, T LOG(debug) << "CbmMvdSensorHitfinderTask::X hit= " << fHitPosX << " Y hit= " << fHitPosY << " Z hit= " << fHitPosZ; LOG(debug) << "CbmMvdSensorHitfinderTask::-----------------------------------"; - // Treat Sigma/Shift of the Cluster according to the Shape - if (shape == 12288) { - sigmaIn[0] = 0.00053; - sigmaIn[1] = 0.00063; - sigmaIn[2] = 0.; - shiftIn[0] = -0.00000; - shiftIn[1] = -0.00001; - shiftIn[2] = 0.; - } - else if (shape == 208896) { - sigmaIn[0] = 0.00035; - sigmaIn[1] = 0.00036; - sigmaIn[2] = 0.; - shiftIn[0] = -0.00000; - shiftIn[1] = -0.00002; - shiftIn[2] = 0.; - } - else if (shape == 69632) { - sigmaIn[0] = 0.00028; - sigmaIn[1] = 0.00028; - sigmaIn[2] = 0.; - shiftIn[0] = -0.00000; - shiftIn[1] = -0.00002; - shiftIn[2] = 0.; - } - else if (shape == 28672) { - sigmaIn[0] = 0.00028; - sigmaIn[1] = 0.00039; - sigmaIn[2] = 0.; - shiftIn[0] = -0.00000; - shiftIn[1] = -0.00001; - shiftIn[2] = 0.; - } - else if (shape == 143360) { - sigmaIn[0] = 0.00024; - sigmaIn[1] = 0.00022; - sigmaIn[2] = 0.; - shiftIn[0] = +0.00020; - shiftIn[1] = +0.00008; - shiftIn[2] = 0.; - } - else if (shape == 200704) { - sigmaIn[0] = 0.00024; - sigmaIn[1] = 0.00022; - sigmaIn[2] = 0.; - shiftIn[0] = -0.00020; - shiftIn[1] = -0.00011; - shiftIn[2] = 0.; - } - else if (shape == 77824) { - sigmaIn[0] = 0.00024; - sigmaIn[1] = 0.00022; - sigmaIn[2] = 0.; - shiftIn[0] = -0.00020; - shiftIn[1] = +0.00008; - shiftIn[2] = 0.; - } - else if (shape == 12800) { - sigmaIn[0] = 0.00024; - sigmaIn[1] = 0.00022; - sigmaIn[2] = 0.; - shiftIn[0] = +0.00020; - shiftIn[1] = -0.00011; - shiftIn[2] = 0.; - } - else if (shape == 4096) { - sigmaIn[0] = 0.00027; - sigmaIn[1] = 0.00092; - sigmaIn[2] = 0.; - shiftIn[0] = +0.00002; - shiftIn[1] = +0.00004; - shiftIn[2] = 0.; - } - else { - sigmaIn[0] = 0.00036; - sigmaIn[1] = 0.00044; - sigmaIn[2] = 0.; - shiftIn[0] = -0.00000; - shiftIn[1] = -0.00002; - shiftIn[2] = 0.; - } +// // Treat Sigma/Shift of the Cluster according to the Shape +// // This goes back to some results of a specific MIMOSA-26 beam time. Switch off for the time being. +// +// if (shape == 12288) { +// sigmaIn[0] = 0.00053; +// sigmaIn[1] = 0.00063; +// sigmaIn[2] = 0.; +// shiftIn[0] = -0.00000; +// shiftIn[1] = -0.00001; +// shiftIn[2] = 0.; +// } +// else if (shape == 208896) { +// sigmaIn[0] = 0.00035; +// sigmaIn[1] = 0.00036; +// sigmaIn[2] = 0.; +// shiftIn[0] = -0.00000; +// shiftIn[1] = -0.00002; +// shiftIn[2] = 0.; +// } +// else if (shape == 69632) { +// sigmaIn[0] = 0.00028; +// sigmaIn[1] = 0.00028; +// sigmaIn[2] = 0.; +// shiftIn[0] = -0.00000; +// shiftIn[1] = -0.00002; +// shiftIn[2] = 0.; +// } +// else if (shape == 28672) { +// sigmaIn[0] = 0.00028; +// sigmaIn[1] = 0.00039; +// sigmaIn[2] = 0.; +// shiftIn[0] = -0.00000; +// shiftIn[1] = -0.00001; +// shiftIn[2] = 0.; +// } +// else if (shape == 143360) { +// sigmaIn[0] = 0.00024; +// sigmaIn[1] = 0.00022; +// sigmaIn[2] = 0.; +// shiftIn[0] = +0.00020; +// shiftIn[1] = +0.00008; +// shiftIn[2] = 0.; +// } +// else if (shape == 200704) { +// sigmaIn[0] = 0.00024; +// sigmaIn[1] = 0.00022; +// sigmaIn[2] = 0.; +// shiftIn[0] = -0.00020; +// shiftIn[1] = -0.00011; +// shiftIn[2] = 0.; +// } +// else if (shape == 77824) { +// sigmaIn[0] = 0.00024; +// sigmaIn[1] = 0.00022; +// sigmaIn[2] = 0.; +// shiftIn[0] = -0.00020; +// shiftIn[1] = +0.00008; +// shiftIn[2] = 0.; +// } +// else if (shape == 12800) { +// sigmaIn[0] = 0.00024; +// sigmaIn[1] = 0.00022; +// sigmaIn[2] = 0.; +// shiftIn[0] = +0.00020; +// shiftIn[1] = -0.00011; +// shiftIn[2] = 0.; +// } +// else if (shape == 4096) { +// sigmaIn[0] = 0.00027; +// sigmaIn[1] = 0.00092; +// sigmaIn[2] = 0.; +// shiftIn[0] = +0.00002; +// shiftIn[1] = +0.00004; +// shiftIn[2] = 0.; +// } +// else { +// sigmaIn[0] = 0.00036; +// sigmaIn[1] = 0.00044; +// sigmaIn[2] = 0.; +// shiftIn[0] = -0.00000; +// shiftIn[1] = -0.00002; +// shiftIn[2] = 0.; +// } // Consider Sensor Orientation TGeoHMatrix* RecoMatrix = fSensor->GetRecoMatrix(); TGeoHMatrix RotMatrix; diff --git a/reco/detectors/mvd/plugins/tasks/CbmMvdSensorHitfinderTask.h b/reco/detectors/mvd/plugins/tasks/CbmMvdSensorHitfinderTask.h index 331b6c6a7d7bf6840d1bec7925f4a5944010ef36..e0cfb50bfd73a7ccc1031564c9c70ff6e97da375 100644 --- a/reco/detectors/mvd/plugins/tasks/CbmMvdSensorHitfinderTask.h +++ b/reco/detectors/mvd/plugins/tasks/CbmMvdSensorHitfinderTask.h @@ -210,7 +210,7 @@ private: // void CheckForNeighbours(vector<Int_t>* clusterArray, Int_t clusterDigi, TArrayS* pixelUsed); void CreateHit(CbmMvdCluster* clusterArray, TVector3& pos, TVector3& dpos); - void ComputeCenterOfGravity(CbmMvdCluster* clusterArray, TVector3& pos, TVector3& dpos); + void ComputeCenterOfGravity(CbmMvdCluster* clusterArray, TVector3& pos, TVector3& dpos, double &startTime, double &endTime); // void UpdateDebugHistos(vector<Int_t>* clusterArray, Int_t seedIndexX, Int_t seedIndexY); private: